token-goat 2.9.20 → 2.9.22

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 (49) hide show
  1. package/THIRD_PARTY_NOTICES.md +2 -2
  2. package/dist/{token-goat-chunk-GIPMOGOI.mjs → token-goat-chunk-273O227F.mjs} +5 -5
  3. package/dist/{token-goat-chunk-3VTJC7KU.mjs → token-goat-chunk-2GAK6LNK.mjs} +13 -12
  4. package/dist/{token-goat-chunk-QCQUIPIP.mjs → token-goat-chunk-3U6ZYVX5.mjs} +1582 -773
  5. package/dist/{token-goat-chunk-W6QYCWAT.mjs → token-goat-chunk-4642QVSQ.mjs} +6 -6
  6. package/dist/{token-goat-chunk-VYXGHGUY.mjs → token-goat-chunk-47MFMDCL.mjs} +3 -3
  7. package/dist/{token-goat-chunk-ZHFM4DHJ.mjs → token-goat-chunk-4NS4CAKI.mjs} +2 -2
  8. package/dist/{token-goat-chunk-ASTBLE2R.mjs → token-goat-chunk-4QGFVPFJ.mjs} +3 -3
  9. package/dist/{token-goat-chunk-H4VC5TR6.mjs → token-goat-chunk-4W2SZZIL.mjs} +27 -27
  10. package/dist/{token-goat-chunk-ERGHDBC6.mjs → token-goat-chunk-646GCK7P.mjs} +213 -208
  11. package/dist/{token-goat-chunk-3OGZOFLS.mjs → token-goat-chunk-6MTX77BB.mjs} +17 -17
  12. package/dist/{token-goat-chunk-VSJGPEBB.mjs → token-goat-chunk-75DLQORE.mjs} +4 -4
  13. package/dist/{token-goat-chunk-Z4ALQADF.mjs → token-goat-chunk-765U7OJS.mjs} +23 -21
  14. package/dist/{token-goat-chunk-DNAF26L4.mjs → token-goat-chunk-7TAFIQS4.mjs} +1 -1
  15. package/dist/{token-goat-chunk-T6M7DAW3.mjs → token-goat-chunk-CHLHM42P.mjs} +13 -1
  16. package/dist/{token-goat-chunk-T63VHOL3.mjs → token-goat-chunk-CTPTUL7L.mjs} +16 -2
  17. package/dist/{token-goat-chunk-SP5QR2HN.mjs → token-goat-chunk-CVPCUQON.mjs} +3 -3
  18. package/dist/{token-goat-chunk-2CLWWRFR.mjs → token-goat-chunk-DMCYWDMB.mjs} +10 -10
  19. package/dist/{token-goat-chunk-74ADIZZX.mjs → token-goat-chunk-DN4HSMH7.mjs} +1 -1
  20. package/dist/{token-goat-chunk-PTW22MRC.mjs → token-goat-chunk-EU5KDBII.mjs} +1 -1
  21. package/dist/{token-goat-chunk-2Q3N5KUQ.mjs → token-goat-chunk-FI4MIIER.mjs} +54 -38
  22. package/dist/{token-goat-chunk-ONMU7BON.mjs → token-goat-chunk-G7NIU2HH.mjs} +2 -2
  23. package/dist/{token-goat-chunk-MNJWG2ZO.mjs → token-goat-chunk-GKZLHNGN.mjs} +2 -2
  24. package/dist/{token-goat-chunk-BQIC3AVL.mjs → token-goat-chunk-HCEW3KTN.mjs} +2 -2
  25. package/dist/{token-goat-chunk-DYUBZZNP.mjs → token-goat-chunk-HGXKWLYQ.mjs} +10 -10
  26. package/dist/{token-goat-chunk-CBXLE54Q.mjs → token-goat-chunk-I4OCEISJ.mjs} +8 -8
  27. package/dist/{token-goat-chunk-KT75DZK4.mjs → token-goat-chunk-JGQ2SBAA.mjs} +4 -4
  28. package/dist/{token-goat-chunk-6LJNM4ZZ.mjs → token-goat-chunk-K5KG65OI.mjs} +1 -1
  29. package/dist/{token-goat-chunk-DW4VKU7D.mjs → token-goat-chunk-KJCMNJCG.mjs} +4 -4
  30. package/dist/{token-goat-chunk-K3ZNBN4U.mjs → token-goat-chunk-LPOEPINH.mjs} +2 -2
  31. package/dist/{token-goat-chunk-DPHJU3P7.mjs → token-goat-chunk-N3UUZAYN.mjs} +60 -27
  32. package/dist/{token-goat-chunk-ODF7H7WS.mjs → token-goat-chunk-N6WCYKW5.mjs} +2 -2
  33. package/dist/{token-goat-chunk-P4XBHZXU.mjs → token-goat-chunk-ONXXR7MS.mjs} +1 -1
  34. package/dist/{token-goat-chunk-ITWYDOKP.mjs → token-goat-chunk-OSLK5MBY.mjs} +4 -4
  35. package/dist/{token-goat-chunk-AU2K2QHR.mjs → token-goat-chunk-PQD6JTXN.mjs} +3 -3
  36. package/dist/{token-goat-chunk-T46UKRFM.mjs → token-goat-chunk-SLE5MVTU.mjs} +1 -1
  37. package/dist/{token-goat-chunk-PAVWB4L4.mjs → token-goat-chunk-TD5JS4ST.mjs} +3 -3
  38. package/dist/{token-goat-chunk-EUZKG7ZO.mjs → token-goat-chunk-TEK5LV6B.mjs} +3 -3
  39. package/dist/{token-goat-chunk-FWYZVS3E.mjs → token-goat-chunk-VRS6B7UD.mjs} +10 -14
  40. package/dist/{token-goat-chunk-I5PQRHFE.mjs → token-goat-chunk-VVPAGLLE.mjs} +8 -8
  41. package/dist/{token-goat-chunk-OMNQUUIT.mjs → token-goat-chunk-XBESNWEX.mjs} +1 -1
  42. package/dist/token-goat-chunk-YDPJCY62.mjs +41 -0
  43. package/dist/{token-goat-chunk-SL454EN5.mjs → token-goat-chunk-YHCUBOVZ.mjs} +5 -5
  44. package/dist/{token-goat-chunk-K5XPIUVB.mjs → token-goat-chunk-YVCGELLH.mjs} +3 -3
  45. package/dist/{token-goat-chunk-MUJV7BR3.mjs → token-goat-chunk-ZO6OALTM.mjs} +1 -1
  46. package/dist/token-goat-hook.mjs +17 -17
  47. package/dist/token-goat.core.mjs +27 -27
  48. package/package.json +1 -1
  49. package/dist/token-goat-chunk-G6SYQQO7.mjs +0 -41
