@stratusagent/gateway 0.13.7 → 0.14.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/events.js ADDED
@@ -0,0 +1,467 @@
1
+ import { createHash, randomUUID } from 'node:crypto';
2
+ import { MAX_IDEMPOTENCY_KEY_LENGTH } from '@stratusagent/core';
3
+ import { openFleetDatabase, SCHEDULE_SESSION_ID_PREFIX } from "./schedules.js";
4
+ // Event triggers' durable half (card 590, agent-plans
5
+ // roadmap/590-event-triggers.md): deliveries, dedup tombstones and firings,
6
+ // in fleet.db next to the schedules a trigger is. The listener decides what a
7
+ // request is and which triggers it matches; the dispatch side decides when a
8
+ // firing goes out. This file owns only what must survive a crash between
9
+ // those steps, and the keys that make a firing run at most once.
10
+ /** Accepted ids are remembered this long: longer than GitHub's 3-day manual redelivery. */
11
+ export const EVENT_DEDUP_WINDOW_MS = 7 * 24 * 60 * 60 * 1_000;
12
+ /** Delivery rows listed at most: the newest this many, within the dedup window. */
13
+ export const EVENT_DELIVERY_ROW_CAP = 10_000;
14
+ /** A firing's rendered event block, and so the event text a turn sees, is at most this many bytes. */
15
+ export const EVENT_BLOCK_MAX_BYTES = 16 * 1_024;
16
+ const OPEN_STATUSES = ['pending', 'held', 'rate_limited', 'firing'];
17
+ const OPEN_SQL = OPEN_STATUSES.map((status) => `'${status}'`).join(', ');
18
+ const sha256 = (text) => createHash('sha256').update(text).digest('hex');
19
+ /**
20
+ * What sessions, holds and rate limits group by: source + subject when the
21
+ * event has one, so every Codex round on one PR is one conversation, and
22
+ * source + id when it doesn't, so subjectless events never share a bucket.
23
+ * JSON, so no subject can be spelled to collide with an id key.
24
+ */
25
+ export const eventCoalescingKey = (sourceId, event) => {
26
+ const subject = event.attributes.subject;
27
+ return subject !== undefined && subject.length > 0
28
+ ? JSON.stringify([sourceId, 'subject', subject])
29
+ : JSON.stringify([sourceId, 'id', event.attributes.id ?? '']);
30
+ };
31
+ /**
32
+ * A trigger's session for one coalescing key. In the reserved `schedule:`
33
+ * namespace, which the gateway refuses to dispatch into from outside, so the
34
+ * only turns on it are the trigger's own firings.
35
+ */
36
+ export const eventSessionId = (triggerId, coalescingKey) => `${SCHEDULE_SESSION_ID_PREFIX}${triggerId}:event-${sha256(coalescingKey).slice(0, 32)}`;
37
+ /**
38
+ * The gateway idempotency key for one trigger's firing on one event: a
39
+ * repeat never starts a second turn, and a turn whose process died continues
40
+ * once. Hashed when over the gateway's bound, as channel-slack does, because
41
+ * a sender picks the event id's length.
42
+ */
43
+ export const eventDispatchKey = (triggerId, sourceId, eventId) => {
44
+ const key = `event:${triggerId}:${sourceId}:${eventId}`;
45
+ return key.length <= MAX_IDEMPOTENCY_KEY_LENGTH ? key : `event-sha256:${sha256(key)}`;
46
+ };
47
+ const ATTRIBUTE_ORDER = ['id', 'source', 'type', 'subject', 'time'];
48
+ /** The longest prefix of `text` that fits in `bytes` of UTF-8, never splitting a character. */
49
+ const utf8Prefix = (text, bytes) => {
50
+ const { read } = new TextEncoder().encodeInto(text, new Uint8Array(Math.max(0, bytes)));
51
+ return text.slice(0, read);
52
+ };
53
+ /**
54
+ * What a firing's turn sees after the trigger's prompt. Rendered when the
55
+ * delivery is matched and stored with the firing, so a firing that goes out
56
+ * hours later needs neither the request body nor a second match. Attributes
57
+ * and data are JSON, so a newline in a sender's subject or comment can't pass
58
+ * for a line of the block. Capped at `EVENT_BLOCK_MAX_BYTES` with a note: the
59
+ * agent fetches the rest with its own tools (`gh` for a PR).
60
+ */
61
+ export const renderEventBlock = (sourceId, event) => {
62
+ const attributes = {};
63
+ for (const name of ATTRIBUTE_ORDER) {
64
+ const value = event.attributes[name];
65
+ if (value !== undefined) {
66
+ attributes[name] = value;
67
+ }
68
+ }
69
+ for (const name of Object.keys(event.attributes).sort()) {
70
+ if (name !== 'specversion' && !ATTRIBUTE_ORDER.includes(name)) {
71
+ attributes[name] = event.attributes[name];
72
+ }
73
+ }
74
+ const full = [
75
+ `Event from source "${sourceId}":`,
76
+ JSON.stringify(attributes),
77
+ 'data:',
78
+ ...(event.data !== undefined ? [JSON.stringify(event.data)] : []),
79
+ ].join('\n');
80
+ const size = Buffer.byteLength(full);
81
+ if (size <= EVENT_BLOCK_MAX_BYTES) {
82
+ return full;
83
+ }
84
+ const note = `\n[cut at ${Math.round(EVENT_BLOCK_MAX_BYTES / 1_024)} KB of ${Math.round(size / 1_024)} KB; fetch the rest with your own tools]`;
85
+ return utf8Prefix(full, EVENT_BLOCK_MAX_BYTES - Buffer.byteLength(note)) + note;
86
+ };
87
+ const deliveryFrom = (row) => ({
88
+ seq: row.seq,
89
+ source: row.source,
90
+ eventId: row.event_id,
91
+ type: row.type,
92
+ ...(row.subject !== '' ? { subject: row.subject } : {}),
93
+ status: row.status,
94
+ ...(row.reason !== '' ? { reason: row.reason } : {}),
95
+ receivedAt: row.received_at,
96
+ });
97
+ const firingFrom = (row) => ({
98
+ id: row.id,
99
+ deliverySeq: row.delivery_seq,
100
+ triggerId: row.trigger_id,
101
+ agentId: row.agent_id,
102
+ source: row.source,
103
+ eventId: row.event_id,
104
+ coalescingKey: row.coalescing_key,
105
+ sessionId: row.session_id,
106
+ dispatchKey: row.dispatch_key,
107
+ ...(row.batch_key !== '' ? { batchKey: row.batch_key } : {}),
108
+ status: row.status,
109
+ ...(row.started_at !== '' ? { startedAt: row.started_at } : {}),
110
+ ...(row.block !== null ? { block: row.block } : {}),
111
+ ...(row.reason !== '' ? { reason: row.reason } : {}),
112
+ createdAt: row.created_at,
113
+ updatedAt: row.updated_at,
114
+ });
115
+ const minus = (iso, ms) => new Date(Date.parse(iso) - ms).toISOString();
116
+ /**
117
+ * Deliveries, dedup tombstones and firings, durable in `fleet.db`. Its own
118
+ * connection, like the schedule store's. `stratus events` reads through the
119
+ * running daemon instead of this file, because the requests refused before
120
+ * a row are counted only in the listener.
121
+ *
122
+ * Every method that changes more than one row does it in one transaction,
123
+ * and every one that moves a firing between statuses is all-or-nothing and
124
+ * conditional on the statuses it expects: a delivery and its firings are
125
+ * committed together before the sender hears 2xx, a batch is claimed whole
126
+ * before its dispatch, and a refused transition changes nothing.
127
+ */
128
+ export class SqliteEventStore {
129
+ db;
130
+ constructor(filePath, options = {}) {
131
+ this.db = openFleetDatabase(filePath, options, `
132
+ CREATE TABLE IF NOT EXISTS event_deliveries (
133
+ seq INTEGER PRIMARY KEY AUTOINCREMENT,
134
+ source TEXT NOT NULL,
135
+ event_id TEXT NOT NULL,
136
+ type TEXT NOT NULL,
137
+ subject TEXT NOT NULL,
138
+ status TEXT NOT NULL,
139
+ reason TEXT NOT NULL,
140
+ received_at TEXT NOT NULL
141
+ );
142
+ CREATE INDEX IF NOT EXISTS event_deliveries_received ON event_deliveries (received_at);
143
+ CREATE TABLE IF NOT EXISTS event_seen (
144
+ source TEXT NOT NULL,
145
+ id_hash TEXT NOT NULL,
146
+ seen_at TEXT NOT NULL,
147
+ PRIMARY KEY (source, id_hash)
148
+ ) WITHOUT ROWID;
149
+ CREATE TABLE IF NOT EXISTS event_firings (
150
+ id TEXT PRIMARY KEY,
151
+ delivery_seq INTEGER NOT NULL,
152
+ trigger_id TEXT NOT NULL,
153
+ agent_id TEXT NOT NULL,
154
+ source TEXT NOT NULL,
155
+ event_id TEXT NOT NULL,
156
+ coalescing_key TEXT NOT NULL,
157
+ session_id TEXT NOT NULL,
158
+ dispatch_key TEXT NOT NULL,
159
+ batch_key TEXT NOT NULL,
160
+ status TEXT NOT NULL,
161
+ started_at TEXT NOT NULL DEFAULT '',
162
+ block TEXT,
163
+ reason TEXT NOT NULL,
164
+ created_at TEXT NOT NULL,
165
+ updated_at TEXT NOT NULL
166
+ );
167
+ CREATE INDEX IF NOT EXISTS event_firings_status ON event_firings (status, created_at);
168
+ CREATE INDEX IF NOT EXISTS event_firings_trigger ON event_firings (trigger_id, status, updated_at);
169
+ CREATE INDEX IF NOT EXISTS event_firings_batch ON event_firings (batch_key);
170
+ `);
171
+ // A table made before `started_at` existed (an unreleased build of
172
+ // this feature) gains it; rows claimed then count from their update.
173
+ const columns = this.db.prepare('PRAGMA table_info(event_firings)').all();
174
+ if (!columns.some((column) => column.name === 'started_at')) {
175
+ this.db.exec("ALTER TABLE event_firings ADD COLUMN started_at TEXT NOT NULL DEFAULT ''");
176
+ }
177
+ }
178
+ transaction(work) {
179
+ // IMMEDIATE takes the write lock up front, so the dedup check and the
180
+ // insert it guards can't interleave with another writer's.
181
+ this.db.exec('BEGIN IMMEDIATE');
182
+ try {
183
+ const result = work();
184
+ this.db.exec('COMMIT');
185
+ return result;
186
+ }
187
+ catch (error) {
188
+ this.db.exec('ROLLBACK');
189
+ throw error;
190
+ }
191
+ }
192
+ insertDelivery(delivery, status, reason = '') {
193
+ const result = this.db
194
+ .prepare('INSERT INTO event_deliveries (source, event_id, type, subject, status, reason, received_at) VALUES (?, ?, ?, ?, ?, ?, ?)')
195
+ .run(delivery.source, delivery.eventId, delivery.type ?? '', delivery.subject ?? '', status, reason, delivery.receivedAt);
196
+ return Number(result.lastInsertRowid);
197
+ }
198
+ /**
199
+ * Record a delivery whose signature checked out and whose body parsed:
200
+ * `duplicate` when its (source, id) was accepted within the dedup window,
201
+ * else `matched` with one `pending` firing per match, or `unmatched`. One
202
+ * write, made before the sender hears 2xx. Accepted deliveries leave a
203
+ * tombstone that outlives the row cap, so dedup never depends on it.
204
+ */
205
+ accept(delivery) {
206
+ return this.transaction(() => {
207
+ // Insert, or revive a tombstone older than the window; zero changes
208
+ // means a live tombstone, so the id was seen.
209
+ const fresh = this.db
210
+ .prepare(`
211
+ INSERT INTO event_seen (source, id_hash, seen_at) VALUES (?, ?, ?)
212
+ ON CONFLICT (source, id_hash) DO UPDATE SET seen_at = excluded.seen_at WHERE seen_at < ?
213
+ `)
214
+ .run(delivery.source, sha256(delivery.eventId), delivery.receivedAt, minus(delivery.receivedAt, EVENT_DEDUP_WINDOW_MS))
215
+ .changes > 0;
216
+ if (!fresh) {
217
+ return { status: 'duplicate', seq: this.insertDelivery(delivery, 'duplicate'), firings: [] };
218
+ }
219
+ const status = delivery.firings.length > 0 ? 'matched' : 'unmatched';
220
+ const seq = this.insertDelivery(delivery, status);
221
+ const insert = this.db.prepare(`
222
+ INSERT INTO event_firings (id, delivery_seq, trigger_id, agent_id, source, event_id, coalescing_key,
223
+ session_id, dispatch_key, batch_key, status, block, reason, created_at, updated_at)
224
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, '', 'pending', ?, '', ?, ?)
225
+ `);
226
+ const firings = delivery.firings.map((firing) => {
227
+ const id = randomUUID();
228
+ insert.run(id, seq, firing.triggerId, firing.agentId, delivery.source, delivery.eventId, firing.coalescingKey, firing.sessionId, firing.dispatchKey, firing.block, delivery.receivedAt, delivery.receivedAt);
229
+ return {
230
+ id,
231
+ deliverySeq: seq,
232
+ triggerId: firing.triggerId,
233
+ agentId: firing.agentId,
234
+ source: delivery.source,
235
+ eventId: delivery.eventId,
236
+ coalescingKey: firing.coalescingKey,
237
+ sessionId: firing.sessionId,
238
+ dispatchKey: firing.dispatchKey,
239
+ status: 'pending',
240
+ block: firing.block,
241
+ createdAt: delivery.receivedAt,
242
+ updatedAt: delivery.receivedAt,
243
+ };
244
+ });
245
+ return { status, seq, firings };
246
+ });
247
+ }
248
+ /**
249
+ * Record a signed delivery the listener refused (a form-encoded body, a
250
+ * malformed event). No tombstone: the sender can fix it and retry with the
251
+ * same id. Unsigned requests never reach here; they leave no row at all.
252
+ */
253
+ refuse(delivery) {
254
+ const seq = this.insertDelivery(delivery, 'refused', delivery.reason);
255
+ return deliveryFrom(this.db.prepare('SELECT * FROM event_deliveries WHERE seq = ?').get(seq));
256
+ }
257
+ /** Delivery rows, newest first. */
258
+ deliveries(options = {}) {
259
+ const limit = options.limit ?? 100;
260
+ const rows = (options.source !== undefined
261
+ ? this.db.prepare('SELECT * FROM event_deliveries WHERE source = ? ORDER BY seq DESC LIMIT ?').all(options.source, limit)
262
+ : this.db.prepare('SELECT * FROM event_deliveries ORDER BY seq DESC LIMIT ?').all(limit));
263
+ return rows.map(deliveryFrom);
264
+ }
265
+ /**
266
+ * Per source with any row: its last delivery, its last refused one, and
267
+ * counts since `sinceIso` (`stratus events`, `/health`). Grouped in the
268
+ * database, so the cost doesn't grow with the 7 days of rows kept.
269
+ */
270
+ activity(sinceIso) {
271
+ const result = {};
272
+ const entry = (source) => (result[source] ??= { deliveries: {}, firings: {} });
273
+ const latest = this.db.prepare(`
274
+ SELECT d.* FROM event_deliveries d
275
+ JOIN (SELECT source, MAX(seq) AS seq FROM event_deliveries GROUP BY source) newest ON newest.seq = d.seq
276
+ `).all();
277
+ for (const row of latest) {
278
+ entry(row.source).lastDelivery = {
279
+ at: row.received_at,
280
+ type: row.type,
281
+ ...(row.subject !== '' ? { subject: row.subject } : {}),
282
+ status: row.status,
283
+ };
284
+ }
285
+ const refused = this.db.prepare(`
286
+ SELECT d.* FROM event_deliveries d
287
+ JOIN (SELECT source, MAX(seq) AS seq FROM event_deliveries WHERE status = 'refused' GROUP BY source) newest ON newest.seq = d.seq
288
+ `).all();
289
+ for (const row of refused) {
290
+ entry(row.source).lastRefused = { at: row.received_at, reason: row.reason };
291
+ }
292
+ const deliveries = this.db.prepare(`
293
+ SELECT source, status, COUNT(*) AS n FROM event_deliveries WHERE received_at >= ? GROUP BY source, status
294
+ `).all(sinceIso);
295
+ for (const row of deliveries) {
296
+ entry(row.source).deliveries[row.status] = Number(row.n);
297
+ }
298
+ const firings = this.db.prepare(`
299
+ SELECT source, status, COUNT(*) AS n FROM event_firings
300
+ WHERE status IN (${OPEN_SQL}) OR updated_at >= ? GROUP BY source, status
301
+ `).all(sinceIso);
302
+ for (const row of firings) {
303
+ entry(row.source).firings[row.status] = Number(row.n);
304
+ }
305
+ return result;
306
+ }
307
+ firing(id) {
308
+ const row = this.db.prepare('SELECT * FROM event_firings WHERE id = ?').get(id);
309
+ return row ? firingFrom(row) : undefined;
310
+ }
311
+ /**
312
+ * Every open firing (`pending`, `held`, `rate_limited`, `firing`), oldest
313
+ * first, with its block and batch key: what the startup sweep recovers and
314
+ * what a hold releases. A `firing` row is a claim whose dispatch may or may
315
+ * not have reached the gateway; its batch goes out again as stored, and the
316
+ * idempotency key decides whether that starts or continues a turn.
317
+ */
318
+ open() {
319
+ return this.db
320
+ .prepare(`SELECT * FROM event_firings WHERE status IN (${OPEN_SQL}) ORDER BY created_at ASC, delivery_seq ASC, rowid ASC`)
321
+ .all().map(firingFrom);
322
+ }
323
+ /**
324
+ * Run `update` on exactly `ids`, all or nothing: false, with nothing
325
+ * changed, unless `precheck` (inside the same transaction) passes and
326
+ * every row matched the update's own conditions.
327
+ */
328
+ allOrNothing(ids, update, precheck = () => true) {
329
+ if (ids.length === 0 || new Set(ids).size !== ids.length) {
330
+ return false;
331
+ }
332
+ try {
333
+ return this.transaction(() => {
334
+ if (!precheck()) {
335
+ throw new RefusedTransition();
336
+ }
337
+ for (const id of ids) {
338
+ if (update(id) === 0) {
339
+ throw new RefusedTransition();
340
+ }
341
+ }
342
+ return true;
343
+ });
344
+ }
345
+ catch (error) {
346
+ if (error instanceof RefusedTransition) {
347
+ return false;
348
+ }
349
+ throw error;
350
+ }
351
+ }
352
+ /**
353
+ * Claim firings to go out as one turn under `batchKey`, in one write
354
+ * before the dispatch. Either every row is free and they become a new
355
+ * batch, or `ids` is exactly an existing batch under exactly its key,
356
+ * which is how recovery resends one. A batch is fixed once claimed: no
357
+ * row joins it later, and it never changes key. False, with nothing
358
+ * changed, for anything else, or if any row is finished.
359
+ *
360
+ * With `triggerId`, also false unless that schedule row still exists, in
361
+ * the same transaction: `stratus schedules cancel` deletes from another
362
+ * process, and a trigger cancelled after the scan read it must not fire,
363
+ * as a timed schedule's conditional slot claim already guarantees.
364
+ */
365
+ claim(ids, batchKey, nowIso, options = {}) {
366
+ const members = this.db.prepare('SELECT id FROM event_firings WHERE batch_key = ?');
367
+ const update = this.db.prepare(`
368
+ UPDATE event_firings
369
+ SET status = 'firing', batch_key = ?, updated_at = ?,
370
+ started_at = CASE WHEN started_at = '' THEN ? ELSE started_at END
371
+ WHERE id = ? AND status IN (${OPEN_SQL}) AND (batch_key = '' OR batch_key = ?)
372
+ `);
373
+ const wanted = new Set(ids);
374
+ return this.allOrNothing(ids, (id) => Number(update.run(batchKey, nowIso, nowIso, id, batchKey).changes), () => {
375
+ if (options.triggerId !== undefined
376
+ && this.db.prepare('SELECT 1 FROM schedules WHERE id = ?').get(options.triggerId) === undefined) {
377
+ return false;
378
+ }
379
+ const existing = members.all(batchKey).map((row) => row.id);
380
+ return existing.length === 0 || (existing.length === wanted.size && existing.every((id) => wanted.has(id)));
381
+ });
382
+ }
383
+ /**
384
+ * Hold open firings for quiet hours or paused intake (`held`) or over the
385
+ * trigger's hourly limit (`rate_limited`). The block and any batch key
386
+ * stay, so a held batch still goes out only as itself.
387
+ */
388
+ hold(ids, status, nowIso) {
389
+ const update = this.db.prepare(`UPDATE event_firings SET status = ?, updated_at = ? WHERE id = ? AND status IN (${OPEN_SQL})`);
390
+ return this.allOrNothing(ids, (id) => Number(update.run(status, nowIso, id).changes));
391
+ }
392
+ /**
393
+ * Finish claimed firings after their dispatch, clearing the block in the
394
+ * same write: from here the payload lives only in the session it fired.
395
+ * Only a `firing` row can finish, so nothing is marked fired that wasn't
396
+ * claimed first.
397
+ */
398
+ finish(ids, outcome, nowIso) {
399
+ const reason = outcome.status === 'failed' ? outcome.reason : '';
400
+ const update = this.db.prepare(`
401
+ UPDATE event_firings SET status = ?, reason = ?, block = NULL, updated_at = ?
402
+ WHERE id = ? AND status = 'firing'
403
+ `);
404
+ return this.allOrNothing(ids, (id) => Number(update.run(outcome.status, reason, nowIso, id).changes));
405
+ }
406
+ /**
407
+ * Retire open firings that will never go out: `superseded` by newer ones
408
+ * for the same key, or `expired` (held over 24 hours, or their trigger was
409
+ * cancelled). Clears their blocks. Returns how many were retired; a
410
+ * finished firing is left as it is.
411
+ */
412
+ retire(ids, status, reason, nowIso) {
413
+ const update = this.db.prepare(`
414
+ UPDATE event_firings SET status = ?, reason = ?, block = NULL, updated_at = ?
415
+ WHERE id = ? AND status IN (${OPEN_SQL})
416
+ `);
417
+ return this.transaction(() => ids.reduce((count, id) => count + Number(update.run(status, reason, nowIso, id).changes), 0));
418
+ }
419
+ /**
420
+ * Turns a trigger has started since `sinceIso`, for its hourly limit,
421
+ * counted from when each batch was first claimed (a two-hour turn doesn't
422
+ * hold the hour for two more): a batch running now, one that finished,
423
+ * and one that failed all count,
424
+ * since each was a turn started unattended. A failing provider would
425
+ * otherwise let every new event start another. A batch is one turn, so
426
+ * this counts batch keys, not rows; `exceptBatchKey` leaves out a batch
427
+ * being re-sent after a restart, which must not count against itself.
428
+ */
429
+ turnsStartedSince(triggerId, sinceIso, exceptBatchKey = '') {
430
+ const row = this.db
431
+ .prepare(`
432
+ SELECT COUNT(DISTINCT batch_key) AS turns FROM event_firings
433
+ WHERE trigger_id = ? AND status IN ('firing', 'fired', 'failed')
434
+ AND (CASE WHEN started_at = '' THEN updated_at ELSE started_at END) >= ? AND batch_key != ?
435
+ `)
436
+ .get(triggerId, sinceIso, exceptBatchKey);
437
+ return row.turns;
438
+ }
439
+ /**
440
+ * Drop what the dedup window and the row cap no longer cover: tombstones
441
+ * and delivery rows past 7 days, delivery rows past the newest 10,000, and
442
+ * finished firings past 7 days. An open firing is never pruned: it holds
443
+ * the only copy of an event that hasn't gone out.
444
+ */
445
+ prune(nowIso) {
446
+ const cutoff = minus(nowIso, EVENT_DEDUP_WINDOW_MS);
447
+ this.transaction(() => {
448
+ this.db.prepare('DELETE FROM event_seen WHERE seen_at < ?').run(cutoff);
449
+ this.db.prepare('DELETE FROM event_deliveries WHERE received_at < ?').run(cutoff);
450
+ this.db
451
+ .prepare('DELETE FROM event_deliveries WHERE seq <= (SELECT seq FROM event_deliveries ORDER BY seq DESC LIMIT 1 OFFSET ?)')
452
+ .run(EVENT_DELIVERY_ROW_CAP);
453
+ this.db.prepare(`DELETE FROM event_firings WHERE status NOT IN (${OPEN_SQL}) AND updated_at < ?`).run(cutoff);
454
+ });
455
+ }
456
+ close() {
457
+ this.db.close();
458
+ }
459
+ }
460
+ /** Unwinds an all-or-nothing transition's transaction; never escapes the store. */
461
+ class RefusedTransition extends Error {
462
+ constructor() {
463
+ super('refused transition');
464
+ this.name = 'RefusedTransition';
465
+ }
466
+ }
467
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,14 @@
1
1
  import { EventBus, type AgentDefinition, type CredentialScope, type AlwaysMeans, type ApprovalDelegationOrigin, type ApprovalScheduleDestination, type ApprovalAnswer, type ApprovalOutcome, type ApprovalPolicy, type ImageAttachment, type ObserveEntry, type JsonObject, type Session, type ToolRisk, type TrustLevel } from '@stratusagent/core';
