greprag 5.74.19 → 5.74.20

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.
@@ -288,8 +288,29 @@ function crushMessages(messages, opts) {
288
288
  const parts = msg && typeof msg === 'object' ? msg.parts : null;
289
289
  if (!Array.isArray(parts))
290
290
  continue;
291
+ let lastToolName = '';
291
292
  for (const part of parts) {
292
293
  try {
294
+ const p = part;
295
+ // Track the last tool_use command to skip crushing its result
296
+ if (p && typeof p === 'object' && (p.type === 'tool_use' || p.type === 'tool' && p.state === undefined)) {
297
+ const input = p.input;
298
+ const cmd = input && typeof input.command === 'string' ? input.command : '';
299
+ const name = typeof p.name === 'string' ? p.name : '';
300
+ lastToolName = cmd || name;
301
+ }
302
+ if (lastToolName && lastToolName.includes('greprag retrieve')) {
303
+ // Check if this is a tool_result for the greprag retrieve command
304
+ if (p && typeof p === 'object' && p.type === 'tool') {
305
+ stats.partsSkipped++;
306
+ continue;
307
+ }
308
+ // Also skip text parts immediately following (optional)
309
+ if (p && typeof p === 'object' && p.type === 'tool_result' && typeof p.content === 'string') {
310
+ stats.partsSkipped++;
311
+ continue;
312
+ }
313
+ }
293
314
  processPart(part, opts.stash, thresholdBytes, stats, opts.memo, seenHashes);
294
315
  }
295
316
  catch {
@@ -22,18 +22,18 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
22
  mod
23
23
  ));
24
24
 
25
- // ../greprag/packages/cli/src/opencode-plugin.ts
25
+ // src/opencode-plugin.ts
26
26
  var crypto5 = __toESM(require("crypto"));
27
27
  var fs7 = __toESM(require("fs"));
28
28
  var os2 = __toESM(require("os"));
29
29
  var path7 = __toESM(require("path"));
30
30
 
31
- // ../greprag/packages/cli/src/opencode-plugin-helpers.ts
31
+ // src/opencode-plugin-helpers.ts
32
32
  var crypto = __toESM(require("crypto"));
33
33
  var fs = __toESM(require("fs"));
34
34
  var path = __toESM(require("path"));
35
35
 
36
- // ../greprag/packages/cli/src/proc.ts
36
+ // src/proc.ts
37
37
  var import_child_process = require("child_process");
38
38
  function safeExecSync(command, options) {
39
39
  return (0, import_child_process.execSync)(command, { windowsHide: true, ...options });
@@ -45,7 +45,7 @@ function safeSpawn(command, argsOrOptions, maybeOptions) {
45
45
  return (0, import_child_process.spawn)(command, { windowsHide: true, ...argsOrOptions });
46
46
  }
47
47
 
48
- // ../greprag/packages/cli/src/opencode-plugin-helpers.ts
48
+ // src/opencode-plugin-helpers.ts
49
49
  var HOME = process.env.HOME || process.env.USERPROFILE || "";
50
50
  function readAnchorFile(filePath) {
51
51
  try {
@@ -272,7 +272,7 @@ async function buildRecapBody(apiUrl, apiKey, anchor, now = /* @__PURE__ */ new
272
272
  return parts.join("\n");
273
273
  }
274
274
 
275
- // ../greprag/packages/cli/src/crush/crush-types.ts
275
+ // src/crush/crush-types.ts
276
276
  function estimateTokens(text) {
277
277
  return Math.ceil(text.length / 4);
278
278
  }
@@ -292,7 +292,7 @@ function makePassthrough(content, sourceType, reason, units = 0) {
292
292
  };
293
293
  }
294
294
 
295
- // ../greprag/packages/cli/src/crush/adaptive-sizer.ts
295
+ // src/crush/adaptive-sizer.ts
296
296
  function fnv1a(s, seed) {
297
297
  let h = (2166136261 ^ seed) >>> 0;
298
298
  for (let i = 0; i < s.length; i++) {
@@ -394,7 +394,7 @@ function computeOptimalK(items, bias, minK, maxK) {
394
394
  return Math.max(minK, Math.min(k, effectiveMax));
395
395
  }
396
396
 
397
- // ../greprag/packages/cli/src/crush/crush-keywords.ts
397
+ // src/crush/crush-keywords.ts
398
398
  var ERROR_KEYWORDS = [
399
399
  "error",
400
400
  "exception",
@@ -467,7 +467,7 @@ function classifyImportance(line) {
467
467
  return null;
468
468
  }
469
469
 
470
- // ../greprag/packages/cli/src/crush/search-compressor.ts
470
+ // src/crush/search-compressor.ts
471
471
  var DEFAULT_SEARCH_CONFIG = {
472
472
  maxMatchesPerFile: 5,
473
473
  alwaysKeepFirst: true,
@@ -630,7 +630,7 @@ function crushSearch(content, query = "", config = {}) {
630
630
  };
631
631
  }
632
632
 
633
- // ../greprag/packages/cli/src/crush/log-compressor.ts
633
+ // src/crush/log-compressor.ts
634
634
  var DEFAULT_LOG_CONFIG = {
635
635
  maxErrors: 10,
636
636
  errorContextLines: 3,
@@ -941,7 +941,7 @@ function crushLog(content, config = {}) {
941
941
  };
942
942
  }
943
943
 
944
- // ../greprag/packages/cli/src/crush/json-detectors.ts
944
+ // src/crush/json-detectors.ts
945
945
  function classifyArray(items) {
946
946
  if (items.length === 0)
947
947
  return "empty";
@@ -1101,7 +1101,7 @@ function detectErrorItems(items) {
1101
1101
  return out;
1102
1102
  }
1103
1103
 
1104
- // ../greprag/packages/cli/src/crush/json-crusher.ts
1104
+ // src/crush/json-crusher.ts
1105
1105
  var DEFAULT_JSON_CONFIG = {
1106
1106
  minItemsToAnalyze: 10,
1107
1107
  maxItemsAfterCrush: 15,
@@ -1312,7 +1312,7 @@ function crushJson(content, config = {}) {
1312
1312
  };
1313
1313
  }
1314
1314
 
1315
- // ../greprag/packages/cli/src/crush/code-compressor.ts
1315
+ // src/crush/code-compressor.ts
1316
1316
  var DEFAULT_CODE_CONFIG = {
1317
1317
  minLines: 8,
1318
1318
  maxBodyLines: 3
@@ -1599,7 +1599,7 @@ function crushCode(content, config = {}) {
1599
1599
  };
1600
1600
  }
1601
1601
 
1602
- // ../greprag/packages/cli/src/opencode-plugin-crush.ts
1602
+ // src/opencode-plugin-crush.ts
1603
1603
  var import_crypto = require("crypto");
1604
1604
  var CCR_MARKER_HASH_LEN = 16;
1605
1605
  function ccrMarker(hash) {
@@ -1740,8 +1740,26 @@ function crushMessages(messages, opts) {
1740
1740
  const parts = msg && typeof msg === "object" ? msg.parts : null;
1741
1741
  if (!Array.isArray(parts))
1742
1742
  continue;
1743
+ let lastToolName = "";
1743
1744
  for (const part of parts) {
1744
1745
  try {
1746
+ const p = part;
1747
+ if (p && typeof p === "object" && (p.type === "tool_use" || p.type === "tool" && p.state === void 0)) {
1748
+ const input = p.input;
1749
+ const cmd = input && typeof input.command === "string" ? input.command : "";
1750
+ const name = typeof p.name === "string" ? p.name : "";
1751
+ lastToolName = cmd || name;
1752
+ }
1753
+ if (lastToolName && lastToolName.includes("greprag retrieve")) {
1754
+ if (p && typeof p === "object" && p.type === "tool") {
1755
+ stats.partsSkipped++;
1756
+ continue;
1757
+ }
1758
+ if (p && typeof p === "object" && p.type === "tool_result" && typeof p.content === "string") {
1759
+ stats.partsSkipped++;
1760
+ continue;
1761
+ }
1762
+ }
1745
1763
  processPart(part, opts.stash, thresholdBytes, stats, opts.memo, seenHashes);
1746
1764
  } catch {
1747
1765
  stats.partsSkipped++;
@@ -1751,7 +1769,7 @@ function crushMessages(messages, opts) {
1751
1769
  return stats;
1752
1770
  }
1753
1771
 
1754
- // ../greprag/packages/cli/src/commands/os-primer-reminder.ts
1772
+ // src/commands/os-primer-reminder.ts
1755
1773
  function buildOsPrimer(env) {
1756
1774
  const spawnEntry = env?.platform === "codex" ? "codex-chip-spawn" : env?.platform === "opencode" ? "chip-bootloader" : "chip-spawn";
1757
1775
  return [
@@ -1771,7 +1789,7 @@ var osPrimerModule = {
1771
1789
  reminder: () => null
1772
1790
  };
1773
1791
 
1774
- // ../greprag/packages/cli/src/session-id.ts
1792
+ // src/session-id.ts
1775
1793
  function armMonitorCommand(short, ownerPid, assistant = false, mechanic = false) {
1776
1794
  const owner = ownerPid ? ` --owner-pid ${ownerPid}` : "";
1777
1795
  const role = mechanic ? " --mechanic" : assistant ? " --assistant" : "";
@@ -1779,7 +1797,7 @@ function armMonitorCommand(short, ownerPid, assistant = false, mechanic = false)
1779
1797
  return `while true; do ${watch}; case $? in 0|64) break;; esac; sleep 1; done`;
1780
1798
  }
1781
1799
 
1782
- // ../greprag/packages/cli/src/commands/inbox-primer-reminder.ts
1800
+ // src/commands/inbox-primer-reminder.ts
1783
1801
  function buildInboxPrimer(env) {
1784
1802
  const codex = env.platform === "codex";
1785
1803
  const opencode = env.platform === "opencode";
@@ -1817,7 +1835,7 @@ var inboxPrimerModule = {
1817
1835
  reminder: () => null
1818
1836
  };
1819
1837
 
1820
- // ../greprag/packages/cli/src/commands/load-primer-reminder.ts
1838
+ // src/commands/load-primer-reminder.ts
1821
1839
  var LOAD_PRIMER = [
1822
1840
  "[greprag load \u2014 on-demand doctrine. greprag ships its own methods inside the CLI; you never need a `.md` file or a CLAUDE.md entry to use them.]",
1823
1841
  "\u2022 `greprag load` \u2192 browse the catalog (every doctrine entry + its one-line purpose).",
@@ -1869,7 +1887,7 @@ var codexChipSpawnPointerModule = {
1869
1887
  reminder: () => null
1870
1888
  };
1871
1889
 
1872
- // ../greprag/packages/cli/src/commands/email-primer-reminder.ts
1890
+ // src/commands/email-primer-reminder.ts
1873
1891
  var EMAIL_PRIMER = [
1874
1892
  "[greprag email \u2014 the agent's REAL mailbox (actual inbound + outbound SMTP), distinct from `greprag send` (internal session mesh, never real email).]",
1875
1893
  '\u2022 SEND real mail: `greprag email send --to <addr> --subject "s" (--body "t" | --body-file <f|->)` \u2014 from your <handle>@greprag.com. Flags: --html-file (rich body) \xB7 --attach (repeatable) \xB7 --cc/--bcc \xB7 --reply-to \xB7 --from-name \xB7 --from <your-own-handle> (server rejects any address that isn\'t yours \u2014 no forging).',
@@ -1886,7 +1904,7 @@ var emailPrimerModule = {
1886
1904
  reminder: () => null
1887
1905
  };
1888
1906
 
1889
- // ../greprag/packages/cli/src/commands/corpus-reminder.ts
1907
+ // src/commands/corpus-reminder.ts
1890
1908
  function buildCorpusAnnounce(names) {
1891
1909
  if (!names || names.length === 0)
1892
1910
  return null;
@@ -1906,7 +1924,7 @@ var corpusAnnounceModule = {
1906
1924
  reminder: () => null
1907
1925
  };
1908
1926
 
1909
- // ../greprag/packages/cli/src/commands/doc-pointer-reminder.ts
1927
+ // src/commands/doc-pointer-reminder.ts
1910
1928
  var ANNOUNCE_CAP = 20;
1911
1929
  function buildDocPointerAnnounce(pointers) {
1912
1930
  if (!pointers || pointers.length === 0)
@@ -1938,7 +1956,7 @@ var docPointerAnnounceModule = {
1938
1956
  reminder: () => null
1939
1957
  };
1940
1958
 
1941
- // ../greprag/packages/cli/src/commands/setup-reminder.ts
1959
+ // src/commands/setup-reminder.ts
1942
1960
  function setupDetect(env) {
1943
1961
  return env.setupWarning ? { tier: "nudge" } : { tier: "silent" };
1944
1962
  }
@@ -1949,7 +1967,7 @@ var setupWarningModule = {
1949
1967
  reminder: () => null
1950
1968
  };
1951
1969
 
1952
- // ../greprag/packages/cli/src/commands/assistant-reminder.ts
1970
+ // src/commands/assistant-reminder.ts
1953
1971
  function assistantDetect(env) {
1954
1972
  return env.assistantDoctrine ? { tier: "ambient" } : { tier: "silent" };
1955
1973
  }
@@ -1960,7 +1978,7 @@ var assistantDoctrineModule = {
1960
1978
  reminder: () => null
1961
1979
  };
1962
1980
 
1963
- // ../greprag/packages/cli/src/commands/memory-reflex.ts
1981
+ // src/commands/memory-reflex.ts
1964
1982
  function buildMemoryAnnounce() {
1965
1983
  return [
1966
1984
  "[greprag memory \u2014 this project remembers. Every past session (decisions, bugs, what was discussed, who did what) is captured and searchable.]",
@@ -1974,7 +1992,7 @@ var memoryPrimerModule = {
1974
1992
  reminder: () => null
1975
1993
  };
1976
1994
 
1977
- // ../greprag/packages/cli/src/commands/arm-reminder.ts
1995
+ // src/commands/arm-reminder.ts
1978
1996
  function armDetect(env) {
1979
1997
  if (env.armed)
1980
1998
  return { tier: "silent" };
@@ -2004,11 +2022,11 @@ var watcherArmModule = {
2004
2022
  reminder: (d, env) => buildArmReminder(d, env)
2005
2023
  };
2006
2024
 
2007
- // ../greprag/packages/cli/src/commands/state-trigger.ts
2025
+ // src/commands/state-trigger.ts
2008
2026
  var STRESS_ELEVATED = 1;
2009
2027
  var STRESS_HIGH = 2;
2010
2028
 
2011
- // ../greprag/packages/cli/src/commands/friction-reminder.ts
2029
+ // src/commands/friction-reminder.ts
2012
2030
  function quoteForCommand(value) {
2013
2031
  return value.replace(/[\r\n]+/g, " ").replace(/"/g, '\\"').trim();
2014
2032
  }
@@ -2073,7 +2091,7 @@ var mechanicFrictionModule = {
2073
2091
  }
2074
2092
  };
2075
2093
 
2076
- // ../greprag/packages/cli/src/commands/coordinate-gate.ts
2094
+ // src/commands/coordinate-gate.ts
2077
2095
  var RISKY_PATTERNS = [
2078
2096
  { kind: "merge", label: "gh pr merge", re: /^gh\s+pr\s+merge\b/ },
2079
2097
  { kind: "deploy", label: "wrangler deploy", re: /^(?:npx\s+)?wrangler\s+deploy\b/ },
@@ -2190,7 +2208,7 @@ function buildCoordinateDirective(trigger, peers, myShort, alias) {
2190
2208
  return `COORDINATE before ${trigger.label}: ${peers.length} peer${plural} live in this repo (${list}). Ping before proceeding. Codex peers: use codex_app.list_threads and codex_app.send_message_to_thread. GrepRAG watcher/cross-harness peers: greprag send "heads up, about to ${trigger.label}" --to ${handle}@greprag.com/<8hex> --from-session ${myShort}`;
2191
2209
  }
2192
2210
 
2193
- // ../greprag/packages/cli/src/commands/collision-reminder.ts
2211
+ // src/commands/collision-reminder.ts
2194
2212
  var collisionMatchModule = {
2195
2213
  id: "collision",
2196
2214
  source: "command",
@@ -2215,7 +2233,7 @@ var collisionMatchModule = {
2215
2233
  }
2216
2234
  };
2217
2235
 
2218
- // ../greprag/packages/cli/src/commands/version-reminder.ts
2236
+ // src/commands/version-reminder.ts
2219
2237
  function buildVersionAnnounce(current, latest) {
2220
2238
  return [
2221
2239
  `[greprag \u2014 a new release is out: v${latest} (you are on v${current}).]`,
@@ -2256,7 +2274,7 @@ var versionUpgradeModule = {
2256
2274
  reminder: () => null
2257
2275
  };
2258
2276
 
2259
- // ../greprag/packages/cli/src/commands/enrichment-health-reminder.ts
2277
+ // src/commands/enrichment-health-reminder.ts
2260
2278
  function buildEnrichmentHealthAnnounce(down) {
2261
2279
  if (!down || !down.errorClass)
2262
2280
  return null;
@@ -2275,7 +2293,7 @@ var enrichmentHealthModule = {
2275
2293
  reminder: () => null
2276
2294
  };
2277
2295
 
2278
- // ../greprag/packages/cli/src/commands/skill-gain-reminder.ts
2296
+ // src/commands/skill-gain-reminder.ts
2279
2297
  function buildSkillGainAnnounce(gains) {
2280
2298
  if (!gains || gains.landed.length === 0)
2281
2299
  return null;
@@ -2294,7 +2312,7 @@ var skillGainAnnounceModule = {
2294
2312
  reminder: () => null
2295
2313
  };
2296
2314
 
2297
- // ../greprag/packages/cli/src/commands/skill-mirror-reminder.ts
2315
+ // src/commands/skill-mirror-reminder.ts
2298
2316
  var SKILL_ACTIVATION_MANIFEST_MAX_CHARS = 64e3;
2299
2317
  function renderEntry(skill) {
2300
2318
  const description = skill.triggerDescription.trim().replace(/\r\n?/g, "\n");
@@ -2347,7 +2365,7 @@ var skillMirrorAnnounceModule = {
2347
2365
  reminder: () => null
2348
2366
  };
2349
2367
 
2350
- // ../greprag/packages/cli/src/commands/procedure-reminder.ts
2368
+ // src/commands/procedure-reminder.ts
2351
2369
  function buildProcedureAnnounce(lines) {
2352
2370
  const active = (lines ?? []).map((s) => s.trim()).filter(Boolean);
2353
2371
  if (!active.length)
@@ -2365,7 +2383,7 @@ var procedureAnnounceModule = {
2365
2383
  reminder: () => null
2366
2384
  };
2367
2385
 
2368
- // ../greprag/packages/cli/src/commands/loadout-reminder.ts
2386
+ // src/commands/loadout-reminder.ts
2369
2387
  function matchLoadouts(promptText, equipped) {
2370
2388
  const prompt = (promptText || "").toLowerCase();
2371
2389
  if (!prompt.trim() || !equipped || equipped.length === 0)
@@ -2404,7 +2422,7 @@ var loadoutRegistrarModule = {
2404
2422
  reminder: (d) => buildLoadoutReminder(d.detail?.matched || [])
2405
2423
  };
2406
2424
 
2407
- // ../greprag/packages/cli/src/commands/delivery-reminder.ts
2425
+ // src/commands/delivery-reminder.ts
2408
2426
  function coordinationLine(platform) {
2409
2427
  if (platform === "codex") {
2410
2428
  return "Codex: at the merge/deploy gate, call codex_app.list_threads unfiltered, filter to peers in the same repo, then use codex_app.send_message_to_thread once for ready or overlapping work. Delivery owner: rename this task `DEPLOY: <existing title>`; transfer the prefix on handoff; remove the prefix when delivery is done.";
@@ -2436,7 +2454,7 @@ var deliveryControlModule = {
2436
2454
  reminder: () => null
2437
2455
  };
2438
2456
 
2439
- // ../greprag/packages/cli/src/commands/reminder-registry.ts
2457
+ // src/commands/reminder-registry.ts
2440
2458
  var REGISTRY = [
2441
2459
  osPrimerModule,
2442
2460
  // grepragOS constitution — the frame every other primer hangs off; boots FIRST
@@ -2531,7 +2549,7 @@ function collectAnnounces(env, registry = REGISTRY) {
2531
2549
  return out;
2532
2550
  }
2533
2551
 
2534
- // ../greprag/packages/cli/src/commands/opencode-interrupt.ts
2552
+ // src/commands/opencode-interrupt.ts
2535
2553
  var opencodeRegistry = harnessModules("opencode");
2536
2554
  var OPENCODE_QUOTA_WAITLIST_ANNOUNCE = [
2537
2555
  "[GrepRAG quota decision rule]",
@@ -2570,11 +2588,11 @@ function getOpenCodeReminders(env) {
2570
2588
  return collectReminders(env, opencodeRegistry);
2571
2589
  }
2572
2590
 
2573
- // ../greprag/packages/cli/src/procedure.ts
2591
+ // src/procedure.ts
2574
2592
  var path2 = __toESM(require("path"));
2575
2593
  var fs2 = __toESM(require("fs"));
2576
2594
 
2577
- // ../greprag/packages/cli/src/delivery-lifecycle.ts
2595
+ // src/delivery-lifecycle.ts
2578
2596
  var DELIVERY_LIFECYCLE_VERBS = [
2579
2597
  "commit",
2580
2598
  "merge",
@@ -2587,7 +2605,7 @@ function isDeliveryLifecycleVerb(verb) {
2587
2605
  return DELIVERY_LIFECYCLE_SET.has((verb || "").trim().toLowerCase());
2588
2606
  }
2589
2607
 
2590
- // ../greprag/packages/cli/src/procedure.ts
2608
+ // src/procedure.ts
2591
2609
  var PROCEDURE_STORE_VERSION = "2";
2592
2610
  function stateDir() {
2593
2611
  const home = process.env.HOME || process.env.USERPROFILE || "";
@@ -2828,10 +2846,10 @@ function activeProcedureAnnounces(store) {
2828
2846
  return lines;
2829
2847
  }
2830
2848
 
2831
- // ../greprag/packages/cli/src/procedure-runtime.ts
2849
+ // src/procedure-runtime.ts
2832
2850
  var crypto4 = __toESM(require("crypto"));
2833
2851
 
2834
- // ../greprag/packages/cli/src/project-anchor.ts
2852
+ // src/project-anchor.ts
2835
2853
  var path3 = __toESM(require("path"));
2836
2854
  var fs3 = __toESM(require("fs"));
2837
2855
  var crypto2 = __toESM(require("crypto"));
@@ -3013,7 +3031,7 @@ function readAnchor2(cwd) {
3013
3031
  };
3014
3032
  }
3015
3033
 
3016
- // ../greprag/packages/cli/src/procedure-watch.ts
3034
+ // src/procedure-watch.ts
3017
3035
  var path4 = __toESM(require("path"));
3018
3036
  var fs4 = __toESM(require("fs"));
3019
3037
  var TIER1_LEARN_TRIGGERS = [
@@ -3074,7 +3092,7 @@ function openWatchIfIdle(projectId, verb, phase, shadowRunId) {
3074
3092
  return true;
3075
3093
  }
3076
3094
 
3077
- // ../greprag/packages/cli/src/procedure-shadow.ts
3095
+ // src/procedure-shadow.ts
3078
3096
  var crypto3 = __toESM(require("crypto"));
3079
3097
  var fs5 = __toESM(require("fs"));
3080
3098
  var path5 = __toESM(require("path"));
@@ -3140,7 +3158,7 @@ function recordMissingLifecycleShadowTrigger(params) {
3140
3158
  });
3141
3159
  }
3142
3160
 
3143
- // ../greprag/packages/cli/src/procedure-runtime.ts
3161
+ // src/procedure-runtime.ts
3144
3162
  function extractLatestOpenCodeProcedurePrompt(messages) {
3145
3163
  let userCount = 0;
3146
3164
  let latest = null;
@@ -3226,7 +3244,7 @@ function runProcedurePromptCheck(params) {
3226
3244
  }
3227
3245
  }
3228
3246
 
3229
- // ../greprag/packages/cli/src/archive/glyph-font.ts
3247
+ // src/archive/glyph-font.ts
3230
3248
  var GLYPH_W = 8;
3231
3249
  var GLYPH_H = 8;
3232
3250
  var FIRST_CODE = 32;
@@ -3350,7 +3368,7 @@ function signatureForRows(bytes) {
3350
3368
  return bytes.map((b) => (b & 255).toString(16).padStart(2, "0")).join("");
3351
3369
  }
3352
3370
 
3353
- // ../greprag/packages/cli/src/archive/png-codec.ts
3371
+ // src/archive/png-codec.ts
3354
3372
  var zlib = __toESM(require("zlib"));
3355
3373
  var PNG_SIGNATURE = Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]);
3356
3374
  var crcTable = null;
@@ -3492,7 +3510,7 @@ function decodePng(buf) {
3492
3510
  return { width, height, pixels };
3493
3511
  }
3494
3512
 
3495
- // ../greprag/packages/cli/src/archive/page-renderer.ts
3513
+ // src/archive/page-renderer.ts
3496
3514
  var PAGE_SIZE = 1568;
3497
3515
  var CELL_W = GLYPH_W;
3498
3516
  var CELL_H = 10;
@@ -3618,7 +3636,7 @@ function verifyRoundTrip(page) {
3618
3636
  return `length mismatch: rendered ${a.length} decoded ${b.length}`;
3619
3637
  }
3620
3638
 
3621
- // ../greprag/packages/cli/src/opencode-plugin-png.ts
3639
+ // src/opencode-plugin-png.ts
3622
3640
  var CCR_MARKER_HASH_LEN2 = 16;
3623
3641
  function ccrPngMarker(hash) {
3624
3642
  return `<<ccr:${hash.slice(0, CCR_MARKER_HASH_LEN2)}>>`;
@@ -3808,7 +3826,7 @@ function recodeMessagesToPng(messages, opts) {
3808
3826
  return stats;
3809
3827
  }
3810
3828
 
3811
- // ../greprag/packages/cli/src/skill-activation-manifest.ts
3829
+ // src/skill-activation-manifest.ts
3812
3830
  var fs6 = __toESM(require("fs"));
3813
3831
  var path6 = __toESM(require("path"));
3814
3832
  var MAX_NATIVE_SKILL_FILES = 1500;
@@ -3909,7 +3927,7 @@ function activationFromApiRows(params) {
3909
3927
  return buildMirroredSkillActivation(entries, readNativeSkillNames(params));
3910
3928
  }
3911
3929
 
3912
- // ../greprag/packages/cli/src/opencode-plugin.ts
3930
+ // src/opencode-plugin.ts
3913
3931
  var DEBUG_LOG_PATH = path7.join(os2.homedir(), ".greprag", "opencode-plugin-debug.log");
3914
3932
  var _debugLogReady = false;
3915
3933
  function dlogInit() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "greprag",
3
- "version": "5.74.19",
3
+ "version": "5.74.20",
4
4
  "description": "GrepRAG — agent memory for Claude Code, Codex, and OpenCode.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {