@codemcp/workflows 6.4.0 → 6.5.1
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/package.json +2 -2
- package/packages/cli/dist/{chunk-D2Q6Y3QQ.js → chunk-4AZGS2GG.js} +321 -388
- package/packages/cli/dist/{cli-DXJJF56V.js → cli-ZCCFBQTP.js} +3 -3
- package/packages/cli/dist/{dist-W7PPKVFG.js → dist-I6VSREAJ.js} +11 -5
- package/packages/cli/dist/{dist-W7VMGB3G.js → dist-MW7THWM3.js} +875 -1136
- package/packages/cli/dist/index.js +2 -2
- package/packages/cli/package.json +1 -1
- package/packages/cli/resources/workflows/bugfix.yaml +14 -0
- package/packages/cli/resources/workflows/epcc.yaml +12 -0
- package/packages/cli/resources/workflows/greenfield.yaml +16 -0
- package/packages/cli/resources/workflows/minor.yaml +8 -0
- package/packages/cli/resources/workflows/tdd.yaml +10 -0
- package/packages/cli/resources/workflows/waterfall.yaml +16 -0
- package/packages/core/dist/beads-integration.d.ts +3 -5
- package/packages/core/dist/beads-integration.js +29 -35
- package/packages/core/dist/beads-integration.js.map +1 -1
- package/packages/core/dist/beads-state-manager.d.ts +3 -1
- package/packages/core/dist/beads-state-manager.js +17 -15
- package/packages/core/dist/beads-state-manager.js.map +1 -1
- package/packages/core/dist/file-detection-manager.js +15 -22
- package/packages/core/dist/file-detection-manager.js.map +1 -1
- package/packages/core/dist/index.d.ts +1 -0
- package/packages/core/dist/index.js +1 -0
- package/packages/core/dist/index.js.map +1 -1
- package/packages/core/dist/instruction-generator.d.ts +3 -7
- package/packages/core/dist/instruction-generator.js +17 -25
- package/packages/core/dist/instruction-generator.js.map +1 -1
- package/packages/core/dist/interfaces/instruction-generator.interface.d.ts +13 -4
- package/packages/core/dist/interfaces/plan-manager.interface.d.ts +9 -0
- package/packages/core/dist/logger.d.ts +49 -20
- package/packages/core/dist/logger.js +65 -141
- package/packages/core/dist/logger.js.map +1 -1
- package/packages/core/dist/plan-manager.d.ts +6 -4
- package/packages/core/dist/plan-manager.js +19 -15
- package/packages/core/dist/plan-manager.js.map +1 -1
- package/packages/core/dist/project-docs-manager.d.ts +3 -1
- package/packages/core/dist/project-docs-manager.js +11 -9
- package/packages/core/dist/project-docs-manager.js.map +1 -1
- package/packages/core/dist/state-machine-loader.d.ts +16 -0
- package/packages/core/dist/state-machine-loader.js +29 -0
- package/packages/core/dist/state-machine-loader.js.map +1 -1
- package/packages/core/dist/state-machine-types.d.ts +8 -0
- package/packages/core/dist/string-utils.d.ts +8 -0
- package/packages/core/dist/string-utils.js +14 -0
- package/packages/core/dist/string-utils.js.map +1 -0
- package/packages/core/dist/task-backend.d.ts +6 -3
- package/packages/core/dist/task-backend.js +10 -8
- package/packages/core/dist/task-backend.js.map +1 -1
- package/packages/core/dist/transition-engine.d.ts +3 -6
- package/packages/core/dist/transition-engine.js +31 -76
- package/packages/core/dist/transition-engine.js.map +1 -1
- package/packages/core/dist/workflow-manager.d.ts +2 -0
- package/packages/core/dist/workflow-manager.js +14 -2
- package/packages/core/dist/workflow-manager.js.map +1 -1
- package/packages/core/package.json +1 -1
- package/packages/core/resources/workflows/bugfix.yaml +14 -0
- package/packages/core/resources/workflows/epcc.yaml +12 -0
- package/packages/core/resources/workflows/greenfield.yaml +16 -0
- package/packages/core/resources/workflows/minor.yaml +8 -0
- package/packages/core/resources/workflows/tdd.yaml +10 -0
- package/packages/core/resources/workflows/waterfall.yaml +16 -0
- package/packages/docs/.vitepress/dist/workflows/bugfix.yaml +14 -0
- package/packages/docs/.vitepress/dist/workflows/epcc.yaml +12 -0
- package/packages/docs/.vitepress/dist/workflows/greenfield.yaml +16 -0
- package/packages/docs/.vitepress/dist/workflows/minor.yaml +8 -0
- package/packages/docs/.vitepress/dist/workflows/tdd.yaml +10 -0
- package/packages/docs/.vitepress/dist/workflows/waterfall.yaml +16 -0
- package/packages/docs/package.json +1 -1
- package/packages/mcp-server/dist/index.d.ts +1027 -0
- package/packages/mcp-server/dist/index.js +879 -1140
- package/packages/mcp-server/package.json +1 -1
- package/packages/mcp-server/resources/workflows/bugfix.yaml +14 -0
- package/packages/mcp-server/resources/workflows/epcc.yaml +12 -0
- package/packages/mcp-server/resources/workflows/greenfield.yaml +16 -0
- package/packages/mcp-server/resources/workflows/minor.yaml +8 -0
- package/packages/mcp-server/resources/workflows/tdd.yaml +10 -0
- package/packages/mcp-server/resources/workflows/waterfall.yaml +16 -0
- package/packages/opencode-plugin/dist/index.d.ts +220 -0
- package/packages/opencode-plugin/dist/index.js +28616 -0
- package/packages/opencode-plugin/package.json +55 -0
- package/packages/opencode-plugin/resources/agents/architect.yaml +61 -0
- package/packages/opencode-plugin/resources/agents/business-analyst.yaml +60 -0
- package/packages/opencode-plugin/resources/agents/developer.yaml +61 -0
- package/packages/opencode-plugin/resources/templates/architecture/arc42/arc42-template-EN.md +1077 -0
- package/packages/opencode-plugin/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio-2023.png +0 -0
- package/packages/opencode-plugin/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio.png +0 -0
- package/packages/opencode-plugin/resources/templates/architecture/arc42/images/05_building_blocks-EN.png +0 -0
- package/packages/opencode-plugin/resources/templates/architecture/arc42/images/08-concepts-EN.drawio.png +0 -0
- package/packages/opencode-plugin/resources/templates/architecture/arc42/images/arc42-logo.png +0 -0
- package/packages/opencode-plugin/resources/templates/architecture/c4.md +224 -0
- package/packages/opencode-plugin/resources/templates/architecture/freestyle.md +53 -0
- package/packages/opencode-plugin/resources/templates/architecture/game.md +250 -0
- package/packages/opencode-plugin/resources/templates/architecture/none.md +17 -0
- package/packages/opencode-plugin/resources/templates/design/comprehensive.md +207 -0
- package/packages/opencode-plugin/resources/templates/design/freestyle.md +37 -0
- package/packages/opencode-plugin/resources/templates/design/game.md +66 -0
- package/packages/opencode-plugin/resources/templates/design/none.md +17 -0
- package/packages/opencode-plugin/resources/templates/requirements/ears.md +90 -0
- package/packages/opencode-plugin/resources/templates/requirements/freestyle.md +42 -0
- package/packages/opencode-plugin/resources/templates/requirements/game.md +162 -0
- package/packages/opencode-plugin/resources/templates/requirements/none.md +17 -0
- package/packages/opencode-plugin/resources/templates/skills/POWER.md +23 -0
- package/packages/opencode-plugin/resources/templates/skills/SKILL.md +19 -0
- package/packages/opencode-plugin/resources/workflows/adr.yaml +157 -0
- package/packages/opencode-plugin/resources/workflows/big-bang-conversion.yaml +592 -0
- package/packages/opencode-plugin/resources/workflows/boundary-testing.yaml +376 -0
- package/packages/opencode-plugin/resources/workflows/bugfix.yaml +178 -0
- package/packages/opencode-plugin/resources/workflows/business-analysis.yaml +597 -0
- package/packages/opencode-plugin/resources/workflows/c4-analysis.yaml +471 -0
- package/packages/opencode-plugin/resources/workflows/epcc.yaml +195 -0
- package/packages/opencode-plugin/resources/workflows/game-beginner.yaml +434 -0
- package/packages/opencode-plugin/resources/workflows/greenfield.yaml +217 -0
- package/packages/opencode-plugin/resources/workflows/minor.yaml +146 -0
- package/packages/opencode-plugin/resources/workflows/posts.yaml +193 -0
- package/packages/opencode-plugin/resources/workflows/sdd-bugfix-crowd.yaml +608 -0
- package/packages/opencode-plugin/resources/workflows/sdd-bugfix.yaml +381 -0
- package/packages/opencode-plugin/resources/workflows/sdd-feature-crowd.yaml +713 -0
- package/packages/opencode-plugin/resources/workflows/sdd-feature.yaml +471 -0
- package/packages/opencode-plugin/resources/workflows/sdd-greenfield-crowd.yaml +336 -0
- package/packages/opencode-plugin/resources/workflows/sdd-greenfield.yaml +463 -0
- package/packages/opencode-plugin/resources/workflows/skilled-bugfix.yaml +174 -0
- package/packages/opencode-plugin/resources/workflows/skilled-epcc.yaml +171 -0
- package/packages/opencode-plugin/resources/workflows/skilled-greenfield.yaml +207 -0
- package/packages/opencode-plugin/resources/workflows/slides.yaml +237 -0
- package/packages/opencode-plugin/resources/workflows/tdd.yaml +170 -0
- package/packages/opencode-plugin/resources/workflows/waterfall.yaml +225 -0
- package/packages/opencode-tui-plugin/package.json +46 -0
- package/packages/visualizer/package.json +1 -1
- package/resources/workflows/bugfix.yaml +14 -0
- package/resources/workflows/epcc.yaml +12 -0
- package/resources/workflows/greenfield.yaml +16 -0
- package/resources/workflows/minor.yaml +8 -0
- package/resources/workflows/tdd.yaml +10 -0
- package/resources/workflows/waterfall.yaml +16 -0
|
@@ -8,14 +8,16 @@
|
|
|
8
8
|
import { writeFile, readFile, mkdir, access } from 'node:fs/promises';
|
|
9
9
|
import { join, dirname } from 'node:path';
|
|
10
10
|
import { createLogger } from './logger.js';
|
|
11
|
-
const
|
|
11
|
+
const defaultLogger = createLogger('BeadsStateManager');
|
|
12
12
|
/**
|
|
13
13
|
* Manager for beads conversation state persistence
|
|
14
14
|
*/
|
|
15
15
|
export class BeadsStateManager {
|
|
16
16
|
projectPath;
|
|
17
|
-
|
|
17
|
+
logger;
|
|
18
|
+
constructor(projectPath, logger = defaultLogger) {
|
|
18
19
|
this.projectPath = projectPath;
|
|
20
|
+
this.logger = logger;
|
|
19
21
|
}
|
|
20
22
|
/**
|
|
21
23
|
* Get the path to the beads state file for a conversation
|
|
@@ -36,7 +38,7 @@ export class BeadsStateManager {
|
|
|
36
38
|
updatedAt: new Date().toISOString(),
|
|
37
39
|
};
|
|
38
40
|
await this.saveState(state);
|
|
39
|
-
logger.info('Created beads conversation state', {
|
|
41
|
+
this.logger.info('Created beads conversation state', {
|
|
40
42
|
conversationId,
|
|
41
43
|
epicId,
|
|
42
44
|
phaseCount: phaseTasks.length,
|
|
@@ -54,7 +56,7 @@ export class BeadsStateManager {
|
|
|
54
56
|
await access(statePath);
|
|
55
57
|
const content = await readFile(statePath, 'utf-8');
|
|
56
58
|
const state = JSON.parse(content);
|
|
57
|
-
logger.debug('Retrieved beads conversation state', {
|
|
59
|
+
this.logger.debug('Retrieved beads conversation state', {
|
|
58
60
|
conversationId,
|
|
59
61
|
epicId: state.epicId,
|
|
60
62
|
phaseCount: state.phaseTasks.length,
|
|
@@ -65,7 +67,7 @@ export class BeadsStateManager {
|
|
|
65
67
|
catch (error) {
|
|
66
68
|
if (error.code === 'ENOENT') {
|
|
67
69
|
// File doesn't exist - this is normal for conversations without beads
|
|
68
|
-
logger.debug('No beads state found for conversation', {
|
|
70
|
+
this.logger.debug('No beads state found for conversation', {
|
|
69
71
|
conversationId,
|
|
70
72
|
projectPath: this.projectPath,
|
|
71
73
|
});
|
|
@@ -73,7 +75,7 @@ export class BeadsStateManager {
|
|
|
73
75
|
}
|
|
74
76
|
// Other errors (permission, invalid JSON, etc.)
|
|
75
77
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
76
|
-
logger.warn('Failed to read beads state file', {
|
|
78
|
+
this.logger.warn('Failed to read beads state file', {
|
|
77
79
|
error: errorMessage,
|
|
78
80
|
conversationId,
|
|
79
81
|
statePath,
|
|
@@ -92,7 +94,7 @@ export class BeadsStateManager {
|
|
|
92
94
|
}
|
|
93
95
|
const phaseTask = state.phaseTasks.find(task => task.phaseId === phase);
|
|
94
96
|
if (phaseTask) {
|
|
95
|
-
logger.debug('Found phase task ID', {
|
|
97
|
+
this.logger.debug('Found phase task ID', {
|
|
96
98
|
conversationId,
|
|
97
99
|
phase,
|
|
98
100
|
taskId: phaseTask.taskId,
|
|
@@ -100,7 +102,7 @@ export class BeadsStateManager {
|
|
|
100
102
|
});
|
|
101
103
|
return phaseTask.taskId;
|
|
102
104
|
}
|
|
103
|
-
logger.debug('No task ID found for phase', {
|
|
105
|
+
this.logger.debug('No task ID found for phase', {
|
|
104
106
|
conversationId,
|
|
105
107
|
phase,
|
|
106
108
|
availablePhases: state.phaseTasks.map(t => t.phaseId),
|
|
@@ -114,7 +116,7 @@ export class BeadsStateManager {
|
|
|
114
116
|
async updateState(conversationId, updates) {
|
|
115
117
|
const existingState = await this.getState(conversationId);
|
|
116
118
|
if (!existingState) {
|
|
117
|
-
logger.warn('Cannot update non-existent beads state', {
|
|
119
|
+
this.logger.warn('Cannot update non-existent beads state', {
|
|
118
120
|
conversationId,
|
|
119
121
|
projectPath: this.projectPath,
|
|
120
122
|
});
|
|
@@ -127,7 +129,7 @@ export class BeadsStateManager {
|
|
|
127
129
|
updatedAt: new Date().toISOString(),
|
|
128
130
|
};
|
|
129
131
|
await this.saveState(updatedState);
|
|
130
|
-
logger.info('Updated beads conversation state', {
|
|
132
|
+
this.logger.info('Updated beads conversation state', {
|
|
131
133
|
conversationId,
|
|
132
134
|
updatedFields: Object.keys(updates),
|
|
133
135
|
projectPath: this.projectPath,
|
|
@@ -142,7 +144,7 @@ export class BeadsStateManager {
|
|
|
142
144
|
try {
|
|
143
145
|
await access(statePath);
|
|
144
146
|
await writeFile(statePath + '.backup', await readFile(statePath));
|
|
145
|
-
logger.info('Cleaned up beads conversation state', {
|
|
147
|
+
this.logger.info('Cleaned up beads conversation state', {
|
|
146
148
|
conversationId,
|
|
147
149
|
statePath,
|
|
148
150
|
projectPath: this.projectPath,
|
|
@@ -151,14 +153,14 @@ export class BeadsStateManager {
|
|
|
151
153
|
catch (error) {
|
|
152
154
|
if (error.code === 'ENOENT') {
|
|
153
155
|
// File doesn't exist - nothing to clean up
|
|
154
|
-
logger.debug('No beads state to clean up', {
|
|
156
|
+
this.logger.debug('No beads state to clean up', {
|
|
155
157
|
conversationId,
|
|
156
158
|
projectPath: this.projectPath,
|
|
157
159
|
});
|
|
158
160
|
return;
|
|
159
161
|
}
|
|
160
162
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
161
|
-
logger.warn('Failed to clean up beads state', {
|
|
163
|
+
this.logger.warn('Failed to clean up beads state', {
|
|
162
164
|
error: errorMessage,
|
|
163
165
|
conversationId,
|
|
164
166
|
statePath,
|
|
@@ -191,7 +193,7 @@ export class BeadsStateManager {
|
|
|
191
193
|
// Write state with pretty formatting for readability
|
|
192
194
|
const content = JSON.stringify(state, null, 2);
|
|
193
195
|
await writeFile(statePath, content, 'utf-8');
|
|
194
|
-
logger.debug('Saved beads state to file', {
|
|
196
|
+
this.logger.debug('Saved beads state to file', {
|
|
195
197
|
conversationId: state.conversationId,
|
|
196
198
|
statePath,
|
|
197
199
|
fileSize: content.length,
|
|
@@ -200,7 +202,7 @@ export class BeadsStateManager {
|
|
|
200
202
|
}
|
|
201
203
|
catch (error) {
|
|
202
204
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
203
|
-
logger.error('Failed to save beads state', error instanceof Error ? error : new Error(errorMessage), {
|
|
205
|
+
this.logger.error('Failed to save beads state', error instanceof Error ? error : new Error(errorMessage), {
|
|
204
206
|
conversationId: state.conversationId,
|
|
205
207
|
statePath,
|
|
206
208
|
projectPath: this.projectPath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beads-state-manager.js","sourceRoot":"","sources":["../src/beads-state-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"beads-state-manager.js","sourceRoot":"","sources":["../src/beads-state-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -186,36 +186,29 @@ export class FileDetectionManager {
|
|
|
186
186
|
* Format file suggestions for LLM responses
|
|
187
187
|
*/
|
|
188
188
|
formatSuggestions(detectionResult) {
|
|
189
|
-
const
|
|
189
|
+
const found = [];
|
|
190
190
|
if (detectionResult.architecture.length > 0) {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
191
|
+
found.push(`architecture: ${detectionResult.architecture
|
|
192
|
+
.slice(0, 2)
|
|
193
|
+
.map(f => f.relativePath)
|
|
194
|
+
.join(', ')}`);
|
|
195
195
|
}
|
|
196
196
|
if (detectionResult.requirements.length > 0) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
197
|
+
found.push(`requirements: ${detectionResult.requirements
|
|
198
|
+
.slice(0, 2)
|
|
199
|
+
.map(f => f.relativePath)
|
|
200
|
+
.join(', ')}`);
|
|
201
201
|
}
|
|
202
202
|
if (detectionResult.design.length > 0) {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
203
|
+
found.push(`design: ${detectionResult.design
|
|
204
|
+
.slice(0, 2)
|
|
205
|
+
.map(f => f.relativePath)
|
|
206
|
+
.join(', ')}`);
|
|
207
207
|
}
|
|
208
|
-
if (
|
|
208
|
+
if (found.length === 0) {
|
|
209
209
|
return 'No existing documentation files detected.';
|
|
210
210
|
}
|
|
211
|
-
return
|
|
212
|
-
'Existing documentation files detected:',
|
|
213
|
-
'',
|
|
214
|
-
...suggestions,
|
|
215
|
-
'',
|
|
216
|
-
'You can use these files with `setup_project_docs` by providing the file paths instead of template names.',
|
|
217
|
-
'Example: `setup_project_docs({ architecture: "README.md", requirements: "docs/requirements.md", design: "freestyle" })`',
|
|
218
|
-
].join('\n');
|
|
211
|
+
return `Found: ${found.join('; ')}. Link existing files via \`setup_project_docs({ architecture: "path/to/file.md" })\` or use template names.`;
|
|
219
212
|
}
|
|
220
213
|
}
|
|
221
214
|
//# sourceMappingURL=file-detection-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-detection-manager.js","sourceRoot":"","sources":["../src/file-detection-manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"file-detection-manager.js","sourceRoot":"","sources":["../src/file-detection-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export * from './git-manager.js';
|
|
|
17
17
|
export * from './task-backend.js';
|
|
18
18
|
export * from './beads-integration.js';
|
|
19
19
|
export * from './beads-state-manager.js';
|
|
20
|
+
export * from './string-utils.js';
|
|
20
21
|
export * from './logger.js';
|
|
21
22
|
export * from './interaction-logger.js';
|
|
22
23
|
export * from './instruction-generator.js';
|
|
@@ -23,6 +23,7 @@ export * from './task-backend.js';
|
|
|
23
23
|
export * from './beads-integration.js';
|
|
24
24
|
export * from './beads-state-manager.js';
|
|
25
25
|
// Utilities and generators
|
|
26
|
+
export * from './string-utils.js';
|
|
26
27
|
export * from './logger.js';
|
|
27
28
|
export * from './interaction-logger.js';
|
|
28
29
|
export * from './instruction-generator.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AAEzC,8BAA8B;AAC9B,cAAc,uBAAuB,CAAC;AAEtC,wCAAwC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAEvC,kBAAkB;AAClB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAE1C,8BAA8B;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AAEzC,2BAA2B;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AAEzC,8BAA8B;AAC9B,cAAc,uBAAuB,CAAC;AAEtC,wCAAwC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAEvC,kBAAkB;AAClB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAE1C,8BAA8B;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AAEzC,2BAA2B;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC"}
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
* Supports custom state machine definitions for dynamic instruction generation.
|
|
7
7
|
* Handles variable substitution for project artifact references.
|
|
8
8
|
*/
|
|
9
|
-
import { PlanManager } from './plan-manager.js';
|
|
10
9
|
import type { YamlStateMachine } from './state-machine-types.js';
|
|
10
|
+
import type { ILogger } from './logger.js';
|
|
11
11
|
import type { IInstructionGenerator, InstructionContext, GeneratedInstructions } from './interfaces/instruction-generator.interface.js';
|
|
12
12
|
export declare class InstructionGenerator implements IInstructionGenerator {
|
|
13
13
|
private projectDocsManager;
|
|
14
|
-
constructor(
|
|
14
|
+
constructor(logger?: ILogger);
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* No-op: all phase context is provided per-call via InstructionContext.
|
|
17
17
|
*/
|
|
18
18
|
setStateMachine(_stateMachine: YamlStateMachine): void;
|
|
19
19
|
/**
|
|
@@ -33,8 +33,4 @@ export declare class InstructionGenerator implements IInstructionGenerator {
|
|
|
33
33
|
* Enhance base instructions with context-specific information
|
|
34
34
|
*/
|
|
35
35
|
private enhanceInstructions;
|
|
36
|
-
/**
|
|
37
|
-
* Capitalize phase name for display
|
|
38
|
-
*/
|
|
39
|
-
private capitalizePhase;
|
|
40
36
|
}
|
|
@@ -7,17 +7,17 @@
|
|
|
7
7
|
* Handles variable substitution for project artifact references.
|
|
8
8
|
*/
|
|
9
9
|
import { ProjectDocsManager } from './project-docs-manager.js';
|
|
10
|
+
import { createLogger } from './logger.js';
|
|
11
|
+
import { capitalizePhase } from './string-utils.js';
|
|
10
12
|
export class InstructionGenerator {
|
|
11
13
|
projectDocsManager;
|
|
12
|
-
constructor(
|
|
13
|
-
|
|
14
|
-
this.projectDocsManager = new ProjectDocsManager();
|
|
14
|
+
constructor(logger = createLogger('InstructionGenerator')) {
|
|
15
|
+
this.projectDocsManager = new ProjectDocsManager(logger);
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
17
|
-
*
|
|
18
|
+
* No-op: all phase context is provided per-call via InstructionContext.
|
|
18
19
|
*/
|
|
19
20
|
setStateMachine(_stateMachine) {
|
|
20
|
-
// stateMachine parameter kept for API compatibility but not stored since unused
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
@@ -30,7 +30,6 @@ export class InstructionGenerator {
|
|
|
30
30
|
const enhancedInstructions = await this.enhanceInstructions(substitutedInstructions, context);
|
|
31
31
|
return {
|
|
32
32
|
instructions: enhancedInstructions,
|
|
33
|
-
planFileGuidance: 'Task management guidance is now included in main instructions',
|
|
34
33
|
metadata: {
|
|
35
34
|
phase: context.phase,
|
|
36
35
|
planFilePath: context.conversationContext.planFilePath,
|
|
@@ -62,28 +61,21 @@ export class InstructionGenerator {
|
|
|
62
61
|
* Enhance base instructions with context-specific information
|
|
63
62
|
*/
|
|
64
63
|
async enhanceInstructions(baseInstructions, context) {
|
|
65
|
-
const { phase, conversationContext,
|
|
66
|
-
const phaseName =
|
|
64
|
+
const { phase, conversationContext, allowedFilePatterns } = context;
|
|
65
|
+
const phaseName = capitalizePhase(phase);
|
|
67
66
|
let workflowSection = `---
|
|
68
|
-
**
|
|
69
|
-
|
|
70
|
-
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
67
|
+
**Read \`${conversationContext.planFilePath}\`** for context.
|
|
68
|
+
- Focus on "${phaseName}" tasks, log decisions in "Key Decisions"
|
|
69
|
+
- Do NOT use other task/todo tools - use only the plan file for task tracking`;
|
|
70
|
+
// Add file restriction guidance if patterns are restricted
|
|
71
|
+
if (allowedFilePatterns &&
|
|
72
|
+
allowedFilePatterns.length > 0 &&
|
|
73
|
+
!allowedFilePatterns.includes('**/*') &&
|
|
74
|
+
!allowedFilePatterns.includes('*')) {
|
|
75
|
+
workflowSection += `\n- Files allowed: \`${allowedFilePatterns.join('`, `')}\``;
|
|
75
76
|
}
|
|
76
|
-
workflowSection += '\n\nCall `whats_next()` after
|
|
77
|
+
workflowSection += '\n\nCall `whats_next()` after user messages.';
|
|
77
78
|
return `## ${phaseName} Phase\n\n${baseInstructions}\n\n${workflowSection}`;
|
|
78
79
|
}
|
|
79
|
-
/**
|
|
80
|
-
* Capitalize phase name for display
|
|
81
|
-
*/
|
|
82
|
-
capitalizePhase(phase) {
|
|
83
|
-
return phase
|
|
84
|
-
.split('_')
|
|
85
|
-
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
86
|
-
.join(' ');
|
|
87
|
-
}
|
|
88
80
|
}
|
|
89
81
|
//# sourceMappingURL=instruction-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instruction-generator.js","sourceRoot":"","sources":["../src/instruction-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"instruction-generator.js","sourceRoot":"","sources":["../src/instruction-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAOpD,MAAM,OAAO,oBAAoB;IACvB,kBAAkB,CAAqB;IAE/C,YAAY,SAAkB,YAAY,CAAC,sBAAsB,CAAC;QAChE,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,aAA+B;QAC7C,OAAO;IACT,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CACxB,gBAAwB,EACxB,OAA2B;QAE3B,mDAAmD;QACnD,MAAM,uBAAuB,GAAG,IAAI,CAAC,yBAAyB,CAC5D,gBAAgB,EAChB,OAAO,CAAC,mBAAmB,CAAC,WAAW,EACvC,OAAO,CAAC,mBAAmB,CAAC,SAAS,CACtC,CAAC;QAEF,2DAA2D;QAC3D,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CACzD,uBAAuB,EACvB,OAAO,CACR,CAAC;QAEF,OAAO;YACL,YAAY,EAAE,oBAAoB;YAClC,QAAQ,EAAE;gBACR,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,YAAY,EAAE,OAAO,CAAC,mBAAmB,CAAC,YAAY;gBACtD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B;SACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,yBAAyB,CAC/B,YAAoB,EACpB,WAAmB,EACnB,SAAkB;QAElB,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CACpE,WAAW,EACX,SAAS,CACV,CAAC;QAEF,IAAI,MAAM,GAAG,YAAY,CAAC;QAC1B,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9D,oDAAoD;YACpD,MAAM,GAAG,MAAM,CAAC,OAAO,CACrB,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,EAC5C,KAAK,CACN,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,MAAc;QACjC,OAAO,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAC/B,gBAAwB,EACxB,OAA2B;QAE3B,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;QAEpE,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,eAAe,GAAG;WACf,mBAAmB,CAAC,YAAY;cAC7B,SAAS;8EACuD,CAAC;QAE3E,2DAA2D;QAC3D,IACE,mBAAmB;YACnB,mBAAmB,CAAC,MAAM,GAAG,CAAC;YAC9B,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAClC,CAAC;YACD,eAAe,IAAI,wBAAwB,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAClF,CAAC;QAED,eAAe,IAAI,8CAA8C,CAAC;QAElE,OAAO,MAAM,SAAS,aAAa,gBAAgB,OAAO,eAAe,EAAE,CAAC;IAC9E,CAAC;CACF"}
|
|
@@ -11,13 +11,13 @@ export interface InstructionContext {
|
|
|
11
11
|
conversationContext: ConversationContext;
|
|
12
12
|
transitionReason: string;
|
|
13
13
|
isModeled: boolean;
|
|
14
|
-
planFileExists: boolean;
|
|
15
14
|
/** Source of the instruction generation request - helps generators adapt output */
|
|
16
|
-
instructionSource: 'proceed_to_phase' | 'whats_next';
|
|
15
|
+
instructionSource: 'proceed_to_phase' | 'whats_next' | 'start_development';
|
|
16
|
+
/** Glob patterns for files allowed to be edited in this phase (optional) */
|
|
17
|
+
allowedFilePatterns?: string[];
|
|
17
18
|
}
|
|
18
19
|
export interface GeneratedInstructions {
|
|
19
20
|
instructions: string;
|
|
20
|
-
planFileGuidance: string;
|
|
21
21
|
metadata: {
|
|
22
22
|
phase: string;
|
|
23
23
|
planFilePath: string;
|
|
@@ -25,13 +25,22 @@ export interface GeneratedInstructions {
|
|
|
25
25
|
isModeled: boolean;
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Interface for enriching generated instructions with additional guidance.
|
|
30
|
+
* Implementations can append, prepend, or transform instruction content.
|
|
31
|
+
*/
|
|
32
|
+
export interface InstructionEnricher {
|
|
33
|
+
enrichInstructions(instructions: GeneratedInstructions, context: InstructionContext): Promise<GeneratedInstructions>;
|
|
34
|
+
}
|
|
28
35
|
/**
|
|
29
36
|
* Interface for instruction generation operations
|
|
30
37
|
* All instruction generators must implement this interface
|
|
31
38
|
*/
|
|
32
39
|
export interface IInstructionGenerator {
|
|
33
40
|
/**
|
|
34
|
-
* Set the state machine definition for dynamic instruction generation
|
|
41
|
+
* Set the state machine definition for dynamic instruction generation.
|
|
42
|
+
* Implementations that derive all phase context from InstructionContext per-call
|
|
43
|
+
* may treat this as a no-op.
|
|
35
44
|
*/
|
|
36
45
|
setStateMachine(stateMachine: YamlStateMachine): void;
|
|
37
46
|
/**
|
|
@@ -52,4 +52,13 @@ export interface IPlanManager {
|
|
|
52
52
|
* Ensure plan file is deleted (verify deletion)
|
|
53
53
|
*/
|
|
54
54
|
ensurePlanFileDeleted(planFilePath: string): Promise<boolean>;
|
|
55
|
+
/**
|
|
56
|
+
* Generate base instructions for the LLM after a workflow is started.
|
|
57
|
+
* Instructs the LLM to populate the Goal section and define phase entrance
|
|
58
|
+
* criteria in the freshly created plan file.
|
|
59
|
+
*
|
|
60
|
+
* @param planFilePath - Path to the plan file
|
|
61
|
+
* @param workflowDocUrl - Optional URL for workflow documentation
|
|
62
|
+
*/
|
|
63
|
+
getInitialPlanGuidance(planFilePath: string, workflowDocUrl?: string): string;
|
|
55
64
|
}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Logging utility for
|
|
2
|
+
* Logging utility for workflows-core
|
|
3
3
|
*
|
|
4
|
-
* Provides structured logging with
|
|
5
|
-
* - Uses stderr for all local logging
|
|
6
|
-
* - Supports
|
|
4
|
+
* Provides structured logging with pluggable sinks:
|
|
5
|
+
* - Uses stderr for all local logging by default
|
|
6
|
+
* - Supports external log sinks (e.g., MCP notifications) via LogSink interface
|
|
7
7
|
* - Provides structured logging with proper levels:
|
|
8
8
|
* - debug: Tracing and detailed execution flow
|
|
9
9
|
* - info: Success operations and important milestones
|
|
10
10
|
* - warn: Expected errors and recoverable issues
|
|
11
11
|
* - error: Caught but unexpected errors
|
|
12
12
|
*/
|
|
13
|
-
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
14
13
|
export declare enum LogLevel {
|
|
15
14
|
DEBUG = 0,
|
|
16
15
|
INFO = 1,
|
|
@@ -26,35 +25,65 @@ export interface LogContext {
|
|
|
26
25
|
[key: string]: unknown;
|
|
27
26
|
}
|
|
28
27
|
/**
|
|
29
|
-
*
|
|
28
|
+
* Interface for external log sinks (e.g., MCP notifications, console, file)
|
|
29
|
+
* Implementations can be registered to receive log messages
|
|
30
30
|
*/
|
|
31
|
-
export
|
|
31
|
+
export interface LogSink {
|
|
32
|
+
/**
|
|
33
|
+
* Called when a log message should be sent to the sink
|
|
34
|
+
* @param level - Log level (debug, info, warning, error)
|
|
35
|
+
* @param logger - Component name that generated the log
|
|
36
|
+
* @param message - Log message
|
|
37
|
+
* @param context - Optional structured context
|
|
38
|
+
*/
|
|
39
|
+
log(level: 'debug' | 'info' | 'warning' | 'error', logger: string, message: string, context?: LogContext): Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Logger interface for dependency injection
|
|
43
|
+
* Allows handlers to receive a logger without importing the global createLogger
|
|
44
|
+
*/
|
|
45
|
+
export interface ILogger {
|
|
46
|
+
debug(message: string, context?: LogContext): void;
|
|
47
|
+
info(message: string, context?: LogContext): void;
|
|
48
|
+
warn(message: string, context?: LogContext): void;
|
|
49
|
+
error(message: string, error?: Error, context?: LogContext): void;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Factory function type for creating loggers
|
|
53
|
+
* Can be injected to provide different logging implementations
|
|
54
|
+
*/
|
|
55
|
+
export type LoggerFactory = (component: string) => ILogger;
|
|
56
|
+
/**
|
|
57
|
+
* Register a log sink to receive log messages
|
|
58
|
+
* Used by mcp-server to register MCP notification sink
|
|
59
|
+
*/
|
|
60
|
+
export declare function registerLogSink(sink: LogSink): void;
|
|
32
61
|
/**
|
|
33
|
-
*
|
|
62
|
+
* Clear the registered log sink
|
|
34
63
|
*/
|
|
35
|
-
export declare function
|
|
64
|
+
export declare function clearLogSink(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Set the logging level programmatically
|
|
67
|
+
*/
|
|
68
|
+
export declare function setLoggingLevel(level: LogLevel): void;
|
|
69
|
+
/**
|
|
70
|
+
* Set the logging level from a string (e.g., from MCP client request)
|
|
71
|
+
*/
|
|
72
|
+
export declare function setLoggingLevelFromString(level: string): void;
|
|
36
73
|
declare class Logger {
|
|
37
74
|
private component;
|
|
38
|
-
private explicitLogLevel
|
|
75
|
+
private explicitLogLevel;
|
|
39
76
|
constructor(component: string, logLevel?: LogLevel);
|
|
40
77
|
private getCurrentLogLevel;
|
|
41
78
|
private getLogLevelFromEnv;
|
|
42
79
|
private shouldLog;
|
|
43
80
|
private formatMessage;
|
|
44
81
|
/**
|
|
45
|
-
* Send log message to
|
|
82
|
+
* Send log message to registered sink if available
|
|
46
83
|
*/
|
|
47
|
-
private
|
|
84
|
+
private sendToSink;
|
|
48
85
|
debug(message: string, context?: LogContext): void;
|
|
49
86
|
info(message: string, context?: LogContext): void;
|
|
50
|
-
/**
|
|
51
|
-
* Send enhanced MCP notifications with better formatting for important events
|
|
52
|
-
*/
|
|
53
|
-
private sendEnhancedMcpNotification;
|
|
54
|
-
/**
|
|
55
|
-
* Capitalize phase name for display
|
|
56
|
-
*/
|
|
57
|
-
private capitalizePhase;
|
|
58
87
|
warn(message: string, context?: LogContext): void;
|
|
59
88
|
error(message: string, error?: Error, context?: LogContext): void;
|
|
60
89
|
child(childComponent: string): Logger;
|