agentenkit 0.1.5 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -2
- package/dist/adapters/memory.d.ts +2 -2
- package/dist/adapters/memory.d.ts.map +1 -1
- package/dist/adapters/memory.js +3 -9
- package/dist/adapters/memory.js.map +1 -1
- package/dist/adapters/prisma.d.ts +61 -18
- package/dist/adapters/prisma.d.ts.map +1 -1
- package/dist/adapters/prisma.js +65 -16
- package/dist/adapters/prisma.js.map +1 -1
- package/dist/adapters/sqlite.d.ts +3 -2
- package/dist/adapters/sqlite.d.ts.map +1 -1
- package/dist/adapters/sqlite.js +82 -11
- package/dist/adapters/sqlite.js.map +1 -1
- package/dist/admin/default.d.ts +11 -4
- package/dist/admin/default.d.ts.map +1 -1
- package/dist/admin/default.js +11 -6
- package/dist/admin/default.js.map +1 -1
- package/dist/admin/memory.d.ts.map +1 -1
- package/dist/admin/memory.js +8 -2
- package/dist/admin/memory.js.map +1 -1
- package/dist/admin/migrations/postgres/0001-init.d.ts +10 -0
- package/dist/admin/migrations/postgres/0001-init.d.ts.map +1 -0
- package/dist/admin/migrations/postgres/0001-init.js +56 -0
- package/dist/admin/migrations/postgres/0001-init.js.map +1 -0
- package/dist/admin/migrations/postgres/index.d.ts +9 -0
- package/dist/admin/migrations/postgres/index.d.ts.map +1 -0
- package/dist/admin/migrations/postgres/index.js +17 -0
- package/dist/admin/migrations/postgres/index.js.map +1 -0
- package/dist/admin/migrations/runner.d.ts +81 -0
- package/dist/admin/migrations/runner.d.ts.map +1 -0
- package/dist/admin/migrations/runner.js +137 -0
- package/dist/admin/migrations/runner.js.map +1 -0
- package/dist/admin/migrations/sqlite/0001-init.d.ts +11 -0
- package/dist/admin/migrations/sqlite/0001-init.d.ts.map +1 -0
- package/dist/admin/migrations/sqlite/0001-init.js +44 -0
- package/dist/admin/migrations/sqlite/0001-init.js.map +1 -0
- package/dist/admin/migrations/sqlite/index.d.ts +7 -0
- package/dist/admin/migrations/sqlite/index.d.ts.map +1 -0
- package/dist/admin/migrations/sqlite/index.js +38 -0
- package/dist/admin/migrations/sqlite/index.js.map +1 -0
- package/dist/admin/postgres.d.ts +27 -4
- package/dist/admin/postgres.d.ts.map +1 -1
- package/dist/admin/postgres.js +49 -55
- package/dist/admin/postgres.js.map +1 -1
- package/dist/admin/sqlite.d.ts +18 -2
- package/dist/admin/sqlite.d.ts.map +1 -1
- package/dist/admin/sqlite.js +51 -54
- package/dist/admin/sqlite.js.map +1 -1
- package/dist/core/admin.d.ts +8 -1
- package/dist/core/admin.d.ts.map +1 -1
- package/dist/core/admin.js +21 -2
- package/dist/core/admin.js.map +1 -1
- package/dist/core/agent.d.ts +3 -0
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +4 -4
- package/dist/core/agent.js.map +1 -1
- package/dist/core/context.d.ts +5 -0
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +38 -9
- package/dist/core/context.js.map +1 -1
- package/dist/core/engine.d.ts +4 -1
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +93 -20
- package/dist/core/engine.js.map +1 -1
- package/dist/core/hitl.d.ts.map +1 -1
- package/dist/core/hitl.js +6 -0
- package/dist/core/hitl.js.map +1 -1
- package/dist/core/loop.d.ts +35 -0
- package/dist/core/loop.d.ts.map +1 -1
- package/dist/core/loop.js +134 -19
- package/dist/core/loop.js.map +1 -1
- package/dist/core/messages.d.ts +48 -0
- package/dist/core/messages.d.ts.map +1 -0
- package/dist/core/messages.js +74 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/publish.d.ts +21 -1
- package/dist/core/publish.d.ts.map +1 -1
- package/dist/core/publish.js +57 -3
- package/dist/core/publish.js.map +1 -1
- package/dist/core/run.d.ts.map +1 -1
- package/dist/core/run.js +44 -4
- package/dist/core/run.js.map +1 -1
- package/dist/core/stop.d.ts.map +1 -1
- package/dist/core/stop.js +42 -0
- package/dist/core/stop.js.map +1 -1
- package/dist/core/subagent.d.ts +5 -0
- package/dist/core/subagent.d.ts.map +1 -1
- package/dist/core/subagent.js +23 -10
- package/dist/core/subagent.js.map +1 -1
- package/dist/core/tools.d.ts +12 -0
- package/dist/core/tools.d.ts.map +1 -1
- package/dist/core/tools.js.map +1 -1
- package/dist/core/types.d.ts +164 -9
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +9 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/usage.d.ts +47 -2
- package/dist/core/usage.d.ts.map +1 -1
- package/dist/core/usage.js +130 -2
- package/dist/core/usage.js.map +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/ports/admin.d.ts +18 -0
- package/dist/ports/admin.d.ts.map +1 -1
- package/dist/ports/runtime.d.ts +78 -4
- package/dist/ports/runtime.d.ts.map +1 -1
- package/dist/ports/storage.d.ts +16 -4
- package/dist/ports/storage.d.ts.map +1 -1
- package/dist/pricing.d.ts +66 -0
- package/dist/pricing.d.ts.map +1 -0
- package/dist/pricing.js +98 -0
- package/dist/pricing.js.map +1 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +7 -2
- package/dist/runtime.js.map +1 -1
- package/package.json +1 -1
package/dist/core/types.d.ts
CHANGED
|
@@ -84,6 +84,9 @@ export interface RunRecord {
|
|
|
84
84
|
prompt?: string | null;
|
|
85
85
|
tokenBudget?: number | null;
|
|
86
86
|
runState?: Record<string, unknown> | null;
|
|
87
|
+
/** The provider options the run was dispatched with (§3.1), merged across
|
|
88
|
+
* config, spec and input. Present only when `recordPayloads` is on. */
|
|
89
|
+
providerOptions?: Record<string, unknown> | null;
|
|
87
90
|
/** A nested run's capped result, handed back to its parent (§2.7). */
|
|
88
91
|
result?: unknown;
|
|
89
92
|
}
|
|
@@ -95,16 +98,15 @@ export interface NewRunRecord {
|
|
|
95
98
|
prompt?: string | null;
|
|
96
99
|
tokenBudget?: number | null;
|
|
97
100
|
runState?: Record<string, unknown> | null;
|
|
101
|
+
providerOptions?: Record<string, unknown> | null;
|
|
98
102
|
/** Defaults to 0 — a dispatched run. */
|
|
99
103
|
depth?: number;
|
|
100
104
|
parentRunId?: string | null;
|
|
101
105
|
}
|
|
102
106
|
export type RunPatch = Partial<Omit<RunRecord, 'id' | 'threadId'>>;
|
|
103
|
-
/**
|
|
104
|
-
*
|
|
105
|
-
|
|
106
|
-
* pricing is a downstream concern computed over them. */
|
|
107
|
-
/** Cumulative token attribution across every run on a thread (§4). */
|
|
107
|
+
/** Cumulative token AND money attribution across every run on a thread (§4).
|
|
108
|
+
* Tokens are what the provider reported; the money is what the Pricer put on
|
|
109
|
+
* each row as it was stored. */
|
|
108
110
|
export interface UsageTotals {
|
|
109
111
|
/** Fresh (uncached) prompt tokens. */
|
|
110
112
|
inputTokens: number;
|
|
@@ -113,6 +115,76 @@ export interface UsageTotals {
|
|
|
113
115
|
outputTokens: number;
|
|
114
116
|
/** input + cached + output. */
|
|
115
117
|
totalTokens: number;
|
|
118
|
+
/** Summed cost in millionths of one `currency` unit: 1_000_000 is one
|
|
119
|
+
* dollar when the currency is USD. */
|
|
120
|
+
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. */
|
|
124
|
+
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. */
|
|
127
|
+
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. */
|
|
130
|
+
lines: UsageLine[];
|
|
131
|
+
}
|
|
132
|
+
/** One agent's spend on one model, summed over its calls (§4). This is the
|
|
133
|
+
* bill line a credit system charges for. */
|
|
134
|
+
export interface UsageLine {
|
|
135
|
+
/** null for the main run, the nested run's id otherwise. */
|
|
136
|
+
agentId?: string | null;
|
|
137
|
+
agentName?: string | null;
|
|
138
|
+
/** The registry key; `modelId` is the wire id it resolved to. */
|
|
139
|
+
model?: string | null;
|
|
140
|
+
modelId?: string | null;
|
|
141
|
+
inputTokens: number;
|
|
142
|
+
cacheReadInputTokens: number;
|
|
143
|
+
cacheWriteInputTokens: number;
|
|
144
|
+
outputTokens: number;
|
|
145
|
+
reasoningTokens: number;
|
|
146
|
+
/** How many model calls this line covers. */
|
|
147
|
+
calls: number;
|
|
148
|
+
/** How many of those had estimated tokens, because they were cut off
|
|
149
|
+
* before the provider reported real ones. */
|
|
150
|
+
estimated: number;
|
|
151
|
+
costMicros: number;
|
|
152
|
+
}
|
|
153
|
+
/** Narrows a usage read (§4). */
|
|
154
|
+
export interface UsageFilter {
|
|
155
|
+
/** Limit the read to one dispatched run, nested runs included. Omitted
|
|
156
|
+
* reads the whole thread. */
|
|
157
|
+
runId?: string;
|
|
158
|
+
}
|
|
159
|
+
/** How the model call that produced a usage row ended. */
|
|
160
|
+
export type UsageOutcome =
|
|
161
|
+
/** Ran to its finish; the provider reported the counters itself. */
|
|
162
|
+
'finished'
|
|
163
|
+
/** A user stop cut the call mid-stream, so no finish arrived and the
|
|
164
|
+
* tokens are estimated. */
|
|
165
|
+
| 'aborted'
|
|
166
|
+
/** The provider failed mid-call. What it had already streamed was still
|
|
167
|
+
* billed, so the row is kept. */
|
|
168
|
+
| 'error';
|
|
169
|
+
/** Which part of the platform made the call. */
|
|
170
|
+
export type UsageKind =
|
|
171
|
+
/** A step of an agent loop, main run or nested (§2.1, §2.7). */
|
|
172
|
+
'step'
|
|
173
|
+
/** The summary the platform writes to keep the prompt inside the model's
|
|
174
|
+
* window (§2.6). Nobody asked for it, so it is worth being able to see
|
|
175
|
+
* what it costs on its own. */
|
|
176
|
+
| 'compaction';
|
|
177
|
+
/** The money one model call cost. */
|
|
178
|
+
export interface Cost {
|
|
179
|
+
/** Millionths of one `currency` unit: 1_000_000 is one dollar when the
|
|
180
|
+
* currency is USD. Integers, because money summed as a float drifts. */
|
|
181
|
+
micros: number;
|
|
182
|
+
/** ISO-4217 code — 'USD' for the shipped table pricer. */
|
|
183
|
+
currency: string;
|
|
184
|
+
/** Where the number came from: 'receipt' when the provider computed it,
|
|
185
|
+
* 'table' from a price list, 'estimate' for anything a pricer worked out
|
|
186
|
+
* itself. It rides along so a bill can be audited. */
|
|
187
|
+
source: 'receipt' | 'table' | 'estimate';
|
|
116
188
|
}
|
|
117
189
|
/** How full the next run's prompt would be (§2.6). Token counts are the same
|
|
118
190
|
* rough estimate the engine itself compacts on, so the number a user sees is
|
|
@@ -127,15 +199,61 @@ export interface ContextUsage {
|
|
|
127
199
|
/** Messages currently in the thread, summaries included. */
|
|
128
200
|
messages: number;
|
|
129
201
|
}
|
|
202
|
+
/** ONE model call, recorded by the engine after every call it makes: a step
|
|
203
|
+
* of the main run, a step of a nested run, a compaction pass, streamed or
|
|
204
|
+
* not, finished or cut short.
|
|
205
|
+
*
|
|
206
|
+
* It carries everything a Pricer needs to put a price on the call, so pricing
|
|
207
|
+
* never has to reach back into the run to find out what happened. */
|
|
130
208
|
export interface NewUsage {
|
|
209
|
+
/** The DISPATCHED run this call belongs to (§2.9). A nested run's calls
|
|
210
|
+
* carry their parent's run id, so one run's bill is one query. */
|
|
211
|
+
runId?: string | null;
|
|
212
|
+
/** Whose stream made the call (§2.7): null is the main run, otherwise the
|
|
213
|
+
* nested run's id. */
|
|
131
214
|
agentId?: string | null;
|
|
215
|
+
/** The registered handle for the main run, the delegation's name for a
|
|
216
|
+
* nested one. What a bill line should say. */
|
|
217
|
+
agentName?: string | null;
|
|
218
|
+
kind: UsageKind;
|
|
219
|
+
/** 1-based iteration inside its loop; 0 for a compaction. */
|
|
220
|
+
step: number;
|
|
221
|
+
/** The registry key the call was made with, e.g. 'claude-sonnet-4@high' —
|
|
222
|
+
* what a price list is usually keyed by. */
|
|
223
|
+
model?: string | null;
|
|
224
|
+
/** The wire id the provider reported back, which can differ from the key
|
|
225
|
+
* that asked for it (an alias, a dated snapshot). */
|
|
226
|
+
modelId?: string | null;
|
|
132
227
|
/** Fresh (uncached) prompt tokens. */
|
|
133
228
|
inputTokens: number;
|
|
134
229
|
/** Prompt tokens served from the provider's prompt cache (§2.6 caching). */
|
|
135
|
-
|
|
230
|
+
cacheReadInputTokens: number;
|
|
231
|
+
/** Prompt tokens WRITTEN into that cache — a separate line on the
|
|
232
|
+
* provider's bill, and not part of `totalTokens`. */
|
|
233
|
+
cacheWriteInputTokens: number;
|
|
136
234
|
outputTokens: number;
|
|
137
|
-
/**
|
|
235
|
+
/** Thinking tokens. Most providers already count these inside
|
|
236
|
+
* `outputTokens`, so price them at zero unless yours bills them
|
|
237
|
+
* separately (see the pricing module). */
|
|
238
|
+
reasoningTokens: number;
|
|
239
|
+
/** input + cache reads + output: the counter the token budget is measured
|
|
240
|
+
* against. Cache writes and reasoning are deliberately outside it — cache
|
|
241
|
+
* writes are their own bill line, and reasoning tokens are usually already
|
|
242
|
+
* inside the output count. */
|
|
138
243
|
totalTokens: number;
|
|
244
|
+
outcome: UsageOutcome;
|
|
245
|
+
/** True when no finish arrived and the counters are the platform's own
|
|
246
|
+
* estimate over what it does know: the prompt it sent and the text that did
|
|
247
|
+
* stream, measured the same way compaction measures context fill. */
|
|
248
|
+
estimated?: boolean;
|
|
249
|
+
/** Whatever the provider attached to the finish: a gateway receipt, a
|
|
250
|
+
* generation id, anything a Pricer wants to read. Two reserved keys are
|
|
251
|
+
* added by the platform: `responseId` and `responseHeaders`, because a
|
|
252
|
+
* gateway bills through a header. */
|
|
253
|
+
providerMetadata?: Record<string, unknown> | null;
|
|
254
|
+
/** Filled by the Pricer before the row is stored. Absent means the call
|
|
255
|
+
* went unpriced, and any total over it is a floor. */
|
|
256
|
+
cost?: Cost | null;
|
|
139
257
|
}
|
|
140
258
|
/** Additional provider-specific options, passed through to the provider from
|
|
141
259
|
* the AI SDK. Namespaced per provider — the platform never inspects them. */
|
|
@@ -163,6 +281,9 @@ export interface RunJob {
|
|
|
163
281
|
* attached — hours later, in another process, after an approval. */
|
|
164
282
|
state?: AgentRunState;
|
|
165
283
|
tokenBudget?: number;
|
|
284
|
+
/** The money cap for this run (§4), carried so the worker enforces the same
|
|
285
|
+
* cap the caller asked for. */
|
|
286
|
+
costBudgetMicros?: number;
|
|
166
287
|
providerOptions?: ProviderOptions;
|
|
167
288
|
}
|
|
168
289
|
/** Identifies a nested run well enough to re-enter its loop (§2.7). Persisted
|
|
@@ -182,6 +303,7 @@ export interface ResumeInfo {
|
|
|
182
303
|
/** The run these segments belong to (§2.9). */
|
|
183
304
|
runId?: string;
|
|
184
305
|
tokenBudget?: number;
|
|
306
|
+
costBudgetMicros?: number;
|
|
185
307
|
providerOptions?: ProviderOptions;
|
|
186
308
|
/** The run's state (§2.10). A park can outlive the process that made it, so
|
|
187
309
|
* the state has to travel on the ticket — rebuilt from here, not from a
|
|
@@ -195,7 +317,14 @@ export interface ResumeInfo {
|
|
|
195
317
|
export interface ResolvedModel {
|
|
196
318
|
instance: () => LanguageModel;
|
|
197
319
|
contextWindow?: number;
|
|
320
|
+
/** The wire id this key resolves to, e.g. 'gpt-4o-2024-11-20' for the key
|
|
321
|
+
* 'gpt-4o'. It goes onto every usage row, so a price list keyed by wire
|
|
322
|
+
* ids can match one (§4). Omitted means the key IS the id. */
|
|
323
|
+
modelId?: string;
|
|
198
324
|
}
|
|
325
|
+
/** The model id to record for a registry key: what `resolveModel` declared,
|
|
326
|
+
* or the key itself when it declared nothing. */
|
|
327
|
+
export declare const wireId: (model: ResolvedModel, key: string) => string;
|
|
199
328
|
/** Opt-in subagent delegation config (§2.7): the platform constructs the
|
|
200
329
|
* run-scoped spawnSubagent tool — users cannot build it themselves. */
|
|
201
330
|
export interface SubagentsConfig {
|
|
@@ -232,6 +361,13 @@ export interface AgentConfig {
|
|
|
232
361
|
* input nor the agent spec declares one. `undefined` = unbounded apart
|
|
233
362
|
* from `maxSteps` (§2.1 safety cap). */
|
|
234
363
|
tokenBudget?: number;
|
|
364
|
+
/** Default per-run money cap (§4), in millionths of the pricer's currency:
|
|
365
|
+
* 250_000 is roughly a quarter of a dollar when the pricer works in USD.
|
|
366
|
+
* `undefined` = unbounded. Checked between steps, exactly like
|
|
367
|
+
* `tokenBudget`, so the step that crossed the line is always kept in full.
|
|
368
|
+
* Needs a pricer: an unpriced call spends no money and so can never
|
|
369
|
+
* exhaust it. */
|
|
370
|
+
costBudgetMicros?: number;
|
|
235
371
|
/** Subagent nesting cap (§2.7) */
|
|
236
372
|
subagentMaxDepth: number;
|
|
237
373
|
/** Concurrent subagents per run (§2.7) */
|
|
@@ -259,6 +395,12 @@ export interface AgentConfig {
|
|
|
259
395
|
compactionTrigger: number;
|
|
260
396
|
/** Share of budget kept verbatim as the recent tail (§2.6) */
|
|
261
397
|
contextTailShare: number;
|
|
398
|
+
/** Registry key of the cheap model that writes the context summary (§2.6).
|
|
399
|
+
* It is resolved through your own `resolveModel`, so it must be a key that
|
|
400
|
+
* resolver knows — a registry with no 'gpt-4o-mini' in it has to name its
|
|
401
|
+
* own. The call is billed like any other, under `kind: 'compaction'` (§4).
|
|
402
|
+
* Default: 'gpt-4o-mini'. */
|
|
403
|
+
compactionModel: string;
|
|
262
404
|
/** Prompt caching (§2.6): when true, the engine stamps Anthropic-style
|
|
263
405
|
* ephemeral cache breakpoints on the prompt prefix so providers that
|
|
264
406
|
* support marking cache it. OpenAI models cache automatically (≥1024
|
|
@@ -270,8 +412,11 @@ export interface AgentConfig {
|
|
|
270
412
|
/** Lease (seconds) for the per-thread run lock — must exceed the longest
|
|
271
413
|
* possible run segment; parked HITL waits hold NO lock (§2.8, §3.4). */
|
|
272
414
|
runLockLeaseSeconds: number;
|
|
273
|
-
/** Billing pre-execution check (§4). Return `{ ok: false, error }` to reject
|
|
274
|
-
|
|
415
|
+
/** Billing pre-execution check (§4). Return `{ ok: false, error }` to reject
|
|
416
|
+
* a run. The check can publish on the thread (a credit warning, a reset
|
|
417
|
+
* date) so every client sees why; the platform also publishes RUN_REFUSED
|
|
418
|
+
* with the error. */
|
|
419
|
+
billingPreCheck?: (check: BillingCheck) => Promise<{
|
|
275
420
|
ok: boolean;
|
|
276
421
|
error?: string;
|
|
277
422
|
}>;
|
|
@@ -281,6 +426,16 @@ export interface AgentConfig {
|
|
|
281
426
|
* provider namespace. */
|
|
282
427
|
providerOptions?: ProviderOptions;
|
|
283
428
|
}
|
|
429
|
+
/** What `billingPreCheck` receives: the thread about to run, the run's state
|
|
430
|
+
* (§2.10), and a way to publish on the thread before the refusal reaches the
|
|
431
|
+
* caller. `publishEvent(type, payload, { durable })` — durable by default. */
|
|
432
|
+
export interface BillingCheck {
|
|
433
|
+
threadId: string;
|
|
434
|
+
state: AgentRunState;
|
|
435
|
+
publishEvent: (type: string, payload: unknown, options?: {
|
|
436
|
+
durable?: boolean;
|
|
437
|
+
}) => Promise<AgentEvent>;
|
|
438
|
+
}
|
|
284
439
|
export declare const DEFAULT_CONFIG: AgentConfig;
|
|
285
440
|
export declare function resolveConfig(partial?: Partial<AgentConfig>): AgentConfig;
|
|
286
441
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -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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"}
|
package/dist/core/types.js
CHANGED
|
@@ -6,6 +6,9 @@ export function mergeProviderOptions(base, override) {
|
|
|
6
6
|
return base;
|
|
7
7
|
return { ...base, ...override };
|
|
8
8
|
}
|
|
9
|
+
/** The model id to record for a registry key: what `resolveModel` declared,
|
|
10
|
+
* or the key itself when it declared nothing. */
|
|
11
|
+
export const wireId = (model, key) => model.modelId && model.modelId.length > 0 ? model.modelId : key;
|
|
9
12
|
export const DEFAULT_CONFIG = {
|
|
10
13
|
hitlTtlMs: 15 * 60_000,
|
|
11
14
|
reclaimGraceMs: 60_000,
|
|
@@ -23,6 +26,7 @@ export const DEFAULT_CONFIG = {
|
|
|
23
26
|
contextOutputReserveTokens: 16_000,
|
|
24
27
|
compactionTrigger: 0.8,
|
|
25
28
|
contextTailShare: 0.25,
|
|
29
|
+
compactionModel: 'gpt-4o-mini',
|
|
26
30
|
promptCaching: true,
|
|
27
31
|
runLockLeaseSeconds: 30 * 60,
|
|
28
32
|
};
|
|
@@ -32,6 +36,11 @@ export function resolveConfig(partial) {
|
|
|
32
36
|
// A subagent must never get a looser step ceiling than its parent run (§2.7)
|
|
33
37
|
throw new Error(`Invalid config: subagentMaxSteps (${config.subagentMaxSteps}) must be between 1 and maxSteps (${config.maxSteps})`);
|
|
34
38
|
}
|
|
39
|
+
if (!config.compactionModel) {
|
|
40
|
+
// Compaction has no fallback: without a model to summarize with, a thread
|
|
41
|
+
// that outgrows its window cannot run at all (§2.6).
|
|
42
|
+
throw new Error('Invalid config: compactionModel must be a non-empty registry key');
|
|
43
|
+
}
|
|
35
44
|
if (!Number.isInteger(config.stopPollMs) || config.stopPollMs < 1) {
|
|
36
45
|
// The poll is the only thing that delivers a stop to a running worker (§2.1)
|
|
37
46
|
throw new Error(`Invalid config: stopPollMs (${config.stopPollMs}) must be an integer of at least 1`);
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/core/usage.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import type { NewUsage, UsageTotals } from './types.js';
|
|
2
|
+
import type { RuntimePorts } from '../ports/runtime.js';
|
|
3
|
+
/** Token attribution (§4): the four canonical counters. Same shape as
|
|
4
|
+
* UsageTotals. */
|
|
3
5
|
export interface TokenAttribution {
|
|
4
6
|
/** Fresh (uncached) prompt tokens. */
|
|
5
7
|
inputTokens: number;
|
|
@@ -36,5 +38,48 @@ type UsageLike = {
|
|
|
36
38
|
export declare function attributeTokens(usage: UsageLike, meta?: ProviderMetadataLike): TokenAttribution;
|
|
37
39
|
/** Total tokens used — input + cached + output, NaN-guarded. */
|
|
38
40
|
export declare function countTokens(usage: UsageLike, meta?: ProviderMetadataLike): number;
|
|
41
|
+
/** Cache WRITE tokens, which no provider reports in `usage`: Anthropic puts
|
|
42
|
+
* them in provider metadata, and they are a separate line on the bill — a
|
|
43
|
+
* cache write costs more than a fresh input token, so a pricer needs them
|
|
44
|
+
* apart from the rest. */
|
|
45
|
+
export declare function cacheWriteTokens(meta?: ProviderMetadataLike): number;
|
|
46
|
+
/** Reasoning tokens, where the provider separates them out. Usually already
|
|
47
|
+
* inside the output count, which is why the shipped price table prices them
|
|
48
|
+
* at zero by default. */
|
|
49
|
+
export declare function reasoningTokens(usage: UsageLike, meta?: ProviderMetadataLike): number;
|
|
50
|
+
/** Everything a pricer needs from one model call, in the shape a usage row
|
|
51
|
+
* carries it. `attributeTokens` already sorts out the providers'
|
|
52
|
+
* disagreements about input and cache reads; this adds the two counters that
|
|
53
|
+
* only pricing cares about. */
|
|
54
|
+
export declare function fillTokens(usage: UsageLike, meta?: ProviderMetadataLike): Pick<NewUsage, 'inputTokens' | 'cacheReadInputTokens' | 'cacheWriteInputTokens' | 'outputTokens' | 'reasoningTokens' | 'totalTokens'>;
|
|
55
|
+
/** Flatten what the AI SDK reports into the single map a pricer reads.
|
|
56
|
+
* Provider namespaces keep their names; the response id and headers get
|
|
57
|
+
* reserved keys, because an AI gateway bills through a header and a receipt
|
|
58
|
+
* pricer has to be able to find it. */
|
|
59
|
+
export declare function providerMeta(meta?: ProviderMetadataLike, response?: {
|
|
60
|
+
id?: string;
|
|
61
|
+
headers?: Record<string, string>;
|
|
62
|
+
}): Record<string, unknown> | undefined;
|
|
63
|
+
/** Price one model call and store its usage row (§4). Called after every call
|
|
64
|
+
* the platform makes: a step of the main run, a step of a nested run, a
|
|
65
|
+
* compaction pass, streamed or not, finished or cut short.
|
|
66
|
+
*
|
|
67
|
+
* Pricing happens here, before the row is stored, so cost sits on the row
|
|
68
|
+
* beside the tokens and no reader has to work it out again. A pricer that
|
|
69
|
+
* fails, or has nothing to say, leaves the row unpriced rather than failing
|
|
70
|
+
* the run: a bill that is short a line is recoverable, a run that died over a
|
|
71
|
+
* price list is not. Storage failures are logged for the same reason — the
|
|
72
|
+
* tokens of a stopped run were still spent. */
|
|
73
|
+
export declare function recordCall(deps: RuntimePorts, threadId: string, usage: NewUsage): Promise<NewUsage>;
|
|
74
|
+
/** Zero totals — what a thread with no usage rows reports. */
|
|
75
|
+
export declare const emptyTotals: () => UsageTotals;
|
|
76
|
+
/** Sum usage rows into the shape `total` must return: the four counters, the
|
|
77
|
+
* money, and one line per agent and model.
|
|
78
|
+
*
|
|
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. */
|
|
83
|
+
export declare function sumUsage(rows: Iterable<NewUsage>): UsageTotals;
|
|
39
84
|
export {};
|
|
40
85
|
//# sourceMappingURL=usage.d.ts.map
|
package/dist/core/usage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/core/usage.ts"],"names":[],"mappings":"AAAA;
|
|
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"}
|
package/dist/core/usage.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/** Token attribution (§4): the platform records the counters; USD/credit
|
|
2
|
-
* pricing is a downstream concern computed over them. */
|
|
3
1
|
const pick = (...vals) => {
|
|
4
2
|
for (const v of vals) {
|
|
5
3
|
if (typeof v === 'number' && Number.isFinite(v))
|
|
@@ -40,4 +38,134 @@ export function attributeTokens(usage, meta) {
|
|
|
40
38
|
export function countTokens(usage, meta) {
|
|
41
39
|
return attributeTokens(usage, meta).totalTokens;
|
|
42
40
|
}
|
|
41
|
+
/** Cache WRITE tokens, which no provider reports in `usage`: Anthropic puts
|
|
42
|
+
* them in provider metadata, and they are a separate line on the bill — a
|
|
43
|
+
* cache write costs more than a fresh input token, so a pricer needs them
|
|
44
|
+
* apart from the rest. */
|
|
45
|
+
export function cacheWriteTokens(meta) {
|
|
46
|
+
return pick(meta?.anthropic?.cacheCreationInputTokens, meta?.bedrock?.cacheWriteInputTokens);
|
|
47
|
+
}
|
|
48
|
+
/** Reasoning tokens, where the provider separates them out. Usually already
|
|
49
|
+
* inside the output count, which is why the shipped price table prices them
|
|
50
|
+
* at zero by default. */
|
|
51
|
+
export function reasoningTokens(usage, meta) {
|
|
52
|
+
return pick(usage?.reasoningTokens, meta?.openai?.reasoningTokens);
|
|
53
|
+
}
|
|
54
|
+
/** Everything a pricer needs from one model call, in the shape a usage row
|
|
55
|
+
* carries it. `attributeTokens` already sorts out the providers'
|
|
56
|
+
* disagreements about input and cache reads; this adds the two counters that
|
|
57
|
+
* only pricing cares about. */
|
|
58
|
+
export function fillTokens(usage, meta) {
|
|
59
|
+
const a = attributeTokens(usage, meta);
|
|
60
|
+
return {
|
|
61
|
+
inputTokens: a.inputTokens,
|
|
62
|
+
cacheReadInputTokens: a.cachedInputTokens,
|
|
63
|
+
cacheWriteInputTokens: cacheWriteTokens(meta),
|
|
64
|
+
outputTokens: a.outputTokens,
|
|
65
|
+
reasoningTokens: reasoningTokens(usage, meta),
|
|
66
|
+
totalTokens: a.totalTokens,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/** Flatten what the AI SDK reports into the single map a pricer reads.
|
|
70
|
+
* Provider namespaces keep their names; the response id and headers get
|
|
71
|
+
* reserved keys, because an AI gateway bills through a header and a receipt
|
|
72
|
+
* pricer has to be able to find it. */
|
|
73
|
+
export function providerMeta(meta, response) {
|
|
74
|
+
const out = { ...(meta ?? {}) };
|
|
75
|
+
if (response?.id)
|
|
76
|
+
out.responseId = response.id;
|
|
77
|
+
if (response?.headers && Object.keys(response.headers).length > 0) {
|
|
78
|
+
out.responseHeaders = response.headers;
|
|
79
|
+
}
|
|
80
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
81
|
+
}
|
|
82
|
+
/** Price one model call and store its usage row (§4). Called after every call
|
|
83
|
+
* the platform makes: a step of the main run, a step of a nested run, a
|
|
84
|
+
* compaction pass, streamed or not, finished or cut short.
|
|
85
|
+
*
|
|
86
|
+
* Pricing happens here, before the row is stored, so cost sits on the row
|
|
87
|
+
* beside the tokens and no reader has to work it out again. A pricer that
|
|
88
|
+
* fails, or has nothing to say, leaves the row unpriced rather than failing
|
|
89
|
+
* the run: a bill that is short a line is recoverable, a run that died over a
|
|
90
|
+
* price list is not. Storage failures are logged for the same reason — the
|
|
91
|
+
* tokens of a stopped run were still spent. */
|
|
92
|
+
export async function recordCall(deps, threadId, usage) {
|
|
93
|
+
const log = deps.log ?? console;
|
|
94
|
+
const priced = { ...usage };
|
|
95
|
+
if (deps.pricer && !priced.cost) {
|
|
96
|
+
try {
|
|
97
|
+
priced.cost = (await deps.pricer.price(priced)) ?? null;
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
log.error('usage not priced', { run: priced.runId, model: priced.model, err });
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
await deps.storage.usage.record(threadId, priced);
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
log.error('usage not recorded', { run: priced.runId, thread: threadId, err });
|
|
108
|
+
}
|
|
109
|
+
return priced;
|
|
110
|
+
}
|
|
111
|
+
/** Zero totals — what a thread with no usage rows reports. */
|
|
112
|
+
export const emptyTotals = () => ({
|
|
113
|
+
inputTokens: 0,
|
|
114
|
+
cachedInputTokens: 0,
|
|
115
|
+
outputTokens: 0,
|
|
116
|
+
totalTokens: 0,
|
|
117
|
+
costMicros: 0,
|
|
118
|
+
unpriced: 0,
|
|
119
|
+
lines: [],
|
|
120
|
+
});
|
|
121
|
+
/** Sum usage rows into the shape `total` must return: the four counters, the
|
|
122
|
+
* money, and one line per agent and model.
|
|
123
|
+
*
|
|
124
|
+
* A storage adapter that can group in the database should do that instead.
|
|
125
|
+
* This is for the ones that cannot, and for anyone writing their own adapter:
|
|
126
|
+
* feed every matching row through it and you get exactly what the port
|
|
127
|
+
* promises, lines in first-seen order. */
|
|
128
|
+
export function sumUsage(rows) {
|
|
129
|
+
const out = emptyTotals();
|
|
130
|
+
const index = new Map();
|
|
131
|
+
for (const u of rows) {
|
|
132
|
+
out.inputTokens += u.inputTokens;
|
|
133
|
+
out.cachedInputTokens += u.cacheReadInputTokens;
|
|
134
|
+
out.outputTokens += u.outputTokens;
|
|
135
|
+
out.totalTokens += u.totalTokens;
|
|
136
|
+
if (u.cost) {
|
|
137
|
+
out.costMicros += u.cost.micros;
|
|
138
|
+
out.currency ??= u.cost.currency;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
out.unpriced += 1;
|
|
142
|
+
}
|
|
143
|
+
const key = [u.agentId ?? '', u.agentName ?? '', u.model ?? '', u.modelId ?? ''].join('\u0000');
|
|
144
|
+
let i = index.get(key);
|
|
145
|
+
if (i === undefined) {
|
|
146
|
+
i = out.lines.length;
|
|
147
|
+
index.set(key, i);
|
|
148
|
+
out.lines.push({
|
|
149
|
+
agentId: u.agentId ?? null,
|
|
150
|
+
agentName: u.agentName ?? null,
|
|
151
|
+
model: u.model ?? null,
|
|
152
|
+
modelId: u.modelId ?? null,
|
|
153
|
+
inputTokens: 0, cacheReadInputTokens: 0, cacheWriteInputTokens: 0,
|
|
154
|
+
outputTokens: 0, reasoningTokens: 0, calls: 0, estimated: 0, costMicros: 0,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
const line = out.lines[i];
|
|
158
|
+
line.inputTokens += u.inputTokens;
|
|
159
|
+
line.cacheReadInputTokens += u.cacheReadInputTokens;
|
|
160
|
+
line.cacheWriteInputTokens += u.cacheWriteInputTokens;
|
|
161
|
+
line.outputTokens += u.outputTokens;
|
|
162
|
+
line.reasoningTokens += u.reasoningTokens;
|
|
163
|
+
line.calls += 1;
|
|
164
|
+
if (u.estimated)
|
|
165
|
+
line.estimated += 1;
|
|
166
|
+
if (u.cost)
|
|
167
|
+
line.costMicros += u.cost.micros;
|
|
168
|
+
}
|
|
169
|
+
return out;
|
|
170
|
+
}
|
|
43
171
|
//# sourceMappingURL=usage.js.map
|
package/dist/core/usage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/core/usage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/core/usage.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,21 +2,29 @@ export type { Storage } from './ports/storage.js';
|
|
|
2
2
|
export type { EventBus } from './ports/bus.js';
|
|
3
3
|
export type { EnqueueOptions, Queue } from './ports/queue.js';
|
|
4
4
|
export type { Kv } from './ports/kv.js';
|
|
5
|
-
export type { AgentCore, AgentHandle, AgentKind, DeleteThreadResult, GenerateTextAgentSpec, RespondInput, RespondResult, ResolvedModel, RunInput, RunResult, RuntimeOptions, RuntimePorts, StopResult, StreamTextAgentSpec, SubagentsConfig, ThreadSnapshot, ThreadUsage, } from './ports/runtime.js';
|
|
5
|
+
export type { AgentCore, AgentHandle, AgentKind, DeleteThreadResult, GenerateTextAgentSpec, RespondInput, RespondResult, ResolvedModel, RunInput, RunResult, RuntimeOptions, RuntimePorts, StopResult, StreamTextAgentSpec, SubagentsConfig, ThreadSnapshot, ThreadUsage, Pricer, Logger, RunFinishInfo, } from './ports/runtime.js';
|
|
6
6
|
export { setupAgentCore } from './runtime.js';
|
|
7
7
|
export { execute, executeStep, executeWithPolicy, finalize, markRequiresConfirmation, type ExecuteInput, type ExecuteOutcome, type FinalizeInput, type StepResult, } from './core/engine.js';
|
|
8
8
|
export { agentTool, type ToolContext } from './core/tools.js';
|
|
9
9
|
export { followEvents, toSseStream, sseFrame, SSE_HEADERS, type FollowOptions, type SseOptions, type SseStream, } from './core/follow.js';
|
|
10
10
|
export type { AgentRunState, BoundStorage, StorageContext } from './core/state.js';
|
|
11
|
+
export type { AdminThread, ThreadStart, StepRecord, RunFilter, AdminThreadFilter } from './ports/admin.js';
|
|
12
|
+
export type { BillingCheck } from './core/types.js';
|
|
11
13
|
export { claimRun, redriveKey, runIdKey } from './core/keys.js';
|
|
12
|
-
export { countTokens } from './core/usage.js';
|
|
14
|
+
export { countTokens, sumUsage, emptyTotals } from './core/usage.js';
|
|
15
|
+
/** Pricing (§4): the pricers that ship with the platform. `pricing.table(...)`
|
|
16
|
+
* is the common case; see the module for `receipt` and `chain`. */
|
|
17
|
+
export * as pricing from './pricing.js';
|
|
18
|
+
export type { ModelPrice, PriceTable, ReceiptReader } from './pricing.js';
|
|
13
19
|
export { respond, parkForApproval, loadPendingHitl, loadOpenHitls, withHitl, HITL_PARKED, HITL_TTL_MS, hitlKey, type HitlFrame, type HitlResponse, type ParkInput, type PendingHitl, } from './core/hitl.js';
|
|
14
20
|
export { reclaimIfOrphaned } from './core/reclaim.js';
|
|
15
21
|
export { contextBudget, contextUsage, compactContext, CONTEXT_TOKEN_CEILING } from './core/context.js';
|
|
16
22
|
export { Semaphore, runNestedAgent, spawnSubagentTool, type SubagentCtx } from './core/subagent.js';
|
|
17
23
|
export { run } from './core/run.js';
|
|
24
|
+
export { publishEvent, withPublishEvent, RESERVED_EVENT_TYPES, type PublishEventOptions, type ToolPublishEvent, } from './core/publish.js';
|
|
18
25
|
export { stop } from './core/stop.js';
|
|
19
|
-
export {
|
|
26
|
+
export { repairDanglingToolCalls, DANGLING_CALL_RESULT } from './core/messages.js';
|
|
27
|
+
export { DEFAULT_CONFIG, resolveConfig, type AgentConfig, type AgentEvent, type ExecutionState, type MessageDTO, type MessageRole, type NewMessage, type NewRunRecord, type NewUsage, type UsageLine, type UsageFilter, type UsageKind, type UsageOutcome, type Cost, type ResolvedModel as ResolvedModelDTO, type RunPatch, type RunRecord, type RunJob, type ResumeInfo, type ContextUsage, type NestedDescriptor, type ThreadDTO, type UsageTotals, } from './core/types.js';
|
|
20
28
|
export { PrismaStorage, type PrismaLike } from './adapters/prisma.js';
|
|
21
29
|
export { UpstashBus, UpstashKv, THREAD_CHANNEL, type UpstashRedisLike, type UpstashSubscriberLike } from './adapters/upstash.js';
|
|
22
30
|
export { RedisBus, RedisKv, type RedisClientLike, type RedisSubscriberLike } from './adapters/redis.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,YAAY,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,QAAQ,EACR,SAAS,EACT,cAAc,EACd,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,YAAY,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,QAAQ,EACR,SAAS,EACT,cAAc,EACd,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,WAAW,EACX,MAAM,EACN,MAAM,EACN,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EACL,OAAO,EACP,WAAW,EACX,iBAAiB,EACjB,QAAQ,EACR,wBAAwB,EACxB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,UAAU,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,SAAS,GACf,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnF,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC3G,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAErE;oEACoE;AACpE,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EACL,OAAO,EACP,eAAe,EACf,eAAe,EACf,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EACX,OAAO,EACP,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACvG,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGnF,OAAO,EACL,cAAc,EACd,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,aAAa,IAAI,gBAAgB,EACtC,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACjI,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,13 +5,18 @@ export { execute, executeStep, executeWithPolicy, finalize, markRequiresConfirma
|
|
|
5
5
|
export { agentTool } from './core/tools.js';
|
|
6
6
|
export { followEvents, toSseStream, sseFrame, SSE_HEADERS, } from './core/follow.js';
|
|
7
7
|
export { claimRun, redriveKey, runIdKey } from './core/keys.js';
|
|
8
|
-
export { countTokens } from './core/usage.js';
|
|
8
|
+
export { countTokens, sumUsage, emptyTotals } from './core/usage.js';
|
|
9
|
+
/** Pricing (§4): the pricers that ship with the platform. `pricing.table(...)`
|
|
10
|
+
* is the common case; see the module for `receipt` and `chain`. */
|
|
11
|
+
export * as pricing from './pricing.js';
|
|
9
12
|
export { respond, parkForApproval, loadPendingHitl, loadOpenHitls, withHitl, HITL_PARKED, HITL_TTL_MS, hitlKey, } from './core/hitl.js';
|
|
10
13
|
export { reclaimIfOrphaned } from './core/reclaim.js';
|
|
11
14
|
export { contextBudget, contextUsage, compactContext, CONTEXT_TOKEN_CEILING } from './core/context.js';
|
|
12
15
|
export { Semaphore, runNestedAgent, spawnSubagentTool } from './core/subagent.js';
|
|
13
16
|
export { run } from './core/run.js';
|
|
17
|
+
export { publishEvent, withPublishEvent, RESERVED_EVENT_TYPES, } from './core/publish.js';
|
|
14
18
|
export { stop } from './core/stop.js';
|
|
19
|
+
export { repairDanglingToolCalls, DANGLING_CALL_RESULT } from './core/messages.js';
|
|
15
20
|
// types
|
|
16
21
|
export { DEFAULT_CONFIG, resolveConfig, } from './core/types.js';
|
|
17
22
|
// reference adapters
|