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.
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 +197 -11
  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
@@ -1,18 +1,98 @@
1
1
  import type { RunJob } from '../core/types.js';
2
+ /** The priority of the platform's own housekeeping: park expiries, reclaims
3
+ * and lock redrives. A user's message is never queued behind them. */
4
+ export declare const PRIORITY_LOW = -10;
5
+ /** `enqueue` refused a fresh dispatch: a depth cap is set and the queue has
6
+ * reached it. Only a fresh dispatch is ever refused; retries, redrives,
7
+ * resumes and expiries always go in, or a run already under way would be
8
+ * stranded. */
9
+ export declare class QueueFullError extends Error {
10
+ constructor(message?: string);
11
+ }
12
+ /** A job whose encoded payload is over the adapter's cap. */
13
+ export declare class PayloadTooLargeError extends Error {
14
+ constructor(message?: string);
15
+ }
16
+ /** An enqueue whose `key` is already waiting or running. */
17
+ export declare class DuplicateJobError extends Error {
18
+ constructor(key: string);
19
+ }
20
+ /** An adapter's answer to an operation it cannot do, such as counting on a
21
+ * queue with no read side. Callers treat it as "unknown", never as a
22
+ * failure. */
23
+ export declare class UnsupportedError extends Error {
24
+ constructor(what: string);
25
+ }
2
26
  export interface EnqueueOptions {
3
27
  /** Hold the job for this many seconds before delivering it: the HITL expiry
4
- * (§2.5) and a job blocked by an older run's lock (§2.8).
28
+ * (§2.5), a job blocked by an older run's lock (§2.8) and a failed run's
29
+ * retry backoff.
5
30
  *
6
- * An adapter that cannot delay may deliver immediately — both callers treat
7
- * an early arrival as a no-op — but it must NOT throw, or a park would fail
8
- * the run that scheduled it. Note the shape of the reference adapter: QStash
9
- * supports delays on publish only and rejects them on queue enqueue, so
10
- * QStashQueue publishes delayed jobs and queues the rest. */
31
+ * An adapter that cannot delay may deliver immediately — every caller
32
+ * treats an early arrival as a no-op — but it must NOT throw, or a park
33
+ * would fail the run that scheduled it. Note the shape of the reference
34
+ * adapter: QStash supports delays on publish only and rejects them on
35
+ * queue enqueue, so QStashQueue publishes delayed jobs and queues the
36
+ * rest. */
11
37
  delaySeconds?: number;
38
+ /** Dedupes. At most one live job per key: a second enqueue with the same
39
+ * key is refused with `DuplicateJobError`, and `cancel` drops the waiting
40
+ * job for a key. Omitted means no dedupe. */
41
+ key?: string;
42
+ /** Orders ready jobs: higher first, then oldest first. 0 is a normal
43
+ * dispatch; the platform's housekeeping uses `PRIORITY_LOW`. */
44
+ priority?: number;
45
+ }
46
+ /** What a queue can say about itself. */
47
+ export interface QueueStats {
48
+ /** Jobs a worker could take right now. */
49
+ ready: number;
50
+ /** Jobs held for a future run time: park expiries, retry backoffs. Not
51
+ * backlog. */
52
+ delayed: number;
53
+ /** Jobs a worker holds. */
54
+ inFlight: number;
55
+ /** Jobs the queue gave up on and kept for an operator. */
56
+ dead: number;
57
+ /** How long the oldest ready job has been waiting: the number that says a
58
+ * queue is stuck rather than merely busy. */
59
+ oldestReadyMs: number;
60
+ /** True while the consumer is told not to claim. */
61
+ paused: boolean;
62
+ /** When this process last took a job. */
63
+ lastClaimAt?: Date;
64
+ /** How many claims in a row have failed in this process. */
65
+ claimErrors: number;
66
+ }
67
+ /** One job as the queue sees it, for a host that asks where a run's job is. */
68
+ export interface QueuedJob {
69
+ id: string;
70
+ runId: string;
71
+ threadId: string;
72
+ kind: RunJob['kind'];
73
+ attempts: number;
74
+ runAt: Date;
75
+ lockedUntil?: Date;
76
+ /** How many ready jobs are ahead of it; -1 when the adapter cannot say. */
77
+ position: number;
12
78
  }
