@codemcp/workflows-opencode 6.5.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 (39) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +85 -0
  3. package/dist/index.d.ts +9 -0
  4. package/dist/index.js +11 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/opencode-logger.d.ts +21 -0
  7. package/dist/opencode-logger.js +104 -0
  8. package/dist/opencode-logger.js.map +1 -0
  9. package/dist/plugin.d.ts +23 -0
  10. package/dist/plugin.js +395 -0
  11. package/dist/plugin.js.map +1 -0
  12. package/dist/server-context.d.ts +40 -0
  13. package/dist/server-context.js +96 -0
  14. package/dist/server-context.js.map +1 -0
  15. package/dist/tool-handlers/conduct-review.d.ts +3 -0
  16. package/dist/tool-handlers/conduct-review.js +37 -0
  17. package/dist/tool-handlers/conduct-review.js.map +1 -0
  18. package/dist/tool-handlers/proceed-to-phase.d.ts +3 -0
  19. package/dist/tool-handlers/proceed-to-phase.js +74 -0
  20. package/dist/tool-handlers/proceed-to-phase.js.map +1 -0
  21. package/dist/tool-handlers/reset-development.d.ts +3 -0
  22. package/dist/tool-handlers/reset-development.js +63 -0
  23. package/dist/tool-handlers/reset-development.js.map +1 -0
  24. package/dist/tool-handlers/setup-project-docs.d.ts +3 -0
  25. package/dist/tool-handlers/setup-project-docs.js +74 -0
  26. package/dist/tool-handlers/setup-project-docs.js.map +1 -0
  27. package/dist/tool-handlers/start-development.d.ts +3 -0
  28. package/dist/tool-handlers/start-development.js +69 -0
  29. package/dist/tool-handlers/start-development.js.map +1 -0
  30. package/dist/tool-handlers/tool-helper.d.ts +10 -0
  31. package/dist/tool-handlers/tool-helper.js +7 -0
  32. package/dist/tool-handlers/tool-helper.js.map +1 -0
  33. package/dist/types.d.ts +193 -0
  34. package/dist/types.js +8 -0
  35. package/dist/types.js.map +1 -0
  36. package/dist/utils.d.ts +14 -0
  37. package/dist/utils.js +26 -0
  38. package/dist/utils.js.map +1 -0
  39. package/package.json +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * ServerContext Builder for OpenCode Plugin
