@anvia/core 1.2.1 → 1.3.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 +16 -0
- package/dist/agent/agent-tool.js +10 -8
- package/dist/agent/agent.js +24 -22
- package/dist/agent/index.d.ts +12 -12
- package/dist/agent/index.js +30 -28
- package/dist/agent/interactions/index.d.ts +1 -1
- package/dist/agent/resolve-options.js +8 -8
- package/dist/agent/resolved-agent.js +25 -23
- package/dist/agent/team/agent-team.js +30 -28
- package/dist/agent/team/index.js +30 -28
- package/dist/agent/tool-catalog.js +7 -7
- package/dist/{agent-C9VhENdj.d.ts → agent-D3iyrJQb.d.ts} +9 -9
- package/dist/{chunk-UTAB3XQI.js → chunk-2JZV4LUS.js} +2 -2
- package/dist/{chunk-G336L2IE.js → chunk-4BDSO4PQ.js} +2 -2
- package/dist/{chunk-KZGSXJKU.js → chunk-4VDDYI6P.js} +4 -4
- package/dist/{chunk-LKIABZNR.js → chunk-5SJBSCG2.js} +3 -3
- package/dist/{chunk-MHOJJYDK.js → chunk-647TQE3E.js} +2 -2
- package/dist/chunk-6OO5C5GW.js +32 -0
- package/dist/chunk-6OO5C5GW.js.map +1 -0
- package/dist/{chunk-UOGM62JL.js → chunk-7TUAAGVR.js} +3 -3
- package/dist/{chunk-RT5LUEO3.js → chunk-A3DGCDGF.js} +11 -11
- package/dist/{chunk-J4SINPUA.js → chunk-B57NNDEF.js} +23 -11
- package/dist/chunk-B57NNDEF.js.map +1 -0
- package/dist/{chunk-B47EXUHL.js → chunk-CJKGTEN4.js} +2 -2
- package/dist/{chunk-HP34GRQX.js → chunk-E44DRLUL.js} +2 -2
- package/dist/{chunk-T4KS577P.js → chunk-FSBDE6RF.js} +7 -6
- package/dist/chunk-FSBDE6RF.js.map +1 -0
- package/dist/{chunk-F3E2RLC7.js → chunk-GE46NHN4.js} +3 -3
- package/dist/{chunk-CKKNO4XB.js → chunk-GSVOMQEE.js} +2 -2
- package/dist/{chunk-IDNL6IH4.js → chunk-HJ6KTQTZ.js} +7 -1
- package/dist/chunk-HJ6KTQTZ.js.map +1 -0
- package/dist/{chunk-T4IAJJUU.js → chunk-IYDGPF3C.js} +3 -3
- package/dist/{chunk-PPJ7SYQL.js → chunk-JMNIWUFV.js} +3 -3
- package/dist/{chunk-72LBHKYP.js → chunk-JWD43K7W.js} +2 -2
- package/dist/{chunk-MNYMLWWA.js → chunk-KNZNSNP4.js} +2 -2
- package/dist/{chunk-4S4OECPW.js → chunk-KRUDSNFN.js} +11 -11
- package/dist/{chunk-O6DTOCBM.js → chunk-KX2TRKO2.js} +2 -2
- package/dist/{chunk-BDDC72GF.js → chunk-LJGQ6VQB.js} +2 -2
- package/dist/chunk-NMPDZTBM.js +1 -0
- package/dist/chunk-NMPDZTBM.js.map +1 -0
- package/dist/{chunk-6N4ENZO4.js → chunk-OYHU4HNC.js} +2 -2
- package/dist/{chunk-Y7JTHNCU.js → chunk-RFFOL6ON.js} +2 -2
- package/dist/{chunk-47NTHIVB.js → chunk-SCFWN3T2.js} +2 -1
- package/dist/chunk-SCFWN3T2.js.map +1 -0
- package/dist/{chunk-QUS6S2NB.js → chunk-SIXS4CCU.js} +2 -2
- package/dist/{chunk-IV6YQTY2.js → chunk-T3ZOZEAB.js} +2 -2
- package/dist/{chunk-AOG6KSV4.js → chunk-T4UW4SUK.js} +3 -3
- package/dist/{chunk-BUPC72Y2.js → chunk-V5DWNXVH.js} +3 -3
- package/dist/{chunk-SIYZDPVH.js → chunk-VKRGWGA4.js} +39 -30
- package/dist/chunk-VKRGWGA4.js.map +1 -0
- package/dist/{chunk-5FCZ64HM.js → chunk-WCWSPU74.js} +3 -3
- package/dist/{chunk-XV3DH5GC.js → chunk-Y365ABZY.js} +5 -5
- package/dist/{chunk-BDKFFFVX.js → chunk-YMTBHHLQ.js} +64 -15
- package/dist/chunk-YMTBHHLQ.js.map +1 -0
- package/dist/{chunk-XJRNBTIV.js → chunk-YNA3UR42.js} +2 -2
- package/dist/chunk-YOLOFTAY.js +144 -0
- package/dist/chunk-YOLOFTAY.js.map +1 -0
- package/dist/{chunk-TIZGADU4.js → chunk-ZGDUEOSH.js} +7 -7
- package/dist/{chunk-TIZGADU4.js.map → chunk-ZGDUEOSH.js.map} +1 -1
- package/dist/completion/generate-completion.js +6 -4
- package/dist/completion/index.d.ts +3 -4
- package/dist/completion/index.js +6 -4
- package/dist/completion/stream-accumulator.js +2 -2
- package/dist/completion/types.js +1 -1
- package/dist/{dynamic-tools-CNHSPXr1.d.ts → dynamic-tools-BXXLc34l.d.ts} +3 -3
- package/dist/evals/advanced-metrics.js +9 -7
- package/dist/evals/cli.js +8 -6
- package/dist/evals/index.d.ts +5 -5
- package/dist/evals/index.js +12 -10
- package/dist/evals/judge.js +8 -6
- package/dist/evals/metrics.js +8 -6
- package/dist/evals/runner.js +7 -5
- package/dist/extractor/extractor.js +7 -5
- package/dist/extractor/index.d.ts +1 -1
- package/dist/extractor/index.js +7 -5
- package/dist/guardrails/index.d.ts +4 -4
- package/dist/image-generation/index.d.ts +1 -1
- package/dist/index.d.ts +13 -13
- package/dist/index.js +44 -38
- package/dist/internal/agent-runtime/agent-run.js +20 -18
- package/dist/internal/agent-runtime/continuation-state.js +6 -4
- package/dist/internal/agent-runtime/interaction-suspension.js +6 -4
- package/dist/internal/agent-runtime/memory.js +8 -6
- package/dist/internal/agent-runtime/prepared-tool-call.js +2 -2
- package/dist/internal/agent-runtime/retrieval.js +5 -5
- package/dist/internal/agent-runtime/tool-execution.js +16 -14
- package/dist/internal/agent.d.ts +45 -12
- package/dist/internal/agent.js +25 -23
- package/dist/internal/completion-request.js +2 -2
- package/dist/internal/team-runtime/member.js +7 -5
- package/dist/internal/team-runtime/run.js +28 -26
- package/dist/internal/team-runtime/tools.js +4 -4
- package/dist/mcp/index.d.ts +4 -4
- package/dist/memory/compaction.js +7 -5
- package/dist/memory/index.d.ts +3 -3
- package/dist/memory/index.js +7 -5
- package/dist/{middleware-CWjnMbiH.d.ts → middleware-DORuwSy-.d.ts} +67 -4
- package/dist/observability/group.js +7 -5
- package/dist/observability/index.d.ts +5 -5
- package/dist/observability/index.js +7 -5
- package/dist/pipeline/index.d.ts +10 -10
- package/dist/pipeline/index.js +8 -6
- package/dist/pipeline/pipeline.js +8 -6
- package/dist/provider-output-error-CQD0MWey.d.ts +221 -0
- package/dist/schema/index.js +7 -0
- package/dist/schema/standard-json-schema.js +10 -0
- package/dist/schema/standard-json-schema.js.map +1 -0
- package/dist/schema/standard-schema.js +11 -0
- package/dist/schema/standard-schema.js.map +1 -0
- package/dist/skills/index.d.ts +4 -4
- package/dist/skills/index.js +12 -12
- package/dist/skills/load.js +11 -11
- package/dist/skills/tools.js +10 -10
- package/dist/speech-generation/index.d.ts +1 -1
- package/dist/speech-generation/index.js +1 -1
- package/dist/{text-GbW4WYMg.d.ts → text-CklbSG7K.d.ts} +1 -1
- package/dist/{think-tool-YWsV98I5.d.ts → think-tool-2unWbq1w.d.ts} +1 -1
- package/dist/tool/create-tool.js +3 -3
- package/dist/tool/dynamic-tools.js +6 -6
- package/dist/tool/index.d.ts +8 -8
- package/dist/tool/index.js +11 -11
- package/dist/tool/question-tool.js +4 -4
- package/dist/tool/think-tool.js +4 -4
- package/dist/tool/tool.js +1 -1
- package/dist/{tool-DQMZpZSS.d.ts → tool-D_jV3cRZ.d.ts} +38 -1
- package/dist/transcription/index.d.ts +1 -1
- package/dist/{types-DfRPfehE.d.ts → types-0t3BczrD.d.ts} +2 -2
- package/dist/{types-CODGMHnp.d.ts → types-ChyQISt-.d.ts} +1 -1
- package/dist/{types-Bqw0AuFl.d.ts → types-CqiX-4_C.d.ts} +1 -1
- package/dist/{types-C1xYKXF2.d.ts → types-Cu2tEf3V.d.ts} +1 -1
- package/dist/{types-CiHjqE6J.d.ts → types-DYqZKDA8.d.ts} +140 -0
- package/dist/{types-CafU6Ux5.d.ts → types-DhWxTobb.d.ts} +37 -1
- package/dist/vector-store/index.d.ts +4 -4
- package/dist/vector-store/index.js +8 -8
- package/package.json +9 -1
- package/dist/chunk-47NTHIVB.js.map +0 -1
- package/dist/chunk-BDKFFFVX.js.map +0 -1
- package/dist/chunk-IDNL6IH4.js.map +0 -1
- package/dist/chunk-J4SINPUA.js.map +0 -1
- package/dist/chunk-SIYZDPVH.js.map +0 -1
- package/dist/chunk-T4KS577P.js.map +0 -1
- package/dist/provider-output-error-OQ4fjw5W.d.ts +0 -107
- /package/dist/{chunk-UTAB3XQI.js.map → chunk-2JZV4LUS.js.map} +0 -0
- /package/dist/{chunk-G336L2IE.js.map → chunk-4BDSO4PQ.js.map} +0 -0
- /package/dist/{chunk-KZGSXJKU.js.map → chunk-4VDDYI6P.js.map} +0 -0
- /package/dist/{chunk-LKIABZNR.js.map → chunk-5SJBSCG2.js.map} +0 -0
- /package/dist/{chunk-MHOJJYDK.js.map → chunk-647TQE3E.js.map} +0 -0
- /package/dist/{chunk-UOGM62JL.js.map → chunk-7TUAAGVR.js.map} +0 -0
- /package/dist/{chunk-RT5LUEO3.js.map → chunk-A3DGCDGF.js.map} +0 -0
- /package/dist/{chunk-B47EXUHL.js.map → chunk-CJKGTEN4.js.map} +0 -0
- /package/dist/{chunk-HP34GRQX.js.map → chunk-E44DRLUL.js.map} +0 -0
- /package/dist/{chunk-F3E2RLC7.js.map → chunk-GE46NHN4.js.map} +0 -0
- /package/dist/{chunk-CKKNO4XB.js.map → chunk-GSVOMQEE.js.map} +0 -0
- /package/dist/{chunk-T4IAJJUU.js.map → chunk-IYDGPF3C.js.map} +0 -0
- /package/dist/{chunk-PPJ7SYQL.js.map → chunk-JMNIWUFV.js.map} +0 -0
- /package/dist/{chunk-72LBHKYP.js.map → chunk-JWD43K7W.js.map} +0 -0
- /package/dist/{chunk-MNYMLWWA.js.map → chunk-KNZNSNP4.js.map} +0 -0
- /package/dist/{chunk-4S4OECPW.js.map → chunk-KRUDSNFN.js.map} +0 -0
- /package/dist/{chunk-O6DTOCBM.js.map → chunk-KX2TRKO2.js.map} +0 -0
- /package/dist/{chunk-BDDC72GF.js.map → chunk-LJGQ6VQB.js.map} +0 -0
- /package/dist/{chunk-6N4ENZO4.js.map → chunk-OYHU4HNC.js.map} +0 -0
- /package/dist/{chunk-Y7JTHNCU.js.map → chunk-RFFOL6ON.js.map} +0 -0
- /package/dist/{chunk-QUS6S2NB.js.map → chunk-SIXS4CCU.js.map} +0 -0
- /package/dist/{chunk-IV6YQTY2.js.map → chunk-T3ZOZEAB.js.map} +0 -0
- /package/dist/{chunk-AOG6KSV4.js.map → chunk-T4UW4SUK.js.map} +0 -0
- /package/dist/{chunk-BUPC72Y2.js.map → chunk-V5DWNXVH.js.map} +0 -0
- /package/dist/{chunk-5FCZ64HM.js.map → chunk-WCWSPU74.js.map} +0 -0
- /package/dist/{chunk-XV3DH5GC.js.map → chunk-Y365ABZY.js.map} +0 -0
- /package/dist/{chunk-XJRNBTIV.js.map → chunk-YNA3UR42.js.map} +0 -0
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
TEAM_INSTRUCTIONS,
|
|
3
|
-
teamTools
|
|
4
|
-
} from "./chunk-B47EXUHL.js";
|
|
5
1
|
import {
|
|
6
2
|
TeamChanges,
|
|
7
3
|
TeamSlots,
|
|
@@ -11,7 +7,11 @@ import {
|
|
|
11
7
|
agentMessageInput,
|
|
12
8
|
memberSummary,
|
|
13
9
|
steeringMessages
|
|
14
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-FSBDE6RF.js";
|
|
11
|
+
import {
|
|
12
|
+
TEAM_INSTRUCTIONS,
|
|
13
|
+
teamTools
|
|
14
|
+
} from "./chunk-CJKGTEN4.js";
|
|
15
15
|
import {
|
|
16
16
|
AgentTeamInteractionError,
|
|
17
17
|
AgentTeamLimitError
|
|
@@ -19,10 +19,10 @@ import {
|
|
|
19
19
|
import {
|
|
20
20
|
createResolvedAgent,
|
|
21
21
|
getResolvedAgentOptions
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-IYDGPF3C.js";
|
|
23
23
|
import {
|
|
24
24
|
AgentRun
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-A3DGCDGF.js";
|
|
26
26
|
import {
|
|
27
27
|
withInternalAgentRunOptions
|
|
28
28
|
} from "./chunk-KITX3HDN.js";
|
|
@@ -36,10 +36,10 @@ import {
|
|
|
36
36
|
} from "./chunk-KFAVEL5F.js";
|
|
37
37
|
import {
|
|
38
38
|
isStreamingCompletionModel
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-YMTBHHLQ.js";
|
|
40
40
|
import {
|
|
41
41
|
Usage
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-HJ6KTQTZ.js";
|
|
43
43
|
import {
|
|
44
44
|
parseMessages
|
|
45
45
|
} from "./chunk-BONQTXRQ.js";
|
|
@@ -184,21 +184,26 @@ var TeamRun = class {
|
|
|
184
184
|
fromInstanceId: sender.instanceId,
|
|
185
185
|
toInstanceId: recipient.instanceId,
|
|
186
186
|
content: input.content,
|
|
187
|
-
createdAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
188
|
-
...input.replyTo === void 0 ? {} : { replyTo: input.replyTo }
|
|
187
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
189
188
|
};
|
|
189
|
+
if (input.replyTo !== void 0) message.replyTo = input.replyTo;
|
|
190
190
|
this.enqueue(recipient, agentMessageInput(message), notificationType);
|
|
191
191
|
return { messageId: message.id, status: "queued" };
|
|
192
192
|
}
|
|
193
193
|
visibleMembers(caller) {
|
|
194
|
-
return [...this.instances.values()].filter((member) => this.policy.canAccess(caller, member)).map((member) =>
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
194
|
+
return [...this.instances.values()].filter((member) => this.policy.canAccess(caller, member)).map((member) => {
|
|
195
|
+
const summary = {
|
|
196
|
+
instanceId: member.instanceId,
|
|
197
|
+
agentId: member.agent.id,
|
|
198
|
+
name: member.name,
|
|
199
|
+
status: member.status,
|
|
200
|
+
depth: member.depth
|
|
201
|
+
};
|
|
202
|
+
if (member.parentInstanceId !== void 0) {
|
|
203
|
+
summary.parentInstanceId = member.parentInstanceId;
|
|
204
|
+
}
|
|
205
|
+
return summary;
|
|
206
|
+
});
|
|
202
207
|
}
|
|
203
208
|
cancelMember(caller, instanceId, reason = "Cancelled by parent.") {
|
|
204
209
|
this.assertOpen();
|
|
@@ -247,7 +252,6 @@ var TeamRun = class {
|
|
|
247
252
|
definition: agent,
|
|
248
253
|
depth: parent === void 0 ? 0 : parent.depth + 1,
|
|
249
254
|
name,
|
|
250
|
-
...parentInstanceId === void 0 ? {} : { parentInstanceId },
|
|
251
255
|
status: "queued",
|
|
252
256
|
history: [],
|
|
253
257
|
inputs: [],
|
|
@@ -256,6 +260,7 @@ var TeamRun = class {
|
|
|
256
260
|
usage: Usage.empty(),
|
|
257
261
|
notifications: []
|
|
258
262
|
};
|
|
263
|
+
if (parentInstanceId !== void 0) member.parentInstanceId = parentInstanceId;
|
|
259
264
|
const resolved = getResolvedAgentOptions(member.agent);
|
|
260
265
|
member.agent = createResolvedAgent({
|
|
261
266
|
...resolved,
|
|
@@ -503,14 +508,17 @@ var TeamRun = class {
|
|
|
503
508
|
reportOutcome(member) {
|
|
504
509
|
const parent = this.instances.get(member.parentInstanceId);
|
|
505
510
|
if (parent === void 0 || parent.status === "failed" || parent.status === "cancelled") return;
|
|
506
|
-
const
|
|
511
|
+
const payload = {
|
|
507
512
|
type: "agent-outcome",
|
|
508
513
|
instanceId: member.instanceId,
|
|
509
|
-
status: member.status
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
+
status: member.status
|
|
515
|
+
};
|
|
516
|
+
if (member.outcome?.type === "response") payload.output = member.outcome.output;
|
|
517
|
+
if (member.outcome?.type === "blocked") payload.reason = member.outcome.reason;
|
|
518
|
+
if (member.error !== void 0) {
|
|
519
|
+
payload.error = member.error instanceof Error ? member.error.message : String(member.error);
|
|
520
|
+
}
|
|
521
|
+
const content = JSON.stringify(payload);
|
|
514
522
|
this.queueMessage(member, parent, { content }, "outcome");
|
|
515
523
|
}
|
|
516
524
|
async waitForChildren(member) {
|
|
@@ -545,11 +553,12 @@ var TeamRun = class {
|
|
|
545
553
|
}
|
|
546
554
|
}
|
|
547
555
|
identity(member) {
|
|
548
|
-
|
|
556
|
+
const identity = {
|
|
549
557
|
teamRunId: this.id,
|
|
550
|
-
instanceId: member.instanceId
|
|
551
|
-
...member.runId === void 0 ? {} : { runId: member.runId }
|
|
558
|
+
instanceId: member.instanceId
|
|
552
559
|
};
|
|
560
|
+
if (member.runId !== void 0) identity.runId = member.runId;
|
|
561
|
+
return identity;
|
|
553
562
|
}
|
|
554
563
|
memberEvent(member, type) {
|
|
555
564
|
this.emit({ type, ...this.identity(member), member: memberSummary(member) });
|
|
@@ -610,4 +619,4 @@ var TeamRun = class {
|
|
|
610
619
|
export {
|
|
611
620
|
TeamRun
|
|
612
621
|
};
|
|
613
|
-
//# sourceMappingURL=chunk-
|
|
622
|
+
//# sourceMappingURL=chunk-VKRGWGA4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/team-runtime/run.ts"],"sourcesContent":["import { AgentRunCancelledError, AgentStreamClosedError } from \"../../agent/errors\";\nimport {\n assertAgentInteractionResponse,\n parseAgentInteractionResponse,\n} from \"../../agent/interactions\";\nimport { composeAgentLifecycle, lifecycleSnapshot } from \"../../agent/lifecycle\";\nimport { createResolvedAgent, getResolvedAgentOptions } from \"../../agent/resolved-agent\";\nimport type {\n AgentInput,\n AgentOutcome,\n AgentSteerInput,\n AgentSteerReceipt,\n AgentStreamEvent,\n} from \"../../agent/run-types\";\nimport { AgentTeamInteractionError, AgentTeamLimitError } from \"../../agent/team/errors\";\nimport type {\n AgentTeamEvent,\n AgentTeamLimits,\n AgentTeamMember,\n AgentTeamMemberSummary,\n AgentTeamMessage,\n AgentTeamOutcome,\n AgentTeamRunOptions,\n} from \"../../agent/team/types\";\nimport { isStreamingCompletionModel } from \"../../completion/generate-completion\";\nimport { parseMessages, Usage, type CompletionResponse } from \"../../completion\";\nimport { throwIfAborted } from \"../abort\";\nimport { AgentRun } from \"../agent-runtime/agent-run\";\nimport { withInternalAgentRunOptions } from \"../agent-runtime/run-options\";\nimport type { Writable } from \"../type-utils\";\nimport { abortable, TeamChanges, TeamSlots } from \"./coordination\";\nimport {\n agentMessageInput,\n memberSummary,\n steeringMessages,\n type TeamInput,\n type TeamMember,\n} from \"./member\";\nimport { TEAM_INSTRUCTIONS, teamTools } from \"./tools\";\nimport type { TeamPolicy } from \"./policy\";\n\nexport class TeamRun<Output = unknown> {\n readonly id = globalThis.crypto.randomUUID();\n private readonly controller = new AbortController();\n private readonly changes = new TeamChanges();\n private readonly slots: TeamSlots;\n private readonly instances = new Map<string, TeamMember>();\n private readonly leader: TeamMember;\n private closed = false;\n private started = false;\n private turns = 0;\n private fatal: unknown;\n private removeAbortListener: (() => void) | undefined;\n\n constructor(\n leader: AgentTeamMember,\n private readonly policy: TeamPolicy,\n private readonly limits: Required<AgentTeamLimits>,\n private readonly options: AgentTeamRunOptions<unknown>,\n private readonly streaming: boolean,\n private readonly emit: (event: AgentTeamEvent<Output>) => void,\n ) {\n this.slots = new TeamSlots(limits.maxConcurrentAgents);\n this.leader = this.createMember(leader, leader.name ?? leader.id);\n const messages =\n options.messages === undefined\n ? steeringMessages({ prompt: options.prompt! })\n : parseMessages(options.messages);\n const last = messages.at(-1);\n if (last?.role !== \"user\")\n throw new TypeError(\"Agent team input must end with a user message.\");\n this.leader.history = messages.slice(0, -1);\n this.leader.inputs.push({\n id: globalThis.crypto.randomUUID(),\n messages: [last],\n submitted: false,\n });\n if (options.abortSignal !== undefined) {\n const signal = options.abortSignal;\n const abort = () => this.cancel(\"Agent team aborted.\");\n if (signal.aborted) abort();\n else {\n signal.addEventListener(\"abort\", abort, { once: true });\n this.removeAbortListener = () => signal.removeEventListener(\"abort\", abort);\n }\n }\n }\n\n async execute(): Promise<AgentTeamOutcome<Output>> {\n if (this.started) throw new Error(\"Agent team execution has already started.\");\n this.started = true;\n try {\n this.assertOpen();\n this.launch(this.leader);\n while (true) {\n this.assertOpen();\n const version = this.changes.version;\n if (this.leader.status === \"failed\" && this.leader.outcome?.type !== \"blocked\")\n throw this.leader.error;\n const outcome = this.leader.outcome;\n if (\n outcome !== undefined &&\n (outcome.type === \"blocked\" ||\n (this.leader.status === \"idle\" &&\n this.leader.task === undefined &&\n this.leader.inputs.length === 0 &&\n !this.childrenBusy()))\n ) {\n this.closed = true;\n this.stopMembers();\n await this.settleMembers();\n const result = {\n ...outcome,\n teamRunId: this.id,\n usage: [...this.instances.values()].reduce(\n (usage, member) => Usage.add(usage, member.usage),\n Usage.empty(),\n ),\n members: [...this.instances.values()]\n .filter((member) => member !== this.leader)\n .map(memberSummary),\n } as AgentTeamOutcome<Output>;\n this.emit(result);\n return result;\n }\n await this.changes.wait(version, this.controller.signal);\n }\n } catch (error) {\n this.closed = true;\n this.stopMembers();\n await this.settleMembers();\n throw this.fatal ?? error;\n } finally {\n this.removeAbortListener?.();\n }\n }\n\n steer(input: AgentSteerInput): AgentSteerReceipt {\n this.assertOpen();\n const entry: TeamInput = {\n id: globalThis.crypto.randomUUID(),\n messages: steeringMessages(input),\n submitted: false,\n };\n this.enqueue(this.leader, entry);\n return { id: entry.id, status: \"queued\" };\n }\n\n cancel(reason = \"Agent team cancelled.\"): void {\n if (this.closed || this.controller.signal.aborted) return;\n this.fail(new AgentRunCancelledError([], reason));\n }\n\n spawn(parent: TeamMember, definition: AgentTeamMember, prompt: string, name?: string) {\n this.assertOpen();\n throwIfAborted(parent.controller.signal);\n if (!this.policy.spawnTargets(parent).includes(definition))\n throw new Error(`Agent \"${parent.definition.id}\" cannot spawn \"${definition.id}\".`);\n if (parent.depth >= this.limits.maxDepth) throw new AgentTeamLimitError(\"maxDepth\");\n if (this.instances.size >= this.limits.maxAgentInstances)\n throw new AgentTeamLimitError(\"maxAgentInstances\");\n const member = this.createMember(definition, name ?? definition.name ?? definition.id, parent);\n member.inputs.push({\n id: globalThis.crypto.randomUUID(),\n messages: [{ role: \"user\", content: prompt }],\n submitted: false,\n });\n this.memberEvent(member, \"agent_queued\");\n this.launch(member);\n return { instanceId: member.instanceId, status: \"queued\" as const };\n }\n\n send(sender: TeamMember, input: { to: string; content: string; replyTo?: string | undefined }) {\n this.assertOpen();\n throwIfAborted(sender.controller.signal);\n const recipient = this.recipient(sender, input.to);\n if (recipient.status === \"failed\" || recipient.status === \"cancelled\") {\n throw new Error(`Agent instance \"${recipient.instanceId}\" is ${recipient.status}.`);\n }\n return this.queueMessage(sender, recipient, input);\n }\n\n private queueMessage(\n sender: TeamMember,\n recipient: TeamMember,\n input: { content: string; replyTo?: string | undefined },\n notificationType: \"message\" | \"outcome\" = \"message\",\n ) {\n const message: Writable<AgentTeamMessage> = {\n id: globalThis.crypto.randomUUID(),\n teamRunId: this.id,\n fromInstanceId: sender.instanceId,\n toInstanceId: recipient.instanceId,\n content: input.content,\n createdAt: new Date().toISOString(),\n };\n if (input.replyTo !== undefined) message.replyTo = input.replyTo;\n this.enqueue(recipient, agentMessageInput(message), notificationType);\n return { messageId: message.id, status: \"queued\" as const };\n }\n\n visibleMembers(caller: TeamMember) {\n return [...this.instances.values()]\n .filter((member) => this.policy.canAccess(caller, member))\n .map((member) => {\n const summary: Writable<Omit<AgentTeamMemberSummary, \"usage\" | \"outcome\" | \"error\">> = {\n instanceId: member.instanceId,\n agentId: member.agent.id,\n name: member.name,\n status: member.status,\n depth: member.depth,\n };\n if (member.parentInstanceId !== undefined) {\n summary.parentInstanceId = member.parentInstanceId;\n }\n return summary;\n });\n }\n\n cancelMember(caller: TeamMember, instanceId: string, reason = \"Cancelled by parent.\") {\n this.assertOpen();\n throwIfAborted(caller.controller.signal);\n const member = this.recipient(caller, instanceId);\n if (member.parentInstanceId !== caller.instanceId)\n throw new Error(\"Only a parent can cancel its child.\");\n if (member.status === \"cancelled\") return { instanceId, status: \"cancelled\" as const };\n this.stopMember(member, reason);\n this.stopDescendants(member, reason);\n if (member.task === undefined) this.reportOutcome(member);\n return { instanceId, status: \"cancelled\" as const };\n }\n\n async wait(member: TeamMember, instanceId: string | undefined, timeoutMs: number) {\n this.assertOpen();\n const target = instanceId === undefined ? undefined : this.recipient(member, instanceId);\n const deadline = Date.now() + timeoutMs;\n return this.yieldSlot(member, \"waiting\", async () => {\n while (true) {\n const version = this.changes.version;\n const index = member.notifications.findIndex(\n (notification) => target === undefined || notification.from === target.instanceId,\n );\n if (index !== -1) {\n const notification = member.notifications.splice(index, 1)[0]!;\n return {\n reason: notification.type,\n instanceId: notification.from,\n messageId: notification.id,\n };\n }\n if (target !== undefined && [\"idle\", \"failed\", \"cancelled\"].includes(target.status)) {\n return { reason: \"outcome\", instanceId: target.instanceId, status: target.status };\n }\n const remaining = deadline - Date.now();\n if (remaining <= 0) return { reason: \"timeout\" };\n await this.changes.wait(version, member.controller.signal, remaining);\n }\n });\n }\n\n private createMember(agent: AgentTeamMember, name: string, parent?: TeamMember): TeamMember {\n const parentInstanceId = parent?.instanceId;\n const member: TeamMember = {\n instanceId: globalThis.crypto.randomUUID(),\n agent,\n definition: agent,\n depth: parent === undefined ? 0 : parent.depth + 1,\n name,\n status: \"queued\",\n history: [],\n inputs: [],\n receipts: new Map(),\n controller: new AbortController(),\n usage: Usage.empty(),\n notifications: [],\n };\n if (parentInstanceId !== undefined) member.parentInstanceId = parentInstanceId;\n const resolved = getResolvedAgentOptions(member.agent);\n member.agent = createResolvedAgent({\n ...resolved,\n instructions: [\n resolved.instructions,\n TEAM_INSTRUCTIONS,\n `Your instance ID is ${member.instanceId}. ${parentInstanceId === undefined ? \"You are the coordinator. Spawn tools create independent members; their outcomes are delivered automatically.\" : `Your parent instance is ${parentInstanceId}.`}`,\n ]\n .filter(Boolean)\n .join(\"\\n\\n\"),\n tools: [\n ...(resolved.tools ?? []),\n ...teamTools(this, member, this.policy.spawnTargets(member)),\n ],\n });\n this.instances.set(member.instanceId, member);\n return member;\n }\n\n private recipient(sender: TeamMember, to: string): TeamMember {\n const id = to === \"parent\" ? sender.parentInstanceId : to;\n const recipient = id === undefined ? undefined : this.instances.get(id);\n if (\n recipient === undefined ||\n recipient === sender ||\n !this.policy.canAccess(sender, recipient)\n ) {\n throw new Error(\n `Agent instance \"${to}\" is not an accessible parent or child, or enabled sibling.`,\n );\n }\n return recipient;\n }\n\n private enqueue(\n member: TeamMember,\n input: TeamInput,\n notificationType: \"message\" | \"outcome\" = \"message\",\n ): void {\n if (member.inputs.length >= 128)\n throw new AgentTeamLimitError(\"pending messages per instance (128)\");\n member.inputs.push(input);\n if (input.message !== undefined) {\n this.emit({ type: \"message_queued\", ...this.identity(member), message: input.message });\n member.notifications.push({\n type: notificationType,\n from: input.message.fromInstanceId,\n id: input.id,\n });\n }\n this.submitInputs(member);\n if (this.started && member.task === undefined) this.launch(member);\n this.changes.notify();\n }\n\n private submitInputs(member: TeamMember): void {\n if (member.activeRun === undefined) return;\n for (const input of member.inputs) {\n if (input.submitted) continue;\n try {\n const receipt = member.activeRun.steer({ messages: input.messages });\n member.receipts.set(receipt.id, input);\n input.submitted = true;\n } catch (error) {\n // Closing runs reject steering; leave this input pending for the next assignment.\n if (error instanceof AgentStreamClosedError) return;\n throw error;\n }\n }\n }\n\n private delivered(member: TeamMember, input: TeamInput): void {\n const index = member.inputs.indexOf(input);\n if (index !== -1) member.inputs.splice(index, 1);\n member.notifications = member.notifications.filter(\n (notification) => notification.id !== input.id,\n );\n if (input.message !== undefined)\n this.emit({ type: \"message_delivered\", ...this.identity(member), message: input.message });\n }\n\n private launch(member: TeamMember): void {\n if (member.task !== undefined || this.closed || member.controller.signal.aborted) return;\n member.status = \"queued\";\n member.task = Promise.resolve()\n .then(() => this.runMember(member))\n .catch((error: unknown) => {\n member.error = error;\n member.inputs.length = 0;\n if (member.controller.signal.aborted) member.status = \"cancelled\";\n else {\n member.status = \"failed\";\n this.memberEvent(member, \"agent_failed\");\n }\n this.stopDescendants(member, \"Parent failed or was cancelled.\");\n if (!this.closed && !this.controller.signal.aborted && member !== this.leader) {\n try {\n this.reportOutcome(member);\n } catch (reportError) {\n this.fail(reportError);\n }\n }\n })\n .finally(() => {\n member.release?.();\n member.release = undefined;\n member.activeRun = undefined;\n member.task = undefined;\n if (member.status === \"idle\" && member.inputs.length > 0) this.launch(member);\n this.changes.notify();\n });\n this.changes.notify();\n }\n\n private async runMember(member: TeamMember): Promise<void> {\n const signal = member.controller.signal;\n member.release = await this.slots.acquire(signal);\n let nextInput: AgentInput | undefined;\n let firstInputs: TeamInput[] = [];\n while (true) {\n throwIfAborted(signal);\n member.status = \"running\";\n member.runId = globalThis.crypto.randomUUID();\n if (nextInput === undefined) {\n firstInputs = member.inputs.filter((input) => !input.submitted);\n const incoming = firstInputs.flatMap((input) => input.messages);\n if (incoming.length === 0) throw new Error(\"Agent team member has no input.\");\n nextInput = { messages: [...member.history, ...incoming] };\n member.history.push(...incoming.slice(0, -1));\n for (const input of firstInputs) input.submitted = true;\n }\n const streaming =\n this.streaming &&\n member.agent.model.capabilities.streaming &&\n isStreamingCompletionModel(member.agent.model);\n const baseSettings =\n member === this.leader\n ? {\n maxTurns: this.options.maxTurns,\n retries: this.options.retries,\n lifecycle: this.options.lifecycle,\n guardrails: this.options.guardrails,\n middlewares: this.options.middlewares,\n trace: this.options.trace,\n controls: this.options.controls,\n }\n : {};\n const run = AgentRun.fromAgent(\n member.agent,\n withInternalAgentRunOptions(\n {\n ...baseSettings,\n ...nextInput,\n abortSignal: signal,\n // Collaboration tools mutate one inbox/permit at a time; provider tools may still run independently across agents.\n toolConcurrency: 1,\n lifecycle: composeAgentLifecycle(baseSettings.lifecycle, {\n onStepFinish: (event) => {\n if (!streaming)\n this.agentEvent(member, {\n type: \"turn_end\",\n turn: event.step,\n response: lifecycleSnapshot(event.response) as CompletionResponse,\n });\n },\n onError: (event) => {\n member.usage = Usage.add(member.usage, event.usage);\n },\n }),\n },\n {\n runId: member.runId,\n hook: {\n onCompletionCall: () => {\n this.assertOpen();\n if (this.turns >= this.limits.maxTotalTurns) {\n const error = new AgentTeamLimitError(\"maxTotalTurns\");\n this.fail(error);\n throw error;\n }\n this.turns += 1;\n for (const input of firstInputs) this.delivered(member, input);\n firstInputs = [];\n },\n },\n beforeFinish: () => this.waitForChildren(member),\n onSteeringApplied: (id) => {\n const input = member.receipts.get(id);\n if (input !== undefined) {\n member.receipts.delete(id);\n this.delivered(member, input);\n }\n },\n },\n ),\n );\n member.activeRun = run;\n this.submitInputs(member);\n this.memberEvent(member, \"agent_started\");\n // Caller-owned models/tools may ignore abort. Close the team promptly, and discard late events.\n const outcome = await abortable(this.consumeRun(member, run, streaming), signal);\n member.activeRun = undefined;\n member.usage = Usage.add(member.usage, outcome.usage);\n member.history.push(...outcome.messages);\n if (outcome.type === \"interaction\") {\n const resolver = this.options.resolveInteraction;\n this.emit({\n type: \"interaction\",\n ...this.identity(member),\n interaction: lifecycleSnapshot(outcome.interaction),\n });\n if (resolver === undefined) {\n const error = new AgentTeamInteractionError(member.instanceId);\n this.fail(error);\n throw error;\n }\n try {\n const response = await this.yieldSlot(member, \"awaiting_interaction\", () =>\n abortable(\n Promise.resolve().then(() =>\n resolver({\n teamRunId: this.id,\n instanceId: member.instanceId,\n runId: outcome.runId,\n interaction: lifecycleSnapshot(outcome.interaction),\n abortSignal: signal,\n }),\n ),\n signal,\n ),\n );\n const parsed = parseAgentInteractionResponse(response);\n assertAgentInteractionResponse(outcome.interaction, parsed);\n nextInput = { continuation: outcome.continuation, response: parsed };\n } catch (cause) {\n if (signal.aborted) throw cause;\n const error = new AgentTeamInteractionError(member.instanceId, { cause });\n this.fail(error);\n throw error;\n }\n continue;\n }\n member.outcome = outcome;\n member.status = outcome.type === \"blocked\" ? \"failed\" : \"idle\";\n if (outcome.type === \"blocked\") {\n member.inputs.length = 0;\n this.stopDescendants(member, \"Parent was blocked.\");\n }\n this.memberEvent(member, outcome.type === \"blocked\" ? \"agent_failed\" : \"agent_idle\");\n if (member !== this.leader) this.reportOutcome(member);\n return;\n }\n }\n\n private async consumeRun(\n member: TeamMember,\n run: AgentRun<unknown>,\n streaming: boolean,\n ): Promise<AgentOutcome<unknown>> {\n if (!streaming) {\n const outcome = await run.generate();\n if (outcome.type === \"response\")\n this.agentEvent(member, { type: \"text_delta\", turn: 0, delta: outcome.text });\n this.agentEvent(member, outcome);\n return outcome;\n }\n for await (const event of run.events()) {\n this.agentEvent(member, event);\n if (event.type === \"error\") throw event.error;\n if (event.type === \"response\" || event.type === \"blocked\" || event.type === \"interaction\")\n return event;\n }\n throw new Error(\"Agent team member stream ended without an outcome.\");\n }\n\n private reportOutcome(member: TeamMember): void {\n const parent = this.instances.get(member.parentInstanceId!);\n if (parent === undefined || parent.status === \"failed\" || parent.status === \"cancelled\") return;\n const payload: Record<string, unknown> = {\n type: \"agent-outcome\",\n instanceId: member.instanceId,\n status: member.status,\n };\n if (member.outcome?.type === \"response\") payload.output = member.outcome.output;\n if (member.outcome?.type === \"blocked\") payload.reason = member.outcome.reason;\n if (member.error !== undefined) {\n payload.error = member.error instanceof Error ? member.error.message : String(member.error);\n }\n const content = JSON.stringify(payload);\n this.queueMessage(member, parent, { content }, \"outcome\");\n }\n\n private async waitForChildren(member: TeamMember): Promise<void> {\n if (!this.childrenBusy(member) || member.inputs.length > 0) return;\n await this.yieldSlot(member, \"waiting\", async () => {\n while (this.childrenBusy(member) && member.inputs.length === 0) {\n const version = this.changes.version;\n await this.changes.wait(version, member.controller.signal);\n }\n });\n }\n\n // Without a parent, final team settlement checks all descendants, including revived assignments.\n private childrenBusy(parent?: TeamMember): boolean {\n return [...this.instances.values()].some(\n (member) =>\n member !== this.leader &&\n (parent === undefined || member.parentInstanceId === parent.instanceId) &&\n ([\"queued\", \"running\", \"waiting\", \"awaiting_interaction\"].includes(member.status) ||\n member.inputs.length > 0),\n );\n }\n\n private async yieldSlot<T>(\n member: TeamMember,\n status: \"waiting\" | \"awaiting_interaction\",\n work: () => Promise<T>,\n ): Promise<T> {\n member.release?.();\n member.release = undefined;\n member.status = status;\n this.memberEvent(member, \"agent_waiting\");\n this.changes.notify();\n try {\n return await work();\n } finally {\n if (!member.controller.signal.aborted && !this.closed) {\n member.release = await this.slots.acquire(member.controller.signal);\n member.status = \"running\";\n this.changes.notify();\n }\n }\n }\n\n private identity(member: TeamMember) {\n const identity: { teamRunId: string; instanceId: string; runId?: string } = {\n teamRunId: this.id,\n instanceId: member.instanceId,\n };\n if (member.runId !== undefined) identity.runId = member.runId;\n return identity;\n }\n\n private memberEvent(\n member: TeamMember,\n type:\n | \"agent_queued\"\n | \"agent_started\"\n | \"agent_waiting\"\n | \"agent_idle\"\n | \"agent_failed\"\n | \"agent_cancelled\",\n ) {\n this.emit({ type, ...this.identity(member), member: memberSummary(member) });\n }\n\n private agentEvent(member: TeamMember, event: AgentStreamEvent<unknown>) {\n if (this.closed || member.controller.signal.aborted) return;\n this.emit({\n type: \"agent_event\",\n ...this.identity(member),\n coordinator: member === this.leader,\n event: lifecycleSnapshot(event),\n });\n }\n\n private assertOpen(): void {\n if (this.fatal !== undefined) throw this.fatal;\n if (this.closed) throw new AgentStreamClosedError();\n throwIfAborted(this.controller.signal);\n }\n\n private fail(error: unknown): void {\n this.fatal ??= error;\n this.controller.abort(error);\n this.stopMembers();\n this.changes.notify();\n }\n\n private stopMember(member: TeamMember, reason: string): void {\n if (member.status === \"cancelled\") return;\n member.status = \"cancelled\";\n member.inputs.length = 0;\n member.controller.abort(reason);\n member.activeRun?.cancel(reason);\n this.memberEvent(member, \"agent_cancelled\");\n this.changes.notify();\n }\n\n private stopMembers(): void {\n for (const member of this.instances.values()) {\n if ([\"queued\", \"running\", \"waiting\", \"awaiting_interaction\"].includes(member.status))\n this.stopMember(member, \"Agent team closed.\");\n }\n }\n\n private stopDescendants(parent: TeamMember, reason: string): void {\n // Instances are inserted after their parents; this also reaches idle descendants without recursion.\n // The subtree root is already terminal, and each descendant's parent is stopped first.\n // Only the subtree root reports cancellation to a surviving parent; descendant reports are suppressed.\n const stopped = new Set([parent.instanceId]);\n for (const member of this.instances.values()) {\n if (member.parentInstanceId !== undefined && stopped.has(member.parentInstanceId)) {\n stopped.add(member.instanceId);\n this.stopMember(member, reason);\n }\n }\n }\n\n private async settleMembers(): Promise<void> {\n await Promise.allSettled(\n [...this.instances.values()].flatMap((member) =>\n member.task === undefined ? [] : [member.task],\n ),\n );\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -6,13 +6,13 @@ import {
|
|
|
6
6
|
} from "./chunk-6BTJC3ES.js";
|
|
7
7
|
import {
|
|
8
8
|
isToolIndex
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-4BDSO4PQ.js";
|
|
10
10
|
import {
|
|
11
11
|
isMcpTool
|
|
12
12
|
} from "./chunk-PLDJCCVL.js";
|
|
13
13
|
import {
|
|
14
14
|
isProviderTool
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-HJ6KTQTZ.js";
|
|
16
16
|
|
|
17
17
|
// src/agent/resolve-options.ts
|
|
18
18
|
var resolvedAgentOptions = /* @__PURE__ */ Symbol("resolvedAgentOptions");
|
|
@@ -109,4 +109,4 @@ export {
|
|
|
109
109
|
resolveAgentOptions,
|
|
110
110
|
markResolvedAgentOptions
|
|
111
111
|
};
|
|
112
|
-
//# sourceMappingURL=chunk-
|
|
112
|
+
//# sourceMappingURL=chunk-WCWSPU74.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
assertToolApprovalRequirement
|
|
3
|
-
} from "./chunk-YZVFIW5D.js";
|
|
4
1
|
import {
|
|
5
2
|
attachPreparedToolOwner,
|
|
6
3
|
preparedToolInput,
|
|
7
4
|
withoutPreparedToolInput
|
|
8
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-647TQE3E.js";
|
|
6
|
+
import {
|
|
7
|
+
assertToolApprovalRequirement
|
|
8
|
+
} from "./chunk-YZVFIW5D.js";
|
|
9
9
|
import {
|
|
10
10
|
toProviderJsonSchema
|
|
11
11
|
} from "./chunk-SQAAVYJG.js";
|
|
@@ -55,4 +55,4 @@ function snapshotApprovalRequirement(requirement) {
|
|
|
55
55
|
export {
|
|
56
56
|
createTool
|
|
57
57
|
};
|
|
58
|
-
//# sourceMappingURL=chunk-
|
|
58
|
+
//# sourceMappingURL=chunk-Y365ABZY.js.map
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
toProviderJsonSchemaFromStandardSchema,
|
|
3
|
+
tryToProviderJsonSchemaFromStandardSchema
|
|
4
|
+
} from "./chunk-YOLOFTAY.js";
|
|
5
|
+
import {
|
|
6
|
+
formatStandardSchemaIssues,
|
|
7
|
+
validateStandardSchema
|
|
8
|
+
} from "./chunk-6OO5C5GW.js";
|
|
1
9
|
import {
|
|
2
10
|
createCompletionRequest
|
|
3
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-GSVOMQEE.js";
|
|
4
12
|
import {
|
|
5
13
|
CompletionStreamAccumulator
|
|
6
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-2JZV4LUS.js";
|
|
7
15
|
import {
|
|
8
16
|
CompletionProviderOutputError,
|
|
9
17
|
assertCompletionResponseIntegrity
|
|
@@ -12,13 +20,10 @@ import {
|
|
|
12
20
|
Usage,
|
|
13
21
|
assertCompletionRequestSupported,
|
|
14
22
|
textFromAssistantContent
|
|
15
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-HJ6KTQTZ.js";
|
|
16
24
|
import {
|
|
17
25
|
isJsonValue
|
|
18
26
|
} from "./chunk-4C7AXYOM.js";
|
|
19
|
-
import {
|
|
20
|
-
toProviderJsonSchema
|
|
21
|
-
} from "./chunk-SQAAVYJG.js";
|
|
22
27
|
import {
|
|
23
28
|
completionProviderOutputErrorUsage,
|
|
24
29
|
resolveRetryOptions,
|
|
@@ -51,7 +56,7 @@ var CompletionStructuredOutputError = class extends Error {
|
|
|
51
56
|
};
|
|
52
57
|
async function generateCompletion(options) {
|
|
53
58
|
throwIfAborted(options.abortSignal);
|
|
54
|
-
const request = requestFromOptions(options);
|
|
59
|
+
const request = await requestFromOptions(options);
|
|
55
60
|
assertCompletionRequestSupported(options.model, request);
|
|
56
61
|
const retries = resolveOptionalRetries(options.retries);
|
|
57
62
|
const response = await sendCompletion(options.model, request, retries, options.abortSignal);
|
|
@@ -59,15 +64,20 @@ async function generateCompletion(options) {
|
|
|
59
64
|
}
|
|
60
65
|
function streamCompletion(options) {
|
|
61
66
|
throwIfAborted(options.abortSignal);
|
|
62
|
-
const request = requestFromOptions(options);
|
|
63
67
|
if (!isStreamingCompletionModel(options.model) || !options.model.capabilities.streaming) {
|
|
64
68
|
throw new Error("This completion model does not support streaming");
|
|
65
69
|
}
|
|
66
|
-
|
|
70
|
+
const { request, pendingSchema } = requestFromOptionsSync(options);
|
|
71
|
+
assertCompletionRequestSupported(
|
|
72
|
+
options.model,
|
|
73
|
+
pendingSchema === void 0 ? request : { ...request, outputSchema: request.outputSchema ?? {} },
|
|
74
|
+
{ streaming: true }
|
|
75
|
+
);
|
|
67
76
|
const retries = resolveOptionalRetries(options.retries);
|
|
68
77
|
return streamCompletionWithRetries(
|
|
69
78
|
options.model,
|
|
70
79
|
request,
|
|
80
|
+
pendingSchema,
|
|
71
81
|
retries,
|
|
72
82
|
options.abortSignal,
|
|
73
83
|
structuredOutputSchema(options)
|
|
@@ -101,7 +111,14 @@ async function sendCompletion(model, request, retries, abortSignal) {
|
|
|
101
111
|
function resolveOptionalRetries(setting) {
|
|
102
112
|
return setting === void 0 || setting === false ? void 0 : resolveRetryOptions(setting);
|
|
103
113
|
}
|
|
104
|
-
async function* streamCompletionWithRetries(model,
|
|
114
|
+
async function* streamCompletionWithRetries(model, initialRequest, pendingSchema, retries, abortSignal, outputSchema) {
|
|
115
|
+
let request = initialRequest;
|
|
116
|
+
if (pendingSchema !== void 0) {
|
|
117
|
+
request = {
|
|
118
|
+
...request,
|
|
119
|
+
outputSchema: await toProviderJsonSchemaFromStandardSchema(pendingSchema)
|
|
120
|
+
};
|
|
121
|
+
}
|
|
105
122
|
let attempt = 1;
|
|
106
123
|
let swallowedUsage = Usage.empty();
|
|
107
124
|
const callOptions = modelCallOptions(abortSignal);
|
|
@@ -221,9 +238,28 @@ async function* streamCompletionWithRetries(model, request, retries, abortSignal
|
|
|
221
238
|
}
|
|
222
239
|
}
|
|
223
240
|
}
|
|
224
|
-
function requestFromOptions(options) {
|
|
241
|
+
async function requestFromOptions(options) {
|
|
242
|
+
const { request, pendingSchema } = requestFromOptionsSync(options);
|
|
243
|
+
if (pendingSchema === void 0) return request;
|
|
244
|
+
return {
|
|
245
|
+
...request,
|
|
246
|
+
outputSchema: await toProviderJsonSchemaFromStandardSchema(pendingSchema)
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
function requestFromOptionsSync(options) {
|
|
225
250
|
const input = inputFromOptions(options);
|
|
226
|
-
|
|
251
|
+
const schema = structuredOutputSchema(options);
|
|
252
|
+
let outputSchema;
|
|
253
|
+
let pendingSchema;
|
|
254
|
+
if (schema !== void 0) {
|
|
255
|
+
const converted = tryToProviderJsonSchemaFromStandardSchema(schema);
|
|
256
|
+
if (converted.jsonSchema !== void 0) {
|
|
257
|
+
outputSchema = converted.jsonSchema;
|
|
258
|
+
} else {
|
|
259
|
+
pendingSchema = schema;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
const request = createCompletionRequest(input, {
|
|
227
263
|
instructions: options.instructions,
|
|
228
264
|
documents: options.documents,
|
|
229
265
|
tools: options.tools,
|
|
@@ -232,8 +268,9 @@ function requestFromOptions(options) {
|
|
|
232
268
|
toolChoice: options.toolChoice,
|
|
233
269
|
controls: options.controls,
|
|
234
270
|
providerOptions: options.providerOptions,
|
|
235
|
-
outputSchema
|
|
271
|
+
outputSchema
|
|
236
272
|
});
|
|
273
|
+
return { request, pendingSchema };
|
|
237
274
|
}
|
|
238
275
|
function inputFromOptions(options) {
|
|
239
276
|
const prompt = options.prompt;
|
|
@@ -313,8 +350,9 @@ function parseCompletionOutput(text, schema, response) {
|
|
|
313
350
|
cause: error
|
|
314
351
|
});
|
|
315
352
|
}
|
|
353
|
+
let validation;
|
|
316
354
|
try {
|
|
317
|
-
|
|
355
|
+
validation = validateStandardSchema(schema, json);
|
|
318
356
|
} catch (error) {
|
|
319
357
|
throw new CompletionStructuredOutputError({
|
|
320
358
|
phase: "schema",
|
|
@@ -325,6 +363,17 @@ function parseCompletionOutput(text, schema, response) {
|
|
|
325
363
|
cause: error
|
|
326
364
|
});
|
|
327
365
|
}
|
|
366
|
+
if (!validation.success) {
|
|
367
|
+
throw new CompletionStructuredOutputError({
|
|
368
|
+
phase: "schema",
|
|
369
|
+
outputLength: text.length,
|
|
370
|
+
usage: response.usage,
|
|
371
|
+
finishReason: response.finishReason,
|
|
372
|
+
providerFinishReason: response.providerFinishReason,
|
|
373
|
+
cause: new Error(formatStandardSchemaIssues(validation.issues))
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
return validation.value;
|
|
328
377
|
}
|
|
329
378
|
function modelCallOptions(abortSignal) {
|
|
330
379
|
return abortSignal === void 0 ? void 0 : { abortSignal };
|
|
@@ -339,4 +388,4 @@ export {
|
|
|
339
388
|
streamCompletion,
|
|
340
389
|
isStreamingCompletionModel
|
|
341
390
|
};
|
|
342
|
-
//# sourceMappingURL=chunk-
|
|
391
|
+
//# sourceMappingURL=chunk-YMTBHHLQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/completion/generate-completion.ts"],"sourcesContent":["import { abortError, throwIfAborted } from \"../internal/abort\";\nimport { createCompletionRequest } from \"../internal/completion-request\";\nimport type { ModelCallOptions } from \"../model-call-options\";\nimport {\n completionProviderOutputErrorUsage,\n type ResolvedRetryOptions,\n type RetrySetting,\n resolveRetryOptions,\n retryDelayMs,\n retryOptionsForFailure,\n waitForRetry,\n} from \"../retry\";\nimport {\n toProviderJsonSchemaFromStandardSchema,\n tryToProviderJsonSchemaFromStandardSchema,\n} from \"../schema/standard-json-schema\";\nimport {\n formatStandardSchemaIssues,\n type StandardSchemaV1,\n validateStandardSchema,\n} from \"../schema/standard-schema\";\nimport { isJsonValue } from \"./json\";\nimport {\n assertCompletionResponseIntegrity,\n CompletionProviderOutputError,\n} from \"./provider-output-error\";\nimport { CompletionStreamAccumulator } from \"./stream-accumulator\";\nimport type {\n CompletionControlValues,\n CompletionModel,\n CompletionModelControlsOf,\n CompletionModelStreamEvent,\n CompletionRequest,\n CompletionResponse,\n CompletionResult,\n CompletionStreamEvent,\n CompletionTool,\n Document,\n JsonObject,\n Message as MessageType,\n StreamingCompletionModel,\n ToolChoice,\n} from \"./types\";\nimport { assertCompletionRequestSupported, textFromAssistantContent, Usage } from \"./types\";\n\nexport type CompletionStructuredOutputPhase = \"truncated\" | \"content-filter\" | \"parse\" | \"schema\";\n\nexport class CompletionStructuredOutputError extends Error {\n readonly phase: CompletionStructuredOutputPhase;\n readonly outputLength: number;\n readonly usage: Usage;\n readonly finishReason: CompletionResponse[\"finishReason\"];\n readonly providerFinishReason: string | undefined;\n\n constructor(options: {\n phase: CompletionStructuredOutputPhase;\n outputLength: number;\n usage: Usage;\n finishReason?: CompletionResponse[\"finishReason\"];\n providerFinishReason?: string | undefined;\n cause?: unknown;\n }) {\n const failure =\n options.phase === \"truncated\"\n ? \"because the provider reached its output limit\"\n : options.phase === \"content-filter\"\n ? \"because the provider filtered the response\"\n : options.phase === \"parse\"\n ? \"during JSON parsing\"\n : \"during schema validation\";\n super(`Structured completion output failed ${failure}.`, { cause: options.cause });\n this.name = \"CompletionStructuredOutputError\";\n this.phase = options.phase;\n this.outputLength = options.outputLength;\n this.usage = options.usage;\n this.finishReason = options.finishReason;\n this.providerFinishReason = options.providerFinishReason;\n }\n}\n\nexport type CompletionInput =\n | { prompt: string; messages?: never }\n | { messages: readonly MessageType[]; prompt?: never };\n\nexport type CompletionBaseOptions<Model extends CompletionModel = CompletionModel> =\n CompletionInput & {\n model: Model;\n instructions?: string | undefined;\n documents?: readonly Document[] | undefined;\n tools?: readonly CompletionTool[] | undefined;\n temperature?: number | undefined;\n maxTokens?: number | undefined;\n toolChoice?: ToolChoice | undefined;\n controls?: CompletionControlValues<CompletionModelControlsOf<Model>> | undefined;\n providerOptions?: JsonObject | undefined;\n retries?: RetrySetting | undefined;\n abortSignal?: AbortSignal | undefined;\n };\n\nexport type GenerateCompletionOptions<Model extends CompletionModel = CompletionModel> =\n CompletionBaseOptions<Model> & { outputSchema?: never };\n\nexport type GenerateStructuredCompletionOptions<\n Output,\n Model extends CompletionModel = CompletionModel,\n> = CompletionBaseOptions<Model> & { outputSchema: StandardSchemaV1<unknown, Output> };\n\nexport type StreamCompletionOptions<\n Model extends StreamingCompletionModel = StreamingCompletionModel,\n> = GenerateCompletionOptions<Model>;\n\nexport type StreamStructuredCompletionOptions<\n Output,\n Model extends StreamingCompletionModel = StreamingCompletionModel,\n> = GenerateStructuredCompletionOptions<Output, Model>;\n\ntype RawResponseOf<Model> =\n Model extends CompletionModel<infer RawResponse> ? RawResponse : unknown;\n\nexport function generateCompletion<Output, Model extends CompletionModel>(\n options: GenerateStructuredCompletionOptions<Output, Model>,\n): Promise<CompletionResult<Output, RawResponseOf<Model>>>;\nexport function generateCompletion<Model extends CompletionModel>(\n options: GenerateCompletionOptions<Model>,\n): Promise<CompletionResult<string, RawResponseOf<Model>>>;\nexport async function generateCompletion<Output, Model extends CompletionModel>(\n options: GenerateCompletionOptions<Model> | GenerateStructuredCompletionOptions<Output, Model>,\n): Promise<CompletionResult<Output | string, RawResponseOf<Model>>> {\n throwIfAborted(options.abortSignal);\n const request = await requestFromOptions(options);\n assertCompletionRequestSupported(options.model, request);\n const retries = resolveOptionalRetries(options.retries);\n const response = await sendCompletion(options.model, request, retries, options.abortSignal);\n return resultFromResponse(response, structuredOutputSchema(options));\n}\n\nexport function streamCompletion<Output, Model extends StreamingCompletionModel>(\n options: StreamStructuredCompletionOptions<Output, Model>,\n): AsyncIterable<CompletionStreamEvent<Output, RawResponseOf<Model>>>;\nexport function streamCompletion<Model extends StreamingCompletionModel>(\n options: StreamCompletionOptions<Model>,\n): AsyncIterable<CompletionStreamEvent<string, RawResponseOf<Model>>>;\nexport function streamCompletion<Output, Model extends StreamingCompletionModel>(\n options: StreamCompletionOptions<Model> | StreamStructuredCompletionOptions<Output, Model>,\n): AsyncIterable<CompletionStreamEvent<Output | string, RawResponseOf<Model>>> {\n throwIfAborted(options.abortSignal);\n if (!isStreamingCompletionModel(options.model) || !options.model.capabilities.streaming) {\n throw new Error(\"This completion model does not support streaming\");\n }\n const { request, pendingSchema } = requestFromOptionsSync(options);\n // Schemas whose JSON Schema conversion is deferred still count as an output\n // schema for capability validation.\n assertCompletionRequestSupported(\n options.model,\n pendingSchema === undefined\n ? request\n : { ...request, outputSchema: request.outputSchema ?? {} },\n { streaming: true },\n );\n const retries = resolveOptionalRetries(options.retries);\n return streamCompletionWithRetries(\n options.model,\n request,\n pendingSchema,\n retries,\n options.abortSignal,\n structuredOutputSchema(options),\n );\n}\n\nasync function sendCompletion<Model extends CompletionModel>(\n model: Model,\n request: CompletionRequest,\n retries: ResolvedRetryOptions | undefined,\n abortSignal: AbortSignal | undefined,\n): Promise<CompletionResponse<RawResponseOf<Model>>> {\n const callOptions = modelCallOptions(abortSignal);\n let attempt = 1;\n let failedUsage = Usage.empty();\n while (true) {\n try {\n throwIfAborted(abortSignal);\n const response = (await model.completion(request, callOptions)) as CompletionResponse<\n RawResponseOf<Model>\n >;\n assertCompletionResponseIntegrity({ response });\n return Usage.isEmpty(failedUsage)\n ? response\n : { ...response, usage: Usage.add(failedUsage, response.usage) };\n } catch (error) {\n const normalizedError =\n abortSignal?.aborted === true ? abortError(abortSignal.reason) : error;\n const attemptUsage = completionProviderOutputErrorUsage(normalizedError);\n if (attemptUsage !== undefined) failedUsage = Usage.add(failedUsage, attemptUsage);\n const retryOptions = retryOptionsForFailure(retries, {\n error: normalizedError,\n attempt,\n streaming: false,\n });\n if (retryOptions === undefined) throw normalizedError;\n await waitForRetry(retryDelayMs(retryOptions, attempt), abortSignal);\n attempt += 1;\n }\n }\n}\n\nfunction resolveOptionalRetries(\n setting: RetrySetting | undefined,\n): ResolvedRetryOptions | undefined {\n return setting === undefined || setting === false ? undefined : resolveRetryOptions(setting);\n}\n\nasync function* streamCompletionWithRetries<Output, Model extends StreamingCompletionModel>(\n model: Model,\n initialRequest: CompletionRequest,\n pendingSchema: StandardSchemaV1<unknown, Output> | undefined,\n retries: ResolvedRetryOptions | undefined,\n abortSignal: AbortSignal | undefined,\n outputSchema: StandardSchemaV1<unknown, Output> | undefined,\n): AsyncIterable<CompletionStreamEvent<Output | string, RawResponseOf<Model>>> {\n let request = initialRequest;\n if (pendingSchema !== undefined) {\n request = {\n ...request,\n outputSchema: await toProviderJsonSchemaFromStandardSchema(pendingSchema),\n };\n }\n let attempt = 1;\n let swallowedUsage = Usage.empty();\n const callOptions = modelCallOptions(abortSignal);\n\n attemptLoop: while (true) {\n let exposedProgress = false;\n let retryDelay: number | undefined;\n const accumulator = new CompletionStreamAccumulator<RawResponseOf<Model>>();\n try {\n throwIfAborted(abortSignal);\n const events = model.streamCompletion(request, callOptions) as AsyncIterable<\n CompletionModelStreamEvent<RawResponseOf<Model>>\n >;\n for await (const event of events) {\n if (event.type === \"error\" && !exposedProgress) {\n const eventError =\n abortSignal?.aborted === true ? abortError(abortSignal.reason) : event.error;\n const eventUsage =\n event.usage ?? completionProviderOutputErrorUsage(eventError) ?? Usage.empty();\n const retryOptions = retryOptionsForFailure(retries, {\n error: eventError,\n attempt,\n streaming: true,\n });\n if (retryOptions !== undefined) {\n swallowedUsage = Usage.add(swallowedUsage, eventUsage);\n retryDelay = retryDelayMs(retryOptions, attempt);\n break;\n }\n }\n\n if (event.type === \"error\") {\n const eventError =\n abortSignal?.aborted === true ? abortError(abortSignal.reason) : event.error;\n const eventUsage =\n event.usage ?? completionProviderOutputErrorUsage(eventError) ?? Usage.empty();\n yield {\n type: \"error\",\n error: eventError,\n usage: Usage.add(swallowedUsage, eventUsage),\n };\n return;\n }\n\n if (event.type === \"final\") {\n const cumulativeUsage = Usage.add(swallowedUsage, event.response.usage);\n try {\n accumulator.accept(event);\n const accumulatedResponse = accumulator.response();\n const response = Usage.isEmpty(swallowedUsage)\n ? accumulatedResponse\n : { ...accumulatedResponse, usage: cumulativeUsage };\n assertCompletionResponseIntegrity({ response });\n yield {\n type: \"final\",\n result: resultFromResponse(response, outputSchema),\n };\n } catch (error) {\n const retryOptions = exposedProgress\n ? undefined\n : retryOptionsForFailure(retries, {\n error,\n attempt,\n streaming: true,\n });\n if (retryOptions !== undefined) {\n swallowedUsage = cumulativeUsage;\n await waitForRetry(retryDelayMs(retryOptions, attempt), abortSignal);\n attempt += 1;\n continue attemptLoop;\n }\n yield { type: \"error\", error, usage: cumulativeUsage };\n }\n return;\n }\n\n accumulator.accept(event);\n exposedProgress = true;\n yield event;\n }\n\n if (retryDelay !== undefined) {\n await waitForRetry(retryDelay, abortSignal);\n attempt += 1;\n continue;\n }\n\n let incomplete: unknown;\n try {\n accumulator.response();\n incomplete = new CompletionProviderOutputError({ kind: \"incomplete-stream\" });\n } catch (error) {\n incomplete = error;\n }\n if (!exposedProgress) {\n const retryOptions = retryOptionsForFailure(retries, {\n error: incomplete,\n attempt,\n streaming: true,\n });\n if (retryOptions !== undefined) {\n await waitForRetry(retryDelayMs(retryOptions, attempt), abortSignal);\n attempt += 1;\n continue;\n }\n }\n yield { type: \"error\", error: incomplete, usage: swallowedUsage };\n return;\n } catch (error) {\n const normalizedError =\n abortSignal?.aborted === true ? abortError(abortSignal.reason) : error;\n const attemptUsage = completionProviderOutputErrorUsage(normalizedError);\n const cumulativeUsage =\n attemptUsage === undefined ? swallowedUsage : Usage.add(swallowedUsage, attemptUsage);\n if (!exposedProgress) {\n const retryOptions = retryOptionsForFailure(retries, {\n error: normalizedError,\n attempt,\n streaming: true,\n });\n if (retryOptions !== undefined) {\n try {\n swallowedUsage = cumulativeUsage;\n await waitForRetry(retryDelayMs(retryOptions, attempt), abortSignal);\n attempt += 1;\n continue;\n } catch (waitError) {\n yield { type: \"error\", error: waitError, usage: cumulativeUsage };\n return;\n }\n }\n }\n yield { type: \"error\", error: normalizedError, usage: cumulativeUsage };\n return;\n }\n }\n}\n\nasync function requestFromOptions<Model extends CompletionModel, Output>(\n options: GenerateCompletionOptions<Model> | GenerateStructuredCompletionOptions<Output, Model>,\n): Promise<CompletionRequest> {\n const { request, pendingSchema } = requestFromOptionsSync(options);\n if (pendingSchema === undefined) return request;\n return {\n ...request,\n outputSchema: await toProviderJsonSchemaFromStandardSchema(pendingSchema),\n };\n}\n\nfunction requestFromOptionsSync<Model extends CompletionModel, Output>(\n options: GenerateCompletionOptions<Model> | GenerateStructuredCompletionOptions<Output, Model>,\n): {\n request: CompletionRequest;\n pendingSchema: StandardSchemaV1<unknown, Output> | undefined;\n} {\n const input = inputFromOptions(options);\n const schema = structuredOutputSchema(options);\n let outputSchema: JsonObject | undefined;\n let pendingSchema: StandardSchemaV1<unknown, Output> | undefined;\n if (schema !== undefined) {\n const converted = tryToProviderJsonSchemaFromStandardSchema(schema);\n if (converted.jsonSchema !== undefined) {\n outputSchema = converted.jsonSchema;\n } else {\n pendingSchema = schema;\n }\n }\n const request = createCompletionRequest(input, {\n instructions: options.instructions,\n documents: options.documents,\n tools: options.tools,\n temperature: options.temperature,\n maxTokens: options.maxTokens,\n toolChoice: options.toolChoice,\n controls: options.controls,\n providerOptions: options.providerOptions,\n outputSchema,\n });\n return { request, pendingSchema };\n}\n\nfunction inputFromOptions(options: CompletionInput): string | readonly MessageType[] {\n const prompt = (options as { prompt?: unknown }).prompt;\n const messages = (options as { messages?: unknown }).messages;\n const hasPrompt = prompt !== undefined;\n const hasMessages = messages !== undefined;\n if (hasPrompt === hasMessages) {\n throw new TypeError(\"Exactly one of prompt or messages must be provided.\");\n }\n if (hasPrompt) {\n if (typeof prompt !== \"string\" || prompt.trim().length === 0) {\n throw new TypeError(\"Completion prompt must be a non-empty string.\");\n }\n return prompt;\n }\n if (!Array.isArray(messages)) {\n throw new TypeError(\"Completion messages must be an array of Message values.\");\n }\n return messages as readonly MessageType[];\n}\n\nfunction structuredOutputSchema<Output>(options: {\n outputSchema?: StandardSchemaV1<unknown, Output> | undefined;\n}): StandardSchemaV1<unknown, Output> | undefined {\n return options.outputSchema;\n}\n\nfunction resultFromResponse<Output, RawResponse>(\n response: CompletionResponse<RawResponse>,\n outputSchema: StandardSchemaV1<unknown, Output> | undefined,\n): CompletionResult<Output | string, RawResponse> {\n const text = textFromAssistantContent(response.choice);\n const result: CompletionResult<Output | string, RawResponse> = {\n output: outputSchema === undefined ? text : parseCompletionOutput(text, outputSchema, response),\n text,\n content: [...response.choice],\n usage: response.usage,\n rawResponse: response.rawResponse,\n };\n if (response.finishReason !== undefined) result.finishReason = response.finishReason;\n if (response.providerFinishReason !== undefined) {\n result.providerFinishReason = response.providerFinishReason;\n }\n if (response.contextUsage !== undefined) result.contextUsage = response.contextUsage;\n if (response.messageId !== undefined) result.messageId = response.messageId;\n if (response.sources !== undefined) result.sources = [...response.sources];\n if (response.providerToolCalls !== undefined) {\n result.providerToolCalls = [...response.providerToolCalls];\n }\n return result;\n}\n\nfunction parseCompletionOutput<Output, RawResponse>(\n text: string,\n schema: StandardSchemaV1<unknown, Output>,\n response: CompletionResponse<RawResponse>,\n): Output {\n if (response.finishReason === \"content-filter\") {\n throw new CompletionStructuredOutputError({\n phase: \"content-filter\",\n outputLength: text.length,\n usage: response.usage,\n finishReason: response.finishReason,\n providerFinishReason: response.providerFinishReason,\n });\n }\n if (response.finishReason === \"length\") {\n throw new CompletionStructuredOutputError({\n phase: \"truncated\",\n outputLength: text.length,\n usage: response.usage,\n finishReason: response.finishReason,\n providerFinishReason: response.providerFinishReason,\n });\n }\n let json: unknown;\n try {\n json = JSON.parse(text);\n if (!isJsonValue(json)) {\n throw new TypeError(\"Structured completion output is not a JSON value.\");\n }\n } catch (error) {\n throw new CompletionStructuredOutputError({\n phase: \"parse\",\n outputLength: text.length,\n usage: response.usage,\n finishReason: response.finishReason,\n providerFinishReason: response.providerFinishReason,\n cause: error,\n });\n }\n let validation: ReturnType<typeof validateStandardSchema<Output>>;\n try {\n validation = validateStandardSchema(schema, json);\n } catch (error) {\n throw new CompletionStructuredOutputError({\n phase: \"schema\",\n outputLength: text.length,\n usage: response.usage,\n finishReason: response.finishReason,\n providerFinishReason: response.providerFinishReason,\n cause: error,\n });\n }\n if (!validation.success) {\n throw new CompletionStructuredOutputError({\n phase: \"schema\",\n outputLength: text.length,\n usage: response.usage,\n finishReason: response.finishReason,\n providerFinishReason: response.providerFinishReason,\n cause: new Error(formatStandardSchemaIssues(validation.issues)),\n });\n }\n return validation.value;\n}\n\nfunction modelCallOptions(abortSignal: AbortSignal | undefined): ModelCallOptions | undefined {\n return abortSignal === undefined ? undefined : { abortSignal };\n}\n\nexport function isStreamingCompletionModel(\n model: CompletionModel,\n): model is StreamingCompletionModel {\n return typeof (model as { streamCompletion?: unknown }).streamCompletion === \"function\";\n}\n"],"mappings":"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","names":[]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-H3H74RWJ.js";
|
|
4
4
|
import {
|
|
5
5
|
Usage
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-HJ6KTQTZ.js";
|
|
7
7
|
|
|
8
8
|
// src/observability/group.ts
|
|
9
9
|
var AgentObserverDispatchError = class extends AggregateError {
|
|
@@ -245,4 +245,4 @@ export {
|
|
|
245
245
|
ActiveGenerationObservers,
|
|
246
246
|
ActiveToolObservers
|
|
247
247
|
};
|
|
248
|
-
//# sourceMappingURL=chunk-
|
|
248
|
+
//# sourceMappingURL=chunk-YNA3UR42.js.map
|