agentenkit 0.3.0 → 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.
Files changed (216) hide show
  1. package/README.md +34 -14
  2. package/dist/adapters/inline.d.ts +19 -5
  3. package/dist/adapters/inline.d.ts.map +1 -1
  4. package/dist/adapters/inline.js +87 -14
  5. package/dist/adapters/inline.js.map +1 -1
  6. package/dist/adapters/memory.d.ts +65 -3
  7. package/dist/adapters/memory.d.ts.map +1 -1
  8. package/dist/adapters/memory.js +267 -3
  9. package/dist/adapters/memory.js.map +1 -1
  10. package/dist/adapters/prisma.d.ts +125 -18
  11. package/dist/adapters/prisma.d.ts.map +1 -1
  12. package/dist/adapters/prisma.js +308 -67
  13. package/dist/adapters/prisma.js.map +1 -1
  14. package/dist/adapters/qstash.d.ts +15 -2
  15. package/dist/adapters/qstash.d.ts.map +1 -1
  16. package/dist/adapters/qstash.js +31 -14
  17. package/dist/adapters/qstash.js.map +1 -1
  18. package/dist/adapters/redis.d.ts +40 -4
  19. package/dist/adapters/redis.d.ts.map +1 -1
  20. package/dist/adapters/redis.js +265 -20
  21. package/dist/adapters/redis.js.map +1 -1
  22. package/dist/adapters/sqlite.d.ts +52 -2
  23. package/dist/adapters/sqlite.d.ts.map +1 -1
  24. package/dist/adapters/sqlite.js +342 -35
  25. package/dist/adapters/sqlite.js.map +1 -1
  26. package/dist/adapters/stream-scripts.d.ts +49 -0
  27. package/dist/adapters/stream-scripts.d.ts.map +1 -0
  28. package/dist/adapters/stream-scripts.js +150 -0
  29. package/dist/adapters/stream-scripts.js.map +1 -0
  30. package/dist/adapters/upstash.d.ts +20 -0
  31. package/dist/adapters/upstash.d.ts.map +1 -1
  32. package/dist/adapters/upstash.js +29 -0
  33. package/dist/adapters/upstash.js.map +1 -1
  34. package/dist/admin/memory.d.ts +11 -1
  35. package/dist/admin/memory.d.ts.map +1 -1
  36. package/dist/admin/memory.js +83 -14
  37. package/dist/admin/memory.js.map +1 -1
  38. package/dist/admin/migrations/postgres/0002-run-settled-at.d.ts +5 -0
  39. package/dist/admin/migrations/postgres/0002-run-settled-at.d.ts.map +1 -0
  40. package/dist/admin/migrations/postgres/0002-run-settled-at.js +11 -0
  41. package/dist/admin/migrations/postgres/0002-run-settled-at.js.map +1 -0
  42. package/dist/admin/migrations/postgres/0003-run-enqueued-at.d.ts +5 -0
  43. package/dist/admin/migrations/postgres/0003-run-enqueued-at.d.ts.map +1 -0
  44. package/dist/admin/migrations/postgres/0003-run-enqueued-at.js +15 -0
  45. package/dist/admin/migrations/postgres/0003-run-enqueued-at.js.map +1 -0
  46. package/dist/admin/migrations/postgres/0004-run-settle-claim.d.ts +5 -0
  47. package/dist/admin/migrations/postgres/0004-run-settle-claim.d.ts.map +1 -0
  48. package/dist/admin/migrations/postgres/0004-run-settle-claim.js +15 -0
  49. package/dist/admin/migrations/postgres/0004-run-settle-claim.js.map +1 -0
  50. package/dist/admin/migrations/postgres/0005-bigint-counters.d.ts +5 -0
  51. package/dist/admin/migrations/postgres/0005-bigint-counters.d.ts.map +1 -0
  52. package/dist/admin/migrations/postgres/0005-bigint-counters.js +12 -0
  53. package/dist/admin/migrations/postgres/0005-bigint-counters.js.map +1 -0
  54. package/dist/admin/migrations/postgres/index.d.ts.map +1 -1
  55. package/dist/admin/migrations/postgres/index.js +16 -1
  56. package/dist/admin/migrations/postgres/index.js.map +1 -1
  57. package/dist/admin/migrations/runner.d.ts +21 -1
  58. package/dist/admin/migrations/runner.d.ts.map +1 -1
  59. package/dist/admin/migrations/runner.js +41 -4
  60. package/dist/admin/migrations/runner.js.map +1 -1
  61. package/dist/admin/migrations/sqlite/0002-run-settled-at.d.ts +5 -0
  62. package/dist/admin/migrations/sqlite/0002-run-settled-at.d.ts.map +1 -0
  63. package/dist/admin/migrations/sqlite/0002-run-settled-at.js +11 -0
  64. package/dist/admin/migrations/sqlite/0002-run-settled-at.js.map +1 -0
  65. package/dist/admin/migrations/sqlite/0003-run-enqueued-at.d.ts +5 -0
  66. package/dist/admin/migrations/sqlite/0003-run-enqueued-at.d.ts.map +1 -0
  67. package/dist/admin/migrations/sqlite/0003-run-enqueued-at.js +15 -0
  68. package/dist/admin/migrations/sqlite/0003-run-enqueued-at.js.map +1 -0
  69. package/dist/admin/migrations/sqlite/0004-run-settle-claim.d.ts +5 -0
  70. package/dist/admin/migrations/sqlite/0004-run-settle-claim.d.ts.map +1 -0
  71. package/dist/admin/migrations/sqlite/0004-run-settle-claim.js +15 -0
  72. package/dist/admin/migrations/sqlite/0004-run-settle-claim.js.map +1 -0
  73. package/dist/admin/migrations/sqlite/index.d.ts +2 -2
  74. package/dist/admin/migrations/sqlite/index.d.ts.map +1 -1
  75. package/dist/admin/migrations/sqlite/index.js +17 -3
  76. package/dist/admin/migrations/sqlite/index.js.map +1 -1
  77. package/dist/admin/postgres.d.ts +14 -4
  78. package/dist/admin/postgres.d.ts.map +1 -1
  79. package/dist/admin/postgres.js +131 -36
  80. package/dist/admin/postgres.js.map +1 -1
  81. package/dist/admin/shared.d.ts +19 -0
  82. package/dist/admin/shared.d.ts.map +1 -0
  83. package/dist/admin/shared.js +28 -0
  84. package/dist/admin/shared.js.map +1 -0
  85. package/dist/admin/sqlite.d.ts +9 -1
  86. package/dist/admin/sqlite.d.ts.map +1 -1
  87. package/dist/admin/sqlite.js +112 -29
  88. package/dist/admin/sqlite.js.map +1 -1
  89. package/dist/core/admin.d.ts +28 -6
  90. package/dist/core/admin.d.ts.map +1 -1
  91. package/dist/core/admin.js +92 -23
  92. package/dist/core/admin.js.map +1 -1
  93. package/dist/core/agent.d.ts +7 -4
  94. package/dist/core/agent.d.ts.map +1 -1
  95. package/dist/core/agent.js +15 -11
  96. package/dist/core/agent.js.map +1 -1
  97. package/dist/core/agui.d.ts +17 -0
  98. package/dist/core/agui.d.ts.map +1 -0
  99. package/dist/core/agui.js +69 -0
  100. package/dist/core/agui.js.map +1 -0
  101. package/dist/core/context.d.ts +13 -1
  102. package/dist/core/context.d.ts.map +1 -1
  103. package/dist/core/context.js +70 -19
  104. package/dist/core/context.js.map +1 -1
  105. package/dist/core/deleteThread.d.ts.map +1 -1
  106. package/dist/core/deleteThread.js +33 -4
  107. package/dist/core/deleteThread.js.map +1 -1
  108. package/dist/core/engine.d.ts +41 -11
  109. package/dist/core/engine.d.ts.map +1 -1
  110. package/dist/core/engine.js +855 -352
  111. package/dist/core/engine.js.map +1 -1
  112. package/dist/core/follow.d.ts +63 -1
  113. package/dist/core/follow.d.ts.map +1 -1
  114. package/dist/core/follow.js +293 -16
  115. package/dist/core/follow.js.map +1 -1
  116. package/dist/core/hitl.d.ts +43 -0
  117. package/dist/core/hitl.d.ts.map +1 -1
  118. package/dist/core/hitl.js +163 -35
  119. package/dist/core/hitl.js.map +1 -1
  120. package/dist/core/keys.d.ts +22 -4
  121. package/dist/core/keys.d.ts.map +1 -1
  122. package/dist/core/keys.js +23 -5
  123. package/dist/core/keys.js.map +1 -1
  124. package/dist/core/lease.d.ts +46 -0
  125. package/dist/core/lease.d.ts.map +1 -0
  126. package/dist/core/lease.js +142 -0
  127. package/dist/core/lease.js.map +1 -0
  128. package/dist/core/loop.d.ts +27 -7
  129. package/dist/core/loop.d.ts.map +1 -1
  130. package/dist/core/loop.js +140 -55
  131. package/dist/core/loop.js.map +1 -1
  132. package/dist/core/messages.d.ts +21 -2
  133. package/dist/core/messages.d.ts.map +1 -1
  134. package/dist/core/messages.js +61 -2
  135. package/dist/core/messages.js.map +1 -1
  136. package/dist/core/prune.d.ts +24 -0
  137. package/dist/core/prune.d.ts.map +1 -0
  138. package/dist/core/prune.js +43 -0
  139. package/dist/core/prune.js.map +1 -0
  140. package/dist/core/publish.d.ts +38 -10
  141. package/dist/core/publish.d.ts.map +1 -1
  142. package/dist/core/publish.js +126 -12
  143. package/dist/core/publish.js.map +1 -1
  144. package/dist/core/reclaim.d.ts +8 -1
  145. package/dist/core/reclaim.d.ts.map +1 -1
  146. package/dist/core/reclaim.js +149 -18
  147. package/dist/core/reclaim.js.map +1 -1
  148. package/dist/core/run.d.ts +7 -3
  149. package/dist/core/run.d.ts.map +1 -1
  150. package/dist/core/run.js +95 -35
  151. package/dist/core/run.js.map +1 -1
  152. package/dist/core/segment.d.ts +62 -0
  153. package/dist/core/segment.d.ts.map +1 -0
  154. package/dist/core/segment.js +318 -0
  155. package/dist/core/segment.js.map +1 -0
  156. package/dist/core/settle.d.ts +57 -0
  157. package/dist/core/settle.d.ts.map +1 -0
  158. package/dist/core/settle.js +181 -0
  159. package/dist/core/settle.js.map +1 -0
  160. package/dist/core/snapshot.d.ts +36 -0
  161. package/dist/core/snapshot.d.ts.map +1 -0
  162. package/dist/core/snapshot.js +87 -0
  163. package/dist/core/snapshot.js.map +1 -0
  164. package/dist/core/stop.d.ts +16 -1
  165. package/dist/core/stop.d.ts.map +1 -1
  166. package/dist/core/stop.js +69 -15
  167. package/dist/core/stop.js.map +1 -1
  168. package/dist/core/stream-events.d.ts +184 -0
  169. package/dist/core/stream-events.d.ts.map +1 -0
  170. package/dist/core/stream-events.js +26 -0
  171. package/dist/core/stream-events.js.map +1 -0
  172. package/dist/core/stream.d.ts +29 -0
  173. package/dist/core/stream.d.ts.map +1 -1
  174. package/dist/core/stream.js +79 -0
  175. package/dist/core/stream.js.map +1 -1
  176. package/dist/core/subagent.d.ts +36 -5
  177. package/dist/core/subagent.d.ts.map +1 -1
  178. package/dist/core/subagent.js +117 -22
  179. package/dist/core/subagent.js.map +1 -1
  180. package/dist/core/types.d.ts +195 -12
  181. package/dist/core/types.d.ts.map +1 -1
  182. package/dist/core/types.js +26 -1
  183. package/dist/core/types.js.map +1 -1
  184. package/dist/core/usage.d.ts +53 -5
  185. package/dist/core/usage.d.ts.map +1 -1
  186. package/dist/core/usage.js +170 -47
  187. package/dist/core/usage.js.map +1 -1
  188. package/dist/index.d.ts +16 -11
  189. package/dist/index.d.ts.map +1 -1
  190. package/dist/index.js +12 -7
  191. package/dist/index.js.map +1 -1
  192. package/dist/ports/admin.d.ts +59 -0
  193. package/dist/ports/admin.d.ts.map +1 -1
  194. package/dist/ports/kv.d.ts +17 -0
  195. package/dist/ports/kv.d.ts.map +1 -1
  196. package/dist/ports/queue.d.ts +87 -7
  197. package/dist/ports/queue.d.ts.map +1 -1
  198. package/dist/ports/queue.js +36 -1
  199. package/dist/ports/queue.js.map +1 -1
  200. package/dist/ports/runtime.d.ts +171 -20
  201. package/dist/ports/runtime.d.ts.map +1 -1
  202. package/dist/ports/storage.d.ts +26 -5
  203. package/dist/ports/storage.d.ts.map +1 -1
  204. package/dist/ports/streams.d.ts +60 -0
  205. package/dist/ports/streams.d.ts.map +1 -0
  206. package/dist/ports/streams.js +20 -0
  207. package/dist/ports/streams.js.map +1 -0
  208. package/dist/pricing.d.ts +5 -0
  209. package/dist/pricing.d.ts.map +1 -1
  210. package/dist/pricing.js +35 -10
  211. package/dist/pricing.js.map +1 -1
  212. package/dist/runtime.d.ts +6 -0
  213. package/dist/runtime.d.ts.map +1 -1
  214. package/dist/runtime.js +144 -46
  215. package/dist/runtime.js.map +1 -1
  216. 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
@@ -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,CAKxB;AAED;;;;sDAIsD;AACtD,wBAAgB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM,CAiBxE;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,CAU3E;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"}
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
- if (model && prices[model])
7
- return prices[model];
8
- if (modelId && prices[modelId])
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 base && base !== model ? prices[base] : undefined;
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 * (p.cacheReadPerMillion ?? 0) +
29
- u.cacheWriteInputTokens * (p.cacheWritePerMillion ?? 0) +
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
- return micros === null || micros === undefined
48
- ? null
49
- : { micros, currency, source: 'receipt' };
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../src/pricing.ts"],"names":[],"mappings":"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"}
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>;
@@ -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;AAa5B;qEACqE;AACrE,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAkN7E"}
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 { followEvents, toSseStream } from './core/follow.js';
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: subscribe first, never emit at or below the cursor, and let a
139
- // seq-0 notice through without moving it (§2.2).
140
- follow: (threadId, options = {}) => followEvents(scope(options.state), threadId, options),
141
- sse: (threadId, options = {}) => toSseStream(followEvents(scope(options.state), threadId, options), 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
- return { accepted: false, reason: 'unknown-agent' };
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
  }
@@ -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.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": {