token-goat 2.9.29 → 2.9.30

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 (131) hide show
  1. package/README.md +34 -40
  2. package/SECURITY.md +28 -10
  3. package/THIRD_PARTY_NOTICES.md +40 -3
  4. package/dist/native/linux-arm64/tg-hook +0 -0
  5. package/dist/native/linux-x64/tg-hook +0 -0
  6. package/dist/ort-wasm-simd-threaded.mjs +59 -0
  7. package/dist/token-goat-chunk-3CHUNJ2O.mjs +53 -0
  8. package/dist/token-goat-chunk-3Z5S4KGM.mjs +918 -0
  9. package/dist/token-goat-chunk-4FVIAHSI.mjs +211 -0
  10. package/dist/{token-goat-chunk-PGTH2U4C.mjs → token-goat-chunk-4JJS54TR.mjs} +4 -3
  11. package/dist/token-goat-chunk-4LCCNRTG.mjs +313 -0
  12. package/dist/{token-goat-chunk-L7H3U27L.mjs → token-goat-chunk-54K3EUV3.mjs} +1 -1
  13. package/dist/token-goat-chunk-56EIMS3E.mjs +159 -0
  14. package/dist/token-goat-chunk-5BCIJXMO.mjs +609 -0
  15. package/dist/token-goat-chunk-5KDMCMF2.mjs +362 -0
  16. package/dist/token-goat-chunk-5RG5SBL6.mjs +221 -0
  17. package/dist/{token-goat-chunk-RRNZMM3A.mjs → token-goat-chunk-5Y6ZYL6U.mjs} +21 -2
  18. package/dist/{token-goat-chunk-GLXRTTLE.mjs → token-goat-chunk-64FBPDTK.mjs} +12 -8
  19. package/dist/{token-goat-chunk-G23DWHV4.mjs → token-goat-chunk-664RTTUV.mjs} +28 -15
  20. package/dist/token-goat-chunk-67TQJ76B.mjs +57 -0
  21. package/dist/token-goat-chunk-6QMAS7AB.mjs +42 -0
  22. package/dist/token-goat-chunk-7BXSNBY5.mjs +253 -0
  23. package/dist/{token-goat-chunk-IVWI2OCK.mjs → token-goat-chunk-7F2UBPD3.mjs} +40 -11
  24. package/dist/{token-goat-chunk-TGOXNAHW.mjs → token-goat-chunk-7IN2MKDS.mjs} +682 -501
  25. package/dist/token-goat-chunk-7NADEDKJ.mjs +124 -0
  26. package/dist/{token-goat-chunk-KOPIR3KZ.mjs → token-goat-chunk-A3CK6N5Z.mjs} +618 -72
  27. package/dist/{token-goat-chunk-O6I2XU4P.mjs → token-goat-chunk-AFLYLHDH.mjs} +44 -31
  28. package/dist/{token-goat-chunk-TCQANXYC.mjs → token-goat-chunk-AM5V6GSX.mjs} +18 -2
  29. package/dist/{token-goat-chunk-E4ZOJIZK.mjs → token-goat-chunk-APGZXSPS.mjs} +39 -146
  30. package/dist/{token-goat-chunk-D4ETHJD6.mjs → token-goat-chunk-ARDNEC2U.mjs} +9 -7
  31. package/dist/token-goat-chunk-ATCPY7EQ.mjs +134 -0
  32. package/dist/token-goat-chunk-B2RZZCSS.mjs +354 -0
  33. package/dist/{token-goat-chunk-BGYOZ6DO.mjs → token-goat-chunk-B45VMIIH.mjs} +6 -7
  34. package/dist/token-goat-chunk-BPGCUMR7.mjs +30 -0
  35. package/dist/{token-goat-chunk-TDUT2CL6.mjs → token-goat-chunk-C63JQV5K.mjs} +45 -6
  36. package/dist/{token-goat-chunk-ZER6EAXZ.mjs → token-goat-chunk-COBQGL5S.mjs} +2661 -2440
  37. package/dist/token-goat-chunk-COTXZHTS.mjs +39 -0
  38. package/dist/{token-goat-chunk-RQGGMPCR.mjs → token-goat-chunk-CYCEYAEO.mjs} +76 -16
  39. package/dist/token-goat-chunk-CZ3LUXYZ.mjs +4115 -0
  40. package/dist/{token-goat-chunk-ASLWOQ3I.mjs → token-goat-chunk-DZX2YDPT.mjs} +2 -1
  41. package/dist/token-goat-chunk-E3OQX2XT.mjs +824 -0
  42. package/dist/token-goat-chunk-EFHMMIGP.mjs +68 -0
  43. package/dist/token-goat-chunk-ETBHVDB6.mjs +328 -0
  44. package/dist/token-goat-chunk-EVMZJ27Z.mjs +147 -0
  45. package/dist/token-goat-chunk-EXKGNHEG.mjs +2096 -0
  46. package/dist/{token-goat-chunk-RTMVLHWX.mjs → token-goat-chunk-FBNQNSJK.mjs} +2555 -5127
  47. package/dist/{token-goat-chunk-NMTKNYGF.mjs → token-goat-chunk-FNFBKLRD.mjs} +74 -9
  48. package/dist/{token-goat-chunk-RLP6J7WR.mjs → token-goat-chunk-FZ3NEW5O.mjs} +33 -19
  49. package/dist/token-goat-chunk-G5PJ7AGM.mjs +36 -0
  50. package/dist/{token-goat-chunk-DNRPXHYH.mjs → token-goat-chunk-GFBSN7BD.mjs} +29 -401
  51. package/dist/{token-goat-chunk-XYWPOSCN.mjs → token-goat-chunk-GOLEOXZP.mjs} +763 -211
  52. package/dist/token-goat-chunk-H2K3QP6H.mjs +24 -0
  53. package/dist/token-goat-chunk-H2PHHGM5.mjs +188 -0
  54. package/dist/token-goat-chunk-HAVAOB3S.mjs +87 -0
  55. package/dist/token-goat-chunk-HG45AF2B.mjs +2228 -0
  56. package/dist/{token-goat-chunk-HUYUHODZ.mjs → token-goat-chunk-HOJLCGDP.mjs} +12965 -11748
  57. package/dist/{token-goat-chunk-435UQTKD.mjs → token-goat-chunk-HYBFA5X3.mjs} +118 -19
  58. package/dist/token-goat-chunk-IVALLT3S.mjs +48 -0
  59. package/dist/{token-goat-chunk-UXSXQQIY.mjs → token-goat-chunk-IVKIZWAB.mjs} +3 -3
  60. package/dist/{token-goat-chunk-52NSDWYY.mjs → token-goat-chunk-JB6QN6VF.mjs} +6 -4
  61. package/dist/{token-goat-chunk-HNFZZHFW.mjs → token-goat-chunk-JDHE26RP.mjs} +10 -3
  62. package/dist/{token-goat-chunk-FTP4U4QA.mjs → token-goat-chunk-JDU3EXSU.mjs} +12 -11
  63. package/dist/token-goat-chunk-JDWCRD6M.mjs +253 -0
  64. package/dist/{token-goat-chunk-6AK46ZT7.mjs → token-goat-chunk-JN4XMLSD.mjs} +5 -1
  65. package/dist/token-goat-chunk-JTQQGXZH.mjs +733 -0
  66. package/dist/token-goat-chunk-KKUFXAPD.mjs +25 -0
  67. package/dist/token-goat-chunk-KQNZDCBD.mjs +47 -0
  68. package/dist/{token-goat-chunk-2WOUYWLM.mjs → token-goat-chunk-KWPNJBDH.mjs} +27 -3
  69. package/dist/{token-goat-chunk-DPNLUJWB.mjs → token-goat-chunk-LOBGHXPB.mjs} +30 -8
  70. package/dist/token-goat-chunk-MKPF4CL5.mjs +37 -0
  71. package/dist/token-goat-chunk-MNWKPRAL.mjs +13 -0
  72. package/dist/{token-goat-chunk-DNSPXQXQ.mjs → token-goat-chunk-N2NMER56.mjs} +25 -15
  73. package/dist/token-goat-chunk-NYKZLXMK.mjs +218 -0
  74. package/dist/token-goat-chunk-OJBNYTJP.mjs +3087 -0
  75. package/dist/token-goat-chunk-P4QMM4WK.mjs +295 -0
  76. package/dist/token-goat-chunk-PD5VKH46.mjs +184 -0
  77. package/dist/token-goat-chunk-PEPTHRFF.mjs +129 -0
  78. package/dist/{token-goat-chunk-NMBWLRHW.mjs → token-goat-chunk-PU7V3FD6.mjs} +8721 -11104
  79. package/dist/token-goat-chunk-PY533T7F.mjs +46 -0
  80. package/dist/token-goat-chunk-Q5VTGRH7.mjs +761 -0
  81. package/dist/{token-goat-chunk-67BNIKKO.mjs → token-goat-chunk-QCLDAQTS.mjs} +31 -20
  82. package/dist/{token-goat-chunk-SE6E4BKJ.mjs → token-goat-chunk-QSBRTGM2.mjs} +9 -2
  83. package/dist/{token-goat-chunk-VZQEWRVH.mjs → token-goat-chunk-RC35RBUL.mjs} +4 -4
  84. package/dist/{token-goat-chunk-VMFWNHGR.mjs → token-goat-chunk-RHXKCZX3.mjs} +873 -504
  85. package/dist/{token-goat-chunk-PYSUADX4.mjs → token-goat-chunk-RZRTDST7.mjs} +17 -7
  86. package/dist/{token-goat-chunk-ONXH6NZ5.mjs → token-goat-chunk-SJHWVNDQ.mjs} +15 -21
  87. package/dist/token-goat-chunk-SMVRN2HU.mjs +188 -0
  88. package/dist/{token-goat-chunk-QO3LXVVR.mjs → token-goat-chunk-SQSSNQPE.mjs} +2295 -1718
  89. package/dist/{token-goat-chunk-2AWQ2R5X.mjs → token-goat-chunk-T4FK7VOV.mjs} +2 -2
  90. package/dist/token-goat-chunk-U4N3BN2W.mjs +92 -0
  91. package/dist/token-goat-chunk-UA5V6P3P.mjs +122 -0
  92. package/dist/{token-goat-chunk-UA5BKWWQ.mjs → token-goat-chunk-UQ5UK2T7.mjs} +15 -4
  93. package/dist/token-goat-chunk-USILZ3T3.mjs +53 -0
  94. package/dist/{token-goat-chunk-MELOKFDJ.mjs → token-goat-chunk-VES7EL7O.mjs} +7 -1
  95. package/dist/{token-goat-chunk-7CPMDFGB.mjs → token-goat-chunk-VL3YIFHZ.mjs} +389 -14
  96. package/dist/{token-goat-chunk-E5TK5DNO.mjs → token-goat-chunk-VPBBTSJR.mjs} +356 -129
  97. package/dist/{token-goat-chunk-YOOVFPTP.mjs → token-goat-chunk-W3QCJS6G.mjs} +10 -2
  98. package/dist/{token-goat-chunk-LZNBQTDK.mjs → token-goat-chunk-WY3L4DVT.mjs} +11 -7
  99. package/dist/token-goat-chunk-XKI4SEMX.mjs +66 -0
  100. package/dist/token-goat-chunk-XU4P6Z24.mjs +133 -0
  101. package/dist/{token-goat-chunk-H5J3C56Q.mjs → token-goat-chunk-Y776AENC.mjs} +112 -26
  102. package/dist/token-goat-chunk-YARZFCZS.mjs +359 -0
  103. package/dist/{token-goat-chunk-S4VSXURL.mjs → token-goat-chunk-Z44YO3QZ.mjs} +4 -0
  104. package/dist/token-goat-chunk-Z57YODA2.mjs +35 -0
  105. package/dist/{token-goat-chunk-PQ53BSCF.mjs → token-goat-chunk-ZCDTCVIS.mjs} +48 -29
  106. package/dist/token-goat-chunk-ZEJVMUQH.mjs +48 -0
  107. package/dist/{token-goat-chunk-BGHSSJUA.mjs → token-goat-chunk-ZFOBKUWH.mjs} +1 -1
  108. package/dist/token-goat-chunk-ZMBL6UVV.mjs +110 -0
  109. package/dist/{token-goat-chunk-PKRWMHVP.mjs → token-goat-chunk-ZQSJMO2R.mjs} +338 -170
  110. package/dist/token-goat-hook-client.cjs +87 -23
  111. package/dist/token-goat-hook-client.mjs +3 -3
  112. package/dist/token-goat-hook.mjs +46 -30
  113. package/dist/token-goat.core.mjs +6 -6
  114. package/docs/C4_RUNTIME_ARCHITECTURE.md +1 -1
  115. package/docs/cli.md +80 -46
  116. package/docs/install.md +47 -14
  117. package/docs/security.md +7 -7
  118. package/package.json +17 -7
  119. package/scripts/verify-native-dist.mjs +386 -0
  120. package/dist/token-goat-chunk-2NNUA2LR.mjs +0 -143
  121. package/dist/token-goat-chunk-44BM7DDQ.mjs +0 -294
  122. package/dist/token-goat-chunk-C5YPNZKQ.mjs +0 -318
  123. package/dist/token-goat-chunk-CIQ2FTY3.mjs +0 -1990
  124. package/dist/token-goat-chunk-EUSDXRXU.mjs +0 -1429
  125. package/dist/token-goat-chunk-G7IWXCFF.mjs +0 -456
  126. package/dist/token-goat-chunk-JTKCQMQA.mjs +0 -418
  127. package/dist/token-goat-chunk-ORNFMIER.mjs +0 -295
  128. package/dist/token-goat-chunk-VQ6F6T7X.mjs +0 -36
  129. package/dist/token-goat-chunk-YAGLESS3.mjs +0 -23
  130. package/dist/token-goat-chunk-YKSRAWUU.mjs +0 -33
  131. package/dist/token-goat-chunk-Z6KBMOBI.mjs +0 -53
