@context-forge/core 0.1.1 → 0.3.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/README.md +12 -1
- package/dist/config/ConfigKeys.d.ts +9 -0
- package/dist/config/ConfigKeys.d.ts.map +1 -0
- package/dist/config/ConfigKeys.js +24 -0
- package/dist/config/ConfigKeys.js.map +1 -0
- package/dist/config/ConfigManager.d.ts +18 -0
- package/dist/config/ConfigManager.d.ts.map +1 -0
- package/dist/config/ConfigManager.js +129 -0
- package/dist/config/ConfigManager.js.map +1 -0
- package/dist/config/configPaths.d.ts +5 -0
- package/dist/config/configPaths.d.ts.map +1 -0
- package/dist/config/configPaths.js +11 -0
- package/dist/config/configPaths.js.map +1 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +4 -0
- package/dist/config/index.js.map +1 -0
- package/dist/guides/GuideDetector.d.ts +20 -0
- package/dist/guides/GuideDetector.d.ts.map +1 -0
- package/dist/guides/GuideDetector.js +142 -0
- package/dist/guides/GuideDetector.js.map +1 -0
- package/dist/guides/GuideManager.d.ts +21 -0
- package/dist/guides/GuideManager.d.ts.map +1 -0
- package/dist/guides/GuideManager.js +88 -0
- package/dist/guides/GuideManager.js.map +1 -0
- package/dist/guides/gitExec.d.ts +15 -0
- package/dist/guides/gitExec.d.ts.map +1 -0
- package/dist/guides/gitExec.js +39 -0
- package/dist/guides/gitExec.js.map +1 -0
- package/dist/guides/index.d.ts +4 -0
- package/dist/guides/index.d.ts.map +1 -0
- package/dist/guides/index.js +5 -0
- package/dist/guides/index.js.map +1 -0
- package/dist/guides/strategies/CloneStrategy.d.ts +7 -0
- package/dist/guides/strategies/CloneStrategy.d.ts.map +1 -0
- package/dist/guides/strategies/CloneStrategy.js +80 -0
- package/dist/guides/strategies/CloneStrategy.js.map +1 -0
- package/dist/guides/strategies/SubmoduleStrategy.d.ts +7 -0
- package/dist/guides/strategies/SubmoduleStrategy.d.ts.map +1 -0
- package/dist/guides/strategies/SubmoduleStrategy.js +74 -0
- package/dist/guides/strategies/SubmoduleStrategy.js.map +1 -0
- package/dist/guides/strategies/TarballStrategy.d.ts +19 -0
- package/dist/guides/strategies/TarballStrategy.d.ts.map +1 -0
- package/dist/guides/strategies/TarballStrategy.js +118 -0
- package/dist/guides/strategies/TarballStrategy.js.map +1 -0
- package/dist/guides/types.d.ts +44 -0
- package/dist/guides/types.d.ts.map +1 -0
- package/dist/guides/types.js +7 -0
- package/dist/guides/types.js.map +1 -0
- package/dist/index.d.ts +3 -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/ArtifactIntrospector.d.ts +20 -0
- package/dist/introspection/ArtifactIntrospector.d.ts.map +1 -0
- package/dist/introspection/ArtifactIntrospector.js +140 -0
- package/dist/introspection/ArtifactIntrospector.js.map +1 -0
- package/dist/introspection/FutureWorkCollector.d.ts +7 -0
- package/dist/introspection/FutureWorkCollector.d.ts.map +1 -0
- package/dist/introspection/FutureWorkCollector.js +116 -0
- package/dist/introspection/FutureWorkCollector.js.map +1 -0
- package/dist/introspection/ProjectModelBuilder.d.ts +32 -0
- package/dist/introspection/ProjectModelBuilder.d.ts.map +1 -0
- package/dist/introspection/ProjectModelBuilder.js +321 -0
- package/dist/introspection/ProjectModelBuilder.js.map +1 -0
- package/dist/introspection/index.d.ts +4 -0
- package/dist/introspection/index.d.ts.map +1 -0
- package/dist/introspection/index.js +5 -0
- package/dist/introspection/index.js.map +1 -0
- package/dist/introspection/interfaces.d.ts +18 -0
- package/dist/introspection/interfaces.d.ts.map +1 -0
- package/dist/introspection/interfaces.js +2 -0
- package/dist/introspection/interfaces.js.map +1 -0
- package/dist/introspection/parsers/documentDetector.d.ts +12 -0
- package/dist/introspection/parsers/documentDetector.d.ts.map +1 -0
- package/dist/introspection/parsers/documentDetector.js +66 -0
- package/dist/introspection/parsers/documentDetector.js.map +1 -0
- package/dist/introspection/parsers/frontmatterParser.d.ts +8 -0
- package/dist/introspection/parsers/frontmatterParser.d.ts.map +1 -0
- package/dist/introspection/parsers/frontmatterParser.js +43 -0
- package/dist/introspection/parsers/frontmatterParser.js.map +1 -0
- package/dist/introspection/parsers/futureWorkParser.d.ts +8 -0
- package/dist/introspection/parsers/futureWorkParser.d.ts.map +1 -0
- package/dist/introspection/parsers/futureWorkParser.js +75 -0
- package/dist/introspection/parsers/futureWorkParser.js.map +1 -0
- package/dist/introspection/parsers/slicePlanParser.d.ts +8 -0
- package/dist/introspection/parsers/slicePlanParser.d.ts.map +1 -0
- package/dist/introspection/parsers/slicePlanParser.js +51 -0
- package/dist/introspection/parsers/slicePlanParser.js.map +1 -0
- package/dist/introspection/parsers/statusNormalizer.d.ts +4 -0
- package/dist/introspection/parsers/statusNormalizer.d.ts.map +1 -0
- package/dist/introspection/parsers/statusNormalizer.js +23 -0
- package/dist/introspection/parsers/statusNormalizer.js.map +1 -0
- package/dist/introspection/parsers/taskFileParser.d.ts +13 -0
- package/dist/introspection/parsers/taskFileParser.d.ts.map +1 -0
- package/dist/introspection/parsers/taskFileParser.js +66 -0
- package/dist/introspection/parsers/taskFileParser.js.map +1 -0
- package/dist/introspection/types.d.ts +178 -0
- package/dist/introspection/types.d.ts.map +1 -0
- package/dist/introspection/types.js +2 -0
- package/dist/introspection/types.js.map +1 -0
- package/dist/node.d.ts +11 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +15 -0
- package/dist/node.js.map +1 -1
- package/dist/schema/projectSchema.d.ts +54 -0
- package/dist/schema/projectSchema.d.ts.map +1 -0
- package/dist/schema/projectSchema.js +131 -0
- package/dist/schema/projectSchema.js.map +1 -0
- package/dist/schema/resolveFileByIndex.d.ts +11 -0
- package/dist/schema/resolveFileByIndex.d.ts.map +1 -0
- package/dist/schema/resolveFileByIndex.js +53 -0
- package/dist/schema/resolveFileByIndex.js.map +1 -0
- package/dist/services/ContextGenerator.d.ts.map +1 -1
- package/dist/services/ContextGenerator.js +3 -5
- package/dist/services/ContextGenerator.js.map +1 -1
- package/dist/services/ContextIntegrator.d.ts.map +1 -1
- package/dist/services/ContextIntegrator.js +10 -14
- package/dist/services/ContextIntegrator.js.map +1 -1
- package/dist/services/ContextTemplateEngine.d.ts.map +1 -1
- package/dist/services/ContextTemplateEngine.js +8 -21
- package/dist/services/ContextTemplateEngine.js.map +1 -1
- package/dist/services/CoreServiceFactory.d.ts +3 -0
- package/dist/services/CoreServiceFactory.d.ts.map +1 -1
- package/dist/services/CoreServiceFactory.js +19 -1
- package/dist/services/CoreServiceFactory.js.map +1 -1
- package/dist/services/ProjectPathService.d.ts +1 -1
- package/dist/services/ProjectPathService.d.ts.map +1 -1
- package/dist/services/ProjectPathService.js +2 -4
- package/dist/services/ProjectPathService.js.map +1 -1
- package/dist/services/SectionBuilder.d.ts +0 -4
- package/dist/services/SectionBuilder.d.ts.map +1 -1
- package/dist/services/SectionBuilder.js +8 -35
- package/dist/services/SectionBuilder.js.map +1 -1
- package/dist/services/SystemPromptParser.d.ts +1 -2
- package/dist/services/SystemPromptParser.d.ts.map +1 -1
- package/dist/services/SystemPromptParser.js +3 -14
- package/dist/services/SystemPromptParser.js.map +1 -1
- package/dist/services/TemplateProcessor.d.ts.map +1 -1
- package/dist/services/TemplateProcessor.js +12 -11
- package/dist/services/TemplateProcessor.js.map +1 -1
- package/dist/services/constants.d.ts.map +1 -1
- package/dist/services/constants.js +0 -6
- package/dist/services/constants.js.map +1 -1
- package/dist/services/interfaces.d.ts +1 -1
- package/dist/services/interfaces.d.ts.map +1 -1
- package/dist/storage/FileProjectStore.d.ts.map +1 -1
- package/dist/storage/FileProjectStore.js +25 -8
- package/dist/storage/FileProjectStore.js.map +1 -1
- package/dist/types/context.d.ts +4 -6
- package/dist/types/context.d.ts.map +1 -1
- package/dist/types/project.d.ts +15 -11
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/sections.d.ts +0 -1
- package/dist/types/sections.d.ts.map +1 -1
- package/dist/types/sections.js +0 -1
- package/dist/types/sections.js.map +1 -1
- package/package.json +5 -2
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"}
|
|
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;AAGpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,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
|
@@ -7,4 +7,19 @@ export { ProjectPathService } from './services/ProjectPathService.js';
|
|
|
7
7
|
export { createContextPipeline } from './services/CoreServiceFactory.js';
|
|
8
8
|
// Storage — filesystem-backed project CRUD, backup, and storage utilities
|
|
9
9
|
export * from './storage/index.js';
|
|
10
|
+
// Config — two-tier TOML configuration (user + project level)
|
|
11
|
+
export * from './config/index.js';
|
|
12
|
+
// Guides — guide lifecycle management (git/fs dependent)
|
|
13
|
+
export * from './guides/index.js';
|
|
14
|
+
// Schema — fs-dependent helpers (index-based file resolution)
|
|
15
|
+
export { resolveFileByIndex } from './schema/resolveFileByIndex.js';
|
|
16
|
+
// Introspection — artifact parsing and document detection (fs dependent)
|
|
17
|
+
export { ArtifactIntrospector } from './introspection/ArtifactIntrospector.js';
|
|
18
|
+
export { parseFrontmatter } from './introspection/parsers/frontmatterParser.js';
|
|
19
|
+
export { parseSlicePlan } from './introspection/parsers/slicePlanParser.js';
|
|
20
|
+
export { parseTaskItems, parseTaskFile } from './introspection/parsers/taskFileParser.js';
|
|
21
|
+
export { parseFutureWork } from './introspection/parsers/futureWorkParser.js';
|
|
22
|
+
export { detectDocuments, checkFileExists } from './introspection/parsers/documentDetector.js';
|
|
23
|
+
export { buildModel, scanDirectory } from './introspection/ProjectModelBuilder.js';
|
|
24
|
+
export { FutureWorkCollector } from './introspection/FutureWorkCollector.js';
|
|
10
25
|
//# 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"}
|
|
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;AAEpE,yEAAyE;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project schema definition — single source of truth for field metadata,
|
|
3
|
+
* aliases, phase maps, and enum definitions.
|
|
4
|
+
*/
|
|
5
|
+
export type FieldGroup = 'identity' | 'artifacts' | 'workflow' | 'metadata' | 'custom';
|
|
6
|
+
export interface FieldDefinition {
|
|
7
|
+
field: string;
|
|
8
|
+
type: string;
|
|
9
|
+
required: boolean;
|
|
10
|
+
readonly: boolean;
|
|
11
|
+
group: FieldGroup;
|
|
12
|
+
description: string;
|
|
13
|
+
aliases: string[];
|
|
14
|
+
label: string;
|
|
15
|
+
enumValues?: string[];
|
|
16
|
+
}
|
|
17
|
+
/** Maps phase numbers and short names to full phase strings. */
|
|
18
|
+
export declare const PHASE_MAP: Record<string, string>;
|
|
19
|
+
/** All field definitions for ProjectData. */
|
|
20
|
+
export declare const PROJECT_FIELDS: FieldDefinition[];
|
|
21
|
+
/** Maps aliases to canonical field names, derived from PROJECT_FIELDS. */
|
|
22
|
+
export declare const FIELD_ALIASES: Record<string, string>;
|
|
23
|
+
/**
|
|
24
|
+
* Resolve a user-provided field name to its canonical ProjectData field name.
|
|
25
|
+
* Supports aliases and case-insensitive matching.
|
|
26
|
+
* Returns undefined if the input doesn't match any known field.
|
|
27
|
+
*/
|
|
28
|
+
export declare function resolveFieldName(input: string): string | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Resolve a user-provided phase value to the full phase string.
|
|
31
|
+
* Accepts phase numbers (1-7), short names, or full strings.
|
|
32
|
+
* Case-insensitive. Returns undefined if no match.
|
|
33
|
+
*/
|
|
34
|
+
export declare function resolvePhaseValue(input: string): string | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Validate a value against a field's enum constraints.
|
|
37
|
+
* Returns { valid: true } for non-enum fields or valid values.
|
|
38
|
+
* Returns { valid: false, error: '...' } for invalid enum values.
|
|
39
|
+
*/
|
|
40
|
+
export declare function validateFieldValue(field: string, value: string): {
|
|
41
|
+
valid: boolean;
|
|
42
|
+
error?: string;
|
|
43
|
+
};
|
|
44
|
+
/** Field group display order. */
|
|
45
|
+
export declare const FIELD_GROUPS: FieldGroup[];
|
|
46
|
+
/**
|
|
47
|
+
* Returns the full schema structure for external consumption (MCP, CLI --schema).
|
|
48
|
+
*/
|
|
49
|
+
export declare function getSchema(): {
|
|
50
|
+
fields: FieldDefinition[];
|
|
51
|
+
aliases: Record<string, string>;
|
|
52
|
+
groups: FieldGroup[];
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=projectSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectSchema.d.ts","sourceRoot":"","sources":["../../src/schema/projectSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEvF,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAiBD,gEAAgE;AAChE,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAoB5C,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,cAAc,EAAE,eAAe,EA6B3C,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIhD,CAAC;AAqBF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAElE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAcpC;AAED,iCAAiC;AACjC,eAAO,MAAM,YAAY,EAAE,UAAU,EAAgE,CAAC;AAEtG;;GAEG;AACH,wBAAgB,SAAS,IAAI;IAC3B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB,CAMA"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project schema definition — single source of truth for field metadata,
|
|
3
|
+
* aliases, phase maps, and enum definitions.
|
|
4
|
+
*/
|
|
5
|
+
// Phase display strings
|
|
6
|
+
const PHASE_STRINGS = [
|
|
7
|
+
'Phase 1: Concept',
|
|
8
|
+
'Phase 2: Architecture',
|
|
9
|
+
'Phase 3: Slice Planning',
|
|
10
|
+
'Phase 4: Slice Design',
|
|
11
|
+
'Phase 5: Task Breakdown',
|
|
12
|
+
'Phase 6: Implementation',
|
|
13
|
+
'Phase 7: Integration',
|
|
14
|
+
];
|
|
15
|
+
const SPECIAL_PHASES = ['Ad-Hoc Tasks', 'Custom Instruction'];
|
|
16
|
+
const ALL_PHASE_VALUES = [...PHASE_STRINGS, ...SPECIAL_PHASES];
|
|
17
|
+
/** Maps phase numbers and short names to full phase strings. */
|
|
18
|
+
export const PHASE_MAP = {
|
|
19
|
+
// Number shortcuts
|
|
20
|
+
'1': 'Phase 1: Concept',
|
|
21
|
+
'2': 'Phase 2: Architecture',
|
|
22
|
+
'3': 'Phase 3: Slice Planning',
|
|
23
|
+
'4': 'Phase 4: Slice Design',
|
|
24
|
+
'5': 'Phase 5: Task Breakdown',
|
|
25
|
+
'6': 'Phase 6: Implementation',
|
|
26
|
+
'7': 'Phase 7: Integration',
|
|
27
|
+
// Short name shortcuts
|
|
28
|
+
'concept': 'Phase 1: Concept',
|
|
29
|
+
'architecture': 'Phase 2: Architecture',
|
|
30
|
+
'slice-planning': 'Phase 3: Slice Planning',
|
|
31
|
+
'slice-design': 'Phase 4: Slice Design',
|
|
32
|
+
'task-breakdown': 'Phase 5: Task Breakdown',
|
|
33
|
+
'implementation': 'Phase 6: Implementation',
|
|
34
|
+
'integration': 'Phase 7: Integration',
|
|
35
|
+
// Special phases
|
|
36
|
+
'ad-hoc-tasks': 'Ad-Hoc Tasks',
|
|
37
|
+
'custom-instruction': 'Custom Instruction',
|
|
38
|
+
};
|
|
39
|
+
/** All field definitions for ProjectData. */
|
|
40
|
+
export const PROJECT_FIELDS = [
|
|
41
|
+
// Identity
|
|
42
|
+
{ field: 'name', type: 'string', required: true, readonly: false, group: 'identity', description: 'Project display name', aliases: [], label: 'Name' },
|
|
43
|
+
{ field: 'id', type: 'string', required: false, readonly: true, group: 'identity', description: 'Auto-generated project identifier', aliases: [], label: 'ID' },
|
|
44
|
+
{ field: 'projectPath', type: 'string', required: true, readonly: false, group: 'identity', description: 'Absolute path to project directory', aliases: ['path'], label: 'Path' },
|
|
45
|
+
{ field: 'template', type: 'string', required: false, readonly: false, group: 'identity', description: 'Context template name', aliases: [], label: 'Template' },
|
|
46
|
+
// Artifacts
|
|
47
|
+
{ field: 'fileArch', type: 'string', required: false, readonly: false, group: 'artifacts', description: 'Architecture document path (relative)', aliases: ['arch'], label: 'Architecture' },
|
|
48
|
+
{ field: 'fileSlicePlan', type: 'string', required: false, readonly: false, group: 'artifacts', description: 'Slice plan document path (relative)', aliases: ['plan'], label: 'Slice Plan' },
|
|
49
|
+
{ field: 'fileHLD', type: 'string', required: false, readonly: false, group: 'artifacts', description: 'High-level design document path', aliases: ['hld'], label: 'HLD' },
|
|
50
|
+
{ field: 'fileSpec', type: 'string', required: false, readonly: false, group: 'artifacts', description: 'Project specification path', aliases: ['spec'], label: 'Spec' },
|
|
51
|
+
{ field: 'fileSlice', type: 'string', required: false, readonly: false, group: 'artifacts', description: 'Current slice design path (relative)', aliases: ['slice'], label: 'Slice' },
|
|
52
|
+
{ field: 'fileTasks', type: 'string', required: false, readonly: false, group: 'artifacts', description: 'Current tasks file path (relative)', aliases: ['tasks'], label: 'Tasks' },
|
|
53
|
+
// Workflow
|
|
54
|
+
{ field: 'developmentPhase', type: 'string', required: false, readonly: false, group: 'workflow', description: 'Current methodology phase', aliases: ['phase'], label: 'Phase', enumValues: ALL_PHASE_VALUES },
|
|
55
|
+
{ field: 'instruction', type: 'string', required: false, readonly: false, group: 'workflow', description: 'Active instruction/phase for context', aliases: [], label: 'Instruction', enumValues: ALL_PHASE_VALUES },
|
|
56
|
+
{ field: 'workType', type: 'string', required: false, readonly: false, group: 'workflow', description: 'Whether starting or continuing work', aliases: [], label: 'Work Type', enumValues: ['start', 'continue'] },
|
|
57
|
+
{ field: 'dateProject', type: 'string', required: false, readonly: false, group: 'workflow', description: 'Project date for context', aliases: ['date'], label: 'Date' },
|
|
58
|
+
// Metadata
|
|
59
|
+
{ field: 'createdAt', type: 'string', required: false, readonly: true, group: 'metadata', description: 'Timestamp of project creation', aliases: [], label: 'Created' },
|
|
60
|
+
{ field: 'updatedAt', type: 'string', required: false, readonly: true, group: 'metadata', description: 'Timestamp of last update', aliases: [], label: 'Updated' },
|
|
61
|
+
// Custom
|
|
62
|
+
{ field: 'customData.recentEvents', type: 'string', required: false, readonly: false, group: 'custom', description: 'State summary and recent events', aliases: ['events'], label: 'Recent Events' },
|
|
63
|
+
{ field: 'customData.additionalNotes', type: 'string', required: false, readonly: false, group: 'custom', description: 'Phase instructions and notes', aliases: ['notes'], label: 'Notes' },
|
|
64
|
+
{ field: 'customData.availableTools', type: 'string', required: false, readonly: false, group: 'custom', description: 'Available tools for context', aliases: ['tools'], label: 'Tools' },
|
|
65
|
+
];
|
|
66
|
+
/** Maps aliases to canonical field names, derived from PROJECT_FIELDS. */
|
|
67
|
+
export const FIELD_ALIASES = Object.fromEntries(PROJECT_FIELDS.flatMap((f) => f.aliases.map((alias) => [alias, f.field])));
|
|
68
|
+
// Build a lowercase lookup map for canonical fields and aliases
|
|
69
|
+
const fieldLookup = {};
|
|
70
|
+
for (const f of PROJECT_FIELDS) {
|
|
71
|
+
fieldLookup[f.field.toLowerCase()] = f.field;
|
|
72
|
+
for (const alias of f.aliases) {
|
|
73
|
+
fieldLookup[alias.toLowerCase()] = f.field;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Build a lowercase lookup map for phase values
|
|
77
|
+
const phaseLookup = {};
|
|
78
|
+
for (const [key, val] of Object.entries(PHASE_MAP)) {
|
|
79
|
+
phaseLookup[key.toLowerCase()] = val;
|
|
80
|
+
}
|
|
81
|
+
// Also add full phase strings for passthrough
|
|
82
|
+
for (const phase of ALL_PHASE_VALUES) {
|
|
83
|
+
phaseLookup[phase.toLowerCase()] = phase;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Resolve a user-provided field name to its canonical ProjectData field name.
|
|
87
|
+
* Supports aliases and case-insensitive matching.
|
|
88
|
+
* Returns undefined if the input doesn't match any known field.
|
|
89
|
+
*/
|
|
90
|
+
export function resolveFieldName(input) {
|
|
91
|
+
return fieldLookup[input.toLowerCase()];
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Resolve a user-provided phase value to the full phase string.
|
|
95
|
+
* Accepts phase numbers (1-7), short names, or full strings.
|
|
96
|
+
* Case-insensitive. Returns undefined if no match.
|
|
97
|
+
*/
|
|
98
|
+
export function resolvePhaseValue(input) {
|
|
99
|
+
return phaseLookup[input.toLowerCase()];
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Validate a value against a field's enum constraints.
|
|
103
|
+
* Returns { valid: true } for non-enum fields or valid values.
|
|
104
|
+
* Returns { valid: false, error: '...' } for invalid enum values.
|
|
105
|
+
*/
|
|
106
|
+
export function validateFieldValue(field, value) {
|
|
107
|
+
const def = PROJECT_FIELDS.find((f) => f.field === field);
|
|
108
|
+
if (!def?.enumValues) {
|
|
109
|
+
return { valid: true };
|
|
110
|
+
}
|
|
111
|
+
if (def.enumValues.includes(value)) {
|
|
112
|
+
return { valid: true };
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
valid: false,
|
|
116
|
+
error: `Invalid value "${value}" for field "${field}". Allowed values: ${def.enumValues.join(', ')}`,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/** Field group display order. */
|
|
120
|
+
export const FIELD_GROUPS = ['identity', 'artifacts', 'workflow', 'metadata', 'custom'];
|
|
121
|
+
/**
|
|
122
|
+
* Returns the full schema structure for external consumption (MCP, CLI --schema).
|
|
123
|
+
*/
|
|
124
|
+
export function getSchema() {
|
|
125
|
+
return {
|
|
126
|
+
fields: PROJECT_FIELDS,
|
|
127
|
+
aliases: FIELD_ALIASES,
|
|
128
|
+
groups: FIELD_GROUPS,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=projectSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectSchema.js","sourceRoot":"","sources":["../../src/schema/projectSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve a bare numeric index to a filename stem for an artifact field.
|
|
3
|
+
*
|
|
4
|
+
* Scans the appropriate project-documents directory for files matching
|
|
5
|
+
* `{index}-{doctype}.*.md` and returns the filename without `.md`.
|
|
6
|
+
*
|
|
7
|
+
* @returns The resolved filename stem, or null if the field is not an artifact field.
|
|
8
|
+
* @throws If no matching file is found or multiple matches exist.
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveFileByIndex(projectPath: string, field: string, index: string): string | null;
|
|
11
|
+
//# sourceMappingURL=resolveFileByIndex.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { readdirSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { PROJECT_FIELDS } from './projectSchema.js';
|
|
4
|
+
/** Maps artifact field names to their directory and file prefix pattern. */
|
|
5
|
+
const ARTIFACT_DIR_MAP = {
|
|
6
|
+
fileSlice: { dir: 'project-documents/user/slices', prefixes: ['slice.'] },
|
|
7
|
+
fileTasks: { dir: 'project-documents/user/tasks', prefixes: ['tasks.'] },
|
|
8
|
+
fileArch: { dir: 'project-documents/user/architecture', prefixes: ['arch.'] },
|
|
9
|
+
fileSlicePlan: { dir: 'project-documents/user/architecture', prefixes: ['slices.'] },
|
|
10
|
+
fileHLD: { dir: 'project-documents/user/architecture', prefixes: ['hld.', 'arch.hld-'] },
|
|
11
|
+
fileSpec: { dir: 'project-documents/user/architecture', prefixes: ['spec.'] },
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Resolve a bare numeric index to a filename stem for an artifact field.
|
|
15
|
+
*
|
|
16
|
+
* Scans the appropriate project-documents directory for files matching
|
|
17
|
+
* `{index}-{doctype}.*.md` and returns the filename without `.md`.
|
|
18
|
+
*
|
|
19
|
+
* @returns The resolved filename stem, or null if the field is not an artifact field.
|
|
20
|
+
* @throws If no matching file is found or multiple matches exist.
|
|
21
|
+
*/
|
|
22
|
+
export function resolveFileByIndex(projectPath, field, index) {
|
|
23
|
+
const mapping = ARTIFACT_DIR_MAP[field];
|
|
24
|
+
if (!mapping)
|
|
25
|
+
return null;
|
|
26
|
+
// Verify the field is actually in the artifacts group
|
|
27
|
+
const fieldDef = PROJECT_FIELDS.find((f) => f.field === field);
|
|
28
|
+
if (!fieldDef || fieldDef.group !== 'artifacts')
|
|
29
|
+
return null;
|
|
30
|
+
const dirPath = join(projectPath, mapping.dir);
|
|
31
|
+
let files;
|
|
32
|
+
try {
|
|
33
|
+
files = readdirSync(dirPath);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
throw new Error(`Cannot scan directory '${mapping.dir}' — directory not found at ${dirPath}`);
|
|
37
|
+
}
|
|
38
|
+
// Match files like {index}-{prefix}*.md
|
|
39
|
+
const matches = files.filter((f) => {
|
|
40
|
+
if (!f.endsWith('.md'))
|
|
41
|
+
return false;
|
|
42
|
+
return mapping.prefixes.some((prefix) => f.startsWith(`${index}-${prefix}`));
|
|
43
|
+
});
|
|
44
|
+
if (matches.length === 0) {
|
|
45
|
+
throw new Error(`No file matching index '${index}' for field '${field}' in ${mapping.dir}/`);
|
|
46
|
+
}
|
|
47
|
+
if (matches.length > 1) {
|
|
48
|
+
throw new Error(`Multiple files match index '${index}' for field '${field}': ${matches.join(', ')}`);
|
|
49
|
+
}
|
|
50
|
+
// Return stem without .md extension
|
|
51
|
+
return matches[0].replace(/\.md$/, '');
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=resolveFileByIndex.js.map
|
|
@@ -0,0 +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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextGenerator.d.ts","sourceRoot":"","sources":["../../src/services/ContextGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD;;GAEG;AACH,qBAAa,gBAAgB;IAE3B;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"ContextGenerator.d.ts","sourceRoot":"","sources":["../../src/services/ContextGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD;;GAEG;AACH,qBAAa,gBAAgB;IAE3B;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM;IAmBvE;;OAEG;IACH,OAAO,CAAC,eAAe;IAsBvB;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,EAAE;CAiBhD"}
|
|
@@ -11,9 +11,8 @@ export class ContextGenerator {
|
|
|
11
11
|
let context = template
|
|
12
12
|
.replace('{{PROJECT_NAME}}', project.name)
|
|
13
13
|
.replace('{{TEMPLATE}}', project.template)
|
|
14
|
-
.replace('{{SLICE}}', project.
|
|
15
|
-
.replace('{{TASK_FILE}}', project.
|
|
16
|
-
.replace('{{MONOREPO_STATUS}}', project.isMonorepo ? 'Monorepo project' : 'Single project')
|
|
14
|
+
.replace('{{SLICE}}', project.fileSlice)
|
|
15
|
+
.replace('{{TASK_FILE}}', project.fileTasks || '')
|
|
17
16
|
.replace('{{TIMESTAMP}}', new Date().toLocaleString());
|
|
18
17
|
// Add additional notes if provided
|
|
19
18
|
if (additionalNotes && additionalNotes.trim()) {
|
|
@@ -32,7 +31,6 @@ export class ContextGenerator {
|
|
|
32
31
|
- **Template:** {{TEMPLATE}}
|
|
33
32
|
- **Current Slice:** {{SLICE}}
|
|
34
33
|
- **Tasks File:** {{TASK_FILE}}
|
|
35
|
-
- **Type:** {{MONOREPO_STATUS}}
|
|
36
34
|
- **Generated:** {{TIMESTAMP}}
|
|
37
35
|
|
|
38
36
|
## Working Context
|
|
@@ -57,7 +55,7 @@ Please help me continue development on this slice, following the project guideli
|
|
|
57
55
|
if (!project.template || project.template.trim().length === 0) {
|
|
58
56
|
errors.push('Template is required');
|
|
59
57
|
}
|
|
60
|
-
if (!project.
|
|
58
|
+
if (!project.fileSlice || project.fileSlice.trim().length === 0) {
|
|
61
59
|
errors.push('Slice is required');
|
|
62
60
|
}
|
|
63
61
|
return errors;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextGenerator.js","sourceRoot":"","sources":["../../src/services/ContextGenerator.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAE3B;;OAEG;IACH,eAAe,CAAC,OAAoB,EAAE,eAAwB;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAExC,+BAA+B;QAC/B,IAAI,OAAO,GAAG,QAAQ;aACnB,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC;aACzC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC;aACzC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"ContextGenerator.js","sourceRoot":"","sources":["../../src/services/ContextGenerator.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAE3B;;OAEG;IACH,eAAe,CAAC,OAAoB,EAAE,eAAwB;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAExC,+BAA+B;QAC/B,IAAI,OAAO,GAAG,QAAQ;aACnB,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC;aACzC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC;aACzC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC;aACvC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;aACjD,OAAO,CAAC,eAAe,EAAE,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;QAEzD,mCAAmC;QACnC,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9C,OAAO,IAAI,+BAA+B,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC;QACtE,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,OAAO;;;;;;;;;;;;;;;;;;4HAkBiH,CAAC;IAC3H,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,OAAoB;QAClC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextIntegrator.d.ts","sourceRoot":"","sources":["../../src/services/ContextIntegrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"ContextIntegrator.d.ts","sourceRoot":"","sources":["../../src/services/ContextIntegrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAqBnE;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,eAAe,CAAU;gBAErB,MAAM,EAAE,qBAAqB,EAAE,eAAe,GAAE,OAAc;IAM1E;;;;;OAKG;IACG,0BAA0B,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAavE;;OAEG;YACW,0BAA0B;IAiBxC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAWhC;;;;;OAKG;YACW,2BAA2B;IAuBzC;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAapB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAcvB;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAYjE;;;OAGG;YACW,oBAAoB;IAKlC;;;OAGG;YACW,gBAAgB;IAK9B;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAI7B;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI3C;;;OAGG;IACH,kBAAkB,IAAI,MAAM;CAG7B"}
|
|
@@ -6,9 +6,8 @@ import { PROMPT_FILE_RELATIVE_PATH, STATEMENTS_FILE_RELATIVE_PATH } from './cons
|
|
|
6
6
|
*/
|
|
7
7
|
const DEFAULT_TEMPLATE = `# Project: {{projectName}}
|
|
8
8
|
Template: {{template}}
|
|
9
|
-
Slice: {{
|
|
9
|
+
Slice: {{fileSlice}}
|
|
10
10
|
Instruction: {{instruction}}
|
|
11
|
-
{{#if isMonorepo}}Monorepo: Yes{{else}}Monorepo: No{{/if}}
|
|
12
11
|
|
|
13
12
|
## Recent Events
|
|
14
13
|
{{recentEvents}}
|
|
@@ -17,7 +16,7 @@ Instruction: {{instruction}}
|
|
|
17
16
|
{{additionalNotes}}
|
|
18
17
|
|
|
19
18
|
## Current Status
|
|
20
|
-
Ready for {{instruction}} work on {{
|
|
19
|
+
Ready for {{instruction}} work on {{fileSlice}} slice.`;
|
|
21
20
|
/**
|
|
22
21
|
* Service for integrating project data with context generation
|
|
23
22
|
* Transforms ProjectData into formatted context strings
|
|
@@ -89,13 +88,12 @@ export class ContextIntegrator {
|
|
|
89
88
|
return {
|
|
90
89
|
projectName: project.name || 'Unknown Project',
|
|
91
90
|
template: project.template || '',
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
fileSlice: project.fileSlice || 'Unknown Slice',
|
|
92
|
+
fileTasks: project.fileTasks || '',
|
|
94
93
|
instruction: project.instruction || 'implementation',
|
|
95
94
|
developmentPhase: project.developmentPhase || 'WARNING: MISSING DEVELOPMENT PHASE',
|
|
96
95
|
workType: project.workType || 'continue',
|
|
97
|
-
|
|
98
|
-
isMonorepo: project.isMonorepo || false,
|
|
96
|
+
dateProject: project.dateProject || new Date().toISOString().split('T')[0],
|
|
99
97
|
recentEvents: project.customData?.recentEvents || '',
|
|
100
98
|
additionalNotes: project.customData?.additionalNotes || '',
|
|
101
99
|
availableTools,
|
|
@@ -114,13 +112,12 @@ export class ContextIntegrator {
|
|
|
114
112
|
return {
|
|
115
113
|
projectName: project.name || 'Unknown Project',
|
|
116
114
|
template: project.template || 'Unknown Template',
|
|
117
|
-
|
|
118
|
-
|
|
115
|
+
fileSlice: project.fileSlice || 'Unknown Slice',
|
|
116
|
+
fileTasks: project.fileTasks || '',
|
|
119
117
|
instruction: project.instruction || 'implementation',
|
|
120
118
|
developmentPhase: project.developmentPhase || 'WARNING: MISSING DEVELOPMENT PHASE',
|
|
121
119
|
workType: project.workType || 'continue',
|
|
122
|
-
|
|
123
|
-
isMonorepo: project.isMonorepo || false,
|
|
120
|
+
dateProject: project.dateProject || new Date().toISOString().split('T')[0],
|
|
124
121
|
recentEvents: project.customData?.recentEvents || '',
|
|
125
122
|
additionalNotes: project.customData?.additionalNotes || ''
|
|
126
123
|
};
|
|
@@ -153,9 +150,8 @@ export class ContextIntegrator {
|
|
|
153
150
|
|
|
154
151
|
## Project Details
|
|
155
152
|
- Template: ${project.template || 'Unknown'}
|
|
156
|
-
- Slice: ${project.
|
|
153
|
+
- Slice: ${project.fileSlice || 'Unknown'}
|
|
157
154
|
- Instruction: ${project.instruction || 'Unknown'}
|
|
158
|
-
- Monorepo: ${project.isMonorepo ? 'Yes' : 'No'}
|
|
159
155
|
|
|
160
156
|
Please check the console for detailed error information.`;
|
|
161
157
|
}
|
|
@@ -170,7 +166,7 @@ Please check the console for detailed error information.`;
|
|
|
170
166
|
}
|
|
171
167
|
return Boolean(project.name &&
|
|
172
168
|
project.template &&
|
|
173
|
-
project.
|
|
169
|
+
project.fileSlice);
|
|
174
170
|
}
|
|
175
171
|
/**
|
|
176
172
|
* Detect available tools for the project
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextIntegrator.js","sourceRoot":"","sources":["../../src/services/ContextIntegrator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAE1F;;;GAGG;AACH,MAAM,gBAAgB,GAAG
|
|
1
|
+
{"version":3,"file":"ContextIntegrator.js","sourceRoot":"","sources":["../../src/services/ContextIntegrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextTemplateEngine.d.ts","sourceRoot":"","sources":["../../src/services/ContextTemplateEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,eAAe,CAAiB;gBAGtC,YAAY,EAAE,cAAc,EAC5B,gBAAgB,EAAE,iBAAiB,EACnC,cAAc,CAAC,EAAE,cAAc;IAQjC;;OAEG;YACW,iCAAiC;IAW/C;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBjE;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ContextTemplateEngine.d.ts","sourceRoot":"","sources":["../../src/services/ContextTemplateEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,eAAe,CAAiB;gBAGtC,YAAY,EAAE,cAAc,EAC5B,gBAAgB,EAAE,iBAAiB,EACnC,cAAc,CAAC,EAAE,cAAc;IAQjC;;OAEG;YACW,iCAAiC;IAW/C;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBjE;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAgFxE;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB7F;;OAEG;YACW,cAAc;IAc5B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAKhC;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;OAEG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI;CAI5E"}
|
|
@@ -75,8 +75,8 @@ export class ContextTemplateEngine {
|
|
|
75
75
|
conditional: false,
|
|
76
76
|
order: 1.5
|
|
77
77
|
});
|
|
78
|
-
// 2. Context initialization prompt
|
|
79
|
-
const contextInitPrompt = await this.promptParser.getContextInitializationPrompt(
|
|
78
|
+
// 2. Context initialization prompt
|
|
79
|
+
const contextInitPrompt = await this.promptParser.getContextInitializationPrompt();
|
|
80
80
|
sections.push({
|
|
81
81
|
key: 'context-init',
|
|
82
82
|
title: '',
|
|
@@ -92,25 +92,14 @@ export class ContextTemplateEngine {
|
|
|
92
92
|
conditional: false,
|
|
93
93
|
order: 3
|
|
94
94
|
});
|
|
95
|
-
// 4.
|
|
96
|
-
if (data.isMonorepo) {
|
|
97
|
-
sections.push({
|
|
98
|
-
key: 'monorepo-section',
|
|
99
|
-
title: '### Monorepo Note',
|
|
100
|
-
content: await this.sectionBuilder.buildMonorepoSection(data),
|
|
101
|
-
conditional: true,
|
|
102
|
-
condition: () => data.isMonorepo,
|
|
103
|
-
order: 4
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
// 5. Current project state section (always included if present)
|
|
95
|
+
// 4. Current project state section (always included if present)
|
|
107
96
|
if (data.recentEvents && data.recentEvents.trim()) {
|
|
108
97
|
sections.push({
|
|
109
98
|
key: 'current-events',
|
|
110
99
|
title: '### Current Project State',
|
|
111
100
|
content: data.recentEvents,
|
|
112
101
|
conditional: false,
|
|
113
|
-
order:
|
|
102
|
+
order: 4
|
|
114
103
|
});
|
|
115
104
|
}
|
|
116
105
|
// 6. Instruction section (always included)
|
|
@@ -119,7 +108,7 @@ export class ContextTemplateEngine {
|
|
|
119
108
|
title: '### Instruction Prompt',
|
|
120
109
|
content: await this.sectionBuilder.buildInstructionSection(data),
|
|
121
110
|
conditional: false,
|
|
122
|
-
order:
|
|
111
|
+
order: 5
|
|
123
112
|
});
|
|
124
113
|
// 7. Additional instructions section (conditional)
|
|
125
114
|
if (data.additionalNotes && data.additionalNotes.trim()) {
|
|
@@ -128,7 +117,7 @@ export class ContextTemplateEngine {
|
|
|
128
117
|
title: '## Additional Instructions',
|
|
129
118
|
content: data.additionalNotes,
|
|
130
119
|
conditional: false,
|
|
131
|
-
order:
|
|
120
|
+
order: 6
|
|
132
121
|
});
|
|
133
122
|
}
|
|
134
123
|
return {
|
|
@@ -194,7 +183,7 @@ export class ContextTemplateEngine {
|
|
|
194
183
|
* Validate input data has required fields
|
|
195
184
|
*/
|
|
196
185
|
validateInputData(data) {
|
|
197
|
-
const required = ['projectName', 'template', '
|
|
186
|
+
const required = ['projectName', 'template', 'fileSlice', 'instruction'];
|
|
198
187
|
// Assertion safe: required array contains only known EnhancedContextData keys
|
|
199
188
|
const missing = required.filter(field => !data[field]);
|
|
200
189
|
if (missing.length > 0) {
|
|
@@ -209,10 +198,8 @@ export class ContextTemplateEngine {
|
|
|
209
198
|
|
|
210
199
|
Project: ${data.projectName || 'MISSING_PROJECT_NAME'}
|
|
211
200
|
Template: ${data.template || 'MISSING_TEMPLATE'}
|
|
212
|
-
Slice: ${data.
|
|
201
|
+
Slice: ${data.fileSlice || 'MISSING_SLICE'}
|
|
213
202
|
Instruction: ${data.instruction || 'MISSING_INSTRUCTION'}
|
|
214
|
-
Monorepo: ${data.isMonorepo ? 'Yes' : 'No'}
|
|
215
|
-
|
|
216
203
|
This is an explicit error - context template engine failed to generate proper output.
|
|
217
204
|
Check the console for detailed error information.`;
|
|
218
205
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextTemplateEngine.js","sourceRoot":"","sources":["../../src/services/ContextTemplateEngine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IACxB,YAAY,CAAiB;IAC7B,gBAAgB,CAAoB;IACpC,cAAc,CAAiB;IAC/B,iBAAiB,CAAoB;IACrC,eAAe,GAAY,IAAI,CAAC;IAExC,YACE,YAA4B,EAC5B,gBAAmC,EACnC,cAA+B;QAE/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACrG,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iCAAiC;QAC7C,IAAI,CAAC;YACH,yDAAyD;YACzD,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,6CAA6C;YAC7C,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE,KAAK,CAAC,CAAC;YACzE,8EAA8E;QAChF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,IAAyB;QAC7C,IAAI,CAAC;YACH,0CAA0C;YAC1C,MAAM,IAAI,CAAC,iCAAiC,EAAE,CAAC;YAE/C,sBAAsB;YACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAE7B,+BAA+B;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAEhD,uCAAuC;YACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAE7D,iCAAiC;YACjC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAC;YACvE,6BAA6B;YAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,IAAyB;QAC3C,MAAM,QAAQ,GAAqB,EAAE,CAAC;QAEtC,6CAA6C;QAC7C,0DAA0D;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,4BAA4B,CAAC;QAC1G,QAAQ,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,eAAe;YACpB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,YAAY,CAAC;YAC/D,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QAEH,oDAAoD;QACpD,QAAQ,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC;YAChE,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;QAEH,
|
|
1
|
+
{"version":3,"file":"ContextTemplateEngine.js","sourceRoot":"","sources":["../../src/services/ContextTemplateEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,9 @@ import { ContextIntegrator } from './ContextIntegrator.js';
|
|
|
4
4
|
* Creates a fully wired context assembly pipeline for a given project path.
|
|
5
5
|
* Intended for use in non-renderer contexts (MCP server, CLI, tests).
|
|
6
6
|
*
|
|
7
|
+
* Uses the project-local ai-project-guide prompt file if present,
|
|
8
|
+
* otherwise falls back to the bundled prompt shipped with @context-forge/core.
|
|
9
|
+
*
|
|
7
10
|
* @param projectPath Absolute path to the project root
|
|
8
11
|
* @returns { engine, integrator } ready for context generation
|
|
9
12
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreServiceFactory.d.ts","sourceRoot":"","sources":["../../src/services/CoreServiceFactory.ts"],"names":[],"mappings":"
|
|
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;AAuB3D;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG;IAC1D,MAAM,EAAE,qBAAqB,CAAC;IAC9B,UAAU,EAAE,iBAAiB,CAAC;CAC/B,CAWA"}
|