greprag 5.61.0 → 5.61.1

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.
@@ -9,6 +9,6 @@
9
9
  * surface, docs/context-economy.md); the full doctrine with examples ships
10
10
  * as the bundled `os` load entry (`greprag load os`). Announce-only module:
11
11
  * never a per-turn nag. docs/load-system.md, docs/reminder-interrupt.md */
12
- import { ReminderModule } from './reminder-types';
13
- export declare function buildOsPrimer(): string;
12
+ import { ReminderEnv, ReminderModule } from './reminder-types';
13
+ export declare function buildOsPrimer(env?: Pick<ReminderEnv, 'platform'>): string;
14
14
  export declare const osPrimerModule: ReminderModule;
@@ -13,20 +13,23 @@
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.osPrimerModule = void 0;
15
15
  exports.buildOsPrimer = buildOsPrimer;
16
- function buildOsPrimer() {
16
+ function buildOsPrimer(env) {
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';
17
20
  return [
18
21
  '[grepragOS — the operating laws. Full doctrine: `greprag load os`.]',
19
22
  '• 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.',
20
23
  '• Discoverability: every durable artifact must be findable next session — docs auto-register, skills auto-mirror, decisions get a dated ADR/decision-log entry, everything else gets its path named in the owning skill/doc. If nothing points at it, you didn\'t finish.',
21
24
  '• Pull before derive: `greprag memory search` / `corpus search` / `load` BEFORE asking the operator or re-deriving what the project already knows.',
22
- '• Friction ⇒ fix NOW: one unit of friction ⇒ `greprag fix spawn "<unit>"` one chip per unit; it investigates, then confidence ≥90 repairs autonomously / <90 parks for operator co-design. Never queue friction.',
25
+ `• Friction ⇒ fix NOW: one unit of friction ⇒ \`greprag fix spawn "<unit>"\`. It PRINTS a fix-chip mission (a chip = a spawned child task/session) — YOU then create the child task with that mission as its first message (how: \`greprag load ${spawnEntry}\`, or your harness's native task tool). One unit per chip; the chip investigates, then confidence ≥90 repairs autonomously / <90 parks for operator co-design. Never queue friction.`,
23
26
  '• Teach the system, not the chat: explained twice by the operator ⇒ it belongs in a skill / load entry / STATE block / ADR, not the conversation.',
24
27
  ].join('\n');
25
28
  }
26
29
  exports.osPrimerModule = {
27
30
  id: 'os-primer',
28
31
  detect: (_env) => ({ tier: 'silent' }), // never a per-turn nag
29
- announce: () => buildOsPrimer(),
32
+ announce: (env) => buildOsPrimer(env),
30
33
  reminder: () => null,
31
34
  };
32
35
  //# sourceMappingURL=os-primer-reminder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"os-primer-reminder.js","sourceRoot":"","sources":["../../src/commands/os-primer-reminder.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;4EAU4E;;;AAI5E,sCASC;AATD,SAAgB,aAAa;IAC3B,OAAO;QACL,qEAAqE;QACrE,gMAAgM;QAChM,2QAA2Q;QAC3Q,oJAAoJ;QACpJ,oNAAoN;QACpN,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,GAAkB,EAAE,CAAC,aAAa,EAAE;IAC9C,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,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"}
@@ -1746,13 +1746,14 @@ function crushMessages(messages, opts) {
1746
1746
  }
1747
1747
 
1748
1748
  // src/commands/os-primer-reminder.ts
1749
- function buildOsPrimer() {
1749
+ function buildOsPrimer(env) {
1750
+ const spawnEntry = env?.platform === "codex" ? "codex-chip-spawn" : "chip-spawn";
1750
1751
  return [
1751
1752
  "[grepragOS \u2014 the operating laws. Full doctrine: `greprag load os`.]",
1752
1753
  '\u2022 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 \u2014 read these first" block naming exact paths.',
1753
1754
  "\u2022 Discoverability: every durable artifact must be findable next session \u2014 docs auto-register, skills auto-mirror, decisions get a dated ADR/decision-log entry, everything else gets its path named in the owning skill/doc. If nothing points at it, you didn't finish.",
1754
1755
  "\u2022 Pull before derive: `greprag memory search` / `corpus search` / `load` BEFORE asking the operator or re-deriving what the project already knows.",
1755
- '\u2022 Friction \u21D2 fix NOW: one unit of friction \u21D2 `greprag fix spawn "<unit>"` \u2014 one chip per unit; it investigates, then confidence \u226590 repairs autonomously / <90 parks for operator co-design. Never queue friction.',
1756
+ `\u2022 Friction \u21D2 fix NOW: one unit of friction \u21D2 \`greprag fix spawn "<unit>"\`. It PRINTS a fix-chip mission (a chip = a spawned child task/session) \u2014 YOU then create the child task with that mission as its first message (how: \`greprag load ${spawnEntry}\`, or your harness's native task tool). One unit per chip; the chip investigates, then confidence \u226590 repairs autonomously / <90 parks for operator co-design. Never queue friction.`,
1756
1757
  "\u2022 Teach the system, not the chat: explained twice by the operator \u21D2 it belongs in a skill / load entry / STATE block / ADR, not the conversation."
1757
1758
  ].join("\n");
1758
1759
  }
@@ -1760,7 +1761,7 @@ var osPrimerModule = {
1760
1761
  id: "os-primer",
1761
1762
  detect: (_env) => ({ tier: "silent" }),
1762
1763
  // never a per-turn nag
1763
- announce: () => buildOsPrimer(),
1764
+ announce: (env) => buildOsPrimer(env),
1764
1765
  reminder: () => null
1765
1766
  };
1766
1767
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "greprag",
3
- "version": "5.61.0",
3
+ "version": "5.61.1",
4
4
  "description": "GrepRAG — agent memory for Claude Code, Codex, and OpenCode.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -49,6 +49,12 @@ wasn't your edit — is fixed at the MOMENT it happens:
49
49
 
50
50
  greprag fix spawn "<one unit of friction>"
51
51
 
52
+ - **What the command does:** it PRINTS a mission (JSON with a `mission`
53
+ field) — it does not spawn anything itself. A **chip** is a spawned child
54
+ task/session. YOU create the child with your harness's native task tool
55
+ (Claude Code `spawn_task`, Codex `codex_app__create_thread`, opencode
56
+ bootloader) and send the mission as its first message. Method:
57
+ `greprag load chip-spawn`.
52
58
  - **One unit = one chip.** A fix chip exists for exactly one unit of
53
59
  friction. Adjacent friction gets its own spawn — a chip that absorbs new
54
60
  friction loses the context each unit needs.