greprag 5.44.3 → 5.45.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.
- package/dist/commands/collision-check.d.ts +113 -0
- package/dist/commands/collision-check.js +266 -0
- package/dist/commands/collision-check.js.map +1 -0
- package/dist/commands/coordinate-gate.d.ts +73 -0
- package/dist/commands/coordinate-gate.js +108 -0
- package/dist/commands/coordinate-gate.js.map +1 -0
- package/dist/commands/corpus/refresh.js +1 -1
- package/dist/commands/corpus/refresh.js.map +1 -1
- package/dist/commands/inbox-drain.d.ts +49 -0
- package/dist/commands/inbox-drain.js +163 -0
- package/dist/commands/inbox-drain.js.map +1 -0
- package/dist/commands/inbox-poll.d.ts +47 -0
- package/dist/commands/inbox-poll.js +261 -0
- package/dist/commands/inbox-poll.js.map +1 -0
- package/dist/commands/inbox-watch.js +3 -0
- package/dist/commands/inbox-watch.js.map +1 -1
- package/dist/commands/ingress-trigger.d.ts +67 -0
- package/dist/commands/ingress-trigger.js +103 -0
- package/dist/commands/ingress-trigger.js.map +1 -0
- package/dist/commands/init.js +41 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/poll-registry.d.ts +56 -0
- package/dist/commands/poll-registry.js +261 -0
- package/dist/commands/poll-registry.js.map +1 -0
- package/dist/commands/state-trigger.d.ts +66 -0
- package/dist/commands/state-trigger.js +305 -0
- package/dist/commands/state-trigger.js.map +1 -0
- package/dist/fix-trigger.d.ts +25 -5
- package/dist/fix-trigger.js +35 -11
- package/dist/fix-trigger.js.map +1 -1
- package/dist/guard.d.ts +13 -0
- package/dist/guard.js +58 -3
- package/dist/guard.js.map +1 -1
- package/dist/hook.js +226 -4
- package/dist/hook.js.map +1 -1
- package/dist/index.js +70 -1
- package/dist/index.js.map +1 -1
- package/dist/session-id.d.ts +12 -0
- package/dist/session-id.js +17 -0
- package/dist/session-id.js.map +1 -1
- package/package.json +1 -1
- package/skill/greprag/SKILL.md +4 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** greprag-hook drain — SessionStart inbox drain-on-arm reflex.
|
|
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
|
|
13
|
+
*
|
|
14
|
+
* SCOPE = session-directed INBOUND only (to_session_id == me). NOT the front
|
|
15
|
+
* desk (cold opens + email — that's the human-scoped `mail` hook's job) and NOT
|
|
16
|
+
* my own OUTBOUND peer replies (from_session_id == me). All of a tenant's
|
|
17
|
+
* sessions share ONE inbox store, so a plain endpoint-filter list read
|
|
18
|
+
* (`GET /v1/inbox?session_id=` matches to OR from) with auto-mark-read would
|
|
19
|
+
* mark my own outbound replies read — hiding them from a peer who has not
|
|
20
|
+
* drained yet (the inverted version of the exact gap this closes). So the read
|
|
21
|
+
* is non-destructive (peek), filtered to inbound, and mark-read targets ONLY
|
|
22
|
+
* the inbound ids.
|
|
23
|
+
*
|
|
24
|
+
* ORDERING is the safety guarantee: read (peek, no mutation) → inject + advance
|
|
25
|
+
* cursor → mark read LAST. A crash before mark-read leaves the messages unread
|
|
26
|
+
* for the next arm to re-drain (never lost). Best-effort end to end: any
|
|
27
|
+
* failure → silent, never blocks SessionStart.
|
|
28
|
+
*/
|
|
29
|
+
/** Newest N injected; older inbound-unread stay unread + noted (no silent drop). */
|
|
30
|
+
export declare const DEFAULT_DRAIN_CAP = 10;
|
|
31
|
+
export interface DrainOptions {
|
|
32
|
+
session: string;
|
|
33
|
+
apiUrl: string;
|
|
34
|
+
apiKey: string;
|
|
35
|
+
cap?: number;
|
|
36
|
+
fetchImpl?: typeof fetch;
|
|
37
|
+
writeCursor?: (short: string, id: string) => void;
|
|
38
|
+
}
|
|
39
|
+
export interface DrainResult {
|
|
40
|
+
context: string | null;
|
|
41
|
+
drained: number;
|
|
42
|
+
truncated: number;
|
|
43
|
+
cursorAdvancedTo: string | null;
|
|
44
|
+
}
|
|
45
|
+
/** Run one drain pass. Returns the additionalContext text (or null) plus a
|
|
46
|
+
* summary. Pure-ish: network + cursor writes go through injectable seams so the
|
|
47
|
+
* unit test never touches disk or the live API. Never throws — every failure
|
|
48
|
+
* path resolves to a clean no-op so SessionStart is never blocked. */
|
|
49
|
+
export declare function runInboxDrain(opts: DrainOptions): Promise<DrainResult>;
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** greprag-hook drain — SessionStart inbox drain-on-arm reflex.
|
|
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
|
|
14
|
+
*
|
|
15
|
+
* SCOPE = session-directed INBOUND only (to_session_id == me). NOT the front
|
|
16
|
+
* desk (cold opens + email — that's the human-scoped `mail` hook's job) and NOT
|
|
17
|
+
* my own OUTBOUND peer replies (from_session_id == me). All of a tenant's
|
|
18
|
+
* sessions share ONE inbox store, so a plain endpoint-filter list read
|
|
19
|
+
* (`GET /v1/inbox?session_id=` matches to OR from) with auto-mark-read would
|
|
20
|
+
* mark my own outbound replies read — hiding them from a peer who has not
|
|
21
|
+
* drained yet (the inverted version of the exact gap this closes). So the read
|
|
22
|
+
* is non-destructive (peek), filtered to inbound, and mark-read targets ONLY
|
|
23
|
+
* the inbound ids.
|
|
24
|
+
*
|
|
25
|
+
* ORDERING is the safety guarantee: read (peek, no mutation) → inject + advance
|
|
26
|
+
* cursor → mark read LAST. A crash before mark-read leaves the messages unread
|
|
27
|
+
* for the next arm to re-drain (never lost). Best-effort end to end: any
|
|
28
|
+
* failure → silent, never blocks SessionStart.
|
|
29
|
+
*/
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.DEFAULT_DRAIN_CAP = void 0;
|
|
32
|
+
exports.runInboxDrain = runInboxDrain;
|
|
33
|
+
const session_id_1 = require("../session-id");
|
|
34
|
+
const poll_registry_1 = require("./poll-registry");
|
|
35
|
+
/** Newest N injected; older inbound-unread stay unread + noted (no silent drop). */
|
|
36
|
+
exports.DEFAULT_DRAIN_CAP = 10;
|
|
37
|
+
const BODY_PREVIEW = 600;
|
|
38
|
+
function tsOf(m) {
|
|
39
|
+
const t = Date.parse(m.created_at);
|
|
40
|
+
return Number.isFinite(t) ? t : 0;
|
|
41
|
+
}
|
|
42
|
+
/** Newest message id (by created_at) across the whole peeked endpoint set —
|
|
43
|
+
* read or unread. Used as the poll cursor so the just-armed poll resumes
|
|
44
|
+
* strictly AFTER everything already in the inbox (no re-delivery of drained OR
|
|
45
|
+
* already-read mail). >= the newest drained id by construction. */
|
|
46
|
+
function newestId(messages) {
|
|
47
|
+
let best = null;
|
|
48
|
+
for (const m of messages) {
|
|
49
|
+
if (!m.id)
|
|
50
|
+
continue;
|
|
51
|
+
if (!best || tsOf(m) > tsOf(best))
|
|
52
|
+
best = m;
|
|
53
|
+
}
|
|
54
|
+
return best?.id ?? null;
|
|
55
|
+
}
|
|
56
|
+
/** Build the injected SessionStart context. Each message carries the peer/human
|
|
57
|
+
* doctrine tag (peerHumanTag) so the agent knows to reply directly (peer) vs
|
|
58
|
+
* summarize+confirm (human). Truncation past the cap is stated, never silent. */
|
|
59
|
+
function buildDrainContext(drain, truncated, short) {
|
|
60
|
+
const n = drain.length;
|
|
61
|
+
const lines = [];
|
|
62
|
+
lines.push(`📥 Inbox drain on arm — ${n} unread session-directed message${n === 1 ? '' : 's'} `
|
|
63
|
+
+ `arrived for ${short} while no live watcher was running. Delivered now + marked read:`);
|
|
64
|
+
for (const m of drain) {
|
|
65
|
+
const sender = m.from.email || m.from.handle || `${m.from.tenant}@greprag.com`;
|
|
66
|
+
const fromSess = (0, session_id_1.truncateSessionId)(m.from.session_id ?? null);
|
|
67
|
+
const origin = fromSess ? ` (session ${fromSess})` : '';
|
|
68
|
+
const tag = (0, session_id_1.peerHumanTag)(m.from.session_id);
|
|
69
|
+
const body = m.body.length > BODY_PREVIEW ? m.body.slice(0, BODY_PREVIEW) + '…' : m.body;
|
|
70
|
+
lines.push('');
|
|
71
|
+
lines.push(`• from ${sender}${origin} ${tag}`);
|
|
72
|
+
lines.push(body);
|
|
73
|
+
}
|
|
74
|
+
if (truncated > 0) {
|
|
75
|
+
lines.push('');
|
|
76
|
+
lines.push(`…and ${truncated} older unread message${truncated === 1 ? '' : 's'} not shown here `
|
|
77
|
+
+ `(still unread — read them with \`greprag inbox --session ${short}\`).`);
|
|
78
|
+
}
|
|
79
|
+
lines.push('');
|
|
80
|
+
lines.push(`Reply on the channel each arrived on: `
|
|
81
|
+
+ `\`greprag send "…" --to <handle>@greprag.com/<their-8hex> --from-session ${short}\`.`);
|
|
82
|
+
return lines.join('\n');
|
|
83
|
+
}
|
|
84
|
+
/** Run one drain pass. Returns the additionalContext text (or null) plus a
|
|
85
|
+
* summary. Pure-ish: network + cursor writes go through injectable seams so the
|
|
86
|
+
* unit test never touches disk or the live API. Never throws — every failure
|
|
87
|
+
* path resolves to a clean no-op so SessionStart is never blocked. */
|
|
88
|
+
async function runInboxDrain(opts) {
|
|
89
|
+
const none = { context: null, drained: 0, truncated: 0, cursorAdvancedTo: null };
|
|
90
|
+
if (!opts.apiKey || !opts.session)
|
|
91
|
+
return none;
|
|
92
|
+
const cap = opts.cap ?? exports.DEFAULT_DRAIN_CAP;
|
|
93
|
+
const doFetch = opts.fetchImpl ?? fetch;
|
|
94
|
+
const writeCursor = opts.writeCursor ?? poll_registry_1.writePollCursor;
|
|
95
|
+
const base = opts.apiUrl.replace(/\/+$/, '');
|
|
96
|
+
// 1. PEEK-read this session's endpoint mail. peek=1 → NO mutation + returns
|
|
97
|
+
// read AND unread, with `was_unread` + `to_session_id` + `from.session_id`.
|
|
98
|
+
// Internal self-desk types are already excluded server-side (peek does not
|
|
99
|
+
// set include=all), so no client-side type filter is needed.
|
|
100
|
+
let messages;
|
|
101
|
+
try {
|
|
102
|
+
const url = `${base}/v1/inbox?session_id=${encodeURIComponent(opts.session)}&peek=1`;
|
|
103
|
+
const res = await doFetch(url, { headers: { Authorization: `Bearer ${opts.apiKey}` } });
|
|
104
|
+
if (!res.ok)
|
|
105
|
+
return none;
|
|
106
|
+
const data = await res.json();
|
|
107
|
+
messages = Array.isArray(data.messages) ? data.messages : [];
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return none;
|
|
111
|
+
}
|
|
112
|
+
if (messages.length === 0)
|
|
113
|
+
return none;
|
|
114
|
+
// 2. Filter to INBOUND unread: directed TO me (to_session_id == me) AND still
|
|
115
|
+
// unread. Excludes my own outbound (from == me, to == peer) and already-read
|
|
116
|
+
// mail — the watcher/poll deliver exactly this inbound scope.
|
|
117
|
+
const inbound = messages.filter(m => m.was_unread === true
|
|
118
|
+
&& (0, session_id_1.truncateSessionId)(m.to_session_id ?? null) === opts.session);
|
|
119
|
+
if (inbound.length === 0)
|
|
120
|
+
return none;
|
|
121
|
+
// Chronological (oldest → newest) so a coordination thread reads in order.
|
|
122
|
+
inbound.sort((a, b) => tsOf(a) - tsOf(b));
|
|
123
|
+
// 3. Cap the injected volume to the NEWEST `cap`. Older inbound-unread stay
|
|
124
|
+
// unread (NOT marked, NOT silently dropped): they remain in `greprag inbox`
|
|
125
|
+
// and the next arm re-drains them. The overflow count is stated below.
|
|
126
|
+
let drain = inbound;
|
|
127
|
+
let truncated = 0;
|
|
128
|
+
if (inbound.length > cap) {
|
|
129
|
+
truncated = inbound.length - cap;
|
|
130
|
+
drain = inbound.slice(inbound.length - cap); // newest `cap`, still chronological
|
|
131
|
+
}
|
|
132
|
+
// 4. Build the injected context (peer/human tagged).
|
|
133
|
+
const context = buildDrainContext(drain, truncated, opts.session);
|
|
134
|
+
// 5. Advance the poll cursor to the newest endpoint message id so the just-
|
|
135
|
+
// armed poll resumes strictly AFTER everything already in the inbox — no
|
|
136
|
+
// double-delivery. Only when there is something to drain (never disturb a
|
|
137
|
+
// healthy poll's cursor on an empty arm).
|
|
138
|
+
const cursor = newestId(messages);
|
|
139
|
+
if (cursor) {
|
|
140
|
+
try {
|
|
141
|
+
writeCursor(opts.session, cursor);
|
|
142
|
+
}
|
|
143
|
+
catch { /* best-effort */ }
|
|
144
|
+
}
|
|
145
|
+
// 6. Mark the drained (injected) ids read LAST — after inject + cursor — so a
|
|
146
|
+
// crash before this point re-drains next arm rather than losing a message.
|
|
147
|
+
// Inbound ids only, so a peer's view of my outbound is never touched.
|
|
148
|
+
// Fail-quiet: an unreachable / not-yet-deployed /read route leaves the
|
|
149
|
+
// messages unread (re-drained next arm); cursor + inject already succeeded.
|
|
150
|
+
const ids = drain.map(m => m.id).filter(Boolean);
|
|
151
|
+
if (ids.length > 0) {
|
|
152
|
+
try {
|
|
153
|
+
await doFetch(`${base}/v1/inbox/read`, {
|
|
154
|
+
method: 'POST',
|
|
155
|
+
headers: { Authorization: `Bearer ${opts.apiKey}`, 'Content-Type': 'application/json' },
|
|
156
|
+
body: JSON.stringify({ ids }),
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
catch { /* mark-read is best-effort */ }
|
|
160
|
+
}
|
|
161
|
+
return { context, drained: drain.length, truncated, cursorAdvancedTo: cursor };
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=inbox-drain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbox-drain.js","sourceRoot":"","sources":["../../src/commands/inbox-drain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** greprag inbox poll — asyncRewake idle-liveness probe (the deep fix).
|
|
2
|
+
*
|
|
3
|
+
* THE GAP IT CLOSES: the Monitor watcher delivers + crash-respawns fine, but it
|
|
4
|
+
* DIES on session reload / `/compact` and needs an AGENT TURN to re-arm — the
|
|
5
|
+
* structural idle-death gap no version (incl. June 8) ever closed. asyncRewake
|
|
6
|
+
* breaks that wall: a command hook with `async:true, asyncRewake:true` runs
|
|
7
|
+
* DETACHED, SURVIVES TURN-END, and on `exit 2` the harness injects its stderr as
|
|
8
|
+
* a system reminder — WAKING A FULLY IDLE SESSION with no turn. SessionStart
|
|
9
|
+
* fires on resume/compact (the exact events that kill Monitor), so wiring this as
|
|
10
|
+
* a SessionStart async+asyncRewake hook RE-ARMS the poll after every reload,
|
|
11
|
+
* turn-free. adr: adr/monitor-resilience.md (2026-06-19 entry).
|
|
12
|
+
*
|
|
13
|
+
* HOW IT BEHAVES: a session-scoped SSE long-poll. It stays connected while idle
|
|
14
|
+
* (that connected wait IS the idle-liveness). On the FIRST inbox message it
|
|
15
|
+
* writes the message to STDERR and returns POLL_DELIVERED_EXIT (2) → the wake.
|
|
16
|
+
* On a bounded max-lifetime ceiling, a 4xx, or abort it returns POLL_CLEAN_EXIT
|
|
17
|
+
* (0) → no wake. A persisted cursor (`~/.greprag/polls/<short>.cursor`) makes
|
|
18
|
+
* the next poll resume after the last seen id, so a message arriving between one
|
|
19
|
+
* poll exiting and the next arming is REPLAYED, not lost.
|
|
20
|
+
*
|
|
21
|
+
* ALONGSIDE MONITOR, not instead of it: it registers in its OWN namespace
|
|
22
|
+
* (`~/.greprag/polls/`, see poll-registry.ts) so it never gates Monitor arming.
|
|
23
|
+
* When both are live a message may be delivered twice (Monitor event + poll
|
|
24
|
+
* wake) — the accepted cost of a parallel safety net until a deliberate cutover.
|
|
25
|
+
*
|
|
26
|
+
* MUST be wired ASYNC. As a synchronous hook this would block the turn for the
|
|
27
|
+
* whole ceiling. The arming hooks set `async:true, asyncRewake:true`. */
|
|
28
|
+
/** Exit code that triggers the asyncRewake idle-session wake (stderr → reminder). */
|
|
29
|
+
export declare const POLL_DELIVERED_EXIT = 2;
|
|
30
|
+
/** Exit code for every non-wake terminal (ceiling / gate-skip / no key / 4xx). */
|
|
31
|
+
export declare const POLL_CLEAN_EXIT = 0;
|
|
32
|
+
export interface PollOptions {
|
|
33
|
+
session: string;
|
|
34
|
+
apiUrl: string;
|
|
35
|
+
apiKey: string;
|
|
36
|
+
maxMs?: number;
|
|
37
|
+
gate?: boolean;
|
|
38
|
+
json?: boolean;
|
|
39
|
+
register?: boolean;
|
|
40
|
+
signal?: AbortSignal;
|
|
41
|
+
projectId?: string;
|
|
42
|
+
}
|
|
43
|
+
/** Run one idle-liveness poll. Returns the exit code the hook wrapper exits with:
|
|
44
|
+
* POLL_DELIVERED_EXIT (2) on a message (→ asyncRewake wake) or POLL_CLEAN_EXIT
|
|
45
|
+
* (0) on every other terminal. Returns (does NOT call process.exit) so it is
|
|
46
|
+
* unit-testable; the `greprag-hook poll` wrapper exits with the returned code. */
|
|
47
|
+
export declare function runInboxPoll(opts: PollOptions): Promise<number>;
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** greprag inbox poll — asyncRewake idle-liveness probe (the deep fix).
|
|
3
|
+
*
|
|
4
|
+
* THE GAP IT CLOSES: the Monitor watcher delivers + crash-respawns fine, but it
|
|
5
|
+
* DIES on session reload / `/compact` and needs an AGENT TURN to re-arm — the
|
|
6
|
+
* structural idle-death gap no version (incl. June 8) ever closed. asyncRewake
|
|
7
|
+
* breaks that wall: a command hook with `async:true, asyncRewake:true` runs
|
|
8
|
+
* DETACHED, SURVIVES TURN-END, and on `exit 2` the harness injects its stderr as
|
|
9
|
+
* a system reminder — WAKING A FULLY IDLE SESSION with no turn. SessionStart
|
|
10
|
+
* fires on resume/compact (the exact events that kill Monitor), so wiring this as
|
|
11
|
+
* a SessionStart async+asyncRewake hook RE-ARMS the poll after every reload,
|
|
12
|
+
* turn-free. adr: adr/monitor-resilience.md (2026-06-19 entry).
|
|
13
|
+
*
|
|
14
|
+
* HOW IT BEHAVES: a session-scoped SSE long-poll. It stays connected while idle
|
|
15
|
+
* (that connected wait IS the idle-liveness). On the FIRST inbox message it
|
|
16
|
+
* writes the message to STDERR and returns POLL_DELIVERED_EXIT (2) → the wake.
|
|
17
|
+
* On a bounded max-lifetime ceiling, a 4xx, or abort it returns POLL_CLEAN_EXIT
|
|
18
|
+
* (0) → no wake. A persisted cursor (`~/.greprag/polls/<short>.cursor`) makes
|
|
19
|
+
* the next poll resume after the last seen id, so a message arriving between one
|
|
20
|
+
* poll exiting and the next arming is REPLAYED, not lost.
|
|
21
|
+
*
|
|
22
|
+
* ALONGSIDE MONITOR, not instead of it: it registers in its OWN namespace
|
|
23
|
+
* (`~/.greprag/polls/`, see poll-registry.ts) so it never gates Monitor arming.
|
|
24
|
+
* When both are live a message may be delivered twice (Monitor event + poll
|
|
25
|
+
* wake) — the accepted cost of a parallel safety net until a deliberate cutover.
|
|
26
|
+
*
|
|
27
|
+
* MUST be wired ASYNC. As a synchronous hook this would block the turn for the
|
|
28
|
+
* whole ceiling. The arming hooks set `async:true, asyncRewake:true`. */
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.POLL_CLEAN_EXIT = exports.POLL_DELIVERED_EXIT = void 0;
|
|
31
|
+
exports.runInboxPoll = runInboxPoll;
|
|
32
|
+
const inbox_watch_1 = require("./inbox-watch");
|
|
33
|
+
const session_id_1 = require("../session-id");
|
|
34
|
+
const poll_registry_1 = require("./poll-registry");
|
|
35
|
+
// Ingress-trigger bridge, Adapter B (ASYNC half) — an arrived message is the
|
|
36
|
+
// canonical ingress event. On a message wake we run the shared eval over any
|
|
37
|
+
// registered `source:"ingress"` rule (peer-C's auto-reply directive) and append
|
|
38
|
+
// its inject ALONGSIDE the hand-wired peerHumanTag. MIGRATION DISCIPLINE: the
|
|
39
|
+
// hand-wired tag stays until the registered rule is field-green, then it cuts
|
|
40
|
+
// over. Off the hot path → a local cache read is fine. docs/ingress-trigger-bridge.md
|
|
41
|
+
const ingress_trigger_1 = require("./ingress-trigger");
|
|
42
|
+
/** Exit code that triggers the asyncRewake idle-session wake (stderr → reminder). */
|
|
43
|
+
exports.POLL_DELIVERED_EXIT = 2;
|
|
44
|
+
/** Exit code for every non-wake terminal (ceiling / gate-skip / no key / 4xx). */
|
|
45
|
+
exports.POLL_CLEAN_EXIT = 0;
|
|
46
|
+
const POLL_MAX_MS_DEFAULT = Number(process.env.GREPRAG_POLL_MAX_MS) || 20 * 60 * 1000;
|
|
47
|
+
const IDLE_TIMEOUT_MS = 60_000; // 4 missed 15s heartbeats → reconnect
|
|
48
|
+
const IDLE_CHECK_MS = 5_000;
|
|
49
|
+
const RECONNECT_MS = 1_000;
|
|
50
|
+
const LOG_PREFIX = '[greprag inbox poll]';
|
|
51
|
+
/** Format the woken-session reminder. Self-contained + actionable: the agent
|
|
52
|
+
* reads this as a system reminder, so it carries the sender, the body, and how
|
|
53
|
+
* to reply / see more. */
|
|
54
|
+
function formatWake(msg, short, json, projectId) {
|
|
55
|
+
if (json)
|
|
56
|
+
return `${LOG_PREFIX} ` + JSON.stringify(msg);
|
|
57
|
+
const sender = msg.from.email || `${msg.from.tenant}@greprag.com`;
|
|
58
|
+
const replyTo = msg.references?.reply_to || sender;
|
|
59
|
+
const body = msg.body.length > 600 ? msg.body.slice(0, 600) + '…' : msg.body;
|
|
60
|
+
const fromSess = (0, session_id_1.truncateSessionId)(msg.from.session_id ?? null);
|
|
61
|
+
const origin = fromSess ? ` (session ${fromSess})` : '';
|
|
62
|
+
// Classification tag (server-authoritative): from.session_id SET ⇒ PEER agent
|
|
63
|
+
// session → reply directly, no human confirm; null ⇒ HUMAN (cold-open / email)
|
|
64
|
+
// → summarize + confirm. Reply, NOT obey — peer-requested destructive actions
|
|
65
|
+
// still pass the normal gates. adr: adr/monitor-resilience.md
|
|
66
|
+
const tag = (0, session_id_1.peerHumanTag)(msg.from.session_id);
|
|
67
|
+
// Adapter B: append any registered ingress directive (best-effort, fail-open).
|
|
68
|
+
// Sits ALONGSIDE the hand-wired tag during migration; a registered peer-C rule
|
|
69
|
+
// can refine/replace it without a code change. docs/ingress-trigger-bridge.md
|
|
70
|
+
let ingress = '';
|
|
71
|
+
if (projectId) {
|
|
72
|
+
try {
|
|
73
|
+
const res = (0, ingress_trigger_1.runIngressGate)((0, ingress_trigger_1.triggerFromMessage)(msg), projectId);
|
|
74
|
+
if (res.directive)
|
|
75
|
+
ingress = `${res.directive}\n`;
|
|
76
|
+
}
|
|
77
|
+
catch { /* ingress eval is best-effort — never block the wake */ }
|
|
78
|
+
}
|
|
79
|
+
return (`${LOG_PREFIX} 📬 inbox message for ${short} from ${sender}${origin}:\n`
|
|
80
|
+
+ `${tag}\n`
|
|
81
|
+
+ ingress
|
|
82
|
+
+ `${body}\n`
|
|
83
|
+
+ `— reply now (even mid-task): greprag send "…" --to ${replyTo} --from-session ${short}`
|
|
84
|
+
+ ` · see all: greprag inbox --session ${short}`);
|
|
85
|
+
}
|
|
86
|
+
function buildPollUrl(apiUrl, session, since) {
|
|
87
|
+
const u = new URL(apiUrl.replace(/\/+$/, '') + '/v1/inbox/stream');
|
|
88
|
+
u.searchParams.set('session', session);
|
|
89
|
+
if (since)
|
|
90
|
+
u.searchParams.set('since', since);
|
|
91
|
+
return u.toString();
|
|
92
|
+
}
|
|
93
|
+
function sleep(ms, signal) {
|
|
94
|
+
return new Promise((resolve) => {
|
|
95
|
+
const t = setTimeout(resolve, ms);
|
|
96
|
+
const onAbort = () => { clearTimeout(t); resolve(); };
|
|
97
|
+
if (signal.aborted) {
|
|
98
|
+
onAbort();
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/** Read the SSE stream until the FIRST message (→ write stderr, persist cursor,
|
|
105
|
+
* delivered:true), the stream ends/idles (delivered:false), a 4xx (fatal:true),
|
|
106
|
+
* or abort. Composes the outer signal with an idle-timeout so a half-open socket
|
|
107
|
+
* can't hang past IDLE_TIMEOUT_MS. */
|
|
108
|
+
async function readUntilMessage(url, apiKey, outer, json, session, initialId, projectId) {
|
|
109
|
+
const inner = new AbortController();
|
|
110
|
+
const onOuter = () => inner.abort();
|
|
111
|
+
if (outer.aborted)
|
|
112
|
+
inner.abort();
|
|
113
|
+
else
|
|
114
|
+
outer.addEventListener('abort', onOuter, { once: true });
|
|
115
|
+
let lastByteAt = Date.now();
|
|
116
|
+
const idleTimer = setInterval(() => {
|
|
117
|
+
if (Date.now() - lastByteAt > IDLE_TIMEOUT_MS)
|
|
118
|
+
inner.abort();
|
|
119
|
+
}, IDLE_CHECK_MS);
|
|
120
|
+
let lastId = initialId;
|
|
121
|
+
try {
|
|
122
|
+
const res = await fetch(url, {
|
|
123
|
+
headers: { Authorization: `Bearer ${apiKey}`, Accept: 'text/event-stream' },
|
|
124
|
+
signal: inner.signal,
|
|
125
|
+
});
|
|
126
|
+
if (!res.ok) {
|
|
127
|
+
const text = await res.text().catch(() => '');
|
|
128
|
+
if (res.status >= 400 && res.status < 500) {
|
|
129
|
+
process.stderr.write(`${LOG_PREFIX} HTTP ${res.status}: ${text.slice(0, 160)}\n`);
|
|
130
|
+
return { delivered: false, lastId, fatal: true };
|
|
131
|
+
}
|
|
132
|
+
throw new Error(`HTTP ${res.status}`);
|
|
133
|
+
}
|
|
134
|
+
if (!res.body)
|
|
135
|
+
throw new Error('no response body');
|
|
136
|
+
const reader = res.body.getReader();
|
|
137
|
+
const decoder = new TextDecoder();
|
|
138
|
+
let buffer = '';
|
|
139
|
+
try {
|
|
140
|
+
while (true) {
|
|
141
|
+
const { done, value } = await reader.read();
|
|
142
|
+
if (done)
|
|
143
|
+
return { delivered: false, lastId };
|
|
144
|
+
lastByteAt = Date.now();
|
|
145
|
+
buffer += decoder.decode(value, { stream: true });
|
|
146
|
+
buffer = buffer.replace(/\r\n/g, '\n');
|
|
147
|
+
let sep;
|
|
148
|
+
while ((sep = buffer.indexOf('\n\n')) >= 0) {
|
|
149
|
+
const block = buffer.slice(0, sep);
|
|
150
|
+
buffer = buffer.slice(sep + 2);
|
|
151
|
+
const ev = (0, inbox_watch_1.parseEventBlock)(block);
|
|
152
|
+
if (!ev)
|
|
153
|
+
continue;
|
|
154
|
+
if (ev.id)
|
|
155
|
+
lastId = ev.id;
|
|
156
|
+
if (ev.event !== 'message')
|
|
157
|
+
continue; // ignore open / replay-complete / error markers
|
|
158
|
+
let msg;
|
|
159
|
+
try {
|
|
160
|
+
msg = JSON.parse(ev.data);
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
// FIRST real message → wake. Persist the cursor BEFORE we exit so the
|
|
166
|
+
// next poll resumes AFTER this id (no re-deliver); the agent reads any
|
|
167
|
+
// burst remainder via `greprag inbox`, which the next poll also catches.
|
|
168
|
+
if (ev.id)
|
|
169
|
+
(0, poll_registry_1.writePollCursor)(session, ev.id);
|
|
170
|
+
process.stderr.write(formatWake(msg, session, json, projectId) + '\n');
|
|
171
|
+
return { delivered: true, lastId };
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
finally {
|
|
176
|
+
try {
|
|
177
|
+
reader.releaseLock();
|
|
178
|
+
}
|
|
179
|
+
catch { /* already released */ }
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
finally {
|
|
183
|
+
clearInterval(idleTimer);
|
|
184
|
+
outer.removeEventListener('abort', onOuter);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/** Run one idle-liveness poll. Returns the exit code the hook wrapper exits with:
|
|
188
|
+
* POLL_DELIVERED_EXIT (2) on a message (→ asyncRewake wake) or POLL_CLEAN_EXIT
|
|
189
|
+
* (0) on every other terminal. Returns (does NOT call process.exit) so it is
|
|
190
|
+
* unit-testable; the `greprag-hook poll` wrapper exits with the returned code. */
|
|
191
|
+
async function runInboxPoll(opts) {
|
|
192
|
+
if (!opts.apiKey || !opts.session)
|
|
193
|
+
return exports.POLL_CLEAN_EXIT; // unconfigured → silent clean
|
|
194
|
+
if (opts.gate && (0, poll_registry_1.isPollArmed)(opts.session))
|
|
195
|
+
return exports.POLL_CLEAN_EXIT; // re-arm gate: one live poll
|
|
196
|
+
const register = opts.register !== false;
|
|
197
|
+
if (register)
|
|
198
|
+
(0, poll_registry_1.registerPoll)(opts.session, process.pid);
|
|
199
|
+
const maxMs = opts.maxMs ?? POLL_MAX_MS_DEFAULT;
|
|
200
|
+
const ac = new AbortController();
|
|
201
|
+
const ceiling = setTimeout(() => ac.abort(), maxMs);
|
|
202
|
+
if (typeof ceiling.unref === 'function')
|
|
203
|
+
ceiling.unref();
|
|
204
|
+
const onSignal = () => ac.abort();
|
|
205
|
+
process.on('SIGINT', onSignal);
|
|
206
|
+
process.on('SIGTERM', onSignal);
|
|
207
|
+
if (opts.signal) {
|
|
208
|
+
if (opts.signal.aborted)
|
|
209
|
+
ac.abort();
|
|
210
|
+
else
|
|
211
|
+
opts.signal.addEventListener('abort', onSignal, { once: true });
|
|
212
|
+
}
|
|
213
|
+
let code = exports.POLL_CLEAN_EXIT;
|
|
214
|
+
try {
|
|
215
|
+
let cursor = (0, poll_registry_1.readPollCursor)(opts.session);
|
|
216
|
+
while (!ac.signal.aborted) {
|
|
217
|
+
const url = buildPollUrl(opts.apiUrl, opts.session, cursor);
|
|
218
|
+
try {
|
|
219
|
+
const r = await readUntilMessage(url, opts.apiKey, ac.signal, !!opts.json, opts.session, cursor, opts.projectId);
|
|
220
|
+
if (r.delivered) {
|
|
221
|
+
code = exports.POLL_DELIVERED_EXIT;
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
if (r.fatal) {
|
|
225
|
+
// 4xx WITH a cursor = the stored `since` points to a pruned/deleted
|
|
226
|
+
// message the server now rejects. Drop the cursor and retry live-tail
|
|
227
|
+
// ONCE so a dead cursor can't permanently wedge this session's delivery.
|
|
228
|
+
// A 4xx with NO cursor is a genuine fatal (bad key/session) → clean exit.
|
|
229
|
+
if (cursor) {
|
|
230
|
+
(0, poll_registry_1.clearPollCursor)(opts.session);
|
|
231
|
+
cursor = null;
|
|
232
|
+
if (ac.signal.aborted)
|
|
233
|
+
break;
|
|
234
|
+
await sleep(RECONNECT_MS, ac.signal);
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
code = exports.POLL_CLEAN_EXIT;
|
|
238
|
+
break; // genuine 4xx → clean, do not re-arm-spin
|
|
239
|
+
}
|
|
240
|
+
if (r.lastId)
|
|
241
|
+
cursor = r.lastId;
|
|
242
|
+
}
|
|
243
|
+
catch (err) {
|
|
244
|
+
const msg = err?.message || String(err);
|
|
245
|
+
process.stderr.write(`${LOG_PREFIX} disconnect: ${msg} — reconnecting\n`);
|
|
246
|
+
}
|
|
247
|
+
if (ac.signal.aborted)
|
|
248
|
+
break;
|
|
249
|
+
await sleep(RECONNECT_MS, ac.signal);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
finally {
|
|
253
|
+
clearTimeout(ceiling);
|
|
254
|
+
process.off('SIGINT', onSignal);
|
|
255
|
+
process.off('SIGTERM', onSignal);
|
|
256
|
+
if (register)
|
|
257
|
+
(0, poll_registry_1.deregisterPoll)(opts.session, process.pid);
|
|
258
|
+
}
|
|
259
|
+
return code;
|
|
260
|
+
}
|
|
261
|
+
//# sourceMappingURL=inbox-poll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbox-poll.js","sourceRoot":"","sources":["../../src/commands/inbox-poll.ts"],"names":[],"mappings":"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"}
|
|
@@ -192,6 +192,9 @@ function printMessage(msg) {
|
|
|
192
192
|
parts.push(`to session ${toShort}`);
|
|
193
193
|
console.log(` · ${parts.join(' → ')}`);
|
|
194
194
|
}
|
|
195
|
+
// Classification tag: PEER (from.session_id set) → reply directly; HUMAN (null)
|
|
196
|
+
// → summarize + confirm. Same doctrine the poll's wake carries.
|
|
197
|
+
console.log(` ${(0, session_id_1.peerHumanTag)(msg.from.session_id)}`);
|
|
195
198
|
for (const line of msg.body.split('\n'))
|
|
196
199
|
console.log(` ${line}`);
|
|
197
200
|
const refs = msg.references;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox-watch.js","sourceRoot":"","sources":["../../src/commands/inbox-watch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inbox-watch.js","sourceRoot":"","sources":["../../src/commands/inbox-watch.ts"],"names":[],"mappings":"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"}
|