codesift-mcp 0.11.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +44 -1
  2. package/dist/cli/commands.d.ts.map +1 -1
  3. package/dist/cli/commands.js +80 -8
  4. package/dist/cli/commands.js.map +1 -1
  5. package/dist/cli/embed-child.js +3 -0
  6. package/dist/cli/embed-child.js.map +1 -1
  7. package/dist/cli/help.d.ts.map +1 -1
  8. package/dist/cli/help.js +25 -2
  9. package/dist/cli/help.js.map +1 -1
  10. package/dist/cli/orphan-guard.d.ts +34 -0
  11. package/dist/cli/orphan-guard.d.ts.map +1 -0
  12. package/dist/cli/orphan-guard.js +52 -0
  13. package/dist/cli/orphan-guard.js.map +1 -0
  14. package/dist/cli/owner-only-file.d.ts +51 -0
  15. package/dist/cli/owner-only-file.d.ts.map +1 -0
  16. package/dist/cli/owner-only-file.js +121 -0
  17. package/dist/cli/owner-only-file.js.map +1 -0
  18. package/dist/cli/service.d.ts +17 -1
  19. package/dist/cli/service.d.ts.map +1 -1
  20. package/dist/cli/service.js +28 -12
  21. package/dist/cli/service.js.map +1 -1
  22. package/dist/cli/setup/codex.d.ts.map +1 -1
  23. package/dist/cli/setup/codex.js +14 -7
  24. package/dist/cli/setup/codex.js.map +1 -1
  25. package/dist/cli/setup/fs.d.ts +12 -0
  26. package/dist/cli/setup/fs.d.ts.map +1 -1
  27. package/dist/cli/setup/fs.js +17 -2
  28. package/dist/cli/setup/fs.js.map +1 -1
  29. package/dist/cli/setup/mcp.d.ts +37 -1
  30. package/dist/cli/setup/mcp.d.ts.map +1 -1
  31. package/dist/cli/setup/mcp.js +78 -3
  32. package/dist/cli/setup/mcp.js.map +1 -1
  33. package/dist/cli/setup/types.d.ts +24 -0
  34. package/dist/cli/setup/types.d.ts.map +1 -1
  35. package/dist/register-tool-groups/handler-wrappers.d.ts.map +1 -1
  36. package/dist/register-tool-groups/handler-wrappers.js +20 -6
  37. package/dist/register-tool-groups/handler-wrappers.js.map +1 -1
  38. package/dist/register-tools/runtime.d.ts +18 -9
  39. package/dist/register-tools/runtime.d.ts.map +1 -1
  40. package/dist/register-tools/runtime.js +54 -20
  41. package/dist/register-tools/runtime.js.map +1 -1
  42. package/dist/register-tools.d.ts +1 -1
  43. package/dist/register-tools.d.ts.map +1 -1
  44. package/dist/register-tools.js +12 -6
  45. package/dist/register-tools.js.map +1 -1
  46. package/dist/server-helpers/repo-resolution.d.ts.map +1 -1
  47. package/dist/server-helpers/repo-resolution.js +22 -1
  48. package/dist/server-helpers/repo-resolution.js.map +1 -1
  49. package/dist/server-helpers/request-context.d.ts +59 -0
  50. package/dist/server-helpers/request-context.d.ts.map +1 -0
  51. package/dist/server-helpers/request-context.js +31 -0
  52. package/dist/server-helpers/request-context.js.map +1 -0
  53. package/dist/server-helpers/response-hints.d.ts.map +1 -1
  54. package/dist/server-helpers/response-hints.js +2 -1
  55. package/dist/server-helpers/response-hints.js.map +1 -1
  56. package/dist/server.d.ts +1 -11
  57. package/dist/server.d.ts.map +1 -1
  58. package/dist/server.js +124 -76
  59. package/dist/server.js.map +1 -1
  60. package/dist/storage/embedding-store.d.ts +26 -6
  61. package/dist/storage/embedding-store.d.ts.map +1 -1
  62. package/dist/storage/embedding-store.js +85 -4
  63. package/dist/storage/embedding-store.js.map +1 -1
  64. package/dist/storage/index-store.d.ts +31 -0
  65. package/dist/storage/index-store.d.ts.map +1 -1
  66. package/dist/storage/index-store.js +293 -10
  67. package/dist/storage/index-store.js.map +1 -1
  68. package/dist/storage/shared-embedding-cache.d.ts +29 -0
  69. package/dist/storage/shared-embedding-cache.d.ts.map +1 -0
  70. package/dist/storage/shared-embedding-cache.js +120 -0
  71. package/dist/storage/shared-embedding-cache.js.map +1 -0
  72. package/dist/storage/sqlite-index-store.d.ts +89 -0
  73. package/dist/storage/sqlite-index-store.d.ts.map +1 -0
  74. package/dist/storage/sqlite-index-store.js +593 -0
  75. package/dist/storage/sqlite-index-store.js.map +1 -0
  76. package/dist/tools/index-tools/file-indexer.js +19 -19
  77. package/dist/tools/index-tools/file-indexer.js.map +1 -1
  78. package/dist/tools/index-tools/folder-indexer.d.ts.map +1 -1
  79. package/dist/tools/index-tools/folder-indexer.js +29 -1
  80. package/dist/tools/index-tools/folder-indexer.js.map +1 -1
  81. package/dist/tools/index-tools/folder-merge.d.ts.map +1 -1
  82. package/dist/tools/index-tools/folder-merge.js +47 -1
  83. package/dist/tools/index-tools/folder-merge.js.map +1 -1
  84. package/dist/tools/index-tools/parse.d.ts.map +1 -1
  85. package/dist/tools/index-tools/parse.js +10 -3
  86. package/dist/tools/index-tools/parse.js.map +1 -1
  87. package/dist/tools/index-tools/registry.d.ts.map +1 -1
  88. package/dist/tools/index-tools/registry.js +47 -1
  89. package/dist/tools/index-tools/registry.js.map +1 -1
  90. package/dist/tools/index-tools/types.d.ts +7 -0
  91. package/dist/tools/index-tools/types.d.ts.map +1 -1
  92. package/dist/tools/search-tools/ripgrep.d.ts.map +1 -1
  93. package/dist/tools/search-tools/ripgrep.js +32 -2
  94. package/dist/tools/search-tools/ripgrep.js.map +1 -1
  95. package/dist/tools/status-tools.d.ts +10 -0
  96. package/dist/tools/status-tools.d.ts.map +1 -1
  97. package/dist/tools/status-tools.js +57 -16
  98. package/dist/tools/status-tools.js.map +1 -1
  99. package/dist/tools/workspace-scope-helper.d.ts.map +1 -1
  100. package/dist/tools/workspace-scope-helper.js +8 -1
  101. package/dist/tools/workspace-scope-helper.js.map +1 -1
  102. package/dist/tools/workspace-tools.d.ts.map +1 -1
  103. package/dist/tools/workspace-tools.js +9 -1
  104. package/dist/tools/workspace-tools.js.map +1 -1
  105. package/dist/utils/loopback.d.ts +23 -0
  106. package/dist/utils/loopback.d.ts.map +1 -0
  107. package/dist/utils/loopback.js +71 -0
  108. package/dist/utils/loopback.js.map +1 -0
  109. package/dist/utils/walk/filters.d.ts.map +1 -1
  110. package/dist/utils/walk/filters.js +22 -1
  111. package/dist/utils/walk/filters.js.map +1 -1
  112. package/package.json +4 -1
