@codemcp/workflows 6.5.0 → 6.6.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 (101) hide show
  1. package/package.json +2 -2
  2. package/packages/cli/dist/{chunk-4AZGS2GG.js → chunk-OQEE77IJ.js} +23 -1
  3. package/packages/cli/dist/{cli-ZCCFBQTP.js → cli-JKYH3LI3.js} +3 -3
  4. package/packages/cli/dist/{dist-MW7THWM3.js → dist-6V5QENI6.js} +23 -1
  5. package/packages/cli/dist/{dist-I6VSREAJ.js → dist-CANNJPRJ.js} +1 -1
  6. package/packages/cli/dist/index.js +2 -2
  7. package/packages/cli/package.json +1 -1
  8. package/packages/core/dist/conversation-manager.d.ts +13 -1
  9. package/packages/core/dist/conversation-manager.js +22 -0
  10. package/packages/core/dist/conversation-manager.js.map +1 -1
  11. package/packages/core/dist/types.d.ts +8 -0
  12. package/packages/core/package.json +1 -1
  13. package/packages/docs/package.json +1 -1
  14. package/packages/mcp-server/dist/index.d.ts +10 -1
  15. package/packages/mcp-server/dist/index.js +23 -1
  16. package/packages/mcp-server/package.json +1 -1
  17. package/packages/opencode-plugin/dist/index.d.ts +216 -5
  18. package/packages/opencode-plugin/dist/index.js +28682 -11
  19. package/packages/opencode-plugin/package.json +8 -5
  20. package/packages/opencode-plugin/resources/agents/architect.yaml +61 -0
  21. package/packages/opencode-plugin/resources/agents/business-analyst.yaml +60 -0
  22. package/packages/opencode-plugin/resources/agents/developer.yaml +61 -0
  23. package/packages/opencode-plugin/resources/templates/architecture/arc42/arc42-template-EN.md +1077 -0
  24. package/packages/opencode-plugin/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio-2023.png +0 -0
  25. package/packages/opencode-plugin/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio.png +0 -0
  26. package/packages/opencode-plugin/resources/templates/architecture/arc42/images/05_building_blocks-EN.png +0 -0
  27. package/packages/opencode-plugin/resources/templates/architecture/arc42/images/08-concepts-EN.drawio.png +0 -0
  28. package/packages/opencode-plugin/resources/templates/architecture/arc42/images/arc42-logo.png +0 -0
  29. package/packages/opencode-plugin/resources/templates/architecture/c4.md +224 -0
  30. package/packages/opencode-plugin/resources/templates/architecture/freestyle.md +53 -0
  31. package/packages/opencode-plugin/resources/templates/architecture/game.md +250 -0
  32. package/packages/opencode-plugin/resources/templates/architecture/none.md +17 -0
  33. package/packages/opencode-plugin/resources/templates/design/comprehensive.md +207 -0
  34. package/packages/opencode-plugin/resources/templates/design/freestyle.md +37 -0
  35. package/packages/opencode-plugin/resources/templates/design/game.md +66 -0
  36. package/packages/opencode-plugin/resources/templates/design/none.md +17 -0
  37. package/packages/opencode-plugin/resources/templates/requirements/ears.md +90 -0
  38. package/packages/opencode-plugin/resources/templates/requirements/freestyle.md +42 -0
  39. package/packages/opencode-plugin/resources/templates/requirements/game.md +162 -0
  40. package/packages/opencode-plugin/resources/templates/requirements/none.md +17 -0
  41. package/packages/opencode-plugin/resources/templates/skills/POWER.md +23 -0
  42. package/packages/opencode-plugin/resources/templates/skills/SKILL.md +19 -0
  43. package/packages/opencode-plugin/resources/workflows/adr.yaml +157 -0
  44. package/packages/opencode-plugin/resources/workflows/big-bang-conversion.yaml +592 -0
  45. package/packages/opencode-plugin/resources/workflows/boundary-testing.yaml +376 -0
  46. package/packages/opencode-plugin/resources/workflows/bugfix.yaml +178 -0
  47. package/packages/opencode-plugin/resources/workflows/business-analysis.yaml +597 -0
  48. package/packages/opencode-plugin/resources/workflows/c4-analysis.yaml +471 -0
  49. package/packages/opencode-plugin/resources/workflows/epcc.yaml +195 -0
  50. package/packages/opencode-plugin/resources/workflows/game-beginner.yaml +434 -0
  51. package/packages/opencode-plugin/resources/workflows/greenfield.yaml +217 -0
  52. package/packages/opencode-plugin/resources/workflows/minor.yaml +146 -0
  53. package/packages/opencode-plugin/resources/workflows/posts.yaml +193 -0
  54. package/packages/opencode-plugin/resources/workflows/sdd-bugfix-crowd.yaml +608 -0
  55. package/packages/opencode-plugin/resources/workflows/sdd-bugfix.yaml +381 -0
  56. package/packages/opencode-plugin/resources/workflows/sdd-feature-crowd.yaml +713 -0
  57. package/packages/opencode-plugin/resources/workflows/sdd-feature.yaml +471 -0
  58. package/packages/opencode-plugin/resources/workflows/sdd-greenfield-crowd.yaml +336 -0
  59. package/packages/opencode-plugin/resources/workflows/sdd-greenfield.yaml +463 -0
  60. package/packages/opencode-plugin/resources/workflows/skilled-bugfix.yaml +174 -0
  61. package/packages/opencode-plugin/resources/workflows/skilled-epcc.yaml +171 -0
  62. package/packages/opencode-plugin/resources/workflows/skilled-greenfield.yaml +207 -0
  63. package/packages/opencode-plugin/resources/workflows/slides.yaml +237 -0
  64. package/packages/opencode-plugin/resources/workflows/tdd.yaml +170 -0
  65. package/packages/opencode-plugin/resources/workflows/waterfall.yaml +225 -0
  66. package/packages/opencode-tui-plugin/package.json +1 -1
  67. package/packages/visualizer/package.json +1 -1
  68. package/packages/opencode-plugin/dist/index.js.map +0 -1
  69. package/packages/opencode-plugin/dist/opencode-logger.d.ts +0 -21
  70. package/packages/opencode-plugin/dist/opencode-logger.js +0 -104
  71. package/packages/opencode-plugin/dist/opencode-logger.js.map +0 -1
  72. package/packages/opencode-plugin/dist/plugin.d.ts +0 -23
  73. package/packages/opencode-plugin/dist/plugin.js +0 -395
  74. package/packages/opencode-plugin/dist/plugin.js.map +0 -1
  75. package/packages/opencode-plugin/dist/server-context.d.ts +0 -40
  76. package/packages/opencode-plugin/dist/server-context.js +0 -96
  77. package/packages/opencode-plugin/dist/server-context.js.map +0 -1
  78. package/packages/opencode-plugin/dist/tool-handlers/conduct-review.d.ts +0 -3
  79. package/packages/opencode-plugin/dist/tool-handlers/conduct-review.js +0 -37
  80. package/packages/opencode-plugin/dist/tool-handlers/conduct-review.js.map +0 -1
  81. package/packages/opencode-plugin/dist/tool-handlers/proceed-to-phase.d.ts +0 -3
  82. package/packages/opencode-plugin/dist/tool-handlers/proceed-to-phase.js +0 -74
  83. package/packages/opencode-plugin/dist/tool-handlers/proceed-to-phase.js.map +0 -1
  84. package/packages/opencode-plugin/dist/tool-handlers/reset-development.d.ts +0 -3
  85. package/packages/opencode-plugin/dist/tool-handlers/reset-development.js +0 -63
  86. package/packages/opencode-plugin/dist/tool-handlers/reset-development.js.map +0 -1
  87. package/packages/opencode-plugin/dist/tool-handlers/setup-project-docs.d.ts +0 -3
  88. package/packages/opencode-plugin/dist/tool-handlers/setup-project-docs.js +0 -74
  89. package/packages/opencode-plugin/dist/tool-handlers/setup-project-docs.js.map +0 -1
  90. package/packages/opencode-plugin/dist/tool-handlers/start-development.d.ts +0 -3
  91. package/packages/opencode-plugin/dist/tool-handlers/start-development.js +0 -69
  92. package/packages/opencode-plugin/dist/tool-handlers/start-development.js.map +0 -1
  93. package/packages/opencode-plugin/dist/tool-handlers/tool-helper.d.ts +0 -10
  94. package/packages/opencode-plugin/dist/tool-handlers/tool-helper.js +0 -7
  95. package/packages/opencode-plugin/dist/tool-handlers/tool-helper.js.map +0 -1
  96. package/packages/opencode-plugin/dist/types.d.ts +0 -193
  97. package/packages/opencode-plugin/dist/types.js +0 -8
  98. package/packages/opencode-plugin/dist/types.js.map +0 -1
  99. package/packages/opencode-plugin/dist/utils.d.ts +0 -14
  100. package/packages/opencode-plugin/dist/utils.js +0 -26
  101. package/packages/opencode-plugin/dist/utils.js.map +0 -1
