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.
Files changed (42) hide show
  1. package/dist/commands/collision-check.d.ts +113 -0
  2. package/dist/commands/collision-check.js +266 -0
  3. package/dist/commands/collision-check.js.map +1 -0
  4. package/dist/commands/coordinate-gate.d.ts +73 -0
  5. package/dist/commands/coordinate-gate.js +108 -0
  6. package/dist/commands/coordinate-gate.js.map +1 -0
  7. package/dist/commands/corpus/refresh.js +1 -1
  8. package/dist/commands/corpus/refresh.js.map +1 -1
  9. package/dist/commands/inbox-drain.d.ts +49 -0
  10. package/dist/commands/inbox-drain.js +163 -0
  11. package/dist/commands/inbox-drain.js.map +1 -0
  12. package/dist/commands/inbox-poll.d.ts +47 -0
  13. package/dist/commands/inbox-poll.js +261 -0
  14. package/dist/commands/inbox-poll.js.map +1 -0
  15. package/dist/commands/inbox-watch.js +3 -0
  16. package/dist/commands/inbox-watch.js.map +1 -1
  17. package/dist/commands/ingress-trigger.d.ts +67 -0
  18. package/dist/commands/ingress-trigger.js +103 -0
  19. package/dist/commands/ingress-trigger.js.map +1 -0
  20. package/dist/commands/init.js +41 -0
  21. package/dist/commands/init.js.map +1 -1
  22. package/dist/commands/poll-registry.d.ts +56 -0
  23. package/dist/commands/poll-registry.js +261 -0
  24. package/dist/commands/poll-registry.js.map +1 -0
  25. package/dist/commands/state-trigger.d.ts +66 -0
  26. package/dist/commands/state-trigger.js +305 -0
  27. package/dist/commands/state-trigger.js.map +1 -0
  28. package/dist/fix-trigger.d.ts +25 -5
  29. package/dist/fix-trigger.js +35 -11
  30. package/dist/fix-trigger.js.map +1 -1
  31. package/dist/guard.d.ts +13 -0
  32. package/dist/guard.js +58 -3
  33. package/dist/guard.js.map +1 -1
  34. package/dist/hook.js +226 -4
  35. package/dist/hook.js.map +1 -1
  36. package/dist/index.js +70 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/session-id.d.ts +12 -0
  39. package/dist/session-id.js +17 -0
  40. package/dist/session-id.js.map +1 -1
  41. package/package.json +1 -1
  42. 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":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GH,8BAQC;AAmBD,kCAGC;AAYD,0CAmBC;AAKD,sDAQC;AAkPD,sCAQC;AAhbD,uCAAyB;AACzB,2CAA6B;AAC7B,8CAAgE;AAChE,qEAKkC;AAElC,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAClD,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,4EAA4E;AAC5E,wEAAwE;AACxE,0EAA0E;AAC1E,2EAA2E;AAC3E,MAAM,eAAe,GAAG,MAAM,CAAC;AAC/B,MAAM,sBAAsB,GAAG,KAAK,CAAC;AACrC,MAAM,UAAU,GAAG,uBAAuB,CAAC;AAC3C,8EAA8E;AAC9E,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AACjE,QAAA,uBAAuB,GAAG,EAAE,CAAC;AAC1C,+EAA+E;AAC/E,8EAA8E;AAC9E,8EAA8E;AAC9E,qEAAqE;AACrE,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,MAAM,CAAC;AAuD/E,6EAA6E;AAE7E,SAAS,WAAW,CAAC,QAAgB;IACnC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAClD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,GAAG,CAAC;gBAAE,SAAS;YACxB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9C,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACnD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAClD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;AACvC,CAAC;AAED,SAAgB,SAAS;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;IAClE,IAAI,OAAO;QAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAChF,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,eAAe;QACtD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;KAC1C,CAAC;AACJ,CAAC;AAED;;;4DAG4D;AAC5D,MAAM,iBAAkB,SAAQ,KAAK;IAEnC,YAAY,OAAe,EAAE,MAAqB;QAChD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;;kEAGkE;AAClE,SAAgB,WAAW,CAAC,EAAU;IACpC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,GAAG,EAAE,IAAI,CAAC;IAChC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;AACrC,CAAC;AAUD;wEACwE;AACxE,SAAgB,eAAe,CAAC,KAAa;IAC3C,IAAI,KAAK,GAAG,SAAS,CAAC;IACtB,IAAI,EAAE,GAAkB,IAAI,CAAC;IAC7B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,IAAI,KAAK,EAAE;YAAE,SAAS;QAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,0BAA0B;QAC9D,QAAQ,GAAG,IAAI,CAAC;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,OAAO;YAAE,KAAK,GAAG,KAAK,CAAC;aAChC,IAAI,KAAK,KAAK,IAAI;YAAE,EAAE,GAAG,KAAK,CAAC;aAC/B,IAAI,KAAK,KAAK,MAAM;YAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACnD,CAAC;AAED;;2DAE2D;AAC3D,SAAgB,qBAAqB,CAAC,GAAkB;IACtD,MAAM,SAAS,GAAG,IAAA,8BAAiB,EAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;IACjE,MAAM,OAAO,GAAK,IAAA,8BAAiB,EAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;IAC/D,OAAO;QACL,GAAG,GAAG;QACN,IAAI,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;QAC3E,aAAa,EAAE,OAAO,IAAI,GAAG,CAAC,aAAa,IAAI,IAAI;KACpD,CAAC;AACJ,CAAC;AAED,qEAAqE;AACrE,SAAS,YAAY,CAAC,GAAkB;IACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,CAAC;IACvD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,IAAA,8BAAiB,EAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,IAAA,8BAAiB,EAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;IAC7D,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;QACvD,IAAI,OAAO;YAAI,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,gFAAgF;IAChF,gEAAgE;IAChE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,yBAAY,EAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;IAC5B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACtF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IACD,4EAA4E;IAC5E,0EAA0E;IAC1E,oDAAoD;IACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,4EAA4E;AAE5E;;;;;;;;;;mFAUmF;AACnF,SAAS,oBAAoB,CAAC,GAAkB,EAAE,OAA2B;IAC3E,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,8EAA8E;IAC9E,6EAA6E;IAC7E,+EAA+E;IAC/E,8EAA8E;IAC9E,+EAA+E;IAC/E,8DAA8D;IAC9D,kDAAkD;IAClD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;IACzC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CACT,oFAAoF,OAAO,OAAO;YAClG,0FAA0F,CAC3F,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,GAAG,CAAC,YAAY,KAAK,YAAY;QAAE,OAAO;IAC9C,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,IAAI,aAAa,CAAC;IACtE,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC;IACnE,MAAM,IAAI,GAAG,SAAS;QACpB,CAAC,CAAC,gJAAgJ;QAClJ,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,CAAC,GAAG,CACT,mFAAmF;QACnF,mIAAmI;QACnI,uDAAuD,SAAS,4DAA4D;QAC5H,wJAAwJ;QACxJ,0DAA0D,IAAI,EAAE,CACjE,CAAC;AACJ,CAAC;AAED,4EAA4E;AAE5E;;;;;0DAK0D;AAC1D,KAAK,UAAU,UAAU,CACvB,GAAW,EAAE,MAAc,EAAE,MAAmB,EAChD,SAAwB,EAAE,IAAa,EAAE,aAAqB,EAC9D,OAA2B;IAE3B,yEAAyE;IACzE,wEAAwE;IACxE,0BAA0B;IAC1B,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,MAAM,YAAY,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/C,IAAI,MAAM,CAAC,OAAO;QAAE,KAAK,CAAC,KAAK,EAAE,CAAC;;QAC7B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpE,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,aAAa,EAAE,CAAC;YAC5C,WAAW,GAAG,IAAI,CAAC;YACnB,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,MAAM,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE;YAC/E,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,MAAM,GAAG,SAAS,CAAC;QACvB,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,IAAI,KAA4C,CAAC;gBACjD,IAAI,CAAC;oBACH,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,4DAA4D;oBAC5D,8DAA8D;oBAC9D,4DAA4D;oBAC5D,sDAAsD;oBACtD,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,IAAI,iBAAiB,CACzB,QAAQ,WAAW,CAAC,aAAa,CAAC,gBAAgB,EAAE,MAAM,CAC3D,CAAC;oBACJ,CAAC;oBACD,MAAM,IAAI,iBAAiB,CAAE,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC7E,CAAC;gBACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;gBAC9B,IAAI,IAAI;oBAAE,OAAO,MAAM,CAAC;gBACxB,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACxB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,IAAI,GAAW,CAAC;gBAChB,sEAAsE;gBACtE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACnC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBAC/B,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;oBAClC,IAAI,CAAC,EAAE;wBAAE,SAAS;oBAClB,IAAI,EAAE,CAAC,EAAE;wBAAE,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC;oBAC1B,IAAI,EAAE,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBAC3B,IAAI,GAAkB,CAAC;wBACvB,IAAI,CAAC;4BAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;wBAAC,CAAC;wBAClC,MAAM,CAAC;4BAAC,SAAS;wBAAC,CAAC;wBACnB,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;wBAC9C,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;wBAC1C,IAAI,IAAI;4BAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;;4BAC7C,YAAY,CAAC,UAAU,CAAC,CAAC;oBAChC,CAAC;yBAAM,IAAI,EAAE,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;wBAC1C,gEAAgE;wBAChE,iEAAiE;wBACjE,iEAAiE;wBACjE,IAAI,CAAC;4BACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,CAAuB,CAAC;4BAC/D,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gCACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gCAC3C,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,aAAa,IAAI,CAAC,KAAK,cAAc,MAAM,sBAAsB,CAAC,CAAC;4BAChG,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC,CAAC,wCAAwC,CAAC,CAAC;oBACtD,CAAC;yBAAM,IAAI,EAAE,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;wBAChC,yDAAyD;wBACzD,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,kBAAkB,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;wBACxD,OAAO,MAAM,CAAC;oBAChB,CAAC;oBACD,yDAAyD;gBAC3D,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,SAAS,CAAC,CAAC;QACzB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CACf,MAAc,EACd,OAA2B,EAC3B,OAA2B,EAC3B,KAAoB,EACpB,YAAqB,EACrB,SAAkB;IAElB,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC;IACnE,IAAI,OAAO;QAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,OAAO;QAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,KAAK;QAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,YAAY;QAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;SACxD,IAAI,SAAS;QAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5D,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;;;;;;;qCAkBqC;AAC9B,KAAK,UAAU,aAAa,CAAC,IAAkB;IACpD,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IACvD,IAAI,UAAU;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,GAAG,CAAC,sCAAa,CAAC,KAAK,GAAG,EAAE,CAAC;QACvC,IAAA,kDAAyB,GAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,IAAA,sCAAa,GAAE,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;qCAYqC;AACrC,SAAS,cAAc,CAAC,MAAkB;IACxC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,IAAI,IAAI;YAAE,OAAO;QACjB,IAAI,GAAG,IAAI,CAAC;QACZ,MAAM,EAAE,CAAC;IACX,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,GAAS,EAAE,CAAC,IAAI,EAAE,CAAC;IACjC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClC,4EAA4E;IAC5E,0EAA0E;IAC1E,6EAA6E;IAC7E,+EAA+E;IAC/E,0CAA0C;IAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,CAAC;YAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,GAAG;gBAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QACpF,MAAM,CAAC;YAAC,IAAI,EAAE,CAAC;QAAC,CAAC;IACnB,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACtB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU;QAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IACrD,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI;QAChB,OAAO,EAAE,GAAS,EAAE;YAClB,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC9C,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;wFAKwF;AACxF,KAAK,UAAU,YAAY,CAAC,IAAkB;IAC5C,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,wCAAe,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,MAAM,GAAkB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;IAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,IAAI,kBAAkB,CAAC;IACnE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,eAAe,CAAC;IAC5D,IAAI,OAAO,GAAG,cAAc,CAAC;IAC7B,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IAEzC,yEAAyE;IACzE,MAAM,QAAQ,GAAG,GAAS,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAG,QAAQ,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,UAAU,CAAC,KAAK,EAAE,CAAC;;YACvC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,8EAA8E;IAC9E,8EAA8E;IAC9E,6EAA6E;IAC7E,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;IAE/E,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACtD,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,+BAA+B,QAAQ,GAAG,CAAC,CAAC;QACzE,CAAC;QACD,cAAc,GAAG,KAAK,CAAC;QAEvB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5G,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,OAAO,CACrF,CAAC;YACF,IAAI,MAAM;gBAAE,MAAM,GAAG,MAAM,CAAC;YAC5B,OAAO,GAAG,cAAc,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM;YACrC,6DAA6D;YAC7D,8DAA8D;YAC9D,IAAI,GAAG,YAAY,iBAAiB,IAAI,GAAG,CAAC,MAAM;gBAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YACxE,MAAM,GAAG,GAAI,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;YAClD,qEAAqE;YACrE,sEAAsE;YACtE,+DAA+D;YAC/D,kEAAkE;YAClE,8CAA8C;YAC9C,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,EAAE,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;gBACtC,OAAO,CAAC,IAAI,CAAC,wCAAe,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACtD,OAAO,CAAC,KAAK,CACX,GAAG,UAAU,gBAAgB,GAAG,kBAAkB,WAAW,CAAC,OAAO,CAAC,kBAAkB,QAAQ,GAAG,CACpG,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM;QACrC,MAAM,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,cAAc,EAAE,cAAc,CAAC,CAAC;IAC/D,CAAC;IAED,uEAAuE;IACvE,8EAA8E;IAC9E,+EAA+E;IAC/E,qEAAqE;IACrE,MAAM,YAAY,GAAG,QAAQ,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC;IAC/C,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,IAAI,YAAY;QAAE,OAAO,CAAC,IAAI,CAAC,+BAAuB,CAAC,CAAC;AAC1D,CAAC;AAED,sEAAsE;AACtE,SAAS,KAAK,CAAC,EAAU,EAAE,MAAmB;IAC5C,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,GAAS,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAC1C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC"}