13
79
  /** Durable dispatch port (§2.8). Delivery is at-least-once — the engine's
14
- * state guard + Storage.threads.claimState make double dispatch a no-op. */
80
+ * state guard and the run lock make double dispatch a no-op.
81
+ *
82
+ * Beside `enqueue` the port carries the little an engine and a host need to
83
+ * see the queue: a way to withdraw a job by key, a way to find a run's job,
84
+ * and counts. An adapter with no read side throws `UnsupportedError` from
85
+ * `find` and `stats`; callers treat that as "unknown", never as a failure. */
15
86
  export interface Queue {
16
87
  enqueue(job: RunJob, opts?: EnqueueOptions): Promise<void>;
88
+ /** Drop every waiting job enqueued under `key`. A key nothing is waiting
89
+ * under is not an error. Best-effort by contract: a delivered job is a
90
+ * correct no-op anyway. */
91
+ cancel(key: string): Promise<void>;
92
+ /** The earliest waiting or running job for a run, or null when the queue
93
+ * holds none. */
94
+ find(runId: string): Promise<QueuedJob | null>;
95
+ /** Count what waits, runs and died. */
96
+ stats(): Promise<QueueStats>;
17
97
  }
18
98
  //# sourceMappingURL=queue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/ports/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B;;;;;;;kEAO8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;6EAC6E;AAC7E,MAAM,WAAW,KAAK;IACpB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D"}
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/ports/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C;uEACuE;AACvE,eAAO,MAAM,YAAY,MAAM,CAAC;AAEhC;;;gBAGgB;AAChB,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,SAAkB;CAItC;AAED,6DAA6D;AAC7D,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,SAA0B;CAI9C;AAED,4DAA4D;AAC5D,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,GAAG,EAAE,MAAM;CAIxB;AAED;;eAEe;AACf,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,IAAI,EAAE,MAAM;CAIzB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;gBASY;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;kDAE8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;qEACiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd;mBACe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb;kDAC8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,MAAM,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,+EAA+E;AAC/E,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,IAAI,CAAC;IACZ,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;+EAM+E;AAC/E,MAAM,WAAW,KAAK;IACpB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D;;gCAE4B;IAC5B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC;sBACkB;IAClB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC/C,uCAAuC;IACvC,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;CAC9B"}
@@ -1,2 +1,37 @@
1
- export {};
1
+ /** The priority of the platform's own housekeeping: park expiries, reclaims
2
+ * and lock redrives. A user's message is never queued behind them. */
3
+ export const PRIORITY_LOW = -10;
4
+ /** `enqueue` refused a fresh dispatch: a depth cap is set and the queue has
5
+ * reached it. Only a fresh dispatch is ever refused; retries, redrives,
6
+ * resumes and expiries always go in, or a run already under way would be
7
+ * stranded. */
8
+ export class QueueFullError extends Error {
9
+ constructor(message = 'queue is full') {
10
+ super(message);
11
+ this.name = 'QueueFullError';
12
+ }
13
+ }
14
+ /** A job whose encoded payload is over the adapter's cap. */
15
+ export class PayloadTooLargeError extends Error {
16
+ constructor(message = 'job payload too large') {
17
+ super(message);
18
+ this.name = 'PayloadTooLargeError';
19
+ }
20
+ }
21
+ /** An enqueue whose `key` is already waiting or running. */
22
+ export class DuplicateJobError extends Error {
23
+ constructor(key) {
24
+ super(`a job with this key is already queued: ${key}`);
25
+ this.name = 'DuplicateJobError';
26
+ }
27
+ }
28
+ /** An adapter's answer to an operation it cannot do, such as counting on a
29
+ * queue with no read side. Callers treat it as "unknown", never as a
30
+ * failure. */
31
+ export class UnsupportedError extends Error {
32
+ constructor(what) {
33
+ super(`not supported by this adapter: ${what}`);
34
+ this.name = 'UnsupportedError';
35
+ }
36
+ }
2
37
  //# sourceMappingURL=queue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/ports/queue.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/ports/queue.ts"],"names":[],"mappings":"AAEA;uEACuE;AACvE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,CAAC;AAEhC;;;gBAGgB;AAChB,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAO,GAAG,eAAe;QACnC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,6DAA6D;AAC7D,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAO,GAAG,uBAAuB;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,4DAA4D;AAC5D,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,GAAW;QACrB,KAAK,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;eAEe;AACf,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,IAAY;QACtB,KAAK,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF"}
