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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
2025
|
+
// src/commands/state-trigger.ts
|
|
2008
2026
|
var STRESS_ELEVATED = 1;
|
|
2009
2027
|
var STRESS_HIGH = 2;
|
|
2010
2028
|
|
|
2011
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
2591
|
+
// src/procedure.ts
|
|
2574
2592
|
var path2 = __toESM(require("path"));
|
|
2575
2593
|
var fs2 = __toESM(require("fs"));
|
|
2576
2594
|
|
|
2577
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
2849
|
+
// src/procedure-runtime.ts
|
|
2832
2850
|
var crypto4 = __toESM(require("crypto"));
|
|
2833
2851
|
|
|
2834
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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() {
|