@vpxa/kb 0.1.15 → 0.1.17
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 +62 -15
- package/package.json +5 -1
- package/packages/analyzers/dist/blast-radius-analyzer.d.ts +1 -2
- package/packages/analyzers/dist/blast-radius-analyzer.js +1 -2
- package/packages/analyzers/dist/dependency-analyzer.d.ts +2 -3
- package/packages/analyzers/dist/dependency-analyzer.js +3 -4
- package/packages/analyzers/dist/diagram-generator.d.ts +1 -2
- package/packages/analyzers/dist/diagram-generator.js +1 -2
- package/packages/analyzers/dist/entry-point-analyzer.d.ts +1 -2
- package/packages/analyzers/dist/entry-point-analyzer.js +3 -4
- package/packages/analyzers/dist/knowledge-producer.d.ts +6 -2
- package/packages/analyzers/dist/knowledge-producer.js +4 -3
- package/packages/analyzers/dist/pattern-analyzer.d.ts +1 -2
- package/packages/analyzers/dist/pattern-analyzer.js +2 -3
- package/packages/analyzers/dist/regex-call-graph.d.ts +1 -2
- package/packages/analyzers/dist/regex-call-graph.js +1 -2
- package/packages/analyzers/dist/structure-analyzer.d.ts +1 -2
- package/packages/analyzers/dist/structure-analyzer.js +1 -2
- package/packages/analyzers/dist/symbol-analyzer.d.ts +3 -3
- package/packages/analyzers/dist/symbol-analyzer.js +8 -7
- package/packages/analyzers/dist/ts-call-graph.d.ts +1 -2
- package/packages/analyzers/dist/ts-call-graph.js +1 -2
- package/packages/analyzers/dist/types.d.ts +1 -2
- package/packages/chunker/dist/call-graph-extractor.d.ts +3 -3
- package/packages/chunker/dist/call-graph-extractor.js +1 -2
- package/packages/chunker/dist/chunker-factory.d.ts +12 -4
- package/packages/chunker/dist/chunker-factory.js +1 -2
- package/packages/chunker/dist/chunker.interface.d.ts +1 -2
- package/packages/chunker/dist/code-chunker.d.ts +1 -2
- package/packages/chunker/dist/code-chunker.js +1 -2
- 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 +1 -0
- package/packages/chunker/dist/extractors/types.d.ts +36 -0
- package/packages/chunker/dist/extractors/types.js +1 -0
- package/packages/chunker/dist/generic-chunker.d.ts +1 -2
- package/packages/chunker/dist/generic-chunker.js +1 -2
- package/packages/chunker/dist/index.d.ts +15 -4
- package/packages/chunker/dist/index.js +1 -1
- package/packages/chunker/dist/markdown-chunker.d.ts +1 -2
- package/packages/chunker/dist/markdown-chunker.js +1 -2
- 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-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-python.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-rust.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/commands/analyze.d.ts +1 -2
- package/packages/cli/dist/commands/analyze.js +1 -2
- package/packages/cli/dist/commands/context-cmds.d.ts +1 -2
- package/packages/cli/dist/commands/context-cmds.js +1 -2
- package/packages/cli/dist/commands/environment.d.ts +1 -2
- package/packages/cli/dist/commands/environment.js +1 -2
- package/packages/cli/dist/commands/execution.d.ts +1 -2
- package/packages/cli/dist/commands/execution.js +1 -2
- package/packages/cli/dist/commands/graph.d.ts +1 -2
- package/packages/cli/dist/commands/graph.js +1 -2
- package/packages/cli/dist/commands/init/adapters.d.ts +4 -3
- package/packages/cli/dist/commands/init/adapters.js +1 -2
- package/packages/cli/dist/commands/init/config.d.ts +1 -2
- package/packages/cli/dist/commands/init/config.js +3 -4
- package/packages/cli/dist/commands/init/constants.d.ts +18 -0
- package/packages/cli/dist/commands/init/constants.js +1 -0
- package/packages/cli/dist/commands/init/curated.d.ts +1 -2
- package/packages/cli/dist/commands/init/curated.js +1 -2
- package/packages/cli/dist/commands/init/global.d.ts +34 -0
- package/packages/cli/dist/commands/init/global.js +5 -0
- package/packages/cli/dist/commands/init/index.d.ts +7 -2
- package/packages/cli/dist/commands/init/index.js +5 -3
- package/packages/cli/dist/commands/init/scaffold.d.ts +1 -2
- package/packages/cli/dist/commands/init/scaffold.js +1 -2
- package/packages/cli/dist/commands/init/templates.d.ts +3 -4
- package/packages/cli/dist/commands/init/templates.js +106 -243
- package/packages/cli/dist/commands/knowledge.d.ts +1 -2
- package/packages/cli/dist/commands/knowledge.js +1 -2
- package/packages/cli/dist/commands/search.d.ts +1 -2
- package/packages/cli/dist/commands/search.js +1 -2
- package/packages/cli/dist/commands/system.d.ts +1 -2
- package/packages/cli/dist/commands/system.js +3 -4
- package/packages/cli/dist/commands/workspace.d.ts +1 -2
- package/packages/cli/dist/commands/workspace.js +1 -2
- package/packages/cli/dist/context.d.ts +1 -2
- package/packages/cli/dist/context.js +1 -2
- package/packages/cli/dist/helpers.d.ts +1 -2
- package/packages/cli/dist/helpers.js +1 -2
- package/packages/cli/dist/index.d.ts +1 -2
- package/packages/cli/dist/index.js +1 -2
- package/packages/cli/dist/kb-init.d.ts +1 -2
- package/packages/cli/dist/kb-init.js +1 -2
- package/packages/cli/dist/types.d.ts +1 -2
- package/packages/core/dist/constants.d.ts +23 -2
- package/packages/core/dist/constants.js +1 -2
- package/packages/core/dist/content-detector.d.ts +1 -2
- package/packages/core/dist/content-detector.js +1 -2
- package/packages/core/dist/errors.d.ts +1 -2
- package/packages/core/dist/errors.js +1 -2
- 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 +4 -3
- package/packages/core/dist/index.js +1 -1
- package/packages/core/dist/logger.d.ts +4 -2
- package/packages/core/dist/logger.js +1 -2
- package/packages/core/dist/types.d.ts +1 -2
- package/packages/core/dist/types.js +1 -2
- package/packages/embeddings/dist/embedder.interface.d.ts +2 -3
- package/packages/embeddings/dist/onnx-embedder.d.ts +2 -3
- package/packages/embeddings/dist/onnx-embedder.js +1 -2
- package/packages/enterprise-bridge/dist/cache.d.ts +1 -2
- package/packages/enterprise-bridge/dist/cache.js +1 -2
- package/packages/enterprise-bridge/dist/er-client.d.ts +1 -2
- package/packages/enterprise-bridge/dist/er-client.js +1 -2
- package/packages/enterprise-bridge/dist/evolution-collector.d.ts +1 -2
- package/packages/enterprise-bridge/dist/evolution-collector.js +1 -2
- package/packages/enterprise-bridge/dist/policy-store.d.ts +1 -2
- package/packages/enterprise-bridge/dist/policy-store.js +1 -2
- package/packages/enterprise-bridge/dist/push-adapter.d.ts +1 -2
- package/packages/enterprise-bridge/dist/push-adapter.js +1 -2
- package/packages/enterprise-bridge/dist/result-merger.d.ts +1 -2
- package/packages/enterprise-bridge/dist/result-merger.js +1 -2
- package/packages/enterprise-bridge/dist/types.d.ts +1 -2
- package/packages/enterprise-bridge/dist/types.js +1 -2
- package/packages/indexer/dist/file-hasher.d.ts +1 -2
- package/packages/indexer/dist/file-hasher.js +1 -2
- package/packages/indexer/dist/filesystem-crawler.d.ts +1 -2
- package/packages/indexer/dist/filesystem-crawler.js +1 -2
- package/packages/indexer/dist/graph-extractor.d.ts +1 -2
- package/packages/indexer/dist/graph-extractor.js +1 -2
- 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 +6 -3
- package/packages/indexer/dist/incremental-indexer.js +1 -2
- package/packages/indexer/dist/index.d.ts +2 -1
- package/packages/indexer/dist/index.js +1 -1
- package/packages/server/dist/config.d.ts +1 -2
- package/packages/server/dist/config.js +1 -2
- 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 +2 -3
- package/packages/server/dist/curated-manager.js +4 -5
- package/packages/server/dist/index.js +1 -2
- package/packages/server/dist/replay-interceptor.d.ts +1 -2
- package/packages/server/dist/replay-interceptor.js +1 -2
- package/packages/server/dist/resources/resources.d.ts +1 -2
- package/packages/server/dist/resources/resources.js +1 -2
- package/packages/server/dist/server.d.ts +4 -2
- package/packages/server/dist/server.js +1 -2
- package/packages/server/dist/tools/analyze.tools.d.ts +3 -4
- package/packages/server/dist/tools/analyze.tools.js +2 -2
- package/packages/server/dist/tools/audit.tool.d.ts +1 -2
- package/packages/server/dist/tools/audit.tool.js +1 -2
- package/packages/server/dist/tools/bridge.tools.d.ts +1 -2
- package/packages/server/dist/tools/bridge.tools.js +1 -2
- package/packages/server/dist/tools/evolution.tools.d.ts +1 -2
- package/packages/server/dist/tools/evolution.tools.js +1 -2
- package/packages/server/dist/tools/forge.tools.d.ts +1 -2
- package/packages/server/dist/tools/forge.tools.js +5 -6
- package/packages/server/dist/tools/forget.tool.d.ts +1 -2
- package/packages/server/dist/tools/forget.tool.js +1 -2
- package/packages/server/dist/tools/graph.tool.d.ts +1 -2
- package/packages/server/dist/tools/graph.tool.js +1 -2
- package/packages/server/dist/tools/list.tool.d.ts +1 -2
- package/packages/server/dist/tools/list.tool.js +1 -2
- package/packages/server/dist/tools/lookup.tool.d.ts +1 -2
- package/packages/server/dist/tools/lookup.tool.js +1 -2
- package/packages/server/dist/tools/onboard.tool.d.ts +1 -2
- package/packages/server/dist/tools/onboard.tool.js +1 -2
- package/packages/server/dist/tools/policy.tools.d.ts +1 -2
- package/packages/server/dist/tools/policy.tools.js +1 -2
- package/packages/server/dist/tools/produce.tool.d.ts +1 -2
- package/packages/server/dist/tools/produce.tool.js +1 -2
- package/packages/server/dist/tools/read.tool.d.ts +1 -2
- package/packages/server/dist/tools/read.tool.js +2 -3
- package/packages/server/dist/tools/reindex.tool.d.ts +1 -2
- package/packages/server/dist/tools/reindex.tool.js +3 -3
- package/packages/server/dist/tools/remember.tool.d.ts +1 -2
- package/packages/server/dist/tools/remember.tool.js +1 -2
- package/packages/server/dist/tools/replay.tool.d.ts +1 -2
- package/packages/server/dist/tools/replay.tool.js +1 -2
- package/packages/server/dist/tools/search.tool.d.ts +1 -2
- package/packages/server/dist/tools/search.tool.js +4 -5
- package/packages/server/dist/tools/status.tool.d.ts +7 -3
- package/packages/server/dist/tools/status.tool.js +2 -3
- package/packages/server/dist/tools/toolkit.tools.d.ts +3 -4
- package/packages/server/dist/tools/toolkit.tools.js +19 -19
- package/packages/server/dist/tools/update.tool.d.ts +1 -2
- package/packages/server/dist/tools/update.tool.js +1 -2
- package/packages/server/dist/tools/utility.tools.d.ts +1 -2
- package/packages/server/dist/tools/utility.tools.js +2 -3
- package/packages/server/dist/version-check.d.ts +1 -2
- package/packages/server/dist/version-check.js +1 -2
- package/packages/store/dist/graph-store.interface.d.ts +1 -2
- package/packages/store/dist/lance-store.d.ts +1 -2
- package/packages/store/dist/lance-store.js +1 -2
- package/packages/store/dist/sqlite-graph-store.d.ts +1 -2
- package/packages/store/dist/sqlite-graph-store.js +6 -7
- package/packages/store/dist/store-factory.d.ts +1 -2
- package/packages/store/dist/store-factory.js +1 -2
- package/packages/store/dist/store.interface.d.ts +1 -2
- package/packages/tools/dist/audit.d.ts +1 -2
- package/packages/tools/dist/audit.js +1 -2
- package/packages/tools/dist/batch.d.ts +1 -2
- package/packages/tools/dist/batch.js +1 -2
- package/packages/tools/dist/changelog.d.ts +1 -2
- package/packages/tools/dist/changelog.js +2 -3
- package/packages/tools/dist/check.d.ts +1 -2
- package/packages/tools/dist/check.js +2 -3
- package/packages/tools/dist/checkpoint.d.ts +1 -2
- package/packages/tools/dist/checkpoint.js +1 -2
- package/packages/tools/dist/codemod.d.ts +1 -2
- package/packages/tools/dist/codemod.js +1 -2
- package/packages/tools/dist/compact.d.ts +1 -2
- package/packages/tools/dist/compact.js +1 -2
- package/packages/tools/dist/data-transform.d.ts +1 -2
- package/packages/tools/dist/data-transform.js +1 -2
- package/packages/tools/dist/dead-symbols.d.ts +1 -2
- package/packages/tools/dist/dead-symbols.js +2 -3
- package/packages/tools/dist/delegate.d.ts +1 -2
- package/packages/tools/dist/delegate.js +1 -2
- package/packages/tools/dist/diff-parse.d.ts +1 -2
- package/packages/tools/dist/diff-parse.js +1 -2
- package/packages/tools/dist/digest.d.ts +1 -2
- package/packages/tools/dist/digest.js +1 -2
- 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 +1 -2
- package/packages/tools/dist/encode.js +1 -2
- package/packages/tools/dist/env-info.d.ts +1 -2
- package/packages/tools/dist/env-info.js +1 -2
- package/packages/tools/dist/eval.d.ts +1 -2
- package/packages/tools/dist/eval.js +1 -2
- package/packages/tools/dist/evidence-map.d.ts +1 -2
- package/packages/tools/dist/evidence-map.js +2 -3
- package/packages/tools/dist/file-cache.d.ts +1 -2
- package/packages/tools/dist/file-cache.js +1 -2
- package/packages/tools/dist/file-summary.d.ts +17 -2
- package/packages/tools/dist/file-summary.js +2 -3
- package/packages/tools/dist/file-walk.d.ts +1 -2
- package/packages/tools/dist/file-walk.js +1 -2
- package/packages/tools/dist/find-examples.d.ts +1 -2
- package/packages/tools/dist/find-examples.js +1 -2
- package/packages/tools/dist/find.d.ts +1 -2
- package/packages/tools/dist/find.js +1 -2
- package/packages/tools/dist/forge-classify.d.ts +1 -2
- package/packages/tools/dist/forge-classify.js +2 -3
- package/packages/tools/dist/forge-ground.d.ts +1 -2
- package/packages/tools/dist/forge-ground.js +1 -2
- package/packages/tools/dist/git-context.d.ts +1 -2
- package/packages/tools/dist/git-context.js +1 -2
- package/packages/tools/dist/graph-query.d.ts +1 -2
- package/packages/tools/dist/graph-query.js +1 -2
- package/packages/tools/dist/guide.d.ts +1 -2
- package/packages/tools/dist/guide.js +1 -2
- package/packages/tools/dist/health.d.ts +1 -2
- package/packages/tools/dist/health.js +1 -2
- package/packages/tools/dist/http-request.d.ts +1 -2
- package/packages/tools/dist/http-request.js +1 -2
- package/packages/tools/dist/index.d.ts +3 -2
- package/packages/tools/dist/index.js +1 -1
- package/packages/tools/dist/lane.d.ts +1 -2
- package/packages/tools/dist/lane.js +3 -4
- package/packages/tools/dist/measure.d.ts +4 -3
- package/packages/tools/dist/measure.js +2 -3
- package/packages/tools/dist/onboard.d.ts +1 -2
- package/packages/tools/dist/onboard.js +14 -15
- package/packages/tools/dist/parse-output.d.ts +1 -2
- package/packages/tools/dist/parse-output.js +2 -3
- package/packages/tools/dist/path-resolver.d.ts +1 -2
- package/packages/tools/dist/path-resolver.js +1 -2
- package/packages/tools/dist/process-manager.d.ts +1 -2
- package/packages/tools/dist/process-manager.js +1 -2
- package/packages/tools/dist/queue.d.ts +1 -2
- package/packages/tools/dist/queue.js +1 -2
- package/packages/tools/dist/regex-test.d.ts +1 -2
- package/packages/tools/dist/regex-test.js +1 -2
- package/packages/tools/dist/rename.d.ts +1 -2
- package/packages/tools/dist/rename.js +1 -2
- package/packages/tools/dist/replay.d.ts +2 -3
- package/packages/tools/dist/replay.js +4 -5
- package/packages/tools/dist/response-envelope.d.ts +1 -2
- package/packages/tools/dist/response-envelope.js +1 -2
- package/packages/tools/dist/schema-validate.d.ts +1 -2
- package/packages/tools/dist/schema-validate.js +1 -2
- package/packages/tools/dist/scope-map.d.ts +1 -2
- package/packages/tools/dist/scope-map.js +1 -2
- package/packages/tools/dist/snippet.d.ts +1 -2
- package/packages/tools/dist/snippet.js +1 -2
- package/packages/tools/dist/stash.d.ts +1 -2
- package/packages/tools/dist/stash.js +1 -2
- package/packages/tools/dist/stratum-card.d.ts +1 -2
- package/packages/tools/dist/stratum-card.js +1 -2
- package/packages/tools/dist/symbol.d.ts +16 -3
- package/packages/tools/dist/symbol.js +3 -4
- package/packages/tools/dist/test-run.d.ts +1 -2
- package/packages/tools/dist/test-run.js +2 -3
- package/packages/tools/dist/text-utils.d.ts +1 -2
- package/packages/tools/dist/text-utils.js +1 -2
- package/packages/tools/dist/time-utils.d.ts +1 -2
- package/packages/tools/dist/time-utils.js +1 -2
- package/packages/tools/dist/trace.d.ts +3 -2
- package/packages/tools/dist/trace.js +2 -3
- package/packages/tools/dist/truncation.d.ts +1 -2
- package/packages/tools/dist/truncation.js +1 -2
- package/packages/tools/dist/watch.d.ts +1 -2
- package/packages/tools/dist/watch.js +1 -2
- package/packages/tools/dist/web-fetch.d.ts +1 -2
- package/packages/tools/dist/web-fetch.js +1 -2
- package/packages/tools/dist/web-search.d.ts +1 -2
- package/packages/tools/dist/web-search.js +1 -2
- package/packages/tools/dist/workset.d.ts +1 -2
- package/packages/tools/dist/workset.js +1 -2
- package/packages/tui/dist/{App-BAlmxCCw.js → App-CYLNJLr6.js} +1 -2
- package/packages/tui/dist/App.d.ts +2 -3
- package/packages/tui/dist/App.js +1 -1
- package/packages/tui/dist/CuratedPanel-sYdZAICX.js +1 -2
- package/packages/tui/dist/LogPanel-DtMnoyXT.js +3 -0
- package/packages/tui/dist/SearchPanel-DREo6zgt.js +1 -2
- package/packages/tui/dist/StatusPanel-2ex8fLOO.js +1 -2
- package/packages/tui/dist/devtools-DUyj952l.js +1 -2
- package/packages/tui/dist/{embedder.interface-D4ew0HPW.d.ts → embedder.interface-IFCBpOlX.d.ts} +2 -3
- package/packages/tui/dist/{index-B9VpfVPP.d.ts → index-C8NmOF18.d.ts} +2 -3
- package/packages/tui/dist/index.d.ts +1 -1
- package/packages/tui/dist/index.js +1 -2
- package/packages/tui/dist/jsx-runtime-Cof-kwFn.js +1 -2
- package/packages/tui/dist/panels/CuratedPanel.d.ts +1 -2
- package/packages/tui/dist/panels/LogPanel.d.ts +1 -2
- package/packages/tui/dist/panels/LogPanel.js +1 -1
- package/packages/tui/dist/panels/SearchPanel.d.ts +2 -3
- package/packages/tui/dist/panels/StatusPanel.d.ts +1 -2
- package/packages/tui/dist/store.interface-CnY6SPOH.d.ts +1 -2
- package/scaffold/copilot/agents/Architect-Reviewer-Alpha.agent.md +7 -0
- package/scaffold/copilot/agents/Architect-Reviewer-Beta.agent.md +7 -0
- package/scaffold/copilot/agents/Documenter.agent.md +7 -0
- package/scaffold/copilot/agents/Orchestrator.agent.md +8 -0
- package/scaffold/copilot/agents/Planner.agent.md +9 -0
- package/scaffold/copilot/agents/Refactor.agent.md +6 -0
- package/scaffold/copilot/agents/Researcher-Alpha.agent.md +8 -0
- package/scaffold/copilot/agents/Researcher-Beta.agent.md +8 -0
- package/scaffold/copilot/agents/Researcher-Delta.agent.md +8 -0
- package/scaffold/copilot/agents/Researcher-Gamma.agent.md +8 -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/Documenter.agent.md +42 -0
- package/scaffold/general/agents/Orchestrator.agent.md +104 -0
- package/scaffold/general/agents/Planner.agent.md +55 -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/{copilot → general}/agents/_shared/code-agent-base.md +18 -0
- package/skills/adr-skill/SKILL.md +329 -0
- package/skills/adr-skill/assets/templates/adr-madr.md +89 -0
- package/skills/adr-skill/assets/templates/adr-readme.md +20 -0
- package/skills/adr-skill/assets/templates/adr-simple.md +46 -0
- package/skills/adr-skill/references/adr-conventions.md +95 -0
- package/skills/adr-skill/references/examples.md +193 -0
- package/skills/adr-skill/references/review-checklist.md +77 -0
- package/skills/adr-skill/references/template-variants.md +52 -0
- package/skills/adr-skill/scripts/bootstrap_adr.js +259 -0
- package/skills/adr-skill/scripts/new_adr.js +391 -0
- package/skills/adr-skill/scripts/set_adr_status.js +169 -0
- package/skills/c4-architecture/SKILL.md +295 -0
- package/skills/c4-architecture/references/advanced-patterns.md +552 -0
- package/skills/c4-architecture/references/c4-syntax.md +492 -0
- package/skills/c4-architecture/references/common-mistakes.md +437 -0
- package/skills/knowledge-base/SKILL.md +78 -1
- package/skills/lesson-learned/SKILL.md +105 -0
- package/skills/lesson-learned/references/anti-patterns.md +55 -0
- package/skills/lesson-learned/references/se-principles.md +109 -0
- package/skills/requirements-clarity/SKILL.md +324 -0
- package/skills/session-handoff/SKILL.md +189 -0
- package/skills/session-handoff/references/handoff-template.md +139 -0
- package/skills/session-handoff/references/resume-checklist.md +80 -0
- package/skills/session-handoff/scripts/check_staleness.js +269 -0
- package/skills/session-handoff/scripts/create_handoff.js +299 -0
- package/skills/session-handoff/scripts/list_handoffs.js +113 -0
- package/skills/session-handoff/scripts/validate_handoff.js +241 -0
- package/packages/chunker/dist/treesitter-chunker.d.ts +0 -44
- package/packages/chunker/dist/treesitter-chunker.js +0 -7
- package/packages/cli/dist/commands/init.d.ts +0 -15
- package/packages/cli/dist/commands/init.js +0 -305
- package/packages/tui/dist/LogPanel-DVB8Sv46.js +0 -4
- /package/scaffold/{copilot → general}/agents/Code-Reviewer-Alpha.agent.md +0 -0
- /package/scaffold/{copilot → general}/agents/Code-Reviewer-Beta.agent.md +0 -0
- /package/scaffold/{copilot → general}/agents/Debugger.agent.md +0 -0
- /package/scaffold/{copilot → general}/agents/Explorer.agent.md +0 -0
- /package/scaffold/{copilot → general}/agents/Frontend.agent.md +0 -0
- /package/scaffold/{copilot → general}/agents/Implementer.agent.md +0 -0
- /package/scaffold/{copilot → general}/agents/README.md +0 -0
- /package/scaffold/{copilot → general}/agents/Security.agent.md +0 -0
- /package/scaffold/{copilot → general}/agents/_shared/adr-protocol.md +0 -0
- /package/scaffold/{copilot → general}/agents/_shared/architect-reviewer-base.md +0 -0
- /package/scaffold/{copilot → general}/agents/_shared/code-reviewer-base.md +0 -0
- /package/scaffold/{copilot → general}/agents/_shared/decision-protocol.md +0 -0
- /package/scaffold/{copilot → general}/agents/_shared/forge-protocol.md +0 -0
- /package/scaffold/{copilot → general}/agents/_shared/researcher-base.md +0 -0
- /package/scaffold/{copilot → general}/agents/templates/adr-template.md +0 -0
- /package/scaffold/{copilot → general}/agents/templates/execution-state.md +0 -0
- /package/scaffold/{copilot → general}/prompts/ask.prompt.md +0 -0
- /package/scaffold/{copilot → general}/prompts/debug.prompt.md +0 -0
- /package/scaffold/{copilot → general}/prompts/design.prompt.md +0 -0
- /package/scaffold/{copilot → general}/prompts/implement.prompt.md +0 -0
- /package/scaffold/{copilot → general}/prompts/plan.prompt.md +0 -0
- /package/scaffold/{copilot → general}/prompts/review.prompt.md +0 -0
|
@@ -4,5 +4,4 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
4
4
|
//#region packages/server/src/tools/list.tool.d.ts
|
|
5
5
|
declare function registerListTool(server: McpServer, curated: CuratedKnowledgeManager): void;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { registerListTool };
|
|
8
|
-
//# sourceMappingURL=list.tool.d.ts.map
|
|
7
|
+
export { registerListTool };
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import{createLogger as e,serializeError as t}from"../../../core/dist/index.js";import{z as n}from"zod";const r=e(`tools`);function i(e,i){e.registerTool(`list`,{description:`List curated knowledge entries. Optionally filter by category or tag.`,inputSchema:{category:n.string().optional().describe(`Filter by category (e.g., "decisions", "patterns")`),tag:n.string().optional().describe(`Filter by tag`)}},async({category:e,tag:n})=>{try{let t=await i.list({category:e,tag:n});if(t.length===0)return{content:[{type:`text`,text:`No curated knowledge entries found.`+(e?` (category: ${e})`:``)+(n?` (tag: ${n})`:``)}]};let r=t.map(e=>{let t=e.tags.length>0?` [${e.tags.join(`, `)}]`:``;return`- **${e.title}** (v${e.version})${t}\n \`${e.path}\` — ${e.contentPreview.slice(0,80)}…`}).join(`
|
|
2
|
-
`);return{content:[{type:`text`,text:`## Curated Knowledge (${t.length} entries)\n\n${r}\n\n---\n_Next: Use \`read\` to view full content of any entry, or \`remember\` to store new knowledge._`}]}}catch(e){return r.error(`List failed`,t(e)),{content:[{type:`text`,text:`List failed. Check server logs for details.`}],isError:!0}}})}export{i as registerListTool};
|
|
3
|
-
//# sourceMappingURL=list.tool.js.map
|
|
2
|
+
`);return{content:[{type:`text`,text:`## Curated Knowledge (${t.length} entries)\n\n${r}\n\n---\n_Next: Use \`read\` to view full content of any entry, or \`remember\` to store new knowledge._`}]}}catch(e){return r.error(`List failed`,t(e)),{content:[{type:`text`,text:`List failed. Check server logs for details.`}],isError:!0}}})}export{i as registerListTool};
|
|
@@ -4,5 +4,4 @@ import { IKnowledgeStore } from "@kb/store";
|
|
|
4
4
|
//#region packages/server/src/tools/lookup.tool.d.ts
|
|
5
5
|
declare function registerLookupTool(server: McpServer, store: IKnowledgeStore): void;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { registerLookupTool };
|
|
8
|
-
//# sourceMappingURL=lookup.tool.d.ts.map
|
|
7
|
+
export { registerLookupTool };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import{createLogger as e,serializeError as t}from"../../../core/dist/index.js";import{z as n}from"zod";const r=e(`tools`);function i(e,i){e.registerTool(`lookup`,{description:`Look up all indexed chunks for a specific file path. Returns all chunks sorted by position.`,inputSchema:{path:n.string().describe(`Relative file path to look up (e.g., "src/index.ts")`)}},async({path:e})=>{try{let t=await i.getBySourcePath(e);return t.length===0?{content:[{type:`text`,text:`No indexed content found for: ${e}`}]}:(t.sort((e,t)=>e.chunkIndex-t.chunkIndex),{content:[{type:`text`,text:`${`## ${e}\n**Chunks**: ${t.length} | **Type**: ${t[0].contentType}\n`}\n${t.map(e=>{let t=e.startLine?` (lines ${e.startLine}-${e.endLine})`:``;return`### Chunk ${e.chunkIndex+1}/${e.totalChunks}${t}\n${e.content}`}).join(`
|
|
2
2
|
|
|
3
|
-
`)}\n\n---\n_Next: Use \`search\` to find related content, or \`analyze_dependencies\` to see what this file imports._`}]})}catch(e){return r.error(`Lookup failed`,t(e)),{content:[{type:`text`,text:`Lookup failed
|
|
4
|
-
//# sourceMappingURL=lookup.tool.js.map
|
|
3
|
+
`)}\n\n---\n_Next: Use \`search\` to find related content, or \`analyze_dependencies\` to see what this file imports._`}]})}catch(e){return r.error(`Lookup failed`,t(e)),{content:[{type:`text`,text:`Lookup failed: ${e instanceof Error?e.message:String(e)}`}],isError:!0}}})}export{i as registerLookupTool};
|
|
@@ -5,5 +5,4 @@ import { IKnowledgeStore } from "@kb/store";
|
|
|
5
5
|
//#region packages/server/src/tools/onboard.tool.d.ts
|
|
6
6
|
declare function registerOnboardTool(server: McpServer, store: IKnowledgeStore, embedder: IEmbedder): void;
|
|
7
7
|
//#endregion
|
|
8
|
-
export { registerOnboardTool };
|
|
9
|
-
//# sourceMappingURL=onboard.tool.d.ts.map
|
|
8
|
+
export { registerOnboardTool };
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import{createHash as e}from"node:crypto";import{createLogger as t,serializeError as n}from"../../../core/dist/index.js";import{onboard as r}from"../../../tools/dist/index.js";import{z as i}from"zod";const a=t(`tools`);async function o(t,r,i){for(let o of i.steps)if(!(o.status!==`success`||!o.output))try{let n=e(`sha256`).update(i.path).digest(`hex`).slice(0,12),a=`produced/onboard/${o.name}/${n}.md`,s=e(`sha256`).update(o.output).digest(`hex`).slice(0,16),c=new Date().toISOString(),l=o.output.length>2e3?o.output.split(/(?=^## )/m).filter(e=>e.trim().length>0):[o.output],u=l.map((t,n)=>({id:e(`sha256`).update(`${a}::${n}`).digest(`hex`).slice(0,16),content:t.trim(),sourcePath:a,contentType:`produced-knowledge`,chunkIndex:n,totalChunks:l.length,startLine:0,endLine:0,fileHash:s,indexedAt:c,origin:`produced`,tags:[`onboard`,o.name],category:`analysis`,version:1})),d=await r.embedBatch(u.map(e=>e.content));await t.upsert(u,d)}catch(e){a.warn(`Auto-persist onboard step failed`,{stepName:o.name,...n(e)})}}function s(e,t,s){e.registerTool(`onboard`,{description:`First-time codebase onboarding: runs all analysis tools (structure, dependencies, entry-points, symbols, patterns, diagram) in one command. Results are auto-persisted to KB. Use mode=generate to also write structured output to .ai/kb/ directory.`,inputSchema:{path:i.string().describe(`Root path of the codebase to onboard`),mode:i.enum([`memory`,`generate`]).default(`memory`).describe(`Output mode: memory = KB vector store only; generate = also write to .ai/kb/ directory`),out_dir:i.string().optional().describe(`Custom output directory for generate mode (default: <path>/.ai/kb)`)}},async({path:e,mode:i,out_dir:c})=>{try{a.info(`Starting onboard`,{path:e,mode:i});let n=await r({path:e,mode:i,outDir:c});o(t,s,n);let l=[`## Onboard Complete`,``,`**Path:** \`${n.path}\``,`**Mode:** ${n.mode}`,`**Duration:** ${n.totalDurationMs}ms`,``];n.outDir&&(l.push(`**Output directory:** \`${n.outDir}\``),l.push(``)),l.push(`### Analysis Results`,``);let u=[],d=[];for(let e of n.steps)e.status===`success`?u.push(`- ✓ **${e.name}** (${e.durationMs}ms) — ${e.output.length} chars`):d.push(`- ✗ **${e.name}** — ${e.error}`);l.push(...u),d.length>0&&l.push(``,`### Failed`,``,...d),l.push(``,`---`,``);for(let e of n.steps)e.status===`success`&&l.push(`### ${e.name}`,``,e.output,``,`---`,``);return l.push(`_All results auto-saved to KB.`,n.mode===`generate`?` Files written to \`${n.outDir}\`.`:``," Next: Use `search` to query the knowledge, or `remember` to add custom insights._"),{content:[{type:`text`,text:l.join(`
|
|
2
|
-
`)}]}}catch(e){return a.error(`Onboard failed`,n(e)),{content:[{type:`text`,text:`Onboard failed
|
|
3
|
-
//# sourceMappingURL=onboard.tool.js.map
|
|
2
|
+
`)}]}}catch(e){return a.error(`Onboard failed`,n(e)),{content:[{type:`text`,text:`Onboard failed: ${e instanceof Error?e.message:String(e)}`}],isError:!0}}})}export{s as registerOnboardTool};
|
|
@@ -4,5 +4,4 @@ import { PolicyStore } from "@kb/enterprise-bridge";
|
|
|
4
4
|
//#region packages/server/src/tools/policy.tools.d.ts
|
|
5
5
|
declare function registerErUpdatePolicyTool(server: McpServer, policyStore: PolicyStore): void;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { registerErUpdatePolicyTool };
|
|
8
|
-
//# sourceMappingURL=policy.tools.d.ts.map
|
|
7
|
+
export { registerErUpdatePolicyTool };
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import{createLogger as e,serializeError as t}from"../../../core/dist/index.js";import{z as n}from"zod";const r=e(`tools`);function i(e,i){e.registerTool(`er_update_policy`,{description:`Manage ER push classification rules. Supports listing, updating, creating, and deleting rules that determine when knowledge should be pushed to Enterprise RAG.`,inputSchema:{action:n.enum([`list`,`get`,`update`,`create`,`delete`]).describe(`Action to perform on classification rules`),rule_id:n.string().optional().describe(`Rule ID (required for get, update, delete)`),changes:n.object({patterns:n.array(n.string()).optional(),category:n.string().optional(),pushWeight:n.number().min(0).max(1).optional(),description:n.string().optional(),examples:n.array(n.string()).optional(),enabled:n.boolean().optional()}).optional().describe(`Changes to apply (for update action)`),new_rule:n.object({id:n.string().regex(/^[a-z][a-z0-9-]*$/),patterns:n.array(n.string()).min(1),category:n.string(),pushWeight:n.number().min(0).max(1),description:n.string(),examples:n.array(n.string()).default([]),enabled:n.boolean().default(!0)}).optional().describe(`New rule definition (for create action)`)}},async({action:e,rule_id:n,changes:a,new_rule:o})=>{try{if(e===`list`){let e=i.getRules();return{content:[{type:`text`,text:`## Classification Rules\n\n${e.map(e=>`- **${e.id}** (${e.enabled?`enabled`:`disabled`}) — ${e.description}\n Category: ${e.category} | Weight: ${e.pushWeight} | Patterns: ${e.patterns.join(`, `)}`).join(`
|
|
2
|
-
`)}\n\n---\n_${e.length} rules total. Use \`action: "update"\` to modify a rule._`}]}}if(e===`get`){if(!n)return{content:[{type:`text`,text:'`rule_id` is required for "get" action.'}],isError:!0};let e=i.getRule(n);return e?{content:[{type:`text`,text:`## Rule: ${e.id}\n\n${JSON.stringify(e,null,2)}`}]}:{content:[{type:`text`,text:`Rule "${n}" not found.`}],isError:!0}}if(e===`update`){if(!n||!a)return{content:[{type:`text`,text:'`rule_id` and `changes` are required for "update" action.'}],isError:!0};let e=i.updateRule(n,a);return e?{content:[{type:`text`,text:`Updated rule **${n}**.\n\n${JSON.stringify(e,null,2)}\n\n---\n_Next: Use \`action: "list"\` to verify all rules._`}]}:{content:[{type:`text`,text:`Rule "${n}" not found.`}],isError:!0}}if(e===`create`){if(!o)return{content:[{type:`text`,text:'`new_rule` is required for "create" action.'}],isError:!0};let e=i.addRule(o);return{content:[{type:`text`,text:`Created rule **${e.id}**.\n\n${JSON.stringify(e,null,2)}\n\n---\n_Next: Test classification with \`remember\` and check signals._`}]}}return e===`delete`?n?i.deleteRule(n)?{content:[{type:`text`,text:`Deleted rule **${n}**.\n\n---\n_Next: Use \`action: "list"\` to verify._`}]}:{content:[{type:`text`,text:`Rule "${n}" not found.`}],isError:!0}:{content:[{type:`text`,text:'`rule_id` is required for "delete" action.'}],isError:!0}:{content:[{type:`text`,text:`Unknown action: ${e}`}],isError:!0}}catch(e){return r.error(`Policy update failed`,t(e)),{content:[{type:`text`,text:`Policy update failed. Check server logs for details.`}],isError:!0}}})}export{i as registerErUpdatePolicyTool};
|
|
3
|
-
//# sourceMappingURL=policy.tools.js.map
|
|
2
|
+
`)}\n\n---\n_${e.length} rules total. Use \`action: "update"\` to modify a rule._`}]}}if(e===`get`){if(!n)return{content:[{type:`text`,text:'`rule_id` is required for "get" action.'}],isError:!0};let e=i.getRule(n);return e?{content:[{type:`text`,text:`## Rule: ${e.id}\n\n${JSON.stringify(e,null,2)}`}]}:{content:[{type:`text`,text:`Rule "${n}" not found.`}],isError:!0}}if(e===`update`){if(!n||!a)return{content:[{type:`text`,text:'`rule_id` and `changes` are required for "update" action.'}],isError:!0};let e=i.updateRule(n,a);return e?{content:[{type:`text`,text:`Updated rule **${n}**.\n\n${JSON.stringify(e,null,2)}\n\n---\n_Next: Use \`action: "list"\` to verify all rules._`}]}:{content:[{type:`text`,text:`Rule "${n}" not found.`}],isError:!0}}if(e===`create`){if(!o)return{content:[{type:`text`,text:'`new_rule` is required for "create" action.'}],isError:!0};let e=i.addRule(o);return{content:[{type:`text`,text:`Created rule **${e.id}**.\n\n${JSON.stringify(e,null,2)}\n\n---\n_Next: Test classification with \`remember\` and check signals._`}]}}return e===`delete`?n?i.deleteRule(n)?{content:[{type:`text`,text:`Deleted rule **${n}**.\n\n---\n_Next: Use \`action: "list"\` to verify._`}]}:{content:[{type:`text`,text:`Rule "${n}" not found.`}],isError:!0}:{content:[{type:`text`,text:'`rule_id` is required for "delete" action.'}],isError:!0}:{content:[{type:`text`,text:`Unknown action: ${e}`}],isError:!0}}catch(e){return r.error(`Policy update failed`,t(e)),{content:[{type:`text`,text:`Policy update failed. Check server logs for details.`}],isError:!0}}})}export{i as registerErUpdatePolicyTool};
|
|
@@ -3,5 +3,4 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
3
3
|
//#region packages/server/src/tools/produce.tool.d.ts
|
|
4
4
|
declare function registerProduceKnowledgeTool(server: McpServer): void;
|
|
5
5
|
//#endregion
|
|
6
|
-
export { registerProduceKnowledgeTool };
|
|
7
|
-
//# sourceMappingURL=produce.tool.d.ts.map
|
|
6
|
+
export { registerProduceKnowledgeTool };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import{DependencyAnalyzer as e,DiagramGenerator as t,EntryPointAnalyzer as n,KnowledgeProducer as r,PatternAnalyzer as i,StructureAnalyzer as a,SymbolAnalyzer as o}from"../../../analyzers/dist/index.js";import{createLogger as s,serializeError as c}from"../../../core/dist/index.js";import{z as l}from"zod";const u=s(`tools`);function d(s){let d=new r({structure:new a,dependencies:new e,symbols:new o,patterns:new i,entryPoints:new n,diagrams:new t});s.registerTool(`produce_knowledge`,{description:`Run automated codebase analysis and produce synthesis instructions. Executes Tier 1 deterministic analyzers, then returns structured baselines and instructions for you to synthesize knowledge using remember.`,inputSchema:{scope:l.string().optional().describe(`Root path to analyze (defaults to workspace root)`),aspects:l.array(l.enum([`all`,`structure`,`dependencies`,`symbols`,`patterns`,`entry-points`,`diagrams`])).default([`all`]).describe(`Which analysis aspects to run`)}},async({scope:e,aspects:t})=>{try{let n=e??`.`;u.info(`Running knowledge production`,{rootPath:n,aspects:t});let r=await d.runExtraction(n,t);return{content:[{type:`text`,text:d.buildSynthesisInstructions(r,t)+`
|
|
2
2
|
|
|
3
3
|
---
|
|
4
|
-
_Next: Review the baselines above and use \`remember\` to store synthesized knowledge entries._`}]}}catch(e){return u.error(`Knowledge production failed`,c(e)),{content:[{type:`text`,text:`Knowledge production failed. Check server logs for details.`}],isError:!0}}})}export{d as registerProduceKnowledgeTool};
|
|
5
|
-
//# sourceMappingURL=produce.tool.js.map
|
|
4
|
+
_Next: Review the baselines above and use \`remember\` to store synthesized knowledge entries._`}]}}catch(e){return u.error(`Knowledge production failed`,c(e)),{content:[{type:`text`,text:`Knowledge production failed. Check server logs for details.`}],isError:!0}}})}export{d as registerProduceKnowledgeTool};
|
|
@@ -4,5 +4,4 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
4
4
|
//#region packages/server/src/tools/read.tool.d.ts
|
|
5
5
|
declare function registerReadTool(server: McpServer, curated: CuratedKnowledgeManager): void;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { registerReadTool };
|
|
8
|
-
//# sourceMappingURL=read.tool.d.ts.map
|
|
7
|
+
export { registerReadTool };
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import{createLogger as e,serializeError as t}from"../../../core/dist/index.js";import{z as n}from"zod";const r=e(`tools`);function i(e,i){e.registerTool(`read`,{description:`Read the full content of a specific curated knowledge entry by its path. Use list first to discover available entries.`,inputSchema:{path:n.string().describe(`Relative path within curated/ (e.g., "decisions/use-lancedb.md")`)}},async({path:e})=>{try{let t=await i.read(e);return{content:[{type:`text`,text:`${[`## ${t.title}`,`- **Path**: curated/${e}`,`- **Category**: ${t.category}`,t.tags.length?`- **Tags**: ${t.tags.join(`, `)}`:null,`- **Version**: ${t.version}`,`- **Created**: ${t.created}`,t.updated===t.created?null:`- **Updated**: ${t.updated}`,``].filter(e=>e!==null).join(`
|
|
2
|
-
`)}\n${t.content}\n\n---\n_Next: Use \`update\` to modify this entry, or \`search\` to find related entries._`}]}}catch(e){return r.error(`Read failed`,t(e)),{content:[{type:`text`,text:`Read failed. Check server logs for details.`}],isError:!0}}})}export{i as registerReadTool};
|
|
3
|
-
//# sourceMappingURL=read.tool.js.map
|
|
1
|
+
import{createLogger as e,serializeError as t}from"../../../core/dist/index.js";import{z as n}from"zod";const r=e(`tools`);function i(e,i){e.registerTool(`read`,{description:`Read the full content of a specific curated knowledge entry by its path. Use list first to discover available entries.`,inputSchema:{path:n.string().describe(`Relative path within .ai/curated/ (e.g., "decisions/use-lancedb.md")`)}},async({path:e})=>{try{let t=await i.read(e);return{content:[{type:`text`,text:`${[`## ${t.title}`,`- **Path**: .ai/curated/${e}`,`- **Category**: ${t.category}`,t.tags.length?`- **Tags**: ${t.tags.join(`, `)}`:null,`- **Version**: ${t.version}`,`- **Created**: ${t.created}`,t.updated===t.created?null:`- **Updated**: ${t.updated}`,``].filter(e=>e!==null).join(`
|
|
2
|
+
`)}\n${t.content}\n\n---\n_Next: Use \`update\` to modify this entry, or \`search\` to find related entries._`}]}}catch(e){return r.error(`Read failed`,t(e)),{content:[{type:`text`,text:`Read failed. Check server logs for details.`}],isError:!0}}})}export{i as registerReadTool};
|
|
@@ -7,5 +7,4 @@ import { IKnowledgeStore } from "@kb/store";
|
|
|
7
7
|
//#region packages/server/src/tools/reindex.tool.d.ts
|
|
8
8
|
declare function registerReindexTool(server: McpServer, indexer: IncrementalIndexer, config: KBConfig, curated: CuratedKnowledgeManager, store?: IKnowledgeStore): void;
|
|
9
9
|
//#endregion
|
|
10
|
-
export { registerReindexTool };
|
|
11
|
-
//# sourceMappingURL=reindex.tool.d.ts.map
|
|
10
|
+
export { registerReindexTool };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{createLogger as e,serializeError as t}from"../../../core/dist/index.js";import{z as n}from"zod";const r=e(`tools`);function i(e,i,a,o,s){e.registerTool(`reindex`,{description:`Trigger re-indexing of the knowledge base. Can do incremental (only changed files) or full re-index.`,inputSchema:{full:n.boolean().default(!1).describe(`If true, force full re-index ignoring file hashes`)}},async({full:e})=>{try{
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import{createLogger as e,serializeError as t}from"../../../core/dist/index.js";import{z as n}from"zod";const r=e(`tools`);function i(e,i,a,o,s){e.registerTool(`reindex`,{description:`Trigger re-indexing of the knowledge base. Can do incremental (only changed files) or full re-index.`,inputSchema:{full:n.boolean().default(!1).describe(`If true, force full re-index ignoring file hashes`)}},async({full:e})=>{try{if(i.isIndexing)return{content:[{type:`text`,text:`## Reindex Already in Progress
|
|
2
|
+
|
|
3
|
+
A reindex operation is currently running. Search and other tools continue to work with existing data. Use \`status({})\` to check when it completes.`}]};r.info(`Starting background re-index`,{mode:e?`full`:`incremental`});let n=e=>t=>{t.phase===`chunking`&&t.currentFile&&r.debug(`Re-index progress`,{prefix:e,current:t.filesProcessed+1,total:t.filesTotal,file:t.currentFile})};return(e?i.reindexAll(a,n(`Reindex`)):i.index(a,n(`Index`))).then(async e=>{if(r.info(`Background re-index complete`,{filesProcessed:e.filesProcessed,chunksCreated:e.chunksCreated,durationMs:e.durationMs}),s)try{await s.createFtsIndex(),r.info(`FTS index rebuilt after reindex`)}catch(e){r.warn(`FTS index rebuild failed`,t(e))}try{let e=await o.reindexAll();r.info(`Curated re-index complete`,{indexed:e.indexed})}catch(e){r.warn(`Curated re-index failed`,t(e))}}).catch(e=>{r.error(`Background reindex failed`,t(e))}),{content:[{type:`text`,text:`## Reindex Started (Background)\n\n- **Mode**: ${e?`Full`:`Incremental`}\n- Search and other tools continue to work with existing data during reindex.\n- Completion will be logged. Use \`status({})\` to check index stats afterward.\n\n---\n_Next: Continue working — the reindex runs in the background._`}]}}catch(e){return r.error(`Reindex failed`,t(e)),{content:[{type:`text`,text:`Reindex failed. Check server logs for details.`}],isError:!0}}})}export{i as registerReindexTool};
|
|
@@ -5,5 +5,4 @@ import { EvolutionCollector, PolicyStore } from "@kb/enterprise-bridge";
|
|
|
5
5
|
//#region packages/server/src/tools/remember.tool.d.ts
|
|
6
6
|
declare function registerRememberTool(server: McpServer, curated: CuratedKnowledgeManager, policyStore?: PolicyStore, evolutionCollector?: EvolutionCollector): void;
|
|
7
7
|
//#endregion
|
|
8
|
-
export { registerRememberTool };
|
|
9
|
-
//# sourceMappingURL=remember.tool.d.ts.map
|
|
8
|
+
export { registerRememberTool };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import{createLogger as e,serializeError as t}from"../../../core/dist/index.js";import{z as n}from"zod";const r=e(`tools`);function i(e,i,a,o){e.registerTool(`remember`,{description:`Store a new piece of curated knowledge. Use this to persist decisions, patterns, conventions, or any insight worth remembering across sessions.`,inputSchema:{title:n.string().min(3).max(120).describe(`Short descriptive title for the knowledge entry`),content:n.string().min(10).max(1e5).describe(`The markdown content to store`),category:n.string().regex(/^[a-z][a-z0-9-]*$/).describe(`Category slug (e.g., "decisions", "patterns", "conventions", "api-contracts")`),tags:n.array(n.string()).default([]).describe(`Optional tags for filtering`)}},async({title:e,content:n,category:s,tags:c})=>{try{let t=await i.remember(e,n,s,c),r=``;if(a){let t=a.classify(e,n,c);o&&o.recordClassification(e,t.matchingRules.map(e=>e.ruleId),t.pushRecommended),t.matchingRules.length>0&&(r=`\n\n### Classification Signals\n${t.matchingRules.map(e=>` - **${e.ruleId}** (${e.category}, weight: ${e.pushWeight}) — matched: ${e.matchedPatterns.join(`, `)}`).join(`
|
|
2
2
|
`)}\n- **Push recommended**: ${t.pushRecommended?`yes`:`no`} (max weight: ${t.maxPushWeight})`,t.pushRecommended&&(r+=`
|
|
3
3
|
|
|
4
|
-
> 💡 This entry matches push rules. Consider \`er_push\` to share with Enterprise RAG.`))}return{content:[{type:`text`,text:`Remembered: **${e}**\n\nStored at
|
|
5
|
-
//# sourceMappingURL=remember.tool.js.map
|
|
4
|
+
> 💡 This entry matches push rules. Consider \`er_push\` to share with Enterprise RAG.`))}return{content:[{type:`text`,text:`Remembered: **${e}**\n\nStored at \`.ai/curated/${t.path}\` and indexed for semantic search.${r}\n\n---\n_Next: Use \`search\` to verify the entry is findable, or \`list\` to see all curated entries._`}]}}catch(e){return r.error(`Remember failed`,t(e)),{content:[{type:`text`,text:`Remember failed. Check server logs for details.`}],isError:!0}}})}export{i as registerRememberTool};
|
|
@@ -3,5 +3,4 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
3
3
|
//#region packages/server/src/tools/replay.tool.d.ts
|
|
4
4
|
declare function registerReplayTool(server: McpServer): void;
|
|
5
5
|
//#endregion
|
|
6
|
-
export { registerReplayTool };
|
|
7
|
-
//# sourceMappingURL=replay.tool.d.ts.map
|
|
6
|
+
export { registerReplayTool };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import{createLogger as e,serializeError as t}from"../../../core/dist/index.js";import{replayClear as n,replayList as r,replayTrim as i}from"../../../tools/dist/index.js";import{z as a}from"zod";const o=e(`tools`);function s(e){e.registerTool(`replay`,{description:`View or clear the audit trail of recent MCP tool and CLI invocations. Shows tool name, duration, status, and input/output summaries.`,inputSchema:{action:a.enum([`list`,`clear`]).default(`list`).describe(`Action: "list" (default) to view entries, "clear" to wipe the log`),last:a.number().optional().describe(`Number of entries to return (default: 20, list only)`),tool:a.string().optional().describe(`Filter by tool name (list only)`),source:a.enum([`mcp`,`cli`]).optional().describe(`Filter by source: "mcp" or "cli" (list only)`),since:a.string().optional().describe(`ISO timestamp — only show entries after this time (list only)`)}},async({action:e,last:a,tool:s,source:c,since:l})=>{try{if(e===`clear`)return n(),{content:[{type:`text`,text:`Replay log cleared.`}]};let t=r({last:a,tool:s,source:c,since:l});if(t.length===0)return{content:[{type:`text`,text:`No replay entries found. Activity is logged when tools are invoked via MCP or CLI.`}]};let o=t.map(e=>`${e.ts.split(`T`)[1]?.split(`.`)[0]??e.ts} ${e.status===`ok`?`✓`:`✗`} ${e.tool} (${e.durationMs}ms) [${e.source}]\n in: ${e.input}\n out: ${e.output}`);return i(),{content:[{type:`text`,text:`**Replay Log** (${t.length} entries)\n\n${o.join(`
|
|
2
2
|
|
|
3
|
-
`)}`}]}}catch(e){return o.error(`Replay failed`,t(e)),{content:[{type:`text`,text:`Replay failed. Check server logs for details.`}],isError:!0}}})}export{s as registerReplayTool};
|
|
4
|
-
//# sourceMappingURL=replay.tool.js.map
|
|
3
|
+
`)}`}]}}catch(e){return o.error(`Replay failed`,t(e)),{content:[{type:`text`,text:`Replay failed. Check server logs for details.`}],isError:!0}}})}export{s as registerReplayTool};
|
|
@@ -7,5 +7,4 @@ import { IGraphStore, IKnowledgeStore } from "@kb/store";
|
|
|
7
7
|
//#region packages/server/src/tools/search.tool.d.ts
|
|
8
8
|
declare function registerSearchTool(server: McpServer, embedder: IEmbedder, store: IKnowledgeStore, graphStore?: IGraphStore, bridge?: BridgeComponents, evolutionCollector?: EvolutionCollector): void;
|
|
9
9
|
//#endregion
|
|
10
|
-
export { registerSearchTool };
|
|
11
|
-
//# sourceMappingURL=search.tool.d.ts.map
|
|
10
|
+
export { registerSearchTool };
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{fanOutFtsSearch as e,fanOutSearch as t,openWorkspaceStores as n,resolveWorkspaces as r}from"../cross-workspace.js";import{stat as i}from"node:fs/promises";import{CONTENT_TYPES as a,KNOWLEDGE_ORIGINS as o,SOURCE_TYPES as s,computePartitionKey as c,createLogger as l,serializeError as u}from"../../../core/dist/index.js";import{graphAugmentSearch as d,truncateToTokenBudget as f}from"../../../tools/dist/index.js";import{z as p}from"zod";import{mergeResults as m}from"../../../enterprise-bridge/dist/index.js";const h=l(`tools`);async function g(e,t,n,r,i){if(!e||t>=e.config.fallbackThreshold&&n.length>0)return{results:n,triggered:!1,cacheHit:!1};let a=!1;try{let t=e.cache.get(r);return t?a=!0:(t=await e.client.search(r,i),t.length>0&&e.cache.set(r,t)),t.length>0?{results:m(n,t,i).map(e=>({record:{id:`er:${e.sourcePath}`,content:e.content,sourcePath:e.source===`er`?`[ER] ${e.sourcePath}`:e.sourcePath,startLine:e.startLine??0,endLine:e.endLine??0,contentType:e.contentType??`documentation`,headingPath:e.headingPath,origin:e.source===`er`?`curated`:e.origin??`indexed`,category:e.category,tags:e.tags??[],chunkIndex:0,totalChunks:1,fileHash:``,indexedAt:new Date().toISOString(),version:1},score:e.score})),triggered:!0,cacheHit:a}:{results:n,triggered:!0,cacheHit:a}}catch(e){return h.warn(`ER fallback failed`,u(e)),{results:n,triggered:!0,cacheHit:a}}}function _(e,t,n=60){let r=new Map;for(let t=0;t<e.length;t++){let i=e[t];r.set(i.record.id,{record:i.record,score:1/(n+t+1)})}for(let e=0;e<t.length;e++){let i=t[e],a=r.get(i.record.id);a?a.score+=1/(n+e+1):r.set(i.record.id,{record:i.record,score:1/(n+e+1)})}return[...r.values()].sort((e,t)=>t.score-e.score).map(({record:e,score:t})=>({record:e,score:t}))}function v(e,t){let n=t.toLowerCase().split(/\s+/).filter(e=>e.length>=2);return n.length<2?e:e.map(e=>{let t=e.record.content.toLowerCase(),r=n.map(e=>{let n=[],r=t.indexOf(e);for(;r!==-1;)n.push(r),r=t.indexOf(e,r+1);return n});if(r.some(e=>e.length===0))return e;let i=t.length;for(let e of r[0]){let t=e,a=e+n[0].length;for(let i=1;i<r.length;i++){let o=r[i][0],s=Math.abs(o-e);for(let t=1;t<r[i].length;t++){let n=Math.abs(r[i][t]-e);n<s&&(s=n,o=r[i][t])}t=Math.min(t,o),a=Math.max(a,o+n[i].length)}i=Math.min(i,a-t)}let a=1+.25/(1+i/200);return{record:e.record,score:e.score*a}}).sort((e,t)=>t.score-e.score)}function y(e,t,n=8){let r=new Set(t.toLowerCase().split(/\s+/).filter(e=>e.length>=2)),i=new Map,a=e.length;for(let t of e){let e=new Set(t.record.content.split(/[^a-zA-Z0-9_]+/).filter(e=>e.length>=3&&!b.has(e.toLowerCase())));for(let t of e){let e=t.toLowerCase();/[_A-Z]/.test(t)&&i.set(`__id__${e}`,1)}let n=new Set(t.record.content.toLowerCase().split(/[^a-zA-Z0-9_]+/).filter(e=>e.length>=3&&!b.has(e)));for(let e of n)i.set(e,(i.get(e)??0)+1)}let o=[];for(let[e,t]of i){if(e.startsWith(`__id__`)||r.has(e)||t>a*.8)continue;let n=Math.log(a/t),s=i.has(`__id__${e}`)?1:0,c=e.length>8?.5:0;o.push({term:e,score:n+s+c})}return o.sort((e,t)=>t.score-e.score).slice(0,n).map(e=>e.term)}const b=new Set(`the.and.for.are.but.not.you.all.can.had.her.was.one.our.out.has.have.from.this.that.with.they.been.said.each.which.their.will.other.about.many.then.them.these.some.would.make.like.into.could.time.very.when.come.just.know.take.people.also.back.after.only.more.than.over.such.import.export.const.function.return.true.false.null.undefined.string.number.boolean.void.type.interface`.split(`.`));async function x(e,t){try{let n=await e.getStats();if(!n.lastIndexedAt)return;let r=new Date(n.lastIndexedAt).getTime(),a=Date.now(),o=[...new Set(t.map(e=>e.record.sourcePath))].filter(e=>!e.startsWith(`[ER]`)).slice(0,5);if(o.length===0)return;let s=0;for(let e of o)try{(await i(e)).mtimeMs>r&&s++}catch{s++}if(s>0){let e=a-r,t=Math.floor(e/6e4),n=t<1?`<1 min`:`${t} min`;return`> ⚠️ **Index may be stale** — ${s} file(s) modified since last index (${n} ago). Use \`reindex\` to refresh.`}}catch{}}function S(i,l,m,b,S,C){i.registerTool(`search`,{description:`Search the knowledge base with hybrid vector + keyword matching (BM25 + RRF fusion). Best for finding code, docs, and prior decisions. Supports semantic, keyword, and hybrid modes.`,inputSchema:{query:p.string().max(5e3).describe(`Natural language search query`),limit:p.number().min(1).max(20).default(5).describe(`Maximum results to return`),search_mode:p.enum([`hybrid`,`semantic`,`keyword`]).default(`hybrid`).describe(`Search strategy: hybrid (vector + FTS + RRF fusion, default), semantic (vector only), keyword (FTS only)`),content_type:p.enum(a).optional().describe(`Filter by content type`),source_type:p.enum(s).optional().describe(`Coarse filter: "source" (code only), "documentation" (md, curated), "test", "config". Overrides content_type if both set.`),origin:p.enum(o).optional().describe(`Filter by knowledge origin`),category:p.string().optional().describe(`Filter by category (e.g., decisions, patterns, conventions)`),tags:p.array(p.string()).optional().describe(`Filter by tags (returns results matching ANY of the specified tags)`),min_score:p.number().min(0).max(1).default(.25).describe(`Minimum similarity score`),graph_hops:p.number().min(0).max(3).default(1).describe(`Number of graph hops to augment results with connected entities (0 = disabled, 1 = direct connections, 2-3 = deeper traversal). Default 1 provides module/symbol context automatically.`),max_tokens:p.number().min(100).max(5e4).optional().describe(`Maximum token budget for the response. When set, output is truncated to fit.`),dedup:p.enum([`file`,`chunk`]).default(`chunk`).describe(`Deduplication mode: "chunk" (default, show all matching chunks) or "file" (collapse chunks from same file into single result with merged line ranges)`),workspaces:p.array(p.string()).optional().describe(`Cross-workspace search: partition names or folder basenames to include. Use ["*"] for all registered workspaces. Only works in global install mode.`)}},async({query:i,limit:a,search_mode:o,content_type:s,source_type:p,origin:w,category:T,tags:E,min_score:D,graph_hops:O,max_tokens:k,dedup:A,workspaces:j})=>{try{let M={limit:a,minScore:D,contentType:s,sourceType:p,origin:w,category:T,tags:E},N,P=!1,F=!1;if(o===`keyword`)N=await m.ftsSearch(i,M),N=N.slice(0,a);else if(o===`semantic`){let e=await l.embedQuery(i);N=await m.search(e,M);let t=await g(S,N[0]?.score??0,N,i,a);N=t.results,P=t.triggered,F=t.cacheHit}else{let e=await l.embedQuery(i),[t,n]=await Promise.all([m.search(e,{...M,limit:a*2}),m.ftsSearch(i,{...M,limit:a*2}).catch(()=>[])]);N=_(t,n).slice(0,a);let r=await g(S,t[0]?.score??0,N,i,a);N=r.results,P=r.triggered,F=r.cacheHit}C&&C.recordSearch(i,P,F),N.length>1&&(N=v(N,i));let I=``;if(j&&j.length>0){let s=r(j,c(process.cwd()));if(s.length>0){let{stores:r,closeAll:c}=await n(s);try{let n;n=o===`keyword`?await e(r,i,{...M,limit:a}):await t(r,await l.embedQuery(i),{...M,limit:a});for(let e of n)N.push({record:{...e.record,sourcePath:`[${e.workspace}] ${e.record.sourcePath}`},score:e.score});N=N.sort((e,t)=>t.score-e.score).slice(0,a),I=` + ${s.length} workspace(s)`}finally{await c()}}}if(A===`file`&&N.length>1){let e=new Map;for(let t of N){let n=t.record.sourcePath,r=e.get(n);r?(t.score>r.best.score&&(r.best=t),r.ranges.push({start:t.record.startLine,end:t.record.endLine})):e.set(n,{best:t,ranges:[{start:t.record.startLine,end:t.record.endLine}]})}N=[...e.values()].sort((e,t)=>t.best.score-e.best.score).map(({best:e,ranges:t})=>({record:{...e.record,content:t.length>1?`${e.record.content}\n\n_Matched ${t.length} sections: ${t.sort((e,t)=>e.start-t.start).map(e=>`L${e.start}-${e.end}`).join(`, `)}_`:e.record.content},score:e.score}))}if(N.length===0)return{content:[{type:`text`,text:`No results found for the given query.`}]};let L,R;if(O>0&&!b&&(R="> **Note:** `graph_hops` was set but no graph store is available. Graph augmentation skipped."),O>0&&b)try{let e=await d(b,N.map(e=>({recordId:e.record.id,score:e.score,sourcePath:e.record.sourcePath})),{hops:O,maxPerHit:5});L=new Map;for(let t of e)if(t.graphContext.nodes.length>0){let e=t.graphContext.nodes.slice(0,5).map(e=>` - **${e.name}** (${e.type})`).join(`
|
|
2
2
|
`),n=t.graphContext.edges.slice(0,5).map(e=>` - ${e.fromId} —[${e.type}]→ ${e.toId}`).join(`
|
|
3
|
-
`),r=[`- **Graph Context** (${
|
|
4
|
-
`))}}catch(e){
|
|
3
|
+
`),r=[`- **Graph Context** (${O} hop${O>1?`s`:``}):`];e&&r.push(` Entities:\n${e}`),n&&r.push(` Relationships:\n${n}`),L.set(t.recordId,r.join(`
|
|
4
|
+
`))}}catch(e){h.warn(`Graph augmentation failed`,u(e)),R=`> **Note:** Graph augmentation failed. Results shown without graph context.`}let z=N.map((e,t)=>{let n=e.record;return`${`### Result ${t+1} (score: ${e.score.toFixed(3)})`}\n${[`- **Source**: ${n.sourcePath}`,n.headingPath?`- **Section**: ${n.headingPath}`:null,`- **Type**: ${n.contentType}`,n.startLine?`- **Lines**: ${n.startLine}-${n.endLine}`:null,n.origin===`indexed`?null:`- **Origin**: ${n.origin}`,n.category?`- **Category**: ${n.category}`:null,n.tags?.length?`- **Tags**: ${n.tags.join(`, `)}`:null,L?.get(n.id)??null].filter(Boolean).join(`
|
|
5
5
|
`)}\n\n${n.content}`}).join(`
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
`),
|
|
10
|
-
//# sourceMappingURL=search.tool.js.map
|
|
9
|
+
`),B=(o===`hybrid`?`hybrid (vector + keyword RRF)`:o===`keyword`?`keyword (FTS)`:`semantic (vector)`)+I,V=y(N,i),H=V.length>0?`\n_Distinctive terms: ${V.map(e=>`\`${e}\``).join(`, `)}_`:``,U=await x(m,N),W=[];if(N.length===0)W.push("`reindex` — no results found, index may be stale"),W.push("`find` — try federated search with glob/regex");else{let e=N[0]?.record.sourcePath;e&&W.push(`\`lookup\` — see all chunks from \`${e}\``),W.push("`symbol` — resolve a specific symbol from the results"),W.push("`compact` — compress a result file for focused reading")}let G=[R?`${R}\n\n`:``,U?`${U}\n\n`:``,z,`\n\n---\n_Search mode: ${B} | ${N.length} results_${H}`,`\n_Next: ${W.join(` | `)}_`].join(``);return k&&(G=f(G,k)),{content:[{type:`text`,text:G}]}}catch(e){return h.error(`Search failed`,u(e)),{content:[{type:`text`,text:`Search failed: ${e instanceof Error?e.message:String(e)}`}],isError:!0}}})}export{S as registerSearchTool};
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import { CuratedKnowledgeManager } from "../curated-manager.js";
|
|
1
2
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
3
|
import { IGraphStore, IKnowledgeStore } from "@kb/store";
|
|
3
4
|
|
|
4
5
|
//#region packages/server/src/tools/status.tool.d.ts
|
|
5
|
-
|
|
6
|
+
interface OnboardState {
|
|
7
|
+
onboardComplete: boolean;
|
|
8
|
+
onboardTimestamp?: string;
|
|
9
|
+
}
|
|
10
|
+
declare function registerStatusTool(server: McpServer, store: IKnowledgeStore, graphStore?: IGraphStore, curated?: CuratedKnowledgeManager, onboardState?: OnboardState): void;
|
|
6
11
|
//#endregion
|
|
7
|
-
export { registerStatusTool };
|
|
8
|
-
//# sourceMappingURL=status.tool.d.ts.map
|
|
12
|
+
export { OnboardState, registerStatusTool };
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
`)+"\n\n---\n_Next: Use `search` to query indexed content, `graph(stats)` to explore the knowledge graph, or `reindex` to refresh the index._"}]}}catch(e){return
|
|
3
|
-
//# sourceMappingURL=status.tool.js.map
|
|
1
|
+
import{existsSync as e}from"node:fs";import{resolve as t}from"node:path";import{WasmRuntime as n}from"../../../chunker/dist/index.js";import{KB_PATHS as r,createLogger as i,serializeError as a}from"../../../core/dist/index.js";const o=i(`tools`);function s(i,s,c,l,u){i.registerTool(`status`,{description:`Get the current status and statistics of the knowledge base index.`},async()=>{try{let i=await s.getStats(),a=await s.listSourcePaths(),o=[`## Knowledge Base Status`,``,`- **Total Records**: ${i.totalRecords}`,`- **Total Files**: ${i.totalFiles}`,`- **Last Indexed**: ${i.lastIndexedAt??`Never`}`,``,`### Content Types`,...Object.entries(i.contentTypeBreakdown).map(([e,t])=>`- ${e}: ${t}`),``,`### Indexed Files`,...a.slice(0,50).map(e=>`- ${e}`),a.length>50?`\n... and ${a.length-50} more files`:``];if(c)try{let e=await c.getStats();o.push(``,`### Knowledge Graph`,`- **Nodes**: ${e.nodeCount}`,`- **Edges**: ${e.edgeCount}`,...Object.entries(e.nodeTypes).map(([e,t])=>` - ${e}: ${t}`))}catch{o.push(``,`### Knowledge Graph`,`- Graph store unavailable`)}let d=e(t(process.cwd(),r.aiKb)),f=u?.onboardComplete??d;if(o.push(``,`### Onboard Status`,f?`- ✅ Complete${u?.onboardTimestamp?` (last: ${u.onboardTimestamp})`:``}`:'- ❌ Not run — call `onboard({ path: "." })` to analyze the codebase'),l)try{let e=await l.list();o.push(``,`### Curated Knowledge`,e.length>0?`- ${e.length} entries`:"- Empty — use `remember()` to persist decisions")}catch{o.push(``,`### Curated Knowledge`,`- Unable to read curated entries`)}if(i.lastIndexedAt){let e=new Date(i.lastIndexedAt),t=(Date.now()-e.getTime())/(1e3*60*60);o.push(``,`### Index Freshness`,t>24?`- ⚠ Last indexed ${Math.floor(t)}h ago — may be stale. Run \`reindex({})\``:`- ✅ Last indexed ${t<1?`less than 1h`:`${Math.floor(t)}h`} ago`)}return o.push(``,`### Runtime`,`- **Tree-sitter (WASM)**: ${n.get()?`✅ Available (AST analysis)`:`⚠ Unavailable (regex fallback)`}`),{content:[{type:`text`,text:o.join(`
|
|
2
|
+
`)+"\n\n---\n_Next: Use `search` to query indexed content, `graph(stats)` to explore the knowledge graph, or `reindex` to refresh the index._"}]}}catch(e){return o.error(`Status failed`,a(e)),{content:[{type:`text`,text:`Status check failed: ${e instanceof Error?e.message:String(e)}`}],isError:!0}}})}export{s as registerStatusTool};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import { IEmbedder } from "@kb/embeddings";
|
|
3
|
-
import { IKnowledgeStore } from "@kb/store";
|
|
3
|
+
import { IGraphStore, IKnowledgeStore } from "@kb/store";
|
|
4
4
|
import { FileCache } from "@kb/tools";
|
|
5
5
|
|
|
6
6
|
//#region packages/server/src/tools/toolkit.tools.d.ts
|
|
@@ -11,7 +11,7 @@ declare function registerParseOutputTool(server: McpServer): void;
|
|
|
11
11
|
declare function registerWorksetTool(server: McpServer): void;
|
|
12
12
|
declare function registerCheckTool(server: McpServer): void;
|
|
13
13
|
declare function registerBatchTool(server: McpServer, embedder: IEmbedder, store: IKnowledgeStore): void;
|
|
14
|
-
declare function registerSymbolTool(server: McpServer, embedder: IEmbedder, store: IKnowledgeStore): void;
|
|
14
|
+
declare function registerSymbolTool(server: McpServer, embedder: IEmbedder, store: IKnowledgeStore, graphStore?: IGraphStore): void;
|
|
15
15
|
declare function registerEvalTool(server: McpServer): void;
|
|
16
16
|
declare function registerTestRunTool(server: McpServer): void;
|
|
17
17
|
declare function registerStashTool(server: McpServer): void;
|
|
@@ -33,5 +33,4 @@ declare function registerQueueTool(server: McpServer): void;
|
|
|
33
33
|
declare function registerWebFetchTool(server: McpServer): void;
|
|
34
34
|
declare function registerGuideTool(server: McpServer): void;
|
|
35
35
|
//#endregion
|
|
36
|
-
export { registerBatchTool, registerCheckTool, registerCheckpointTool, registerCodemodTool, registerCompactTool, registerDataTransformTool, registerDeadSymbolsTool, registerDelegateTool, registerDiffParseTool, registerEvalTool, registerFileSummaryTool, registerFindTool, registerGitContextTool, registerGuideTool, registerHealthTool, registerLaneTool, registerParseOutputTool, registerProcessTool, registerQueueTool, registerRenameTool, registerScopeMapTool, registerStashTool, registerSymbolTool, registerTestRunTool, registerTraceTool, registerWatchTool, registerWebFetchTool, registerWorksetTool };
|
|
37
|
-
//# sourceMappingURL=toolkit.tools.d.ts.map
|
|
36
|
+
export { registerBatchTool, registerCheckTool, registerCheckpointTool, registerCodemodTool, registerCompactTool, registerDataTransformTool, registerDeadSymbolsTool, registerDelegateTool, registerDiffParseTool, registerEvalTool, registerFileSummaryTool, registerFindTool, registerGitContextTool, registerGuideTool, registerHealthTool, registerLaneTool, registerParseOutputTool, registerProcessTool, registerQueueTool, registerRenameTool, registerScopeMapTool, registerStashTool, registerSymbolTool, registerTestRunTool, registerTraceTool, registerWatchTool, registerWebFetchTool, registerWorksetTool };
|