opencastle 0.30.0 → 0.31.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 (36) hide show
  1. package/dist/cli/pipeline.d.ts +2 -1
  2. package/dist/cli/pipeline.d.ts.map +1 -1
  3. package/dist/cli/pipeline.js +123 -60
  4. package/dist/cli/pipeline.js.map +1 -1
  5. package/dist/cli/pipeline.test.js +82 -143
  6. package/dist/cli/pipeline.test.js.map +1 -1
  7. package/dist/cli/plan.d.ts +9 -1
  8. package/dist/cli/plan.d.ts.map +1 -1
  9. package/dist/cli/plan.js +120 -11
  10. package/dist/cli/plan.js.map +1 -1
  11. package/dist/cli/run/adapters/copilot.d.ts +1 -0
  12. package/dist/cli/run/adapters/copilot.d.ts.map +1 -1
  13. package/dist/cli/run/adapters/copilot.js +11 -1
  14. package/dist/cli/run/adapters/copilot.js.map +1 -1
  15. package/dist/cli/run/adapters/index.d.ts +5 -0
  16. package/dist/cli/run/adapters/index.d.ts.map +1 -1
  17. package/dist/cli/run/adapters/index.js +13 -0
  18. package/dist/cli/run/adapters/index.js.map +1 -1
  19. package/dist/cli/run.d.ts.map +1 -1
  20. package/dist/cli/run.js +62 -9
  21. package/dist/cli/run.js.map +1 -1
  22. package/dist/cli/types.d.ts +2 -0
  23. package/dist/cli/types.d.ts.map +1 -1
  24. package/package.json +1 -1
  25. package/src/cli/pipeline.test.ts +82 -140
  26. package/src/cli/pipeline.ts +145 -62
  27. package/src/cli/plan.ts +130 -12
  28. package/src/cli/run/adapters/copilot.ts +11 -1
  29. package/src/cli/run/adapters/index.ts +13 -0
  30. package/src/cli/run.ts +60 -9
  31. package/src/cli/types.ts +2 -0
  32. package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
  33. package/src/orchestrator/prompts/assess-complexity.prompt.md +67 -0
  34. package/src/orchestrator/prompts/generate-convoy.prompt.md +14 -24
  35. package/src/orchestrator/prompts/generate-prd.prompt.md +25 -36
  36. package/src/orchestrator/prompts/validate-prd.prompt.md +1 -1
@@ -1,141 +1,78 @@
1
1
  import { describe, it, expect } from 'vitest';
2
2
  import { parseComplexityAssessment } from './pipeline.js';
