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/server.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { McpServer } from "@modelcontextprotocol/server";
|
|
3
|
-
import { StdioServerTransport } from "@modelcontextprotocol/server/stdio";
|
|
3
|
+
import { StdioServerTransport, serveStdio } from "@modelcontextprotocol/server/stdio";
|
|
4
4
|
import { millisSinceLastActivity, releaseCachedIndexes } from "./tools/index-tools/state.js";
|
|
5
5
|
import { loadConfig } from "./config.js";
|
|
6
6
|
import { registerTools, enableFrameworkToolBundle, frontLoadHiddenToolsForFrozenHost, shouldFrontLoadHiddenTools, } from "./register-tools.js";
|
|
@@ -13,11 +13,15 @@ import { setupHooksForPlatform } from "./cli/setup.js";
|
|
|
13
13
|
import { detectPlatform, detectPlatformFromClientInfo } from "./cli/platform.js";
|
|
14
14
|
import { createRequire } from "node:module";
|
|
15
15
|
import { timingSafeEqual } from "node:crypto";
|
|
16
|
-
import { resolve as pathResolve } from "node:path";
|
|
16
|
+
import { resolve as pathResolve, isAbsolute, join } from "node:path";
|
|
17
|
+
import { homedir } from "node:os";
|
|
17
18
|
import { statSync } from "node:fs";
|
|
19
|
+
import { readVitals, classifyVitals, startVitals } from "./server-helpers/health-vitals.js";
|
|
18
20
|
import { fileURLToPath } from "node:url";
|
|
19
21
|
import { isLoopbackHost } from "./utils/loopback.js";
|
|
20
22
|
import { runWithRequestContext } from "./server-helpers/request-context.js";
|
|
23
|
+
import { envelopeClientName, observeInbound } from "./server-helpers/stdio-envelope.js";
|
|
24
|
+
import { enableShownSourceLedger } from "./server-helpers/shown-source.js";
|
|
21
25
|
// Re-export for test compatibility
|
|
22
26
|
export { buildResponseHint, resetSessionState } from "./server-helpers.js";
|
|
23
27
|
export { resetSession } from "./storage/session-state.js";
|
|
@@ -149,8 +153,65 @@ function codeReplacedUnderUs() {
|
|
|
149
153
|
* nothing. Not a security boundary (the daemon is loopback-only and already
|
|
150
154
|
* serves every indexed repo to any local caller) but it keeps a typo from
|
|
151
155
|
* silently resolving every repo to garbage.
|
|
156
|
+
*
|
|
157
|
+
* Two shapes come from VS Code-derived clients writing `?cwd=${workspaceFolder}`,
|
|
158
|
+
* which is what lets ONE GLOBAL entry serve every project on a client that has no
|
|
159
|
+
* per-project MCP config. Both were measured against Cursor 1.0 (probe, 2026-08-27):
|
|
160
|
+
*
|
|
161
|
+
* - `~/DEV/thing` — Cursor expands the variable to a TILDE path, not an absolute
|
|
162
|
+
* one. `pathResolve` expands `~` against the process cwd, which for a
|
|
163
|
+
* launchd-started daemon is `/`, producing `/~/DEV/thing`; that fails `statSync`
|
|
164
|
+
* and the directory silently vanished. Expanding it here is what makes the
|
|
165
|
+
* single-entry configuration work at all.
|
|
166
|
+
* - `${workspaceFolder}` verbatim — a window with NO folder open leaves the
|
|
167
|
+
* placeholder unexpanded. It must not become a directory name.
|
|
168
|
+
*
|
|
169
|
+
* A rejected value is announced once. The whole reason this cost a full
|
|
170
|
+
* investigation is that an unusable cwd degraded into "no cwd" without a word,
|
|
171
|
+
* and the symptom surfaced far away as `Repository "local/" not found`.
|
|
152
172
|
*/
|
|
153
|
-
|
|
173
|
+
const warnedCwdValues = new Set();
|
|
174
|
+
const MAX_WARNED_CWD_VALUES = 32;
|
|
175
|
+
function warnUnusableCwd(value, why) {
|
|
176
|
+
// Bounded: the value comes from a URL, so an unbounded set is a memory leak a
|
|
177
|
+
// client could drive. Past the cap we stay quiet rather than grow.
|
|
178
|
+
if (warnedCwdValues.has(value) || warnedCwdValues.size >= MAX_WARNED_CWD_VALUES)
|
|
179
|
+
return;
|
|
180
|
+
warnedCwdValues.add(value);
|
|
181
|
+
console.error(`[codesift] ignoring ?cwd=${value} — ${why}. Repo auto-resolution will fail for this ` +
|
|
182
|
+
`client; pass an absolute path, or an explicit repo argument.`);
|
|
183
|
+
}
|
|
184
|
+
/** Expand a leading `~`. `~user` is left alone — it cannot be resolved reliably. */
|
|
185
|
+
function expandTilde(value) {
|
|
186
|
+
if (value === "~")
|
|
187
|
+
return homedir();
|
|
188
|
+
if (value.startsWith("~/"))
|
|
189
|
+
return join(homedir(), value.slice(2));
|
|
190
|
+
return value;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Which client this connection belongs to, from `?client=` in the URL.
|
|
194
|
+
*
|
|
195
|
+
* Written by `codesift setup <platform> --http`. It travels in the URL for the same reason `cwd`
|
|
196
|
+
* does: stateless serving has no session, and the `initialized` notification arrives on an instance
|
|
197
|
+
* that never handled `initialize`, so its clientInfo is empty — measured, not assumed.
|
|
198
|
+
*/
|
|
199
|
+
export function clientFromUrl(rawUrl) {
|
|
200
|
+
const q = rawUrl.indexOf("?");
|
|
201
|
+
if (q < 0)
|
|
202
|
+
return undefined;
|
|
203
|
+
try {
|
|
204
|
+
const value = new URLSearchParams(rawUrl.slice(q + 1)).get("client");
|
|
205
|
+
// Bounded and alphanumeric: this selects a code path, so it is not a place for free text.
|
|
206
|
+
if (!value || !/^[a-z][a-z0-9-]{0,31}$/i.test(value))
|
|
207
|
+
return undefined;
|
|
208
|
+
return value.toLowerCase();
|
|
209
|
+
}
|
|
210
|
+
catch {
|
|
211
|
+
return undefined;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
export function cwdFromUrl(rawUrl) {
|
|
154
215
|
const q = rawUrl.indexOf("?");
|
|
155
216
|
if (q < 0)
|
|
156
217
|
return undefined;
|
|
@@ -163,11 +224,27 @@ function cwdFromUrl(rawUrl) {
|
|
|
163
224
|
}
|
|
164
225
|
if (!value)
|
|
165
226
|
return undefined;
|
|
227
|
+
// An unexpanded client-side placeholder, not a path.
|
|
228
|
+
if (value.includes("${")) {
|
|
229
|
+
warnUnusableCwd(value, "the client did not expand this variable (window with no folder open?)");
|
|
230
|
+
return undefined;
|
|
231
|
+
}
|
|
232
|
+
const expanded = expandTilde(value);
|
|
233
|
+
if (!isAbsolute(expanded)) {
|
|
234
|
+
// Resolving a relative path against the daemon's cwd (`/` under launchd) is
|
|
235
|
+
// meaningless and would silently name the wrong directory.
|
|
236
|
+
warnUnusableCwd(value, "not an absolute path");
|
|
237
|
+
return undefined;
|
|
238
|
+
}
|
|
166
239
|
try {
|
|
167
|
-
const resolved = pathResolve(
|
|
168
|
-
|
|
240
|
+
const resolved = pathResolve(expanded);
|
|
241
|
+
if (statSync(resolved).isDirectory())
|
|
242
|
+
return resolved;
|
|
243
|
+
warnUnusableCwd(value, "not a directory");
|
|
244
|
+
return undefined;
|
|
169
245
|
}
|
|
170
246
|
catch {
|
|
247
|
+
warnUnusableCwd(value, "no such directory");
|
|
171
248
|
return undefined;
|
|
172
249
|
}
|
|
173
250
|
}
|
|
@@ -267,7 +344,37 @@ export async function startHttpServer(opts = {}) {
|
|
|
267
344
|
* makes more than one process — or a remote host — possible at all without a
|
|
268
345
|
* shared session store.
|
|
269
346
|
*/
|
|
270
|
-
const
|
|
347
|
+
const envPlatformForHttp = detectPlatform();
|
|
348
|
+
/** Set by the HTTP handler just before delegating, read by the server factory. */
|
|
349
|
+
let clientForNextServer;
|
|
350
|
+
/**
|
|
351
|
+
* One daemon, clients that want different lists.
|
|
352
|
+
*
|
|
353
|
+
* Codex freezes its tool list at session start, so a tool not offered up front is unreachable for
|
|
354
|
+
* the whole session — measured 2026-08-29, a Codex client on the daemon saw 90 tools where the
|
|
355
|
+
* same build over stdio gives it 181, and `find_dead_code` did not exist as far as it was
|
|
356
|
+
* concerned. Claude Code is the opposite: it refreshes on demand and STOPS USING CodeSift when
|
|
357
|
+
* handed everything (3e1ec6c, adoption down >90%).
|
|
358
|
+
*
|
|
359
|
+
* So the decision is made per REQUEST, from `?client=`, and the front-load is deliberately not
|
|
360
|
+
* remembered at process scope — otherwise one Codex session would hand every Claude Code session
|
|
361
|
+
* the full list too.
|
|
362
|
+
*/
|
|
363
|
+
const handler = createMcpHandler(() => {
|
|
364
|
+
const s = createCodesiftServer();
|
|
365
|
+
// NOT from the async context: the handler builds this server outside the request's
|
|
366
|
+
// AsyncLocalStorage scope — measured, `currentClient()` is undefined here even when the URL
|
|
367
|
+
// carried one. The value is stashed by the HTTP handler immediately before it delegates, on the
|
|
368
|
+
// same tick, which is the only moment both are in scope.
|
|
369
|
+
const client = clientForNextServer;
|
|
370
|
+
const platform = envPlatformForHttp !== "unknown"
|
|
371
|
+
? envPlatformForHttp
|
|
372
|
+
: detectPlatformFromClientInfo(client ?? "");
|
|
373
|
+
if (client && shouldFrontLoadHiddenTools(platform)) {
|
|
374
|
+
frontLoadHiddenToolsForFrozenHost({ remember: false });
|
|
375
|
+
}
|
|
376
|
+
return s;
|
|
377
|
+
}, { legacy: "stateless" });
|
|
271
378
|
const nodeHandler = toNodeHandler(handler);
|
|
272
379
|
let inFlight = 0;
|
|
273
380
|
const httpServer = http.createServer((req, res) => {
|
|
@@ -279,6 +386,16 @@ export async function startHttpServer(opts = {}) {
|
|
|
279
386
|
// code, and this state means "every tool call from here will fail" — reporting it inside
|
|
280
387
|
// a 200 body is how the previous version managed to look healthy while serving nothing.
|
|
281
388
|
const stale = codeReplacedUnderUs();
|
|
389
|
+
// Who holds the heap, not just how much of it. `?caches=0` opts out for a probe that only
|
|
390
|
+
// wants liveness; the report walks the cached indexes to price them, which is cheap but not
|
|
391
|
+
// free on a process holding several hundred thousand symbols.
|
|
392
|
+
const { readCacheReport } = await import("./server-helpers/cache-report.js");
|
|
393
|
+
// A parsed query parameter, not a substring match: `?notcaches=0` and `?x=caches=0y` both
|
|
394
|
+
// satisfied `includes` and silently turned the report off. Harmless here — it gates an
|
|
395
|
+
// optional diagnostic on a loopback endpoint — but a flag that can be set by accident is a
|
|
396
|
+
// flag nobody can reason about. Raised as a NIT by the CQ audit of this release.
|
|
397
|
+
const wantsCaches = new URL(url, "http://127.0.0.1").searchParams.get("caches") !== "0";
|
|
398
|
+
const caches = wantsCaches ? await readCacheReport() : undefined;
|
|
282
399
|
res.writeHead(stale ? 503 : 200, { "content-type": "application/json" });
|
|
283
400
|
res.end(JSON.stringify(stale
|
|
284
401
|
? {
|
|
@@ -288,7 +405,21 @@ export async function startHttpServer(opts = {}) {
|
|
|
288
405
|
reason: "the files this daemon started from were replaced (rebuild); lazily imported modules will fail until it restarts",
|
|
289
406
|
remedy: "launchctl kickstart -k gui/$(id -u)/com.codesift.daemon",
|
|
290
407
|
}
|
|
291
|
-
:
|
|
408
|
+
: (() => {
|
|
409
|
+
// Liveness was never the question — the daemon was alive through all three
|
|
410
|
+
// incidents. `busy` keeps the 200 on purpose: slow is not down, and a session
|
|
411
|
+
// told "down" stops using tools it could still have used.
|
|
412
|
+
const vitals = readVitals();
|
|
413
|
+
const { status, reasons } = classifyVitals(vitals);
|
|
414
|
+
return {
|
|
415
|
+
status,
|
|
416
|
+
sessions: inFlight,
|
|
417
|
+
version: PKG_VERSION,
|
|
418
|
+
vitals,
|
|
419
|
+
...(caches ? { caches } : {}),
|
|
420
|
+
...(reasons.length > 0 ? { reasons } : {}),
|
|
421
|
+
};
|
|
422
|
+
})()));
|
|
292
423
|
return;
|
|
293
424
|
}
|
|
294
425
|
if (token) {
|
|
@@ -302,6 +433,9 @@ export async function startHttpServer(opts = {}) {
|
|
|
302
433
|
// The caller's directory, pinned per request. Statelessness makes this
|
|
303
434
|
// the natural carrier: there is no session to have learned it once.
|
|
304
435
|
const cwd = cwdFromUrl(url);
|
|
436
|
+
// Stashed for the server factory, which runs outside this request's async context —
|
|
437
|
+
// measured: currentClient() is undefined there even when the URL carried one.
|
|
438
|
+
clientForNextServer = clientFromUrl(url);
|
|
305
439
|
inFlight++;
|
|
306
440
|
try {
|
|
307
441
|
await (cwd
|
|
@@ -325,6 +459,7 @@ export async function startHttpServer(opts = {}) {
|
|
|
325
459
|
}
|
|
326
460
|
})();
|
|
327
461
|
});
|
|
462
|
+
startVitals();
|
|
328
463
|
await new Promise((resolve) => httpServer.listen(opts.port ?? 0, host, resolve));
|
|
329
464
|
const addr = httpServer.address();
|
|
330
465
|
const port = typeof addr === "object" && addr ? addr.port : (opts.port ?? 0);
|
|
@@ -365,42 +500,16 @@ async function autoEnableFrameworkToolsFromPackageJson(cwd) {
|
|
|
365
500
|
// Non-fatal — this is a startup optimization
|
|
366
501
|
}
|
|
367
502
|
}
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
console.error("[codesift] auto-index failed:", err);
|
|
379
|
-
});
|
|
380
|
-
autoDiscoverConversations(process.cwd()).catch((err) => {
|
|
381
|
-
console.error("[codesift] conversation auto-discovery failed:", err);
|
|
382
|
-
});
|
|
383
|
-
return;
|
|
384
|
-
}
|
|
385
|
-
// stdio only: stdin EOF/close is the canonical "parent died" signal. Attached
|
|
386
|
-
// here (not globally) so the HTTP daemon path is unaffected.
|
|
387
|
-
process.stdin.on("end", () => shutdownOnParentGone("stdin end"));
|
|
388
|
-
process.stdin.on("close", () => shutdownOnParentGone("stdin close"));
|
|
389
|
-
startIdleCacheRelease();
|
|
390
|
-
const transport = new StdioServerTransport();
|
|
391
|
-
// Diagnostic transport hooks. Primary fix for "-32000: Connection closed" is
|
|
392
|
-
// event-loop yielding inside heavy tools (perf-tools, hotspot-tools, project-tools);
|
|
393
|
-
// these handlers leave a stderr trace if any residual transport drop occurs.
|
|
394
|
-
transport.onclose = () => {
|
|
395
|
-
console.error(`[codesift] transport closed at uptime=${Date.now() - startTs}ms`);
|
|
396
|
-
// The client disconnected — do NOT keep running as an orphan. Background
|
|
397
|
-
// timers (watcher/auto-index) would otherwise hold the event loop open and
|
|
398
|
-
// the process would linger under launchd forever. See shutdownOnParentGone.
|
|
399
|
-
shutdownOnParentGone("transport close");
|
|
400
|
-
};
|
|
401
|
-
transport.onerror = (err) => {
|
|
402
|
-
console.error(`[codesift] transport error at uptime=${Date.now() - startTs}ms:`, err.message);
|
|
403
|
-
};
|
|
503
|
+
/**
|
|
504
|
+
* Per-connection client handling for stdio: hook auto-install and the frozen-list front-load.
|
|
505
|
+
*
|
|
506
|
+
* `onClientIdentified` runs once, as soon as the client has named itself — in the `initialized`
|
|
507
|
+
* notification on a 2025-era connection, or on the first enveloped message of a 2026-07-28 one
|
|
508
|
+
* (which has no handshake; see stdio-envelope.ts). Either way it lands before the host's first
|
|
509
|
+
* tools/list is answered, which is the only window where enabling a tool still reaches a host
|
|
510
|
+
* that freezes its list.
|
|
511
|
+
*/
|
|
512
|
+
function createStdioClientHooks() {
|
|
404
513
|
const envPlatform = detectPlatform();
|
|
405
514
|
let hooksInstalledFor = null;
|
|
406
515
|
const installHooks = (platform, reason) => {
|
|
@@ -411,14 +520,15 @@ async function main() {
|
|
|
411
520
|
console.error(`[codesift] hook auto-install failed (${reason}:${platform}):`, err);
|
|
412
521
|
});
|
|
413
522
|
};
|
|
414
|
-
|
|
415
|
-
|
|
523
|
+
let clientIdentified = false;
|
|
524
|
+
const onClientIdentified = (clientName) => {
|
|
525
|
+
if (clientIdentified)
|
|
526
|
+
return;
|
|
527
|
+
clientIdentified = true;
|
|
416
528
|
const clientPlatform = detectPlatformFromClientInfo(clientName);
|
|
417
529
|
const platform = envPlatform !== "unknown" ? envPlatform : clientPlatform;
|
|
418
530
|
// Front-load reveal-dependent tools for hosts that freeze their tool list
|
|
419
|
-
// at session start.
|
|
420
|
-
// the client's first tools/list, which is the only window where enabling a
|
|
421
|
-
// tool still reaches that host. See FROZEN_LIST_FALLBACK_TOOL_NAMES.
|
|
531
|
+
// at session start. See FROZEN_LIST_FALLBACK_TOOL_NAMES.
|
|
422
532
|
if (shouldFrontLoadHiddenTools(platform)) {
|
|
423
533
|
const enabled = frontLoadHiddenToolsForFrozenHost();
|
|
424
534
|
if (enabled.length > 0) {
|
|
@@ -430,7 +540,81 @@ async function main() {
|
|
|
430
540
|
return;
|
|
431
541
|
installHooks(clientPlatform === "unknown" ? "claude" : clientPlatform, clientName || "fallback");
|
|
432
542
|
};
|
|
433
|
-
|
|
543
|
+
return { envPlatform, installHooks, onClientIdentified };
|
|
544
|
+
}
|
|
545
|
+
/**
|
|
546
|
+
* Serve MCP over stdio through `serveStdio`, not `server.connect`: it owns the era decision. A bare
|
|
547
|
+
* connect() serves only the 2025-era handshake — a 2026-07-28 client's `server/discover` came back
|
|
548
|
+
* `Method not found`, so the client never received the server instructions either.
|
|
549
|
+
*
|
|
550
|
+
* The factory may run twice (a modern probe instance discarded in favour of a legacy one); the
|
|
551
|
+
* first call reuses the module-level server so the common path is unchanged, later calls build a
|
|
552
|
+
* fresh one. Front-loaded tools are remembered at process scope, so a fresh instance picks them up
|
|
553
|
+
* in registerTools.
|
|
554
|
+
*/
|
|
555
|
+
function startStdioTransport(startTs, onClientIdentified) {
|
|
556
|
+
const wire = observeInbound(new StdioServerTransport(), (message) => {
|
|
557
|
+
const name = envelopeClientName(message);
|
|
558
|
+
if (name !== undefined)
|
|
559
|
+
onClientIdentified(name);
|
|
560
|
+
}, () => {
|
|
561
|
+
console.error(`[codesift] transport closed at uptime=${Date.now() - startTs}ms`);
|
|
562
|
+
// The client disconnected — do NOT keep running as an orphan. Background
|
|
563
|
+
// timers (watcher/auto-index) would otherwise hold the event loop open and
|
|
564
|
+
// the process would linger under launchd forever. See shutdownOnParentGone.
|
|
565
|
+
shutdownOnParentGone("transport close");
|
|
566
|
+
}, {
|
|
567
|
+
// serveStdio swallows a failed transport start and returns no promise to await, so without
|
|
568
|
+
// this the process would log "started" and serve nothing. `await server.connect()` used to
|
|
569
|
+
// reach main()'s fatal-exit path; this restores that contract.
|
|
570
|
+
onStartFailed: (err) => {
|
|
571
|
+
console.error("Fatal error starting CodeSift MCP server:", err);
|
|
572
|
+
process.exit(1);
|
|
573
|
+
},
|
|
574
|
+
});
|
|
575
|
+
let usedModuleServer = false;
|
|
576
|
+
serveStdio(() => {
|
|
577
|
+
const instance = usedModuleServer ? createCodesiftServer() : server;
|
|
578
|
+
usedModuleServer = true;
|
|
579
|
+
instance.server.oninitialized = () => {
|
|
580
|
+
onClientIdentified(instance.server.getClientVersion()?.name ?? "");
|
|
581
|
+
};
|
|
582
|
+
return instance;
|
|
583
|
+
}, {
|
|
584
|
+
transport: wire,
|
|
585
|
+
// Diagnostic trace. Primary fix for "-32000: Connection closed" is event-loop yielding inside
|
|
586
|
+
// heavy tools; this leaves a stderr line if any residual transport fault occurs.
|
|
587
|
+
onerror: (err) => {
|
|
588
|
+
console.error(`[codesift] transport error at uptime=${Date.now() - startTs}ms:`, err.message);
|
|
589
|
+
},
|
|
590
|
+
});
|
|
591
|
+
}
|
|
592
|
+
async function main() {
|
|
593
|
+
const startTs = Date.now();
|
|
594
|
+
// Shared HTTP daemon mode: one process serves all editor windows, embeddings
|
|
595
|
+
// load once. `codesift serve` (Task 7) sets CODESIFT_TRANSPORT=http.
|
|
596
|
+
if (process.env["CODESIFT_TRANSPORT"] === "http") {
|
|
597
|
+
const port = Number(process.env["CODESIFT_HTTP_PORT"]) || 7077;
|
|
598
|
+
const handle = await startHttpServer({ port });
|
|
599
|
+
console.error(`CodeSift MCP HTTP server on ${handle.url}`);
|
|
600
|
+
autoEnableFrameworkToolsFromPackageJson(process.cwd()).catch(() => { });
|
|
601
|
+
autoIndexCurrentRepo(process.cwd()).catch((err) => {
|
|
602
|
+
console.error("[codesift] auto-index failed:", err);
|
|
603
|
+
});
|
|
604
|
+
autoDiscoverConversations(process.cwd()).catch((err) => {
|
|
605
|
+
console.error("[codesift] conversation auto-discovery failed:", err);
|
|
606
|
+
});
|
|
607
|
+
return;
|
|
608
|
+
}
|
|
609
|
+
// stdio only: stdin EOF/close is the canonical "parent died" signal. Attached
|
|
610
|
+
// here (not globally) so the HTTP daemon path is unaffected.
|
|
611
|
+
process.stdin.on("end", () => shutdownOnParentGone("stdin end"));
|
|
612
|
+
process.stdin.on("close", () => shutdownOnParentGone("stdin close"));
|
|
613
|
+
startIdleCacheRelease();
|
|
614
|
+
// Over stdio the process is one conversation, so "already shown" means shown to THIS agent.
|
|
615
|
+
enableShownSourceLedger();
|
|
616
|
+
const client = createStdioClientHooks();
|
|
617
|
+
startStdioTransport(startTs, client.onClientIdentified);
|
|
434
618
|
console.error("CodeSift MCP server started");
|
|
435
619
|
// Telemetry: one-time consent notice (stderr) + background flush timer.
|
|
436
620
|
// No-op when telemetry is off or no endpoint is configured (safe default).
|
|
@@ -447,8 +631,8 @@ async function main() {
|
|
|
447
631
|
console.error("[codesift] conversation auto-discovery failed:", err);
|
|
448
632
|
});
|
|
449
633
|
// Auto-install hooks for the detected platform (idempotent)
|
|
450
|
-
if (envPlatform !== "unknown") {
|
|
451
|
-
installHooks(envPlatform, "env");
|
|
634
|
+
if (client.envPlatform !== "unknown") {
|
|
635
|
+
client.installHooks(client.envPlatform, "env");
|
|
452
636
|
}
|
|
453
637
|
}
|
|
454
638
|
// Auto-run only when executed as the entrypoint (`node dist/server.js`), not when
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,31 @@
|
|
|
13
13
|
* never fail the write it is protecting.
|
|
14
14
|
*/
|
|
15
15
|
export declare function cleanupOrphanTempFiles(targetPath: string, minAgeMs?: number): Promise<number>;
|
|
16
|
+
/**
|
|
17
|
+
* How long a live pid in a temp name is trusted as an in-flight write.
|
|
18
|
+
*
|
|
19
|
+
* PIDS RECYCLE. macOS wraps them at 99,999 and this machine churns agent processes fast enough to
|
|
20
|
+
* get there in days, after which an unrelated live process pins a dead writer's temp file forever —
|
|
21
|
+
* the leak this function exists to close, reintroduced through its own safety guard. Past this
|
|
22
|
+
* window a matching pid is far more likely a reused number than a write still in flight: the largest
|
|
23
|
+
* artifact on this install is 1.7 GB, and nothing legitimate is still flushing after a day.
|
|
24
|
+
*/
|
|
25
|
+
export declare const PID_TRUST_WINDOW_MS: number;
|
|
26
|
+
/**
|
|
27
|
+
* True when a `.generation.<pid>.<uuid>` or `.tmp.<pid>` name belongs to a process that still exists.
|
|
28
|
+
*
|
|
29
|
+
* `kill(pid, 0)` sends no signal; it only asks whether the id is addressable. EPERM means the
|
|
30
|
+
* process exists and belongs to someone else — still alive, so still hands off. Anything else, and
|
|
31
|
+
* any name without a parsable pid, is treated as dead: this runs beside an age guard, and the cost
|
|
32
|
+
* of being wrong in that direction is one orphan surviving another hour.
|
|
33
|
+
*
|
|
34
|
+
* The `.tmp.<pid>` arm is what makes it SAFE to sweep on behalf of the stream writers
|
|
35
|
+
* (`bm25-store`, `edge-cache`). Their temp file is the only shape here whose write can outlive the
|
|
36
|
+
* age guard: the largest bm25 artifact on this machine is 1.7 GB, and a daemon whose event loop is
|
|
37
|
+
* seconds late takes far longer than an hour to flush it. Without this, adding a sweep to those
|
|
38
|
+
* writers would turn a slow save into a deleted one.
|
|
39
|
+
*/
|
|
40
|
+
export declare function writerPidIsAlive(entry: string): boolean;
|
|
16
41
|
/**
|
|
17
42
|
* Write content to a file atomically using a write-rename strategy.
|
|
18
43
|
* 1. Ensures the parent directory exists (mkdir -p).
|
|
@@ -44,7 +69,7 @@ export declare function atomicWriteBuffer(targetPath: string, buf: Buffer): Prom
|
|
|
44
69
|
* sqlitePathFor, …) rather than written out independently, and asserted against them in
|
|
45
70
|
* tests, so adding an artifact kind without teaching prune about it fails the build.
|
|
46
71
|
*/
|
|
47
|
-
export declare const ARTIFACT_SUFFIXES: readonly ["index.json", "index.db", "index.db-wal", "index.db-shm", "embeddings.ndjson", "embeddings.meta.json", "chunks.ndjson", "chunk-embeddings.ndjson", "bm25.json", "graph.json", "snapshot.json"];
|
|
72
|
+
export declare const ARTIFACT_SUFFIXES: readonly ["index.json", "index.db", "index.db-wal", "index.db-shm", "embeddings.ndjson", "embeddings.meta.json", "chunks.ndjson", "chunk-embeddings.ndjson", "bm25.json", "bm25.ndjson", "import-edges.ndjson", "graph.json", "snapshot.json"];
|
|
48
73
|
/**
|
|
49
74
|
* Matches `<hash>.<known artifact suffix>`, with an optional `.tmp.<ts>` tail so the
|
|
50
75
|
* abandoned halves of an interrupted atomic write are reclaimed too. Capture group 1 is the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/storage/_shared.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,QAAQ,SAAiB,GACxB,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/storage/_shared.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,QAAQ,SAAiB,GACxB,OAAO,CAAC,MAAM,CAAC,CAmCjB;AAYD;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,QAAsB,CAAC;AAEvD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAWvD;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,YAC5B,YAAY,EACZ,UAAU,EACV,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,yBAAyB,EACzB,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,eAAe,CACP,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAQxC"}
|
package/dist/storage/_shared.js
CHANGED
|
@@ -16,18 +16,36 @@ import { basename, dirname, join } from "node:path";
|
|
|
16
16
|
*/
|
|
17
17
|
export async function cleanupOrphanTempFiles(targetPath, minAgeMs = 60 * 60 * 1000) {
|
|
18
18
|
const dir = dirname(targetPath);
|
|
19
|
-
const
|
|
19
|
+
const base = basename(targetPath);
|
|
20
|
+
// TWO shapes, not one. `atomicWriteFile` writes `<target>.tmp.<ts>`; `chunk-store` writes
|
|
21
|
+
// `<target>.generation.<pid>.<uuid>`. Only the first was ever swept, so the second accumulated
|
|
22
|
+
// untouched — measured 2026-09-05: 164 files, 19.6 GB, across 26 process ids of which 24 were
|
|
23
|
+
// long dead. They are invisible to `prune` too until the pattern above learns the tail.
|
|
24
|
+
const prefixes = [`${base}.tmp.`, `${base}.generation.`];
|
|
20
25
|
let removed = 0;
|
|
21
26
|
try {
|
|
22
27
|
const cutoff = Date.now() - minAgeMs;
|
|
23
28
|
for (const entry of await readdir(dir)) {
|
|
24
|
-
if (!entry.startsWith(prefix))
|
|
29
|
+
if (!prefixes.some((prefix) => entry.startsWith(prefix)))
|
|
25
30
|
continue;
|
|
31
|
+
// A generation file whose WRITER IS STILL RUNNING is an in-flight write, not an orphan. The
|
|
32
|
+
// age guard alone would eventually delete one: a large embedding batch can outlive the hour,
|
|
33
|
+
// and deleting it mid-write turns a slow save into a corrupt one.
|
|
34
|
+
//
|
|
35
|
+
// PIDS RECYCLE, so that protection has to expire. macOS wraps them at 99,999 and this machine
|
|
36
|
+
// churns agent processes fast enough to get there in days — after which an unrelated live
|
|
37
|
+
// process can pin a dead writer's temp file forever, which is the leak this function exists to
|
|
38
|
+
// close. Past `PID_TRUST_WINDOW_MS` a name that still matches something running is far more
|
|
39
|
+
// likely a reused number than a write that has been in flight for a day. The largest artifact
|
|
40
|
+
// on this install is 1.7 GB; nothing legitimate is still flushing after 24 hours.
|
|
26
41
|
const full = join(dir, entry);
|
|
27
42
|
try {
|
|
28
43
|
const info = await stat(full);
|
|
29
44
|
if (info.mtimeMs > cutoff)
|
|
30
45
|
continue;
|
|
46
|
+
const age = Date.now() - info.mtimeMs;
|
|
47
|
+
if (age < PID_TRUST_WINDOW_MS && writerPidIsAlive(entry))
|
|
48
|
+
continue;
|
|
31
49
|
await unlink(full);
|
|
32
50
|
removed++;
|
|
33
51
|
}
|
|
@@ -37,6 +55,54 @@ export async function cleanupOrphanTempFiles(targetPath, minAgeMs = 60 * 60 * 10
|
|
|
37
55
|
catch { /* unreadable dir — nothing to clean */ }
|
|
38
56
|
return removed;
|
|
39
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Largest number in a temp name that can plausibly be a process id.
|
|
60
|
+
*
|
|
61
|
+
* `.tmp.<n>` is ambiguous: `bm25-store` and `edge-cache` put a PID there, `embedding-store` puts
|
|
62
|
+
* `Date.now()`. A timestamp read as a pid would be asked about — harmlessly, since `kill` answers
|
|
63
|
+
* ESRCH for it — but bounding the range says which shape is meant instead of relying on that
|
|
64
|
+
* accident. macOS caps pids at 99,999 and Linux's `pid_max` ceiling is 2^22.
|
|
65
|
+
*/
|
|
66
|
+
const MAX_PLAUSIBLE_PID = 4 * 1024 * 1024;
|
|
67
|
+
/**
|
|
68
|
+
* How long a live pid in a temp name is trusted as an in-flight write.
|
|
69
|
+
*
|
|
70
|
+
* PIDS RECYCLE. macOS wraps them at 99,999 and this machine churns agent processes fast enough to
|
|
71
|
+
* get there in days, after which an unrelated live process pins a dead writer's temp file forever —
|
|
72
|
+
* the leak this function exists to close, reintroduced through its own safety guard. Past this
|
|
73
|
+
* window a matching pid is far more likely a reused number than a write still in flight: the largest
|
|
74
|
+
* artifact on this install is 1.7 GB, and nothing legitimate is still flushing after a day.
|
|
75
|
+
*/
|
|
76
|
+
export const PID_TRUST_WINDOW_MS = 24 * 60 * 60 * 1000;
|
|
77
|
+
/**
|
|
78
|
+
* True when a `.generation.<pid>.<uuid>` or `.tmp.<pid>` name belongs to a process that still exists.
|
|
79
|
+
*
|
|
80
|
+
* `kill(pid, 0)` sends no signal; it only asks whether the id is addressable. EPERM means the
|
|
81
|
+
* process exists and belongs to someone else — still alive, so still hands off. Anything else, and
|
|
82
|
+
* any name without a parsable pid, is treated as dead: this runs beside an age guard, and the cost
|
|
83
|
+
* of being wrong in that direction is one orphan surviving another hour.
|
|
84
|
+
*
|
|
85
|
+
* The `.tmp.<pid>` arm is what makes it SAFE to sweep on behalf of the stream writers
|
|
86
|
+
* (`bm25-store`, `edge-cache`). Their temp file is the only shape here whose write can outlive the
|
|
87
|
+
* age guard: the largest bm25 artifact on this machine is 1.7 GB, and a daemon whose event loop is
|
|
88
|
+
* seconds late takes far longer than an hour to flush it. Without this, adding a sweep to those
|
|
89
|
+
* writers would turn a slow save into a deleted one.
|
|
90
|
+
*/
|
|
91
|
+
export function writerPidIsAlive(entry) {
|
|
92
|
+
const match = /\.(?:generation|tmp)\.(\d+)(?:\.|$)/.exec(entry);
|
|
93
|
+
if (!match)
|
|
94
|
+
return false;
|
|
95
|
+
const pid = Number(match[1]);
|
|
96
|
+
if (!Number.isInteger(pid) || pid <= 0 || pid > MAX_PLAUSIBLE_PID)
|
|
97
|
+
return false;
|
|
98
|
+
try {
|
|
99
|
+
process.kill(pid, 0);
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
return err.code === "EPERM";
|
|
104
|
+
}
|
|
105
|
+
}
|
|
40
106
|
/**
|
|
41
107
|
* Write content to a file atomically using a write-rename strategy.
|
|
42
108
|
* 1. Ensures the parent directory exists (mkdir -p).
|
|
@@ -111,6 +177,8 @@ export const ARTIFACT_SUFFIXES = [
|
|
|
111
177
|
"chunks.ndjson",
|
|
112
178
|
"chunk-embeddings.ndjson",
|
|
113
179
|
"bm25.json",
|
|
180
|
+
"bm25.ndjson",
|
|
181
|
+
"import-edges.ndjson",
|
|
114
182
|
"graph.json",
|
|
115
183
|
"snapshot.json",
|
|
116
184
|
];
|
|
@@ -121,6 +189,9 @@ export const ARTIFACT_SUFFIXES = [
|
|
|
121
189
|
*/
|
|
122
190
|
export function artifactPattern() {
|
|
123
191
|
const suffixes = ARTIFACT_SUFFIXES.map((s) => s.replace(/[.\\+*?[^\]$(){}=!<>|:#-]/g, "\\$&"));
|
|
124
|
-
|
|
192
|
+
// The abandoned-write tails are BOTH shapes. `.tmp.<ts>` comes from `atomicWriteFile`;
|
|
193
|
+
// `.generation.<pid>.<uuid>` comes from `chunk-store`, and prune could not see it — measured
|
|
194
|
+
// 2026-09-05, 164 such files holding 19.6 GB that neither cleanup path could reach.
|
|
195
|
+
return new RegExp(`^([0-9a-f]{8,})\\.(?:${suffixes.join("|")})(?:\\.tmp\\..*|\\.generation\\..*)?$`);
|
|
125
196
|
}
|
|
126
197
|
//# sourceMappingURL=_shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../src/storage/_shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAkB,EAClB,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAEzB,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,MAAM,
|
|
1
|
+
{"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../src/storage/_shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-migration.d.ts","sourceRoot":"","sources":["../../src/storage/index-migration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;AAU7C,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,YAAY,CAAC,CAGjE;AAgBD,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAMhE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,KAAK,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AAK1E;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,iBAAiB,GACjC,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index-migration.d.ts","sourceRoot":"","sources":["../../src/storage/index-migration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;AAU7C,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,YAAY,CAAC,CAGjE;AAgBD,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAMhE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,KAAK,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AAK1E;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,iBAAiB,GACjC,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD"}
|