greprag 5.61.1 → 5.63.0

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 (45) hide show
  1. package/dist/codex-chip-hooks.js +2 -1
  2. package/dist/codex-chip-hooks.js.map +1 -1
  3. package/dist/commands/arm-reminder.js +5 -0
  4. package/dist/commands/arm-reminder.js.map +1 -1
  5. package/dist/commands/codex-chip/prompt.js +1 -1
  6. package/dist/commands/codex-chip/prompt.js.map +1 -1
  7. package/dist/commands/inbox-primer-reminder.js +10 -2
  8. package/dist/commands/inbox-primer-reminder.js.map +1 -1
  9. package/dist/commands/load-primer-reminder.d.ts +6 -0
  10. package/dist/commands/load-primer-reminder.js +22 -2
  11. package/dist/commands/load-primer-reminder.js.map +1 -1
  12. package/dist/commands/mechanic-manifest.d.ts +12 -0
  13. package/dist/commands/mechanic-manifest.js +62 -0
  14. package/dist/commands/mechanic-manifest.js.map +1 -1
  15. package/dist/commands/mechanic-spawn.js +37 -2
  16. package/dist/commands/mechanic-spawn.js.map +1 -1
  17. package/dist/commands/mechanic.js +29 -1
  18. package/dist/commands/mechanic.js.map +1 -1
  19. package/dist/commands/opencode-chip-mission.js +1 -0
  20. package/dist/commands/opencode-chip-mission.js.map +1 -1
  21. package/dist/commands/opencode-interrupt.d.ts +15 -5
  22. package/dist/commands/opencode-interrupt.js +22 -20
  23. package/dist/commands/opencode-interrupt.js.map +1 -1
  24. package/dist/commands/os-primer-reminder.js +5 -2
  25. package/dist/commands/os-primer-reminder.js.map +1 -1
  26. package/dist/commands/reminder-registry.d.ts +7 -0
  27. package/dist/commands/reminder-registry.js +9 -1
  28. package/dist/commands/reminder-registry.js.map +1 -1
  29. package/dist/commands/reminder-types.d.ts +13 -1
  30. package/dist/commands/state-trigger.d.ts +17 -0
  31. package/dist/commands/state-trigger.js +152 -16
  32. package/dist/commands/state-trigger.js.map +1 -1
  33. package/dist/index.js +1 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/opencode-plugin-png.d.ts +151 -0
  36. package/dist/opencode-plugin-png.js +275 -0
  37. package/dist/opencode-plugin-png.js.map +1 -0
  38. package/dist/opencode-plugin.bundle.js +683 -29
  39. package/dist/opencode-plugin.js +76 -1
  40. package/dist/opencode-plugin.js.map +1 -1
  41. package/package.json +2 -2
  42. package/skill/greprag/docs/codex-chip.md +5 -0
  43. package/skill/mechanic/SKILL.md +5 -0
  44. package/skill/templates/chip-spawn.md +8 -0
  45. package/skill/templates/codex-chip-spawn.md +23 -0
@@ -1,4 +1,14 @@
1
1
  import { ReminderEnv, ReminderModule } from './reminder-types';
2
+ /** The opencode registry is DERIVED from the canon, never hand-whitelisted.
3
+ * Every REGISTRY module ships to opencode unless it declares a `harnesses`
4
+ * list excluding it (reminder-types.ts) — so a new module wired into
5
+ * reminder-registry.ts reaches opencode automatically, and the harness can
6
+ * only fall behind via an explicit, reviewable tag on the module itself.
7
+ * (Replaces the OPENCODE_MODULE_IDS include-list, whose silent drift left
8
+ * opencode without os-primer / mechanic-friction / the current chip pointer —
9
+ * chip/opencode-fix-chip-system-parity.) Per-platform payload differences
10
+ * (chip-spawn pointer, os-primer spawn entry) are gated INSIDE modules on
11
+ * `env.platform`, which buildOpenCodeEnv sets to 'opencode'. */
2
12
  export declare const opencodeRegistry: ReminderModule[];
