agentenkit 0.2.3 → 0.4.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/README.md +34 -14
- package/dist/adapters/inline.d.ts +19 -5
- package/dist/adapters/inline.d.ts.map +1 -1
- package/dist/adapters/inline.js +87 -14
- package/dist/adapters/inline.js.map +1 -1
- package/dist/adapters/memory.d.ts +65 -3
- package/dist/adapters/memory.d.ts.map +1 -1
- package/dist/adapters/memory.js +267 -3
- package/dist/adapters/memory.js.map +1 -1
- package/dist/adapters/prisma.d.ts +125 -18
- package/dist/adapters/prisma.d.ts.map +1 -1
- package/dist/adapters/prisma.js +308 -67
- package/dist/adapters/prisma.js.map +1 -1
- package/dist/adapters/qstash.d.ts +15 -2
- package/dist/adapters/qstash.d.ts.map +1 -1
- package/dist/adapters/qstash.js +31 -14
- package/dist/adapters/qstash.js.map +1 -1
- package/dist/adapters/redis.d.ts +40 -4
- package/dist/adapters/redis.d.ts.map +1 -1
- package/dist/adapters/redis.js +265 -20
- package/dist/adapters/redis.js.map +1 -1
- package/dist/adapters/sqlite.d.ts +52 -2
- package/dist/adapters/sqlite.d.ts.map +1 -1
- package/dist/adapters/sqlite.js +342 -35
- package/dist/adapters/sqlite.js.map +1 -1
- package/dist/adapters/stream-scripts.d.ts +49 -0
- package/dist/adapters/stream-scripts.d.ts.map +1 -0
- package/dist/adapters/stream-scripts.js +150 -0
- package/dist/adapters/stream-scripts.js.map +1 -0
- package/dist/adapters/upstash.d.ts +20 -0
- package/dist/adapters/upstash.d.ts.map +1 -1
- package/dist/adapters/upstash.js +29 -0
- package/dist/adapters/upstash.js.map +1 -1
- package/dist/admin/memory.d.ts +11 -1
- package/dist/admin/memory.d.ts.map +1 -1
- package/dist/admin/memory.js +83 -14
- package/dist/admin/memory.js.map +1 -1
- package/dist/admin/migrations/postgres/0002-run-settled-at.d.ts +5 -0
- package/dist/admin/migrations/postgres/0002-run-settled-at.d.ts.map +1 -0
- package/dist/admin/migrations/postgres/0002-run-settled-at.js +11 -0
- package/dist/admin/migrations/postgres/0002-run-settled-at.js.map +1 -0
- package/dist/admin/migrations/postgres/0003-run-enqueued-at.d.ts +5 -0
- package/dist/admin/migrations/postgres/0003-run-enqueued-at.d.ts.map +1 -0
- package/dist/admin/migrations/postgres/0003-run-enqueued-at.js +15 -0
- package/dist/admin/migrations/postgres/0003-run-enqueued-at.js.map +1 -0
- package/dist/admin/migrations/postgres/0004-run-settle-claim.d.ts +5 -0
- package/dist/admin/migrations/postgres/0004-run-settle-claim.d.ts.map +1 -0
- package/dist/admin/migrations/postgres/0004-run-settle-claim.js +15 -0
- package/dist/admin/migrations/postgres/0004-run-settle-claim.js.map +1 -0
- package/dist/admin/migrations/postgres/0005-bigint-counters.d.ts +5 -0
- package/dist/admin/migrations/postgres/0005-bigint-counters.d.ts.map +1 -0
- package/dist/admin/migrations/postgres/0005-bigint-counters.js +12 -0
- package/dist/admin/migrations/postgres/0005-bigint-counters.js.map +1 -0
- package/dist/admin/migrations/postgres/index.d.ts.map +1 -1
- package/dist/admin/migrations/postgres/index.js +16 -1
- package/dist/admin/migrations/postgres/index.js.map +1 -1
- package/dist/admin/migrations/runner.d.ts +21 -1
- package/dist/admin/migrations/runner.d.ts.map +1 -1
- package/dist/admin/migrations/runner.js +41 -4
- package/dist/admin/migrations/runner.js.map +1 -1
- package/dist/admin/migrations/sqlite/0002-run-settled-at.d.ts +5 -0
- package/dist/admin/migrations/sqlite/0002-run-settled-at.d.ts.map +1 -0
- package/dist/admin/migrations/sqlite/0002-run-settled-at.js +11 -0
- package/dist/admin/migrations/sqlite/0002-run-settled-at.js.map +1 -0
- package/dist/admin/migrations/sqlite/0003-run-enqueued-at.d.ts +5 -0
- package/dist/admin/migrations/sqlite/0003-run-enqueued-at.d.ts.map +1 -0
- package/dist/admin/migrations/sqlite/0003-run-enqueued-at.js +15 -0
- package/dist/admin/migrations/sqlite/0003-run-enqueued-at.js.map +1 -0
- package/dist/admin/migrations/sqlite/0004-run-settle-claim.d.ts +5 -0
- package/dist/admin/migrations/sqlite/0004-run-settle-claim.d.ts.map +1 -0
- package/dist/admin/migrations/sqlite/0004-run-settle-claim.js +15 -0
- package/dist/admin/migrations/sqlite/0004-run-settle-claim.js.map +1 -0
- package/dist/admin/migrations/sqlite/index.d.ts +2 -2
- package/dist/admin/migrations/sqlite/index.d.ts.map +1 -1
- package/dist/admin/migrations/sqlite/index.js +17 -3
- package/dist/admin/migrations/sqlite/index.js.map +1 -1
- package/dist/admin/postgres.d.ts +14 -4
- package/dist/admin/postgres.d.ts.map +1 -1
- package/dist/admin/postgres.js +131 -36
- package/dist/admin/postgres.js.map +1 -1
- package/dist/admin/shared.d.ts +19 -0
- package/dist/admin/shared.d.ts.map +1 -0
- package/dist/admin/shared.js +28 -0
- package/dist/admin/shared.js.map +1 -0
- package/dist/admin/sqlite.d.ts +9 -1
- package/dist/admin/sqlite.d.ts.map +1 -1
- package/dist/admin/sqlite.js +112 -29
- package/dist/admin/sqlite.js.map +1 -1
- package/dist/core/admin.d.ts +28 -6
- package/dist/core/admin.d.ts.map +1 -1
- package/dist/core/admin.js +92 -23
- package/dist/core/admin.js.map +1 -1
- package/dist/core/agent.d.ts +7 -4
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +15 -11
- package/dist/core/agent.js.map +1 -1
- package/dist/core/agui.d.ts +17 -0
- package/dist/core/agui.d.ts.map +1 -0
- package/dist/core/agui.js +69 -0
- package/dist/core/agui.js.map +1 -0
- package/dist/core/context.d.ts +13 -1
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +70 -19
- package/dist/core/context.js.map +1 -1
- package/dist/core/deleteThread.d.ts.map +1 -1
- package/dist/core/deleteThread.js +33 -4
- package/dist/core/deleteThread.js.map +1 -1
- package/dist/core/engine.d.ts +41 -11
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +855 -352
- package/dist/core/engine.js.map +1 -1
- package/dist/core/follow.d.ts +63 -1
- package/dist/core/follow.d.ts.map +1 -1
- package/dist/core/follow.js +293 -16
- package/dist/core/follow.js.map +1 -1
- package/dist/core/hitl.d.ts +43 -0
- package/dist/core/hitl.d.ts.map +1 -1
- package/dist/core/hitl.js +163 -35
- package/dist/core/hitl.js.map +1 -1
- package/dist/core/keys.d.ts +22 -4
- package/dist/core/keys.d.ts.map +1 -1
- package/dist/core/keys.js +23 -5
- package/dist/core/keys.js.map +1 -1
- package/dist/core/lease.d.ts +46 -0
- package/dist/core/lease.d.ts.map +1 -0
- package/dist/core/lease.js +142 -0
- package/dist/core/lease.js.map +1 -0
- package/dist/core/loop.d.ts +27 -7
- package/dist/core/loop.d.ts.map +1 -1
- package/dist/core/loop.js +140 -55
- package/dist/core/loop.js.map +1 -1
- package/dist/core/messages.d.ts +21 -2
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js +61 -2
- package/dist/core/messages.js.map +1 -1
- package/dist/core/prune.d.ts +24 -0
- package/dist/core/prune.d.ts.map +1 -0
- package/dist/core/prune.js +43 -0
- package/dist/core/prune.js.map +1 -0
- package/dist/core/publish.d.ts +38 -10
- package/dist/core/publish.d.ts.map +1 -1
- package/dist/core/publish.js +126 -12
- package/dist/core/publish.js.map +1 -1
- package/dist/core/reclaim.d.ts +8 -1
- package/dist/core/reclaim.d.ts.map +1 -1
- package/dist/core/reclaim.js +149 -18
- package/dist/core/reclaim.js.map +1 -1
- package/dist/core/run.d.ts +7 -3
- package/dist/core/run.d.ts.map +1 -1
- package/dist/core/run.js +95 -35
- package/dist/core/run.js.map +1 -1
- package/dist/core/segment.d.ts +62 -0
- package/dist/core/segment.d.ts.map +1 -0
- package/dist/core/segment.js +318 -0
- package/dist/core/segment.js.map +1 -0
- package/dist/core/settle.d.ts +57 -0
- package/dist/core/settle.d.ts.map +1 -0
- package/dist/core/settle.js +181 -0
- package/dist/core/settle.js.map +1 -0
- package/dist/core/snapshot.d.ts +36 -0
- package/dist/core/snapshot.d.ts.map +1 -0
- package/dist/core/snapshot.js +87 -0
- package/dist/core/snapshot.js.map +1 -0
- package/dist/core/stop.d.ts +16 -1
- package/dist/core/stop.d.ts.map +1 -1
- package/dist/core/stop.js +69 -15
- package/dist/core/stop.js.map +1 -1
- package/dist/core/stream-events.d.ts +184 -0
- package/dist/core/stream-events.d.ts.map +1 -0
- package/dist/core/stream-events.js +26 -0
- package/dist/core/stream-events.js.map +1 -0
- package/dist/core/stream.d.ts +29 -0
- package/dist/core/stream.d.ts.map +1 -1
- package/dist/core/stream.js +79 -0
- package/dist/core/stream.js.map +1 -1
- package/dist/core/subagent.d.ts +36 -5
- package/dist/core/subagent.d.ts.map +1 -1
- package/dist/core/subagent.js +117 -22
- package/dist/core/subagent.js.map +1 -1
- package/dist/core/types.d.ts +197 -11
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +26 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/usage.d.ts +53 -5
- package/dist/core/usage.d.ts.map +1 -1
- package/dist/core/usage.js +170 -47
- package/dist/core/usage.js.map +1 -1
- package/dist/index.d.ts +16 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -7
- package/dist/index.js.map +1 -1
- package/dist/ports/admin.d.ts +59 -0
- package/dist/ports/admin.d.ts.map +1 -1
- package/dist/ports/kv.d.ts +17 -0
- package/dist/ports/kv.d.ts.map +1 -1
- package/dist/ports/queue.d.ts +87 -7
- package/dist/ports/queue.d.ts.map +1 -1
- package/dist/ports/queue.js +36 -1
- package/dist/ports/queue.js.map +1 -1
- package/dist/ports/runtime.d.ts +171 -20
- package/dist/ports/runtime.d.ts.map +1 -1
- package/dist/ports/storage.d.ts +26 -5
- package/dist/ports/storage.d.ts.map +1 -1
- package/dist/ports/streams.d.ts +60 -0
- package/dist/ports/streams.d.ts.map +1 -0
- package/dist/ports/streams.js +20 -0
- package/dist/ports/streams.js.map +1 -0
- package/dist/pricing.d.ts +5 -0
- package/dist/pricing.d.ts.map +1 -1
- package/dist/pricing.js +35 -10
- package/dist/pricing.js.map +1 -1
- package/dist/runtime.d.ts +6 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +144 -46
- package/dist/runtime.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { StreamEnd, StreamEvent, StreamItem } from '../core/stream-events.js';
|
|
2
|
+
export type { StreamEnd, StreamEvent, StreamItem } from '../core/stream-events.js';
|
|
3
|
+
/** Who a stream belongs to. */
|
|
4
|
+
export interface StreamMeta {
|
|
5
|
+
threadId: string;
|
|
6
|
+
runId: string;
|
|
7
|
+
}
|
|
8
|
+
/** A stream as it stands now. */
|
|
9
|
+
export interface StreamSnapshot {
|
|
10
|
+
meta: StreamMeta;
|
|
11
|
+
items: StreamItem[];
|
|
12
|
+
/** The end item when the stream is closed; it is also the last of `items`. */
|
|
13
|
+
end: StreamEnd | null;
|
|
14
|
+
}
|
|
15
|
+
/** The stream does not exist: never opened, past its grace window, or
|
|
16
|
+
* deleted. A reader takes a fresh snapshot of the thread instead. */
|
|
17
|
+
export declare class StreamGoneError extends Error {
|
|
18
|
+
readonly streamId: string;
|
|
19
|
+
constructor(streamId: string);
|
|
20
|
+
}
|
|
21
|
+
/** An append to a stream that is already closed. */
|
|
22
|
+
export declare class StreamClosedError extends Error {
|
|
23
|
+
readonly streamId: string;
|
|
24
|
+
constructor(streamId: string);
|
|
25
|
+
}
|
|
26
|
+
/** Short-lived logs, one per run segment. Delivery lives here, not state:
|
|
27
|
+
* a stream is closed when its segment ends and deleted after a grace
|
|
28
|
+
* window. What must outlive the run is in the messages and the thread
|
|
29
|
+
* record.
|
|
30
|
+
*
|
|
31
|
+
* Every adapter keeps these rules:
|
|
32
|
+
* - Offsets are opaque strings. Only the store compares them; a client
|
|
33
|
+
* echoes the last one back and nothing else.
|
|
34
|
+
* - Offsets strictly increase within a stream. One writer per stream: the
|
|
35
|
+
* run lock already makes sure of that.
|
|
36
|
+
* - `close` writes the end as the last item, so a reader that sees it
|
|
37
|
+
* stops, and one that comes late still gets it.
|
|
38
|
+
* - A missed wake-up only delays a reader, never drops an event. */
|
|
39
|
+
export interface RunStreams {
|
|
40
|
+
/** Open a stream. Opening one that exists is a no-op. `ttlMs` deletes it
|
|
41
|
+
* even if it is never closed. */
|
|
42
|
+
open(streamId: string, meta: StreamMeta, ttlMs: number): Promise<void>;
|
|
43
|
+
/** Append in order; one offset per event. Throws StreamClosedError once
|
|
44
|
+
* closed and StreamGoneError when the stream does not exist. */
|
|
45
|
+
append(streamId: string, events: StreamEvent[]): Promise<string[]>;
|
|
46
|
+
/** The items after `after` (null: from the start), then live ones as they
|
|
47
|
+
* come. Ends after the end item, or when the signal aborts. Throws
|
|
48
|
+
* StreamGoneError when the stream does not exist, or goes while read. */
|
|
49
|
+
read(streamId: string, after: string | null, signal?: AbortSignal): AsyncIterable<StreamItem>;
|
|
50
|
+
/** The items after `after` now, without waiting. Null when the stream does
|
|
51
|
+
* not exist. */
|
|
52
|
+
snapshot(streamId: string, after?: string | null): Promise<StreamSnapshot | null>;
|
|
53
|
+
/** Write the end item and start the grace window: the stream is deleted
|
|
54
|
+
* `graceMs` later. Closing a closed stream is a no-op; closing one that
|
|
55
|
+
* does not exist throws StreamGoneError. */
|
|
56
|
+
close(streamId: string, end: StreamEnd, graceMs: number): Promise<void>;
|
|
57
|
+
/** Remove a stream now (thread delete). A missing one is a no-op. */
|
|
58
|
+
delete(streamId: string): Promise<void>;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=streams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../src/ports/streams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEnF,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEnF,+BAA+B;AAC/B,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,8EAA8E;IAC9E,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;CACvB;AAED;sEACsE;AACtE,qBAAa,eAAgB,SAAQ,KAAK;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM;CAItC;AAED,oDAAoD;AACpD,qBAAa,iBAAkB,SAAQ,KAAK;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM;CAItC;AAED;;;;;;;;;;;;qEAYqE;AACrE,MAAM,WAAW,UAAU;IACzB;sCACkC;IAClC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE;qEACiE;IACjE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnE;;8EAE0E;IAC1E,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC9F;qBACiB;IACjB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClF;;iDAE6C;IAC7C,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,qEAAqE;IACrE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** The stream does not exist: never opened, past its grace window, or
|
|
2
|
+
* deleted. A reader takes a fresh snapshot of the thread instead. */
|
|
3
|
+
export class StreamGoneError extends Error {
|
|
4
|
+
streamId;
|
|
5
|
+
constructor(streamId) {
|
|
6
|
+
super(`run stream ${streamId} is gone`);
|
|
7
|
+
this.streamId = streamId;
|
|
8
|
+
this.name = 'StreamGoneError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
/** An append to a stream that is already closed. */
|
|
12
|
+
export class StreamClosedError extends Error {
|
|
13
|
+
streamId;
|
|
14
|
+
constructor(streamId) {
|
|
15
|
+
super(`run stream ${streamId} is closed`);
|
|
16
|
+
this.streamId = streamId;
|
|
17
|
+
this.name = 'StreamClosedError';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=streams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streams.js","sourceRoot":"","sources":["../../src/ports/streams.ts"],"names":[],"mappings":"AAkBA;sEACsE;AACtE,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACnB;IAArB,YAAqB,QAAgB;QACnC,KAAK,CAAC,cAAc,QAAQ,UAAU,CAAC,CAAC;QADrB,aAAQ,GAAR,QAAQ,CAAQ;QAEnC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,oDAAoD;AACpD,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACrB;IAArB,YAAqB,QAAgB;QACnC,KAAK,CAAC,cAAc,QAAQ,YAAY,CAAC,CAAC;QADvB,aAAQ,GAAR,QAAQ,CAAQ;QAEnC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF"}
|
package/dist/pricing.d.ts
CHANGED
|
@@ -25,6 +25,11 @@ export type PriceTable = Record<string, ModelPrice>;
|
|
|
25
25
|
* registry key without its '@variant' suffix. */
|
|
26
26
|
export declare function lookupPrice(prices: PriceTable, model?: string | null, modelId?: string | null): ModelPrice | undefined;
|
|
27
27
|
/** A price-list pricer (§4).
|
|
28
|
+
*
|
|
29
|
+
* A cache rate that is missing (or 0) is taken as not given: those tokens
|
|
30
|
+
* are priced at `inputPerMillion`, and a warning is logged once per model.
|
|
31
|
+
* Cache tokens are never free, and a price list that forgot them must not
|
|
32
|
+
* bill them at 0.
|
|
28
33
|
*
|
|
29
34
|
* A model the table does not know is not priced. Its row is stored with no
|
|
30
35
|
* cost and `UsageTotals.unpriced` counts it, so a missing price shows up as
|
package/dist/pricing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../src/pricing.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,kEAAkE;AAClE,eAAO,MAAM,GAAG,QAAQ,CAAC;AAEzB;;;oBAGoB;AACpB,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;kBAGc;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;uEAGuE;AACvE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEpD;kDACkD;AAClD,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACtB,UAAU,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../src/pricing.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,kEAAkE;AAClE,eAAO,MAAM,GAAG,QAAQ,CAAC;AAEzB;;;oBAGoB;AACpB,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;kBAGc;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;uEAGuE;AACvE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEpD;kDACkD;AAClD,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACtB,UAAU,GAAG,SAAS,CAMxB;AAWD;;;;;;;;;sDASsD;AACtD,wBAAgB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM,CA2BxE;AAED;;;YAGY;AACZ,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,IAAI,CAAC;AAE7E;;;;yBAIyB;AACzB,wBAAgB,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM,CAW3E;AAED;;;;;;;;;;0BAU0B;AAC1B,wBAAgB,KAAK,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAiBnE;AAED;kEACkE;AAClE,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM,CAEpE;AAED,sEAAsE;AACtE,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,KAAG,MAAwC,CAAC;AAEjF,2EAA2E;AAC3E,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,KAAG,MAAuB,CAAC;AAE3D;qBACqB;AACrB,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,EAAE,WAAU,MAAY,KAAG,MACpB,CAAC"}
|
package/dist/pricing.js
CHANGED
|
@@ -3,14 +3,27 @@ export const USD = 'USD';
|
|
|
3
3
|
/** Find a model's price, trying the registry key, the wire id, then the
|
|
4
4
|
* registry key without its '@variant' suffix. */
|
|
5
5
|
export function lookupPrice(prices, model, modelId) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return prices[modelId];
|
|
6
|
+
// Own keys only: a model named 'constructor' or 'toString' must not find
|
|
7
|
+
// something off the object's prototype.
|
|
8
|
+
const own = (k) => (k && Object.hasOwn(prices, k) ? prices[k] : undefined);
|
|
10
9
|
const base = model?.split('@')[0];
|
|
11
|
-
return
|
|
10
|
+
return own(model) ?? own(modelId) ?? (base !== model ? own(base) : undefined);
|
|
11
|
+
}
|
|
12
|
+
/** Warned once per model and rate, so a price list missing a cache rate says
|
|
13
|
+
* so without filling the log. */
|
|
14
|
+
const warned = new Set();
|
|
15
|
+
function warnOnce(key, msg, model) {
|
|
16
|
+
if (warned.has(key))
|
|
17
|
+
return;
|
|
18
|
+
warned.add(key);
|
|
19
|
+
console.warn(msg, { model });
|
|
12
20
|
}
|
|
13
21
|
/** A price-list pricer (§4).
|
|
22
|
+
*
|
|
23
|
+
* A cache rate that is missing (or 0) is taken as not given: those tokens
|
|
24
|
+
* are priced at `inputPerMillion`, and a warning is logged once per model.
|
|
25
|
+
* Cache tokens are never free, and a price list that forgot them must not
|
|
26
|
+
* bill them at 0.
|
|
14
27
|
*
|
|
15
28
|
* A model the table does not know is not priced. Its row is stored with no
|
|
16
29
|
* cost and `UsageTotals.unpriced` counts it, so a missing price shows up as
|
|
@@ -24,9 +37,19 @@ export function table(prices, currency = USD) {
|
|
|
24
37
|
// tokens / 1_000_000 × pricePerMillion is the cost in currency units,
|
|
25
38
|
// and micros is that × 1_000_000. The two cancel: tokens ×
|
|
26
39
|
// pricePerMillion IS the micro-unit cost, with no scaling in between.
|
|
40
|
+
let cacheRead = p.cacheReadPerMillion ?? 0;
|
|
41
|
+
let cacheWrite = p.cacheWritePerMillion ?? 0;
|
|
42
|
+
if (!cacheRead && u.cacheReadInputTokens > 0) {
|
|
43
|
+
cacheRead = p.inputPerMillion ?? 0;
|
|
44
|
+
warnOnce(`${u.model}\u0000read`, 'price table has no cache read rate; cache reads priced as input', u.model);
|
|
45
|
+
}
|
|
46
|
+
if (!cacheWrite && u.cacheWriteInputTokens > 0) {
|
|
47
|
+
cacheWrite = p.inputPerMillion ?? 0;
|
|
48
|
+
warnOnce(`${u.model}\u0000write`, 'price table has no cache write rate; cache writes priced as input', u.model);
|
|
49
|
+
}
|
|
27
50
|
const micros = u.inputTokens * (p.inputPerMillion ?? 0) +
|
|
28
|
-
u.cacheReadInputTokens *
|
|
29
|
-
u.cacheWriteInputTokens *
|
|
51
|
+
u.cacheReadInputTokens * cacheRead +
|
|
52
|
+
u.cacheWriteInputTokens * cacheWrite +
|
|
30
53
|
u.outputTokens * (p.outputPerMillion ?? 0) +
|
|
31
54
|
u.reasoningTokens * (p.reasoningPerMillion ?? 0);
|
|
32
55
|
return { micros: Math.round(micros), currency, source: 'table' };
|
|
@@ -44,9 +67,11 @@ export function receipt(read, currency = USD) {
|
|
|
44
67
|
if (!u.providerMetadata)
|
|
45
68
|
return null;
|
|
46
69
|
const micros = read(u.providerMetadata);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
70
|
+
// No receipt, or one that makes no sense (not a number, negative, not
|
|
71
|
+
// finite): not believed, and the call is left for the next pricer.
|
|
72
|
+
if (typeof micros !== 'number' || !Number.isFinite(micros) || micros < 0)
|
|
73
|
+
return null;
|
|
74
|
+
return { micros: Math.round(micros), currency, source: 'receipt' };
|
|
50
75
|
},
|
|
51
76
|
};
|
|
52
77
|
}
|
package/dist/pricing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../src/pricing.ts"],"names":[],"mappings":"AAgBA,kEAAkE;AAClE,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC;AAwBzB;kDACkD;AAClD,MAAM,UAAU,WAAW,CACzB,MAAkB,EAClB,KAAqB,EACrB,OAAuB;IAEvB,
|
|
1
|
+
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../src/pricing.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { AgentCore, RuntimeOptions } from './ports/runtime.js';
|
|
2
|
+
/** A job named an agent this process does not have. Thrown, not answered, so
|
|
3
|
+
* a queue that retries on failure keeps the job. */
|
|
4
|
+
export declare class UnknownAgentError extends Error {
|
|
5
|
+
readonly agent?: string | undefined;
|
|
6
|
+
constructor(agent?: string | undefined);
|
|
7
|
+
}
|
|
2
8
|
/** Bind the ports to the core behaviors (§3.3). This is the package's public
|
|
3
9
|
* entry point — the only place where anything is wired together. */
|
|
4
10
|
export declare function setupAgentCore(opts: RuntimeOptions): Promise<AgentCore>;
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,SAAS,EAMT,cAAc,EAGf,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,SAAS,EAMT,cAAc,EAGf,MAAM,oBAAoB,CAAC;AAuB5B;qDACqD;AACrD,qBAAa,iBAAkB,SAAQ,KAAK;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM;gBAAd,KAAK,CAAC,EAAE,MAAM,YAAA;CAIpC;AA0BD;qEACqE;AACrE,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAgQ7E"}
|
package/dist/runtime.js
CHANGED
|
@@ -1,14 +1,51 @@
|
|
|
1
1
|
import { resolveConfig } from './core/types.js';
|
|
2
|
+
import { settleLate } from './core/settle.js';
|
|
3
|
+
import { failLostRun } from './core/engine.js';
|
|
2
4
|
import { contextUsage } from './core/context.js';
|
|
3
5
|
import { createGenerateTextAgent, createStreamTextAgent } from './core/agent.js';
|
|
4
6
|
import * as adminReads from './core/admin.js';
|
|
5
7
|
import { bindStorage } from './core/state.js';
|
|
6
|
-
import {
|
|
8
|
+
import { threadSnapshot } from './core/snapshot.js';
|
|
9
|
+
import { pruneEvents } from './core/prune.js';
|
|
10
|
+
import { MemoryRunStreams } from './adapters/memory.js';
|
|
11
|
+
import { currentRunId } from './core/keys.js';
|
|
12
|
+
import { followEvents, followThread, parseCursor, toFollowSse } from './core/follow.js';
|
|
7
13
|
import { openDefaultAdminStore } from './admin/default.js';
|
|
8
14
|
import { reclaimIfOrphaned } from './core/reclaim.js';
|
|
9
15
|
import { respond } from './core/hitl.js';
|
|
10
16
|
import { deleteThread } from './core/deleteThread.js';
|
|
11
|
-
import { publishEvent } from './core/publish.js';
|
|
17
|
+
import { publishEvent, ACTIVE_STATES } from './core/publish.js';
|
|
18
|
+
/** A job named an agent this process does not have. Thrown, not answered, so
|
|
19
|
+
* a queue that retries on failure keeps the job. */
|
|
20
|
+
export class UnknownAgentError extends Error {
|
|
21
|
+
agent;
|
|
22
|
+
constructor(agent) {
|
|
23
|
+
super(`no agent registered for this job: ${JSON.stringify(agent ?? '')}`);
|
|
24
|
+
this.agent = agent;
|
|
25
|
+
this.name = 'UnknownAgentError';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/** The cursor a follow starts from: a ThreadCursor or its wire string, or a
|
|
29
|
+
* bare record seq (`since`) as older clients send. */
|
|
30
|
+
function cursorOf(options) {
|
|
31
|
+
if (typeof options.cursor === 'string')
|
|
32
|
+
return parseCursor(options.cursor);
|
|
33
|
+
if (options.cursor)
|
|
34
|
+
return options.cursor;
|
|
35
|
+
return options.since !== undefined ? { seq: options.since } : null;
|
|
36
|
+
}
|
|
37
|
+
let warnedInMemory = false;
|
|
38
|
+
/** The run streams when none were passed: in memory, which only this
|
|
39
|
+
* process can read. Said once, loudly, since a web server and a worker in
|
|
40
|
+
* separate processes would each see only their own. */
|
|
41
|
+
function inMemoryStreams(log) {
|
|
42
|
+
if (!warnedInMemory) {
|
|
43
|
+
warnedInMemory = true;
|
|
44
|
+
(log ?? console).warn?.('agentenkit: no `streams` port was passed, so run streams are kept in memory and only this process can ' +
|
|
45
|
+
'read them. Pass one (RedisRunStreams, a Postgres or SQL store) when web servers and workers run apart.');
|
|
46
|
+
}
|
|
47
|
+
return new MemoryRunStreams();
|
|
48
|
+
}
|
|
12
49
|
/** Bind the ports to the core behaviors (§3.3). This is the package's public
|
|
13
50
|
* entry point — the only place where anything is wired together. */
|
|
14
51
|
export async function setupAgentCore(opts) {
|
|
@@ -26,6 +63,7 @@ export async function setupAgentCore(opts) {
|
|
|
26
63
|
bus: opts.bus,
|
|
27
64
|
queue: opts.queue,
|
|
28
65
|
kv: opts.kv,
|
|
66
|
+
streams: opts.streams ?? inMemoryStreams(opts.log),
|
|
29
67
|
resolveModel: (modelName) => opts.resolveModel(modelName),
|
|
30
68
|
pricer: opts.pricer,
|
|
31
69
|
log: opts.log,
|
|
@@ -43,16 +81,33 @@ export async function setupAgentCore(opts) {
|
|
|
43
81
|
const deps = scope();
|
|
44
82
|
// Handle registry — keyed by spec.name, resolved by the queue dispatch.
|
|
45
83
|
const registry = new Map();
|
|
84
|
+
// The same agents as the engine sees them: what a stop or the sweep needs
|
|
85
|
+
// to settle a run by the agent name on its record (§5.6).
|
|
86
|
+
const agents = new Map();
|
|
46
87
|
// The first registered stream-text handle is the default for jobs that
|
|
47
88
|
// omit `agent` (§5).
|
|
48
89
|
let defaultAgent = null;
|
|
49
90
|
const register = (name, kind, spec) => {
|
|
50
91
|
const handle = kind === 'stream-text'
|
|
51
|
-
? createStreamTextAgent(scope, spec)
|
|
52
|
-
: createGenerateTextAgent(scope, spec);
|
|
92
|
+
? createStreamTextAgent(scope, spec, agents)
|
|
93
|
+
: createGenerateTextAgent(scope, spec, agents);
|
|
53
94
|
registry.set(name, handle);
|
|
54
95
|
return handle;
|
|
55
96
|
};
|
|
97
|
+
/** Call `fn` for every run the filter matches, a page at a time. */
|
|
98
|
+
const SWEEP_PAGE = 500;
|
|
99
|
+
const eachRun = async (filter, fn) => {
|
|
100
|
+
let before;
|
|
101
|
+
for (;;) {
|
|
102
|
+
const page = await deps.admin.runs.list({ ...filter, ...(before ? { before } : {}), limit: SWEEP_PAGE });
|
|
103
|
+
for (const rec of page)
|
|
104
|
+
await fn(rec);
|
|
105
|
+
if (page.length < SWEEP_PAGE)
|
|
106
|
+
return;
|
|
107
|
+
const last = page[page.length - 1];
|
|
108
|
+
before = { startedAt: last.startedAt, id: last.id };
|
|
109
|
+
}
|
|
110
|
+
};
|
|
56
111
|
const core = {
|
|
57
112
|
resolveModel: (modelName) => deps.resolveModel(modelName),
|
|
58
113
|
// Reads take the run state too (§2.10). A run carries it on its ticket,
|
|
@@ -60,42 +115,7 @@ export async function setupAgentCore(opts) {
|
|
|
60
115
|
// an empty context here and either return nothing or, worse, everything.
|
|
61
116
|
listThreads: (state) => scope(state).storage.threads.list(),
|
|
62
117
|
deleteThread: (threadId, state) => deleteThread(scope(state), threadId),
|
|
63
|
-
getThreadSnapshot: async (threadId, state) =>
|
|
64
|
-
const deps = scope(state);
|
|
65
|
-
const thread = await deps.storage.threads.get(threadId);
|
|
66
|
-
if (!thread)
|
|
67
|
-
return null;
|
|
68
|
-
const messages = await deps.storage.messages.list(threadId, undefined);
|
|
69
|
-
const runs = await deps.admin.runs.listByThread(threadId);
|
|
70
|
-
const events = await deps.storage.events.listSince(threadId, -1);
|
|
71
|
-
const lastEventSeq = events.at(-1)?.seq ?? -1;
|
|
72
|
-
let activeEvents = [];
|
|
73
|
-
if (thread.state === 'RUNNING' || thread.state === 'WAITING_FOR_INPUT') {
|
|
74
|
-
let boundary = -1;
|
|
75
|
-
for (let index = events.length - 1; index >= 0; index -= 1) {
|
|
76
|
-
const event = events[index];
|
|
77
|
-
if (event.type === 'STATE_CHANGE' &&
|
|
78
|
-
event.payload?.state === 'RUNNING') {
|
|
79
|
-
boundary = index;
|
|
80
|
-
break;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
const active = events.slice(Math.max(0, boundary));
|
|
84
|
-
// Everything up to the last committed step is ALREADY in `messages`
|
|
85
|
-
// (§2.2). Replaying those chunks too would render each finished step's
|
|
86
|
-
// text twice — once from the durable message, once from the stream
|
|
87
|
-
// that produced it. Only the in-flight step's chunks are missing from
|
|
88
|
-
// durable history, so only those are transient.
|
|
89
|
-
//
|
|
90
|
-
// Chunks alone: a park (INPUT_REQUIRED) is published DURING the step,
|
|
91
|
-
// before its messages commit, so slicing the whole window by this
|
|
92
|
-
// boundary would drop the very approval a reconnecting client needs.
|
|
93
|
-
const lastCommitted = active.reduce((seq, e) => (e.type === 'STEP_COMMITTED' ? e.seq : seq), -1);
|
|
94
|
-
const isStream = (type) => type === 'CHUNK' || type === 'SUBAGENT_CHUNK';
|
|
95
|
-
activeEvents = active.filter((e) => !(isStream(e.type) && e.seq !== 0 && e.seq <= lastCommitted));
|
|
96
|
-
}
|
|
97
|
-
return { thread, messages, runs, lastEventSeq, activeEvents };
|
|
98
|
-
},
|
|
118
|
+
getThreadSnapshot: async (threadId, state) => threadSnapshot(scope(state), threadId),
|
|
99
119
|
admin: {
|
|
100
120
|
overview: (range) => adminReads.overview(deps, range),
|
|
101
121
|
listRuns: (filter) => adminReads.listRuns(deps, filter),
|
|
@@ -135,12 +155,25 @@ export async function setupAgentCore(opts) {
|
|
|
135
155
|
since: (threadId, sinceSeq, state) => scope(state).storage.events.listSince(threadId, sinceSeq),
|
|
136
156
|
subscribe: async (threadId, handler) => deps.bus.subscribe(threadId, handler),
|
|
137
157
|
// The replay-then-tail dance lives here rather than in every route
|
|
138
|
-
// handler:
|
|
139
|
-
//
|
|
140
|
-
follow: (threadId, options = {}) =>
|
|
141
|
-
sse: (threadId, options = {}) =>
|
|
158
|
+
// handler (§2.2): the record from the cursor, the run stream from its
|
|
159
|
+
// offset, one SNAPSHOT when that stream is gone.
|
|
160
|
+
follow: (threadId, options = {}) => followThread(scope(options.state), threadId, { ...options, cursor: cursorOf(options) }),
|
|
161
|
+
sse: (threadId, options = {}) => {
|
|
162
|
+
const cursor = cursorOf(options);
|
|
163
|
+
return toFollowSse(followThread(scope(options.state), threadId, { ...options, cursor }), cursor, { ...options, threadId });
|
|
164
|
+
},
|
|
165
|
+
followRecord: (threadId, options = {}) => followEvents(scope(options.state), threadId, options),
|
|
142
166
|
publishEvent: (threadId, type, payload, options = {}) => publishEvent(scope(options.state), threadId, type, payload, options),
|
|
143
167
|
},
|
|
168
|
+
pruneEvents: (options) => pruneEvents(deps, options),
|
|
169
|
+
streams: {
|
|
170
|
+
read: (streamId, after, signal) => {
|
|
171
|
+
if (!deps.streams)
|
|
172
|
+
throw new Error('this runtime has no run streams');
|
|
173
|
+
return deps.streams.read(streamId, after, signal);
|
|
174
|
+
},
|
|
175
|
+
snapshot: async (streamId, after) => (deps.streams ? deps.streams.snapshot(streamId, after) : null),
|
|
176
|
+
},
|
|
144
177
|
createStreamTextAgent: (spec) => {
|
|
145
178
|
const handle = register(spec.name, 'stream-text', spec);
|
|
146
179
|
if (defaultAgent === null)
|
|
@@ -149,13 +182,50 @@ export async function setupAgentCore(opts) {
|
|
|
149
182
|
},
|
|
150
183
|
createGenerateTextAgent: (spec) => register(spec.name, 'generate-text', spec),
|
|
151
184
|
getAgent: (name) => registry.get(name) ?? null,
|
|
185
|
+
reclaimStuckRuns: async (olderThanMs) => {
|
|
186
|
+
const report = { checked: 0, redispatched: 0, settled: 0, errors: 0 };
|
|
187
|
+
const until = new Date(Date.now() - olderThanMs);
|
|
188
|
+
const log = deps.log ?? console;
|
|
189
|
+
await eachRun({ state: ['QUEUED', 'RUNNING'], until, depth: 0 }, async (rec) => {
|
|
190
|
+
if (rec.endedAt)
|
|
191
|
+
return;
|
|
192
|
+
report.checked++;
|
|
193
|
+
try {
|
|
194
|
+
if (await reclaimIfOrphaned(scope(rec.runState ?? {}, rec.id), rec.threadId))
|
|
195
|
+
report.redispatched++;
|
|
196
|
+
}
|
|
197
|
+
catch (err) {
|
|
198
|
+
report.errors++;
|
|
199
|
+
log.error('stuck run not reclaimed', { threadId: rec.threadId, runId: rec.id, err });
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
await eachRun({ unsettled: true, until, depth: 0 }, async (rec) => {
|
|
203
|
+
if (!rec.endedAt || rec.endedAt > until)
|
|
204
|
+
return;
|
|
205
|
+
report.checked++;
|
|
206
|
+
const agent = agents.get(rec.agent) ?? (defaultAgent ? agents.get(defaultAgent) : undefined);
|
|
207
|
+
if (!agent)
|
|
208
|
+
return;
|
|
209
|
+
try {
|
|
210
|
+
if (await settleLate(scope(rec.runState ?? {}, rec.id), agent, rec.threadId, rec.id))
|
|
211
|
+
report.settled++;
|
|
212
|
+
}
|
|
213
|
+
catch (err) {
|
|
214
|
+
report.errors++;
|
|
215
|
+
log.error('unsettled run not settled', { threadId: rec.threadId, runId: rec.id, err });
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
return report;
|
|
219
|
+
},
|
|
152
220
|
worker: {
|
|
153
|
-
handleJob: async (job) => {
|
|
221
|
+
handleJob: async (job, options = {}) => {
|
|
154
222
|
// Missing `agent` → the default handle (first registered stream-text)
|
|
155
223
|
const agent = (job.agent ? registry.get(job.agent) : null) ??
|
|
156
224
|
(defaultAgent ? registry.get(defaultAgent) : null);
|
|
225
|
+
// An error, not a quiet refusal: a queue that retries on failure keeps
|
|
226
|
+
// the job for a process that has the agent, rather than deleting it.
|
|
157
227
|
if (!agent)
|
|
158
|
-
|
|
228
|
+
throw new UnknownAgentError(job.agent);
|
|
159
229
|
// executeWithPolicy: run lock (idempotent under at-least-once
|
|
160
230
|
// delivery, §3.4) + §2.8 failure policy — redrive < maxAttempts,
|
|
161
231
|
// else finalize FAILED; a user stop is never retried.
|
|
@@ -164,6 +234,7 @@ export async function setupAgentCore(opts) {
|
|
|
164
234
|
// The dispatch's identity (§2.1) — without it the worker cannot tell
|
|
165
235
|
// it has been replaced by a newer run, and a blocked job is dropped.
|
|
166
236
|
runId: job.runId,
|
|
237
|
+
dispatchId: job.dispatchId,
|
|
167
238
|
// Carries the queue wait through to the run record (§2.9).
|
|
168
239
|
enqueuedAt: job.enqueuedAt,
|
|
169
240
|
// Rehydrated from the ticket: this worker never saw the caller (§2.10).
|
|
@@ -172,10 +243,37 @@ export async function setupAgentCore(opts) {
|
|
|
172
243
|
tokenBudget: job.tokenBudget,
|
|
173
244
|
costBudgetMicros: job.costBudgetMicros,
|
|
174
245
|
providerOptions: job.providerOptions,
|
|
246
|
+
maxSteps: job.maxSteps,
|
|
247
|
+
dispatchedAt: job.dispatchedAt,
|
|
248
|
+
partitionKey: job.partitionKey,
|
|
249
|
+
kind: job.kind,
|
|
250
|
+
// A shutdown hands the job back without spending an attempt.
|
|
251
|
+
...(options.signal ? { signal: options.signal } : {}),
|
|
175
252
|
});
|
|
176
253
|
return { accepted: true };
|
|
177
254
|
},
|
|
255
|
+
handleDeadJob: async (job, attempts, cause) => {
|
|
256
|
+
const log = deps.log ?? console;
|
|
257
|
+
const agent = agents.get(job.agent ?? '') ?? (defaultAgent ? agents.get(defaultAgent) : undefined);
|
|
258
|
+
if (!agent) {
|
|
259
|
+
log.error("dead job for an unknown agent; its run cannot be failed", { job, cause: String(cause) });
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
const why = cause instanceof Error ? cause.message : String(cause);
|
|
263
|
+
const reason = `the run's job was dropped by the queue after ${attempts} deliveries: ${why}`;
|
|
264
|
+
try {
|
|
265
|
+
const failed = await failLostRun(scope(job.state ?? {}, job.runId), agent, job.threadId, job.runId, reason);
|
|
266
|
+
if (failed)
|
|
267
|
+
log.error('dead job: run failed', { threadId: job.threadId, runId: job.runId, cause: why });
|
|
268
|
+
else
|
|
269
|
+
(log.warn)?.('dead job: run had already moved on; nothing to fail', { threadId: job.threadId, runId: job.runId });
|
|
270
|
+
}
|
|
271
|
+
catch (err) {
|
|
272
|
+
log.error('dead job: run not failed', { threadId: job.threadId, runId: job.runId, err });
|
|
273
|
+
}
|
|
274
|
+
},
|
|
178
275
|
},
|
|
276
|
+
ports: (state) => scope(state ?? {}),
|
|
179
277
|
};
|
|
180
278
|
return core;
|
|
181
279
|
}
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentenkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Durable runtime for AI agent runs \u2014 a platform-owned loop, queue-dispatched execution that outlives the request, HITL suspension, nested runs, and context compaction. Bring your own storage, queue, bus and kv via four ports.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|