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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner-only-file.js","sourceRoot":"","sources":["../../src/cli/owner-only-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"owner-only-file.js","sourceRoot":"","sources":["../../src/cli/owner-only-file.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/service.d.ts
CHANGED
|
@@ -89,6 +89,38 @@ export declare function buildServicePlan(opts: {
|
|
|
89
89
|
* killing the process alone just makes launchd start it again, which is the
|
|
90
90
|
* whole point.
|
|
91
91
|
*/
|
|
92
|
+
/**
|
|
93
|
+
* Heap ceiling for the daemon, in MB.
|
|
94
|
+
*
|
|
95
|
+
* The daemon ran with V8's DEFAULT limit, which is derived from the machine but
|
|
96
|
+
* tops out around 4 GB — on a 128 GB box it was 4288 MB. That is not enough for
|
|
97
|
+
* what this process actually is: one long-lived server for every project on the
|
|
98
|
+
* machine, materialising whole indexes (a 240k-symbol index is ~349 MB resident)
|
|
99
|
+
* and holding two RAM-scaled caches on top. It reached 4.69 GB and died with
|
|
100
|
+
* `FatalProcessOutOfMemory`, launchd restarted it, and it did it again — 14 node
|
|
101
|
+
* crash reports in 24 h on 2026-08-28.
|
|
102
|
+
*
|
|
103
|
+
* The crash loop is the damaging part, not the single crash: an OOM discards ALL
|
|
104
|
+
* in-flight work, so a mass re-index (29 repos rebuilding hash snapshots) never
|
|
105
|
+
* reaches the end, and the next process starts the same work over. Raising the
|
|
106
|
+
* ceiling is what lets that pass finish once.
|
|
107
|
+
*
|
|
108
|
+
* Scaled, not fixed, and CAPPED: a ceiling is also the only thing standing
|
|
109
|
+
* between a genuine leak and the whole machine, so it stays well below total RAM.
|
|
110
|
+
* The cap was 8192 for one afternoon and that was too conservative — a 128 GB
|
|
111
|
+
* workstation running dozens of agents got the same ceiling as a 64 GB one, while
|
|
112
|
+
* the crash it had to prevent happened at 4.7 GB. RAM/8 with a 24 GB cap gives
|
|
113
|
+
* this machine 16 GB: comfortably past the observed peak, still an eighth of the
|
|
114
|
+
* box, and still a bound rather than a blank cheque.
|
|
115
|
+
* `CODESIFT_DAEMON_HEAP_MB` overrides for a machine that needs something else.
|
|
116
|
+
*
|
|
117
|
+
* NOTE this is a ceiling, not a diagnosis. It does not prove the growth is
|
|
118
|
+
* legitimate; it buys the room the observed workload needs and turns a crash loop
|
|
119
|
+
* into a slow pass. If the daemon starts reaching THIS limit too, the answer is
|
|
120
|
+
* the ADR-004 stage-2 work (query the DB instead of materialising indexes), not a
|
|
121
|
+
* bigger number here.
|
|
122
|
+
*/
|
|
123
|
+
export declare function resolveDaemonHeapMb(totalRamBytes: number, env?: NodeJS.ProcessEnv): number;
|
|
92
124
|
export declare function buildLaunchAgentPlist(plan: ServicePlan): string;
|
|
93
125
|
/**
|
|
94
126
|
* One `Environment=` assignment, quoted so the VALUE cannot become unit syntax.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/cli/service.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,aAAa,wBAAwB,CAAC;AACnD,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,UAOhC,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,yDAAyD;AACzD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO/C;AAED;;;;;;;GAOG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,8EAA8E;AAC9E,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CACtB,GAAG,WAAW,CAuBd;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/cli/service.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/service.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mkdirSync, readFileSync, existsSync, unlinkSync } from "node:fs";
|
|
2
|
-
import { homedir, platform } from "node:os";
|
|
2
|
+
import { homedir, platform, totalmem } from "node:os";
|
|
3
3
|
import { join, dirname } from "node:path";
|
|
4
4
|
import { isLoopbackHost } from "../utils/loopback.js";
|
|
5
5
|
import { writeOwnerOnlyFileSync } from "./owner-only-file.js";
|
|
@@ -99,8 +99,70 @@ export function buildServicePlan(opts) {
|
|
|
99
99
|
* killing the process alone just makes launchd start it again, which is the
|
|
100
100
|
* whole point.
|
|
101
101
|
*/
|
|
102
|
+
/**
|
|
103
|
+
* Heap ceiling for the daemon, in MB.
|
|
104
|
+
*
|
|
105
|
+
* The daemon ran with V8's DEFAULT limit, which is derived from the machine but
|
|
106
|
+
* tops out around 4 GB — on a 128 GB box it was 4288 MB. That is not enough for
|
|
107
|
+
* what this process actually is: one long-lived server for every project on the
|
|
108
|
+
* machine, materialising whole indexes (a 240k-symbol index is ~349 MB resident)
|
|
109
|
+
* and holding two RAM-scaled caches on top. It reached 4.69 GB and died with
|
|
110
|
+
* `FatalProcessOutOfMemory`, launchd restarted it, and it did it again — 14 node
|
|
111
|
+
* crash reports in 24 h on 2026-08-28.
|
|
112
|
+
*
|
|
113
|
+
* The crash loop is the damaging part, not the single crash: an OOM discards ALL
|
|
114
|
+
* in-flight work, so a mass re-index (29 repos rebuilding hash snapshots) never
|
|
115
|
+
* reaches the end, and the next process starts the same work over. Raising the
|
|
116
|
+
* ceiling is what lets that pass finish once.
|
|
117
|
+
*
|
|
118
|
+
* Scaled, not fixed, and CAPPED: a ceiling is also the only thing standing
|
|
119
|
+
* between a genuine leak and the whole machine, so it stays well below total RAM.
|
|
120
|
+
* The cap was 8192 for one afternoon and that was too conservative — a 128 GB
|
|
121
|
+
* workstation running dozens of agents got the same ceiling as a 64 GB one, while
|
|
122
|
+
* the crash it had to prevent happened at 4.7 GB. RAM/8 with a 24 GB cap gives
|
|
123
|
+
* this machine 16 GB: comfortably past the observed peak, still an eighth of the
|
|
124
|
+
* box, and still a bound rather than a blank cheque.
|
|
125
|
+
* `CODESIFT_DAEMON_HEAP_MB` overrides for a machine that needs something else.
|
|
126
|
+
*
|
|
127
|
+
* NOTE this is a ceiling, not a diagnosis. It does not prove the growth is
|
|
128
|
+
* legitimate; it buys the room the observed workload needs and turns a crash loop
|
|
129
|
+
* into a slow pass. If the daemon starts reaching THIS limit too, the answer is
|
|
130
|
+
* the ADR-004 stage-2 work (query the DB instead of materialising indexes), not a
|
|
131
|
+
* bigger number here.
|
|
132
|
+
*/
|
|
133
|
+
export function resolveDaemonHeapMb(totalRamBytes, env = process.env) {
|
|
134
|
+
const override = Number(env["CODESIFT_DAEMON_HEAP_MB"]);
|
|
135
|
+
if (Number.isFinite(override) && override >= 512)
|
|
136
|
+
return Math.floor(override);
|
|
137
|
+
const ramMb = totalRamBytes / (1024 * 1024);
|
|
138
|
+
return Math.min(24576, Math.max(2048, Math.floor(ramMb / 8)));
|
|
139
|
+
}
|
|
102
140
|
export function buildLaunchAgentPlist(plan) {
|
|
103
|
-
|
|
141
|
+
// Node options must precede the script path, or node treats them as script args
|
|
142
|
+
// and they are silently ignored — the failure mode being an unchanged limit and
|
|
143
|
+
// a plist that looks correct.
|
|
144
|
+
const heapMb = resolveDaemonHeapMb(totalmem());
|
|
145
|
+
const args = [
|
|
146
|
+
`--max-old-space-size=${heapMb}`,
|
|
147
|
+
// Young generation, left at V8's default until 2026-08-28 — which for a large heap is ~16 MB,
|
|
148
|
+
// so scavenges fire constantly. Each one walks every old-generation memory chunk, and this
|
|
149
|
+
// daemon deliberately keeps a LARGE old generation (4 GB of index cache) so repos stay resident.
|
|
150
|
+
// Sampled under load: 35% of main-thread time in Heap::CollectGarbage, 33% of it inside
|
|
151
|
+
// OldGenerationMemoryChunkIterator::next — and each pause stalls the event loop, so /health
|
|
152
|
+
// answered in 2 s, then 3.5 s, then not at all, and clients read that as a dead server.
|
|
153
|
+
//
|
|
154
|
+
// A bigger semi-space means FEWER scavenges (each slightly longer), which is the trade that
|
|
155
|
+
// fits a process whose old generation is large by design. This is the other half of the cache
|
|
156
|
+
// budget increase: without it, that change bought fast reads and paid in GC pauses.
|
|
157
|
+
"--max-semi-space-size=64",
|
|
158
|
+
plan.cliPath, "serve", "--port", String(plan.port), "--host", plan.host,
|
|
159
|
+
];
|
|
160
|
+
// ProcessType is Standard, not Background. Background puts the process in the macOS background
|
|
161
|
+
// band (scheduler priority 4 against 31 for an ordinary process), which is invisible on an idle
|
|
162
|
+
// machine and fatal on a busy one: every agent session blocks on this daemon, and under load
|
|
163
|
+
// 100-160 a priority-4 process barely runs. Sampled 2026-09-24: a freshly restarted daemon sat
|
|
164
|
+
// 6+ minutes at 0% CPU still inside Node's own bootstrap (compiling builtins) — it had not
|
|
165
|
+
// executed a line of CodeSift yet — while every client reported "codesift unavailable".
|
|
104
166
|
const argLines = [plan.execPath, ...args]
|
|
105
167
|
.map((a) => ` <string>${escapeXml(a)}</string>`)
|
|
106
168
|
.join("\n");
|
|
@@ -121,7 +183,7 @@ ${argLines}
|
|
|
121
183
|
<key>ThrottleInterval</key>
|
|
122
184
|
<integer>10</integer>
|
|
123
185
|
<key>ProcessType</key>
|
|
124
|
-
<string>
|
|
186
|
+
<string>Standard</string>
|
|
125
187
|
<key>EnvironmentVariables</key>
|
|
126
188
|
<dict>
|
|
127
189
|
<key>PATH</key>
|
|
@@ -159,7 +221,15 @@ export function systemdEnv(key, value) {
|
|
|
159
221
|
}
|
|
160
222
|
/** Linux systemd *user* unit — same supervision contract as the LaunchAgent. */
|
|
161
223
|
export function buildSystemdUnit(plan) {
|
|
162
|
-
|
|
224
|
+
// Same heap ceiling as the LaunchAgent, and for the same reason — see
|
|
225
|
+
// resolveDaemonHeapMb. A Linux host runs the identical workload, so leaving it
|
|
226
|
+
// on V8's default here would just move the crash loop to the other platform.
|
|
227
|
+
const exec = [
|
|
228
|
+
plan.execPath,
|
|
229
|
+
`--max-old-space-size=${resolveDaemonHeapMb(totalmem())}`,
|
|
230
|
+
"--max-semi-space-size=64",
|
|
231
|
+
plan.cliPath, "serve", "--port", String(plan.port), "--host", plan.host,
|
|
232
|
+
]
|
|
163
233
|
.map((a) => (/[\s"']/.test(a) ? JSON.stringify(a) : a))
|
|
164
234
|
.join(" ");
|
|
165
235
|
return `[Unit]
|
package/dist/cli/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/cli/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/cli/service.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/setup/claude.js
CHANGED
|
@@ -2,7 +2,7 @@ import { existsSync } from "node:fs";
|
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { ensureDir, readJsonFile, writeJsonFile } from "./fs.js";
|
|
5
|
-
import { ensureHookEntry, hasCodesiftHook, loadHooksSection } from "./hooks.js";
|
|
5
|
+
import { ensureHookEntry, hasCodesiftHook, loadHooksSection, saveHooksSection } from "./hooks.js";
|
|
6
6
|
import { setupJsonPlatform } from "./mcp.js";
|
|
7
7
|
const CLAUDE_CONFIG = { configDirName: ".claude", configFileName: "settings.json" };
|
|
8
8
|
const STDIN_HOOK_SUBCOMMANDS = [
|
|
@@ -109,7 +109,7 @@ export async function setupClaudeHooks() {
|
|
|
109
109
|
const configDir = join(homedir(), ".claude");
|
|
110
110
|
const settingsPath = join(configDir, "settings.json");
|
|
111
111
|
await ensureDir(configDir);
|
|
112
|
-
const { root, hooks } = await loadHooksSection(settingsPath);
|
|
112
|
+
const { root, hooks, original } = await loadHooksSection(settingsPath);
|
|
113
113
|
for (const [event, entries] of Object.entries(CLAUDE_HOOKS)) {
|
|
114
114
|
for (const entry of entries) {
|
|
115
115
|
ensureHookEntry(hooks, event, entry);
|
|
@@ -117,7 +117,7 @@ export async function setupClaudeHooks() {
|
|
|
117
117
|
}
|
|
118
118
|
upgradeStdinHookCommands(hooks);
|
|
119
119
|
removeRetiredClaudeHooks(hooks);
|
|
120
|
-
await
|
|
120
|
+
await saveHooksSection(settingsPath, root, original);
|
|
121
121
|
await migrateLegacyClaudeHooks(configDir);
|
|
122
122
|
}
|
|
123
123
|
//# sourceMappingURL=claude.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/cli/setup/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAqC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/cli/setup/claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Give a repository its own Codex config so the daemon knows where the session works.
|
|
3
|
+
*
|
|
4
|
+
* Codex keeps MCP configuration in ONE global file, and an HTTP entry carries exactly one
|
|
5
|
+
* directory — so the global entry is deliberately bare (`/mcp`, no `?cwd=`). Without a
|
|
6
|
+
* per-project file the daemon therefore has no working directory at all and answers
|
|
7
|
+
* "does not know your working directory"; repo auto-resolution, which is the documented
|
|
8
|
+
* default, fails for every tool. Measured 2026-08-29: 31 working trees on this machine,
|
|
9
|
+
* ZERO with a project config, and a Codex session in one of them concluded CodeSift could
|
|
10
|
+
* not see its files.
|
|
11
|
+
*
|
|
12
|
+
* Doing it at registration rather than by hand is the point: a repository that CodeSift has
|
|
13
|
+
* just indexed is exactly a repository a Codex session is about to ask about.
|
|
14
|
+
*/
|
|
15
|
+
export type CodexProjectConfigOutcome = "written" | "already-present" | "upgraded" | "skipped-linked-worktree" | "skipped-codex-not-http" | "skipped-no-codex" | "skipped-disabled" | "failed";
|
|
16
|
+
/**
|
|
17
|
+
* Write `<root>/.codex/config.toml` when — and only when — it is safe and useful.
|
|
18
|
+
*
|
|
19
|
+
* Best effort by design: this runs inside repository registration, and a repository must
|
|
20
|
+
* register whether or not a client's config could be written. Every outcome is a value, not a
|
|
21
|
+
* throw.
|
|
22
|
+
*/
|
|
23
|
+
export declare function ensureCodexProjectConfig(root: string, options?: {
|
|
24
|
+
env?: NodeJS.ProcessEnv;
|
|
25
|
+
home?: string;
|
|
26
|
+
}): Promise<CodexProjectConfigOutcome>;
|
|
27
|
+
//# sourceMappingURL=codex-project-auto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-project-auto.d.ts","sourceRoot":"","sources":["../../../src/cli/setup/codex-project-auto.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,yBAAyB,GACjC,SAAS,GACT,iBAAiB,GACjB,UAAU,GACV,yBAAyB,GACzB,wBAAwB,GACxB,kBAAkB,GAClB,kBAAkB,GAClB,QAAQ,CAAC;AAkCb;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,yBAAyB,CAAC,CA0CpC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { findWorkingTree } from "../../utils/worktree.js";
|
|
6
|
+
import { setupCodex } from "./codex.js";
|
|
7
|
+
/** Opt out with CODESIFT_CODEX_PROJECT_CONFIG=0. */
|
|
8
|
+
function disabled(env) {
|
|
9
|
+
const raw = env["CODESIFT_CODEX_PROJECT_CONFIG"];
|
|
10
|
+
return raw === "0" || raw === "false";
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Is the GLOBAL Codex entry an HTTP one?
|
|
14
|
+
*
|
|
15
|
+
* This gate is not politeness, it is correctness. Codex MERGES a project file into the global
|
|
16
|
+
* one per key, and a project `url` on top of a global `command` produces a hybrid it refuses to
|
|
17
|
+
* load at all: `Error loading config.toml: url is not supported for stdio`. That failure takes
|
|
18
|
+
* down EVERY other MCP server in the file, not just codesift — so writing a project config
|
|
19
|
+
* against a stdio global is far worse than writing nothing.
|
|
20
|
+
*/
|
|
21
|
+
async function globalCodexEntryIsHttp(home) {
|
|
22
|
+
const globalToml = join(home, ".codex", "config.toml");
|
|
23
|
+
if (!existsSync(globalToml))
|
|
24
|
+
return false;
|
|
25
|
+
let content;
|
|
26
|
+
try {
|
|
27
|
+
content = await readFile(globalToml, "utf-8");
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
const marker = content.indexOf("[mcp_servers.codesift]");
|
|
33
|
+
if (marker < 0)
|
|
34
|
+
return false;
|
|
35
|
+
const rest = content.slice(marker + "[mcp_servers.codesift]".length);
|
|
36
|
+
const nextSection = rest.search(/^\s*\[/m);
|
|
37
|
+
const block = nextSection >= 0 ? rest.slice(0, nextSection) : rest;
|
|
38
|
+
return /^\s*url\s*=/m.test(block);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Write `<root>/.codex/config.toml` when — and only when — it is safe and useful.
|
|
42
|
+
*
|
|
43
|
+
* Best effort by design: this runs inside repository registration, and a repository must
|
|
44
|
+
* register whether or not a client's config could be written. Every outcome is a value, not a
|
|
45
|
+
* throw.
|
|
46
|
+
*/
|
|
47
|
+
export async function ensureCodexProjectConfig(root, options) {
|
|
48
|
+
const env = options?.env ?? process.env;
|
|
49
|
+
const home = options?.home ?? homedir();
|
|
50
|
+
if (disabled(env))
|
|
51
|
+
return "skipped-disabled";
|
|
52
|
+
// LINKED WORKTREES ARE DELIBERATELY EXCLUDED. Pointing a worktree at itself makes the daemon
|
|
53
|
+
// index it as a repository of its own, and 27 of those starting at once is what saturated this
|
|
54
|
+
// machine for hours on 2026-08-28. Main checkouts only; a worktree stays on its parent's index
|
|
55
|
+
// until someone opts it in by hand.
|
|
56
|
+
const tree = findWorkingTree(root);
|
|
57
|
+
if (!tree || tree.linked)
|
|
58
|
+
return "skipped-linked-worktree";
|
|
59
|
+
// An existing file is left alone — someone wrote it on purpose — EXCEPT when it predates
|
|
60
|
+
// per-client tool lists. Codex merges the project file into the global one per key, so a project
|
|
61
|
+
// `url` without `client=` OVERRIDES the global one that has it, and this project silently loses
|
|
62
|
+
// the front-loaded surface the global entry was fixed to provide.
|
|
63
|
+
const projectToml = join(root, ".codex", "config.toml");
|
|
64
|
+
if (existsSync(projectToml)) {
|
|
65
|
+
let existing = "";
|
|
66
|
+
try {
|
|
67
|
+
existing = await readFile(projectToml, "utf-8");
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return "already-present";
|
|
71
|
+
}
|
|
72
|
+
if (!/^\s*url\s*=\s*"[^"]*[?&]client=/m.test(existing)) {
|
|
73
|
+
try {
|
|
74
|
+
await setupCodex({ http: true, projectScope: true, cwd: root, hooks: false, rules: false });
|
|
75
|
+
return "upgraded";
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return "failed";
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return "already-present";
|
|
82
|
+
}
|
|
83
|
+
if (!existsSync(join(home, ".codex")))
|
|
84
|
+
return "skipped-no-codex";
|
|
85
|
+
if (!(await globalCodexEntryIsHttp(home)))
|
|
86
|
+
return "skipped-codex-not-http";
|
|
87
|
+
try {
|
|
88
|
+
// `cwd` is BOTH the directory pinned into the URL and the directory the project file is
|
|
89
|
+
// written into — setupCodex derives projectRoot from it. Hooks and rules stay off: this is
|
|
90
|
+
// about one client entry, not about reconfiguring someone's repository.
|
|
91
|
+
await setupCodex({ http: true, projectScope: true, cwd: tree.root, hooks: false, rules: false });
|
|
92
|
+
return "written";
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
return "failed";
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=codex-project-auto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-project-auto.js","sourceRoot":"","sources":["../../../src/cli/setup/codex-project-auto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/cli/setup/codex.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK5D,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,MAAM,GACd;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAUtC;AAED,wBAAgB,yCAAyC,CACvD,OAAO,EAAE,MAAM,GACd;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CA8BvC;
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/cli/setup/codex.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK5D,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,MAAM,GACd;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAUtC;AAED,wBAAgB,yCAAyC,CACvD,OAAO,EAAE,MAAM,GACd;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CA8BvC;AA4LD,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAmE7E;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAerD"}
|
package/dist/cli/setup/codex.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
|
-
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
3
3
|
import { homedir } from "node:os";
|
|
4
4
|
import { join } from "node:path";
|
|
5
|
-
import { ensureDir,
|
|
5
|
+
import { ensureDir, writeSecretFile } from "./fs.js";
|
|
6
6
|
import { daemonHttpUrl, resolveMcpServerEntry, assertTokenTransportIsSafe } from "./mcp.js";
|
|
7
|
-
import { hasCodesiftHook, loadHooksSection } from "./hooks.js";
|
|
7
|
+
import { hasCodesiftHook, loadHooksSection, saveHooksSection } from "./hooks.js";
|
|
8
8
|
export function stripCodesiftToolApprovalOverrides(content) {
|
|
9
9
|
const expression = /\[mcp_servers\.codesift\.tools\.[^\]]+\][\t ]*\r?\napproval_mode[\t ]*=[\t ]*"[^"]*"[\t ]*\r?\n?/g;
|
|
10
10
|
const matches = content.match(expression);
|
|
@@ -75,7 +75,10 @@ function getCodexServerEntryLines(options) {
|
|
|
75
75
|
if (options?.http) {
|
|
76
76
|
// Same guard as the JSON path: a token on a plaintext non-loopback URL is refused.
|
|
77
77
|
assertTokenTransportIsSafe(options);
|
|
78
|
-
|
|
78
|
+
// `client=codex` is what lets the daemon front-load for THIS client without changing the list
|
|
79
|
+
// every other client sees — Codex freezes its tool list at session start, so a tool not offered
|
|
80
|
+
// up front is unreachable for the whole session.
|
|
81
|
+
const lines = ["url = " + jsonString(daemonHttpUrl(options.port, options.cwd, options.host, options.scheme, options.client ?? "codex"))];
|
|
79
82
|
if (options.token) {
|
|
80
83
|
lines.push("[mcp_servers.codesift.http_headers]");
|
|
81
84
|
lines.push("Authorization = " + jsonString(`Bearer ${options.token}`));
|
|
@@ -124,8 +127,14 @@ function normalizeCodesiftTomlServerEntry(content, options) {
|
|
|
124
127
|
const hasNpxCommand = /^command[\t ]*=[\t ]*"[^"]*npx"/m.test(block);
|
|
125
128
|
const argsCarryPackage = /^args[\t ]*=.*codesift-mcp/m.test(block);
|
|
126
129
|
const hasLegacyNpx = hasNpxCommand && !argsCarryPackage;
|
|
130
|
+
// An HTTP entry written before per-client tool lists existed carries no `client=`, and without it
|
|
131
|
+
// the daemon cannot tell a frozen-list host from any other — Codex silently gets the small core
|
|
132
|
+
// list and its reveal-dependent tools are unreachable for the whole session. Equivalence used to
|
|
133
|
+
// be "is it HTTP at all", so `setup --http` reported `already configured` and left every existing
|
|
134
|
+
// install on the broken shape, `--force` included.
|
|
135
|
+
const httpMissingClient = hasHttp && !/^url[\t ]*=[\t ]*"[^"]*[?&]client=/m.test(block);
|
|
127
136
|
const shouldRewrite = desiredHttp !== hasHttp ||
|
|
128
|
-
(desiredHttp ? hasStdio : hasHttp || hasLegacyNpx || hasDistServer);
|
|
137
|
+
(desiredHttp ? hasStdio || httpMissingClient : hasHttp || hasLegacyNpx || hasDistServer);
|
|
129
138
|
if (!shouldRewrite)
|
|
130
139
|
return { content, changed: false };
|
|
131
140
|
const withoutEntry = block.replace(/^(command|args|url)[\t ]*=.*(?:\r?\n)?/gm, "");
|
|
@@ -142,17 +151,103 @@ function normalizeCodesiftTomlServerEntry(content, options) {
|
|
|
142
151
|
changed: true,
|
|
143
152
|
};
|
|
144
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Remove `[mcp_servers.codesift.env]` when the entry is HTTP.
|
|
156
|
+
*
|
|
157
|
+
* Env vars configure a process this client no longer spawns — under HTTP the daemon carries its
|
|
158
|
+
* own environment. Codex does not ignore the leftover, it refuses the whole file:
|
|
159
|
+
*
|
|
160
|
+
* Error loading config.toml: env is not supported for streamable_http
|
|
161
|
+
*
|
|
162
|
+
* Verified against codex-cli 0.144.6. Leaving it behind means `setup --http` writes a config the
|
|
163
|
+
* client cannot load at all, which is worse than not converting: every MCP server in the file goes
|
|
164
|
+
* down with it, not just codesift.
|
|
165
|
+
*/
|
|
166
|
+
function stripCodesiftEnvTable(content) {
|
|
167
|
+
const header = "[mcp_servers.codesift.env]";
|
|
168
|
+
const start = content.indexOf(header);
|
|
169
|
+
if (start === -1)
|
|
170
|
+
return { content, changed: false };
|
|
171
|
+
const after = start + header.length;
|
|
172
|
+
const nextTable = content.slice(after).search(/\n\[[^\]]+\]/);
|
|
173
|
+
const end = nextTable === -1 ? content.length : after + nextTable;
|
|
174
|
+
const before = content.slice(0, start).replace(/\n+$/, "\n");
|
|
175
|
+
return { content: before + content.slice(end).replace(/^\n+/, "\n"), changed: true };
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Keep a project-scoped config out of the repository's history.
|
|
179
|
+
*
|
|
180
|
+
* The file pins an ABSOLUTE path (`?cwd=/Users/someone/DEV/thing`), so committing it hands every
|
|
181
|
+
* other developer a URL pointing at a directory that does not exist on their machine. Left
|
|
182
|
+
* untracked and unignored it also shows up in `git status` forever, which is how it eventually gets
|
|
183
|
+
* committed by accident.
|
|
184
|
+
*
|
|
185
|
+
* Written to `.git/info/exclude`, never to `.gitignore`: the exclusion is a fact about THIS
|
|
186
|
+
* checkout, and editing a tracked file to accommodate a local tool is a change the repo's owners
|
|
187
|
+
* did not ask for. Best-effort — a failure here must not fail the setup.
|
|
188
|
+
*/
|
|
189
|
+
async function excludeProjectConfigLocally(projectRoot) {
|
|
190
|
+
try {
|
|
191
|
+
const excludePath = join(projectRoot, ".git", "info", "exclude");
|
|
192
|
+
if (!existsSync(join(projectRoot, ".git")))
|
|
193
|
+
return false;
|
|
194
|
+
const current = existsSync(excludePath) ? await readFile(excludePath, "utf-8") : "";
|
|
195
|
+
if (/^\.codex\/?$/m.test(current))
|
|
196
|
+
return false;
|
|
197
|
+
await ensureDir(join(projectRoot, ".git", "info"));
|
|
198
|
+
const sep = current.length === 0 || current.endsWith("\n") ? "" : "\n";
|
|
199
|
+
await writeFile(excludePath, `${current}${sep}# codesift: per-project MCP config pins an absolute path\n.codex/\n`);
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
145
206
|
export async function setupCodex(options) {
|
|
146
|
-
|
|
207
|
+
// Codex merges a project's .codex/config.toml INTO the global one rather than replacing it, and
|
|
208
|
+
// the merge is per key. So a project entry carrying `url` lands on a global entry that already
|
|
209
|
+
// carries `command`, and Codex refuses the result outright:
|
|
210
|
+
//
|
|
211
|
+
// Error loading config.toml: url is not supported for stdio in `mcp_servers.codesift`
|
|
212
|
+
//
|
|
213
|
+
// Verified against codex-cli 0.144.6. The consequence is that a project-scoped HTTP entry cannot
|
|
214
|
+
// coexist with a global STDIO one — the global entry has to be HTTP too (a bare daemon URL with
|
|
215
|
+
// no ?cwd=, which each project then overrides with its own).
|
|
216
|
+
const projectScope = options?.projectScope === true;
|
|
217
|
+
const projectRoot = options?.cwd ?? process.cwd();
|
|
218
|
+
const configDir = projectScope ? join(projectRoot, ".codex") : join(homedir(), ".codex");
|
|
147
219
|
const configPath = join(configDir, "config.toml");
|
|
220
|
+
if (projectScope) {
|
|
221
|
+
const globalToml = join(homedir(), ".codex", "config.toml");
|
|
222
|
+
if (existsSync(globalToml)) {
|
|
223
|
+
const g = await readFile(globalToml, "utf-8");
|
|
224
|
+
const block = extractCodesiftTomlBlock(g);
|
|
225
|
+
if (block && /^(command|args)[\t ]*=/m.test(block.block)) {
|
|
226
|
+
throw new Error("The global ~/.codex/config.toml still defines mcp_servers.codesift as stdio "
|
|
227
|
+
+ "(`command = ...`). Codex MERGES the project config into it, so this project's `url` "
|
|
228
|
+
+ "would produce `url is not supported for stdio` and Codex would refuse to start. "
|
|
229
|
+
+ "Convert the global entry first: `codesift setup codex --http` (no --project), which "
|
|
230
|
+
+ "writes a bare daemon URL that each project's config then overrides.");
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
148
234
|
await ensureDir(configDir);
|
|
235
|
+
// Runs on every path, not only on creation: a config written before this existed is exactly the
|
|
236
|
+
// one still sitting unignored in someone's `git status`.
|
|
237
|
+
if (projectScope)
|
|
238
|
+
await excludeProjectConfigLocally(projectRoot);
|
|
149
239
|
if (!existsSync(configPath)) {
|
|
150
240
|
await writeSecretFile(configPath, getCodexTomlBlock(options).trimStart());
|
|
151
241
|
return { platform: "codex", config_path: configPath, status: "created" };
|
|
152
242
|
}
|
|
153
243
|
const original = await readFile(configPath, "utf-8");
|
|
154
244
|
const { content: cleaned, removed } = stripCodesiftToolApprovalOverrides(original);
|
|
155
|
-
|
|
245
|
+
// Strip the env sub-table BEFORE normalising: an HTTP entry that keeps it makes Codex refuse the
|
|
246
|
+
// entire config file, taking every other MCP server down with it.
|
|
247
|
+
const envStripped = options?.http === true
|
|
248
|
+
? stripCodesiftEnvTable(cleaned)
|
|
249
|
+
: { content: cleaned, changed: false };
|
|
250
|
+
const normalizedEntry = normalizeCodesiftTomlServerEntry(envStripped.content, options);
|
|
156
251
|
const normalized = ensureCodesiftDefaultToolsApprovalApprove(normalizedEntry.content);
|
|
157
252
|
const required = ensureCodesiftRequired(normalized.content);
|
|
158
253
|
const content = required.content;
|
|
@@ -160,7 +255,7 @@ export async function setupCodex(options) {
|
|
|
160
255
|
? { note: "removed " + removed + " per-tool approval override" + (removed === 1 ? "" : "s") + " on mcp_servers.codesift" }
|
|
161
256
|
: {};
|
|
162
257
|
if (content.includes("[mcp_servers.codesift]")) {
|
|
163
|
-
if (removed > 0 || normalized.changed || normalizedEntry.changed || required.changed) {
|
|
258
|
+
if (removed > 0 || envStripped.changed || normalized.changed || normalizedEntry.changed || required.changed) {
|
|
164
259
|
await writeSecretFile(configPath, content);
|
|
165
260
|
return { platform: "codex", config_path: configPath, status: "updated", ...noteFields };
|
|
166
261
|
}
|
|
@@ -173,7 +268,7 @@ export async function setupCodexHooks() {
|
|
|
173
268
|
const configDir = process.env["CODEX_HOME"] ?? join(homedir(), ".codex");
|
|
174
269
|
const hooksPath = join(configDir, "hooks.json");
|
|
175
270
|
await ensureDir(configDir);
|
|
176
|
-
const { root, hooks } = await loadHooksSection(hooksPath);
|
|
271
|
+
const { root, hooks, original } = await loadHooksSection(hooksPath);
|
|
177
272
|
for (const event of Object.keys(hooks)) {
|
|
178
273
|
const entries = hooks[event];
|
|
179
274
|
if (!Array.isArray(entries))
|
|
@@ -184,6 +279,6 @@ export async function setupCodexHooks() {
|
|
|
184
279
|
else
|
|
185
280
|
hooks[event] = kept;
|
|
186
281
|
}
|
|
187
|
-
await
|
|
282
|
+
await saveHooksSection(hooksPath, root, original);
|
|
188
283
|
}
|
|
189
284
|
//# sourceMappingURL=codex.js.map
|