agentenkit 0.1.6 → 0.2.1
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 +44 -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/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 +41 -53
- 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 +36 -53
- package/dist/admin/sqlite.js.map +1 -1
- package/dist/core/admin.d.ts +4 -0
- package/dist/core/admin.d.ts.map +1 -1
- package/dist/core/admin.js +9 -1
- 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 +81 -17
- package/dist/core/engine.js.map +1 -1
- package/dist/core/hitl.d.ts +56 -4
- package/dist/core/hitl.d.ts.map +1 -1
- package/dist/core/hitl.js +94 -20
- 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 +125 -17
- package/dist/core/loop.js.map +1 -1
- package/dist/core/messages.d.ts +26 -0
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js +23 -0
- package/dist/core/messages.js.map +1 -1
- package/dist/core/reclaim.d.ts.map +1 -1
- package/dist/core/reclaim.js +4 -3
- package/dist/core/reclaim.js.map +1 -1
- package/dist/core/run.d.ts.map +1 -1
- package/dist/core/run.js +1 -0
- package/dist/core/run.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 +20 -8
- package/dist/core/subagent.js.map +1 -1
- package/dist/core/types.d.ts +145 -7
- 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 +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/ports/runtime.d.ts +69 -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 +5 -2
- package/dist/runtime.js.map +1 -1
- package/package.json +1 -1
package/dist/core/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAGlC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"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"}
|
package/dist/core/engine.d.ts
CHANGED
|
@@ -38,6 +38,9 @@ export interface ExecuteInput {
|
|
|
38
38
|
/** The run's state (§2.10) — carried so a redrive keeps it. */
|
|
39
39
|
state?: AgentRunState;
|
|
40
40
|
tokenBudget?: number;
|
|
41
|
+
/** The run's money cap (§4), carried on the dispatch so the worker enforces
|
|
42
|
+
* what the caller asked for. */
|
|
43
|
+
costBudgetMicros?: number;
|
|
41
44
|
providerOptions?: ProviderOptions;
|
|
42
45
|
}
|
|
43
46
|
/** 'executed' — this worker ran the segment (or it was a legitimate no-op).
|
|
@@ -47,7 +50,7 @@ export type ExecuteOutcome = 'executed' | 'lock-conflict' | 'stale';
|
|
|
47
50
|
export declare function execute(deps: RuntimePorts, agent: RegisteredAgent, input: ExecuteInput): Promise<ExecuteOutcome>;
|
|
48
51
|
export interface FinalizeInput {
|
|
49
52
|
state: ExecutionState;
|
|
50
|
-
stopReason: 'completed' | 'token_budget' | 'max_steps' | 'cancelled';
|
|
53
|
+
stopReason: 'completed' | 'token_budget' | 'cost_budget' | 'max_steps' | 'cancelled';
|
|
51
54
|
tokensUsed: number;
|
|
52
55
|
attribution: TokenAttribution;
|
|
53
56
|
/** generate-text flavor only: publish the final text as one TEXT_RESULT. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAA2B,MAAM,YAAY,CAAC;AAG3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAInD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAWlD,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAI9H;;iDAEiD;AACjD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIlF;AAED;4EAC4E;AAC5E,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAElE;AA0ND;;;;;;;;;;;;;;gDAcgD;AAChD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd;2EACuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;qCACiC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED;;+EAE+E;AAC/E,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,eAAe,GAAG,OAAO,CAAC;AAEpE,wBAAsB,OAAO,CAC3B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,cAAc,CAAC,CAoQzB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,WAAW,GAAG,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;IACrF,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;sDACkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;sDAMsD;AACtD,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,MAAM,EAChB,CAAC,EAAE,aAAa,GACf,OAAO,CAAC,IAAI,CAAC,CA8Bf;AA4CD;;;;yEAIyE;AACzE,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,YAAY,EACnB,MAAM,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EACjC,IAAI,GAAE,OAAO,OAAiB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAkDf"}
|
package/dist/core/engine.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { wireId } from './types.js';
|
|
2
3
|
import { compactContext } from './context.js';
|
|
3
4
|
import { markPromptCaching } from './cache.js';
|
|
4
|
-
import { repairDanglingToolCalls } from './messages.js';
|
|
5
|
+
import { promptMessages, repairDanglingToolCalls } from './messages.js';
|
|
5
6
|
import { mergeProviderOptions } from './types.js';
|
|
6
|
-
import { hitlKey, loadOpenHitls, withHitl, } from './hitl.js';
|
|
7
|
+
import { hitlKey, loadOpenHitls, withHitl, hitlDeadline, } from './hitl.js';
|
|
7
8
|
import { publish, publishEvent, setThreadState, withPublishEvent } from './publish.js';
|
|
8
9
|
import { runNestedAgent, spawnSubagentTool } from './subagent.js';
|
|
9
10
|
import { redriveKey, runIdKey } from './keys.js';
|
|
@@ -34,7 +35,7 @@ export function markRequiresConfirmation(t) {
|
|
|
34
35
|
async function verdictReady(deps, pending) {
|
|
35
36
|
if (await deps.kv.get(hitlKey(pending.toolCallId)))
|
|
36
37
|
return 'answered';
|
|
37
|
-
return Date.now()
|
|
38
|
+
return Date.now() >= hitlDeadline(pending, deps.config) ? 'expired' : 'open';
|
|
38
39
|
}
|
|
39
40
|
/** Turn a settled approval into the tool result the conversation will carry
|
|
40
41
|
* (§2.5): run the approved tool, record the denial, or convert an expired
|
|
@@ -215,6 +216,8 @@ export async function execute(deps, agent, input) {
|
|
|
215
216
|
// config. Checked BETWEEN steps: the finished step is always kept in full,
|
|
216
217
|
// nothing is aborted mid-generation. This is NOT a user stop.
|
|
217
218
|
const tokenBudget = input.tokenBudget ?? agent.spec.tokenBudget ?? deps.config.tokenBudget;
|
|
219
|
+
// The money cap (§4) resolves the same way, widest last.
|
|
220
|
+
const costBudget = input.costBudgetMicros ?? agent.spec.costBudgetMicros ?? deps.config.costBudgetMicros;
|
|
218
221
|
// Provider-specific options (§3.1): spec default <- execute input,
|
|
219
222
|
// shallow per-provider namespace; the execute input wins.
|
|
220
223
|
// Three levels, widest first: runtime config → agent spec → this run.
|
|
@@ -255,6 +258,9 @@ export async function execute(deps, agent, input) {
|
|
|
255
258
|
model: input.model,
|
|
256
259
|
...(runId ? { runId } : {}),
|
|
257
260
|
...(input.tokenBudget !== undefined ? { tokenBudget: input.tokenBudget } : {}),
|
|
261
|
+
...(input.costBudgetMicros !== undefined
|
|
262
|
+
? { costBudgetMicros: input.costBudgetMicros }
|
|
263
|
+
: {}),
|
|
258
264
|
...(providerOptions ? { providerOptions } : {}),
|
|
259
265
|
// Carried so the resumed segment scopes its storage the same way this
|
|
260
266
|
// one does (§2.10).
|
|
@@ -290,6 +296,8 @@ export async function execute(deps, agent, input) {
|
|
|
290
296
|
agentId: null, // spawned by the main agent
|
|
291
297
|
frames: [],
|
|
292
298
|
tokenBudget,
|
|
299
|
+
costBudgetMicros: costBudget,
|
|
300
|
+
billingRunId: runId,
|
|
293
301
|
providerOptions,
|
|
294
302
|
abortSignal: abort.signal,
|
|
295
303
|
state: input.state,
|
|
@@ -325,7 +333,7 @@ export async function execute(deps, agent, input) {
|
|
|
325
333
|
const model = deps.resolveModel(input.model);
|
|
326
334
|
// Prompt caching (§2.6): stamp the stable prefix once — appended step
|
|
327
335
|
// messages extend the prompt without invalidating the breakpoints.
|
|
328
|
-
let messages = repairDanglingToolCalls(history
|
|
336
|
+
let messages = repairDanglingToolCalls(promptMessages(history));
|
|
329
337
|
if (deps.config.promptCaching) {
|
|
330
338
|
messages = markPromptCaching(messages);
|
|
331
339
|
}
|
|
@@ -341,6 +349,11 @@ export async function execute(deps, agent, input) {
|
|
|
341
349
|
abortSignal: abort.signal,
|
|
342
350
|
providerOptions,
|
|
343
351
|
tokenBudget,
|
|
352
|
+
costBudgetMicros: costBudget,
|
|
353
|
+
billingRunId: runId,
|
|
354
|
+
modelKey: input.model,
|
|
355
|
+
modelId: wireId(model, input.model),
|
|
356
|
+
agentName: agent.name,
|
|
344
357
|
cacheSystemPrompt: deps.config.promptCaching,
|
|
345
358
|
onChunk: async (chunk) => {
|
|
346
359
|
// One canonical path for every client: durable log + live Pub/Sub (§2.1, §2.2)
|
|
@@ -353,21 +366,24 @@ export async function execute(deps, agent, input) {
|
|
|
353
366
|
const lastText = loop.text;
|
|
354
367
|
const lastFinishReason = loop.finishReason;
|
|
355
368
|
if (parked) {
|
|
356
|
-
// The segment ends holding the park
|
|
357
|
-
//
|
|
358
|
-
// WAITING_FOR_INPUT (or CANCELLED if the user
|
|
359
|
-
|
|
369
|
+
// The segment ends holding the park. Every call it made was already
|
|
370
|
+
// recorded and priced as it happened (§4), so there is nothing left to
|
|
371
|
+
// bill here. NO state flip: WAITING_FOR_INPUT (or CANCELLED if the user
|
|
372
|
+
// stopped meanwhile) stands.
|
|
360
373
|
return 'executed';
|
|
361
374
|
}
|
|
362
375
|
const stopReason = abort.signal.aborted
|
|
363
376
|
? 'cancelled'
|
|
364
|
-
:
|
|
365
|
-
? '
|
|
366
|
-
:
|
|
367
|
-
? '
|
|
368
|
-
: '
|
|
377
|
+
: loop.costExhausted
|
|
378
|
+
? 'cost_budget' // the money cap (§4)
|
|
379
|
+
: tokenBudget && tokensUsed >= tokenBudget
|
|
380
|
+
? 'token_budget'
|
|
381
|
+
: lastFinishReason === 'tool-calls'
|
|
382
|
+
? 'max_steps' // step ceiling hit (§2.1)
|
|
383
|
+
: 'completed';
|
|
384
|
+
const state = abort.signal.aborted ? 'CANCELLED' : 'COMPLETED';
|
|
369
385
|
await finalize(deps, agent, threadId, {
|
|
370
|
-
state
|
|
386
|
+
state,
|
|
371
387
|
stopReason,
|
|
372
388
|
tokensUsed,
|
|
373
389
|
attribution,
|
|
@@ -375,6 +391,28 @@ export async function execute(deps, agent, input) {
|
|
|
375
391
|
runId,
|
|
376
392
|
steps: loop.steps,
|
|
377
393
|
});
|
|
394
|
+
if (typeof userArgs.onFinish === 'function') {
|
|
395
|
+
// The whole run's bill, read back from the rows the loop wrote (§4):
|
|
396
|
+
// every segment and every nested run, priced and grouped into lines, so
|
|
397
|
+
// a settle hook charges in one pass without keeping its own tally.
|
|
398
|
+
// The run is already finalized: a callback that throws is the
|
|
399
|
+
// caller's bug to see in the log, not a reason to fail a finished run.
|
|
400
|
+
try {
|
|
401
|
+
await userArgs.onFinish({
|
|
402
|
+
threadId,
|
|
403
|
+
runId,
|
|
404
|
+
state,
|
|
405
|
+
stopReason,
|
|
406
|
+
tokensUsed,
|
|
407
|
+
attribution,
|
|
408
|
+
steps: loop.steps,
|
|
409
|
+
usage: await runBill(deps, threadId, runId),
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
catch (err) {
|
|
413
|
+
(deps.log ?? console).error('onFinish threw', { runId, err: String(err) });
|
|
414
|
+
}
|
|
415
|
+
}
|
|
378
416
|
return 'executed';
|
|
379
417
|
}
|
|
380
418
|
finally {
|
|
@@ -390,9 +428,10 @@ export async function execute(deps, agent, input) {
|
|
|
390
428
|
* A budget break is NOT a user stop: the run completes with stopReason
|
|
391
429
|
* 'token_budget' and the usage it actually spent. */
|
|
392
430
|
export async function finalize(deps, agent, threadId, f) {
|
|
393
|
-
//
|
|
394
|
-
//
|
|
395
|
-
|
|
431
|
+
// Nothing to bill here: every model call recorded and priced its own row as
|
|
432
|
+
// it happened, inside the loop (§4). Even a run that was replaced part-way
|
|
433
|
+
// through has already had its calls written.
|
|
434
|
+
//
|
|
396
435
|
// Close the run's durable record (§2.9). Additive: a run that parked and
|
|
397
436
|
// resumed finalises once, but its steps and tokens accrued over several
|
|
398
437
|
// segments, so they are summed onto what is already there. The run lock
|
|
@@ -443,6 +482,9 @@ async function redriveOnLockConflict(deps, agent, input, maxAttempts) {
|
|
|
443
482
|
model: input.model,
|
|
444
483
|
agent: agent.name,
|
|
445
484
|
tokenBudget: input.tokenBudget,
|
|
485
|
+
// A redrive is the SAME run trying again, so it keeps the caps it was
|
|
486
|
+
// dispatched with — a retry that lost its money cap would be unbounded.
|
|
487
|
+
costBudgetMicros: input.costBudgetMicros,
|
|
446
488
|
providerOptions: input.providerOptions,
|
|
447
489
|
}, { delaySeconds: deps.config.runRedriveDelaySeconds });
|
|
448
490
|
}
|
|
@@ -486,6 +528,9 @@ export async function executeWithPolicy(deps, agent, input, policy, exec = execu
|
|
|
486
528
|
model: input.model,
|
|
487
529
|
agent: agent.name,
|
|
488
530
|
tokenBudget: input.tokenBudget,
|
|
531
|
+
// A redrive is the SAME run trying again, so it keeps the caps it was
|
|
532
|
+
// dispatched with — a retry that lost its money cap would be unbounded.
|
|
533
|
+
costBudgetMicros: input.costBudgetMicros,
|
|
489
534
|
providerOptions: input.providerOptions,
|
|
490
535
|
});
|
|
491
536
|
}
|
|
@@ -495,4 +540,23 @@ export async function executeWithPolicy(deps, agent, input, policy, exec = execu
|
|
|
495
540
|
await deps.kv.del(`agent:attempts:${input.threadId}`);
|
|
496
541
|
}
|
|
497
542
|
}
|
|
543
|
+
/** Sum every model call a run made, nested runs included (§4). Best effort
|
|
544
|
+
* like every other read on the finish path: a storage hiccup must not turn a
|
|
545
|
+
* finished run into a failed one, so a failure comes back as zero totals and
|
|
546
|
+
* the error is logged. */
|
|
547
|
+
async function runBill(deps, threadId, runId) {
|
|
548
|
+
const empty = {
|
|
549
|
+
inputTokens: 0, cachedInputTokens: 0, outputTokens: 0, totalTokens: 0,
|
|
550
|
+
costMicros: 0, unpriced: 0, lines: [],
|
|
551
|
+
};
|
|
552
|
+
if (!runId)
|
|
553
|
+
return empty;
|
|
554
|
+
try {
|
|
555
|
+
return await deps.storage.usage.total(threadId, { runId });
|
|
556
|
+
}
|
|
557
|
+
catch (err) {
|
|
558
|
+
(deps.log ?? console).error('run bill not read', { run: runId, err });
|
|
559
|
+
return empty;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
498
562
|
//# sourceMappingURL=engine.js.map
|
package/dist/core/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/core/hitl.d.ts
CHANGED
|
@@ -23,12 +23,50 @@ export interface HitlFrame {
|
|
|
23
23
|
* main agent, whose loop the engine re-enters itself. */
|
|
24
24
|
nested?: NestedDescriptor;
|
|
25
25
|
}
|
|
26
|
+
/** Marks a park raised by a `requiresConfirmation` tool: a human decides.
|
|
27
|
+
* Any other reason is a tool that parked itself (§2.5). */
|
|
28
|
+
export declare const REASON_APPROVAL = "approval";
|
|
29
|
+
/** A tool's own park (§2.5). The tool has started something it must not wait
|
|
30
|
+
* for in-process (a build, a render, a long job) and asks to be resumed when
|
|
31
|
+
* it is done: the run lock and the worker are released, the request is
|
|
32
|
+
* durable, and `respond(toolCallId, payload)` runs the SAME tool call again
|
|
33
|
+
* with the payload on its `approval`. Nothing waits meanwhile. */
|
|
34
|
+
export interface ParkRequest {
|
|
35
|
+
/** Names what the run is waiting on ("job", say). It rides the
|
|
36
|
+
* INPUT_REQUIRED event, so a UI can tell it from an approval and skip the
|
|
37
|
+
* card. Empty means REASON_APPROVAL. */
|
|
38
|
+
reason?: string;
|
|
39
|
+
/** Published as the request's arguments: the job id, a URL, whatever the
|
|
40
|
+
* responder needs to find the work. */
|
|
41
|
+
payload?: unknown;
|
|
42
|
+
/** How long the park stays answerable; absent keeps `config.hitlTtlMs`. A
|
|
43
|
+
* job that outlives it resumes as expired, like an unanswered approval. */
|
|
44
|
+
ttlMs?: number;
|
|
45
|
+
}
|
|
46
|
+
/** What a tool throws to park itself:
|
|
47
|
+
*
|
|
48
|
+
* ```ts
|
|
49
|
+
* throw parkForInput({ reason: 'job', payload: { jobId }, ttlMs: 30 * 60_000 });
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* The engine turns it into a durable park. A resumed call sees
|
|
53
|
+
* `ctx.approval` set and must return a result; a resumed call that parks
|
|
54
|
+
* again is reported to the model as a tool error. */
|
|
55
|
+
export declare class ToolParkedError extends Error {
|
|
56
|
+
readonly request: ParkRequest;
|
|
57
|
+
constructor(request: ParkRequest);
|
|
58
|
+
}
|
|
59
|
+
export declare function parkForInput(request?: ParkRequest): ToolParkedError;
|
|
26
60
|
export interface ParkInput {
|
|
27
61
|
threadId: string;
|
|
28
62
|
toolCallId: string;
|
|
29
63
|
toolName: string;
|
|
30
64
|
args: unknown;
|
|
31
65
|
agentId?: string | null;
|
|
66
|
+
/** REASON_APPROVAL, or what a self-parking tool said (§2.5). */
|
|
67
|
+
reason?: string;
|
|
68
|
+
/** Overrides `config.hitlTtlMs` for this park; absent keeps it. */
|
|
69
|
+
ttlMs?: number;
|
|
32
70
|
/** The calls waiting on this answer, innermost first (§2.7). Empty for a
|
|
33
71
|
* main-agent park, which reduces this to the plain §2.5 flow. */
|
|
34
72
|
frames?: HitlFrame[];
|
|
@@ -37,10 +75,13 @@ export interface ParkInput {
|
|
|
37
75
|
/** Dispatch ticket persisted in the INPUT_REQUIRED payload (§2.5) */
|
|
38
76
|
resume: ResumeInfo;
|
|
39
77
|
}
|
|
40
|
-
/** Wrap every
|
|
41
|
-
* request is persisted as INPUT_REQUIRED and
|
|
42
|
-
*
|
|
43
|
-
* (see resumePendingHitl), in whichever stream owns it.
|
|
78
|
+
/** Wrap every tool so a call can park (§2.5) instead of blocking. A marked
|
|
79
|
+
* tool parks BEFORE it runs: the request is persisted as INPUT_REQUIRED and
|
|
80
|
+
* the wrapper returns the park sentinel; the real tool runs when a human
|
|
81
|
+
* answers (see resumePendingHitl), in whichever stream owns it. Any other
|
|
82
|
+
* tool may park ITSELF by throwing `parkForInput(...)` after starting work
|
|
83
|
+
* it cannot wait for; the same machinery resumes it with the responder's
|
|
84
|
+
* payload. Nothing blocks either way.
|
|
44
85
|
*
|
|
45
86
|
* Shared by the main agent and every nested run (§2.7): the only difference
|
|
46
87
|
* is the `agentId` asking and the `frames` waiting on the answer. */
|
|
@@ -79,7 +120,18 @@ export interface PendingHitl {
|
|
|
79
120
|
nested?: NestedDescriptor;
|
|
80
121
|
/** Epoch ms of the INPUT_REQUIRED event — the TTL clock (§2.5) */
|
|
81
122
|
requestedAt: number;
|
|
123
|
+
/** The park's own deadline, epoch ms; absent on a park recorded before
|
|
124
|
+
* per-park TTLs, which `hitlDeadline` reads as requestedAt + hitlTtlMs. */
|
|
125
|
+
expiresAt?: number;
|
|
126
|
+
/** REASON_APPROVAL, or the self-parking tool's word (§2.5). */
|
|
127
|
+
reason?: string;
|
|
82
128
|
}
|
|
129
|
+
/** When a park stops being answerable, epoch ms. */
|
|
130
|
+
export declare function hitlDeadline(p: PendingHitl, config: {
|
|
131
|
+
hitlTtlMs: number;
|
|
132
|
+
}): number;
|
|
133
|
+
/** Whether a human is the responder. */
|
|
134
|
+
export declare function isApprovalPark(p: Pick<PendingHitl, 'reason'>): boolean;
|
|
83
135
|
export declare function loadPendingHitl(deps: RuntimePorts, threadId: string): Promise<PendingHitl | null>;
|
|
84
136
|
/** Every approval on the thread that is still open (§2.7).
|
|
85
137
|
*
|
package/dist/core/hitl.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hitl.d.ts","sourceRoot":"","sources":["../../src/core/hitl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAc,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK3E,eAAO,MAAM,WAAW,QAAc,CAAC;AAEvC;;;sDAGsD;AACtD,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAE7C,eAAO,MAAM,OAAO,GAAI,YAAY,MAAM,WAA+B,CAAC;AAE1E,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;sCAGsC;AACtC,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB;8DAC0D;IAC1D,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;sEACkE;IAClE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,qEAAqE;IACrE,MAAM,EAAE,UAAU,CAAC;CACpB;AAED
|
|
1
|
+
{"version":3,"file":"hitl.d.ts","sourceRoot":"","sources":["../../src/core/hitl.ts"],"names":[],"mappings":"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"}
|
package/dist/core/hitl.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { publish, setThreadState } from './publish.js';
|
|
3
3
|
import { currentRunId } from './keys.js';
|
|
4
|
-
import {
|
|
4
|
+
import { reclaimIfOrphaned } from './reclaim.js';
|
|
5
5
|
export const HITL_TTL_MS = 15 * 60_000;
|
|
6
6
|
/** Result value a parked `requiresConfirmation` tool returns (§2.5). The
|
|
7
7
|
* engine scans a step's tool results for this marker to end the run segment;
|
|
@@ -9,35 +9,85 @@ export const HITL_TTL_MS = 15 * 60_000;
|
|
|
9
9
|
* user's verdict (or the timeout denial) instead. */
|
|
10
10
|
export const HITL_PARKED = '__hitl_parked__';
|
|
11
11
|
export const hitlKey = (toolCallId) => `agent:hitl:${toolCallId}`;
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
/** Marks a park raised by a `requiresConfirmation` tool: a human decides.
|
|
13
|
+
* Any other reason is a tool that parked itself (§2.5). */
|
|
14
|
+
export const REASON_APPROVAL = 'approval';
|
|
15
|
+
/** What a tool throws to park itself:
|
|
16
|
+
*
|
|
17
|
+
* ```ts
|
|
18
|
+
* throw parkForInput({ reason: 'job', payload: { jobId }, ttlMs: 30 * 60_000 });
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* The engine turns it into a durable park. A resumed call sees
|
|
22
|
+
* `ctx.approval` set and must return a result; a resumed call that parks
|
|
23
|
+
* again is reported to the model as a tool error. */
|
|
24
|
+
export class ToolParkedError extends Error {
|
|
25
|
+
request;
|
|
26
|
+
constructor(request) {
|
|
27
|
+
super(`tool parked: ${request.reason ?? REASON_APPROVAL}`);
|
|
28
|
+
this.request = request;
|
|
29
|
+
this.name = 'ToolParkedError';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export function parkForInput(request = {}) {
|
|
33
|
+
return new ToolParkedError(request);
|
|
34
|
+
}
|
|
35
|
+
/** Wrap every tool so a call can park (§2.5) instead of blocking. A marked
|
|
36
|
+
* tool parks BEFORE it runs: the request is persisted as INPUT_REQUIRED and
|
|
37
|
+
* the wrapper returns the park sentinel; the real tool runs when a human
|
|
38
|
+
* answers (see resumePendingHitl), in whichever stream owns it. Any other
|
|
39
|
+
* tool may park ITSELF by throwing `parkForInput(...)` after starting work
|
|
40
|
+
* it cannot wait for; the same machinery resumes it with the responder's
|
|
41
|
+
* payload. Nothing blocks either way.
|
|
16
42
|
*
|
|
17
43
|
* Shared by the main agent and every nested run (§2.7): the only difference
|
|
18
44
|
* is the `agentId` asking and the `frames` waiting on the answer. */
|
|
19
45
|
export function withHitl(deps, threadId, tools, ctx) {
|
|
20
46
|
const out = {};
|
|
21
47
|
for (const [name, t] of Object.entries(tools)) {
|
|
22
|
-
|
|
48
|
+
const park = async (toolCallId, args, request) => {
|
|
49
|
+
await parkForApproval(deps, {
|
|
50
|
+
threadId,
|
|
51
|
+
toolCallId,
|
|
52
|
+
toolName: name,
|
|
53
|
+
args,
|
|
54
|
+
agentId: ctx.agentId ?? null,
|
|
55
|
+
frames: ctx.frames ?? [],
|
|
56
|
+
...(ctx.nested ? { nested: ctx.nested } : {}),
|
|
57
|
+
resume: ctx.resume,
|
|
58
|
+
...(request.reason ? { reason: request.reason } : {}),
|
|
59
|
+
...(request.ttlMs !== undefined ? { ttlMs: request.ttlMs } : {}),
|
|
60
|
+
});
|
|
61
|
+
return { [HITL_PARKED]: toolCallId };
|
|
62
|
+
};
|
|
63
|
+
if (t?.requiresConfirmation) {
|
|
64
|
+
out[name] = {
|
|
65
|
+
...t,
|
|
66
|
+
execute: (args, opts) => park(opts?.toolCallId ?? randomUUID(), args, { reason: REASON_APPROVAL }),
|
|
67
|
+
};
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
const execute = t?.execute;
|
|
71
|
+
if (!execute) {
|
|
23
72
|
out[name] = t;
|
|
24
73
|
continue;
|
|
25
74
|
}
|
|
26
75
|
out[name] = {
|
|
27
76
|
...t,
|
|
28
77
|
execute: async (args, opts) => {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
78
|
+
try {
|
|
79
|
+
return await execute(args, opts);
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
if (!(err instanceof ToolParkedError))
|
|
83
|
+
throw err;
|
|
84
|
+
// A resumed call that parks again has nowhere to go: the verdict
|
|
85
|
+
// for this call is being consumed right now.
|
|
86
|
+
if (opts?.approval) {
|
|
87
|
+
throw new Error(`tool ${name} parked again on resume; a resumed call must return`);
|
|
88
|
+
}
|
|
89
|
+
return park(opts?.toolCallId ?? randomUUID(), err.request.payload ?? null, err.request);
|
|
90
|
+
}
|
|
41
91
|
},
|
|
42
92
|
};
|
|
43
93
|
}
|
|
@@ -59,6 +109,8 @@ export function withHitl(deps, threadId, tools, ctx) {
|
|
|
59
109
|
* deliveries of one run: whichever resolves the park first wins, and the
|
|
60
110
|
* run lock makes the other a no-op. */
|
|
61
111
|
export async function parkForApproval(deps, i) {
|
|
112
|
+
const ttlMs = i.ttlMs && i.ttlMs > 0 ? i.ttlMs : deps.config.hitlTtlMs;
|
|
113
|
+
const expiresAt = new Date(Date.now() + ttlMs).toISOString();
|
|
62
114
|
await deps.kv.set(`agent:state:${i.threadId}`, 'WAITING_FOR_INPUT');
|
|
63
115
|
await setThreadState(deps, i.threadId, 'WAITING_FOR_INPUT', i.resume.model);
|
|
64
116
|
await publish(deps, i.threadId, 'INPUT_REQUIRED', {
|
|
@@ -71,6 +123,11 @@ export async function parkForApproval(deps, i) {
|
|
|
71
123
|
frames: i.frames ?? [],
|
|
72
124
|
...(i.nested ? { nested: i.nested } : {}),
|
|
73
125
|
resume: i.resume,
|
|
126
|
+
// REASON_APPROVAL, or the self-parking tool's own word, and the park's
|
|
127
|
+
// own deadline (§2.5). A park recorded before these existed reads as
|
|
128
|
+
// an approval on the config's TTL.
|
|
129
|
+
reason: i.reason ?? REASON_APPROVAL,
|
|
130
|
+
expiresAt,
|
|
74
131
|
});
|
|
75
132
|
await publish(deps, i.threadId, 'STATE_CHANGE', { state: 'WAITING_FOR_INPUT' });
|
|
76
133
|
// Best-effort, and deliberately last. The park is ALREADY durable by this
|
|
@@ -87,14 +144,25 @@ export async function parkForApproval(deps, i) {
|
|
|
87
144
|
model: i.resume.model,
|
|
88
145
|
agent: i.resume.agent,
|
|
89
146
|
...(i.resume.tokenBudget !== undefined ? { tokenBudget: i.resume.tokenBudget } : {}),
|
|
147
|
+
...(i.resume.costBudgetMicros !== undefined
|
|
148
|
+
? { costBudgetMicros: i.resume.costBudgetMicros }
|
|
149
|
+
: {}),
|
|
90
150
|
...(i.resume.providerOptions ? { providerOptions: i.resume.providerOptions } : {}),
|
|
91
151
|
...(i.resume.state ? { state: i.resume.state } : {}),
|
|
92
|
-
}, { delaySeconds: Math.ceil(
|
|
152
|
+
}, { delaySeconds: Math.ceil((ttlMs + deps.config.reclaimGraceMs) / 1000) });
|
|
93
153
|
}
|
|
94
154
|
catch {
|
|
95
155
|
// No expiry scheduled — the thread still heals on first touch (§2.5).
|
|
96
156
|
}
|
|
97
157
|
}
|
|
158
|
+
/** When a park stops being answerable, epoch ms. */
|
|
159
|
+
export function hitlDeadline(p, config) {
|
|
160
|
+
return p.expiresAt ?? p.requestedAt + config.hitlTtlMs;
|
|
161
|
+
}
|
|
162
|
+
/** Whether a human is the responder. */
|
|
163
|
+
export function isApprovalPark(p) {
|
|
164
|
+
return !p.reason || p.reason === REASON_APPROVAL;
|
|
165
|
+
}
|
|
98
166
|
export async function loadPendingHitl(deps, threadId) {
|
|
99
167
|
const pending = await deps.storage.events.latest(threadId, 'INPUT_REQUIRED');
|
|
100
168
|
if (!pending)
|
|
@@ -103,6 +171,7 @@ export async function loadPendingHitl(deps, threadId) {
|
|
|
103
171
|
}
|
|
104
172
|
function fromInputRequired(pending) {
|
|
105
173
|
const p = pending.payload;
|
|
174
|
+
const expiresAt = p.expiresAt ? new Date(p.expiresAt).getTime() : NaN;
|
|
106
175
|
return {
|
|
107
176
|
toolCallId: p.toolCallId,
|
|
108
177
|
toolName: p.toolName,
|
|
@@ -112,6 +181,8 @@ function fromInputRequired(pending) {
|
|
|
112
181
|
frames: p.frames ?? [],
|
|
113
182
|
...(p.nested ? { nested: p.nested } : {}),
|
|
114
183
|
requestedAt: new Date(pending.createdAt).getTime(),
|
|
184
|
+
...(Number.isFinite(expiresAt) ? { expiresAt } : {}),
|
|
185
|
+
...(p.reason ? { reason: p.reason } : {}),
|
|
115
186
|
};
|
|
116
187
|
}
|
|
117
188
|
/** Every approval on the thread that is still open (§2.7).
|
|
@@ -159,7 +230,7 @@ export async function respond(deps, input) {
|
|
|
159
230
|
// Remaining-TTL expiry so a stale answer can never outlive its request: the
|
|
160
231
|
// key vanishing is what makes the resumed segment treat the request as
|
|
161
232
|
// unanswered (§2.5)
|
|
162
|
-
const remainingSec = Math.max(60, Math.floor((deps.config
|
|
233
|
+
const remainingSec = Math.max(60, Math.floor((hitlDeadline(match, deps.config) - Date.now()) / 1000));
|
|
163
234
|
await deps.kv.set(hitlKey(input.toolCallId), JSON.stringify({ approved: input.approved, payload: input.payload }), { exSeconds: remainingSec });
|
|
164
235
|
// Bus-only fast-path notice (seq 0 = never persisted) for live UIs (§2.5)
|
|
165
236
|
await deps.bus.publish(input.threadId, {
|
|
@@ -187,6 +258,9 @@ export async function respond(deps, input) {
|
|
|
187
258
|
? {
|
|
188
259
|
agent: resume.agent,
|
|
189
260
|
...(resume.tokenBudget !== undefined ? { tokenBudget: resume.tokenBudget } : {}),
|
|
261
|
+
...(resume.costBudgetMicros !== undefined
|
|
262
|
+
? { costBudgetMicros: resume.costBudgetMicros }
|
|
263
|
+
: {}),
|
|
190
264
|
...(resume.providerOptions ? { providerOptions: resume.providerOptions } : {}),
|
|
191
265
|
// The answer resumes the SAME run, so it must scope storage the same
|
|
192
266
|
// way the parked segment did (§2.10).
|