2
2
  import { type ConversationReader, type ConversationCreator, type ParsedSoul, type ScheduleRecord } from '@stratusagent/agents';
3
+ import { type EventIntakeRequest, type EventIntakeResponse, type EventSourceConfig, type EventsSummary } from './event-intake.ts';
4
+ import { type EventDeliveryRow } from './events.ts';
3
5
  import { type SchedulerLimits } from './schedules.ts';
4
6
  import { ShardedSessionStore } from './sessions.ts';
5
7
  export { claimHome, homeLockPath, HomeClaimedError, type HomeClaim, } from './lock.ts';
6
8
  export { SqliteSessionStore, ShardedSessionStore, FleetSessionIndex, SessionIdTakenError, tightenSqliteFile, type SqliteSessionStoreOptions, type ShardedSessionStoreOptions, type SessionIndexRow, type SessionReconcileReport, } from './sessions.ts';
7
9
  export { SqliteScheduleStore, createSchedulerRuntime, isScheduleSessionId, SCHEDULE_SESSION_ID_PREFIX, type ScheduleStoreLike, type SchedulerLimits, type SchedulerRuntime, type SchedulerRuntimeOptions, } from './schedules.ts';
10
+ export { SqliteEventStore, EVENT_BLOCK_MAX_BYTES, EVENT_DEDUP_WINDOW_MS, EVENT_DELIVERY_ROW_CAP, eventCoalescingKey, eventDispatchKey, eventSessionId, renderEventBlock, type AcceptedEventDelivery, type EventDeliveryRow, type EventDeliveryStatus, type EventFiringRow, type EventFiringStatus, type EventSourceActivity, type NewEventFiring, type RefusedEventDelivery, } from './events.ts';
11
+ export { createEventIntake, mapGithubDelivery, parseStandardWebhookEvent, verifyGithubSignature, verifyStandardWebhookSignature, DEFAULT_EVENT_MAX_BODY_BYTES, EVENT_SOURCE_REQUESTS_PER_MINUTE, type EventIntake, type EventIntakeCounters, type EventIntakeOptions, type EventIntakeRequest, type EventIntakeResponse, type EventSourceConfig, type EventSourceCounters, type EventSourceSummary, type EventsSummary, type EventTrigger, } from './event-intake.ts';
8
12
  import { type OptionalModuleHost } from '@stratusagent/plugins';
