@ai-coders/context 0.5.0 → 0.5.2
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 +103 -360
- package/dist/generators/agents/templates/playbookTemplate.d.ts.map +1 -1
- package/dist/generators/agents/templates/playbookTemplate.js +5 -1
- package/dist/generators/agents/templates/playbookTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/apiReferenceTemplate.js +3 -1
- package/dist/generators/documentation/templates/apiReferenceTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/architectureTemplate.js +16 -12
- package/dist/generators/documentation/templates/architectureTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/common.d.ts +5 -0
- package/dist/generators/documentation/templates/common.d.ts.map +1 -1
- package/dist/generators/documentation/templates/common.js +14 -0
- package/dist/generators/documentation/templates/common.js.map +1 -1
- package/dist/generators/documentation/templates/dataFlowTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/dataFlowTemplate.js +10 -6
- package/dist/generators/documentation/templates/dataFlowTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.js +5 -3
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/glossaryTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/glossaryTemplate.js +10 -6
- package/dist/generators/documentation/templates/glossaryTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/migrationTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/migrationTemplate.js +3 -1
- package/dist/generators/documentation/templates/migrationTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/onboardingTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/onboardingTemplate.js +3 -1
- package/dist/generators/documentation/templates/onboardingTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/projectOverviewTemplate.js +14 -10
- package/dist/generators/documentation/templates/projectOverviewTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/securityTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/securityTemplate.js +11 -5
- package/dist/generators/documentation/templates/securityTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/testingTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/testingTemplate.js +5 -2
- package/dist/generators/documentation/templates/testingTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/toolingTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/toolingTemplate.js +11 -8
- package/dist/generators/documentation/templates/toolingTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/troubleshootingTemplate.js +3 -1
- package/dist/generators/documentation/templates/troubleshootingTemplate.js.map +1 -1
- package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -1
- package/dist/generators/plans/templates/planTemplate.js +5 -3
- package/dist/generators/plans/templates/planTemplate.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +235 -39
- package/dist/index.js.map +1 -1
- package/dist/services/ai/agents/documentationAgent.d.ts.map +1 -1
- package/dist/services/ai/agents/documentationAgent.js +3 -29
- package/dist/services/ai/agents/documentationAgent.js.map +1 -1
- package/dist/services/ai/agents/planAgent.d.ts.map +1 -1
- package/dist/services/ai/agents/planAgent.js +6 -53
- package/dist/services/ai/agents/planAgent.js.map +1 -1
- package/dist/services/ai/agents/playbookAgent.d.ts.map +1 -1
- package/dist/services/ai/agents/playbookAgent.js +3 -24
- package/dist/services/ai/agents/playbookAgent.js.map +1 -1
- package/dist/services/ai/prompts/index.d.ts +2 -0
- package/dist/services/ai/prompts/index.d.ts.map +1 -0
- package/dist/services/ai/prompts/index.js +12 -0
- package/dist/services/ai/prompts/index.js.map +1 -0
- package/dist/services/ai/prompts/sharedPrompts.d.ts +33 -0
- package/dist/services/ai/prompts/sharedPrompts.d.ts.map +1 -0
- package/dist/services/ai/prompts/sharedPrompts.js +136 -0
- package/dist/services/ai/prompts/sharedPrompts.js.map +1 -0
- package/dist/services/ai/schemas.d.ts +1 -1
- package/dist/services/ai/toolRegistry.d.ts +27 -0
- package/dist/services/ai/toolRegistry.d.ts.map +1 -0
- package/dist/services/ai/toolRegistry.js +126 -0
- package/dist/services/ai/toolRegistry.js.map +1 -0
- package/dist/services/ai/tools/fillScaffoldingTool.d.ts +75 -5
- package/dist/services/ai/tools/fillScaffoldingTool.d.ts.map +1 -1
- package/dist/services/ai/tools/fillScaffoldingTool.js +247 -43
- package/dist/services/ai/tools/fillScaffoldingTool.js.map +1 -1
- package/dist/services/ai/tools/index.d.ts +2 -2
- package/dist/services/ai/tools/index.d.ts.map +1 -1
- package/dist/services/ai/tools/index.js +9 -3
- package/dist/services/ai/tools/index.js.map +1 -1
- package/dist/services/ai/tools/initializeContextTool.d.ts +1 -1
- package/dist/services/fill/fillService.d.ts.map +1 -1
- package/dist/services/fill/fillService.js +7 -2
- package/dist/services/fill/fillService.js.map +1 -1
- package/dist/services/mcp/mcpServer.d.ts.map +1 -1
- package/dist/services/mcp/mcpServer.js +60 -20
- package/dist/services/mcp/mcpServer.js.map +1 -1
- package/dist/services/state/index.d.ts +2 -0
- package/dist/services/state/index.d.ts.map +1 -0
- package/dist/services/state/index.js +6 -0
- package/dist/services/state/index.js.map +1 -0
- package/dist/services/state/stateDetector.d.ts +53 -0
- package/dist/services/state/stateDetector.d.ts.map +1 -0
- package/dist/services/state/stateDetector.js +189 -0
- package/dist/services/state/stateDetector.js.map +1 -0
- package/dist/services/update/index.d.ts +2 -0
- package/dist/services/update/index.d.ts.map +1 -0
- package/dist/services/update/index.js +6 -0
- package/dist/services/update/index.js.map +1 -0
- package/dist/services/update/updateService.d.ts +64 -0
- package/dist/services/update/updateService.d.ts.map +1 -0
- package/dist/services/update/updateService.js +295 -0
- package/dist/services/update/updateService.js.map +1 -0
- package/dist/types.d.ts +0 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/frontMatter.d.ts +55 -0
- package/dist/utils/frontMatter.d.ts.map +1 -0
- package/dist/utils/frontMatter.js +173 -0
- package/dist/utils/frontMatter.js.map +1 -0
- package/dist/utils/i18n.d.ts +14 -0
- package/dist/utils/i18n.d.ts.map +1 -1
- package/dist/utils/i18n.js +28 -0
- package/dist/utils/i18n.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Centralized tool descriptions and metadata.
|
|
4
|
+
* Single source of truth for tool descriptions used by both AI SDK tools and MCP server.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.TOOL_DESCRIPTIONS = void 0;
|
|
8
|
+
exports.getToolDescription = getToolDescription;
|
|
9
|
+
exports.getToolNames = getToolNames;
|
|
10
|
+
exports.getToolListForPrompt = getToolListForPrompt;
|
|
11
|
+
/**
|
|
12
|
+
* Tool descriptions - the single source of truth
|
|
13
|
+
*/
|
|
14
|
+
exports.TOOL_DESCRIPTIONS = {
|
|
15
|
+
readFile: {
|
|
16
|
+
name: 'readFile',
|
|
17
|
+
description: 'Read the contents of a file from the filesystem'
|
|
18
|
+
},
|
|
19
|
+
listFiles: {
|
|
20
|
+
name: 'listFiles',
|
|
21
|
+
description: 'List files matching a glob pattern in the repository'
|
|
22
|
+
},
|
|
23
|
+
analyzeSymbols: {
|
|
24
|
+
name: 'analyzeSymbols',
|
|
25
|
+
description: 'Analyze symbols in a source file (classes, functions, interfaces, types, enums)'
|
|
26
|
+
},
|
|
27
|
+
getFileStructure: {
|
|
28
|
+
name: 'getFileStructure',
|
|
29
|
+
description: 'Get the directory structure and file listing of a repository'
|
|
30
|
+
},
|
|
31
|
+
searchCode: {
|
|
32
|
+
name: 'searchCode',
|
|
33
|
+
description: 'Search for code patterns across files using regex'
|
|
34
|
+
},
|
|
35
|
+
buildSemanticContext: {
|
|
36
|
+
name: 'buildSemanticContext',
|
|
37
|
+
description: 'Build optimized semantic context for LLM prompts. Pre-analyzes the codebase and returns formatted context.'
|
|
38
|
+
},
|
|
39
|
+
checkScaffolding: {
|
|
40
|
+
name: 'checkScaffolding',
|
|
41
|
+
description: 'Check if .context scaffolding exists and return granular status'
|
|
42
|
+
},
|
|
43
|
+
initializeContext: {
|
|
44
|
+
name: 'initializeContext',
|
|
45
|
+
description: 'Initialize .context scaffolding and create template files.',
|
|
46
|
+
extendedDescription: `Initialize .context scaffolding and create template files.
|
|
47
|
+
IMPORTANT: After this tool completes, you MUST fill the generated files:
|
|
48
|
+
1. Use buildSemanticContext to analyze the codebase
|
|
49
|
+
2. Read each generated template file
|
|
50
|
+
3. Write filled content to each file based on the analysis
|
|
51
|
+
|
|
52
|
+
CRITICAL - Documentation Quality Requirements:
|
|
53
|
+
After filling the files with semantic analysis content, you MUST apply reasoning to significantly IMPROVE the documentation:
|
|
54
|
+
|
|
55
|
+
- Architecture docs: Reason about design patterns, identify why certain architectural decisions were made, explain trade-offs, and document implicit design principles that aren't obvious from code alone
|
|
56
|
+
- Data flow docs: Think through edge cases, document error handling paths, explain the reasoning behind data transformations, and clarify complex interactions
|
|
57
|
+
- Agent playbooks: Use your understanding to create actionable, context-aware instructions that go beyond generic templates
|
|
58
|
+
- README files: Synthesize information to create clear, developer-friendly overviews that highlight what's most important
|
|
59
|
+
|
|
60
|
+
DO NOT simply copy the semantic analysis output. Use critical thinking to:
|
|
61
|
+
1. Identify gaps in the auto-generated content
|
|
62
|
+
2. Add explanations for "why" not just "what"
|
|
63
|
+
3. Include practical examples where helpful
|
|
64
|
+
4. Highlight important caveats or gotchas
|
|
65
|
+
5. Ensure documentation tells a coherent story
|
|
66
|
+
|
|
67
|
+
The goal is documentation that a new developer would find genuinely helpful, not just technically accurate.`
|
|
68
|
+
},
|
|
69
|
+
scaffoldPlan: {
|
|
70
|
+
name: 'scaffoldPlan',
|
|
71
|
+
description: 'Create a plan template in .context/plans/'
|
|
72
|
+
},
|
|
73
|
+
fillScaffolding: {
|
|
74
|
+
name: 'fillScaffolding',
|
|
75
|
+
description: 'Analyze codebase and generate filled content for scaffolding templates.',
|
|
76
|
+
extendedDescription: `Analyze codebase and generate filled content for scaffolding templates.
|
|
77
|
+
Returns suggestedContent for each file. Supports pagination with offset/limit (default: 3 files).
|
|
78
|
+
For large projects, use listFilesToFill + fillSingleFile instead to avoid output size limits.
|
|
79
|
+
IMPORTANT: After calling this, write each suggestedContent to its corresponding file path.`
|
|
80
|
+
},
|
|
81
|
+
listFilesToFill: {
|
|
82
|
+
name: 'listFilesToFill',
|
|
83
|
+
description: 'List scaffold files that need to be filled. Returns only file paths (no content).',
|
|
84
|
+
extendedDescription: `List scaffold files that need to be filled. Returns only file paths (no content).
|
|
85
|
+
Use this first to get the list, then call fillSingleFile for each file.
|
|
86
|
+
This is more efficient than fillScaffolding for large projects.`
|
|
87
|
+
},
|
|
88
|
+
fillSingleFile: {
|
|
89
|
+
name: 'fillSingleFile',
|
|
90
|
+
description: 'Generate suggested content for a single scaffold file.',
|
|
91
|
+
extendedDescription: `Generate suggested content for a single scaffold file.
|
|
92
|
+
Call listFilesToFill first to get file paths, then call this for each file.
|
|
93
|
+
This avoids output size limits by processing one file at a time.`
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Get description for a tool (uses extended if available for MCP, regular for AI SDK)
|
|
98
|
+
*/
|
|
99
|
+
function getToolDescription(toolName, useExtended = false) {
|
|
100
|
+
const tool = exports.TOOL_DESCRIPTIONS[toolName];
|
|
101
|
+
if (!tool)
|
|
102
|
+
return '';
|
|
103
|
+
return useExtended && tool.extendedDescription
|
|
104
|
+
? tool.extendedDescription
|
|
105
|
+
: tool.description;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Get all tool names
|
|
109
|
+
*/
|
|
110
|
+
function getToolNames() {
|
|
111
|
+
return Object.keys(exports.TOOL_DESCRIPTIONS);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Generate a tool list summary for system prompts
|
|
115
|
+
*/
|
|
116
|
+
function getToolListForPrompt(toolNames) {
|
|
117
|
+
const names = toolNames || ['readFile', 'listFiles', 'analyzeSymbols', 'getFileStructure', 'searchCode'];
|
|
118
|
+
return names
|
|
119
|
+
.map(name => {
|
|
120
|
+
const tool = exports.TOOL_DESCRIPTIONS[name];
|
|
121
|
+
return tool ? `- ${name}: ${tool.description}` : null;
|
|
122
|
+
})
|
|
123
|
+
.filter(Boolean)
|
|
124
|
+
.join('\n');
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=toolRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolRegistry.js","sourceRoot":"","sources":["../../../src/services/ai/toolRegistry.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA6GH,gDAMC;AAKD,oCAEC;AAKD,oDASC;AA/HD;;GAEG;AACU,QAAA,iBAAiB,GAAoC;IAChE,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,iDAAiD;KAC/D;IAED,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,sDAAsD;KACpE;IAED,cAAc,EAAE;QACd,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,iFAAiF;KAC/F;IAED,gBAAgB,EAAE;QAChB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,8DAA8D;KAC5E;IAED,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,mDAAmD;KACjE;IAED,oBAAoB,EAAE;QACpB,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,4GAA4G;KAC1H;IAED,gBAAgB,EAAE;QAChB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,iEAAiE;KAC/E;IAED,iBAAiB,EAAE;QACjB,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,4DAA4D;QACzE,mBAAmB,EAAE;;;;;;;;;;;;;;;;;;;;;4GAqBmF;KACzG;IAED,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,2CAA2C;KACzD;IAED,eAAe,EAAE;QACf,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,yEAAyE;QACtF,mBAAmB,EAAE;;;2FAGkE;KACxF;IAED,eAAe,EAAE;QACf,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,mFAAmF;QAChG,mBAAmB,EAAE;;gEAEuC;KAC7D;IAED,cAAc,EAAE;QACd,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,wDAAwD;QACrE,mBAAmB,EAAE;;iEAEwC;KAC9D;CACF,CAAC;AAEF;;GAEG;AACH,SAAgB,kBAAkB,CAAC,QAAgB,EAAE,WAAW,GAAG,KAAK;IACtE,MAAM,IAAI,GAAG,yBAAiB,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,WAAW,IAAI,IAAI,CAAC,mBAAmB;QAC5C,CAAC,CAAC,IAAI,CAAC,mBAAmB;QAC1B,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,yBAAiB,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,SAAoB;IACvD,MAAM,KAAK,GAAG,SAAS,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAC;IACzG,OAAO,KAAK;SACT,GAAG,CAAC,IAAI,CAAC,EAAE;QACV,MAAM,IAAI,GAAG,yBAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
|
@@ -1,36 +1,106 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Cleanup shared context builder resources.
|
|
4
|
+
* Call this during server/process shutdown to release LSP processes.
|
|
5
|
+
*/
|
|
6
|
+
export declare function cleanupSharedContext(): Promise<void>;
|
|
7
|
+
declare const ListFilesToFillInputSchema: z.ZodObject<{
|
|
3
8
|
repoPath: z.ZodString;
|
|
4
9
|
outputDir: z.ZodOptional<z.ZodString>;
|
|
5
10
|
target: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
11
|
+
docs: "docs";
|
|
6
12
|
agents: "agents";
|
|
13
|
+
plans: "plans";
|
|
14
|
+
all: "all";
|
|
15
|
+
}>>>;
|
|
16
|
+
}, z.core.$strip>;
|
|
17
|
+
export type ListFilesToFillInput = z.infer<typeof ListFilesToFillInputSchema>;
|
|
18
|
+
interface FileToFillInfo {
|
|
19
|
+
path: string;
|
|
20
|
+
relativePath: string;
|
|
21
|
+
type: 'doc' | 'agent' | 'plan';
|
|
22
|
+
}
|
|
23
|
+
export declare const listFilesToFillTool: import("ai").Tool<{
|
|
24
|
+
repoPath: string;
|
|
25
|
+
outputDir?: string | undefined;
|
|
26
|
+
target?: "docs" | "agents" | "plans" | "all" | undefined;
|
|
27
|
+
}, {
|
|
28
|
+
success: boolean;
|
|
29
|
+
error: string;
|
|
30
|
+
files?: undefined;
|
|
31
|
+
totalCount?: undefined;
|
|
32
|
+
instructions?: undefined;
|
|
33
|
+
} | {
|
|
34
|
+
success: boolean;
|
|
35
|
+
files: FileToFillInfo[];
|
|
36
|
+
totalCount: number;
|
|
37
|
+
instructions: string;
|
|
38
|
+
error?: undefined;
|
|
39
|
+
}>;
|
|
40
|
+
declare const FillSingleFileInputSchema: z.ZodObject<{
|
|
41
|
+
repoPath: z.ZodString;
|
|
42
|
+
filePath: z.ZodString;
|
|
43
|
+
}, z.core.$strip>;
|
|
44
|
+
export type FillSingleFileInput = z.infer<typeof FillSingleFileInputSchema>;
|
|
45
|
+
export declare const fillSingleFileTool: import("ai").Tool<{
|
|
46
|
+
repoPath: string;
|
|
47
|
+
filePath: string;
|
|
48
|
+
}, {
|
|
49
|
+
success: boolean;
|
|
50
|
+
error: string;
|
|
51
|
+
filePath?: undefined;
|
|
52
|
+
fileType?: undefined;
|
|
53
|
+
suggestedContent?: undefined;
|
|
54
|
+
instructions?: undefined;
|
|
55
|
+
} | {
|
|
56
|
+
success: boolean;
|
|
57
|
+
filePath: string;
|
|
58
|
+
fileType: "plan" | "agent" | "doc";
|
|
59
|
+
suggestedContent: string;
|
|
60
|
+
instructions: string;
|
|
61
|
+
error?: undefined;
|
|
62
|
+
}>;
|
|
63
|
+
declare const FillScaffoldingInputSchema: z.ZodObject<{
|
|
64
|
+
repoPath: z.ZodString;
|
|
65
|
+
outputDir: z.ZodOptional<z.ZodString>;
|
|
66
|
+
target: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
7
67
|
docs: "docs";
|
|
68
|
+
agents: "agents";
|
|
8
69
|
plans: "plans";
|
|
9
70
|
all: "all";
|
|
10
71
|
}>>>;
|
|
72
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
73
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
11
74
|
}, z.core.$strip>;
|
|
12
75
|
export type FillScaffoldingInput = z.infer<typeof FillScaffoldingInputSchema>;
|
|
13
76
|
interface FileToFill {
|
|
14
77
|
path: string;
|
|
15
78
|
relativePath: string;
|
|
16
|
-
currentContent: string;
|
|
17
79
|
suggestedContent: string;
|
|
18
80
|
type: 'doc' | 'agent' | 'plan';
|
|
19
81
|
}
|
|
20
82
|
export declare const fillScaffoldingTool: import("ai").Tool<{
|
|
21
83
|
repoPath: string;
|
|
22
84
|
outputDir?: string | undefined;
|
|
23
|
-
target?: "
|
|
85
|
+
target?: "docs" | "agents" | "plans" | "all" | undefined;
|
|
86
|
+
offset?: number | undefined;
|
|
87
|
+
limit?: number | undefined;
|
|
24
88
|
}, {
|
|
25
89
|
success: boolean;
|
|
26
90
|
error: string;
|
|
27
|
-
codebaseContext?: undefined;
|
|
28
91
|
filesToFill?: undefined;
|
|
92
|
+
pagination?: undefined;
|
|
29
93
|
instructions?: undefined;
|
|
30
94
|
} | {
|
|
31
95
|
success: boolean;
|
|
32
|
-
codebaseContext: string;
|
|
33
96
|
filesToFill: FileToFill[];
|
|
97
|
+
pagination: {
|
|
98
|
+
offset: number;
|
|
99
|
+
limit: number;
|
|
100
|
+
returned: number;
|
|
101
|
+
totalCount: number;
|
|
102
|
+
hasMore: boolean;
|
|
103
|
+
};
|
|
34
104
|
instructions: string;
|
|
35
105
|
error?: undefined;
|
|
36
106
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fillScaffoldingTool.d.ts","sourceRoot":"","sources":["../../../../src/services/ai/tools/fillScaffoldingTool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"fillScaffoldingTool.d.ts","sourceRoot":"","sources":["../../../../src/services/ai/tools/fillScaffoldingTool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM1D;AAMD,QAAA,MAAM,0BAA0B;;;;;;;;;iBAK9B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;EAmF9B,CAAC;AAMH,QAAA,MAAM,yBAAyB;;;iBAG7B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;EA2D7B,CAAC;AAMH,QAAA,MAAM,0BAA0B;;;;;;;;;;;iBAO9B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EA8I9B,CAAC"}
|
|
@@ -33,25 +33,215 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.fillScaffoldingTool = void 0;
|
|
36
|
+
exports.fillScaffoldingTool = exports.fillSingleFileTool = exports.listFilesToFillTool = void 0;
|
|
37
|
+
exports.cleanupSharedContext = cleanupSharedContext;
|
|
37
38
|
const ai_1 = require("ai");
|
|
38
39
|
const path = __importStar(require("path"));
|
|
39
40
|
const fs = __importStar(require("fs-extra"));
|
|
40
41
|
const zod_1 = require("zod");
|
|
41
42
|
const contextBuilder_1 = require("../../semantic/contextBuilder");
|
|
43
|
+
// Shared context builder instance for efficiency
|
|
44
|
+
let sharedContextBuilder = null;
|
|
45
|
+
let cachedContext = null;
|
|
46
|
+
async function getOrBuildContext(repoPath) {
|
|
47
|
+
if (cachedContext && cachedContext.repoPath === repoPath) {
|
|
48
|
+
return cachedContext.context;
|
|
49
|
+
}
|
|
50
|
+
// Cleanup existing builder before creating new one (cache invalidation)
|
|
51
|
+
// This releases LSP language server child processes
|
|
52
|
+
if (sharedContextBuilder) {
|
|
53
|
+
await sharedContextBuilder.shutdown();
|
|
54
|
+
sharedContextBuilder = null;
|
|
55
|
+
}
|
|
56
|
+
sharedContextBuilder = new contextBuilder_1.SemanticContextBuilder();
|
|
57
|
+
const context = await sharedContextBuilder.buildDocumentationContext(repoPath);
|
|
58
|
+
cachedContext = { repoPath, context };
|
|
59
|
+
return context;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Cleanup shared context builder resources.
|
|
63
|
+
* Call this during server/process shutdown to release LSP processes.
|
|
64
|
+
*/
|
|
65
|
+
async function cleanupSharedContext() {
|
|
66
|
+
if (sharedContextBuilder) {
|
|
67
|
+
await sharedContextBuilder.shutdown();
|
|
68
|
+
sharedContextBuilder = null;
|
|
69
|
+
cachedContext = null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// ============================================
|
|
73
|
+
// listFilesToFill - Lightweight file listing
|
|
74
|
+
// ============================================
|
|
75
|
+
const ListFilesToFillInputSchema = zod_1.z.object({
|
|
76
|
+
repoPath: zod_1.z.string().describe('Repository path'),
|
|
77
|
+
outputDir: zod_1.z.string().optional().describe('Scaffold directory (default: ./.context)'),
|
|
78
|
+
target: zod_1.z.enum(['docs', 'agents', 'plans', 'all']).default('all').optional()
|
|
79
|
+
.describe('Which scaffolding to list')
|
|
80
|
+
});
|
|
81
|
+
exports.listFilesToFillTool = (0, ai_1.tool)({
|
|
82
|
+
description: `List scaffold files that need to be filled. Returns only file paths (no content) for efficient listing.
|
|
83
|
+
Use this first to get the list, then call fillSingleFile for each file.`,
|
|
84
|
+
inputSchema: ListFilesToFillInputSchema,
|
|
85
|
+
execute: async (input) => {
|
|
86
|
+
const { repoPath, outputDir: customOutputDir, target = 'all' } = input;
|
|
87
|
+
const resolvedRepoPath = path.resolve(repoPath);
|
|
88
|
+
const outputDir = customOutputDir
|
|
89
|
+
? path.resolve(customOutputDir)
|
|
90
|
+
: path.resolve(resolvedRepoPath, '.context');
|
|
91
|
+
try {
|
|
92
|
+
if (!await fs.pathExists(outputDir)) {
|
|
93
|
+
return {
|
|
94
|
+
success: false,
|
|
95
|
+
error: `Scaffold directory does not exist: ${outputDir}. Run initializeContext first.`
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
const files = [];
|
|
99
|
+
// Collect docs
|
|
100
|
+
if (target === 'all' || target === 'docs') {
|
|
101
|
+
const docsDir = path.join(outputDir, 'docs');
|
|
102
|
+
if (await fs.pathExists(docsDir)) {
|
|
103
|
+
const docFiles = await fs.readdir(docsDir);
|
|
104
|
+
for (const file of docFiles) {
|
|
105
|
+
if (!file.endsWith('.md'))
|
|
106
|
+
continue;
|
|
107
|
+
files.push({
|
|
108
|
+
path: path.join(docsDir, file),
|
|
109
|
+
relativePath: `docs/${file}`,
|
|
110
|
+
type: 'doc'
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Collect agents
|
|
116
|
+
if (target === 'all' || target === 'agents') {
|
|
117
|
+
const agentsDir = path.join(outputDir, 'agents');
|
|
118
|
+
if (await fs.pathExists(agentsDir)) {
|
|
119
|
+
const agentFiles = await fs.readdir(agentsDir);
|
|
120
|
+
for (const file of agentFiles) {
|
|
121
|
+
if (!file.endsWith('.md') || file.toLowerCase() === 'readme.md')
|
|
122
|
+
continue;
|
|
123
|
+
files.push({
|
|
124
|
+
path: path.join(agentsDir, file),
|
|
125
|
+
relativePath: `agents/${file}`,
|
|
126
|
+
type: 'agent'
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Collect plans
|
|
132
|
+
if (target === 'all' || target === 'plans') {
|
|
133
|
+
const plansDir = path.join(outputDir, 'plans');
|
|
134
|
+
if (await fs.pathExists(plansDir)) {
|
|
135
|
+
const planFiles = await fs.readdir(plansDir);
|
|
136
|
+
for (const file of planFiles) {
|
|
137
|
+
if (!file.endsWith('.md') || file.toLowerCase() === 'readme.md')
|
|
138
|
+
continue;
|
|
139
|
+
files.push({
|
|
140
|
+
path: path.join(plansDir, file),
|
|
141
|
+
relativePath: `plans/${file}`,
|
|
142
|
+
type: 'plan'
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return {
|
|
148
|
+
success: true,
|
|
149
|
+
files,
|
|
150
|
+
totalCount: files.length,
|
|
151
|
+
instructions: `Found ${files.length} files to fill. Call fillSingleFile for each file path to get suggested content.`
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
return {
|
|
156
|
+
success: false,
|
|
157
|
+
error: error instanceof Error ? error.message : String(error)
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
// ============================================
|
|
163
|
+
// fillSingleFile - Process one file at a time
|
|
164
|
+
// ============================================
|
|
165
|
+
const FillSingleFileInputSchema = zod_1.z.object({
|
|
166
|
+
repoPath: zod_1.z.string().describe('Repository path'),
|
|
167
|
+
filePath: zod_1.z.string().describe('Absolute path to the scaffold file to fill')
|
|
168
|
+
});
|
|
169
|
+
exports.fillSingleFileTool = (0, ai_1.tool)({
|
|
170
|
+
description: `Generate suggested content for a single scaffold file.
|
|
171
|
+
Call listFilesToFill first to get file paths, then call this for each file.`,
|
|
172
|
+
inputSchema: FillSingleFileInputSchema,
|
|
173
|
+
execute: async (input) => {
|
|
174
|
+
const { repoPath, filePath } = input;
|
|
175
|
+
const resolvedRepoPath = path.resolve(repoPath);
|
|
176
|
+
const resolvedFilePath = path.resolve(filePath);
|
|
177
|
+
try {
|
|
178
|
+
if (!await fs.pathExists(resolvedFilePath)) {
|
|
179
|
+
return {
|
|
180
|
+
success: false,
|
|
181
|
+
error: `File does not exist: ${resolvedFilePath}`
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
// Get or build semantic context (cached)
|
|
185
|
+
const semanticContext = await getOrBuildContext(resolvedRepoPath);
|
|
186
|
+
// Read current content
|
|
187
|
+
const currentContent = await fs.readFile(resolvedFilePath, 'utf-8');
|
|
188
|
+
const fileName = path.basename(resolvedFilePath);
|
|
189
|
+
const parentDir = path.basename(path.dirname(resolvedFilePath));
|
|
190
|
+
// Generate suggested content based on file type
|
|
191
|
+
let suggestedContent;
|
|
192
|
+
let fileType;
|
|
193
|
+
if (parentDir === 'docs') {
|
|
194
|
+
suggestedContent = generateDocContent(fileName, currentContent, semanticContext);
|
|
195
|
+
fileType = 'doc';
|
|
196
|
+
}
|
|
197
|
+
else if (parentDir === 'agents') {
|
|
198
|
+
const agentType = path.basename(fileName, '.md');
|
|
199
|
+
suggestedContent = generateAgentContent(agentType, currentContent, semanticContext);
|
|
200
|
+
fileType = 'agent';
|
|
201
|
+
}
|
|
202
|
+
else if (parentDir === 'plans') {
|
|
203
|
+
suggestedContent = currentContent; // Plans need manual filling
|
|
204
|
+
fileType = 'plan';
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
suggestedContent = currentContent;
|
|
208
|
+
fileType = 'doc';
|
|
209
|
+
}
|
|
210
|
+
return {
|
|
211
|
+
success: true,
|
|
212
|
+
filePath: resolvedFilePath,
|
|
213
|
+
fileType,
|
|
214
|
+
suggestedContent,
|
|
215
|
+
instructions: `Write this suggestedContent to ${resolvedFilePath}`
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
return {
|
|
220
|
+
success: false,
|
|
221
|
+
error: error instanceof Error ? error.message : String(error)
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
// ============================================
|
|
227
|
+
// fillScaffolding - Original tool with pagination
|
|
228
|
+
// ============================================
|
|
42
229
|
const FillScaffoldingInputSchema = zod_1.z.object({
|
|
43
230
|
repoPath: zod_1.z.string().describe('Repository path'),
|
|
44
231
|
outputDir: zod_1.z.string().optional().describe('Scaffold directory (default: ./.context)'),
|
|
45
232
|
target: zod_1.z.enum(['docs', 'agents', 'plans', 'all']).default('all').optional()
|
|
46
|
-
.describe('Which scaffolding to fill')
|
|
233
|
+
.describe('Which scaffolding to fill'),
|
|
234
|
+
offset: zod_1.z.number().optional().describe('Skip first N files (for pagination)'),
|
|
235
|
+
limit: zod_1.z.number().optional().describe('Max files to return (default: 3, use 0 for all)')
|
|
47
236
|
});
|
|
48
237
|
exports.fillScaffoldingTool = (0, ai_1.tool)({
|
|
49
238
|
description: `Analyze codebase and generate filled content for scaffolding templates.
|
|
50
|
-
Returns
|
|
239
|
+
Returns suggestedContent for each file. Supports pagination with offset/limit.
|
|
240
|
+
For large projects, use listFilesToFill + fillSingleFile instead.
|
|
51
241
|
After calling this tool, write the suggestedContent to each file path.`,
|
|
52
242
|
inputSchema: FillScaffoldingInputSchema,
|
|
53
243
|
execute: async (input) => {
|
|
54
|
-
const { repoPath, outputDir: customOutputDir, target = 'all' } = input;
|
|
244
|
+
const { repoPath, outputDir: customOutputDir, target = 'all', offset = 0, limit = 3 } = input;
|
|
55
245
|
const resolvedRepoPath = path.resolve(repoPath);
|
|
56
246
|
const outputDir = customOutputDir
|
|
57
247
|
? path.resolve(customOutputDir)
|
|
@@ -70,11 +260,11 @@ After calling this tool, write the suggestedContent to each file path.`,
|
|
|
70
260
|
error: `Scaffold directory does not exist: ${outputDir}. Run initializeContext first.`
|
|
71
261
|
};
|
|
72
262
|
}
|
|
73
|
-
//
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
const
|
|
77
|
-
//
|
|
263
|
+
// Get or build semantic context (cached for efficiency)
|
|
264
|
+
const semanticContext = await getOrBuildContext(resolvedRepoPath);
|
|
265
|
+
// Collect all file paths first
|
|
266
|
+
const allFiles = [];
|
|
267
|
+
// Collect docs
|
|
78
268
|
if (target === 'all' || target === 'docs') {
|
|
79
269
|
const docsDir = path.join(outputDir, 'docs');
|
|
80
270
|
if (await fs.pathExists(docsDir)) {
|
|
@@ -82,21 +272,15 @@ After calling this tool, write the suggestedContent to each file path.`,
|
|
|
82
272
|
for (const file of docFiles) {
|
|
83
273
|
if (!file.endsWith('.md'))
|
|
84
274
|
continue;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const suggestedContent = generateDocContent(file, currentContent, semanticContext);
|
|
89
|
-
filesToFill.push({
|
|
90
|
-
path: filePath,
|
|
91
|
-
relativePath: path.relative(outputDir, filePath),
|
|
92
|
-
currentContent,
|
|
93
|
-
suggestedContent,
|
|
275
|
+
allFiles.push({
|
|
276
|
+
path: path.join(docsDir, file),
|
|
277
|
+
relativePath: path.relative(outputDir, path.join(docsDir, file)),
|
|
94
278
|
type: 'doc'
|
|
95
279
|
});
|
|
96
280
|
}
|
|
97
281
|
}
|
|
98
282
|
}
|
|
99
|
-
//
|
|
283
|
+
// Collect agents
|
|
100
284
|
if (target === 'all' || target === 'agents') {
|
|
101
285
|
const agentsDir = path.join(outputDir, 'agents');
|
|
102
286
|
if (await fs.pathExists(agentsDir)) {
|
|
@@ -104,21 +288,15 @@ After calling this tool, write the suggestedContent to each file path.`,
|
|
|
104
288
|
for (const file of agentFiles) {
|
|
105
289
|
if (!file.endsWith('.md') || file.toLowerCase() === 'readme.md')
|
|
106
290
|
continue;
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
const suggestedContent = generateAgentContent(agentType, currentContent, semanticContext);
|
|
111
|
-
filesToFill.push({
|
|
112
|
-
path: filePath,
|
|
113
|
-
relativePath: path.relative(outputDir, filePath),
|
|
114
|
-
currentContent,
|
|
115
|
-
suggestedContent,
|
|
291
|
+
allFiles.push({
|
|
292
|
+
path: path.join(agentsDir, file),
|
|
293
|
+
relativePath: path.relative(outputDir, path.join(agentsDir, file)),
|
|
116
294
|
type: 'agent'
|
|
117
295
|
});
|
|
118
296
|
}
|
|
119
297
|
}
|
|
120
298
|
}
|
|
121
|
-
//
|
|
299
|
+
// Collect plans
|
|
122
300
|
if (target === 'all' || target === 'plans') {
|
|
123
301
|
const plansDir = path.join(outputDir, 'plans');
|
|
124
302
|
if (await fs.pathExists(plansDir)) {
|
|
@@ -126,28 +304,54 @@ After calling this tool, write the suggestedContent to each file path.`,
|
|
|
126
304
|
for (const file of planFiles) {
|
|
127
305
|
if (!file.endsWith('.md') || file.toLowerCase() === 'readme.md')
|
|
128
306
|
continue;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
path: filePath,
|
|
133
|
-
relativePath: path.relative(outputDir, filePath),
|
|
134
|
-
currentContent,
|
|
135
|
-
suggestedContent: currentContent, // Plans need manual filling based on goals
|
|
307
|
+
allFiles.push({
|
|
308
|
+
path: path.join(plansDir, file),
|
|
309
|
+
relativePath: path.relative(outputDir, path.join(plansDir, file)),
|
|
136
310
|
type: 'plan'
|
|
137
311
|
});
|
|
138
312
|
}
|
|
139
313
|
}
|
|
140
314
|
}
|
|
141
|
-
|
|
315
|
+
const totalCount = allFiles.length;
|
|
316
|
+
// Apply pagination (limit=0 means all files)
|
|
317
|
+
const effectiveLimit = limit === 0 ? totalCount : limit;
|
|
318
|
+
const paginatedFiles = allFiles.slice(offset, offset + effectiveLimit);
|
|
319
|
+
// Generate content only for paginated files
|
|
320
|
+
const filesToFill = [];
|
|
321
|
+
for (const fileInfo of paginatedFiles) {
|
|
322
|
+
const currentContent = await fs.readFile(fileInfo.path, 'utf-8');
|
|
323
|
+
let suggestedContent;
|
|
324
|
+
if (fileInfo.type === 'doc') {
|
|
325
|
+
suggestedContent = generateDocContent(path.basename(fileInfo.path), currentContent, semanticContext);
|
|
326
|
+
}
|
|
327
|
+
else if (fileInfo.type === 'agent') {
|
|
328
|
+
const agentType = path.basename(fileInfo.path, '.md');
|
|
329
|
+
suggestedContent = generateAgentContent(agentType, currentContent, semanticContext);
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
suggestedContent = currentContent; // Plans need manual filling
|
|
333
|
+
}
|
|
334
|
+
filesToFill.push({
|
|
335
|
+
path: fileInfo.path,
|
|
336
|
+
relativePath: fileInfo.relativePath,
|
|
337
|
+
suggestedContent,
|
|
338
|
+
type: fileInfo.type
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
const hasMore = offset + paginatedFiles.length < totalCount;
|
|
142
342
|
return {
|
|
143
343
|
success: true,
|
|
144
|
-
codebaseContext: semanticContext,
|
|
145
344
|
filesToFill,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
345
|
+
pagination: {
|
|
346
|
+
offset,
|
|
347
|
+
limit: effectiveLimit,
|
|
348
|
+
returned: filesToFill.length,
|
|
349
|
+
totalCount,
|
|
350
|
+
hasMore
|
|
351
|
+
},
|
|
352
|
+
instructions: hasMore
|
|
353
|
+
? `Processed ${filesToFill.length} of ${totalCount} files. Call again with offset=${offset + paginatedFiles.length} to continue.`
|
|
354
|
+
: `All ${totalCount} files processed. Write each suggestedContent to its file path.`
|
|
151
355
|
};
|
|
152
356
|
}
|
|
153
357
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fillScaffoldingTool.js","sourceRoot":"","sources":["../../../../src/services/ai/tools/fillScaffoldingTool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fillScaffoldingTool.js","sourceRoot":"","sources":["../../../../src/services/ai/tools/fillScaffoldingTool.ts"],"names":[],"mappings":"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"}
|