3
13
  export declare function buildOpenCodeEnv(params: {
4
14
  short: string;
@@ -11,11 +21,11 @@ export declare function buildOpenCodeEnv(params: {
11
21
  latest: string;
12
22
  } | null;
13
23
  procedureAnnounces?: string[];
24
+ /** Live relay state (the plugin's startSessionRelay arm for this session).
25
+ * opencode's inbox delivery self-arms in the plugin, so this is honest
26
+ * signal for any future consumer — the watcher-arm module itself is
27
+ * harness-excluded here (its Monitor command is Claude Code's). */
28
+ armed?: boolean;
14
29
  }): ReminderEnv;
15
- /** POINTER — opencode chip bootloader (not in global registry — Claude Code's
16
- * interrupt system stays untouched). Points at the copyable bootloader template
17
- * for platforms without spawn_task. Same `[concept] • trigger? → load <x>` pattern
18
- * as the Claude Code chip-spawn-pointer. */
19
- export declare const OPENCODE_CHIP_BOOTLOADER_POINTER: string;
20
30
  export declare function getOpenCodeAnnounces(env: ReminderEnv): string[];
21
31
  export declare function getOpenCodeReminders(env: ReminderEnv): import("./reminder-registry").FiredReminder[];
@@ -1,28 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OPENCODE_CHIP_BOOTLOADER_POINTER = exports.opencodeRegistry = void 0;
3
+ exports.opencodeRegistry = void 0;
4
4
  exports.buildOpenCodeEnv = buildOpenCodeEnv;
5
5
  exports.getOpenCodeAnnounces = getOpenCodeAnnounces;
6
6
  exports.getOpenCodeReminders = getOpenCodeReminders;
7
7
  const reminder_registry_1 = require("./reminder-registry");
8
- const OPENCODE_MODULE_IDS = new Set([
9
- 'inbox-primer',
10
- 'load-primer',
11
- 'corpus-announce',
12
- 'setup-warning',
13
- 'version-upgrade',
14
- 'memory-primer',
15
- 'procedure-announce',
16
- 'collision',
17
- ]);
18
- exports.opencodeRegistry = reminder_registry_1.REGISTRY.filter(m => OPENCODE_MODULE_IDS.has(m.id));
8
+ /** The opencode registry is DERIVED from the canon, never hand-whitelisted.
9
+ * Every REGISTRY module ships to opencode unless it declares a `harnesses`
10
+ * list excluding it (reminder-types.ts) — so a new module wired into
11
+ * reminder-registry.ts reaches opencode automatically, and the harness can
12
+ * only fall behind via an explicit, reviewable tag on the module itself.
13
+ * (Replaces the OPENCODE_MODULE_IDS include-list, whose silent drift left
14
+ * opencode without os-primer / mechanic-friction / the current chip pointer —
15
+ * chip/opencode-fix-chip-system-parity.) Per-platform payload differences
16
+ * (chip-spawn pointer, os-primer spawn entry) are gated INSIDE modules on
17
+ * `env.platform`, which buildOpenCodeEnv sets to 'opencode'. */
18
+ exports.opencodeRegistry = (0, reminder_registry_1.harnessModules)('opencode');
19
19
  function buildOpenCodeEnv(params) {
20
20
  return {
21
21
  short: params.short,
22
22
  turnCount: params.turnCount,
23
+ // No opencode-native friction detector is wired yet: Claude Code's stress /
24
+ // bootstrap-friction signals come from state-trigger.ts reading the
25
+ // transcript in hook.ts, and opencode has no equivalent source plumbed.
26
+ // 0 = calm keeps the mechanic-friction REMINDER silent while its ANNOUNCE
27
+ // (the fix-spawn doctrine) still lands every session. Detector design is
28
+ // parked with scored options in the chip report
29
+ // (chip/opencode-fix-chip-system-parity).
23
30
  stress: 0,
24
- armed: false,
31
+ armed: params.armed ?? false,
25
32
  sessionUnread: 0,
33
+ platform: 'opencode',
26
34
  projectName: params.projectName,
27
35
  setupWarning: params.setupWarning ?? null,
28
36
  corpusApiDocs: params.corpusApiDocs ?? [],
@@ -30,14 +38,8 @@ function buildOpenCodeEnv(params) {
30
38
  procedureAnnounces: params.procedureAnnounces ?? [],
31
39
  };
32
40
  }
33
- /** POINTER — opencode chip bootloader (not in global registry — Claude Code's
34
- * interrupt system stays untouched). Points at the copyable bootloader template
35
- * for platforms without spawn_task. Same `[concept] • trigger? → load <x>` pattern
36
- * as the Claude Code chip-spawn-pointer. */
37
- exports.OPENCODE_CHIP_BOOTLOADER_POINTER = '[greprag chips — agent coordination is built in (messaging plumbing in the inbox primer).]\n' +
38
- '• Delegating a component of a plan to an isolated sub-session (a "chip") for focused, efficient work? → run `greprag load chip-bootloader` for the copyable bootloader template (Block 1 setup + Block 2 report-back).';
39
41
  function getOpenCodeAnnounces(env) {
40
- return [...(0, reminder_registry_1.collectAnnounces)(env, exports.opencodeRegistry), exports.OPENCODE_CHIP_BOOTLOADER_POINTER];
42
+ return (0, reminder_registry_1.collectAnnounces)(env, exports.opencodeRegistry);
41
43
  }
42
44
  function getOpenCodeReminders(env) {
43
45
  return (0, reminder_registry_1.collectReminders)(env, exports.opencodeRegistry);
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-interrupt.js","sourceRoot":"","sources":["../../src/commands/opencode-interrupt.ts"],"names":[],"mappings":";;;AAkBA,4CAqBC;AAUD,oDAEC;AAED,oDAEC;AAtDD,2DAAmF;AAEnF,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,oBAAoB;IACpB,WAAW;CACZ,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAqB,4BAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACpE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAC9B,CAAC;AAEF,SAAgB,gBAAgB,CAAC,MAQhC;IACC,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,KAAK;QACZ,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI;QACzC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;QACzC,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;QAC/C,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,EAAE;KACpD,CAAC;AACJ,CAAC;AAED;;;6CAG6C;AAChC,QAAA,gCAAgC,GAC3C,8FAA8F;IAC9F,wNAAwN,CAAC;AAE3N,SAAgB,oBAAoB,CAAC,GAAgB;IACnD,OAAO,CAAC,GAAG,IAAA,oCAAgB,EAAC,GAAG,EAAE,wBAAgB,CAAC,EAAE,wCAAgC,CAAC,CAAC;AACxF,CAAC;AAED,SAAgB,oBAAoB,CAAC,GAAgB;IACnD,OAAO,IAAA,oCAAgB,EAAC,GAAG,EAAE,wBAAgB,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"opencode-interrupt.js","sourceRoot":"","sources":["../../src/commands/opencode-interrupt.ts"],"names":[],"mappings":";;;AAeA,4CAkCC;AAED,oDAEC;AAED,oDAEC;AAxDD,2DAAyF;AAEzF;;;;;;;;;iEASiE;AACpD,QAAA,gBAAgB,GAAqB,IAAA,kCAAc,EAAC,UAAU,CAAC,CAAC;AAE7E,SAAgB,gBAAgB,CAAC,MAahC;IACC,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,4EAA4E;QAC5E,oEAAoE;QACpE,wEAAwE;QACxE,0EAA0E;QAC1E,yEAAyE;QACzE,gDAAgD;QAChD,0CAA0C;QAC1C,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;QAC5B,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI;QACzC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;QACzC,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;QAC/C,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,EAAE;KACpD,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB,CAAC,GAAgB;IACnD,OAAO,IAAA,oCAAgB,EAAC,GAAG,EAAE,wBAAgB,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,oBAAoB,CAAC,GAAgB;IACnD,OAAO,IAAA,oCAAgB,EAAC,GAAG,EAAE,wBAAgB,CAAC,CAAC;AACjD,CAAC"}
@@ -15,8 +15,11 @@ exports.osPrimerModule = void 0;
15
15
  exports.buildOsPrimer = buildOsPrimer;
16
16
  function buildOsPrimer(env) {
17
17
  // The chip-spawn method is per-harness (Codex never sees the Claude entry —
18
- // the same wall the codex-chip-spawn pointer module enforces).
19
- const spawnEntry = env?.platform === 'codex' ? 'codex-chip-spawn' : 'chip-spawn';
18
+ // the same wall the codex-chip-spawn pointer module enforces; opencode's
19
+ // vehicle is the chip-bootloader entry: native `greprag opencode chip` spawn).
20
+ const spawnEntry = env?.platform === 'codex' ? 'codex-chip-spawn'
21
+ : env?.platform === 'opencode' ? 'chip-bootloader'
22
+ : 'chip-spawn';
20
23
  return [
21
24
  '[grepragOS — the operating laws. Full doctrine: `greprag load os`.]',
22
25
  '• Doctrine vs state: methods ship in the CLI (`greprag load`); live state lives in the repo. A skill that depends on repo state carries a "STATE — read these first" block naming exact paths.',
@@ -1 +1 @@
1
- {"version":3,"file":"os-primer-reminder.js","sourceRoot":"","sources":["../../src/commands/os-primer-reminder.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;4EAU4E;;;AAI5E,sCAYC;AAZD,SAAgB,aAAa,CAAC,GAAmC;IAC/D,4EAA4E;IAC5E,+DAA+D;IAC/D,MAAM,UAAU,GAAG,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC;IACjF,OAAO;QACL,qEAAqE;QACrE,gMAAgM;QAChM,2QAA2Q;QAC3Q,oJAAoJ;QACpJ,kPAAkP,UAAU,uLAAuL;QACnb,mJAAmJ;KACpJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAEY,QAAA,cAAc,GAAmB;IAC5C,EAAE,EAAE,WAAW;IACf,MAAM,EAAE,CAAC,IAAiB,EAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,uBAAuB;IACvF,QAAQ,EAAE,CAAC,GAAG,EAAiB,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC;IACpD,QAAQ,EAAE,GAAkB,EAAE,CAAC,IAAI;CACpC,CAAC"}
1
+ {"version":3,"file":"os-primer-reminder.js","sourceRoot":"","sources":["../../src/commands/os-primer-reminder.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;4EAU4E;;;AAI5E,sCAeC;AAfD,SAAgB,aAAa,CAAC,GAAmC;IAC/D,4EAA4E;IAC5E,yEAAyE;IACzE,+EAA+E;IAC/E,MAAM,UAAU,GAAG,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,kBAAkB;QAC/D,CAAC,CAAC,GAAG,EAAE,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAiB;YAClD,CAAC,CAAC,YAAY,CAAC;IACjB,OAAO;QACL,qEAAqE;QACrE,gMAAgM;QAChM,2QAA2Q;QAC3Q,oJAAoJ;QACpJ,kPAAkP,UAAU,uLAAuL;QACnb,mJAAmJ;KACpJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAEY,QAAA,cAAc,GAAmB;IAC5C,EAAE,EAAE,WAAW;IACf,MAAM,EAAE,CAAC,IAAiB,EAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,uBAAuB;IACvF,QAAQ,EAAE,CAAC,GAAG,EAAiB,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC;IACpD,QAAQ,EAAE,GAAkB,EAAE,CAAC,IAAI;CACpC,CAAC"}
@@ -11,6 +11,13 @@ import { ReminderEnv, ReminderModule, Detection } from './reminder-types';
11
11
  * loud, action-first modules last (watcher-arm → mechanic) so they read most-recent at
12
12
  * SessionStart. Add a module here to wire it into BOTH surfaces at once. */
13
13
  export declare const REGISTRY: ReminderModule[];
14
+ /** Derive a harness's registry by EXCLUSION, never by include-list. A module with no
15
+ * `harnesses` declaration ships to every harness; a declared list scopes it. This is
16
+ * the whitelist-drift killer: adding a module to REGISTRY wires it into claude-code,
17
+ * codex, AND opencode in one move — a harness can only fall behind by an explicit,
18
+ * reviewable `harnesses:` tag on the module itself, never by someone forgetting to
19
+ * update a parallel id list. (Root-cause repair, chip/opencode-fix-chip-system-parity.) */
20
+ export declare const harnessModules: (harness: "claude-code" | "codex" | "opencode", registry?: ReminderModule[]) => ReminderModule[];
14
21
  /** Split the registry by READ surface (docs/reminder-interrupt.md). UserPromptSubmit
15
22
  * evaluates `prompt`-source modules (the default); PreToolUse evaluates `command`-source
16
23
  * modules (they read env.toolCommand). Announces are always prompt-side (SessionStart). */
@@ -5,7 +5,7 @@
5
5
  * PURE over ReminderEnv — the hook assembles env (i/o) and emits the returned lines;
6
6
  * a broken module never blocks a turn (fail-open per module). */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.compactReannounceModules = exports.commandModules = exports.promptModules = exports.REGISTRY = void 0;
8
+ exports.compactReannounceModules = exports.commandModules = exports.promptModules = exports.harnessModules = exports.REGISTRY = void 0;
9
9
  exports.collectReminders = collectReminders;
10
10
  exports.bootOrder = bootOrder;
11
11
  exports.collectAnnounces = collectAnnounces;
@@ -55,6 +55,14 @@ exports.REGISTRY = [
55
55
  friction_reminder_1.mechanicFrictionModule,
56
56
  collision_reminder_1.collisionMatchModule, // source: 'command' — evaluated at PreToolUse, not UserPromptSubmit
57
57
  ];
58
+ /** Derive a harness's registry by EXCLUSION, never by include-list. A module with no
59
+ * `harnesses` declaration ships to every harness; a declared list scopes it. This is
60
+ * the whitelist-drift killer: adding a module to REGISTRY wires it into claude-code,
61
+ * codex, AND opencode in one move — a harness can only fall behind by an explicit,
62
+ * reviewable `harnesses:` tag on the module itself, never by someone forgetting to
63
+ * update a parallel id list. (Root-cause repair, chip/opencode-fix-chip-system-parity.) */
64
+ const harnessModules = (harness, registry = exports.REGISTRY) => registry.filter((m) => !m.harnesses || m.harnesses.includes(harness));
65
+ exports.harnessModules = harnessModules;
58
66
  /** Split the registry by READ surface (docs/reminder-interrupt.md). UserPromptSubmit
59
67
  * evaluates `prompt`-source modules (the default); PreToolUse evaluates `command`-source
60
68
  * modules (they read env.toolCommand). Announces are always prompt-side (SessionStart). */
@@ -1 +1 @@
1
- {"version":3,"file":"reminder-registry.js","sourceRoot":"","sources":["../../src/commands/reminder-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reminder-registry.js","sourceRoot":"","sources":["../../src/commands/reminder-registry.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,8 @@ export interface ReminderEnv {
42
42
  mechanicLive?: boolean;
43
43
  /** One-shot per role epoch: tell a non-mechanic source session where friction goes. */
44
44
  mechanicLiveNotice?: boolean;
45
- /** Platform/harness name: 'claude' | 'opencode' | 'codex'. Set by the hook. */
45
+ /** Platform/harness name: 'claude-code' | 'opencode' | 'codex' (the spellings
46
+ * call sites actually pass — hook.ts sends 'claude-code'). Set by the hook. */
46
47
  platform?: string | null;
47
48
  /** Project display name (for the checkpoint announce). */
48
49
  projectName?: string;
@@ -164,6 +165,17 @@ export interface ReminderModule {
164
165
  * PreToolUse, reading `env.toolCommand`. The call site filters the registry by source
165
166
  * so each hook event evaluates only its own modules. */
166
167
  source?: 'prompt' | 'command';
168
+ /** Harnesses whose registry renders this module. UNDEFINED = ALL harnesses — the
169
+ * default, so a new registry module flows to every harness automatically and a
170
+ * per-harness registry can never silently drift behind the canon (the
171
+ * whitelist-drift root cause this replaces: opencode's hand-maintained
172
+ * OPENCODE_MODULE_IDS include-list missed os-primer + mechanic-friction for
173
+ * weeks). Declare this ONLY when the module depends on a harness-specific
174
+ * mechanism — e.g. watcher-arm rides Claude Code's Monitor tool; opencode's
175
+ * relay self-arms in the plugin, so the arm poke is noise there. Values match
176
+ * the platform spellings the call sites pass ('claude-code' | 'codex' |
177
+ * 'opencode'). Derivation: reminder-registry.harnessModules(). */
178
+ harnesses?: Array<'claude-code' | 'codex' | 'opencode'>;
167
179
  /** Boot-sequence dependencies (docs/load-system.md §boot sequence): module ids whose
168
180
  * announce MUST be emitted before this one's. A primer that references a concept an
169
181
  * earlier primer establishes declares it here (e.g. the mechanic primer references chip
@@ -61,6 +61,23 @@ export interface StressResult {
61
61
  * features_and_labels (rep / retry / seqrep / err / churn), scored with the
62
62
  * pinned weight vector and mapped to a 0/1/2 level. Pure. */
63
63
  export declare function computeStress(turns: TurnSummary[]): StressResult;
64
+ /** Remove quoted spans ('…' and "…", backslash escapes inside double quotes)
65
+ * from a command line. What remains is the SHELL-STRUCTURAL text — the only
66
+ * text candidacy logic may read. A quoted argument (a fix-spawn payload, a
67
+ * commit message, an echoed error) can embed arbitrary command/error text;
68
+ * reading it as evidence is the recursive-false-positive class that had the
69
+ * detector re-flagging its own remedy (incident 250ac565, 2026-07-12). */
70
+ export declare function stripQuotedSpans(command: string): string;
71
+ /** The command words actually being INVOKED: quote-strip, split on shell
72
+ * operators, take each segment's head token (basename, wrapper-transparent).
73
+ * `cd x && node y` → [cd, node] · `greprag fix spawn "…node…"` → [greprag] ·
74
+ * `git merge chip/fix-fnm-x` → [git]. */
75
+ export declare function commandHeads(command: string): string[];
76
+ /** A segment whose invoked words are `greprag fix spawn` — the friction reflex
77
+ * DISPATCHING. Matched on structural text only (a quoted mention is not a
78
+ * dispatch), anchored to the segment head (an `echo greprag fix spawn …` is
79
+ * not a dispatch either). */
80
+ export declare function isFixSpawnDispatch(command: string): boolean;
64
81
  /** Detect setup/toolchain failures that are likely repairable once for all future
65
82
  * sessions. This is deliberately narrower than generic stress: source-code
66
83
  * TypeScript diagnostics are normal verification, while command availability,
@@ -54,6 +54,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
54
54
  exports.STRESS_HIGH = exports.STRESS_ELEVATED = exports.STRESS_CALM = void 0;
55
55
  exports.parseTurns = parseTurns;
56
56
  exports.computeStress = computeStress;
57
+ exports.stripQuotedSpans = stripQuotedSpans;
58
+ exports.commandHeads = commandHeads;
59
+ exports.isFixSpawnDispatch = isFixSpawnDispatch;
57
60
  exports.computeBootstrapFriction = computeBootstrapFriction;
58
61
  exports.scanKeywords = scanKeywords;
59
62
  exports.computeStateValues = computeStateValues;
@@ -201,6 +204,13 @@ function parseTurns(transcriptPath, maxTurns = 40) {
201
204
  for (const b of blocks(rec)) {
202
205
  if (b && b.type === 'tool_result' && resultIsError(b)) {
203
206
  cur.errors++;
207
+ // A ToolFailure (the bootstrap classifier's input) requires HARD
208
+ // evidence the command itself failed — the harness's is_error flag,
209
+ // never error-looking output text: a successful `… | grep -i error`
210
+ // matches ERROR_RE by construction (false-page a0d1a7e2 2026-07-12).
211
+ // The soft regex still feeds `errors` (the validated stress feature).
212
+ if (b.is_error !== true)
213
+ continue;
204
214
  const useId = typeof b.tool_use_id === 'string' ? b.tool_use_id : '';
205
215
  const prior = useId ? pending.get(useId) : null;
206
216
  if (prior)
@@ -310,30 +320,133 @@ function computeStress(turns) {
310
320
  : score >= STRESS_ELEVATED_AT ? exports.STRESS_ELEVATED : exports.STRESS_CALM;
311
321
  return { score: Math.round(score * 1000) / 1000, level };
312
322
  }
323
+ // ---------- Shell-shape helpers (candidacy must never read argument text) ----
324
+ // adr: adr/bootstrap-friction-candidacy.md
325
+ /** Remove quoted spans ('…' and "…", backslash escapes inside double quotes)
326
+ * from a command line. What remains is the SHELL-STRUCTURAL text — the only
327
+ * text candidacy logic may read. A quoted argument (a fix-spawn payload, a
328
+ * commit message, an echoed error) can embed arbitrary command/error text;
329
+ * reading it as evidence is the recursive-false-positive class that had the
330
+ * detector re-flagging its own remedy (incident 250ac565, 2026-07-12). */
331
+ function stripQuotedSpans(command) {
332
+ let out = '';
333
+ let quote = null;
334
+ let escaped = false;
335
+ for (const ch of command) {
336
+ if (quote) {
337
+ if (escaped) {
338
+ escaped = false;
339
+ continue;
340
+ }
341
+ if (ch === '\\' && quote === '"') {
342
+ escaped = true;
343
+ continue;
344
+ }
345
+ if (ch === quote)
346
+ quote = null;
347
+ continue;
348
+ }
349
+ if (ch === '"' || ch === "'") {
350
+ quote = ch;
351
+ continue;
352
+ }
353
+ out += ch;
354
+ }
355
+ return out;
356
+ }
357
+ /** Wrappers transparent to WHAT is being run — skipped (with env assignments)
358
+ * when resolving each segment's head, so `timeout 60 npm test` still reads npm. */
359
+ const TRANSPARENT_WRAPPERS = new Set(['sudo', 'time', 'nice', 'env', 'command', 'exec', 'xargs', 'timeout']);
360
+ const ENV_ASSIGNMENT_RE = /^[A-Za-z_][A-Za-z0-9_]*=/;
361
+ /** The command words actually being INVOKED: quote-strip, split on shell
362
+ * operators, take each segment's head token (basename, wrapper-transparent).
363
+ * `cd x && node y` → [cd, node] · `greprag fix spawn "…node…"` → [greprag] ·
364
+ * `git merge chip/fix-fnm-x` → [git]. */
365
+ function commandHeads(command) {
366
+ const heads = [];
367
+ for (const seg of stripQuotedSpans(command).split(/&&|\|\||;|\||\r?\n/)) {
368
+ const tokens = seg.trim().replace(/^[({\s]+/, '').split(/\s+/).filter(Boolean);
369
+ let i = 0;
370
+ while (i < tokens.length) {
371
+ if (ENV_ASSIGNMENT_RE.test(tokens[i])) {
372
+ i++;
373
+ continue;
374
+ } // leading or `env FOO=1 …` var
375
+ const base = (tokens[i].replace(/\\/g, '/').split('/').pop() || '').toLowerCase();
376
+ if (TRANSPARENT_WRAPPERS.has(base)) {
377
+ i++;
378
+ if (base === 'timeout' && i < tokens.length && /^\d/.test(tokens[i]))
379
+ i++; // duration operand
380
+ while (i < tokens.length && tokens[i].startsWith('-'))
381
+ i++; // wrapper flags
382
+ continue;
383
+ }
384
+ if (base)
385
+ heads.push(base);
386
+ break;
387
+ }
388
+ }
389
+ return heads;
390
+ }
391
+ /** A segment whose invoked words are `greprag fix spawn` — the friction reflex
392
+ * DISPATCHING. Matched on structural text only (a quoted mention is not a
393
+ * dispatch), anchored to the segment head (an `echo greprag fix spawn …` is
394
+ * not a dispatch either). */
395
+ function isFixSpawnDispatch(command) {
396
+ for (const seg of stripQuotedSpans(command).split(/&&|\|\||;|\||\r?\n/)) {
397
+ const tokens = seg.trim().replace(/^[({\s]+/, '').split(/\s+/).filter(Boolean);
398
+ let i = 0;
399
+ while (i < tokens.length && ENV_ASSIGNMENT_RE.test(tokens[i]))
400
+ i++;
401
+ const base = (tokens[i] || '').replace(/\\/g, '/').split('/').pop() || '';
402
+ if (/^greprag(?:\.cmd|\.exe)?$/i.test(base) && tokens[i + 1] === 'fix' && tokens[i + 2] === 'spawn')
403
+ return true;
404
+ }
405
+ return false;
406
+ }
313
407
  const SETUP_COMMAND_RE = /\b(?:npm|pnpm|yarn|npx|node|tsc|ts-node|tsx|fnm|corepack|turbo|vitest|jest|ts-jest)\b/i;
314
408
  const COMMAND_NOT_FOUND_RE = /\b(?:command not found|not recognized as (?:an internal|the name)|is not recognized|executable file not found|unable to resolve command)\b/i;
315
- const NODE_VERSION_RE = /\b(?:unsupported engine|requires node|node version|fnm|nvm|corepack|package manager mismatch)\b/i;
409
+ /** Matched against ERROR text only. `requested version` + `not yet installed` are
410
+ * fnm/nvm's real missing-version phrasings ("error: Requested version v22.x.x is
411
+ * not currently installed" — verified live 2026-07-12); without them a genuine
412
+ * fnm failure carries no node-version marker in its error output. */
413
+ const NODE_VERSION_RE = /\b(?:unsupported engine|requires node|node version|fnm|nvm|corepack|package manager mismatch|requested version|not yet installed)\b/i;
316
414
  const MODULE_RESOLUTION_RE = /\b(?:cannot find module|module_not_found|err_module_not_found|cannot find package|could not resolve|cannot resolve|cannot find type definition file)\b/i;
317
415
  const WORKSPACE_BOOTSTRAP_RE = /\b(?:enoent|no such file or directory|workspace package|no workspaces found|node_modules|package\.json|tsconfig(?:\.json)?(?: file)? (?:not found|missing))\b/i;
318
416
  const ORDINARY_TS_ERROR_RE = /\bTS\d{4}\b/i;
319
417
  function setupSignal(f) {
320
- if (f.tool !== 'Bash' || !SETUP_COMMAND_RE.test(f.command))
418
+ // Candidacy gates on the command words being INVOKED (segment heads), never
419
+ // the raw string: `greprag fix spawn "…node…"` and `git merge chip/fix-fnm-x`
420
+ // carry toolchain tokens in ARGUMENT text only and are not setup commands
421
+ // (recursive false positive, incident 250ac565 2026-07-12).
422
+ if (f.tool !== 'Bash')
321
423
  return null;
322
- const text = `${f.command}\n${f.error}`;
323
- if (COMMAND_NOT_FOUND_RE.test(text))
424
+ const heads = commandHeads(f.command).join(' ');
425
+ if (!SETUP_COMMAND_RE.test(heads))
426
+ return null;
427
+ // Signal evidence comes from the ERROR text ALONE. The command only gates the
428
+ // family (above) and names the flavor (below) — an invocation *mentioning*
429
+ // fnm/node_modules/package.json is not evidence that fnm/the workspace broke
430
+ // (`fnm exec … | grep -i error` classified as fnm-node-bootstrap off its own
431
+ // command text, false-page a0d1a7e2 2026-07-12).
432
+ const err = f.error;
433
+ if (COMMAND_NOT_FOUND_RE.test(err))
324
434
  return 'command-not-found';
325
- if (NODE_VERSION_RE.test(text))
326
- return /fnm/i.test(text) ? 'fnm-node-bootstrap' : 'node-version';
327
- if (MODULE_RESOLUTION_RE.test(text))
435
+ if (NODE_VERSION_RE.test(err))
436
+ return /fnm/i.test(`${heads}\n${err}`) ? 'fnm-node-bootstrap' : 'node-version';
437
+ if (MODULE_RESOLUTION_RE.test(err))
328
438
  return 'module-resolution';
329
- if (WORKSPACE_BOOTSTRAP_RE.test(text))
439
+ if (WORKSPACE_BOOTSTRAP_RE.test(err))
330
440
  return 'workspace-bootstrap';
331
- if (ORDINARY_TS_ERROR_RE.test(text))
441
+ if (ORDINARY_TS_ERROR_RE.test(err))
332
442
  return null;
333
443
  return null;
334
444
  }
335
445
  function commandFamily(command) {
336
- const c = command.toLowerCase();
446
+ // Quote-stripped: a tool token inside a quoted payload must not mint the
447
+ // dedupe key — the original incident's fix-spawn argument embedded `node`,
448
+ // colliding with the real failure's family and inflating `repeats` to 2.
449
+ const c = stripQuotedSpans(command).toLowerCase();
337
450
  const m = c.match(/\b(?:npm\s+run\s+\S+|npm\s+\S+|pnpm\s+\S+|yarn\s+\S+|npx\s+\S+|fnm\s+\S+|corepack\s+\S+|turbo\s+\S+|vitest\b|jest\b|tsc\b|node\b)/);
338
451
  return (m?.[0] || c).replace(/\s+/g, ' ').slice(0, 80);
339
452
  }
@@ -343,18 +456,41 @@ function commandFamily(command) {
343
456
  * Node/fnm, workspace bootstrap, and module-resolution failures are Mechanic
344
457
  * material. Pure and conservative; no LLM. */
345
458
  function computeBootstrapFriction(turns) {
346
- const failures = turns.flatMap(t => t.failures || [])
347
- .map(f => ({ failure: f, signal: setupSignal(f) }))
348
- .filter((x) => !!x.signal);
349
- if (!failures.length) {
350
- return { detected: false, level: exports.STRESS_CALM, command: null, error: null, signal: null, repeats: 0 };
459
+ const none = { detected: false, level: exports.STRESS_CALM, command: null, error: null, signal: null, repeats: 0 };
460
+ const failures = [];
461
+ turns.forEach((t, turn) => {
462
+ for (const f of t.failures || []) {
463
+ const signal = setupSignal(f);
464
+ if (signal)
465
+ failures.push({ failure: f, signal, turn });
466
+ }
467
+ });
468
+ if (!failures.length)
469
+ return none;
470
+ const latest = failures[failures.length - 1];
471
+ // Dispatch suppression: a `greprag fix spawn` that RAN (didn't itself fail)
472
+ // at/after the latest qualifying failure IS the remedy in motion — the
473
+ // friction is dispatched, not fresh. Without this the same signature
474
+ // re-paged every turn it stayed in the window, even after compliance
475
+ // (incident 250ac565, 2026-07-12). A FAILED spawn never counts — the chip
476
+ // did not launch. Same-turn spawns suppress too (conservative-quiet: a
477
+ // recurrence on a later run re-fires, since it postdates the spawn).
478
+ for (let turn = latest.turn; turn < turns.length; turn++) {
479
+ const t = turns[turn];
480
+ const failedCmds = new Set((t.failures || []).map(f => f.command));
481
+ for (const tg of t.toolTargets || []) {
482
+ if (!tg.startsWith('Bash:'))
483
+ continue;
484
+ const cmd = tg.slice('Bash:'.length);
485
+ if (isFixSpawnDispatch(cmd) && !failedCmds.has(cmd))
486
+ return none;
487
+ }
351
488
  }
352
489
  const counts = new Map();
353
490
  for (const f of failures) {
354
491
  const key = `${f.signal}:${commandFamily(f.failure.command)}`;
355
492
  counts.set(key, (counts.get(key) || 0) + 1);
356
493
  }
357
- const latest = failures[failures.length - 1];
358
494
  const latestKey = `${latest.signal}:${commandFamily(latest.failure.command)}`;
359
495
  const repeats = counts.get(latestKey) || 1;
360
496
  const strongSingle = latest.signal === 'command-not-found'
@@ -1 +1 @@
1
- {"version":3,"file":"state-trigger.js","sourceRoot":"","sources":["../../src/commands/state-trigger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-trigger.js","sourceRoot":"","sources":["../../src/commands/state-trigger.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1412,6 +1412,7 @@ Mechanic control plane (repairs as data — 'greprag mechanic --help'):
1412
1412
  mechanic role [status] Show whether THIS project is the live Mechanic.
1413
1413
  mechanic friction "<summary>" Fire a structured live friction event to the Mechanic.
1414
1414
  mechanic reply --to <8hex> "<msg>" Reply on the typed mechanic rail.
1415
+ mechanic attest <nodeId> ... Record operator-attested regression evidence.
1415
1416
  mechanic enable <nodeId> Ratify a shadow repair → active.
1416
1417
  mechanic disable <nodeId> [--retire] active → shadow (default) or terminal retire.
1417
1418
  mechanic why <nodeId> Provenance: friction → fix → repair chain.