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
@@ -2,7 +2,11 @@ import type { LanguageModel, ToolSet } from 'ai';
2
2
  import type { AgentRunState } from './state.js';
3
3
  /** Lifecycle of a thread. Durable truth lives in Storage.threads; the kv copy
4
4
  * (`agent:state:{threadId}`) is a hot cache the engine polls (§2.1, §3.4). */
5
- export type ExecutionState = 'IDLE' | 'RUNNING' | 'WAITING_FOR_INPUT' | 'CANCELLED' | 'COMPLETED' | 'FAILED';
5
+ export type ExecutionState = 'IDLE'
6
+ /** Accepted and waiting for a worker. It becomes RUNNING the moment a
7
+ * worker picks the job up, and goes back to QUEUED while a failed run
8
+ * waits for its retry. */
9
+ | 'QUEUED' | 'RUNNING' | 'WAITING_FOR_INPUT' | 'CANCELLED' | 'COMPLETED' | 'FAILED';
6
10
  export type MessageRole = 'user' | 'assistant' | 'system' | 'tool';
7
11
  /** Generation flavor of a handle / spawned subagent (§4). */
8
12
  export type AgentKind = 'stream-text' | 'generate-text';
@@ -13,6 +17,21 @@ export interface ThreadDTO {
13
17
  createdAt: Date;
14
18
  updatedAt: Date;
15
19
  }
