feat(cli): integrate conductor as a built-in extension

- Introduce support for bundled 'builtin' extensions in ExtensionManager
- Migrate conductor extension to packages/core/src/extensions/builtin/conductor
- Add automatic migration logic to cleanup manual conductor installations
- Make extension versioning optional for built-ins, defaulting to CLI version
- Update build and bundle scripts to include builtin extensions
- Enhance documentation to highlight conductor as a core feature
This commit is contained in:
Jerop Kipruto
2026-03-10 20:04:04 -04:00
parent 1b69637032
commit 4f66002875
26 changed files with 3077 additions and 29 deletions

View File

@@ -73,6 +73,17 @@ if (existsSync(builtinSkillsSrc)) {
console.log('Copied built-in skills to bundle/builtin/');
}
// 4.1 Copy Built-in Extensions (packages/core/src/extensions/builtin)
const builtinExtensionsSrc = join(root, 'packages/core/src/extensions/builtin');
const builtinExtensionsDest = join(bundleDir, 'extensions', 'builtin');
if (existsSync(builtinExtensionsSrc)) {
cpSync(builtinExtensionsSrc, builtinExtensionsDest, {
recursive: true,
dereference: true,
});
console.log('Copied built-in extensions to bundle/extensions/builtin/');
}
// 5. Copy DevTools package so the external dynamic import resolves at runtime
const devtoolsSrc = join(root, 'packages/devtools');
const devtoolsDest = join(

View File

@@ -74,13 +74,21 @@ if (packageName === 'cli') {
}
}
// Copy built-in skills for the core package.
// Copy built-in skills and extensions for the core package.
if (packageName === 'core') {
const builtinSkillsSource = path.join(sourceDir, 'skills', 'builtin');
const builtinSkillsTarget = path.join(targetDir, 'skills', 'builtin');
if (fs.existsSync(builtinSkillsSource)) {
fs.cpSync(builtinSkillsSource, builtinSkillsTarget, { recursive: true });
}
const builtinExtensionsSource = path.join(sourceDir, 'extensions', 'builtin');
const builtinExtensionsTarget = path.join(targetDir, 'extensions', 'builtin');
if (fs.existsSync(builtinExtensionsSource)) {
fs.cpSync(builtinExtensionsSource, builtinExtensionsTarget, {
recursive: true,
});
}
}
console.log('Successfully copied files.');