@ai-coders/context 0.4.0 → 0.5.1
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 +117 -146
- package/dist/fragments/compose.d.ts +30 -0
- package/dist/fragments/compose.d.ts.map +1 -0
- package/dist/fragments/compose.js +274 -0
- package/dist/fragments/compose.js.map +1 -0
- package/dist/fragments/extractors/index.d.ts +26 -0
- package/dist/fragments/extractors/index.d.ts.map +1 -0
- package/dist/fragments/extractors/index.js +58 -0
- package/dist/fragments/extractors/index.js.map +1 -0
- package/dist/fragments/extractors/module.d.ts +12 -0
- package/dist/fragments/extractors/module.d.ts.map +1 -0
- package/dist/fragments/extractors/module.js +302 -0
- package/dist/fragments/extractors/module.js.map +1 -0
- package/dist/fragments/extractors/project.d.ts +12 -0
- package/dist/fragments/extractors/project.d.ts.map +1 -0
- package/dist/fragments/extractors/project.js +274 -0
- package/dist/fragments/extractors/project.js.map +1 -0
- package/dist/fragments/extractors/semantic.d.ts +12 -0
- package/dist/fragments/extractors/semantic.d.ts.map +1 -0
- package/dist/fragments/extractors/semantic.js +329 -0
- package/dist/fragments/extractors/semantic.js.map +1 -0
- package/dist/fragments/index.d.ts +47 -0
- package/dist/fragments/index.d.ts.map +1 -0
- package/dist/fragments/index.js +75 -0
- package/dist/fragments/index.js.map +1 -0
- package/dist/fragments/query.d.ts +101 -0
- package/dist/fragments/query.d.ts.map +1 -0
- package/dist/fragments/query.js +200 -0
- package/dist/fragments/query.js.map +1 -0
- package/dist/fragments/render/compact.d.ts +15 -0
- package/dist/fragments/render/compact.d.ts.map +1 -0
- package/dist/fragments/render/compact.js +209 -0
- package/dist/fragments/render/compact.js.map +1 -0
- package/dist/fragments/render/index.d.ts +17 -0
- package/dist/fragments/render/index.d.ts.map +1 -0
- package/dist/fragments/render/index.js +40 -0
- package/dist/fragments/render/index.js.map +1 -0
- package/dist/fragments/render/json.d.ts +9 -0
- package/dist/fragments/render/json.d.ts.map +1 -0
- package/dist/fragments/render/json.js +44 -0
- package/dist/fragments/render/json.js.map +1 -0
- package/dist/fragments/render/markdown.d.ts +9 -0
- package/dist/fragments/render/markdown.d.ts.map +1 -0
- package/dist/fragments/render/markdown.js +291 -0
- package/dist/fragments/render/markdown.js.map +1 -0
- package/dist/fragments/store.d.ts +49 -0
- package/dist/fragments/store.d.ts.map +1 -0
- package/dist/fragments/store.js +161 -0
- package/dist/fragments/store.js.map +1 -0
- package/dist/fragments/types.d.ts +241 -0
- package/dist/fragments/types.d.ts.map +1 -0
- package/dist/fragments/types.js +8 -0
- package/dist/fragments/types.js.map +1 -0
- package/dist/generators/agents/agentGenerator.d.ts +8 -1
- package/dist/generators/agents/agentGenerator.d.ts.map +1 -1
- package/dist/generators/agents/agentGenerator.js +108 -10
- package/dist/generators/agents/agentGenerator.js.map +1 -1
- package/dist/generators/agents/templates/playbookTemplate.d.ts +3 -2
- package/dist/generators/agents/templates/playbookTemplate.d.ts.map +1 -1
- package/dist/generators/agents/templates/playbookTemplate.js +147 -45
- package/dist/generators/agents/templates/playbookTemplate.js.map +1 -1
- package/dist/generators/agents/templates/types.d.ts +9 -1
- package/dist/generators/agents/templates/types.d.ts.map +1 -1
- package/dist/generators/documentation/documentationGenerator.d.ts +2 -0
- package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -1
- package/dist/generators/documentation/documentationGenerator.js +18 -3
- package/dist/generators/documentation/documentationGenerator.js.map +1 -1
- package/dist/generators/documentation/guideRegistry.d.ts.map +1 -1
- package/dist/generators/documentation/guideRegistry.js +0 -8
- package/dist/generators/documentation/guideRegistry.js.map +1 -1
- package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/apiReferenceTemplate.js +3 -22
- 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 +174 -36
- package/dist/generators/documentation/templates/architectureTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/common.d.ts +33 -1
- package/dist/generators/documentation/templates/common.d.ts.map +1 -1
- package/dist/generators/documentation/templates/common.js +144 -10
- 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 +106 -22
- 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 +4 -19
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/glossaryTemplate.d.ts +1 -1
- package/dist/generators/documentation/templates/glossaryTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/glossaryTemplate.js +57 -25
- package/dist/generators/documentation/templates/glossaryTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/indexTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/indexTemplate.js +1 -18
- package/dist/generators/documentation/templates/indexTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/migrationTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/migrationTemplate.js +3 -23
- 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 -23
- 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 +94 -28
- 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 -22
- 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 +4 -19
- 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 -25
- 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 -23
- package/dist/generators/documentation/templates/troubleshootingTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/types.d.ts +2 -1
- package/dist/generators/documentation/templates/types.d.ts.map +1 -1
- package/dist/generators/plans/planGenerator.d.ts +4 -0
- package/dist/generators/plans/planGenerator.d.ts.map +1 -1
- package/dist/generators/plans/planGenerator.js +30 -2
- package/dist/generators/plans/planGenerator.js.map +1 -1
- package/dist/generators/plans/templates/indexTemplate.d.ts.map +1 -1
- package/dist/generators/plans/templates/indexTemplate.js +3 -12
- package/dist/generators/plans/templates/indexTemplate.js.map +1 -1
- package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -1
- package/dist/generators/plans/templates/planTemplate.js +57 -33
- package/dist/generators/plans/templates/planTemplate.js.map +1 -1
- package/dist/generators/plans/templates/types.d.ts +10 -0
- package/dist/generators/plans/templates/types.d.ts.map +1 -1
- package/dist/generators/shared/generatorUtils.d.ts.map +1 -1
- package/dist/generators/shared/generatorUtils.js +6 -9
- package/dist/generators/shared/generatorUtils.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +646 -114
- package/dist/index.js.map +1 -1
- package/dist/prompts/defaults.d.ts +2 -2
- package/dist/prompts/defaults.d.ts.map +1 -1
- package/dist/prompts/defaults.js +26 -56
- package/dist/prompts/defaults.js.map +1 -1
- package/dist/services/ai/agentEvents.d.ts +45 -0
- package/dist/services/ai/agentEvents.d.ts.map +1 -0
- package/dist/services/ai/agentEvents.js +61 -0
- package/dist/services/ai/agentEvents.js.map +1 -0
- package/dist/services/ai/agents/documentationAgent.d.ts +53 -0
- package/dist/services/ai/agents/documentationAgent.d.ts.map +1 -0
- package/dist/services/ai/agents/documentationAgent.js +217 -0
- package/dist/services/ai/agents/documentationAgent.js.map +1 -0
- package/dist/services/ai/agents/index.d.ts +7 -0
- package/dist/services/ai/agents/index.d.ts.map +1 -0
- package/dist/services/ai/agents/index.js +10 -0
- package/dist/services/ai/agents/index.js.map +1 -0
- package/dist/services/ai/agents/planAgent.d.ts +68 -0
- package/dist/services/ai/agents/planAgent.d.ts.map +1 -0
- package/dist/services/ai/agents/planAgent.js +342 -0
- package/dist/services/ai/agents/planAgent.js.map +1 -0
- package/dist/services/ai/agents/playbookAgent.d.ts +54 -0
- package/dist/services/ai/agents/playbookAgent.d.ts.map +1 -0
- package/dist/services/ai/agents/playbookAgent.js +244 -0
- package/dist/services/ai/agents/playbookAgent.js.map +1 -0
- package/dist/services/ai/aiSdkClient.d.ts +67 -0
- package/dist/services/ai/aiSdkClient.d.ts.map +1 -0
- package/dist/services/ai/aiSdkClient.js +143 -0
- package/dist/services/ai/aiSdkClient.js.map +1 -0
- package/dist/services/ai/index.d.ts +7 -0
- package/dist/services/ai/index.d.ts.map +1 -0
- package/dist/services/ai/index.js +49 -0
- package/dist/services/ai/index.js.map +1 -0
- 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/providerFactory.d.ts +35 -0
- package/dist/services/ai/providerFactory.d.ts.map +1 -0
- package/dist/services/ai/providerFactory.js +107 -0
- package/dist/services/ai/providerFactory.js.map +1 -0
- package/dist/services/ai/schemas.d.ts +331 -0
- package/dist/services/ai/schemas.d.ts.map +1 -0
- package/dist/services/ai/schemas.js +236 -0
- package/dist/services/ai/schemas.js.map +1 -0
- 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/analyzeSymbolsTool.d.ts +33 -0
- package/dist/services/ai/tools/analyzeSymbolsTool.d.ts.map +1 -0
- package/dist/services/ai/tools/analyzeSymbolsTool.js +57 -0
- package/dist/services/ai/tools/analyzeSymbolsTool.js.map +1 -0
- package/dist/services/ai/tools/checkScaffoldingTool.d.ts +18 -0
- package/dist/services/ai/tools/checkScaffoldingTool.d.ts.map +1 -0
- package/dist/services/ai/tools/checkScaffoldingTool.js +86 -0
- package/dist/services/ai/tools/checkScaffoldingTool.js.map +1 -0
- package/dist/services/ai/tools/fillScaffoldingTool.d.ts +108 -0
- package/dist/services/ai/tools/fillScaffoldingTool.d.ts.map +1 -0
- package/dist/services/ai/tools/fillScaffoldingTool.js +463 -0
- package/dist/services/ai/tools/fillScaffoldingTool.js.map +1 -0
- package/dist/services/ai/tools/getFileStructureTool.d.ts +29 -0
- package/dist/services/ai/tools/getFileStructureTool.d.ts.map +1 -0
- package/dist/services/ai/tools/getFileStructureTool.js +48 -0
- package/dist/services/ai/tools/getFileStructureTool.js.map +1 -0
- package/dist/services/ai/tools/index.d.ts +20 -0
- package/dist/services/ai/tools/index.d.ts.map +1 -0
- package/dist/services/ai/tools/index.js +68 -0
- package/dist/services/ai/tools/index.js.map +1 -0
- package/dist/services/ai/tools/initializeContextTool.d.ts +25 -0
- package/dist/services/ai/tools/initializeContextTool.d.ts.map +1 -0
- package/dist/services/ai/tools/initializeContextTool.js +121 -0
- package/dist/services/ai/tools/initializeContextTool.js.map +1 -0
- package/dist/services/ai/tools/listFilesTool.d.ts +18 -0
- package/dist/services/ai/tools/listFilesTool.d.ts.map +1 -0
- package/dist/services/ai/tools/listFilesTool.js +34 -0
- package/dist/services/ai/tools/listFilesTool.js.map +1 -0
- package/dist/services/ai/tools/readFileTool.d.ts +17 -0
- package/dist/services/ai/tools/readFileTool.d.ts.map +1 -0
- package/dist/services/ai/tools/readFileTool.js +63 -0
- package/dist/services/ai/tools/readFileTool.js.map +1 -0
- package/dist/services/ai/tools/scaffoldPlanTool.d.ts +19 -0
- package/dist/services/ai/tools/scaffoldPlanTool.d.ts.map +1 -0
- package/dist/services/ai/tools/scaffoldPlanTool.js +81 -0
- package/dist/services/ai/tools/scaffoldPlanTool.js.map +1 -0
- package/dist/services/ai/tools/searchCodeTool.d.ts +25 -0
- package/dist/services/ai/tools/searchCodeTool.d.ts.map +1 -0
- package/dist/services/ai/tools/searchCodeTool.js +96 -0
- package/dist/services/ai/tools/searchCodeTool.js.map +1 -0
- package/dist/services/fill/fillService.d.ts +11 -1
- package/dist/services/fill/fillService.d.ts.map +1 -1
- package/dist/services/fill/fillService.js +157 -40
- package/dist/services/fill/fillService.js.map +1 -1
- package/dist/services/init/initService.d.ts +1 -0
- package/dist/services/init/initService.d.ts.map +1 -1
- package/dist/services/init/initService.js +12 -7
- package/dist/services/init/initService.js.map +1 -1
- package/dist/services/llmClientFactory.d.ts +36 -2
- package/dist/services/llmClientFactory.d.ts.map +1 -1
- package/dist/services/llmClientFactory.js +57 -11
- package/dist/services/llmClientFactory.js.map +1 -1
- package/dist/services/mcp/index.d.ts +2 -0
- package/dist/services/mcp/index.d.ts.map +1 -0
- package/dist/services/mcp/index.js +7 -0
- package/dist/services/mcp/index.js.map +1 -0
- package/dist/services/mcp/mcpServer.d.ts +45 -0
- package/dist/services/mcp/mcpServer.d.ts.map +1 -0
- package/dist/services/mcp/mcpServer.js +411 -0
- package/dist/services/mcp/mcpServer.js.map +1 -0
- package/dist/services/openRouterClient.js +1 -1
- package/dist/services/openRouterClient.js.map +1 -1
- package/dist/services/passthrough/commandRouter.d.ts +53 -0
- package/dist/services/passthrough/commandRouter.d.ts.map +1 -0
- package/dist/services/passthrough/commandRouter.js +349 -0
- package/dist/services/passthrough/commandRouter.js.map +1 -0
- package/dist/services/passthrough/index.d.ts +7 -0
- package/dist/services/passthrough/index.d.ts.map +1 -0
- package/dist/services/passthrough/index.js +23 -0
- package/dist/services/passthrough/index.js.map +1 -0
- package/dist/services/passthrough/protocol.d.ts +269 -0
- package/dist/services/passthrough/protocol.d.ts.map +1 -0
- package/dist/services/passthrough/protocol.js +151 -0
- package/dist/services/passthrough/protocol.js.map +1 -0
- package/dist/services/passthrough/stdinReader.d.ts +42 -0
- package/dist/services/passthrough/stdinReader.d.ts.map +1 -0
- package/dist/services/passthrough/stdinReader.js +111 -0
- package/dist/services/passthrough/stdinReader.js.map +1 -0
- package/dist/services/plan/planService.d.ts +3 -1
- package/dist/services/plan/planService.d.ts.map +1 -1
- package/dist/services/plan/planService.js +49 -41
- package/dist/services/plan/planService.js.map +1 -1
- package/dist/services/semantic/codebaseAnalyzer.d.ts +40 -0
- package/dist/services/semantic/codebaseAnalyzer.d.ts.map +1 -0
- package/dist/services/semantic/codebaseAnalyzer.js +540 -0
- package/dist/services/semantic/codebaseAnalyzer.js.map +1 -0
- package/dist/services/semantic/contextBuilder.d.ts +79 -0
- package/dist/services/semantic/contextBuilder.d.ts.map +1 -0
- package/dist/services/semantic/contextBuilder.js +538 -0
- package/dist/services/semantic/contextBuilder.js.map +1 -0
- package/dist/services/semantic/index.d.ts +12 -0
- package/dist/services/semantic/index.d.ts.map +1 -0
- package/dist/services/semantic/index.js +33 -0
- package/dist/services/semantic/index.js.map +1 -0
- package/dist/services/semantic/lsp/index.d.ts +2 -0
- package/dist/services/semantic/lsp/index.d.ts.map +1 -0
- package/dist/services/semantic/lsp/index.js +6 -0
- package/dist/services/semantic/lsp/index.js.map +1 -0
- package/dist/services/semantic/lsp/lspLayer.d.ts +32 -0
- package/dist/services/semantic/lsp/lspLayer.d.ts.map +1 -0
- package/dist/services/semantic/lsp/lspLayer.js +378 -0
- package/dist/services/semantic/lsp/lspLayer.js.map +1 -0
- package/dist/services/semantic/treeSitter/index.d.ts +2 -0
- package/dist/services/semantic/treeSitter/index.d.ts.map +1 -0
- package/dist/services/semantic/treeSitter/index.js +6 -0
- package/dist/services/semantic/treeSitter/index.js.map +1 -0
- package/dist/services/semantic/treeSitter/treeSitterLayer.d.ts +37 -0
- package/dist/services/semantic/treeSitter/treeSitterLayer.d.ts.map +1 -0
- package/dist/services/semantic/treeSitter/treeSitterLayer.js +518 -0
- package/dist/services/semantic/treeSitter/treeSitterLayer.js.map +1 -0
- package/dist/services/semantic/types.d.ts +122 -0
- package/dist/services/semantic/types.d.ts.map +1 -0
- package/dist/services/semantic/types.js +31 -0
- package/dist/services/semantic/types.js.map +1 -0
- package/dist/services/serve/index.d.ts +2 -0
- package/dist/services/serve/index.d.ts.map +1 -0
- package/dist/services/serve/index.js +6 -0
- package/dist/services/serve/index.js.map +1 -0
- package/dist/services/serve/serveService.d.ts +38 -0
- package/dist/services/serve/serveService.d.ts.map +1 -0
- package/dist/services/serve/serveService.js +99 -0
- package/dist/services/serve/serveService.js.map +1 -0
- package/dist/services/shared/llmConfig.d.ts +19 -3
- package/dist/services/shared/llmConfig.d.ts.map +1 -1
- package/dist/services/shared/llmConfig.js +39 -10
- package/dist/services/shared/llmConfig.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/sync/index.d.ts +6 -0
- package/dist/services/sync/index.d.ts.map +1 -0
- package/dist/services/sync/index.js +16 -0
- package/dist/services/sync/index.js.map +1 -0
- package/dist/services/sync/markdownReferenceHandler.d.ts +3 -0
- package/dist/services/sync/markdownReferenceHandler.d.ts.map +1 -0
- package/dist/services/sync/markdownReferenceHandler.js +133 -0
- package/dist/services/sync/markdownReferenceHandler.js.map +1 -0
- package/dist/services/sync/presets.d.ts +6 -0
- package/dist/services/sync/presets.d.ts.map +1 -0
- package/dist/services/sync/presets.js +49 -0
- package/dist/services/sync/presets.js.map +1 -0
- package/dist/services/sync/symlinkHandler.d.ts +7 -0
- package/dist/services/sync/symlinkHandler.d.ts.map +1 -0
- package/dist/services/sync/symlinkHandler.js +129 -0
- package/dist/services/sync/symlinkHandler.js.map +1 -0
- package/dist/services/sync/syncService.d.ts +15 -0
- package/dist/services/sync/syncService.d.ts.map +1 -0
- package/dist/services/sync/syncService.js +222 -0
- package/dist/services/sync/syncService.js.map +1 -0
- package/dist/services/sync/types.d.ts +62 -0
- package/dist/services/sync/types.d.ts.map +1 -0
- package/dist/services/sync/types.js +3 -0
- package/dist/services/sync/types.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 +2 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/cliUI.d.ts +33 -0
- package/dist/utils/cliUI.d.ts.map +1 -1
- package/dist/utils/cliUI.js +157 -107
- package/dist/utils/cliUI.js.map +1 -1
- package/dist/utils/contentSanitizer.d.ts +42 -0
- package/dist/utils/contentSanitizer.d.ts.map +1 -0
- package/dist/utils/contentSanitizer.js +238 -0
- package/dist/utils/contentSanitizer.js.map +1 -0
- 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/gitService.d.ts.map +1 -1
- package/dist/utils/gitService.js +12 -14
- package/dist/utils/gitService.js.map +1 -1
- package/dist/utils/i18n.d.ts +101 -13
- package/dist/utils/i18n.d.ts.map +1 -1
- package/dist/utils/i18n.js +204 -28
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/prompts/configSummary.d.ts +7 -0
- package/dist/utils/prompts/configSummary.d.ts.map +1 -0
- package/dist/utils/prompts/configSummary.js +63 -0
- package/dist/utils/prompts/configSummary.js.map +1 -0
- package/dist/utils/prompts/index.d.ts +22 -0
- package/dist/utils/prompts/index.d.ts.map +1 -0
- package/dist/utils/prompts/index.js +122 -0
- package/dist/utils/prompts/index.js.map +1 -0
- package/dist/utils/prompts/llmPrompts.d.ts +11 -0
- package/dist/utils/prompts/llmPrompts.d.ts.map +1 -0
- package/dist/utils/prompts/llmPrompts.js +96 -0
- package/dist/utils/prompts/llmPrompts.js.map +1 -0
- package/dist/utils/prompts/smartDefaults.d.ts +15 -0
- package/dist/utils/prompts/smartDefaults.d.ts.map +1 -0
- package/dist/utils/prompts/smartDefaults.js +105 -0
- package/dist/utils/prompts/smartDefaults.js.map +1 -0
- package/dist/utils/prompts/types.d.ts +38 -0
- package/dist/utils/prompts/types.d.ts.map +1 -0
- package/dist/utils/prompts/types.js +3 -0
- package/dist/utils/prompts/types.js.map +1 -0
- package/dist/utils/theme.d.ts +66 -0
- package/dist/utils/theme.d.ts.map +1 -0
- package/dist/utils/theme.js +93 -0
- package/dist/utils/theme.js.map +1 -0
- package/dist/version.d.ts +8 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +15 -0
- package/dist/version.js.map +1 -0
- package/package.json +12 -2
- package/prompts/update_scaffold_prompt.md +14 -34
- package/dist/commands/shared/agents.d.ts +0 -2
- package/dist/commands/shared/agents.d.ts.map +0 -1
- package/dist/commands/shared/agents.js +0 -15
- package/dist/commands/shared/agents.js.map +0 -1
- package/dist/commands/shared/selection.d.ts +0 -12
- package/dist/commands/shared/selection.d.ts.map +0 -1
- package/dist/commands/shared/selection.js +0 -95
- package/dist/commands/shared/selection.js.map +0 -1
- package/dist/generators/documentation/templates/frontMatter.d.ts +0 -11
- package/dist/generators/documentation/templates/frontMatter.d.ts.map +0 -1
- package/dist/generators/documentation/templates/frontMatter.js +0 -29
- package/dist/generators/documentation/templates/frontMatter.js.map +0 -1
- package/dist/services/anthropicClient.d.ts +0 -12
- package/dist/services/anthropicClient.d.ts.map +0 -1
- package/dist/services/anthropicClient.js +0 -98
- package/dist/services/anthropicClient.js.map +0 -1
- package/dist/services/geminiClient.d.ts +0 -12
- package/dist/services/geminiClient.d.ts.map +0 -1
- package/dist/services/geminiClient.js +0 -96
- package/dist/services/geminiClient.js.map +0 -1
- package/dist/services/grokClient.d.ts +0 -12
- package/dist/services/grokClient.d.ts.map +0 -1
- package/dist/services/grokClient.js +0 -101
- package/dist/services/grokClient.js.map +0 -1
- package/dist/services/openaiClient.d.ts +0 -12
- package/dist/services/openaiClient.d.ts.map +0 -1
- package/dist/services/openaiClient.js +0 -98
- package/dist/services/openaiClient.js.map +0 -1
- package/dist/utils/pricing.d.ts +0 -14
- package/dist/utils/pricing.d.ts.map +0 -1
- package/dist/utils/pricing.js +0 -115
- package/dist/utils/pricing.js.map +0 -1
package/README.md
CHANGED
|
@@ -4,195 +4,166 @@
|
|
|
4
4
|
[](https://github.com/vinilana/ai-coders-context/actions/workflows/ci.yml)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
|
|
7
|
-
<img width="663" height="192" alt="image" src="https://github.com/user-attachments/assets/4b07f61d-6800-420a-ae91-6e952cbc790d" />
|
|
8
7
|
|
|
8
|
+
Context engineering for AI should be stupidly simple.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
## ⚙️ Requirements
|
|
13
|
-
|
|
14
|
-
- Node.js 20+ (we currently test on 20, 22, 23, and 24)
|
|
15
|
-
|
|
16
|
-
## ✨ What You Get
|
|
17
|
-
|
|
18
|
-
- 📚 `docs/` folder with a documentation index plus ready-to-edit guides (overview, architecture, workflow, testing)
|
|
19
|
-
- 🤖 `agents/` folder containing playbooks for common engineering agents and a handy index
|
|
20
|
-
- 🔁 Repeatable scaffolding that you can re-run as the project evolves
|
|
21
|
-
- 🧭 Repository-aware templates that highlight top-level directories for quick orientation
|
|
22
|
-
- 🧠 AI-ready front matter and `agent-update` markers so assistants know exactly what to refresh
|
|
23
|
-
|
|
24
|
-
## 📦 Installation
|
|
25
|
-
|
|
26
|
-
Use `npx` to run the CLI without installing globally:
|
|
10
|
+
## Usage
|
|
27
11
|
|
|
28
12
|
```bash
|
|
29
13
|
npx @ai-coders/context
|
|
30
14
|
```
|
|
31
15
|
|
|
32
|
-
|
|
16
|
+
That's it. The wizard detects what needs to be done.
|
|
33
17
|
|
|
34
|
-
|
|
35
|
-
npm install --save-dev @ai-coders/context
|
|
36
|
-
```
|
|
18
|
+
## What it does
|
|
37
19
|
|
|
38
|
-
|
|
20
|
+
1. **Creates documentation** — Structured docs from your codebase
|
|
21
|
+
2. **Generates playbooks** — Guides for AI agents (Claude, GPT, etc.)
|
|
22
|
+
3. **Keeps it updated** — Detects code changes and suggests updates
|
|
39
23
|
|
|
40
|
-
|
|
41
|
-
# Launch the interactive wizard
|
|
42
|
-
npx @ai-coders/context
|
|
24
|
+
## For automation
|
|
43
25
|
|
|
26
|
+
```bash
|
|
27
|
+
npx @ai-coders/context init . # Create structure
|
|
28
|
+
npx @ai-coders/context fill . # Fill with AI
|
|
29
|
+
npx @ai-coders/context update # Update outdated docs
|
|
30
|
+
npx @ai-coders/context plan name # Create work plan
|
|
31
|
+
```
|
|
44
32
|
|
|
45
|
-
|
|
46
|
-
npx @ai-coders/context init ./my-repo
|
|
33
|
+
## Requirements
|
|
47
34
|
|
|
48
|
-
|
|
49
|
-
|
|
35
|
+
- Node.js 20+
|
|
36
|
+
- API key from a supported provider (for AI features)
|
|
50
37
|
|
|
51
|
-
|
|
52
|
-
npx @ai-coders/context init ./my-repo agents --output ./knowledge-base
|
|
38
|
+
## Supported Providers
|
|
53
39
|
|
|
54
|
-
|
|
55
|
-
|
|
40
|
+
| Provider | Environment Variable |
|
|
41
|
+
|----------|---------------------|
|
|
42
|
+
| OpenRouter | `OPENROUTER_API_KEY` |
|
|
43
|
+
| OpenAI | `OPENAI_API_KEY` |
|
|
44
|
+
| Anthropic | `ANTHROPIC_API_KEY` |
|
|
45
|
+
| Google | `GOOGLE_API_KEY` |
|
|
56
46
|
|
|
57
|
-
|
|
58
|
-
npx @ai-coders/context plan release-readiness --output ./.context
|
|
47
|
+
## MCP Server Setup
|
|
59
48
|
|
|
60
|
-
|
|
61
|
-
npx @ai-coders/context plan release-readiness --output ./.context --fill --dry-run
|
|
62
|
-
```
|
|
49
|
+
This package includes an MCP (Model Context Protocol) server that provides AI coding assistants with powerful tools to analyze and document your codebase.
|
|
63
50
|
|
|
64
|
-
|
|
51
|
+
### Claude Code (CLI)
|
|
65
52
|
|
|
66
|
-
|
|
53
|
+
Add the MCP server using the Claude CLI:
|
|
67
54
|
|
|
55
|
+
```bash
|
|
56
|
+
claude mcp add ai-context -- npx @ai-coders/context mcp
|
|
68
57
|
```
|
|
69
|
-
.context/
|
|
70
|
-
├── agents/
|
|
71
|
-
│ ├── README.md
|
|
72
|
-
│ ├── code-reviewer.md
|
|
73
|
-
│ └── ...
|
|
74
|
-
└── docs/
|
|
75
|
-
├── README.md
|
|
76
|
-
├── architecture.md
|
|
77
|
-
└── ...
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
Customize the Markdown files to reflect your project’s specifics and commit them alongside the code.
|
|
81
|
-
|
|
82
|
-
## 🧠 Guided Updates for AI Assistants
|
|
83
58
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
59
|
+
Or configure manually in `~/.claude.json`:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"mcpServers": {
|
|
64
|
+
"ai-context": {
|
|
65
|
+
"command": "npx",
|
|
66
|
+
"args": ["@ai-coders/context", "mcp"]
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
91
71
|
|
|
92
|
-
###
|
|
72
|
+
### Claude Desktop
|
|
93
73
|
|
|
94
|
-
|
|
74
|
+
Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS or `%APPDATA%\Claude\claude_desktop_config.json` on Windows):
|
|
95
75
|
|
|
96
|
-
|
|
97
|
-
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"mcpServers": {
|
|
79
|
+
"ai-context": {
|
|
80
|
+
"command": "npx",
|
|
81
|
+
"args": ["@ai-coders/context", "mcp"]
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
98
86
|
|
|
99
|
-
### AI
|
|
87
|
+
### Cursor AI
|
|
100
88
|
|
|
101
|
-
|
|
102
|
-
- `<!-- agent-fill:slot-id --> … <!-- /agent-fill -->` highlight inline placeholders that must be replaced with concrete details before removing the wrapper.
|
|
103
|
-
- `<!-- agent-readonly:context -->` flags guidance that should remain as-is; treat the adjacent content as instructions rather than editable prose.
|
|
89
|
+
Create `.cursor/mcp.json` in your project root:
|
|
104
90
|
|
|
105
|
-
|
|
91
|
+
```json
|
|
92
|
+
{
|
|
93
|
+
"mcpServers": {
|
|
94
|
+
"ai-context": {
|
|
95
|
+
"command": "npx",
|
|
96
|
+
"args": ["@ai-coders/context", "mcp"]
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
```
|
|
106
101
|
|
|
107
|
-
|
|
102
|
+
### Windsurf
|
|
108
103
|
|
|
109
|
-
|
|
110
|
-
Scaffold documentation and/or agent playbooks.
|
|
104
|
+
Add to your Windsurf MCP config (`~/.codeium/windsurf/mcp_config.json`):
|
|
111
105
|
|
|
106
|
+
```json
|
|
107
|
+
{
|
|
108
|
+
"mcpServers": {
|
|
109
|
+
"ai-context": {
|
|
110
|
+
"command": "npx",
|
|
111
|
+
"args": ["@ai-coders/context", "mcp"]
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
112
115
|
```
|
|
113
|
-
Usage: ai-context init <repo-path> [type]
|
|
114
|
-
|
|
115
|
-
Arguments:
|
|
116
|
-
repo-path Path to the repository you want to scan
|
|
117
|
-
type "docs", "agents", or "both" (default)
|
|
118
|
-
|
|
119
|
-
Options:
|
|
120
|
-
-o, --output <dir> Output directory (default: ./.context)
|
|
121
|
-
--exclude <patterns...> Glob patterns to skip during the scan
|
|
122
|
-
--include <patterns...> Glob patterns to explicitly include
|
|
123
|
-
-v, --verbose Print detailed progress information
|
|
124
|
-
-h, --help Display help for command
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### `fill`
|
|
128
|
-
Use an LLM to refresh scaffolded docs and agent playbooks automatically.
|
|
129
116
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
117
|
+
### Zed Editor
|
|
118
|
+
|
|
119
|
+
Add to your Zed settings (`~/.config/zed/settings.json`):
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"context_servers": {
|
|
124
|
+
"ai-context": {
|
|
125
|
+
"command": {
|
|
126
|
+
"path": "npx",
|
|
127
|
+
"args": ["@ai-coders/context", "mcp"]
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
142
132
|
```
|
|
143
133
|
|
|
144
|
-
|
|
134
|
+
### Cline (VS Code Extension)
|
|
145
135
|
|
|
146
|
-
|
|
147
|
-
Create a collaboration plan that links documentation guides and agent playbooks, or fill an existing plan with LLM assistance.
|
|
136
|
+
Configure in Cline settings (VS Code → Settings → Cline → MCP Servers):
|
|
148
137
|
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
-r, --repo <path> Repository root to summarize for additional context (fill mode)
|
|
159
|
-
-k, --api-key <key> API key for the selected LLM provider (fill mode)
|
|
160
|
-
-m, --model <model> LLM model to use (default: x-ai/grok-4-fast)
|
|
161
|
-
-p, --provider <name> Provider (openrouter only)
|
|
162
|
-
--base-url <url> Custom base URL for OpenRouter
|
|
163
|
-
--prompt <file> Instruction prompt to follow (optional; uses bundled instructions when omitted)
|
|
164
|
-
--dry-run Preview changes without writing files
|
|
165
|
-
--include <patterns...> Glob patterns to include during repository analysis
|
|
166
|
-
--exclude <patterns...> Glob patterns to exclude from repository analysis
|
|
167
|
-
-h, --help Display help for command
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"mcpServers": {
|
|
141
|
+
"ai-context": {
|
|
142
|
+
"command": "npx",
|
|
143
|
+
"args": ["@ai-coders/context", "mcp"]
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
168
147
|
```
|
|
169
148
|
|
|
170
|
-
|
|
149
|
+
### Available MCP Tools
|
|
171
150
|
|
|
172
|
-
|
|
151
|
+
Once configured, your AI assistant will have access to:
|
|
173
152
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
npm run test
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
During development you can run the CLI directly against TypeScript sources:
|
|
187
|
-
|
|
188
|
-
```bash
|
|
189
|
-
npm run dev -- ./path/to/repo
|
|
190
|
-
```
|
|
153
|
+
| Tool | Description |
|
|
154
|
+
|------|-------------|
|
|
155
|
+
| `buildSemanticContext` | Build optimized context for LLM prompts |
|
|
156
|
+
| `initializeContext` | Create `.context` scaffolding |
|
|
157
|
+
| `fillScaffolding` | Generate documentation content |
|
|
158
|
+
| `analyzeSymbols` | Analyze code symbols (classes, functions, etc.) |
|
|
159
|
+
| `searchCode` | Search for patterns across files |
|
|
160
|
+
| `getFileStructure` | Get repository directory structure |
|
|
161
|
+
| `scaffoldPlan` | Create work plans |
|
|
191
162
|
|
|
192
|
-
##
|
|
163
|
+
## Contributing
|
|
193
164
|
|
|
194
|
-
|
|
165
|
+
- [Development Guide](./AGENTS.md) — Development guidelines
|
|
195
166
|
|
|
196
|
-
##
|
|
167
|
+
## License
|
|
197
168
|
|
|
198
169
|
MIT © Vinícius Lana
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fragment Composition - Strategies for combining fragments
|
|
3
|
+
*/
|
|
4
|
+
import type { ContextFragment, CompositionOptions, FragmentStore } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Compose fragments into a coherent context using the specified strategy
|
|
7
|
+
*/
|
|
8
|
+
export declare function composeFragments(fragments: ContextFragment<unknown>[], options: CompositionOptions): ContextFragment<unknown>[];
|
|
9
|
+
/**
|
|
10
|
+
* Create a composition pipeline helper
|
|
11
|
+
*/
|
|
12
|
+
export declare function createComposer(store: FragmentStore): {
|
|
13
|
+
/**
|
|
14
|
+
* Compose by priority (default)
|
|
15
|
+
*/
|
|
16
|
+
byPriority(maxTokens?: number): ContextFragment<unknown>[];
|
|
17
|
+
/**
|
|
18
|
+
* Compose by expanding from a seed
|
|
19
|
+
*/
|
|
20
|
+
expand(seed: string, depth?: number, maxTokens?: number): ContextFragment<unknown>[];
|
|
21
|
+
/**
|
|
22
|
+
* Compose by task relevance
|
|
23
|
+
*/
|
|
24
|
+
forTask(task: string, maxTokens?: number): ContextFragment<unknown>[];
|
|
25
|
+
/**
|
|
26
|
+
* Get essential context (project overview + high priority)
|
|
27
|
+
*/
|
|
28
|
+
essential(maxTokens?: number): ContextFragment<unknown>[];
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=compose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/fragments/compose.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAElB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,EACrC,OAAO,EAAE,kBAAkB,GAC1B,eAAe,CAAC,OAAO,CAAC,EAAE,CAW5B;AA6QD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa;IAE/C;;OAEG;2BACoB,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE;IAO1D;;OAEG;iBACU,MAAM,UAAU,MAAM,cAAc,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE;IASpF;;OAEG;kBACW,MAAM,cAAc,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE;IAQrE;;OAEG;0BACmB,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE;EAe5D"}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Fragment Composition - Strategies for combining fragments
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.composeFragments = composeFragments;
|
|
7
|
+
exports.createComposer = createComposer;
|
|
8
|
+
/**
|
|
9
|
+
* Compose fragments into a coherent context using the specified strategy
|
|
10
|
+
*/
|
|
11
|
+
function composeFragments(fragments, options) {
|
|
12
|
+
switch (options.strategy) {
|
|
13
|
+
case 'priority':
|
|
14
|
+
return composePriority(fragments, options);
|
|
15
|
+
case 'expand':
|
|
16
|
+
return composeExpand(fragments, options);
|
|
17
|
+
case 'task':
|
|
18
|
+
return composeTask(fragments, options);
|
|
19
|
+
default:
|
|
20
|
+
return composePriority(fragments, options);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Priority-based composition: sort by priority, limit by tokens
|
|
25
|
+
*/
|
|
26
|
+
function composePriority(fragments, options) {
|
|
27
|
+
// Sort by priority (highest first)
|
|
28
|
+
const sorted = [...fragments].sort((a, b) => b.meta.priority - a.meta.priority);
|
|
29
|
+
if (!options.maxTokens) {
|
|
30
|
+
return sorted;
|
|
31
|
+
}
|
|
32
|
+
// Estimate tokens and cut off
|
|
33
|
+
return limitByTokens(sorted, options.maxTokens);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Graph expansion: start from a seed symbol/file, expand to related fragments
|
|
37
|
+
*/
|
|
38
|
+
function composeExpand(fragments, options) {
|
|
39
|
+
const seed = options.seed;
|
|
40
|
+
const depth = options.depth || 2;
|
|
41
|
+
if (!seed) {
|
|
42
|
+
return composePriority(fragments, options);
|
|
43
|
+
}
|
|
44
|
+
const result = [];
|
|
45
|
+
const visited = new Set();
|
|
46
|
+
const queue = [];
|
|
47
|
+
// Find seed fragments
|
|
48
|
+
const seedFragments = fragments.filter((f) => f.refs.symbols.includes(seed) ||
|
|
49
|
+
f.refs.files.some((file) => file.includes(seed)) ||
|
|
50
|
+
f.data &&
|
|
51
|
+
typeof f.data === 'object' &&
|
|
52
|
+
'name' in f.data &&
|
|
53
|
+
f.data.name === seed);
|
|
54
|
+
for (const fragment of seedFragments) {
|
|
55
|
+
queue.push({ fragment, level: 0 });
|
|
56
|
+
}
|
|
57
|
+
while (queue.length > 0) {
|
|
58
|
+
const { fragment, level } = queue.shift();
|
|
59
|
+
if (visited.has(fragment.id))
|
|
60
|
+
continue;
|
|
61
|
+
visited.add(fragment.id);
|
|
62
|
+
result.push(fragment);
|
|
63
|
+
if (level >= depth)
|
|
64
|
+
continue;
|
|
65
|
+
// Find related fragments
|
|
66
|
+
const related = findRelatedFragments(fragment, fragments, visited);
|
|
67
|
+
for (const relFragment of related) {
|
|
68
|
+
queue.push({ fragment: relFragment, level: level + 1 });
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Sort by priority within result
|
|
72
|
+
result.sort((a, b) => b.meta.priority - a.meta.priority);
|
|
73
|
+
if (options.maxTokens) {
|
|
74
|
+
return limitByTokens(result, options.maxTokens);
|
|
75
|
+
}
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Task-based composition: select fragments relevant to a task description
|
|
80
|
+
*/
|
|
81
|
+
function composeTask(fragments, options) {
|
|
82
|
+
const task = options.task;
|
|
83
|
+
if (!task) {
|
|
84
|
+
return composePriority(fragments, options);
|
|
85
|
+
}
|
|
86
|
+
// Extract keywords from task
|
|
87
|
+
const keywords = extractKeywords(task);
|
|
88
|
+
// Score fragments by relevance to task
|
|
89
|
+
const scored = fragments.map((fragment) => ({
|
|
90
|
+
fragment,
|
|
91
|
+
score: scoreRelevance(fragment, keywords),
|
|
92
|
+
}));
|
|
93
|
+
// Sort by combined score (relevance + priority)
|
|
94
|
+
scored.sort((a, b) => {
|
|
95
|
+
const aTotal = a.score * 0.7 + a.fragment.meta.priority * 0.3;
|
|
96
|
+
const bTotal = b.score * 0.7 + b.fragment.meta.priority * 0.3;
|
|
97
|
+
return bTotal - aTotal;
|
|
98
|
+
});
|
|
99
|
+
const result = scored.map((s) => s.fragment);
|
|
100
|
+
if (options.maxTokens) {
|
|
101
|
+
return limitByTokens(result, options.maxTokens);
|
|
102
|
+
}
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Find fragments related to a given fragment
|
|
107
|
+
*/
|
|
108
|
+
function findRelatedFragments(fragment, allFragments, visited) {
|
|
109
|
+
const related = [];
|
|
110
|
+
// By referenced fragments
|
|
111
|
+
for (const refId of fragment.refs.fragments) {
|
|
112
|
+
const refFragment = allFragments.find((f) => f.id === refId && !visited.has(f.id));
|
|
113
|
+
if (refFragment) {
|
|
114
|
+
related.push(refFragment);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// By shared files
|
|
118
|
+
for (const file of fragment.refs.files) {
|
|
119
|
+
const fileFragments = allFragments.filter((f) => f.refs.files.includes(file) && !visited.has(f.id));
|
|
120
|
+
related.push(...fileFragments);
|
|
121
|
+
}
|
|
122
|
+
// By shared symbols
|
|
123
|
+
for (const symbol of fragment.refs.symbols) {
|
|
124
|
+
const symbolFragments = allFragments.filter((f) => (f.refs.symbols.includes(symbol) ||
|
|
125
|
+
(f.data &&
|
|
126
|
+
typeof f.data === 'object' &&
|
|
127
|
+
'name' in f.data &&
|
|
128
|
+
f.data.name === symbol)) &&
|
|
129
|
+
!visited.has(f.id));
|
|
130
|
+
related.push(...symbolFragments);
|
|
131
|
+
}
|
|
132
|
+
// Deduplicate
|
|
133
|
+
const uniqueIds = new Set();
|
|
134
|
+
return related.filter((f) => {
|
|
135
|
+
if (uniqueIds.has(f.id))
|
|
136
|
+
return false;
|
|
137
|
+
uniqueIds.add(f.id);
|
|
138
|
+
return true;
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Extract keywords from a task description
|
|
143
|
+
*/
|
|
144
|
+
function extractKeywords(task) {
|
|
145
|
+
const stopWords = new Set([
|
|
146
|
+
'a', 'an', 'the', 'is', 'are', 'was', 'were', 'be', 'been', 'being',
|
|
147
|
+
'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'could',
|
|
148
|
+
'should', 'may', 'might', 'must', 'shall', 'can', 'need', 'to', 'of',
|
|
149
|
+
'in', 'for', 'on', 'with', 'at', 'by', 'from', 'up', 'about', 'into',
|
|
150
|
+
'through', 'during', 'before', 'after', 'above', 'below', 'between',
|
|
151
|
+
'under', 'again', 'further', 'then', 'once', 'here', 'there', 'when',
|
|
152
|
+
'where', 'why', 'how', 'all', 'each', 'few', 'more', 'most', 'other',
|
|
153
|
+
'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so', 'than',
|
|
154
|
+
'too', 'very', 'just', 'and', 'but', 'if', 'or', 'because', 'as', 'until',
|
|
155
|
+
'while', 'this', 'that', 'these', 'those', 'i', 'me', 'my', 'we', 'our',
|
|
156
|
+
'you', 'your', 'it', 'its', 'add', 'create', 'new', 'implement', 'fix',
|
|
157
|
+
'update', 'change', 'modify', 'help', 'want', 'make', 'get', 'set',
|
|
158
|
+
]);
|
|
159
|
+
return task
|
|
160
|
+
.toLowerCase()
|
|
161
|
+
.replace(/[^a-z0-9\s]/g, ' ')
|
|
162
|
+
.split(/\s+/)
|
|
163
|
+
.filter((word) => word.length > 2 && !stopWords.has(word));
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Score a fragment's relevance to keywords
|
|
167
|
+
*/
|
|
168
|
+
function scoreRelevance(fragment, keywords) {
|
|
169
|
+
let score = 0;
|
|
170
|
+
const textToSearch = [
|
|
171
|
+
fragment.summary || '',
|
|
172
|
+
fragment.type,
|
|
173
|
+
...fragment.meta.tags,
|
|
174
|
+
...fragment.refs.symbols,
|
|
175
|
+
...(fragment.data && typeof fragment.data === 'object'
|
|
176
|
+
? Object.values(fragment.data)
|
|
177
|
+
.filter((v) => typeof v === 'string')
|
|
178
|
+
.map((v) => v)
|
|
179
|
+
: []),
|
|
180
|
+
]
|
|
181
|
+
.join(' ')
|
|
182
|
+
.toLowerCase();
|
|
183
|
+
for (const keyword of keywords) {
|
|
184
|
+
if (textToSearch.includes(keyword)) {
|
|
185
|
+
score += 1;
|
|
186
|
+
// Bonus for exact symbol match
|
|
187
|
+
if (fragment.refs.symbols.some((s) => s.toLowerCase() === keyword)) {
|
|
188
|
+
score += 2;
|
|
189
|
+
}
|
|
190
|
+
// Bonus for type match
|
|
191
|
+
if (fragment.type.includes(keyword)) {
|
|
192
|
+
score += 1;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
// Normalize by keyword count
|
|
197
|
+
return keywords.length > 0 ? score / keywords.length : 0;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Limit fragments by estimated token count
|
|
201
|
+
*/
|
|
202
|
+
function limitByTokens(fragments, maxTokens) {
|
|
203
|
+
const result = [];
|
|
204
|
+
let totalTokens = 0;
|
|
205
|
+
for (const fragment of fragments) {
|
|
206
|
+
const tokens = estimateTokens(fragment);
|
|
207
|
+
if (totalTokens + tokens > maxTokens) {
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
result.push(fragment);
|
|
211
|
+
totalTokens += tokens;
|
|
212
|
+
}
|
|
213
|
+
return result;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Estimate token count for a fragment (rough approximation)
|
|
217
|
+
*/
|
|
218
|
+
function estimateTokens(fragment) {
|
|
219
|
+
const json = JSON.stringify(fragment);
|
|
220
|
+
// Rough estimate: ~4 chars per token
|
|
221
|
+
return Math.ceil(json.length / 4);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Create a composition pipeline helper
|
|
225
|
+
*/
|
|
226
|
+
function createComposer(store) {
|
|
227
|
+
return {
|
|
228
|
+
/**
|
|
229
|
+
* Compose by priority (default)
|
|
230
|
+
*/
|
|
231
|
+
byPriority(maxTokens) {
|
|
232
|
+
return composeFragments(store.all(), {
|
|
233
|
+
strategy: 'priority',
|
|
234
|
+
maxTokens,
|
|
235
|
+
});
|
|
236
|
+
},
|
|
237
|
+
/**
|
|
238
|
+
* Compose by expanding from a seed
|
|
239
|
+
*/
|
|
240
|
+
expand(seed, depth, maxTokens) {
|
|
241
|
+
return composeFragments(store.all(), {
|
|
242
|
+
strategy: 'expand',
|
|
243
|
+
seed,
|
|
244
|
+
depth,
|
|
245
|
+
maxTokens,
|
|
246
|
+
});
|
|
247
|
+
},
|
|
248
|
+
/**
|
|
249
|
+
* Compose by task relevance
|
|
250
|
+
*/
|
|
251
|
+
forTask(task, maxTokens) {
|
|
252
|
+
return composeFragments(store.all(), {
|
|
253
|
+
strategy: 'task',
|
|
254
|
+
task,
|
|
255
|
+
maxTokens,
|
|
256
|
+
});
|
|
257
|
+
},
|
|
258
|
+
/**
|
|
259
|
+
* Get essential context (project overview + high priority)
|
|
260
|
+
*/
|
|
261
|
+
essential(maxTokens) {
|
|
262
|
+
const essential = store
|
|
263
|
+
.all()
|
|
264
|
+
.filter((f) => f.type === 'project-overview' ||
|
|
265
|
+
f.meta.tags.includes('essential') ||
|
|
266
|
+
f.meta.priority >= 8);
|
|
267
|
+
return composeFragments(essential, {
|
|
268
|
+
strategy: 'priority',
|
|
269
|
+
maxTokens,
|
|
270
|
+
});
|
|
271
|
+
},
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=compose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/fragments/compose.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fragment Extractors - Registry and common utilities
|
|
3
|
+
*/
|
|
4
|
+
import type { ContextFragment, FragmentExtractor, FragmentType } from '../types.js';
|
|
5
|
+
import { RepoStructure } from '../../types.js';
|
|
6
|
+
import type { SemanticContext } from '../../services/semantic/types.js';
|
|
7
|
+
export interface ExtractionInput {
|
|
8
|
+
repoStructure: RepoStructure;
|
|
9
|
+
semantics?: SemanticContext;
|
|
10
|
+
packageJson?: Record<string, unknown>;
|
|
11
|
+
readme?: string;
|
|
12
|
+
}
|
|
13
|
+
type AnyFragment = ContextFragment<unknown>;
|
|
14
|
+
export interface ExtractorRegistry {
|
|
15
|
+
extractors: FragmentExtractor<ExtractionInput>[];
|
|
16
|
+
extractAll(input: ExtractionInput): AnyFragment[];
|
|
17
|
+
getByType(type: FragmentType): FragmentExtractor<ExtractionInput>[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Create the default extractor registry with all built-in extractors
|
|
21
|
+
*/
|
|
22
|
+
export declare function createExtractorRegistry(): ExtractorRegistry;
|
|
23
|
+
export { extractProjectFragments } from './project.js';
|
|
24
|
+
export { extractModuleFragments } from './module.js';
|
|
25
|
+
export { extractSemanticFragments } from './semantic.js';
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|