20
+ /** One compare-and-set on a thread's state (§3.4). It lands only while the
21
+ * thread is in one of `from` AND still belongs to `runId`, so a run that has
22
+ * been stopped or replaced can never move the thread again: its write simply
23
+ * loses. */
24
+ export interface ThreadTransition {
25
+ from: ExecutionState[];
26
+ to: ExecutionState;
27
+ /** The run the caller acts for. The transition lands only while the
28
+ * thread's current run is this one, or the thread has no run recorded yet
29
+ * (a thread from before run ids were stored). Omitted means any run. */
30
+ runId?: string;
31
+ /** Makes the thread belong to a new run: set by run admission. Omitted
32
+ * keeps the current one. */
33
+ newRunId?: string;
34
+ }
16
35
  export interface MessageDTO {
17
36
  id: string;
18
37
  threadId: string;
@@ -33,10 +52,30 @@ export interface NewMessage {
33
52
  * engine via Kv.incr before append (§3.4). */
34
53
  export interface AgentEvent {
35
54
  threadId: string;
55
+ /** The thread record's order, minted by the store on insert. 0 for a
56
+ * notice, which is never stored. */
36
57
  seq: number;
37
58
  type: string;
38
59
  payload: unknown;
39
60
  createdAt: Date;
61
+ /** The run the entry belongs to, when it belongs to one. */
62
+ runId?: string | null;
63
+ }
64
+ /** An entry for the thread record, before the store gives it its seq. */
65
+ export interface NewThreadEvent {
66
+ type: string;
67
+ payload: unknown;
68
+ runId?: string | null;
69
+ /** When it happened; now when omitted. */
70
+ createdAt?: Date;
71
+ }
72
+ /** Which record entries to read back: all of them by default, oldest first. */
73
+ export interface ThreadEventFilter {
74
+ types?: string[];
75
+ runId?: string;
76
+ /** Only entries after this seq. */
77
+ after?: number;
78
+ limit?: number;
40
79
  }
41
80
  /** The durable record of ONE agent run (§2.9): when it started, how it ended,
42
81
  * what it cost. Keyed by the run id the platform already mints to fence stale
@@ -61,8 +100,12 @@ export interface RunRecord {
61
100
  stopReason?: string | null;
62
101
  /** Why it failed, when it did. Previously dropped on the floor (§2.8). */
63
102
  error?: string | null;
64
- /** When the run was accepted and enqueued. */
103
+ /** When a worker first started work on it. Until then (a QUEUED run) the
104
+ * time it was accepted. */
65
105
  startedAt: Date;
106
+ /** When the run was accepted and enqueued (§2.8): a queued run's wait
107
+ * shows while it lasts. Null on records from before the QUEUED stage. */
108
+ enqueuedAt?: Date | null;
66
109
  endedAt?: Date | null;
67
110
  /** endedAt - startedAt, denormalised so a listing never recomputes it. A
68
111
  * parked run legitimately spans however long the human took (§2.5). */
@@ -70,6 +113,13 @@ export interface RunRecord {
70
113
  /** Milliseconds between enqueue and a worker starting work — the number that
71
114
  * says whether workers are keeping up (§2.8). */
72
115
  queuedMs?: number | null;
116
+ /** When the spec's `onSettle` ran for this run (§5.6). A run settles exactly
117
+ * once: whoever ends it, or the late-settle sweep. Unset until then. */
118
+ settledAt?: Date | null;
119
+ /** When a settle claimed the run and started its hook. Cleared when the
120
+ * settle ends; one left behind for long is a settler that died, and the
121
+ * next settle takes the run over. */
122
+ settlingAt?: Date | null;
73
123
  /** Loop iterations completed, summed across every segment of the run. */
74
124
  steps: number;
75
125
  inputTokens: number;
@@ -89,6 +139,10 @@ export interface RunRecord {
89
139
  providerOptions?: Record<string, unknown> | null;
90
140
  /** A nested run's capped result, handed back to its parent (§2.7). */
91
141
  result?: unknown;
142
+ /** The caps the run was dispatched with (§4, §2.1), kept so a run
143
+ * re-dispatched from its record keeps them. */
144
+ costBudgetMicros?: number | null;
145
+ maxSteps?: number | null;
92
146
  }
93
147
  export interface NewRunRecord {
94
148
  id: string;
@@ -102,6 +156,15 @@ export interface NewRunRecord {
102
156
  /** Defaults to 0 — a dispatched run. */
103
157
  depth?: number;
104
158
  parentRunId?: string | null;
159
+ /** A dispatched run opens QUEUED; a nested run starts RUNNING (the
160
+ * default). */
161
+ state?: ExecutionState;
162
+ /** When a dispatched run was accepted. */
163
+ enqueuedAt?: Date | null;
164
+ /** The caps the run was dispatched with (§4, §2.1), kept so a run
165
+ * re-dispatched from its record keeps them. */
166
+ costBudgetMicros?: number | null;
167
+ maxSteps?: number | null;
105
168
  }
106
169
  export type RunPatch = Partial<Omit<RunRecord, 'id' | 'threadId'>>;
107
170
  /** Cumulative token AND money attribution across every run on a thread (§4).
@@ -118,17 +181,32 @@ export interface UsageTotals {
118
181
  /** Summed cost in millionths of one `currency` unit: 1_000_000 is one
119
182
  * dollar when the currency is USD. */
120
183
  costMicros: number;
121
- /** The unit `costMicros` is in, absent when nothing was priced. One
122
- * deployment should price in ONE currency: these are summed, not
123
- * converted. */
184
+ /** The unit `costMicros` is in: the first currency priced, absent when
185
+ * nothing was. Money is never converted, so a call priced in another
186
+ * currency is left out of `costMicros` and counted in `unpriced`; `costs`
187
+ * has every currency's own total. */
124
188
  currency?: string;
125
- /** How many calls had no cost, because no pricer answered for them. Above
126
- * zero, `costMicros` is a floor and not the whole bill. */
189
+ /** How many calls `costMicros` leaves out: calls no pricer answered for,
190
+ * and calls priced in another currency. Above zero, `costMicros` is a
191
+ * floor and not the whole bill. */
127
192
  unpriced: number;
128
- /** The same spend grouped by agent and model: one line per pair, which is
129
- * the shape a bill wants. Summing the lines gives the totals above. */
193
+ /** The money per currency, in the order each was first seen. One run is
194
+ * only ever priced in one currency (a second one is refused when the call
195
+ * is recorded), so a run's bill has at most one entry; a thread whose
196
+ * pricer changed currency between runs can have more. */
197
+ costs?: CurrencyCost[];
198
+ /** The same spend grouped by agent, model and currency: one line per agent
199
+ * and model, which is the shape a bill wants. Summing the lines of one
200
+ * currency gives that currency's entry in `costs`. */
130
201
  lines: UsageLine[];
131
202
  }
203
+ /** The money spent in one currency (§4). */
204
+ export interface CurrencyCost {
205
+ currency: string;
206
+ costMicros: number;
207
+ /** How many calls were priced in this currency. */
208
+ calls: number;
209
+ }
132
210
  /** One agent's spend on one model, summed over its calls (§4). This is the
133
211
  * bill line a credit system charges for. */
134
212
  export interface UsageLine {
@@ -138,6 +216,9 @@ export interface UsageLine {
138
216
  /** The registry key; `modelId` is the wire id it resolved to. */
139
217
  model?: string | null;
140
218
  modelId?: string | null;
219
+ /** The unit `costMicros` is in, absent when none of the line's calls was
220
+ * priced. */
221
+ currency?: string;
141
222
  inputTokens: number;
142
223
  cacheReadInputTokens: number;
143
224
  cacheWriteInputTokens: number;
@@ -265,6 +346,13 @@ export declare function mergeProviderOptions(base?: ProviderOptions, override?:
265
346
  /** Dispatch ticket for the queue (§2.8). At-least-once — consumers must be
266
347
  * idempotent. `agent` resolves via `AgentCore.getAgent`; when missing, the
267
348
  * default handle executes. */
349
+ /** Why a job was enqueued (see `RunJob.kind`):
350
+ * - `retry`: the same run trying again after a failure (§2.8);
351
+ * - `redrive`: a job that found the run lock held by an older run;
352
+ * - `resume`: a parked run continuing after an answer (§2.5);
353
+ * - `expiry`: a park's own deadline (§2.5);
354
+ * - `reclaim`: an orphaned thread re-dispatched (§2.5). */
355
+ export type JobKind = 'retry' | 'redrive' | 'resume' | 'expiry' | 'reclaim';
268
356
  export interface RunJob {
269
357
  threadId: string;
270
358
  model: string;
@@ -274,9 +362,19 @@ export interface RunJob {
274
362
  * been replaced by a newer run and must not execute. Omitted on legacy
275
363
  * dispatches, which keep the old no-identity behavior. */
276
364
  runId?: string;
365
+ /** Names THIS enqueue of the run: a fresh dispatch, a retry, a resume each
366
+ * get their own. A queue that delivers one job twice delivers the same
367
+ * id, which is how the run lock tells a duplicate apart from another
368
+ * delivery of the same run (§3.4). Stamped by `enqueueJob`; absent on
369
+ * jobs written before it. */
370
+ dispatchId?: string;
277
371
  /** Epoch ms at enqueue. The worker subtracts it on pickup to record how long
278
372
  * the job waited — the number that says whether workers keep up (§2.9). */
279
373
  enqueuedAt?: number;
374
+ /** Why the job exists, so a queue can log it, order it and cap only the
375
+ * kind that brings new work in. Absent is a fresh dispatch from `run`, the
376
+ * only kind a depth cap refuses. */
377
+ kind?: JobKind;
280
378
  /** The run's state (§2.10), so a worker rehydrates exactly what the caller
281
379
  * attached — hours later, in another process, after an approval. */
282
380
  state?: AgentRunState;
@@ -285,6 +383,15 @@ export interface RunJob {
285
383
  * cap the caller asked for. */
286
384
  costBudgetMicros?: number;
287
385
  providerOptions?: ProviderOptions;
386
+ /** The run's own step cap, when the caller set one (§2.1). */
387
+ maxSteps?: number;
388
+ /** The caller's tenant, opaque to the platform. A queue that spreads its
389
+ * claims across partitions keeps one tenant's backlog from starving the
390
+ * others. */
391
+ partitionKey?: string;
392
+ /** Epoch ms of the run's first dispatch, carried onto every retry and
393
+ * resume so the run keeps its place in line. */
394
+ dispatchedAt?: number;
288
395
  }
289
396
  /** Identifies a nested run well enough to re-enter its loop (§2.7). Persisted
290
397
  * in the INPUT_REQUIRED payload so a resume never has to read it back. */
@@ -310,6 +417,11 @@ export interface ResumeInfo {
310
417
  * closure that is long gone. Without it every storage call after an
311
418
  * approval loses whatever the caller attached, tenant scope included. */
312
419
  state?: AgentRunState;
420
+ /** The run's own step cap (§2.1), so a resumed segment keeps it. */
421
+ maxSteps?: number;
422
+ /** Epoch ms of the run's first dispatch, so a resume keeps its place in
423
+ * line. */
424
+ dispatchedAt?: number;
313
425
  }
314
426
  /** A model identity after resolution: the real provider instance (created
315
427
  * lazily per run) and the declared context window, which feeds the §2.6
@@ -337,6 +449,29 @@ export interface SubagentsConfig {
337
449
  /** Extra tools merged into every spawned subagent's toolset
338
450
  * (HITL-wrapped identically to the parent's tools). */
339
451
  tools?: ToolSet;
452
+ /** Named specialists (§2.7). When set, `spawnSubagent` must name one of
453
+ * them: the child takes the profile's persona, model, tools and step cap
454
+ * instead of the shared defaults above. The model still writes the brief;
455
+ * the profile says who reads it. */
456
+ profiles?: Record<string, SubagentProfile>;
457
+ }
458
+ /** One named specialist a run may delegate to. */
459
+ export interface SubagentProfile {
460
+ /** Shown to the model beside the name, so it can choose. */
461
+ description?: string;
462
+ /** The child's static persona; `systemFn` wins when set. */
463
+ system?: string;
464
+ systemFn?: import('../ports/runtime.js').SystemFn;
465
+ /** Edits the child's prompt per step; see PrepareStepFn. */
466
+ prepareStep?: import('../ports/runtime.js').PrepareStepFn;
467
+ /** Registry key; absent falls back to the config's `model`, then the
468
+ * default. */
469
+ model?: string;
470
+ /** The child's own tools, HITL-wrapped like the parent's. They replace the
471
+ * shared `tools` above. */
472
+ tools?: ToolSet;
473
+ /** Caps the child's round trips; 0 or absent keeps `subagentMaxSteps`. */
474
+ maxSteps?: number;
340
475
  }
341
476
  export interface AgentConfig {
342
477
  /** How long a parked HITL request stays answerable (§2.5) — expiry turns
@@ -357,6 +492,12 @@ export interface AgentConfig {
357
492
  * it would strand the user's message — so it comes back once the previous
358
493
  * run has let go. */
359
494
  runRedriveDelaySeconds: number;
495
+ /** A failed run waits this long before its first retry, twice as long each
496
+ * time after, up to `runRetryBackoffMaxMs`, with up to a quarter of jitter
497
+ * so a fleet that failed together does not retry together (§2.8). 0 retries
498
+ * at once. */
499
+ runRetryBackoffMs: number;
500
+ runRetryBackoffMaxMs: number;
360
501
  /** Default per-run token budget (input + output) when neither the execute
361
502
  * input nor the agent spec declares one. `undefined` = unbounded apart
362
503
  * from `maxSteps` (§2.1 safety cap). */
@@ -409,9 +550,39 @@ export interface AgentConfig {
409
550
  /** Per-model native windows below the ceiling (§2.6) — merged over defaults.
410
551
  * A `contextWindow` declared via `resolveModel` wins over this table. */
411
552
  nativeWindows?: Record<string, number>;
412
- /** Lease (seconds) for the per-thread run lock — must exceed the longest
413
- * possible run segment; parked HITL waits hold NO lock (§2.8, §3.4). */
553
+ /** Lease (seconds) for the per-thread run lock. The holder renews it every
554
+ * sixth of the lease while it holds it, so an expired lock means a dead
555
+ * worker; parked HITL waits hold NO lock (§2.8, §3.4). */
414
556
  runLockLeaseSeconds: number;
557
+ /** Bounds one model round trip in wall time (ms). A model that accepts the
558
+ * call and never answers ends that step like any failed step, and the run
559
+ * takes the retry policy (§2.8). 0 means no bound. */
560
+ stepTimeoutMs: number;
561
+ /** Bounds one worker segment in wall time (ms). Past it the run ends FAILED
562
+ * with stopReason `timeout`, rather than holding the worker. 0 means no
563
+ * bound. */
564
+ segmentTimeoutMs: number;
565
+ /** The longest a job may wait in the queue (ms). A job picked up later
566
+ * fails its run with the reason, instead of doing work nobody is waiting
567
+ * for any more. 0 means no limit. */
568
+ maxQueueWaitMs: number;
569
+ /** How long a run stream is kept after its segment ends (ms). A tab that
570
+ * reconnects within it resumes inside the stream; one that comes later
571
+ * gets a snapshot, which has the final text in the messages. */
572
+ streamGraceMs: number;
573
+ /** How long a stream lives if nothing ever closes it (ms): the last guard
574
+ * when the worker and the sweep both failed. */
575
+ streamTtlMs: number;
576
+ /** How long stream events wait to be appended together (ms). A step end,
577
+ * a tool result, a park and a close go out at once. 0 sends every event
578
+ * as it comes. */
579
+ streamFlushMs: number;
580
+ /** Append at once when this many stream events are waiting. */
581
+ streamFlushEvents: number;
582
+ /** Refuse a new run (RUN_REFUSED, reason `queue_full`) once this many jobs
583
+ * are ready and waiting (§2.8). Needs a queue that can count; one that
584
+ * cannot is never refused on. 0 means no cap. */
585
+ maxQueueDepth: number;
415
586
  /** Billing pre-execution check (§4). Return `{ ok: false, error }` to reject
416
587
  * a run. The check can publish on the thread (a credit warning, a reset
417
588
  * date) so every client sees why; the platform also publishes RUN_REFUSED
@@ -431,11 +602,26 @@ export interface AgentConfig {
431
602
  * caller. `publishEvent(type, payload, { durable })` — durable by default. */
432
603
  export interface BillingCheck {
433
604
  threadId: string;
605
+ /** Set at pickup; absent at dispatch, where the run has no id yet. */
606
+ runId?: string;
434
607
  state: AgentRunState;
608
+ /** When the check runs. `dispatch` is inside `run`, before anything is
609
+ * written: a refusal means the run never exists. `pickup` is when a worker
610
+ * takes the job (a first dispatch, a retry, a resume): a refusal fails the
611
+ * run. */
612
+ stage: 'dispatch' | 'pickup';
613
+ /** The caps the job carries, at pickup only. The check may LOWER either and
614
+ * the segment runs with the lowered cap; raising is ignored. */
615
+ budget?: RunBudget;
435
616
  publishEvent: (type: string, payload: unknown, options?: {
436
617
  durable?: boolean;
437
618
  }) => Promise<AgentEvent>;
438
619
  }
620
+ /** The money and step cap a segment runs with. 0 is no cap from this level. */
621
+ export interface RunBudget {
622
+ costBudgetMicros: number;
623
+ maxSteps: number;
624
+ }
439
625
  export declare const DEFAULT_CONFIG: AgentConfig;
440
626
  export declare function resolveConfig(partial?: Partial<AgentConfig>): AgentConfig;
441
627
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,8 @@ export const DEFAULT_CONFIG = {
16
16
  runMaxAttempts: 3,
17
17
  stopPollMs: 500,
18
18
  runRedriveDelaySeconds: 2,
19
+ runRetryBackoffMs: 5_000,
20
+ runRetryBackoffMaxMs: 120_000,
19
21
  subagentMaxDepth: 2,
20
22
  subagentMaxConcurrent: 3,
21
23
  subagentMaxSteps: 10,
@@ -28,7 +30,15 @@ export const DEFAULT_CONFIG = {
28
30
  contextTailShare: 0.25,
29
31
  compactionModel: 'gpt-4o-mini',
30
32
  promptCaching: true,
31
- runLockLeaseSeconds: 30 * 60,
33
+ runLockLeaseSeconds: 2 * 60,
34
+ stepTimeoutMs: 0,
35
+ segmentTimeoutMs: 0,
36
+ maxQueueWaitMs: 0,
37
+ maxQueueDepth: 0,
38
+ streamGraceMs: 10 * 60_000,
39
+ streamTtlMs: 24 * 60 * 60_000,
40
+ streamFlushMs: 50,
41
+ streamFlushEvents: 32,
32
42
  };
33
43
  export function resolveConfig(partial) {
34
44
  const config = { ...DEFAULT_CONFIG, ...partial };
@@ -45,9 +55,24 @@ export function resolveConfig(partial) {
45
55
  // The poll is the only thing that delivers a stop to a running worker (§2.1)
46
56
  throw new Error(`Invalid config: stopPollMs (${config.stopPollMs}) must be an integer of at least 1`);
47
57
  }
58
+ for (const key of ['runRetryBackoffMs', 'runRetryBackoffMaxMs']) {
59
+ if (!Number.isInteger(config[key]) || config[key] < 0) {
60
+ throw new Error(`Invalid config: ${key} (${config[key]}) must be a non-negative integer`);
61
+ }
62
+ }
48
63
  if (!Number.isInteger(config.runRedriveDelaySeconds) || config.runRedriveDelaySeconds < 0) {
49
64
  throw new Error(`Invalid config: runRedriveDelaySeconds (${config.runRedriveDelaySeconds}) must be a non-negative integer`);
50
65
  }
66
+ for (const key of ['streamGraceMs', 'streamTtlMs', 'streamFlushEvents']) {
67
+ if (!Number.isInteger(config[key]) || config[key] < 1) {
68
+ throw new Error(`Invalid config: ${key} (${config[key]}) must be an integer of at least 1`);
69
+ }
70
+ }
71
+ for (const key of ['stepTimeoutMs', 'segmentTimeoutMs', 'maxQueueWaitMs', 'maxQueueDepth', 'streamFlushMs']) {
72
+ if (!Number.isFinite(config[key]) || config[key] < 0) {
73
+ throw new Error(`Invalid config: ${key} (${config[key]}) must not be negative`);
74
+ }
75
+ }
51
76
  if (!Number.isInteger(config.runLockLeaseSeconds) || config.runLockLeaseSeconds < 1) {
52
77
  // The lease is the only thing that heals a crashed worker's lock — a
53
78
  // zero/fractional value would deadlock the thread forever (§3.4)
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAiSA,gFAAgF;AAChF,MAAM,UAAU,oBAAoB,CAClC,IAAsB,EACtB,QAA0B;IAE1B,IAAI,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC;IAC3B,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;AAClC,CAAC;AAkED;kDACkD;AAClD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAoB,EAAE,GAAW,EAAU,EAAE,CAClE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAmHlE,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,SAAS,EAAE,EAAE,GAAG,MAAM;IACtB,cAAc,EAAE,MAAM;IACtB,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,CAAC;IACjB,UAAU,EAAE,GAAG;IACf,sBAAsB,EAAE,CAAC;IACzB,gBAAgB,EAAE,CAAC;IACnB,qBAAqB,EAAE,CAAC;IACxB,gBAAgB,EAAE,EAAE;IACpB,sBAAsB,EAAE,KAAK;IAC7B,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,OAAO;IAC7B,0BAA0B,EAAE,MAAM;IAClC,iBAAiB,EAAE,GAAG;IACtB,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,aAAa;IAC9B,aAAa,EAAE,IAAI;IACnB,mBAAmB,EAAE,EAAE,GAAG,EAAE;CAC7B,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,OAA8B;IAC1D,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;IACjD,IAAI,MAAM,CAAC,gBAAgB,GAAG,CAAC,IAAI,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7E,6EAA6E;QAC7E,MAAM,IAAI,KAAK,CACb,qCAAqC,MAAM,CAAC,gBAAgB,qCAAqC,MAAM,CAAC,QAAQ,GAAG,CACpH,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5B,0EAA0E;QAC1E,qDAAqD;QACrD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAClE,6EAA6E;QAC7E,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,CAAC,UAAU,oCAAoC,CACrF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,MAAM,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;QAC1F,MAAM,IAAI,KAAK,CACb,2CAA2C,MAAM,CAAC,sBAAsB,kCAAkC,CAC3G,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,MAAM,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;QACpF,qEAAqE;QACrE,iEAAiE;QACjE,MAAM,IAAI,KAAK,CACb,wCAAwC,MAAM,CAAC,mBAAmB,oCAAoC,CACvG,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { NewUsage, UsageTotals } from './types.js';
1
+ import type { NewUsage, UsageLine, UsageTotals } from './types.js';
2
2
  import type { RuntimePorts } from '../ports/runtime.js';
3
3
  /** Token attribution (§4): the four canonical counters. Same shape as
4
4
  * UsageTotals. */
@@ -71,15 +71,63 @@ export declare function providerMeta(meta?: ProviderMetadataLike, response?: {
71
71
  * price list is not. Storage failures are logged for the same reason — the
72
72
  * tokens of a stopped run were still spent. */
73
73
  export declare function recordCall(deps: RuntimePorts, threadId: string, usage: NewUsage): Promise<NewUsage>;
74
+ /** What a run has spent, main agent and nested runs together (§2.7): its
75
+ * tokens, its money and the one currency that money is in. Shared by
76
+ * reference so a child's spend counts against the run's caps the moment it
77
+ * happens — a budget that ignores delegated work is not a budget.
78
+ *
79
+ * A run's ledger starts from what the run already spent (`seedRunLedger`):
80
+ * its earlier segments, before a park or a retry, count against the same
81
+ * caps. After that it is kept in memory, so the caps are checked without
82
+ * reading every usage row back after every step. */
83
+ export declare class RunLedger {
84
+ tokensUsed: number;
85
+ costMicros: number;
86
+ currency: string | undefined;
87
+ /** Price one call, store its row and book it (§4). A run is priced in one
88
+ * currency: a call priced in another is stored unpriced, with an error
89
+ * logged, rather than mixed into a bill that cannot add it up. */
90
+ record(deps: RuntimePorts, threadId: string, usage: NewUsage): Promise<NewUsage>;
91
+ }
92
+ /** Start a ledger from the run's usage rows (§4). A failed read is logged and
93
+ * the ledger starts from zero: a run is not failed over its caps'
94
+ * bookkeeping. */
95
+ export declare function seedRunLedger(deps: RuntimePorts, threadId: string, runId?: string): Promise<RunLedger>;
74
96
  /** Zero totals — what a thread with no usage rows reports. */
75
97
  export declare const emptyTotals: () => UsageTotals;
98
+ /** One grouped row, as a SQL adapter reads it: a line, the currency its
99
+ * cost is in, its summed total tokens and how many of its calls were
100
+ * unpriced. */
101
+ export interface UsageGroup {
102
+ line: UsageLine;
103
+ currency?: string | null;
104
+ totalTokens: number;
105
+ unpriced: number;
106
+ }
107
+ /** Rebuilds UsageTotals from grouped rows that a SQL adapter read GROUP BY
108
+ * agent, model AND currency. Grouping by currency is what keeps a sum honest;
109
+ * merging here is what keeps one agent's spend on one model a single line.
110
+ *
111
+ * The rules, the same in every adapter and in the Go runtime: `costMicros`
112
+ * is summed in the first currency seen, and a group priced in another
113
+ * currency counts as unpriced there instead of being added. `costs` keeps
114
+ * every currency's own total. A line takes the currency of the first priced
115
+ * group on it; a group priced in a different currency gets a line of its
116
+ * own, and unpriced groups join the first line of their agent and model. */
117
+ export declare class UsageMerger {
118
+ private readonly out;
119
+ private readonly lines;
120
+ private readonly costs;
121
+ add(g: UsageGroup): void;
122
+ totals(): UsageTotals;
123
+ }
76
124
  /** Sum usage rows into the shape `total` must return: the four counters, the
77
125
  * money, and one line per agent and model.
78
126
  *
79
- * A storage adapter that can group in the database should do that instead.
80
- * This is for the ones that cannot, and for anyone writing their own adapter:
81
- * feed every matching row through it and you get exactly what the port
82
- * promises, lines in first-seen order. */
127
+ * A storage adapter that can group in the database should do that instead
128
+ * (see UsageMerger). This is for the ones that cannot, and for anyone writing
129
+ * their own adapter: feed every matching row through it and you get exactly
130
+ * what the port promises, lines in first-seen order. */
83
131
  export declare function sumUsage(rows: Iterable<NewUsage>): UsageTotals;
84
132
  export {};
85
133
  //# sourceMappingURL=usage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/core/usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;mBACmB;AAEnB,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;+CAE+C;AAC/C,MAAM,MAAM,oBAAoB,GAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,GACnD,SAAS,CAAC;AAEd,KAAK,SAAS,GAAG;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,SAAS,CAAC;AASd;;;;;;;;;;;uEAWuE;AACvE,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,EAChB,IAAI,CAAC,EAAE,oBAAoB,GAC1B,gBAAgB,CAsBlB;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAEjF;AAGD;;;2BAG2B;AAC3B,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAKpE;AAED;;0BAE0B;AAC1B,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAKrF;AAED;;;gCAGgC;AAChC,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,EAChB,IAAI,CAAC,EAAE,oBAAoB,GAC1B,IAAI,CACL,QAAQ,EACN,aAAa,GACb,sBAAsB,GACtB,uBAAuB,GACvB,cAAc,GACd,iBAAiB,GACjB,aAAa,CAChB,CAUA;AAED;;;wCAGwC;AACxC,wBAAgB,YAAY,CAC1B,IAAI,CAAC,EAAE,oBAAoB,EAC3B,QAAQ,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC3D,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAOrC;AAED;;;;;;;;;gDASgD;AAChD,wBAAsB,UAAU,CAC9B,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,QAAQ,CAAC,CAgBnB;AAGD,8DAA8D;AAC9D,eAAO,MAAM,WAAW,QAAO,WAQ7B,CAAC;AAEH;;;;;;2CAM2C;AAC3C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,WAAW,CAwC9D"}
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/core/usage.ts"],"names":[],"mappings":"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"}