agentenkit 0.1.5 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -2
- package/dist/adapters/memory.d.ts +2 -2
- package/dist/adapters/memory.d.ts.map +1 -1
- package/dist/adapters/memory.js +3 -9
- package/dist/adapters/memory.js.map +1 -1
- package/dist/adapters/prisma.d.ts +61 -18
- package/dist/adapters/prisma.d.ts.map +1 -1
- package/dist/adapters/prisma.js +65 -16
- package/dist/adapters/prisma.js.map +1 -1
- package/dist/adapters/sqlite.d.ts +3 -2
- package/dist/adapters/sqlite.d.ts.map +1 -1
- package/dist/adapters/sqlite.js +82 -11
- package/dist/adapters/sqlite.js.map +1 -1
- package/dist/admin/default.d.ts +11 -4
- package/dist/admin/default.d.ts.map +1 -1
- package/dist/admin/default.js +11 -6
- package/dist/admin/default.js.map +1 -1
- package/dist/admin/memory.d.ts.map +1 -1
- package/dist/admin/memory.js +8 -2
- package/dist/admin/memory.js.map +1 -1
- package/dist/admin/migrations/postgres/0001-init.d.ts +10 -0
- package/dist/admin/migrations/postgres/0001-init.d.ts.map +1 -0
- package/dist/admin/migrations/postgres/0001-init.js +56 -0
- package/dist/admin/migrations/postgres/0001-init.js.map +1 -0
- package/dist/admin/migrations/postgres/index.d.ts +9 -0
- package/dist/admin/migrations/postgres/index.d.ts.map +1 -0
- package/dist/admin/migrations/postgres/index.js +17 -0
- package/dist/admin/migrations/postgres/index.js.map +1 -0
- package/dist/admin/migrations/runner.d.ts +81 -0
- package/dist/admin/migrations/runner.d.ts.map +1 -0
- package/dist/admin/migrations/runner.js +137 -0
- package/dist/admin/migrations/runner.js.map +1 -0
- package/dist/admin/migrations/sqlite/0001-init.d.ts +11 -0
- package/dist/admin/migrations/sqlite/0001-init.d.ts.map +1 -0
- package/dist/admin/migrations/sqlite/0001-init.js +44 -0
- package/dist/admin/migrations/sqlite/0001-init.js.map +1 -0
- package/dist/admin/migrations/sqlite/index.d.ts +7 -0
- package/dist/admin/migrations/sqlite/index.d.ts.map +1 -0
- package/dist/admin/migrations/sqlite/index.js +38 -0
- package/dist/admin/migrations/sqlite/index.js.map +1 -0
- package/dist/admin/postgres.d.ts +27 -4
- package/dist/admin/postgres.d.ts.map +1 -1
- package/dist/admin/postgres.js +49 -55
- package/dist/admin/postgres.js.map +1 -1
- package/dist/admin/sqlite.d.ts +18 -2
- package/dist/admin/sqlite.d.ts.map +1 -1
- package/dist/admin/sqlite.js +51 -54
- package/dist/admin/sqlite.js.map +1 -1
- package/dist/core/admin.d.ts +8 -1
- package/dist/core/admin.d.ts.map +1 -1
- package/dist/core/admin.js +21 -2
- package/dist/core/admin.js.map +1 -1
- package/dist/core/agent.d.ts +3 -0
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +4 -4
- package/dist/core/agent.js.map +1 -1
- package/dist/core/context.d.ts +5 -0
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +38 -9
- package/dist/core/context.js.map +1 -1
- package/dist/core/engine.d.ts +4 -1
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +93 -20
- package/dist/core/engine.js.map +1 -1
- package/dist/core/hitl.d.ts.map +1 -1
- package/dist/core/hitl.js +6 -0
- package/dist/core/hitl.js.map +1 -1
- package/dist/core/loop.d.ts +35 -0
- package/dist/core/loop.d.ts.map +1 -1
- package/dist/core/loop.js +134 -19
- package/dist/core/loop.js.map +1 -1
- package/dist/core/messages.d.ts +48 -0
- package/dist/core/messages.d.ts.map +1 -0
- package/dist/core/messages.js +74 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/publish.d.ts +21 -1
- package/dist/core/publish.d.ts.map +1 -1
- package/dist/core/publish.js +57 -3
- package/dist/core/publish.js.map +1 -1
- package/dist/core/run.d.ts.map +1 -1
- package/dist/core/run.js +44 -4
- package/dist/core/run.js.map +1 -1
- package/dist/core/stop.d.ts.map +1 -1
- package/dist/core/stop.js +42 -0
- package/dist/core/stop.js.map +1 -1
- package/dist/core/subagent.d.ts +5 -0
- package/dist/core/subagent.d.ts.map +1 -1
- package/dist/core/subagent.js +23 -10
- package/dist/core/subagent.js.map +1 -1
- package/dist/core/tools.d.ts +12 -0
- package/dist/core/tools.d.ts.map +1 -1
- package/dist/core/tools.js.map +1 -1
- package/dist/core/types.d.ts +164 -9
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +9 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/usage.d.ts +47 -2
- package/dist/core/usage.d.ts.map +1 -1
- package/dist/core/usage.js +130 -2
- package/dist/core/usage.js.map +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/ports/admin.d.ts +18 -0
- package/dist/ports/admin.d.ts.map +1 -1
- package/dist/ports/runtime.d.ts +78 -4
- package/dist/ports/runtime.d.ts.map +1 -1
- package/dist/ports/storage.d.ts +16 -4
- package/dist/ports/storage.d.ts.map +1 -1
- package/dist/pricing.d.ts +66 -0
- package/dist/pricing.d.ts.map +1 -0
- package/dist/pricing.js +98 -0
- package/dist/pricing.js.map +1 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +7 -2
- package/dist/runtime.js.map +1 -1
- package/package.json +1 -1
package/dist/core/publish.js
CHANGED
|
@@ -9,9 +9,63 @@ export async function publish(deps, threadId, type, payload) {
|
|
|
9
9
|
}
|
|
10
10
|
/** Publish a bus-only notice (never persisted) — e.g. HITL death notices (§2.5). */
|
|
11
11
|
export async function publishNotice(deps, threadId, type, payload) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
const event = { threadId, seq: 0, type, payload, createdAt: new Date() };
|
|
13
|
+
await deps.bus.publish(threadId, event);
|
|
14
|
+
return event;
|
|
15
|
+
}
|
|
16
|
+
/** Event types the platform itself emits. An app cannot publish these: a
|
|
17
|
+
* client's reducer trusts them to mean what the engine meant. */
|
|
18
|
+
export const RESERVED_EVENT_TYPES = new Set([
|
|
19
|
+
'CHUNK',
|
|
20
|
+
'STATE_CHANGE',
|
|
21
|
+
'STEP_COMMITTED',
|
|
22
|
+
'STEP_FINISHED',
|
|
23
|
+
'INPUT_REQUIRED',
|
|
24
|
+
'INPUT_EXPIRED',
|
|
25
|
+
'HITL_RESPONSE',
|
|
26
|
+
'MESSAGE_APPENDED',
|
|
27
|
+
'MESSAGES_DROPPED',
|
|
28
|
+
'CONTEXT_COMPACTED',
|
|
29
|
+
'SUBAGENT_STARTED',
|
|
30
|
+
'SUBAGENT_CHUNK',
|
|
31
|
+
'SUBAGENT_COMPLETED',
|
|
32
|
+
'SUBAGENT_FAILED',
|
|
33
|
+
'TEXT_RESULT',
|
|
34
|
+
'THREAD_DELETED',
|
|
35
|
+
'HEARTBEAT',
|
|
36
|
+
'RUN_REFUSED',
|
|
37
|
+
'TOKEN_BUDGET_EXHAUSTED',
|
|
38
|
+
]);
|
|
39
|
+
/** Publish an event of your own on a thread, through the same pipeline the
|
|
40
|
+
* platform's events take: the durable log and the live bus (§2.2). A client
|
|
41
|
+
* sees it in `onEvent`, exactly like a built-in one. */
|
|
42
|
+
export async function publishEvent(deps, threadId, type, payload, options = {}) {
|
|
43
|
+
if (!type || typeof type !== 'string') {
|
|
44
|
+
throw new Error('publishEvent: an event type is required');
|
|
45
|
+
}
|
|
46
|
+
if (RESERVED_EVENT_TYPES.has(type)) {
|
|
47
|
+
throw new Error(`publishEvent: ${type} is a platform event type — pick your own`);
|
|
48
|
+
}
|
|
49
|
+
return options.durable === false
|
|
50
|
+
? publishNotice(deps, threadId, type, payload)
|
|
51
|
+
: publish(deps, threadId, type, payload);
|
|
52
|
+
}
|
|
53
|
+
/** Give every tool `publishEvent` alongside the SDK's own options, bound to
|
|
54
|
+
* the thread it runs on — main agent, nested run, or a segment resumed after
|
|
55
|
+
* an approval alike. */
|
|
56
|
+
export function withPublishEvent(deps, threadId, tools) {
|
|
57
|
+
const publishHere = (type, payload, options) => publishEvent(deps, threadId, type, payload, options);
|
|
58
|
+
const out = {};
|
|
59
|
+
for (const [name, t] of Object.entries(tools)) {
|
|
60
|
+
out[name] =
|
|
61
|
+
typeof t?.execute === 'function'
|
|
62
|
+
? {
|
|
63
|
+
...t,
|
|
64
|
+
execute: (args, opts) => t.execute(args, { ...opts, publishEvent: publishHere }),
|
|
65
|
+
}
|
|
66
|
+
: t;
|
|
67
|
+
}
|
|
68
|
+
return out;
|
|
15
69
|
}
|
|
16
70
|
/** Move a thread to a new state on BOTH the caller's storage and the
|
|
17
71
|
* platform's own operational view (§2.9).
|
package/dist/core/publish.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/core/publish.ts"],"names":[],"mappings":"AAIA;oEACoE;AACpE,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAkB,EAClB,QAAgB,EAChB,IAAY,EACZ,OAAgB;IAEhB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;IACxD,MAAM,KAAK,GAAe,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;IAClF,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClD,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAkB,EAClB,QAAgB,EAChB,IAAY,EACZ,OAAgB;IAEhB,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/core/publish.ts"],"names":[],"mappings":"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"}
|
package/dist/core/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/core/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/core/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMlD;;;4DAG4D;AAC5D,wBAAsB,GAAG,CACvB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,SAAS,CAAC,CAuIpB"}
|
package/dist/core/run.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { reclaimIfOrphaned } from './reclaim.js';
|
|
2
2
|
import { claimRun } from './keys.js';
|
|
3
|
-
import { publish, setThreadState } from './publish.js';
|
|
3
|
+
import { publish, setThreadState, publishEvent } from './publish.js';
|
|
4
|
+
import { mergeProviderOptions } from './types.js';
|
|
4
5
|
/** The §5.1 behavior: heal orphans → billing pre-check (§4) → persist the user
|
|
5
6
|
* message → state RUNNING (hot + durable) → enqueue on the dispatch queue
|
|
6
7
|
* (§2.8). Accepts no execution responsibility whatsoever — the queue does
|
|
@@ -19,11 +20,19 @@ export async function run(deps, agent, input) {
|
|
|
19
20
|
if (state === 'RUNNING' || state === 'WAITING_FOR_INPUT') {
|
|
20
21
|
return { accepted: false, threadId, error: 'Thread has an active run' };
|
|
21
22
|
}
|
|
22
|
-
// Billing pre-execution check (§4) — user-injected hook
|
|
23
|
+
// Billing pre-execution check (§4) — user-injected hook. A refusal is
|
|
24
|
+
// published on the thread as well as returned, so every client on the
|
|
25
|
+
// thread sees it, and a reload still shows it.
|
|
23
26
|
if (deps.config.billingPreCheck) {
|
|
24
|
-
const check = await deps.config.billingPreCheck(
|
|
27
|
+
const check = await deps.config.billingPreCheck({
|
|
28
|
+
threadId,
|
|
29
|
+
state: input.state ?? {},
|
|
30
|
+
publishEvent: (type, payload, options) => publishEvent(deps, threadId, type, payload, options),
|
|
31
|
+
});
|
|
25
32
|
if (!check.ok) {
|
|
26
|
-
|
|
33
|
+
const error = check.error ?? 'Billing check failed';
|
|
34
|
+
await publish(deps, threadId, 'RUN_REFUSED', { reason: 'billing', error });
|
|
35
|
+
return { accepted: false, threadId, error };
|
|
27
36
|
}
|
|
28
37
|
}
|
|
29
38
|
// Edit + resend (§5.1): the edited turn and everything it led to are
|
|
@@ -85,9 +94,29 @@ export async function run(deps, agent, input) {
|
|
|
85
94
|
: input.prompt,
|
|
86
95
|
tokenBudget: input.tokenBudget ?? null,
|
|
87
96
|
runState: input.state ?? null,
|
|
97
|
+
providerOptions: providerOptionsFor(deps, agent, input),
|
|
88
98
|
}
|
|
89
99
|
: {}),
|
|
90
100
|
});
|
|
101
|
+
// What started the thread (§2.9), recorded once: the first dispatched
|
|
102
|
+
// run's parameters. A later run never overwrites it. Observability must
|
|
103
|
+
// never fail a run, so this is best-effort.
|
|
104
|
+
await deps.admin.threads
|
|
105
|
+
.upsert({
|
|
106
|
+
id: threadId, state: 'RUNNING', model,
|
|
107
|
+
startedWith: {
|
|
108
|
+
runId, agent: agent.name, model, at: new Date(),
|
|
109
|
+
...(deps.config.recordPayloads
|
|
110
|
+
? {
|
|
111
|
+
prompt: capText(input.prompt, deps.config.payloadCapChars),
|
|
112
|
+
tokenBudget: input.tokenBudget ?? null,
|
|
113
|
+
state: input.state ?? null,
|
|
114
|
+
providerOptions: providerOptionsFor(deps, agent, input),
|
|
115
|
+
}
|
|
116
|
+
: {}),
|
|
117
|
+
},
|
|
118
|
+
})
|
|
119
|
+
.catch(() => undefined);
|
|
91
120
|
await deps.queue.enqueue({
|
|
92
121
|
threadId, runId, model, agent: agent.name,
|
|
93
122
|
enqueuedAt: Date.now(),
|
|
@@ -95,8 +124,19 @@ export async function run(deps, agent, input) {
|
|
|
95
124
|
// hours later, in another process — rehydrates the same state (§2.10).
|
|
96
125
|
...(input.state ? { state: input.state } : {}),
|
|
97
126
|
tokenBudget: input.tokenBudget,
|
|
127
|
+
costBudgetMicros: input.costBudgetMicros,
|
|
98
128
|
providerOptions: input.providerOptions,
|
|
99
129
|
});
|
|
100
130
|
return { accepted: true, threadId, runId, state: 'RUNNING' };
|
|
101
131
|
}
|
|
132
|
+
/** The provider options a run is dispatched with (§3.1): config → spec →
|
|
133
|
+
* input, each winning over the one before, per provider namespace. Null when
|
|
134
|
+
* no level sets any, so the column stays empty rather than `{}`. */
|
|
135
|
+
function providerOptionsFor(deps, agent, input) {
|
|
136
|
+
const merged = mergeProviderOptions(mergeProviderOptions(deps.config.providerOptions, agent.spec.providerOptions), input.providerOptions);
|
|
137
|
+
return merged && Object.keys(merged).length > 0 ? merged : null;
|
|
138
|
+
}
|
|
139
|
+
function capText(text, limit) {
|
|
140
|
+
return text.length > limit ? `${text.slice(0, limit)}…` : text;
|
|
141
|
+
}
|
|
102
142
|
//# sourceMappingURL=run.js.map
|
package/dist/core/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/core/run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/core/run.ts"],"names":[],"mappings":"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"}
|
package/dist/core/stop.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/core/stop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/core/stop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;uEAEuE;AACvE,wBAAsB,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAiBpF"}
|
package/dist/core/stop.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { publish, setThreadState } from './publish.js';
|
|
2
|
+
import { loadOpenHitls } from './hitl.js';
|
|
2
3
|
/** The whole stop mechanism (§2.1): one button, one behavior — everything
|
|
3
4
|
* stops immediately. The engine's poller sees CANCELLED on the hot cache and
|
|
4
5
|
* fires the abort; the durable state is the recovery truth (§3.4). */
|
|
@@ -7,9 +8,50 @@ export async function stop(deps, threadId) {
|
|
|
7
8
|
if (thread?.state !== 'RUNNING' && thread?.state !== 'WAITING_FOR_INPUT') {
|
|
8
9
|
return { accepted: false, error: `Cannot stop thread in state ${thread?.state ?? 'unknown'}` };
|
|
9
10
|
}
|
|
11
|
+
// Read before the write: an adapter may hand back the very object the
|
|
12
|
+
// state write mutates.
|
|
13
|
+
const wasParked = thread.state === 'WAITING_FOR_INPUT';
|
|
10
14
|
await deps.kv.set(`agent:state:${threadId}`, 'CANCELLED');
|
|
11
15
|
await setThreadState(deps, threadId, 'CANCELLED', thread.model);
|
|
12
16
|
await publish(deps, threadId, 'STATE_CHANGE', { state: 'CANCELLED' });
|
|
17
|
+
if (wasParked)
|
|
18
|
+
await closeOpenParks(deps, threadId);
|
|
13
19
|
return { accepted: true };
|
|
14
20
|
}
|
|
21
|
+
/** Answer every open approval with a cancellation, so the history the next
|
|
22
|
+
* run sends is well-formed (§2.5). A park persists the assistant's tool call
|
|
23
|
+
* and defers its result to the resume; a stop means that resume never comes,
|
|
24
|
+
* and a dangling call is a prompt no strict provider accepts. Nested parks
|
|
25
|
+
* close their whole chain: the child's call and every spawnSubagent call
|
|
26
|
+
* waiting on it (§2.7), whose run records end CANCELLED too. */
|
|
27
|
+
async function closeOpenParks(deps, threadId) {
|
|
28
|
+
const result = { cancelled: true, reason: 'stopped' };
|
|
29
|
+
const toolResult = (toolCallId, toolName) => [
|
|
30
|
+
{ type: 'tool-result', toolCallId, toolName, result },
|
|
31
|
+
];
|
|
32
|
+
for (const pending of await loadOpenHitls(deps, threadId)) {
|
|
33
|
+
await deps.storage.messages.append(threadId, {
|
|
34
|
+
role: 'tool',
|
|
35
|
+
agentId: pending.agentId,
|
|
36
|
+
content: toolResult(pending.toolCallId, pending.toolName),
|
|
37
|
+
});
|
|
38
|
+
if (pending.nested) {
|
|
39
|
+
await deps.admin.runs
|
|
40
|
+
.patch(pending.nested.agentId, { state: 'CANCELLED', stopReason: 'cancelled', endedAt: new Date() })
|
|
41
|
+
.catch(() => undefined);
|
|
42
|
+
}
|
|
43
|
+
for (const frame of pending.frames) {
|
|
44
|
+
await deps.storage.messages.append(threadId, {
|
|
45
|
+
role: 'tool',
|
|
46
|
+
agentId: frame.agentId,
|
|
47
|
+
content: toolResult(frame.toolCallId, 'spawnSubagent'),
|
|
48
|
+
});
|
|
49
|
+
if (frame.nested) {
|
|
50
|
+
await deps.admin.runs
|
|
51
|
+
.patch(frame.nested.agentId, { state: 'CANCELLED', stopReason: 'cancelled', endedAt: new Date() })
|
|
52
|
+
.catch(() => undefined);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
15
57
|
//# sourceMappingURL=stop.js.map
|
package/dist/core/stop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/core/stop.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/core/stop.ts"],"names":[],"mappings":"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"}
|
package/dist/core/subagent.d.ts
CHANGED
|
@@ -32,6 +32,11 @@ export interface SubagentCtx {
|
|
|
32
32
|
* onto the frame it pushes, so an unwind can re-enter it (§2.7). */
|
|
33
33
|
descriptor?: NestedDescriptor;
|
|
34
34
|
tokenBudget?: number;
|
|
35
|
+
/** The run's money cap, shared with the parent (§4). */
|
|
36
|
+
costBudgetMicros?: number;
|
|
37
|
+
/** The DISPATCHED run every call beneath here is billed to, so one run's
|
|
38
|
+
* bill is one query however deep the delegation went (§4). */
|
|
39
|
+
billingRunId?: string;
|
|
35
40
|
providerOptions?: ProviderOptions;
|
|
36
41
|
abortSignal?: AbortSignal;
|
|
37
42
|
/** The run's state, handed down unchanged (§2.10). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../src/core/subagent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,
|
|
1
|
+
{"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../src/core/subagent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAEf,UAAU,EAEV,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EAAyB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,EAAW,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtE;;oEAEoE;AACpE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB;kEAC8D;IAC9D,GAAG,EAAE,eAAe,CAAC;IACrB;sEACkE;IAClE,KAAK,EAAE,eAAe,CAAC;IACvB;6DACyD;IACzD,MAAM,EAAE,SAAS,CAAC;IAClB,0EAA0E;IAC1E,MAAM,EAAE,UAAU,CAAC;IACnB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,8EAA8E;IAC9E,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB;yEACqE;IACrE,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;mEAC+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,sDAAsD;IACtD,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,mFAAmF;AACnF,qBAAa,SAAS;IAGR,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAsB;gBACR,KAAK,EAAE,MAAM;IAEpC,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;CAoBrC;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW;;;;;;;;;;;;;;;;;;EAyHjD;AAwFD;;;;;;+DAM+D;AAC/D,wBAAsB,cAAc,CAClC,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,gBAAgB;AACnB,yEAAyE;AACzE,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,MAAM,EAAE,SAAS,EAAE,GAClB,OAAO,CAAC,WAAW,CAAC,CAkEtB"}
|
package/dist/core/subagent.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { tool } from 'ai';
|
|
3
3
|
import { z } from 'zod';
|
|
4
|
-
import {
|
|
4
|
+
import { wireId } from './types.js';
|
|
5
|
+
import { publish, withPublishEvent } from './publish.js';
|
|
5
6
|
import { HITL_PARKED, withHitl } from './hitl.js';
|
|
6
7
|
import { withRunState } from './state.js';
|
|
7
8
|
import { markPromptCaching } from './cache.js';
|
|
9
|
+
import { promptMessages, repairDanglingToolCalls } from './messages.js';
|
|
8
10
|
import { runLoop } from './loop.js';
|
|
9
11
|
/** Run-scoped semaphore: sibling subagents queue instead of running away (§2.7) */
|
|
10
12
|
export class Semaphore {
|
|
@@ -185,24 +187,26 @@ function nestedTools(ctx, d, frames, abortSignal) {
|
|
|
185
187
|
}),
|
|
186
188
|
};
|
|
187
189
|
// A nested run's tools see the same state as its parent's (§2.10).
|
|
188
|
-
return withRunState(withHitl(ctx.ports, ctx.threadId, raw, {
|
|
190
|
+
return withRunState(withPublishEvent(ctx.ports, ctx.threadId, withHitl(ctx.ports, ctx.threadId, raw, {
|
|
189
191
|
resume: ctx.resume,
|
|
190
192
|
agentId: d.agentId,
|
|
191
193
|
frames,
|
|
192
194
|
nested: d,
|
|
193
|
-
}), ctx.state ?? {});
|
|
195
|
+
})), ctx.state ?? {});
|
|
194
196
|
}
|
|
195
197
|
/** The delegation tool lets the MODEL name the child's model, so an unknown
|
|
196
198
|
* registry key is ordinary bad input rather than a failure. `resolveModel`
|
|
197
199
|
* throws on one (§3.3) — a `||` fallback can never catch that — so the child
|
|
198
200
|
* falls back to the model its parent is already running on, which is
|
|
199
201
|
* resolvable by construction. */
|
|
202
|
+
/** The registry key comes back with the model: pricing is keyed by the key
|
|
203
|
+
* that was actually resolved, not the one the delegation asked for. */
|
|
200
204
|
function resolveNestedModel(ctx, name) {
|
|
201
205
|
try {
|
|
202
|
-
return ctx.ports.resolveModel(name);
|
|
206
|
+
return { resolved: ctx.ports.resolveModel(name), modelKey: name };
|
|
203
207
|
}
|
|
204
208
|
catch {
|
|
205
|
-
return ctx.ports.resolveModel(ctx.resume.model);
|
|
209
|
+
return { resolved: ctx.ports.resolveModel(ctx.resume.model), modelKey: ctx.resume.model };
|
|
206
210
|
}
|
|
207
211
|
}
|
|
208
212
|
/** Run — or RE-ENTER — a nested agent (§2.7).
|
|
@@ -229,6 +233,7 @@ instructions, abortSignal, frames) {
|
|
|
229
233
|
agentId: d.agentId,
|
|
230
234
|
}));
|
|
231
235
|
}
|
|
236
|
+
const { resolved, modelKey } = resolveNestedModel(ctx, d.model);
|
|
232
237
|
const outcome = await runLoop(ports, ctx.agent, threadId, {
|
|
233
238
|
agentId: d.agentId,
|
|
234
239
|
// Its OWN run id, not its parent's: a nested run is a run (§2.7, §2.9),
|
|
@@ -236,16 +241,24 @@ instructions, abortSignal, frames) {
|
|
|
236
241
|
// two agents' steps into one timeline and made the indexes collide.
|
|
237
242
|
runId: d.agentId,
|
|
238
243
|
kind: ctx.sub.kind ?? 'stream-text',
|
|
239
|
-
model:
|
|
244
|
+
model: resolved.instance(),
|
|
240
245
|
// Stamped like the parent's (§2.6). A nested run re-sends its whole
|
|
241
246
|
// brief and history on every step, so it is exactly the shape caching
|
|
242
247
|
// is for — it was the one prompt in the system going out unstamped.
|
|
243
|
-
messages: maybeCache(ports,
|
|
248
|
+
messages: maybeCache(ports, repairDanglingToolCalls(promptMessages(persisted))),
|
|
244
249
|
tools: nestedTools(ctx, d, frames, abortSignal),
|
|
245
250
|
maxSteps: ports.config.subagentMaxSteps,
|
|
246
251
|
abortSignal: abortSignal ?? new AbortController().signal,
|
|
247
252
|
providerOptions: ctx.providerOptions,
|
|
248
253
|
tokenBudget: ctx.tokenBudget,
|
|
254
|
+
// Money is capped and billed at the RUN, not per child (§2.7, §4): the
|
|
255
|
+
// cap is the parent's, and every call a child makes lands on the
|
|
256
|
+
// parent's bill under its own agentId.
|
|
257
|
+
costBudgetMicros: ctx.costBudgetMicros,
|
|
258
|
+
billingRunId: ctx.billingRunId,
|
|
259
|
+
modelKey,
|
|
260
|
+
modelId: wireId(resolved, modelKey),
|
|
261
|
+
agentName: d.name,
|
|
249
262
|
system: `You are the "${d.name}" subagent. Complete the task, then stop.`,
|
|
250
263
|
cacheSystemPrompt: ports.config.promptCaching,
|
|
251
264
|
onChunk: async (chunk) => {
|
|
@@ -253,9 +266,9 @@ instructions, abortSignal, frames) {
|
|
|
253
266
|
await publish(ports, threadId, 'SUBAGENT_CHUNK', { agentId: d.agentId, chunk });
|
|
254
267
|
},
|
|
255
268
|
}, ctx.ledger);
|
|
256
|
-
//
|
|
257
|
-
//
|
|
258
|
-
|
|
269
|
+
// Nothing to bill here: every call the child made recorded and priced its
|
|
270
|
+
// own row as it happened, tagged with this child's agentId (§4). The
|
|
271
|
+
// run-wide ledger was advanced inside the loop too.
|
|
259
272
|
return outcome;
|
|
260
273
|
}
|
|
261
274
|
//# sourceMappingURL=subagent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../src/core/subagent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../src/core/subagent.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tools.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ToolExecutionOptions } from 'ai';
|
|
2
2
|
import type { z } from 'zod';
|
|
3
3
|
import type { AgentRunState } from './state.js';
|
|
4
|
+
import type { ToolPublishEvent } from './publish.js';
|
|
4
5
|
/** What a tool's `execute` actually receives: the AI SDK's own options, plus
|
|
5
6
|
* the run's state (§2.10).
|
|
6
7
|
*
|
|
@@ -12,6 +13,17 @@ export interface ToolContext extends ToolExecutionOptions {
|
|
|
12
13
|
/** Whatever the caller attached to this run. Present for every tool of every
|
|
13
14
|
* run, including a nested one and a segment resumed after an approval. */
|
|
14
15
|
state: AgentRunState;
|
|
16
|
+
/** Publish an event of your own on this thread — a progress label, a
|
|
17
|
+
* preview URL, anything a client should react to. Durable by default, so a
|
|
18
|
+
* reconnecting client replays it; pass `{ durable: false }` for a notice.
|
|
19
|
+
* See the "Custom events" guide. */
|
|
20
|
+
publishEvent: ToolPublishEvent;
|
|
21
|
+
/** Present only when this call is the resumption of an approved park
|
|
22
|
+
* (§2.5): whatever the human sent back with the approval — answers to
|
|
23
|
+
* questions, a corrected value, a reason. Absent on a first, live call. */
|
|
24
|
+
approval?: {
|
|
25
|
+
payload?: unknown;
|
|
26
|
+
};
|
|
15
27
|
}
|
|
16
28
|
/** `tool()` with the run state typed.
|
|
17
29
|
*
|
package/dist/core/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/core/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,oBAAoB,EAAE,MAAM,IAAI,CAAC;AACrD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/core/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,oBAAoB,EAAE,MAAM,IAAI,CAAC;AACrD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD;;;;;;kCAMkC;AAClC,MAAM,WAAW,WAAY,SAAQ,oBAAoB;IACvD;+EAC2E;IAC3E,KAAK,EAAE,aAAa,CAAC;IACrB;;;yCAGqC;IACrC,YAAY,EAAE,gBAAgB,CAAC;IAC/B;;gFAE4E;IAC5E,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAClC;AAED;;;;;;;;;;;;0EAY0E;AAC1E,wBAAgB,SAAS,CAAC,UAAU,SAAS,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,WAAW,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/E;;EAUA"}
|
package/dist/core/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/core/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA6B,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/core/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA6B,MAAM,IAAI,CAAC;AA2BrD;;;;;;;;;;;;0EAY0E;AAC1E,MAAM,UAAU,SAAS,CAA0C,IAIlE;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAClC,OAAO,IAAI,CAAC;QACV,GAAG,IAAI;QACP,OAAO,EAAE,CAAC,CAAC,IAAyB,EAAE,OAA6B,EAAE,EAAE,CACrE,OAAO,CAAC,IAAI,EAAE,OAAsB,CAAC,CAGf;KACzB,CAAC,CAAC;AACL,CAAC"}
|