package/README.md CHANGED
@@ -107,7 +107,8 @@ codesift wiki-generate
107
107
  | Feature | Description | Impact |
108
108
  |---------|-------------|--------|
109
109
  | **mtime-based incremental indexing** | Skip files with unchanged mtime on reindex | 5.6x faster reindex (57s → 10s on 778-file repo) |
110
- | **index_file** | Re-index a single file without full repo walk | 9ms (unchanged) / 153ms (changed) vs 3-8s full folder |
110
+ | **index_file** | Re-index a single file without full repo walk | 9ms when the file is unchanged (short-circuit); a changed file costs one row write, not a whole-index rewrite |
111
+ | **SQLite index** | Normalized per-repo DB in WAL mode; incremental writes touch one file's rows ([details](#index-storage)) | 10.8x faster single-file re-index, ~17800x faster warm index load |
111
112
  | **detail_level** on search_symbols | `compact` (~15 tok/result), `standard`, `full` | compact is 63% fewer tokens than standard |
112
113
  | **token_budget** on search_symbols | Pack results to token limit instead of guessing top_k | Precise budget control |
113
114
  | **Centrality bonus** in BM25 | Symbols in frequently-imported files rank higher | Core utilities surface first in search |
@@ -669,6 +670,7 @@ All configuration is via environment variables.
669
670
  | Variable | Description | Default |
670
671
  |----------|-------------|---------|
671
672
  | `CODESIFT_DATA_DIR` | Storage directory for indexes | `~/.codesift` |