3
+ *
4
+ * Creates a ServerContext compatible with MCP server handlers,
5
+ * allowing the plugin to delegate to handler implementations.
6
+ */
7
+ import type { ServerContext, HandlerResult } from '@codemcp/workflows-server';
8
+ export type { ServerContext } from '@codemcp/workflows-server';
9
+ import { type IPlanManager, type IInstructionGenerator, type LoggerFactory } from '@codemcp/workflows-core';
10
+ export interface ServerContextOptions {
11
+ projectDir: string;
12
+ planManager: IPlanManager;
13
+ instructionGenerator: IInstructionGenerator;
14
+ /** Optional logger factory - if provided, handlers will use this instead of global createLogger */
15
+ loggerFactory?: LoggerFactory;
16
+ }
17
+ /**
18
+ * Creates a ServerContext that can be passed to MCP server handlers.
19
+ *
20
+ * The handlers expect certain components to be initialized and wired together.
21
+ * This function creates fresh instances for each request to ensure clean state.
22
+ */
23
+ export declare function createServerContext(options: ServerContextOptions): ServerContext;
24
+ /**
25
+ * Initialize async components of a ServerContext.
26
+ * Call this before using the context with handlers.
27
+ *
28
+ * Note: Workflow loading is done in createServerContext(), not here.
29
+ */
30
+ export declare function initializeServerContext(context: ServerContext): Promise<void>;
31
+ /**
32
+ * Convert MCP handler errors to user-friendly instructions.
33
+ * Returns null if the result is successful and has data.
34
+ */
35
+ export declare function handleMcpError<T>(result: HandlerResult<T>): string | null;
36
+ /**
37
+ * Unwrap MCP handler result data after error check.
38
+ * Call this only after handleMcpError returns null.
39
+ */
40
+ export declare function unwrapResult<T>(result: HandlerResult<T>): T;
@@ -0,0 +1,96 @@
1
+ /**
2
+ * ServerContext Builder for OpenCode Plugin
3
+ *
4
+ * Creates a ServerContext compatible with MCP server handlers,
5
+ * allowing the plugin to delegate to handler implementations.
6
+ */
7
+ import { PluginRegistry, BeadsPlugin } from '@codemcp/workflows-server';
8
+ import { ConversationManager, TransitionEngine, WorkflowManager, FileStorage, InteractionLogger, } from '@codemcp/workflows-core';
9
+ import * as path from 'node:path';
10
+ /**
11
+ * Creates a ServerContext that can be passed to MCP server handlers.
12
+ *
13
+ * The handlers expect certain components to be initialized and wired together.
14
+ * This function creates fresh instances for each request to ensure clean state.
15
+ */
16
+ export function createServerContext(options) {
17
+ const { projectDir, planManager, instructionGenerator, loggerFactory } = options;
18
+ // Create workflow manager and load project workflows
19
+ const workflowManager = new WorkflowManager();
20
+ workflowManager.loadProjectWorkflows(projectDir);
21
+ // Create file storage — shared across ConversationManager and InteractionLogger
22
+ // so both operate on the same underlying persistence instance
23
+ const fileStorage = new FileStorage(path.join(projectDir, '.vibe', 'storage'));
24
+ const conversationManager = new ConversationManager(fileStorage, workflowManager, projectDir);
25
+ // InteractionLogger uses the same fileStorage so hasInteractions() works correctly.
26
+ // Without this, isFirstCallFromInitialState() always returns true on session resume,
27
+ // causing WhatsNextHandler to reset the phase to explore on every plugin load.
28
+ const interactionLogger = new InteractionLogger(fileStorage);
29
+ // Create transition engine
30
+ const transitionEngine = new TransitionEngine(projectDir);
31
+ transitionEngine.setConversationManager(conversationManager);
32
+ // Initialize plugin registry and register BeadsPlugin
33
+ // (PluginRegistry.registerPlugin checks isEnabled() internally)
34
+ // Pass loggerFactory so BeadsPlugin logs go through OpenCode SDK
35
+ const pluginRegistry = new PluginRegistry();
36
+ pluginRegistry.registerPlugin(new BeadsPlugin({ projectPath: projectDir, loggerFactory }));
37
+ return {
38
+ conversationManager,
39
+ transitionEngine,
40
+ planManager,
41
+ instructionGenerator,
42
+ workflowManager,
43
+ interactionLogger,
44
+ projectPath: projectDir,
45
+ pluginRegistry,
46
+ loggerFactory,
47
+ };
48
+ }
49
+ /**
50
+ * Initialize async components of a ServerContext.
51
+ * Call this before using the context with handlers.
52
+ *
53
+ * Note: Workflow loading is done in createServerContext(), not here.
54
+ */
55
+ export async function initializeServerContext(context) {
56
+ // Initialize the file storage that the context's ConversationManager uses.
57
+ // initialize() creates the conversations directory if it doesn't exist.
58
+ // We access it via the conversationManager's database — but since it's not
59
+ // exposed, we create a fresh instance pointing to the same path and initialize it.
60
+ const fileStorage = new FileStorage(path.join(context.projectPath, '.vibe', 'storage'));
61
+ await fileStorage.initialize();
62
+ }
63
+ /**
64
+ * Convert MCP handler errors to user-friendly instructions.
65
+ * Returns null if the result is successful and has data.
66
+ */
67
+ export function handleMcpError(result) {
68
+ if (result.success && result.data) {
69
+ return null;
70
+ }
71
+ const error = result.error || 'Unknown error';
72
+ // Extract actionable message from known error patterns
73
+ if (error.includes('CONVERSATION_NOT_FOUND')) {
74
+ return 'No active workflow. Use `start_workflow` to begin.';
75
+ }
76
+ if (error.includes('Invalid workflow:')) {
77
+ // Error already contains available workflows list
78
+ return error.replace(/^.*?Invalid workflow:/, 'Invalid workflow:');
79
+ }
80
+ if (error.includes('Available workflows:')) {
81
+ return error;
82
+ }
83
+ // Generic error - return as instruction
84
+ return `Error: ${error}`;
85
+ }
86
+ /**
87
+ * Unwrap MCP handler result data after error check.
88
+ * Call this only after handleMcpError returns null.
89
+ */
90
+ export function unwrapResult(result) {
91
+ if (!result.data) {
92
+ throw new Error('No data in result');
93
+ }
94
+ return result.data;
95
+ }
96
+ //# sourceMappingURL=server-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-context.js","sourceRoot":"","sources":["../src/server-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type ServerContext } from '@codemcp/workflows-server';
2
+ import type { ToolDefinition } from '../types.js';
3
+ export declare function createConductReviewTool(getServerContext: () => Promise<ServerContext>): ToolDefinition;
@@ -0,0 +1,37 @@
1
+ import { z } from 'zod';
2
+ import { ConductReviewHandler, } from '@codemcp/workflows-server';
3
+ import { tool } from './tool-helper.js';
4
+ import { handleMcpError, unwrapResult } from '../server-context.js';
5
+ import { createLogger } from '@codemcp/workflows-core';
6
+ export function createConductReviewTool(getServerContext) {
7
+ return tool({
8
+ description: 'Conduct a review before phase transition. Args: target_phase',
9
+ args: {
10
+ target_phase: z.string().describe('Target phase after review'),
11
+ },
12
+ execute: async (args) => {
13
+ const { target_phase } = args;
14
+ const serverContext = await getServerContext();
15
+ const logger = serverContext.loggerFactory
16
+ ? serverContext.loggerFactory('conduct_review')
17
+ : createLogger('conduct_review');
18
+ logger.debug('conduct_review called', { targetPhase: target_phase });
19
+ try {
20
+ // Delegate to ConductReviewHandler
21
+ const handler = new ConductReviewHandler();
22
+ const result = await handler.handle({ target_phase }, serverContext);
23
+ // Handle errors gracefully
24
+ const errorMsg = handleMcpError(result);
25
+ if (errorMsg) {
26
+ return errorMsg;
27
+ }
28
+ return unwrapResult(result).instructions;
29
+ }
30
+ catch (error) {
31
+ const errorMessage = error instanceof Error ? error.message : String(error);
32
+ return `Error: ${errorMessage}`;
33
+ }
34
+ },
35
+ });
36
+ }
37
+ //# sourceMappingURL=conduct-review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conduct-review.js","sourceRoot":"","sources":["../../src/tool-handlers/conduct-review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,oBAAoB,GAErB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,UAAU,uBAAuB,CACrC,gBAA8C;IAE9C,OAAO,IAAI,CAAC;QACV,WAAW,EAAE,8DAA8D;QAC3E,IAAI,EAAE;YACJ,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;SAC/D;QACD,OAAO,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;YACpB,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;YAC9B,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa;gBACxC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC;gBAC/C,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YAEnC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;YAErE,IAAI,CAAC;gBACH,mCAAmC;gBACnC,MAAM,OAAO,GAAG,IAAI,oBAAoB,EAAE,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC;gBAErE,2BAA2B;gBAC3B,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBAED,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzD,OAAO,UAAU,YAAY,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type ServerContext, type WhatsNextResult } from '@codemcp/workflows-server';
2
+ import type { ToolDefinition } from '../types.js';
3
+ export declare function createProceedToPhaseTool(getServerContext: () => Promise<ServerContext>, setBufferedInstructions: (result: WhatsNextResult) => void): ToolDefinition;
@@ -0,0 +1,74 @@
1
+ import { z } from 'zod';
2
+ import { ProceedToPhaseHandler, } from '@codemcp/workflows-server';
3
+ import { tool } from './tool-helper.js';
4
+ import { handleMcpError, unwrapResult } from '../server-context.js';
5
+ import { createLogger } from '@codemcp/workflows-core';
6
+ import { stripWhatsNextReferences } from '../utils.js';
7
+ export function createProceedToPhaseTool(getServerContext, setBufferedInstructions) {
8
+ return tool({
9
+ description: 'Move to a development phase. Args: target_phase (from plan file), reason (optional), review_state (not-required|pending|performed)',
10
+ args: {
11
+ target_phase: z.string().describe('Phase name from plan file'),
12
+ reason: z.string().optional().describe('Why transitioning now'),
13
+ review_state: z
14
+ .enum(['not-required', 'pending', 'performed'])
15
+ .optional()
16
+ .describe('Review state'),
17
+ },
18
+ execute: async (args) => {
19
+ const { target_phase, reason, review_state } = args;
20
+ const serverContext = await getServerContext();
21
+ const logger = serverContext.loggerFactory
22
+ ? serverContext.loggerFactory('proceed_to_phase')
23
+ : createLogger('proceed_to_phase');
24
+ logger.debug('proceed_to_phase called', { to: target_phase, reason });
25
+ try {
26
+ // Delegate to ProceedToPhaseHandler
27
+ const handler = new ProceedToPhaseHandler();
28
+ const result = await handler.handle({
29
+ target_phase,
30
+ reason,
31
+ review_state: review_state ?? 'not-required',
32
+ }, serverContext);
33
+ // Handle errors gracefully
34
+ const errorMsg = handleMcpError(result);
35
+ if (errorMsg) {
36
+ return errorMsg;
37
+ }
38
+ const data = unwrapResult(result);
39
+ // Buffer instructions so the next chat.message hook uses them
40
+ // instead of re-querying WhatsNextHandler (which may read stale disk state)
41
+ setBufferedInstructions({
42
+ phase: data.phase,
43
+ instructions: data.instructions,
44
+ plan_file_path: data.plan_file_path,
45
+ allowed_file_patterns: data.allowed_file_patterns,
46
+ });
47
+ // Build response with instructions (strip whats_next references)
48
+ const lines = [];
49
+ lines.push(`Transitioned to: ${data.phase}`);
50
+ if (data.transition_reason) {
51
+ lines.push(`Reason: ${data.transition_reason}`);
52
+ }
53
+ if (data.instructions) {
54
+ lines.push('');
55
+ lines.push(stripWhatsNextReferences(data.instructions));
56
+ }
57
+ // File restrictions
58
+ const patterns = data.allowed_file_patterns;
59
+ if (patterns.includes('*') || patterns.includes('**/*')) {
60
+ lines.push('Files: All allowed');
61
+ }
62
+ else {
63
+ lines.push(`Allowed: ${patterns.join(', ')}`);
64
+ }
65
+ return lines.join('\n');
66
+ }
67
+ catch (error) {
68
+ const errorMessage = error instanceof Error ? error.message : String(error);
69
+ return `Error: ${errorMessage}`;
70
+ }
71
+ },
72
+ });
73
+ }
74
+ //# sourceMappingURL=proceed-to-phase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proceed-to-phase.js","sourceRoot":"","sources":["../../src/tool-handlers/proceed-to-phase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type ServerContext } from '@codemcp/workflows-server';
2
+ import type { ToolDefinition } from '../types.js';
3
+ export declare function createResetDevelopmentTool(projectDir: string, getServerContext: () => Promise<ServerContext>): ToolDefinition;
@@ -0,0 +1,63 @@
1
+ import { z } from 'zod';
2
+ import * as path from 'node:path';
3
+ import { ResetDevelopmentHandler, } from '@codemcp/workflows-server';
4
+ import { FileStorage, ConversationManager, WorkflowManager, createLogger, } from '@codemcp/workflows-core';
5
+ import { tool } from './tool-helper.js';
6
+ import { handleMcpError } from '../server-context.js';
7
+ export function createResetDevelopmentTool(projectDir, getServerContext) {
8
+ return tool({
9
+ description: 'Reset workflow state. Args: confirm (required: true), reason (optional), delete_plan (optional: also delete plan file)',
10
+ args: {
11
+ confirm: z.boolean().describe('Must be true'),
12
+ reason: z.string().optional().describe('Reason for reset'),
13
+ delete_plan: z.boolean().optional().describe('Also delete plan file'),
14
+ },
15
+ execute: async (args) => {
16
+ const { confirm, reason, delete_plan } = args;
17
+ const serverContext = await getServerContext();
18
+ const logger = serverContext.loggerFactory
19
+ ? serverContext.loggerFactory('reset_development')
20
+ : createLogger('reset_development');
21
+ logger.debug('reset_development called', { confirm, delete_plan });
22
+ if (!confirm) {
23
+ return `Reset requires confirm: true. Will delete conversation state${delete_plan ? ' and plan file' : ''}.`;
24
+ }
25
+ try {
26
+ if (delete_plan) {
27
+ // Full reset: delegate to ResetDevelopmentHandler
28
+ const handler = new ResetDevelopmentHandler();
29
+ const result = await handler.handle({ confirm, reason }, serverContext);
30
+ const errorMsg = handleMcpError(result);
31
+ if (errorMsg) {
32
+ return errorMsg;
33
+ }
34
+ const deleted = result.data?.resetItems?.join(', ') || 'workflow state';
35
+ return `Reset complete. Deleted: ${deleted}. Use \`start_workflow\` to begin.`;
36
+ }
37
+ else {
38
+ // Partial reset: delete conversation state only, preserve plan file
39
+ const storageDir = path.join(projectDir, '.vibe', 'storage');
40
+ const fileStorage = new FileStorage(storageDir);
41
+ await fileStorage.initialize();
42
+ const conversationManager = new ConversationManager(fileStorage, new WorkflowManager(), projectDir);
43
+ let context;
44
+ try {
45
+ context = await conversationManager.getConversationContext();
46
+ }
47
+ catch (_err) {
48
+ return 'No active workflow. Use `start_workflow` to begin.';
49
+ }
50
+ if (context) {
51
+ await conversationManager.cleanupConversationData(context.conversationId);
52
+ }
53
+ return `Reset complete. Use \`start_workflow\` to begin.`;
54
+ }
55
+ }
56
+ catch (error) {
57
+ const errorMessage = error instanceof Error ? error.message : String(error);
58
+ return `Error: ${errorMessage}`;
59
+ }
60
+ },
61
+ });
62
+ }
63
+ //# sourceMappingURL=reset-development.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset-development.js","sourceRoot":"","sources":["../../src/tool-handlers/reset-development.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type ServerContext } from '@codemcp/workflows-server';
2
+ import type { ToolDefinition } from '../types.js';
3
+ export declare function createSetupProjectDocsTool(projectDir: string, getServerContext: () => Promise<ServerContext>): Promise<ToolDefinition>;
@@ -0,0 +1,74 @@
1
+ import { z } from 'zod';
2
+ import { SetupProjectDocsHandler, } from '@codemcp/workflows-server';
3
+ import { tool } from './tool-helper.js';
4
+ import { handleMcpError, unwrapResult } from '../server-context.js';
5
+ import { createLogger, TemplateManager } from '@codemcp/workflows-core';
6
+ export async function createSetupProjectDocsTool(projectDir, getServerContext) {
7
+ // Get available templates for description
8
+ const templateManager = new TemplateManager();
9
+ const availableTemplates = await templateManager.getAvailableTemplates();
10
+ const archOptions = availableTemplates.architecture.join(', ');
11
+ const reqOptions = availableTemplates.requirements.join(', ');
12
+ const designOptions = availableTemplates.design.join(', ');
13
+ return tool({
14
+ description: `Create project docs with templates or link existing files. Options - architecture: ${archOptions}, none, or file path; requirements: ${reqOptions}, none, or file path; design: ${designOptions}, none, or file path`,
15
+ args: {
16
+ architecture: z
17
+ .string()
18
+ .default('freestyle')
19
+ .describe('Template name, "none", or file path'),
20
+ requirements: z
21
+ .string()
22
+ .default('none')
23
+ .describe('Template name, "none", or file path'),
24
+ design: z
25
+ .string()
26
+ .default('freestyle')
27
+ .describe('Template name, "none", or file path'),
28
+ },
29
+ execute: async (args) => {
30
+ const serverContext = await getServerContext();
31
+ const logger = serverContext.loggerFactory
32
+ ? serverContext.loggerFactory('setup_project_docs')
33
+ : createLogger('setup_project_docs');
34
+ logger.debug('setup_project_docs called', args);
35
+ try {
36
+ // Delegate to SetupProjectDocsHandler
37
+ const handler = new SetupProjectDocsHandler();
38
+ const result = await handler.handle({
39
+ architecture: args.architecture,
40
+ requirements: args.requirements,
41
+ design: args.design,
42
+ project_path: projectDir,
43
+ }, serverContext);
44
+ // Handle errors gracefully
45
+ const errorMsg = handleMcpError(result);
46
+ if (errorMsg) {
47
+ return errorMsg;
48
+ }
49
+ const data = unwrapResult(result);
50
+ logger.info('setup_project_docs: Completed', {
51
+ created: data.created,
52
+ linked: data.linked,
53
+ skipped: data.skipped,
54
+ });
55
+ // Build response
56
+ const lines = [];
57
+ lines.push(data.message);
58
+ if (data.paths) {
59
+ lines.push('');
60
+ lines.push('Document paths:');
61
+ lines.push(` Architecture: ${data.paths.architecture}`);
62
+ lines.push(` Requirements: ${data.paths.requirements}`);
63
+ lines.push(` Design: ${data.paths.design}`);
64
+ }
65
+ return lines.join('\n');
66
+ }
67
+ catch (error) {
68
+ const errorMessage = error instanceof Error ? error.message : String(error);
69
+ return `Error: ${errorMessage}`;
70
+ }
71
+ },
72
+ });
73
+ }
74
+ //# sourceMappingURL=setup-project-docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-project-docs.js","sourceRoot":"","sources":["../../src/tool-handlers/setup-project-docs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type WhatsNextResult, type ServerContext } from '@codemcp/workflows-server';
2
+ import type { ToolDefinition } from '../types.js';
3
+ export declare function createStartDevelopmentTool(projectDir: string, getServerContext: () => Promise<ServerContext>, setBufferedInstructions: (result: WhatsNextResult) => void): ToolDefinition;
@@ -0,0 +1,69 @@
1
+ import { z } from 'zod';
2
+ import { StartDevelopmentHandler, } from '@codemcp/workflows-server';
3
+ import { tool } from './tool-helper.js';
4
+ import { handleMcpError, unwrapResult } from '../server-context.js';
5
+ import { WorkflowManager, createLogger } from '@codemcp/workflows-core';
6
+ import { stripWhatsNextReferences } from '../utils.js';
7
+ export function createStartDevelopmentTool(projectDir, getServerContext, setBufferedInstructions) {
8
+ // Load available workflows for description
9
+ // NOTE: Using getAvailableWorkflowsForProject() to respect:
10
+ // 1. VIBE_WORKFLOW_DOMAINS configuration (domain filtering)
11
+ // 2. Project-specific workflow configuration
12
+ const workflowManager = new WorkflowManager();
13
+ const availableWorkflows = workflowManager.getAvailableWorkflowsForProject(projectDir);
14
+ const workflowNames = availableWorkflows.map(w => w.name);
15
+ // Build tool description with workflow list
16
+ const toolDescription = workflowNames.length > 0
17
+ ? `Start a development workflow. Available: ${workflowNames.join(', ')}`
18
+ : 'Start a development workflow (no workflows available - check VIBE_WORKFLOW_DOMAINS)';
19
+ return tool({
20
+ description: toolDescription,
21
+ args: {
22
+ workflow: z.string().describe('Workflow name'),
23
+ require_reviews: z
24
+ .boolean()
25
+ .optional()
26
+ .describe('Require reviews before phase transitions'),
27
+ },
28
+ execute: async (args) => {
29
+ const serverContext = await getServerContext();
30
+ const logger = serverContext.loggerFactory
31
+ ? serverContext.loggerFactory('start_development')
32
+ : createLogger('start_development');
33
+ logger.debug('start_development called', { workflow: args.workflow });
34
+ try {
35
+ // Delegate to StartDevelopmentHandler
36
+ const handler = new StartDevelopmentHandler();
37
+ const result = await handler.handle({
38
+ workflow: args.workflow,
39
+ require_reviews: args.require_reviews,
40
+ project_path: projectDir,
41
+ }, serverContext);
42
+ // Handle errors gracefully
43
+ const errorMsg = handleMcpError(result);
44
+ if (errorMsg) {
45
+ return errorMsg;
46
+ }
47
+ const data = unwrapResult(result);
48
+ logger.info('start_development: Successfully started workflow', {
49
+ workflow: args.workflow,
50
+ phase: data.phase,
51
+ });
52
+ // Buffer instructions for the next chat.message hook
53
+ setBufferedInstructions({
54
+ phase: data.phase,
55
+ instructions: data.instructions,
56
+ plan_file_path: data.plan_file_path,
57
+ allowed_file_patterns: data.allowed_file_patterns ?? ['**/*'],
58
+ });
59
+ // Return the instructions from the handler (strip whats_next references)
60
+ return stripWhatsNextReferences(data.instructions);
61
+ }
62
+ catch (error) {
63
+ const errorMessage = error instanceof Error ? error.message : String(error);
64
+ return `Error: ${errorMessage}`;
65
+ }
66
+ },
67
+ });
68
+ }
69
+ //# sourceMappingURL=start-development.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-development.js","sourceRoot":"","sources":["../../src/tool-handlers/start-development.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ import type { ToolDefinition } from '../types.js';
3
+ /**
4
+ * Tool definition helper
5
+ */
6
+ export declare function tool<Args extends z.ZodRawShape>(input: {
7
+ description: string;
8
+ args: Args;
9
+ execute(args: z.infer<z.ZodObject<Args>>, context: unknown): Promise<string>;
10
+ }): ToolDefinition;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Tool definition helper
3
+ */
4
+ export function tool(input) {
5
+ return input;
6
+ }
7
+ //# sourceMappingURL=tool-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-helper.js","sourceRoot":"","sources":["../../src/tool-handlers/tool-helper.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,IAAI,CAA6B,KAIhD;IACC,OAAO,KAAuB,CAAC;AACjC,CAAC"}