@@ -2,16 +2,16 @@ import { createRequire as __cjsRequire } from 'node:module';
2
2
  const require = __cjsRequire(import.meta.url);
3
3
  import {
4
4
  compareSemver
5
- } from "./token-goat-chunk-ONMU7BON.mjs";
5
+ } from "./token-goat-chunk-G7NIU2HH.mjs";
6
6
  import {
7
7
  buildCopilotWasteReport,
8
8
  findLatestCopilotSession,
9
9
  findProjectSession,
10
10
  isCopilotTranscript
11
- } from "./token-goat-chunk-EUZKG7ZO.mjs";
11
+ } from "./token-goat-chunk-TEK5LV6B.mjs";
12
12
  import {
13
13
  buildResumePacket
14
- } from "./token-goat-chunk-W6QYCWAT.mjs";
14
+ } from "./token-goat-chunk-4642QVSQ.mjs";
15
15
  import {
16
16
  ALL_SYMBOLS_IN_FILE_LIMIT,
17
17
  AMBIGUOUS_HEADING_LIMIT,
@@ -107,7 +107,7 @@ import {
107
107
  symbolNamesInFile,
108
108
  upsertNote,
109
109
  warnIfFilesStale
110
- } from "./token-goat-chunk-3VTJC7KU.mjs";
110
+ } from "./token-goat-chunk-2GAK6LNK.mjs";
111
111
  import {
112
112
  DEFAULT_RECONCILE_BUDGET_MS,
113
113
  HOOK_EVENTS,
@@ -126,17 +126,17 @@ import {
126
126
  runRecallCommand,
127
127
  runReconcile,
128
128
  storeWebOutput
129
- } from "./token-goat-chunk-I5PQRHFE.mjs";
129
+ } from "./token-goat-chunk-VVPAGLLE.mjs";
130
130
  import {
131
131
  buildWasteReport,
132
132
  extractResultText,
133
133
  findLatestTranscript,
134
134
  projectTranscriptsDir,
135
135
  safeStringify
136
- } from "./token-goat-chunk-BQIC3AVL.mjs";
136
+ } from "./token-goat-chunk-HCEW3KTN.mjs";
137
137
  import {
138
138
  buildManifest
139
- } from "./token-goat-chunk-VSJGPEBB.mjs";
139
+ } from "./token-goat-chunk-75DLQORE.mjs";
140
140
  import {
141
141
  GEMINI_TOOL_NAME_MAP,
142
142
  MAX_FILES_SCANNED,
@@ -163,7 +163,6 @@ import {
163
163
  findContentDuplicates,
164
164
  findMemSuggestionCandidates,
165
165
  findMemoryMd,
166
- findOrphanedChunkPaths,
167
166
  findSystemTempFiles,
168
167
  findTopIndexedProjects,
169
168
  formatMemSuggestions,
@@ -190,8 +189,6 @@ import {
190
189
  markCategoryIneffective,
191
190
  pruneBlockedRoot,
192
191
  pruneDeletedFiles,
193
- pruneOrphanedChunks,
194
- pruneOrphanedVectors,
195
192
  pruneSystemTempFiles,
196
193
  pruneUnembeddableChunks,
197
194
  readCompactBody,
@@ -205,19 +202,20 @@ import {
205
202
  shrinkImage,
206
203
  startDetachedWorker,
207
204
  stopWorker,
205
+ sweepKnownRoots,
208
206
  toolMatcherFor,
209
207
  urlPolicyDenialReason,
210
208
  visionTokensSavedByText,
211
209
  walkProject,
212
210
  writeCompact
213
- } from "./token-goat-chunk-DPHJU3P7.mjs";
211
+ } from "./token-goat-chunk-N3UUZAYN.mjs";
214
212
  import {
215
213
  CompressedOutput,
216
214
  TOOL_FILTERS,
217
215
  ToolFilter,
218
216
  deliverCompressed,
219
217
  detectFromCommand
220
- } from "./token-goat-chunk-PAVWB4L4.mjs";
218
+ } from "./token-goat-chunk-TD5JS4ST.mjs";
221
219
  import {
222
220
  HOOKS_SCRIPT_FILE,
223
221
  MATERIALIZE_SHRUNK_IMAGE_JS,
@@ -255,7 +253,7 @@ import {
255
253
  visualStudioProjectMcpPath,
256
254
  visualStudioSolutionVscodeMcpPath,
257
255
  visualStudioUserMcpPath
258
- } from "./token-goat-chunk-SP5QR2HN.mjs";
256
+ } from "./token-goat-chunk-CVPCUQON.mjs";
259
257
  import {
260
258
  AGENT_SALT_MARKER,
261
259
  CONTEXT_AUTOCOMPACT_TOKENS,
@@ -281,7 +279,7 @@ import {
281
279
  skillOutputsDir,
282
280
  storeCompact,
283
281
  storeOutput
284
- } from "./token-goat-chunk-KT75DZK4.mjs";
282
+ } from "./token-goat-chunk-JGQ2SBAA.mjs";
285
283
  import {
286
284
  capJsonRows,
287
285
  claudeConfigDir,
@@ -290,14 +288,14 @@ import {
290
288
  formatBytes,
291
289
  formatTokenEstimate,
292
290
  trimToBudget
293
- } from "./token-goat-chunk-ZHFM4DHJ.mjs";
291
+ } from "./token-goat-chunk-4NS4CAKI.mjs";
294
292
  import {
295
293
  BASH_OUTPUT_SUBDIR,
296
294
  clipLongMatchLine,
297
295
  combineStreams,
298
296
  getBashOutput,
299
297
  isRecallCacheType
300
- } from "./token-goat-chunk-SL454EN5.mjs";
298
+ } from "./token-goat-chunk-YHCUBOVZ.mjs";
301
299
  import {
302
300
  C,
303
301
  DEFAULT_MAX_AGE_MS,
@@ -323,19 +321,19 @@ import {
323
321
  statsHasHarnessColumn,
324
322
  stripAnsiEscapes,
325
323
  summarize
326
- } from "./token-goat-chunk-K5XPIUVB.mjs";
324
+ } from "./token-goat-chunk-YVCGELLH.mjs";
327
325
  import {
328
326
  docxOutline,
329
327
  docxTables,
330
328
  docxText,
331
329
  formatDocxTables
332
- } from "./token-goat-chunk-PTW22MRC.mjs";
330
+ } from "./token-goat-chunk-EU5KDBII.mjs";
333
331
  import {
334
332
  pptxNotesText,
335
333
  pptxOutline,
336
334
  pptxSlideText,
337
335
  pptxTextGrep
338
- } from "./token-goat-chunk-DNAF26L4.mjs";
336
+ } from "./token-goat-chunk-7TAFIQS4.mjs";
339
337
  import {
340
338
  formatXlsxColumns,
341
339
  formatXlsxRange,
@@ -344,11 +342,11 @@ import {
344
342
  querySheet,
345
343
  rangeSheet,
346
344
  xlsxColumns
347
- } from "./token-goat-chunk-ODF7H7WS.mjs";
345
+ } from "./token-goat-chunk-N6WCYKW5.mjs";
348
346
  import {
349
347
  formatCsvTable,
350
348
  parseWhereSpecs
351
- } from "./token-goat-chunk-P4XBHZXU.mjs";
349
+ } from "./token-goat-chunk-ONXXR7MS.mjs";
352
350
  import {
353
351
  assetEmbedSha,
354
352
  deleteFileEmbeddings,
@@ -374,12 +372,12 @@ import {
374
372
  readSection,
375
373
  treeSitterCoreAvailable,
376
374
  treeSitterCoreLoadError
377
- } from "./token-goat-chunk-ERGHDBC6.mjs";
375
+ } from "./token-goat-chunk-646GCK7P.mjs";
378
376
  import {
379
377
  getFileEntry,
380
378
  getProjectFileEntries,
381
379
  querySymbols
382
- } from "./token-goat-chunk-K3ZNBN4U.mjs";
380
+ } from "./token-goat-chunk-LPOEPINH.mjs";
383
381
  import {
384
382
  TREE_SITTER_LANGUAGES,
385
383
  detectLanguage,
@@ -390,7 +388,7 @@ import {
390
388
  matchGroovySlashy,
391
389
  nonTreeSitterLanguageCount,
392
390
  redactIfDotenv
393
- } from "./token-goat-chunk-T63VHOL3.mjs";
391
+ } from "./token-goat-chunk-CTPTUL7L.mjs";
394
392
  import {
395
393
  CONFIG_KEY_ENV_OVERRIDES,
396
394
  PROJECT_LOCKED_KEYS,
@@ -419,7 +417,7 @@ import {
419
417
  stringify,
420
418
  validateEnumField,
421
419
  validateNumericField
422
- } from "./token-goat-chunk-74ADIZZX.mjs";
420
+ } from "./token-goat-chunk-DN4HSMH7.mjs";
423
421
  import {
424
422
  ENV_KEYS,
425
423
  LOCK_WAIT_MS_HARDENED,
@@ -480,7 +478,7 @@ import {
480
478
  withRetryOnLock,
481
479
  writeIfDifferent,
482
480
  writeJsonSettings
483
- } from "./token-goat-chunk-6LJNM4ZZ.mjs";
481
+ } from "./token-goat-chunk-K5KG65OI.mjs";
484
482
  import {
485
483
  UNTRUSTED_FILE_TAG,
486
484
  UNTRUSTED_TOOL_TAG,
@@ -8471,7 +8469,7 @@ async function runDoctorAndExit(opts) {
8471
8469
  }
8472
8470
  }