@@ -4,13 +4,19 @@ import type { TokenAttribution } from '../core/usage.js';
4
4
  import type { Storage } from './storage.js';
5
5
  import type { AdminStore, RunFilter, StepRecord } from './admin.js';
6
6
  import type { AgentRunState, BoundStorage } from '../core/state.js';
7
- import type { FollowOptions, SseOptions, SseStream } from '../core/follow.js';
7
+ import type { FollowFrame, FollowOptions, FollowThreadOptions, SseStream, ThreadCursor } from '../core/follow.js';
8
+ import type { StreamItem } from '../core/stream-events.js';
9
+ import type { StreamSnapshot } from './streams.js';
8
10
  import type { PublishEventOptions } from '../core/publish.js';
11
+ import type { SnapshotStream } from '../core/snapshot.js';
12
+ import type { PruneOptions, PruneReport } from '../core/prune.js';
13
+ import type { WireFormat } from '../core/agui.js';
9
14
  export type { AdminStore, NewStepRecord, RunFilter, StepRecord } from './admin.js';
10
15
  export type { AgentRunState, BoundStorage, StorageContext } from '../core/state.js';
11
16
  import type { EventBus } from './bus.js';
12
17
  import type { Queue } from './queue.js';
13
18
  import type { Kv } from './kv.js';
19
+ import type { RunStreams } from './streams.js';
14
20
  import type { ExecuteInput, ExecuteOutcome } from '../core/engine.js';
15
21
  import type { AdminOverview, RunDetail, RunStats, ThreadDetail, ThreadSummary } from '../core/admin.js';
16
22
  export type { AdminOverview, RunDetail, RunStats, } from '../core/admin.js';
