ai-factory 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +3 -3
  2. package/dist/cli/commands/extension.d.ts +4 -0
  3. package/dist/cli/commands/extension.d.ts.map +1 -0
  4. package/dist/cli/commands/extension.js +288 -0
  5. package/dist/cli/commands/extension.js.map +1 -0
  6. package/dist/cli/commands/init.d.ts.map +1 -1
  7. package/dist/cli/commands/init.js +30 -40
  8. package/dist/cli/commands/init.js.map +1 -1
  9. package/dist/cli/commands/update.d.ts.map +1 -1
  10. package/dist/cli/commands/update.js +86 -7
  11. package/dist/cli/commands/update.js.map +1 -1
  12. package/dist/cli/commands/upgrade.d.ts.map +1 -1
  13. package/dist/cli/commands/upgrade.js +44 -41
  14. package/dist/cli/commands/upgrade.js.map +1 -1
  15. package/dist/cli/index.js +48 -1
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/cli/wizard/prompts.d.ts +2 -1
  18. package/dist/cli/wizard/prompts.d.ts.map +1 -1
  19. package/dist/cli/wizard/prompts.js +10 -17
  20. package/dist/cli/wizard/prompts.js.map +1 -1
  21. package/dist/core/config.d.ts +8 -2
  22. package/dist/core/config.d.ts.map +1 -1
  23. package/dist/core/config.js +5 -8
  24. package/dist/core/config.js.map +1 -1
  25. package/dist/core/extension-ops.d.ts +32 -0
  26. package/dist/core/extension-ops.d.ts.map +1 -0
  27. package/dist/core/extension-ops.js +83 -0
  28. package/dist/core/extension-ops.js.map +1 -0
  29. package/dist/core/extensions.d.ts +53 -0
  30. package/dist/core/extensions.d.ts.map +1 -0
  31. package/dist/core/extensions.js +141 -0
  32. package/dist/core/extensions.js.map +1 -0
  33. package/dist/core/injections.d.ts +10 -0
  34. package/dist/core/injections.d.ts.map +1 -0
  35. package/dist/core/injections.js +154 -0
  36. package/dist/core/injections.js.map +1 -0
  37. package/dist/core/installer.d.ts +7 -3
  38. package/dist/core/installer.d.ts.map +1 -1
  39. package/dist/core/installer.js +68 -26
  40. package/dist/core/installer.js.map +1 -1
  41. package/dist/core/mcp.d.ts +12 -0
  42. package/dist/core/mcp.d.ts.map +1 -1
  43. package/dist/core/mcp.js +112 -67
  44. package/dist/core/mcp.js.map +1 -1
  45. package/dist/core/transformer.d.ts +10 -1
  46. package/dist/core/transformer.d.ts.map +1 -1
  47. package/dist/core/transformer.js +15 -1
  48. package/dist/core/transformer.js.map +1 -1
  49. package/dist/core/transformers/antigravity.d.ts +1 -0
  50. package/dist/core/transformers/antigravity.d.ts.map +1 -1
  51. package/dist/core/transformers/antigravity.js +19 -4
  52. package/dist/core/transformers/antigravity.js.map +1 -1
  53. package/dist/core/transformers/codex.d.ts +1 -0
  54. package/dist/core/transformers/codex.d.ts.map +1 -1
  55. package/dist/core/transformers/codex.js +6 -2
  56. package/dist/core/transformers/codex.js.map +1 -1
  57. package/dist/core/transformers/default.d.ts +1 -0
  58. package/dist/core/transformers/default.d.ts.map +1 -1
  59. package/dist/core/transformers/default.js +6 -0
  60. package/dist/core/transformers/default.js.map +1 -1
  61. package/dist/core/transformers/kilocode.js +1 -1
  62. package/dist/core/transformers/kilocode.js.map +1 -1
  63. package/dist/core/transformers/qwen.d.ts +1 -0
  64. package/dist/core/transformers/qwen.d.ts.map +1 -1
  65. package/dist/core/transformers/qwen.js +6 -2
  66. package/dist/core/transformers/qwen.js.map +1 -1
  67. package/dist/utils/fs.d.ts +0 -2
  68. package/dist/utils/fs.d.ts.map +1 -1
  69. package/dist/utils/fs.js +1 -5
  70. package/dist/utils/fs.js.map +1 -1
  71. package/mcp/templates/playwright.json +4 -0
  72. package/package.json +14 -1
  73. package/skills/aif/SKILL.md +27 -52
  74. package/skills/aif-commit/SKILL.md +6 -1
  75. package/skills/aif-implement/SKILL.md +20 -1
  76. package/skills/aif-loop/SKILL.md +2 -2
  77. package/dist/cli/wizard/detector.d.ts +0 -10
  78. package/dist/cli/wizard/detector.d.ts.map +0 -1
  79. package/dist/cli/wizard/detector.js +0 -231
  80. package/dist/cli/wizard/detector.js.map +0 -1
  81. package/skills/_templates/nextjs/nextjs-patterns/SKILL.md +0 -146
  82. package/skills/_templates/node-api/api-patterns/SKILL.md +0 -245
  83. package/skills/_templates/php/php-patterns/SKILL.md +0 -491
  84. package/skills/_templates/python/python-patterns/SKILL.md +0 -236
  85. package/skills/_templates/react/react-patterns/SKILL.md +0 -181
  86. package/skills/aif-deploy/SKILL.md +0 -138
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAqEA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAuIpD"}
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAuGA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAoHpD"}
@@ -2,7 +2,7 @@ import chalk from 'chalk';
2
2
  import fs from 'fs-extra';
