specweave 1.0.31 → 1.0.33
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/.claude-plugin/marketplace.json +1 -1
- package/CLAUDE.md +205 -148
- package/README.md +0 -2
- package/bin/specweave.js +11 -0
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/update-instructions.d.ts +16 -0
- package/dist/src/cli/commands/update-instructions.d.ts.map +1 -0
- package/dist/src/cli/commands/update-instructions.js +134 -0
- package/dist/src/cli/commands/update-instructions.js.map +1 -0
- package/dist/src/cli/helpers/init/directory-structure.d.ts +28 -1
- package/dist/src/cli/helpers/init/directory-structure.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/directory-structure.js +163 -33
- package/dist/src/cli/helpers/init/directory-structure.js.map +1 -1
- package/dist/src/cli/helpers/init/index.d.ts +2 -1
- package/dist/src/cli/helpers/init/index.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/index.js +3 -1
- package/dist/src/cli/helpers/init/index.js.map +1 -1
- package/dist/src/cli/helpers/init/instruction-file-merger.d.ts +23 -0
- package/dist/src/cli/helpers/init/instruction-file-merger.d.ts.map +1 -0
- package/dist/src/cli/helpers/init/instruction-file-merger.js +243 -0
- package/dist/src/cli/helpers/init/instruction-file-merger.js.map +1 -0
- package/dist/src/cli/helpers/init/plugin-installer.js +49 -0
- package/dist/src/cli/helpers/init/plugin-installer.js.map +1 -1
- package/dist/src/config/types.d.ts +2 -2
- package/dist/src/core/living-docs/external-sync-orchestrator.d.ts +26 -0
- package/dist/src/core/living-docs/external-sync-orchestrator.d.ts.map +1 -1
- package/dist/src/core/living-docs/external-sync-orchestrator.js +61 -0
- package/dist/src/core/living-docs/external-sync-orchestrator.js.map +1 -1
- package/dist/src/core/living-docs/scaffolding/index.d.ts +12 -0
- package/dist/src/core/living-docs/scaffolding/index.d.ts.map +1 -0
- package/dist/src/core/living-docs/scaffolding/index.js +15 -0
- package/dist/src/core/living-docs/scaffolding/index.js.map +1 -0
- package/dist/src/core/living-docs/scaffolding/merger.d.ts +183 -0
- package/dist/src/core/living-docs/scaffolding/merger.d.ts.map +1 -0
- package/dist/src/core/living-docs/scaffolding/merger.js +523 -0
- package/dist/src/core/living-docs/scaffolding/merger.js.map +1 -0
- package/dist/src/core/living-docs/scaffolding/scaffold.d.ts +102 -0
- package/dist/src/core/living-docs/scaffolding/scaffold.d.ts.map +1 -0
- package/dist/src/core/living-docs/scaffolding/scaffold.js +346 -0
- package/dist/src/core/living-docs/scaffolding/scaffold.js.map +1 -0
- package/dist/src/core/living-docs/scaffolding/template-engine.d.ts +108 -0
- package/dist/src/core/living-docs/scaffolding/template-engine.d.ts.map +1 -0
- package/dist/src/core/living-docs/scaffolding/template-engine.js +204 -0
- package/dist/src/core/living-docs/scaffolding/template-engine.js.map +1 -0
- package/dist/src/core/living-docs/sync-helpers/generators.d.ts +38 -2
- package/dist/src/core/living-docs/sync-helpers/generators.d.ts.map +1 -1
- package/dist/src/core/living-docs/sync-helpers/generators.js +65 -10
- package/dist/src/core/living-docs/sync-helpers/generators.js.map +1 -1
- package/dist/src/core/living-docs/sync-helpers/index.d.ts +1 -1
- package/dist/src/core/living-docs/sync-helpers/index.d.ts.map +1 -1
- package/dist/src/core/living-docs/sync-helpers/index.js.map +1 -1
- package/dist/src/core/tools/index.d.ts +11 -0
- package/dist/src/core/tools/index.d.ts.map +1 -0
- package/dist/src/core/tools/index.js +10 -0
- package/dist/src/core/tools/index.js.map +1 -0
- package/dist/src/core/tools/tool-event-bus.d.ts +33 -0
- package/dist/src/core/tools/tool-event-bus.d.ts.map +1 -0
- package/dist/src/core/tools/tool-event-bus.js +84 -0
- package/dist/src/core/tools/tool-event-bus.js.map +1 -0
- package/dist/src/core/tools/tool-index-builder.d.ts +27 -0
- package/dist/src/core/tools/tool-index-builder.d.ts.map +1 -0
- package/dist/src/core/tools/tool-index-builder.js +289 -0
- package/dist/src/core/tools/tool-index-builder.js.map +1 -0
- package/dist/src/core/tools/tool-registry.d.ts +51 -0
- package/dist/src/core/tools/tool-registry.d.ts.map +1 -0
- package/dist/src/core/tools/tool-registry.js +224 -0
- package/dist/src/core/tools/tool-registry.js.map +1 -0
- package/dist/src/core/tools/tool-search-engine.d.ts +22 -0
- package/dist/src/core/tools/tool-search-engine.d.ts.map +1 -0
- package/dist/src/core/tools/tool-search-engine.js +174 -0
- package/dist/src/core/tools/tool-search-engine.js.map +1 -0
- package/dist/src/core/tools/types/tool-registry-types.d.ts +112 -0
- package/dist/src/core/tools/types/tool-registry-types.d.ts.map +1 -0
- package/dist/src/core/tools/types/tool-registry-types.js +7 -0
- package/dist/src/core/tools/types/tool-registry-types.js.map +1 -0
- package/dist/src/init/compliance/types.d.ts +1 -1
- package/package.json +1 -1
- package/plugins/specweave/hooks/hooks.json +3 -13
- package/plugins/specweave/hooks/lib/common-setup.sh +47 -321
- package/plugins/specweave/hooks/lib/migrate-increment-work.sh +5 -5
- package/plugins/specweave/hooks/lib/sync-spec-content.sh +5 -5
- package/plugins/specweave/hooks/universal/dispatcher.mjs +4 -5
- package/plugins/specweave/hooks/universal/fail-fast-wrapper.sh +43 -296
- package/plugins/specweave/hooks/universal/hook-wrapper.sh +3 -1
- package/plugins/specweave/hooks/user-prompt-submit.sh +1 -1
- package/plugins/specweave/hooks/v2/dispatchers/post-tool-use.sh +2 -2
- package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +1 -10
- package/plugins/specweave/hooks/v2/guards/completion-guard.sh +12 -29
- package/plugins/specweave/hooks/v2/guards/increment-duplicate-guard.sh +27 -29
- package/plugins/specweave/hooks/v2/guards/metadata-json-guard.sh +10 -4
- package/plugins/specweave/hooks/v2/guards/spec-validation-guard.sh +139 -0
- package/plugins/specweave/hooks/v2/guards/task-ac-sync-guard.sh +4 -2
- package/plugins/specweave/hooks/v2/session-end.sh +3 -1
- package/plugins/specweave/hooks/v2/session-start.sh +3 -1
- package/plugins/specweave/skills/increment-planner/templates/plan.md +14 -0
- package/plugins/specweave/skills/update-instructions/SKILL.md +80 -0
- package/plugins/specweave-ado/hooks/post-living-docs-update.sh +1 -1
- package/plugins/specweave-mobile/README.md +55 -35
- package/plugins/specweave-mobile/agents/mobile-architect/AGENT.md +805 -329
- package/plugins/specweave-mobile/skills/expo-workflow/SKILL.md +226 -9
- package/plugins/specweave-mobile/skills/native-modules/SKILL.md +221 -20
- package/plugins/specweave-mobile/skills/performance-optimization/SKILL.md +186 -14
- package/plugins/specweave-mobile/skills/react-native-setup/SKILL.md +151 -54
- package/plugins/specweave-release/commands/npm.md +61 -17
- package/plugins/specweave-release/hooks/post-task-completion.sh +2 -3
- package/src/templates/AGENTS.md.template +34 -0
- package/src/templates/CLAUDE.md.template +121 -155
- package/plugins/specweave/hooks/config-env-separator.sh +0 -99
- package/plugins/specweave/hooks/github-metadata-guard.sh +0 -73
- package/plugins/specweave/hooks/lib/circuit-breaker.sh +0 -381
- package/plugins/specweave/hooks/lib/crash-prevention.sh +0 -336
- package/plugins/specweave/hooks/lib/logging.sh +0 -231
- package/plugins/specweave/hooks/lib/metrics.sh +0 -347
- package/plugins/specweave/hooks/lib/semaphore.sh +0 -216
- package/plugins/specweave/hooks/project-folder-guard.sh +0 -274
- package/plugins/specweave/hooks/spec-project-validator.sh +0 -210
- package/plugins/specweave/hooks/v2/guards/bash-file-guard.sh +0 -212
- package/plugins/specweave/hooks/v2/guards/bash-file-guard.test.sh +0 -163
- package/plugins/specweave/hooks/v2/guards/features-folder-guard.sh +0 -51
- package/plugins/specweave/hooks/v2/guards/increment-root-guard.sh +0 -63
- package/plugins/specweave/hooks/v2/guards/per-us-project-validator.sh +0 -335
- package/plugins/specweave/hooks/v2/guards/per-us-project-validator.test.sh +0 -406
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/scaffolding/template-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,62 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generator utilities for Living Docs Sync
|
|
3
3
|
* Generates markdown files for features, READMEs, and user stories
|
|
4
|
+
*
|
|
5
|
+
* IMPORTANT: All generators are PROJECT-AGNOSTIC
|
|
6
|
+
* They work for ANY user project, not just SpecWeave itself.
|
|
7
|
+
*
|
|
4
8
|
* @module core/living-docs/sync-helpers/generators
|
|
5
9
|
*/
|
|
6
10
|
import type { ParsedSpec, UserStoryData } from '../types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Generator context - provides project-specific information
|
|
13
|
+
* for template generation without hardcoding paths.
|
|
14
|
+
*/
|
|
15
|
+
export interface GeneratorContext {
|
|
16
|
+
/** Project ID (e.g., "my-app", "backend-service") */
|
|
17
|
+
projectId: string;
|
|
18
|
+
/** Project name for display (e.g., "My Application") */
|
|
19
|
+
projectName?: string;
|
|
20
|
+
/** Relative path from feature folder to increments folder */
|
|
21
|
+
incrementsRelativePath?: string;
|
|
22
|
+
/** Whether to use relative links (default: true) */
|
|
23
|
+
useRelativeLinks?: boolean;
|
|
24
|
+
}
|
|
7
25
|
/**
|
|
8
26
|
* Generate FEATURE.md content
|
|
27
|
+
*
|
|
28
|
+
* @param featureId - Feature ID (e.g., "FS-001")
|
|
29
|
+
* @param parsed - Parsed spec content
|
|
30
|
+
* @param incrementId - Increment ID (e.g., "0001-feature-name")
|
|
31
|
+
* @param context - Optional generator context for project-specific paths
|
|
9
32
|
*/
|
|
10
|
-
export declare function generateFeatureFile(featureId: string, parsed: ParsedSpec, incrementId: string): string;
|
|
33
|
+
export declare function generateFeatureFile(featureId: string, parsed: ParsedSpec, incrementId: string, context?: Partial<GeneratorContext>): string;
|
|
11
34
|
/**
|
|
12
35
|
* Generate README.md content
|
|
36
|
+
*
|
|
37
|
+
* @param featureId - Feature ID (e.g., "FS-001")
|
|
38
|
+
* @param parsed - Parsed spec content
|
|
39
|
+
* @param _incrementId - Increment ID (unused but kept for signature compatibility)
|
|
40
|
+
* @param context - Optional generator context for project-specific content
|
|
13
41
|
*/
|
|
14
|
-
export declare function generateReadmeFile(featureId: string, parsed: ParsedSpec, _incrementId: string): string;
|
|
42
|
+
export declare function generateReadmeFile(featureId: string, parsed: ParsedSpec, _incrementId: string, context?: Partial<GeneratorContext>): string;
|
|
15
43
|
/**
|
|
16
44
|
* Options for user story file generation
|
|
17
45
|
*/
|
|
18
46
|
export interface UserStoryFileOptions {
|
|
19
47
|
/** All projects in cross-project increment (for related_projects frontmatter) */
|
|
20
48
|
allProjects?: string[];
|
|
49
|
+
/** Generator context for project-specific paths */
|
|
50
|
+
context?: Partial<GeneratorContext>;
|
|
21
51
|
}
|
|
22
52
|
/**
|
|
23
53
|
* Generate user story file content
|
|
54
|
+
*
|
|
55
|
+
* @param story - User story data
|
|
56
|
+
* @param featureId - Feature ID (e.g., "FS-001")
|
|
57
|
+
* @param incrementId - Increment ID (e.g., "0001-feature-name")
|
|
58
|
+
* @param parsed - Parsed spec content
|
|
59
|
+
* @param options - Generation options including context
|
|
24
60
|
*/
|
|
25
61
|
export declare function generateUserStoryFile(story: UserStoryData, featureId: string, incrementId: string, parsed: ParsedSpec, options?: UserStoryFileOptions): string;
|
|
26
62
|
//# sourceMappingURL=generators.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generators.d.ts","sourceRoot":"","sources":["../../../../../src/core/living-docs/sync-helpers/generators.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"generators.d.ts","sourceRoot":"","sources":["../../../../../src/core/living-docs/sync-helpers/generators.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAElB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6DAA6D;IAC7D,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAmBD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAClC,MAAM,CAsDR;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAClC,MAAM,CAmCR;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,CAsGR"}
|
|
@@ -1,12 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generator utilities for Living Docs Sync
|
|
3
3
|
* Generates markdown files for features, READMEs, and user stories
|
|
4
|
+
*
|
|
5
|
+
* IMPORTANT: All generators are PROJECT-AGNOSTIC
|
|
6
|
+
* They work for ANY user project, not just SpecWeave itself.
|
|
7
|
+
*
|
|
4
8
|
* @module core/living-docs/sync-helpers/generators
|
|
5
9
|
*/
|
|
10
|
+
/**
|
|
11
|
+
* Default context for backward compatibility
|
|
12
|
+
*/
|
|
13
|
+
const DEFAULT_CONTEXT = {
|
|
14
|
+
projectId: 'default',
|
|
15
|
+
projectName: 'Project',
|
|
16
|
+
incrementsRelativePath: '../../../../increments',
|
|
17
|
+
useRelativeLinks: true,
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Merge user context with defaults
|
|
21
|
+
*/
|
|
22
|
+
function resolveContext(context) {
|
|
23
|
+
return { ...DEFAULT_CONTEXT, ...context };
|
|
24
|
+
}
|
|
6
25
|
/**
|
|
7
26
|
* Generate FEATURE.md content
|
|
27
|
+
*
|
|
28
|
+
* @param featureId - Feature ID (e.g., "FS-001")
|
|
29
|
+
* @param parsed - Parsed spec content
|
|
30
|
+
* @param incrementId - Increment ID (e.g., "0001-feature-name")
|
|
31
|
+
* @param context - Optional generator context for project-specific paths
|
|
8
32
|
*/
|
|
9
|
-
export function generateFeatureFile(featureId, parsed, incrementId) {
|
|
33
|
+
export function generateFeatureFile(featureId, parsed, incrementId, context) {
|
|
34
|
+
const ctx = resolveContext(context);
|
|
10
35
|
const lines = [];
|
|
11
36
|
lines.push('---');
|
|
12
37
|
lines.push('id: ' + featureId);
|
|
@@ -16,6 +41,9 @@ export function generateFeatureFile(featureId, parsed, incrementId) {
|
|
|
16
41
|
lines.push('priority: ' + parsed.priority);
|
|
17
42
|
lines.push('created: ' + parsed.created);
|
|
18
43
|
lines.push('lastUpdated: ' + new Date().toISOString().split('T')[0]);
|
|
44
|
+
if (ctx.projectId !== 'default') {
|
|
45
|
+
lines.push('project: ' + ctx.projectId);
|
|
46
|
+
}
|
|
19
47
|
lines.push('---');
|
|
20
48
|
lines.push('');
|
|
21
49
|
lines.push('# ' + parsed.title);
|
|
@@ -31,14 +59,19 @@ export function generateFeatureFile(featureId, parsed, incrementId) {
|
|
|
31
59
|
lines.push('| Increment | Status | Completion Date |');
|
|
32
60
|
lines.push('|-----------|--------|----------------|');
|
|
33
61
|
const statusEmoji = parsed.status === 'completed' ? '✅' : '⏳';
|
|
34
|
-
|
|
62
|
+
// Use context-aware path for increment link
|
|
63
|
+
const incrementLink = ctx.useRelativeLinks
|
|
64
|
+
? `${ctx.incrementsRelativePath}/${incrementId}/spec.md`
|
|
65
|
+
: `/.specweave/increments/${incrementId}/spec.md`;
|
|
66
|
+
lines.push('| [' + incrementId + '](' + incrementLink + ') | ' + statusEmoji + ' ' + parsed.status + ' | ' + parsed.created + ' |');
|
|
35
67
|
lines.push('');
|
|
36
68
|
if (parsed.userStories.length > 0) {
|
|
37
69
|
lines.push('## User Stories');
|
|
38
70
|
lines.push('');
|
|
39
71
|
for (const story of parsed.userStories) {
|
|
40
72
|
const storySlug = story.title.toLowerCase().replace(/[^a-z0-9]+/g, '-');
|
|
41
|
-
|
|
73
|
+
// User story files are in the SAME directory as FEATURE.md - use relative path
|
|
74
|
+
const storyFile = './' + story.id.toLowerCase() + '-' + storySlug + '.md';
|
|
42
75
|
lines.push('- [' + story.id + ': ' + story.title + '](' + storyFile + ')');
|
|
43
76
|
}
|
|
44
77
|
lines.push('');
|
|
@@ -47,14 +80,23 @@ export function generateFeatureFile(featureId, parsed, incrementId) {
|
|
|
47
80
|
}
|
|
48
81
|
/**
|
|
49
82
|
* Generate README.md content
|
|
83
|
+
*
|
|
84
|
+
* @param featureId - Feature ID (e.g., "FS-001")
|
|
85
|
+
* @param parsed - Parsed spec content
|
|
86
|
+
* @param _incrementId - Increment ID (unused but kept for signature compatibility)
|
|
87
|
+
* @param context - Optional generator context for project-specific content
|
|
50
88
|
*/
|
|
51
|
-
export function generateReadmeFile(featureId, parsed, _incrementId) {
|
|
89
|
+
export function generateReadmeFile(featureId, parsed, _incrementId, context) {
|
|
90
|
+
const ctx = resolveContext(context);
|
|
52
91
|
const lines = [];
|
|
92
|
+
// Use project ID from context, not hardcoded "specweave"
|
|
93
|
+
const projectSuffix = ctx.projectId !== 'default' ? `-${ctx.projectId}` : '';
|
|
94
|
+
const projectDisplay = ctx.projectName || ctx.projectId;
|
|
53
95
|
lines.push('---');
|
|
54
|
-
lines.push('id: ' + featureId +
|
|
55
|
-
lines.push('title: "' + parsed.title + ' -
|
|
96
|
+
lines.push('id: ' + featureId + projectSuffix);
|
|
97
|
+
lines.push('title: "' + parsed.title + ' - ' + projectDisplay + ' Implementation"');
|
|
56
98
|
lines.push('feature: ' + featureId);
|
|
57
|
-
lines.push('project:
|
|
99
|
+
lines.push('project: ' + ctx.projectId);
|
|
58
100
|
lines.push('type: feature-context');
|
|
59
101
|
lines.push('status: ' + parsed.status);
|
|
60
102
|
lines.push('---');
|
|
@@ -77,8 +119,15 @@ export function generateReadmeFile(featureId, parsed, _incrementId) {
|
|
|
77
119
|
}
|
|
78
120
|
/**
|
|
79
121
|
* Generate user story file content
|
|
122
|
+
*
|
|
123
|
+
* @param story - User story data
|
|
124
|
+
* @param featureId - Feature ID (e.g., "FS-001")
|
|
125
|
+
* @param incrementId - Increment ID (e.g., "0001-feature-name")
|
|
126
|
+
* @param parsed - Parsed spec content
|
|
127
|
+
* @param options - Generation options including context
|
|
80
128
|
*/
|
|
81
129
|
export function generateUserStoryFile(story, featureId, incrementId, parsed, options) {
|
|
130
|
+
const ctx = resolveContext(options?.context);
|
|
82
131
|
const lines = [];
|
|
83
132
|
lines.push('---');
|
|
84
133
|
lines.push('id: ' + story.id);
|
|
@@ -88,8 +137,10 @@ export function generateUserStoryFile(story, featureId, incrementId, parsed, opt
|
|
|
88
137
|
lines.push('priority: ' + parsed.priority);
|
|
89
138
|
lines.push('created: ' + parsed.created);
|
|
90
139
|
// Cross-project targeting (v0.33.0+)
|
|
91
|
-
|
|
92
|
-
|
|
140
|
+
// Use story.project if available, otherwise use context project
|
|
141
|
+
const projectId = story.project || ctx.projectId;
|
|
142
|
+
if (projectId && projectId !== 'default') {
|
|
143
|
+
lines.push('project: ' + projectId);
|
|
93
144
|
}
|
|
94
145
|
if (story.board) {
|
|
95
146
|
lines.push('board: ' + story.board);
|
|
@@ -154,7 +205,11 @@ export function generateUserStoryFile(story, featureId, incrementId, parsed, opt
|
|
|
154
205
|
lines.push('');
|
|
155
206
|
lines.push('## Implementation');
|
|
156
207
|
lines.push('');
|
|
157
|
-
|
|
208
|
+
// Use context-aware path for increment link
|
|
209
|
+
const incrementLink = ctx.useRelativeLinks
|
|
210
|
+
? `${ctx.incrementsRelativePath}/${incrementId}/spec.md`
|
|
211
|
+
: `/.specweave/increments/${incrementId}/spec.md`;
|
|
212
|
+
lines.push('**Increment**: [' + incrementId + '](' + incrementLink + ')');
|
|
158
213
|
lines.push('');
|
|
159
214
|
lines.push('**Tasks**: See increment tasks.md for implementation details.');
|
|
160
215
|
lines.push('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generators.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/sync-helpers/generators.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"generators.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/sync-helpers/generators.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAsBH;;GAEG;AACH,MAAM,eAAe,GAAqB;IACxC,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,SAAS;IACtB,sBAAsB,EAAE,wBAAwB;IAChD,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEF;;GAEG;AACH,SAAS,cAAc,CAAC,OAAmC;IACzD,OAAO,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAAiB,EACjB,MAAkB,EAClB,WAAmB,EACnB,OAAmC;IAEnC,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/B,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAE9D,4CAA4C;IAC5C,MAAM,aAAa,GAAG,GAAG,CAAC,gBAAgB;QACxC,CAAC,CAAC,GAAG,GAAG,CAAC,sBAAsB,IAAI,WAAW,UAAU;QACxD,CAAC,CAAC,0BAA0B,WAAW,UAAU,CAAC;IAEpD,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,WAAW,GAAG,IAAI,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACpI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YACxE,+EAA+E;YAC/E,MAAM,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,SAAS,GAAG,KAAK,CAAC;YAC1E,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC;QAC7E,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,MAAkB,EAClB,YAAoB,EACpB,OAAmC;IAEnC,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,yDAAyD;IACzD,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,cAAc,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,SAAS,CAAC;IAExD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,GAAG,KAAK,GAAG,cAAc,GAAG,kBAAkB,CAAC,CAAC;IACpF,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,SAAS,GAAG,iBAAiB,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAaD;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAoB,EACpB,SAAiB,EACjB,WAAmB,EACnB,MAAkB,EAClB,OAA8B;IAE9B,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9B,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzC,qCAAqC;IACrC,gEAAgE;IAChE,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC;IACjD,IAAI,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC7D,CAAC;IAED,kDAAkD;IAClD,IAAI,OAAO,EAAE,WAAW,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC1C,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7E,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,qBAAqB,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,SAAS,GAAG,iBAAiB,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC,MAAM,CACpD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,KAAK,KAAK,CAAC,EAAE,CAClC,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,KAAK,GAAG,EAAE,CAAC,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAChD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,4CAA4C;IAC5C,MAAM,aAAa,GAAG,GAAG,CAAC,gBAAgB;QACxC,CAAC,CAAC,GAAG,GAAG,CAAC,sBAAsB,IAAI,WAAW,UAAU;QACxD,CAAC,CAAC,0BAA0B,WAAW,UAAU,CAAC;IAEpD,KAAK,CAAC,IAAI,CAAC,kBAAkB,GAAG,WAAW,GAAG,IAAI,GAAG,aAAa,GAAG,GAAG,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAC5E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
* @module core/living-docs/sync-helpers
|
|
4
4
|
*/
|
|
5
5
|
export { calculateUSStatus, extractUserStories, extractAcceptanceCriteria, } from './parsers.js';
|
|
6
|
-
export { generateFeatureFile, generateReadmeFile, generateUserStoryFile, type UserStoryFileOptions, } from './generators.js';
|
|
6
|
+
export { generateFeatureFile, generateReadmeFile, generateUserStoryFile, type UserStoryFileOptions, type GeneratorContext, } from './generators.js';
|
|
7
7
|
export { pathExists, readJson, ensureDir, findExistingUserStoryFile, cleanupDuplicateFiles, cleanupTempFiles, } from './file-utils.js';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/living-docs/sync-helpers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/living-docs/sync-helpers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,SAAS,EACT,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/sync-helpers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,UAAU;AACV,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAEtB,aAAa;AACb,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/sync-helpers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,UAAU;AACV,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAEtB,aAAa;AACb,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,GAGtB,MAAM,iBAAiB,CAAC;AAEzB,iBAAiB;AACjB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,SAAS,EACT,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Registry - Public Exports
|
|
3
|
+
* @module core/tools
|
|
4
|
+
* @since v0.35.0
|
|
5
|
+
*/
|
|
6
|
+
export type { ToolType, ToolCapability, IndexedTool, LoadedTool, ToolSearchResult, ToolSearchOptions, ToolRegistryData, IndexBuildOptions, IndexBuildResult, ToolEventBase, ToolIndexedEvent, ToolLoadedEvent, RegistryRebuiltEvent, ToolSelectedEvent, ToolEvent, ToolEventType, ToolEventHandler, ToolValidationResult, ToolRegistryStats, } from './types/tool-registry-types.js';
|
|
7
|
+
export { ToolRegistry } from './tool-registry.js';
|
|
8
|
+
export { ToolEventBus } from './tool-event-bus.js';
|
|
9
|
+
export { ToolIndexBuilder } from './tool-index-builder.js';
|
|
10
|
+
export { ToolSearchEngine } from './tool-search-engine.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EACtF,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EACtF,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAClF,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,GAC1D,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Registry - Public Exports
|
|
3
|
+
* @module core/tools
|
|
4
|
+
* @since v0.35.0
|
|
5
|
+
*/
|
|
6
|
+
export { ToolRegistry } from './tool-registry.js';
|
|
7
|
+
export { ToolEventBus } from './tool-event-bus.js';
|
|
8
|
+
export { ToolIndexBuilder } from './tool-index-builder.js';
|
|
9
|
+
export { ToolSearchEngine } from './tool-search-engine.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Event Bus - EDA for Tool Registry
|
|
3
|
+
* @module core/tools/tool-event-bus
|
|
4
|
+
* @since v0.35.0
|
|
5
|
+
*/
|
|
6
|
+
import type { Logger } from '../../utils/logger.js';
|
|
7
|
+
import type { ToolEvent, ToolEventType, ToolEventHandler, ToolIndexedEvent, ToolLoadedEvent, ToolSelectedEvent, RegistryRebuiltEvent } from './types/tool-registry-types.js';
|
|
8
|
+
export declare class ToolEventBus {
|
|
9
|
+
private emitter;
|
|
10
|
+
private logger;
|
|
11
|
+
private handlerMap;
|
|
12
|
+
constructor(options?: {
|
|
13
|
+
logger?: Logger;
|
|
14
|
+
});
|
|
15
|
+
on<T extends ToolEventType>(eventType: T, handler: ToolEventHandler<Extract<ToolEvent, {
|
|
16
|
+
type: T;
|
|
17
|
+
}>>): void;
|
|
18
|
+
once<T extends ToolEventType>(eventType: T, handler: ToolEventHandler<Extract<ToolEvent, {
|
|
19
|
+
type: T;
|
|
20
|
+
}>>): void;
|
|
21
|
+
off<T extends ToolEventType>(eventType: T, handler: ToolEventHandler<Extract<ToolEvent, {
|
|
22
|
+
type: T;
|
|
23
|
+
}>>): void;
|
|
24
|
+
emit(event: ToolEvent): void;
|
|
25
|
+
emitAndWait(event: ToolEvent): Promise<void>;
|
|
26
|
+
removeAllListeners(eventType?: ToolEventType): void;
|
|
27
|
+
listenerCount(eventType: ToolEventType): number;
|
|
28
|
+
onToolIndexed(handler: ToolEventHandler<ToolIndexedEvent>): void;
|
|
29
|
+
onToolLoaded(handler: ToolEventHandler<ToolLoadedEvent>): void;
|
|
30
|
+
onToolSelected(handler: ToolEventHandler<ToolSelectedEvent>): void;
|
|
31
|
+
onRegistryRebuilt(handler: ToolEventHandler<RegistryRebuiltEvent>): void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=tool-event-bus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-event-bus.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/tool-event-bus.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,gCAAgC,CAAC;AAIxC,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAA8B;gBAEpC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO;IAO7C,EAAE,CAAC,CAAC,SAAS,aAAa,EACxB,SAAS,EAAE,CAAC,EACZ,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,GACzD,IAAI;IAYP,IAAI,CAAC,CAAC,SAAS,aAAa,EAC1B,SAAS,EAAE,CAAC,EACZ,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,GACzD,IAAI;IAWP,GAAG,CAAC,CAAC,SAAS,aAAa,EACzB,SAAS,EAAE,CAAC,EACZ,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,GACzD,IAAI;IAQP,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKtB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlD,kBAAkB,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,IAAI;IAQnD,aAAa,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM;IAI/C,aAAa,CAAC,OAAO,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAIhE,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,eAAe,CAAC,GAAG,IAAI;IAI9D,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAIlE,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,GAAG,IAAI;CAGzE"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Event Bus - EDA for Tool Registry
|
|
3
|
+
* @module core/tools/tool-event-bus
|
|
4
|
+
* @since v0.35.0
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter } from 'events';
|
|
7
|
+
import { consoleLogger } from '../../utils/logger.js';
|
|
8
|
+
const MAX_LISTENERS = 50;
|
|
9
|
+
export class ToolEventBus {
|
|
10
|
+
constructor(options = {}) {
|
|
11
|
+
this.emitter = new EventEmitter();
|
|
12
|
+
this.emitter.setMaxListeners(MAX_LISTENERS);
|
|
13
|
+
this.logger = options.logger ?? consoleLogger;
|
|
14
|
+
this.handlerMap = new WeakMap();
|
|
15
|
+
}
|
|
16
|
+
on(eventType, handler) {
|
|
17
|
+
const wrappedHandler = async (event) => {
|
|
18
|
+
try {
|
|
19
|
+
await handler(event);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
this.logger.error(`Tool event handler error for ${eventType}: ${error}`);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
this.handlerMap.set(handler, wrappedHandler);
|
|
26
|
+
this.emitter.on(eventType, wrappedHandler);
|
|
27
|
+
}
|
|
28
|
+
once(eventType, handler) {
|
|
29
|
+
const wrappedHandler = async (event) => {
|
|
30
|
+
try {
|
|
31
|
+
await handler(event);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
this.logger.error(`Tool event handler error for ${eventType}: ${error}`);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
this.emitter.once(eventType, wrappedHandler);
|
|
38
|
+
}
|
|
39
|
+
off(eventType, handler) {
|
|
40
|
+
const wrappedHandler = this.handlerMap.get(handler);
|
|
41
|
+
if (wrappedHandler) {
|
|
42
|
+
this.emitter.off(eventType, wrappedHandler);
|
|
43
|
+
this.handlerMap.delete(handler);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
emit(event) {
|
|
47
|
+
this.logger.debug(`Emitting tool event: ${event.type}`);
|
|
48
|
+
this.emitter.emit(event.type, event);
|
|
49
|
+
}
|
|
50
|
+
async emitAndWait(event) {
|
|
51
|
+
this.logger.debug(`Emitting tool event (waiting): ${event.type}`);
|
|
52
|
+
const listeners = this.emitter.listeners(event.type);
|
|
53
|
+
const results = await Promise.allSettled(listeners.map(listener => listener(event)));
|
|
54
|
+
for (const result of results) {
|
|
55
|
+
if (result.status === 'rejected') {
|
|
56
|
+
this.logger.error(`Tool event handler failed: ${result.reason}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
removeAllListeners(eventType) {
|
|
61
|
+
if (eventType) {
|
|
62
|
+
this.emitter.removeAllListeners(eventType);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
this.emitter.removeAllListeners();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
listenerCount(eventType) {
|
|
69
|
+
return this.emitter.listenerCount(eventType);
|
|
70
|
+
}
|
|
71
|
+
onToolIndexed(handler) {
|
|
72
|
+
this.on('ToolIndexed', handler);
|
|
73
|
+
}
|
|
74
|
+
onToolLoaded(handler) {
|
|
75
|
+
this.on('ToolLoaded', handler);
|
|
76
|
+
}
|
|
77
|
+
onToolSelected(handler) {
|
|
78
|
+
this.on('ToolSelected', handler);
|
|
79
|
+
}
|
|
80
|
+
onRegistryRebuilt(handler) {
|
|
81
|
+
this.on('RegistryRebuilt', handler);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=tool-event-bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-event-bus.js","sourceRoot":"","sources":["../../../../src/core/tools/tool-event-bus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Index Builder - Plugin scanner
|
|
3
|
+
* @module core/tools/tool-index-builder
|
|
4
|
+
* @since v0.35.0
|
|
5
|
+
*/
|
|
6
|
+
import type { Logger } from '../../utils/logger.js';
|
|
7
|
+
import type { IndexedTool, IndexBuildOptions, IndexBuildResult } from './types/tool-registry-types.js';
|
|
8
|
+
export declare class ToolIndexBuilder {
|
|
9
|
+
private projectRoot;
|
|
10
|
+
private logger;
|
|
11
|
+
private indexedTools;
|
|
12
|
+
constructor(projectRoot: string, options?: {
|
|
13
|
+
logger?: Logger;
|
|
14
|
+
});
|
|
15
|
+
buildIndex(options?: IndexBuildOptions): Promise<IndexBuildResult>;
|
|
16
|
+
indexPlugin(pluginPath: string, pluginName: string): Promise<IndexedTool[]>;
|
|
17
|
+
private indexSkills;
|
|
18
|
+
private indexAgents;
|
|
19
|
+
private indexCommands;
|
|
20
|
+
private parseYamlFrontmatter;
|
|
21
|
+
private extractKeywords;
|
|
22
|
+
private extractCapabilities;
|
|
23
|
+
private extractFirstParagraph;
|
|
24
|
+
private generateContentHash;
|
|
25
|
+
getIndexedTools(): IndexedTool[];
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=tool-index-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-index-builder.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/tool-index-builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EACV,WAAW,EAEX,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,gCAAgC,CAAC;AAYxC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAgB;gBAExB,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO;IAM5D,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwEtE,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAqBnE,WAAW;YAkCX,WAAW;YAoCX,aAAa;IAiC3B,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,mBAAmB;IAI3B,eAAe,IAAI,WAAW,EAAE;CAGjC"}
|