@@ -28,6 +34,8 @@ export interface RuntimePorts {
28
34
  bus: EventBus;
29
35
  queue: Queue;
30
36
  kv: Kv;
37
+ /** Run streams, one per segment; absent, none are written. */
38
+ streams?: RunStreams;
31
39
  /** User-provided model resolution (§3.3): models can live in any shape on
32
40
  * the consumer side — the platform only ever sees `ResolvedModel`. */
33
41
  resolveModel(modelName: string): ResolvedModel;
@@ -65,6 +73,10 @@ export interface RuntimeOptions {
65
73
  bus: EventBus;
66
74
  queue: Queue;
67
75
  kv: Kv;
76
+ /** Short-lived logs, one per run segment: where a run's live events go.
77
+ * Omitted, they are kept in memory, which only this process can read —
78
+ * fine for one process, not for web servers and workers that run apart. */
79
+ streams?: RunStreams;
68
80
  /** Models can come in any shape — config files, a database, provider SDKs.
69
81
  * The platform only ever sees the resolved `ResolvedModel`. */
70
82
  resolveModel(modelName: string): ResolvedModel;
@@ -107,10 +119,40 @@ export interface RunInput {
107
119
  * from the AI SDK (§3.1). Merged over the spec default: the execute
108
120
  * input wins per provider namespace. */
109
121
  providerOptions?: ProviderOptions;
122
+ /** Name the run yourself (§2.1): your own records can be keyed by it
123
+ * before dispatch, and the worker sees the same id. Reusing one is
124
+ * refused, never silently re-run. */
125
+ runId?: string;
126
+ /** Cap this run's round trips below the config's `maxSteps`; a larger
127
+ * value is clamped to it. */
128
+ maxSteps?: number;
129
+ /** Images the user sent with the prompt. They are stored as image parts on
130
+ * the user message and reach the model natively. */
131
+ attachments?: Attachment[];
132
+ /** The caller's tenant, written on the dispatch ticket so a queue that
133
+ * spreads its claims across partitions can keep one tenant's backlog from
134
+ * starving the others. Opaque to the platform. */
135
+ partitionKey?: string;
136
+ /** The sending client's own name for the user turn. It comes back on the
137
+ * turn's MESSAGE_APPENDED, so the client that sent it can swap its
138
+ * optimistic copy for the real one by id, never by matching text. Opaque
139
+ * to the platform, and not stored. */
140
+ clientMessageId?: string;
141
+ }
142
+ /** An image on a user turn: a URL the provider can fetch, or a data: URL. */
143
+ export interface Attachment {
144
+ url: string;
145
+ mediaType?: string;
110
146
  }
147
+ /** Why a run was refused, for a host that answers differently to each:
148
+ * `active_run` (the thread already has one), `queue_full` (try again
149
+ * shortly), `billing` (the billing check said no). */
150
+ export type RefusedReason = 'active_run' | 'queue_full' | 'billing';
111
151
  export interface RunResult {
112
152
  accepted: boolean;
113
153
  threadId: string;
154
+ /** For the refusals a host acts on. */
155
+ reason?: RefusedReason;
114
156
  /** This run's id (§2.1) — the same one carried by the enqueued job. An
115
157
  * in-process worker must pass it back, or its dispatch has no identity. */
116
158
  runId?: string;
@@ -148,12 +190,16 @@ export interface ThreadUsage {
148
190
  /** The model the budget was measured against. */
149
191
  model: string;
150
192
  }
151
- /** What the platform hands a spec's `onFinish` once the run is finalized. */
193
+ /** What the platform hands a spec's `onSettle` and `onFinish`. */
152
194
  export interface RunFinishInfo {
153
195
  threadId: string;
154
196
  runId?: string;
155
197
  state: ExecutionState;
156
198
  stopReason: string;
199
+ /** A user stop (§2.1). */
200
+ cancelled: boolean;
201
+ /** Why the run failed, when it did. */
202
+ error?: string;
157
203
  tokensUsed: number;
158
204
  /** The tokens THIS segment spent. A run that parked and resumed finishes
159
205
  * once, so this is the last segment, not the whole run — and it is tokens
@@ -167,8 +213,40 @@ export interface RunFinishInfo {
167
213
  * `unpriced` above zero means some calls went unpriced and `costMicros` is
168
214
  * a floor. */
169
215
  usage: UsageTotals;
216
+ /** Set when the platform could not read the run's rows back. `usage` is
217
+ * then zeroed, and a hook that bills from it should refuse to settle
218
+ * rather than charge nothing: throw from `onSettle` and the run fails
219
+ * instead of going free. */
220
+ usageError?: unknown;
170
221
  }
222
+ /** A spec's settle hook (§5.6): where a run is charged. It runs once per run,
223
+ * whatever way the run ends — completed, stopped (while running, queued or
224
+ * parked), failed, or found later by the late-settle sweep — before the
225
+ * terminal state is written when a worker ends the run. A throw fails a run
226
+ * that was going to complete, and leaves the run unsettled so a later
227
+ * settle runs it again.
228
+ *
229
+ * Make it idempotent by `runId`. Once is kept by a claim on the run record,
230
+ * but a hook slower than the claim (10 minutes), or a mark that could not be
231
+ * written, can see the same run twice. */
232
+ export type SettleFn = (info: RunFinishInfo) => void | Promise<void>;
233
+ /** Builds the persona per step with the run's state (§3.1). It wins over the
234
+ * static `system` when set. A throw fails the step, like a model error. */
235
+ export type SystemFn = (threadId: string, state: AgentRunState) => string | Promise<string>;
236
+ /** Edits the prompt for one step, just before it is sent (§3.1): `messages` is
237
+ * the history the platform assembled (compacted, repaired, cache-stamped) and
238
+ * what comes back is what the model sees. It is the place for context that
239
+ * must NOT be saved — a screenshot the model should look at once, an editor
240
+ * snapshot — because anything added here is gone on the next step unless it
241
+ * is added again. */
242
+ export type PrepareStepFn = (threadId: string, state: AgentRunState, messages: Array<any>) => Array<any> | Promise<Array<any>>;
171
243
  /** Durable state used to hydrate a client before it starts live event replay. */
244
+ /** Where a follow starts: `cursor` (a ThreadCursor, or its wire string as an
245
+ * SSE Last-Event-ID carries it), or a bare record seq `since`. */
246
+ export interface FollowStartOptions extends Omit<FollowThreadOptions, 'cursor'> {
247
+ cursor?: ThreadCursor | string | null;
248
+ since?: number;
249
+ }
172
250
  export interface ThreadSnapshot {
173
251
  thread: ThreadDTO;
174
252
  messages: MessageDTO[];
@@ -176,10 +254,13 @@ export interface ThreadSnapshot {
176
254
  * reconnecting client rebuilds its subagent panel without depending on
177
255
  * events that only replay while a run is unfinished. */
178
256
  runs: RunRecord[];
179
- /** Cursor for starting live replay without duplicating snapshot state. */
257
+ /** The thread record's last seq. */
180
258
  lastEventSeq: number;
181
- /** Only the unfinished run's events, used to restore transient activity. */
259
+ /** The unfinished run's record entries: its open park, a refusal. */
182
260
  activeEvents: AgentEvent[];
261
+ /** The run stream in flight, or one that just ended: what the messages
262
+ * do not have yet, and where a live read picks up. */
263
+ stream: SnapshotStream | null;
183
264
  }
184
265
  /** Everything streamText accepts except the platform-owned keys (§3.1).
185
266
  * `onChunk` / `onFinish` ARE allowed — the platform chains them (§4). */
@@ -204,8 +285,14 @@ export type StreamTextAgentSpec = {
204
285
  } & Omit<Parameters<typeof import('ai').streamText>[0], 'model' | 'messages' | 'prompt' | 'system' | 'abortSignal' | 'maxSteps' | 'onStepFinish' | 'onError' | 'onFinish' | 'onChunk'> & {
205
286
  /** `system` is allowed here (static persona); per-run system is not. */
206
287
  system?: string;
288
+ /** The persona built per step with the run's state; wins over `system`. */
289
+ systemFn?: SystemFn;
290
+ /** Edits the prompt per step, for context that must not be saved. */
291
+ prepareStep?: PrepareStepFn;
207
292
  tools?: ToolSet;
208
293
  onChunk?: (para: any) => void | Promise<void>;
294
+ /** Charges the run (§5.6). See SettleFn. */
295
+ onSettle?: SettleFn;
209
296
  /** Fires once, after the platform finalized the run, with what the run did
210
297
  * and what it spent (§4). */
211
298
  onFinish?: (info: RunFinishInfo) => void | Promise<void>;
@@ -220,9 +307,26 @@ export type GenerateTextAgentSpec = {
220
307
  providerOptions?: ProviderOptions;
221
308
  } & Omit<Parameters<typeof import('ai').generateText>[0], 'model' | 'messages' | 'prompt' | 'abortSignal' | 'onFinish' | 'onStepFinish'> & {
222
309
  tools?: ToolSet;
310
+ /** The persona built per step with the run's state; wins over `system`. */
311
+ systemFn?: SystemFn;
312
+ /** Edits the prompt per step, for context that must not be saved. */
313
+ prepareStep?: PrepareStepFn;
314
+ /** Charges the run (§5.6). See SettleFn. */
315
+ onSettle?: SettleFn;
223
316
  /** Fires once, after the platform finalized the run (§4). */
224
317
  onFinish?: (info: RunFinishInfo) => void | Promise<void>;
225
318
  };
319
+ /** What a stuck-run sweep did. */
320
+ export interface ReclaimReport {
321
+ /** How many run records the sweep looked at. */
322
+ checked: number;
323
+ /** How many runs went back on the queue or were moved to their end state. */
324
+ redispatched: number;
325
+ /** How many ended runs had their settle run late. */
326
+ settled: number;
327
+ /** How many runs the sweep could not act on. */
328
+ errors: number;
329
+ }
226
330
  /** An executor bound to a generation flavor and to the user's generation
227
331
  * arguments (§3). Returned by the `create*Agent` factories. */
228
332
  export interface AgentHandle {
@@ -230,8 +334,9 @@ export interface AgentHandle {
230
334
  readonly kind: AgentKind;
231
335
  /** Worker-side only (§5.6). Throws on failure — see executeWithPolicy.
232
336
  * Returns 'lock-conflict' when another worker owns the thread's run lock
233
- * (nothing was executed) and 'stale' when a newer run has replaced this
234
- * one (§2.1, §2.8). */
337
+ * (nothing was executed), 'stale' when a newer run has replaced this
338
+ * one (§2.1, §2.8), and 'lock-lost' when this worker could not keep the
339
+ * lock and stopped early (§3.4). */
235
340
  execute(input: ExecuteInput): Promise<ExecuteOutcome>;
236
341
  /** execute + §2.8 failure policy: redrive < maxAttempts, else finalize FAILED */
237
342
  executeWithPolicy(input: ExecuteInput, policy?: {
@@ -260,6 +365,13 @@ export interface AgentCore {
260
365
  * usage rows, subagent runs, and the thread's hot kv keys (§3.2).
261
366
  * Refused while a run is active; stop() first. */
262
367
  deleteThread(threadId: string, state?: AgentRunState): Promise<DeleteThreadResult>;
368
+ /** The backstop for a run that nothing is working on (§2.5, §2.8): a QUEUED
369
+ * or RUNNING record older than `olderThanMs` whose lock nobody holds and
370
+ * whose job is gone is re-dispatched, and an ended record older than that
371
+ * whose settle never ran is settled. Call it from a periodic job. It pages
372
+ * through every such run. A record with no recorded state is read with an
373
+ * empty state. */
374
+ reclaimStuckRuns(olderThanMs: number): Promise<ReclaimReport>;
263
375
  hitl: {
264
376
  respond(input: RespondInput): Promise<RespondResult>;
265
377
  reclaimIfOrphaned(threadId: string, state?: AgentRunState): Promise<boolean>;
@@ -267,30 +379,54 @@ export interface AgentCore {
267
379
  events: {
268
380
  since(threadId: string, sinceSeq: number, state?: AgentRunState): Promise<AgentEvent[]>;
269
381
  subscribe(threadId: string, handler: (event: AgentEvent) => void): Promise<() => void>;
270
- /** Replay then live, as one sequence, with the cursor discipline already
271
- * applied (§2.2): subscribe before replaying, never emit at or below the
272
- * cursor, forward a seq-0 notice without moving it.
382
+ /** A thread live, as one sequence of frames (§2.2): its record entries
383
+ * and notices, and its run streams — the stream the cursor names read on
384
+ * from its offset, the next segment's from its RUN_STARTED, and one
385
+ * SNAPSHOT frame when the stream the client was reading is gone.
273
386
  *
274
- * Framework-neutral — an async iterable is something Express, Nest, Hono,
275
- * Next or a plain worker can each consume in their own way. Pass a signal,
276
- * or the subscription outlives the client. */
277
- follow(threadId: string, options?: FollowOptions & {
387
+ * `cursor` is where the client is: the SSE `id:` it last saw
388
+ * (Last-Event-ID), as a string or parsed. `since` is a bare record seq,
389
+ * as older clients send. Framework-neutral — an async iterable is
390
+ * something Express, Nest, Hono, Next or a plain worker can each consume
391
+ * in their own way. Pass a signal, or the follow outlives the client. */
392
+ follow(threadId: string, options?: FollowStartOptions & {
278
393
  state?: AgentRunState;
279
- }): AsyncGenerator<AgentEvent>;
280
- /** `follow`, encoded as Server-Sent Events. Returns the stream and the
394
+ }): AsyncGenerator<FollowFrame>;
395
+ /** `follow`, encoded as Server-Sent Events. Each frame that moves the
396
+ * cursor carries it as its `id:`. `wireFormat: 'ag-ui'` sends AG-UI
397
+ * events instead of our frames (opt-in). Returns the stream and the
281
398
  * headers rather than a Response, because half the ecosystem has none. */
282
- sse(threadId: string, options?: SseOptions & {
399
+ sse(threadId: string, options?: FollowStartOptions & {
400
+ retryMs?: number;
401
+ wireFormat?: WireFormat;
283
402
  state?: AgentRunState;
284
403
  }): SseStream;
404
+ /** The thread record and its notices alone, as before run streams: no
405
+ * stream frames. */
406
+ followRecord(threadId: string, options?: FollowOptions & {
407
+ state?: AgentRunState;
408
+ }): AsyncGenerator<AgentEvent>;
285
409
  /** Publish an event of your own on a thread, from anywhere on the server
286
410
  * — a webhook, a cron job, a route. Tools get the same thing bound to
287
- * their thread as `publishEvent` on their options. Durable by default;
288
- * `{ durable: false }` is a bus-only notice. Platform event types are
289
- * refused. */
411
+ * their thread as `publishEvent` on their options. Live only by default;
412
+ * `{ durable: true }` also keeps it in the thread record. Platform event
413
+ * types are refused. */
290
414
  publishEvent(threadId: string, type: string, payload: unknown, options?: PublishEventOptions & {
291
415
  state?: AgentRunState;
292
416
  }): Promise<AgentEvent>;
293
417
  };
418
+ /** Delete the stream-only rows (chunks, step markers, state changes…)
419
+ * releases before run streams left in the event table, a batch at a
420
+ * time. Nothing reads them any more; an app's own types are kept. Run it
421
+ * when it suits you, after upgrading: `{ dryRun: true }` counts first. */
422
+ pruneEvents(options?: PruneOptions): Promise<PruneReport>;
423
+ /** A run stream by id, for a caller that only cares about one run: its
424
+ * items after `after`, live until it closes. Throws StreamGoneError once
425
+ * the stream is past its grace window. */
426
+ streams: {
427
+ read(streamId: string, after: string | null, signal?: AbortSignal): AsyncIterable<StreamItem>;
428
+ snapshot(streamId: string, after?: string | null): Promise<StreamSnapshot | null>;
429
+ };
294
430
  /** Agent factories — see §4. Each call registers a handle under `spec.name`. */
295
431
  createStreamTextAgent(spec: StreamTextAgentSpec): AgentHandle;
296
432
  createGenerateTextAgent(spec: GenerateTextAgentSpec): AgentHandle;
@@ -325,10 +461,25 @@ export interface AgentCore {
325
461
  * delivery (the per-thread run lock, §3.4). The HTTP layer only verifies
326
462
  * signatures, parses JSON, and calls this. */
327
463
  worker: {
328
- handleJob(job: RunJob): Promise<{
464
+ /** Run one job. Throws `UnknownAgentError` for a job naming an agent this
465
+ * process does not have, so a queue that retries on failure keeps it.
466
+ * Abort `signal` on shutdown: the segment stops at once and the job goes
467
+ * back on the queue without spending an attempt. */
468
+ handleJob(job: RunJob, options?: {
469
+ signal?: AbortSignal;
470
+ }): Promise<{
329
471
  accepted: boolean;
330
472
  reason?: string;
331
473
  }>;
474
+ /** What a queue calls when it gives up on a job (§2.8): the run behind it
475
+ * is failed with the reason and settled, so its thread does not read
476
+ * QUEUED or RUNNING for ever. A job whose run has already moved on is
477
+ * left alone. */
478
+ handleDeadJob(job: RunJob, attempts: number, cause: unknown): Promise<void>;
332
479
  };
480
+ /** The ports bundle, scoped to a run's state when one is given (§2.10): for
481
+ * a host that reads storage, publishes or checks the kv the way the
482
+ * platform does. */
483
+ ports(state?: AgentRunState): RuntimePorts;
333
484
  }
334
485
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/ports/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/ports/runtime.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { StorageContext } from '../core/state.js';
2
- import type { AgentEvent, ExecutionState, MessageDTO, NewMessage, NewUsage, UsageFilter, UsageTotals, ThreadDTO } from '../core/types.js';
2
+ import type { AgentEvent, ExecutionState, MessageDTO, NewMessage, NewThreadEvent, ThreadEventFilter, NewUsage, UsageFilter, UsageTotals, ThreadDTO, ThreadTransition } from '../core/types.js';
3
3
  /** Persistence port for a caller's OWN data (§3.2): threads, messages, events,
4
4
  * usage. DTOs cross the boundary; ORM/entity types never leak into core.
5
5
  * Implement it once for MongoDB, MySQL, DynamoDB — or use the shipped
@@ -29,6 +29,11 @@ export interface Storage {
29
29
  * Backs HITL reclamation + double-dispatch protection (§2.5, §2.8).
30
30
  * Must be atomic — a single conditional UPDATE or equivalent. */
31
31
  claimState(threadId: string, from: ExecutionState, to: ExecutionState, ctx: StorageContext): Promise<boolean>;
32
+ /** The compare-and-set every run state change goes through: true iff THIS
33
+ * caller moved the thread (see ThreadTransition). The adapter keeps the
34
+ * thread's current run beside its state. Atomic, like `claimState`: one
35
+ * conditional UPDATE or equivalent. */
36
+ transition(threadId: string, t: ThreadTransition, ctx: StorageContext): Promise<boolean>;
32
37
  };
33
38
  messages: {
34
39
  append(threadId: string, message: NewMessage, ctx: StorageContext): Promise<MessageDTO>;
@@ -51,16 +56,32 @@ export interface Storage {
51
56
  * provider accepts. `run()` enforces that; adapters just delete. */
52
57
  deleteFrom(threadId: string, messageId: string, ctx: StorageContext): Promise<number>;
53
58
  };
59
+ /** The thread record: the few events that must outlive a run — parks and
60
+ * their answers, refusals, budget stops, compaction, each segment's start
61
+ * and end, and an app's own events published durable. A run's live
62
+ * events go to its run stream, never here, so this grows with runs, not
63
+ * with tokens. */
54
64
  events: {
55
- append(threadId: string, event: AgentEvent, ctx: StorageContext): Promise<void>;
56
- /** All events after the cursor, ascending by seq — SSE replay (§2.2) */
65
+ /** Store an entry and mint its seq: the thread's next, one higher than
66
+ * any it holds. Two appends on one thread never get the same seq. */
67
+ append(threadId: string, event: NewThreadEvent, ctx: StorageContext): Promise<AgentEvent>;
68
+ /** Entries by filter, ascending by seq. */
69
+ list(threadId: string, filter: ThreadEventFilter, ctx: StorageContext): Promise<AgentEvent[]>;
70
+ /** All events after the cursor, ascending by seq. */
57
71
  listSince(threadId: string, sinceSeq: number, ctx: StorageContext): Promise<AgentEvent[]>;
58
72
  /** Most recent event of a type — the HITL pending check (§2.5) */
59
73
  latest(threadId: string, type: string, ctx: StorageContext): Promise<AgentEvent | null>;
60
74
  /** Every event of a type, ascending by seq. The open-approval set (§2.7)
61
- * is derived from these; scanning `listSince` instead would drag every
62
- * CHUNK on the thread through memory. */
75
+ * is derived from these. */
63
76
  listByType(threadId: string, type: string, ctx: StorageContext): Promise<AgentEvent[]>;
77
+ /** Optional: one batch of `runtime.pruneEvents`. Deletes up to `limit`
78
+ * entries of these types, on every thread, and says how many of each
79
+ * went. With `dryRun` it deletes nothing and counts every entry of
80
+ * these types instead. */
81
+ prune?(types: string[], opts: {
82
+ limit: number;
83
+ dryRun?: boolean;
84
+ }): Promise<Record<string, number>>;
64
85
  };
65
86
  /** One row per model call (§4).
66
87
  *
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/ports/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/ports/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,SAAS,EACT,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;;;;6DAW6D;AAC7D,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE;QACP,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QACtF,qDAAqD;QACrD,IAAI,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACtF;;4EAEoE;QACpE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7D;;0EAEkE;QAClE,UAAU,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;QACpB;;;gDAGwC;QACxC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KAC1F,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACxF;;;;;4EAKoE;QACpE,IAAI,CACF,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,SAAS,EAC7C,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACzB;;;;;;;6EAOqE;QACrE,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;KACvF,CAAC;IACF;;;;uBAImB;IACnB,MAAM,EAAE;QACN;8EACsE;QACtE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAC1F,2CAA2C;QAC3C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9F,qDAAqD;QACrD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1F,kEAAkE;QAClE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;QACxF;qCAC6B;QAC7B,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACvF;;;mCAG2B;QAC3B,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;KACrG,CAAC;IACF;;;;yDAIqD;IACrD,KAAK,EAAE;QACL,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9E;;;;;;;;mFAQ2E;QAC3E,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;KACzF,CAAC;CACH"}