agentenkit 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -14
- package/dist/adapters/inline.d.ts +19 -5
- package/dist/adapters/inline.d.ts.map +1 -1
- package/dist/adapters/inline.js +87 -14
- package/dist/adapters/inline.js.map +1 -1
- package/dist/adapters/memory.d.ts +65 -3
- package/dist/adapters/memory.d.ts.map +1 -1
- package/dist/adapters/memory.js +267 -3
- package/dist/adapters/memory.js.map +1 -1
- package/dist/adapters/prisma.d.ts +125 -18
- package/dist/adapters/prisma.d.ts.map +1 -1
- package/dist/adapters/prisma.js +308 -67
- package/dist/adapters/prisma.js.map +1 -1
- package/dist/adapters/qstash.d.ts +15 -2
- package/dist/adapters/qstash.d.ts.map +1 -1
- package/dist/adapters/qstash.js +31 -14
- package/dist/adapters/qstash.js.map +1 -1
- package/dist/adapters/redis.d.ts +40 -4
- package/dist/adapters/redis.d.ts.map +1 -1
- package/dist/adapters/redis.js +265 -20
- package/dist/adapters/redis.js.map +1 -1
- package/dist/adapters/sqlite.d.ts +52 -2
- package/dist/adapters/sqlite.d.ts.map +1 -1
- package/dist/adapters/sqlite.js +342 -35
- package/dist/adapters/sqlite.js.map +1 -1
- package/dist/adapters/stream-scripts.d.ts +49 -0
- package/dist/adapters/stream-scripts.d.ts.map +1 -0
- package/dist/adapters/stream-scripts.js +150 -0
- package/dist/adapters/stream-scripts.js.map +1 -0
- package/dist/adapters/upstash.d.ts +20 -0
- package/dist/adapters/upstash.d.ts.map +1 -1
- package/dist/adapters/upstash.js +29 -0
- package/dist/adapters/upstash.js.map +1 -1
- package/dist/admin/memory.d.ts +11 -1
- package/dist/admin/memory.d.ts.map +1 -1
- package/dist/admin/memory.js +83 -14
- package/dist/admin/memory.js.map +1 -1
- package/dist/admin/migrations/postgres/0002-run-settled-at.d.ts +5 -0
- package/dist/admin/migrations/postgres/0002-run-settled-at.d.ts.map +1 -0
- package/dist/admin/migrations/postgres/0002-run-settled-at.js +11 -0
- package/dist/admin/migrations/postgres/0002-run-settled-at.js.map +1 -0
- package/dist/admin/migrations/postgres/0003-run-enqueued-at.d.ts +5 -0
- package/dist/admin/migrations/postgres/0003-run-enqueued-at.d.ts.map +1 -0
- package/dist/admin/migrations/postgres/0003-run-enqueued-at.js +15 -0
- package/dist/admin/migrations/postgres/0003-run-enqueued-at.js.map +1 -0
- package/dist/admin/migrations/postgres/0004-run-settle-claim.d.ts +5 -0
- package/dist/admin/migrations/postgres/0004-run-settle-claim.d.ts.map +1 -0
- package/dist/admin/migrations/postgres/0004-run-settle-claim.js +15 -0
- package/dist/admin/migrations/postgres/0004-run-settle-claim.js.map +1 -0
- package/dist/admin/migrations/postgres/0005-bigint-counters.d.ts +5 -0
- package/dist/admin/migrations/postgres/0005-bigint-counters.d.ts.map +1 -0
- package/dist/admin/migrations/postgres/0005-bigint-counters.js +12 -0
- package/dist/admin/migrations/postgres/0005-bigint-counters.js.map +1 -0
- package/dist/admin/migrations/postgres/index.d.ts.map +1 -1
- package/dist/admin/migrations/postgres/index.js +16 -1
- package/dist/admin/migrations/postgres/index.js.map +1 -1
- package/dist/admin/migrations/runner.d.ts +21 -1
- package/dist/admin/migrations/runner.d.ts.map +1 -1
- package/dist/admin/migrations/runner.js +41 -4
- package/dist/admin/migrations/runner.js.map +1 -1
- package/dist/admin/migrations/sqlite/0002-run-settled-at.d.ts +5 -0
- package/dist/admin/migrations/sqlite/0002-run-settled-at.d.ts.map +1 -0
- package/dist/admin/migrations/sqlite/0002-run-settled-at.js +11 -0
- package/dist/admin/migrations/sqlite/0002-run-settled-at.js.map +1 -0
- package/dist/admin/migrations/sqlite/0003-run-enqueued-at.d.ts +5 -0
- package/dist/admin/migrations/sqlite/0003-run-enqueued-at.d.ts.map +1 -0
- package/dist/admin/migrations/sqlite/0003-run-enqueued-at.js +15 -0
- package/dist/admin/migrations/sqlite/0003-run-enqueued-at.js.map +1 -0
- package/dist/admin/migrations/sqlite/0004-run-settle-claim.d.ts +5 -0
- package/dist/admin/migrations/sqlite/0004-run-settle-claim.d.ts.map +1 -0
- package/dist/admin/migrations/sqlite/0004-run-settle-claim.js +15 -0
- package/dist/admin/migrations/sqlite/0004-run-settle-claim.js.map +1 -0
- package/dist/admin/migrations/sqlite/index.d.ts +2 -2
- package/dist/admin/migrations/sqlite/index.d.ts.map +1 -1
- package/dist/admin/migrations/sqlite/index.js +17 -3
- package/dist/admin/migrations/sqlite/index.js.map +1 -1
- package/dist/admin/postgres.d.ts +14 -4
- package/dist/admin/postgres.d.ts.map +1 -1
- package/dist/admin/postgres.js +131 -36
- package/dist/admin/postgres.js.map +1 -1
- package/dist/admin/shared.d.ts +19 -0
- package/dist/admin/shared.d.ts.map +1 -0
- package/dist/admin/shared.js +28 -0
- package/dist/admin/shared.js.map +1 -0
- package/dist/admin/sqlite.d.ts +9 -1
- package/dist/admin/sqlite.d.ts.map +1 -1
- package/dist/admin/sqlite.js +112 -29
- package/dist/admin/sqlite.js.map +1 -1
- package/dist/core/admin.d.ts +28 -6
- package/dist/core/admin.d.ts.map +1 -1
- package/dist/core/admin.js +92 -23
- package/dist/core/admin.js.map +1 -1
- package/dist/core/agent.d.ts +7 -4
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +15 -11
- package/dist/core/agent.js.map +1 -1
- package/dist/core/agui.d.ts +17 -0
- package/dist/core/agui.d.ts.map +1 -0
- package/dist/core/agui.js +69 -0
- package/dist/core/agui.js.map +1 -0
- package/dist/core/context.d.ts +13 -1
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +70 -19
- package/dist/core/context.js.map +1 -1
- package/dist/core/deleteThread.d.ts.map +1 -1
- package/dist/core/deleteThread.js +33 -4
- package/dist/core/deleteThread.js.map +1 -1
- package/dist/core/engine.d.ts +41 -11
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +855 -352
- package/dist/core/engine.js.map +1 -1
- package/dist/core/follow.d.ts +63 -1
- package/dist/core/follow.d.ts.map +1 -1
- package/dist/core/follow.js +293 -16
- package/dist/core/follow.js.map +1 -1
- package/dist/core/hitl.d.ts +43 -0
- package/dist/core/hitl.d.ts.map +1 -1
- package/dist/core/hitl.js +163 -35
- package/dist/core/hitl.js.map +1 -1
- package/dist/core/keys.d.ts +22 -4
- package/dist/core/keys.d.ts.map +1 -1
- package/dist/core/keys.js +23 -5
- package/dist/core/keys.js.map +1 -1
- package/dist/core/lease.d.ts +46 -0
- package/dist/core/lease.d.ts.map +1 -0
- package/dist/core/lease.js +142 -0
- package/dist/core/lease.js.map +1 -0
- package/dist/core/loop.d.ts +27 -7
- package/dist/core/loop.d.ts.map +1 -1
- package/dist/core/loop.js +140 -55
- package/dist/core/loop.js.map +1 -1
- package/dist/core/messages.d.ts +21 -2
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js +61 -2
- package/dist/core/messages.js.map +1 -1
- package/dist/core/prune.d.ts +24 -0
- package/dist/core/prune.d.ts.map +1 -0
- package/dist/core/prune.js +43 -0
- package/dist/core/prune.js.map +1 -0
- package/dist/core/publish.d.ts +38 -10
- package/dist/core/publish.d.ts.map +1 -1
- package/dist/core/publish.js +126 -12
- package/dist/core/publish.js.map +1 -1
- package/dist/core/reclaim.d.ts +8 -1
- package/dist/core/reclaim.d.ts.map +1 -1
- package/dist/core/reclaim.js +149 -18
- package/dist/core/reclaim.js.map +1 -1
- package/dist/core/run.d.ts +7 -3
- package/dist/core/run.d.ts.map +1 -1
- package/dist/core/run.js +95 -35
- package/dist/core/run.js.map +1 -1
- package/dist/core/segment.d.ts +62 -0
- package/dist/core/segment.d.ts.map +1 -0
- package/dist/core/segment.js +318 -0
- package/dist/core/segment.js.map +1 -0
- package/dist/core/settle.d.ts +57 -0
- package/dist/core/settle.d.ts.map +1 -0
- package/dist/core/settle.js +181 -0
- package/dist/core/settle.js.map +1 -0
- package/dist/core/snapshot.d.ts +36 -0
- package/dist/core/snapshot.d.ts.map +1 -0
- package/dist/core/snapshot.js +87 -0
- package/dist/core/snapshot.js.map +1 -0
- package/dist/core/stop.d.ts +16 -1
- package/dist/core/stop.d.ts.map +1 -1
- package/dist/core/stop.js +69 -15
- package/dist/core/stop.js.map +1 -1
- package/dist/core/stream-events.d.ts +184 -0
- package/dist/core/stream-events.d.ts.map +1 -0
- package/dist/core/stream-events.js +26 -0
- package/dist/core/stream-events.js.map +1 -0
- package/dist/core/stream.d.ts +29 -0
- package/dist/core/stream.d.ts.map +1 -1
- package/dist/core/stream.js +79 -0
- package/dist/core/stream.js.map +1 -1
- package/dist/core/subagent.d.ts +36 -5
- package/dist/core/subagent.d.ts.map +1 -1
- package/dist/core/subagent.js +117 -22
- package/dist/core/subagent.js.map +1 -1
- package/dist/core/types.d.ts +195 -12
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +26 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/usage.d.ts +53 -5
- package/dist/core/usage.d.ts.map +1 -1
- package/dist/core/usage.js +170 -47
- package/dist/core/usage.js.map +1 -1
- package/dist/index.d.ts +16 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -7
- package/dist/index.js.map +1 -1
- package/dist/ports/admin.d.ts +59 -0
- package/dist/ports/admin.d.ts.map +1 -1
- package/dist/ports/kv.d.ts +17 -0
- package/dist/ports/kv.d.ts.map +1 -1
- package/dist/ports/queue.d.ts +87 -7
- package/dist/ports/queue.d.ts.map +1 -1
- package/dist/ports/queue.js +36 -1
- package/dist/ports/queue.js.map +1 -1
- package/dist/ports/runtime.d.ts +171 -20
- package/dist/ports/runtime.d.ts.map +1 -1
- package/dist/ports/storage.d.ts +26 -5
- package/dist/ports/storage.d.ts.map +1 -1
- package/dist/ports/streams.d.ts +60 -0
- package/dist/ports/streams.d.ts.map +1 -0
- package/dist/ports/streams.js +20 -0
- package/dist/ports/streams.js.map +1 -0
- package/dist/pricing.d.ts +5 -0
- package/dist/pricing.d.ts.map +1 -1
- package/dist/pricing.js +35 -10
- package/dist/pricing.js.map +1 -1
- package/dist/runtime.d.ts +6 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +144 -46
- package/dist/runtime.js.map +1 -1
- package/package.json +1 -1
package/dist/core/usage.js
CHANGED
|
@@ -25,13 +25,14 @@ export function attributeTokens(usage, meta) {
|
|
|
25
25
|
const anthropicCached = pick(meta?.anthropic?.cacheReadInputTokens);
|
|
26
26
|
const cachedInputTokens = pick(u.cachedInputTokens) + openaiCached + anthropicCached;
|
|
27
27
|
const inputTokens = openaiCached > 0 ? Math.max(0, reportedInput - openaiCached) : reportedInput;
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
// Always the sum, never the provider's own total: Anthropic's leaves the
|
|
29
|
+
// cache reads out, so trusting it would make the same count mean different
|
|
30
|
+
// things per provider. The Go runtime computes it the same way.
|
|
30
31
|
return {
|
|
31
32
|
inputTokens,
|
|
32
33
|
cachedInputTokens,
|
|
33
34
|
outputTokens,
|
|
34
|
-
totalTokens:
|
|
35
|
+
totalTokens: inputTokens + cachedInputTokens + outputTokens,
|
|
35
36
|
};
|
|
36
37
|
}
|
|
37
38
|
/** Total tokens used — input + cached + output, NaN-guarded. */
|
|
@@ -89,24 +90,89 @@ export function providerMeta(meta, response) {
|
|
|
89
90
|
* the run: a bill that is short a line is recoverable, a run that died over a
|
|
90
91
|
* price list is not. Storage failures are logged for the same reason — the
|
|
91
92
|
* tokens of a stopped run were still spent. */
|
|
93
|
+
//
|
|
94
|
+
// A run's own calls go through its RunLedger.record instead, which also holds
|
|
95
|
+
// the run to one currency and books the spend against its caps.
|
|
92
96
|
export async function recordCall(deps, threadId, usage) {
|
|
93
|
-
const
|
|
97
|
+
const priced = await price(deps, usage);
|
|
98
|
+
await store(deps, threadId, priced);
|
|
99
|
+
return priced;
|
|
100
|
+
}
|
|
101
|
+
/** Put the pricer's cost on a usage row, leaving it unpriced when the pricer
|
|
102
|
+
* fails or has nothing to say. */
|
|
103
|
+
async function price(deps, usage) {
|
|
94
104
|
const priced = { ...usage };
|
|
95
105
|
if (deps.pricer && !priced.cost) {
|
|
96
106
|
try {
|
|
97
107
|
priced.cost = (await deps.pricer.price(priced)) ?? null;
|
|
98
108
|
}
|
|
99
109
|
catch (err) {
|
|
100
|
-
log.error('usage not priced', { run: priced.runId, model: priced.model, err });
|
|
110
|
+
(deps.log ?? console).error('usage not priced', { run: priced.runId, model: priced.model, err });
|
|
101
111
|
}
|
|
102
112
|
}
|
|
113
|
+
return priced;
|
|
114
|
+
}
|
|
115
|
+
/** Write a usage row. A failure is logged, not thrown: the tokens of a
|
|
116
|
+
* stopped run were still spent. */
|
|
117
|
+
async function store(deps, threadId, usage) {
|
|
103
118
|
try {
|
|
104
|
-
await deps.storage.usage.record(threadId,
|
|
119
|
+
await deps.storage.usage.record(threadId, usage);
|
|
105
120
|
}
|
|
106
121
|
catch (err) {
|
|
107
|
-
log.error('usage not recorded', { run:
|
|
122
|
+
(deps.log ?? console).error('usage not recorded', { run: usage.runId, thread: threadId, err });
|
|
108
123
|
}
|
|
109
|
-
|
|
124
|
+
}
|
|
125
|
+
/** What a run has spent, main agent and nested runs together (§2.7): its
|
|
126
|
+
* tokens, its money and the one currency that money is in. Shared by
|
|
127
|
+
* reference so a child's spend counts against the run's caps the moment it
|
|
128
|
+
* happens — a budget that ignores delegated work is not a budget.
|
|
129
|
+
*
|
|
130
|
+
* A run's ledger starts from what the run already spent (`seedRunLedger`):
|
|
131
|
+
* its earlier segments, before a park or a retry, count against the same
|
|
132
|
+
* caps. After that it is kept in memory, so the caps are checked without
|
|
133
|
+
* reading every usage row back after every step. */
|
|
134
|
+
export class RunLedger {
|
|
135
|
+
tokensUsed = 0;
|
|
136
|
+
costMicros = 0;
|
|
137
|
+
currency;
|
|
138
|
+
/** Price one call, store its row and book it (§4). A run is priced in one
|
|
139
|
+
* currency: a call priced in another is stored unpriced, with an error
|
|
140
|
+
* logged, rather than mixed into a bill that cannot add it up. */
|
|
141
|
+
async record(deps, threadId, usage) {
|
|
142
|
+
const priced = await price(deps, usage);
|
|
143
|
+
if (priced.cost) {
|
|
144
|
+
this.currency ??= priced.cost.currency;
|
|
145
|
+
if (priced.cost.currency !== this.currency) {
|
|
146
|
+
(deps.log ?? console).error('usage priced in a second currency; stored unpriced', {
|
|
147
|
+
run: priced.runId, model: priced.model, currency: priced.cost.currency, runCurrency: this.currency,
|
|
148
|
+
});
|
|
149
|
+
priced.cost = null;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
await store(deps, threadId, priced);
|
|
153
|
+
this.tokensUsed += priced.totalTokens;
|
|
154
|
+
if (priced.cost)
|
|
155
|
+
this.costMicros += priced.cost.micros;
|
|
156
|
+
return priced;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/** Start a ledger from the run's usage rows (§4). A failed read is logged and
|
|
160
|
+
* the ledger starts from zero: a run is not failed over its caps'
|
|
161
|
+
* bookkeeping. */
|
|
162
|
+
export async function seedRunLedger(deps, threadId, runId) {
|
|
163
|
+
const ledger = new RunLedger();
|
|
164
|
+
if (!runId)
|
|
165
|
+
return ledger;
|
|
166
|
+
try {
|
|
167
|
+
const spent = await deps.storage.usage.total(threadId, { runId });
|
|
168
|
+
ledger.tokensUsed = spent.totalTokens;
|
|
169
|
+
ledger.costMicros = spent.costMicros;
|
|
170
|
+
ledger.currency = spent.currency;
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
(deps.log ?? console).error('run spend not read; the caps count from zero this segment', { run: runId, err });
|
|
174
|
+
}
|
|
175
|
+
return ledger;
|
|
110
176
|
}
|
|
111
177
|
/** Zero totals — what a thread with no usage rows reports. */
|
|
112
178
|
export const emptyTotals = () => ({
|
|
@@ -118,54 +184,111 @@ export const emptyTotals = () => ({
|
|
|
118
184
|
unpriced: 0,
|
|
119
185
|
lines: [],
|
|
120
186
|
});
|
|
187
|
+
/** Rebuilds UsageTotals from grouped rows that a SQL adapter read GROUP BY
|
|
188
|
+
* agent, model AND currency. Grouping by currency is what keeps a sum honest;
|
|
189
|
+
* merging here is what keeps one agent's spend on one model a single line.
|
|
190
|
+
*
|
|
191
|
+
* The rules, the same in every adapter and in the Go runtime: `costMicros`
|
|
192
|
+
* is summed in the first currency seen, and a group priced in another
|
|
193
|
+
* currency counts as unpriced there instead of being added. `costs` keeps
|
|
194
|
+
* every currency's own total. A line takes the currency of the first priced
|
|
195
|
+
* group on it; a group priced in a different currency gets a line of its
|
|
196
|
+
* own, and unpriced groups join the first line of their agent and model. */
|
|
197
|
+
export class UsageMerger {
|
|
198
|
+
out = emptyTotals();
|
|
199
|
+
lines = new Map();
|
|
200
|
+
costs = new Map();
|
|
201
|
+
add(g) {
|
|
202
|
+
const out = this.out;
|
|
203
|
+
const l = { ...g.line };
|
|
204
|
+
const currency = g.currency || '';
|
|
205
|
+
out.inputTokens += l.inputTokens;
|
|
206
|
+
out.cachedInputTokens += l.cacheReadInputTokens;
|
|
207
|
+
out.outputTokens += l.outputTokens;
|
|
208
|
+
out.totalTokens += g.totalTokens;
|
|
209
|
+
out.unpriced += g.unpriced;
|
|
210
|
+
if (!currency) {
|
|
211
|
+
l.costMicros = 0;
|
|
212
|
+
delete l.currency;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
const priced = l.calls - g.unpriced;
|
|
216
|
+
out.costs ??= [];
|
|
217
|
+
let i = this.costs.get(currency);
|
|
218
|
+
if (i === undefined) {
|
|
219
|
+
i = out.costs.length;
|
|
220
|
+
this.costs.set(currency, i);
|
|
221
|
+
out.costs.push({ currency, costMicros: 0, calls: 0 });
|
|
222
|
+
}
|
|
223
|
+
out.costs[i].costMicros += l.costMicros;
|
|
224
|
+
out.costs[i].calls += priced;
|
|
225
|
+
out.currency ??= currency;
|
|
226
|
+
if (currency === out.currency) {
|
|
227
|
+
out.costMicros += l.costMicros;
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
// Another unit: it cannot be added to costMicros, so its calls count
|
|
231
|
+
// as unpriced there and costMicros stays a floor.
|
|
232
|
+
out.unpriced += priced;
|
|
233
|
+
}
|
|
234
|
+
l.currency = currency;
|
|
235
|
+
}
|
|
236
|
+
const key = [l.agentId ?? '', l.agentName ?? '', l.model ?? '', l.modelId ?? ''].join('\u0000');
|
|
237
|
+
const at = (this.lines.get(key) ?? []).find((i) => {
|
|
238
|
+
const c = out.lines[i].currency ?? '';
|
|
239
|
+
return !currency || c === currency || c === '';
|
|
240
|
+
});
|
|
241
|
+
if (at === undefined) {
|
|
242
|
+
this.lines.set(key, [...(this.lines.get(key) ?? []), out.lines.length]);
|
|
243
|
+
out.lines.push(l);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
const line = out.lines[at];
|
|
247
|
+
if (!line.currency && currency)
|
|
248
|
+
line.currency = currency;
|
|
249
|
+
line.inputTokens += l.inputTokens;
|
|
250
|
+
line.cacheReadInputTokens += l.cacheReadInputTokens;
|
|
251
|
+
line.cacheWriteInputTokens += l.cacheWriteInputTokens;
|
|
252
|
+
line.outputTokens += l.outputTokens;
|
|
253
|
+
line.reasoningTokens += l.reasoningTokens;
|
|
254
|
+
line.calls += l.calls;
|
|
255
|
+
line.estimated += l.estimated;
|
|
256
|
+
line.costMicros += l.costMicros;
|
|
257
|
+
}
|
|
258
|
+
totals() {
|
|
259
|
+
return this.out;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
121
262
|
/** Sum usage rows into the shape `total` must return: the four counters, the
|
|
122
263
|
* money, and one line per agent and model.
|
|
123
264
|
*
|
|
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
|
|
126
|
-
* feed every matching row through it and you get exactly
|
|
127
|
-
* promises, lines in first-seen order. */
|
|
265
|
+
* A storage adapter that can group in the database should do that instead
|
|
266
|
+
* (see UsageMerger). This is for the ones that cannot, and for anyone writing
|
|
267
|
+
* their own adapter: feed every matching row through it and you get exactly
|
|
268
|
+
* what the port promises, lines in first-seen order. */
|
|
128
269
|
export function sumUsage(rows) {
|
|
129
|
-
const
|
|
130
|
-
const index = new Map();
|
|
270
|
+
const merge = new UsageMerger();
|
|
131
271
|
for (const u of rows) {
|
|
132
|
-
|
|
133
|
-
|
|
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({
|
|
272
|
+
merge.add({
|
|
273
|
+
line: {
|
|
149
274
|
agentId: u.agentId ?? null,
|
|
150
275
|
agentName: u.agentName ?? null,
|
|
151
276
|
model: u.model ?? null,
|
|
152
277
|
modelId: u.modelId ?? null,
|
|
153
|
-
inputTokens:
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
if (u.cost)
|
|
167
|
-
line.costMicros += u.cost.micros;
|
|
278
|
+
inputTokens: u.inputTokens,
|
|
279
|
+
cacheReadInputTokens: u.cacheReadInputTokens,
|
|
280
|
+
cacheWriteInputTokens: u.cacheWriteInputTokens,
|
|
281
|
+
outputTokens: u.outputTokens,
|
|
282
|
+
reasoningTokens: u.reasoningTokens,
|
|
283
|
+
calls: 1,
|
|
284
|
+
estimated: u.estimated ? 1 : 0,
|
|
285
|
+
costMicros: u.cost?.micros ?? 0,
|
|
286
|
+
},
|
|
287
|
+
currency: u.cost?.currency ?? null,
|
|
288
|
+
totalTokens: u.totalTokens,
|
|
289
|
+
unpriced: u.cost ? 0 : 1,
|
|
290
|
+
});
|
|
168
291
|
}
|
|
169
|
-
return
|
|
292
|
+
return merge.totals();
|
|
170
293
|
}
|
|
171
294
|
//# 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":"AAgCA,MAAM,IAAI,GAAG,CAAC,GAAG,IAA4B,EAAU,EAAE;IACvD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF;;;;;;;;;;;uEAWuE;AACvE,MAAM,UAAU,eAAe,CAC7B,KAAgB,EAChB,IAA2B;IAE3B,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;IACtB,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAE9D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,kBAAwC,CAAC,CAAC;IAClF,MAAM,eAAe,GAAG,IAAI,CAC1B,IAAI,EAAE,SAAS,EAAE,oBAA0C,CAC5D,CAAC;IACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,YAAY,GAAG,eAAe,CAAC;IAErF,MAAM,WAAW,GACf,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAE/E,
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/core/usage.ts"],"names":[],"mappings":"AAgCA,MAAM,IAAI,GAAG,CAAC,GAAG,IAA4B,EAAU,EAAE;IACvD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF;;;;;;;;;;;uEAWuE;AACvE,MAAM,UAAU,eAAe,CAC7B,KAAgB,EAChB,IAA2B;IAE3B,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;IACtB,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAE9D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,kBAAwC,CAAC,CAAC;IAClF,MAAM,eAAe,GAAG,IAAI,CAC1B,IAAI,EAAE,SAAS,EAAE,oBAA0C,CAC5D,CAAC;IACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,YAAY,GAAG,eAAe,CAAC;IAErF,MAAM,WAAW,GACf,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAE/E,yEAAyE;IACzE,2EAA2E;IAC3E,gEAAgE;IAChE,OAAO;QACL,WAAW;QACX,iBAAiB;QACjB,YAAY;QACZ,WAAW,EAAE,WAAW,GAAG,iBAAiB,GAAG,YAAY;KAC5D,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,IAA2B;IACvE,OAAO,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,WAAW,CAAC;AAClD,CAAC;AAGD;;;2BAG2B;AAC3B,MAAM,UAAU,gBAAgB,CAAC,IAA2B;IAC1D,OAAO,IAAI,CACT,IAAI,EAAE,SAAS,EAAE,wBAA8C,EAC/D,IAAI,EAAE,OAAO,EAAE,qBAA2C,CAC3D,CAAC;AACJ,CAAC;AAED;;0BAE0B;AAC1B,MAAM,UAAU,eAAe,CAAC,KAAgB,EAAE,IAA2B;IAC3E,OAAO,IAAI,CACR,KAAkD,EAAE,eAAe,EACpE,IAAI,EAAE,MAAM,EAAE,eAAqC,CACpD,CAAC;AACJ,CAAC;AAED;;;gCAGgC;AAChC,MAAM,UAAU,UAAU,CACxB,KAAgB,EAChB,IAA2B;IAU3B,MAAM,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvC,OAAO;QACL,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,oBAAoB,EAAE,CAAC,CAAC,iBAAiB;QACzC,qBAAqB,EAAE,gBAAgB,CAAC,IAAI,CAAC;QAC7C,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,eAAe,EAAE,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC;QAC7C,WAAW,EAAE,CAAC,CAAC,WAAW;KAC3B,CAAC;AACJ,CAAC;AAED;;;wCAGwC;AACxC,MAAM,UAAU,YAAY,CAC1B,IAA2B,EAC3B,QAA4D;IAE5D,MAAM,GAAG,GAA4B,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;IACzD,IAAI,QAAQ,EAAE,EAAE;QAAE,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;IAC/C,IAAI,QAAQ,EAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED;;;;;;;;;gDASgD;AAChD,EAAE;AACF,8EAA8E;AAC9E,gEAAgE;AAChE,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAkB,EAClB,QAAgB,EAChB,KAAe;IAEf,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,MAAM,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;mCACmC;AACnC,KAAK,UAAU,KAAK,CAAC,IAAkB,EAAE,KAAe;IACtD,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAC5B,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;oCACoC;AACpC,KAAK,UAAU,KAAK,CAAC,IAAkB,EAAE,QAAgB,EAAE,KAAe;IACxE,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IACjG,CAAC;AACH,CAAC;AAED;;;;;;;;qDAQqD;AACrD,MAAM,OAAO,SAAS;IACpB,UAAU,GAAG,CAAC,CAAC;IACf,UAAU,GAAG,CAAC,CAAC;IACf,QAAQ,CAAqB;IAE7B;;uEAEmE;IACnE,KAAK,CAAC,MAAM,CAAC,IAAkB,EAAE,QAAgB,EAAE,KAAe;QAChE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YACvC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC3C,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,oDAAoD,EAAE;oBAChF,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ;iBACnG,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,MAAM,CAAC,IAAI;YAAE,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACvD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED;;mBAEmB;AACnB,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAkB,EAAE,QAAgB,EAAE,KAAc;IACtF,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC;QACtC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACrC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,2DAA2D,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAChH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAGD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,WAAW,GAAG,GAAgB,EAAE,CAAC,CAAC;IAC7C,WAAW,EAAE,CAAC;IACd,iBAAiB,EAAE,CAAC;IACpB,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,CAAC;IACd,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,CAAC;IACX,KAAK,EAAE,EAAE;CACV,CAAC,CAAC;AAYH;;;;;;;;;6EAS6E;AAC7E,MAAM,OAAO,WAAW;IACL,GAAG,GAAG,WAAW,EAAE,CAAC;IACpB,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IACpC,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEnD,GAAG,CAAC,CAAa;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,MAAM,CAAC,GAAc,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;QAClC,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC;QACjC,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC,oBAAoB,CAAC;QAChD,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC;QACnC,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC;QACjC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC;QAE3B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;YACjB,OAAO,CAAC,CAAC,QAAQ,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC;YACpC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpB,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC5B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC;YACzC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,IAAI,MAAM,CAAC;YAC9B,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;YAC1B,IAAI,QAAQ,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAC9B,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,qEAAqE;gBACrE,kDAAkD;gBAClD,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC;YACzB,CAAC;YACD,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACxB,CAAC;QAED,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChG,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YAChD,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;YACvC,OAAO,CAAC,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACxE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC;QAClC,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,oBAAoB,CAAC;QACpD,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,qBAAqB,CAAC;QACtD,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC;QACpC,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,eAAe,CAAC;QAC1C,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF;AAED;;;;;;yDAMyD;AACzD,MAAM,UAAU,QAAQ,CAAC,IAAwB;IAC/C,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC;YACR,IAAI,EAAE;gBACJ,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI;gBAC1B,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;gBAC9B,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI;gBACtB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI;gBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,oBAAoB,EAAE,CAAC,CAAC,oBAAoB;gBAC5C,qBAAqB,EAAE,CAAC,CAAC,qBAAqB;gBAC9C,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,eAAe,EAAE,CAAC,CAAC,eAAe;gBAClC,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9B,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;aAChC;YACD,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI;YAClC,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;AACxB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
export type { Storage } from './ports/storage.js';
|
|
2
2
|
export type { EventBus } from './ports/bus.js';
|
|
3
|
-
export type
|
|
3
|
+
export { PRIORITY_LOW, QueueFullError, PayloadTooLargeError, DuplicateJobError, UnsupportedError, type EnqueueOptions, type Queue, type QueueStats, type QueuedJob, } from './ports/queue.js';
|
|
4
4
|
export type { Kv } from './ports/kv.js';
|
|
5
|
-
export
|
|
6
|
-
export
|
|
5
|
+
export { StreamClosedError, StreamGoneError, type RunStreams, type StreamMeta, type StreamSnapshot, } from './ports/streams.js';
|
|
6
|
+
export * from './core/stream-events.js';
|
|
7
|
+
export type { SnapshotStream } from './core/snapshot.js';
|
|
8
|
+
export { agUiState, toAgUi, type AgUiState, type WireFormat } from './core/agui.js';
|
|
9
|
+
export { pruneEvents, STREAM_ONLY_TYPES, type PruneOptions, type PruneReport } from './core/prune.js';
|
|
10
|
+
export type { AgentCore, AgentHandle, AgentKind, DeleteThreadResult, GenerateTextAgentSpec, RespondInput, RespondResult, ResolvedModel, RunInput, RunResult, Attachment, RefusedReason, RuntimeOptions, RuntimePorts, StopResult, StreamTextAgentSpec, SubagentsConfig, ThreadSnapshot, FollowStartOptions, ThreadUsage, Pricer, Logger, RunFinishInfo, SettleFn, SystemFn, PrepareStepFn, ReclaimReport, } from './ports/runtime.js';
|
|
11
|
+
export { setupAgentCore, UnknownAgentError } from './runtime.js';
|
|
7
12
|
export { execute, executeStep, executeWithPolicy, finalize, markRequiresConfirmation, type ExecuteInput, type ExecuteOutcome, type FinalizeInput, type StepResult, } from './core/engine.js';
|
|
8
13
|
export { agentTool, type ToolContext } from './core/tools.js';
|
|
9
|
-
export { followEvents, toSseStream, sseFrame, SSE_HEADERS, type FollowOptions, type SseOptions, type SseStream, } from './core/follow.js';
|
|
14
|
+
export { followEvents, followThread, followFrame, formatCursor, parseCursor, toFollowSse, agUiFrame, toSseStream, sseFrame, SSE_HEADERS, type FollowFrame, type FollowOptions, type FollowThreadOptions, type SseOptions, type SseStream, type ThreadCursor, } from './core/follow.js';
|
|
10
15
|
export type { AgentRunState, BoundStorage, StorageContext } from './core/state.js';
|
|
11
|
-
export type { AdminThread, ThreadStart, StepRecord, RunFilter, AdminThreadFilter } from './ports/admin.js';
|
|
16
|
+
export type { AdminThread, ThreadStart, StepRecord, RunFilter, AdminThreadFilter, RunCursor, RunDeltas, RunTotals } from './ports/admin.js';
|
|
12
17
|
export type { BillingCheck } from './core/types.js';
|
|
13
18
|
export { claimRun, redriveKey, runIdKey } from './core/keys.js';
|
|
14
|
-
export { countTokens, sumUsage, emptyTotals } from './core/usage.js';
|
|
19
|
+
export { countTokens, sumUsage, emptyTotals, UsageMerger, type UsageGroup } from './core/usage.js';
|
|
15
20
|
/** Pricing (§4): the pricers that ship with the platform. `pricing.table(...)`
|
|
16
21
|
* is the common case; see the module for `receipt` and `chain`. */
|
|
17
22
|
export * as pricing from './pricing.js';
|
|
@@ -24,10 +29,10 @@ export { run } from './core/run.js';
|
|
|
24
29
|
export { publishEvent, withPublishEvent, RESERVED_EVENT_TYPES, type PublishEventOptions, type ToolPublishEvent, } from './core/publish.js';
|
|
25
30
|
export { stop } from './core/stop.js';
|
|
26
31
|
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';
|
|
28
|
-
export { PrismaStorage, type PrismaLike } from './adapters/prisma.js';
|
|
29
|
-
export { UpstashBus, UpstashKv, THREAD_CHANNEL, type UpstashRedisLike, type UpstashSubscriberLike } from './adapters/upstash.js';
|
|
30
|
-
export { RedisBus, RedisKv, type RedisClientLike, type RedisSubscriberLike } from './adapters/redis.js';
|
|
32
|
+
export { DEFAULT_CONFIG, resolveConfig, type AgentConfig, type RunBudget, type AgentEvent, type ExecutionState, type MessageDTO, type MessageRole, type NewMessage, type NewRunRecord, type NewUsage, type UsageLine, type SubagentProfile, type CurrencyCost, type UsageFilter, type UsageKind, type UsageOutcome, type Cost, type ResolvedModel as ResolvedModelDTO, type RunPatch, type RunRecord, type RunJob, type JobKind, type ResumeInfo, type ContextUsage, type NestedDescriptor, type ThreadDTO, type UsageTotals, } from './core/types.js';
|
|
33
|
+
export { PrismaStorage, PrismaRunStreams, type PrismaLike, type PrismaStreamsLike } from './adapters/prisma.js';
|
|
34
|
+
export { UpstashBus, UpstashKv, UpstashRunStreams, THREAD_CHANNEL, type UpstashRedisLike, type UpstashSubscriberLike } from './adapters/upstash.js';
|
|
35
|
+
export { RedisBus, RedisKv, RedisRunStreams, type RedisClientLike, type RedisSubscriberLike } from './adapters/redis.js';
|
|
31
36
|
export { QStashQueue, type QStashLike, type QStashQueueOptions } from './adapters/qstash.js';
|
|
32
|
-
export { MemoryStorage, MemoryBus, MemoryQueue, MemoryKv } from './adapters/memory.js';
|
|
37
|
+
export { MemoryStorage, MemoryBus, MemoryQueue, MemoryKv, MemoryRunStreams } from './adapters/memory.js';
|
|
33
38
|
//# sourceMappingURL=index.d.ts.map
|
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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
export { PRIORITY_LOW, QueueFullError, PayloadTooLargeError, DuplicateJobError, UnsupportedError, } from './ports/queue.js';
|
|
2
|
+
export { StreamClosedError, StreamGoneError, } from './ports/streams.js';
|
|
3
|
+
export * from './core/stream-events.js';
|
|
4
|
+
export { agUiState, toAgUi } from './core/agui.js';
|
|
5
|
+
export { pruneEvents, STREAM_ONLY_TYPES } from './core/prune.js';
|
|
1
6
|
// runtime — the factory that binds ports to behaviors
|
|
2
|
-
export { setupAgentCore } from './runtime.js';
|
|
7
|
+
export { setupAgentCore, UnknownAgentError } from './runtime.js';
|
|
3
8
|
// core — behaviors, all ports-only
|
|
4
9
|
export { execute, executeStep, executeWithPolicy, finalize, markRequiresConfirmation, } from './core/engine.js';
|
|
5
10
|
export { agentTool } from './core/tools.js';
|
|
6
|
-
export { followEvents, toSseStream, sseFrame, SSE_HEADERS, } from './core/follow.js';
|
|
11
|
+
export { followEvents, followThread, followFrame, formatCursor, parseCursor, toFollowSse, agUiFrame, toSseStream, sseFrame, SSE_HEADERS, } from './core/follow.js';
|
|
7
12
|
export { claimRun, redriveKey, runIdKey } from './core/keys.js';
|
|
8
|
-
export { countTokens, sumUsage, emptyTotals } from './core/usage.js';
|
|
13
|
+
export { countTokens, sumUsage, emptyTotals, UsageMerger } from './core/usage.js';
|
|
9
14
|
/** Pricing (§4): the pricers that ship with the platform. `pricing.table(...)`
|
|
10
15
|
* is the common case; see the module for `receipt` and `chain`. */
|
|
11
16
|
export * as pricing from './pricing.js';
|
|
@@ -20,9 +25,9 @@ export { repairDanglingToolCalls, DANGLING_CALL_RESULT } from './core/messages.j
|
|
|
20
25
|
// types
|
|
21
26
|
export { DEFAULT_CONFIG, resolveConfig, } from './core/types.js';
|
|
22
27
|
// reference adapters
|
|
23
|
-
export { PrismaStorage } from './adapters/prisma.js';
|
|
24
|
-
export { UpstashBus, UpstashKv, THREAD_CHANNEL } from './adapters/upstash.js';
|
|
25
|
-
export { RedisBus, RedisKv } from './adapters/redis.js';
|
|
28
|
+
export { PrismaStorage, PrismaRunStreams } from './adapters/prisma.js';
|
|
29
|
+
export { UpstashBus, UpstashKv, UpstashRunStreams, THREAD_CHANNEL } from './adapters/upstash.js';
|
|
30
|
+
export { RedisBus, RedisKv, RedisRunStreams } from './adapters/redis.js';
|
|
26
31
|
export { QStashQueue } from './adapters/qstash.js';
|
|
27
|
-
export { MemoryStorage, MemoryBus, MemoryQueue, MemoryKv } from './adapters/memory.js';
|
|
32
|
+
export { MemoryStorage, MemoryBus, MemoryQueue, MemoryKv, MemoryRunStreams } from './adapters/memory.js';
|
|
28
33
|
//# sourceMappingURL=index.js.map
|
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":"AAGA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GAKjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,iBAAiB,EACjB,eAAe,GAIhB,MAAM,oBAAoB,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAmC,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAuC,MAAM,iBAAiB,CAAC;AA+BtG,sDAAsD;AACtD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjE,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,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,EACR,WAAW,GAOZ,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AAEnG;oEACoE;AACpE,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,OAAO,EACL,OAAO,EACP,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,YAAY,EACZ,cAAc,EAEd,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,GA2Bd,MAAM,iBAAiB,CAAC;AAEzB,qBAAqB;AACrB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAA2C,MAAM,sBAAsB,CAAC;AAChH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAqD,MAAM,uBAAuB,CAAC;AACpJ,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAkD,MAAM,qBAAqB,CAAC;AACzH,OAAO,EAAE,WAAW,EAA4C,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/ports/admin.d.ts
CHANGED
|
@@ -19,6 +19,12 @@ export interface AdminStore {
|
|
|
19
19
|
upsert(thread: NewAdminThread): Promise<void>;
|
|
20
20
|
countByState(): Promise<Partial<Record<ExecutionState, number>>>;
|
|
21
21
|
list(filter: AdminThreadFilter): Promise<AdminThread[]>;
|
|
22
|
+
/** One thread, or null when it was never seen. */
|
|
23
|
+
get(threadId: string): Promise<AdminThread | null>;
|
|
24
|
+
/** Remove a thread with its runs and steps: what a deleted thread leaves
|
|
25
|
+
* behind in operational history (§3.2). An unknown thread is not an
|
|
26
|
+
* error. */
|
|
27
|
+
delete(threadId: string): Promise<void>;
|
|
22
28
|
};
|
|
23
29
|
runs: {
|
|
24
30
|
start(run: NewRunRecord): Promise<RunRecord>;
|
|
@@ -30,6 +36,23 @@ export interface AdminStore {
|
|
|
30
36
|
/** Counts by state across every run. The "what is happening right now"
|
|
31
37
|
* aggregate, pushed down so it never drags rows into memory. */
|
|
32
38
|
countByState(): Promise<Partial<Record<ExecutionState, number>>>;
|
|
39
|
+
/** Claim the right to run a run's settle hook (§5.6), in one conditional
|
|
40
|
+
* write: it wins only while the run is not settled and no other claim on
|
|
41
|
+
* it is newer than `staleBefore`. A claim older than that belongs to a
|
|
42
|
+
* settler that died, and is taken over. False when the run is unknown,
|
|
43
|
+
* settled, or claimed by someone else. */
|
|
44
|
+
claimSettle(runId: string, token: string, staleBefore: Date): Promise<boolean>;
|
|
45
|
+
/** Add to a run's counters in one write (`SET steps = steps + n`), so two
|
|
46
|
+
* segments that close together both count. An unknown run is not an
|
|
47
|
+
* error. */
|
|
48
|
+
increment(runId: string, deltas: RunDeltas): Promise<void>;
|
|
49
|
+
/** Count and sum every run the filter matches, grouped in the store:
|
|
50
|
+
* exact however many runs there are. `limit` and `before` are ignored. */
|
|
51
|
+
totals(filter: RunFilter): Promise<RunTotals>;
|
|
52
|
+
/** End a claim made with `token`. `settled` marks the run settled for
|
|
53
|
+
* good; otherwise the claim is dropped so a later settle can run the hook
|
|
54
|
+
* again. A claim that was taken over is left alone. */
|
|
55
|
+
endSettle(runId: string, token: string, settled: boolean): Promise<void>;
|
|
33
56
|
};
|
|
34
57
|
steps: {
|
|
35
58
|
record(step: NewStepRecord): Promise<void>;
|
|
@@ -112,9 +135,45 @@ export interface RunFilter {
|
|
|
112
135
|
state?: ExecutionState[];
|
|
113
136
|
agent?: string;
|
|
114
137
|
threadId?: string;
|
|
138
|
+
/** Only runs on these threads. Omitted or empty means every thread. */
|
|
139
|
+
threadIds?: string[];
|
|
115
140
|
since?: Date;
|
|
116
141
|
until?: Date;
|
|
142
|
+
/** Only runs that have ended and whose settle has not run (§5.6): what the
|
|
143
|
+
* late-settle sweep looks for. */
|
|
144
|
+
unsettled?: boolean;
|
|
145
|
+
/** Only runs at this depth: 0 is a dispatched run. Omitted is every depth. */
|
|
146
|
+
depth?: number;
|
|
147
|
+
/** Pages through a listing: only runs that sort after this one, newest
|
|
148
|
+
* first by start time and then by id. Pass the last run of the previous
|
|
149
|
+
* page. */
|
|
150
|
+
before?: RunCursor;
|
|
117
151
|
/** Newest first. Implementations cap this — core passes a bounded value. */
|
|
118
152
|
limit?: number;
|
|
119
153
|
}
|
|
154
|
+
/** Amounts to add to a run's counters (see `runs.increment`). */
|
|
155
|
+
export interface RunDeltas {
|
|
156
|
+
steps: number;
|
|
157
|
+
inputTokens: number;
|
|
158
|
+
cachedInputTokens: number;
|
|
159
|
+
outputTokens: number;
|
|
160
|
+
totalTokens: number;
|
|
161
|
+
}
|
|
162
|
+
/** What `runs.totals` counts over a set of runs. Tokens are summed from the
|
|
163
|
+
* run records: tokens only, no money. */
|
|
164
|
+
export interface RunTotals {
|
|
165
|
+
runs: number;
|
|
166
|
+
byState: Partial<Record<ExecutionState, number>>;
|
|
167
|
+
byStopReason: Record<string, number>;
|
|
168
|
+
steps: number;
|
|
169
|
+
inputTokens: number;
|
|
170
|
+
cachedInputTokens: number;
|
|
171
|
+
outputTokens: number;
|
|
172
|
+
totalTokens: number;
|
|
173
|
+
}
|
|
174
|
+
/** A place in a run listing (see `RunFilter.before`). */
|
|
175
|
+
export interface RunCursor {
|
|
176
|
+
startedAt: Date;
|
|
177
|
+
id: string;
|
|
178
|
+
}
|
|
120
179
|
//# sourceMappingURL=admin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/ports/admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE1F;;;;;;;;;yDASyD;AACzD,MAAM,WAAW,UAAU;IACzB;;;6DAGyD;IACzD,OAAO,EAAE;QACP,wEAAwE;QACxE,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9C,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/ports/admin.ts"],"names":[],"mappings":"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"}
|
package/dist/ports/kv.d.ts
CHANGED
|
@@ -12,5 +12,22 @@ export interface Kv {
|
|
|
12
12
|
}): Promise<boolean>;
|
|
13
13
|
del(key: string): Promise<void>;
|
|
14
14
|
incr(key: string): Promise<number>;
|
|
15
|
+
/** `incr` that stamps a NEW counter (or one that had expired) with an
|
|
16
|
+
* expiry, so a counter nobody clears still ages out. A live counter keeps
|
|
17
|
+
* the expiry it already has. Atomic, like `incr`. */
|
|
18
|
+
incrWithExpiry(key: string, exSeconds: number): Promise<number>;
|
|
19
|
+
/** Compare-and-set: writes `value` only while the key still holds
|
|
20
|
+
* `expected` and has not expired, and returns whether it did. The renewal
|
|
21
|
+
* half of the run lock (§3.4): a worker that lost its lock to another can
|
|
22
|
+
* never extend the other's. Must be ONE atomic step (a Lua script on
|
|
23
|
+
* Redis), never a get followed by a set. */
|
|
24
|
+
setIfValue(key: string, expected: string, value: string, opts?: {
|
|
25
|
+
exSeconds?: number;
|
|
26
|
+
}): Promise<boolean>;
|
|
27
|
+
/** Compare-and-delete: removes the key only while it holds `expected`, and
|
|
28
|
+
* returns whether it did. The release half of the run lock: a worker never
|
|
29
|
+
* frees a lock another worker took after its own lapsed. Atomic, like
|
|
30
|
+
* `setIfValue`. */
|
|
31
|
+
delIfValue(key: string, expected: string): Promise<boolean>;
|
|
15
32
|
}
|
|
16
33
|
//# sourceMappingURL=kv.d.ts.map
|
package/dist/ports/kv.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kv.d.ts","sourceRoot":"","sources":["../../src/ports/kv.ts"],"names":[],"mappings":"AAAA;;+BAE+B;AAC/B,MAAM,WAAW,EAAE;IACjB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC;;2DAEuD;IACvD,GAAG,CACD,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACvD,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"kv.d.ts","sourceRoot":"","sources":["../../src/ports/kv.ts"],"names":[],"mappings":"AAAA;;+BAE+B;AAC/B,MAAM,WAAW,EAAE;IACjB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC;;2DAEuD;IACvD,GAAG,CACD,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACvD,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC;;0DAEsD;IACtD,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE;;;;iDAI6C;IAC7C,UAAU,CACR,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5B,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB;;;wBAGoB;IACpB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7D"}
|