@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/event-intake.d.ts +141 -0
- package/dist/event-intake.d.ts.map +1 -0
- package/dist/event-intake.js +369 -0
- package/dist/event-intake.js.map +1 -0
- package/dist/events.d.ts +256 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +467 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +155 -16
- package/dist/index.js.map +1 -1
- package/dist/schedules.d.ts +41 -0
- package/dist/schedules.d.ts.map +1 -1
- package/dist/schedules.js +306 -39
- package/dist/schedules.js.map +1 -1
- package/package.json +7 -7
package/dist/schedules.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { DatabaseSync } from 'node:sqlite';
|
|
1
2
|
import { type JsonObject, type Session } from '@stratusagent/core';
|
|
2
3
|
import { type ScheduleDestination, type ScheduleRecord, type SchedulerHandle } from '@stratusagent/agents';
|
|
4
|
+
import type { EventTrigger } from './event-intake.ts';
|
|
5
|
+
import type { SqliteEventStore } from './events.ts';
|
|
3
6
|
/**
|
|
4
7
|
* Durable schedules, in the same database sessions live in — a schedule
|
|
5
8
|
* survives a restart the way a parked approval does, and an operator has
|
|
@@ -27,6 +30,15 @@ export interface SqliteScheduleStoreOptions {
|
|
|
27
30
|
*/
|
|
28
31
|
stateHome?: string;
|
|
29
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Open `fleet.db` the way every store sharing it must: the derived-path
|
|
35
|
+
* check, an owner-only directory and file, WAL with a busy timeout, then
|
|
36
|
+
* `schema`, then the sidecars tightened. One implementation, because the
|
|
37
|
+
* schedule store and the event store (card 590) each hold their own
|
|
38
|
+
* connection to this file, and a second copy of this sequence is the one
|
|
39
|
+
* that drifts.
|
|
40
|
+
*/
|
|
41
|
+
export declare const openFleetDatabase: (filePath: string, options: SqliteScheduleStoreOptions, schema: string) => DatabaseSync;
|
|
30
42
|
export declare class SqliteScheduleStore {
|
|
31
43
|
private readonly db;
|
|
32
44
|
constructor(filePath: string, options?: SqliteScheduleStoreOptions);
|
|
@@ -109,7 +121,17 @@ export interface SchedulerRuntimeOptions {
|
|
|
109
121
|
agentId: string;
|
|
110
122
|
userMessage: string;
|
|
111
123
|
metadata: JsonObject;
|
|
124
|
+
/** An event firing's batch key: a repeat continues its turn rather than starting a second. */
|
|
125
|
+
idempotencyKey?: string;
|
|
112
126
|
}): Promise<unknown>;
|
|
127
|
+
/**
|
|
128
|
+
* Event triggers (card 590): the store their firings wait in, and the
|
|
129
|
+
* sources the operator configured. Without it, an `event` cadence is
|
|
130
|
+
* refused at creation: a trigger nothing can deliver to never fires.
|
|
131
|
+
*/
|
|
132
|
+
events?: SchedulerEventOptions;
|
|
133
|
+
/** The clock, for tests. Default `new Date()`. */
|
|
134
|
+
now?(): Date;
|
|
113
135
|
/**
|
|
114
136
|
* Prove a destination can be served, rejecting with a message fit for
|
|
115
137
|
* the person who named it. Called at creation — the whole point is
|
|
@@ -146,9 +168,28 @@ export interface SchedulerRuntimeOptions {
|
|
|
146
168
|
log(line: string): void;
|
|
147
169
|
warn(line: string): void;
|
|
148
170
|
}
|
|
171
|
+
export interface SchedulerEventOptions {
|
|
172
|
+
store: Pick<SqliteEventStore, 'open' | 'claim' | 'hold' | 'finish' | 'retire' | 'turnsStartedSince' | 'prune'>;
|
|
173
|
+
/** The configured source ids, read at each creation. */
|
|
174
|
+
sources(): readonly string[];
|
|
175
|
+
/**
|
|
176
|
+
* Event firings per agent at once, apart from timed schedules' cap: a
|
|
177
|
+
* Codex review must not wait behind a long work-loop firing, which is the
|
|
178
|
+
* polling this replaces. A firing over it waits, it is not dropped.
|
|
179
|
+
* Default 1.
|
|
180
|
+
*/
|
|
181
|
+
maxConcurrentPerAgent?: number;
|
|
182
|
+
}
|
|
149
183
|
export interface SchedulerRuntime {
|
|
150
184
|
/** The handle the `schedule.*` tools close over. */
|
|
151
185
|
handle: SchedulerHandle;
|
|
186
|
+
/** The event triggers on a source, for the intake's rule filter. */
|
|
187
|
+
eventTriggers(sourceId: string): EventTrigger[];
|
|
188
|
+
/**
|
|
189
|
+
* Run the hold-or-fire step for waiting event firings now, rather than at
|
|
190
|
+
* the next tick: the intake calls it after a delivery matched.
|
|
191
|
+
*/
|
|
192
|
+
kickEvents(): void;
|
|
152
193
|
/**
|
|
153
194
|
* The destination carve-out, shaped for the permission policy's
|
|
154
195
|
* `destinations` option: true exactly when this session is a firing of a
|
package/dist/schedules.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../src/schedules.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../src/schedules.ts"],"names":[],"mappings":"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"}
|
package/dist/schedules.js
CHANGED
|
@@ -3,37 +3,51 @@ import { chmodSync, mkdirSync } from 'node:fs';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { DatabaseSync } from 'node:sqlite';
|
|
5
5
|
import { SENDER_TRUST_METADATA_KEY } from '@stratusagent/core';
|
|
6
|
-
import { canonicalDestination, nextFireAfter, SCHEDULE_ID_METADATA_KEY, SCHEDULED_TURN_METADATA_KEY, } from '@stratusagent/agents';
|
|
6
|
+
import { canonicalDestination, DEFAULT_EVENT_MAX_PER_HOUR, isWithinQuietHours, nextFireAfter, SCHEDULE_ID_METADATA_KEY, SCHEDULED_TURN_METADATA_KEY, } from '@stratusagent/agents';
|
|
7
7
|
import { assertDerivedStatePathSync } from '@stratusagent/state';
|
|
8
|
+
import { tightenSqliteFile } from "./sessions.js";
|
|
9
|
+
/**
|
|
10
|
+
* Open `fleet.db` the way every store sharing it must: the derived-path
|
|
11
|
+
* check, an owner-only directory and file, WAL with a busy timeout, then
|
|
12
|
+
* `schema`, then the sidecars tightened. One implementation, because the
|
|
13
|
+
* schedule store and the event store (card 590) each hold their own
|
|
14
|
+
* connection to this file, and a second copy of this sequence is the one
|
|
15
|
+
* that drifts.
|
|
16
|
+
*/
|
|
17
|
+
export const openFleetDatabase = (filePath, options, schema) => {
|
|
18
|
+
if (options.stateHome !== undefined) {
|
|
19
|
+
assertDerivedStatePathSync(options.stateHome, filePath, 'file');
|
|
20
|
+
}
|
|
21
|
+
// Same posture as the session store sharing this file: the directory
|
|
22
|
+
// and the database must not be readable by other local users, and the
|
|
23
|
+
// sidecar chmods cover databases created under a looser umask.
|
|
24
|
+
mkdirSync(path.dirname(filePath), { recursive: true, mode: 0o700 });
|
|
25
|
+
const db = new DatabaseSync(filePath);
|
|
26
|
+
try {
|
|
27
|
+
chmodSync(filePath, 0o600);
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
if (error.code !== 'ENOENT') {
|
|
31
|
+
throw error;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
db.exec('PRAGMA journal_mode = WAL');
|
|
35
|
+
// WAL serializes writers to one at a time across the whole file, and
|
|
36
|
+
// this database is shared between two processes: the daemon claims
|
|
37
|
+
// slots and saves sessions while `stratus schedules cancel` deletes a
|
|
38
|
+
// row from another connection. Without a busy timeout the loser of that
|
|
39
|
+
// lock throws `database is locked` immediately — a cancel that silently
|
|
40
|
+
// failed would leave the schedule (and its destination grant) live.
|
|
41
|
+
// Wait for the writer instead.
|
|
42
|
+
db.exec('PRAGMA busy_timeout = 5000');
|
|
43
|
+
db.exec(schema);
|
|
44
|
+
tightenSqliteFile(filePath);
|
|
45
|
+
return db;
|
|
46
|
+
};
|
|
8
47
|
export class SqliteScheduleStore {
|
|
9
48
|
db;
|
|
10
49
|
constructor(filePath, options = {}) {
|
|
11
|
-
|
|
12
|
-
assertDerivedStatePathSync(options.stateHome, filePath, 'file');
|
|
13
|
-
}
|
|
14
|
-
// Same posture as the session store sharing this file: the directory
|
|
15
|
-
// and the database must not be readable by other local users, and the
|
|
16
|
-
// sidecar chmods cover databases created under a looser umask.
|
|
17
|
-
mkdirSync(path.dirname(filePath), { recursive: true, mode: 0o700 });
|
|
18
|
-
this.db = new DatabaseSync(filePath);
|
|
19
|
-
try {
|
|
20
|
-
chmodSync(filePath, 0o600);
|
|
21
|
-
}
|
|
22
|
-
catch (error) {
|
|
23
|
-
if (error.code !== 'ENOENT') {
|
|
24
|
-
throw error;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
this.db.exec('PRAGMA journal_mode = WAL');
|
|
28
|
-
// WAL serializes writers to one at a time across the whole file, and
|
|
29
|
-
// this database is shared between two processes: the daemon claims
|
|
30
|
-
// slots and saves sessions while `stratus schedules cancel` deletes a
|
|
31
|
-
// row from another connection. Without a busy timeout the loser of that
|
|
32
|
-
// lock throws `database is locked` immediately — a cancel that silently
|
|
33
|
-
// failed would leave the schedule (and its destination grant) live.
|
|
34
|
-
// Wait for the writer instead.
|
|
35
|
-
this.db.exec('PRAGMA busy_timeout = 5000');
|
|
36
|
-
this.db.exec(`
|
|
50
|
+
this.db = openFleetDatabase(filePath, options, `
|
|
37
51
|
CREATE TABLE IF NOT EXISTS schedules (
|
|
38
52
|
id TEXT PRIMARY KEY,
|
|
39
53
|
agent_id TEXT NOT NULL,
|
|
@@ -42,16 +56,6 @@ export class SqliteScheduleStore {
|
|
|
42
56
|
created_at TEXT NOT NULL
|
|
43
57
|
)
|
|
44
58
|
`);
|
|
45
|
-
for (const sensitive of [filePath, `${filePath}-wal`, `${filePath}-shm`, `${filePath}-journal`]) {
|
|
46
|
-
try {
|
|
47
|
-
chmodSync(sensitive, 0o600);
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
if (error.code !== 'ENOENT') {
|
|
51
|
-
throw error;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
59
|
}
|
|
56
60
|
insert(record) {
|
|
57
61
|
this.db
|
|
@@ -118,8 +122,16 @@ export const isScheduleSessionId = (sessionId) => sessionId.startsWith(SCHEDULE_
|
|
|
118
122
|
const DEFAULT_MIN_INTERVAL_MS = 60_000;
|
|
119
123
|
const DEFAULT_MAX_CONCURRENT_PER_AGENT = 1;
|
|
120
124
|
const DEFAULT_TICK_MS = 1_000;
|
|
125
|
+
/** A held event firing older than this expires, so a long pause never ends in a burst. */
|
|
126
|
+
const EVENT_HOLD_MAX_MS = 24 * 60 * 60 * 1_000;
|
|
127
|
+
/** Held firings kept per coalescing key; older ones are superseded. */
|
|
128
|
+
const EVENT_HELD_PER_KEY = 5;
|
|
129
|
+
/** How often the event tables are pruned to their 7-day window and row cap. */
|
|
130
|
+
const EVENT_PRUNE_INTERVAL_MS = 60 * 60 * 1_000;
|
|
121
131
|
export const createSchedulerRuntime = (options) => {
|
|
122
|
-
const { store, dispatch, validateDestination, sessionStatus, hasAgent, log, warn } = options;
|
|
132
|
+
const { store, dispatch, validateDestination, sessionStatus, hasAgent, log, warn, events } = options;
|
|
133
|
+
const clock = options.now ?? (() => new Date());
|
|
134
|
+
const maxEventsPerAgent = events?.maxConcurrentPerAgent ?? 1;
|
|
123
135
|
const minIntervalMs = options.limits?.minIntervalMs ?? DEFAULT_MIN_INTERVAL_MS;
|
|
124
136
|
const maxConcurrentPerAgent = options.limits?.maxConcurrentPerAgent ?? DEFAULT_MAX_CONCURRENT_PER_AGENT;
|
|
125
137
|
const tickMs = options.limits?.tickMs ?? DEFAULT_TICK_MS;
|
|
@@ -171,11 +183,48 @@ export const createSchedulerRuntime = (options) => {
|
|
|
171
183
|
}
|
|
172
184
|
}
|
|
173
185
|
};
|
|
186
|
+
/**
|
|
187
|
+
* An event trigger: no slot, so the due scan never sees it; it fires when
|
|
188
|
+
* a delivery matches. Refused for a source the operator hasn't configured,
|
|
189
|
+
* now, while the person approving it can hear why.
|
|
190
|
+
*/
|
|
191
|
+
const createTrigger = async (input) => {
|
|
192
|
+
if (input.cadence.kind !== 'event') {
|
|
193
|
+
throw new Error('createTrigger takes an event cadence.');
|
|
194
|
+
}
|
|
195
|
+
if (!events) {
|
|
196
|
+
throw new Error('This daemon takes no events: its config has no "events" sources, so a trigger could never fire. The operator adds a source first.');
|
|
197
|
+
}
|
|
198
|
+
const configured = events.sources();
|
|
199
|
+
if (!configured.includes(input.cadence.source)) {
|
|
200
|
+
throw new Error(`No event source "${input.cadence.source}" is configured on this daemon. `
|
|
201
|
+
+ (configured.length > 0 ? `Configured: ${configured.join(', ')}.` : 'None is.'));
|
|
202
|
+
}
|
|
203
|
+
if (input.destination) {
|
|
204
|
+
await validateDestination(input.agentId, input.destination);
|
|
205
|
+
}
|
|
206
|
+
const record = {
|
|
207
|
+
id: randomUUID(),
|
|
208
|
+
agentId: input.agentId,
|
|
209
|
+
cadence: input.cadence,
|
|
210
|
+
prompt: input.prompt,
|
|
211
|
+
...(input.destination ? { destination: input.destination } : {}),
|
|
212
|
+
createdAt: clock().toISOString(),
|
|
213
|
+
...(input.createdBy ? { createdBy: input.createdBy } : {}),
|
|
214
|
+
...(input.trust ? { trust: input.trust } : {}),
|
|
215
|
+
};
|
|
216
|
+
store.insert(record);
|
|
217
|
+
log(`event trigger ${record.id} created for ${record.agentId} on source ${input.cadence.source}${record.destination ? `, reports to ${canonicalDestination(record.destination)}` : ''}`);
|
|
218
|
+
return record;
|
|
219
|
+
};
|
|
174
220
|
const handle = {
|
|
175
221
|
async create(input) {
|
|
176
222
|
if (!hasAgent(input.agentId)) {
|
|
177
223
|
throw new Error(`Agent not found: ${input.agentId}`);
|
|
178
224
|
}
|
|
225
|
+
if (input.cadence.kind === 'event') {
|
|
226
|
+
return createTrigger(input);
|
|
227
|
+
}
|
|
179
228
|
enforceFloor(input);
|
|
180
229
|
const now = new Date();
|
|
181
230
|
const next = nextFireAfter(input.cadence, now);
|
|
@@ -215,6 +264,7 @@ export const createSchedulerRuntime = (options) => {
|
|
|
215
264
|
const deleted = store.delete(scheduleId);
|
|
216
265
|
if (deleted) {
|
|
217
266
|
log(`schedule ${scheduleId} cancelled by ${agentId}`);
|
|
267
|
+
expireTriggerFirings(scheduleId);
|
|
218
268
|
}
|
|
219
269
|
return deleted;
|
|
220
270
|
},
|
|
@@ -360,6 +410,202 @@ export const createSchedulerRuntime = (options) => {
|
|
|
360
410
|
inflight.add(firing);
|
|
361
411
|
void firing.finally(() => inflight.delete(firing));
|
|
362
412
|
};
|
|
413
|
+
// ---- event triggers (card 590) ------------------------------------------
|
|
414
|
+
let started = false;
|
|
415
|
+
/** When the event tables were last pruned; unset until the first pass after start. */
|
|
416
|
+
let eventsPrunedAt;
|
|
417
|
+
/** Batches this process dispatched and has not seen settle. Empty after a restart, which is what makes a claimed batch recoverable. */
|
|
418
|
+
const inflightBatches = new Set();
|
|
419
|
+
const runningEventsPerAgent = new Map();
|
|
420
|
+
/** Groups whose deferral under the per-agent slot was already logged. */
|
|
421
|
+
const eventDeferralsWarned = new Set();
|
|
422
|
+
/** A trigger's waiting firings never go out once it is cancelled. */
|
|
423
|
+
const expireTriggerFirings = (triggerId) => {
|
|
424
|
+
if (!events) {
|
|
425
|
+
return;
|
|
426
|
+
}
|
|
427
|
+
const ids = events.store.open()
|
|
428
|
+
.filter((row) => row.triggerId === triggerId && !(row.batchKey !== undefined && inflightBatches.has(row.batchKey)))
|
|
429
|
+
.map((row) => row.id);
|
|
430
|
+
if (ids.length > 0) {
|
|
431
|
+
events.store.retire(ids, 'expired', 'Its trigger was cancelled.', clock().toISOString());
|
|
432
|
+
}
|
|
433
|
+
};
|
|
434
|
+
const fireEventBatch = (record, rows, batchKey) => {
|
|
435
|
+
const sessionId = rows[0].sessionId;
|
|
436
|
+
const ids = rows.map((row) => row.id);
|
|
437
|
+
inflightBatches.add(batchKey);
|
|
438
|
+
runningEventsPerAgent.set(record.agentId, (runningEventsPerAgent.get(record.agentId) ?? 0) + 1);
|
|
439
|
+
activeFirings.add(sessionId);
|
|
440
|
+
const firing = dispatch({
|
|
441
|
+
sessionId,
|
|
442
|
+
agentId: record.agentId,
|
|
443
|
+
// The trigger's prompt, then each event in the order it arrived.
|
|
444
|
+
userMessage: [record.prompt, ...rows.map((row) => row.block ?? '')].join('\n\n'),
|
|
445
|
+
idempotencyKey: batchKey,
|
|
446
|
+
metadata: {
|
|
447
|
+
[SCHEDULED_TURN_METADATA_KEY]: true,
|
|
448
|
+
[SCHEDULE_ID_METADATA_KEY]: record.id,
|
|
449
|
+
// The event text came from outside: a valid signature proves who
|
|
450
|
+
// delivered it, not who wrote it (anyone can comment on a PR). So
|
|
451
|
+
// the turn runs at `external`, under the gate that applies after
|
|
452
|
+
// reading a web page, whatever the trigger's creator was trusted at.
|
|
453
|
+
[SENDER_TRUST_METADATA_KEY]: 'external',
|
|
454
|
+
},
|
|
455
|
+
}).then(() => {
|
|
456
|
+
events?.store.finish(ids, { status: 'fired' }, clock().toISOString());
|
|
457
|
+
log(`event trigger ${record.id} fired — session ${sessionId} completed (${ids.length} event${ids.length === 1 ? '' : 's'})`);
|
|
458
|
+
}, (error) => {
|
|
459
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
460
|
+
// Refused by a daemon on its way down, or cut short by its stop and
|
|
461
|
+
// left for the next start: the batch stays claimed, and the next
|
|
462
|
+
// start sends it again under its key, which continues that turn
|
|
463
|
+
// (or runs it, if it never started) rather than losing the events.
|
|
464
|
+
// Matched by name, as a channel matches it. Only once this
|
|
465
|
+
// scheduler has stopped, which the gateway does before it refuses
|
|
466
|
+
// or aborts anything: a batch left claimed while ticks still ran
|
|
467
|
+
// would go straight out again.
|
|
468
|
+
if (stopped && error instanceof Error && error.name === 'GatewayStoppingError') {
|
|
469
|
+
log(`event trigger ${record.id}: ${reason} The batch stays claimed for the next start.`);
|
|
470
|
+
return;
|
|
471
|
+
}
|
|
472
|
+
events?.store.finish(ids, { status: 'failed', reason }, clock().toISOString());
|
|
473
|
+
warn(`event trigger ${record.id} firing failed: ${reason}`);
|
|
474
|
+
}).finally(() => {
|
|
475
|
+
activeFirings.delete(sessionId);
|
|
476
|
+
inflightBatches.delete(batchKey);
|
|
477
|
+
const count = (runningEventsPerAgent.get(record.agentId) ?? 1) - 1;
|
|
478
|
+
if (count > 0) {
|
|
479
|
+
runningEventsPerAgent.set(record.agentId, count);
|
|
480
|
+
}
|
|
481
|
+
else {
|
|
482
|
+
runningEventsPerAgent.delete(record.agentId);
|
|
483
|
+
}
|
|
484
|
+
});
|
|
485
|
+
inflight.add(firing);
|
|
486
|
+
void firing.finally(() => inflight.delete(firing));
|
|
487
|
+
};
|
|
488
|
+
/**
|
|
489
|
+
* The hold-or-fire step, for every waiting event firing: a fresh match, a
|
|
490
|
+
* hold whose window opened, and at startup whatever a crash left. One
|
|
491
|
+
* path, so a recovered firing still waits out quiet hours and counts
|
|
492
|
+
* against its trigger's hour like any other.
|
|
493
|
+
*/
|
|
494
|
+
const processEvents = (now) => {
|
|
495
|
+
// Not before start(): a held daemon's scheduler never starts, and its
|
|
496
|
+
// waiting firings must not go out through a delivery's kick either.
|
|
497
|
+
if (!events || stopped || !started) {
|
|
498
|
+
return;
|
|
499
|
+
}
|
|
500
|
+
const nowIso = now.toISOString();
|
|
501
|
+
// The 7-day window and the row cap hold only if something enforces
|
|
502
|
+
// them, and this is the loop that runs for the daemon's whole life: at
|
|
503
|
+
// the start-up pass, then hourly. Kept off the hold-or-fire path's
|
|
504
|
+
// failure: a prune that can't get the lock waits for the next hour.
|
|
505
|
+
if (eventsPrunedAt === undefined || now.getTime() - eventsPrunedAt >= EVENT_PRUNE_INTERVAL_MS) {
|
|
506
|
+
eventsPrunedAt = now.getTime();
|
|
507
|
+
try {
|
|
508
|
+
events.store.prune(nowIso);
|
|
509
|
+
}
|
|
510
|
+
catch (error) {
|
|
511
|
+
warn(`events: could not prune old deliveries: ${error instanceof Error ? error.message : String(error)}`);
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
const triggers = new Map();
|
|
515
|
+
const triggerFor = (id) => {
|
|
516
|
+
if (!triggers.has(id)) {
|
|
517
|
+
const record = store.get(id);
|
|
518
|
+
triggers.set(id, record?.cadence.kind === 'event' ? record : undefined);
|
|
519
|
+
}
|
|
520
|
+
return triggers.get(id);
|
|
521
|
+
};
|
|
522
|
+
// A claimed batch stays itself; free firings group by trigger and key.
|
|
523
|
+
// Map order is first appearance in `open()`, oldest first.
|
|
524
|
+
const groups = new Map();
|
|
525
|
+
for (const row of events.store.open()) {
|
|
526
|
+
if (row.batchKey !== undefined && inflightBatches.has(row.batchKey)) {
|
|
527
|
+
continue;
|
|
528
|
+
}
|
|
529
|
+
const trigger = triggerFor(row.triggerId);
|
|
530
|
+
if (!trigger || trigger.agentId !== row.agentId) {
|
|
531
|
+
events.store.retire([row.id], 'expired', 'Its trigger was cancelled.', nowIso);
|
|
532
|
+
continue;
|
|
533
|
+
}
|
|
534
|
+
// Holds expire; a claim does not. A batch claimed before a crash may
|
|
535
|
+
// already have reached the gateway, and its key either continues that
|
|
536
|
+
// turn or sends an event that never went out, however long the
|
|
537
|
+
// daemon was down.
|
|
538
|
+
if (row.status !== 'firing' && now.getTime() - Date.parse(row.createdAt) > EVENT_HOLD_MAX_MS) {
|
|
539
|
+
events.store.retire([row.id], 'expired', 'Held for more than 24 hours.', nowIso);
|
|
540
|
+
continue;
|
|
541
|
+
}
|
|
542
|
+
const key = row.batchKey !== undefined ? `batch\n${row.batchKey}` : `key\n${row.triggerId}\n${row.coalescingKey}`;
|
|
543
|
+
const group = groups.get(key) ?? [];
|
|
544
|
+
group.push(row);
|
|
545
|
+
groups.set(key, group);
|
|
546
|
+
}
|
|
547
|
+
const holdAs = (rows, status) => {
|
|
548
|
+
const ids = rows.filter((row) => row.status !== status).map((row) => row.id);
|
|
549
|
+
if (ids.length > 0) {
|
|
550
|
+
events.store.hold(ids, status, nowIso);
|
|
551
|
+
}
|
|
552
|
+
};
|
|
553
|
+
for (const [groupKey, all] of groups) {
|
|
554
|
+
const trigger = triggerFor(all[0].triggerId);
|
|
555
|
+
if (trigger.cadence.kind !== 'event') {
|
|
556
|
+
continue;
|
|
557
|
+
}
|
|
558
|
+
let rows = all;
|
|
559
|
+
const batched = rows[0].batchKey !== undefined;
|
|
560
|
+
if (!batched && rows.length > EVENT_HELD_PER_KEY) {
|
|
561
|
+
const dropped = rows.slice(0, rows.length - EVENT_HELD_PER_KEY);
|
|
562
|
+
events.store.retire(dropped.map((row) => row.id), 'superseded', `Over ${EVENT_HELD_PER_KEY} waiting for one subject; newer ones were kept.`, nowIso);
|
|
563
|
+
rows = rows.slice(-EVENT_HELD_PER_KEY);
|
|
564
|
+
}
|
|
565
|
+
const { quietHours } = trigger.cadence;
|
|
566
|
+
if (options.paused?.() === true || (quietHours !== undefined && isWithinQuietHours(quietHours, now))) {
|
|
567
|
+
holdAs(rows, 'held');
|
|
568
|
+
continue;
|
|
569
|
+
}
|
|
570
|
+
const running = runningEventsPerAgent.get(trigger.agentId) ?? 0;
|
|
571
|
+
if (running >= maxEventsPerAgent) {
|
|
572
|
+
if (!eventDeferralsWarned.has(groupKey)) {
|
|
573
|
+
eventDeferralsWarned.add(groupKey);
|
|
574
|
+
log(`event trigger ${trigger.id}: ${trigger.agentId} already has ${running} event firing(s) running; this one waits`);
|
|
575
|
+
}
|
|
576
|
+
continue;
|
|
577
|
+
}
|
|
578
|
+
eventDeferralsWarned.delete(groupKey);
|
|
579
|
+
const maxPerHour = trigger.cadence.maxPerHour ?? DEFAULT_EVENT_MAX_PER_HOUR;
|
|
580
|
+
const hourAgo = new Date(now.getTime() - 3_600_000).toISOString();
|
|
581
|
+
if (events.store.turnsStartedSince(trigger.id, hourAgo, rows[0].batchKey) >= maxPerHour) {
|
|
582
|
+
if (!batched && rows.length > 1) {
|
|
583
|
+
events.store.retire(rows.slice(0, -1).map((row) => row.id), 'superseded', 'A newer event for the same subject replaced it while over the hourly limit.', nowIso);
|
|
584
|
+
rows = rows.slice(-1);
|
|
585
|
+
}
|
|
586
|
+
holdAs(rows, 'rate_limited');
|
|
587
|
+
continue;
|
|
588
|
+
}
|
|
589
|
+
const batchKey = rows[0].batchKey ?? rows[rows.length - 1].dispatchKey;
|
|
590
|
+
if (!events.store.claim(rows.map((row) => row.id), batchKey, nowIso, { triggerId: trigger.id })) {
|
|
591
|
+
continue;
|
|
592
|
+
}
|
|
593
|
+
// When it last went out, on the trigger's own row, so `schedule.list`,
|
|
594
|
+
// `stratus schedules` and the control API show it the way they show a
|
|
595
|
+
// timed schedule's. The same conditional write a slot claim makes; an
|
|
596
|
+
// event trigger's slot is always empty, so it only requires the row.
|
|
597
|
+
// A cancel landing after the claim above makes this a no-op, and the
|
|
598
|
+
// claimed batch still goes, as a claimed slot does. An audit field, so
|
|
599
|
+
// a write that fails is warned and never keeps a claimed batch back.
|
|
600
|
+
try {
|
|
601
|
+
store.claimSlot(withNextFire(trigger, undefined, { lastFiredAt: nowIso, lastSessionId: rows[0].sessionId }), '');
|
|
602
|
+
}
|
|
603
|
+
catch (error) {
|
|
604
|
+
warn(`event trigger ${trigger.id}: could not record its last firing: ${error instanceof Error ? error.message : String(error)}`);
|
|
605
|
+
}
|
|
606
|
+
fireEventBatch(trigger, rows, batchKey);
|
|
607
|
+
}
|
|
608
|
+
};
|
|
363
609
|
/**
|
|
364
610
|
* `propagateReadiness` is the startup tick's: a readiness failure there
|
|
365
611
|
* has a caller to reach — `start()`, whose rejection is the gateway's
|
|
@@ -383,13 +629,14 @@ export const createSchedulerRuntime = (options) => {
|
|
|
383
629
|
}
|
|
384
630
|
}
|
|
385
631
|
try {
|
|
386
|
-
const now =
|
|
632
|
+
const now = clock();
|
|
387
633
|
for (const record of store.due(now.toISOString())) {
|
|
388
634
|
if (stopped) {
|
|
389
635
|
break;
|
|
390
636
|
}
|
|
391
637
|
fireOrSkip(record, now);
|
|
392
638
|
}
|
|
639
|
+
processEvents(now);
|
|
393
640
|
}
|
|
394
641
|
catch (error) {
|
|
395
642
|
warn(`scheduler tick failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
@@ -406,6 +653,24 @@ export const createSchedulerRuntime = (options) => {
|
|
|
406
653
|
};
|
|
407
654
|
return {
|
|
408
655
|
handle,
|
|
656
|
+
eventTriggers(sourceId) {
|
|
657
|
+
return store.list()
|
|
658
|
+
.filter((record) => record.cadence.kind === 'event' && record.cadence.source === sourceId)
|
|
659
|
+
.map((record) => ({
|
|
660
|
+
triggerId: record.id,
|
|
661
|
+
agentId: record.agentId,
|
|
662
|
+
source: sourceId,
|
|
663
|
+
filter: record.cadence.filter,
|
|
664
|
+
}));
|
|
665
|
+
},
|
|
666
|
+
kickEvents() {
|
|
667
|
+
try {
|
|
668
|
+
processEvents(clock());
|
|
669
|
+
}
|
|
670
|
+
catch (error) {
|
|
671
|
+
warn(`event triggers: processing failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
672
|
+
}
|
|
673
|
+
},
|
|
409
674
|
isPreauthorized(session, destination) {
|
|
410
675
|
// A live firing of this scheduler's, first: session metadata is
|
|
411
676
|
// written by whoever dispatches, so on its own it proves nothing —
|
|
@@ -463,6 +728,7 @@ export const createSchedulerRuntime = (options) => {
|
|
|
463
728
|
const deleted = store.delete(scheduleId);
|
|
464
729
|
if (deleted) {
|
|
465
730
|
log(`schedule ${scheduleId} cancelled`);
|
|
731
|
+
expireTriggerFirings(scheduleId);
|
|
466
732
|
}
|
|
467
733
|
return deleted;
|
|
468
734
|
},
|
|
@@ -497,6 +763,7 @@ export const createSchedulerRuntime = (options) => {
|
|
|
497
763
|
// The first tick's readiness check propagates too: the stamp can
|
|
498
764
|
// advance between the check above and here, and a `start()` that
|
|
499
765
|
// resolved after noticing would let the gateway's sweeps run.
|
|
766
|
+
started = true;
|
|
500
767
|
await tick(true);
|
|
501
768
|
},
|
|
502
769
|
stop() {
|
package/dist/schedules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedules.js","sourceRoot":"","sources":["../src/schedules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schedules.js","sourceRoot":"","sources":["../src/schedules.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stratusagent/gateway",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -18,16 +18,16 @@
|
|
|
18
18
|
"node": ">=22.13 <23 || >=23.4"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@stratusagent/agents": "0.
|
|
22
|
-
"@stratusagent/
|
|
23
|
-
"@stratusagent/
|
|
24
|
-
"@stratusagent/
|
|
25
|
-
"@stratusagent/
|
|
21
|
+
"@stratusagent/agents": "0.14.0",
|
|
22
|
+
"@stratusagent/executor-local": "0.14.0",
|
|
23
|
+
"@stratusagent/plugins": "0.14.0",
|
|
24
|
+
"@stratusagent/state": "0.14.0",
|
|
25
|
+
"@stratusagent/core": "0.14.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/node": "^24.6.0",
|
|
29
29
|
"typescript": "^5.9.3",
|
|
30
|
-
"@stratusagent/permissions": "0.
|
|
30
|
+
"@stratusagent/permissions": "0.14.0"
|
|
31
31
|
},
|
|
32
32
|
"license": "MIT",
|
|
33
33
|
"repository": {
|