opencastle 0.6.0 → 0.8.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.
- package/README.md +8 -7
- package/dist/cli/adapters/claude-code.d.ts.map +1 -1
- package/dist/cli/adapters/claude-code.js +30 -3
- package/dist/cli/adapters/claude-code.js.map +1 -1
- package/dist/cli/adapters/cursor.d.ts.map +1 -1
- package/dist/cli/adapters/cursor.js +27 -3
- package/dist/cli/adapters/cursor.js.map +1 -1
- package/dist/cli/adapters/opencode.d.ts +20 -0
- package/dist/cli/adapters/opencode.d.ts.map +1 -0
- package/dist/cli/adapters/opencode.js +265 -0
- package/dist/cli/adapters/opencode.js.map +1 -0
- package/dist/cli/adapters/vscode.d.ts.map +1 -1
- package/dist/cli/adapters/vscode.js +37 -6
- package/dist/cli/adapters/vscode.js.map +1 -1
- package/dist/cli/copy.d.ts +12 -0
- package/dist/cli/copy.d.ts.map +1 -1
- package/dist/cli/copy.js +27 -0
- package/dist/cli/copy.js.map +1 -1
- package/dist/cli/detect.d.ts +1 -1
- package/dist/cli/detect.js +21 -15
- package/dist/cli/detect.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +143 -94
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/manifest.d.ts +1 -1
- package/dist/cli/manifest.d.ts.map +1 -1
- package/dist/cli/manifest.js +2 -1
- package/dist/cli/manifest.js.map +1 -1
- package/dist/cli/mcp.d.ts +6 -6
- package/dist/cli/mcp.d.ts.map +1 -1
- package/dist/cli/mcp.js +104 -33
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli/prompt.d.ts +19 -0
- package/dist/cli/prompt.d.ts.map +1 -1
- package/dist/cli/prompt.js +143 -0
- package/dist/cli/prompt.js.map +1 -1
- package/dist/cli/stack-config.d.ts +23 -0
- package/dist/cli/stack-config.d.ts.map +1 -1
- package/dist/cli/stack-config.js +128 -124
- package/dist/cli/stack-config.js.map +1 -1
- package/dist/cli/types.d.ts +26 -9
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/types.js +26 -1
- package/dist/cli/types.js.map +1 -1
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +60 -19
- package/dist/cli/update.js.map +1 -1
- package/dist/orchestrator/plugins/chrome-devtools/config.d.ts +3 -0
- package/dist/orchestrator/plugins/chrome-devtools/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/chrome-devtools/config.js +28 -0
- package/dist/orchestrator/plugins/chrome-devtools/config.js.map +1 -0
- package/dist/orchestrator/plugins/contentful/config.d.ts +3 -0
- package/dist/orchestrator/plugins/contentful/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/contentful/config.js +48 -0
- package/dist/orchestrator/plugins/contentful/config.js.map +1 -0
- package/dist/orchestrator/plugins/convex/config.d.ts +3 -0
- package/dist/orchestrator/plugins/convex/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/convex/config.js +32 -0
- package/dist/orchestrator/plugins/convex/config.js.map +1 -0
- package/dist/orchestrator/plugins/index.d.ts +28 -0
- package/dist/orchestrator/plugins/index.d.ts.map +1 -0
- package/dist/orchestrator/plugins/index.js +63 -0
- package/dist/orchestrator/plugins/index.js.map +1 -0
- package/dist/orchestrator/plugins/jira/config.d.ts +3 -0
- package/dist/orchestrator/plugins/jira/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/jira/config.js +29 -0
- package/dist/orchestrator/plugins/jira/config.js.map +1 -0
- package/dist/orchestrator/plugins/linear/config.d.ts +3 -0
- package/dist/orchestrator/plugins/linear/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/linear/config.js +33 -0
- package/dist/orchestrator/plugins/linear/config.js.map +1 -0
- package/dist/orchestrator/plugins/nx/config.d.ts +3 -0
- package/dist/orchestrator/plugins/nx/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/nx/config.js +28 -0
- package/dist/orchestrator/plugins/nx/config.js.map +1 -0
- package/dist/orchestrator/plugins/sanity/config.d.ts +3 -0
- package/dist/orchestrator/plugins/sanity/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/sanity/config.js +43 -0
- package/dist/orchestrator/plugins/sanity/config.js.map +1 -0
- package/dist/orchestrator/plugins/slack/config.d.ts +3 -0
- package/dist/orchestrator/plugins/slack/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/slack/config.js +34 -0
- package/dist/orchestrator/plugins/slack/config.js.map +1 -0
- package/dist/orchestrator/plugins/strapi/config.d.ts +3 -0
- package/dist/orchestrator/plugins/strapi/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/strapi/config.js +40 -0
- package/dist/orchestrator/plugins/strapi/config.js.map +1 -0
- package/dist/orchestrator/plugins/supabase/config.d.ts +3 -0
- package/dist/orchestrator/plugins/supabase/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/supabase/config.js +33 -0
- package/dist/orchestrator/plugins/supabase/config.js.map +1 -0
- package/dist/orchestrator/plugins/teams/config.d.ts +3 -0
- package/dist/orchestrator/plugins/teams/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/teams/config.js +43 -0
- package/dist/orchestrator/plugins/teams/config.js.map +1 -0
- package/dist/orchestrator/plugins/types.d.ts +61 -0
- package/dist/orchestrator/plugins/types.d.ts.map +1 -0
- package/dist/orchestrator/plugins/types.js +2 -0
- package/dist/orchestrator/plugins/types.js.map +1 -0
- package/dist/orchestrator/plugins/vercel/config.d.ts +3 -0
- package/dist/orchestrator/plugins/vercel/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/vercel/config.js +32 -0
- package/dist/orchestrator/plugins/vercel/config.js.map +1 -0
- package/package.json +1 -1
- package/src/cli/adapters/claude-code.ts +36 -4
- package/src/cli/adapters/cursor.ts +42 -4
- package/src/cli/adapters/opencode.ts +320 -0
- package/src/cli/adapters/vscode.ts +40 -8
- package/src/cli/copy.ts +32 -0
- package/src/cli/detect.ts +17 -17
- package/src/cli/init.ts +157 -99
- package/src/cli/manifest.ts +2 -1
- package/src/cli/mcp.ts +129 -50
- package/src/cli/prompt.ts +176 -0
- package/src/cli/stack-config.ts +174 -145
- package/src/cli/types.ts +39 -8
- package/src/cli/update.ts +71 -20
- package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
- package/src/orchestrator/agent-workflows/README.md +1 -1
- package/src/orchestrator/agent-workflows/bug-fix.md +12 -12
- package/src/orchestrator/agent-workflows/data-pipeline.md +21 -20
- package/src/orchestrator/agent-workflows/database-migration.md +11 -11
- package/src/orchestrator/agent-workflows/feature-implementation.md +19 -12
- package/src/orchestrator/agent-workflows/performance-optimization.md +6 -6
- package/src/orchestrator/agent-workflows/refactoring.md +10 -10
- package/src/orchestrator/agent-workflows/schema-changes.md +8 -8
- package/src/orchestrator/agent-workflows/security-audit.md +12 -12
- package/src/orchestrator/agent-workflows/shared-delivery-phase.md +5 -5
- package/src/orchestrator/agents/api-designer.agent.md +1 -1
- package/src/orchestrator/agents/architect.agent.md +2 -2
- package/src/orchestrator/agents/content-engineer.agent.md +3 -3
- package/src/orchestrator/agents/copywriter.agent.md +2 -2
- package/src/orchestrator/agents/data-expert.agent.md +6 -6
- package/src/orchestrator/agents/database-engineer.agent.md +3 -3
- package/src/orchestrator/agents/developer.agent.md +4 -4
- package/src/orchestrator/agents/devops-expert.agent.md +5 -5
- package/src/orchestrator/agents/documentation-writer.agent.md +1 -1
- package/src/orchestrator/agents/performance-expert.agent.md +2 -2
- package/src/orchestrator/agents/release-manager.agent.md +4 -4
- package/src/orchestrator/agents/researcher.agent.md +3 -3
- package/src/orchestrator/agents/reviewer.agent.md +1 -1
- package/src/orchestrator/agents/security-expert.agent.md +4 -4
- package/src/orchestrator/agents/seo-specialist.agent.md +2 -2
- package/src/orchestrator/agents/team-lead.agent.md +56 -38
- package/src/orchestrator/agents/testing-expert.agent.md +5 -5
- package/src/orchestrator/agents/ui-ux-expert.agent.md +6 -6
- package/src/orchestrator/copilot-instructions.md +1 -1
- package/src/orchestrator/customizations/AGENT-FAILURES.md +1 -1
- package/src/orchestrator/customizations/AGENT-PERFORMANCE.md +12 -12
- package/src/orchestrator/customizations/DISPUTES.md +5 -5
- package/src/orchestrator/customizations/KNOWN-ISSUES.md +30 -0
- package/src/orchestrator/customizations/LESSONS-LEARNED.md +7 -7
- package/src/orchestrator/customizations/README.md +5 -2
- package/src/orchestrator/customizations/agents/agent-registry.md +1 -1
- package/src/orchestrator/customizations/agents/skill-matrix.md +12 -7
- package/src/orchestrator/customizations/logs/README.md +1 -1
- package/src/orchestrator/customizations/project/decisions.md +31 -0
- package/src/orchestrator/customizations/project/docs-structure.md +16 -5
- package/src/orchestrator/customizations/project/roadmap.md +24 -0
- package/src/orchestrator/customizations/project/tracker-config.md +1 -1
- package/src/orchestrator/customizations/stack/cms-config.md +1 -1
- package/src/orchestrator/customizations/stack/notifications-config.md +1 -1
- package/src/orchestrator/instructions/ai-optimization.instructions.md +2 -2
- package/src/orchestrator/instructions/general.instructions.md +102 -40
- package/src/orchestrator/{skills/browser-testing → plugins/chrome-devtools}/SKILL.md +1 -1
- package/src/orchestrator/plugins/chrome-devtools/config.ts +29 -0
- package/src/orchestrator/{skills/contentful-cms → plugins/contentful}/SKILL.md +1 -1
- package/src/orchestrator/plugins/contentful/config.ts +49 -0
- package/src/orchestrator/{skills/convex-database → plugins/convex}/SKILL.md +1 -1
- package/src/orchestrator/plugins/convex/config.ts +33 -0
- package/src/orchestrator/plugins/index.ts +85 -0
- package/src/orchestrator/{skills/jira-management → plugins/jira}/SKILL.md +3 -3
- package/src/orchestrator/plugins/jira/config.ts +30 -0
- package/src/orchestrator/{skills/task-management → plugins/linear}/SKILL.md +3 -3
- package/src/orchestrator/plugins/linear/config.ts +34 -0
- package/src/orchestrator/{skills/nx-workspace → plugins/nx}/SKILL.md +1 -1
- package/src/orchestrator/plugins/nx/config.ts +29 -0
- package/src/orchestrator/{skills/sanity-cms → plugins/sanity}/SKILL.md +1 -1
- package/src/orchestrator/plugins/sanity/config.ts +44 -0
- package/src/orchestrator/{skills/slack-notifications → plugins/slack}/SKILL.md +2 -2
- package/src/orchestrator/plugins/slack/config.ts +35 -0
- package/src/orchestrator/{skills/strapi-cms → plugins/strapi}/SKILL.md +1 -1
- package/src/orchestrator/plugins/strapi/config.ts +41 -0
- package/src/orchestrator/{skills/supabase-database → plugins/supabase}/SKILL.md +1 -1
- package/src/orchestrator/plugins/supabase/config.ts +34 -0
- package/src/orchestrator/{skills/teams-notifications → plugins/teams}/SKILL.md +2 -2
- package/src/orchestrator/plugins/teams/config.ts +44 -0
- package/src/orchestrator/plugins/types.ts +79 -0
- package/src/orchestrator/plugins/vercel/config.ts +33 -0
- package/src/orchestrator/prompts/bootstrap-customizations.prompt.md +8 -8
- package/src/orchestrator/prompts/brainstorm.prompt.md +3 -3
- package/src/orchestrator/prompts/bug-fix.prompt.md +27 -22
- package/src/orchestrator/prompts/create-skill.prompt.md +50 -32
- package/src/orchestrator/prompts/generate-task-spec.prompt.md +3 -3
- package/src/orchestrator/prompts/implement-feature.prompt.md +34 -29
- package/src/orchestrator/prompts/metrics-report.prompt.md +11 -11
- package/src/orchestrator/prompts/quick-refinement.prompt.md +23 -19
- package/src/orchestrator/prompts/resolve-pr-comments.prompt.md +19 -5
- package/src/orchestrator/skills/accessibility-standards/SKILL.md +1 -1
- package/src/orchestrator/skills/agent-hooks/SKILL.md +27 -18
- package/src/orchestrator/skills/agent-memory/SKILL.md +7 -7
- package/src/orchestrator/skills/api-patterns/SKILL.md +6 -6
- package/src/orchestrator/skills/code-commenting/SKILL.md +1 -1
- package/src/orchestrator/skills/context-map/SKILL.md +4 -4
- package/src/orchestrator/skills/data-engineering/SKILL.md +7 -4
- package/src/orchestrator/skills/deployment-infrastructure/SKILL.md +2 -2
- package/src/orchestrator/skills/documentation-standards/SKILL.md +1 -1
- package/src/orchestrator/skills/fast-review/SKILL.md +18 -7
- package/src/orchestrator/skills/frontend-design/SKILL.md +1 -1
- package/src/orchestrator/skills/memory-merger/SKILL.md +8 -8
- package/src/orchestrator/skills/nextjs-patterns/SKILL.md +1 -1
- package/src/orchestrator/skills/panel-majority-vote/SKILL.md +2 -2
- package/src/orchestrator/skills/panel-majority-vote/panel-report.template.md +1 -1
- package/src/orchestrator/skills/performance-optimization/SKILL.md +1 -1
- package/src/orchestrator/skills/react-development/SKILL.md +3 -3
- package/src/orchestrator/skills/security-hardening/SKILL.md +27 -27
- package/src/orchestrator/skills/self-improvement/SKILL.md +14 -13
- package/src/orchestrator/skills/seo-patterns/SKILL.md +1 -1
- package/src/orchestrator/skills/session-checkpoints/SKILL.md +19 -19
- package/src/orchestrator/skills/team-lead-reference/SKILL.md +9 -9
- package/src/orchestrator/skills/testing-workflow/SKILL.md +13 -13
- package/src/orchestrator/skills/validation-gates/SKILL.md +157 -27
- package/src/orchestrator/mcp.json +0 -69
package/dist/cli/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/cli/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/cli/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/prompt.d.ts
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
import type { SelectOption } from './types.js';
|
|
2
|
+
/** ANSI color helpers for CLI output. */
|
|
3
|
+
export declare const c: {
|
|
4
|
+
cyan: (s: string) => string;
|
|
5
|
+
green: (s: string) => string;
|
|
6
|
+
yellow: (s: string) => string;
|
|
7
|
+
red: (s: string) => string;
|
|
8
|
+
bold: (s: string) => string;
|
|
9
|
+
dim: (s: string) => string;
|
|
10
|
+
magenta: (s: string) => string;
|
|
11
|
+
};
|
|
2
12
|
/** Close the shared readline interface. Call once at command end. */
|
|
3
13
|
export declare function closePrompts(): void;
|
|
4
14
|
/**
|
|
@@ -12,4 +22,13 @@ export declare function select(message: string, options: SelectOption[]): Promis
|
|
|
12
22
|
* Yes/No confirmation prompt.
|
|
13
23
|
*/
|
|
14
24
|
export declare function confirm(message: string, defaultYes?: boolean): Promise<boolean>;
|
|
25
|
+
/**
|
|
26
|
+
* Interactive multi-choice selection prompt.
|
|
27
|
+
*
|
|
28
|
+
* TTY mode: arrow-key navigation (↑/↓), Space to toggle, Enter to confirm.
|
|
29
|
+
* Piped mode: falls back to comma-separated number input.
|
|
30
|
+
*
|
|
31
|
+
* Returns an array of selected values (possibly empty).
|
|
32
|
+
*/
|
|
33
|
+
export declare function multiselect(message: string, options: SelectOption[]): Promise<string[]>;
|
|
15
34
|
//# sourceMappingURL=prompt.d.ts.map
|
package/dist/cli/prompt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/cli/prompt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/cli/prompt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAgB/C,yCAAyC;AACzC,eAAO,MAAM,CAAC;cACF,MAAM;eACL,MAAM;gBACL,MAAM;aACT,MAAM;cACL,MAAM;aACP,MAAM;iBACF,MAAM;CACpB,CAAC;AA0DF,qEAAqE;AACrE,wBAAgB,YAAY,IAAI,IAAI,CAOnC;AAED;;;;;GAKG;AACH,wBAAsB,MAAM,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,MAAM,CAAC,CAKjB;AAiID;;GAEG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,UAAU,UAAO,GAChB,OAAO,CAAC,OAAO,CAAC,CAMlB;AAID;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,MAAM,EAAE,CAAC,CAKnB"}
|
package/dist/cli/prompt.js
CHANGED
|
@@ -9,6 +9,17 @@ const ERASE_LINE = `${CSI}2K`;
|
|
|
9
9
|
function moveUp(n) {
|
|
10
10
|
return n > 0 ? `${CSI}${n}A` : '';
|
|
11
11
|
}
|
|
12
|
+
// ── Color helpers ─────────────────────────────────────────────────
|
|
13
|
+
/** ANSI color helpers for CLI output. */
|
|
14
|
+
export const c = {
|
|
15
|
+
cyan: (s) => `\x1B[36m${s}\x1B[0m`,
|
|
16
|
+
green: (s) => `\x1B[32m${s}\x1B[0m`,
|
|
17
|
+
yellow: (s) => `\x1B[33m${s}\x1B[0m`,
|
|
18
|
+
red: (s) => `\x1B[31m${s}\x1B[0m`,
|
|
19
|
+
bold: (s) => `\x1B[1m${s}\x1B[0m`,
|
|
20
|
+
dim: (s) => `\x1B[2m${s}\x1B[0m`,
|
|
21
|
+
magenta: (s) => `\x1B[35m${s}\x1B[0m`,
|
|
22
|
+
};
|
|
12
23
|
// ── Line-buffered readline ────────────────────────────────────────
|
|
13
24
|
// readline.question() drops lines that arrived between calls because
|
|
14
25
|
// it only listens for the NEXT 'line' event. When piped input
|
|
@@ -197,4 +208,136 @@ export async function confirm(message, defaultYes = true) {
|
|
|
197
208
|
return defaultYes;
|
|
198
209
|
return answer.trim().toLowerCase().startsWith('y');
|
|
199
210
|
}
|
|
211
|
+
// ── Multiselect ───────────────────────────────────────────────────
|
|
212
|
+
/**
|
|
213
|
+
* Interactive multi-choice selection prompt.
|
|
214
|
+
*
|
|
215
|
+
* TTY mode: arrow-key navigation (↑/↓), Space to toggle, Enter to confirm.
|
|
216
|
+
* Piped mode: falls back to comma-separated number input.
|
|
217
|
+
*
|
|
218
|
+
* Returns an array of selected values (possibly empty).
|
|
219
|
+
*/
|
|
220
|
+
export async function multiselect(message, options) {
|
|
221
|
+
if (stdin.isTTY) {
|
|
222
|
+
return multiselectInteractive(message, options);
|
|
223
|
+
}
|
|
224
|
+
return multiselectNumbered(message, options);
|
|
225
|
+
}
|
|
226
|
+
// ── Arrow-key multiselect (TTY) ───────────────────────────────────
|
|
227
|
+
function renderMultiselectOptions(options, cursor, selected, initial) {
|
|
228
|
+
if (!initial) {
|
|
229
|
+
stdout.write(moveUp(options.length));
|
|
230
|
+
}
|
|
231
|
+
for (let i = 0; i < options.length; i++) {
|
|
232
|
+
const active = i === cursor;
|
|
233
|
+
const checked = selected.has(i);
|
|
234
|
+
const checkbox = checked ? `\x1B[32m✔\x1B[0m` : ' ';
|
|
235
|
+
const marker = active ? '❯' : ' ';
|
|
236
|
+
const hint = options[i].hint ? ` ${c.dim('—')} ${c.dim(options[i].hint)}` : '';
|
|
237
|
+
const label = active
|
|
238
|
+
? `\x1B[36m${options[i].label}\x1B[0m${hint}`
|
|
239
|
+
: `${options[i].label}${hint}`;
|
|
240
|
+
stdout.write(`${ERASE_LINE}\r ${marker} [${checkbox}] ${label}\n`);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
function multiselectInteractive(message, options) {
|
|
244
|
+
return new Promise((resolve) => {
|
|
245
|
+
let cursor = 0;
|
|
246
|
+
const selected = new Set();
|
|
247
|
+
// Pre-select options marked as selected
|
|
248
|
+
for (let i = 0; i < options.length; i++) {
|
|
249
|
+
if (options[i].selected)
|
|
250
|
+
selected.add(i);
|
|
251
|
+
}
|
|
252
|
+
if (_rl)
|
|
253
|
+
_rl.pause();
|
|
254
|
+
stdout.write(`\n ${message} ${c.dim('(↑/↓ navigate, Space toggle, Enter confirm)')}\n\n`);
|
|
255
|
+
stdout.write(HIDE_CURSOR);
|
|
256
|
+
renderMultiselectOptions(options, cursor, selected, true);
|
|
257
|
+
stdin.setRawMode(true);
|
|
258
|
+
stdin.resume();
|
|
259
|
+
const onData = (data) => {
|
|
260
|
+
const key = data.toString();
|
|
261
|
+
// Arrow up or k
|
|
262
|
+
if (key === `${ESC}[A` || key === 'k') {
|
|
263
|
+
cursor = (cursor - 1 + options.length) % options.length;
|
|
264
|
+
renderMultiselectOptions(options, cursor, selected, false);
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
// Arrow down or j
|
|
268
|
+
if (key === `${ESC}[B` || key === 'j') {
|
|
269
|
+
cursor = (cursor + 1) % options.length;
|
|
270
|
+
renderMultiselectOptions(options, cursor, selected, false);
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
// Space — toggle selection
|
|
274
|
+
if (key === ' ') {
|
|
275
|
+
if (selected.has(cursor)) {
|
|
276
|
+
selected.delete(cursor);
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
selected.add(cursor);
|
|
280
|
+
}
|
|
281
|
+
renderMultiselectOptions(options, cursor, selected, false);
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
// Enter — confirm
|
|
285
|
+
if (key === '\r' || key === '\n') {
|
|
286
|
+
cleanup();
|
|
287
|
+
// Final render
|
|
288
|
+
stdout.write(moveUp(options.length));
|
|
289
|
+
for (let i = 0; i < options.length; i++) {
|
|
290
|
+
const checked = selected.has(i);
|
|
291
|
+
const hint = options[i].hint ? ` ${c.dim('—')} ${c.dim(options[i].hint)}` : '';
|
|
292
|
+
const checkbox = checked ? `\x1B[32m✔\x1B[0m` : ' ';
|
|
293
|
+
const label = checked
|
|
294
|
+
? `\x1B[36m${options[i].label}\x1B[0m${hint}`
|
|
295
|
+
: `\x1B[2m${options[i].label}${hint}\x1B[0m`;
|
|
296
|
+
stdout.write(`${ERASE_LINE}\r [${checkbox}] ${label}\n`);
|
|
297
|
+
}
|
|
298
|
+
stdout.write('\n');
|
|
299
|
+
resolve(Array.from(selected).sort().map(i => options[i].value));
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
// Ctrl+C
|
|
303
|
+
if (key === '\x03') {
|
|
304
|
+
cleanup();
|
|
305
|
+
stdout.write('\n');
|
|
306
|
+
process.exit(130);
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
function cleanup() {
|
|
310
|
+
stdin.removeListener('data', onData);
|
|
311
|
+
stdin.setRawMode(false);
|
|
312
|
+
stdout.write(SHOW_CURSOR);
|
|
313
|
+
if (_rl)
|
|
314
|
+
_rl.resume();
|
|
315
|
+
}
|
|
316
|
+
stdin.on('data', onData);
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
// ── Number-based multiselect (piped / non-TTY) ────────────────────
|
|
320
|
+
async function multiselectNumbered(message, options) {
|
|
321
|
+
console.log(`\n ${message}\n`);
|
|
322
|
+
options.forEach((opt, i) => {
|
|
323
|
+
const hint = opt.hint ? ` — ${opt.hint}` : '';
|
|
324
|
+
console.log(` ${i + 1}) ${opt.label}${hint}`);
|
|
325
|
+
});
|
|
326
|
+
const preselected = options
|
|
327
|
+
.map((opt, i) => (opt.selected ? i + 1 : null))
|
|
328
|
+
.filter((n) => n !== null);
|
|
329
|
+
const defaultHint = preselected.length > 0 ? preselected.join(',') : 'none';
|
|
330
|
+
const answer = await nextLine(`\n Select [comma-separated, e.g. 1,3] or Enter for ${defaultHint}: `);
|
|
331
|
+
if (!answer.trim()) {
|
|
332
|
+
return preselected.map(n => options[n - 1].value);
|
|
333
|
+
}
|
|
334
|
+
const nums = answer.split(',').map(s => parseInt(s.trim(), 10));
|
|
335
|
+
const result = [];
|
|
336
|
+
for (const num of nums) {
|
|
337
|
+
if (num >= 1 && num <= options.length) {
|
|
338
|
+
result.push(options[num - 1].value);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
return result;
|
|
342
|
+
}
|
|
200
343
|
//# sourceMappingURL=prompt.js.map
|
package/dist/cli/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/cli/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkB,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG7C,qEAAqE;AAErE,MAAM,GAAG,GAAG,MAAM,CAAC;AACnB,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACtB,MAAM,WAAW,GAAG,GAAG,GAAG,MAAM,CAAC;AACjC,MAAM,WAAW,GAAG,GAAG,GAAG,MAAM,CAAC;AACjC,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC;AAE9B,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,CAAC;AAED,qEAAqE;AACrE,qEAAqE;AACrE,+DAA+D;AAC/D,qEAAqE;AACrE,oEAAoE;AACpE,EAAE;AACF,oEAAoE;AACpE,mEAAmE;AACnE,gCAAgC;AAEhC,IAAI,GAAG,GAAqB,IAAI,CAAC;AACjC,MAAM,WAAW,GAAa,EAAE,CAAC;AACjC,IAAI,aAAa,GAAqC,IAAI,CAAC;AAE3D,SAAS,QAAQ;IACf,IAAI,GAAG;QAAE,OAAO;IAChB,GAAG,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxD,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QAC9B,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,aAAa,CAAC;YAC9B,aAAa,GAAG,IAAI,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,GAAG,GAAG,IAAI,CAAC;QACX,mEAAmE;QACnE,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,aAAa,CAAC;YAC9B,aAAa,GAAG,IAAI,CAAC;YACrB,OAAO,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,QAAQ,CAAC,MAAc;IACpC,QAAQ,EAAE,CAAC;IACX,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAG,CAAC;QAClC,8DAA8D;QAC9D,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACrC,aAAa,GAAG,OAAO,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,YAAY;IAC1B,IAAI,GAAG,EAAE,CAAC;QACR,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,GAAG,IAAI,CAAC;QACX,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,OAAe,EACf,OAAuB;IAEvB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,qEAAqE;AAErE,SAAS,aAAa,CACpB,OAAuB,EACvB,MAAc,EACd,OAAgB;IAEhB,iEAAiE;IACjE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,CAAC,KAAK,MAAM,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,MAAM;YAClB,CAAC,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,EAAE;YAC7C,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,SAAS,MAAM,IAAI,KAAK,IAAI,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAe,EACf,OAAuB;IAEvB,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACrC,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,yDAAyD;QACzD,IAAI,GAAG;YAAE,GAAG,CAAC,KAAK,EAAE,CAAC;QAErB,MAAM,CAAC,KAAK,CAAC,OAAO,OAAO,MAAM,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1B,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAErC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,MAAM,MAAM,GAAG,CAAC,IAAY,EAAQ,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE5B,gBAAgB;YAChB,IAAI,GAAG,KAAK,GAAG,GAAG,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;gBACtC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBACxD,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBACtC,OAAO;YACT,CAAC;YAED,kBAAkB;YAClB,IAAI,GAAG,KAAK,GAAG,GAAG,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;gBACtC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBACvC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBACtC,OAAO;YACT,CAAC;YAED,QAAQ;YACR,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjC,OAAO,EAAE,CAAC;gBACV,6DAA6D;gBAC7D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxC,MAAM,MAAM,GAAG,CAAC,KAAK,MAAM,CAAC;oBAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,MAAM,KAAK,GAAG,MAAM;wBAClB,CAAC,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,EAAE;wBAC7C,CAAC,CAAC,UAAU,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC;oBAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;oBAClC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,SAAS,MAAM,IAAI,KAAK,IAAI,CAAC,CAAC;gBAC1D,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC/B,OAAO;YACT,CAAC;YAED,SAAS;YACT,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;QAEF,SAAS,OAAO;YACd,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACrC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC1B,iDAAiD;YACjD,IAAI,GAAG;gBAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC;QAED,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,qEAAqE;AAErE,KAAK,UAAU,cAAc,CAC3B,OAAe,EACf,OAAuB;IAEvB,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAI,MAAgC,CAAC;IACrC,OAAO,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;QACpE,oDAAoD;QACpD,IAAI,MAAM,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,2CAA2C,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAAe,EACf,UAAU,GAAG,IAAI;IAEjB,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,OAAO,IAAI,IAAI,GAAG,CAAC,CAAC;IAEvD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,UAAU,CAAC;IACtC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC"}
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/cli/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,21 @@ export interface McpEnvRequirement {
|
|
|
7
7
|
/** Short description of where to get the key */
|
|
8
8
|
hint: string;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Skills to EXCLUDE — all tool-specific skills that are NOT selected.
|
|
12
|
+
*/
|
|
10
13
|
export declare function getExcludedSkills(stack: StackConfig): Set<string>;
|
|
14
|
+
/**
|
|
15
|
+
* Plugin IDs to INCLUDE — the user's selected tools.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getIncludedPluginIds(stack: StackConfig): Set<string>;
|
|
18
|
+
/**
|
|
19
|
+
* Agents to EXCLUDE — content-engineer if no CMS, database-engineer if no DB.
|
|
20
|
+
*/
|
|
11
21
|
export declare function getExcludedAgents(stack: StackConfig): Set<string>;
|
|
22
|
+
/**
|
|
23
|
+
* MCP servers to INCLUDE — core + selected tools + auto-detected from repo.
|
|
24
|
+
*/
|
|
12
25
|
export declare function getIncludedMcpServers(stack: StackConfig, repoInfo?: RepoInfo): Set<string>;
|
|
13
26
|
/**
|
|
14
27
|
* Returns env var requirements for the MCP servers included in the stack.
|
|
@@ -22,4 +35,14 @@ export declare function getRequiredMcpEnvVars(stack: StackConfig, repoInfo?: Rep
|
|
|
22
35
|
* Used by all adapters when copying the `customizations/` directory.
|
|
23
36
|
*/
|
|
24
37
|
export declare function getCustomizationsTransform(stack: StackConfig): NonNullable<CopyDirOptions['transform']>;
|
|
38
|
+
/**
|
|
39
|
+
* Compute tool injections per agent based on the user's selected stack.
|
|
40
|
+
* Returns a Map where key = agent name (e.g. 'content-engineer'), value = tools to inject.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getAgentToolInjections(stack: StackConfig): Map<string, string[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Returns a transform callback that injects plugin-specific tools
|
|
45
|
+
* into agent file frontmatter based on the user's stack selection.
|
|
46
|
+
*/
|
|
47
|
+
export declare function getAgentTransform(stack: StackConfig): NonNullable<CopyDirOptions['transform']>;
|
|
25
48
|
//# sourceMappingURL=stack-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-config.d.ts","sourceRoot":"","sources":["../../src/cli/stack-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"stack-config.d.ts","sourceRoot":"","sources":["../../src/cli/stack-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA0C5F,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;CACd;AAkBD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAIjE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAEpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CASjE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAwB1F;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,iBAAiB,EAAE,CAGlG;AAID;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,WAAW,GACjB,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAO1C;AAsCD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAgBhF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,GACjB,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAoC1C"}
|
package/dist/cli/stack-config.js
CHANGED
|
@@ -1,135 +1,80 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
convex: { tech: 'Convex', skill: 'convex-database' },
|
|
12
|
-
};
|
|
13
|
-
/** Display name for each PM choice */
|
|
14
|
-
const PM_LABELS = {
|
|
15
|
-
linear: { tech: 'Linear', skill: 'task-management' },
|
|
16
|
-
jira: { tech: 'Jira', skill: 'jira-management' },
|
|
17
|
-
};
|
|
18
|
-
/** Display name for each notifications choice */
|
|
19
|
-
const NOTIF_LABELS = {
|
|
20
|
-
slack: { tech: 'Slack', skill: 'slack-notifications' },
|
|
21
|
-
teams: { tech: 'Teams', skill: 'teams-notifications' },
|
|
22
|
-
};
|
|
23
|
-
// ── Exclusion / inclusion maps ────────────────────────────────
|
|
24
|
-
/** Skills to EXCLUDE based on CMS choice */
|
|
25
|
-
const CMS_SKILL_MAP = {
|
|
26
|
-
sanity: ['contentful-cms', 'strapi-cms'],
|
|
27
|
-
contentful: ['sanity-cms', 'strapi-cms'],
|
|
28
|
-
strapi: ['sanity-cms', 'contentful-cms'],
|
|
29
|
-
none: ['sanity-cms', 'contentful-cms', 'strapi-cms'],
|
|
30
|
-
};
|
|
31
|
-
/** Skills to EXCLUDE based on DB choice */
|
|
32
|
-
const DB_SKILL_MAP = {
|
|
33
|
-
supabase: ['convex-database'],
|
|
34
|
-
convex: ['supabase-database'],
|
|
35
|
-
none: ['supabase-database', 'convex-database'],
|
|
36
|
-
};
|
|
37
|
-
/** Skills to EXCLUDE based on PM choice */
|
|
38
|
-
const PM_SKILL_MAP = {
|
|
39
|
-
linear: ['jira-management'],
|
|
40
|
-
jira: ['task-management'],
|
|
41
|
-
none: ['task-management', 'jira-management'],
|
|
42
|
-
};
|
|
43
|
-
/** Agents to EXCLUDE based on CMS choice */
|
|
44
|
-
const CMS_AGENT_EXCLUSIONS = {
|
|
45
|
-
sanity: [],
|
|
46
|
-
contentful: [],
|
|
47
|
-
strapi: [],
|
|
48
|
-
none: ['content-engineer.agent.md'],
|
|
49
|
-
};
|
|
50
|
-
/** Agents to EXCLUDE based on DB choice */
|
|
51
|
-
const DB_AGENT_EXCLUSIONS = {
|
|
52
|
-
supabase: [],
|
|
53
|
-
convex: [],
|
|
54
|
-
none: ['database-engineer.agent.md'],
|
|
55
|
-
};
|
|
56
|
-
/** MCP server keys to INCLUDE based on CMS choice */
|
|
57
|
-
const CMS_MCP_MAP = {
|
|
58
|
-
sanity: ['Sanity'],
|
|
59
|
-
contentful: ['Contentful'],
|
|
60
|
-
strapi: ['Strapi'],
|
|
61
|
-
none: [],
|
|
62
|
-
};
|
|
63
|
-
/** MCP server keys to INCLUDE based on DB choice */
|
|
64
|
-
const DB_MCP_MAP = {
|
|
65
|
-
supabase: ['Supabase'],
|
|
66
|
-
convex: ['Convex'],
|
|
67
|
-
none: [],
|
|
68
|
-
};
|
|
69
|
-
/** MCP server keys to INCLUDE based on PM choice */
|
|
70
|
-
const PM_MCP_MAP = {
|
|
71
|
-
linear: ['Linear'],
|
|
72
|
-
jira: ['Jira'],
|
|
73
|
-
none: [],
|
|
74
|
-
};
|
|
75
|
-
/** Skills to EXCLUDE based on notifications choice */
|
|
76
|
-
const NOTIF_SKILL_MAP = {
|
|
77
|
-
slack: ['teams-notifications'],
|
|
78
|
-
teams: ['slack-notifications'],
|
|
79
|
-
none: ['slack-notifications', 'teams-notifications'],
|
|
80
|
-
};
|
|
81
|
-
/** MCP server keys to INCLUDE based on notifications choice */
|
|
82
|
-
const NOTIF_MCP_MAP = {
|
|
83
|
-
slack: ['Slack'],
|
|
84
|
-
teams: ['Teams'],
|
|
85
|
-
none: [],
|
|
86
|
-
};
|
|
87
|
-
/** Always-included MCP servers */
|
|
88
|
-
const CORE_MCP_SERVERS = ['chrome-devtools'];
|
|
89
|
-
/** MCP servers included only when detected in the repo */
|
|
1
|
+
import { PLUGINS, TECH_PLUGINS, TEAM_PLUGINS, CMS_PLUGINS, DB_PLUGINS, ALL_PLUGIN_SKILL_NAMES, getSelectedSkillNames, } from '../orchestrator/plugins/index.js';
|
|
2
|
+
/** All tech-tool metadata — derived from plugin configs. */
|
|
3
|
+
const TECH_TOOL_INFO = Object.fromEntries(TECH_PLUGINS.map((p) => [p.id, { tech: p.name, skill: p.skillName, mcpServer: p.mcpServerKey }]));
|
|
4
|
+
/** All team-tool metadata — derived from plugin configs. */
|
|
5
|
+
const TEAM_TOOL_INFO = Object.fromEntries(TEAM_PLUGINS.map((p) => [p.id, { tech: p.name, skill: p.skillName, mcpServer: p.mcpServerKey }]));
|
|
6
|
+
/** CMS-related tech tools. */
|
|
7
|
+
const CMS_TOOLS = CMS_PLUGINS.map((p) => p.id);
|
|
8
|
+
/** Database-related tech tools. */
|
|
9
|
+
const DB_TOOLS = DB_PLUGINS.map((p) => p.id);
|
|
10
|
+
/** MCP servers auto-included when detected in the repo. */
|
|
90
11
|
const DETECTED_MCP_MAP = {
|
|
91
12
|
vercel: 'Vercel',
|
|
92
13
|
};
|
|
93
14
|
/**
|
|
94
15
|
* Registry of MCP servers that require API keys via environment variables.
|
|
95
|
-
*
|
|
96
|
-
|
|
16
|
+
* Derived from plugin configs — only plugins with envVars are included.
|
|
17
|
+
*/
|
|
18
|
+
const MCP_ENV_REQUIREMENTS = Object.values(PLUGINS)
|
|
19
|
+
.filter((p) => p.envVars.length > 0 && p.mcpServerKey)
|
|
20
|
+
.flatMap((p) => p.envVars.map((ev) => ({
|
|
21
|
+
server: p.mcpServerKey,
|
|
22
|
+
envVar: ev.name,
|
|
23
|
+
hint: ev.hint,
|
|
24
|
+
})));
|
|
25
|
+
// ── Exported helpers ──────────────────────────────────────────
|
|
26
|
+
/**
|
|
27
|
+
* Skills to EXCLUDE — all tool-specific skills that are NOT selected.
|
|
97
28
|
*/
|
|
98
|
-
const MCP_ENV_REQUIREMENTS = [
|
|
99
|
-
{
|
|
100
|
-
server: 'Linear',
|
|
101
|
-
envVar: 'LINEAR_API_KEY',
|
|
102
|
-
hint: 'Create at linear.app → Settings → API → Personal API keys',
|
|
103
|
-
},
|
|
104
|
-
];
|
|
105
29
|
export function getExcludedSkills(stack) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
...PM_SKILL_MAP[stack.pm ?? 'none'],
|
|
110
|
-
...NOTIF_SKILL_MAP[stack.notifications ?? 'none'],
|
|
111
|
-
]);
|
|
30
|
+
const selectedIds = [...stack.techTools, ...stack.teamTools];
|
|
31
|
+
const includedSkills = new Set(getSelectedSkillNames(selectedIds));
|
|
32
|
+
return new Set(ALL_PLUGIN_SKILL_NAMES.filter((s) => !includedSkills.has(s)));
|
|
112
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Plugin IDs to INCLUDE — the user's selected tools.
|
|
36
|
+
*/
|
|
37
|
+
export function getIncludedPluginIds(stack) {
|
|
38
|
+
return new Set([...stack.techTools, ...stack.teamTools]);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Agents to EXCLUDE — content-engineer if no CMS, database-engineer if no DB.
|
|
42
|
+
*/
|
|
113
43
|
export function getExcludedAgents(stack) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
44
|
+
const excluded = new Set();
|
|
45
|
+
const hasCms = stack.techTools.some((t) => CMS_TOOLS.includes(t));
|
|
46
|
+
const hasDb = stack.techTools.some((t) => DB_TOOLS.includes(t));
|
|
47
|
+
if (!hasCms)
|
|
48
|
+
excluded.add('content-engineer.agent.md');
|
|
49
|
+
if (!hasDb)
|
|
50
|
+
excluded.add('database-engineer.agent.md');
|
|
51
|
+
return excluded;
|
|
118
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* MCP servers to INCLUDE — core + selected tools + auto-detected from repo.
|
|
55
|
+
*/
|
|
119
56
|
export function getIncludedMcpServers(stack, repoInfo) {
|
|
120
|
-
const servers = new Set(
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
57
|
+
const servers = new Set();
|
|
58
|
+
for (const tool of stack.techTools) {
|
|
59
|
+
const server = TECH_TOOL_INFO[tool]?.mcpServer;
|
|
60
|
+
if (server)
|
|
61
|
+
servers.add(server);
|
|
62
|
+
}
|
|
63
|
+
for (const tool of stack.teamTools) {
|
|
64
|
+
const server = TEAM_TOOL_INFO[tool]?.mcpServer;
|
|
65
|
+
if (server)
|
|
66
|
+
servers.add(server);
|
|
67
|
+
}
|
|
127
68
|
// Add servers for detected deployment targets
|
|
128
69
|
for (const dep of repoInfo?.deployment ?? []) {
|
|
129
70
|
const server = DETECTED_MCP_MAP[dep];
|
|
130
71
|
if (server)
|
|
131
72
|
servers.add(server);
|
|
132
73
|
}
|
|
74
|
+
// Auto-detect NX from monorepo info
|
|
75
|
+
if (repoInfo?.monorepo === 'nx' && !stack.techTools.includes('nx')) {
|
|
76
|
+
servers.add('Nx');
|
|
77
|
+
}
|
|
133
78
|
return servers;
|
|
134
79
|
}
|
|
135
80
|
/**
|
|
@@ -149,7 +94,6 @@ export function getRequiredMcpEnvVars(stack, repoInfo) {
|
|
|
149
94
|
*/
|
|
150
95
|
export function getCustomizationsTransform(stack) {
|
|
151
96
|
return (content, srcPath) => {
|
|
152
|
-
// Pre-fill skill matrix with CMS and DB bindings
|
|
153
97
|
if (srcPath.endsWith('skill-matrix.md')) {
|
|
154
98
|
return transformSkillMatrix(content, stack);
|
|
155
99
|
}
|
|
@@ -162,16 +106,76 @@ export function getCustomizationsTransform(stack) {
|
|
|
162
106
|
*/
|
|
163
107
|
function transformSkillMatrix(content, stack) {
|
|
164
108
|
let result = content;
|
|
165
|
-
//
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
109
|
+
// Find first selected DB tool
|
|
110
|
+
const db = stack.techTools.find((t) => DB_TOOLS.includes(t));
|
|
111
|
+
if (db) {
|
|
112
|
+
const info = TECH_TOOL_INFO[db];
|
|
113
|
+
if (info?.skill) {
|
|
114
|
+
result = result.replace(/(\| `database`\s*\|)\s*\|(\s*\|)/, `$1 ${info.tech} | \`${info.skill}\` $2`);
|
|
115
|
+
}
|
|
169
116
|
}
|
|
170
|
-
//
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
117
|
+
// Find first selected CMS tool
|
|
118
|
+
const cms = stack.techTools.find((t) => CMS_TOOLS.includes(t));
|
|
119
|
+
if (cms) {
|
|
120
|
+
const info = TECH_TOOL_INFO[cms];
|
|
121
|
+
if (info?.skill) {
|
|
122
|
+
result = result.replace(/(\| `cms`\s*\|)\s*\|(\s*\|)/, `$1 ${info.tech} | \`${info.skill}\` $2`);
|
|
123
|
+
}
|
|
174
124
|
}
|
|
175
125
|
return result;
|
|
176
126
|
}
|
|
127
|
+
// ── Agent tool injection ──────────────────────────────────────
|
|
128
|
+
/**
|
|
129
|
+
* Compute tool injections per agent based on the user's selected stack.
|
|
130
|
+
* Returns a Map where key = agent name (e.g. 'content-engineer'), value = tools to inject.
|
|
131
|
+
*/
|
|
132
|
+
export function getAgentToolInjections(stack) {
|
|
133
|
+
const injections = new Map();
|
|
134
|
+
const selectedIds = [...stack.techTools, ...stack.teamTools];
|
|
135
|
+
for (const id of selectedIds) {
|
|
136
|
+
const plugin = PLUGINS[id];
|
|
137
|
+
if (!plugin?.agentToolMap)
|
|
138
|
+
continue;
|
|
139
|
+
for (const [agentName, tools] of Object.entries(plugin.agentToolMap)) {
|
|
140
|
+
const existing = injections.get(agentName) ?? [];
|
|
141
|
+
existing.push(...tools);
|
|
142
|
+
injections.set(agentName, existing);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return injections;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Returns a transform callback that injects plugin-specific tools
|
|
149
|
+
* into agent file frontmatter based on the user's stack selection.
|
|
150
|
+
*/
|
|
151
|
+
export function getAgentTransform(stack) {
|
|
152
|
+
const injections = getAgentToolInjections(stack);
|
|
153
|
+
return (content, srcPath) => {
|
|
154
|
+
// Extract agent name from filename (e.g., 'content-engineer' from 'content-engineer.agent.md')
|
|
155
|
+
const match = srcPath.match(/([^/\\]+)\.agent\.md$/);
|
|
156
|
+
if (!match)
|
|
157
|
+
return content;
|
|
158
|
+
const agentName = match[1];
|
|
159
|
+
const toolsToInject = injections.get(agentName);
|
|
160
|
+
if (!toolsToInject || toolsToInject.length === 0)
|
|
161
|
+
return content;
|
|
162
|
+
// Parse the frontmatter to find the tools array
|
|
163
|
+
const fmMatch = content.match(/^(---\n)([\s\S]*?)\n(---\n)([\s\S]*)$/);
|
|
164
|
+
if (!fmMatch)
|
|
165
|
+
return content;
|
|
166
|
+
const frontmatter = fmMatch[2];
|
|
167
|
+
const body = fmMatch[4];
|
|
168
|
+
// Find and modify the tools line
|
|
169
|
+
const toolsMatch = frontmatter.match(/^(tools:\s*\[)(.*?)(\]\s*)$/m);
|
|
170
|
+
if (!toolsMatch)
|
|
171
|
+
return content;
|
|
172
|
+
const existingTools = toolsMatch[2];
|
|
173
|
+
const injectedToolsList = toolsToInject.map((t) => `'${t}'`).join(', ');
|
|
174
|
+
const newTools = existingTools
|
|
175
|
+
? `${existingTools}, ${injectedToolsList}`
|
|
176
|
+
: injectedToolsList;
|
|
177
|
+
const newFrontmatter = frontmatter.replace(toolsMatch[0], `${toolsMatch[1]}${newTools}${toolsMatch[3]}`);
|
|
178
|
+
return `---\n${newFrontmatter}\n---\n${body}`;
|
|
179
|
+
};
|
|
180
|
+
}
|
|
177
181
|
//# sourceMappingURL=stack-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-config.js","sourceRoot":"","sources":["../../src/cli/stack-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stack-config.js","sourceRoot":"","sources":["../../src/cli/stack-config.ts"],"names":[],"mappings":"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"}
|