@vpxa/aikit 0.1.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/LICENSE +21 -0
- package/README.md +1207 -0
- package/bin/aikit.mjs +10 -0
- package/package.json +92 -0
- package/packages/aikit-client/dist/direct-client.d.ts +37 -0
- package/packages/aikit-client/dist/direct-client.js +1 -0
- package/packages/aikit-client/dist/index.d.ts +5 -0
- package/packages/aikit-client/dist/index.js +1 -0
- package/packages/aikit-client/dist/mcp-client.d.ts +19 -0
- package/packages/aikit-client/dist/mcp-client.js +4 -0
- package/packages/aikit-client/dist/parsers.d.ts +35 -0
- package/packages/aikit-client/dist/parsers.js +2 -0
- package/packages/aikit-client/dist/types.d.ts +62 -0
- package/packages/aikit-client/dist/types.js +1 -0
- package/packages/analyzers/dist/blast-radius-analyzer.d.ts +19 -0
- package/packages/analyzers/dist/blast-radius-analyzer.js +6 -0
- package/packages/analyzers/dist/dependency-analyzer.d.ts +32 -0
- package/packages/analyzers/dist/dependency-analyzer.js +8 -0
- package/packages/analyzers/dist/diagram-generator.d.ts +16 -0
- package/packages/analyzers/dist/diagram-generator.js +2 -0
- package/packages/analyzers/dist/entry-point-analyzer.d.ts +40 -0
- package/packages/analyzers/dist/entry-point-analyzer.js +4 -0
- package/packages/analyzers/dist/index.d.ts +12 -0
- package/packages/analyzers/dist/index.js +1 -0
- package/packages/analyzers/dist/knowledge-producer.d.ts +40 -0
- package/packages/analyzers/dist/knowledge-producer.js +26 -0
- package/packages/analyzers/dist/pattern-analyzer.d.ts +15 -0
- package/packages/analyzers/dist/pattern-analyzer.js +2 -0
- package/packages/analyzers/dist/regex-call-graph.d.ts +10 -0
- package/packages/analyzers/dist/regex-call-graph.js +1 -0
- package/packages/analyzers/dist/structure-analyzer.d.ts +19 -0
- package/packages/analyzers/dist/structure-analyzer.js +4 -0
- package/packages/analyzers/dist/symbol-analyzer.d.ts +14 -0
- package/packages/analyzers/dist/symbol-analyzer.js +9 -0
- package/packages/analyzers/dist/ts-call-graph.d.ts +29 -0
- package/packages/analyzers/dist/ts-call-graph.js +1 -0
- package/packages/analyzers/dist/types.d.ts +110 -0
- package/packages/analyzers/dist/types.js +1 -0
- package/packages/chunker/dist/call-graph-extractor.d.ts +25 -0
- package/packages/chunker/dist/call-graph-extractor.js +1 -0
- package/packages/chunker/dist/chunker-factory.d.ts +19 -0
- package/packages/chunker/dist/chunker-factory.js +1 -0
- package/packages/chunker/dist/chunker.interface.d.ts +13 -0
- package/packages/chunker/dist/chunker.interface.js +1 -0
- package/packages/chunker/dist/code-chunker.d.ts +17 -0
- package/packages/chunker/dist/code-chunker.js +11 -0
- package/packages/chunker/dist/extractors/call-extractor.d.ts +24 -0
- package/packages/chunker/dist/extractors/call-extractor.js +1 -0
- package/packages/chunker/dist/extractors/entry-point-detector.d.ts +14 -0
- package/packages/chunker/dist/extractors/entry-point-detector.js +1 -0
- package/packages/chunker/dist/extractors/import-extractor.d.ts +14 -0
- package/packages/chunker/dist/extractors/import-extractor.js +1 -0
- package/packages/chunker/dist/extractors/pattern-detector.d.ts +14 -0
- package/packages/chunker/dist/extractors/pattern-detector.js +1 -0
- package/packages/chunker/dist/extractors/scope-resolver.d.ts +26 -0
- package/packages/chunker/dist/extractors/scope-resolver.js +1 -0
- package/packages/chunker/dist/extractors/symbol-extractor.d.ts +14 -0
- package/packages/chunker/dist/extractors/symbol-extractor.js +3 -0
- package/packages/chunker/dist/extractors/types.d.ts +44 -0
- package/packages/chunker/dist/extractors/types.js +1 -0
- package/packages/chunker/dist/generic-chunker.d.ts +15 -0
- package/packages/chunker/dist/generic-chunker.js +5 -0
- package/packages/chunker/dist/index.d.ts +19 -0
- package/packages/chunker/dist/index.js +1 -0
- package/packages/chunker/dist/markdown-chunker.d.ts +17 -0
- package/packages/chunker/dist/markdown-chunker.js +3 -0
- package/packages/chunker/dist/wasm/languages.d.ts +18 -0
- package/packages/chunker/dist/wasm/languages.js +1 -0
- package/packages/chunker/dist/wasm/query-executor.d.ts +70 -0
- package/packages/chunker/dist/wasm/query-executor.js +1 -0
- package/packages/chunker/dist/wasm/runtime.d.ts +44 -0
- package/packages/chunker/dist/wasm/runtime.js +1 -0
- package/packages/chunker/dist/wasm/types.d.ts +84 -0
- package/packages/chunker/dist/wasm/types.js +1 -0
- package/packages/chunker/dist/wasm-chunker.d.ts +23 -0
- package/packages/chunker/dist/wasm-chunker.js +6 -0
- package/packages/chunker/src/queries/go/calls.scm +11 -0
- package/packages/chunker/src/queries/go/entry-points.scm +20 -0
- package/packages/chunker/src/queries/go/imports.scm +6 -0
- package/packages/chunker/src/queries/go/patterns.scm +25 -0
- package/packages/chunker/src/queries/go/symbols.scm +26 -0
- package/packages/chunker/src/queries/java/calls.scm +10 -0
- package/packages/chunker/src/queries/java/entry-points.scm +27 -0
- package/packages/chunker/src/queries/java/imports.scm +11 -0
- package/packages/chunker/src/queries/java/patterns.scm +27 -0
- package/packages/chunker/src/queries/java/symbols.scm +28 -0
- package/packages/chunker/src/queries/javascript/calls.scm +21 -0
- package/packages/chunker/src/queries/javascript/entry-points.scm +31 -0
- package/packages/chunker/src/queries/javascript/imports.scm +32 -0
- package/packages/chunker/src/queries/javascript/patterns.scm +28 -0
- package/packages/chunker/src/queries/javascript/symbols.scm +52 -0
- package/packages/chunker/src/queries/python/calls.scm +11 -0
- package/packages/chunker/src/queries/python/entry-points.scm +21 -0
- package/packages/chunker/src/queries/python/imports.scm +14 -0
- package/packages/chunker/src/queries/python/patterns.scm +25 -0
- package/packages/chunker/src/queries/python/symbols.scm +17 -0
- package/packages/chunker/src/queries/rust/calls.scm +20 -0
- package/packages/chunker/src/queries/rust/entry-points.scm +7 -0
- package/packages/chunker/src/queries/rust/imports.scm +26 -0
- package/packages/chunker/src/queries/rust/patterns.scm +18 -0
- package/packages/chunker/src/queries/rust/symbols.scm +73 -0
- package/packages/chunker/src/queries/typescript/calls.scm +21 -0
- package/packages/chunker/src/queries/typescript/entry-points.scm +48 -0
- package/packages/chunker/src/queries/typescript/imports.scm +35 -0
- package/packages/chunker/src/queries/typescript/patterns.scm +47 -0
- package/packages/chunker/src/queries/typescript/symbols.scm +79 -0
- package/packages/chunker/wasm/tree-sitter-c.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-c_sharp.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-cpp.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-go.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-java.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-javascript.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-kotlin.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-php.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-python.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-ruby.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-rust.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-scala.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-swift.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-typescript.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter.wasm +0 -0
- package/packages/cli/dist/aikit-init.d.ts +54 -0
- package/packages/cli/dist/aikit-init.js +1 -0
- package/packages/cli/dist/commands/analyze.d.ts +6 -0
- package/packages/cli/dist/commands/analyze.js +2 -0
- package/packages/cli/dist/commands/context-cmds.d.ts +6 -0
- package/packages/cli/dist/commands/context-cmds.js +1 -0
- package/packages/cli/dist/commands/environment.d.ts +6 -0
- package/packages/cli/dist/commands/environment.js +1 -0
- package/packages/cli/dist/commands/execution.d.ts +6 -0
- package/packages/cli/dist/commands/execution.js +1 -0
- package/packages/cli/dist/commands/flow.d.ts +6 -0
- package/packages/cli/dist/commands/flow.js +1 -0
- package/packages/cli/dist/commands/graph.d.ts +6 -0
- package/packages/cli/dist/commands/graph.js +6 -0
- package/packages/cli/dist/commands/init/adapters.d.ts +28 -0
- package/packages/cli/dist/commands/init/adapters.js +1 -0
- package/packages/cli/dist/commands/init/config.d.ts +10 -0
- package/packages/cli/dist/commands/init/config.js +3 -0
- package/packages/cli/dist/commands/init/constants.d.ts +41 -0
- package/packages/cli/dist/commands/init/constants.js +1 -0
- package/packages/cli/dist/commands/init/curated.d.ts +7 -0
- package/packages/cli/dist/commands/init/curated.js +1 -0
- package/packages/cli/dist/commands/init/frontmatter.d.ts +54 -0
- package/packages/cli/dist/commands/init/frontmatter.js +2 -0
- package/packages/cli/dist/commands/init/index.d.ts +36 -0
- package/packages/cli/dist/commands/init/index.js +5 -0
- package/packages/cli/dist/commands/init/manifest.d.ts +71 -0
- package/packages/cli/dist/commands/init/manifest.js +1 -0
- package/packages/cli/dist/commands/init/scaffold.d.ts +46 -0
- package/packages/cli/dist/commands/init/scaffold.js +1 -0
- package/packages/cli/dist/commands/init/templates.d.ts +9 -0
- package/packages/cli/dist/commands/init/templates.js +194 -0
- package/packages/cli/dist/commands/init/user.d.ts +61 -0
- package/packages/cli/dist/commands/init/user.js +5 -0
- package/packages/cli/dist/commands/knowledge.d.ts +6 -0
- package/packages/cli/dist/commands/knowledge.js +1 -0
- package/packages/cli/dist/commands/search.d.ts +6 -0
- package/packages/cli/dist/commands/search.js +1 -0
- package/packages/cli/dist/commands/system.d.ts +6 -0
- package/packages/cli/dist/commands/system.js +4 -0
- package/packages/cli/dist/commands/upgrade.d.ts +6 -0
- package/packages/cli/dist/commands/upgrade.js +1 -0
- package/packages/cli/dist/commands/workspace.d.ts +6 -0
- package/packages/cli/dist/commands/workspace.js +1 -0
- package/packages/cli/dist/context.d.ts +7 -0
- package/packages/cli/dist/context.js +1 -0
- package/packages/cli/dist/helpers.d.ts +55 -0
- package/packages/cli/dist/helpers.js +5 -0
- package/packages/cli/dist/index.d.ts +10 -0
- package/packages/cli/dist/index.js +3 -0
- package/packages/cli/dist/types.d.ts +9 -0
- package/packages/cli/dist/types.js +1 -0
- package/packages/core/dist/constants.d.ts +74 -0
- package/packages/core/dist/constants.js +1 -0
- package/packages/core/dist/content-detector.d.ts +13 -0
- package/packages/core/dist/content-detector.js +1 -0
- package/packages/core/dist/errors.d.ts +20 -0
- package/packages/core/dist/errors.js +1 -0
- package/packages/core/dist/global-registry.d.ts +63 -0
- package/packages/core/dist/global-registry.js +1 -0
- package/packages/core/dist/index.d.ts +7 -0
- package/packages/core/dist/index.js +1 -0
- package/packages/core/dist/logger.d.ts +32 -0
- package/packages/core/dist/logger.js +1 -0
- package/packages/core/dist/types.d.ts +133 -0
- package/packages/core/dist/types.js +1 -0
- package/packages/dashboard/dist/assets/index-BjA4YODs.js +21 -0
- package/packages/dashboard/dist/assets/index-BjA4YODs.js.map +1 -0
- package/packages/dashboard/dist/assets/index-CHpVij2M.css +1 -0
- package/packages/dashboard/dist/index.html +18 -0
- package/packages/elicitation/dist/build.d.ts +14 -0
- package/packages/elicitation/dist/build.js +1 -0
- package/packages/elicitation/dist/fields.d.ts +32 -0
- package/packages/elicitation/dist/fields.js +1 -0
- package/packages/elicitation/dist/index.d.ts +5 -0
- package/packages/elicitation/dist/index.js +1 -0
- package/packages/elicitation/dist/normalize.d.ts +15 -0
- package/packages/elicitation/dist/normalize.js +1 -0
- package/packages/elicitation/dist/types.d.ts +88 -0
- package/packages/elicitation/dist/types.js +1 -0
- package/packages/embeddings/dist/embedder.interface.d.ts +26 -0
- package/packages/embeddings/dist/embedder.interface.js +1 -0
- package/packages/embeddings/dist/index.d.ts +3 -0
- package/packages/embeddings/dist/index.js +1 -0
- package/packages/embeddings/dist/onnx-embedder.d.ts +22 -0
- package/packages/embeddings/dist/onnx-embedder.js +1 -0
- package/packages/enterprise-bridge/dist/cache.d.ts +28 -0
- package/packages/enterprise-bridge/dist/cache.js +1 -0
- package/packages/enterprise-bridge/dist/er-client.d.ts +37 -0
- package/packages/enterprise-bridge/dist/er-client.js +1 -0
- package/packages/enterprise-bridge/dist/evolution-collector.d.ts +62 -0
- package/packages/enterprise-bridge/dist/evolution-collector.js +1 -0
- package/packages/enterprise-bridge/dist/index.d.ts +8 -0
- package/packages/enterprise-bridge/dist/index.js +1 -0
- package/packages/enterprise-bridge/dist/policy-store.d.ts +45 -0
- package/packages/enterprise-bridge/dist/policy-store.js +1 -0
- package/packages/enterprise-bridge/dist/push-adapter.d.ts +23 -0
- package/packages/enterprise-bridge/dist/push-adapter.js +1 -0
- package/packages/enterprise-bridge/dist/result-merger.d.ts +14 -0
- package/packages/enterprise-bridge/dist/result-merger.js +1 -0
- package/packages/enterprise-bridge/dist/types.d.ts +81 -0
- package/packages/enterprise-bridge/dist/types.js +1 -0
- package/packages/flows/dist/adapters/claude-plugin.d.ts +12 -0
- package/packages/flows/dist/adapters/claude-plugin.js +1 -0
- package/packages/flows/dist/adapters/copilot.d.ts +10 -0
- package/packages/flows/dist/adapters/copilot.js +1 -0
- package/packages/flows/dist/adapters/index.d.ts +11 -0
- package/packages/flows/dist/adapters/index.js +1 -0
- package/packages/flows/dist/adapters/native.d.ts +10 -0
- package/packages/flows/dist/adapters/native.js +1 -0
- package/packages/flows/dist/builtins.d.ts +16 -0
- package/packages/flows/dist/builtins.js +1 -0
- package/packages/flows/dist/foundation.d.ts +20 -0
- package/packages/flows/dist/foundation.js +11 -0
- package/packages/flows/dist/git.d.ts +34 -0
- package/packages/flows/dist/git.js +1 -0
- package/packages/flows/dist/index.d.ts +12 -0
- package/packages/flows/dist/index.js +1 -0
- package/packages/flows/dist/loader.d.ts +13 -0
- package/packages/flows/dist/loader.js +2 -0
- package/packages/flows/dist/registry.d.ts +23 -0
- package/packages/flows/dist/registry.js +1 -0
- package/packages/flows/dist/state-machine.d.ts +23 -0
- package/packages/flows/dist/state-machine.js +1 -0
- package/packages/flows/dist/symlinks.d.ts +17 -0
- package/packages/flows/dist/symlinks.js +1 -0
- package/packages/flows/dist/types.d.ts +112 -0
- package/packages/flows/dist/types.js +1 -0
- package/packages/indexer/dist/file-hasher.d.ts +13 -0
- package/packages/indexer/dist/file-hasher.js +1 -0
- package/packages/indexer/dist/filesystem-crawler.d.ts +29 -0
- package/packages/indexer/dist/filesystem-crawler.js +1 -0
- package/packages/indexer/dist/graph-extractor.d.ts +18 -0
- package/packages/indexer/dist/graph-extractor.js +1 -0
- package/packages/indexer/dist/hash-cache.d.ts +24 -0
- package/packages/indexer/dist/hash-cache.js +1 -0
- package/packages/indexer/dist/incremental-indexer.d.ts +56 -0
- package/packages/indexer/dist/incremental-indexer.js +1 -0
- package/packages/indexer/dist/index.d.ts +6 -0
- package/packages/indexer/dist/index.js +1 -0
- package/packages/present/dist/index.html +709 -0
- package/packages/server/dist/api.d.ts +3 -0
- package/packages/server/dist/api.js +1 -0
- package/packages/server/dist/auto-gc.d.ts +30 -0
- package/packages/server/dist/auto-gc.js +1 -0
- package/packages/server/dist/completions.d.ts +14 -0
- package/packages/server/dist/completions.js +1 -0
- package/packages/server/dist/config.d.ts +14 -0
- package/packages/server/dist/config.js +1 -0
- package/packages/server/dist/cross-workspace.d.ts +43 -0
- package/packages/server/dist/cross-workspace.js +1 -0
- package/packages/server/dist/curated-manager.d.ts +92 -0
- package/packages/server/dist/curated-manager.js +5 -0
- package/packages/server/dist/dashboard-static.d.ts +27 -0
- package/packages/server/dist/dashboard-static.js +1 -0
- package/packages/server/dist/elicitor.d.ts +18 -0
- package/packages/server/dist/elicitor.js +1 -0
- package/packages/server/dist/index.d.ts +1 -0
- package/packages/server/dist/index.js +1 -0
- package/packages/server/dist/mcp-logging.d.ts +11 -0
- package/packages/server/dist/mcp-logging.js +1 -0
- package/packages/server/dist/output-schemas.d.ts +242 -0
- package/packages/server/dist/output-schemas.js +1 -0
- package/packages/server/dist/prompts.d.ts +13 -0
- package/packages/server/dist/prompts.js +13 -0
- package/packages/server/dist/replay-interceptor.d.ts +23 -0
- package/packages/server/dist/replay-interceptor.js +1 -0
- package/packages/server/dist/resource-links.d.ts +34 -0
- package/packages/server/dist/resource-links.js +1 -0
- package/packages/server/dist/resources/curated-resources.d.ts +13 -0
- package/packages/server/dist/resources/curated-resources.js +2 -0
- package/packages/server/dist/resources/resource-notifier.d.ts +45 -0
- package/packages/server/dist/resources/resource-notifier.js +1 -0
- package/packages/server/dist/resources/resources.d.ts +8 -0
- package/packages/server/dist/resources/resources.js +2 -0
- package/packages/server/dist/sampling.d.ts +41 -0
- package/packages/server/dist/sampling.js +2 -0
- package/packages/server/dist/server.d.ts +47 -0
- package/packages/server/dist/server.js +3 -0
- package/packages/server/dist/structured-content-guard.d.ts +26 -0
- package/packages/server/dist/structured-content-guard.js +1 -0
- package/packages/server/dist/task-manager.d.ts +40 -0
- package/packages/server/dist/task-manager.js +1 -0
- package/packages/server/dist/tool-metadata.d.ts +38 -0
- package/packages/server/dist/tool-metadata.js +1 -0
- package/packages/server/dist/tool-prefix.d.ts +12 -0
- package/packages/server/dist/tool-prefix.js +1 -0
- package/packages/server/dist/tools/analyze.tools.d.ts +14 -0
- package/packages/server/dist/tools/analyze.tools.js +8 -0
- package/packages/server/dist/tools/audit.tool.d.ts +8 -0
- package/packages/server/dist/tools/audit.tool.js +1 -0
- package/packages/server/dist/tools/brainstorm.tool.d.ts +7 -0
- package/packages/server/dist/tools/brainstorm.tool.js +9 -0
- package/packages/server/dist/tools/bridge.tools.d.ts +34 -0
- package/packages/server/dist/tools/bridge.tools.js +15 -0
- package/packages/server/dist/tools/context.tools.d.ts +15 -0
- package/packages/server/dist/tools/context.tools.js +10 -0
- package/packages/server/dist/tools/evolution.tools.d.ts +7 -0
- package/packages/server/dist/tools/evolution.tools.js +5 -0
- package/packages/server/dist/tools/execution.tools.d.ts +14 -0
- package/packages/server/dist/tools/execution.tools.js +4 -0
- package/packages/server/dist/tools/flow.tools.d.ts +7 -0
- package/packages/server/dist/tools/flow.tools.js +1 -0
- package/packages/server/dist/tools/forge.tools.d.ts +13 -0
- package/packages/server/dist/tools/forge.tools.js +10 -0
- package/packages/server/dist/tools/forget.tool.d.ts +8 -0
- package/packages/server/dist/tools/forget.tool.js +1 -0
- package/packages/server/dist/tools/graph.tool.d.ts +7 -0
- package/packages/server/dist/tools/graph.tool.js +5 -0
- package/packages/server/dist/tools/infra.tools.d.ts +10 -0
- package/packages/server/dist/tools/infra.tools.js +5 -0
- package/packages/server/dist/tools/list.tool.d.ts +7 -0
- package/packages/server/dist/tools/list.tool.js +2 -0
- package/packages/server/dist/tools/lookup.tool.d.ts +7 -0
- package/packages/server/dist/tools/lookup.tool.js +3 -0
- package/packages/server/dist/tools/manipulation.tools.d.ts +10 -0
- package/packages/server/dist/tools/manipulation.tools.js +4 -0
- package/packages/server/dist/tools/onboard.tool.d.ts +9 -0
- package/packages/server/dist/tools/onboard.tool.js +2 -0
- package/packages/server/dist/tools/persistence.tools.d.ts +10 -0
- package/packages/server/dist/tools/persistence.tools.js +5 -0
- package/packages/server/dist/tools/policy.tools.d.ts +7 -0
- package/packages/server/dist/tools/policy.tools.js +3 -0
- package/packages/server/dist/tools/present/browser.d.ts +4 -0
- package/packages/server/dist/tools/present/browser.js +93 -0
- package/packages/server/dist/tools/present/helpers.d.ts +18 -0
- package/packages/server/dist/tools/present/helpers.js +1 -0
- package/packages/server/dist/tools/present/html.d.ts +18 -0
- package/packages/server/dist/tools/present/html.js +5 -0
- package/packages/server/dist/tools/present/index.d.ts +2 -0
- package/packages/server/dist/tools/present/index.js +1 -0
- package/packages/server/dist/tools/present/markdown.d.ts +17 -0
- package/packages/server/dist/tools/present/markdown.js +8 -0
- package/packages/server/dist/tools/present/templates.d.ts +14 -0
- package/packages/server/dist/tools/present/templates.js +472 -0
- package/packages/server/dist/tools/present/tool.d.ts +27 -0
- package/packages/server/dist/tools/present/tool.js +19 -0
- package/packages/server/dist/tools/present-blocks.d.ts +46 -0
- package/packages/server/dist/tools/present-blocks.js +27 -0
- package/packages/server/dist/tools/present-charts.d.ts +31 -0
- package/packages/server/dist/tools/present-charts.js +34 -0
- package/packages/server/dist/tools/present-theme.d.ts +14 -0
- package/packages/server/dist/tools/present-theme.js +395 -0
- package/packages/server/dist/tools/present-utils.d.ts +11 -0
- package/packages/server/dist/tools/present-utils.js +1 -0
- package/packages/server/dist/tools/present.tool.d.ts +2 -0
- package/packages/server/dist/tools/present.tool.js +1 -0
- package/packages/server/dist/tools/produce.tool.d.ts +7 -0
- package/packages/server/dist/tools/produce.tool.js +4 -0
- package/packages/server/dist/tools/read.tool.d.ts +7 -0
- package/packages/server/dist/tools/read.tool.js +2 -0
- package/packages/server/dist/tools/reindex.tool.d.ts +11 -0
- package/packages/server/dist/tools/reindex.tool.js +3 -0
- package/packages/server/dist/tools/remember.tool.d.ts +9 -0
- package/packages/server/dist/tools/remember.tool.js +4 -0
- package/packages/server/dist/tools/replay.tool.d.ts +6 -0
- package/packages/server/dist/tools/replay.tool.js +3 -0
- package/packages/server/dist/tools/restore.tool.d.ts +6 -0
- package/packages/server/dist/tools/restore.tool.js +3 -0
- package/packages/server/dist/tools/search.tool.d.ts +11 -0
- package/packages/server/dist/tools/search.tool.js +10 -0
- package/packages/server/dist/tools/status.tool.d.ts +20 -0
- package/packages/server/dist/tools/status.tool.js +3 -0
- package/packages/server/dist/tools/update.tool.d.ts +8 -0
- package/packages/server/dist/tools/update.tool.js +1 -0
- package/packages/server/dist/tools/utility.tools.d.ts +15 -0
- package/packages/server/dist/tools/utility.tools.js +13 -0
- package/packages/server/dist/version-check.d.ts +32 -0
- package/packages/server/dist/version-check.js +1 -0
- package/packages/store/dist/graph-store.interface.d.ts +118 -0
- package/packages/store/dist/graph-store.interface.js +1 -0
- package/packages/store/dist/index.d.ts +6 -0
- package/packages/store/dist/index.js +1 -0
- package/packages/store/dist/lance-store.d.ts +44 -0
- package/packages/store/dist/lance-store.js +1 -0
- package/packages/store/dist/sqlite-graph-store.d.ts +45 -0
- package/packages/store/dist/sqlite-graph-store.js +58 -0
- package/packages/store/dist/store-factory.d.ts +12 -0
- package/packages/store/dist/store-factory.js +1 -0
- package/packages/store/dist/store.interface.d.ts +54 -0
- package/packages/store/dist/store.interface.js +1 -0
- package/packages/tools/dist/audit.d.ts +65 -0
- package/packages/tools/dist/audit.js +6 -0
- package/packages/tools/dist/batch.d.ts +23 -0
- package/packages/tools/dist/batch.js +1 -0
- package/packages/tools/dist/changelog.d.ts +36 -0
- package/packages/tools/dist/changelog.js +2 -0
- package/packages/tools/dist/check.d.ts +48 -0
- package/packages/tools/dist/check.js +2 -0
- package/packages/tools/dist/checkpoint.d.ts +19 -0
- package/packages/tools/dist/checkpoint.js +1 -0
- package/packages/tools/dist/codemod.d.ts +39 -0
- package/packages/tools/dist/codemod.js +2 -0
- package/packages/tools/dist/compact.d.ts +41 -0
- package/packages/tools/dist/compact.js +3 -0
- package/packages/tools/dist/config-extractor.d.ts +9 -0
- package/packages/tools/dist/config-extractor.js +7 -0
- package/packages/tools/dist/data-transform.d.ts +12 -0
- package/packages/tools/dist/data-transform.js +1 -0
- package/packages/tools/dist/dead-symbols.d.ts +28 -0
- package/packages/tools/dist/dead-symbols.js +2 -0
- package/packages/tools/dist/delegate.d.ts +36 -0
- package/packages/tools/dist/delegate.js +1 -0
- package/packages/tools/dist/diagram-builder.d.ts +9 -0
- package/packages/tools/dist/diagram-builder.js +9 -0
- package/packages/tools/dist/diff-parse.d.ts +28 -0
- package/packages/tools/dist/diff-parse.js +3 -0
- package/packages/tools/dist/digest.d.ts +50 -0
- package/packages/tools/dist/digest.js +6 -0
- package/packages/tools/dist/dogfood-log.d.ts +49 -0
- package/packages/tools/dist/dogfood-log.js +2 -0
- package/packages/tools/dist/encode.d.ts +16 -0
- package/packages/tools/dist/encode.js +1 -0
- package/packages/tools/dist/env-info.d.ts +30 -0
- package/packages/tools/dist/env-info.js +1 -0
- package/packages/tools/dist/eval.d.ts +15 -0
- package/packages/tools/dist/eval.js +2 -0
- package/packages/tools/dist/evidence-map.d.ts +92 -0
- package/packages/tools/dist/evidence-map.js +2 -0
- package/packages/tools/dist/file-cache.d.ts +41 -0
- package/packages/tools/dist/file-cache.js +3 -0
- package/packages/tools/dist/file-summary.d.ts +52 -0
- package/packages/tools/dist/file-summary.js +2 -0
- package/packages/tools/dist/file-walk.d.ts +6 -0
- package/packages/tools/dist/file-walk.js +1 -0
- package/packages/tools/dist/find-examples.d.ts +29 -0
- package/packages/tools/dist/find-examples.js +3 -0
- package/packages/tools/dist/find.d.ts +49 -0
- package/packages/tools/dist/find.js +1 -0
- package/packages/tools/dist/forge-classify.d.ts +44 -0
- package/packages/tools/dist/forge-classify.js +2 -0
- package/packages/tools/dist/forge-ground.d.ts +61 -0
- package/packages/tools/dist/forge-ground.js +1 -0
- package/packages/tools/dist/git-context.d.ts +25 -0
- package/packages/tools/dist/git-context.js +3 -0
- package/packages/tools/dist/graph-query.d.ts +86 -0
- package/packages/tools/dist/graph-query.js +1 -0
- package/packages/tools/dist/guide.d.ts +25 -0
- package/packages/tools/dist/guide.js +1 -0
- package/packages/tools/dist/health.d.ts +16 -0
- package/packages/tools/dist/health.js +2 -0
- package/packages/tools/dist/http-request.d.ts +25 -0
- package/packages/tools/dist/http-request.js +1 -0
- package/packages/tools/dist/index.d.ts +57 -0
- package/packages/tools/dist/index.js +1 -0
- package/packages/tools/dist/lane.d.ts +41 -0
- package/packages/tools/dist/lane.js +6 -0
- package/packages/tools/dist/measure.d.ts +42 -0
- package/packages/tools/dist/measure.js +2 -0
- package/packages/tools/dist/onboard-utils.d.ts +12 -0
- package/packages/tools/dist/onboard-utils.js +1 -0
- package/packages/tools/dist/onboard.d.ts +50 -0
- package/packages/tools/dist/onboard.js +18 -0
- package/packages/tools/dist/parse-output.d.ts +82 -0
- package/packages/tools/dist/parse-output.js +2 -0
- package/packages/tools/dist/path-resolver.d.ts +14 -0
- package/packages/tools/dist/path-resolver.js +1 -0
- package/packages/tools/dist/process-manager.d.ts +20 -0
- package/packages/tools/dist/process-manager.js +1 -0
- package/packages/tools/dist/queue.d.ts +40 -0
- package/packages/tools/dist/queue.js +1 -0
- package/packages/tools/dist/regex-test.d.ts +33 -0
- package/packages/tools/dist/regex-test.js +1 -0
- package/packages/tools/dist/regex-utils.d.ts +8 -0
- package/packages/tools/dist/regex-utils.js +1 -0
- package/packages/tools/dist/rename.d.ts +31 -0
- package/packages/tools/dist/rename.js +2 -0
- package/packages/tools/dist/replay.d.ts +59 -0
- package/packages/tools/dist/replay.js +4 -0
- package/packages/tools/dist/response-envelope.d.ts +43 -0
- package/packages/tools/dist/response-envelope.js +1 -0
- package/packages/tools/dist/restore-points.d.ts +22 -0
- package/packages/tools/dist/restore-points.js +1 -0
- package/packages/tools/dist/schema-validate.d.ts +25 -0
- package/packages/tools/dist/schema-validate.js +1 -0
- package/packages/tools/dist/scope-map.d.ts +51 -0
- package/packages/tools/dist/scope-map.js +1 -0
- package/packages/tools/dist/snippet.d.ts +35 -0
- package/packages/tools/dist/snippet.js +1 -0
- package/packages/tools/dist/stash.d.ts +14 -0
- package/packages/tools/dist/stash.js +1 -0
- package/packages/tools/dist/stratum-card.d.ts +30 -0
- package/packages/tools/dist/stratum-card.js +4 -0
- package/packages/tools/dist/symbol.d.ts +45 -0
- package/packages/tools/dist/symbol.js +3 -0
- package/packages/tools/dist/synthesis-engine.d.ts +13 -0
- package/packages/tools/dist/synthesis-engine.js +6 -0
- package/packages/tools/dist/test-run.d.ts +28 -0
- package/packages/tools/dist/test-run.js +2 -0
- package/packages/tools/dist/text-utils.d.ts +24 -0
- package/packages/tools/dist/text-utils.js +2 -0
- package/packages/tools/dist/time-utils.d.ts +20 -0
- package/packages/tools/dist/time-utils.js +1 -0
- package/packages/tools/dist/trace.d.ts +29 -0
- package/packages/tools/dist/trace.js +2 -0
- package/packages/tools/dist/truncation.d.ts +33 -0
- package/packages/tools/dist/truncation.js +7 -0
- package/packages/tools/dist/watch.d.ts +32 -0
- package/packages/tools/dist/watch.js +1 -0
- package/packages/tools/dist/web-fetch.d.ts +47 -0
- package/packages/tools/dist/web-fetch.js +8 -0
- package/packages/tools/dist/web-search.d.ts +25 -0
- package/packages/tools/dist/web-search.js +1 -0
- package/packages/tools/dist/workset.d.ts +47 -0
- package/packages/tools/dist/workset.js +1 -0
- package/packages/tui/dist/App-DU2KEylW.js +2 -0
- package/packages/tui/dist/App.d.ts +13 -0
- package/packages/tui/dist/App.js +2 -0
- package/packages/tui/dist/CuratedPanel-BIamXLNy.js +2 -0
- package/packages/tui/dist/LogPanel-Bo8a8QXB.js +3 -0
- package/packages/tui/dist/SearchPanel-CpJGczAc.js +2 -0
- package/packages/tui/dist/StatusPanel-BAbUxyqQ.js +2 -0
- package/packages/tui/dist/chunk-D6axbAb-.js +2 -0
- package/packages/tui/dist/devtools-DMOZMn70.js +7 -0
- package/packages/tui/dist/hooks/useKBClient.d.ts +9 -0
- package/packages/tui/dist/hooks/useKBClient.js +2 -0
- package/packages/tui/dist/hooks/usePolling.d.ts +8 -0
- package/packages/tui/dist/hooks/usePolling.js +2 -0
- package/packages/tui/dist/index-BXafekwr.d.ts +64 -0
- package/packages/tui/dist/index.d.ts +7 -0
- package/packages/tui/dist/index.js +2 -0
- package/packages/tui/dist/jsx-runtime-y6Gdq5PZ.js +294 -0
- package/packages/tui/dist/panels/CuratedPanel.d.ts +7 -0
- package/packages/tui/dist/panels/CuratedPanel.js +2 -0
- package/packages/tui/dist/panels/LogPanel.d.ts +7 -0
- package/packages/tui/dist/panels/LogPanel.js +2 -0
- package/packages/tui/dist/panels/SearchPanel.d.ts +7 -0
- package/packages/tui/dist/panels/SearchPanel.js +2 -0
- package/packages/tui/dist/panels/StatusPanel.d.ts +7 -0
- package/packages/tui/dist/panels/StatusPanel.js +2 -0
- package/packages/tui/dist/react-D__J1GQe.js +24 -0
- package/packages/tui/dist/useKBClient-C35iA4uG.js +2 -0
- package/packages/tui/dist/usePolling-BbjnRWgx.js +2 -0
- package/scaffold/README.md +192 -0
- package/scaffold/adapters/claude-code.mjs +56 -0
- package/scaffold/adapters/copilot.mjs +270 -0
- package/scaffold/definitions/agents.mjs +189 -0
- package/scaffold/definitions/bodies.mjs +487 -0
- package/scaffold/definitions/hooks.mjs +43 -0
- package/scaffold/definitions/models.mjs +56 -0
- package/scaffold/definitions/plugins.mjs +38 -0
- package/scaffold/definitions/prompts.mjs +145 -0
- package/scaffold/definitions/protocols.mjs +679 -0
- package/scaffold/definitions/tools.mjs +229 -0
- package/scaffold/flows/aikit-advanced/flow.json +60 -0
- package/scaffold/flows/aikit-advanced/skills/execute/SKILL.md +124 -0
- package/scaffold/flows/aikit-advanced/skills/plan/SKILL.md +100 -0
- package/scaffold/flows/aikit-advanced/skills/spec/SKILL.md +100 -0
- package/scaffold/flows/aikit-advanced/skills/task/SKILL.md +99 -0
- package/scaffold/flows/aikit-advanced/skills/verify/SKILL.md +122 -0
- package/scaffold/flows/aikit-basic/flow.json +36 -0
- package/scaffold/flows/aikit-basic/skills/assess/SKILL.md +82 -0
- package/scaffold/flows/aikit-basic/skills/implement/SKILL.md +105 -0
- package/scaffold/flows/aikit-basic/skills/verify/SKILL.md +96 -0
- package/scaffold/general/agents/Architect-Reviewer-Alpha.agent.md +21 -0
- package/scaffold/general/agents/Architect-Reviewer-Beta.agent.md +21 -0
- package/scaffold/general/agents/Code-Reviewer-Alpha.agent.md +12 -0
- package/scaffold/general/agents/Code-Reviewer-Beta.agent.md +12 -0
- package/scaffold/general/agents/Debugger.agent.md +34 -0
- package/scaffold/general/agents/Documenter.agent.md +53 -0
- package/scaffold/general/agents/Explorer.agent.md +63 -0
- package/scaffold/general/agents/Frontend.agent.md +29 -0
- package/scaffold/general/agents/Implementer.agent.md +33 -0
- package/scaffold/general/agents/Orchestrator.agent.md +149 -0
- package/scaffold/general/agents/Planner.agent.md +79 -0
- package/scaffold/general/agents/README.md +57 -0
- package/scaffold/general/agents/Refactor.agent.md +36 -0
- package/scaffold/general/agents/Researcher-Alpha.agent.md +20 -0
- package/scaffold/general/agents/Researcher-Beta.agent.md +20 -0
- package/scaffold/general/agents/Researcher-Delta.agent.md +20 -0
- package/scaffold/general/agents/Researcher-Gamma.agent.md +20 -0
- package/scaffold/general/agents/Security.agent.md +55 -0
- package/scaffold/general/agents/_shared/architect-reviewer-base.md +60 -0
- package/scaffold/general/agents/_shared/code-agent-base.md +262 -0
- package/scaffold/general/agents/_shared/code-reviewer-base.md +64 -0
- package/scaffold/general/agents/_shared/decision-protocol.md +27 -0
- package/scaffold/general/agents/_shared/forge-protocol.md +90 -0
- package/scaffold/general/agents/_shared/researcher-base.md +101 -0
- package/scaffold/general/agents/templates/adr-template.md +28 -0
- package/scaffold/general/agents/templates/execution-state.md +26 -0
- package/scaffold/general/prompts/ask.prompt.md +21 -0
- package/scaffold/general/prompts/debug.prompt.md +25 -0
- package/scaffold/general/prompts/design.prompt.md +23 -0
- package/scaffold/general/prompts/implement.prompt.md +26 -0
- package/scaffold/general/prompts/plan.prompt.md +25 -0
- package/scaffold/general/prompts/review.prompt.md +32 -0
- package/scaffold/general/skills/adr-skill/SKILL.md +329 -0
- package/scaffold/general/skills/adr-skill/assets/templates/adr-madr.md +89 -0
- package/scaffold/general/skills/adr-skill/assets/templates/adr-readme.md +20 -0
- package/scaffold/general/skills/adr-skill/assets/templates/adr-simple.md +46 -0
- package/scaffold/general/skills/adr-skill/references/adr-conventions.md +95 -0
- package/scaffold/general/skills/adr-skill/references/examples.md +193 -0
- package/scaffold/general/skills/adr-skill/references/review-checklist.md +77 -0
- package/scaffold/general/skills/adr-skill/references/template-variants.md +52 -0
- package/scaffold/general/skills/adr-skill/scripts/bootstrap_adr.js +259 -0
- package/scaffold/general/skills/adr-skill/scripts/new_adr.js +391 -0
- package/scaffold/general/skills/adr-skill/scripts/set_adr_status.js +169 -0
- package/scaffold/general/skills/aikit/SKILL.md +521 -0
- package/scaffold/general/skills/brainstorming/SKILL.md +259 -0
- package/scaffold/general/skills/brainstorming/scripts/frame-template.html +365 -0
- package/scaffold/general/skills/brainstorming/scripts/helper.js +216 -0
- package/scaffold/general/skills/brainstorming/scripts/server.cjs +9 -0
- package/scaffold/general/skills/brainstorming/scripts/server.src.cjs +249 -0
- package/scaffold/general/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/scaffold/general/skills/brainstorming/visual-companion.md +430 -0
- package/scaffold/general/skills/c4-architecture/SKILL.md +295 -0
- package/scaffold/general/skills/c4-architecture/references/advanced-patterns.md +552 -0
- package/scaffold/general/skills/c4-architecture/references/c4-syntax.md +492 -0
- package/scaffold/general/skills/c4-architecture/references/common-mistakes.md +437 -0
- package/scaffold/general/skills/lesson-learned/SKILL.md +105 -0
- package/scaffold/general/skills/lesson-learned/references/anti-patterns.md +55 -0
- package/scaffold/general/skills/lesson-learned/references/se-principles.md +109 -0
- package/scaffold/general/skills/multi-agents-development/SKILL.md +435 -0
- package/scaffold/general/skills/multi-agents-development/architecture-review-prompt.md +81 -0
- package/scaffold/general/skills/multi-agents-development/code-quality-review-prompt.md +91 -0
- package/scaffold/general/skills/multi-agents-development/implementer-prompt.md +93 -0
- package/scaffold/general/skills/multi-agents-development/parallel-dispatch-example.md +167 -0
- package/scaffold/general/skills/multi-agents-development/spec-review-prompt.md +81 -0
- package/scaffold/general/skills/present/SKILL.md +424 -0
- package/scaffold/general/skills/requirements-clarity/SKILL.md +324 -0
- package/scaffold/general/skills/session-handoff/SKILL.md +189 -0
- package/scaffold/general/skills/session-handoff/references/handoff-template.md +139 -0
- package/scaffold/general/skills/session-handoff/references/resume-checklist.md +80 -0
- package/scaffold/general/skills/session-handoff/scripts/check_staleness.js +269 -0
- package/scaffold/general/skills/session-handoff/scripts/create_handoff.js +299 -0
- package/scaffold/general/skills/session-handoff/scripts/list_handoffs.js +113 -0
- package/scaffold/general/skills/session-handoff/scripts/validate_handoff.js +241 -0
- package/scaffold/generate.mjs +82 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{loadConfig as e}from"./config.js";import{createMcpServer as t,createServer as n,initializeKnowledgeBase as r}from"./server.js";export{t as createMcpServer,n as createServer,r as initializeKnowledgeBase,e as loadConfig};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
//#region packages/server/src/auto-gc.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* P1-13: Self-tuning garbage collection based on p95 latency.
|
|
4
|
+
*
|
|
5
|
+
* Monitors tool call latency via the replay-interceptor's rolling buffer.
|
|
6
|
+
* When p95 exceeds a threshold the system enters "degraded" state and
|
|
7
|
+
* triggers progressive GC actions. A cooldown period prevents over-collection.
|
|
8
|
+
*/
|
|
9
|
+
type GcState = 'healthy' | 'warming' | 'degraded';
|
|
10
|
+
interface GcStatus {
|
|
11
|
+
state: GcState;
|
|
12
|
+
p95: number;
|
|
13
|
+
lastGcAt: number | null;
|
|
14
|
+
gcCount: number;
|
|
15
|
+
bufferSize: number;
|
|
16
|
+
}
|
|
17
|
+
type GcCallback = () => Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Evaluate the current latency profile and optionally trigger GC.
|
|
20
|
+
*
|
|
21
|
+
* Call this periodically (e.g. every N tool calls) from the replay interceptor.
|
|
22
|
+
* The optional `gcCallback` receives control when a GC cycle is triggered —
|
|
23
|
+
* the caller decides *what* to clean up (pruning stale curated entries,
|
|
24
|
+
* vacuuming SQLite, removing orphaned graph nodes, etc.).
|
|
25
|
+
*/
|
|
26
|
+
declare function checkAndMaybeGc(gcCallback?: GcCallback): void;
|
|
27
|
+
/** Return a snapshot of the GC health state for the status tool. */
|
|
28
|
+
declare function getGcStatus(): GcStatus;
|
|
29
|
+
//#endregion
|
|
30
|
+
export { GcCallback, checkAndMaybeGc, getGcStatus };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getLatencyBuffer as e}from"./replay-interceptor.js";import{createLogger as t}from"../../core/dist/index.js";const n=t(`auto-gc`);let r=`warming`,i=null,a=0;function o(){let t=[...e()];if(t.length<10)return 0;t.sort((e,t)=>e-t);let n=Math.floor(t.length*.95);return t[Math.min(n,t.length-1)]}function s(e){let t=o();if(t===0){r=`warming`;return}if(t>500){r=`degraded`;let o=Date.now();if(i&&o-i<36e5){n.debug(`GC cooldown active — skipping`,{lastGcAgoMs:o-i});return}i=o,a++,n.warn(`p95 latency exceeds threshold, triggering GC`,{p95:t,cycle:a}),e&&e().catch(e=>n.error(`GC callback failed`,{err:String(e)}))}else t<200&&(r=`healthy`)}function c(){return{state:r,p95:o(),lastGcAt:i,gcCount:a,bufferSize:e().length}}export{s as checkAndMaybeGc,c as getGcStatus};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CuratedKnowledgeManager } from "./curated-manager.js";
|
|
2
|
+
import { IGraphStore, IKnowledgeStore } from "../../store/dist/index.js";
|
|
3
|
+
|
|
4
|
+
//#region packages/server/src/completions.d.ts
|
|
5
|
+
/** Clear all completion caches (useful for testing). */
|
|
6
|
+
declare function clearCompletionCache(): void;
|
|
7
|
+
declare function completeCuratedPaths(curated: CuratedKnowledgeManager, partial: string): Promise<string[]>;
|
|
8
|
+
declare function completeFilePaths(store: IKnowledgeStore, partial: string): Promise<string[]>;
|
|
9
|
+
declare function completeSymbolNames(graphStore: IGraphStore, partial: string): Promise<string[]>;
|
|
10
|
+
declare function completeStashKeys(partial: string): string[];
|
|
11
|
+
declare function completeWorksetNames(partial: string): string[];
|
|
12
|
+
declare function completeCheckpointNames(partial: string): string[];
|
|
13
|
+
//#endregion
|
|
14
|
+
export { clearCompletionCache, completeCheckpointNames, completeCuratedPaths, completeFilePaths, completeStashKeys, completeSymbolNames, completeWorksetNames };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{checkpointList as e,listWorksets as t,stashList as n}from"../../tools/dist/index.js";const r=3e4,i=new Map;function a(e,t,n){let r=i.get(e);if(r&&Date.now()<r.expires)return Promise.resolve(r.data);let a=n();return Promise.resolve(a).then(n=>(i.set(e,{data:n,expires:Date.now()+t}),n))}function o(){i.clear()}function s(e,t){return a(`curated-paths`,r,async()=>(await e.list()).map(e=>e.path)).then(e=>e.filter(e=>e.toLowerCase().includes(t.toLowerCase())).slice(0,20))}function c(e,t){return a(`file-paths`,r,()=>e.listSourcePaths()).then(e=>e.filter(e=>e.toLowerCase().includes(t.toLowerCase())).slice(0,20))}function l(e,t){return a(`symbol-names`,r,async()=>(await e.findNodes({type:`symbol`,limit:500})).map(e=>e.name)).then(e=>e.filter(e=>e.toLowerCase().includes(t.toLowerCase())).slice(0,20))}function u(e){return n().map(e=>e.key).filter(t=>t.toLowerCase().includes(e.toLowerCase())).slice(0,20)}function d(e){return t().map(e=>e.name).filter(t=>t.toLowerCase().includes(e.toLowerCase())).slice(0,20)}function f(t){return e().map(e=>e.label).filter(e=>e.toLowerCase().includes(t.toLowerCase())).slice(0,20)}export{o as clearCompletionCache,f as completeCheckpointNames,s as completeCuratedPaths,c as completeFilePaths,u as completeStashKeys,l as completeSymbolNames,d as completeWorksetNames};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { KBConfig } from "../../core/dist/index.js";
|
|
2
|
+
|
|
3
|
+
//#region packages/server/src/config.d.ts
|
|
4
|
+
declare function loadConfig(): KBConfig;
|
|
5
|
+
/**
|
|
6
|
+
* Re-target an existing config to a new workspace root.
|
|
7
|
+
*
|
|
8
|
+
* Called after MCP roots are resolved — the initial config was built with
|
|
9
|
+
* `process.cwd()` (unknown at user-level), so we re-point source paths,
|
|
10
|
+
* store path, and curated path to the actual workspace the IDE has open.
|
|
11
|
+
*/
|
|
12
|
+
declare function reconfigureForWorkspace(config: KBConfig, workspaceRoot: string): void;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { loadConfig, reconfigureForWorkspace };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{existsSync as e,readFileSync as t}from"node:fs";import{dirname as n,resolve as r}from"node:path";import{fileURLToPath as i}from"node:url";import{AIKIT_PATHS as a,createLogger as o,getPartitionDir as s,isUserInstalled as c,registerWorkspace as l,serializeError as u}from"../../core/dist/index.js";const d=n(i(import.meta.url)),f=o(`server`);function p(e,t,n){let i=r(e),a=r(t);if(!i.startsWith(a))throw Error(`Config ${n} path escapes workspace root: ${e} is not under ${t}`);return i}function m(){let i=process.env.AIKIT_CONFIG_PATH??(e(r(process.cwd(),`kb.config.json`))?r(process.cwd(),`kb.config.json`):r(d,`..`,`..`,`..`,`kb.config.json`));try{if(!e(i))return f.info(`No config file found, using defaults`,{configPath:i}),h();let o=t(i,`utf-8`),s=JSON.parse(o);if(!s.sources||!Array.isArray(s.sources)||s.sources.length===0)throw Error(`Config must have at least one source`);if(!s.store?.path)throw Error(`Config must specify store.path`);let c=n(i);return s.sources=s.sources.map(e=>({...e,path:p(r(c,e.path),c,`source`)})),s.store.path=p(r(c,s.store.path),c,`store`),s.curated=s.curated??{path:a.aiCurated},s.curated.path=p(r(c,s.curated.path),c,`curated`),g(s,c),s}catch(e){return f.error(`Failed to load config`,{configPath:i,...u(e)}),f.warn(`Falling back to default configuration`,{configPath:i}),h()}}function h(){let e=process.env.AIKIT_WORKSPACE_ROOT??process.cwd(),t={sources:[{path:e,excludePatterns:[`node_modules/**`,`dist/**`,`.git/**`,`coverage/**`,`*.lock`,`pnpm-lock.yaml`]}],serverName:`knowledge-base`,indexing:{chunkSize:1500,chunkOverlap:200,minChunkSize:100},embedding:{model:`mixedbread-ai/mxbai-embed-large-v1`,dimensions:1024},store:{backend:`lancedb`,path:r(e,a.data)},curated:{path:r(e,a.aiCurated)},onboardDir:r(e,a.aiKb)};return g(t,e),t}function g(e,t){if(!c())return;let n=t,i=l(n);e.store.path=r(s(i.partition)),e.onboardDir=r(s(i.partition),`onboard`),e.curated||={path:r(n,a.aiCurated)}}function _(e,t){f.info(`Reconfiguring for workspace root`,{workspaceRoot:t});try{process.chdir(t),f.info(`Changed process cwd to workspace root`,{cwd:process.cwd()})}catch(e){f.warn(`Failed to chdir to workspace root`,{workspaceRoot:t,...u(e)})}e.sources=[{path:t,excludePatterns:e.sources[0]?.excludePatterns??[`node_modules/**`,`dist/**`,`.git/**`,`coverage/**`,`*.lock`,`pnpm-lock.yaml`]}],e.store.path=r(t,a.data),e.curated={path:r(t,a.aiCurated)},e.onboardDir=r(t,a.aiKb),g(e,t)}export{m as loadConfig,_ as reconfigureForWorkspace};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { RegistryEntry, SearchResult } from "../../core/dist/index.js";
|
|
2
|
+
import { IKnowledgeStore, SearchOptions } from "../../store/dist/index.js";
|
|
3
|
+
|
|
4
|
+
//#region packages/server/src/cross-workspace.d.ts
|
|
5
|
+
interface CrossWorkspaceOptions {
|
|
6
|
+
/** Workspace partition names or folder basenames to include. `"*"` means all. */
|
|
7
|
+
workspaces: string[];
|
|
8
|
+
/** Current workspace partition (excluded from cross-workspace queries to avoid double results) */
|
|
9
|
+
currentPartition?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Resolve workspace identifiers to partition entries.
|
|
13
|
+
* Accepts partition keys (exact) or folder basenames (fuzzy match).
|
|
14
|
+
* Special value `"*"` resolves to all registered workspaces.
|
|
15
|
+
*/
|
|
16
|
+
declare function resolveWorkspaces(identifiers: string[], currentPartition?: string): RegistryEntry[];
|
|
17
|
+
/**
|
|
18
|
+
* Open temporary read-only store instances for the specified workspace partitions.
|
|
19
|
+
* Caller MUST call closeAll() when done.
|
|
20
|
+
*/
|
|
21
|
+
declare function openWorkspaceStores(entries: RegistryEntry[]): Promise<{
|
|
22
|
+
stores: Map<string, IKnowledgeStore>;
|
|
23
|
+
closeAll: () => Promise<void>;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Fan-out a vector search to multiple workspace stores in parallel.
|
|
27
|
+
* Returns merged results sorted by score descending, with workspace labels.
|
|
28
|
+
*/
|
|
29
|
+
declare function fanOutSearch(stores: Map<string, IKnowledgeStore>, queryVector: Float32Array, options: SearchOptions & {
|
|
30
|
+
limit: number;
|
|
31
|
+
}): Promise<Array<SearchResult & {
|
|
32
|
+
workspace: string;
|
|
33
|
+
}>>;
|
|
34
|
+
/**
|
|
35
|
+
* Fan-out a full-text search to multiple workspace stores in parallel.
|
|
36
|
+
*/
|
|
37
|
+
declare function fanOutFtsSearch(stores: Map<string, IKnowledgeStore>, query: string, options: SearchOptions & {
|
|
38
|
+
limit: number;
|
|
39
|
+
}): Promise<Array<SearchResult & {
|
|
40
|
+
workspace: string;
|
|
41
|
+
}>>;
|
|
42
|
+
//#endregion
|
|
43
|
+
export { CrossWorkspaceOptions, fanOutFtsSearch, fanOutSearch, openWorkspaceStores, resolveWorkspaces };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createLogger as e,getPartitionDir as t,isUserInstalled as n,listWorkspaces as r}from"../../core/dist/index.js";import{createStore as i}from"../../store/dist/index.js";const a=e(`cross-workspace`);function o(e,t){if(!n())return[];let i=r();if(i.length===0)return[];if(e.includes(`*`))return t?i.filter(e=>e.partition!==t):i;let a=[];for(let n of e){let e=i.find(e=>e.partition===n);if(e){e.partition!==t&&a.push(e);continue}let r=i.filter(e=>e.partition!==t&&e.partition.replace(/-[a-f0-9]{8}$/,``)===n.toLowerCase());a.push(...r)}let o=new Set;return a.filter(e=>o.has(e.partition)?!1:(o.add(e.partition),!0))}async function s(e){let n=new Map;for(let r of e)try{let e=await i({backend:`lancedb`,path:t(r.partition)});await e.initialize(),n.set(r.partition,e)}catch(e){a.warn(`Failed to open workspace store`,{partition:r.partition,err:e})}return{stores:n,closeAll:async()=>{for(let[,e]of n)try{await e.close()}catch{}}}}async function c(e,t,n){let r=[...e.entries()].map(async([e,r])=>{try{return(await r.search(t,n)).map(t=>({...t,workspace:e}))}catch(t){return a.warn(`Cross-workspace search failed for partition`,{partition:e,err:t}),[]}});return(await Promise.all(r)).flat().sort((e,t)=>t.score-e.score).slice(0,n.limit)}async function l(e,t,n){let r=[...e.entries()].map(async([e,r])=>{try{return(await r.ftsSearch(t,n)).map(t=>({...t,workspace:e}))}catch(t){return a.warn(`Cross-workspace FTS search failed for partition`,{partition:e,err:t}),[]}});return(await Promise.all(r)).flat().sort((e,t)=>t.score-e.score).slice(0,n.limit)}export{l as fanOutFtsSearch,c as fanOutSearch,s as openWorkspaceStores,o as resolveWorkspaces};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { IEmbedder } from "../../embeddings/dist/index.js";
|
|
2
|
+
import { IKnowledgeStore } from "../../store/dist/index.js";
|
|
3
|
+
|
|
4
|
+
//#region packages/server/src/curated-manager.d.ts
|
|
5
|
+
type CuratedCategory = string;
|
|
6
|
+
interface CuratedEntry {
|
|
7
|
+
path: string;
|
|
8
|
+
title: string;
|
|
9
|
+
category: string;
|
|
10
|
+
tags: string[];
|
|
11
|
+
version: number;
|
|
12
|
+
created: string;
|
|
13
|
+
updated: string;
|
|
14
|
+
contentPreview: string;
|
|
15
|
+
}
|
|
16
|
+
interface CuratedFrontmatter {
|
|
17
|
+
title: string;
|
|
18
|
+
category: string;
|
|
19
|
+
tags: string[];
|
|
20
|
+
created: string;
|
|
21
|
+
updated: string;
|
|
22
|
+
version: number;
|
|
23
|
+
origin: 'curated';
|
|
24
|
+
changelog: Array<{
|
|
25
|
+
version: number;
|
|
26
|
+
date: string;
|
|
27
|
+
reason: string;
|
|
28
|
+
}>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Manages curated knowledge files — the LLM's persistent memory.
|
|
32
|
+
* Files are stored as markdown in a .ai/curated/ directory with YAML frontmatter.
|
|
33
|
+
*/
|
|
34
|
+
declare class CuratedKnowledgeManager {
|
|
35
|
+
private readonly curatedDir;
|
|
36
|
+
private readonly store;
|
|
37
|
+
private readonly embedder;
|
|
38
|
+
constructor(curatedDir: string, store: IKnowledgeStore, embedder: IEmbedder);
|
|
39
|
+
remember(title: string, content: string, category: CuratedCategory, tags?: string[]): Promise<{
|
|
40
|
+
path: string;
|
|
41
|
+
}>;
|
|
42
|
+
update(relativePath: string, newContent: string, reason: string): Promise<{
|
|
43
|
+
path: string;
|
|
44
|
+
version: number;
|
|
45
|
+
}>;
|
|
46
|
+
forget(relativePath: string, _reason: string): Promise<{
|
|
47
|
+
path: string;
|
|
48
|
+
}>;
|
|
49
|
+
read(relativePath: string): Promise<CuratedEntry & {
|
|
50
|
+
content: string;
|
|
51
|
+
}>;
|
|
52
|
+
list(filters?: {
|
|
53
|
+
category?: CuratedCategory;
|
|
54
|
+
tag?: string;
|
|
55
|
+
}): Promise<CuratedEntry[]>;
|
|
56
|
+
/**
|
|
57
|
+
* Re-index all curated files into the vector store.
|
|
58
|
+
* Call this after the indexer has run to restore curated vectors
|
|
59
|
+
* that may have been lost, or to bulk-sync disk state to vectors.
|
|
60
|
+
*/
|
|
61
|
+
reindexAll(): Promise<{
|
|
62
|
+
indexed: number;
|
|
63
|
+
errors: string[];
|
|
64
|
+
}>;
|
|
65
|
+
private indexCuratedFile;
|
|
66
|
+
private discoverCategories;
|
|
67
|
+
/**
|
|
68
|
+
* Normalize and validate a relative path within .ai/curated/.
|
|
69
|
+
* Returns the cleaned path (mutates nothing — caller must use the return value).
|
|
70
|
+
*/
|
|
71
|
+
private guardPath;
|
|
72
|
+
private validateCategoryName;
|
|
73
|
+
private validateContentSize;
|
|
74
|
+
private slugify;
|
|
75
|
+
/** Return a unique `category/slug.md` path, appending `-2`, `-3`, … on collision. */
|
|
76
|
+
private uniqueRelativePath;
|
|
77
|
+
private hash;
|
|
78
|
+
private hashId;
|
|
79
|
+
/**
|
|
80
|
+
* Simple YAML frontmatter serializer (no gray-matter dependency).
|
|
81
|
+
*/
|
|
82
|
+
private serializeFile;
|
|
83
|
+
/**
|
|
84
|
+
* Simple YAML frontmatter parser (no gray-matter dependency).
|
|
85
|
+
*/
|
|
86
|
+
parseFile(raw: string): {
|
|
87
|
+
frontmatter: CuratedFrontmatter;
|
|
88
|
+
content: string;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
//#endregion
|
|
92
|
+
export { CuratedCategory, CuratedEntry, CuratedKnowledgeManager };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{dirname as e,isAbsolute as t,join as n}from"node:path";import{createLogger as r,serializeError as i}from"../../core/dist/index.js";import{createHash as a}from"node:crypto";import{mkdir as o,readFile as s,readdir as c,stat as l,unlink as u,writeFile as d}from"node:fs/promises";const f=50*1024,p=r(`server`);var m=class{constructor(e,t,n){this.curatedDir=e,this.store=t,this.embedder=n}async remember(t,r,i,a=[]){this.validateCategoryName(i),this.validateContentSize(r);let s=this.slugify(t),c=await this.uniqueRelativePath(i,s),l=n(this.curatedDir,c),f=new Date().toISOString(),p={title:t,category:i,tags:a,created:f,updated:f,version:1,origin:`curated`,changelog:[{version:1,date:f,reason:`Initial creation`}]},m=this.serializeFile(r,p);await o(e(l),{recursive:!0});try{await d(l,m,{encoding:`utf-8`,flag:`wx`})}catch(e){throw e.code===`EEXIST`?Error(`Concurrent write collision for "${c}" — retry the operation`):e}try{await this.indexCuratedFile(c,r,p)}catch(e){throw await u(l).catch(()=>{}),Error(`Remember failed: wrote file but indexing failed — rolled back. ${e.message}`)}return{path:c}}async update(e,t,r){e=this.guardPath(e),this.validateContentSize(t);let i=n(this.curatedDir,e),a=await s(i,`utf-8`),{frontmatter:o}=this.parseFile(a),c=(o.version??1)+1,l=new Date().toISOString();return o.version=c,o.updated=l,o.changelog=[...o.changelog??[],{version:c,date:l,reason:r}],await d(i,this.serializeFile(t,o),`utf-8`),await this.indexCuratedFile(e,t,o),{path:e,version:c}}async forget(e,t){e=this.guardPath(e),await u(n(this.curatedDir,e));let r=`.ai/curated/${e}`;return await this.store.deleteBySourcePath(r).catch(e=>{p.warn(`File deleted but vector cleanup failed`,{sourcePath:r,...i(e)})}),{path:e}}async read(e){e=this.guardPath(e);let t=await s(n(this.curatedDir,e),`utf-8`),{frontmatter:r,content:i}=this.parseFile(t),a=e.split(`/`)[0];return{path:e,title:r.title??e,category:a,tags:r.tags??[],version:r.version??1,created:r.created??``,updated:r.updated??``,contentPreview:i.slice(0,200),content:i}}async list(e){let t=[],r=e?.category?[e.category]:await this.discoverCategories();for(let i of r){let r=n(this.curatedDir,i);try{let a=await c(r);for(let o of a){if(!o.endsWith(`.md`))continue;let a=await s(n(r,o),`utf-8`),{frontmatter:c,content:l}=this.parseFile(a);e?.tag&&!(c.tags??[]).includes(e.tag)||t.push({path:`${i}/${o}`,title:c.title??o,category:i,tags:c.tags??[],version:c.version??1,created:c.created??``,updated:c.updated??``,contentPreview:l.slice(0,200)})}}catch{}}return t}async reindexAll(){let e=await this.discoverCategories(),t=[],r=[];for(let a of e){let e=n(this.curatedDir,a),o;try{o=(await c(e)).filter(e=>e.endsWith(`.md`))}catch{continue}for(let c of o){let o=`${a}/${c}`,l=n(e,c);try{let e=await s(l,`utf-8`),{frontmatter:t,content:n}=this.parseFile(e);r.push({relativePath:o,content:n,frontmatter:t})}catch(e){p.error(`Failed to read curated file`,{relativePath:o,...i(e)}),t.push(`${o}: read failed`)}}}if(r.length===0)return{indexed:0,errors:t};let a=await this.embedder.embedBatch(r.map(e=>e.content)),o=new Date().toISOString(),l=r.map(e=>{let t=`.ai/curated/${e.relativePath}`;return{id:this.hashId(t,0),content:e.content,sourcePath:t,contentType:`curated-knowledge`,headingPath:e.frontmatter.title,chunkIndex:0,totalChunks:1,startLine:1,endLine:e.content.split(`
|
|
2
|
+
`).length,fileHash:this.hash(e.content),indexedAt:o,origin:`curated`,tags:e.frontmatter.tags,category:e.frontmatter.category,version:e.frontmatter.version}});return await this.store.upsert(l,a),{indexed:r.length,errors:t}}async indexCuratedFile(e,t,n){let r=await this.embedder.embed(t),i=`.ai/curated/${e}`,a=new Date().toISOString(),o={id:this.hashId(i,0),content:t,sourcePath:i,contentType:`curated-knowledge`,headingPath:n.title,chunkIndex:0,totalChunks:1,startLine:1,endLine:t.split(`
|
|
3
|
+
`).length,fileHash:this.hash(t),indexedAt:a,origin:`curated`,tags:n.tags,category:n.category,version:n.version};await this.store.upsert([o],[r])}async discoverCategories(){try{return(await c(this.curatedDir,{withFileTypes:!0})).filter(e=>e.isDirectory()&&/^[a-z][a-z0-9-]*$/.test(e.name)).map(e=>e.name)}catch{return[]}}guardPath(e){let n=e.replace(/^\.ai\/curated\//,``);if(n.endsWith(`.md`)||(n+=`.md`),n.includes(`..`)||t(n))throw Error(`Invalid path: ${n}. Must be relative within .ai/curated/ directory.`);let r=n.split(`/`)[0];return this.validateCategoryName(r),n}validateCategoryName(e){if(!/^[a-z][a-z0-9-]*$/.test(e))throw Error(`Invalid category name: "${e}". Must be lowercase kebab-case (e.g., "decisions", "api-contracts").`)}validateContentSize(e){if(Buffer.byteLength(e,`utf-8`)>f)throw Error(`Content exceeds maximum size of ${f/1024}KB`)}slugify(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``).slice(0,80)}async uniqueRelativePath(e,t){let r=`${e}/${t}.md`,i=n(this.curatedDir,r);try{await l(i)}catch{return r}for(let r=2;r<=100;r++){let i=`${e}/${t}-${r}.md`;try{await l(n(this.curatedDir,i))}catch{return i}}throw Error(`Too many entries with slug "${t}" in category "${e}"`)}hash(e){return a(`sha256`).update(e).digest(`hex`).slice(0,16)}hashId(e,t){return this.hash(`${e}::${t}`)}serializeFile(e,t){return`${[`---`,`title: "${t.title.replace(/"/g,`\\"`)}"`,`category: ${t.category}`,`tags: [${t.tags.map(e=>`"${e}"`).join(`, `)}]`,`created: ${t.created}`,`updated: ${t.updated}`,`version: ${t.version}`,`origin: ${t.origin}`,`changelog:`,...t.changelog.map(e=>` - version: ${e.version}\n date: ${e.date}\n reason: "${e.reason.replace(/"/g,`\\"`)}"`),`---`].join(`
|
|
4
|
+
`)}\n\n${e}\n`}parseFile(e){let t=e.match(/^---\n([\s\S]*?)\n---\n\n?([\s\S]*)$/);if(!t)return{frontmatter:{title:`Untitled`,category:`notes`,tags:[],created:``,updated:``,version:1,origin:`curated`,changelog:[]},content:e};let n=t[1],r=t[2].trim(),i={},a=[],o=n.split(`
|
|
5
|
+
`),s=!1,c={};for(let e of o){if(/^changelog:\s*$/.test(e)){s=!0;continue}if(s){let t=e.match(/^\s+-\s+version:\s*(\d+)$/);if(t){c.version!=null&&a.push(c),c={version:parseInt(t[1],10)};continue}let n=e.match(/^\s+date:\s*(.+)$/);if(n){c.date=n[1].trim();continue}let r=e.match(/^\s+reason:\s*"?(.*?)"?\s*$/);if(r){c.reason=r[1];continue}/^\w/.test(e)&&(s=!1,c.version!=null&&a.push(c),c={});continue}let t=e.match(/^(\w+):\s*(.*)$/);if(t){let e=t[1],n=t[2];typeof n==`string`&&n.startsWith(`[`)&&n.endsWith(`]`)?n=n.slice(1,-1).split(`,`).map(e=>e.trim().replace(/^"|"$/g,``)).filter(e=>e.length>0):typeof n==`string`&&/^\d+$/.test(n)?n=parseInt(n,10):typeof n==`string`&&n.startsWith(`"`)&&n.endsWith(`"`)&&(n=n.slice(1,-1)),i[e]=n}}return c.version!=null&&a.push(c),{frontmatter:{title:i.title??`Untitled`,category:i.category??`notes`,tags:i.tags??[],created:i.created??``,updated:i.updated??``,version:i.version??1,origin:`curated`,changelog:a},content:r}}};export{m as CuratedKnowledgeManager};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as _$express from "express";
|
|
2
|
+
|
|
3
|
+
//#region packages/server/src/dashboard-static.d.ts
|
|
4
|
+
type DashboardApp = {
|
|
5
|
+
get: (path: string, handler: (req: _$express.Request, res: _$express.Response) => void) => void;
|
|
6
|
+
};
|
|
7
|
+
type DashboardLogger = {
|
|
8
|
+
info: (message: string, meta?: Record<string, unknown>) => void;
|
|
9
|
+
};
|
|
10
|
+
type DashboardRequestResolution = {
|
|
11
|
+
kind: 'file';
|
|
12
|
+
path: string;
|
|
13
|
+
contentType: string;
|
|
14
|
+
} | {
|
|
15
|
+
kind: 'spa';
|
|
16
|
+
path: string;
|
|
17
|
+
contentType: 'text/html';
|
|
18
|
+
} | {
|
|
19
|
+
kind: 'forbidden';
|
|
20
|
+
} | {
|
|
21
|
+
kind: 'not-found';
|
|
22
|
+
};
|
|
23
|
+
declare function resolveDashboardDir(baseDir?: string): string;
|
|
24
|
+
declare function resolveDashboardRequest(dashboardDir: string, requestPath: string): DashboardRequestResolution;
|
|
25
|
+
declare function registerDashboardRoutes(app: DashboardApp, dashboardDir: string, logger: DashboardLogger): boolean;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { DashboardRequestResolution, registerDashboardRoutes, resolveDashboardDir, resolveDashboardRequest };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createReadStream as e,existsSync as t,statSync as n}from"node:fs";import{dirname as r,extname as i,join as a,resolve as o,sep as s}from"node:path";import{fileURLToPath as c}from"node:url";const l=import.meta.dirname??r(c(import.meta.url)),u={".html":`text/html`,".js":`application/javascript`,".css":`text/css`,".json":`application/json`,".png":`image/png`,".svg":`image/svg+xml`,".ico":`image/x-icon`,".woff":`font/woff`,".woff2":`font/woff2`};function d(e=l){return a(e,`..`,`..`,`dashboard`,`dist`)}function f(e,r){let c=r.replace(/^\/_dashboard\/?/,``)||`index.html`;try{c=decodeURIComponent(c)}catch{}let l=o(e,c);if(!(l===e||l.startsWith(`${e}${s}`)))return{kind:`forbidden`};try{if(n(l).isFile())return{kind:`file`,path:l,contentType:u[i(l)]??`application/octet-stream`}}catch{}let d=a(e,`index.html`);return t(d)?{kind:`spa`,path:d,contentType:`text/html`}:{kind:`not-found`}}function p(n,r,i){return t(r)?(n.get(`/_dashboard{/*path}`,(t,n)=>{let i=f(r,t.path);if(i.kind===`forbidden`){n.status(403).end(`Forbidden`);return}if(i.kind===`not-found`){n.status(404).end(`Not found`);return}n.setHeader(`Content-Type`,i.contentType),i.kind===`file`&&/\.[a-f0-9]{8,}\.(js|css)$/i.test(i.path)?n.setHeader(`Cache-Control`,`public, max-age=31536000, immutable`):n.setHeader(`Cache-Control`,`no-cache`),e(i.path).pipe(n)}),i.info(`Dashboard available`,{url:`/_dashboard/`,dir:r}),!0):!1}export{p as registerDashboardRoutes,d as resolveDashboardDir,f as resolveDashboardRequest};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { Elicitor } from "../../elicitation/dist/index.js";
|
|
3
|
+
|
|
4
|
+
//#region packages/server/src/elicitor.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Create an Elicitor backed by the MCP server's elicitInput capability.
|
|
7
|
+
*
|
|
8
|
+
* All methods degrade gracefully: if the client does not support elicitation,
|
|
9
|
+
* they return decline / false / null / [] defaults without throwing.
|
|
10
|
+
*/
|
|
11
|
+
declare function createElicitor(mcpServer: McpServer): Elicitor;
|
|
12
|
+
/**
|
|
13
|
+
* No-op Elicitor — always returns decline / false / null / [].
|
|
14
|
+
* Used when no MCP server is available.
|
|
15
|
+
*/
|
|
16
|
+
declare const noopElicitor: Elicitor;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { createElicitor, noopElicitor };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{buildFormSchema as e,field as t,normalizeResponse as n}from"../../elicitation/dist/index.js";function r(r){function i(){return!!r.server?.getClientCapabilities?.()?.elicitation}async function a(e,t){if(i())try{let i=await r.server.elicitInput({message:e,requestedSchema:t});return n(i?{action:i.action,content:i.content}:void 0)}catch{return}}return{get available(){return i()},async ask(e){return await a(e.message,e.schema)||{action:`decline`}},async confirm(n){let r=await a(n,e({confirmed:t.confirm(n)}));return r?.action===`accept`&&r.content?.confirmed===!0},async selectOne(n,r){let i=await a(n,e({selection:t.select(`Choose one`,r)}));if(i?.action!==`accept`)return null;let o=i.content?.selection;return typeof o==`string`?o:null},async selectMany(n,r){let i=await a(n,e({selections:t.multi(`Choose one or more`,r)}));if(i?.action!==`accept`)return[];let o=i.content?.selections;return Array.isArray(o)?o:[]},async promptText(n,r){let i=await a(n,e({text:t.text(n,{description:r})}));if(i?.action!==`accept`)return null;let o=i.content?.text;return typeof o==`string`?o:null}}}const i={available:!1,async ask(){return{action:`decline`}},async confirm(){return!1},async selectOne(){return null},async selectMany(){return[]},async promptText(){return null}};export{r as createElicitor,i as noopElicitor};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{readFileSync as e}from"node:fs";import{dirname as t,resolve as n}from"node:path";import{fileURLToPath as r}from"node:url";import{createLogger as i,serializeError as a}from"../../core/dist/index.js";import{parseArgs as o}from"node:util";const s=t(r(import.meta.url)),c=(()=>{try{let t=n(s,`..`,`..`,`..`,`package.json`);return JSON.parse(e(t,`utf-8`)).version??`0.0.0`}catch{return`0.0.0`}})(),l=i(`server`),{values:u}=o({options:{transport:{type:`string`,default:process.env.AIKIT_TRANSPORT??`stdio`},port:{type:`string`,default:process.env.AIKIT_PORT??`3210`}}});async function d(){if(process.on(`unhandledRejection`,e=>{l.error(`Unhandled rejection`,a(e))}),l.info(`Starting MCP Knowledge Base server`,{version:c}),u.transport===`http`){let[{default:e},{loadConfig:t},{registerDashboardRoutes:n,resolveDashboardDir:r}]=await Promise.all([import(`express`),import(`./config.js`),import(`./dashboard-static.js`)]),i=t();l.info(`Config loaded`,{sourceCount:i.sources.length,storePath:i.store.path});let o=e();o.use(e.json());let s=Number(u.port);o.use((e,t,n)=>{if(t.setHeader(`Access-Control-Allow-Origin`,process.env.AIKIT_CORS_ORIGIN??`http://localhost:${s}`),t.setHeader(`Access-Control-Allow-Methods`,`GET, POST, DELETE, OPTIONS`),t.setHeader(`Access-Control-Allow-Headers`,`Content-Type, Authorization`),e.method===`OPTIONS`){t.status(204).end();return}n()}),n(o,r(),l),o.get(`/health`,(e,t)=>{t.json({status:`ok`})});let c=!1,d=null,f=null,p=Promise.resolve();o.post(`/mcp`,async(e,t)=>{if(!c||!d||!f){t.status(503).json({jsonrpc:`2.0`,error:{code:-32603,message:`Server initializing — please retry in a few seconds`},id:null});return}let n=p,r;p=new Promise(e=>{r=e}),await n;try{let n=new f({sessionIdGenerator:void 0});await d.connect(n),await n.handleRequest(e,t,e.body),n.close()}catch(e){if(l.error(`MCP handler error`,a(e)),!t.headersSent){let n=e instanceof Error?e.message:String(e),r=n.includes(`Not Acceptable`);t.status(r?406:500).json({jsonrpc:`2.0`,error:{code:r?-32e3:-32603,message:r?n:`Internal server error`},id:null})}}finally{r()}}),o.get(`/mcp`,(e,t)=>{t.writeHead(405).end(JSON.stringify({jsonrpc:`2.0`,error:{code:-32e3,message:`Method not allowed.`},id:null}))}),o.delete(`/mcp`,(e,t)=>{t.writeHead(405).end(JSON.stringify({jsonrpc:`2.0`,error:{code:-32e3,message:`Method not allowed.`},id:null}))});let m=o.listen(s,`127.0.0.1`,()=>{l.info(`MCP server listening`,{url:`http://127.0.0.1:${s}/mcp`,port:s}),setTimeout(async()=>{try{let[{createLazyServer:e,ALL_TOOL_NAMES:t},{StreamableHTTPServerTransport:n},{checkForUpdates:r,autoUpgradeScaffold:o}]=await Promise.all([import(`./server.js`),import(`@modelcontextprotocol/sdk/server/streamableHttp.js`),import(`./version-check.js`)]);r(),o();let s=e(i);d=s.server,f=n,c=!0,l.info(`MCP server configured (lazy — KB initializing in background)`,{toolCount:t.length,resourceCount:2}),s.startInit(),process.env.AIKIT_AUTO_INDEX===`true`?s.ready.then(async()=>{try{let e=i.sources.map(e=>e.path).join(`, `);l.info(`Running initial index`,{sourcePaths:e}),await s.runInitialIndex(),l.info(`Initial index complete`)}catch(e){l.error(`Initial index failed; will retry on aikit_reindex`,a(e))}}).catch(e=>l.error(`KB init or indexing failed`,a(e))):(s.ready.catch(e=>l.error(`KB initialization failed`,a(e))),l.info(`Auto-index disabled in HTTP mode (set AIKIT_AUTO_INDEX=true to enable)`))}catch(e){l.error(`Failed to load server modules`,a(e))}},100)}),h=async e=>{l.info(`Shutdown signal received`,{signal:e}),m.close(),d&&await d.close(),process.exit(0)};process.on(`SIGINT`,()=>h(`SIGINT`)),process.on(`SIGTERM`,()=>h(`SIGTERM`))}else{let[{loadConfig:e,reconfigureForWorkspace:t},{createLazyServer:n},{checkForUpdates:i,autoUpgradeScaffold:o},{RootsListChangedNotificationSchema:s}]=await Promise.all([import(`./config.js`),import(`./server.js`),import(`./version-check.js`),import(`@modelcontextprotocol/sdk/types.js`)]),c=e();l.info(`Config loaded`,{sourceCount:c.sources.length,storePath:c.store.path}),i(),o();let{server:u,startInit:d,ready:f,runInitialIndex:p}=n(c),{StdioServerTransport:m}=await import(`@modelcontextprotocol/sdk/server/stdio.js`),h=new m;await u.connect(h),l.info(`MCP server started`,{transport:`stdio`});let g=e=>{if(e.length===0)return!1;let n=e[0].uri,i=n.startsWith(`file://`)?r(n):n;return l.info(`MCP roots resolved`,{rootUri:n,rootPath:i,rootCount:e.length}),t(c,i),!0},_=!1;try{_=g((await u.server.listRoots()).roots),_||l.info(`No MCP roots yet; waiting for roots/list_changed notification`)}catch(e){l.warn(`MCP roots/list not supported by client; using cwd fallback`,{cwd:process.cwd(),...a(e)}),_=!0}_||=await new Promise(e=>{let t=setTimeout(()=>{l.warn(`Timed out waiting for MCP roots/list_changed; using cwd fallback`,{cwd:process.cwd()}),e(!1)},5e3);u.server.setNotificationHandler(s,async()=>{clearTimeout(t);try{e(g((await u.server.listRoots()).roots))}catch(t){l.warn(`roots/list retry failed after notification`,a(t)),e(!1)}})}),d(),f.catch(e=>{l.error(`Initialization failed — server will continue with limited tools`,a(e))}),process.env.AIKIT_AUTO_INDEX===`false`?l.warn(`Auto-index disabled; use aikit_reindex to index manually`):p().catch(e=>l.error(`Initial index failed`,a(e)))}}d().catch(e=>{l.error(`Fatal error`,a(e)),process.exit(1)});export{};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
|
|
3
|
+
//#region packages/server/src/mcp-logging.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Bridge internal logger messages to MCP client via `sendLoggingMessage`.
|
|
6
|
+
* Fire-and-forget — never blocks the log caller, never throws.
|
|
7
|
+
* Returns a cleanup function to remove the bridge.
|
|
8
|
+
*/
|
|
9
|
+
declare function bridgeMcpLogging(server: McpServer): () => void;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { bridgeMcpLogging };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{addLogListener as e}from"../../core/dist/index.js";const t={debug:`debug`,info:`info`,warn:`warning`,error:`error`};function n(n){return e(({level:e,component:r,message:i,data:a})=>{try{Promise.resolve(n.sendLoggingMessage({level:t[e],logger:r,data:a?{message:i,...a}:i})).catch(()=>{})}catch{}})}export{n as bridgeMcpLogging};
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region packages/server/src/output-schemas.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Centralized output schemas for MCP tools that return naturally structured data.
|
|
6
|
+
*
|
|
7
|
+
* Phase 1: status, list, health, measure, env, time
|
|
8
|
+
* These schemas are used with `outputSchema` in tool registration and validated
|
|
9
|
+
* by the SDK at runtime. Keep them intentionally flat and stable — do not leak
|
|
10
|
+
* internal storage record shapes.
|
|
11
|
+
*/
|
|
12
|
+
declare const StatusOutputSchema: z.ZodObject<{
|
|
13
|
+
totalRecords: z.ZodNumber;
|
|
14
|
+
totalFiles: z.ZodNumber;
|
|
15
|
+
lastIndexedAt: z.ZodNullable<z.ZodString>;
|
|
16
|
+
onboarded: z.ZodBoolean;
|
|
17
|
+
onboardDir: z.ZodString;
|
|
18
|
+
contentTypes: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
19
|
+
wasmAvailable: z.ZodBoolean;
|
|
20
|
+
graphStats: z.ZodNullable<z.ZodObject<{
|
|
21
|
+
nodes: z.ZodNumber;
|
|
22
|
+
edges: z.ZodNumber;
|
|
23
|
+
}, z.core.$strip>>;
|
|
24
|
+
curatedCount: z.ZodNumber;
|
|
25
|
+
serverVersion: z.ZodString;
|
|
26
|
+
scaffoldVersion: z.ZodNullable<z.ZodString>;
|
|
27
|
+
workspaceScaffoldVersion: z.ZodNullable<z.ZodString>;
|
|
28
|
+
upgradeAvailable: z.ZodBoolean;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
declare const ListOutputSchema: z.ZodObject<{
|
|
31
|
+
entries: z.ZodArray<z.ZodObject<{
|
|
32
|
+
path: z.ZodString;
|
|
33
|
+
title: z.ZodString;
|
|
34
|
+
category: z.ZodString;
|
|
35
|
+
tags: z.ZodArray<z.ZodString>;
|
|
36
|
+
version: z.ZodNumber;
|
|
37
|
+
preview: z.ZodString;
|
|
38
|
+
}, z.core.$strip>>;
|
|
39
|
+
totalCount: z.ZodNumber;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
declare const HealthOutputSchema: z.ZodObject<{
|
|
42
|
+
ok: z.ZodBoolean;
|
|
43
|
+
checks: z.ZodArray<z.ZodObject<{
|
|
44
|
+
name: z.ZodString;
|
|
45
|
+
ok: z.ZodBoolean;
|
|
46
|
+
message: z.ZodOptional<z.ZodString>;
|
|
47
|
+
}, z.core.$strip>>;
|
|
48
|
+
}, z.core.$strip>;
|
|
49
|
+
declare const MeasureOutputSchema: z.ZodObject<{
|
|
50
|
+
summary: z.ZodObject<{
|
|
51
|
+
totalFiles: z.ZodNumber;
|
|
52
|
+
totalLines: z.ZodNumber;
|
|
53
|
+
totalCodeLines: z.ZodNumber;
|
|
54
|
+
totalFunctions: z.ZodNumber;
|
|
55
|
+
avgComplexity: z.ZodNumber;
|
|
56
|
+
maxComplexity: z.ZodObject<{
|
|
57
|
+
value: z.ZodNumber;
|
|
58
|
+
file: z.ZodString;
|
|
59
|
+
}, z.core.$strip>;
|
|
60
|
+
}, z.core.$strip>;
|
|
61
|
+
files: z.ZodArray<z.ZodObject<{
|
|
62
|
+
path: z.ZodString;
|
|
63
|
+
lines: z.ZodNumber;
|
|
64
|
+
code: z.ZodNumber;
|
|
65
|
+
complexity: z.ZodNumber;
|
|
66
|
+
functions: z.ZodNumber;
|
|
67
|
+
}, z.core.$strip>>;
|
|
68
|
+
}, z.core.$strip>;
|
|
69
|
+
declare const EnvOutputSchema: z.ZodObject<{
|
|
70
|
+
platform: z.ZodString;
|
|
71
|
+
arch: z.ZodString;
|
|
72
|
+
nodeVersion: z.ZodString;
|
|
73
|
+
cwd: z.ZodString;
|
|
74
|
+
cpus: z.ZodNumber;
|
|
75
|
+
memoryFreeGb: z.ZodNumber;
|
|
76
|
+
memoryTotalGb: z.ZodNumber;
|
|
77
|
+
}, z.core.$strip>;
|
|
78
|
+
declare const TimeOutputSchema: z.ZodObject<{
|
|
79
|
+
iso: z.ZodString;
|
|
80
|
+
unix: z.ZodNumber;
|
|
81
|
+
timezone: z.ZodString;
|
|
82
|
+
formatted: z.ZodString;
|
|
83
|
+
}, z.core.$strip>;
|
|
84
|
+
declare const CheckOutputSchema: z.ZodObject<{
|
|
85
|
+
passed: z.ZodBoolean;
|
|
86
|
+
tsc: z.ZodObject<{
|
|
87
|
+
passed: z.ZodBoolean;
|
|
88
|
+
errorCount: z.ZodNumber;
|
|
89
|
+
warningCount: z.ZodNumber;
|
|
90
|
+
topErrors: z.ZodArray<z.ZodString>;
|
|
91
|
+
}, z.core.$strip>;
|
|
92
|
+
biome: z.ZodObject<{
|
|
93
|
+
passed: z.ZodBoolean;
|
|
94
|
+
errorCount: z.ZodNumber;
|
|
95
|
+
warningCount: z.ZodNumber;
|
|
96
|
+
topErrors: z.ZodArray<z.ZodString>;
|
|
97
|
+
}, z.core.$strip>;
|
|
98
|
+
}, z.core.$strip>;
|
|
99
|
+
declare const SymbolOutputSchema: z.ZodObject<{
|
|
100
|
+
name: z.ZodString;
|
|
101
|
+
definedIn: z.ZodNullable<z.ZodObject<{
|
|
102
|
+
path: z.ZodString;
|
|
103
|
+
line: z.ZodNumber;
|
|
104
|
+
kind: z.ZodString;
|
|
105
|
+
signature: z.ZodOptional<z.ZodString>;
|
|
106
|
+
}, z.core.$strip>>;
|
|
107
|
+
importedBy: z.ZodArray<z.ZodObject<{
|
|
108
|
+
path: z.ZodString;
|
|
109
|
+
line: z.ZodNumber;
|
|
110
|
+
importStatement: z.ZodString;
|
|
111
|
+
}, z.core.$strip>>;
|
|
112
|
+
referencedIn: z.ZodArray<z.ZodObject<{
|
|
113
|
+
path: z.ZodString;
|
|
114
|
+
line: z.ZodNumber;
|
|
115
|
+
context: z.ZodString;
|
|
116
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
117
|
+
}, z.core.$strip>>;
|
|
118
|
+
graphContext: z.ZodNullable<z.ZodObject<{
|
|
119
|
+
definingModule: z.ZodOptional<z.ZodString>;
|
|
120
|
+
importedByModules: z.ZodArray<z.ZodString>;
|
|
121
|
+
siblingSymbols: z.ZodArray<z.ZodString>;
|
|
122
|
+
}, z.core.$strip>>;
|
|
123
|
+
}, z.core.$strip>;
|
|
124
|
+
declare const SearchOutputSchema: z.ZodObject<{
|
|
125
|
+
results: z.ZodArray<z.ZodObject<{
|
|
126
|
+
sourcePath: z.ZodString;
|
|
127
|
+
contentType: z.ZodString;
|
|
128
|
+
score: z.ZodNumber;
|
|
129
|
+
headingPath: z.ZodOptional<z.ZodString>;
|
|
130
|
+
startLine: z.ZodOptional<z.ZodNumber>;
|
|
131
|
+
endLine: z.ZodOptional<z.ZodNumber>;
|
|
132
|
+
origin: z.ZodOptional<z.ZodString>;
|
|
133
|
+
category: z.ZodOptional<z.ZodString>;
|
|
134
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
135
|
+
}, z.core.$strip>>;
|
|
136
|
+
totalResults: z.ZodNumber;
|
|
137
|
+
searchMode: z.ZodString;
|
|
138
|
+
query: z.ZodString;
|
|
139
|
+
}, z.core.$strip>;
|
|
140
|
+
declare const FindOutputSchema: z.ZodObject<{
|
|
141
|
+
matches: z.ZodArray<z.ZodObject<{
|
|
142
|
+
path: z.ZodString;
|
|
143
|
+
line: z.ZodOptional<z.ZodNumber>;
|
|
144
|
+
matchType: z.ZodString;
|
|
145
|
+
preview: z.ZodString;
|
|
146
|
+
}, z.core.$strip>>;
|
|
147
|
+
totalMatches: z.ZodNumber;
|
|
148
|
+
pattern: z.ZodString;
|
|
149
|
+
truncated: z.ZodBoolean;
|
|
150
|
+
}, z.core.$strip>;
|
|
151
|
+
declare const ScopeMapOutputSchema: z.ZodObject<{
|
|
152
|
+
files: z.ZodArray<z.ZodObject<{
|
|
153
|
+
path: z.ZodString;
|
|
154
|
+
relevance: z.ZodNumber;
|
|
155
|
+
estimatedTokens: z.ZodNumber;
|
|
156
|
+
focusLines: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
157
|
+
}, z.core.$strip>>;
|
|
158
|
+
totalFiles: z.ZodNumber;
|
|
159
|
+
totalEstimatedTokens: z.ZodNumber;
|
|
160
|
+
task: z.ZodString;
|
|
161
|
+
}, z.core.$strip>;
|
|
162
|
+
declare const BlastRadiusOutputSchema: z.ZodObject<{
|
|
163
|
+
changedFiles: z.ZodArray<z.ZodString>;
|
|
164
|
+
affectedFiles: z.ZodArray<z.ZodObject<{
|
|
165
|
+
path: z.ZodString;
|
|
166
|
+
impact: z.ZodString;
|
|
167
|
+
reason: z.ZodString;
|
|
168
|
+
}, z.core.$strip>>;
|
|
169
|
+
totalAffected: z.ZodNumber;
|
|
170
|
+
riskLevel: z.ZodString;
|
|
171
|
+
}, z.core.$strip>;
|
|
172
|
+
declare const AuditOutputSchema: z.ZodObject<{
|
|
173
|
+
passed: z.ZodBoolean;
|
|
174
|
+
score: z.ZodNumber;
|
|
175
|
+
checks: z.ZodArray<z.ZodObject<{
|
|
176
|
+
name: z.ZodString;
|
|
177
|
+
passed: z.ZodBoolean;
|
|
178
|
+
message: z.ZodOptional<z.ZodString>;
|
|
179
|
+
severity: z.ZodOptional<z.ZodString>;
|
|
180
|
+
}, z.core.$strip>>;
|
|
181
|
+
summary: z.ZodString;
|
|
182
|
+
}, z.core.$strip>;
|
|
183
|
+
declare const GraphOutputSchema: z.ZodObject<{
|
|
184
|
+
nodes: z.ZodArray<z.ZodObject<{
|
|
185
|
+
id: z.ZodString;
|
|
186
|
+
name: z.ZodString;
|
|
187
|
+
type: z.ZodString;
|
|
188
|
+
sourcePath: z.ZodOptional<z.ZodString>;
|
|
189
|
+
}, z.core.$strip>>;
|
|
190
|
+
edges: z.ZodArray<z.ZodObject<{
|
|
191
|
+
fromId: z.ZodString;
|
|
192
|
+
toId: z.ZodString;
|
|
193
|
+
type: z.ZodString;
|
|
194
|
+
}, z.core.$strip>>;
|
|
195
|
+
totalNodes: z.ZodNumber;
|
|
196
|
+
totalEdges: z.ZodNumber;
|
|
197
|
+
query: z.ZodString;
|
|
198
|
+
}, z.core.$strip>;
|
|
199
|
+
declare const DeadSymbolsOutputSchema: z.ZodObject<{
|
|
200
|
+
symbols: z.ZodArray<z.ZodObject<{
|
|
201
|
+
name: z.ZodString;
|
|
202
|
+
path: z.ZodString;
|
|
203
|
+
line: z.ZodOptional<z.ZodNumber>;
|
|
204
|
+
kind: z.ZodString;
|
|
205
|
+
}, z.core.$strip>>;
|
|
206
|
+
totalDead: z.ZodNumber;
|
|
207
|
+
}, z.core.$strip>;
|
|
208
|
+
declare const AnalyzeStructureOutputSchema: z.ZodObject<{
|
|
209
|
+
files: z.ZodNumber;
|
|
210
|
+
packages: z.ZodNumber;
|
|
211
|
+
languages: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
212
|
+
tree: z.ZodString;
|
|
213
|
+
}, z.core.$strip>;
|
|
214
|
+
declare const FileSummaryOutputSchema: z.ZodObject<{
|
|
215
|
+
path: z.ZodString;
|
|
216
|
+
language: z.ZodString;
|
|
217
|
+
lines: z.ZodNumber;
|
|
218
|
+
imports: z.ZodNumber;
|
|
219
|
+
exports: z.ZodNumber;
|
|
220
|
+
functions: z.ZodNumber;
|
|
221
|
+
classes: z.ZodNumber;
|
|
222
|
+
}, z.core.$strip>;
|
|
223
|
+
declare const GitContextOutputSchema: z.ZodObject<{
|
|
224
|
+
gitRoot: z.ZodString;
|
|
225
|
+
branch: z.ZodString;
|
|
226
|
+
commitCount: z.ZodNumber;
|
|
227
|
+
hasUncommitted: z.ZodBoolean;
|
|
228
|
+
recentCommits: z.ZodArray<z.ZodObject<{
|
|
229
|
+
hash: z.ZodString;
|
|
230
|
+
message: z.ZodString;
|
|
231
|
+
author: z.ZodString;
|
|
232
|
+
}, z.core.$strip>>;
|
|
233
|
+
}, z.core.$strip>;
|
|
234
|
+
declare const CompactOutputSchema: z.ZodObject<{
|
|
235
|
+
originalChars: z.ZodNumber;
|
|
236
|
+
compressedChars: z.ZodNumber;
|
|
237
|
+
ratio: z.ZodNumber;
|
|
238
|
+
segmentsKept: z.ZodNumber;
|
|
239
|
+
segmentsTotal: z.ZodNumber;
|
|
240
|
+
}, z.core.$strip>;
|
|
241
|
+
//#endregion
|
|
242
|
+
export { AnalyzeStructureOutputSchema, AuditOutputSchema, BlastRadiusOutputSchema, CheckOutputSchema, CompactOutputSchema, DeadSymbolsOutputSchema, EnvOutputSchema, FileSummaryOutputSchema, FindOutputSchema, GitContextOutputSchema, GraphOutputSchema, HealthOutputSchema, ListOutputSchema, MeasureOutputSchema, ScopeMapOutputSchema, SearchOutputSchema, StatusOutputSchema, SymbolOutputSchema, TimeOutputSchema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z as e}from"zod";const t=e.object({totalRecords:e.number(),totalFiles:e.number(),lastIndexedAt:e.string().nullable(),onboarded:e.boolean(),onboardDir:e.string(),contentTypes:e.record(e.string(),e.number()),wasmAvailable:e.boolean(),graphStats:e.object({nodes:e.number(),edges:e.number()}).nullable(),curatedCount:e.number(),serverVersion:e.string(),scaffoldVersion:e.string().nullable(),workspaceScaffoldVersion:e.string().nullable(),upgradeAvailable:e.boolean()}),n=e.object({entries:e.array(e.object({path:e.string(),title:e.string(),category:e.string(),tags:e.array(e.string()),version:e.number(),preview:e.string()})),totalCount:e.number()}),r=e.object({ok:e.boolean(),checks:e.array(e.object({name:e.string(),ok:e.boolean(),message:e.string().optional()}))}),i=e.object({summary:e.object({totalFiles:e.number(),totalLines:e.number(),totalCodeLines:e.number(),totalFunctions:e.number(),avgComplexity:e.number(),maxComplexity:e.object({value:e.number(),file:e.string()})}),files:e.array(e.object({path:e.string(),lines:e.number(),code:e.number(),complexity:e.number(),functions:e.number()}))}),a=e.object({platform:e.string(),arch:e.string(),nodeVersion:e.string(),cwd:e.string(),cpus:e.number(),memoryFreeGb:e.number(),memoryTotalGb:e.number()}),o=e.object({iso:e.string(),unix:e.number(),timezone:e.string(),formatted:e.string()}),s=e.object({passed:e.boolean(),errorCount:e.number(),warningCount:e.number(),topErrors:e.array(e.string())}),c=e.object({passed:e.boolean(),tsc:s,biome:s}),l=e.object({name:e.string(),definedIn:e.object({path:e.string(),line:e.number(),kind:e.string(),signature:e.string().optional()}).nullable(),importedBy:e.array(e.object({path:e.string(),line:e.number(),importStatement:e.string()})),referencedIn:e.array(e.object({path:e.string(),line:e.number(),context:e.string(),scope:e.string().optional()})),graphContext:e.object({definingModule:e.string().optional(),importedByModules:e.array(e.string()),siblingSymbols:e.array(e.string())}).nullable()}),u=e.object({sourcePath:e.string(),contentType:e.string(),score:e.number(),headingPath:e.string().optional(),startLine:e.number().optional(),endLine:e.number().optional(),origin:e.string().optional(),category:e.string().optional(),tags:e.array(e.string()).optional()}),d=e.object({results:e.array(u),totalResults:e.number(),searchMode:e.string(),query:e.string()}),f=e.object({path:e.string(),line:e.number().optional(),matchType:e.string(),preview:e.string()}),p=e.object({matches:e.array(f),totalMatches:e.number(),pattern:e.string(),truncated:e.boolean()}),m=e.object({path:e.string(),relevance:e.number(),estimatedTokens:e.number(),focusLines:e.array(e.string()).optional()}),h=e.object({files:e.array(m),totalFiles:e.number(),totalEstimatedTokens:e.number(),task:e.string()}),g=e.object({path:e.string(),impact:e.string(),reason:e.string()}),_=e.object({changedFiles:e.array(e.string()),affectedFiles:e.array(g),totalAffected:e.number(),riskLevel:e.string()}),v=e.object({name:e.string(),passed:e.boolean(),message:e.string().optional(),severity:e.string().optional()}),y=e.object({passed:e.boolean(),score:e.number(),checks:e.array(v),summary:e.string()}),b=e.object({id:e.string(),name:e.string(),type:e.string(),sourcePath:e.string().optional()}),x=e.object({fromId:e.string(),toId:e.string(),type:e.string()}),S=e.object({nodes:e.array(b),edges:e.array(x),totalNodes:e.number(),totalEdges:e.number(),query:e.string()}),C=e.object({symbols:e.array(e.object({name:e.string(),path:e.string(),line:e.number().optional(),kind:e.string()})),totalDead:e.number()}),w=e.object({files:e.number(),packages:e.number(),languages:e.record(e.string(),e.number()),tree:e.string()}),T=e.object({path:e.string(),language:e.string(),lines:e.number(),imports:e.number(),exports:e.number(),functions:e.number(),classes:e.number()}),E=e.object({gitRoot:e.string(),branch:e.string(),commitCount:e.number(),hasUncommitted:e.boolean(),recentCommits:e.array(e.object({hash:e.string(),message:e.string(),author:e.string()}))}),D=e.object({originalChars:e.number(),compressedChars:e.number(),ratio:e.number(),segmentsKept:e.number(),segmentsTotal:e.number()});export{w as AnalyzeStructureOutputSchema,y as AuditOutputSchema,_ as BlastRadiusOutputSchema,c as CheckOutputSchema,D as CompactOutputSchema,C as DeadSymbolsOutputSchema,a as EnvOutputSchema,T as FileSummaryOutputSchema,p as FindOutputSchema,E as GitContextOutputSchema,S as GraphOutputSchema,r as HealthOutputSchema,n as ListOutputSchema,i as MeasureOutputSchema,h as ScopeMapOutputSchema,d as SearchOutputSchema,t as StatusOutputSchema,l as SymbolOutputSchema,o as TimeOutputSchema};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CuratedKnowledgeManager } from "./curated-manager.js";
|
|
2
|
+
import { IGraphStore, IKnowledgeStore } from "../../store/dist/index.js";
|
|
3
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
|
+
|
|
5
|
+
//#region packages/server/src/prompts.d.ts
|
|
6
|
+
interface PromptDependencies {
|
|
7
|
+
curated: CuratedKnowledgeManager;
|
|
8
|
+
store: IKnowledgeStore;
|
|
9
|
+
graphStore: IGraphStore;
|
|
10
|
+
}
|
|
11
|
+
declare function registerPrompts(server: McpServer, deps?: PromptDependencies): void;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { PromptDependencies, registerPrompts };
|