@context-forge/core 0.3.3 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/ConfigKeys.d.ts.map +1 -1
- package/dist/config/ConfigKeys.js +5 -0
- package/dist/config/ConfigKeys.js.map +1 -1
- package/dist/introspection/ArtifactIntrospector.d.ts.map +1 -1
- package/dist/introspection/ArtifactIntrospector.js +18 -16
- package/dist/introspection/ArtifactIntrospector.js.map +1 -1
- package/dist/introspection/WorkflowNavigator.d.ts +30 -0
- package/dist/introspection/WorkflowNavigator.d.ts.map +1 -0
- package/dist/introspection/WorkflowNavigator.js +256 -0
- package/dist/introspection/WorkflowNavigator.js.map +1 -0
- package/dist/introspection/types.d.ts +33 -0
- package/dist/introspection/types.d.ts.map +1 -1
- package/dist/node.d.ts +2 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +2 -1
- package/dist/node.js.map +1 -1
- package/dist/schema/resolveFileByIndex.d.ts +11 -0
- package/dist/schema/resolveFileByIndex.d.ts.map +1 -1
- package/dist/schema/resolveFileByIndex.js +38 -0
- package/dist/schema/resolveFileByIndex.js.map +1 -1
- package/package.json +1 -1
|
@@ -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,
|
|
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"}
|
|
@@ -20,5 +20,10 @@ export const CONFIG_KEYS = {
|
|
|
20
20
|
description: 'Strategy for managing the AI project guide via git',
|
|
21
21
|
enum: ['submodule', 'clone', 'manual'],
|
|
22
22
|
},
|
|
23
|
+
'workflow.auto_advance': {
|
|
24
|
+
type: 'boolean',
|
|
25
|
+
default: false,
|
|
26
|
+
description: 'Auto-advance to next slice when current is complete',
|
|
27
|
+
},
|
|
23
28
|
};
|
|
24
29
|
//# 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;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;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArtifactIntrospector.d.ts","sourceRoot":"","sources":["../../src/introspection/ArtifactIntrospector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ArtifactIntrospector.d.ts","sourceRoot":"","sources":["../../src/introspection/ArtifactIntrospector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAQpB;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,qBAAqB;IAC1D,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI/D,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAIxE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI9D,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIrF,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIhG;;;OAGG;IACG,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA2FrE"}
|
|
@@ -4,6 +4,7 @@ import { parseTaskFile } from './parsers/taskFileParser.js';
|
|
|
4
4
|
import { parseFrontmatter } from './parsers/frontmatterParser.js';
|
|
5
5
|
import { parseFutureWork } from './parsers/futureWorkParser.js';
|
|
6
6
|
import { detectDocuments, checkFileExists } from './parsers/documentDetector.js';
|
|
7
|
+
import { resolveArtifactPath } from '../schema/resolveFileByIndex.js';
|
|
7
8
|
/**
|
|
8
9
|
* Orchestrator that delegates to individual parser functions.
|
|
9
10
|
* Each method resolves file paths from projectPath as needed.
|
|
@@ -45,9 +46,10 @@ export class ArtifactIntrospector {
|
|
|
45
46
|
// Parse slice plan if available
|
|
46
47
|
try {
|
|
47
48
|
if (project.fileSlicePlan) {
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
|
|
49
|
+
const planRelPath = resolveArtifactPath('fileSlicePlan', project.fileSlicePlan);
|
|
50
|
+
const planPath = planRelPath ? join(projectPath, planRelPath) : null;
|
|
51
|
+
const planResult = planPath ? await parseSlicePlan(planPath) : null;
|
|
52
|
+
if (planResult && planResult.totalSlices > 0) {
|
|
51
53
|
summary.slicePlan = {
|
|
52
54
|
totalSlices: planResult.totalSlices,
|
|
53
55
|
completedSlices: planResult.completedSlices,
|
|
@@ -89,29 +91,29 @@ export class ArtifactIntrospector {
|
|
|
89
91
|
catch {
|
|
90
92
|
// Task parsing failed — continue with other operations
|
|
91
93
|
}
|
|
92
|
-
// Check artifact existence
|
|
94
|
+
// Check artifact existence (resolve stems to full relative paths)
|
|
95
|
+
const checkArtifact = async (field, stem) => {
|
|
96
|
+
if (!stem)
|
|
97
|
+
return false;
|
|
98
|
+
const relPath = resolveArtifactPath(field, stem);
|
|
99
|
+
if (!relPath)
|
|
100
|
+
return false;
|
|
101
|
+
return checkFileExists(projectPath, relPath);
|
|
102
|
+
};
|
|
93
103
|
try {
|
|
94
|
-
|
|
95
|
-
summary.artifacts.hasSlicePlan = await checkFileExists(projectPath, project.fileSlicePlan);
|
|
96
|
-
}
|
|
104
|
+
summary.artifacts.hasSlicePlan = await checkArtifact('fileSlicePlan', project.fileSlicePlan);
|
|
97
105
|
}
|
|
98
106
|
catch { /* continue */ }
|
|
99
107
|
try {
|
|
100
|
-
|
|
101
|
-
summary.artifacts.hasHLD = await checkFileExists(projectPath, project.fileHLD);
|
|
102
|
-
}
|
|
108
|
+
summary.artifacts.hasHLD = await checkArtifact('fileHLD', project.fileHLD);
|
|
103
109
|
}
|
|
104
110
|
catch { /* continue */ }
|
|
105
111
|
try {
|
|
106
|
-
|
|
107
|
-
summary.artifacts.hasArch = await checkFileExists(projectPath, project.fileArch);
|
|
108
|
-
}
|
|
112
|
+
summary.artifacts.hasArch = await checkArtifact('fileArch', project.fileArch);
|
|
109
113
|
}
|
|
110
114
|
catch { /* continue */ }
|
|
111
115
|
try {
|
|
112
|
-
|
|
113
|
-
summary.artifacts.hasSpec = await checkFileExists(projectPath, project.fileSpec);
|
|
114
|
-
}
|
|
116
|
+
summary.artifacts.hasSpec = await checkArtifact('fileSpec', project.fileSpec);
|
|
115
117
|
}
|
|
116
118
|
catch { /* continue */ }
|
|
117
119
|
// Check current slice design and task file existence
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArtifactIntrospector.js","sourceRoot":"","sources":["../../src/introspection/ArtifactIntrospector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAWjC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"ArtifactIntrospector.js","sourceRoot":"","sources":["../../src/introspection/ArtifactIntrospector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ProjectData } from '../types/project.js';
|
|
2
|
+
import type { WorkflowStatus, NextAction } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Extract numeric slice index from a fileSlice value like "165-slice.workflow-navigator.md".
|
|
5
|
+
* Returns null if no leading number found.
|
|
6
|
+
*/
|
|
7
|
+
export declare function extractSliceIndex(fileSlice: string | undefined): number | null;
|
|
8
|
+
/**
|
|
9
|
+
* Stateless workflow navigator that derives project status and next actions
|
|
10
|
+
* from project data and filesystem state.
|
|
11
|
+
*/
|
|
12
|
+
export declare class WorkflowNavigator {
|
|
13
|
+
/**
|
|
14
|
+
* Derive the full workflow status for a project.
|
|
15
|
+
*/
|
|
16
|
+
getStatus(project: ProjectData): Promise<WorkflowStatus>;
|
|
17
|
+
/**
|
|
18
|
+
* Determine the recommended next action for a project.
|
|
19
|
+
* Uses a priority-ordered state machine based on getStatus().
|
|
20
|
+
*/
|
|
21
|
+
getNext(project: ProjectData): Promise<NextAction>;
|
|
22
|
+
/**
|
|
23
|
+
* Derive the status of the currently active slice.
|
|
24
|
+
*/
|
|
25
|
+
private deriveSliceStatus;
|
|
26
|
+
private parseTaskFileSafe;
|
|
27
|
+
private parseSlicePlanSafe;
|
|
28
|
+
private buildSummary;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=WorkflowNavigator.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { join } from 'node:path';
|
|
2
|
+
import { parseSlicePlan } from './parsers/slicePlanParser.js';
|
|
3
|
+
import { parseTaskFile } from './parsers/taskFileParser.js';
|
|
4
|
+
import { detectDocuments } from './parsers/documentDetector.js';
|
|
5
|
+
import { resolveArtifactPath } from '../schema/resolveFileByIndex.js';
|
|
6
|
+
/**
|
|
7
|
+
* Extract numeric slice index from a fileSlice value like "165-slice.workflow-navigator.md".
|
|
8
|
+
* Returns null if no leading number found.
|
|
9
|
+
*/
|
|
10
|
+
export function extractSliceIndex(fileSlice) {
|
|
11
|
+
if (!fileSlice)
|
|
12
|
+
return null;
|
|
13
|
+
const match = /^(\d+)-/.exec(fileSlice);
|
|
14
|
+
return match ? parseInt(match[1], 10) : null;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Extract a human-readable slice name from a fileSlice value.
|
|
18
|
+
* "165-slice.workflow-navigator.md" → "workflow-navigator"
|
|
19
|
+
*/
|
|
20
|
+
function extractSliceName(fileSlice) {
|
|
21
|
+
const withoutExt = fileSlice.replace(/\.md$/, '');
|
|
22
|
+
const match = /^\d+-slice\.(.+)$/.exec(withoutExt);
|
|
23
|
+
return match ? match[1] : withoutExt;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Stateless workflow navigator that derives project status and next actions
|
|
27
|
+
* from project data and filesystem state.
|
|
28
|
+
*/
|
|
29
|
+
export class WorkflowNavigator {
|
|
30
|
+
/**
|
|
31
|
+
* Derive the full workflow status for a project.
|
|
32
|
+
*/
|
|
33
|
+
async getStatus(project) {
|
|
34
|
+
const status = {
|
|
35
|
+
project: project.name,
|
|
36
|
+
phase: project.developmentPhase ?? null,
|
|
37
|
+
activeSlice: null,
|
|
38
|
+
slicePlan: null,
|
|
39
|
+
summary: '',
|
|
40
|
+
};
|
|
41
|
+
const projectPath = project.projectPath;
|
|
42
|
+
if (!projectPath) {
|
|
43
|
+
status.summary = `${project.name} — no project path configured`;
|
|
44
|
+
return status;
|
|
45
|
+
}
|
|
46
|
+
// Derive active slice status
|
|
47
|
+
status.activeSlice = await this.deriveSliceStatus(project, projectPath);
|
|
48
|
+
// Parse slice plan if set
|
|
49
|
+
status.slicePlan = await this.parseSlicePlanSafe(project, projectPath);
|
|
50
|
+
// Build summary
|
|
51
|
+
status.summary = this.buildSummary(status);
|
|
52
|
+
return status;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Determine the recommended next action for a project.
|
|
56
|
+
* Uses a priority-ordered state machine based on getStatus().
|
|
57
|
+
*/
|
|
58
|
+
async getNext(project) {
|
|
59
|
+
// Priority 1: No projectPath
|
|
60
|
+
if (!project.projectPath) {
|
|
61
|
+
return {
|
|
62
|
+
recommendation: 'Set projectPath',
|
|
63
|
+
rationale: 'A project path is required for workflow navigation and artifact detection.',
|
|
64
|
+
suggestedCommand: 'cf set projectPath /path/to/project',
|
|
65
|
+
summary: 'Set projectPath to enable workflow navigation',
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
const status = await this.getStatus(project);
|
|
69
|
+
const slice = status.activeSlice;
|
|
70
|
+
// Priority 2: No fileSlice
|
|
71
|
+
if (!slice || slice.status === 'no-active-slice') {
|
|
72
|
+
// Priority 7: No slice plan either
|
|
73
|
+
if (!status.slicePlan) {
|
|
74
|
+
return {
|
|
75
|
+
recommendation: 'Create or assign a slice plan',
|
|
76
|
+
rationale: 'No slice plan is configured. A slice plan organizes work into deliverable increments.',
|
|
77
|
+
suggestedCommand: 'cf set slicePlan <path>',
|
|
78
|
+
summary: 'Create or assign a slice plan to organize work',
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
recommendation: 'Set active slice',
|
|
83
|
+
rationale: 'No active slice is set. Choose a slice from the plan to work on.',
|
|
84
|
+
suggestedCommand: 'cf set slice <index>',
|
|
85
|
+
summary: 'Set an active slice to begin work',
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// Priority 3: needs-design
|
|
89
|
+
if (slice.status === 'needs-design') {
|
|
90
|
+
return {
|
|
91
|
+
recommendation: 'Create slice design (Phase 4)',
|
|
92
|
+
rationale: `Slice ${slice.index ?? slice.name} has no design document. Create a slice design before proceeding.`,
|
|
93
|
+
slice: project.fileSlice,
|
|
94
|
+
phase: 'Phase 4: Slice Design',
|
|
95
|
+
summary: `Create design for slice ${slice.index ?? slice.name}`,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
// Priority 4: needs-tasks
|
|
99
|
+
if (slice.status === 'needs-tasks') {
|
|
100
|
+
return {
|
|
101
|
+
recommendation: 'Create task breakdown (Phase 5)',
|
|
102
|
+
rationale: `Slice ${slice.index ?? slice.name} has a design but no task file. Break the design into actionable tasks.`,
|
|
103
|
+
slice: project.fileSlice,
|
|
104
|
+
phase: 'Phase 5: Task Breakdown',
|
|
105
|
+
summary: `Create task breakdown for slice ${slice.index ?? slice.name}`,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
// Priority 5: in-implementation
|
|
109
|
+
if (slice.status === 'in-implementation') {
|
|
110
|
+
const remaining = slice.taskProgress
|
|
111
|
+
? slice.taskProgress.total - slice.taskProgress.completed
|
|
112
|
+
: 0;
|
|
113
|
+
return {
|
|
114
|
+
recommendation: `Continue implementation — ${remaining} task${remaining !== 1 ? 's' : ''} remaining`,
|
|
115
|
+
rationale: `Slice ${slice.index ?? slice.name} is in progress with ${remaining} task${remaining !== 1 ? 's' : ''} left to complete.`,
|
|
116
|
+
slice: project.fileSlice,
|
|
117
|
+
phase: 'Phase 6: Implementation',
|
|
118
|
+
summary: `Continue slice ${slice.index ?? slice.name} — ${remaining} tasks remaining`,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
// Priority 6: complete → check for next slice in plan
|
|
122
|
+
if (slice.status === 'complete' && status.slicePlan) {
|
|
123
|
+
const nextEntry = status.slicePlan.entries.find((e) => !e.isChecked);
|
|
124
|
+
if (nextEntry) {
|
|
125
|
+
return {
|
|
126
|
+
recommendation: `Advance to slice ${nextEntry.index}: ${nextEntry.name}`,
|
|
127
|
+
rationale: `Current slice is complete. The next unstarted slice in the plan is ${nextEntry.index}: ${nextEntry.name}.`,
|
|
128
|
+
suggestedCommand: `cf set slice ${nextEntry.index}`,
|
|
129
|
+
slice: project.fileSlice,
|
|
130
|
+
summary: `Advance to slice ${nextEntry.index}: ${nextEntry.name}`,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
return {
|
|
134
|
+
recommendation: 'Slice plan complete. Review architecture for next initiative',
|
|
135
|
+
rationale: 'All slices in the current plan are complete. Review the architecture for the next body of work.',
|
|
136
|
+
slice: project.fileSlice,
|
|
137
|
+
summary: 'Slice plan complete — review architecture for next initiative',
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
// Priority 7 (fallback): complete but no plan
|
|
141
|
+
if (slice.status === 'complete') {
|
|
142
|
+
return {
|
|
143
|
+
recommendation: 'Create or assign a slice plan',
|
|
144
|
+
rationale: 'Current slice is complete but no slice plan is configured to determine next steps.',
|
|
145
|
+
suggestedCommand: 'cf set slicePlan <path>',
|
|
146
|
+
slice: project.fileSlice,
|
|
147
|
+
summary: 'Slice complete — create or assign a slice plan',
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
// Should not reach here, but provide a safe fallback
|
|
151
|
+
return {
|
|
152
|
+
recommendation: 'Review project status',
|
|
153
|
+
rationale: 'Unable to determine next action from current project state.',
|
|
154
|
+
summary: 'Review project status',
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Derive the status of the currently active slice.
|
|
159
|
+
*/
|
|
160
|
+
async deriveSliceStatus(project, projectPath) {
|
|
161
|
+
if (!project.fileSlice) {
|
|
162
|
+
return { name: '', index: null, status: 'no-active-slice' };
|
|
163
|
+
}
|
|
164
|
+
const index = extractSliceIndex(project.fileSlice);
|
|
165
|
+
const name = extractSliceName(project.fileSlice);
|
|
166
|
+
const base = { name, index, status: 'no-active-slice' };
|
|
167
|
+
if (index === null) {
|
|
168
|
+
return base;
|
|
169
|
+
}
|
|
170
|
+
try {
|
|
171
|
+
const docs = await detectDocuments(projectPath, index);
|
|
172
|
+
// No slice design file → needs-design
|
|
173
|
+
if (!docs.sliceDesign) {
|
|
174
|
+
return { ...base, status: 'needs-design' };
|
|
175
|
+
}
|
|
176
|
+
// Design exists but no task file → needs-tasks
|
|
177
|
+
if (!docs.taskFile) {
|
|
178
|
+
return { ...base, status: 'needs-tasks' };
|
|
179
|
+
}
|
|
180
|
+
// Task file exists — parse to determine progress
|
|
181
|
+
const taskPaths = docs.taskFile.map((p) => join(projectPath, p));
|
|
182
|
+
const taskResult = await this.parseTaskFileSafe(taskPaths);
|
|
183
|
+
if (!taskResult || taskResult.totalTasks === 0) {
|
|
184
|
+
return { ...base, status: 'needs-tasks' };
|
|
185
|
+
}
|
|
186
|
+
const taskProgress = {
|
|
187
|
+
completed: taskResult.completedTasks,
|
|
188
|
+
total: taskResult.totalTasks,
|
|
189
|
+
inferredStatus: taskResult.inferredStatus,
|
|
190
|
+
};
|
|
191
|
+
if (taskResult.inferredStatus === 'complete') {
|
|
192
|
+
return { ...base, status: 'complete', taskProgress };
|
|
193
|
+
}
|
|
194
|
+
return { ...base, status: 'in-implementation', taskProgress };
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
return base;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
async parseTaskFileSafe(taskPaths) {
|
|
201
|
+
try {
|
|
202
|
+
return await parseTaskFile(taskPaths);
|
|
203
|
+
}
|
|
204
|
+
catch {
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
async parseSlicePlanSafe(project, projectPath) {
|
|
209
|
+
if (!project.fileSlicePlan)
|
|
210
|
+
return null;
|
|
211
|
+
try {
|
|
212
|
+
const relativePath = resolveArtifactPath('fileSlicePlan', project.fileSlicePlan);
|
|
213
|
+
if (!relativePath)
|
|
214
|
+
return null;
|
|
215
|
+
const planPath = join(projectPath, relativePath);
|
|
216
|
+
const result = await parseSlicePlan(planPath);
|
|
217
|
+
if (result.totalSlices === 0)
|
|
218
|
+
return null;
|
|
219
|
+
// Extract filename from the path for display
|
|
220
|
+
const planName = project.fileSlicePlan.split('/').pop() ?? project.fileSlicePlan;
|
|
221
|
+
return {
|
|
222
|
+
name: planName,
|
|
223
|
+
completed: result.completedSlices,
|
|
224
|
+
total: result.totalSlices,
|
|
225
|
+
entries: result.entries,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
buildSummary(status) {
|
|
233
|
+
const parts = [status.project];
|
|
234
|
+
if (status.phase) {
|
|
235
|
+
parts.push(`— ${status.phase}`);
|
|
236
|
+
}
|
|
237
|
+
if (status.activeSlice) {
|
|
238
|
+
const s = status.activeSlice;
|
|
239
|
+
if (s.status === 'no-active-slice') {
|
|
240
|
+
parts.push('— no active slice');
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
const sliceLabel = s.index !== null ? `slice ${s.index}` : s.name;
|
|
244
|
+
parts.push(`— ${sliceLabel} ${s.status}`);
|
|
245
|
+
if (s.taskProgress) {
|
|
246
|
+
parts.push(`(${s.taskProgress.completed}/${s.taskProgress.total} tasks)`);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
if (status.slicePlan) {
|
|
251
|
+
parts.push(`[plan: ${status.slicePlan.completed}/${status.slicePlan.total}]`);
|
|
252
|
+
}
|
|
253
|
+
return parts.join(' ');
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=WorkflowNavigator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowNavigator.js","sourceRoot":"","sources":["../../src/introspection/WorkflowNavigator.ts"],"names":[],"mappings":"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"}
|
|
@@ -153,6 +153,39 @@ export interface FutureWorkCollectorResult {
|
|
|
153
153
|
completedItems: number;
|
|
154
154
|
markdown: string;
|
|
155
155
|
}
|
|
156
|
+
/** Status of the currently active slice */
|
|
157
|
+
export interface SliceStatus {
|
|
158
|
+
name: string;
|
|
159
|
+
index: number | null;
|
|
160
|
+
status: 'needs-design' | 'needs-tasks' | 'in-implementation' | 'complete' | 'no-active-slice';
|
|
161
|
+
taskProgress?: {
|
|
162
|
+
completed: number;
|
|
163
|
+
total: number;
|
|
164
|
+
inferredStatus: NormalizedStatus;
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
/** Full workflow status for a project */
|
|
168
|
+
export interface WorkflowStatus {
|
|
169
|
+
project: string;
|
|
170
|
+
phase: string | null;
|
|
171
|
+
activeSlice: SliceStatus | null;
|
|
172
|
+
slicePlan: {
|
|
173
|
+
name: string;
|
|
174
|
+
completed: number;
|
|
175
|
+
total: number;
|
|
176
|
+
entries: SlicePlanEntry[];
|
|
177
|
+
} | null;
|
|
178
|
+
summary: string;
|
|
179
|
+
}
|
|
180
|
+
/** Recommended next action from the workflow navigator */
|
|
181
|
+
export interface NextAction {
|
|
182
|
+
recommendation: string;
|
|
183
|
+
rationale: string;
|
|
184
|
+
suggestedCommand?: string;
|
|
185
|
+
slice?: string;
|
|
186
|
+
phase?: string;
|
|
187
|
+
summary: string;
|
|
188
|
+
}
|
|
156
189
|
/** Introspection summary suitable for enriching project_get */
|
|
157
190
|
export interface IntrospectionSummary {
|
|
158
191
|
slicePlan?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/introspection/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/introspection/types.ts"],"names":[],"mappings":"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"}
|
package/dist/node.d.ts
CHANGED
|
@@ -5,8 +5,9 @@ export { createContextPipeline } 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';
|
|
8
|
-
export { resolveFileByIndex } from './schema/resolveFileByIndex.js';
|
|
8
|
+
export { resolveFileByIndex, resolveArtifactPath, deriveArtifactStem } from './schema/resolveFileByIndex.js';
|
|
9
9
|
export { ArtifactIntrospector } from './introspection/ArtifactIntrospector.js';
|
|
10
|
+
export { WorkflowNavigator, extractSliceIndex } from './introspection/WorkflowNavigator.js';
|
|
10
11
|
export { parseFrontmatter } from './introspection/parsers/frontmatterParser.js';
|
|
11
12
|
export { parseSlicePlan } from './introspection/parsers/slicePlanParser.js';
|
|
12
13
|
export { parseTaskItems, parseTaskFile } from './introspection/parsers/taskFileParser.js';
|
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;AAGzE,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,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"}
|
package/dist/node.js
CHANGED
|
@@ -12,9 +12,10 @@ export * from './config/index.js';
|
|
|
12
12
|
// Guides — guide lifecycle management (git/fs dependent)
|
|
13
13
|
export * from './guides/index.js';
|
|
14
14
|
// Schema — fs-dependent helpers (index-based file resolution)
|
|
15
|
-
export { resolveFileByIndex } from './schema/resolveFileByIndex.js';
|
|
15
|
+
export { resolveFileByIndex, resolveArtifactPath, deriveArtifactStem } from './schema/resolveFileByIndex.js';
|
|
16
16
|
// Introspection — artifact parsing and document detection (fs dependent)
|
|
17
17
|
export { ArtifactIntrospector } from './introspection/ArtifactIntrospector.js';
|
|
18
|
+
export { WorkflowNavigator, extractSliceIndex } from './introspection/WorkflowNavigator.js';
|
|
18
19
|
export { parseFrontmatter } from './introspection/parsers/frontmatterParser.js';
|
|
19
20
|
export { parseSlicePlan } from './introspection/parsers/slicePlanParser.js';
|
|
20
21
|
export { parseTaskItems, parseTaskFile } from './introspection/parsers/taskFileParser.js';
|
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,MAAM,gCAAgC,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"}
|
|
@@ -8,4 +8,15 @@
|
|
|
8
8
|
* @throws If no matching file is found or multiple matches exist.
|
|
9
9
|
*/
|
|
10
10
|
export declare function resolveFileByIndex(projectPath: string, field: string, index: string): string | null;
|
|
11
|
+
/**
|
|
12
|
+
* Derive an artifact stem from a numeric index and a human-readable name.
|
|
13
|
+
* Uses the field's first prefix from ARTIFACT_DIR_MAP.
|
|
14
|
+
*
|
|
15
|
+
* Example: deriveArtifactStem('fileSlice', '166', 'Consistency Checker')
|
|
16
|
+
* → "166-slice.consistency-checker"
|
|
17
|
+
*
|
|
18
|
+
* @returns The derived stem, or null if the field is unknown.
|
|
19
|
+
*/
|
|
20
|
+
export declare function deriveArtifactStem(field: string, index: string, name: string): string | null;
|
|
21
|
+
export declare function resolveArtifactPath(field: string, stem: string): string | null;
|
|
11
22
|
//# sourceMappingURL=resolveFileByIndex.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveFileByIndex.d.ts","sourceRoot":"","sources":["../../src/schema/resolveFileByIndex.ts"],"names":[],"mappings":"AAcA;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,MAAM,GAAG,IAAI,CAuCf"}
|
|
1
|
+
{"version":3,"file":"resolveFileByIndex.d.ts","sourceRoot":"","sources":["../../src/schema/resolveFileByIndex.ts"],"names":[],"mappings":"AAcA;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,MAAM,GAAG,IAAI,CAuCf;AAmBD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK5F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI9E"}
|
|
@@ -50,4 +50,42 @@ export function resolveFileByIndex(projectPath, field, index) {
|
|
|
50
50
|
// Return stem without .md extension
|
|
51
51
|
return matches[0].replace(/\.md$/, '');
|
|
52
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Resolve an artifact stem (e.g. "160-slices.project-workflow-system") to its
|
|
55
|
+
* full relative path within the project (e.g. "project-documents/user/architecture/160-slices.project-workflow-system.md").
|
|
56
|
+
*
|
|
57
|
+
* @returns The relative path including directory and .md extension, or null if the field is unknown.
|
|
58
|
+
*/
|
|
59
|
+
/**
|
|
60
|
+
* Slugify a human-readable name for use in artifact filenames.
|
|
61
|
+
* "Consistency Checker" → "consistency-checker"
|
|
62
|
+
*/
|
|
63
|
+
function slugify(name) {
|
|
64
|
+
return name
|
|
65
|
+
.toLowerCase()
|
|
66
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
67
|
+
.replace(/^-|-$/g, '');
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Derive an artifact stem from a numeric index and a human-readable name.
|
|
71
|
+
* Uses the field's first prefix from ARTIFACT_DIR_MAP.
|
|
72
|
+
*
|
|
73
|
+
* Example: deriveArtifactStem('fileSlice', '166', 'Consistency Checker')
|
|
74
|
+
* → "166-slice.consistency-checker"
|
|
75
|
+
*
|
|
76
|
+
* @returns The derived stem, or null if the field is unknown.
|
|
77
|
+
*/
|
|
78
|
+
export function deriveArtifactStem(field, index, name) {
|
|
79
|
+
const mapping = ARTIFACT_DIR_MAP[field];
|
|
80
|
+
if (!mapping)
|
|
81
|
+
return null;
|
|
82
|
+
const prefix = mapping.prefixes[0];
|
|
83
|
+
return `${index}-${prefix}${slugify(name)}`;
|
|
84
|
+
}
|
|
85
|
+
export function resolveArtifactPath(field, stem) {
|
|
86
|
+
const mapping = ARTIFACT_DIR_MAP[field];
|
|
87
|
+
if (!mapping)
|
|
88
|
+
return null;
|
|
89
|
+
return join(mapping.dir, `${stem}.md`);
|
|
90
|
+
}
|
|
53
91
|
//# sourceMappingURL=resolveFileByIndex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveFileByIndex.js","sourceRoot":"","sources":["../../src/schema/resolveFileByIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,4EAA4E;AAC5E,MAAM,gBAAgB,GAAwD;IAC5E,SAAS,EAAE,EAAE,GAAG,EAAE,+BAA+B,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE;IACzE,SAAS,EAAE,EAAE,GAAG,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE;IACxE,QAAQ,EAAE,EAAE,GAAG,EAAE,qCAAqC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;IAC7E,aAAa,EAAE,EAAE,GAAG,EAAE,qCAAqC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE;IACpF,OAAO,EAAE,EAAE,GAAG,EAAE,qCAAqC,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE;IACxF,QAAQ,EAAE,EAAE,GAAG,EAAE,qCAAqC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;CAC9E,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAmB,EACnB,KAAa,EACb,KAAa;IAEb,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,sDAAsD;IACtD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC/D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAE7D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAE/C,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,0BAA0B,OAAO,CAAC,GAAG,8BAA8B,OAAO,EAAE,CAC7E,CAAC;IACJ,CAAC;IAED,wCAAwC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACjC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACrC,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,2BAA2B,KAAK,gBAAgB,KAAK,QAAQ,OAAO,CAAC,GAAG,GAAG,CAC5E,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,+BAA+B,KAAK,gBAAgB,KAAK,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpF,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC"}
|
|
1
|
+
{"version":3,"file":"resolveFileByIndex.js","sourceRoot":"","sources":["../../src/schema/resolveFileByIndex.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED