greprag 5.49.10 → 5.49.12

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 (48) hide show
  1. package/dist/commands/arm-reminder.d.ts +10 -3
  2. package/dist/commands/arm-reminder.js +18 -6
  3. package/dist/commands/arm-reminder.js.map +1 -1
  4. package/dist/commands/collision-check.d.ts +1 -2
  5. package/dist/commands/collision-check.js +1 -2
  6. package/dist/commands/collision-check.js.map +1 -1
  7. package/dist/commands/inbox-drain.d.ts +9 -10
  8. package/dist/commands/inbox-drain.js +9 -10
  9. package/dist/commands/inbox-drain.js.map +1 -1
  10. package/dist/commands/inbox-primer-reminder.d.ts +10 -5
  11. package/dist/commands/inbox-primer-reminder.js +35 -21
  12. package/dist/commands/inbox-primer-reminder.js.map +1 -1
  13. package/dist/commands/poll-registry.d.ts +52 -9
  14. package/dist/commands/poll-registry.js +176 -9
  15. package/dist/commands/poll-registry.js.map +1 -1
  16. package/dist/commands/procedure.d.ts +15 -0
  17. package/dist/commands/procedure.js +167 -0
  18. package/dist/commands/procedure.js.map +1 -0
  19. package/dist/commands/reminder-registry.d.ts +5 -0
  20. package/dist/commands/reminder-registry.js +7 -3
  21. package/dist/commands/reminder-registry.js.map +1 -1
  22. package/dist/commands/reminder-types.d.ts +7 -5
  23. package/dist/hook.js +26 -46
  24. package/dist/hook.js.map +1 -1
  25. package/dist/index.js +4 -12
  26. package/dist/index.js.map +1 -1
  27. package/dist/procedure.d.ts +88 -0
  28. package/dist/procedure.js +269 -0
  29. package/dist/procedure.js.map +1 -0
  30. package/package.json +1 -1
  31. package/dist/commands/checkpoint-reminder.d.ts +0 -14
  32. package/dist/commands/checkpoint-reminder.js +0 -50
  33. package/dist/commands/checkpoint-reminder.js.map +0 -1
  34. package/dist/commands/frontdesk-reminder.d.ts +0 -23
  35. package/dist/commands/frontdesk-reminder.js +0 -43
  36. package/dist/commands/frontdesk-reminder.js.map +0 -1
  37. package/dist/commands/inbox-poll.d.ts +0 -47
  38. package/dist/commands/inbox-poll.js +0 -261
  39. package/dist/commands/inbox-poll.js.map +0 -1
  40. package/dist/commands/inbox-spool.d.ts +0 -27
  41. package/dist/commands/inbox-spool.js +0 -151
  42. package/dist/commands/inbox-spool.js.map +0 -1
  43. package/dist/commands/lore.d.ts +0 -35
  44. package/dist/commands/lore.js +0 -504
  45. package/dist/commands/lore.js.map +0 -1
  46. package/dist/front-desk-mail.d.ts +0 -50
  47. package/dist/front-desk-mail.js +0 -206
  48. package/dist/front-desk-mail.js.map +0 -1
@@ -9,9 +9,16 @@ import { ReminderEnv, Detection, ReminderModule } from './reminder-types';
9
9
  * peer has actually messaged this session (grounded + TRUE — nag only when
10
10
  * sessionUnread>0, so it never decays into a cried-wolf banner), else nudge. */
11
11
  export declare function armDetect(env: ReminderEnv): Detection;
12
- /** Per-turn thin line. nag = a real peer message waits (true by construction); nudge =
13
- * unarmed with no mail. The heavy how-to-arm lives in the SessionStart announce. */
14
- export declare function buildArmReminder(d: Detection): string | null;
12
+ /** Per-turn line. nag = a real peer message waits (true by construction); nudge =
13
+ * unarmed with no mail. SELF-SUFFICIENT + LIVE-GROUNDED by design: it carries the
14
+ * exact arm command inline (the SessionStart announce is gone after a compaction),
15
+ * and it NAMES its grounding — this fired because `isLocallyArmed` read no live
16
+ * watcher pidfile for the session, a real state check, not a timer. Without that
17
+ * clause the LLM rationalizes a TRUE signal as a blind nag and overrides it
18
+ * ("the hook can't see my watcher") — the failure this repair closes. The grounding
19
+ * + the forced-decision are the reminder-interrupt doctrine's two missing rules
20
+ * (docs/reminder-interrupt.md: reason · live-grounding · forced-decision · loud). */
21
+ export declare function buildArmReminder(d: Detection, env?: ReminderEnv): string | null;
15
22
  /** The reference module — now REMINDER-ONLY. No SessionStart announce: arming is taught
16
23
  * once by the inbox-primer (the single announce line). This stays the per-turn poke that
17
24
  * fires while unarmed and auto-silences when armed. Wired into reminder-registry.ts. */
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.watcherArmModule = void 0;
10
10
  exports.armDetect = armDetect;
11
11
  exports.buildArmReminder = buildArmReminder;
12
+ const session_id_1 = require("../session-id");
12
13
  // SessionStart arming guidance lives in the inbox-primer now (the ONE announce line,
13
14
  // carrying the Monitor how-to). This module is REMINDER-ONLY — the per-turn poke when
14
15
  // unarmed. The old buildArmAnnounce (a duplicate SessionStart arm announce) and the
@@ -24,16 +25,27 @@ function armDetect(env) {
24
25
  ? { tier: 'nag', detail: { unread } }
25
26
  : { tier: 'nudge', detail: { unread: 0 } };
26
27
  }
27
- /** Per-turn thin line. nag = a real peer message waits (true by construction); nudge =
28
- * unarmed with no mail. The heavy how-to-arm lives in the SessionStart announce. */
29
- function buildArmReminder(d) {
28
+ /** Per-turn line. nag = a real peer message waits (true by construction); nudge =
29
+ * unarmed with no mail. SELF-SUFFICIENT + LIVE-GROUNDED by design: it carries the
30
+ * exact arm command inline (the SessionStart announce is gone after a compaction),
31
+ * and it NAMES its grounding — this fired because `isLocallyArmed` read no live
32
+ * watcher pidfile for the session, a real state check, not a timer. Without that
33
+ * clause the LLM rationalizes a TRUE signal as a blind nag and overrides it
34
+ * ("the hook can't see my watcher") — the failure this repair closes. The grounding
35
+ * + the forced-decision are the reminder-interrupt doctrine's two missing rules
36
+ * (docs/reminder-interrupt.md: reason · live-grounding · forced-decision · loud). */
37
+ function buildArmReminder(d, env) {
30
38
  if (d.tier === 'silent')
31
39
  return null;
32
40
  const unread = Number((d.detail && d.detail.unread) || 0);
41
+ const arm = env
42
+ ? `ToolSearch select:Monitor → persistent Monitor (timeout_ms:3600000) command: \`${(0, session_id_1.armMonitorCommand)(env.short, env.ownerPid, env.assistant)}\``
43
+ : `arm your Monitor inbox watcher`;
44
+ const grounded = `greprag reads your watcher as DOWN (isLocallyArmed=false — a real pidfile check on your session, NOT a timer; the hook CAN see your watcher)`;
33
45
  if (unread > 0) {
34
- return `⚠ A peer messaged you (${unread} waiting) & you're UNARMED arm + answer NOW: greprag inbox.`;
46
+ return `⚠ A peer messaged you (${unread} waiting) & ${grounded}. You're unreachable. Arm + answer NOW, don't reason past this: ${arm}, then \`greprag inbox\`.`;
35
47
  }
36
- return `⚠ Watcher down peers can't reach you. RE-ARM now.`;
48
+ return `⚠ UNARMED${grounded}. You're invisible; messages pile up silently. Re-arm now, or state why you're choosing to stay dark: ${arm}.`;
37
49
  }
38
50
  /** The reference module — now REMINDER-ONLY. No SessionStart announce: arming is taught
39
51
  * once by the inbox-primer (the single announce line). This stays the per-turn poke that
@@ -42,6 +54,6 @@ exports.watcherArmModule = {
42
54
  id: 'watcher-arm',
43
55
  detect: armDetect,
44
56
  announce: () => null,
45
- reminder: (d) => buildArmReminder(d),
57
+ reminder: (d, env) => buildArmReminder(d, env),
46
58
  };
47
59
  //# sourceMappingURL=arm-reminder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arm-reminder.js","sourceRoot":"","sources":["../../src/commands/arm-reminder.ts"],"names":[],"mappings":";AAAA;;;;;uCAKuC;;;AAYvC,8BAMC;AAID,4CAOC;AAzBD,qFAAqF;AACrF,sFAAsF;AACtF,oFAAoF;AACpF,uFAAuF;AAEvF;;iFAEiF;AACjF,SAAgB,SAAS,CAAC,GAAgB;IACxC,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,MAAM,GAAG,CAAC;QACf,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE;QACrC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;AAC/C,CAAC;AAED;qFACqF;AACrF,SAAgB,gBAAgB,CAAC,CAAY;IAC3C,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAK,CAAC,CAAC,MAA8B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,OAAO,0BAA0B,MAAM,+DAA+D,CAAC;IACzG,CAAC;IACD,OAAO,qDAAqD,CAAC;AAC/D,CAAC;AAED;;yFAEyF;AAC5E,QAAA,gBAAgB,GAAmB;IAC9C,EAAE,EAAE,aAAa;IACjB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI;IACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;CACrC,CAAC"}
1
+ {"version":3,"file":"arm-reminder.js","sourceRoot":"","sources":["../../src/commands/arm-reminder.ts"],"names":[],"mappings":";AAAA;;;;;uCAKuC;;;AAavC,8BAMC;AAWD,4CAWC;AAtCD,8CAAkD;AAElD,qFAAqF;AACrF,sFAAsF;AACtF,oFAAoF;AACpF,uFAAuF;AAEvF;;iFAEiF;AACjF,SAAgB,SAAS,CAAC,GAAgB;IACxC,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,MAAM,GAAG,CAAC;QACf,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE;QACrC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;;;;sFAQsF;AACtF,SAAgB,gBAAgB,CAAC,CAAY,EAAE,GAAiB;IAC9D,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAK,CAAC,CAAC,MAA8B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,MAAM,GAAG,GAAG,GAAG;QACb,CAAC,CAAC,kFAAkF,IAAA,8BAAiB,EAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI;QACjJ,CAAC,CAAC,gCAAgC,CAAC;IACrC,MAAM,QAAQ,GAAG,8IAA8I,CAAC;IAChK,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,OAAO,0BAA0B,MAAM,eAAe,QAAQ,mEAAmE,GAAG,2BAA2B,CAAC;IAClK,CAAC;IACD,OAAO,eAAe,QAAQ,yGAAyG,GAAG,GAAG,CAAC;AAChJ,CAAC;AAED;;yFAEyF;AAC5E,QAAA,gBAAgB,GAAmB;IAC9C,EAAE,EAAE,aAAa;IACjB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI;IACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC;CAC/C,CAAC"}
@@ -16,8 +16,7 @@
16
16
  * project_id (or none), so they never match a working session's repo and are
17
17
  * excluded for free. (`wide` is NOT a usable filter — observed true on ordinary
18
18
  * session-scoped watchers, not just tenant-wide ones.) Liveness here depends on
19
- * the peer having an armed watcher; best-effort by construction, pairs with the
20
- * asyncRewake watcher work.
19
+ * the peer having an armed (Monitor) watcher; best-effort by construction.
21
20
  *
22
21
  * AI NEVER AUTO-ACTS: the hook injects a directive naming the peers; the AGENT
23
22
  * composes and sends the contextual heads-up. The hook never sends.
@@ -17,8 +17,7 @@
17
17
  * project_id (or none), so they never match a working session's repo and are
18
18
  * excluded for free. (`wide` is NOT a usable filter — observed true on ordinary
19
19
  * session-scoped watchers, not just tenant-wide ones.) Liveness here depends on
20
- * the peer having an armed watcher; best-effort by construction, pairs with the
21
- * asyncRewake watcher work.
20
+ * the peer having an armed (Monitor) watcher; best-effort by construction.
22
21
  *
23
22
  * AI NEVER AUTO-ACTS: the hook injects a directive naming the peers; the AGENT
24
23
  * composes and sends the contextual heads-up. The hook never sends.
@@ -1 +1 @@
1
- {"version":3,"file":"collision-check.js","sourceRoot":"","sources":["../../src/commands/collision-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collision-check.js","sourceRoot":"","sources":["../../src/commands/collision-check.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,14 @@
1
1
  /** greprag-hook drain — SessionStart inbox drain-on-arm reflex.
2
2
  *
3
- * THE GAP IT CLOSES: the Monitor watcher + asyncRewake poll deliver messages
4
- * that arrive WHILE armed, but on a FRESH arm the poll live-tails only
5
- * (poll-registry.ts: "first poll live tail only; no replay of pre-existing
6
- * history"), and the `mail` hook flags only front-desk COUNT. So a session-
7
- * directed message that lands during a watcher dead-window (between watcher
8
- * death and re-arm) sits UNREAD until someone manually runs `greprag inbox`.
9
- * This closes it: on every arm (SessionStart startup|resume|compact) drain THIS
10
- * session's unread, session-DIRECTED messages into the agent's context, tagged
11
- * peer/human, mark them read, and advance the poll cursor so the just-armed poll
12
- * live-tails from here with no double-delivery. adr: adr/monitor-resilience.md
3
+ * THE GAP IT CLOSES: the Monitor watcher delivers messages that arrive WHILE
4
+ * armed, but it is DESTROYED on reload/compact and only re-arms on the first
5
+ * post-reload turn, and the `mail` hook flags only front-desk COUNT. So a
6
+ * session-directed message that lands during a watcher dead-window (between
7
+ * watcher death and re-arm) sits UNREAD until someone manually runs `greprag
8
+ * inbox`. This closes it: on every arm (SessionStart startup|resume|compact)
9
+ * drain THIS session's unread, session-DIRECTED messages into the agent's
10
+ * context, tagged peer/human, mark them read, and advance the stored cursor so
11
+ * there is no double-delivery. adr: adr/monitor-resilience.md
13
12
  *
14
13
  * SCOPE = session-directed INBOUND only (to_session_id == me). NOT the front
15
14
  * desk (cold opens + email — that's the human-scoped `mail` hook's job) and NOT
@@ -1,16 +1,15 @@
1
1
  "use strict";
2
2
  /** greprag-hook drain — SessionStart inbox drain-on-arm reflex.
3
3
  *
4
- * THE GAP IT CLOSES: the Monitor watcher + asyncRewake poll deliver messages
5
- * that arrive WHILE armed, but on a FRESH arm the poll live-tails only
6
- * (poll-registry.ts: "first poll live tail only; no replay of pre-existing
7
- * history"), and the `mail` hook flags only front-desk COUNT. So a session-
8
- * directed message that lands during a watcher dead-window (between watcher
9
- * death and re-arm) sits UNREAD until someone manually runs `greprag inbox`.
10
- * This closes it: on every arm (SessionStart startup|resume|compact) drain THIS
11
- * session's unread, session-DIRECTED messages into the agent's context, tagged
12
- * peer/human, mark them read, and advance the poll cursor so the just-armed poll
13
- * live-tails from here with no double-delivery. adr: adr/monitor-resilience.md
4
+ * THE GAP IT CLOSES: the Monitor watcher delivers messages that arrive WHILE
5
+ * armed, but it is DESTROYED on reload/compact and only re-arms on the first
6
+ * post-reload turn, and the `mail` hook flags only front-desk COUNT. So a
7
+ * session-directed message that lands during a watcher dead-window (between
8
+ * watcher death and re-arm) sits UNREAD until someone manually runs `greprag
9
+ * inbox`. This closes it: on every arm (SessionStart startup|resume|compact)
10
+ * drain THIS session's unread, session-DIRECTED messages into the agent's
11
+ * context, tagged peer/human, mark them read, and advance the stored cursor so
12
+ * there is no double-delivery. adr: adr/monitor-resilience.md
14
13
  *
15
14
  * SCOPE = session-directed INBOUND only (to_session_id == me). NOT the front
16
15
  * desk (cold opens + email — that's the human-scoped `mail` hook's job) and NOT
@@ -1 +1 @@
1
- {"version":3,"file":"inbox-drain.js","sourceRoot":"","sources":["../../src/commands/inbox-drain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbox-drain.js","sourceRoot":"","sources":["../../src/commands/inbox-drain.ts"],"names":[],"mappings":"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"}
@@ -14,9 +14,14 @@
14
14
  * Agent-facing register: dense, imperative, copy/paste-ready commands, no prose.
15
15
  * Generic (no operator name) so it ships fleet-wide unchanged.
16
16
  * adr: adr/address-grammar.md, docs/reminder-interrupt.md */
17
- import { ReminderModule } from './reminder-types';
18
- /** The load-once schema. Static it teaches the system, so it carries no live
19
- * signal and fires on every SessionStart (and re-teaches after a compaction,
20
- * when the agent has lost it). */
21
- export declare const INBOX_PRIMER: string;
17
+ import { ReminderEnv, ReminderModule } from './reminder-types';
18
+ /** The load-once schema, BUILT over the live session short. The ARM line is the
19
+ * agent's first action, so it ships PRE-FILLED — the resolved 8-hex baked straight
20
+ * into the Monitor command via `armMonitorCommand`, never a `<your-8hex>` placeholder
21
+ * the agent has to hand-substitute. A placeholder is a silent footgun: substitute it
22
+ * wrong (or arm bare) and the supervisor writes no pidfile, so `isLocallyArmed` reads
23
+ * false forever and the arm-check cries wolf every turn (fix 8a471d45). Static
24
+ * otherwise — it teaches the system, so it fires on every SessionStart (and re-teaches
25
+ * after a compaction, when the agent has lost it). */
26
+ export declare function buildInboxPrimer(env: Pick<ReminderEnv, 'short' | 'ownerPid' | 'assistant'>): string;
22
27
  export declare const inboxPrimerModule: ReminderModule;
@@ -16,30 +16,44 @@
16
16
  * Generic (no operator name) so it ships fleet-wide unchanged.
17
17
  * adr: adr/address-grammar.md, docs/reminder-interrupt.md */
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.inboxPrimerModule = exports.INBOX_PRIMER = void 0;
20
- /** The load-once schema. Static — it teaches the system, so it carries no live
21
- * signal and fires on every SessionStart (and re-teaches after a compaction,
22
- * when the agent has lost it). */
23
- exports.INBOX_PRIMER = [
24
- '[greprag inbox system + operating rules. Internalize once; act on every signal.]',
25
- '',
26
- 'MODEL',
27
- '• One shared tenant inbox. `greprag inbox` auto-scopes to YOUR session (lines to/from you only); other sessions\' private threads stay hidden. `--all` = tenant-wide audit; `--front-desk` = the shared catch-all.',
28
- '• Send: `greprag send "md" --to <handle>@greprag.com/<their-8hex|uuid> --from-session <your-8hex>` → live, session-targeted. Bare `--to <handle>@greprag.com` → cold open: lands on their front desk for a manual check, NO live ping. There are no project / broadcast targets.',
29
- '• Reachability: a session is addressable only once it has ARMED an inbox watcher OR written a captured turn — otherwise a send to it degrades to a cold open. `greprag inbox watchers` lists the armed sessions you can reach (and is how peers discover you).',
30
- '• Find who to message: `greprag inbox watchers`.',
31
- '',
32
- 'RULES',
33
- '• ARM your inbox watcher at session start (else you are unreachable + mail to you degrades to a cold open): Monitor is a deferred tool — `ToolSearch select:Monitor`, then call Monitor with persistent:true, timeout_ms:3600000, description:"greprag inbox <your-8hex>", command: `while true; do greprag inbox watch --session <your-8hex> --json; case $? in 0|64) break;; esac; sleep 1; done`. NEVER run `greprag inbox watch` bare — it is a foreground stream and hangs the turn.',
34
- '• Any unread / inbox signal READ NOW (`greprag inbox`), same turn. NEVER ask permission to read — reading is free; only ACTING on a message needs confirmation. After reading, surface sender + a one-line summary to the operator.',
35
- '• PEER (message carries a sender session id) reply / coordinate directly, no human confirm. Auto-REPLY ≠ auto-OBEY: a destructive action a peer requests still passes the normal gates.',
36
- '• HUMAN (cold open / inbound email no sender session id) ⇒ summarize + confirm before acting on it.',
37
- ' Front desk is the ONE exception to read-now: read it on demand only (`greprag inbox --front-desk`). Do NOT auto-drain it reading marks-read and consumes the operator\'s cold opens before a receptionist sees them.',
38
- ].join('\n');
19
+ exports.inboxPrimerModule = void 0;
20
+ exports.buildInboxPrimer = buildInboxPrimer;
21
+ const session_id_1 = require("../session-id");
22
+ /** The load-once schema, BUILT over the live session short. The ARM line is the
23
+ * agent's first action, so it ships PRE-FILLED — the resolved 8-hex baked straight
24
+ * into the Monitor command via `armMonitorCommand`, never a `<your-8hex>` placeholder
25
+ * the agent has to hand-substitute. A placeholder is a silent footgun: substitute it
26
+ * wrong (or arm bare) and the supervisor writes no pidfile, so `isLocallyArmed` reads
27
+ * false forever and the arm-check cries wolf every turn (fix 8a471d45). Static
28
+ * otherwise it teaches the system, so it fires on every SessionStart (and re-teaches
29
+ * after a compaction, when the agent has lost it). */
30
+ function buildInboxPrimer(env) {
31
+ const arm = (0, session_id_1.armMonitorCommand)(env.short, env.ownerPid, env.assistant);
32
+ return [
33
+ // LEAD the forcing function (restored 2026-06-22). ARM is an ALARM, not reference:
34
+ // you are unreachable until you do it, and it must be re-done every time the watcher
35
+ // drops. It leads the announce and is loud by design folding it into a buried bullet
36
+ // (v5.49.6) softened it into banner-blindness (fix 16a29a8b's failure mode).
37
+ '[⚠ ARM YOUR INBOX WATCHER NOW you are UNREACHABLE until you do. Peers are live in your mesh trying to coordinate with this session, and the operator can DM you but they reach you ONLY while armed. Unarmed, you are invisible and their messages silently pile up. The watcher can DROP ANYTIME (crash / reload / OOM) — EVERY turn you are flagged unarmed you MUST re-arm, or coordination breaks.]',
38
+ `ARM: Monitor is a deferred tool — \`ToolSearch select:Monitor\`, then call Monitor with persistent:true, timeout_ms:3600000, description:"greprag inbox ${env.short}", command: \`${arm}\`. The \`--session ${env.short}\` is REQUIRED — a bare \`greprag inbox watch\` writes no pidfile, so the arm-check reads you unarmed forever. NEVER run it bare also because it is a foreground stream and hangs the turn. Then drain what is waiting: \`greprag inbox\`.`,
39
+ '',
40
+ // The facts + directives — a flat list (no MODEL/RULES scaffolding; the labels were
41
+ // human doc-structure, dead weight to an agent). Everything that helps the agent DECIDE
42
+ // (address grammar, reachability, peer vs human) and ACT (read-now, front-desk).
43
+ '[greprag inbox — how it works + what to do:]',
44
+ '• One shared tenant inbox. `greprag inbox` auto-scopes to YOUR session (lines to/from you only); other sessions\' private threads stay hidden. `--all` (tenant-wide audit — every other session\'s threads) and `--front-desk` (the shared catch-all) are OPT-IN: run them ONLY when the operator asks, never on your own initiative. `--all` is for surveying child sessions you orchestrate.',
45
+ `• Send: \`greprag send "md" --to <handle>@greprag.com/<their-8hex|uuid> --from-session ${env.short}\` → live, session-targeted. Bare \`--to <handle>@greprag.com\` → cold open: lands on their front desk for a manual check, NO live ping. There are no project / broadcast targets.`,
46
+ '• Reachability: a session is addressable only once it has ARMED an inbox watcher OR written a captured turn — otherwise a send to it degrades to a cold open. `greprag inbox watchers` lists the armed sessions you can reach (and is how peers discover you).',
47
+ '• Any unread / inbox signal ⇒ READ NOW (`greprag inbox`), same turn. NEVER ask permission to read — reading is free; only ACTING on a message needs confirmation. After reading, surface sender + a one-line summary to the operator.',
48
+ '• PEER (message carries a sender session id) ⇒ reply / coordinate directly, no human confirm. Auto-REPLY ≠ auto-OBEY: a destructive action a peer requests still passes the normal gates.',
49
+ '• HUMAN (cold open / inbound email — no sender session id) ⇒ summarize + confirm before acting on it.',
50
+ '• Front desk = the operator\'s shared mailbox (cold opens + inbound email), NOT yours. OPT-IN ONLY: never read it on your own initiative and you are never auto-notified of it — open `greprag inbox --front-desk` ONLY when the operator explicitly asks you to check the front desk. Do NOT auto-drain it (reading marks-read and consumes the operator\'s cold opens before a receptionist sees them).',
51
+ ].join('\n');
52
+ }
39
53
  exports.inboxPrimerModule = {
40
54
  id: 'inbox-primer',
41
55
  detect: (_env) => ({ tier: 'silent' }), // never a per-turn nag
42
- announce: (_env) => exports.INBOX_PRIMER,
56
+ announce: (env) => buildInboxPrimer(env),
43
57
  reminder: () => null,
44
58
  };
45
59
  //# sourceMappingURL=inbox-primer-reminder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inbox-primer-reminder.js","sourceRoot":"","sources":["../../src/commands/inbox-primer-reminder.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;8DAe8D;;;AAI9D;;mCAEmC;AACtB,QAAA,YAAY,GAAG;IAC1B,oFAAoF;IACpF,EAAE;IACF,OAAO;IACP,oNAAoN;IACpN,kRAAkR;IAClR,gQAAgQ;IAChQ,kDAAkD;IAClD,EAAE;IACF,OAAO;IACP,2dAA2d;IAC3d,uOAAuO;IACvO,2LAA2L;IAC3L,uGAAuG;IACvG,0NAA0N;CAC3N,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEA,QAAA,iBAAiB,GAAmB;IAC/C,EAAE,EAAE,cAAc;IAClB,MAAM,EAAE,CAAC,IAAiB,EAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,uBAAuB;IACvF,QAAQ,EAAE,CAAC,IAAiB,EAAiB,EAAE,CAAC,oBAAY;IAC5D,QAAQ,EAAE,GAAkB,EAAE,CAAC,IAAI;CACpC,CAAC"}
1
+ {"version":3,"file":"inbox-primer-reminder.js","sourceRoot":"","sources":["../../src/commands/inbox-primer-reminder.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;8DAe8D;;;AAa9D,4CAsBC;AAhCD,8CAAkD;AAElD;;;;;;;uDAOuD;AACvD,SAAgB,gBAAgB,CAAC,GAA0D;IACzF,MAAM,GAAG,GAAG,IAAA,8BAAiB,EAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IACtE,OAAO;QACL,qFAAqF;QACrF,qFAAqF;QACrF,uFAAuF;QACvF,6EAA6E;QAC7E,6YAA6Y;QAC7Y,2JAA2J,GAAG,CAAC,KAAK,iBAAiB,GAAG,uBAAuB,GAAG,CAAC,KAAK,4OAA4O;QACpc,EAAE;QACF,oFAAoF;QACpF,wFAAwF;QACxF,iFAAiF;QACjF,8CAA8C;QAC9C,gYAAgY;QAChY,0FAA0F,GAAG,CAAC,KAAK,oLAAoL;QACvR,gQAAgQ;QAChQ,uOAAuO;QACvO,2LAA2L;QAC3L,uGAAuG;QACvG,2YAA2Y;KAC5Y,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAEY,QAAA,iBAAiB,GAAmB;IAC/C,EAAE,EAAE,cAAc;IAClB,MAAM,EAAE,CAAC,IAAiB,EAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,uBAAuB;IACvF,QAAQ,EAAE,CAAC,GAAgB,EAAiB,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC;IACpE,QAAQ,EAAE,GAAkB,EAAE,CAAC,IAAI;CACpC,CAAC"}
@@ -1,13 +1,56 @@
1
- /** Inbox cursor store — the per-session `~/.greprag/polls/<short>.cursor` file.
1
+ /** Poll registrylocal pidfile tracking for the asyncRewake idle-liveness
2
+ * polls (`greprag inbox poll`), kept in its OWN namespace `~/.greprag/polls/`
3
+ * so it NEVER touches the Monitor watcher's `~/.greprag/watchers/` registry.
2
4
  *
3
- * HISTORY: this module WAS the asyncRewake idle-liveness POLL registry (pidfiles,
4
- * count-cap, liveness probes). The poll was REMOVED it cost ~1 long-lived node
5
- * process per session (~1.1 GB across the operator's concurrent sessions); the
6
- * Monitor watcher + the SessionStart drain are the delivery path. See
7
- * adr/monitor-resilience.md. Only the cursor helpers survive, still used by the
8
- * `drain` hook to track a stable last-seen id. */
9
- /** Last message id this session has seen, or null (first read live tail only). */
5
+ * WHY SEPARATE: `notify`'s `isLocallyArmed` reads the watcher registry to decide
6
+ * whether to inject the Monitor arm directive. If a poll registered there, the
7
+ * Monitor arm would go silent and the poll would REPLACE Monitor instead of
8
+ * running ALONGSIDE it. The two liveness mechanisms must be independent until a
9
+ * deliberate cutover. adr: adr/monitor-resilience.md
10
+ *
11
+ * The cleanup model mirrors the SHIPPED watcher count-cap (and reuses its pure
12
+ * `capSurplusVerdict`): per session, keep the K freshest LIVE polls, reap only
13
+ * the surplus, never below K. No death-judgment — a count + a floor — so it can
14
+ * never false-kill the live poll. Reload-orphans (if asyncRewake does not adopt
15
+ * a process across reload) are bounded here AND self-clean via the poll's own
16
+ * max-lifetime ceiling. */
17
+ /** Default per-session poll floor: keep this many freshest live polls, reap the
18
+ * surplus, never below it. K=2 = the live one + one margin (a reload overlap). */
19
+ export declare const DEFAULT_POLL_CAP = 2;
20
+ export interface PollRecord {
21
+ short: string;
22
+ pid: number;
23
+ startedAt: number;
24
+ }
25
+ /** APPEND this poll's entry (pruning dead entries as it goes). Best-effort. */
26
+ export declare function registerPoll(short: string, pid: number): void;
27
+ /** Remove THIS poll's entry (on the poll's own exit — message-wake or ceiling). */
28
+ export declare function deregisterPoll(short: string, pid: number): void;
29
+ /** Does this session have ANY live poll right now? The re-arm gate: a gated arm
30
+ * (PostToolUse / UserPromptSubmit) skips when true so per-tool fires don't pile
31
+ * up; SessionStart never gates (it always arms a fresh, reload-adopted poll).
32
+ * Sweeps dead entries as it reads. */
33
+ export declare function isPollArmed(short: string): boolean;
34
+ /** Every live poll on this machine, freshest first. */
35
+ export declare function listLivePolls(): PollRecord[];
36
+ /** Last message id this session's polls have seen, or null (first poll → live
37
+ * tail only; no replay of pre-existing history). */
10
38
  export declare function readPollCursor(short: string): string | null;
11
39
  export declare function writePollCursor(short: string, id: string): void;
12
- /** Drop the cursor (→ next read resumes from the live tail). */
40
+ /** Drop the cursor (→ next poll live-tails from now). Called when the server
41
+ * rejects the stored `since` (the message it points to was pruned/deleted): a
42
+ * stale cursor would otherwise 4xx forever, permanently wedging delivery for
43
+ * this session. Clearing it trades replay of the gap for restored liveness. */
13
44
  export declare function clearPollCursor(short: string): void;
45
+ export interface PollCapResult {
46
+ scanned: number;
47
+ surplus: number;
48
+ killed: number[];
49
+ }
50
+ /** Count-cap every session's polls: keep the K freshest LIVE polls, kill only the
51
+ * surplus, never below K. Snapshot-free (per-session file reads + pidAlive); a
52
+ * `taskkill` only on genuine surplus. Run at SessionStart (recap hook) and via
53
+ * `greprag inbox poll-reap`. Reuses the watcher's pure `capSurplusVerdict` — the
54
+ * same liveness-safety guarantee, applied to the poll namespace.
55
+ * adr: adr/monitor-resilience.md */
56
+ export declare function reapSurplusPolls(K?: number): PollCapResult;