@@ -1,74 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"proceed-to-phase.js","sourceRoot":"","sources":["../../src/tool-handlers/proceed-to-phase.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
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;
@@ -1,63 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"reset-development.js","sourceRoot":"","sources":["../../src/tool-handlers/reset-development.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
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>;
@@ -1,74 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-project-docs.js","sourceRoot":"","sources":["../../src/tool-handlers/setup-project-docs.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
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;
@@ -1,69 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"start-development.js","sourceRoot":"","sources":["../../src/tool-handlers/start-development.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
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;
@@ -1,7 +0,0 @@
1
- /**
2
- * Tool definition helper
3
- */
4
- export function tool(input) {
5
- return input;
6
- }
7
- //# sourceMappingURL=tool-helper.js.map
@@ -1 +0,0 @@
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"}
@@ -1,193 +0,0 @@
1
- /**
2
- * OpenCode Plugin Types
3
- *
4
- * Minimal type definitions needed for the plugin.
5
- * Based on @opencode-ai/plugin package types.
6
- */
7
- import { z } from 'zod';
8
- export type Part = {
9
- type: 'text' | 'image' | 'file' | 'tool_use' | 'tool_result';
10
- text?: string;
11
- [key: string]: unknown;
12
- };
13
- export type UserMessage = {
14
- id: string;
15
- sessionID: string;
16
- role: 'user';
17
- [key: string]: unknown;
18
- };
19
- export type Message = {
20
- id: string;
21
- sessionID: string;
22
- role: 'user' | 'assistant';
23
- [key: string]: unknown;
24
- };
25
- export type Model = {
26
- providerID: string;
27
- modelID: string;
28
- [key: string]: unknown;
29
- };
30
- export type Project = {
31
- id: string;
32
- path: string;
33
- [key: string]: unknown;
34
- };
35
- export type PluginInput = {
36
- client: unknown;
37
- project: Project;
38
- directory: string;
39
- worktree: string;
40
- serverUrl: URL;
41
- $: unknown;
42
- };
43
- export type ToolContext = {
44
- sessionID: string;
45
- messageID: string;
46
- agent: string;
47
- directory: string;
48
- worktree: string;
49
- abort: AbortSignal;
50
- metadata(input: {
51
- title?: string;
52
- metadata?: Record<string, unknown>;
53
- }): void;
54
- ask(input: {
55
- permission: string;
56
- patterns: string[];
57
- always: string[];
58
- metadata: Record<string, unknown>;
59
- }): Promise<void>;
60
- };
61
- export type ToolDefinition = {
62
- description: string;
63
- args: z.ZodRawShape;
64
- execute(args: unknown, context: ToolContext): Promise<string>;
65
- };
66
- export interface Hooks {
67
- event?: (input: {
68
- event: unknown;
69
- }) => Promise<void>;
70
- config?: (input: unknown) => Promise<void>;
71
- tool?: {
72
- [key: string]: ToolDefinition;
73
- };
74
- auth?: unknown;
75
- /**
76
- * Called when a new message is received
77
- */
78
- 'chat.message'?: (input: {
79
- sessionID: string;
80
- agent?: string;
81
- model?: {
82
- providerID: string;
83
- modelID: string;
84
- };
85
- messageID?: string;
86
- variant?: string;
87
- }, output: {
88
- message: UserMessage;
89
- parts: Part[];
90
- }) => Promise<void>;
91
- /**
92
- * Modify parameters sent to LLM
93
- */
94
- 'chat.params'?: (input: {
95
- sessionID: string;
96
- agent: string;
97
- model: Model;
98
- provider: unknown;
99
- message: UserMessage;
100
- }, output: {
101
- temperature: number;
102
- topP: number;
103
- topK: number;
104
- options: Record<string, unknown>;
105
- }) => Promise<void>;
106
- 'chat.headers'?: (input: {
107
- sessionID: string;
108
- agent: string;
109
- model: Model;
110
- provider: unknown;
111
- message: UserMessage;
112
- }, output: {
113
- headers: Record<string, string>;
114
- }) => Promise<void>;
115
- 'permission.ask'?: (input: unknown, output: {
116
- status: 'ask' | 'deny' | 'allow';
117
- }) => Promise<void>;
118
- 'command.execute.before'?: (input: {
119
- command: string;
120
- sessionID: string;
121
- arguments: string;
122
- }, output: {
123
- parts: Part[];
124
- }) => Promise<void>;
125
- 'tool.execute.before'?: (input: {
126
- tool: string;
127
- sessionID: string;
128
- callID: string;
129
- }, output: {
130
- args: Record<string, unknown>;
131
- }) => Promise<void>;
132
- 'shell.env'?: (input: {
133
- cwd: string;
134
- sessionID?: string;
135
- callID?: string;
136
- }, output: {
137
- env: Record<string, string>;
138
- }) => Promise<void>;
139
- 'tool.execute.after'?: (input: {
140
- tool: string;
141
- sessionID: string;
142
- callID: string;
143
- args: unknown;
144
- }, output: {
145
- title: string;
146
- output: string;
147
- metadata: unknown;
148
- }) => Promise<void>;
149
- 'experimental.chat.messages.transform'?: (input: Record<string, never>, output: {
150
- messages: {
151
- info: Message;
152
- parts: Part[];
153
- }[];
154
- }) => Promise<void>;
155
- 'experimental.chat.system.transform'?: (input: {
156
- sessionID?: string;
157
- model: Model;
158
- }, output: {
159
- system: string[];
160
- }) => Promise<void>;
161
- /**
162
- * Called before session compaction starts. Allows plugins to customize
163
- * the compaction prompt.
164
- */
165
- 'experimental.session.compacting'?: (input: {
166
- sessionID: string;
167
- }, output: {
168
- context: string[];
169
- prompt?: string;
170
- }) => Promise<void>;
171
- 'experimental.text.complete'?: (input: {
172
- sessionID: string;
173
- messageID: string;
174
- partID: string;
175
- }, output: {
176
- text: string;
177
- }) => Promise<void>;
178
- /**
179
- * Modify tool definitions (description and parameters) sent to LLM
180
- */
181
- 'tool.definition'?: (input: {
182
- toolID: string;
183
- }, output: {
184
- description: string;
185
- parameters: unknown;
186
- }) => Promise<void>;
187
- }
188
- export type Plugin = (input: PluginInput) => Promise<Hooks>;
189
- export type PluginModule = {
190
- id?: string;
191
- server: Plugin;
192
- tui?: never;
193
- };
@@ -1,8 +0,0 @@
1
- /**
2
- * OpenCode Plugin Types
3
- *
4
- * Minimal type definitions needed for the plugin.
5
- * Based on @opencode-ai/plugin package types.
6
- */
7
- export {};
8
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Format a date as YYYY-MM-DD
3
- */
4
- export declare function formatDate(date: Date): string;
5
- /**
6
- * Get the current git branch for a project
7
- */
8
- export declare function getCurrentGitBranch(projectPath: string): string;
9
- /**
10
- * Strip whats_next() references from instructions.
11
- * The plugin auto-injects instructions via chat.message hook,
12
- * so users don't need to call whats_next() manually.
13
- */
14
- export declare function stripWhatsNextReferences(text: string): string;
@@ -1,26 +0,0 @@
1
- import { GitManager } from '@codemcp/workflows-core';
2
- /**
3
- * Format a date as YYYY-MM-DD
4
- */
5
- export function formatDate(date) {
6
- return date.toISOString().split('T')[0];
7
- }
8
- /**
9
- * Get the current git branch for a project
10
- */
11
- export function getCurrentGitBranch(projectPath) {
12
- return GitManager.getCurrentBranch(projectPath);
13
- }
14
- /**
15
- * Strip whats_next() references from instructions.
16
- * The plugin auto-injects instructions via chat.message hook,
17
- * so users don't need to call whats_next() manually.
18
- */
19
- export function stripWhatsNextReferences(text) {
20
- return text
21
- .split('\n')
22
- .filter(line => !line.toLowerCase().includes('whats_next'))
23
- .join('\n')
24
- .replace(/\n{3,}/g, '\n\n'); // Collapse multiple blank lines
25
- }
26
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,OAAO,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,OAAO,IAAI;SACR,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;SAC1D,IAAI,CAAC,IAAI,CAAC;SACV,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,gCAAgC;AACjE,CAAC"}