673
+ | `CODESIFT_INDEX_BACKEND` | Index storage format: `sqlite` \| `json` (see [Index storage](#index-storage)) | auto-detect (`sqlite` on Node >= 22.5) |
672
674
  | `CODESIFT_WATCH_DEBOUNCE_MS` | File watcher debounce interval | `500` |
673
675
  | `CODESIFT_DEFAULT_TOKEN_BUDGET` | Default token budget for retrieval | `8000` |
674
676
  | `CODESIFT_DEFAULT_TOP_K` | Default max results for search | `50` |
@@ -677,6 +679,47 @@ All configuration is via environment variables.
677
679
  | `CODESIFT_TELEMETRY` | Telemetry level: `off` \| `anon` \| `full` | `anon` (opt-out) |
678
680
  | `CODESIFT_TELEMETRY_URL` | Collector endpoint (push happens only when set) | unset (no push) |
679
681
 
682
+ ## Index storage
683
+
684
+ Each repo's index is a **SQLite database** (`~/.codesift/<hash>.index.db`) with normalized
685
+ `files` and `symbols` tables, using Node's built-in `node:sqlite` in WAL mode. There is no
686
+ native dependency to compile — `npx codesift-mcp` cannot fail on a build step.
687
+
688
+ Why it matters: the index used to be one JSON document per repo, so re-indexing a single
689
+ edited file re-parsed and re-serialised the whole thing (262 MB on our largest repo). The
690
+ `codesift postindex-file` hook runs as a fresh process per edit, so it could never amortise
691
+ that cost.
692
+
693
+ Measured on a 4,000-file / 32,000-symbol index:
694
+
695
+ | operation | how often | JSON | SQLite |
696
+ |---|---|---:|---:|
697
+ | re-index one edited file | every Write/Edit | 534 ms | **49.6 ms** (10.8× faster) |
698
+ | read one file's mtime | first touch of every file | 205.8 ms | **0.08 ms** (~2500× faster) |
699
+ | load index, warm | every tool call after the first | 149.7 ms | **0.008 ms** (~17800× faster) |
700
+ | load index, cold | once per process | 167.8 ms | 517.8 ms (3.1× slower) |
701
+ | full re-save | once per repo, on reindex | 639 ms | 1329 ms (2.1× slower) |
702
+
703
+ The two regressions are deliberate: rebuilding symbol objects from rows costs more than one
704
+ large `JSON.parse`, and both affected operations are rare. Everything frequent gets cheaper.
705
+
706
+ **Migration is automatic.** An existing `<hash>.index.json` is imported on first access. The
707
+ JSON file is **never deleted**, so it stays available as a rollback target.
708
+
709
+ **Backends.** `CODESIFT_INDEX_BACKEND=json` pins the legacy format; `=sqlite` demands the new
710
+ one and fails loudly if unavailable; unset auto-detects. `node:sqlite` requires **Node >=
711
+ 22.5** — on older runtimes CodeSift transparently keeps using JSON, so the supported Node
712
+ floor stays at 20.
713
+
714
+ **Storage faults are not "no index".** A locked, corrupt, or permission-denied store raises a
715
+ distinct error instead of reading as an unindexed repo — otherwise tools answer "no results"
716
+ with full confidence over a database that is merely busy, and the obvious next step (rebuild)
717
+ is the wrong one. `index_status` reports it as `unreadable: {code, message}`; `SQLITE_BUSY` is
718
+ worth a retry, `SQLITE_CORRUPT` needs `index_folder`. A missing, empty, or malformed index is
719
+ still ordinary absence.
720
+
721
+ Design rationale and rejected alternatives: [`docs/adr/ADR-003-index-storage-format.md`](docs/adr/ADR-003-index-storage-format.md).
722
+
680
723
  ## Anonymous usage telemetry
681
724
 
682
725
  CodeSift sends **anonymous, aggregate** usage stats so the tool can be improved based on how it's actually used. It is **opt-out** and sends **only** the fields below — never your queries, file paths, repo/file/symbol names, code, hostname, username, or IP.
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAM7E,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAE5C,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAEtF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQnD;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUpF;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5E,OAAO,CAAC,YAAY,CAAC,CAmCvB;AAqyBD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAmHtD,CAAC"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAM7E,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAE5C,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAEtF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQnD;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUpF;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5E,OAAO,CAAC,YAAY,CAAC,CAmCvB;AA22BD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAmHtD,CAAC"}
@@ -239,17 +239,47 @@ async function handlePrune(_args, flags) {
239
239
  const dataDir = loadConfig().dataDir;
240
240
  const dryRun = getBoolFlag(flags, "dry-run");
241
241
  // Live index hashes from the registry — everything else is orphaned cache.
242
+ //
243
+ // A registry entry counted as live even when its `root` no longer existed, so
244
+ // artifacts for deleted directories were protected indefinitely. Measured
245
+ // here: 101 of 119 indexed worktrees pointed at directories that were gone,
246
+ // holding 5.4 GB of embeddings for code that cannot be read. Task branches are
247
+ // created and deleted constantly, so this accumulates without bound.
248
+ //
249
+ // Entries whose root is missing are de-registered first; their artifacts then
250
+ // fall out as orphans through the sweep below.
242
251
  const live = new Set();
252
+ const stale = [];
253
+ let reg;
243
254
  try {
244
- const reg = JSON.parse(readFileSync(join(dataDir, "registry.json"), "utf-8"));
245
- for (const v of Object.values(reg.repos ?? {})) {
246
- const ip = v.index_path;
247
- if (typeof ip === "string")
248
- live.add(ip.split("/").pop().replace(".index.json", ""));
249
- }
255
+ reg = JSON.parse(readFileSync(join(dataDir, "registry.json"), "utf-8"));
250
256
  }
251
257
  catch {
252
258
  die("prune: cannot read registry.json — aborting so live data is never deleted.");
259
+ return;
260
+ }
261
+ for (const [name, v] of Object.entries(reg.repos ?? {})) {
262
+ const ip = v.index_path;
263
+ const root = v.root;
264
+ // Only a root that is definitively absent counts. An unreadable path (a
265
+ // permissions error, an unmounted volume mid-check) throws and is treated
266
+ // as present — the conservative direction, since the cost of keeping a dead
267
+ // entry is disk, and the cost of dropping a live one is a re-index.
268
+ let rootGone = false;
269
+ if (typeof root === "string" && root.length > 0) {
270
+ try {
271
+ statSync(root);
272
+ }
273
+ catch {
274
+ rootGone = true;
275
+ }
276
+ }
277
+ if (rootGone) {
278
+ stale.push({ name, root: root });
279
+ continue; // deliberately NOT added to `live`
280
+ }
281
+ if (typeof ip === "string")
282
+ live.add(ip.split("/").pop().replace(".index.json", ""));
253
283
  }
254
284
  // Safety: an empty live set would mark every artifact orphaned. Refuse rather
255
285
  // than risk nuking a valid (but momentarily empty-looking) data dir.
@@ -275,7 +305,16 @@ async function handlePrune(_args, flags) {
275
305
  }
276
306
  catch { /* skip unreadable/already-gone */ }
277
307
  }
308
+ // De-register the dead entries. After the sweep, so a failure above leaves the
309
+ // registry untouched rather than half-cleaned.
310
+ if (!dryRun && stale.length > 0) {
311
+ const { removeRepo } = await import("../storage/registry.js");
312
+ for (const s of stale)
313
+ await removeRepo(join(dataDir, "registry.json"), s.name);
314
+ }
278
315
  output({
316
+ stale_repos: stale.length,
317
+ stale_examples: stale.slice(0, 5).map((s) => s.name),
279
318
  pruned: !dryRun,
280
319
  dry_run: dryRun,
281
320
  orphan_files: files,
@@ -702,7 +741,24 @@ async function handleSetup(args, flags) {
702
741
  // per machine) instead of spawning a stdio server per editor window.
703
742
  const http = getBoolFlag(flags, "http") ?? false;
704
743
  const port = getNumFlag(flags, "port");
705
- const options = { hooks, rules, force, gitHooks, http, ...(port !== undefined ? { port } : {}) };
744
+ // A SHARED daemon needs a host and a token; without these `--http` could only
745
+ // ever mean "the daemon on this machine", which defeats the point of having
746
+ // one process serve several.
747
+ const daemonHost = getFlag(flags, "host");
748
+ const daemonToken = getFlag(flags, "token") ?? process.env["CODESIFT_HTTP_TOKEN"];
749
+ // A bearer token on a plaintext link to another machine is refused unless the operator either
750
+ // asks for https or states that the transport is already encrypted (tailnet/VPN/SSH tunnel).
751
+ const rawScheme = getFlag(flags, "scheme");
752
+ const daemonScheme = rawScheme === "https" ? "https" : rawScheme === "http" ? "http" : undefined;
753
+ const insecureTransport = getBoolFlag(flags, "insecure-transport") ?? false;
754
+ const options = {
755
+ hooks, rules, force, gitHooks, http,
756
+ ...(port !== undefined ? { port } : {}),
757
+ ...(daemonHost ? { host: daemonHost } : {}),
758
+ ...(daemonToken ? { token: daemonToken } : {}),
759
+ ...(daemonScheme ? { scheme: daemonScheme } : {}),
760
+ ...(insecureTransport ? { insecureTransport } : {}),
761
+ };
706
762
  /** Global post-commit backlog hook — wired here because `formatSetupLines` stays editor-setup only (see setup/setupAll for programmatic installs). */
707
763
  async function emitGlobalGitHooksIfRequested() {
708
764
  if (options.gitHooks === false)
@@ -763,7 +819,23 @@ async function handleService(args, flags) {
763
819
  if (sub === "install") {
764
820
  const port = getNumFlag(flags, "port") ?? DEFAULT_SERVICE_PORT;
765
821
  const host = getFlag(flags, "host") ?? "127.0.0.1";
766
- output(installService({ dataDir, port, host, force: getBoolFlag(flags, "force") === true }), flags);
822
+ // A routable bind needs a token; the server enforces the same rule.
823
+ const token = getFlag(flags, "token") ?? process.env["CODESIFT_HTTP_TOKEN"];
824
+ // Carry the caller's CODESIFT_* environment into the unit. A service gets
825
+ // almost nothing from the shell, so an embedding provider set only in the
826
+ // shell is silently lost and the daemon falls back to on-CPU ONNX.
827
+ const inheritedEnv = {};
828
+ for (const [k, v] of Object.entries(process.env)) {
829
+ if (k.startsWith("CODESIFT_") && k !== "CODESIFT_HTTP_TOKEN" && typeof v === "string") {
830
+ inheritedEnv[k] = v;
831
+ }
832
+ }
833
+ output(installService({
834
+ dataDir, port, host,
835
+ ...(token ? { token } : {}),
836
+ ...(Object.keys(inheritedEnv).length > 0 ? { env: inheritedEnv } : {}),
837
+ force: getBoolFlag(flags, "force") === true,
838
+ }), flags);
767
839
  return;
768
840
  }
769
841
  if (sub === "uninstall") {
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,10 @@ import { loadIndex } from "../storage/index-store.js";
21
21
  import { loadConfig } from "../config.js";
22
22
  import { embedSymbols, embedChunks } from "../tools/index-tools/parse.js";
23
23
  import { EMBED_CHILD_OK_MARKER } from "./embed-child-marker.js";
24
+ import { exitWhenOrphaned } from "./orphan-guard.js";
24
25
  async function main() {
26
+ // A detached worker that outlives its parent has no consumer for its work.
27
+ exitWhenOrphaned();
25
28
  const [indexPath, repoName, rootPath] = process.argv.slice(2);
26
29
  if (!indexPath || !repoName || !rootPath) {
27
30
  process.stderr.write("embed-child: expected <indexPath> <repoName> <rootPath>\n");
@@ -1 +1 @@
1
- {"version":3,"file":"embed-child.js","sourceRoot":"","sources":["../../src/cli/embed-child.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAClF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,SAAS,IAAI,CAAC,CAAC;QACvE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC9B,0EAA0E;QAC1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,qBAAqB,IAAI,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,MAAM,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAErF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,qBAAqB,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,IAAI,CAAC,CAAC;IAClD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"embed-child.js","sourceRoot":"","sources":["../../src/cli/embed-child.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,KAAK,UAAU,IAAI;IACjB,2EAA2E;IAC3E,gBAAgB,EAAE,CAAC;IACnB,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAClF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,SAAS,IAAI,CAAC,CAAC;QACvE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC9B,0EAA0E;QAC1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,qBAAqB,IAAI,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,MAAM,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAErF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,qBAAqB,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,IAAI,CAAC,CAAC;IAClD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,q7HAwErB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAue/C,CAAC"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,q7HAwErB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA8f/C,CAAC"}
package/dist/cli/help.js CHANGED
@@ -170,8 +170,23 @@ the fix for multi-session memory exhaustion on smaller machines. Point clients a
170
170
  it with 'codesift setup <platform> --http'.
171
171
 
172
172
  Single-instance (refuses a 2nd serve while one is live; reclaims a stale lock from
173
- a crashed daemon). Binds 127.0.0.1 only. Set CODESIFT_HTTP_TOKEN to require a
174
- bearer token. SIGTERM/SIGINT shut down cleanly.
173
+ a crashed daemon). SIGTERM/SIGINT shut down cleanly.
174
+
175
+ Binds 127.0.0.1 by default. A routable --host (e.g. a tailnet IP) is REFUSED
176
+ unless a token is set, because the daemon answers tool calls that read every
177
+ indexed repository — an unauthenticated routable bind publishes your source tree.
178
+ With a token one host can serve several machines. Prefer the ENV form: a --token
179
+ passed as an argument is visible to every local user via ps/proc and lands in shell
180
+ history. --token still works as an override.
181
+
182
+ CODESIFT_HTTP_TOKEN=<t> codesift serve --host 100.x.y.z --port 7077 # on the host
183
+ codesift setup claude --http --host 100.x.y.z --token <t> \ # on each client
184
+ --insecure-transport # tailnet: already encrypted
185
+
186
+ Adding a repository to a shared daemon needs no special command — call
187
+ index_folder(path=...) against it with a path that exists ON THAT HOST. The
188
+ daemon reads files from its own disk, so getting the code there is deployment
189
+ (a checkout, a mirror), not something CodeSift does for you.
175
190
 
176
191
  Flags:
177
192
  --port N Port to listen on (default 7077)
@@ -500,6 +515,14 @@ Options:
500
515
  process per machine — embeddings load once for all windows)
501
516
  instead of a stdio server per window. Run 'codesift serve' too.
502
517
  --port N Daemon port for --http URL (default 7077)
518
+ --host H Daemon host for --http URL (default 127.0.0.1)
519
+ --scheme S http (default) or https for the --http URL
520
+ --insecure-transport
521
+ Acknowledge that a plaintext link to a NON-loopback daemon is
522
+ already encrypted below HTTP (tailnet/VPN/SSH tunnel). Without
523
+ it, writing a bearer token onto such a URL is REFUSED: the token
524
+ is static and replayable, and whoever captures it can read every
525
+ indexed repo on that daemon.
503
526
 
504
527
  What it does:
505
528
  - Creates the config file if it doesn't exist
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwExB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;mDAoBwC;IACjD,KAAK,EAAE;;;;;;;;;;iEAUwD;IAE/D,YAAY,EAAE;;;;;;;;;6DAS6C;IAE3D,qBAAqB,EAAE;;;;;;;;;wEAS+C;IAEtE,KAAK,EAAE;;6CAEoC;IAE3C,UAAU,EAAE;;;;;0DAK4C;IAExD,KAAK,EAAE;;;;;;;;2DAQkD;IAEzD,mBAAmB,EAAE;;;;;;;;;;;;;;;;wEAgBiD;IAEtE,KAAK,EAAE;;;;;;;;;;;;;+EAasE;IAE7E,MAAM,EAAE;;;;;;;;;;;;qEAY2D;IAEnE,OAAO,EAAE;;;;;;;;;;;;;mEAawD;IAEjE,IAAI,EAAE;;;;;;;;;;;;+DAYuD;IAE7D,OAAO,EAAE;;;;;;qDAM0C;IAEnD,cAAc,EAAE;;;;;kCAKgB;IAEhC,MAAM,EAAE;;;;;;qCAM2B;IAEnC,eAAe,EAAE;;;;;;iDAM8B;IAE/C,IAAI,EAAE;;;;;;;;;iEASyD;IAE/D,IAAI,EAAE;;;;;;;;;;8DAUsD;IAE5D,KAAK,EAAE;;;;;;;;;;;;;6DAaoD;IAE3D,MAAM,EAAE;;;;;;;;;;mDAUyC;IAEjD,OAAO,EAAE;;;;;;;;;6DASkD;IAE3D,eAAe,EAAE;;;;;;;;;mDASgC;IAEjD,IAAI,EAAE;;;;;;;;;mDAS2C;IAEjD,OAAO,EAAE;;;;;;;;;mDASwC;IAEjD,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;+GAoBmG;IAE7G,KAAK,EAAE;;mDAE0C;IAEjD,oBAAoB,EAAE;;;;;;;;sCAQc;IAEpC,UAAU,EAAE;;;;;;;;;;;0DAW4C;IAExD,WAAW,EAAE;;;;;;;;;iEASkD;IAE/D,QAAQ,EAAE;;;;;;;;;;kEAUsD;IAEhE,WAAW,EAAE;;;;;;;;;;kEAUmD;IAEhE,QAAQ,EAAE;;;;;;;;;;;;;;2DAc+C;IAEzD,aAAa,EAAE;;;;;;;;;;;yDAWwC;IAEvD,eAAe,EAAE;;;;;;;;;;;yEAWsD;IAEvE,eAAe,EAAE;;;;;;;;;;;;uEAYoD;IAErE,gBAAgB,EAAE;;;;;;;;;;yEAUqD;IAEvE,eAAe,EAAE,yRAAyR;IAE1S,WAAW,EAAE,iHAAiH;IAE9H,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAoDY;CACpB,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwExB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;mDAoBwC;IACjD,KAAK,EAAE;;;;;;;;;;iEAUwD;IAE/D,YAAY,EAAE;;;;;;;;;6DAS6C;IAE3D,qBAAqB,EAAE;;;;;;;;;wEAS+C;IAEtE,KAAK,EAAE;;6CAEoC;IAE3C,UAAU,EAAE;;;;;0DAK4C;IAExD,KAAK,EAAE;;;;;;;;2DAQkD;IAEzD,mBAAmB,EAAE;;;;;;;;;;;;;;;;wEAgBiD;IAEtE,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;+EA4BsE;IAE7E,MAAM,EAAE;;;;;;;;;;;;qEAY2D;IAEnE,OAAO,EAAE;;;;;;;;;;;;;mEAawD;IAEjE,IAAI,EAAE;;;;;;;;;;;;+DAYuD;IAE7D,OAAO,EAAE;;;;;;qDAM0C;IAEnD,cAAc,EAAE;;;;;kCAKgB;IAEhC,MAAM,EAAE;;;;;;qCAM2B;IAEnC,eAAe,EAAE;;;;;;iDAM8B;IAE/C,IAAI,EAAE;;;;;;;;;iEASyD;IAE/D,IAAI,EAAE;;;;;;;;;;8DAUsD;IAE5D,KAAK,EAAE;;;;;;;;;;;;;6DAaoD;IAE3D,MAAM,EAAE;;;;;;;;;;mDAUyC;IAEjD,OAAO,EAAE;;;;;;;;;6DASkD;IAE3D,eAAe,EAAE;;;;;;;;;mDASgC;IAEjD,IAAI,EAAE;;;;;;;;;mDAS2C;IAEjD,OAAO,EAAE;;;;;;;;;mDASwC;IAEjD,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;+GAoBmG;IAE7G,KAAK,EAAE;;mDAE0C;IAEjD,oBAAoB,EAAE;;;;;;;;sCAQc;IAEpC,UAAU,EAAE;;;;;;;;;;;0DAW4C;IAExD,WAAW,EAAE;;;;;;;;;iEASkD;IAE/D,QAAQ,EAAE;;;;;;;;;;kEAUsD;IAEhE,WAAW,EAAE;;;;;;;;;;kEAUmD;IAEhE,QAAQ,EAAE;;;;;;;;;;;;;;2DAc+C;IAEzD,aAAa,EAAE;;;;;;;;;;;yDAWwC;IAEvD,eAAe,EAAE;;;;;;;;;;;yEAWsD;IAEvE,eAAe,EAAE;;;;;;;;;;;;uEAYoD;IAErE,gBAAgB,EAAE;;;;;;;;;;yEAUqD;IAEvE,eAAe,EAAE,yRAAyR;IAE1S,WAAW,EAAE,iHAAiH;IAE9H,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA4DY;CACpB,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Exit when the process that spawned us goes away.
3
+ *
4
+ * A detached worker whose parent has died is doing work nobody will read.
5
+ * Measured on this machine: two orphaned `embed-child` processes, left behind
6
+ * by indexing runs killed five hours earlier, were still burning 360% and 340%
7
+ * CPU and holding 5.2 GB and 4.4 GB — 700% CPU and 9.7 GB between them, which
8
+ * is what drove the load average past 600. Nothing stopped them because nothing
9
+ * was watching.
10
+ *
11
+ * `server.ts` guards its own process this way already; the CLI's workers did
12
+ * not. This lives in its own module so the guard can be exercised as a real
13
+ * process without importing a worker's side effects.
14
+ *
15
+ * Polls `process.ppid` rather than watching a pipe: these workers are spawned
16
+ * DETACHED, so there is no pipe, and reparenting to launchd/init (ppid 1) is
17
+ * the signal — the same on macOS and Linux.
18
+ */
19
+ /** How often to check. Long enough to be free, short enough to bound the leak. */
20
+ export declare const PARENT_POLL_MS = 5000;
21
+ export interface OrphanGuardOptions {
22
+ /** Override for tests; production uses PARENT_POLL_MS. */
23
+ pollMs?: number;
24
+ /** Injected so a test can observe the decision instead of dying. */
25
+ onOrphaned?: (startingPpid: number, currentPpid: number) => void;
26
+ }
27
+ /**
28
+ * Start watching. Returns a stop function.
29
+ *
30
+ * The timer is `unref`'d: the point is fewer lingering processes, so the guard
31
+ * must never be the thing that keeps one alive.
32
+ */
33
+ export declare function exitWhenOrphaned(options?: OrphanGuardOptions): () => void;
34
+ //# sourceMappingURL=orphan-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orphan-guard.d.ts","sourceRoot":"","sources":["../../src/cli/orphan-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,kFAAkF;AAClF,eAAO,MAAM,cAAc,OAAQ,CAAC;AAEpC,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CAClE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,IAAI,CA6B7E"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Exit when the process that spawned us goes away.
3
+ *
4
+ * A detached worker whose parent has died is doing work nobody will read.
5
+ * Measured on this machine: two orphaned `embed-child` processes, left behind
6
+ * by indexing runs killed five hours earlier, were still burning 360% and 340%
7
+ * CPU and holding 5.2 GB and 4.4 GB — 700% CPU and 9.7 GB between them, which
8
+ * is what drove the load average past 600. Nothing stopped them because nothing
9
+ * was watching.
10
+ *
11
+ * `server.ts` guards its own process this way already; the CLI's workers did
12
+ * not. This lives in its own module so the guard can be exercised as a real
13
+ * process without importing a worker's side effects.
14
+ *
15
+ * Polls `process.ppid` rather than watching a pipe: these workers are spawned
16
+ * DETACHED, so there is no pipe, and reparenting to launchd/init (ppid 1) is
17
+ * the signal — the same on macOS and Linux.
18
+ */
19
+ /** How often to check. Long enough to be free, short enough to bound the leak. */
20
+ export const PARENT_POLL_MS = 5_000;
21
+ /**
22
+ * Start watching. Returns a stop function.
23
+ *
24
+ * The timer is `unref`'d: the point is fewer lingering processes, so the guard
25
+ * must never be the thing that keeps one alive.
26
+ */
27
+ export function exitWhenOrphaned(options = {}) {
28
+ const startingPpid = process.ppid;
29
+ const onOrphaned = options.onOrphaned ??
30
+ ((from, now) => {
31
+ process.stderr.write(`[codesift] parent ${from} gone (now ${now}) — exiting rather than orphaning\n`);
32
+ process.exit(0);
33
+ });
34
+ const timer = setInterval(() => {
35
+ const ppid = process.ppid;
36
+ if (ppid === startingPpid && ppid > 1)
37
+ return;
38
+ onOrphaned(startingPpid, ppid);
39
+ }, options.pollMs ?? PARENT_POLL_MS);
40
+ timer.unref();
41
+ const stopOnSignal = () => process.exit(0);
42
+ for (const sig of ["SIGTERM", "SIGINT", "SIGHUP"]) {
43
+ process.on(sig, stopOnSignal);
44
+ }
45
+ return () => {
46
+ clearInterval(timer);
47
+ for (const sig of ["SIGTERM", "SIGINT", "SIGHUP"]) {
48
+ process.off(sig, stopOnSignal);
49
+ }
50
+ };
51
+ }
52
+ //# sourceMappingURL=orphan-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orphan-guard.js","sourceRoot":"","sources":["../../src/cli/orphan-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;AASpC;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAO,GAAuB,EAAE;IAC/D,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,MAAM,UAAU,GACd,OAAO,CAAC,UAAU;QAClB,CAAC,CAAC,IAAY,EAAE,GAAW,EAAQ,EAAE;YACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qBAAqB,IAAI,cAAc,GAAG,qCAAqC,CAChF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IAEL,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO;QAC9C,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC,EAAE,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,CAAC;IACrC,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,MAAM,YAAY,GAAG,GAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAU,EAAE,CAAC;QAC3D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,GAAG,EAAE;QACV,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAU,EAAE,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Writing a file that may embed a CodeSift daemon bearer token, restricted to
3
+ * its owner — and failing loudly when that cannot be done.
4
+ *
5
+ * The shared-daemon feature exists for shared hosts, so a config left at the
6
+ * default umask (commonly 0644) hands every other local account a credential
7
+ * that grants read access to every repository that daemon has indexed.
8
+ *
9
+ * Two things make this harder than passing `mode` to writeFile:
10
+ *
11
+ * - open(2) applies `mode` only when it CREATES the file. A config written by
12
+ * an older version keeps its 0644 until something chmods it, so the rewrite
13
+ * path needs an explicit chmod — and it has to happen BEFORE the new token is
14
+ * written, not after, or the secret sits on disk readable by everyone for the
15
+ * length of the write.
16
+ * - A failed chmod used to be swallowed whole (`.catch(() => {})`) under the
17
+ * comment "a filesystem without POSIX modes must not fail the setup". That
18
+ * comment describes one errno; the catch covered every errno, so "I could not
19
+ * restrict this file" was indistinguishable from success. Observed while
20
+ * installing the daemon on burst-i9: the systemd unit holding
21
+ * CODESIFT_HTTP_TOKEN was left at -rw-r--r--, readable by the CI user, and
22
+ * the install reported OK.
23
+ *
24
+ * So the rule is narrow rather than best-effort: tolerate the errnos that mean
25
+ * this filesystem has no permission bits at all, and for anything else look at
26
+ * what the mode actually IS. Already owner-only means the chmod was redundant
27
+ * and its failure harmless; anything group- or world-accessible is a real
28
+ * exposure of a real credential, and setup must say so instead of returning.
29
+ */
30
+ /** Owner read/write only. */
31
+ export declare const OWNER_ONLY_MODE = 384;
32
+ /**
33
+ * Whether a chmod failure can be ignored.
34
+ *
35
+ * `mode` is the file's ACTUAL mode afterwards, or null when it could not be
36
+ * read — an unreadable mode is treated as unsafe, since the alternative is
37
+ * assuming the best about a credential file.
38
+ */
39
+ export declare function chmodFailureIsTolerable(code: string, mode: number | null): boolean;
40
+ /**
41
+ * Write `content` to `path` so that only its owner can read it.
42
+ *
43
+ * Throws rather than writing a token to a file it could not secure. The
44
+ * pre-write restrict is what keeps that promise for a file that already exists:
45
+ * by the time the new content lands, the mode is already correct or we never
46
+ * got here.
47
+ */
48
+ export declare function writeOwnerOnlyFile(path: string, content: string): Promise<void>;
49
+ /** Synchronous twin, for install paths that are sync end to end. */
50
+ export declare function writeOwnerOnlyFileSync(path: string, content: string): void;
51
+ //# sourceMappingURL=owner-only-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-only-file.d.ts","sourceRoot":"","sources":["../../src/cli/owner-only-file.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,6BAA6B;AAC7B,eAAO,MAAM,eAAe,MAAQ,CAAC;AASrC;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAGlF;AAkDD;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIrF;AAED,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI1E"}