@context-forge/core 0.3.4 → 0.3.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigKeys.d.ts","sourceRoot":"","sources":["../../src/config/ConfigKeys.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAChE;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CA2B3D,CAAC"}
1
+ {"version":3,"file":"ConfigKeys.d.ts","sourceRoot":"","sources":["../../src/config/ConfigKeys.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAChE;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAgC3D,CAAC"}
@@ -25,5 +25,10 @@ export const CONFIG_KEYS = {
25
25
  default: false,
26
26
  description: 'Auto-advance to next slice when current is complete',
27
27
  },
28
+ 'workflow.auto_fix': {
29
+ type: 'boolean',
30
+ default: false,
31
+ description: 'Automatically apply non-destructive corrections when running consistency checks',
32
+ },
28
33
  };
29
34
  //# sourceMappingURL=ConfigKeys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigKeys.js","sourceRoot":"","sources":["../../src/config/ConfigKeys.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,WAAW,GAAwC;IAC9D,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,qEAAqE;KACnF;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,sDAAsD;KACpE;IACD,cAAc,EAAE;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,4CAA4C;KAC1D;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,oDAAoD;QACjE,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC;KACvC;IACD,uBAAuB,EAAE;QACvB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,qDAAqD;KACnE;CACF,CAAC"}
1
+ {"version":3,"file":"ConfigKeys.js","sourceRoot":"","sources":["../../src/config/ConfigKeys.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,WAAW,GAAwC;IAC9D,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,qEAAqE;KACnF;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,sDAAsD;KACpE;IACD,cAAc,EAAE;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,4CAA4C;KAC1D;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,oDAAoD;QACjE,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC;KACvC;IACD,uBAAuB,EAAE;QACvB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,qDAAqD;KACnE;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,iFAAiF;KAC/F;CACF,CAAC"}
@@ -15,6 +15,8 @@ export declare class GuideManager {
15
15
  private resolveSource;
16
16
  /** Resolve strategy from config or default */
17
17
  private resolveStrategy;
18
+ /** Create user artifact directories alongside the guide */
19
+ private createUserDirectories;
18
20
  /** Map method name to strategy instance */
19
21
  private getStrategy;
20
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GuideManager.d.ts","sourceRoot":"","sources":["../../src/guides/GuideManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAmB,MAAM,YAAY,CAAC;AAOvG,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;gBAE7B,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa;IAM9D,4CAA4C;IACtC,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAKlC,yCAAyC;IACnC,OAAO,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAiB9F,4CAA4C;IACtC,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAerC,gDAAgD;YAClC,aAAa;IAc3B,8CAA8C;YAChC,eAAe;IAc7B,2CAA2C;IAC3C,OAAO,CAAC,WAAW;CAUpB"}
1
+ {"version":3,"file":"GuideManager.d.ts","sourceRoot":"","sources":["../../src/guides/GuideManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAmB,MAAM,YAAY,CAAC;AAOvG,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;gBAE7B,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa;IAM9D,4CAA4C;IACtC,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAKlC,yCAAyC;IACnC,OAAO,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAsB9F,4CAA4C;IACtC,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAerC,gDAAgD;YAClC,aAAa;IAc3B,8CAA8C;YAChC,eAAe;IAc7B,2DAA2D;IAC3D,OAAO,CAAC,qBAAqB;IAa7B,2CAA2C;IAC3C,OAAO,CAAC,WAAW;CAUpB"}
@@ -1,5 +1,6 @@
1
1
  // Orchestration layer for guide lifecycle management
2
2
  import { join } from 'path';
3
+ import { mkdirSync } from 'fs';
3
4
  import { DEFAULT_SOURCE_GIT, GUIDE_RELATIVE_PATH } from './types.js';
4
5
  import { GuideDetector } from './GuideDetector.js';
5
6
  import { SubmoduleStrategy } from './strategies/SubmoduleStrategy.js';
@@ -30,7 +31,10 @@ export class GuideManager {
30
31
  throw new Error('Guide is already installed. Use guide_update (or cf guides update) to update it.');
31
32
  }
32
33
  const strategy = this.getStrategy(method);
33
- return strategy.install(this.projectPath, source, targetDir);
34
+ const result = await strategy.install(this.projectPath, source, targetDir);
35
+ // Create user artifact directories so the project is ready to use
36
+ this.createUserDirectories();
37
+ return result;
34
38
  }
35
39
  /** Update an existing guide installation */
36
40
  async update() {
@@ -73,6 +77,19 @@ export class GuideManager {
73
77
  }
74
78
  return 'submodule';
75
79
  }
80
+ /** Create user artifact directories alongside the guide */
81
+ createUserDirectories() {
82
+ const userDirs = [
83
+ 'project-documents/user',
84
+ 'project-documents/user/architecture',
85
+ 'project-documents/user/slices',
86
+ 'project-documents/user/tasks',
87
+ 'project-documents/user/project-guides',
88
+ ];
89
+ for (const dir of userDirs) {
90
+ mkdirSync(join(this.projectPath, dir), { recursive: true });
91
+ }
92
+ }
76
93
  /** Map method name to strategy instance */
77
94
  getStrategy(method) {
78
95
  switch (method) {
@@ -1 +1 @@
1
- {"version":3,"file":"GuideManager.js","sourceRoot":"","sources":["../../src/guides/GuideManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GuideManager.js","sourceRoot":"","sources":["../../src/guides/GuideManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { ProjectData } from '../types/project.js';
2
+ import type { IArtifactIntrospector } from './interfaces.js';
3
+ import type { ConsistencyCheckResult, ConsistencyFixResult } from './types.js';
4
+ /**
5
+ * Compares related artifact states within a project and flags mismatches.
6
+ * Optionally applies non-destructive corrections to fixable findings.
7
+ */
8
+ export declare class ConsistencyChecker {
9
+ private readonly introspector;
10
+ constructor(introspector: IArtifactIntrospector);
11
+ /**
12
+ * Run all detection rules against a project and return structured findings.
13
+ */
14
+ check(project: ProjectData): Promise<ConsistencyCheckResult>;
15
+ /**
16
+ * Run check(), then apply non-destructive corrections to fixable findings.
17
+ */
18
+ fix(project: ProjectData): Promise<ConsistencyFixResult>;
19
+ /** Rule 1: Task completion vs. slice plan checkbox */
20
+ private ruleTaskVsPlan;
21
+ /** Rule 2: Frontmatter status vs. computed state */
22
+ private ruleFrontmatterVsComputed;
23
+ /** Rule 3: Missing artifact cross-references */
24
+ private ruleMissingArtifacts;
25
+ /** Rule 4: Plan checkbox vs. slice frontmatter status */
26
+ private rulePlanVsFrontmatter;
27
+ /** Rule 5: Task file frontmatter status vs. computed task completion */
28
+ private ruleTaskFileStatus;
29
+ private emptyResult;
30
+ private buildResult;
31
+ private resolveSlicePlanPath;
32
+ private safeDetectDocuments;
33
+ private safeParseSlicePlan;
34
+ private safeParseTaskFile;
35
+ private safeParseFrontmatter;
36
+ private safeParseTaskFileFrontmatter;
37
+ }
38
+ //# sourceMappingURL=ConsistencyChecker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsistencyChecker.d.ts","sourceRoot":"","sources":["../../src/introspection/ConsistencyChecker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAEV,sBAAsB,EACtB,oBAAoB,EAIrB,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;IAiElE;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAqC9D,sDAAsD;IACtD,OAAO,CAAC,cAAc;IAoDtB,oDAAoD;IACpD,OAAO,CAAC,yBAAyB;IAoDjC,gDAAgD;IAChD,OAAO,CAAC,oBAAoB;IAmC5B,yDAAyD;IACzD,OAAO,CAAC,qBAAqB;IAoD7B,wEAAwE;IACxE,OAAO,CAAC,kBAAkB;IAmD1B,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,oBAAoB;YAMd,mBAAmB;YAYnB,kBAAkB;YAalB,iBAAiB;YAajB,oBAAoB;YAYpB,4BAA4B;CAY3C"}
@@ -0,0 +1,381 @@
1
+ import { join } from 'node:path';
2
+ import { resolveArtifactPath } from '../schema/resolveFileByIndex.js';
3
+ import { updateCheckbox, updateFrontmatterField } from './writers/markdownWriter.js';
4
+ /**
5
+ * Extract numeric slice index from a fileSlice value like "165-slice.workflow-navigator".
6
+ */
7
+ function extractSliceIndex(fileSlice) {
8
+ if (!fileSlice)
9
+ return null;
10
+ const match = /^(\d+)-/.exec(fileSlice);
11
+ return match ? parseInt(match[1], 10) : null;
12
+ }
13
+ /**
14
+ * Compares related artifact states within a project and flags mismatches.
15
+ * Optionally applies non-destructive corrections to fixable findings.
16
+ */
17
+ export class ConsistencyChecker {
18
+ introspector;
19
+ constructor(introspector) {
20
+ this.introspector = introspector;
21
+ }
22
+ /**
23
+ * Run all detection rules against a project and return structured findings.
24
+ */
25
+ async check(project) {
26
+ const projectPath = project.projectPath;
27
+ if (!projectPath) {
28
+ return this.emptyResult('');
29
+ }
30
+ const sliceIndex = extractSliceIndex(project.fileSlice);
31
+ if (sliceIndex === null) {
32
+ return this.emptyResult(projectPath);
33
+ }
34
+ // Gather data from introspector — each call individually try/caught
35
+ const docs = await this.safeDetectDocuments(projectPath, sliceIndex);
36
+ const slicePlanResult = await this.safeParseSlicePlan(project, projectPath);
37
+ const taskResult = await this.safeParseTaskFile(docs?.taskFile, projectPath);
38
+ const sliceFrontmatter = await this.safeParseFrontmatter(docs?.sliceDesign, projectPath);
39
+ // Find the matching slice plan entry
40
+ const planEntry = slicePlanResult?.entries.find((e) => e.index === sliceIndex) ?? null;
41
+ const slicePlanPath = this.resolveSlicePlanPath(project, projectPath);
42
+ const findings = [];
43
+ // Rule 1: task completion vs. slice plan checkbox
44
+ findings.push(...this.ruleTaskVsPlan(taskResult, planEntry, slicePlanPath, slicePlanResult, sliceIndex));
45
+ const sliceDesignRel = docs?.sliceDesign ?? null;
46
+ // Rule 2: frontmatter status vs. computed state
47
+ findings.push(...this.ruleFrontmatterVsComputed(sliceFrontmatter, taskResult, sliceDesignRel, projectPath));
48
+ // Rule 3: missing artifact cross-references
49
+ findings.push(...this.ruleMissingArtifacts(docs, planEntry, sliceIndex));
50
+ // Rule 4: plan checkbox vs. slice frontmatter status
51
+ findings.push(...this.rulePlanVsFrontmatter(planEntry, sliceFrontmatter, slicePlanPath, sliceDesignRel, projectPath));
52
+ // Rule 5: task file frontmatter status vs. computed task completion
53
+ const taskFileFrontmatter = await this.safeParseTaskFileFrontmatter(docs?.taskFile, projectPath);
54
+ findings.push(...this.ruleTaskFileStatus(taskResult, taskFileFrontmatter));
55
+ return this.buildResult(projectPath, findings);
56
+ }
57
+ /**
58
+ * Run check(), then apply non-destructive corrections to fixable findings.
59
+ */
60
+ async fix(project) {
61
+ const checkResult = await this.check(project);
62
+ const fixLog = [];
63
+ const fixErrors = [];
64
+ let fixed = 0;
65
+ for (const finding of checkResult.findings) {
66
+ if (!finding.fixable || !finding.fixAction)
67
+ continue;
68
+ try {
69
+ if (finding.fixAction.type === 'update-checkbox') {
70
+ const { lineIndex, checked } = finding.fixAction.detail;
71
+ const entry = await updateCheckbox(finding.fixAction.filePath, lineIndex, checked);
72
+ entry.rule = finding.rule;
73
+ fixLog.push(entry);
74
+ fixed++;
75
+ }
76
+ else if (finding.fixAction.type === 'update-frontmatter') {
77
+ const { key, value } = finding.fixAction.detail;
78
+ const entry = await updateFrontmatterField(finding.fixAction.filePath, key, value);
79
+ entry.rule = finding.rule;
80
+ fixLog.push(entry);
81
+ fixed++;
82
+ }
83
+ }
84
+ catch (err) {
85
+ const msg = err instanceof Error ? err.message : String(err);
86
+ fixErrors.push(`Fix failed for ${finding.rule}: ${msg}`);
87
+ }
88
+ }
89
+ return { ...checkResult, fixed, fixLog, fixErrors };
90
+ }
91
+ // --- Detection Rules ---
92
+ /** Rule 1: Task completion vs. slice plan checkbox */
93
+ ruleTaskVsPlan(taskResult, planEntry, slicePlanPath, slicePlanResult, sliceIndex) {
94
+ const findings = [];
95
+ if (!taskResult || !planEntry || !slicePlanPath || !slicePlanResult)
96
+ return findings;
97
+ const tasksComplete = taskResult.inferredStatus === 'complete';
98
+ const sliceChecked = planEntry.isChecked;
99
+ if (tasksComplete && !sliceChecked) {
100
+ // Find the line index of this entry in the plan file for fixing
101
+ const entryIdx = slicePlanResult.entries.findIndex((e) => e.index === sliceIndex);
102
+ findings.push({
103
+ rule: 'task-vs-plan',
104
+ severity: 'warning',
105
+ location: slicePlanPath,
106
+ description: `Tasks complete (${taskResult.completedTasks}/${taskResult.totalTasks}) but slice ${sliceIndex} is unchecked in plan`,
107
+ suggestedFix: `Check the slice plan entry for (${sliceIndex})`,
108
+ fixable: true,
109
+ fixAction: {
110
+ type: 'update-checkbox',
111
+ filePath: slicePlanPath,
112
+ detail: { lineIndex: entryIdx, checked: true, entryIndex: sliceIndex },
113
+ },
114
+ });
115
+ }
116
+ if (sliceChecked && !tasksComplete) {
117
+ const entryIdx = slicePlanResult.entries.findIndex((e) => e.index === sliceIndex);
118
+ findings.push({
119
+ rule: 'task-vs-plan',
120
+ severity: 'error',
121
+ location: slicePlanPath,
122
+ description: `Slice ${sliceIndex} is checked in plan but tasks are incomplete (${taskResult.completedTasks}/${taskResult.totalTasks})`,
123
+ suggestedFix: `Uncheck the slice plan entry for (${sliceIndex})`,
124
+ fixable: true,
125
+ fixAction: {
126
+ type: 'update-checkbox',
127
+ filePath: slicePlanPath,
128
+ detail: { lineIndex: entryIdx, checked: false, entryIndex: sliceIndex },
129
+ },
130
+ });
131
+ }
132
+ return findings;
133
+ }
134
+ /** Rule 2: Frontmatter status vs. computed state */
135
+ ruleFrontmatterVsComputed(frontmatter, taskResult, sliceDesignRelPath, projectPath) {
136
+ const findings = [];
137
+ if (!frontmatter?.found || !frontmatter.data.status)
138
+ return findings;
139
+ if (!taskResult)
140
+ return findings;
141
+ const fmStatus = frontmatter.data.status.toLowerCase();
142
+ const tasksComplete = taskResult.inferredStatus === 'complete';
143
+ const sliceDesignFullPath = sliceDesignRelPath
144
+ ? join(projectPath, sliceDesignRelPath)
145
+ : frontmatter.filePath;
146
+ if (fmStatus === 'complete' && !tasksComplete) {
147
+ findings.push({
148
+ rule: 'frontmatter-vs-computed',
149
+ severity: 'error',
150
+ location: sliceDesignFullPath,
151
+ description: `Frontmatter status is "complete" but tasks are incomplete (${taskResult.completedTasks}/${taskResult.totalTasks})`,
152
+ suggestedFix: 'Update frontmatter status to "in-progress"',
153
+ fixable: true,
154
+ fixAction: {
155
+ type: 'update-frontmatter',
156
+ filePath: sliceDesignFullPath,
157
+ detail: { key: 'status', value: 'in-progress' },
158
+ },
159
+ });
160
+ }
161
+ if ((fmStatus === 'in-progress' || fmStatus === 'not-started') && tasksComplete) {
162
+ findings.push({
163
+ rule: 'frontmatter-vs-computed',
164
+ severity: 'warning',
165
+ location: sliceDesignFullPath,
166
+ description: `Frontmatter status is "${fmStatus}" but all tasks are complete (${taskResult.completedTasks}/${taskResult.totalTasks})`,
167
+ suggestedFix: 'Update frontmatter status to "complete"',
168
+ fixable: true,
169
+ fixAction: {
170
+ type: 'update-frontmatter',
171
+ filePath: sliceDesignFullPath,
172
+ detail: { key: 'status', value: 'complete' },
173
+ },
174
+ });
175
+ }
176
+ return findings;
177
+ }
178
+ /** Rule 3: Missing artifact cross-references */
179
+ ruleMissingArtifacts(docs, planEntry, sliceIndex) {
180
+ const findings = [];
181
+ const hasTaskFile = docs?.taskFile !== null && docs?.taskFile !== undefined;
182
+ const hasPlanEntry = planEntry !== null;
183
+ if (hasTaskFile && !hasPlanEntry) {
184
+ findings.push({
185
+ rule: 'missing-artifact',
186
+ severity: 'info',
187
+ location: docs.taskFile[0],
188
+ description: `Task file exists for slice ${sliceIndex} but no matching slice plan entry found`,
189
+ suggestedFix: 'Add an entry for this slice to the slice plan',
190
+ fixable: false,
191
+ });
192
+ }
193
+ if (hasPlanEntry && !hasTaskFile) {
194
+ findings.push({
195
+ rule: 'missing-artifact',
196
+ severity: 'info',
197
+ location: `slice plan entry ${sliceIndex}`,
198
+ description: `Slice plan entry exists for ${sliceIndex} (${planEntry.name}) but no task file found`,
199
+ suggestedFix: 'Create a task file when ready to begin implementation',
200
+ fixable: false,
201
+ });
202
+ }
203
+ return findings;
204
+ }
205
+ /** Rule 4: Plan checkbox vs. slice frontmatter status */
206
+ rulePlanVsFrontmatter(planEntry, frontmatter, slicePlanPath, sliceDesignRelPath, projectPath) {
207
+ const findings = [];
208
+ if (!planEntry || !frontmatter?.found || !frontmatter.data.status)
209
+ return findings;
210
+ const fmStatus = frontmatter.data.status.toLowerCase();
211
+ const planChecked = planEntry.isChecked;
212
+ const sliceDesignFullPath = sliceDesignRelPath
213
+ ? join(projectPath, sliceDesignRelPath)
214
+ : frontmatter.filePath;
215
+ if (planChecked && fmStatus !== 'complete') {
216
+ findings.push({
217
+ rule: 'plan-vs-frontmatter',
218
+ severity: 'warning',
219
+ location: sliceDesignFullPath,
220
+ description: `Slice plan entry is checked but frontmatter status is "${fmStatus}"`,
221
+ suggestedFix: 'Update frontmatter status to "complete"',
222
+ fixable: true,
223
+ fixAction: {
224
+ type: 'update-frontmatter',
225
+ filePath: sliceDesignFullPath,
226
+ detail: { key: 'status', value: 'complete' },
227
+ },
228
+ });
229
+ }
230
+ if (!planChecked && fmStatus === 'complete' && slicePlanPath) {
231
+ findings.push({
232
+ rule: 'plan-vs-frontmatter',
233
+ severity: 'warning',
234
+ location: slicePlanPath,
235
+ description: `Frontmatter status is "complete" but slice plan entry is unchecked`,
236
+ suggestedFix: 'Check the slice plan entry',
237
+ fixable: true,
238
+ fixAction: {
239
+ type: 'update-checkbox',
240
+ filePath: slicePlanPath,
241
+ detail: { lineIndex: -1, checked: true },
242
+ },
243
+ });
244
+ }
245
+ return findings;
246
+ }
247
+ /** Rule 5: Task file frontmatter status vs. computed task completion */
248
+ ruleTaskFileStatus(taskResult, taskFrontmatter) {
249
+ const findings = [];
250
+ if (!taskResult || !taskFrontmatter?.found || !taskFrontmatter.data.status)
251
+ return findings;
252
+ const fmStatus = taskFrontmatter.data.status.toLowerCase().replace(/_/g, '-');
253
+ const computed = taskResult.inferredStatus; // 'complete' | 'in-progress' | 'not-started'
254
+ const taskFilePath = taskFrontmatter.filePath;
255
+ // Map task file status values to normalized form for comparison
256
+ // Task files use not_started/in_progress/complete in frontmatter
257
+ if (fmStatus === 'complete' && computed !== 'complete') {
258
+ findings.push({
259
+ rule: 'task-file-status',
260
+ severity: 'error',
261
+ location: taskFilePath,
262
+ description: `Task file status is "complete" but tasks are incomplete (${taskResult.completedTasks}/${taskResult.totalTasks})`,
263
+ suggestedFix: 'Update task file status to "in_progress"',
264
+ fixable: true,
265
+ fixAction: {
266
+ type: 'update-frontmatter',
267
+ filePath: taskFilePath,
268
+ detail: { key: 'status', value: 'in_progress' },
269
+ },
270
+ });
271
+ }
272
+ if (fmStatus !== 'complete' && computed === 'complete') {
273
+ findings.push({
274
+ rule: 'task-file-status',
275
+ severity: 'warning',
276
+ location: taskFilePath,
277
+ description: `Task file status is "${taskFrontmatter.data.status}" but all tasks are complete (${taskResult.completedTasks}/${taskResult.totalTasks})`,
278
+ suggestedFix: 'Update task file status to "complete"',
279
+ fixable: true,
280
+ fixAction: {
281
+ type: 'update-frontmatter',
282
+ filePath: taskFilePath,
283
+ detail: { key: 'status', value: 'complete' },
284
+ },
285
+ });
286
+ }
287
+ return findings;
288
+ }
289
+ // --- Helper methods ---
290
+ emptyResult(projectPath) {
291
+ return {
292
+ projectPath,
293
+ findings: [],
294
+ totalFindings: 0,
295
+ errors: 0,
296
+ warnings: 0,
297
+ infos: 0,
298
+ summary: 'No inconsistencies found',
299
+ };
300
+ }
301
+ buildResult(projectPath, findings) {
302
+ const errors = findings.filter((f) => f.severity === 'error').length;
303
+ const warnings = findings.filter((f) => f.severity === 'warning').length;
304
+ const infos = findings.filter((f) => f.severity === 'info').length;
305
+ const total = findings.length;
306
+ let summary;
307
+ if (total === 0) {
308
+ summary = 'No inconsistencies found';
309
+ }
310
+ else {
311
+ const parts = [];
312
+ if (errors > 0)
313
+ parts.push(`${errors} error${errors !== 1 ? 's' : ''}`);
314
+ if (warnings > 0)
315
+ parts.push(`${warnings} warning${warnings !== 1 ? 's' : ''}`);
316
+ if (infos > 0)
317
+ parts.push(`${infos} info${infos !== 1 ? 's' : ''}`);
318
+ summary = `${total} finding${total !== 1 ? 's' : ''}: ${parts.join(', ')}`;
319
+ }
320
+ return { projectPath, findings, totalFindings: total, errors, warnings, infos, summary };
321
+ }
322
+ resolveSlicePlanPath(project, projectPath) {
323
+ if (!project.fileSlicePlan)
324
+ return null;
325
+ const relPath = resolveArtifactPath('fileSlicePlan', project.fileSlicePlan);
326
+ return relPath ? join(projectPath, relPath) : null;
327
+ }
328
+ async safeDetectDocuments(projectPath, sliceIndex) {
329
+ try {
330
+ const docs = await this.introspector.detectDocuments(projectPath, sliceIndex);
331
+ return { taskFile: docs.taskFile, sliceDesign: docs.sliceDesign };
332
+ }
333
+ catch {
334
+ return null;
335
+ }
336
+ }
337
+ async safeParseSlicePlan(project, projectPath) {
338
+ const planPath = this.resolveSlicePlanPath(project, projectPath);
339
+ if (!planPath)
340
+ return null;
341
+ try {
342
+ return await this.introspector.parseSlicePlan(planPath);
343
+ }
344
+ catch {
345
+ return null;
346
+ }
347
+ }
348
+ async safeParseTaskFile(taskFilePaths, projectPath) {
349
+ if (!taskFilePaths || taskFilePaths.length === 0)
350
+ return null;
351
+ try {
352
+ const fullPaths = taskFilePaths.map((p) => join(projectPath, p));
353
+ return await this.introspector.parseTaskFile(fullPaths);
354
+ }
355
+ catch {
356
+ return null;
357
+ }
358
+ }
359
+ async safeParseFrontmatter(sliceDesignRelPath, projectPath) {
360
+ if (!sliceDesignRelPath)
361
+ return null;
362
+ try {
363
+ return await this.introspector.parseFrontmatter(join(projectPath, sliceDesignRelPath));
364
+ }
365
+ catch {
366
+ return null;
367
+ }
368
+ }
369
+ async safeParseTaskFileFrontmatter(taskFilePaths, projectPath) {
370
+ if (!taskFilePaths || taskFilePaths.length === 0)
371
+ return null;
372
+ // Parse frontmatter from the first task file (primary file has the frontmatter)
373
+ try {
374
+ return await this.introspector.parseFrontmatter(join(projectPath, taskFilePaths[0]));
375
+ }
376
+ catch {
377
+ return null;
378
+ }
379
+ }
380
+ }
381
+ //# sourceMappingURL=ConsistencyChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsistencyChecker.js","sourceRoot":"","sources":["../../src/introspection/ConsistencyChecker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowNavigator.d.ts","sourceRoot":"","sources":["../../src/introspection/WorkflowNavigator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAEV,cAAc,EACd,UAAU,EAGX,MAAM,YAAY,CAAC;AAMpB;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAI9E;AAYD;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IA2B9D;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA4GxD;;OAEG;YACW,iBAAiB;YAqDjB,iBAAiB;YAQjB,kBAAkB;IA4BhC,OAAO,CAAC,YAAY;CA0BrB"}
1
+ {"version":3,"file":"WorkflowNavigator.d.ts","sourceRoot":"","sources":["../../src/introspection/WorkflowNavigator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAEV,cAAc,EACd,UAAU,EAGX,MAAM,YAAY,CAAC;AAMpB;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAI9E;AAYD;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IA2B9D;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAqHxD;;OAEG;YACW,iBAAiB;YAqDjB,iBAAiB;YAQjB,kBAAkB;IA4BhC,OAAO,CAAC,YAAY;CA0BrB"}
@@ -69,13 +69,22 @@ export class WorkflowNavigator {
69
69
  const slice = status.activeSlice;
70
70
  // Priority 2: No fileSlice
71
71
  if (!slice || slice.status === 'no-active-slice') {
72
- // Priority 7: No slice plan either
72
+ // No architecture recommend creating architecture first
73
+ if (!project.fileArch && !status.slicePlan) {
74
+ return {
75
+ recommendation: 'Create architecture document',
76
+ rationale: 'No architecture document or slice plan is configured. Architecture defines the high-level structure before slicing into deliverable increments.',
77
+ suggestedCommand: 'cf set arch <index>',
78
+ summary: 'Create an architecture document to define project structure',
79
+ };
80
+ }
81
+ // Architecture exists but no slice plan
73
82
  if (!status.slicePlan) {
74
83
  return {
75
84
  recommendation: 'Create or assign a slice plan',
76
- rationale: 'No slice plan is configured. A slice plan organizes work into deliverable increments.',
85
+ rationale: 'Architecture is set but no slice plan is configured. A slice plan breaks the architecture into deliverable increments.',
77
86
  suggestedCommand: 'cf set slicePlan <path>',
78
- summary: 'Create or assign a slice plan to organize work',
87
+ summary: 'Create a slice plan from the architecture',
79
88
  };
80
89
  }
81
90
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowNavigator.js","sourceRoot":"","sources":["../../src/introspection/WorkflowNavigator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowNavigator.js","sourceRoot":"","sources":["../../src/introspection/WorkflowNavigator.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  import type { SlicePlanResult } from '../types.js';
2
2
  /**
3
3
  * Parse a slice plan document and extract entries with completion state.
4
+ * Supports two entry formats:
5
+ * - Indexed: `1. [ ] **(101) Slice Name**` — uses parenthesized index
6
+ * - Unindexed: `1. [ ] **Slice Name**` — uses sequential list number as index
4
7
  * Section-aware: skips entries under Future Work, Implementation Order, Notes, Parent Document.
5
8
  * Never throws — returns empty result on error.
6
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"slicePlanParser.d.ts","sourceRoot":"","sources":["../../../src/introspection/parsers/slicePlanParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,aAAa,CAAC;AAWnE;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAyC/E"}
1
+ {"version":3,"file":"slicePlanParser.d.ts","sourceRoot":"","sources":["../../../src/introspection/parsers/slicePlanParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,aAAa,CAAC;AAcnE;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAyD/E"}
@@ -1,12 +1,17 @@
1
1
  import { readFile } from 'node:fs/promises';
2
- /** Matches `N. [ ] **(NNN) Slice Name**` (from parse.py) */
3
- const PLAN_SLICE_RE = /^\d+\.\s+\[([ xX])\]\s+\*\*\((\d+)\)\s+(.+?)\*\*/;
2
+ /** Matches `N. [ ] **(NNN) Slice Name**` indexed format */
3
+ const PLAN_INDEXED_RE = /^(\d+)\.\s+\[([ xX])\]\s+\*\*\((\d+)\)\s+(.+?)\*\*/;
4
+ /** Matches `N. [ ] **Slice Name**` — unindexed format (no parenthesized index) */
5
+ const PLAN_UNINDEXED_RE = /^(\d+)\.\s+\[([ xX])\]\s+\*\*([^(].*?)\*\*/;
4
6
  /** Matches headings: #, ##, ### */
5
7
  const HEADING_RE = /^#{1,3}\s+/;
6
- /** Headings that do NOT contain slice entries (from parse.py) */
8
+ /** Headings that do NOT contain slice entries */
7
9
  const NON_SLICE_HEADINGS = ['future work', 'implementation order', 'notes', 'parent document'];
8
10
  /**
9
11
  * Parse a slice plan document and extract entries with completion state.
12
+ * Supports two entry formats:
13
+ * - Indexed: `1. [ ] **(101) Slice Name**` — uses parenthesized index
14
+ * - Unindexed: `1. [ ] **Slice Name**` — uses sequential list number as index
10
15
  * Section-aware: skips entries under Future Work, Implementation Order, Notes, Parent Document.
11
16
  * Never throws — returns empty result on error.
12
17
  */
@@ -15,26 +20,41 @@ export async function parseSlicePlan(filePath) {
15
20
  try {
16
21
  const content = await readFile(filePath, 'utf-8');
17
22
  const entries = [];
18
- let inSliceSection = true; // Assume slice sections until a non-slice heading
23
+ let inSliceSection = true;
24
+ let unindexedCounter = 0;
19
25
  for (const line of content.split('\n')) {
20
26
  const stripped = line.trim();
21
27
  if (HEADING_RE.test(stripped)) {
22
28
  const heading = stripped.replace(/^#+\s+/, '').toLowerCase();
23
- inSliceSection = !NON_SLICE_HEADINGS.some((ns) => heading.includes(ns));
29
+ inSliceSection = !NON_SLICE_HEADINGS.some((ns) => heading.startsWith(ns));
24
30
  continue;
25
31
  }
26
32
  if (!inSliceSection)
27
33
  continue;
28
- const m = PLAN_SLICE_RE.exec(stripped);
29
- if (!m)
34
+ // Try indexed format first (preferred)
35
+ const indexed = PLAN_INDEXED_RE.exec(stripped);
36
+ if (indexed) {
37
+ const isChecked = indexed[2].toLowerCase() === 'x';
38
+ entries.push({
39
+ index: parseInt(indexed[3], 10),
40
+ name: indexed[4].trim(),
41
+ status: isChecked ? 'complete' : 'not-started',
42
+ isChecked,
43
+ });
30
44
  continue;
31
- const isChecked = m[1].toLowerCase() === 'x';
32
- entries.push({
33
- index: parseInt(m[2], 10),
34
- name: m[3].trim(),
35
- status: isChecked ? 'complete' : 'not-started',
36
- isChecked,
37
- });
45
+ }
46
+ // Fall back to unindexed format — use sequential counter as index
47
+ const unindexed = PLAN_UNINDEXED_RE.exec(stripped);
48
+ if (unindexed) {
49
+ unindexedCounter++;
50
+ const isChecked = unindexed[2].toLowerCase() === 'x';
51
+ entries.push({
52
+ index: unindexedCounter,
53
+ name: unindexed[3].trim(),
54
+ status: isChecked ? 'complete' : 'not-started',
55
+ isChecked,
56
+ });
57
+ }
38
58
  }
39
59
  const completedSlices = entries.filter((e) => e.isChecked).length;
40
60
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"slicePlanParser.js","sourceRoot":"","sources":["../../../src/introspection/parsers/slicePlanParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,4DAA4D;AAC5D,MAAM,aAAa,GAAG,kDAAkD,CAAC;AAEzE,mCAAmC;AACnC,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,iEAAiE;AACjE,MAAM,kBAAkB,GAAG,CAAC,aAAa,EAAE,sBAAsB,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAE/F;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,MAAM,KAAK,GAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;IAE7F,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,IAAI,cAAc,GAAG,IAAI,CAAC,CAAC,kDAAkD;QAE7E,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAE7B,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC7D,cAAc,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxE,SAAS;YACX,CAAC;YAED,IAAI,CAAC,cAAc;gBAAE,SAAS;YAE9B,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,CAAC;gBAAE,SAAS;YAEjB,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACzB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBACjB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa;gBAC9C,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAClE,OAAO;YACL,QAAQ;YACR,OAAO;YACP,WAAW,EAAE,OAAO,CAAC,MAAM;YAC3B,eAAe;SAChB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"slicePlanParser.js","sourceRoot":"","sources":["../../../src/introspection/parsers/slicePlanParser.ts"],"names":[],"mappings":"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"}
@@ -153,6 +153,47 @@ export interface FutureWorkCollectorResult {
153
153
  completedItems: number;
154
154
  markdown: string;
155
155
  }
156
+ /** Severity level for consistency findings */
157
+ export type ConsistencySeverity = 'info' | 'warning' | 'error';
158
+ /** A single consistency finding from a detection rule */
159
+ export interface ConsistencyFinding {
160
+ rule: string;
161
+ severity: ConsistencySeverity;
162
+ location: string;
163
+ description: string;
164
+ suggestedFix: string;
165
+ fixable: boolean;
166
+ fixAction?: {
167
+ type: 'update-checkbox' | 'update-frontmatter';
168
+ filePath: string;
169
+ detail: Record<string, unknown>;
170
+ };
171
+ }
172
+ /** Result of running all consistency checks on a project */
173
+ export interface ConsistencyCheckResult {
174
+ projectPath: string;
175
+ findings: ConsistencyFinding[];
176
+ totalFindings: number;
177
+ errors: number;
178
+ warnings: number;
179
+ infos: number;
180
+ summary: string;
181
+ }
182
+ /** Log entry for a single applied fix */
183
+ export interface FixLogEntry {
184
+ rule: string;
185
+ action: 'update-checkbox' | 'update-frontmatter';
186
+ filePath: string;
187
+ field?: string;
188
+ before: string;
189
+ after: string;
190
+ }
191
+ /** Result of running consistency checks with fix mode enabled */
192
+ export interface ConsistencyFixResult extends ConsistencyCheckResult {
193
+ fixed: number;
194
+ fixLog: FixLogEntry[];
195
+ fixErrors: string[];
196
+ }
156
197
  /** Status of the currently active slice */
157
198
  export interface SliceStatus {
158
199
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/introspection/types.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,YAAY,CAAC;AAEzF,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,kCAAkC;AAClC,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAED,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,cAAc,EAAE,UAAU,GAAG,aAAa,GAAG,aAAa,CAAC;CAC5D;AAED,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,uCAAuC;AACvC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,gCAAgC;AAChC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAED,4CAA4C;AAC5C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,sEAAsE;AACtE,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAID,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,4CAA4C;AAC5C,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,sDAAsD;AACtD,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;CACtB;AAED,gCAAgC;AAChC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,iCAAiC;AACjC,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED,8CAA8C;AAC9C,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,iEAAiE;AACjE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,kDAAkD;AAClD,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,oCAAoC;AACpC,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,4DAA4D;AAC5D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,mBAAmB,EAAE,SAAS,EAAE,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC;CACjB;AAID,wDAAwD;AACxD,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,4EAA4E;AAC5E,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,2CAA2C;AAC3C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,cAAc,GAAG,aAAa,GAAG,mBAAmB,GAAG,UAAU,GAAG,iBAAiB,CAAC;IAC9F,YAAY,CAAC,EAAE;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,gBAAgB,CAAC;KAClC,CAAC;CACH;AAED,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,cAAc,EAAE,CAAC;KAC3B,GAAG,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,0DAA0D;AAC1D,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,+DAA+D;AAC/D,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,CAAC,EAAE;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,gBAAgB,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE;QACT,YAAY,EAAE,OAAO,CAAC;QACtB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;QACjB,qBAAqB,EAAE,OAAO,CAAC;QAC/B,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/introspection/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { FixLogEntry } from '../types.js';
2
+ /**
3
+ * Update a checkbox on a specific line in a markdown file.
4
+ * Toggles between `[ ]` and `[x]` based on the `checked` parameter.
5
+ */
6
+ export declare function updateCheckbox(filePath: string, lineIndex: number, checked: boolean): Promise<FixLogEntry>;
7
+ /**
8
+ * Update a YAML frontmatter field value in a markdown file.
9
+ * Finds the key in the frontmatter block and replaces its value.
10
+ */
11
+ export declare function updateFrontmatterField(filePath: string, key: string, value: string): Promise<FixLogEntry>;
12
+ //# sourceMappingURL=markdownWriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdownWriter.d.ts","sourceRoot":"","sources":["../../../src/introspection/writers/markdownWriter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;GAGG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,CAkCtB;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC,CA+DtB"}
@@ -0,0 +1,93 @@
1
+ import { readFile, writeFile } from 'node:fs/promises';
2
+ /**
3
+ * Update a checkbox on a specific line in a markdown file.
4
+ * Toggles between `[ ]` and `[x]` based on the `checked` parameter.
5
+ */
6
+ export async function updateCheckbox(filePath, lineIndex, checked) {
7
+ const content = await readFile(filePath, 'utf-8');
8
+ const lines = content.split('\n');
9
+ if (lineIndex < 0 || lineIndex >= lines.length) {
10
+ throw new Error(`Line index ${lineIndex} out of range (file has ${lines.length} lines)`);
11
+ }
12
+ const line = lines[lineIndex];
13
+ const uncheckedPattern = /\[ \]/;
14
+ const checkedPattern = /\[x\]/i;
15
+ if (!uncheckedPattern.test(line) && !checkedPattern.test(line)) {
16
+ throw new Error(`Line ${lineIndex} does not contain a checkbox pattern: "${line.trim()}"`);
17
+ }
18
+ const before = uncheckedPattern.test(line) ? '[ ]' : '[x]';
19
+ const after = checked ? '[x]' : '[ ]';
20
+ if (checked) {
21
+ lines[lineIndex] = line.replace(uncheckedPattern, '[x]');
22
+ }
23
+ else {
24
+ lines[lineIndex] = line.replace(checkedPattern, '[ ]');
25
+ }
26
+ await writeFile(filePath, lines.join('\n'), 'utf-8');
27
+ return {
28
+ rule: '',
29
+ action: 'update-checkbox',
30
+ filePath,
31
+ before,
32
+ after,
33
+ };
34
+ }
35
+ /**
36
+ * Update a YAML frontmatter field value in a markdown file.
37
+ * Finds the key in the frontmatter block and replaces its value.
38
+ */
39
+ export async function updateFrontmatterField(filePath, key, value) {
40
+ const content = await readFile(filePath, 'utf-8');
41
+ const lines = content.split('\n');
42
+ if (lines.length === 0 || lines[0].trim() !== '---') {
43
+ throw new Error(`File does not contain YAML frontmatter: ${filePath}`);
44
+ }
45
+ let closingIndex = -1;
46
+ for (let i = 1; i < lines.length; i++) {
47
+ if (lines[i].trim() === '---') {
48
+ closingIndex = i;
49
+ break;
50
+ }
51
+ }
52
+ if (closingIndex === -1) {
53
+ throw new Error(`Frontmatter not closed in: ${filePath}`);
54
+ }
55
+ // Find the key within frontmatter bounds
56
+ let keyLineIndex = -1;
57
+ let beforeValue = '';
58
+ for (let i = 1; i < closingIndex; i++) {
59
+ const line = lines[i];
60
+ const colonIdx = line.indexOf(':');
61
+ if (colonIdx === -1)
62
+ continue;
63
+ const lineKey = line.slice(0, colonIdx).trim();
64
+ if (lineKey === key) {
65
+ keyLineIndex = i;
66
+ beforeValue = line.slice(colonIdx + 1).trim();
67
+ // Strip surrounding quotes
68
+ if (beforeValue.length >= 2 &&
69
+ ((beforeValue.startsWith("'") && beforeValue.endsWith("'")) ||
70
+ (beforeValue.startsWith('"') && beforeValue.endsWith('"')))) {
71
+ beforeValue = beforeValue.slice(1, -1);
72
+ }
73
+ break;
74
+ }
75
+ }
76
+ if (keyLineIndex === -1) {
77
+ throw new Error(`Frontmatter key "${key}" not found in: ${filePath}`);
78
+ }
79
+ // Replace the value, preserving the key and any leading whitespace
80
+ const originalLine = lines[keyLineIndex];
81
+ const colonIdx = originalLine.indexOf(':');
82
+ lines[keyLineIndex] = originalLine.slice(0, colonIdx + 1) + ' ' + value;
83
+ await writeFile(filePath, lines.join('\n'), 'utf-8');
84
+ return {
85
+ rule: '',
86
+ action: 'update-frontmatter',
87
+ filePath,
88
+ field: key,
89
+ before: beforeValue,
90
+ after: value,
91
+ };
92
+ }
93
+ //# sourceMappingURL=markdownWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdownWriter.js","sourceRoot":"","sources":["../../../src/introspection/writers/markdownWriter.ts"],"names":[],"mappings":"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"}
package/dist/node.d.ts CHANGED
@@ -15,4 +15,6 @@ export { parseFutureWork } from './introspection/parsers/futureWorkParser.js';
15
15
  export { detectDocuments, checkFileExists } from './introspection/parsers/documentDetector.js';
16
16
  export { buildModel, scanDirectory } from './introspection/ProjectModelBuilder.js';
17
17
  export { FutureWorkCollector } from './introspection/FutureWorkCollector.js';
18
+ export { ConsistencyChecker } from './introspection/ConsistencyChecker.js';
19
+ export { updateCheckbox, updateFrontmatterField } from './introspection/writers/markdownWriter.js';
18
20
  //# sourceMappingURL=node.d.ts.map
@@ -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;AAGzE,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"}
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;AAGzE,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"}
package/dist/node.js CHANGED
@@ -23,4 +23,6 @@ export { parseFutureWork } from './introspection/parsers/futureWorkParser.js';
23
23
  export { detectDocuments, checkFileExists } from './introspection/parsers/documentDetector.js';
24
24
  export { buildModel, scanDirectory } from './introspection/ProjectModelBuilder.js';
25
25
  export { FutureWorkCollector } from './introspection/FutureWorkCollector.js';
26
+ export { ConsistencyChecker } from './introspection/ConsistencyChecker.js';
27
+ export { updateCheckbox, updateFrontmatterField } from './introspection/writers/markdownWriter.js';
26
28
  //# 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;AAEzE,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"}
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;AAEzE,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@context-forge/core",
3
- "version": "0.3.4",
3
+ "version": "0.3.6",
4
4
  "description": "Core context generation engine for Context Forge — template processing, project state, prompt assembly",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",