@context-forge/core 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/assets/prompt.ai-project.system.md +9 -8
- package/dist/git/GitWorktreeDiscovery.d.ts +15 -0
- package/dist/git/GitWorktreeDiscovery.d.ts.map +1 -0
- package/dist/git/GitWorktreeDiscovery.js +65 -0
- package/dist/git/GitWorktreeDiscovery.js.map +1 -0
- package/dist/git/index.d.ts +2 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +2 -0
- package/dist/git/index.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/introspection/ConsistencyChecker.d.ts +3 -1
- package/dist/introspection/ConsistencyChecker.d.ts.map +1 -1
- package/dist/introspection/ConsistencyChecker.js +49 -0
- package/dist/introspection/ConsistencyChecker.js.map +1 -1
- package/dist/node.d.ts +3 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +5 -1
- package/dist/node.js.map +1 -1
- package/dist/services/CoreServiceFactory.d.ts +6 -0
- package/dist/services/CoreServiceFactory.d.ts.map +1 -1
- package/dist/services/CoreServiceFactory.js +7 -4
- package/dist/services/CoreServiceFactory.js.map +1 -1
- package/dist/services/WorktreeService.d.ts +57 -0
- package/dist/services/WorktreeService.d.ts.map +1 -0
- package/dist/services/WorktreeService.js +233 -0
- package/dist/services/WorktreeService.js.map +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +2 -0
- package/dist/services/index.js.map +1 -1
- package/dist/storage/FileProjectStore.d.ts.map +1 -1
- package/dist/storage/FileProjectStore.js +2 -0
- package/dist/storage/FileProjectStore.js.map +1 -1
- package/dist/types/git.d.ts +12 -0
- package/dist/types/git.d.ts.map +1 -0
- package/dist/types/git.js +2 -0
- package/dist/types/git.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/project.d.ts +4 -1
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/worktree.d.ts +81 -0
- package/dist/types/worktree.d.ts.map +1 -0
- package/dist/types/worktree.js +2 -0
- package/dist/types/worktree.js.map +1 -0
- package/dist/utils/worktree-overlay.d.ts +4 -0
- package/dist/utils/worktree-overlay.d.ts.map +1 -0
- package/dist/utils/worktree-overlay.js +17 -0
- package/dist/utils/worktree-overlay.js.map +1 -0
- package/package.json +1 -1
|
@@ -84,11 +84,11 @@ layer: project
|
|
|
84
84
|
project: {project}
|
|
85
85
|
archIndex: nnn
|
|
86
86
|
component: {component-name}
|
|
87
|
+
relatedSlices: []
|
|
88
|
+
riskLevel: low|medium|high
|
|
87
89
|
dateCreated: YYYYMMDD
|
|
88
90
|
dateUpdated: YYYYMMDD
|
|
89
91
|
status: in_progress
|
|
90
|
-
relatedSlices: []
|
|
91
|
-
riskLevel: low|medium|high
|
|
92
92
|
---
|
|
93
93
|
```
|
|
94
94
|
```markdown
|
|
@@ -174,7 +174,8 @@ Your role is Architect as described in the Process Guide. Work with the Project
|
|
|
174
174
|
3. Create the slice plan document in the correct location:
|
|
175
175
|
`user/architecture/nnn-slices.{name}.md` (sharing the parent architecture document's base index, per `file-naming-conventions.md`)
|
|
176
176
|
4. When numbering slices, you may use an index starting with 1, but continue the same index throughout the document. Do not restart the numbering within the plan.
|
|
177
|
-
5.
|
|
177
|
+
5. When naming slices in the slice plan, avoid use of ampersand or other special characters not commonly accepted in filenames. - and space are fine. Include a tentative slice number starting with the sliceplan index. Example: 1. [ ] **(100) MCP Server Scaffolding** - {remainder of entry}
|
|
178
|
+
6. Include YAML frontmatter with `status: active` (or `complete` if all slices are done). Each slice entry should also include a status field: `not_started`, `in_progress`, `complete`, or `blocked`.
|
|
178
179
|
|
|
179
180
|
**Example YAML FrontMatter**:
|
|
180
181
|
```yaml
|
|
@@ -182,9 +183,9 @@ Your role is Architect as described in the Process Guide. Work with the Project
|
|
|
182
183
|
docType: slice-plan
|
|
183
184
|
parent: user/architecture/140-arch.context-forge-restructure.md
|
|
184
185
|
project: context-forge
|
|
185
|
-
status: active
|
|
186
186
|
dateCreated: 20260214
|
|
187
187
|
dateUpdated: 20260217
|
|
188
|
+
status: not_started
|
|
188
189
|
---
|
|
189
190
|
```
|
|
190
191
|
|
|
@@ -229,7 +230,7 @@ Include:
|
|
|
229
230
|
- UI mockups or API/tool specifications (if applicable)
|
|
230
231
|
- Cross-slice dependencies and interfaces
|
|
231
232
|
- Success criteria specific enough for task creation
|
|
232
|
-
- Verification walkthrough: concrete commands, workflows, and step-by-step confirmation that the user can follow to prove the slice delivers what it claims. This is not a restatement of success criteria — it's the "demo script" showing what the user can actually do.
|
|
233
|
+
- Verification walkthrough: concrete commands, workflows, and step-by-step confirmation that the user can follow to prove the slice delivers what it claims. This is not a restatement of success criteria — it's the "demo script" showing what the user can actually do. This is the draft walkthrough that will be refined when Phase 6 (Implementation) is complete.
|
|
233
234
|
- Only template sections that are relevant to this slice — omit sections that don't apply
|
|
234
235
|
|
|
235
236
|
Avoid:
|
|
@@ -286,7 +287,7 @@ Avoid:
|
|
|
286
287
|
|
|
287
288
|
For each {tool} in use, consult knowledge in `ai-project-guide/tool-guides/{tool}/`. Follow all task creation guidelines from the Process Guide.
|
|
288
289
|
|
|
289
|
-
Each task must be completable by a junior AI with clear success criteria. If insufficient information is available, stop and request clarifying information. Keep files to about
|
|
290
|
+
Each task must be completable by a junior AI with clear success criteria. If insufficient information is available, stop and request clarifying information. Keep files to about 450 lines or less. If considerably more space is needed modify files as detailed here. Do not split a file if it's less than about 100 line overrun.
|
|
290
291
|
1. rename current file nnn-tasks.[task section name]-1.md
|
|
291
292
|
2. add new file nnn-tasks.[task-section-name]-2.md
|
|
292
293
|
3. ...etc...
|
|
@@ -311,10 +312,10 @@ Work carefully and sequentially through the tasks, ensuring that each task is ve
|
|
|
311
312
|
|
|
312
313
|
If you encounter a failing test, an ambiguous requirement, or a design decision not covered by the slice design, stop and confer with the Project Manager. Do not make more than three attempts at a failing approach before stopping.
|
|
313
314
|
|
|
314
|
-
If an attempted solution does not work or you find reason to try another approach, do not make more than three attempts without stopping and obtaining confirmation from Project Manager.
|
|
315
|
-
|
|
316
315
|
Be sure to check off tasks as they are completed. If a parent slice plan file contains checklist items, check off parent items after all child items are complete. If a `task-checker` tool|agent is available to you, use it.
|
|
317
316
|
|
|
317
|
+
After completing all tasks, run through the Verification Walkthrough section of the slice design as a final confirmation. If any step doesn't work as described, stop and confer with Project Manager before marking the slice complete. Update the Verification Walkthrough with actual commands, expected command output, corrections, and any caveats discovered during implementation. The goal is for the walkthrough to be aditionally verifiable by an external agent (human or AI, as applicable).
|
|
318
|
+
|
|
318
319
|
Maintain the YAML frontmatter including:
|
|
319
320
|
- Status: not_started, in_progress, complete, not_applicable
|
|
320
321
|
- Date updated
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { WorktreeInfo } from '../types/git.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parse the output of `git worktree list --porcelain` into WorktreeInfo[].
|
|
4
|
+
* Exported for direct unit testing with string fixtures.
|
|
5
|
+
*/
|
|
6
|
+
export declare function parseWorktreeListOutput(stdout: string): WorktreeInfo[];
|
|
7
|
+
/** Discovers git worktrees by parsing `git worktree list --porcelain`. */
|
|
8
|
+
export declare class GitWorktreeDiscovery {
|
|
9
|
+
/**
|
|
10
|
+
* List all worktrees for the git repository at the given path.
|
|
11
|
+
* Returns empty array if git is not available or path is not a git repo.
|
|
12
|
+
*/
|
|
13
|
+
listWorktrees(repoPath: string): Promise<WorktreeInfo[]>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=GitWorktreeDiscovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitWorktreeDiscovery.d.ts","sourceRoot":"","sources":["../../src/git/GitWorktreeDiscovery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CA0CtE;AAED,0EAA0E;AAC1E,qBAAa,oBAAoB;IAC/B;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAQ/D"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { gitExec } from '../guides/gitExec.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parse the output of `git worktree list --porcelain` into WorktreeInfo[].
|
|
4
|
+
* Exported for direct unit testing with string fixtures.
|
|
5
|
+
*/
|
|
6
|
+
export function parseWorktreeListOutput(stdout) {
|
|
7
|
+
if (!stdout.trim())
|
|
8
|
+
return [];
|
|
9
|
+
// Entries are separated by blank lines
|
|
10
|
+
const entries = stdout.split(/\n\n+/);
|
|
11
|
+
const results = [];
|
|
12
|
+
for (const entry of entries) {
|
|
13
|
+
const trimmed = entry.trim();
|
|
14
|
+
if (!trimmed)
|
|
15
|
+
continue;
|
|
16
|
+
const lines = trimmed.split('\n');
|
|
17
|
+
let path = '';
|
|
18
|
+
let head = '';
|
|
19
|
+
let branch;
|
|
20
|
+
let bare = false;
|
|
21
|
+
let prunable = false;
|
|
22
|
+
for (const line of lines) {
|
|
23
|
+
if (line.startsWith('worktree ')) {
|
|
24
|
+
path = line.slice('worktree '.length);
|
|
25
|
+
}
|
|
26
|
+
else if (line.startsWith('HEAD ')) {
|
|
27
|
+
head = line.slice('HEAD '.length);
|
|
28
|
+
}
|
|
29
|
+
else if (line.startsWith('branch ')) {
|
|
30
|
+
branch = line.slice('branch '.length);
|
|
31
|
+
}
|
|
32
|
+
else if (line === 'bare') {
|
|
33
|
+
bare = true;
|
|
34
|
+
}
|
|
35
|
+
else if (line === 'prunable' || line.startsWith('prunable ')) {
|
|
36
|
+
prunable = true;
|
|
37
|
+
}
|
|
38
|
+
// 'detached' — branch remains undefined, which is the correct result
|
|
39
|
+
}
|
|
40
|
+
// Skip bare repo entries and prunable (stale) entries
|
|
41
|
+
if (bare || prunable)
|
|
42
|
+
continue;
|
|
43
|
+
if (path && head) {
|
|
44
|
+
results.push({ path, head, branch, bare: false });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return results;
|
|
48
|
+
}
|
|
49
|
+
/** Discovers git worktrees by parsing `git worktree list --porcelain`. */
|
|
50
|
+
export class GitWorktreeDiscovery {
|
|
51
|
+
/**
|
|
52
|
+
* List all worktrees for the git repository at the given path.
|
|
53
|
+
* Returns empty array if git is not available or path is not a git repo.
|
|
54
|
+
*/
|
|
55
|
+
async listWorktrees(repoPath) {
|
|
56
|
+
try {
|
|
57
|
+
const { stdout } = await gitExec(['worktree', 'list', '--porcelain'], repoPath);
|
|
58
|
+
return parseWorktreeListOutput(stdout);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=GitWorktreeDiscovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitWorktreeDiscovery.js","sourceRoot":"","sources":["../../src/git/GitWorktreeDiscovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAE9B,uCAAuC;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,MAA0B,CAAC;QAC/B,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,IAAI,GAAG,IAAI,CAAC;YACd,CAAC;iBAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/D,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YACD,qEAAqE;QACvE,CAAC;QAED,sDAAsD;QACtD,IAAI,IAAI,IAAI,QAAQ;YAAE,SAAS;QAE/B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,0EAA0E;AAC1E,MAAM,OAAO,oBAAoB;IAC/B;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,QAAQ,CAAC,CAAC;YAChF,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,4 +4,6 @@ export type { IProjectStore, IStorageService, StorageReadResult } from './storag
|
|
|
4
4
|
export * from './introspection/index.js';
|
|
5
5
|
export type { GuideInfo, GuideMethod, InstallResult, UpdateResult } from './guides/types.js';
|
|
6
6
|
export * from './schema/projectSchema.js';
|
|
7
|
+
export { GitWorktreeDiscovery, parseWorktreeListOutput } from './git/index.js';
|
|
8
|
+
export { applyWorktreeOverlay } from './utils/worktree-overlay.js';
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAGpC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjG,cAAc,0BAA0B,CAAC;AAGzC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG7F,cAAc,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAGpC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjG,cAAc,0BAA0B,CAAC;AAGzC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG7F,cAAc,2BAA2B,CAAC;AAG1C,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAG/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,4 +5,8 @@ export * from './services/index.js';
|
|
|
5
5
|
export * from './introspection/index.js';
|
|
6
6
|
// Project schema (field metadata, aliases, phase maps)
|
|
7
7
|
export * from './schema/projectSchema.js';
|
|
8
|
+
// Git utilities
|
|
9
|
+
export { GitWorktreeDiscovery, parseWorktreeListOutput } from './git/index.js';
|
|
10
|
+
// Worktree overlay (browser-safe — pure object mapping, no fs/path)
|
|
11
|
+
export { applyWorktreeOverlay } from './utils/worktree-overlay.js';
|
|
8
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAKpC,yEAAyE;AACzE,cAAc,0BAA0B,CAAC;AAKzC,uDAAuD;AACvD,cAAc,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAKpC,yEAAyE;AACzE,cAAc,0BAA0B,CAAC;AAKzC,uDAAuD;AACvD,cAAc,2BAA2B,CAAC;AAE1C,gBAAgB;AAChB,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE/E,oEAAoE;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -26,7 +26,7 @@ export declare class ConsistencyChecker {
|
|
|
26
26
|
*/
|
|
27
27
|
fixAll(project: ProjectData): Promise<ConsistencyFixResult>;
|
|
28
28
|
/** Apply fixes to a check result — shared by fix() and fixAll(). */
|
|
29
|
-
|
|
29
|
+
applyFixes(checkResult: ConsistencyCheckResult): Promise<ConsistencyFixResult>;
|
|
30
30
|
/** Run rules 1-5 against a single slice, returning raw findings (no prefix). */
|
|
31
31
|
private checkSlice;
|
|
32
32
|
/** Rule 1: Task completion vs. slice plan checkbox */
|
|
@@ -45,6 +45,8 @@ export declare class ConsistencyChecker {
|
|
|
45
45
|
private rulePlanStatusVsEntries;
|
|
46
46
|
/** Rule 8: Architecture status vs. all-plans-complete */
|
|
47
47
|
private ruleArchStatusVsPlans;
|
|
48
|
+
/** Rule 10: Stale worktree paths — worktree path missing or not a git worktree */
|
|
49
|
+
private ruleStaleWorktreePath;
|
|
48
50
|
private emptyResult;
|
|
49
51
|
private buildResult;
|
|
50
52
|
/** Discover all slice plan files in the architecture directory. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsistencyChecker.d.ts","sourceRoot":"","sources":["../../src/introspection/ConsistencyChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConsistencyChecker.d.ts","sourceRoot":"","sources":["../../src/introspection/ConsistencyChecker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAEV,sBAAsB,EACtB,oBAAoB,EAKrB,MAAM,YAAY,CAAC;AAapB;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;gBAEzC,YAAY,EAAE,qBAAqB;IAI/C;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAqBlE;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAqErE;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAK9D;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAKjE,oEAAoE;IAC9D,UAAU,CAAC,WAAW,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoCpF,gFAAgF;YAClE,UAAU;IAsCxB,sDAAsD;IACtD,OAAO,CAAC,cAAc;IAiDtB,oDAAoD;IACpD,OAAO,CAAC,yBAAyB;IAoDjC,gDAAgD;IAChD,OAAO,CAAC,oBAAoB;IAmC5B,yDAAyD;IACzD,OAAO,CAAC,qBAAqB;IAoD7B,wEAAwE;IACxE,OAAO,CAAC,kBAAkB;IAmD1B,8CAA8C;IAC9C,OAAO,CAAC,kBAAkB;IA6B1B,mDAAmD;YACrC,uBAAuB;IAyErC,yDAAyD;YAC3C,qBAAqB;IAqDnC,kFAAkF;YACpE,qBAAqB;IAqDnC,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,WAAW;IAoBnB,mEAAmE;YACrD,qBAAqB;IAanC,qEAAqE;YACvD,oBAAoB;IAalC,iFAAiF;IACjF,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAM/B;;;OAGG;YACW,qBAAqB;IA8CnC,OAAO,CAAC,oBAAoB;YAMd,mBAAmB;YAYnB,kBAAkB;YAalB,iBAAiB;YAajB,oBAAoB;YAYpB,4BAA4B;CAY3C"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { join } from 'node:path';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
2
3
|
import { readdir } from 'node:fs/promises';
|
|
3
4
|
import { resolveArtifactPath } from '../schema/resolveFileByIndex.js';
|
|
4
5
|
import { updateCheckbox, updateFrontmatterField } from './writers/markdownWriter.js';
|
|
@@ -88,6 +89,8 @@ export class ConsistencyChecker {
|
|
|
88
89
|
for (const { archPath, planResult } of archPlanPairs) {
|
|
89
90
|
allFindings.push(...await this.ruleArchStatusVsPlans(archPath, planResult));
|
|
90
91
|
}
|
|
92
|
+
// Rule 10: stale worktree paths
|
|
93
|
+
allFindings.push(...await this.ruleStaleWorktreePath(project, projectPath));
|
|
91
94
|
return this.buildResult(projectPath, allFindings);
|
|
92
95
|
}
|
|
93
96
|
/**
|
|
@@ -482,6 +485,52 @@ export class ConsistencyChecker {
|
|
|
482
485
|
}
|
|
483
486
|
return findings;
|
|
484
487
|
}
|
|
488
|
+
/** Rule 10: Stale worktree paths — worktree path missing or not a git worktree */
|
|
489
|
+
async ruleStaleWorktreePath(project, projectPath, listWorktreesFn, pathExistsFn = existsSync) {
|
|
490
|
+
if (!project.worktrees || project.worktrees.length === 0)
|
|
491
|
+
return [];
|
|
492
|
+
let gitWorktrees;
|
|
493
|
+
try {
|
|
494
|
+
if (listWorktreesFn) {
|
|
495
|
+
gitWorktrees = await listWorktreesFn(projectPath);
|
|
496
|
+
}
|
|
497
|
+
else {
|
|
498
|
+
// Dynamic import to avoid hard dependency on GitWorktreeDiscovery at module level
|
|
499
|
+
const { GitWorktreeDiscovery } = await import('../git/index.js');
|
|
500
|
+
gitWorktrees = await new GitWorktreeDiscovery().listWorktrees(projectPath);
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
catch {
|
|
504
|
+
return [];
|
|
505
|
+
}
|
|
506
|
+
const gitPaths = new Set(gitWorktrees.map((wt) => wt.path));
|
|
507
|
+
const findings = [];
|
|
508
|
+
for (const wt of project.worktrees) {
|
|
509
|
+
if (!wt.worktreePath)
|
|
510
|
+
continue;
|
|
511
|
+
if (!pathExistsFn(wt.worktreePath)) {
|
|
512
|
+
findings.push({
|
|
513
|
+
rule: 'stale-worktree-path',
|
|
514
|
+
severity: 'warning',
|
|
515
|
+
location: projectPath,
|
|
516
|
+
description: `Worktree '${wt.name}' path '${wt.worktreePath}' no longer exists on disk`,
|
|
517
|
+
suggestedFix: `Run 'cf worktree update "${wt.name}" --path <new-path>' or 'cf worktree rm "${wt.name}"'`,
|
|
518
|
+
fixable: false,
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
else if (!gitPaths.has(wt.worktreePath)) {
|
|
522
|
+
findings.push({
|
|
523
|
+
rule: 'stale-worktree-path',
|
|
524
|
+
severity: 'warning',
|
|
525
|
+
location: projectPath,
|
|
526
|
+
description: `Worktree '${wt.name}' path '${wt.worktreePath}' is not a registered git worktree`,
|
|
527
|
+
suggestedFix: `Run 'cf worktree update "${wt.name}" --path <new-path>' or 'cf worktree rm "${wt.name}"'`,
|
|
528
|
+
fixable: false,
|
|
529
|
+
});
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
return findings;
|
|
533
|
+
}
|
|
485
534
|
// --- Helper methods ---
|
|
486
535
|
emptyResult(projectPath) {
|
|
487
536
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsistencyChecker.js","sourceRoot":"","sources":["../../src/introspection/ConsistencyChecker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConsistencyChecker.js","sourceRoot":"","sources":["../../src/introspection/ConsistencyChecker.ts"],"names":[],"mappings":"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"}
|
package/dist/node.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { StatementManager } from './services/StatementManager.js';
|
|
2
2
|
export { SystemPromptParser } from './services/SystemPromptParser.js';
|
|
3
3
|
export { ProjectPathService } from './services/ProjectPathService.js';
|
|
4
|
-
export { createContextPipeline } from './services/CoreServiceFactory.js';
|
|
4
|
+
export { createContextPipeline, resolvePromptFilePath } from './services/CoreServiceFactory.js';
|
|
5
5
|
export * from './storage/index.js';
|
|
6
6
|
export * from './config/index.js';
|
|
7
7
|
export * from './guides/index.js';
|
|
@@ -17,4 +17,6 @@ export { buildModel, scanDirectory } from './introspection/ProjectModelBuilder.j
|
|
|
17
17
|
export { FutureWorkCollector } from './introspection/FutureWorkCollector.js';
|
|
18
18
|
export { ConsistencyChecker } from './introspection/ConsistencyChecker.js';
|
|
19
19
|
export { updateCheckbox, updateFrontmatterField } from './introspection/writers/markdownWriter.js';
|
|
20
|
+
export { GitWorktreeDiscovery } from './git/index.js';
|
|
21
|
+
export { WorktreeService } from './services/WorktreeService.js';
|
|
20
22
|
//# sourceMappingURL=node.d.ts.map
|
package/dist/node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGhG,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAG7G,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAGnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC"}
|
package/dist/node.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
export { StatementManager } from './services/StatementManager.js';
|
|
5
5
|
export { SystemPromptParser } from './services/SystemPromptParser.js';
|
|
6
6
|
export { ProjectPathService } from './services/ProjectPathService.js';
|
|
7
|
-
export { createContextPipeline } from './services/CoreServiceFactory.js';
|
|
7
|
+
export { createContextPipeline, resolvePromptFilePath } from './services/CoreServiceFactory.js';
|
|
8
8
|
// Storage — filesystem-backed project CRUD, backup, and storage utilities
|
|
9
9
|
export * from './storage/index.js';
|
|
10
10
|
// Config — two-tier TOML configuration (user + project level)
|
|
@@ -25,4 +25,8 @@ export { buildModel, scanDirectory } from './introspection/ProjectModelBuilder.j
|
|
|
25
25
|
export { FutureWorkCollector } from './introspection/FutureWorkCollector.js';
|
|
26
26
|
export { ConsistencyChecker } from './introspection/ConsistencyChecker.js';
|
|
27
27
|
export { updateCheckbox, updateFrontmatterField } from './introspection/writers/markdownWriter.js';
|
|
28
|
+
// Git utilities — spawns git subprocess (fs/process dependent)
|
|
29
|
+
export { GitWorktreeDiscovery } from './git/index.js';
|
|
30
|
+
// Worktree management — uses IProjectStore (Node.js-backed)
|
|
31
|
+
export { WorktreeService } from './services/WorktreeService.js';
|
|
28
32
|
//# sourceMappingURL=node.js.map
|
package/dist/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,oEAAoE;AACpE,uEAAuE;AAEvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,oEAAoE;AACpE,uEAAuE;AAEvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEhG,0EAA0E;AAC1E,cAAc,oBAAoB,CAAC;AAEnC,8DAA8D;AAC9D,cAAc,mBAAmB,CAAC;AAElC,yDAAyD;AACzD,cAAc,mBAAmB,CAAC;AAElC,8DAA8D;AAC9D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAE7G,yEAAyE;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAEnG,+DAA+D;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,4DAA4D;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { ContextTemplateEngine } from './ContextTemplateEngine.js';
|
|
2
2
|
import { ContextIntegrator } from './ContextIntegrator.js';
|
|
3
|
+
/**
|
|
4
|
+
* Resolve the system prompt file path.
|
|
5
|
+
* Prefers the project-local ai-project-guide copy; falls back to the bundled asset.
|
|
6
|
+
* When called without a projectPath, returns the bundled asset directly.
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolvePromptFilePath(projectPath?: string): string;
|
|
3
9
|
/**
|
|
4
10
|
* Creates a fully wired context assembly pipeline for a given project path.
|
|
5
11
|
* Intended for use in non-renderer contexts (MCP server, CLI, tests).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreServiceFactory.d.ts","sourceRoot":"","sources":["../../src/services/CoreServiceFactory.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"CoreServiceFactory.d.ts","sourceRoot":"","sources":["../../src/services/CoreServiceFactory.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAW3D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAQlE;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG;IAC1D,MAAM,EAAE,qBAAqB,CAAC;IAC9B,UAAU,EAAE,iBAAiB,CAAC;CAC/B,CAYA"}
|
|
@@ -11,11 +11,14 @@ const BUNDLED_PROMPT_PATH = path.join(path.dirname(fileURLToPath(import.meta.url
|
|
|
11
11
|
/**
|
|
12
12
|
* Resolve the system prompt file path.
|
|
13
13
|
* Prefers the project-local ai-project-guide copy; falls back to the bundled asset.
|
|
14
|
+
* When called without a projectPath, returns the bundled asset directly.
|
|
14
15
|
*/
|
|
15
|
-
function resolvePromptFilePath(projectPath) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
export function resolvePromptFilePath(projectPath) {
|
|
17
|
+
if (projectPath) {
|
|
18
|
+
const projectLocalPath = path.join(projectPath, PROMPT_FILE_RELATIVE_PATH);
|
|
19
|
+
if (fs.existsSync(projectLocalPath)) {
|
|
20
|
+
return projectLocalPath;
|
|
21
|
+
}
|
|
19
22
|
}
|
|
20
23
|
return BUNDLED_PROMPT_PATH;
|
|
21
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreServiceFactory.js","sourceRoot":"","sources":["../../src/services/CoreServiceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAE1F,uFAAuF;AACvF,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CACnC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,IAAI,EACJ,QAAQ,EACR,6BAA6B,CAC9B,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"CoreServiceFactory.js","sourceRoot":"","sources":["../../src/services/CoreServiceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAE1F,uFAAuF;AACvF,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CACnC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,IAAI,EACJ,QAAQ,EACR,6BAA6B,CAC9B,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAoB;IACxD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;QAC3E,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpC,OAAO,gBAAgB,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IAIvD,MAAM,cAAc,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;IAEhF,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAEjE,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAU,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpF,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAEnE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { IProjectStore } from '../storage/interfaces.js';
|
|
2
|
+
import type { WorktreeContext, CreateWorktreeInput, UpdateWorktreeInput, IndexRangeOverlap, WorktreePathStatus } from '../types/worktree.js';
|
|
3
|
+
import type { WorktreeInfo } from '../types/git.js';
|
|
4
|
+
/**
|
|
5
|
+
* Service for managing worktree contexts within a project.
|
|
6
|
+
* Encapsulates CRUD operations and migration logic, using IProjectStore
|
|
7
|
+
* as the persistence layer.
|
|
8
|
+
*/
|
|
9
|
+
export declare class WorktreeService {
|
|
10
|
+
private readonly store;
|
|
11
|
+
constructor(store: IProjectStore);
|
|
12
|
+
/** Retrieve a project by ID, throwing if not found. */
|
|
13
|
+
private getProjectOrThrow;
|
|
14
|
+
/** List all worktree contexts for a project. */
|
|
15
|
+
listWorktrees(projectId: string): Promise<WorktreeContext[]>;
|
|
16
|
+
/** Get a worktree context by ID. Returns undefined if not found. */
|
|
17
|
+
getWorktree(projectId: string, worktreeId: string): Promise<WorktreeContext | undefined>;
|
|
18
|
+
/** Get a worktree context by name (case-insensitive). Returns undefined if not found. */
|
|
19
|
+
getWorktreeByName(projectId: string, name: string): Promise<WorktreeContext | undefined>;
|
|
20
|
+
/**
|
|
21
|
+
* Add a new worktree context to a project.
|
|
22
|
+
* Returns the created worktree, whether migration occurred, and any index range overlaps.
|
|
23
|
+
*/
|
|
24
|
+
addWorktree(projectId: string, input: CreateWorktreeInput): Promise<{
|
|
25
|
+
worktree: WorktreeContext;
|
|
26
|
+
migrated: boolean;
|
|
27
|
+
overlaps: IndexRangeOverlap[];
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Update an existing worktree context.
|
|
31
|
+
* The `id` field cannot be changed.
|
|
32
|
+
*/
|
|
33
|
+
updateWorktree(projectId: string, worktreeId: string, updates: UpdateWorktreeInput): Promise<WorktreeContext>;
|
|
34
|
+
/**
|
|
35
|
+
* Remove a worktree context from a project.
|
|
36
|
+
* Returns the removed worktree and whether reverse migration occurred.
|
|
37
|
+
*/
|
|
38
|
+
removeWorktree(projectId: string, worktreeId: string): Promise<{
|
|
39
|
+
removed: WorktreeContext;
|
|
40
|
+
migrated: boolean;
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* Find index range overlaps between a given range and existing worktrees.
|
|
44
|
+
* Optionally exclude a worktree by ID (useful when updating a worktree's range).
|
|
45
|
+
*/
|
|
46
|
+
findOverlaps(projectId: string, range: [number, number], excludeId?: string): Promise<IndexRangeOverlap[]>;
|
|
47
|
+
/**
|
|
48
|
+
* Validate filesystem paths for all worktree contexts in a project.
|
|
49
|
+
* Checks each worktree's path against both the filesystem and git worktree list.
|
|
50
|
+
*
|
|
51
|
+
* @param projectId - Project to validate
|
|
52
|
+
* @param gitWorktrees - Current git worktrees from GitWorktreeDiscovery
|
|
53
|
+
* @param pathExists - Filesystem check callback (defaults to fs.existsSync for testability)
|
|
54
|
+
*/
|
|
55
|
+
validateWorktreePaths(projectId: string, gitWorktrees: WorktreeInfo[], pathExists?: (p: string) => boolean): Promise<WorktreePathStatus[]>;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=WorktreeService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorktreeService.d.ts","sourceRoot":"","sources":["../../src/services/WorktreeService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAkEpD;;;;GAIG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,aAAa;IAEjD,uDAAuD;YACzC,iBAAiB;IAQ/B,gDAAgD;IAC1C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAKlE,oEAAoE;IAC9D,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAK9F,yFAAyF;IACnF,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAM9F;;;OAGG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC;QAAE,QAAQ,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAC;IAiD3F;;;OAGG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,eAAe,CAAC;IAoB3B;;;OAGG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAyB3D;;;OAGG;IACG,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAsB/B;;;;;;;OAOG;IACG,qBAAqB,CACzB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,EAAE,EAC5B,UAAU,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAoB,GAC9C,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAmBjC"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
/** Generate a unique worktree ID. */
|
|
3
|
+
function generateWorktreeId() {
|
|
4
|
+
return `wt_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
|
|
5
|
+
}
|
|
6
|
+
/** The workflow fields on ProjectData that get migrated to/from WorktreeContext. */
|
|
7
|
+
const WORKFLOW_FIELDS = [
|
|
8
|
+
'developmentPhase',
|
|
9
|
+
'fileSlice',
|
|
10
|
+
'fileTasks',
|
|
11
|
+
'instruction',
|
|
12
|
+
'workType',
|
|
13
|
+
'fileArch',
|
|
14
|
+
'fileSlicePlan',
|
|
15
|
+
];
|
|
16
|
+
/** Check if a project has any non-empty workflow fields worth migrating. */
|
|
17
|
+
function hasWorkflowFields(project) {
|
|
18
|
+
return WORKFLOW_FIELDS.some((field) => {
|
|
19
|
+
const value = project[field];
|
|
20
|
+
return value !== undefined && value !== '';
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/** Map ProjectData workflow fields to WorktreeContext fields. */
|
|
24
|
+
function mapProjectToWorktree(project) {
|
|
25
|
+
return {
|
|
26
|
+
developmentPhase: project.developmentPhase || undefined,
|
|
27
|
+
activeSlice: project.fileSlice || undefined,
|
|
28
|
+
activeTaskFile: project.fileTasks || undefined,
|
|
29
|
+
instruction: project.instruction || undefined,
|
|
30
|
+
workType: project.workType,
|
|
31
|
+
archDoc: project.fileArch || undefined,
|
|
32
|
+
slicePlan: project.fileSlicePlan || undefined,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/** Map WorktreeContext fields back to ProjectData update fields. */
|
|
36
|
+
function mapWorktreeToProject(wt) {
|
|
37
|
+
return {
|
|
38
|
+
developmentPhase: wt.developmentPhase ?? '',
|
|
39
|
+
fileSlice: wt.activeSlice ?? '',
|
|
40
|
+
fileTasks: wt.activeTaskFile ?? '',
|
|
41
|
+
instruction: wt.instruction ?? '',
|
|
42
|
+
workType: wt.workType,
|
|
43
|
+
fileArch: wt.archDoc ?? '',
|
|
44
|
+
fileSlicePlan: wt.slicePlan ?? '',
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/** Validate that an index range has non-negative integers with start <= end. */
|
|
48
|
+
function validateIndexRange(range) {
|
|
49
|
+
const [start, end] = range;
|
|
50
|
+
if (!Number.isInteger(start) || !Number.isInteger(end)) {
|
|
51
|
+
throw new Error(`Index range values must be integers, got [${start}, ${end}]`);
|
|
52
|
+
}
|
|
53
|
+
if (start < 0 || end < 0) {
|
|
54
|
+
throw new Error(`Index range values must be non-negative, got [${start}, ${end}]`);
|
|
55
|
+
}
|
|
56
|
+
if (start > end) {
|
|
57
|
+
throw new Error(`Index range start must be <= end, got [${start}, ${end}]`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Service for managing worktree contexts within a project.
|
|
62
|
+
* Encapsulates CRUD operations and migration logic, using IProjectStore
|
|
63
|
+
* as the persistence layer.
|
|
64
|
+
*/
|
|
65
|
+
export class WorktreeService {
|
|
66
|
+
store;
|
|
67
|
+
constructor(store) {
|
|
68
|
+
this.store = store;
|
|
69
|
+
}
|
|
70
|
+
/** Retrieve a project by ID, throwing if not found. */
|
|
71
|
+
async getProjectOrThrow(projectId) {
|
|
72
|
+
const project = await this.store.getById(projectId);
|
|
73
|
+
if (!project) {
|
|
74
|
+
throw new Error(`Project not found: ${projectId}`);
|
|
75
|
+
}
|
|
76
|
+
return project;
|
|
77
|
+
}
|
|
78
|
+
/** List all worktree contexts for a project. */
|
|
79
|
+
async listWorktrees(projectId) {
|
|
80
|
+
const project = await this.getProjectOrThrow(projectId);
|
|
81
|
+
return project.worktrees ?? [];
|
|
82
|
+
}
|
|
83
|
+
/** Get a worktree context by ID. Returns undefined if not found. */
|
|
84
|
+
async getWorktree(projectId, worktreeId) {
|
|
85
|
+
const project = await this.getProjectOrThrow(projectId);
|
|
86
|
+
return (project.worktrees ?? []).find((wt) => wt.id === worktreeId);
|
|
87
|
+
}
|
|
88
|
+
/** Get a worktree context by name (case-insensitive). Returns undefined if not found. */
|
|
89
|
+
async getWorktreeByName(projectId, name) {
|
|
90
|
+
const project = await this.getProjectOrThrow(projectId);
|
|
91
|
+
const lower = name.toLowerCase();
|
|
92
|
+
return (project.worktrees ?? []).find((wt) => wt.name.toLowerCase() === lower);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Add a new worktree context to a project.
|
|
96
|
+
* Returns the created worktree, whether migration occurred, and any index range overlaps.
|
|
97
|
+
*/
|
|
98
|
+
async addWorktree(projectId, input) {
|
|
99
|
+
validateIndexRange(input.indexRange);
|
|
100
|
+
const project = await this.getProjectOrThrow(projectId);
|
|
101
|
+
const newWorktree = {
|
|
102
|
+
id: generateWorktreeId(),
|
|
103
|
+
name: input.name,
|
|
104
|
+
indexRange: input.indexRange,
|
|
105
|
+
worktreePath: input.worktreePath,
|
|
106
|
+
archDoc: input.archDoc,
|
|
107
|
+
slicePlan: input.slicePlan,
|
|
108
|
+
};
|
|
109
|
+
const isFirstWorktree = !project.worktrees || project.worktrees.length === 0;
|
|
110
|
+
let migrated = false;
|
|
111
|
+
if (isFirstWorktree && hasWorkflowFields(project)) {
|
|
112
|
+
// Forward migration: move existing workflow fields into a "Default" worktree
|
|
113
|
+
const defaultWorktree = {
|
|
114
|
+
id: generateWorktreeId(),
|
|
115
|
+
name: 'Default',
|
|
116
|
+
indexRange: [0, 99],
|
|
117
|
+
worktreePath: project.projectPath,
|
|
118
|
+
...mapProjectToWorktree(project),
|
|
119
|
+
};
|
|
120
|
+
const worktrees = [defaultWorktree, newWorktree];
|
|
121
|
+
const clearedFields = {
|
|
122
|
+
developmentPhase: '',
|
|
123
|
+
fileSlice: '',
|
|
124
|
+
fileTasks: '',
|
|
125
|
+
instruction: '',
|
|
126
|
+
workType: undefined,
|
|
127
|
+
fileArch: '',
|
|
128
|
+
fileSlicePlan: '',
|
|
129
|
+
};
|
|
130
|
+
await this.store.update(projectId, { ...clearedFields, worktrees });
|
|
131
|
+
migrated = true;
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
// No migration needed: just append
|
|
135
|
+
const worktrees = [...(project.worktrees ?? []), newWorktree];
|
|
136
|
+
await this.store.update(projectId, { worktrees });
|
|
137
|
+
}
|
|
138
|
+
const overlaps = await this.findOverlaps(projectId, input.indexRange, newWorktree.id);
|
|
139
|
+
return { worktree: newWorktree, migrated, overlaps };
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Update an existing worktree context.
|
|
143
|
+
* The `id` field cannot be changed.
|
|
144
|
+
*/
|
|
145
|
+
async updateWorktree(projectId, worktreeId, updates) {
|
|
146
|
+
if (updates.indexRange) {
|
|
147
|
+
validateIndexRange(updates.indexRange);
|
|
148
|
+
}
|
|
149
|
+
const project = await this.getProjectOrThrow(projectId);
|
|
150
|
+
const worktrees = [...(project.worktrees ?? [])];
|
|
151
|
+
const index = worktrees.findIndex((wt) => wt.id === worktreeId);
|
|
152
|
+
if (index === -1) {
|
|
153
|
+
throw new Error(`Worktree not found: ${worktreeId}`);
|
|
154
|
+
}
|
|
155
|
+
const updated = { ...worktrees[index], ...updates, id: worktreeId };
|
|
156
|
+
worktrees[index] = updated;
|
|
157
|
+
await this.store.update(projectId, { worktrees });
|
|
158
|
+
return updated;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Remove a worktree context from a project.
|
|
162
|
+
* Returns the removed worktree and whether reverse migration occurred.
|
|
163
|
+
*/
|
|
164
|
+
async removeWorktree(projectId, worktreeId) {
|
|
165
|
+
const project = await this.getProjectOrThrow(projectId);
|
|
166
|
+
const worktrees = project.worktrees ?? [];
|
|
167
|
+
const target = worktrees.find((wt) => wt.id === worktreeId);
|
|
168
|
+
if (!target) {
|
|
169
|
+
throw new Error(`Worktree not found: ${worktreeId}`);
|
|
170
|
+
}
|
|
171
|
+
const remaining = worktrees.filter((wt) => wt.id !== worktreeId);
|
|
172
|
+
if (remaining.length === 0) {
|
|
173
|
+
// Reverse migration: restore workflow fields to project, remove worktrees
|
|
174
|
+
const restoredFields = mapWorktreeToProject(target);
|
|
175
|
+
await this.store.update(projectId, {
|
|
176
|
+
...restoredFields,
|
|
177
|
+
worktrees: undefined,
|
|
178
|
+
});
|
|
179
|
+
return { removed: target, migrated: true };
|
|
180
|
+
}
|
|
181
|
+
await this.store.update(projectId, { worktrees: remaining });
|
|
182
|
+
return { removed: target, migrated: false };
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Find index range overlaps between a given range and existing worktrees.
|
|
186
|
+
* Optionally exclude a worktree by ID (useful when updating a worktree's range).
|
|
187
|
+
*/
|
|
188
|
+
async findOverlaps(projectId, range, excludeId) {
|
|
189
|
+
const worktrees = await this.listWorktrees(projectId);
|
|
190
|
+
const overlaps = [];
|
|
191
|
+
for (const wt of worktrees) {
|
|
192
|
+
if (excludeId && wt.id === excludeId)
|
|
193
|
+
continue;
|
|
194
|
+
// Ranges overlap when a[0] <= b[1] && b[0] <= a[1]
|
|
195
|
+
if (range[0] <= wt.indexRange[1] && wt.indexRange[0] <= range[1]) {
|
|
196
|
+
overlaps.push({
|
|
197
|
+
existingWorktreeId: wt.id,
|
|
198
|
+
existingWorktreeName: wt.name,
|
|
199
|
+
existingRange: wt.indexRange,
|
|
200
|
+
overlapStart: Math.max(range[0], wt.indexRange[0]),
|
|
201
|
+
overlapEnd: Math.min(range[1], wt.indexRange[1]),
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return overlaps;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Validate filesystem paths for all worktree contexts in a project.
|
|
209
|
+
* Checks each worktree's path against both the filesystem and git worktree list.
|
|
210
|
+
*
|
|
211
|
+
* @param projectId - Project to validate
|
|
212
|
+
* @param gitWorktrees - Current git worktrees from GitWorktreeDiscovery
|
|
213
|
+
* @param pathExists - Filesystem check callback (defaults to fs.existsSync for testability)
|
|
214
|
+
*/
|
|
215
|
+
async validateWorktreePaths(projectId, gitWorktrees, pathExists = existsSync) {
|
|
216
|
+
const worktrees = await this.listWorktrees(projectId);
|
|
217
|
+
const gitPaths = new Set(gitWorktrees.map((wt) => wt.path));
|
|
218
|
+
return worktrees.map((wt) => {
|
|
219
|
+
const base = { worktreeId: wt.id, worktreeName: wt.name, worktreePath: wt.worktreePath };
|
|
220
|
+
if (wt.worktreePath === undefined) {
|
|
221
|
+
return { ...base, status: 'no-path' };
|
|
222
|
+
}
|
|
223
|
+
if (!pathExists(wt.worktreePath)) {
|
|
224
|
+
return { ...base, status: 'missing' };
|
|
225
|
+
}
|
|
226
|
+
if (!gitPaths.has(wt.worktreePath)) {
|
|
227
|
+
return { ...base, status: 'not-a-worktree' };
|
|
228
|
+
}
|
|
229
|
+
return { ...base, status: 'valid' };
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=WorktreeService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorktreeService.js","sourceRoot":"","sources":["../../src/services/WorktreeService.ts"],"names":[],"mappings":"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"}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -7,4 +7,5 @@ export type { ProfileMap } from './ContextProfileParser.js';
|
|
|
7
7
|
export { ContextGenerator } from './ContextGenerator.js';
|
|
8
8
|
export { ContextTemplateEngine } from './ContextTemplateEngine.js';
|
|
9
9
|
export { ContextIntegrator } from './ContextIntegrator.js';
|
|
10
|
+
export { WorktreeService } from './WorktreeService.js';
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG1G,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAG9G,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG1G,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAG9G,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/services/index.js
CHANGED
|
@@ -8,6 +8,8 @@ export { ContextProfileParser } from './ContextProfileParser.js';
|
|
|
8
8
|
export { ContextGenerator } from './ContextGenerator.js';
|
|
9
9
|
export { ContextTemplateEngine } from './ContextTemplateEngine.js';
|
|
10
10
|
export { ContextIntegrator } from './ContextIntegrator.js';
|
|
11
|
+
// Worktree management
|
|
12
|
+
export { WorktreeService } from './WorktreeService.js';
|
|
11
13
|
// Node.js-dependent services moved to @context-forge/core/node:
|
|
12
14
|
// StatementManager, SystemPromptParser, ProjectPathService, createContextPipeline
|
|
13
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAGA,YAAY;AACZ,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE9G,gDAAgD;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,gEAAgE;AAChE,kFAAkF"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAGA,YAAY;AACZ,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE9G,gDAAgD;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,sBAAsB;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,gEAAgE;AAChE,kFAAkF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileProjectStore.d.ts","sourceRoot":"","sources":["../../src/storage/FileProjectStore.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"FileProjectStore.d.ts","sourceRoot":"","sources":["../../src/storage/FileProjectStore.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA+CrD;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,WAAW,CAAS;;YAOd,iBAAiB;IAUzB,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IA2BhC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAKrD,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IA+BrD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB7D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAevC;;;OAGG;YACW,yBAAyB;CA0BxC"}
|
|
@@ -27,6 +27,8 @@ function migrateProjectFields(project) {
|
|
|
27
27
|
customData: project.customData && typeof project.customData === 'object'
|
|
28
28
|
? base.customData
|
|
29
29
|
: {},
|
|
30
|
+
// Worktree contexts: preserve if present
|
|
31
|
+
worktrees: project.worktrees,
|
|
30
32
|
};
|
|
31
33
|
// Strip legacy monorepo fields
|
|
32
34
|
const result = migrated;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileProjectStore.js","sourceRoot":"","sources":["../../src/storage/FileProjectStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"FileProjectStore.js","sourceRoot":"","sources":["../../src/storage/FileProjectStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Parsed entry from `git worktree list --porcelain`. */
|
|
2
|
+
export interface WorktreeInfo {
|
|
3
|
+
/** Absolute path to the worktree directory. */
|
|
4
|
+
path: string;
|
|
5
|
+
/** HEAD commit hash. */
|
|
6
|
+
head: string;
|
|
7
|
+
/** Branch ref (e.g., 'refs/heads/feature/100-api'), undefined if detached HEAD. */
|
|
8
|
+
branch?: string;
|
|
9
|
+
/** Whether this is a bare repository entry. */
|
|
10
|
+
bare: boolean;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=git.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/types/git.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,IAAI,EAAE,OAAO,CAAC;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/types/git.ts"],"names":[],"mappings":""}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -5,5 +5,7 @@ export type { TemplateStatement, StatementConfig, StatementFileMetadata, ParsedS
|
|
|
5
5
|
export type { SystemPrompt, ParsedPromptFile, PromptCacheEntry } from './prompts.js';
|
|
6
6
|
export { SpecialPromptKeys } from './prompts.js';
|
|
7
7
|
export type { ProjectData, CreateProjectData, UpdateProjectData } from './project.js';
|
|
8
|
+
export type { WorktreeContext, CreateWorktreeInput, UpdateWorktreeInput, IndexRangeOverlap, WorktreePathStatus } from './worktree.js';
|
|
8
9
|
export type { PathValidationResult, DirectoryListResult } from './paths.js';
|
|
10
|
+
export type { WorktreeInfo } from './git.js';
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGrE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9G,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlH,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtF,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGrE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9G,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlH,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtF,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGtI,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAG5E,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/types/project.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { WorktreeContext } from './worktree.js';
|
|
1
2
|
/**
|
|
2
3
|
* Core data structure for project information
|
|
3
4
|
*/
|
|
@@ -28,6 +29,8 @@ export interface ProjectData {
|
|
|
28
29
|
additionalNotes?: string;
|
|
29
30
|
availableTools?: string;
|
|
30
31
|
};
|
|
32
|
+
/** Per-initiative worktree contexts; undefined when not using worktrees */
|
|
33
|
+
worktrees?: WorktreeContext[];
|
|
31
34
|
createdAt: string;
|
|
32
35
|
updatedAt: string;
|
|
33
36
|
}
|
|
@@ -50,5 +53,5 @@ export type CreateProjectData = Omit<ProjectData, 'id' | 'createdAt' | 'updatedA
|
|
|
50
53
|
/**
|
|
51
54
|
* Type for updating an existing project (partial updates allowed)
|
|
52
55
|
*/
|
|
53
|
-
export type UpdateProjectData = Partial<Pick<ProjectData, 'name' | 'template' | 'fileSlice' | 'fileTasks' | 'instruction' | 'developmentPhase' | 'workType' | 'dateProject' | 'projectPath' | 'fileHLD' | 'fileArch' | 'fileSlicePlan' | 'fileSpec' | 'fileConcept' | 'customData'>>;
|
|
56
|
+
export type UpdateProjectData = Partial<Pick<ProjectData, 'name' | 'template' | 'fileSlice' | 'fileTasks' | 'instruction' | 'developmentPhase' | 'workType' | 'dateProject' | 'projectPath' | 'fileHLD' | 'fileArch' | 'fileSlicePlan' | 'fileSpec' | 'fileConcept' | 'customData' | 'worktrees'>>;
|
|
54
57
|
//# sourceMappingURL=project.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/types/project.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE;QACX,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,WAAW,EACX,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,kBAAkB,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,CAChI,GAAG;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE;QACX,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,IAAI,CACF,WAAW,EACT,MAAM,GACN,UAAU,GACV,WAAW,GACX,WAAW,GACX,aAAa,GACb,kBAAkB,GAClB,UAAU,GACV,aAAa,GACb,aAAa,GACb,SAAS,GACT,UAAU,GACV,eAAe,GACf,UAAU,GACV,aAAa,GACb,YAAY,
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/types/project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE;QACX,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,2EAA2E;IAC3E,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,WAAW,EACX,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,kBAAkB,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,CAChI,GAAG;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE;QACX,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,IAAI,CACF,WAAW,EACT,MAAM,GACN,UAAU,GACV,WAAW,GACX,WAAW,GACX,aAAa,GACb,kBAAkB,GAClB,UAAU,GACV,aAAa,GACb,aAAa,GACb,SAAS,GACT,UAAU,GACV,eAAe,GACf,UAAU,GACV,aAAa,GACb,YAAY,GACZ,WAAW,CACd,CACF,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-initiative workflow state bound to a git worktree.
|
|
3
|
+
* Each WorktreeContext holds the workflow fields that were previously
|
|
4
|
+
* stored directly on ProjectData, scoped to an index range.
|
|
5
|
+
*/
|
|
6
|
+
export interface WorktreeContext {
|
|
7
|
+
/** Auto-generated identifier (format: wt_{timestamp}_{random}) */
|
|
8
|
+
id: string;
|
|
9
|
+
/** Human-readable label for the worktree (e.g. "API Foundation") */
|
|
10
|
+
name: string;
|
|
11
|
+
/** Slice index band owned by this worktree, inclusive on both ends */
|
|
12
|
+
indexRange: [number, number];
|
|
13
|
+
/** Absolute filesystem path to the git worktree directory */
|
|
14
|
+
worktreePath?: string;
|
|
15
|
+
/** Path to the initiative architecture document */
|
|
16
|
+
archDoc?: string;
|
|
17
|
+
/** Path to the initiative slice plan */
|
|
18
|
+
slicePlan?: string;
|
|
19
|
+
/** Current development phase within this worktree */
|
|
20
|
+
developmentPhase?: string;
|
|
21
|
+
/** Active slice file path (maps to ProjectData.fileSlice) */
|
|
22
|
+
activeSlice?: string;
|
|
23
|
+
/** Active task file path (maps to ProjectData.fileTasks) */
|
|
24
|
+
activeTaskFile?: string;
|
|
25
|
+
/** Current instruction for the worktree */
|
|
26
|
+
instruction?: string;
|
|
27
|
+
/** Work type: starting fresh or continuing existing work */
|
|
28
|
+
workType?: 'start' | 'continue';
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Input for creating a new worktree context.
|
|
32
|
+
* Excludes auto-generated `id` and workflow fields (which start undefined).
|
|
33
|
+
*/
|
|
34
|
+
export interface CreateWorktreeInput {
|
|
35
|
+
/** Human-readable label for the worktree */
|
|
36
|
+
name: string;
|
|
37
|
+
/** Slice index band, inclusive on both ends */
|
|
38
|
+
indexRange: [number, number];
|
|
39
|
+
/** Absolute filesystem path to the git worktree directory */
|
|
40
|
+
worktreePath?: string;
|
|
41
|
+
/** Path to the initiative architecture document */
|
|
42
|
+
archDoc?: string;
|
|
43
|
+
/** Path to the initiative slice plan */
|
|
44
|
+
slicePlan?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Input for updating an existing worktree context.
|
|
48
|
+
* All fields except `id` are updatable.
|
|
49
|
+
*/
|
|
50
|
+
export type UpdateWorktreeInput = Partial<Omit<WorktreeContext, 'id'>>;
|
|
51
|
+
/**
|
|
52
|
+
* Validation status for a worktree's filesystem path.
|
|
53
|
+
* Used by stale path detection in list commands and consistency checks.
|
|
54
|
+
*/
|
|
55
|
+
export interface WorktreePathStatus {
|
|
56
|
+
/** ID of the worktree context */
|
|
57
|
+
worktreeId: string;
|
|
58
|
+
/** Display name of the worktree context */
|
|
59
|
+
worktreeName: string;
|
|
60
|
+
/** Filesystem path (may be undefined for path-less worktrees) */
|
|
61
|
+
worktreePath: string | undefined;
|
|
62
|
+
/** Validation result */
|
|
63
|
+
status: 'valid' | 'missing' | 'not-a-worktree' | 'no-path';
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Describes an overlap between two worktree index ranges.
|
|
67
|
+
* Returned as advisory information — overlaps do not block operations.
|
|
68
|
+
*/
|
|
69
|
+
export interface IndexRangeOverlap {
|
|
70
|
+
/** ID of the existing worktree whose range overlaps */
|
|
71
|
+
existingWorktreeId: string;
|
|
72
|
+
/** Name of the existing worktree whose range overlaps */
|
|
73
|
+
existingWorktreeName: string;
|
|
74
|
+
/** The existing worktree's full index range */
|
|
75
|
+
existingRange: [number, number];
|
|
76
|
+
/** Start of the overlapping region */
|
|
77
|
+
overlapStart: number;
|
|
78
|
+
/** End of the overlapping region */
|
|
79
|
+
overlapEnd: number;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=worktree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/types/worktree.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;AAEvE;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,wBAAwB;IACxB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAAC;CAC5D;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yDAAyD;IACzD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,+CAA+C;IAC/C,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/types/worktree.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-overlay.d.ts","sourceRoot":"","sources":["../../src/utils/worktree-overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,0DAA0D;AAC1D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAa1F"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Overlay worktree-scoped fields onto a project copy. */
|
|
2
|
+
export function applyWorktreeOverlay(project, worktreeId) {
|
|
3
|
+
const wt = (project.worktrees ?? []).find((w) => w.id === worktreeId);
|
|
4
|
+
if (!wt)
|
|
5
|
+
return project;
|
|
6
|
+
return {
|
|
7
|
+
...project,
|
|
8
|
+
developmentPhase: wt.developmentPhase || project.developmentPhase,
|
|
9
|
+
instruction: wt.instruction || project.instruction,
|
|
10
|
+
workType: wt.workType || project.workType,
|
|
11
|
+
fileArch: wt.archDoc || project.fileArch,
|
|
12
|
+
fileSlicePlan: wt.slicePlan || project.fileSlicePlan,
|
|
13
|
+
fileSlice: wt.activeSlice || project.fileSlice,
|
|
14
|
+
fileTasks: wt.activeTaskFile || project.fileTasks,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=worktree-overlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-overlay.js","sourceRoot":"","sources":["../../src/utils/worktree-overlay.ts"],"names":[],"mappings":"AAEA,0DAA0D;AAC1D,MAAM,UAAU,oBAAoB,CAAC,OAAoB,EAAE,UAAkB;IAC3E,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IACtE,IAAI,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IACxB,OAAO;QACL,GAAG,OAAO;QACV,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB;QACjE,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW;QAClD,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ;QACzC,QAAQ,EAAE,EAAE,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ;QACxC,aAAa,EAAE,EAAE,CAAC,SAAS,IAAI,OAAO,CAAC,aAAa;QACpD,SAAS,EAAE,EAAE,CAAC,WAAW,IAAI,OAAO,CAAC,SAAS;QAC9C,SAAS,EAAE,EAAE,CAAC,cAAc,IAAI,OAAO,CAAC,SAAS;KAClD,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED