codesift-mcp 0.15.5 → 0.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/auto-prune.d.ts +16 -0
- package/dist/cli/auto-prune.d.ts.map +1 -0
- package/dist/cli/auto-prune.js +87 -0
- package/dist/cli/auto-prune.js.map +1 -0
- package/dist/cli/commands-admin.d.ts.map +1 -1
- package/dist/cli/commands-admin.js +11 -0
- package/dist/cli/commands-admin.js.map +1 -1
- package/dist/cli/commands-daemon.d.ts.map +1 -1
- package/dist/cli/commands-daemon.js +41 -0
- package/dist/cli/commands-daemon.js.map +1 -1
- package/dist/cli/commands-index.d.ts.map +1 -1
- package/dist/cli/commands-index.js +8 -0
- package/dist/cli/commands-index.js.map +1 -1
- package/dist/cli/commands-maintenance.d.ts.map +1 -1
- package/dist/cli/commands-maintenance.js +173 -3
- package/dist/cli/commands-maintenance.js.map +1 -1
- package/dist/cli/embed-child.js +5 -1
- package/dist/cli/embed-child.js.map +1 -1
- package/dist/cli/hooks/pre-compact.d.ts.map +1 -1
- package/dist/cli/hooks/pre-compact.js +4 -0
- package/dist/cli/hooks/pre-compact.js.map +1 -1
- package/dist/cli/hooks/pre-tool-use.d.ts.map +1 -1
- package/dist/cli/hooks/pre-tool-use.js +5 -2
- package/dist/cli/hooks/pre-tool-use.js.map +1 -1
- package/dist/cli/hooks/session.d.ts.map +1 -1
- package/dist/cli/hooks/session.js +5 -0
- package/dist/cli/hooks/session.js.map +1 -1
- package/dist/cli/hooks/shared.d.ts.map +1 -1
- package/dist/cli/hooks/shared.js +6 -2
- package/dist/cli/hooks/shared.js.map +1 -1
- package/dist/cli/hooks/wiki.d.ts +13 -0
- package/dist/cli/hooks/wiki.d.ts.map +1 -1
- package/dist/cli/hooks/wiki.js +19 -2
- package/dist/cli/hooks/wiki.js.map +1 -1
- package/dist/cli/orphan-guard.d.ts +22 -0
- package/dist/cli/orphan-guard.d.ts.map +1 -1
- package/dist/cli/orphan-guard.js +30 -0
- package/dist/cli/orphan-guard.js.map +1 -1
- package/dist/cli/owner-only-file.d.ts +9 -0
- package/dist/cli/owner-only-file.d.ts.map +1 -1
- package/dist/cli/owner-only-file.js +40 -8
- package/dist/cli/owner-only-file.js.map +1 -1
- package/dist/cli/service.d.ts +32 -0
- package/dist/cli/service.d.ts.map +1 -1
- package/dist/cli/service.js +74 -4
- package/dist/cli/service.js.map +1 -1
- package/dist/cli/setup/claude.js +3 -3
- package/dist/cli/setup/claude.js.map +1 -1
- package/dist/cli/setup/codex-project-auto.d.ts +27 -0
- package/dist/cli/setup/codex-project-auto.d.ts.map +1 -0
- package/dist/cli/setup/codex-project-auto.js +98 -0
- package/dist/cli/setup/codex-project-auto.js.map +1 -0
- package/dist/cli/setup/codex.d.ts.map +1 -1
- package/dist/cli/setup/codex.js +105 -10
- package/dist/cli/setup/codex.js.map +1 -1
- package/dist/cli/setup/cursor.d.ts.map +1 -1
- package/dist/cli/setup/cursor.js +9 -1
- package/dist/cli/setup/cursor.js.map +1 -1
- package/dist/cli/setup/fs.d.ts +2 -0
- package/dist/cli/setup/fs.d.ts.map +1 -1
- package/dist/cli/setup/fs.js +4 -1
- package/dist/cli/setup/fs.js.map +1 -1
- package/dist/cli/setup/gemini.d.ts.map +1 -1
- package/dist/cli/setup/gemini.js +25 -4
- package/dist/cli/setup/gemini.js.map +1 -1
- package/dist/cli/setup/hooks.d.ts +10 -0
- package/dist/cli/setup/hooks.d.ts.map +1 -1
- package/dist/cli/setup/hooks.js +25 -3
- package/dist/cli/setup/hooks.js.map +1 -1
- package/dist/cli/setup/mcp.d.ts +37 -1
- package/dist/cli/setup/mcp.d.ts.map +1 -1
- package/dist/cli/setup/mcp.js +57 -4
- package/dist/cli/setup/mcp.js.map +1 -1
- package/dist/cli/setup/types.d.ts +19 -1
- package/dist/cli/setup/types.d.ts.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +30 -6
- package/dist/config.js.map +1 -1
- package/dist/formatters-core.d.ts +1 -0
- package/dist/formatters-core.d.ts.map +1 -1
- package/dist/formatters-core.js +8 -2
- package/dist/formatters-core.js.map +1 -1
- package/dist/formatters-shortening.d.ts.map +1 -1
- package/dist/formatters-shortening.js +8 -2
- package/dist/formatters-shortening.js.map +1 -1
- package/dist/instructions.d.ts +22 -1
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +61 -1
- package/dist/instructions.js.map +1 -1
- package/dist/lsp/lsp-client.d.ts +1 -1
- package/dist/lsp/lsp-client.d.ts.map +1 -1
- package/dist/lsp/lsp-client.js +2 -1
- package/dist/lsp/lsp-client.js.map +1 -1
- package/dist/lsp/lsp-manager.d.ts.map +1 -1
- package/dist/lsp/lsp-manager.js +10 -2
- package/dist/lsp/lsp-manager.js.map +1 -1
- package/dist/lsp/lsp-servers.d.ts +7 -0
- package/dist/lsp/lsp-servers.d.ts.map +1 -1
- package/dist/lsp/lsp-servers.js +82 -1
- package/dist/lsp/lsp-servers.js.map +1 -1
- package/dist/parser/parser-manager.d.ts.map +1 -1
- package/dist/parser/parser-manager.js +8 -2
- package/dist/parser/parser-manager.js.map +1 -1
- package/dist/register-tool-groups/core/symbols.d.ts.map +1 -1
- package/dist/register-tool-groups/core/symbols.js +71 -6
- package/dist/register-tool-groups/core/symbols.js.map +1 -1
- package/dist/register-tool-groups/meta.d.ts.map +1 -1
- package/dist/register-tool-groups/meta.js +23 -0
- package/dist/register-tool-groups/meta.js.map +1 -1
- package/dist/register-tools/discovery.d.ts +7 -0
- package/dist/register-tools/discovery.d.ts.map +1 -1
- package/dist/register-tools/discovery.js +8 -1
- package/dist/register-tools/discovery.js.map +1 -1
- package/dist/register-tools/runtime.d.ts +1 -1
- package/dist/register-tools/runtime.d.ts.map +1 -1
- package/dist/register-tools/runtime.js +9 -2
- package/dist/register-tools/runtime.js.map +1 -1
- package/dist/register-tools.d.ts +3 -1
- package/dist/register-tools.d.ts.map +1 -1
- package/dist/register-tools.js +7 -2
- package/dist/register-tools.js.map +1 -1
- package/dist/search/bm25-store.d.ts +16 -0
- package/dist/search/bm25-store.d.ts.map +1 -0
- package/dist/search/bm25-store.js +294 -0
- package/dist/search/bm25-store.js.map +1 -0
- package/dist/search/bm25.d.ts +52 -0
- package/dist/search/bm25.d.ts.map +1 -1
- package/dist/search/bm25.js +202 -34
- package/dist/search/bm25.js.map +1 -1
- package/dist/search/embed-gate.d.ts +17 -0
- package/dist/search/embed-gate.d.ts.map +1 -0
- package/dist/search/embed-gate.js +64 -0
- package/dist/search/embed-gate.js.map +1 -0
- package/dist/search/semantic.d.ts.map +1 -1
- package/dist/search/semantic.js +5 -2
- package/dist/search/semantic.js.map +1 -1
- package/dist/server-helpers/cache-report.d.ts +36 -0
- package/dist/server-helpers/cache-report.d.ts.map +1 -0
- package/dist/server-helpers/cache-report.js +26 -0
- package/dist/server-helpers/cache-report.js.map +1 -0
- package/dist/server-helpers/health-vitals.d.ts +45 -0
- package/dist/server-helpers/health-vitals.d.ts.map +1 -0
- package/dist/server-helpers/health-vitals.js +85 -0
- package/dist/server-helpers/health-vitals.js.map +1 -0
- package/dist/server-helpers/request-context.d.ts +34 -4
- package/dist/server-helpers/request-context.d.ts.map +1 -1
- package/dist/server-helpers/request-context.js +4 -0
- package/dist/server-helpers/request-context.js.map +1 -1
- package/dist/server-helpers/response-budget.d.ts +24 -0
- package/dist/server-helpers/response-budget.d.ts.map +1 -0
- package/dist/server-helpers/response-budget.js +29 -0
- package/dist/server-helpers/response-budget.js.map +1 -0
- package/dist/server-helpers/response-hints.d.ts.map +1 -1
- package/dist/server-helpers/response-hints.js +43 -0
- package/dist/server-helpers/response-hints.js.map +1 -1
- package/dist/server-helpers/shown-source.d.ts +59 -0
- package/dist/server-helpers/shown-source.d.ts.map +1 -0
- package/dist/server-helpers/shown-source.js +175 -0
- package/dist/server-helpers/shown-source.js.map +1 -0
- package/dist/server-helpers/stdio-envelope.d.ts +31 -0
- package/dist/server-helpers/stdio-envelope.d.ts.map +1 -0
- package/dist/server-helpers/stdio-envelope.js +67 -0
- package/dist/server-helpers/stdio-envelope.js.map +1 -0
- package/dist/server-helpers.d.ts +7 -0
- package/dist/server-helpers.d.ts.map +1 -1
- package/dist/server-helpers.js +51 -10
- package/dist/server-helpers.js.map +1 -1
- package/dist/server.d.ts +9 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +235 -51
- package/dist/server.js.map +1 -1
- package/dist/storage/_shared.d.ts +26 -1
- package/dist/storage/_shared.d.ts.map +1 -1
- package/dist/storage/_shared.js +74 -3
- package/dist/storage/_shared.js.map +1 -1
- package/dist/storage/index-migration.d.ts.map +1 -1
- package/dist/storage/index-migration.js +6 -2
- package/dist/storage/index-migration.js.map +1 -1
- package/dist/storage/index-store.d.ts +29 -0
- package/dist/storage/index-store.d.ts.map +1 -1
- package/dist/storage/index-store.js +112 -0
- package/dist/storage/index-store.js.map +1 -1
- package/dist/storage/registry.d.ts.map +1 -1
- package/dist/storage/registry.js +13 -1
- package/dist/storage/registry.js.map +1 -1
- package/dist/storage/session-state.d.ts +7 -0
- package/dist/storage/session-state.d.ts.map +1 -1
- package/dist/storage/session-state.js +3 -0
- package/dist/storage/session-state.js.map +1 -1
- package/dist/storage/shared-embedding-cache.d.ts.map +1 -1
- package/dist/storage/shared-embedding-cache.js +153 -2
- package/dist/storage/shared-embedding-cache.js.map +1 -1
- package/dist/storage/sqlite/accessors.d.ts +17 -0
- package/dist/storage/sqlite/accessors.d.ts.map +1 -1
- package/dist/storage/sqlite/accessors.js +20 -0
- package/dist/storage/sqlite/accessors.js.map +1 -1
- package/dist/storage/sqlite/connection.d.ts +20 -0
- package/dist/storage/sqlite/connection.d.ts.map +1 -1
- package/dist/storage/sqlite/connection.js +61 -0
- package/dist/storage/sqlite/connection.js.map +1 -1
- package/dist/storage/sqlite/index-io.d.ts +5 -0
- package/dist/storage/sqlite/index-io.d.ts.map +1 -1
- package/dist/storage/sqlite/index-io.js +98 -9
- package/dist/storage/sqlite/index-io.js.map +1 -1
- package/dist/storage/sqlite/meta.d.ts +7 -0
- package/dist/storage/sqlite/meta.d.ts.map +1 -1
- package/dist/storage/sqlite/meta.js.map +1 -1
- package/dist/storage/sqlite/queries.d.ts +66 -0
- package/dist/storage/sqlite/queries.d.ts.map +1 -0
- package/dist/storage/sqlite/queries.js +196 -0
- package/dist/storage/sqlite/queries.js.map +1 -0
- package/dist/storage/sqlite/schema.d.ts +2 -2
- package/dist/storage/sqlite/schema.d.ts.map +1 -1
- package/dist/storage/sqlite/schema.js +36 -0
- package/dist/storage/sqlite/schema.js.map +1 -1
- package/dist/storage/sqlite-index-store.d.ts +3 -1
- package/dist/storage/sqlite-index-store.d.ts.map +1 -1
- package/dist/storage/sqlite-index-store.js +4 -1
- package/dist/storage/sqlite-index-store.js.map +1 -1
- package/dist/storage/telemetry/uploader.js +1 -1
- package/dist/storage/telemetry/uploader.js.map +1 -1
- package/dist/storage/usage-tracker.d.ts +11 -0
- package/dist/storage/usage-tracker.d.ts.map +1 -1
- package/dist/storage/usage-tracker.js +18 -0
- package/dist/storage/usage-tracker.js.map +1 -1
- package/dist/tools/boundary-tools.js +2 -2
- package/dist/tools/boundary-tools.js.map +1 -1
- package/dist/tools/community-tools.d.ts +7 -0
- package/dist/tools/community-tools.d.ts.map +1 -1
- package/dist/tools/community-tools.js +31 -14
- package/dist/tools/community-tools.js.map +1 -1
- package/dist/tools/complexity-tools.d.ts.map +1 -1
- package/dist/tools/complexity-tools.js +65 -45
- package/dist/tools/complexity-tools.js.map +1 -1
- package/dist/tools/conversation-cache.d.ts +23 -3
- package/dist/tools/conversation-cache.d.ts.map +1 -1
- package/dist/tools/conversation-cache.js +141 -4
- package/dist/tools/conversation-cache.js.map +1 -1
- package/dist/tools/conversation-index-tools.d.ts +12 -0
- package/dist/tools/conversation-index-tools.d.ts.map +1 -1
- package/dist/tools/conversation-index-tools.js +316 -5
- package/dist/tools/conversation-index-tools.js.map +1 -1
- package/dist/tools/conversation-search-tools.d.ts +0 -5
- package/dist/tools/conversation-search-tools.d.ts.map +1 -1
- package/dist/tools/conversation-search-tools.js +78 -7
- package/dist/tools/conversation-search-tools.js.map +1 -1
- package/dist/tools/coupling-tools.d.ts +2 -2
- package/dist/tools/coupling-tools.d.ts.map +1 -1
- package/dist/tools/coupling-tools.js +8 -13
- package/dist/tools/coupling-tools.js.map +1 -1
- package/dist/tools/diff-tools.d.ts.map +1 -1
- package/dist/tools/diff-tools.js +8 -14
- package/dist/tools/diff-tools.js.map +1 -1
- package/dist/tools/explore-tools.d.ts +9 -0
- package/dist/tools/explore-tools.d.ts.map +1 -0
- package/dist/tools/explore-tools.js +177 -0
- package/dist/tools/explore-tools.js.map +1 -0
- package/dist/tools/git-exec.d.ts +42 -0
- package/dist/tools/git-exec.d.ts.map +1 -0
- package/dist/tools/git-exec.js +53 -0
- package/dist/tools/git-exec.js.map +1 -0
- package/dist/tools/graph-tools.d.ts +7 -0
- package/dist/tools/graph-tools.d.ts.map +1 -1
- package/dist/tools/graph-tools.js +41 -2
- package/dist/tools/graph-tools.js.map +1 -1
- package/dist/tools/hotspot-tools.d.ts +25 -0
- package/dist/tools/hotspot-tools.d.ts.map +1 -1
- package/dist/tools/hotspot-tools.js +24 -3
- package/dist/tools/hotspot-tools.js.map +1 -1
- package/dist/tools/impact-tools.d.ts.map +1 -1
- package/dist/tools/impact-tools.js +6 -9
- package/dist/tools/impact-tools.js.map +1 -1
- package/dist/tools/index-tools/file-indexer.d.ts +4 -0
- package/dist/tools/index-tools/file-indexer.d.ts.map +1 -1
- package/dist/tools/index-tools/file-indexer.js +155 -16
- package/dist/tools/index-tools/file-indexer.js.map +1 -1
- package/dist/tools/index-tools/folder-indexer.d.ts.map +1 -1
- package/dist/tools/index-tools/folder-indexer.js +5 -5
- package/dist/tools/index-tools/folder-indexer.js.map +1 -1
- package/dist/tools/index-tools/load-gate.d.ts +15 -0
- package/dist/tools/index-tools/load-gate.d.ts.map +1 -0
- package/dist/tools/index-tools/load-gate.js +57 -0
- package/dist/tools/index-tools/load-gate.js.map +1 -0
- package/dist/tools/index-tools/overload-guard.d.ts +16 -0
- package/dist/tools/index-tools/overload-guard.d.ts.map +1 -0
- package/dist/tools/index-tools/overload-guard.js +68 -0
- package/dist/tools/index-tools/overload-guard.js.map +1 -0
- package/dist/tools/index-tools/registry.d.ts +25 -1
- package/dist/tools/index-tools/registry.d.ts.map +1 -1
- package/dist/tools/index-tools/registry.js +149 -8
- package/dist/tools/index-tools/registry.js.map +1 -1
- package/dist/tools/index-tools/state.d.ts +35 -1
- package/dist/tools/index-tools/state.d.ts.map +1 -1
- package/dist/tools/index-tools/state.js +72 -0
- package/dist/tools/index-tools/state.js.map +1 -1
- package/dist/tools/index-tools/watcher.d.ts.map +1 -1
- package/dist/tools/index-tools/watcher.js +13 -5
- package/dist/tools/index-tools/watcher.js.map +1 -1
- package/dist/tools/index-tools/worktree-seed.d.ts +39 -1
- package/dist/tools/index-tools/worktree-seed.d.ts.map +1 -1
- package/dist/tools/index-tools/worktree-seed.js +154 -21
- package/dist/tools/index-tools/worktree-seed.js.map +1 -1
- package/dist/tools/index-tools.d.ts +2 -2
- package/dist/tools/index-tools.d.ts.map +1 -1
- package/dist/tools/index-tools.js +2 -2
- package/dist/tools/index-tools.js.map +1 -1
- package/dist/tools/insights-tools.d.ts.map +1 -1
- package/dist/tools/insights-tools.js +6 -3
- package/dist/tools/insights-tools.js.map +1 -1
- package/dist/tools/journal-generator-helpers.d.ts.map +1 -1
- package/dist/tools/journal-generator-helpers.js +3 -1
- package/dist/tools/journal-generator-helpers.js.map +1 -1
- package/dist/tools/patterns/execution.d.ts.map +1 -1
- package/dist/tools/patterns/execution.js +28 -10
- package/dist/tools/patterns/execution.js.map +1 -1
- package/dist/tools/review-diff/checks/coupling.js +1 -1
- package/dist/tools/review-diff/checks/coupling.js.map +1 -1
- package/dist/tools/secret-detectors.d.ts +10 -1
- package/dist/tools/secret-detectors.d.ts.map +1 -1
- package/dist/tools/secret-detectors.js +16 -2
- package/dist/tools/secret-detectors.js.map +1 -1
- package/dist/tools/secret-file-scanner.d.ts +3 -1
- package/dist/tools/secret-file-scanner.d.ts.map +1 -1
- package/dist/tools/secret-file-scanner.js +4 -2
- package/dist/tools/secret-file-scanner.js.map +1 -1
- package/dist/tools/secret-tools.d.ts.map +1 -1
- package/dist/tools/secret-tools.js +6 -3
- package/dist/tools/secret-tools.js.map +1 -1
- package/dist/tools/status-tools.d.ts +20 -0
- package/dist/tools/status-tools.d.ts.map +1 -1
- package/dist/tools/status-tools.js +46 -0
- package/dist/tools/status-tools.js.map +1 -1
- package/dist/tools/symbol-analysis-tools.d.ts.map +1 -1
- package/dist/tools/symbol-analysis-tools.js +27 -2
- package/dist/tools/symbol-analysis-tools.js.map +1 -1
- package/dist/tools/symbol-reference-tools.js +4 -4
- package/dist/tools/symbol-reference-tools.js.map +1 -1
- package/dist/tools/symbol-tool-internals.d.ts +10 -0
- package/dist/tools/symbol-tool-internals.d.ts.map +1 -1
- package/dist/tools/symbol-tool-internals.js +16 -1
- package/dist/tools/symbol-tool-internals.js.map +1 -1
- package/dist/tools/test-impact-tools.js +1 -1
- package/dist/tools/test-impact-tools.js.map +1 -1
- package/dist/tools/wiki-overview-sources.d.ts.map +1 -1
- package/dist/tools/wiki-overview-sources.js +3 -0
- package/dist/tools/wiki-overview-sources.js.map +1 -1
- package/dist/utils/import-graph/collect.d.ts +2 -3
- package/dist/utils/import-graph/collect.d.ts.map +1 -1
- package/dist/utils/import-graph/collect.js +73 -8
- package/dist/utils/import-graph/collect.js.map +1 -1
- package/dist/utils/import-graph/edge-accumulator.d.ts.map +1 -1
- package/dist/utils/import-graph/edge-accumulator.js +5 -0
- package/dist/utils/import-graph/edge-accumulator.js.map +1 -1
- package/dist/utils/import-graph/edge-cache.d.ts +15 -0
- package/dist/utils/import-graph/edge-cache.d.ts.map +1 -0
- package/dist/utils/import-graph/edge-cache.js +106 -0
- package/dist/utils/import-graph/edge-cache.js.map +1 -0
- package/dist/utils/import-graph/language-imports.d.ts +2 -2
- package/dist/utils/import-graph/language-imports.d.ts.map +1 -1
- package/dist/utils/import-graph/language-imports.js.map +1 -1
- package/dist/utils/import-graph/path-map.d.ts +2 -2
- package/dist/utils/import-graph/path-map.d.ts.map +1 -1
- package/dist/utils/import-graph/path-map.js.map +1 -1
- package/dist/utils/import-graph/python-php-edge-collectors.d.ts +2 -3
- package/dist/utils/import-graph/python-php-edge-collectors.d.ts.map +1 -1
- package/dist/utils/import-graph/python-php-edge-collectors.js.map +1 -1
- package/dist/utils/import-graph/source-edge-collector.d.ts +2 -3
- package/dist/utils/import-graph/source-edge-collector.d.ts.map +1 -1
- package/dist/utils/import-graph/types.d.ts +36 -1
- package/dist/utils/import-graph/types.d.ts.map +1 -1
- package/dist/utils/import-graph/typescript-edge-collector.d.ts +2 -3
- package/dist/utils/import-graph/typescript-edge-collector.d.ts.map +1 -1
- package/dist/utils/import-graph/typescript-edge-collector.js +6 -2
- package/dist/utils/import-graph/typescript-edge-collector.js.map +1 -1
- package/dist/utils/import-graph/workspace-alias.d.ts +2 -2
- package/dist/utils/import-graph/workspace-alias.d.ts.map +1 -1
- package/dist/utils/import-graph/workspace-alias.js.map +1 -1
- package/dist/utils/language-detect.d.ts +2 -4
- package/dist/utils/language-detect.d.ts.map +1 -1
- package/dist/utils/language-detect.js +26 -4
- package/dist/utils/language-detect.js.map +1 -1
- package/dist/utils/ts-imports.d.ts +16 -0
- package/dist/utils/ts-imports.d.ts.map +1 -1
- package/dist/utils/ts-imports.js +65 -3
- package/dist/utils/ts-imports.js.map +1 -1
- package/package.json +3 -3
- package/rules/codesift.md +19 -0
- package/rules/codesift.mdc +19 -0
- package/rules/codex.md +19 -0
- package/rules/gemini.md +19 -0
package/dist/utils/ts-imports.js
CHANGED
|
@@ -18,6 +18,20 @@
|
|
|
18
18
|
* - per-specifier `export { type X, Y } from "y"` → runtime if any runtime export (same rule as imports)
|
|
19
19
|
* - `export * from "y"` → runtime; `export type * from "y"` → type_only:true
|
|
20
20
|
* - `import x = require("y")` → runtime edge to `y` (handled via `import_require_clause`)
|
|
21
|
+
* - `await import("y")` / `import("y").then(…)` → runtime edge (`kind: "dynamic"`)
|
|
22
|
+
* - `typeof import("y")` → type-only: the specifier sits in a type position and never loads
|
|
23
|
+
* - `require("y")` called as a function → runtime edge (`kind: "require"`)
|
|
24
|
+
* - `vi.mock("y")` / `jest.mock("y")` → `kind: "mock"`, which the caller tags on the edge
|
|
25
|
+
*
|
|
26
|
+
* The four above were invisible until 2026-09-06. This AST walker is authoritative for `.ts`/`.tsx`
|
|
27
|
+
* and knew only `import_statement`/`export_statement`; the regex collector that does catch
|
|
28
|
+
* `import()` and `require()` is a FALLBACK and runs only when the parser fails. Measured on
|
|
29
|
+
* tgm-survey-platform: 576 dynamic imports and 1,708 mocks resolved to an indexed file and produced
|
|
30
|
+
* no edge — ~6% of the graph, concentrated in exactly the lazily-loaded modules and the tests
|
|
31
|
+
* `impact_analysis` exists to name.
|
|
32
|
+
*
|
|
33
|
+
* `import(someVariable)` is skipped: the specifier is not knowable statically, and a guess is worse
|
|
34
|
+
* than the gap.
|
|
21
35
|
*
|
|
22
36
|
* Limitation: `import { type X } from "m"` is modeled type-only when all named bindings are
|
|
23
37
|
* `type`-only; with `verbatimModuleSyntax`, TS may still emit a runtime module dependency —
|
|
@@ -130,6 +144,48 @@ function walkExportClause(clause) {
|
|
|
130
144
|
anyRuntimeSpecifier = true;
|
|
131
145
|
return { specifiers, anyRuntimeSpecifier };
|
|
132
146
|
}
|
|
147
|
+
/** Callees whose first string argument the test runner resolves as a module path. */
|
|
148
|
+
const MOCK_CALLEES = new Set([
|
|
149
|
+
"vi.mock", "vi.doMock", "vi.unmock", "vi.doUnmock", "vi.importActual", "vi.importMock",
|
|
150
|
+
"jest.mock", "jest.doMock", "jest.unmock", "jest.requireActual", "jest.requireMock",
|
|
151
|
+
]);
|
|
152
|
+
/** The first argument, when it is a plain string literal; otherwise undefined. */
|
|
153
|
+
function stringArgument(call) {
|
|
154
|
+
const first = call.childForFieldName("arguments")?.namedChildren[0];
|
|
155
|
+
if (!first || first.type !== "string")
|
|
156
|
+
return undefined;
|
|
157
|
+
return first.text.replace(/^['"`]|['"`]$/g, "");
|
|
158
|
+
}
|
|
159
|
+
/** Record a `call_expression` that names a module: `import()`, `require()`, or a runner mock. */
|
|
160
|
+
function collectCallEdge(node, edges) {
|
|
161
|
+
const fn = node.childForFieldName("function");
|
|
162
|
+
if (!fn)
|
|
163
|
+
return;
|
|
164
|
+
if (fn.type === "import") {
|
|
165
|
+
const path = stringArgument(node);
|
|
166
|
+
// `typeof import("y")` is a type query — the module is named, never loaded.
|
|
167
|
+
if (path) {
|
|
168
|
+
edges.push({
|
|
169
|
+
path,
|
|
170
|
+
kind: "dynamic",
|
|
171
|
+
is_type_only: node.parent?.type === "type_query",
|
|
172
|
+
specifiers: [],
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
if (fn.type === "identifier" && fn.text === "require") {
|
|
178
|
+
const path = stringArgument(node);
|
|
179
|
+
if (path)
|
|
180
|
+
edges.push({ path, kind: "require", is_type_only: false, specifiers: [] });
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
if (fn.type === "member_expression" && MOCK_CALLEES.has(fn.text)) {
|
|
184
|
+
const path = stringArgument(node);
|
|
185
|
+
if (path)
|
|
186
|
+
edges.push({ path, kind: "mock", is_type_only: false, specifiers: [] });
|
|
187
|
+
}
|
|
188
|
+
}
|
|
133
189
|
/** Walk the tree and return all import + re-export edges. */
|
|
134
190
|
export function extractTypeScriptImports(tree) {
|
|
135
191
|
const edges = [];
|
|
@@ -144,6 +200,7 @@ export function extractTypeScriptImports(tree) {
|
|
|
144
200
|
const id = requireClause.namedChildren.find((c) => c.type === "identifier");
|
|
145
201
|
edges.push({
|
|
146
202
|
path,
|
|
203
|
+
kind: "static",
|
|
147
204
|
is_type_only: false,
|
|
148
205
|
specifiers: id ? [id.text] : [],
|
|
149
206
|
});
|
|
@@ -156,14 +213,14 @@ export function extractTypeScriptImports(tree) {
|
|
|
156
213
|
const importClause = node.namedChildren.find((c) => c.type === "import_clause");
|
|
157
214
|
if (!importClause) {
|
|
158
215
|
// side-effect import: `import "x"`
|
|
159
|
-
edges.push({ path, is_type_only: stmtTypeOnly, specifiers: [] });
|
|
216
|
+
edges.push({ path, kind: "static", is_type_only: stmtTypeOnly, specifiers: [] });
|
|
160
217
|
return;
|
|
161
218
|
}
|
|
162
219
|
const { specifiers, anyRuntimeSpecifier } = walkImportClause(importClause);
|
|
163
220
|
// Edge is type_only only when statement-level `type` modifier is present
|
|
164
221
|
// OR when every named specifier is per-specifier-typed (no runtime member).
|
|
165
222
|
const is_type_only = stmtTypeOnly || !anyRuntimeSpecifier;
|
|
166
|
-
edges.push({ path, is_type_only, specifiers });
|
|
223
|
+
edges.push({ path, kind: "static", is_type_only, specifiers });
|
|
167
224
|
return;
|
|
168
225
|
}
|
|
169
226
|
if (node.type === "export_statement") {
|
|
@@ -195,9 +252,14 @@ export function extractTypeScriptImports(tree) {
|
|
|
195
252
|
}
|
|
196
253
|
const is_type_only = stmtTypeOnly ||
|
|
197
254
|
(sawNamedExportClause && !anyRuntimeExportSpecifier);
|
|
198
|
-
edges.push({ path, is_type_only, specifiers });
|
|
255
|
+
edges.push({ path, kind: "static", is_type_only, specifiers });
|
|
199
256
|
return;
|
|
200
257
|
}
|
|
258
|
+
if (node.type === "call_expression") {
|
|
259
|
+
collectCallEdge(node, edges);
|
|
260
|
+
// Deliberately falls through to the recursion below: `import("./a").then(…)` puts the real
|
|
261
|
+
// call inside a `member_expression`, so returning here would drop it.
|
|
262
|
+
}
|
|
201
263
|
// Recurse into children for top-level scan (most imports are at root, but
|
|
202
264
|
// some declarations nest them — e.g., declare module).
|
|
203
265
|
for (const c of node.namedChildren)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-imports.js","sourceRoot":"","sources":["../../src/utils/ts-imports.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ts-imports.js","sourceRoot":"","sources":["../../src/utils/ts-imports.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codesift-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.2",
|
|
4
4
|
"description": "MCP server for code intelligence — 146 tools for symbol search, call graph, semantic search, route tracing, community detection, LSP bridge, secret detection, conversation search, and Hono framework intelligence",
|
|
5
5
|
"license": "BSL-1.1",
|
|
6
6
|
"author": "Greg Laskowski",
|
|
@@ -61,11 +61,11 @@
|
|
|
61
61
|
"@types/node": "^26.1.2",
|
|
62
62
|
"@types/pg": "^8.11.0",
|
|
63
63
|
"@types/picomatch": "^4.0.2",
|
|
64
|
-
"@vitest/coverage-v8": "^4.1.
|
|
64
|
+
"@vitest/coverage-v8": "^4.1.11",
|
|
65
65
|
"ajv": "^8.18.0",
|
|
66
66
|
"tsx": "^4.0.0",
|
|
67
67
|
"typescript": "^7.0.2",
|
|
68
|
-
"vitest": "^4.1.
|
|
68
|
+
"vitest": "^4.1.11"
|
|
69
69
|
},
|
|
70
70
|
"overrides": {
|
|
71
71
|
"lodash-es": ">=4.18.1",
|
package/rules/codesift.md
CHANGED
|
@@ -234,6 +234,25 @@ The server appends hint codes to responses to guide tool usage. Act on them imme
|
|
|
234
234
|
| `H10` | 50+ tool calls this session | Call `get_session_snapshot` to preserve context before compaction |
|
|
235
235
|
| `H19` | Answer comes from a DIFFERENT git working tree than your CWD | Results describe other files — `index_folder(path=<your worktree>)` |
|
|
236
236
|
|
|
237
|
+
## Language coverage — verify with `index_status`, never assume
|
|
238
|
+
|
|
239
|
+
- **Full symbols**: TS/TSX, JS, Python, Go, Rust, **Kotlin** (`.kt`/`.kts`/`.gradle.kts`), PHP.
|
|
240
|
+
Kotlin is NOT a stub — it also has ~10 dedicated tools (Compose, Room, Hilt, Flow, KMP, Kotest).
|
|
241
|
+
Generic extractor: Java, Ruby, CSS. Custom/regex: Astro, Prisma, Markdown, SQL.
|
|
242
|
+
- **`text_stub` = no symbols**: swift, dart, scala, clojure, elixir, lua, zig, nim, `.gradle`, sbt,
|
|
243
|
+
html, config. Those files ARE indexed — `search_text`, `get_file_tree`, `scan_secrets` work on
|
|
244
|
+
them; only `search_symbols` and the graph tools do not.
|
|
245
|
+
|
|
246
|
+
## A stale index means reindex — never "skip CodeSift"
|
|
247
|
+
|
|
248
|
+
`commit.matches=false` / `files_changed=N` from `index_status` is an instruction to run
|
|
249
|
+
`index_folder(path=<root>)` ONCE, not evidence that the server is unusable. Falling back to
|
|
250
|
+
`grep`/`find` pays more on every later question and gives up the call graph, references and
|
|
251
|
+
complexity entirely. Same answer in a linked worktree: index it, do not fall back.
|
|
252
|
+
|
|
253
|
+
`analyze_complexity` is regex over symbol source in EVERY language — a ranking signal, not a
|
|
254
|
+
quality gate, and not a per-language caveat.
|
|
255
|
+
|
|
237
256
|
## ALWAYS
|
|
238
257
|
|
|
239
258
|
- Use `semantic_search` or `codebase_retrieval(type:"semantic")` for conceptual questions
|
package/rules/codesift.mdc
CHANGED
|
@@ -217,6 +217,25 @@ The server appends hint codes to responses to guide tool usage. Act on them imme
|
|
|
217
217
|
| `H10` | 50+ tool calls this session | Call `get_session_snapshot` to preserve context before compaction |
|
|
218
218
|
| `H19` | Answer comes from a DIFFERENT git working tree than your CWD | Results describe other files — `index_folder(path=<your worktree>)` |
|
|
219
219
|
|
|
220
|
+
## Language coverage — verify with `index_status`, never assume
|
|
221
|
+
|
|
222
|
+
- **Full symbols**: TS/TSX, JS, Python, Go, Rust, **Kotlin** (`.kt`/`.kts`/`.gradle.kts`), PHP.
|
|
223
|
+
Kotlin is NOT a stub — it also has ~10 dedicated tools (Compose, Room, Hilt, Flow, KMP, Kotest).
|
|
224
|
+
Generic extractor: Java, Ruby, CSS. Custom/regex: Astro, Prisma, Markdown, SQL.
|
|
225
|
+
- **`text_stub` = no symbols**: swift, dart, scala, clojure, elixir, lua, zig, nim, `.gradle`, sbt,
|
|
226
|
+
html, config. Those files ARE indexed — `search_text`, `get_file_tree`, `scan_secrets` work on
|
|
227
|
+
them; only `search_symbols` and the graph tools do not.
|
|
228
|
+
|
|
229
|
+
## A stale index means reindex — never "skip CodeSift"
|
|
230
|
+
|
|
231
|
+
`commit.matches=false` / `files_changed=N` from `index_status` is an instruction to run
|
|
232
|
+
`index_folder(path=<root>)` ONCE, not evidence that the server is unusable. Falling back to
|
|
233
|
+
`grep`/`find` pays more on every later question and gives up the call graph, references and
|
|
234
|
+
complexity entirely. Same answer in a linked worktree: index it, do not fall back.
|
|
235
|
+
|
|
236
|
+
`analyze_complexity` is regex over symbol source in EVERY language — a ranking signal, not a
|
|
237
|
+
quality gate, and not a per-language caveat.
|
|
238
|
+
|
|
220
239
|
## ALWAYS
|
|
221
240
|
|
|
222
241
|
- Use `semantic_search` or `codebase_retrieval(type:"semantic")` for conceptual questions
|
package/rules/codex.md
CHANGED
|
@@ -212,6 +212,25 @@ The server appends hint codes to responses to guide tool usage. Act on them imme
|
|
|
212
212
|
| `H10` | 50+ tool calls this session | Call `get_session_snapshot` to preserve context before compaction |
|
|
213
213
|
| `H19` | Answer comes from a DIFFERENT git working tree than your CWD | Results describe other files — `index_folder(path=<your worktree>)` |
|
|
214
214
|
|
|
215
|
+
## Language coverage — verify with `index_status`, never assume
|
|
216
|
+
|
|
217
|
+
- **Full symbols**: TS/TSX, JS, Python, Go, Rust, **Kotlin** (`.kt`/`.kts`/`.gradle.kts`), PHP.
|
|
218
|
+
Kotlin is NOT a stub — it also has ~10 dedicated tools (Compose, Room, Hilt, Flow, KMP, Kotest).
|
|
219
|
+
Generic extractor: Java, Ruby, CSS. Custom/regex: Astro, Prisma, Markdown, SQL.
|
|
220
|
+
- **`text_stub` = no symbols**: swift, dart, scala, clojure, elixir, lua, zig, nim, `.gradle`, sbt,
|
|
221
|
+
html, config. Those files ARE indexed — `search_text`, `get_file_tree`, `scan_secrets` work on
|
|
222
|
+
them; only `search_symbols` and the graph tools do not.
|
|
223
|
+
|
|
224
|
+
## A stale index means reindex — never "skip CodeSift"
|
|
225
|
+
|
|
226
|
+
`commit.matches=false` / `files_changed=N` from `index_status` is an instruction to run
|
|
227
|
+
`index_folder(path=<root>)` ONCE, not evidence that the server is unusable. Falling back to
|
|
228
|
+
`grep`/`find` pays more on every later question and gives up the call graph, references and
|
|
229
|
+
complexity entirely. Same answer in a linked worktree: index it, do not fall back.
|
|
230
|
+
|
|
231
|
+
`analyze_complexity` is regex over symbol source in EVERY language — a ranking signal, not a
|
|
232
|
+
quality gate, and not a per-language caveat.
|
|
233
|
+
|
|
215
234
|
## ALWAYS
|
|
216
235
|
|
|
217
236
|
- Use `semantic_search` or `codebase_retrieval(type:"semantic")` for conceptual questions
|
package/rules/gemini.md
CHANGED
|
@@ -213,6 +213,25 @@ The server appends hint codes to responses to guide tool usage. Act on them imme
|
|
|
213
213
|
| `H10` | 50+ tool calls this session | Call `get_session_snapshot` to preserve context before compaction |
|
|
214
214
|
| `H19` | Answer comes from a DIFFERENT git working tree than your CWD | Results describe other files — `index_folder(path=<your worktree>)` |
|
|
215
215
|
|
|
216
|
+
## Language coverage — verify with `index_status`, never assume
|
|
217
|
+
|
|
218
|
+
- **Full symbols**: TS/TSX, JS, Python, Go, Rust, **Kotlin** (`.kt`/`.kts`/`.gradle.kts`), PHP.
|
|
219
|
+
Kotlin is NOT a stub — it also has ~10 dedicated tools (Compose, Room, Hilt, Flow, KMP, Kotest).
|
|
220
|
+
Generic extractor: Java, Ruby, CSS. Custom/regex: Astro, Prisma, Markdown, SQL.
|
|
221
|
+
- **`text_stub` = no symbols**: swift, dart, scala, clojure, elixir, lua, zig, nim, `.gradle`, sbt,
|
|
222
|
+
html, config. Those files ARE indexed — `search_text`, `get_file_tree`, `scan_secrets` work on
|
|
223
|
+
them; only `search_symbols` and the graph tools do not.
|
|
224
|
+
|
|
225
|
+
## A stale index means reindex — never "skip CodeSift"
|
|
226
|
+
|
|
227
|
+
`commit.matches=false` / `files_changed=N` from `index_status` is an instruction to run
|
|
228
|
+
`index_folder(path=<root>)` ONCE, not evidence that the server is unusable. Falling back to
|
|
229
|
+
`grep`/`find` pays more on every later question and gives up the call graph, references and
|
|
230
|
+
complexity entirely. Same answer in a linked worktree: index it, do not fall back.
|
|
231
|
+
|
|
232
|
+
`analyze_complexity` is regex over symbol source in EVERY language — a ranking signal, not a
|
|
233
|
+
quality gate, and not a per-language caveat.
|
|
234
|
+
|
|
216
235
|
## ALWAYS
|
|
217
236
|
|
|
218
237
|
- Use `semantic_search` or `codebase_retrieval(type:"semantic")` for conceptual questions
|