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/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA4BA,sDAAsD;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,mCAAmC;AACnC,OAAO,EACL,OAAO,EACP,WAAW,EACX,iBAAiB,EACjB,QAAQ,EACR,wBAAwB,GAKzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAoB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,WAAW,GAIZ,MAAM,kBAAkB,CAAC;AAM1B,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;AAExC,OAAO,EACL,OAAO,EACP,eAAe,EACf,eAAe,EACf,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EACX,OAAO,GAKR,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,EAAoB,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,GAGrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEnF,QAAQ;AACR,OAAO,EACL,cAAc,EACd,aAAa,GAuBd,MAAM,iBAAiB,CAAC;AAEzB,qBAAqB;AACrB,OAAO,EAAE,aAAa,EAAmB,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAqD,MAAM,uBAAuB,CAAC;AACjI,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAkD,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,WAAW,EAA4C,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/ports/admin.d.ts
CHANGED
|
@@ -76,13 +76,31 @@ export interface StepRecord {
|
|
|
76
76
|
export type NewStepRecord = Omit<StepRecord, 'at'> & {
|
|
77
77
|
at?: Date;
|
|
78
78
|
};
|
|
79
|
+
/** What started a thread (§2.9): the first dispatched run's parameters,
|
|
80
|
+
* recorded once and never overwritten, so a listing can say who asked for
|
|
81
|
+
* what without opening the thread. `prompt`, `state` and `providerOptions`
|
|
82
|
+
* are present only when `recordPayloads` is on. */
|
|
83
|
+
export interface ThreadStart {
|
|
84
|
+
runId: string;
|
|
85
|
+
agent: string;
|
|
86
|
+
model: string;
|
|
87
|
+
at: Date;
|
|
88
|
+
prompt?: string | null;
|
|
89
|
+
tokenBudget?: number | null;
|
|
90
|
+
state?: Record<string, unknown> | null;
|
|
91
|
+
providerOptions?: Record<string, unknown> | null;
|
|
92
|
+
}
|
|
79
93
|
export interface AdminThread {
|
|
80
94
|
id: string;
|
|
81
95
|
state: ExecutionState;
|
|
82
96
|
model: string;
|
|
83
97
|
firstSeenAt: Date;
|
|
84
98
|
updatedAt: Date;
|
|
99
|
+
/** The parameters that started it; null for a thread seen before this was recorded. */
|
|
100
|
+
startedWith?: ThreadStart | null;
|
|
85
101
|
}
|
|
102
|
+
/** `startedWith` is written on first sight only: a later upsert never
|
|
103
|
+
* replaces what started the thread. */
|
|
86
104
|
export type NewAdminThread = Omit<AdminThread, 'firstSeenAt' | 'updatedAt'>;
|
|
87
105
|
export interface AdminThreadFilter {
|
|
88
106
|
state?: ExecutionState[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/ports/admin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/ports/admin.ts"],"names":[],"mappings":"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"}
|
package/dist/ports/runtime.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { ToolSet } from 'ai';
|
|
2
|
-
import type { AgentEvent, AgentConfig, AgentKind, ContextUsage, ExecutionState, MessageDTO, ProviderOptions, ResolvedModel, RunJob, RunRecord, SubagentsConfig, ThreadDTO, UsageTotals } from '../core/types.js';
|
|
2
|
+
import type { AgentEvent, AgentConfig, AgentKind, ContextUsage, ExecutionState, MessageDTO, ProviderOptions, ResolvedModel, RunJob, RunRecord, Cost, NewUsage, SubagentsConfig, ThreadDTO, UsageTotals } from '../core/types.js';
|
|
3
|
+
import type { TokenAttribution } from '../core/usage.js';
|
|
3
4
|
import type { Storage } from './storage.js';
|
|
4
5
|
import type { AdminStore, RunFilter, StepRecord } from './admin.js';
|
|
5
6
|
import type { AgentRunState, BoundStorage } from '../core/state.js';
|
|
6
7
|
import type { FollowOptions, SseOptions, SseStream } from '../core/follow.js';
|
|
8
|
+
import type { PublishEventOptions } from '../core/publish.js';
|
|
7
9
|
export type { AdminStore, NewStepRecord, RunFilter, StepRecord } from './admin.js';
|
|
8
10
|
export type { AgentRunState, BoundStorage, StorageContext } from '../core/state.js';
|
|
9
11
|
import type { EventBus } from './bus.js';
|
|
@@ -29,8 +31,31 @@ export interface RuntimePorts {
|
|
|
29
31
|
/** User-provided model resolution (§3.3): models can live in any shape on
|
|
30
32
|
* the consumer side — the platform only ever sees `ResolvedModel`. */
|
|
31
33
|
resolveModel(modelName: string): ResolvedModel;
|
|
34
|
+
/** Puts a price on every model call before its usage row is stored (§4).
|
|
35
|
+
* Omitted, every row is stored unpriced. */
|
|
36
|
+
pricer?: Pricer;
|
|
37
|
+
/** Where the platform reports what it could not do without failing the
|
|
38
|
+
* run, such as a usage row it failed to store. Defaults to `console`. */
|
|
39
|
+
log?: Logger;
|
|
32
40
|
config: AgentConfig;
|
|
33
41
|
}
|
|
42
|
+
/** The little the platform needs from a logger. `console` satisfies it. */
|
|
43
|
+
export interface Logger {
|
|
44
|
+
error(message: string, ...rest: unknown[]): void;
|
|
45
|
+
}
|
|
46
|
+
/** Turns one model call into money (§4). The runtime calls it after every
|
|
47
|
+
* call, before the usage row is stored, so cost is part of the row rather
|
|
48
|
+
* than something a reader has to work out later.
|
|
49
|
+
*
|
|
50
|
+
* It runs on the run's own path: keep it fast and side-effect free. A price
|
|
51
|
+
* list lookup is the intended shape; a network call is not. */
|
|
52
|
+
export interface Pricer {
|
|
53
|
+
/** Returns null when it cannot price this call. The row is then stored
|
|
54
|
+
* unpriced, and in a chain the next pricer gets its turn. A throw is
|
|
55
|
+
* logged and treated the same way: an unpriceable call must never fail a
|
|
56
|
+
* run. */
|
|
57
|
+
price(usage: NewUsage): Cost | null | Promise<Cost | null>;
|
|
58
|
+
}
|
|
34
59
|
export interface RuntimeOptions {
|
|
35
60
|
storage: Storage;
|
|
36
61
|
/** Where operational history goes (§2.9). Omitted, it is chosen from the
|
|
@@ -43,6 +68,14 @@ export interface RuntimeOptions {
|
|
|
43
68
|
/** Models can come in any shape — config files, a database, provider SDKs.
|
|
44
69
|
* The platform only ever sees the resolved `ResolvedModel`. */
|
|
45
70
|
resolveModel(modelName: string): ResolvedModel;
|
|
71
|
+
/** Prices every model call (§4). Omitted records tokens only, and every
|
|
72
|
+
* `UsageTotals` comes back with `unpriced` above zero. See the `pricing`
|
|
73
|
+
* module for the three that ship: a price table, a provider receipt
|
|
74
|
+
* reader, and a chain of both. */
|
|
75
|
+
pricer?: Pricer;
|
|
76
|
+
/** Where the platform reports what it could not do without failing the
|
|
77
|
+
* run. Defaults to `console`. */
|
|
78
|
+
log?: Logger;
|
|
46
79
|
config?: Partial<AgentConfig>;
|
|
47
80
|
}
|
|
48
81
|
export interface RunInput {
|
|
@@ -65,6 +98,11 @@ export interface RunInput {
|
|
|
65
98
|
* spec.tokenBudget / config (§2.1 safety cap). Flows to the worker
|
|
66
99
|
* via RunJob.tokenBudget. */
|
|
67
100
|
tokenBudget?: number;
|
|
101
|
+
/** Max spend for this run (§4), in millionths of the pricer's currency:
|
|
102
|
+
* 250_000 stops the run after roughly $0.25. Overrides
|
|
103
|
+
* spec.costBudgetMicros / config. Needs a pricer; without one nothing is
|
|
104
|
+
* ever priced and the cap can never be reached. */
|
|
105
|
+
costBudgetMicros?: number;
|
|
68
106
|
/** Additional provider-specific options, passed through to the provider
|
|
69
107
|
* from the AI SDK (§3.1). Merged over the spec default: the execute
|
|
70
108
|
* input wins per provider namespace. */
|
|
@@ -110,6 +148,26 @@ export interface ThreadUsage {
|
|
|
110
148
|
/** The model the budget was measured against. */
|
|
111
149
|
model: string;
|
|
112
150
|
}
|
|
151
|
+
/** What the platform hands a spec's `onFinish` once the run is finalized. */
|
|
152
|
+
export interface RunFinishInfo {
|
|
153
|
+
threadId: string;
|
|
154
|
+
runId?: string;
|
|
155
|
+
state: ExecutionState;
|
|
156
|
+
stopReason: string;
|
|
157
|
+
tokensUsed: number;
|
|
158
|
+
/** The tokens THIS segment spent. A run that parked and resumed finishes
|
|
159
|
+
* once, so this is the last segment, not the whole run — and it is tokens
|
|
160
|
+
* only; the money is in `usage`. */
|
|
161
|
+
attribution: TokenAttribution;
|
|
162
|
+
steps: number;
|
|
163
|
+
/** The whole run's tokens AND money: every segment and every nested run,
|
|
164
|
+
* read back with `usage.total(threadId, { runId })`. Its `lines` are the
|
|
165
|
+
* bill, one per agent and model, so a settle hook charges in one pass
|
|
166
|
+
* without keeping its own tally (§4). Zeroed when the storage read failed;
|
|
167
|
+
* `unpriced` above zero means some calls went unpriced and `costMicros` is
|
|
168
|
+
* a floor. */
|
|
169
|
+
usage: UsageTotals;
|
|
170
|
+
}
|
|
113
171
|
/** Durable state used to hydrate a client before it starts live event replay. */
|
|
114
172
|
export interface ThreadSnapshot {
|
|
115
173
|
thread: ThreadDTO;
|
|
@@ -136,15 +194,21 @@ export type StreamTextAgentSpec = {
|
|
|
136
194
|
/** Default per-run token budget (input + output). Per-run
|
|
137
195
|
* `input.tokenBudget` wins; `undefined` = unbounded apart from `maxSteps`. */
|
|
138
196
|
tokenBudget?: number;
|
|
197
|
+
/** Default per-run money cap (§4), in millionths of the pricer's currency.
|
|
198
|
+
* Per-run `input.costBudgetMicros` wins; `undefined` = unbounded. Needs a
|
|
199
|
+
* pricer: an unpriced call spends no money and so can never exhaust it. */
|
|
200
|
+
costBudgetMicros?: number;
|
|
139
201
|
/** Additional provider-specific options, passed through to the provider
|
|
140
202
|
* from the AI SDK. Per-provider namespace; the execute input wins. */
|
|
141
203
|
providerOptions?: ProviderOptions;
|
|
142
|
-
} & Omit<Parameters<typeof import('ai').streamText>[0], 'model' | 'messages' | 'prompt' | 'system' | 'abortSignal' | 'maxSteps' | 'onStepFinish' | 'onError'> & {
|
|
204
|
+
} & Omit<Parameters<typeof import('ai').streamText>[0], 'model' | 'messages' | 'prompt' | 'system' | 'abortSignal' | 'maxSteps' | 'onStepFinish' | 'onError' | 'onFinish' | 'onChunk'> & {
|
|
143
205
|
/** `system` is allowed here (static persona); per-run system is not. */
|
|
144
206
|
system?: string;
|
|
145
207
|
tools?: ToolSet;
|
|
146
208
|
onChunk?: (para: any) => void | Promise<void>;
|
|
147
|
-
|
|
209
|
+
/** Fires once, after the platform finalized the run, with what the run did
|
|
210
|
+
* and what it spent (§4). */
|
|
211
|
+
onFinish?: (info: RunFinishInfo) => void | Promise<void>;
|
|
148
212
|
};
|
|
149
213
|
export type GenerateTextAgentSpec = {
|
|
150
214
|
/** Unique handle key — the queue dispatch key (§5). */
|
|
@@ -152,10 +216,12 @@ export type GenerateTextAgentSpec = {
|
|
|
152
216
|
model?: string;
|
|
153
217
|
subagents?: boolean | SubagentsConfig;
|
|
154
218
|
tokenBudget?: number;
|
|
219
|
+
costBudgetMicros?: number;
|
|
155
220
|
providerOptions?: ProviderOptions;
|
|
156
221
|
} & Omit<Parameters<typeof import('ai').generateText>[0], 'model' | 'messages' | 'prompt' | 'abortSignal' | 'onFinish' | 'onStepFinish'> & {
|
|
157
222
|
tools?: ToolSet;
|
|
158
|
-
|
|
223
|
+
/** Fires once, after the platform finalized the run (§4). */
|
|
224
|
+
onFinish?: (info: RunFinishInfo) => void | Promise<void>;
|
|
159
225
|
};
|
|
160
226
|
/** An executor bound to a generation flavor and to the user's generation
|
|
161
227
|
* arguments (§3). Returned by the `create*Agent` factories. */
|
|
@@ -216,6 +282,14 @@ export interface AgentCore {
|
|
|
216
282
|
sse(threadId: string, options?: SseOptions & {
|
|
217
283
|
state?: AgentRunState;
|
|
218
284
|
}): SseStream;
|
|
285
|
+
/** Publish an event of your own on a thread, from anywhere on the server
|
|
286
|
+
* — 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. */
|
|
290
|
+
publishEvent(threadId: string, type: string, payload: unknown, options?: PublishEventOptions & {
|
|
291
|
+
state?: AgentRunState;
|
|
292
|
+
}): Promise<AgentEvent>;
|
|
219
293
|
};
|
|
220
294
|
/** Agent factories — see §4. Each call registers a handle under `spec.name`. */
|
|
221
295
|
createStreamTextAgent(spec: StreamTextAgentSpec): AgentHandle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/ports/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,cAAc,EACd,UAAU,EACV,eAAe,EACf,aAAa,EACb,MAAM,EACN,SAAS,EACT,eAAe,EACf,SAAS,EACT,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/ports/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/ports/storage.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { StorageContext } from '../core/state.js';
|
|
2
|
-
import type { AgentEvent, ExecutionState, MessageDTO, NewMessage, NewUsage, UsageTotals, ThreadDTO } from '../core/types.js';
|
|
2
|
+
import type { AgentEvent, ExecutionState, MessageDTO, NewMessage, NewUsage, UsageFilter, UsageTotals, ThreadDTO } 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
|
|
@@ -62,11 +62,23 @@ export interface Storage {
|
|
|
62
62
|
* CHUNK on the thread through memory. */
|
|
63
63
|
listByType(threadId: string, type: string, ctx: StorageContext): Promise<AgentEvent[]>;
|
|
64
64
|
};
|
|
65
|
+
/** One row per model call (§4).
|
|
66
|
+
*
|
|
67
|
+
* The platform writes a row after EVERY call it makes on a thread, priced
|
|
68
|
+
* by the runtime's pricer before it gets here. An implementation stores the
|
|
69
|
+
* row as given; it never prices anything itself. */
|
|
65
70
|
usage: {
|
|
66
71
|
record(threadId: string, usage: NewUsage, ctx: StorageContext): Promise<void>;
|
|
67
|
-
/**
|
|
68
|
-
*
|
|
69
|
-
|
|
72
|
+
/** Recorded calls, summed: tokens and money (§4). An empty filter sums
|
|
73
|
+
* the whole thread; `{ runId }` sums one dispatched run, nested runs
|
|
74
|
+
* included, which is what a settle hook bills from.
|
|
75
|
+
*
|
|
76
|
+
* The result also carries `lines`: the same spend grouped by agent and
|
|
77
|
+
* model, so one call serves the thread header, the settle hook and the
|
|
78
|
+
* admin reads alike. A thread with no usage rows yet returns zeroes,
|
|
79
|
+
* never null. `unpriced` counts the calls with no cost on them, so a
|
|
80
|
+
* reader can tell "nothing was spent" apart from "nothing was priced". */
|
|
81
|
+
total(threadId: string, filter: UsageFilter, ctx: StorageContext): Promise<UsageTotals>;
|
|
70
82
|
};
|
|
71
83
|
}
|
|
72
84
|
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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,QAAQ,EACR,WAAW,EACX,SAAS,EACV,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;KACrB,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,MAAM,EAAE;QACN,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAChF,wEAAwE;QACxE,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;;kDAE0C;QAC1C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;KACxF,CAAC;IACF,KAAK,EAAE;QACL,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9E;
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/ports/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { Pricer } from './ports/runtime.js';
|
|
2
|
+
/** The currency the shipped pricers use unless told otherwise. */
|
|
3
|
+
export declare const USD = "USD";
|
|
4
|
+
/** What one model costs, per MILLION tokens, in the table's currency. A price
|
|
5
|
+
* of 3 for input means $3.00 per million input tokens, which is how every
|
|
6
|
+
* provider publishes them, so a price list can be typed straight off their
|
|
7
|
+
* pricing page. */
|
|
8
|
+
export interface ModelPrice {
|
|
9
|
+
inputPerMillion?: number;
|
|
10
|
+
cacheReadPerMillion?: number;
|
|
11
|
+
cacheWritePerMillion?: number;
|
|
12
|
+
outputPerMillion?: number;
|
|
13
|
+
/** Usually 0. Most providers already count reasoning tokens inside the
|
|
14
|
+
* output count, so charging them again here bills the same tokens twice.
|
|
15
|
+
* Set it only when your provider reports reasoning tokens SEPARATELY from
|
|
16
|
+
* output. */
|
|
17
|
+
reasoningPerMillion?: number;
|
|
18
|
+
}
|
|
19
|
+
/** A price list keyed by model: the registry key a run asked for
|
|
20
|
+
* ('claude-sonnet-4@high'), or the wire id `resolveModel` declared
|
|
21
|
+
* ('claude-sonnet-4-20250514'). Both work — a lookup tries them in that
|
|
22
|
+
* order, then the registry key with any '@variant' suffix removed. */
|
|
23
|
+
export type PriceTable = Record<string, ModelPrice>;
|
|
24
|
+
/** Find a model's price, trying the registry key, the wire id, then the
|
|
25
|
+
* registry key without its '@variant' suffix. */
|
|
26
|
+
export declare function lookupPrice(prices: PriceTable, model?: string | null, modelId?: string | null): ModelPrice | undefined;
|
|
27
|
+
/** A price-list pricer (§4).
|
|
28
|
+
*
|
|
29
|
+
* A model the table does not know is not priced. Its row is stored with no
|
|
30
|
+
* cost and `UsageTotals.unpriced` counts it, so a missing price shows up as
|
|
31
|
+
* a gap in the bill rather than as a silent zero. */
|
|
32
|
+
export declare function table(prices: PriceTable, currency?: string): Pricer;
|
|
33
|
+
/** Pulls a cost out of what the provider attached to the finish: a gateway
|
|
34
|
+
* receipt, a billing header, whatever your provider sends. Return null when
|
|
35
|
+
* this call carried no receipt, and the next pricer in a chain gets its
|
|
36
|
+
* turn. */
|
|
37
|
+
export type ReceiptReader = (meta: Record<string, unknown>) => number | null;
|
|
38
|
+
/** Price a call from the number the provider already computed.
|
|
39
|
+
*
|
|
40
|
+
* This is the most accurate pricer there is: no price list to keep in step
|
|
41
|
+
* with a provider's changes, and discounts and gateway markups are already
|
|
42
|
+
* inside the figure. */
|
|
43
|
+
export declare function receipt(read: ReceiptReader, currency?: string): Pricer;
|
|
44
|
+
/** Try each pricer in order and take the first answer. Put the accurate one
|
|
45
|
+
* first and the fallback last:
|
|
46
|
+
*
|
|
47
|
+
* chain(
|
|
48
|
+
* receipt(gatewayReceiptMicros), // the real figure, when sent
|
|
49
|
+
* table(priceList), // otherwise the price list
|
|
50
|
+
* )
|
|
51
|
+
*
|
|
52
|
+
* A pricer that throws is skipped rather than believed. If none answers,
|
|
53
|
+
* chain rethrows the first error it saw, or returns null when they simply
|
|
54
|
+
* had nothing to say. */
|
|
55
|
+
export declare function chain(...pricers: Array<Pricer | undefined>): Pricer;
|
|
56
|
+
/** Price every call the same, whatever the model. Useful for a credit system
|
|
57
|
+
* that charges per call rather than per token, and for tests. */
|
|
58
|
+
export declare function fixed(micros: number, currency?: string): Pricer;
|
|
59
|
+
/** Convert a currency amount to micros: `micros(0.25)` is 250_000. */
|
|
60
|
+
export declare const micros: (amount: number) => number;
|
|
61
|
+
/** Convert micros back to a currency amount: `amount(250_000)` is 0.25. */
|
|
62
|
+
export declare const amount: (m: number) => number;
|
|
63
|
+
/** Render micros for a human: '0.2500 USD'. Display only; never do arithmetic
|
|
64
|
+
* on the string. */
|
|
65
|
+
export declare const format: (m: number, currency?: string) => string;
|
|
66
|
+
//# sourceMappingURL=pricing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../src/pricing.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,kEAAkE;AAClE,eAAO,MAAM,GAAG,QAAQ,CAAC;AAEzB;;;oBAGoB;AACpB,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;kBAGc;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;uEAGuE;AACvE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEpD;kDACkD;AAClD,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACtB,UAAU,GAAG,SAAS,CAKxB;AAED;;;;sDAIsD;AACtD,wBAAgB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM,CAiBxE;AAED;;;YAGY;AACZ,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,IAAI,CAAC;AAE7E;;;;yBAIyB;AACzB,wBAAgB,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM,CAU3E;AAED;;;;;;;;;;0BAU0B;AAC1B,wBAAgB,KAAK,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAiBnE;AAED;kEACkE;AAClE,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM,CAEpE;AAED,sEAAsE;AACtE,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,KAAG,MAAwC,CAAC;AAEjF,2EAA2E;AAC3E,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,KAAG,MAAuB,CAAC;AAE3D;qBACqB;AACrB,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,EAAE,WAAU,MAAY,KAAG,MACpB,CAAC"}
|
package/dist/pricing.js
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/** The currency the shipped pricers use unless told otherwise. */
|
|
2
|
+
export const USD = 'USD';
|
|
3
|
+
/** Find a model's price, trying the registry key, the wire id, then the
|
|
4
|
+
* registry key without its '@variant' suffix. */
|
|
5
|
+
export function lookupPrice(prices, model, modelId) {
|
|
6
|
+
if (model && prices[model])
|
|
7
|
+
return prices[model];
|
|
8
|
+
if (modelId && prices[modelId])
|
|
9
|
+
return prices[modelId];
|
|
10
|
+
const base = model?.split('@')[0];
|
|
11
|
+
return base && base !== model ? prices[base] : undefined;
|
|
12
|
+
}
|
|
13
|
+
/** A price-list pricer (§4).
|
|
14
|
+
*
|
|
15
|
+
* A model the table does not know is not priced. Its row is stored with no
|
|
16
|
+
* cost and `UsageTotals.unpriced` counts it, so a missing price shows up as
|
|
17
|
+
* a gap in the bill rather than as a silent zero. */
|
|
18
|
+
export function table(prices, currency = USD) {
|
|
19
|
+
return {
|
|
20
|
+
price(u) {
|
|
21
|
+
const p = lookupPrice(prices, u.model, u.modelId);
|
|
22
|
+
if (!p)
|
|
23
|
+
return null;
|
|
24
|
+
// tokens / 1_000_000 × pricePerMillion is the cost in currency units,
|
|
25
|
+
// and micros is that × 1_000_000. The two cancel: tokens ×
|
|
26
|
+
// pricePerMillion IS the micro-unit cost, with no scaling in between.
|
|
27
|
+
const micros = u.inputTokens * (p.inputPerMillion ?? 0) +
|
|
28
|
+
u.cacheReadInputTokens * (p.cacheReadPerMillion ?? 0) +
|
|
29
|
+
u.cacheWriteInputTokens * (p.cacheWritePerMillion ?? 0) +
|
|
30
|
+
u.outputTokens * (p.outputPerMillion ?? 0) +
|
|
31
|
+
u.reasoningTokens * (p.reasoningPerMillion ?? 0);
|
|
32
|
+
return { micros: Math.round(micros), currency, source: 'table' };
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/** Price a call from the number the provider already computed.
|
|
37
|
+
*
|
|
38
|
+
* This is the most accurate pricer there is: no price list to keep in step
|
|
39
|
+
* with a provider's changes, and discounts and gateway markups are already
|
|
40
|
+
* inside the figure. */
|
|
41
|
+
export function receipt(read, currency = USD) {
|
|
42
|
+
return {
|
|
43
|
+
price(u) {
|
|
44
|
+
if (!u.providerMetadata)
|
|
45
|
+
return null;
|
|
46
|
+
const micros = read(u.providerMetadata);
|
|
47
|
+
return micros === null || micros === undefined
|
|
48
|
+
? null
|
|
49
|
+
: { micros, currency, source: 'receipt' };
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/** Try each pricer in order and take the first answer. Put the accurate one
|
|
54
|
+
* first and the fallback last:
|
|
55
|
+
*
|
|
56
|
+
* chain(
|
|
57
|
+
* receipt(gatewayReceiptMicros), // the real figure, when sent
|
|
58
|
+
* table(priceList), // otherwise the price list
|
|
59
|
+
* )
|
|
60
|
+
*
|
|
61
|
+
* A pricer that throws is skipped rather than believed. If none answers,
|
|
62
|
+
* chain rethrows the first error it saw, or returns null when they simply
|
|
63
|
+
* had nothing to say. */
|
|
64
|
+
export function chain(...pricers) {
|
|
65
|
+
return {
|
|
66
|
+
async price(u) {
|
|
67
|
+
let firstError;
|
|
68
|
+
for (const p of pricers) {
|
|
69
|
+
if (!p)
|
|
70
|
+
continue;
|
|
71
|
+
try {
|
|
72
|
+
const cost = await p.price(u);
|
|
73
|
+
if (cost)
|
|
74
|
+
return cost;
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
firstError ??= err;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (firstError !== undefined)
|
|
81
|
+
throw firstError;
|
|
82
|
+
return null;
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/** Price every call the same, whatever the model. Useful for a credit system
|
|
87
|
+
* that charges per call rather than per token, and for tests. */
|
|
88
|
+
export function fixed(micros, currency = USD) {
|
|
89
|
+
return { price: () => ({ micros, currency, source: 'table' }) };
|
|
90
|
+
}
|
|
91
|
+
/** Convert a currency amount to micros: `micros(0.25)` is 250_000. */
|
|
92
|
+
export const micros = (amount) => Math.round(amount * 1_000_000);
|
|
93
|
+
/** Convert micros back to a currency amount: `amount(250_000)` is 0.25. */
|
|
94
|
+
export const amount = (m) => m / 1_000_000;
|
|
95
|
+
/** Render micros for a human: '0.2500 USD'. Display only; never do arithmetic
|
|
96
|
+
* on the string. */
|
|
97
|
+
export const format = (m, currency = USD) => `${amount(m).toFixed(4)} ${currency}`;
|
|
98
|
+
//# sourceMappingURL=pricing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../src/pricing.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,SAAS,EAMT,cAAc,EAGf,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,SAAS,EAMT,cAAc,EAGf,MAAM,oBAAoB,CAAC;AAa5B;qEACqE;AACrE,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAkN7E"}
|
package/dist/runtime.js
CHANGED
|
@@ -8,6 +8,7 @@ import { openDefaultAdminStore } from './admin/default.js';
|
|
|
8
8
|
import { reclaimIfOrphaned } from './core/reclaim.js';
|
|
9
9
|
import { respond } from './core/hitl.js';
|
|
10
10
|
import { deleteThread } from './core/deleteThread.js';
|
|
11
|
+
import { publishEvent } from './core/publish.js';
|
|
11
12
|
/** Bind the ports to the core behaviors (§3.3). This is the package's public
|
|
12
13
|
* entry point — the only place where anything is wired together. */
|
|
13
14
|
export async function setupAgentCore(opts) {
|
|
@@ -19,13 +20,15 @@ export async function setupAgentCore(opts) {
|
|
|
19
20
|
// cannot be opened is a startup error you see immediately, rather than a
|
|
20
21
|
// surprise on the first run — and losing run history silently looks exactly
|
|
21
22
|
// like having no traffic.
|
|
22
|
-
const admin = opts.admin ?? (await openDefaultAdminStore());
|
|
23
|
+
const admin = opts.admin ?? (await openDefaultAdminStore(opts.log));
|
|
23
24
|
const shared = {
|
|
24
25
|
admin,
|
|
25
26
|
bus: opts.bus,
|
|
26
27
|
queue: opts.queue,
|
|
27
28
|
kv: opts.kv,
|
|
28
29
|
resolveModel: (modelName) => opts.resolveModel(modelName),
|
|
30
|
+
pricer: opts.pricer,
|
|
31
|
+
log: opts.log,
|
|
29
32
|
config: resolveConfig(opts.config),
|
|
30
33
|
};
|
|
31
34
|
/** Ports for ONE run: the caller's storage with that run's state bound, so
|
|
@@ -109,7 +112,7 @@ export async function setupAgentCore(opts) {
|
|
|
109
112
|
if (!thread)
|
|
110
113
|
return null;
|
|
111
114
|
const [tokens, context] = await Promise.all([
|
|
112
|
-
deps.storage.usage.total(threadId),
|
|
115
|
+
deps.storage.usage.total(threadId, {}),
|
|
113
116
|
contextUsage(deps, threadId, thread.model),
|
|
114
117
|
]);
|
|
115
118
|
return { tokens, context, model: thread.model };
|
|
@@ -136,6 +139,7 @@ export async function setupAgentCore(opts) {
|
|
|
136
139
|
// seq-0 notice through without moving it (§2.2).
|
|
137
140
|
follow: (threadId, options = {}) => followEvents(scope(options.state), threadId, options),
|
|
138
141
|
sse: (threadId, options = {}) => toSseStream(followEvents(scope(options.state), threadId, options), options),
|
|
142
|
+
publishEvent: (threadId, type, payload, options = {}) => publishEvent(scope(options.state), threadId, type, payload, options),
|
|
139
143
|
},
|
|
140
144
|
createStreamTextAgent: (spec) => {
|
|
141
145
|
const handle = register(spec.name, 'stream-text', spec);
|
|
@@ -166,6 +170,7 @@ export async function setupAgentCore(opts) {
|
|
|
166
170
|
state: job.state,
|
|
167
171
|
model: job.model,
|
|
168
172
|
tokenBudget: job.tokenBudget,
|
|
173
|
+
costBudgetMicros: job.costBudgetMicros,
|
|
169
174
|
providerOptions: job.providerOptions,
|
|
170
175
|
});
|
|
171
176
|
return { accepted: true };
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAahD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentenkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Durable runtime for AI agent runs \u2014 a platform-owned loop, queue-dispatched execution that outlives the request, HITL suspension, nested runs, and context compaction. Bring your own storage, queue, bus and kv via four ports.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|