3
- const SINGLE_PRD = `# My Feature — PRD
4
-
5
- ## Overview
6
- Some overview.
7
-
8
- ## Risks & Open Questions
9
- None identified.
10
-
11
- ## Complexity Assessment
12
-
13
- \`\`\`json
14
- {
15
- "total_tasks": 4,
16
- "total_phases": 2,
17
- "domains": ["api", "frontend"],
18
- "estimated_duration_minutes": 60,
19
- "complexity": "medium",
20
- "recommended_strategy": "single",
21
- "chain_rationale": "",
22
- "convoy_groups": [
23
- {
24
- "name": "full-implementation",
25
- "description": "All phases in a single convoy",
26
- "phases": [1, 2],
27
- "depends_on": []
28
- }
29
- ]
30
- }
31
- \`\`\`
32
- `;
33
- const CHAIN_PRD = `# Big Feature — PRD
34
-
35
- ## Overview
36
- Big feature.
37
-
38
- ## Risks & Open Questions
39
- None identified.
40
-
41
- ## Complexity Assessment
42
-
43
- \`\`\`json
44
- {
45
- "total_tasks": 12,
46
- "total_phases": 4,
47
- "domains": ["database", "api", "frontend", "testing"],
48
- "estimated_duration_minutes": 240,
49
- "complexity": "high",
50
- "recommended_strategy": "chain",
51
- "chain_rationale": "Database schema changes have no frontend dependencies and can be validated independently.",
52
- "convoy_groups": [
53
- {
54
- "name": "database-setup",
55
- "description": "Schema changes and migrations",
56
- "phases": [1],
57
- "depends_on": []
58
- },
59
- {
60
- "name": "api-integration",
61
- "description": "API routes and server logic",
62
- "phases": [2],
63
- "depends_on": ["database-setup"]
64
- },
65
- {
66
- "name": "frontend-testing",
67
- "description": "UI components and test suite",
68
- "phases": [3, 4],
69
- "depends_on": ["api-integration"]
70
- }
71
- ]
72
- }
73
- \`\`\`
74
- `;
75
- const NO_SECTION_PRD = `# Feature — PRD
76
-
77
- ## Overview
78
- Plain prd with no complexity section.
79
-
80
- ## Risks & Open Questions
81
- None.
82
- `;
83
- const MALFORMED_JSON_PRD = `# Feature — PRD
84
-
85
- ## Complexity Assessment
86
-
87
- \`\`\`json
88
- { "total_tasks": 3, "broken":
89
- \`\`\`
90
- `;
91
- const UNFENCED_JSON_PRD = `# Feature — PRD
92
-
93
- ## Complexity Assessment
94
-
95
- The complexity is medium.
96
-
97
- total_tasks: 3, total_phases: 2
98
- `;
99
- const OTHER_JSON_PRD = `# Feature — PRD
100
-
101
- ## Overview
102
- Some feature with json-like content: \`{"key": "value"}\`
103
-
104
- Another block:
105
- \`\`\`json
106
- {"not": "complexity"}
107
- \`\`\`
108
-
109
- ## Complexity Assessment
110
-
111
- \`\`\`json
112
- {
113
- "total_tasks": 6,
114
- "total_phases": 3,
115
- "domains": ["api", "frontend"],
116
- "complexity": "medium",
117
- "recommended_strategy": "single",
118
- "convoy_groups": [
119
- {
120
- "name": "impl",
121
- "description": "All phases",
122
- "phases": [1, 2, 3],
123
- "depends_on": []
124
- }
125
- ]
126
- }
127
- \`\`\`
128
- `;
3
+ const SINGLE_JSON = JSON.stringify({
4
+ original_prompt: 'Build a REST API with user auth',
5
+ total_tasks: 4,
6
+ total_phases: 2,
7
+ domains: ['api', 'frontend'],
8
+ estimated_duration_minutes: 60,
9
+ complexity: 'medium',
10
+ recommended_strategy: 'single',
11
+ chain_rationale: '',
12
+ convoy_groups: [
13
+ {
14
+ name: 'full-implementation',
15
+ description: 'All phases in a single convoy',
16
+ phases: [1, 2],
17
+ depends_on: [],
18
+ },
19
+ ],
20
+ });
21
+ const CHAIN_JSON = JSON.stringify({
22
+ original_prompt: 'Build a full-stack e-commerce platform',
23
+ total_tasks: 12,
24
+ total_phases: 4,
25
+ domains: ['database', 'api', 'frontend', 'testing'],
26
+ estimated_duration_minutes: 240,
27
+ complexity: 'high',
28
+ recommended_strategy: 'chain',
29
+ chain_rationale: 'Database schema changes have no frontend dependencies and can be validated independently.',
30
+ convoy_groups: [
31
+ {
32
+ name: 'database-setup',
33
+ description: 'Schema changes and migrations',
34
+ phases: [1],
35
+ depends_on: [],
36
+ },
37
+ {
38
+ name: 'api-integration',
39
+ description: 'API routes and server logic',
40
+ phases: [2],
41
+ depends_on: ['database-setup'],
42
+ },
43
+ {
44
+ name: 'frontend-testing',
45
+ description: 'UI components and test suite',
46
+ phases: [3, 4],
47
+ depends_on: ['api-integration'],
48
+ },
49
+ ],
50
+ });
51
+ const MINIMAL_JSON = JSON.stringify({
52
+ original_prompt: 'Add a health-check endpoint',
53
+ total_tasks: 3,
54
+ total_phases: 1,
55
+ domains: ['api'],
56
+ complexity: 'low',
57
+ recommended_strategy: 'single',
58
+ convoy_groups: [
59
+ { name: 'all', description: 'All', phases: [1], depends_on: [] },
60
+ ],
61
+ });
129
62
  describe('parseComplexityAssessment', () => {
130
- it('returns null when PRD has no Complexity Assessment section', () => {
131
- expect(parseComplexityAssessment(NO_SECTION_PRD)).toBeNull();
63
+ it('returns null for empty string', () => {
64
+ expect(parseComplexityAssessment('')).toBeNull();
132
65
  });
133
66
  it('returns null when JSON is malformed', () => {
134
- expect(parseComplexityAssessment(MALFORMED_JSON_PRD)).toBeNull();
67
+ expect(parseComplexityAssessment('{ "total_tasks": 3, "broken": ')).toBeNull();
68
+ });
69
+ it('returns null for plain text that is not JSON', () => {
70
+ expect(parseComplexityAssessment('The complexity is medium.')).toBeNull();
135
71
  });
136
72
  it('parses a valid single strategy assessment', () => {
137
- const result = parseComplexityAssessment(SINGLE_PRD);
73
+ const result = parseComplexityAssessment(SINGLE_JSON);
138
74
  expect(result).not.toBeNull();
75
+ expect(result?.original_prompt).toBe('Build a REST API with user auth');
139
76
  expect(result?.recommended_strategy).toBe('single');
140
77
  expect(result?.complexity).toBe('medium');
141
78
  expect(result?.total_tasks).toBe(4);
@@ -145,7 +82,7 @@ describe('parseComplexityAssessment', () => {
145
82
  expect(result?.convoy_groups[0].name).toBe('full-implementation');
146
83
  });
147
84
  it('parses a valid chain strategy assessment with multiple groups', () => {
148
- const result = parseComplexityAssessment(CHAIN_PRD);
85
+ const result = parseComplexityAssessment(CHAIN_JSON);
149
86
  expect(result).not.toBeNull();
150
87
  expect(result?.recommended_strategy).toBe('chain');
151
88
  expect(result?.complexity).toBe('high');
@@ -155,24 +92,26 @@ describe('parseComplexityAssessment', () => {
155
92
  expect(result?.convoy_groups[2].phases).toEqual([3, 4]);
156
93
  });
157
94
  it('handles missing optional fields gracefully', () => {
158
- const prd = `# Feature — PRD\n\n## Complexity Assessment\n\n\`\`\`json\n{\n "total_tasks": 3,\n "total_phases": 1,\n "domains": ["api"],\n "complexity": "low",\n "recommended_strategy": "single",\n "convoy_groups": [{"name": "all", "description": "All", "phases": [1], "depends_on": []}]\n}\n\`\`\`\n`;
159
- const result = parseComplexityAssessment(prd);
95
+ const result = parseComplexityAssessment(MINIMAL_JSON);
160
96
  expect(result).not.toBeNull();
161
97
  expect(result?.estimated_duration_minutes).toBeUndefined();
162
98
  expect(result?.chain_rationale).toBeUndefined();
163
99
  });
164
- it('returns null when JSON block is not fenced properly', () => {
165
- expect(parseComplexityAssessment(UNFENCED_JSON_PRD)).toBeNull();
100
+ it('returns null when required fields are missing from JSON', () => {
101
+ expect(parseComplexityAssessment('{"total_tasks": 3}')).toBeNull();
102
+ });
103
+ it('returns null when original_prompt is missing', () => {
104
+ const json = JSON.stringify({
105
+ total_tasks: 4, total_phases: 2, domains: ['api'],
106
+ complexity: 'medium', recommended_strategy: 'single',
107
+ convoy_groups: [{ name: 'all', description: 'All', phases: [1], depends_on: [] }],
108
+ });
109
+ expect(parseComplexityAssessment(json)).toBeNull();
166
110
  });
167
- it('correctly extracts JSON even when PRD has other JSON-like content elsewhere', () => {
168
- const result = parseComplexityAssessment(OTHER_JSON_PRD);
111
+ it('parses JSON with extra whitespace', () => {
112
+ const result = parseComplexityAssessment(` \n ${SINGLE_JSON} \n `);
169
113
  expect(result).not.toBeNull();
170
- expect(result?.total_tasks).toBe(6);
171
- expect(result?.recommended_strategy).toBe('single');
172
- });
173
- it('returns null when required fields are missing from JSON', () => {
174
- const prd = `# Feature — PRD\n\n## Complexity Assessment\n\n\`\`\`json\n{"total_tasks": 3}\n\`\`\`\n`;
175
- expect(parseComplexityAssessment(prd)).toBeNull();
114
+ expect(result?.total_tasks).toBe(4);
176
115
  });
177
116
  });
178
117
  //# sourceMappingURL=pipeline.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.test.js","sourceRoot":"","sources":["../../src/cli/pipeline.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.test.js","sourceRoot":"","sources":["../../src/cli/pipeline.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAEzD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,eAAe,EAAE,iCAAiC;IAClD,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;IAC5B,0BAA0B,EAAE,EAAE;IAC9B,UAAU,EAAE,QAAQ;IACpB,oBAAoB,EAAE,QAAQ;IAC9B,eAAe,EAAE,EAAE;IACnB,aAAa,EAAE;QACb;YACE,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,+BAA+B;YAC5C,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACd,UAAU,EAAE,EAAE;SACf;KACF;CACF,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;IAChC,eAAe,EAAE,wCAAwC;IACzD,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,CAAC;IACf,OAAO,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC;IACnD,0BAA0B,EAAE,GAAG;IAC/B,UAAU,EAAE,MAAM;IAClB,oBAAoB,EAAE,OAAO;IAC7B,eAAe,EACb,2FAA2F;IAC7F,aAAa,EAAE;QACb;YACE,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,+BAA+B;YAC5C,MAAM,EAAE,CAAC,CAAC,CAAC;YACX,UAAU,EAAE,EAAE;SACf;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,6BAA6B;YAC1C,MAAM,EAAE,CAAC,CAAC,CAAC;YACX,UAAU,EAAE,CAAC,gBAAgB,CAAC;SAC/B;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,8BAA8B;YAC3C,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACd,UAAU,EAAE,CAAC,iBAAiB,CAAC;SAChC;KACF;CACF,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;IAClC,eAAe,EAAE,6BAA6B;IAC9C,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,UAAU,EAAE,KAAK;IACjB,oBAAoB,EAAE,QAAQ;IAC9B,aAAa,EAAE;QACb,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;KACjE;CACF,CAAC,CAAA;AAEF,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CACJ,yBAAyB,CAAC,gCAAgC,CAAC,CAC5D,CAAC,QAAQ,EAAE,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CACJ,yBAAyB,CAAC,2BAA2B,CAAC,CACvD,CAAC,QAAQ,EAAE,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAA;QACrD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAC7B,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;QACvE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnD,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACzC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAA;QACpD,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC7C,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACnE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,MAAM,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAA;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAC7B,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClD,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACvC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC7C,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC5D,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAA;QACvE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,yBAAyB,CAAC,YAAY,CAAC,CAAA;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAC7B,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC,aAAa,EAAE,CAAA;QAC1D,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,aAAa,EAAE,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IACpE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC;YACjD,UAAU,EAAE,QAAQ,EAAE,oBAAoB,EAAE,QAAQ;YACpD,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;SAClF,CAAC,CAAA;QACF,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,MAAM,GAAG,yBAAyB,CAAC,QAAQ,WAAW,OAAO,CAAC,CAAA;QACpE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAC7B,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import type { CliContext } from './types.js';
2
+ import type { MCPServerConfig } from './convoy/types.js';
2
3
  export interface PromptStepOptions {
3
4
  /** Template name without extension. Default: 'generate-convoy' */
4
5
  template?: string;
@@ -18,6 +19,8 @@ export interface PromptStepOptions {
18
19
  dryRun?: boolean;
19
20
  /** Absolute path to the opencastle package root (for locating prompt templates) */
20
21
  pkgRoot: string;
22
+ /** MCP servers to make available to the AI adapter during execution. */
23
+ mcpServers?: MCPServerConfig[];
21
24
  }
22
25
  export interface PromptStepResult {
23
26
  /** Absolute path the output was written to. null for validation output or dry-run */
@@ -25,7 +28,7 @@ export interface PromptStepResult {
25
28
  /** Raw text returned by the AI adapter (or assembled prompt on dry-run) */
26
29
  rawOutput: string;
27
30
  /** How the output was interpreted */
28
- outputType: 'convoy-spec' | 'prd' | 'validation';
31
+ outputType: 'convoy-spec' | 'prd' | 'validation' | 'json';
29
32
  /** Set when outputType === 'validation' */
30
33
  isValid?: boolean;
31
34
  /** Set when outputType === 'validation' and isValid === false */
@@ -36,5 +39,10 @@ export interface PromptStepResult {
36
39
  * Used by the pipeline command to chain steps programmatically.
37
40
  */
38
41
  export declare function runPromptStep(opts: PromptStepOptions): Promise<PromptStepResult>;
42
+ /**
43
+ * Read MCP server configurations from the project's MCP config file.
44
+ * Checks in priority order: .vscode/mcp.json, .cursor/mcp.json, .claude/mcp.json, mcp.json
45
+ */
46
+ export declare function readProjectMcpServers(projectRoot: string): Promise<MCPServerConfig[]>;
39
47
  export default function plan({ args, pkgRoot }: CliContext): Promise<void>;
40
48
  //# sourceMappingURL=plan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/cli/plan.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAQ,MAAM,YAAY,CAAA;AA0ClD,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,qFAAqF;IACrF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,UAAU,EAAE,aAAa,GAAG,KAAK,GAAG,YAAY,CAAA;IAChD,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAgJD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8HtF;AA4ED,wBAA8B,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAwF/E"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/cli/plan.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAQ,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AA4CxD,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAA;IACf,wEAAwE;IACxE,UAAU,CAAC,EAAE,eAAe,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,qFAAqF;IACrF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,UAAU,EAAE,aAAa,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,CAAA;IACzD,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAsLD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmJtF;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAoC3F;AA4ED,wBAA8B,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAoG/E"}
package/dist/cli/plan.js CHANGED
@@ -2,7 +2,7 @@ import { readFile } from 'node:fs/promises';
2
2
  import { existsSync } from 'node:fs';
3
3
  import { resolve, join, basename } from 'node:path';
4
4
  import { mkdir, writeFile } from 'node:fs/promises';
5
- import { getAdapter, detectAdapter } from './run/adapters/index.js';
5
+ import { getAdapter, detectAdapter, cleanupAdapters } from './run/adapters/index.js';
6
6
  import { parseTaskSpecText } from './run/schema.js';
7
7
  import { c } from './prompt.js';
8
8
  const HELP = `
@@ -16,11 +16,13 @@ const HELP = `
16
16
  --text, -t <text> Inline text to use as {{goal}} (alternative to --file)
17
17
  --template <name> Prompt template name (default: generate-convoy)
18
18
  Built-in templates:
19
- generate-prd — Write a PRD from a feature prompt
20
- validate-prd — Check a PRD for completeness
21
- generate-convoy Generate a convoy spec from a PRD (default)
22
- validate-convoyCheck a convoy spec for correctness
23
- fix-convoy Fix validation errors in a convoy spec
19
+ generate-prd — Write a PRD from a feature prompt
20
+ validate-prd — Check a PRD for completeness
21
+ fix-prd Fix validation errors in a PRD
22
+ assess-complexityAssess PRD complexity (returns JSON)
23
+ generate-convoy Generate a convoy spec from a PRD (default)
24
+ validate-convoy — Check a convoy spec for correctness
25
+ fix-convoy — Fix validation errors in a convoy spec
24
26
  --context <path> Optional path to an additional context file (fills {{context}})
25
27
  --context-text <text> Inline text to fill {{context}} (alternative to --context)
26
28
  --output, -o <path> Output path override (skipped for validation output)
@@ -89,10 +91,19 @@ function parseFrontmatter(text) {
89
91
  }
90
92
  /** Extract YAML content from a fenced ```yaml ... ``` block. */
91
93
  function extractYamlBlock(text) {
92
- const match = text.match(/```ya?ml\s*\n([\s\S]*?)```/);
93
- if (!match)
94
- return null;
95
- return match[1].trim();
94
+ // 1. Prefer explicit yaml/yml fence
95
+ const yamlFence = text.match(/```ya?ml\s*\n([\s\S]*?)```/);
96
+ if (yamlFence)
97
+ return yamlFence[1].trim();
98
+ // 2. Fallback: any code fence whose content looks like a convoy spec
99
+ // Must contain at least `name:` AND `tasks:` to avoid false positives
100
+ const genericFences = [...text.matchAll(/```\s*\n([\s\S]*?)```/g)];
101
+ for (const m of genericFences) {
102
+ const content = m[1].trim();
103
+ if (/^name:/m.test(content) && /^tasks:/m.test(content))
104
+ return content;
105
+ }
106
+ return null;
96
107
  }
97
108
  /**
98
109
  * Derive a .convoy.yml filename from YAML content.
@@ -162,6 +173,31 @@ function parseValidationResult(output) {
162
173
  const errorsMatch = trimmed.match(/(?:Issues|Errors):\s*\n([\s\S]+)/i);
163
174
  return { isValid: false, errors: errorsMatch ? errorsMatch[1].trim() : trimmed };
164
175
  }
176
+ const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
177
+ const TEMPLATE_MESSAGES = {
178
+ 'generate-prd': 'Generating PRD…',
179
+ 'generate-convoy': 'Generating convoy spec…',
180
+ 'validate-prd': 'Validating PRD…',
181
+ 'validate-convoy': 'Validating convoy spec…',
182
+ 'fix-prd': 'Fixing PRD…',
183
+ 'fix-convoy': 'Fixing convoy spec…',
184
+ };
185
+ /** Show an in-place spinner with elapsed time during a long-running adapter call. Returns a stop function. */
186
+ function startProgress(templateName) {
187
+ const message = TEMPLATE_MESSAGES[templateName] ?? `Running ${templateName}…`;
188
+ const startTime = Date.now();
189
+ let frame = 0;
190
+ const interval = setInterval(() => {
191
+ const elapsed = Math.floor((Date.now() - startTime) / 1000);
192
+ const spinner = SPINNER_FRAMES[frame % SPINNER_FRAMES.length];
193
+ process.stdout.write(c.dim(`\r ${spinner} ${message} (${elapsed}s)`));
194
+ frame++;
195
+ }, 250);
196
+ return () => {
197
+ clearInterval(interval);
198
+ process.stdout.write('\r' + ' '.repeat(60) + '\r');
199
+ };
200
+ }
165
201
  // ── Exported programmatic API ───────────────────────────────────────────────
166
202
  /**
167
203
  * Execute a single prompt template step via an AI adapter.
@@ -229,12 +265,33 @@ export async function runPromptStep(opts) {
229
265
  description: frontmatter['description'] ?? templateName,
230
266
  max_retries: 1,
231
267
  };
232
- const execResult = await adapter.execute(task, { verbose: opts.verbose ?? false });
268
+ const stop = opts.verbose ? null : startProgress(templateName);
269
+ let execResult;
270
+ try {
271
+ execResult = await adapter.execute(task, {
272
+ verbose: opts.verbose ?? false,
273
+ ...(opts.mcpServers?.length ? { mcpServers: opts.mcpServers } : {}),
274
+ });
275
+ }
276
+ finally {
277
+ stop?.();
278
+ }
233
279
  const rawOutput = execResult.output;
234
280
  if (outputType === 'validation') {
235
281
  const { isValid, errors } = parseValidationResult(rawOutput);
236
282
  return { outputPath: null, rawOutput, outputType, isValid, errors };
237
283
  }
284
+ if (outputType === 'json') {
285
+ // Extract JSON from fenced block or raw output
286
+ const jsonMatch = rawOutput.match(/```(?:json)?\s*\n([\s\S]*?)```/);
287
+ const jsonContent = jsonMatch ? jsonMatch[1].trim() : rawOutput.trim();
288
+ const outputPath = opts.outputPath ?? null;
289
+ if (outputPath) {
290
+ await mkdir(resolve(outputPath, '..'), { recursive: true });
291
+ await writeFile(outputPath, jsonContent + '\n', 'utf8');
292
+ }
293
+ return { outputPath, rawOutput: jsonContent, outputType };
294
+ }
238
295
  if (outputType === 'prd') {
239
296
  const content = extractMarkdownBody(rawOutput);
240
297
  let outputPath = opts.outputPath ?? null;
@@ -273,6 +330,47 @@ export async function runPromptStep(opts) {
273
330
  await writeFile(outputPath, yamlContent + '\n', 'utf8');
274
331
  return { outputPath, rawOutput, outputType, isValid: schemaValid };
275
332
  }
333
+ /**
334
+ * Read MCP server configurations from the project's MCP config file.
335
+ * Checks in priority order: .vscode/mcp.json, .cursor/mcp.json, .claude/mcp.json, mcp.json
336
+ */
337
+ export async function readProjectMcpServers(projectRoot) {
338
+ const candidates = [
339
+ join(projectRoot, '.vscode', 'mcp.json'),
340
+ join(projectRoot, '.cursor', 'mcp.json'),
341
+ join(projectRoot, '.claude', 'mcp.json'),
342
+ join(projectRoot, 'mcp.json'),
343
+ ];
344
+ for (const filePath of candidates) {
345
+ if (!existsSync(filePath))
346
+ continue;
347
+ try {
348
+ const raw = await readFile(filePath, 'utf8');
349
+ const parsed = JSON.parse(raw);
350
+ // VS Code format: { servers: { name: { type, command, args } } }
351
+ // Cursor/Claude format: { mcpServers: { name: { command, args } } }
352
+ const serversMap = parsed['servers'] ??
353
+ parsed['mcpServers'];
354
+ if (!serversMap || typeof serversMap !== 'object')
355
+ continue;
356
+ return Object.entries(serversMap).map(([name, cfg]) => {
357
+ const c = cfg;
358
+ const server = { name, type: c['type'] ?? 'stdio' };
359
+ if (typeof c['command'] === 'string')
360
+ server.command = c['command'];
361
+ if (Array.isArray(c['args']))
362
+ server.args = c['args'];
363
+ if (typeof c['url'] === 'string')
364
+ server.url = c['url'];
365
+ return server;
366
+ });
367
+ }
368
+ catch {
369
+ return [];
370
+ }
371
+ }
372
+ return [];
373
+ }
276
374
  // ── CLI argument parsing ────────────────────────────────────────────────────
277
375
  function parseArgs(args) {
278
376
  const opts = {
@@ -430,6 +528,16 @@ export default async function plan({ args, pkgRoot }) {
430
528
  console.log(`\n ${c.dim('Next step:')} opencastle plan --file ${relPath} --template validate-prd`);
431
529
  break;
432
530
  }
531
+ case 'json': {
532
+ if (result.outputPath) {
533
+ const relP = result.outputPath.startsWith(process.cwd())
534
+ ? result.outputPath.slice(process.cwd().length + 1)
535
+ : result.outputPath;
536
+ console.log(c.green(` ✓ JSON written to ${relP}`));
537
+ }
538
+ console.log(result.rawOutput);
539
+ break;
540
+ }
433
541
  default: {
434
542
  const relPath = result.outputPath.startsWith(process.cwd())
435
543
  ? result.outputPath.slice(process.cwd().length + 1)
@@ -444,5 +552,6 @@ export default async function plan({ args, pkgRoot }) {
444
552
  `);
445
553
  }
446
554
  }
555
+ await cleanupAdapters();
447
556
  }
448
557
  //# sourceMappingURL=plan.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/cli/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/cli/plan.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,5 @@ export declare function supportsSessionContinuity(): boolean;
4
4
  export declare function isAvailable(): Promise<boolean>;
5
5
  export declare function execute(task: Task, options?: ExecuteOptions): Promise<ExecuteResult>;
6
6
  export declare function kill(task: Task): void;
7
+ export declare function cleanup(): Promise<void>;
7
8
  //# sourceMappingURL=copilot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../../../src/cli/run/adapters/copilot.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,aAAa,EAAc,MAAM,gBAAgB,CAAA;AAGrF,eAAO,MAAM,IAAI,YAAY,CAAA;AAE7B,wBAAgB,yBAAyB,IAAI,OAAO,CAAgB;AAuBpE,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAUpD;AAkMD,wBAAsB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAI9F;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAGrC"}
1
+ {"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../../../src/cli/run/adapters/copilot.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,aAAa,EAAc,MAAM,gBAAgB,CAAA;AAGrF,eAAO,MAAM,IAAI,YAAY,CAAA;AAE7B,wBAAgB,yBAAyB,IAAI,OAAO,CAAgB;AAuBpE,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAUpD;AAkMD,wBAAsB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAI9F;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAGrC;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ7C"}
@@ -98,7 +98,7 @@ async function executeViaSdk(task, options = {}) {
98
98
  } : undefined;
99
99
  return {
100
100
  success: true,
101
- output: output.slice(0, 10_000),
101
+ output: output.slice(0, 100_000),
102
102
  exitCode: 0,
103
103
  usage: usageResult,
104
104
  };
@@ -246,4 +246,14 @@ export function kill(task) {
246
246
  else
247
247
  killCli(task);
248
248
  }
249
+ export async function cleanup() {
250
+ if (clientPromise) {
251
+ try {
252
+ const client = await clientPromise;
253
+ await client.stop();
254
+ }
255
+ catch { /* ignore */ }
256
+ clientPromise = null;
257
+ }
258
+ }
249
259
  //# sourceMappingURL=copilot.js.map