@@ -44,6 +44,7 @@ module.exports = __toCommonJS(hook_client_exports);
44
44
  var import_node_child_process = require("node:child_process");
45
45
  var fs2 = __toESM(require("node:fs"), 1);
46
46
  var net = __toESM(require("node:net"), 1);
47
+ var os3 = __toESM(require("node:os"), 1);
47
48
 
48
49
  // src/env.ts
49
50
  var FALSY_ENV_VALUES = /* @__PURE__ */ new Set(["0", "false", "no", "off"]);
@@ -72,7 +73,7 @@ var path = __toESM(require("node:path"), 1);
72
73
  // src/version.ts
73
74
  var import_node_module = require("node:module");
74
75
  function readManifest() {
75
- if (true) return JSON.parse('{"version":"2.9.29","name":"token-goat","bugs":{"url":"https://github.com/DFKHelper/token-goat/issues"}}');
76
+ if (true) return JSON.parse('{"version":"2.9.30","name":"token-goat","bugs":{"url":"https://github.com/DFKHelper/token-goat/issues"}}');
76
77
  try {
77
78
  return (0, import_node_module.createRequire)(__tgModuleUrl)("../package.json");
78
79
  } catch {
@@ -153,20 +154,22 @@ var PROTOCOL_VERSION = 1;
153
154
  var SERVER_SLOTS = 3;
154
155
  var MAX_FRAME_BYTES = 64 * 1024 * 1024;
155
156
  var KEY_BYTES = 32;
156
- function bundleDir() {
157
- const dir = path2.dirname((0, import_node_url.fileURLToPath)(__tgModuleUrl));
157
+ function resolveBundleDir(dir) {
158
158
  try {
159
159
  return fs.realpathSync.native(dir);
160
160
  } catch {
161
161
  return dir;
162
162
  }
163
163
  }
164
- function endpointId(dir) {
164
+ function bundleDir() {
165
+ return resolveBundleDir(path2.dirname((0, import_node_url.fileURLToPath)(__tgModuleUrl)));
166
+ }
167
+ function endpointId(dir, bundle) {
165
168
  const fold = (p) => process.platform === "win32" ? p.toLowerCase() : p;
166
- return crypto.createHash("sha256").update(`${fold(dir)}\0${fold(bundleDir())}`).digest("hex").slice(0, 16);
169
+ return crypto.createHash("sha256").update(`${fold(dir)}\0${fold(bundle)}`).digest("hex").slice(0, 16);
167
170
  }
168
- function endpointFor(slot, dir = dataDir()) {
169
- const id = `${endpointId(dir)}-${slot}`;
171
+ function endpointFor(slot, dir = dataDir(), bundle = bundleDir()) {
172
+ const id = `${endpointId(dir, bundle)}-${slot}`;
170
173
  if (process.platform === "win32") return String.raw`\\.\pipe\token-goat-hooks-` + id;
171
174
  const inData = path2.join(dir, `hooks-${id}.sock`);
172
175
  if (Buffer.byteLength(inData) < 100) return inData;
@@ -215,7 +218,9 @@ function mac(key, ...parts) {
215
218
  }
216
219
  function macMatches(expected, actual) {
217
220
  if (typeof actual !== "string" || actual.length !== expected.length) return false;
218
- return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(actual));
221
+ const want = Buffer.from(expected);
222
+ const got = Buffer.from(actual);
223
+ return want.length === got.length && crypto.timingSafeEqual(want, got);
219
224
  }
220
225
  function writeFrame(socket, message) {
221
226
  socket.write(encodeFrame(message));
@@ -303,11 +308,12 @@ function launcherPath() {
303
308
  // src/hook_client.ts
304
309
  var HANDSHAKE_TIMEOUT_MS = 150;
305
310
  var FIND_BUDGET_MS = 300;
311
+ var HEDGE_MS = 40;
306
312
  var RESPONSE_TIMEOUT_MS = 12e4;
307
313
  var CONTROL_WAIT_MS = 1e4;
308
314
  var SPAWN_RETRY_MS = 3e4;
309
315
  var DISABLED_MARKER_TTL_MS = 10 * 6e4;
310
- function attempt(slot, key, request, handshakeMs, dir) {
316
+ function attempt(slot, key, request, handshakeMs, dir, race) {
311
317
  return new Promise((resolve) => {
312
318
  const socket = net.connect(endpointFor(slot, dir));
313
319
  const nc = nonce();
@@ -321,6 +327,10 @@ function attempt(slot, key, request, handshakeMs, dir) {
321
327
  resolve(outcome);
322
328
  };
323
329
  let timer = setTimeout(() => finish({ kind: "busy" }), handshakeMs);
330
+ const cancel = () => {
331
+ if (!dispatched) finish({ kind: "busy" });
332
+ };
333
+ race?.onCancel(cancel);
324
334
  socket.on("error", (e) => {
325
335
  if (dispatched) finish({ kind: "lost" });
326
336
  else finish({ kind: e.code === "ENOENT" || e.code === "ECONNREFUSED" ? "absent" : "refused" });
@@ -340,9 +350,10 @@ function attempt(slot, key, request, handshakeMs, dir) {
340
350
  const body = JSON.stringify(request);
341
351
  const frame = encodeFrame({ t: "req", mac: mac(key, "C", nc, ns, body), body });
342
352
  if (!frameFits(frame)) return finish({ kind: "oversize" });
353
+ if (race !== void 0 && !race.claim(cancel)) return finish({ kind: "busy" });
343
354
  dispatched = true;
344
355
  clearTimeout(timer);
345
- timer = setTimeout(() => finish({ kind: "lost" }), RESPONSE_TIMEOUT_MS);
356
+ if (request.kind !== "cli") timer = setTimeout(() => finish({ kind: "lost" }), RESPONSE_TIMEOUT_MS);
346
357
  socket.write(frame);
347
358
  return;
348
359
  }
@@ -367,7 +378,9 @@ function startServer(slot) {
367
378
  if (disabled || markerAgeMs(`spawn-${slot}`) < SPAWN_RETRY_MS || !fs2.existsSync(launcher)) return;
368
379
  touchMarker(`spawn-${slot}`);
369
380
  try {
370
- (0, import_node_child_process.spawn)(process.execPath, [launcher, "hook-server", "run", "--slot", String(slot)], { detached: true, stdio: "ignore", windowsHide: true }).unref();
381
+ const child = (0, import_node_child_process.spawn)(process.execPath, [launcher, "hook-server", "run", "--slot", String(slot)], { cwd: os3.tmpdir(), detached: true, stdio: "ignore", windowsHide: true });
382
+ child.on("error", () => void 0);
383
+ child.unref();
371
384
  } catch {
372
385
  }
373
386
  }
@@ -383,17 +396,56 @@ async function callServer(request, opts = {}) {
383
396
  return void 0;
384
397
  }
385
398
  const deadline = Date.now() + FIND_BUDGET_MS;
386
- for (let slot = 0; slot < SERVER_SLOTS && Date.now() < deadline; slot++) {
387
- const outcome = await attempt(slot, key, request, opts.handshakeMs ?? HANDSHAKE_TIMEOUT_MS);
388
- if (outcome.kind === "served") return outcome.reply;
389
- if (outcome.kind === "lost") return "lost";
390
- if (outcome.kind === "absent") {
391
- if (autostart) startServer(slot);
392
- return void 0;
393
- }
394
- if (outcome.kind === "stale" || outcome.kind === "oversize") return void 0;
395
- }
396
- return void 0;
399
+ const handshakeMs = opts.handshakeMs ?? HANDSHAKE_TIMEOUT_MS;
400
+ return new Promise((resolve) => {
401
+ let claimed = false;
402
+ let settled = false;
403
+ let exhausted = false;
404
+ let next = 0;
405
+ let pending = 0;
406
+ let hedge;
407
+ const cancels = [];
408
+ const settle = (value) => {
409
+ if (settled) return;
410
+ settled = true;
411
+ clearTimeout(hedge);
412
+ for (const cancel of cancels) cancel();
413
+ resolve(value);
414
+ };
415
+ const race = {
416
+ claim: (self) => {
417
+ if (claimed || settled) return false;
418
+ claimed = true;
419
+ clearTimeout(hedge);
420
+ for (const cancel of cancels) if (cancel !== self) cancel();
421
+ return true;
422
+ },
423
+ onCancel: (cancel) => cancels.push(cancel)
424
+ };
425
+ const askNext = () => {
426
+ clearTimeout(hedge);
427
+ if (settled || claimed || exhausted || next >= SERVER_SLOTS || Date.now() >= deadline) {
428
+ if (pending === 0 && !claimed) settle(void 0);
429
+ return;
430
+ }
431
+ const slot = next++;
432
+ pending++;
433
+ void attempt(slot, key, request, handshakeMs, void 0, race).then((outcome) => {
434
+ pending--;
435
+ if (outcome.kind === "served") return settle(outcome.reply);
436
+ if (outcome.kind === "lost") return settle("lost");
437
+ if (claimed) return;
438
+ if (outcome.kind === "stale" || outcome.kind === "oversize") return settle(void 0);
439
+ if (outcome.kind === "absent") {
440
+ if (autostart) startServer(slot);
441
+ exhausted = true;
442
+ }
443
+ askNext();
444
+ });
445
+ if (next < SERVER_SLOTS) hedge = setTimeout(askNext, HEDGE_MS);
446
+ };
447
+ askNext();
448
+ });
397
449
  }
398
450
  async function relayViaServer(event, input, harnessWaitMs) {
399
451
  try {
@@ -417,17 +469,29 @@ async function relayViaServer(event, input, harnessWaitMs) {
417
469
  var WARM_CLI_COMMANDS = /* @__PURE__ */ new Set([
418
470
  "answer",
419
471
  "brief",
472
+ "call-chain",
473
+ "callers",
420
474
  "changed",
475
+ "context-for",
476
+ "dead",
477
+ "deps",
421
478
  "exports",
479
+ "find",
480
+ "impact",
422
481
  "imports",
482
+ "locate",
423
483
  "map",
424
484
  "outline",
425
485
  "read",
426
486
  "refs",
487
+ "scope",
427
488
  "section",
428
489
  "semantic",
490
+ "similar",
429
491
  "skeleton",
430
- "symbol"
492
+ "symbol",
493
+ "test-for",
494
+ "types"
431
495
  ]);
432
496
  function warmCliEligible(argv) {
433
497
  const command = argv[2];
@@ -9,10 +9,10 @@ import {
9
9
  serverEnabled,
10
10
  serverStatuses,
11
11
  warmCliEligible
12
- } from "./token-goat-chunk-RQGGMPCR.mjs";
13
- import "./token-goat-chunk-DPNLUJWB.mjs";
12
+ } from "./token-goat-chunk-CYCEYAEO.mjs";
13
+ import "./token-goat-chunk-LOBGHXPB.mjs";
14
14
  import "./token-goat-chunk-IVE6U7KV.mjs";
15
- import "./token-goat-chunk-MELOKFDJ.mjs";
15
+ import "./token-goat-chunk-VES7EL7O.mjs";
16
16
  import "./token-goat-chunk-A37V4PBF.mjs";
17
17
  export {
18
18
  WARM_CLI_COMMANDS,
@@ -2,40 +2,56 @@ import { createRequire as __cjsRequire } from 'node:module';
2
2
  const require = __cjsRequire(import.meta.url);
3
3
  import {
4
4
  relayInProcess
5
- } from "./token-goat-chunk-QO3LXVVR.mjs";
6
- import "./token-goat-chunk-IVWI2OCK.mjs";
7
- import "./token-goat-chunk-DNRPXHYH.mjs";
8
- import "./token-goat-chunk-RTMVLHWX.mjs";
9
- import "./token-goat-chunk-L7H3U27L.mjs";
10
- import "./token-goat-chunk-RRNZMM3A.mjs";
11
- import "./token-goat-chunk-E4ZOJIZK.mjs";
12
- import "./token-goat-chunk-E5TK5DNO.mjs";
13
- import "./token-goat-chunk-ZER6EAXZ.mjs";
14
- import "./token-goat-chunk-44BM7DDQ.mjs";
15
- import "./token-goat-chunk-EUSDXRXU.mjs";
16
- import "./token-goat-chunk-G7IWXCFF.mjs";
17
- import "./token-goat-chunk-H5J3C56Q.mjs";
18
- import "./token-goat-chunk-TDUT2CL6.mjs";
19
- import "./token-goat-chunk-ONXH6NZ5.mjs";
20
- import "./token-goat-chunk-O6I2XU4P.mjs";
21
- import "./token-goat-chunk-D4ETHJD6.mjs";
22
- import "./token-goat-chunk-52NSDWYY.mjs";
23
- import "./token-goat-chunk-2WOUYWLM.mjs";
24
- import "./token-goat-chunk-CIQ2FTY3.mjs";
25
- import "./token-goat-chunk-3BTK54F3.mjs";
26
- import "./token-goat-chunk-VMFWNHGR.mjs";
27
- import "./token-goat-chunk-435UQTKD.mjs";
28
- import "./token-goat-chunk-7CPMDFGB.mjs";
29
- import "./token-goat-chunk-TGOXNAHW.mjs";
5
+ } from "./token-goat-chunk-SQSSNQPE.mjs";
6
+ import "./token-goat-chunk-ZEJVMUQH.mjs";
7
+ import "./token-goat-chunk-GFBSN7BD.mjs";
8
+ import "./token-goat-chunk-5RG5SBL6.mjs";
9
+ import "./token-goat-chunk-KKUFXAPD.mjs";
10
+ import "./token-goat-chunk-7F2UBPD3.mjs";
11
+ import "./token-goat-chunk-54K3EUV3.mjs";
12
+ import "./token-goat-chunk-7BXSNBY5.mjs";
13
+ import "./token-goat-chunk-G5PJ7AGM.mjs";
14
+ import "./token-goat-chunk-YARZFCZS.mjs";
15
+ import "./token-goat-chunk-FBNQNSJK.mjs";
16
+ import "./token-goat-chunk-PEPTHRFF.mjs";
17
+ import "./token-goat-chunk-MNWKPRAL.mjs";
18
+ import "./token-goat-chunk-JTQQGXZH.mjs";
19
+ import "./token-goat-chunk-67TQJ76B.mjs";
20
+ import "./token-goat-chunk-H2PHHGM5.mjs";
21
+ import "./token-goat-chunk-P4QMM4WK.mjs";
22
+ import "./token-goat-chunk-5KDMCMF2.mjs";
23
+ import "./token-goat-chunk-APGZXSPS.mjs";
24
+ import "./token-goat-chunk-COBQGL5S.mjs";
25
+ import "./token-goat-chunk-ATCPY7EQ.mjs";
26
+ import "./token-goat-chunk-VPBBTSJR.mjs";
27
+ import "./token-goat-chunk-Q5VTGRH7.mjs";
28
+ import "./token-goat-chunk-Y776AENC.mjs";
29
+ import "./token-goat-chunk-SJHWVNDQ.mjs";
30
+ import "./token-goat-chunk-AFLYLHDH.mjs";
31
+ import "./token-goat-chunk-BPGCUMR7.mjs";
32
+ import "./token-goat-chunk-C63JQV5K.mjs";
33
+ import "./token-goat-chunk-JB6QN6VF.mjs";
34
+ import "./token-goat-chunk-RHXKCZX3.mjs";
35
+ import "./token-goat-chunk-EVMZJ27Z.mjs";
36
+ import "./token-goat-chunk-HYBFA5X3.mjs";
37
+ import "./token-goat-chunk-5Y6ZYL6U.mjs";
38
+ import "./token-goat-chunk-ARDNEC2U.mjs";
39
+ import "./token-goat-chunk-3Z5S4KGM.mjs";
40
+ import "./token-goat-chunk-VL3YIFHZ.mjs";
30
41
  import "./token-goat-chunk-XB5KKOCG.mjs";
42
+ import "./token-goat-chunk-3BTK54F3.mjs";
43
+ import "./token-goat-chunk-4FVIAHSI.mjs";
44
+ import "./token-goat-chunk-7IN2MKDS.mjs";
45
+ import "./token-goat-chunk-U4N3BN2W.mjs";
31
46
  import "./token-goat-chunk-YZAAZU2S.mjs";
32
47
  import "./token-goat-chunk-IVE6U7KV.mjs";
33
- import "./token-goat-chunk-XYWPOSCN.mjs";
34
- import "./token-goat-chunk-TCQANXYC.mjs";
35
- import "./token-goat-chunk-NMTKNYGF.mjs";
36
- import "./token-goat-chunk-MELOKFDJ.mjs";
37
48
  import "./token-goat-chunk-Y4AFKTHK.mjs";
38
- import "./token-goat-chunk-JTKCQMQA.mjs";
49
+ import "./token-goat-chunk-GOLEOXZP.mjs";
50
+ import "./token-goat-chunk-AM5V6GSX.mjs";
51
+ import "./token-goat-chunk-FNFBKLRD.mjs";
52
+ import "./token-goat-chunk-VES7EL7O.mjs";
53
+ import "./token-goat-chunk-KWPNJBDH.mjs";
54
+ import "./token-goat-chunk-HAVAOB3S.mjs";
39
55
  import {
40
56
  init_define_import_meta_env
41
57
  } from "./token-goat-chunk-A37V4PBF.mjs";
@@ -2,14 +2,14 @@ import { createRequire as __cjsRequire } from 'node:module';
2
2
  const require = __cjsRequire(import.meta.url);
3
3
  import {
4
4
  runCliViaServer
5
- } from "./token-goat-chunk-RQGGMPCR.mjs";
6
- import "./token-goat-chunk-DPNLUJWB.mjs";
5
+ } from "./token-goat-chunk-CYCEYAEO.mjs";
6
+ import "./token-goat-chunk-LOBGHXPB.mjs";
7
7
  import "./token-goat-chunk-IVE6U7KV.mjs";
8
8
  import {
9
9
  installEpipeGuard
10
- } from "./token-goat-chunk-TCQANXYC.mjs";
11
- import "./token-goat-chunk-NMTKNYGF.mjs";
12
- import "./token-goat-chunk-MELOKFDJ.mjs";
10
+ } from "./token-goat-chunk-AM5V6GSX.mjs";
11
+ import "./token-goat-chunk-FNFBKLRD.mjs";
12
+ import "./token-goat-chunk-VES7EL7O.mjs";
13
13
  import {
14
14
  init_define_import_meta_env
15
15
  } from "./token-goat-chunk-A37V4PBF.mjs";
@@ -18,5 +18,5 @@ import {
18
18
  init_define_import_meta_env();
19
19
  installEpipeGuard();
20
20
  void runCliViaServer(process.argv).then(async (served) => {
21
- if (!served) await (await import("./token-goat-chunk-HUYUHODZ.mjs")).run();
21
+ if (!served) await (await import("./token-goat-chunk-HOJLCGDP.mjs")).run();
22
22
  });
@@ -84,7 +84,7 @@ flowchart TB
84
84
  HookRelay["⚡ Hook Relay & Normalizer<br/><small>[dist/token-goat-hook.mjs]</small><br/>Normalizes Codex/Gemini/Claude schemas"]:::process
85
85
  CLIBinary["💻 CLI Tool & Command Suite<br/><small>[dist/token-goat.mjs]</small><br/>100+ surgical read, outline, pack commands"]:::process
86
86
  MCPServer["🔌 MCP stdio Server<br/><small>[token-goat mcp-serve]</small><br/>18 tools: symbol, read, retrieve, section"]:::process
87
- WorkerDaemon["🔄 Background Indexer Daemon<br/><small>[worker.ts / worker_daemon.ts]</small><br/>Polls dirty queue every 2s, reindexes changes"]:::process
87
+ WorkerDaemon["🔄 Background Indexer Daemon<br/><small>[worker.ts / worker_daemon.ts]</small><br/>Wakes on each dirty-queue append (2s poll fallback), reindexes changes"]:::process
88
88
  end
89
89
 
90
90
  subgraph DiskStorage ["Persistent Storage Model (%LOCALAPPDATA% or ~/.token-goat)"]