9
13
  import { type PluginsConfig, type RuntimeSelection, type StateEnvironment } from '@stratusagent/state';
10
14
  /**
@@ -115,10 +119,13 @@ export interface GatewayChannelAdapter {
115
119
  scope: CredentialScope;
116
120
  reason?: string;
117
121
  replace?: boolean;
122
+ env?: string;
118
123
  metadata: JsonObject;
119
124
  }): Promise<void>;
120
125
  /** See `ChannelAdapter.credentialReplaceForms`. */
121
126
  credentialReplaceForms?: boolean;
127
+ /** See `ChannelAdapter.credentialEnvForms`. */
128
+ credentialEnvForms?: boolean;
122
129
  /**
123
130
  * Issues a one-time link to a form for a credential request, for the
124
131
  * agent to pass on: what a request falls back to when its conversation
@@ -138,6 +145,8 @@ export interface GatewayChannelAdapter {
138
145
  name: string;
139
146
  scope: CredentialScope;
140
147
  reason?: string;
148
+ /** The variable the agent's shell will read the key from; the page must say so. */
149
+ env?: string;
141
150
  }): Promise<{
142
151
  url: string;
143
152
  expiresAt: string;
@@ -520,6 +529,15 @@ export interface GatewayOptions {
520
529
  * event, or response resets it. 0 disables. Default 120s.
521
530
  */
522
531
  idleTimeoutMs?: number;
532
+ /**
533
+ * The events listener's sources and body limit (card 590), from the
534
+ * trusted config's `events` block. With no sources the event store is
535
+ * never opened, and every delivery is to an unknown source.
536
+ */
537
+ events?: {
538
+ sources?: Record<string, EventSourceConfig>;
539
+ maxBodyBytes?: number;
540
+ };
523
541
  /**
524
542
  * Where the per-agent session stores (`agents/<id>/sessions.db`) and the
525
543
  * fleet database (`fleet.db`, holding the schedules and the session
@@ -847,6 +865,24 @@ export interface Gateway {
847
865
  * such schedule exists.
848
866
  */
849
867
  cancelSchedule(scheduleId: string): boolean;
868
+ /**
869
+ * One request to the events port (card 590): verified, deduplicated,
870
+ * matched against event triggers and recorded, all before the answer.
871
+ * The listener in control-api calls this with the raw body.
872
+ */
873
+ receiveEvent(request: EventIntakeRequest): Promise<EventIntakeResponse>;
874
+ /**
875
+ * Per configured event source: the last delivery, the last refusal and
876
+ * why, and the last 24 hours by status, with the requests refused before
877
+ * they could leave a row (`stratus events`, `/health`). No sources when
878
+ * none is configured.
879
+ */
880
+ eventSummary(): EventsSummary;
881
+ /** Delivery rows, newest first; a row never holds the body. Empty when no source is configured. */
882
+ eventDeliveries(options?: {
883
+ source?: string;
884
+ limit?: number;
885
+ }): EventDeliveryRow[];
850
886
  /**
851
887
  * Every registered tool, with the risk it will actually be judged at and
852
888
  * the package it came from.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}