3
3
  import path from 'path';
4
4
  import { loadConfig, saveConfig, getCurrentVersion } from '../../core/config.js';
5
- import { installSkills, getAvailableSkills } from '../../core/installer.js';
5
+ import { installSkills, getAvailableSkills, partitionSkills } from '../../core/installer.js';
6
6
  import { getAgentConfig } from '../../core/agents.js';
7
7
  import { fileExists, removeDirectory, removeFile } from '../../utils/fs.js';
8
8
  // Old v1 skill directory names that were renamed to aif-* in v2
@@ -12,7 +12,6 @@ const OLD_SKILL_NAMES = [
12
12
  'build-automation',
13
13
  'ci',
14
14
  'commit',
15
- 'deploy',
16
15
  'dockerize',
17
16
  'docs',
18
17
  'evolve',
@@ -34,7 +33,6 @@ const OLD_AIF_PREFIX_SKILL_NAMES = [
34
33
  'ai-factory-build-automation',
35
34
  'ai-factory-ci',
36
35
  'ai-factory-commit',
37
- 'ai-factory-deploy',
38
36
  'ai-factory-dockerize',
39
37
  'ai-factory-docs',
40
38
  'ai-factory-evolve',
@@ -55,7 +53,6 @@ const OLD_AIF_PREFIX_SKILL_NAMES = [
55
53
  // Old workflow skills stored as flat .md files by Antigravity transformer
56
54
  const OLD_WORKFLOW_SKILLS = new Set([
57
55
  'commit',
58
- 'deploy',
59
56
  'feature',
60
57
  'fix',
61
58
  'implement',
@@ -63,6 +60,29 @@ const OLD_WORKFLOW_SKILLS = new Set([
63
60
  'task',
64
61
  'verify',
65
62
  ]);
63
+ async function removeWorkflowFile(projectDir, configDir, skillName) {
64
+ const flatFile = path.join(projectDir, configDir, 'workflows', `${skillName}.md`);
65
+ if (await fileExists(flatFile)) {
66
+ await removeFile(flatFile);
67
+ return true;
68
+ }
69
+ return false;
70
+ }
71
+ async function removeLegacySkillArtifacts(options) {
72
+ const { projectDir, configDir, skillsDir, agentId, skillName, removeWorkflow } = options;
73
+ let removedCount = 0;
74
+ if (removeWorkflow && await removeWorkflowFile(projectDir, configDir, skillName)) {
75
+ console.log(chalk.yellow(` [${agentId}] Removed workflow: ${skillName}.md`));
76
+ removedCount++;
77
+ }
78
+ const oldDir = path.join(skillsDir, skillName);
79
+ if (await fileExists(oldDir)) {
80
+ await removeDirectory(oldDir);
81
+ console.log(chalk.yellow(` [${agentId}] Removed skill: ${skillName}/`));
82
+ removedCount++;
83
+ }
84
+ return removedCount;
85
+ }
66
86
  export async function upgradeCommand() {
67
87
  const projectDir = process.cwd();
68
88
  console.log(chalk.bold.blue('\n🏭 AI Factory - Upgrade to v2\n'));
@@ -97,45 +117,30 @@ export async function upgradeCommand() {
97
117
  let removedCount = 0;
98
118
  console.log(chalk.dim(`Scanning for old-format skills [${agent.id}]...\n`));
99
119
  for (const oldName of OLD_SKILL_NAMES) {
100
- // Antigravity: old workflow skills were flat files in workflows/
101
- if (isAntigravity && OLD_WORKFLOW_SKILLS.has(oldName)) {
102
- const flatFile = path.join(projectDir, agentConfig.configDir, 'workflows', `${oldName}.md`);
103
- if (await fileExists(flatFile)) {
104
- await removeFile(flatFile);
105
- console.log(chalk.yellow(` [${agent.id}] Removed workflow: ${oldName}.md`));
106
- removedCount++;
107
- }
108
- }
109
- // All agents: remove old skill directory
110
- const oldDir = path.join(skillsDir, oldName);
111
- if (await fileExists(oldDir)) {
112
- await removeDirectory(oldDir);
113
- console.log(chalk.yellow(` [${agent.id}] Removed skill: ${oldName}/`));
114
- removedCount++;
115
- }
120
+ removedCount += await removeLegacySkillArtifacts({
121
+ projectDir,
122
+ configDir: agentConfig.configDir,
123
+ skillsDir,
124
+ agentId: agent.id,
125
+ skillName: oldName,
126
+ removeWorkflow: isAntigravity && OLD_WORKFLOW_SKILLS.has(oldName),
127
+ });
116
128
  }
117
129
  // Remove old aif-task, aif-feature, and ai-factory-* skills
118
- const obsoleteSkills = [
130
+ const obsoleteSkills = Array.from(new Set([
119
131
  'aif-task', 'aif-feature',
120
132
  ...OLD_SKILL_NAMES.map(n => `ai-factory-${n}`),
121
133
  ...OLD_AIF_PREFIX_SKILL_NAMES,
122
- ];
134
+ ]));
123
135
  for (const oldSkill of obsoleteSkills) {
124
- const oldDir = path.join(skillsDir, oldSkill);
125
- if (await fileExists(oldDir)) {
126
- await removeDirectory(oldDir);
127
- console.log(chalk.yellow(` [${agent.id}] Removed skill: ${oldSkill}/`));
128
- removedCount++;
129
- }
130
- // Antigravity: remove flat workflow files
131
- if (isAntigravity) {
132
- const flatFile = path.join(projectDir, agentConfig.configDir, 'workflows', `${oldSkill}.md`);
133
- if (await fileExists(flatFile)) {
134
- await removeFile(flatFile);
135
- console.log(chalk.yellow(` [${agent.id}] Removed workflow: ${oldSkill}.md`));
136
- removedCount++;
137
- }
138
- }
136
+ removedCount += await removeLegacySkillArtifacts({
137
+ projectDir,
138
+ configDir: agentConfig.configDir,
139
+ skillsDir,
140
+ agentId: agent.id,
141
+ skillName: oldSkill,
142
+ removeWorkflow: isAntigravity,
143
+ });
139
144
  }
140
145
  if (removedCount === 0) {
141
146
  console.log(chalk.dim(` [${agent.id}] No old-format skills found.\n`));
@@ -144,12 +149,11 @@ export async function upgradeCommand() {
144
149
  console.log(chalk.dim(`\n [${agent.id}] Removed ${removedCount} old-format skill(s).\n`));
145
150
  }
146
151
  console.log(chalk.dim(`Installing new-format skills [${agent.id}]...\n`));
147
- const customSkills = agent.installedSkills.filter(s => s.includes('/'));
152
+ const { custom: customSkills } = partitionSkills(agent.installedSkills);
148
153
  const installedSkills = await installSkills({
149
154
  projectDir,
150
155
  skillsDir: agent.skillsDir,
151
156
  skills: availableSkills,
152
- stack: null,
153
157
  agentId: agent.id,
154
158
  });
155
159
  agent.installedSkills = [...installedSkills, ...customSkills];
@@ -161,8 +165,7 @@ export async function upgradeCommand() {
161
165
  // Step 4: Summary
162
166
  console.log(chalk.green('✓ Upgrade to v2 complete!\n'));
163
167
  for (const agent of config.agents) {
164
- const baseSkills = agent.installedSkills.filter(s => !s.includes('/'));
165
- const customSkills = agent.installedSkills.filter(s => s.includes('/'));
168
+ const { base: baseSkills, custom: customSkills } = partitionSkills(agent.installedSkills);
166
169
  console.log(chalk.bold(`[${agent.id}] Installed skills:`));
167
170
  for (const skill of baseSkills) {
168
171
  console.log(chalk.dim(` - ${skill}`));
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -2,7 +2,9 @@ import { Command } from 'commander';
2
2
  import { initCommand } from './commands/init.js';
3
3
  import { updateCommand } from './commands/update.js';
4
4
  import { upgradeCommand } from './commands/upgrade.js';
5
- import { getCurrentVersion } from '../core/config.js';
5
+ import { extensionAddCommand, extensionRemoveCommand, extensionListCommand } from './commands/extension.js';
6
+ import { getCurrentVersion, loadConfig } from '../core/config.js';
7
+ import { loadAllExtensions } from '../core/extensions.js';
6
8
  const program = new Command();
7
9
  program
8
10
  .name('ai-factory')
@@ -20,5 +22,50 @@ program
20
22
  .command('upgrade')
21
23
  .description('Upgrade from v1 to v2 (removes old-format skills, installs new)')
22
24
  .action(upgradeCommand);
25
+ const ext = program
26
+ .command('extension')
27
+ .description('Manage extensions');
28
+ ext
29
+ .command('add <source>')
30
+ .description('Install extension from npm package, git URL, or local path')
31
+ .action(extensionAddCommand);
32
+ ext
33
+ .command('remove <name>')
34
+ .description('Remove an installed extension')
35
+ .action(extensionRemoveCommand);
36
+ ext
37
+ .command('list')
38
+ .description('List installed extensions')
39
+ .action(extensionListCommand);
40
+ async function loadExtensionCommands() {
41
+ try {
42
+ const projectDir = process.cwd();
43
+ const config = await loadConfig(projectDir);
44
+ if (!config?.extensions?.length)
45
+ return;
46
+ const registeredNames = config.extensions.map(e => e.name);
47
+ const extensions = await loadAllExtensions(projectDir, registeredNames);
48
+ for (const { dir, manifest } of extensions) {
49
+ if (!manifest.commands?.length)
50
+ continue;
51
+ for (const cmd of manifest.commands) {
52
+ try {
53
+ const modulePath = new URL(`file://${dir}/${cmd.module}`).href;
54
+ const mod = await import(modulePath);
55
+ if (typeof mod.register === 'function') {
56
+ mod.register(program);
57
+ }
58
+ }
59
+ catch (err) {
60
+ console.error(`Warning: Failed to load command "${cmd.name}" from extension "${manifest.name}": ${err.message}`);
61
+ }
62
+ }
63
+ }
64
+ }
65
+ catch (err) {
66
+ console.error(`Warning: Failed to load extension commands: ${err.message}`);
67
+ }
68
+ }
69
+ await loadExtensionCommands();
23
70
  program.parse();
24
71
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAEhC,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,iEAAiE,CAAC;KAC9E,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1B,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,11 @@ export interface AgentWizardSelection {
4
4
  mcpFilesystem: boolean;
5
5
  mcpPostgres: boolean;
6
6
  mcpChromeDevtools: boolean;
7
+ mcpPlaywright: boolean;
7
8
  }
8
9
  export interface WizardAnswers {
9
10
  selectedSkills: string[];
10
11
  agents: AgentWizardSelection[];
11
12
  }
12
- export declare function runWizard(projectDir: string, defaultAgentIds?: string[]): Promise<WizardAnswers>;
13
+ export declare function runWizard(defaultAgentIds?: string[]): Promise<WizardAnswers>;
13
14
  //# sourceMappingURL=prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/cli/wizard/prompts.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED,wBAAsB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CA4G1G"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/cli/wizard/prompts.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED,wBAAsB,SAAS,CAAC,eAAe,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAsGtF"}
@@ -1,22 +1,10 @@
1
1
  import inquirer from 'inquirer';
2
- import { detectStack } from './detector.js';
3
2
  import { getAvailableSkills } from '../../core/installer.js';
4
3
  import { getAgentConfig, getAgentChoices } from '../../core/agents.js';
5
- export async function runWizard(projectDir, defaultAgentIds = []) {
6
- const detectedStack = await detectStack(projectDir);
4
+ export async function runWizard(defaultAgentIds = []) {
7
5
  const availableSkills = await getAvailableSkills();
8
6
  const selectedByDefault = new Set(defaultAgentIds);
9
- if (detectedStack) {
10
- console.log(`\n📦 Detected: ${detectedStack.name}`);
11
- if (detectedStack.frameworks.length > 0) {
12
- console.log(` Frameworks: ${detectedStack.frameworks.join(', ')}`);
13
- }
14
- console.log(`\n💡 Run /aif after setup to generate stack-specific skills.\n`);
15
- }
16
- else {
17
- console.log('\n📦 No existing project detected.');
18
- console.log('💡 Run /aif after setup to analyze or describe your project.\n');
19
- }
7
+ console.log('\n💡 Run /aif after setup to analyze your project and generate relevant skills.\n');
20
8
  const answers = await inquirer.prompt([
21
9
  {
22
10
  type: 'checkbox',
@@ -52,6 +40,7 @@ export async function runWizard(projectDir, defaultAgentIds = []) {
52
40
  mcpFilesystem: false,
53
41
  mcpPostgres: false,
54
42
  mcpChromeDevtools: false,
43
+ mcpPlaywright: false,
55
44
  };
56
45
  if (agentConfig.supportsMcp) {
57
46
  const { configureMcp } = await inquirer.prompt([
@@ -63,8 +52,6 @@ export async function runWizard(projectDir, defaultAgentIds = []) {
63
52
  },
64
53
  ]);
65
54
  if (configureMcp) {
66
- const suggestPostgres = detectedStack?.name &&
67
- ['laravel', 'symfony', 'django', 'fastapi', 'nextjs', 'node-api'].includes(detectedStack.name);
68
55
  mcpAnswers = await inquirer.prompt([
69
56
  {
70
57
  type: 'confirm',
@@ -75,7 +62,7 @@ export async function runWizard(projectDir, defaultAgentIds = []) {
75
62
  {
76
63
  type: 'confirm',
77
64
  name: 'mcpPostgres',
78
- message: `[${agentConfig.displayName}] Postgres MCP (database queries)?${suggestPostgres ? ' (recommended for this stack)' : ''}`,
65
+ message: `[${agentConfig.displayName}] Postgres MCP (database queries)?`,
79
66
  default: false,
80
67
  },
81
68
  {
@@ -90,6 +77,12 @@ export async function runWizard(projectDir, defaultAgentIds = []) {
90
77
  message: `[${agentConfig.displayName}] Chrome Devtools MCP (inspect, debug, performance insights, analyze network requests)?`,
91
78
  default: false,
92
79
  },
80
+ {
81
+ type: 'confirm',
82
+ name: 'mcpPlaywright',
83
+ message: `[${agentConfig.displayName}] Playwright MCP (browser automation, web testing, interaction via accessibility tree)?`,
84
+ default: false,
85
+ },
93
86
  ]);
94
87
  }
95
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/cli/wizard/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/cli/wizard/prompts.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export interface McpConfig {
3
3
  filesystem: boolean;
4
4
  postgres: boolean;
5
5
  chromeDevtools: boolean;
6
+ playwright: boolean;
6
7
  }
7
8
  export interface AgentInstallation {
8
9
  id: string;
@@ -10,12 +11,17 @@ export interface AgentInstallation {
10
11
  installedSkills: string[];
11
12
  mcp: McpConfig;
12
13
  }
14
+ export interface ExtensionRecord {
15
+ name: string;
16
+ source: string;
17
+ version: string;
18
+ replacedSkills?: string[];
19
+ }
13
20
  export interface AiFactoryConfig {
14
21
  version: string;
15
22
  agents: AgentInstallation[];
23
+ extensions?: ExtensionRecord[];
16
24
  }
17
- export declare function getConfigPath(projectDir: string): string;
18
- export declare function createDefaultConfig(agentIds?: string[]): AiFactoryConfig;
19
25
  export declare function loadConfig(projectDir: string): Promise<AiFactoryConfig | null>;
20
26
  export declare function saveConfig(projectDir: string, config: AiFactoryConfig): Promise<void>;
21
27
  export declare function configExists(projectDir: string): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,GAAG,EAAE,SAAS,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAaD,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAExD;AAqBD,wBAAgB,mBAAmB,CAAC,QAAQ,GAAE,MAAM,EAAe,GAAG,eAAe,CAMpF;AAED,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAmCpF;AAED,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3F;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGvE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,GAAG,EAAE,SAAS,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC;AAqCD,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAsCpF;AAED,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3F;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGvE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
@@ -6,7 +6,7 @@ const require = createRequire(import.meta.url);
6
6
  const pkg = require('../../package.json');
7
7
  const CONFIG_FILENAME = '.ai-factory.json';
8
8
  const CURRENT_VERSION = pkg.version;
9
- export function getConfigPath(projectDir) {
9
+ function getConfigPath(projectDir) {
10
10
  return path.join(projectDir, CONFIG_FILENAME);
11
11
  }
12
12
  function normalizeMcp(mcp) {
@@ -15,6 +15,7 @@ function normalizeMcp(mcp) {
15
15
  filesystem: mcp?.filesystem ?? false,
16
16
  postgres: mcp?.postgres ?? false,
17
17
  chromeDevtools: mcp?.chromeDevtools ?? false,
18
+ playwright: mcp?.playwright ?? false,
18
19
  };
19
20
  }
20
21
  function createAgentInstallation(agentId, legacy) {
@@ -26,13 +27,6 @@ function createAgentInstallation(agentId, legacy) {
26
27
  mcp: normalizeMcp(legacy?.mcp),
27
28
  };
28
29
  }
29
- export function createDefaultConfig(agentIds = ['claude']) {
30
- const uniqueAgentIds = Array.from(new Set(agentIds));
31
- return {
32
- version: CURRENT_VERSION,
33
- agents: uniqueAgentIds.map(id => createAgentInstallation(id)),
34
- };
35
- }
36
30
  export async function loadConfig(projectDir) {
37
31
  const configPath = getConfigPath(projectDir);
38
32
  const raw = await readJsonFile(configPath);
@@ -52,17 +46,20 @@ export async function loadConfig(projectDir) {
52
46
  return {
53
47
  version: raw.version ?? CURRENT_VERSION,
54
48
  agents: normalizedAgents,
49
+ extensions: Array.isArray(raw.extensions) ? raw.extensions : [],
55
50
  };
56
51
  }
57
52
  if (raw.agent) {
58
53
  return {
59
54
  version: raw.version ?? CURRENT_VERSION,
60
55
  agents: [createAgentInstallation(raw.agent, raw)],
56
+ extensions: [],
61
57
  };
62
58
  }
63
59
  return {
64
60
  version: raw.version ?? CURRENT_VERSION,
65
61
  agents: [],
62
+ extensions: [],
66
63
  };
67
64
  }
68
65
  export async function saveConfig(projectDir, config) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { AgentInstallation, ExtensionRecord } from './config.js';
2
+ import type { ExtensionManifest } from './extensions.js';
3
+ /**
4
+ * Install base skills on all agents.
5
+ */
6
+ export declare function installSkillsForAllAgents(projectDir: string, agents: AgentInstallation[], skills: string[]): Promise<void>;
7
+ /**
8
+ * Remove extension skills from all agents. Returns per-agent removed lists.
9
+ */
10
+ export declare function removeSkillsForAllAgents(projectDir: string, agents: AgentInstallation[], skillNames: string[]): Promise<Map<string, string[]>>;
11
+ /**
12
+ * Install extension skills on all agents. Returns per-agent installed lists.
13
+ */
14
+ export declare function installExtensionSkillsForAllAgents(projectDir: string, agents: AgentInstallation[], extensionDir: string, skillPaths: string[], nameOverrides?: Record<string, string>): Promise<Map<string, string[]>>;
15
+ /**
16
+ * Collect all replaced skills from extensions, optionally excluding one extension by name.
17
+ */
18
+ export declare function collectReplacedSkills(extensions: ExtensionRecord[], excludeName?: string): Set<string>;
19
+ /**
20
+ * Restore base skills that were previously replaced, filtering out skills still replaced by other extensions.
21
+ */
22
+ export declare function restoreBaseSkills(projectDir: string, agents: AgentInstallation[], skillNames: string[], excludeStillReplaced: Set<string>): Promise<string[]>;
23
+ /**
24
+ * Strip extension injections from all agents. Uses manifest if available, falls back to name-based scan.
25
+ */
26
+ export declare function stripInjectionsForAllAgents(projectDir: string, agents: AgentInstallation[], extensionName: string, manifest?: ExtensionManifest | null): Promise<void>;
27
+ /**
28
+ * Remove custom (non-replacement) skills from all agents based on the manifest.
29
+ * Returns the list of custom skill paths that were targeted for removal.
30
+ */
31
+ export declare function removeCustomSkillsForAllAgents(projectDir: string, agents: AgentInstallation[], manifest: ExtensionManifest): Promise<Map<string, string[]>>;
32
+ //# sourceMappingURL=extension-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-ops.d.ts","sourceRoot":"","sources":["../../src/core/extension-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIzD;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EAAE,EAC3B,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EAAE,EAC3B,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAOhC;AAED;;GAEG;AACH,wBAAsB,kCAAkC,CACtD,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EAAE,EAC3B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAAE,EACpB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAOhC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAStG;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EAAE,EAC3B,UAAU,EAAE,MAAM,EAAE,EACpB,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAOnB;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EAAE,EAC3B,aAAa,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAClC,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CAClD,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EAAE,EAC3B,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAKhC"}
@@ -0,0 +1,83 @@
1
+ import { installSkills, getAvailableSkills, installExtensionSkills, removeExtensionSkills } from './installer.js';
2
+ import { stripAllExtensionInjections, stripInjectionsByExtensionName } from './injections.js';
3
+ /**
4
+ * Install base skills on all agents.
5
+ */
6
+ export async function installSkillsForAllAgents(projectDir, agents, skills) {
7
+ for (const agent of agents) {
8
+ await installSkills({ projectDir, skillsDir: agent.skillsDir, skills, agentId: agent.id });
9
+ }
10
+ }
11
+ /**
12
+ * Remove extension skills from all agents. Returns per-agent removed lists.
13
+ */
14
+ export async function removeSkillsForAllAgents(projectDir, agents, skillNames) {
15
+ const results = new Map();
16
+ for (const agent of agents) {
17
+ const removed = await removeExtensionSkills(projectDir, agent, skillNames);
18
+ results.set(agent.id, removed);
19
+ }
20
+ return results;
21
+ }
22
+ /**
23
+ * Install extension skills on all agents. Returns per-agent installed lists.
24
+ */
25
+ export async function installExtensionSkillsForAllAgents(projectDir, agents, extensionDir, skillPaths, nameOverrides) {
26
+ const results = new Map();
27
+ for (const agent of agents) {
28
+ const installed = await installExtensionSkills(projectDir, agent, extensionDir, skillPaths, nameOverrides);
29
+ results.set(agent.id, installed);
30
+ }
31
+ return results;
32
+ }
33
+ /**
34
+ * Collect all replaced skills from extensions, optionally excluding one extension by name.
35
+ */
36
+ export function collectReplacedSkills(extensions, excludeName) {
37
+ const result = new Set();
38
+ for (const ext of extensions) {
39
+ if (excludeName && ext.name === excludeName)
40
+ continue;
41
+ if (ext.replacedSkills?.length) {
42
+ for (const s of ext.replacedSkills)
43
+ result.add(s);
44
+ }
45
+ }
46
+ return result;
47
+ }
48
+ /**
49
+ * Restore base skills that were previously replaced, filtering out skills still replaced by other extensions.
50
+ */
51
+ export async function restoreBaseSkills(projectDir, agents, skillNames, excludeStillReplaced) {
52
+ const available = await getAvailableSkills();
53
+ const toRestore = skillNames.filter(s => available.includes(s) && !excludeStillReplaced.has(s));
54
+ if (toRestore.length > 0) {
55
+ await installSkillsForAllAgents(projectDir, agents, toRestore);
56
+ }
57
+ return toRestore;
58
+ }
59
+ /**
60
+ * Strip extension injections from all agents. Uses manifest if available, falls back to name-based scan.
61
+ */
62
+ export async function stripInjectionsForAllAgents(projectDir, agents, extensionName, manifest) {
63
+ for (const agent of agents) {
64
+ if (manifest) {
65
+ await stripAllExtensionInjections(projectDir, agent, extensionName, manifest);
66
+ }
67
+ else {
68
+ await stripInjectionsByExtensionName(projectDir, agent, extensionName);
69
+ }
70
+ }
71
+ }
72
+ /**
73
+ * Remove custom (non-replacement) skills from all agents based on the manifest.
74
+ * Returns the list of custom skill paths that were targeted for removal.
75
+ */
76
+ export async function removeCustomSkillsForAllAgents(projectDir, agents, manifest) {
77
+ const replacesPaths = new Set(Object.keys(manifest.replaces ?? {}));
78
+ const customSkills = (manifest.skills ?? []).filter(s => !replacesPaths.has(s));
79
+ if (customSkills.length === 0)
80
+ return new Map();
81
+ return removeSkillsForAllAgents(projectDir, agents, customSkills);
82
+ }
83
+ //# sourceMappingURL=extension-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-ops.js","sourceRoot":"","sources":["../../src/core/extension-ops.ts"],"names":[],"mappings":"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"}