8473
8471
  try {
8474
- const { checkUpdateStatus } = await import("./token-goat-chunk-AU2K2QHR.mjs");
8472
+ const { checkUpdateStatus } = await import("./token-goat-chunk-PQD6JTXN.mjs");
8475
8473
  const update = await checkUpdateStatus(1500);
8476
8474
  if (update.updateAvailable && update.latest) {
8477
8475
  console.log(`
@@ -9324,10 +9322,12 @@ function cmdProject(opts) {
9324
9322
  const removed = before.length - after.length;
9325
9323
  const stale = before.filter((r) => !after.includes(r));
9326
9324
  const staleTempFiles = findSystemTempFiles();
9327
- const orphanChunkPaths = findOrphanedChunkPaths();
9325
+ const sweep = sweepKnownRoots(void 0, { dryRun: opts.dryRun === true });
9326
+ const orphanChunkPaths = sweep.prunedOrphanChunkPaths;
9327
+ const deadRetryPaths = sweep.prunedDeadRetryPaths;
9328
9328
  if (opts.dryRun === true) {
9329
9329
  if (opts.json === true) {
9330
- emit(displaySafeJson({ dryRun: true, wouldPrune: removed, stale, wouldPruneTempFiles: staleTempFiles.length, staleTempFiles, wouldPruneOrphanChunkFiles: orphanChunkPaths.length, orphanChunkPaths, blocked_roots: before }));
9330
+ emit(displaySafeJson({ dryRun: true, wouldPrune: removed, stale, wouldPruneTempFiles: staleTempFiles.length, staleTempFiles, wouldPruneOrphanChunkFiles: orphanChunkPaths.length, orphanChunkPaths, wouldPruneDeadRetryPaths: deadRetryPaths.length, deadRetryPaths, wouldPruneDeadFileRows: sweep.prunedRows, deadRowRoots: sweep.prunedRoots, flaggedRoots: sweep.flaggedRoots, blocked_roots: before }));
9331
9331
  return;
9332
9332
  }
9333
9333
  if (removed === 0) {
@@ -9348,22 +9348,38 @@ function cmdProject(opts) {
9348
9348
  emit(`Would prune orphaned embedding chunks for ${orphanChunkPaths.length} file(s):`);
9349
9349
  for (const p of orphanChunkPaths) emit(` ${p}`);
9350
9350
  }
9351
+ if (deadRetryPaths.length === 0) {
9352
+ emit("Would prune 0 dead read-retry counter(s). Nothing to do.");
9353
+ } else {
9354
+ emit(`Would prune ${deadRetryPaths.length} dead read-retry counter(s):`);
9355
+ for (const p of deadRetryPaths) emit(` ${p}`);
9356
+ }
9357
+ if (sweep.prunedRows === 0) {
9358
+ emit("Would prune 0 dead file row(s) under known roots. Nothing to do.");
9359
+ } else {
9360
+ emit(`Would prune ${sweep.prunedRows} dead file row(s) under ${sweep.prunedRoots.length} known root(s):`);
9361
+ for (const r of sweep.prunedRoots) emit(` ${r}`);
9362
+ }
9363
+ for (const r of sweep.flaggedRoots) emit(` skipped (too many rows would go at once, root may be partly offline): ${r}`);
9351
9364
  return;
9352
9365
  }
9353
9366
  cfg.worker.blocked_roots = after;
9354
9367
  saveConfigSafe(cfg);
9355
9368
  invalidateConfigCache();
9356
9369
  const prunedTempFiles = pruneSystemTempFiles();
9357
- const prunedOrphanChunks = pruneOrphanedChunks();
9358
- const prunedOrphanVectors = pruneOrphanedVectors();
9370
+ const prunedOrphanChunks = sweep.prunedOrphanChunkPaths;
9371
+ const prunedOrphanVectors = sweep.prunedOrphanVectors;
9359
9372
  if (opts.json === true) {
9360
- emit(displaySafeJson({ pruned: removed, blocked_roots: after, prunedTempFiles: prunedTempFiles.length, prunedOrphanChunkFiles: prunedOrphanChunks.length, prunedOrphanVectors }));
9373
+ emit(displaySafeJson({ pruned: removed, blocked_roots: after, prunedTempFiles: prunedTempFiles.length, prunedOrphanChunkFiles: prunedOrphanChunks.length, prunedOrphanVectors, prunedDeadRetryPaths: sweep.prunedDeadRetryPaths.length, prunedDeadFileRows: sweep.prunedRows, deadRowRoots: sweep.prunedRoots, flaggedRoots: sweep.flaggedRoots }));
9361
9374
  return;
9362
9375
  }
9363
9376
  emit(`Pruned ${removed} stale root(s). Remaining: ${after.length}`);
9364
9377
  emit(`Pruned ${prunedTempFiles.length} stale indexed temp-dir file(s).`);
9365
9378
  emit(`Pruned orphaned embedding chunks for ${prunedOrphanChunks.length} file(s).`);
9366
9379
  emit(`Pruned ${prunedOrphanVectors} orphaned embedding vector(s).`);
9380
+ emit(`Pruned ${sweep.prunedDeadRetryPaths.length} dead read-retry counter(s).`);
9381
+ emit(`Pruned ${sweep.prunedRows} dead file row(s) under ${sweep.prunedRoots.length} known root(s).`);
9382
+ for (const r of sweep.flaggedRoots) emit(` skipped (too many rows would go at once, root may be partly offline): ${r}`);
9367
9383
  return;
9368
9384
  }
9369
9385
  emitErr(`project: unknown action '${action}'. Use list, exclude, or prune.`);
@@ -18417,7 +18433,7 @@ function cmdWaste(opts = {}) {
18417
18433
  });
18418
18434
  }
18419
18435
  async function cmdAudit(opts = {}) {
18420
- const { runAuditCommand } = await import("./token-goat-chunk-DYUBZZNP.mjs");
18436
+ const { runAuditCommand } = await import("./token-goat-chunk-HGXKWLYQ.mjs");
18421
18437
  return runAuditCommand({
18422
18438
  ...opts.project !== void 0 ? { project: opts.project } : {},
18423
18439
  ...opts.transcript !== void 0 ? { transcript: opts.transcript } : {},
@@ -20350,7 +20366,7 @@ async function cmdMcpServe() {
20350
20366
  let StdioServerTransport;
20351
20367
  try {
20352
20368
  ;
20353
- ({ createMcpServer } = await import("./token-goat-chunk-3OGZOFLS.mjs"));
20369
+ ({ createMcpServer } = await import("./token-goat-chunk-6MTX77BB.mjs"));
20354
20370
  ({ StdioServerTransport } = await import("./token-goat-chunk-EVC4TOLE.mjs"));
20355
20371
  } catch (err2) {
20356
20372
  process.stderr.write(
@@ -20375,7 +20391,7 @@ async function cmdHook(event, opts) {
20375
20391
  if (typeof opts.harness === "string" && opts.harness.length > 0) {
20376
20392
  process.env[ENV_KEYS.HARNESS_OVERRIDE] = opts.harness;
20377
20393
  }
20378
- const { relay } = await import("./token-goat-chunk-G6SYQQO7.mjs");
20394
+ const { relay } = await import("./token-goat-chunk-YDPJCY62.mjs");
20379
20395
  await relay(event);
20380
20396
  }
20381
20397
  function projectHooksCommitNote(pathFiles, hooksConfigPath) {
@@ -20412,7 +20428,7 @@ async function cmdInstall(opts) {
20412
20428
  if (opts.project === true && opts.user === true) {
20413
20429
  throw new Error("install takes either -p/--project or --user, not both.");
20414
20430
  }
20415
- await import("./token-goat-chunk-G6SYQQO7.mjs");
20431
+ await import("./token-goat-chunk-YDPJCY62.mjs");
20416
20432
  const scope = opts.project === true ? "project" : "user";
20417
20433
  if (wantsClaudeCodeBase(opts)) {
20418
20434
  const result = installHooks(scope);
@@ -21003,7 +21019,7 @@ async function cmdCompress(commandArgs, opts = {}) {
21003
21019
  process.exitCode = 1;
21004
21020
  return;
21005
21021
  }
21006
- const bashRunner = await import("./token-goat-chunk-CBXLE54Q.mjs");
21022
+ const bashRunner = await import("./token-goat-chunk-I4OCEISJ.mjs");
21007
21023
  if (opts.compress === false) {
21008
21024
  process.exitCode = bashRunner.runRaw(command, parseTimeout(opts.timeout, bashRunner.DEFAULT_TIMEOUT_SECONDS));
21009
21025
  return;
@@ -21269,7 +21285,7 @@ function buildProgram() {
21269
21285
  program2.command("compress [command...]").alias("bash").alias("run").description("run a shell command (under a POSIX shell / bash) and emit a compressed view of its output").allowUnknownOption(true).option("-c, --cmd <command>", "the shell command to run, as one string (use / for paths across platforms)").option("--cmd-b64 <payload>", "the shell command as a base64-encoded string (preserves quotes, backslashes, and symbols across platforms)").option("-f, --filter <name>", "filter name (auto-detected from the command when omitted)").option("--timeout <seconds>", "wall-clock timeout in seconds (0 = built-in default)").option("--no-compress", "stream output raw without compression (debug the wrapper)").option("--profile <name>", "compression profile: aggressive | balanced | minimal").option("--max-tokens <n>", "post-compress token cap (0 = no cap)").option("-q, --quiet-success", "on exit code 0, emit only [tg: ok] summary and store full output for recall via bash-output").option("--native", "use native platform shell (e.g. cmd.exe on Windows) instead of bash, preserving Windows path backslashes").action(cmdCompress);
21270
21286
  program2.command("upgrade").alias("update").description("check for updates and upgrade token-goat to the latest version").option("--check", "check whether an update is available without installing").option("-j, --json", "emit version check status as JSON").action(
21271
21287
  (opts) => guard(async () => {
21272
- const { cmdUpgrade } = await import("./token-goat-chunk-AU2K2QHR.mjs");
21288
+ const { cmdUpgrade } = await import("./token-goat-chunk-PQD6JTXN.mjs");
21273
21289
  await cmdUpgrade(opts, () => cmdInstall({}));
21274
21290
  })()
21275
21291
  );
@@ -2,10 +2,10 @@ import { createRequire as __cjsRequire } from 'node:module';
2
2
  const require = __cjsRequire(import.meta.url);
3
3
  import {
4
4
  loadConfig
5
- } from "./token-goat-chunk-74ADIZZX.mjs";
5
+ } from "./token-goat-chunk-DN4HSMH7.mjs";
6
6
  import {
7
7
  VERSION
8
- } from "./token-goat-chunk-6LJNM4ZZ.mjs";
8
+ } from "./token-goat-chunk-K5KG65OI.mjs";
9
9
  import {
10
10
  displaySafeJson
11
11
  } from "./token-goat-chunk-NMTKNYGF.mjs";
@@ -5,11 +5,11 @@ import {
5
5
  isSupportedOcrLang,
6
6
  loadConfig,
7
7
  resolveOcrLangs
8
- } from "./token-goat-chunk-74ADIZZX.mjs";
8
+ } from "./token-goat-chunk-DN4HSMH7.mjs";
9
9
  import {
10
10
  ensureDirSync,
11
11
  tokenGoatHome
12
- } from "./token-goat-chunk-6LJNM4ZZ.mjs";
12
+ } from "./token-goat-chunk-K5KG65OI.mjs";
13
13
  import {
14
14
  fenceUntrustedOcrText
15
15
  } from "./token-goat-chunk-NMTKNYGF.mjs";
@@ -6,12 +6,12 @@ import {
6
6
  createResidentContextStats,
7
7
  estimateTokens,
8
8
  summarizeResidentContext
9
- } from "./token-goat-chunk-ZHFM4DHJ.mjs";
9
+ } from "./token-goat-chunk-4NS4CAKI.mjs";
10
10
  import {
11
11
  commandHash,
12
12
  getBashOutput,
13
13
  normalizeCommandForCacheKey
14
- } from "./token-goat-chunk-SL454EN5.mjs";
14
+ } from "./token-goat-chunk-YHCUBOVZ.mjs";
15
15
  import {
16
16
  init_define_import_meta_env
17
17
  } from "./token-goat-chunk-A37V4PBF.mjs";
@@ -4,22 +4,22 @@ import {
4
4
  buildCopilotWasteReport,
5
5
  findProjectSession,
6
6
  isCopilotTranscript
7
- } from "./token-goat-chunk-EUZKG7ZO.mjs";
7
+ } from "./token-goat-chunk-TEK5LV6B.mjs";
8
8
  import {
9
9
  buildWasteReport
10
- } from "./token-goat-chunk-BQIC3AVL.mjs";
11
- import "./token-goat-chunk-SP5QR2HN.mjs";
12
- import "./token-goat-chunk-ZHFM4DHJ.mjs";
13
- import "./token-goat-chunk-SL454EN5.mjs";
14
- import "./token-goat-chunk-K5XPIUVB.mjs";
15
- import "./token-goat-chunk-K3ZNBN4U.mjs";
16
- import "./token-goat-chunk-T63VHOL3.mjs";
10
+ } from "./token-goat-chunk-HCEW3KTN.mjs";
11
+ import "./token-goat-chunk-CVPCUQON.mjs";
12
+ import "./token-goat-chunk-4NS4CAKI.mjs";
13
+ import "./token-goat-chunk-YHCUBOVZ.mjs";
14
+ import "./token-goat-chunk-YVCGELLH.mjs";
15
+ import "./token-goat-chunk-LPOEPINH.mjs";
16
+ import "./token-goat-chunk-CTPTUL7L.mjs";
17
17
  import {
18
18
  resolveProjectRoot
19
- } from "./token-goat-chunk-74ADIZZX.mjs";
19
+ } from "./token-goat-chunk-DN4HSMH7.mjs";
20
20
  import "./token-goat-chunk-EEIDFMEM.mjs";
21
21
  import "./token-goat-chunk-OSUFN2FV.mjs";
22
- import "./token-goat-chunk-6LJNM4ZZ.mjs";
22
+ import "./token-goat-chunk-K5KG65OI.mjs";
23
23
  import {
24
24
  displaySafeJson
25
25
  } from "./token-goat-chunk-NMTKNYGF.mjs";
@@ -7,16 +7,16 @@ import {
7
7
  resolveFilter,
8
8
  run,
9
9
  runRaw
10
- } from "./token-goat-chunk-ITWYDOKP.mjs";
11
- import "./token-goat-chunk-PAVWB4L4.mjs";
12
- import "./token-goat-chunk-SL454EN5.mjs";
13
- import "./token-goat-chunk-K5XPIUVB.mjs";
14
- import "./token-goat-chunk-K3ZNBN4U.mjs";
15
- import "./token-goat-chunk-T63VHOL3.mjs";
16
- import "./token-goat-chunk-74ADIZZX.mjs";
10
+ } from "./token-goat-chunk-OSLK5MBY.mjs";
11
+ import "./token-goat-chunk-TD5JS4ST.mjs";
12
+ import "./token-goat-chunk-YHCUBOVZ.mjs";
13
+ import "./token-goat-chunk-YVCGELLH.mjs";
14
+ import "./token-goat-chunk-LPOEPINH.mjs";
15
+ import "./token-goat-chunk-CTPTUL7L.mjs";
16
+ import "./token-goat-chunk-DN4HSMH7.mjs";
17
17
  import "./token-goat-chunk-EEIDFMEM.mjs";
18
18
  import "./token-goat-chunk-OSUFN2FV.mjs";
19
- import "./token-goat-chunk-6LJNM4ZZ.mjs";
19
+ import "./token-goat-chunk-K5KG65OI.mjs";
20
20
  import "./token-goat-chunk-NMTKNYGF.mjs";
21
21
  import "./token-goat-chunk-GMOUBOX4.mjs";
22
22
  import "./token-goat-chunk-A37V4PBF.mjs";
@@ -3,19 +3,19 @@ const require = __cjsRequire(import.meta.url);
3
3
  import {
4
4
  claudeConfigDir,
5
5
  readTranscriptTail
6
- } from "./token-goat-chunk-ZHFM4DHJ.mjs";
6
+ } from "./token-goat-chunk-4NS4CAKI.mjs";
7
7
  import {
8
8
  DEFAULT_MAX_AGE_MS,
9
9
  DEFAULT_MAX_COUNT,
10
10
  recordStat,
11
11
  redactSecrets
12
- } from "./token-goat-chunk-K5XPIUVB.mjs";
12
+ } from "./token-goat-chunk-YVCGELLH.mjs";
13
13
  import {
14
14
  detectHarness,
15
15
  isAutoTriggerMultiplierExplicit,
16
16
  loadConfig,
17
17
  shortFingerprint
18
- } from "./token-goat-chunk-74ADIZZX.mjs";
18
+ } from "./token-goat-chunk-DN4HSMH7.mjs";
19
19
  import {
20
20
  registerReset
21
21
  } from "./token-goat-chunk-EEIDFMEM.mjs";
@@ -31,7 +31,7 @@ import {
31
31
  stripLower,
32
32
  tokenGoatHome,
33
33
  withFileLock
34
- } from "./token-goat-chunk-6LJNM4ZZ.mjs";
34
+ } from "./token-goat-chunk-K5KG65OI.mjs";
35
35
  import {
36
36
  normalizePath
37
37
  } from "./token-goat-chunk-NMTKNYGF.mjs";
@@ -21,7 +21,7 @@ init_define_import_meta_env();
21
21
  import { createRequire } from "node:module";
22
22
  function resolveVersion() {
23
23
  if (true) {
24
- return "2.9.20";
24
+ return "2.9.22";
25
25
  }
26
26
  const require2 = createRequire(import.meta.url);
27
27
  const pkg = require2("../package.json");
@@ -10,13 +10,13 @@ import {
10
10
  querySheet,
11
11
  rangeSheet,
12
12
  xlsxColumns
13
- } from "./token-goat-chunk-ODF7H7WS.mjs";
14
- import "./token-goat-chunk-P4XBHZXU.mjs";
13
+ } from "./token-goat-chunk-N6WCYKW5.mjs";
14
+ import "./token-goat-chunk-ONXXR7MS.mjs";
15
15
  import "./token-goat-chunk-3BTK54F3.mjs";
16
- import "./token-goat-chunk-T46UKRFM.mjs";
16
+ import "./token-goat-chunk-SLE5MVTU.mjs";
17
17
  import "./token-goat-chunk-XTQAOTSO.mjs";
18
18
  import "./token-goat-chunk-AH6QILZM.mjs";
19
- import "./token-goat-chunk-6LJNM4ZZ.mjs";
19
+ import "./token-goat-chunk-K5KG65OI.mjs";
20
20
  import "./token-goat-chunk-NMTKNYGF.mjs";
21
21
  import "./token-goat-chunk-Y4AFKTHK.mjs";
22
22
  import "./token-goat-chunk-GMOUBOX4.mjs";
@@ -2,12 +2,12 @@ import { createRequire as __cjsRequire } from 'node:module';
2
2
  const require = __cjsRequire(import.meta.url);
3
3
  import {
4
4
  getDb
5
- } from "./token-goat-chunk-T63VHOL3.mjs";
5
+ } from "./token-goat-chunk-CTPTUL7L.mjs";
6
6
  import {
7
7
  foldPath,
8
8
  globalDbPath,
9
9
  isCaseInsensitiveFs
10
- } from "./token-goat-chunk-6LJNM4ZZ.mjs";
10
+ } from "./token-goat-chunk-K5KG65OI.mjs";
11
11
  import {
12
12
  normalizePath
13
13
  } from "./token-goat-chunk-NMTKNYGF.mjs";