@context-forge/mcp 0.4.1 → 0.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.
package/dist/index.js CHANGED
@@ -10,6 +10,7 @@ import { registerStateTools } from './tools/stateTools.js';
10
10
  import { registerConfigTools } from './tools/configTools.js';
11
11
  import { registerIntrospectionTools } from './tools/introspectionTools.js';
12
12
  import { registerWorkflowTools } from './tools/workflowTools.js';
13
+ import { registerWorktreeTools } from './tools/worktreeTools.js';
13
14
  import { registerVersionTool } from './tools/versionTool.js';
14
15
  import { registerGuideTools } from './tools/guideTools.js';
15
16
  const require = createRequire(import.meta.url);
@@ -29,6 +30,7 @@ async function main() {
29
30
  registerConfigTools(server);
30
31
  registerIntrospectionTools(server);
31
32
  registerWorkflowTools(server);
33
+ registerWorktreeTools(server);
32
34
  registerGuideTools(server);
33
35
  registerVersionTool(server, SERVER_NAME, SERVER_VERSION);
34
36
  const transport = new StdioServerTransport();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,qEAAqE;AACrE,2CAA2C;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AACtF,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAExC,SAAS,GAAG,CAAC,OAAe;IAC1B,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAEzD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACxB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,kBAAkB,OAAO,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,qEAAqE;AACrE,2CAA2C;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AACtF,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAExC,SAAS,GAAG,CAAC,OAAe;IAC1B,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAEzD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACxB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,kBAAkB,OAAO,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"contextTools.d.ts","sourceRoot":"","sources":["../../src/tools/contextTools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAEzG;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAEtF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAEvF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAChC,sBAAsB,CAAC,EAAE,MAAM,GAC9B,OAAO,CAAC,MAAM,CAAC,CAkCjB;AAgBD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+K5D"}
1
+ {"version":3,"file":"contextTools.d.ts","sourceRoot":"","sources":["../../src/tools/contextTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKvD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAEzG;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAEtF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAEvF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAChC,sBAAsB,CAAC,EAAE,MAAM,GAC9B,OAAO,CAAC,MAAM,CAAC,CAkCjB;AAoCD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqN5D"}
@@ -1,8 +1,7 @@
1
- import * as path from 'node:path';
2
1
  import { z } from 'zod';
3
- import { FileProjectStore, createContextPipeline, SystemPromptParser } from '@context-forge/core/node';
2
+ import { FileProjectStore, createContextPipeline, SystemPromptParser, resolvePromptFilePath, WorktreeService } from '@context-forge/core/node';
4
3
  import { resolveProjectId } from './resolveProjectId.js';
5
- import { PROMPT_FILE_RELATIVE_PATH } from '@context-forge/core';
4
+ import { applyWorktreeOverlay } from '@context-forge/core';
6
5
  // --- Shared helpers ---
7
6
  export function errorResult(message) {
8
7
  return { content: [{ type: 'text', text: message }], isError: true };
@@ -51,8 +50,28 @@ const contextOverridesSchema = {
51
50
  instructionType: z.string().optional().describe('Override instruction type for profile-aware filtering (ephemeral — does not write to store). Takes precedence over instruction if both are provided.'),
52
51
  developmentPhase: z.string().optional().describe('Override the current development phase'),
53
52
  workType: z.enum(['start', 'continue']).optional().describe('Override whether starting or continuing work'),
53
+ worktree: z.string().optional().describe('Worktree ID or name. When provided, overlays worktree fields onto the project before applying explicit overrides.'),
54
54
  additionalInstructions: z.string().optional().describe('Additional instructions to append to the generated context'),
55
55
  };
56
+ /**
57
+ * Resolve the prompt file path for prompt_list/prompt_get.
58
+ * Tries project-local first; falls back to bundled prompt when no project is available.
59
+ */
60
+ async function resolvePromptFileForTools(projectId) {
61
+ try {
62
+ const resolvedId = await resolveProjectId(projectId);
63
+ const store = new FileProjectStore();
64
+ const project = await store.getById(resolvedId);
65
+ if (project?.projectPath) {
66
+ return resolvePromptFilePath(project.projectPath);
67
+ }
68
+ }
69
+ catch {
70
+ // No project resolved — fall through to bundled
71
+ }
72
+ // Fall back to bundled prompt
73
+ return resolvePromptFilePath();
74
+ }
56
75
  // --- Tool registration ---
57
76
  export function registerContextTools(server) {
58
77
  // --- context_build ---
@@ -61,20 +80,53 @@ export function registerContextTools(server) {
61
80
  description: 'Build a complete context prompt for a Context Forge project. This is the primary tool for generating structured context blocks. Optionally override project parameters (fileSlice, instruction, etc.) without modifying the stored project. Returns the assembled context ready for use.',
62
81
  inputSchema: contextOverridesSchema,
63
82
  annotations: { readOnlyHint: false, idempotentHint: true, openWorldHint: false },
64
- }, async ({ projectId, additionalInstructions, instructionType, ...overrideFields }) => {
83
+ }, async ({ projectId, additionalInstructions, instructionType, worktree: worktreeIdOrName, ...overrideFields }) => {
65
84
  try {
66
85
  const resolvedId = await resolveProjectId(projectId);
67
- // Collect defined overrides; instructionType maps to instruction and takes precedence
68
- const overrides = {};
86
+ // When worktree is specified, apply overlay before explicit overrides
87
+ let worktreeOverrides;
88
+ if (worktreeIdOrName) {
89
+ const store = new FileProjectStore();
90
+ const project = await store.getById(resolvedId);
91
+ if (!project) {
92
+ return errorResult(`Project not found: '${resolvedId}'. Use the project_list tool to see available projects.`);
93
+ }
94
+ const service = new WorktreeService(store);
95
+ let wt = await service.getWorktree(resolvedId, worktreeIdOrName);
96
+ if (!wt) {
97
+ wt = await service.getWorktreeByName(resolvedId, worktreeIdOrName);
98
+ }
99
+ if (!wt) {
100
+ return errorResult(`Worktree '${worktreeIdOrName}' not found. Use worktree_list to see available worktrees.`);
101
+ }
102
+ // Build overlay as overrides — generateContext will apply them
103
+ const overlaid = applyWorktreeOverlay(project, wt.id);
104
+ worktreeOverrides = {
105
+ fileSlice: overlaid.fileSlice,
106
+ fileTasks: overlaid.fileTasks,
107
+ instruction: overlaid.instruction,
108
+ developmentPhase: overlaid.developmentPhase,
109
+ workType: overlaid.workType,
110
+ fileArch: overlaid.fileArch,
111
+ fileSlicePlan: overlaid.fileSlicePlan,
112
+ };
113
+ }
114
+ // Collect defined explicit overrides (these win over worktree overlay)
115
+ const explicitOverrides = {};
69
116
  for (const [key, value] of Object.entries(overrideFields)) {
70
117
  if (value !== undefined) {
71
- overrides[key] = value;
118
+ explicitOverrides[key] = value;
72
119
  }
73
120
  }
74
121
  if (instructionType !== undefined) {
75
- overrides.instruction = instructionType;
122
+ explicitOverrides.instruction = instructionType;
76
123
  }
77
- const contextString = await generateContext(resolvedId, Object.keys(overrides).length > 0 ? overrides : undefined, additionalInstructions);
124
+ // Merge: worktree overlay first, then explicit overrides win
125
+ const mergedOverrides = {
126
+ ...worktreeOverrides,
127
+ ...explicitOverrides,
128
+ };
129
+ const contextString = await generateContext(resolvedId, Object.keys(mergedOverrides).length > 0 ? mergedOverrides : undefined, additionalInstructions);
78
130
  return textResult(contextString);
79
131
  }
80
132
  catch (error) {
@@ -88,16 +140,44 @@ export function registerContextTools(server) {
88
140
  description: 'Preview a context prompt with specified parameters without modifying the stored project or triggering any side effects. Use this to explore what context would be generated with different configurations before committing to a context_build.',
89
141
  inputSchema: contextOverridesSchema,
90
142
  annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
91
- }, async ({ projectId, additionalInstructions, ...overrideFields }) => {
143
+ }, async ({ projectId, additionalInstructions, worktree: wtIdOrName, instructionType, ...overrideFields }) => {
92
144
  try {
93
145
  const resolvedId = await resolveProjectId(projectId);
94
- const overrides = {};
146
+ // Worktree overlay (same logic as context_build)
147
+ let worktreeOverrides;
148
+ if (wtIdOrName) {
149
+ const store = new FileProjectStore();
150
+ const project = await store.getById(resolvedId);
151
+ if (project) {
152
+ const service = new WorktreeService(store);
153
+ let wt = await service.getWorktree(resolvedId, wtIdOrName);
154
+ if (!wt)
155
+ wt = await service.getWorktreeByName(resolvedId, wtIdOrName);
156
+ if (wt) {
157
+ const overlaid = applyWorktreeOverlay(project, wt.id);
158
+ worktreeOverrides = {
159
+ fileSlice: overlaid.fileSlice,
160
+ fileTasks: overlaid.fileTasks,
161
+ instruction: overlaid.instruction,
162
+ developmentPhase: overlaid.developmentPhase,
163
+ workType: overlaid.workType,
164
+ fileArch: overlaid.fileArch,
165
+ fileSlicePlan: overlaid.fileSlicePlan,
166
+ };
167
+ }
168
+ }
169
+ }
170
+ const explicitOverrides = {};
95
171
  for (const [key, value] of Object.entries(overrideFields)) {
96
172
  if (value !== undefined) {
97
- overrides[key] = value;
173
+ explicitOverrides[key] = value;
98
174
  }
99
175
  }
100
- const contextString = await generateContext(resolvedId, Object.keys(overrides).length > 0 ? overrides : undefined, additionalInstructions);
176
+ if (instructionType !== undefined) {
177
+ explicitOverrides.instruction = instructionType;
178
+ }
179
+ const mergedOverrides = { ...worktreeOverrides, ...explicitOverrides };
180
+ const contextString = await generateContext(resolvedId, Object.keys(mergedOverrides).length > 0 ? mergedOverrides : undefined, additionalInstructions);
101
181
  return textResult(contextString);
102
182
  }
103
183
  catch (error) {
@@ -108,23 +188,14 @@ export function registerContextTools(server) {
108
188
  // --- prompt_list ---
109
189
  server.registerTool('prompt_list', {
110
190
  title: 'List Prompts',
111
- description: 'List available prompt templates for a Context Forge project. Returns template names and metadata. Use prompt_get to retrieve the full content of a specific template.',
191
+ description: 'List available prompt templates. When a project is resolved, prefers the project-local prompt file; otherwise falls back to the bundled prompt shipped with @context-forge/core. Returns template names and metadata. Use prompt_get to retrieve the full content of a specific template.',
112
192
  inputSchema: {
113
- projectId: z.string().optional().describe('Project ID. Use project_list to find IDs. Omit to use default_project config.'),
193
+ projectId: z.string().optional().describe('Project ID. Use project_list to find IDs. Omit to use default_project config. If no project can be resolved, bundled prompts are returned.'),
114
194
  },
115
195
  annotations: { readOnlyHint: true, openWorldHint: false },
116
196
  }, async ({ projectId }) => {
117
197
  try {
118
- const resolvedId = await resolveProjectId(projectId);
119
- const store = new FileProjectStore();
120
- const project = await store.getById(resolvedId);
121
- if (!project) {
122
- return errorResult(`Project not found: '${resolvedId}'. Use the project_list tool to see available projects and their IDs.`);
123
- }
124
- if (!project.projectPath) {
125
- return errorResult(`Project '${project.name}' has no configured project path. Set a project path before listing prompts.`);
126
- }
127
- const promptFilePath = path.join(project.projectPath, PROMPT_FILE_RELATIVE_PATH);
198
+ const promptFilePath = await resolvePromptFileForTools(projectId);
128
199
  const parser = new SystemPromptParser(promptFilePath);
129
200
  const prompts = await parser.getAllPrompts();
130
201
  const templates = prompts.map((p) => ({
@@ -142,31 +213,22 @@ export function registerContextTools(server) {
142
213
  // --- prompt_get ---
143
214
  server.registerTool('prompt_get', {
144
215
  title: 'Get Prompt',
145
- description: 'Get the full content of a specific prompt template. Returns the raw template text. Useful for inspecting what a template contains before building context with it.',
216
+ description: 'Get the full content of a specific prompt template. When a project is resolved, prefers the project-local prompt file; otherwise falls back to the bundled prompt. Returns the raw template text.',
146
217
  inputSchema: {
147
- projectId: z.string().optional().describe('Project ID. Use project_list to find IDs. Omit to use default_project config.'),
218
+ projectId: z.string().optional().describe('Project ID. Use project_list to find IDs. Omit to use default_project config. If no project can be resolved, bundled prompts are used.'),
148
219
  templateName: z.string().describe('Template name or key to match. Use prompt_list to see available templates.'),
149
220
  },
150
221
  annotations: { readOnlyHint: true, openWorldHint: false },
151
222
  }, async ({ projectId, templateName }) => {
152
223
  try {
153
- const resolvedId = await resolveProjectId(projectId);
154
- const store = new FileProjectStore();
155
- const project = await store.getById(resolvedId);
156
- if (!project) {
157
- return errorResult(`Project not found: '${resolvedId}'. Use the project_list tool to see available projects and their IDs.`);
158
- }
159
- if (!project.projectPath) {
160
- return errorResult(`Project '${project.name}' has no configured project path. Set a project path before retrieving prompts.`);
161
- }
162
- const promptFilePath = path.join(project.projectPath, PROMPT_FILE_RELATIVE_PATH);
224
+ const promptFilePath = await resolvePromptFileForTools(projectId);
163
225
  const parser = new SystemPromptParser(promptFilePath);
164
226
  const prompts = await parser.getAllPrompts();
165
227
  // Match by name (case-insensitive) or key (exact)
166
228
  const templateNameLower = templateName.toLowerCase();
167
229
  const match = prompts.find((p) => p.name.toLowerCase() === templateNameLower || p.key === templateName);
168
230
  if (!match) {
169
- return errorResult(`Template not found: '${templateName}'. Use the prompt_list tool to see available templates for this project.`);
231
+ return errorResult(`Template not found: '${templateName}'. Use the prompt_list tool to see available templates.`);
170
232
  }
171
233
  // Return metadata header followed by template content
172
234
  const header = `# ${match.name}\nKey: ${match.key}\nParameters: ${match.parameters.join(', ') || 'none'}\n\n---\n\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"contextTools.js","sourceRoot":"","sources":["../../src/tools/contextTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contextTools.js","sourceRoot":"","sources":["../../src/tools/contextTools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"projectTools.d.ts","sourceRoot":"","sources":["../../src/tools/projectTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsCpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwL5D"}
1
+ {"version":3,"file":"projectTools.d.ts","sourceRoot":"","sources":["../../src/tools/projectTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4DpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0P5D"}
@@ -1,7 +1,27 @@
1
1
  import { z } from 'zod';
2
- import { FileProjectStore, ArtifactIntrospector, resolveFileByIndex } from '@context-forge/core/node';
2
+ import { FileProjectStore, ArtifactIntrospector, resolveFileByIndex, WorktreeService } from '@context-forge/core/node';
3
3
  import { getSchema } from '@context-forge/core';
4
4
  import { resolveProjectId } from './resolveProjectId.js';
5
+ /** Fields that are routed to the worktree context when worktreeId is provided. */
6
+ const WORKTREE_SCOPED_FIELDS = new Set([
7
+ 'developmentPhase',
8
+ 'instruction',
9
+ 'workType',
10
+ 'fileArch',
11
+ 'fileSlicePlan',
12
+ 'fileSlice',
13
+ 'fileTasks',
14
+ ]);
15
+ /** Map ProjectData field names to their WorktreeContext counterparts. */
16
+ const PROJECT_TO_WORKTREE_FIELD = {
17
+ fileSlice: 'activeSlice',
18
+ fileTasks: 'activeTaskFile',
19
+ fileArch: 'archDoc',
20
+ fileSlicePlan: 'slicePlan',
21
+ developmentPhase: 'developmentPhase',
22
+ instruction: 'instruction',
23
+ workType: 'workType',
24
+ };
5
25
  function toSummary(project) {
6
26
  return {
7
27
  id: project.id,
@@ -80,6 +100,7 @@ export function registerProjectTools(server) {
80
100
  description: 'Update configuration fields on an existing Context Forge project. Provide the project ID and any fields to change (e.g., fileSlice, instruction, developmentPhase). Returns the full updated project. Does not delete or replace — only modifies specified fields.',
81
101
  inputSchema: {
82
102
  id: z.string().optional().describe('Project ID to update. Omit to use default_project config.'),
103
+ worktreeId: z.string().optional().describe('Worktree ID or name. When provided, workflow fields (fileSlice, instruction, etc.) are routed to the worktree context instead of the project.'),
83
104
  name: z.string().optional().describe('Project display name'),
84
105
  template: z.string().optional().describe('Template name'),
85
106
  fileSlice: z.string().optional().describe('Current slice name'),
@@ -104,17 +125,17 @@ export function registerProjectTools(server) {
104
125
  .describe('Custom data fields for context generation'),
105
126
  },
106
127
  annotations: { destructiveHint: false, idempotentHint: true, openWorldHint: false },
107
- }, async ({ id, ...fields }) => {
128
+ }, async ({ id, worktreeId, ...fields }) => {
108
129
  try {
109
130
  const resolvedId = await resolveProjectId(id);
110
131
  // Collect defined update fields (exclude undefined values)
111
- const updates = {};
132
+ const allUpdates = {};
112
133
  for (const [key, value] of Object.entries(fields)) {
113
134
  if (value !== undefined) {
114
- updates[key] = value;
135
+ allUpdates[key] = value;
115
136
  }
116
137
  }
117
- if (Object.keys(updates).length === 0) {
138
+ if (Object.keys(allUpdates).length === 0) {
118
139
  return errorResult('No update fields provided. Specify at least one field to update (e.g., fileSlice, instruction, name).');
119
140
  }
120
141
  const store = new FileProjectStore();
@@ -123,6 +144,62 @@ export function registerProjectTools(server) {
123
144
  if (!existing) {
124
145
  return errorResult(`Project not found: '${resolvedId}'. Use the project_list tool to see available projects and their IDs.`);
125
146
  }
147
+ // --- Worktree-aware field routing ---
148
+ if (worktreeId) {
149
+ const service = new WorktreeService(store);
150
+ let wt = await service.getWorktree(resolvedId, worktreeId);
151
+ if (!wt) {
152
+ wt = await service.getWorktreeByName(resolvedId, worktreeId);
153
+ }
154
+ if (!wt) {
155
+ return errorResult(`Worktree '${worktreeId}' not found. Use worktree_list to see available worktrees.`);
156
+ }
157
+ // Split fields into worktree-scoped and project-level
158
+ const worktreeUpdates = {};
159
+ const projectUpdates = {};
160
+ for (const [key, value] of Object.entries(allUpdates)) {
161
+ if (WORKTREE_SCOPED_FIELDS.has(key)) {
162
+ const wtKey = PROJECT_TO_WORKTREE_FIELD[key] ?? key;
163
+ worktreeUpdates[wtKey] = value;
164
+ }
165
+ else {
166
+ projectUpdates[key] = value;
167
+ }
168
+ }
169
+ // Auto-set instruction when developmentPhase changes on worktree
170
+ if ('developmentPhase' in worktreeUpdates && !('instruction' in worktreeUpdates)) {
171
+ worktreeUpdates.instruction = worktreeUpdates.developmentPhase;
172
+ }
173
+ // Auto-set activeTaskFile when activeSlice changes on worktree
174
+ if ('activeSlice' in worktreeUpdates && !('activeTaskFile' in worktreeUpdates) && existing.projectPath) {
175
+ const sliceValue = worktreeUpdates.activeSlice;
176
+ const sliceIndex = /^(\d+)-/.exec(sliceValue);
177
+ if (sliceIndex) {
178
+ try {
179
+ const resolved = resolveFileByIndex(existing.projectPath, 'fileTasks', sliceIndex[1]);
180
+ worktreeUpdates.activeTaskFile = resolved;
181
+ }
182
+ catch {
183
+ const derived = sliceValue.replace(/^(\d+)-slice\./, '$1-tasks.');
184
+ if (derived !== sliceValue) {
185
+ worktreeUpdates.activeTaskFile = derived;
186
+ }
187
+ }
188
+ }
189
+ }
190
+ // Apply worktree updates
191
+ if (Object.keys(worktreeUpdates).length > 0) {
192
+ await service.updateWorktree(resolvedId, wt.id, worktreeUpdates);
193
+ }
194
+ // Apply project-level updates
195
+ if (Object.keys(projectUpdates).length > 0) {
196
+ await store.update(resolvedId, projectUpdates);
197
+ }
198
+ const updated = await store.getById(resolvedId);
199
+ return jsonResult({ ...updated, _worktreeUpdated: wt.id });
200
+ }
201
+ // --- Standard (non-worktree) path ---
202
+ const updates = allUpdates;
126
203
  // Auto-set instruction when developmentPhase changes (unless instruction is explicitly provided)
127
204
  if ('developmentPhase' in updates && !('instruction' in updates)) {
128
205
  updates.instruction = updates.developmentPhase;
@@ -1 +1 @@
1
- {"version":3,"file":"projectTools.js","sourceRoot":"","sources":["../../src/tools/projectTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectTools.js","sourceRoot":"","sources":["../../src/tools/projectTools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflowTools.d.ts","sourceRoot":"","sources":["../../src/tools/workflowTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoBpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgO7D"}
1
+ {"version":3,"file":"workflowTools.d.ts","sourceRoot":"","sources":["../../src/tools/workflowTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwBpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyS7D"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { FileProjectStore, FutureWorkCollector, WorkflowNavigator, ArtifactIntrospector, ConsistencyChecker, ConfigManager, } from '@context-forge/core/node';
2
+ import { FileProjectStore, FutureWorkCollector, WorkflowNavigator, ArtifactIntrospector, ConsistencyChecker, ConfigManager, getStoragePath, createVersionedBackup, WorktreeService, } from '@context-forge/core/node';
3
+ import { applyWorktreeOverlay } from '@context-forge/core';
3
4
  import { resolveProjectId } from './resolveProjectId.js';
4
5
  function errorResult(message) {
5
6
  return { content: [{ type: 'text', text: message }], isError: true };
@@ -70,19 +71,37 @@ export function registerWorkflowTools(server) {
70
71
  .string()
71
72
  .optional()
72
73
  .describe('Project ID. Omit to use default_project config.'),
74
+ worktreeId: z
75
+ .string()
76
+ .optional()
77
+ .describe('Worktree ID or name. When provided, overlays worktree fields onto the project before computing status.'),
73
78
  },
74
79
  annotations: { readOnlyHint: true, openWorldHint: false },
75
80
  }, async (args) => {
76
81
  try {
77
82
  const resolvedId = await resolveProjectId(args.projectId);
78
83
  const store = new FileProjectStore();
79
- const project = await store.getById(resolvedId);
84
+ let project = await store.getById(resolvedId);
80
85
  if (!project) {
81
86
  return errorResult(`Project not found: '${resolvedId}'. Use the project_list tool to see available projects.`);
82
87
  }
88
+ let worktreeField;
89
+ if (args.worktreeId) {
90
+ const service = new WorktreeService(store);
91
+ let wt = await service.getWorktree(resolvedId, args.worktreeId);
92
+ if (!wt) {
93
+ wt = await service.getWorktreeByName(resolvedId, args.worktreeId);
94
+ }
95
+ if (!wt) {
96
+ return errorResult(`Worktree '${args.worktreeId}' not found. Use worktree_list to see available worktrees.`);
97
+ }
98
+ project = applyWorktreeOverlay(project, wt.id);
99
+ worktreeField = { id: wt.id, name: wt.name };
100
+ }
83
101
  const nav = new WorkflowNavigator();
84
102
  const status = await nav.getStatus(project);
85
- return jsonResult(status);
103
+ const result = worktreeField ? { ...status, worktree: worktreeField } : status;
104
+ return jsonResult(result);
86
105
  }
87
106
  catch (error) {
88
107
  const msg = error instanceof Error ? error.message : String(error);
@@ -100,19 +119,37 @@ export function registerWorkflowTools(server) {
100
119
  .string()
101
120
  .optional()
102
121
  .describe('Project ID. Omit to use default_project config.'),
122
+ worktreeId: z
123
+ .string()
124
+ .optional()
125
+ .describe('Worktree ID or name. When provided, overlays worktree fields onto the project before computing next action.'),
103
126
  },
104
127
  annotations: { readOnlyHint: true, openWorldHint: false },
105
128
  }, async (args) => {
106
129
  try {
107
130
  const resolvedId = await resolveProjectId(args.projectId);
108
131
  const store = new FileProjectStore();
109
- const project = await store.getById(resolvedId);
132
+ let project = await store.getById(resolvedId);
110
133
  if (!project) {
111
134
  return errorResult(`Project not found: '${resolvedId}'. Use the project_list tool to see available projects.`);
112
135
  }
136
+ let worktreeField;
137
+ if (args.worktreeId) {
138
+ const service = new WorktreeService(store);
139
+ let wt = await service.getWorktree(resolvedId, args.worktreeId);
140
+ if (!wt) {
141
+ wt = await service.getWorktreeByName(resolvedId, args.worktreeId);
142
+ }
143
+ if (!wt) {
144
+ return errorResult(`Worktree '${args.worktreeId}' not found. Use worktree_list to see available worktrees.`);
145
+ }
146
+ project = applyWorktreeOverlay(project, wt.id);
147
+ worktreeField = { id: wt.id, name: wt.name };
148
+ }
113
149
  const nav = new WorkflowNavigator();
114
150
  const next = await nav.getNext(project);
115
- return jsonResult(next);
151
+ const result = worktreeField ? { ...next, worktree: worktreeField } : next;
152
+ return jsonResult(result);
116
153
  }
117
154
  catch (error) {
118
155
  const msg = error instanceof Error ? error.message : String(error);
@@ -190,5 +227,27 @@ export function registerWorkflowTools(server) {
190
227
  return errorResult(`Error: ${msg}`);
191
228
  }
192
229
  });
230
+ // --- storage_backup ---
231
+ server.registerTool('storage_backup', {
232
+ title: 'Create Versioned Backup',
233
+ description: 'Create a versioned timestamped backup of the projects.json data file. ' +
234
+ 'Keeps the last 10 backups, automatically pruning older ones. ' +
235
+ 'Response shape: { storagePath, backedUp: string[] }.',
236
+ inputSchema: {},
237
+ annotations: { readOnlyHint: false, openWorldHint: false },
238
+ }, async () => {
239
+ try {
240
+ const storagePath = getStoragePath();
241
+ const files = ['projects.json'];
242
+ for (const file of files) {
243
+ await createVersionedBackup(storagePath, file);
244
+ }
245
+ return jsonResult({ storagePath, backedUp: files });
246
+ }
247
+ catch (error) {
248
+ const msg = error instanceof Error ? error.message : String(error);
249
+ return errorResult(`Error: ${msg}`);
250
+ }
251
+ });
193
252
  }
194
253
  //# sourceMappingURL=workflowTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflowTools.js","sourceRoot":"","sources":["../../src/tools/workflowTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflowTools.js","sourceRoot":"","sources":["../../src/tools/workflowTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function registerWorktreeTools(server: McpServer): void;
3
+ //# sourceMappingURL=worktreeTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktreeTools.d.ts","sourceRoot":"","sources":["../../src/tools/worktreeTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyDpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyO7D"}
@@ -0,0 +1,235 @@
1
+ import { z } from 'zod';
2
+ import { FileProjectStore, WorktreeService, GitWorktreeDiscovery } from '@context-forge/core/node';
3
+ import { resolveProjectId } from './resolveProjectId.js';
4
+ import { errorResult, jsonResult } from './contextTools.js';
5
+ /**
6
+ * Resolve a worktree by ID or name (case-insensitive).
7
+ * Returns the project and worktree, or an error result.
8
+ */
9
+ async function resolveWorktree(projectId, worktreeIdOrName, store) {
10
+ const project = await store.getById(projectId);
11
+ if (!project) {
12
+ return errorResult(`Project not found: '${projectId}'. Use the project_list tool to see available projects.`);
13
+ }
14
+ const service = new WorktreeService(store);
15
+ // Try exact ID first
16
+ let worktree = await service.getWorktree(projectId, worktreeIdOrName);
17
+ if (!worktree) {
18
+ // Fall back to case-insensitive name match
19
+ worktree = await service.getWorktreeByName(projectId, worktreeIdOrName);
20
+ }
21
+ if (!worktree) {
22
+ return errorResult(`Worktree '${worktreeIdOrName}' not found in project '${projectId}'. ` +
23
+ 'Use the worktree_list tool to see available worktrees.');
24
+ }
25
+ return { project, worktree };
26
+ }
27
+ /** Check if a result is an error (has isError field). */
28
+ function isErrorResult(result) {
29
+ return typeof result === 'object' && result !== null && 'isError' in result;
30
+ }
31
+ /** Parse an index range string "start-end" into a [number, number] tuple. */
32
+ function parseIndexRange(value) {
33
+ const match = /^(\d+)-(\d+)$/.exec(value);
34
+ if (!match)
35
+ return null;
36
+ return [parseInt(match[1], 10), parseInt(match[2], 10)];
37
+ }
38
+ export function registerWorktreeTools(server) {
39
+ // --- worktree_list ---
40
+ server.registerTool('worktree_list', {
41
+ title: 'List Worktrees',
42
+ description: 'List all worktree contexts for a project. Returns worktree IDs, names, index ranges, and workflow state. ' +
43
+ 'Use this to discover available worktrees before calling worktree_get or worktree_update.',
44
+ inputSchema: {
45
+ projectId: z.string().optional().describe('Project ID. Omit to use default_project config.'),
46
+ },
47
+ annotations: { readOnlyHint: true, openWorldHint: false },
48
+ }, async (args) => {
49
+ try {
50
+ const resolvedId = await resolveProjectId(args.projectId);
51
+ const store = new FileProjectStore();
52
+ const service = new WorktreeService(store);
53
+ const worktrees = await service.listWorktrees(resolvedId);
54
+ // Validate worktree paths if project has a projectPath
55
+ const project = await store.getById(resolvedId);
56
+ let pathStatuses;
57
+ if (project?.projectPath && worktrees.length > 0) {
58
+ try {
59
+ const gitWorktrees = await new GitWorktreeDiscovery().listWorktrees(project.projectPath);
60
+ pathStatuses = await service.validateWorktreePaths(resolvedId, gitWorktrees);
61
+ }
62
+ catch {
63
+ // Git discovery failure — omit pathStatuses
64
+ }
65
+ }
66
+ return jsonResult({ worktrees, count: worktrees.length, ...(pathStatuses ? { pathStatuses } : {}) });
67
+ }
68
+ catch (error) {
69
+ const msg = error instanceof Error ? error.message : String(error);
70
+ return errorResult(`Error: ${msg}`);
71
+ }
72
+ });
73
+ // --- worktree_get ---
74
+ server.registerTool('worktree_get', {
75
+ title: 'Get Worktree',
76
+ description: 'Get full details for a specific worktree context by ID or name. ' +
77
+ 'Returns all worktree fields including index range, workflow state, and paths.',
78
+ inputSchema: {
79
+ projectId: z.string().optional().describe('Project ID. Omit to use default_project config.'),
80
+ worktree: z.string().describe('Worktree ID or name to look up.'),
81
+ },
82
+ annotations: { readOnlyHint: true, openWorldHint: false },
83
+ }, async (args) => {
84
+ try {
85
+ const resolvedId = await resolveProjectId(args.projectId);
86
+ const store = new FileProjectStore();
87
+ const result = await resolveWorktree(resolvedId, args.worktree, store);
88
+ if (isErrorResult(result))
89
+ return result;
90
+ return jsonResult(result.worktree);
91
+ }
92
+ catch (error) {
93
+ const msg = error instanceof Error ? error.message : String(error);
94
+ return errorResult(`Error: ${msg}`);
95
+ }
96
+ });
97
+ // --- worktree_init ---
98
+ server.registerTool('worktree_init', {
99
+ title: 'Initialize Worktree',
100
+ description: 'Create a new worktree context for a project. The first worktree triggers forward migration, ' +
101
+ 'moving existing workflow fields into a "Default" worktree. Returns the created worktree, ' +
102
+ 'whether migration occurred, and any index range overlaps.',
103
+ inputSchema: {
104
+ projectId: z.string().optional().describe('Project ID. Omit to use default_project config.'),
105
+ name: z.string().describe('Display name for the worktree context.'),
106
+ indexRange: z.string().describe('Slice index range as "start-end" (e.g., "100-199").'),
107
+ worktreePath: z.string().optional().describe('Absolute path to the git worktree directory.'),
108
+ archDoc: z.string().optional().describe('Architecture document reference.'),
109
+ slicePlan: z.string().optional().describe('Slice plan document reference.'),
110
+ developmentPhase: z.string().optional().describe('Initial development phase.'),
111
+ },
112
+ annotations: { destructiveHint: false, idempotentHint: false },
113
+ }, async (args) => {
114
+ try {
115
+ const range = parseIndexRange(args.indexRange);
116
+ if (!range) {
117
+ return errorResult(`Invalid indexRange format: '${args.indexRange}'. Expected "start-end" (e.g., "100-199").`);
118
+ }
119
+ const resolvedId = await resolveProjectId(args.projectId);
120
+ const store = new FileProjectStore();
121
+ const service = new WorktreeService(store);
122
+ const result = await service.addWorktree(resolvedId, {
123
+ name: args.name,
124
+ indexRange: range,
125
+ worktreePath: args.worktreePath,
126
+ archDoc: args.archDoc,
127
+ slicePlan: args.slicePlan,
128
+ });
129
+ // Set developmentPhase via update if provided
130
+ if (args.developmentPhase) {
131
+ await service.updateWorktree(resolvedId, result.worktree.id, {
132
+ developmentPhase: args.developmentPhase,
133
+ });
134
+ result.worktree.developmentPhase = args.developmentPhase;
135
+ }
136
+ return jsonResult(result);
137
+ }
138
+ catch (error) {
139
+ const msg = error instanceof Error ? error.message : String(error);
140
+ return errorResult(`Error: ${msg}`);
141
+ }
142
+ });
143
+ // --- worktree_update ---
144
+ server.registerTool('worktree_update', {
145
+ title: 'Update Worktree',
146
+ description: 'Update fields on an existing worktree context. Provide the worktree ID or name and any fields to change. ' +
147
+ 'Returns the full updated worktree context.',
148
+ inputSchema: {
149
+ projectId: z.string().optional().describe('Project ID. Omit to use default_project config.'),
150
+ worktree: z.string().describe('Worktree ID or name to update.'),
151
+ name: z.string().optional().describe('New display name.'),
152
+ indexRange: z.string().optional().describe('New index range as "start-end".'),
153
+ worktreePath: z.string().optional().describe('New worktree directory path.'),
154
+ archDoc: z.string().optional().describe('Architecture document reference.'),
155
+ slicePlan: z.string().optional().describe('Slice plan document reference.'),
156
+ developmentPhase: z.string().optional().describe('Development phase.'),
157
+ activeSlice: z.string().optional().describe('Active slice name.'),
158
+ activeTaskFile: z.string().optional().describe('Active task file name.'),
159
+ instruction: z.string().optional().describe('Instruction type.'),
160
+ workType: z.enum(['start', 'continue']).optional().describe('Work type.'),
161
+ },
162
+ annotations: { destructiveHint: false, idempotentHint: true },
163
+ }, async (args) => {
164
+ try {
165
+ const resolvedId = await resolveProjectId(args.projectId);
166
+ const store = new FileProjectStore();
167
+ const resolved = await resolveWorktree(resolvedId, args.worktree, store);
168
+ if (isErrorResult(resolved))
169
+ return resolved;
170
+ // Parse indexRange if provided
171
+ let indexRange;
172
+ if (args.indexRange) {
173
+ const parsed = parseIndexRange(args.indexRange);
174
+ if (!parsed) {
175
+ return errorResult(`Invalid indexRange format: '${args.indexRange}'. Expected "start-end" (e.g., "100-199").`);
176
+ }
177
+ indexRange = parsed;
178
+ }
179
+ // Collect non-undefined update fields
180
+ const updates = {};
181
+ const fieldKeys = [
182
+ 'name', 'worktreePath', 'archDoc', 'slicePlan',
183
+ 'developmentPhase', 'activeSlice', 'activeTaskFile',
184
+ 'instruction', 'workType',
185
+ ];
186
+ for (const key of fieldKeys) {
187
+ if (args[key] !== undefined) {
188
+ updates[key] = args[key];
189
+ }
190
+ }
191
+ if (indexRange) {
192
+ updates.indexRange = indexRange;
193
+ }
194
+ const service = new WorktreeService(store);
195
+ const updated = await service.updateWorktree(resolvedId, resolved.worktree.id, updates);
196
+ // Check for overlaps when range changed
197
+ let overlaps;
198
+ if (indexRange) {
199
+ overlaps = await service.findOverlaps(resolvedId, indexRange, resolved.worktree.id);
200
+ }
201
+ return jsonResult({ worktree: updated, ...(overlaps ? { overlaps } : {}) });
202
+ }
203
+ catch (error) {
204
+ const msg = error instanceof Error ? error.message : String(error);
205
+ return errorResult(`Error: ${msg}`);
206
+ }
207
+ });
208
+ // --- worktree_rm ---
209
+ server.registerTool('worktree_rm', {
210
+ title: 'Remove Worktree',
211
+ description: 'Remove a worktree context from a project. If this is the last worktree, triggers reverse migration ' +
212
+ 'restoring workflow fields to the project. Returns the removed worktree and whether migration occurred.',
213
+ inputSchema: {
214
+ projectId: z.string().optional().describe('Project ID. Omit to use default_project config.'),
215
+ worktree: z.string().describe('Worktree ID or name to remove.'),
216
+ },
217
+ annotations: { destructiveHint: true, idempotentHint: false },
218
+ }, async (args) => {
219
+ try {
220
+ const resolvedId = await resolveProjectId(args.projectId);
221
+ const store = new FileProjectStore();
222
+ const resolved = await resolveWorktree(resolvedId, args.worktree, store);
223
+ if (isErrorResult(resolved))
224
+ return resolved;
225
+ const service = new WorktreeService(store);
226
+ const result = await service.removeWorktree(resolvedId, resolved.worktree.id);
227
+ return jsonResult(result);
228
+ }
229
+ catch (error) {
230
+ const msg = error instanceof Error ? error.message : String(error);
231
+ return errorResult(`Error: ${msg}`);
232
+ }
233
+ });
234
+ }
235
+ //# sourceMappingURL=worktreeTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktreeTools.js","sourceRoot":"","sources":["../../src/tools/worktreeTools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@context-forge/mcp",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "MCP server for Context Forge — generates structured AI context prompts from project configuration and templates",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -34,7 +34,7 @@
34
34
  "dependencies": {
35
35
  "@modelcontextprotocol/sdk": "^1.26.0",
36
36
  "zod": "^4.1.5",
37
- "@context-forge/core": "0.4.1"
37
+ "@context-forge/core": "0.5.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "^25.3.0",