@anvia/core 0.26.0 → 1.0.0-rc.2
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 +303 -94
- package/dist/agent/index.d.ts +36 -70
- package/dist/agent/index.js +25 -18
- package/dist/agent-yBG8e9Jj.d.ts +153 -0
- package/dist/chunk-4WI3VGZK.js +127 -0
- package/dist/chunk-4WI3VGZK.js.map +1 -0
- package/dist/chunk-77AIYARB.js +654 -0
- package/dist/chunk-77AIYARB.js.map +1 -0
- package/dist/chunk-AI5JMUW7.js +45 -0
- package/dist/chunk-AI5JMUW7.js.map +1 -0
- package/dist/chunk-BEYBU7VJ.js +53 -0
- package/dist/chunk-BEYBU7VJ.js.map +1 -0
- package/dist/chunk-CWM7B2OO.js +315 -0
- package/dist/chunk-CWM7B2OO.js.map +1 -0
- package/dist/chunk-D37WMSP6.js +131 -0
- package/dist/chunk-D37WMSP6.js.map +1 -0
- package/dist/chunk-DBSCKTUL.js +3793 -0
- package/dist/chunk-DBSCKTUL.js.map +1 -0
- package/dist/chunk-EINTGEGY.js +629 -0
- package/dist/chunk-EINTGEGY.js.map +1 -0
- package/dist/chunk-FMHLROPQ.js +351 -0
- package/dist/chunk-FMHLROPQ.js.map +1 -0
- package/dist/chunk-FN7HLLAZ.js +211 -0
- package/dist/chunk-FN7HLLAZ.js.map +1 -0
- package/dist/chunk-GKDERULJ.js +50 -0
- package/dist/chunk-GKDERULJ.js.map +1 -0
- package/dist/{chunk-CWUJUSOS.js → chunk-KIDGIJM7.js} +26 -5
- package/dist/chunk-KIDGIJM7.js.map +1 -0
- package/dist/chunk-KR3RCCHJ.js +500 -0
- package/dist/chunk-KR3RCCHJ.js.map +1 -0
- package/dist/chunk-MGNTXGTX.js +37 -0
- package/dist/chunk-MGNTXGTX.js.map +1 -0
- package/dist/{chunk-MRQLEK2B.js → chunk-OJH6HWHX.js} +63 -51
- package/dist/chunk-OJH6HWHX.js.map +1 -0
- package/dist/chunk-QOUPWOGW.js +29 -0
- package/dist/chunk-QOUPWOGW.js.map +1 -0
- package/dist/chunk-TIZYTPJO.js +208 -0
- package/dist/chunk-TIZYTPJO.js.map +1 -0
- package/dist/{chunk-NCPN4SJR.js → chunk-XKYYBABH.js} +13 -13
- package/dist/chunk-XKYYBABH.js.map +1 -0
- package/dist/client-B8DT1vUG.d.ts +83 -0
- package/dist/completion/index.d.ts +6 -36
- package/dist/completion/index.js +25 -29
- package/dist/dynamic-tools-KwEGRbHp.d.ts +45 -0
- package/dist/embeddings/index.d.ts +11 -9
- package/dist/embeddings/index.js +2 -4
- package/dist/evals/index.d.ts +47 -20
- package/dist/evals/index.js +104 -65
- package/dist/evals/index.js.map +1 -1
- package/dist/extractor/index.d.ts +27 -42
- package/dist/extractor/index.js +7 -22
- package/dist/guardrails/index.d.ts +3 -2
- package/dist/guardrails/index.js +1 -1
- package/dist/image-generation/index.d.ts +23 -23
- package/dist/image-generation/index.js +5 -39
- package/dist/image-generation/index.js.map +1 -1
- package/dist/index.d.ts +25 -20
- package/dist/index.js +60 -63
- package/dist/internal/agent.d.ts +163 -9
- package/dist/internal/agent.js +25 -18
- package/dist/loaders/index.d.ts +6 -10
- package/dist/loaders/index.js.map +1 -1
- package/dist/mcp/index.d.ts +19 -13
- package/dist/mcp/index.js +13 -348
- package/dist/mcp/index.js.map +1 -1
- package/dist/memory/index.d.ts +20 -6
- package/dist/memory/index.js +9 -10
- package/dist/message-schema-Cn7ezRfJ.d.ts +52 -0
- package/dist/middleware-C7PdmKF7.d.ts +56 -0
- package/dist/model-call-options-CZkSw_xN.d.ts +6 -0
- package/dist/model-listing/index.d.ts +3 -1
- package/dist/observability/index.d.ts +20 -3
- package/dist/observability/index.js +8 -5
- package/dist/observability/index.js.map +1 -1
- package/dist/pipeline/index.d.ts +114 -72
- package/dist/pipeline/index.js +478 -286
- package/dist/pipeline/index.js.map +1 -1
- package/dist/retry-CjvSlKGW.d.ts +16 -0
- package/dist/skills/index.d.ts +5 -4
- package/dist/skills/index.js +7 -8
- package/dist/speech-generation/index.d.ts +37 -0
- package/dist/speech-generation/index.js +8 -0
- package/dist/streaming/index.js +37 -3
- package/dist/streaming/index.js.map +1 -1
- package/dist/{think-tool-DfCMuO8e.d.ts → think-tool-6H2QNQzQ.d.ts} +5 -5
- package/dist/tool/index.d.ts +10 -6
- package/dist/tool/index.js +15 -21
- package/dist/tool--Mz4v1eL.d.ts +57 -0
- package/dist/transcription/index.d.ts +29 -22
- package/dist/transcription/index.js +5 -57
- package/dist/transcription/index.js.map +1 -1
- package/dist/type-utils-CtHVDRn_.d.ts +6 -0
- package/dist/types-3x3mOLHU.d.ts +379 -0
- package/dist/types-BVzM4RsC.d.ts +155 -0
- package/dist/types-CQ_ioXWK.d.ts +319 -0
- package/dist/types-Cr4uiYo5.d.ts +99 -0
- package/dist/{types-04LqWrmy.d.ts → types-DiJqJejp.d.ts} +1 -1
- package/dist/types-Dld1TpWj.d.ts +130 -0
- package/dist/vector-store/index.d.ts +33 -34
- package/dist/vector-store/index.js +6 -6
- package/package.json +6 -18
- package/dist/agent-x3YTyv5i.d.ts +0 -222
- package/dist/audio-generation/index.d.ts +0 -33
- package/dist/audio-generation/index.js +0 -42
- package/dist/audio-generation/index.js.map +0 -1
- package/dist/chunk-2ODTMRHP.js +0 -54
- package/dist/chunk-2ODTMRHP.js.map +0 -1
- package/dist/chunk-ADH7NNCS.js +0 -512
- package/dist/chunk-ADH7NNCS.js.map +0 -1
- package/dist/chunk-BALBBVI3.js +0 -2732
- package/dist/chunk-BALBBVI3.js.map +0 -1
- package/dist/chunk-CWUJUSOS.js.map +0 -1
- package/dist/chunk-DALYP4PX.js +0 -225
- package/dist/chunk-DALYP4PX.js.map +0 -1
- package/dist/chunk-HYUYZEAJ.js +0 -223
- package/dist/chunk-HYUYZEAJ.js.map +0 -1
- package/dist/chunk-I6XOQ4LK.js +0 -466
- package/dist/chunk-I6XOQ4LK.js.map +0 -1
- package/dist/chunk-JI5YZWNT.js +0 -220
- package/dist/chunk-JI5YZWNT.js.map +0 -1
- package/dist/chunk-MC3CCKEB.js +0 -221
- package/dist/chunk-MC3CCKEB.js.map +0 -1
- package/dist/chunk-MELYDKWQ.js +0 -337
- package/dist/chunk-MELYDKWQ.js.map +0 -1
- package/dist/chunk-MNWK2USR.js +0 -243
- package/dist/chunk-MNWK2USR.js.map +0 -1
- package/dist/chunk-MRQLEK2B.js.map +0 -1
- package/dist/chunk-NCPN4SJR.js.map +0 -1
- package/dist/chunk-OIMLU4SF.js +0 -20
- package/dist/chunk-OIMLU4SF.js.map +0 -1
- package/dist/chunk-Q25IWLBT.js +0 -138
- package/dist/chunk-Q25IWLBT.js.map +0 -1
- package/dist/chunk-UQX6EXWG.js +0 -33
- package/dist/chunk-UQX6EXWG.js.map +0 -1
- package/dist/chunk-WQKHFADH.js +0 -12
- package/dist/chunk-WQKHFADH.js.map +0 -1
- package/dist/chunk-XUUY2L2D.js +0 -42
- package/dist/chunk-XUUY2L2D.js.map +0 -1
- package/dist/chunk-XWUC7CIT.js +0 -1
- package/dist/chunk-XWUC7CIT.js.map +0 -1
- package/dist/chunk-YLMDBQO4.js +0 -141
- package/dist/chunk-YLMDBQO4.js.map +0 -1
- package/dist/errors-2moLDuuN.d.ts +0 -17
- package/dist/hooks/index.d.ts +0 -12
- package/dist/hooks/index.js +0 -17
- package/dist/index-BxSbmOMr.d.ts +0 -257
- package/dist/json-BVPssigK.d.ts +0 -39
- package/dist/middleware-Dp3d_pxi.d.ts +0 -90
- package/dist/request/index.d.ts +0 -28
- package/dist/request/index.js +0 -25
- package/dist/request/index.js.map +0 -1
- package/dist/tool-Cohdv5GC.d.ts +0 -65
- package/dist/types-BCTRUGex.d.ts +0 -47
- package/dist/types-BrLbKnEz.d.ts +0 -119
- package/dist/types-D9JpeAPF.d.ts +0 -114
- package/dist/types-G12i56s2.d.ts +0 -354
- package/dist/types-JJCxRnaZ.d.ts +0 -70
- package/dist/types-O-abTIin.d.ts +0 -79
- package/dist/ui/index.d.ts +0 -107
- package/dist/ui/index.js +0 -10
- package/dist/ui/index.js.map +0 -1
- /package/dist/{hooks → speech-generation}/index.js.map +0 -0
package/dist/chunk-JI5YZWNT.js
DELETED
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Agent,
|
|
3
|
-
normalizeAgentId
|
|
4
|
-
} from "./chunk-DALYP4PX.js";
|
|
5
|
-
import {
|
|
6
|
-
ToolSet
|
|
7
|
-
} from "./chunk-HYUYZEAJ.js";
|
|
8
|
-
import {
|
|
9
|
-
resolveMemoryOptions
|
|
10
|
-
} from "./chunk-UQX6EXWG.js";
|
|
11
|
-
import {
|
|
12
|
-
isProviderTool
|
|
13
|
-
} from "./chunk-ADH7NNCS.js";
|
|
14
|
-
import {
|
|
15
|
-
toProviderJsonSchema
|
|
16
|
-
} from "./chunk-WQKHFADH.js";
|
|
17
|
-
import {
|
|
18
|
-
appendGuardrailPolicies
|
|
19
|
-
} from "./chunk-CWUJUSOS.js";
|
|
20
|
-
|
|
21
|
-
// src/agent/builder.ts
|
|
22
|
-
var AgentBuilder = class {
|
|
23
|
-
constructor(agentId, completionModel) {
|
|
24
|
-
this.completionModel = completionModel;
|
|
25
|
-
this.agentId = normalizeAgentId(agentId);
|
|
26
|
-
}
|
|
27
|
-
completionModel;
|
|
28
|
-
agentId;
|
|
29
|
-
agentName;
|
|
30
|
-
agentDescription;
|
|
31
|
-
instructionBlocks = [];
|
|
32
|
-
contextDocs = [];
|
|
33
|
-
temp;
|
|
34
|
-
maxTokenCount;
|
|
35
|
-
params;
|
|
36
|
-
choice;
|
|
37
|
-
turns;
|
|
38
|
-
requestHook;
|
|
39
|
-
schema;
|
|
40
|
-
approvalOptions;
|
|
41
|
-
guardrailPolicies = [];
|
|
42
|
-
skillInstructionBlocks = [];
|
|
43
|
-
observerRegistrations = [];
|
|
44
|
-
dynamicContextRegistrations = [];
|
|
45
|
-
dynamicToolRegistrations = [];
|
|
46
|
-
middlewareRegistrations = [];
|
|
47
|
-
memoryRegistration;
|
|
48
|
-
eventStoreRegistration;
|
|
49
|
-
activeToolSet = new ToolSet();
|
|
50
|
-
providerToolDefs = [];
|
|
51
|
-
name(name) {
|
|
52
|
-
this.agentName = name;
|
|
53
|
-
return this;
|
|
54
|
-
}
|
|
55
|
-
description(description) {
|
|
56
|
-
this.agentDescription = description;
|
|
57
|
-
return this;
|
|
58
|
-
}
|
|
59
|
-
instructions(instructions) {
|
|
60
|
-
if (instructions.length > 0) {
|
|
61
|
-
this.instructionBlocks.push(instructions);
|
|
62
|
-
}
|
|
63
|
-
return this;
|
|
64
|
-
}
|
|
65
|
-
context(text, id = `static_doc_${this.contextDocs.length}`) {
|
|
66
|
-
this.contextDocs.push({ id, text });
|
|
67
|
-
return this;
|
|
68
|
-
}
|
|
69
|
-
dynamicContext(index, options) {
|
|
70
|
-
this.dynamicContextRegistrations.push({ index, options });
|
|
71
|
-
return this;
|
|
72
|
-
}
|
|
73
|
-
dynamicTools(index, options) {
|
|
74
|
-
this.dynamicToolRegistrations.push({ index, options });
|
|
75
|
-
return this;
|
|
76
|
-
}
|
|
77
|
-
tool(tool) {
|
|
78
|
-
if (isProviderTool(tool)) {
|
|
79
|
-
this.providerToolDefs.push(tool);
|
|
80
|
-
} else {
|
|
81
|
-
this.activeToolSet.addTool(tool);
|
|
82
|
-
}
|
|
83
|
-
return this;
|
|
84
|
-
}
|
|
85
|
-
tools(tools) {
|
|
86
|
-
for (const tool of tools) {
|
|
87
|
-
this.tool(tool);
|
|
88
|
-
}
|
|
89
|
-
return this;
|
|
90
|
-
}
|
|
91
|
-
mcp(servers) {
|
|
92
|
-
for (const server of servers) {
|
|
93
|
-
this.activeToolSet.addTools(server.tools);
|
|
94
|
-
}
|
|
95
|
-
return this;
|
|
96
|
-
}
|
|
97
|
-
skills(skillSet) {
|
|
98
|
-
if (skillSet.instructions.length > 0) {
|
|
99
|
-
this.skillInstructionBlocks.push(skillSet.instructions);
|
|
100
|
-
}
|
|
101
|
-
this.activeToolSet.addTools(skillSet.tools);
|
|
102
|
-
return this;
|
|
103
|
-
}
|
|
104
|
-
useToolSet(toolSet) {
|
|
105
|
-
toolSet.addTools(this.activeToolSet);
|
|
106
|
-
this.activeToolSet = toolSet;
|
|
107
|
-
return this;
|
|
108
|
-
}
|
|
109
|
-
temperature(temperature) {
|
|
110
|
-
this.temp = temperature;
|
|
111
|
-
return this;
|
|
112
|
-
}
|
|
113
|
-
maxTokens(maxTokens) {
|
|
114
|
-
this.maxTokenCount = maxTokens;
|
|
115
|
-
return this;
|
|
116
|
-
}
|
|
117
|
-
additionalParams(params) {
|
|
118
|
-
this.params = params;
|
|
119
|
-
return this;
|
|
120
|
-
}
|
|
121
|
-
toolChoice(toolChoice) {
|
|
122
|
-
this.choice = toolChoice;
|
|
123
|
-
return this;
|
|
124
|
-
}
|
|
125
|
-
defaultMaxTurns(defaultMaxTurns) {
|
|
126
|
-
this.turns = defaultMaxTurns;
|
|
127
|
-
return this;
|
|
128
|
-
}
|
|
129
|
-
hook(hook) {
|
|
130
|
-
this.requestHook = hook;
|
|
131
|
-
return this;
|
|
132
|
-
}
|
|
133
|
-
middleware(middleware) {
|
|
134
|
-
this.middlewareRegistrations.push(middleware);
|
|
135
|
-
return this;
|
|
136
|
-
}
|
|
137
|
-
middlewares(middlewares) {
|
|
138
|
-
this.middlewareRegistrations.push(...middlewares);
|
|
139
|
-
return this;
|
|
140
|
-
}
|
|
141
|
-
observe(observer, options = {}) {
|
|
142
|
-
this.observerRegistrations.push({
|
|
143
|
-
observer,
|
|
144
|
-
failOnObserverError: options.failOnObserverError
|
|
145
|
-
});
|
|
146
|
-
return this;
|
|
147
|
-
}
|
|
148
|
-
approvals(options) {
|
|
149
|
-
this.approvalOptions = options;
|
|
150
|
-
return this;
|
|
151
|
-
}
|
|
152
|
-
guardrails(policies) {
|
|
153
|
-
this.guardrailPolicies = appendGuardrailPolicies(this.guardrailPolicies, policies);
|
|
154
|
-
return this;
|
|
155
|
-
}
|
|
156
|
-
memory(store, options = {}) {
|
|
157
|
-
const resolvedOptions = resolveMemoryOptions(options);
|
|
158
|
-
if (resolvedOptions.compaction !== void 0 && store.compaction === void 0) {
|
|
159
|
-
throw new TypeError(
|
|
160
|
-
"Memory compaction requires a store with the optional compaction capability."
|
|
161
|
-
);
|
|
162
|
-
}
|
|
163
|
-
this.memoryRegistration = {
|
|
164
|
-
store,
|
|
165
|
-
options: resolvedOptions
|
|
166
|
-
};
|
|
167
|
-
return this;
|
|
168
|
-
}
|
|
169
|
-
eventStore(store, options = {}) {
|
|
170
|
-
this.eventStoreRegistration = {
|
|
171
|
-
store,
|
|
172
|
-
options: {
|
|
173
|
-
include: options.include ?? "all"
|
|
174
|
-
}
|
|
175
|
-
};
|
|
176
|
-
return this;
|
|
177
|
-
}
|
|
178
|
-
outputSchema(schema) {
|
|
179
|
-
this.schema = toProviderJsonSchema(schema);
|
|
180
|
-
return this;
|
|
181
|
-
}
|
|
182
|
-
build() {
|
|
183
|
-
return new Agent({
|
|
184
|
-
id: this.agentId,
|
|
185
|
-
name: this.agentName,
|
|
186
|
-
description: this.agentDescription,
|
|
187
|
-
model: this.completionModel,
|
|
188
|
-
instructions: this.buildInstructions(),
|
|
189
|
-
staticContext: this.contextDocs,
|
|
190
|
-
temperature: this.temp,
|
|
191
|
-
maxTokens: this.maxTokenCount,
|
|
192
|
-
additionalParams: this.params,
|
|
193
|
-
toolSet: this.activeToolSet,
|
|
194
|
-
providerTools: this.providerToolDefs,
|
|
195
|
-
toolChoice: this.choice,
|
|
196
|
-
defaultMaxTurns: this.turns,
|
|
197
|
-
hook: this.requestHook,
|
|
198
|
-
outputSchema: this.schema,
|
|
199
|
-
observers: this.observerRegistrations,
|
|
200
|
-
approvals: this.approvalOptions,
|
|
201
|
-
guardrails: this.guardrailPolicies,
|
|
202
|
-
dynamicContexts: this.dynamicContextRegistrations,
|
|
203
|
-
dynamicTools: this.dynamicToolRegistrations,
|
|
204
|
-
middlewares: this.middlewareRegistrations,
|
|
205
|
-
memory: this.memoryRegistration,
|
|
206
|
-
eventStore: this.eventStoreRegistration
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
buildInstructions() {
|
|
210
|
-
const parts = [...this.instructionBlocks, ...this.skillInstructionBlocks].filter(
|
|
211
|
-
(part) => part !== void 0 && part.length > 0
|
|
212
|
-
);
|
|
213
|
-
return parts.length === 0 ? void 0 : parts.join("\n\n");
|
|
214
|
-
}
|
|
215
|
-
};
|
|
216
|
-
|
|
217
|
-
export {
|
|
218
|
-
AgentBuilder
|
|
219
|
-
};
|
|
220
|
-
//# sourceMappingURL=chunk-JI5YZWNT.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/agent/builder.ts"],"sourcesContent":["import {\n type CompletionModel,\n type Document,\n isProviderTool,\n type JsonObject,\n type JsonValue,\n type ProviderTool,\n type ToolChoice,\n} from \"../completion\";\nimport type { GuardrailPolicy, GuardrailPolicyInput } from \"../guardrails\";\nimport { appendGuardrailPolicies } from \"../guardrails\";\nimport type { PromptHook } from \"../hooks\";\nimport type { McpServer } from \"../mcp\";\nimport { resolveMemoryOptions } from \"../memory/options\";\nimport type { MemoryOptions, MemoryRegistration, MemoryStore } from \"../memory/types\";\nimport type { AgentObserver, AgentObserverRegistration, ObserveOptions } from \"../observability\";\nimport { toProviderJsonSchema, type ZodSchema } from \"../schema/zod-schema\";\nimport type { SkillSet } from \"../skills\";\nimport type { ToolSearchDocument } from \"../tool/dynamic-tools\";\nimport type { AgentMiddleware } from \"../tool/middleware\";\nimport type { AnyTool, ToolApprovalsOptions } from \"../tool/tool\";\nimport { ToolSet } from \"../tool/tool-set\";\nimport type { VectorSearchIndex } from \"../vector-store\";\nimport { Agent } from \"./agent\";\nimport { normalizeAgentId } from \"./ids\";\nimport type {\n AgentEventStore,\n AgentEventStoreOptions,\n AgentEventStoreRegistration,\n DynamicContextOptions,\n DynamicContextRegistration,\n DynamicToolOptions,\n DynamicToolRegistration,\n} from \"./types\";\n\nexport class AgentBuilder<M extends CompletionModel = CompletionModel> {\n private readonly agentId: string;\n private agentName: string | undefined;\n private agentDescription: string | undefined;\n private instructionBlocks: string[] = [];\n private contextDocs: Document[] = [];\n private temp: number | undefined;\n private maxTokenCount: number | undefined;\n private params: JsonValue | undefined;\n private choice: ToolChoice | undefined;\n private turns: number | undefined;\n private requestHook: PromptHook | undefined;\n private schema: JsonObject | undefined;\n private approvalOptions: ToolApprovalsOptions | undefined;\n private guardrailPolicies: GuardrailPolicy[] = [];\n private skillInstructionBlocks: string[] = [];\n private observerRegistrations: AgentObserverRegistration[] = [];\n private dynamicContextRegistrations: DynamicContextRegistration[] = [];\n private dynamicToolRegistrations: DynamicToolRegistration[] = [];\n private middlewareRegistrations: AgentMiddleware[] = [];\n private memoryRegistration: MemoryRegistration | undefined;\n private eventStoreRegistration: AgentEventStoreRegistration | undefined;\n private activeToolSet = new ToolSet();\n private providerToolDefs: ProviderTool[] = [];\n\n constructor(\n agentId: string,\n private readonly completionModel: M,\n ) {\n this.agentId = normalizeAgentId(agentId);\n }\n\n name(name: string): this {\n this.agentName = name;\n return this;\n }\n\n description(description: string): this {\n this.agentDescription = description;\n return this;\n }\n\n instructions(instructions: string): this {\n if (instructions.length > 0) {\n this.instructionBlocks.push(instructions);\n }\n return this;\n }\n\n context(text: string, id = `static_doc_${this.contextDocs.length}`): this {\n this.contextDocs.push({ id, text });\n return this;\n }\n\n dynamicContext<T>(index: VectorSearchIndex<T>, options: DynamicContextOptions<T>): this {\n this.dynamicContextRegistrations.push({ index, options } as DynamicContextRegistration);\n return this;\n }\n\n dynamicTools(index: VectorSearchIndex<ToolSearchDocument>, options: DynamicToolOptions): this {\n this.dynamicToolRegistrations.push({ index, options });\n return this;\n }\n\n tool(tool: AnyTool | ProviderTool): this {\n if (isProviderTool(tool)) {\n this.providerToolDefs.push(tool);\n } else {\n this.activeToolSet.addTool(tool);\n }\n return this;\n }\n\n tools(tools: Array<AnyTool | ProviderTool>): this {\n for (const tool of tools) {\n this.tool(tool);\n }\n return this;\n }\n\n mcp(servers: McpServer[]): this {\n for (const server of servers) {\n this.activeToolSet.addTools(server.tools);\n }\n return this;\n }\n\n skills(skillSet: SkillSet): this {\n if (skillSet.instructions.length > 0) {\n this.skillInstructionBlocks.push(skillSet.instructions);\n }\n this.activeToolSet.addTools(skillSet.tools);\n return this;\n }\n\n useToolSet(toolSet: ToolSet): this {\n toolSet.addTools(this.activeToolSet);\n this.activeToolSet = toolSet;\n return this;\n }\n\n temperature(temperature: number): this {\n this.temp = temperature;\n return this;\n }\n\n maxTokens(maxTokens: number): this {\n this.maxTokenCount = maxTokens;\n return this;\n }\n\n additionalParams(params: JsonValue): this {\n this.params = params;\n return this;\n }\n\n toolChoice(toolChoice: ToolChoice): this {\n this.choice = toolChoice;\n return this;\n }\n\n defaultMaxTurns(defaultMaxTurns: number): this {\n this.turns = defaultMaxTurns;\n return this;\n }\n\n hook(hook: PromptHook): this {\n this.requestHook = hook;\n return this;\n }\n\n middleware(middleware: AgentMiddleware): this {\n this.middlewareRegistrations.push(middleware);\n return this;\n }\n\n middlewares(middlewares: AgentMiddleware[]): this {\n this.middlewareRegistrations.push(...middlewares);\n return this;\n }\n\n observe(observer: AgentObserver, options: ObserveOptions = {}): this {\n this.observerRegistrations.push({\n observer,\n failOnObserverError: options.failOnObserverError,\n });\n return this;\n }\n\n approvals(options: ToolApprovalsOptions): this {\n this.approvalOptions = options;\n return this;\n }\n\n guardrails(policies: GuardrailPolicyInput): this {\n this.guardrailPolicies = appendGuardrailPolicies(this.guardrailPolicies, policies);\n return this;\n }\n\n memory(store: MemoryStore, options: MemoryOptions = {}): this {\n const resolvedOptions = resolveMemoryOptions(options);\n if (resolvedOptions.compaction !== undefined && store.compaction === undefined) {\n throw new TypeError(\n \"Memory compaction requires a store with the optional compaction capability.\",\n );\n }\n this.memoryRegistration = {\n store,\n options: resolvedOptions,\n };\n return this;\n }\n\n eventStore(store: AgentEventStore, options: AgentEventStoreOptions = {}): this {\n this.eventStoreRegistration = {\n store,\n options: {\n include: options.include ?? \"all\",\n },\n };\n return this;\n }\n\n outputSchema(schema: ZodSchema): this {\n this.schema = toProviderJsonSchema(schema);\n return this;\n }\n\n build(): Agent<M> {\n return new Agent({\n id: this.agentId,\n name: this.agentName,\n description: this.agentDescription,\n model: this.completionModel,\n instructions: this.buildInstructions(),\n staticContext: this.contextDocs,\n temperature: this.temp,\n maxTokens: this.maxTokenCount,\n additionalParams: this.params,\n toolSet: this.activeToolSet,\n providerTools: this.providerToolDefs,\n toolChoice: this.choice,\n defaultMaxTurns: this.turns,\n hook: this.requestHook,\n outputSchema: this.schema,\n observers: this.observerRegistrations,\n approvals: this.approvalOptions,\n guardrails: this.guardrailPolicies,\n dynamicContexts: this.dynamicContextRegistrations,\n dynamicTools: this.dynamicToolRegistrations,\n middlewares: this.middlewareRegistrations,\n memory: this.memoryRegistration,\n eventStore: this.eventStoreRegistration,\n });\n }\n\n private buildInstructions(): string | undefined {\n const parts = [...this.instructionBlocks, ...this.skillInstructionBlocks].filter(\n (part): part is string => part !== undefined && part.length > 0,\n );\n return parts.length === 0 ? undefined : parts.join(\"\\n\\n\");\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/chunk-MC3CCKEB.js
DELETED
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Message,
|
|
3
|
-
assertCompletionRequestSupported,
|
|
4
|
-
isProviderTool,
|
|
5
|
-
textFromAssistantContent
|
|
6
|
-
} from "./chunk-ADH7NNCS.js";
|
|
7
|
-
import {
|
|
8
|
-
toProviderJsonSchema
|
|
9
|
-
} from "./chunk-WQKHFADH.js";
|
|
10
|
-
|
|
11
|
-
// src/completion/create-completion.ts
|
|
12
|
-
function createCompletion(model, options) {
|
|
13
|
-
return sendCompletion(model, options);
|
|
14
|
-
}
|
|
15
|
-
function createCompletionStream(model, options) {
|
|
16
|
-
const request = toCompletionRequest(options);
|
|
17
|
-
if (!isStreamingCompletionModel(model) || !model.capabilities.streaming) {
|
|
18
|
-
throw new Error("This completion model does not support streaming");
|
|
19
|
-
}
|
|
20
|
-
assertCompletionRequestSupported(model, request, { streaming: true });
|
|
21
|
-
return model.streamCompletion(request);
|
|
22
|
-
}
|
|
23
|
-
async function createParsedCompletion(model, options) {
|
|
24
|
-
const { schema, ...completionOptions } = options;
|
|
25
|
-
const request = toCompletionRequest(
|
|
26
|
-
{
|
|
27
|
-
...completionOptions,
|
|
28
|
-
outputSchema: toProviderJsonSchema(schema)
|
|
29
|
-
},
|
|
30
|
-
"createParsedCompletion"
|
|
31
|
-
);
|
|
32
|
-
assertCompletionRequestSupported(model, request);
|
|
33
|
-
const response = await model.completion(request);
|
|
34
|
-
const text = textFromAssistantContent(response.choice);
|
|
35
|
-
return {
|
|
36
|
-
data: parseCompletionData(text, schema),
|
|
37
|
-
text,
|
|
38
|
-
content: response.choice,
|
|
39
|
-
usage: response.usage,
|
|
40
|
-
response
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
async function sendCompletion(model, options) {
|
|
44
|
-
const request = toCompletionRequest(options);
|
|
45
|
-
assertCompletionRequestSupported(model, request);
|
|
46
|
-
const response = await model.completion(request);
|
|
47
|
-
return {
|
|
48
|
-
text: textFromAssistantContent(response.choice),
|
|
49
|
-
content: response.choice,
|
|
50
|
-
usage: response.usage,
|
|
51
|
-
response
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
function toCompletionRequest(options, helperName = "createCompletion") {
|
|
55
|
-
const chatHistory = [
|
|
56
|
-
...messagesFromMessages(options.messages),
|
|
57
|
-
...messagesFromInput(options.input)
|
|
58
|
-
];
|
|
59
|
-
if (chatHistory.length === 0) {
|
|
60
|
-
throw new Error(`${helperName} requires input or messages.`);
|
|
61
|
-
}
|
|
62
|
-
const configuredTools = options.tools ?? [];
|
|
63
|
-
const request = {
|
|
64
|
-
chatHistory,
|
|
65
|
-
documents: [...options.documents ?? []],
|
|
66
|
-
tools: configuredTools.filter((tool) => !isProviderTool(tool))
|
|
67
|
-
};
|
|
68
|
-
const providerTools = configuredTools.filter(isProviderTool);
|
|
69
|
-
if (providerTools.length > 0) request.providerTools = providerTools;
|
|
70
|
-
if (options.instructions !== void 0 && options.instructions.length > 0) {
|
|
71
|
-
request.instructions = options.instructions;
|
|
72
|
-
}
|
|
73
|
-
if (options.temperature !== void 0) request.temperature = options.temperature;
|
|
74
|
-
if (options.maxTokens !== void 0) request.maxTokens = options.maxTokens;
|
|
75
|
-
if (options.toolChoice !== void 0) request.toolChoice = options.toolChoice;
|
|
76
|
-
if (options.outputSchema !== void 0) request.outputSchema = options.outputSchema;
|
|
77
|
-
if (options.params !== void 0) request.additionalParams = options.params;
|
|
78
|
-
return request;
|
|
79
|
-
}
|
|
80
|
-
function messagesFromInput(input) {
|
|
81
|
-
if (input === void 0) {
|
|
82
|
-
return [];
|
|
83
|
-
}
|
|
84
|
-
if (typeof input === "string") {
|
|
85
|
-
return [Message.user(input)];
|
|
86
|
-
}
|
|
87
|
-
if (Array.isArray(input)) {
|
|
88
|
-
return normalizeMessageArray(input, "input");
|
|
89
|
-
}
|
|
90
|
-
if (!isCoreMessage(input)) {
|
|
91
|
-
throw new TypeError("input must be a string, Message, or Message[].");
|
|
92
|
-
}
|
|
93
|
-
return [input];
|
|
94
|
-
}
|
|
95
|
-
function messagesFromMessages(messages) {
|
|
96
|
-
return messages === void 0 ? [] : normalizeMessageArray(messages, "messages");
|
|
97
|
-
}
|
|
98
|
-
function normalizeMessageArray(messages, fieldName) {
|
|
99
|
-
if (!messages.every(isCoreMessage)) {
|
|
100
|
-
throw new TypeError(`${fieldName} must contain only Message values.`);
|
|
101
|
-
}
|
|
102
|
-
return [...messages];
|
|
103
|
-
}
|
|
104
|
-
function isCoreMessage(value) {
|
|
105
|
-
if (!isRecord(value)) {
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
if (value.role === "system") {
|
|
109
|
-
return typeof value.content === "string";
|
|
110
|
-
}
|
|
111
|
-
if (value.role === "user") {
|
|
112
|
-
return Array.isArray(value.content) && value.content.every(isUserContent);
|
|
113
|
-
}
|
|
114
|
-
if (value.role === "assistant") {
|
|
115
|
-
return (value.id === void 0 || typeof value.id === "string") && Array.isArray(value.content) && value.content.every(isAssistantContent);
|
|
116
|
-
}
|
|
117
|
-
if (value.role === "tool") {
|
|
118
|
-
return Array.isArray(value.content) && value.content.every(isToolContent);
|
|
119
|
-
}
|
|
120
|
-
return false;
|
|
121
|
-
}
|
|
122
|
-
function isUserContent(value) {
|
|
123
|
-
if (!isRecord(value)) {
|
|
124
|
-
return false;
|
|
125
|
-
}
|
|
126
|
-
if (value.type === "text") {
|
|
127
|
-
return typeof value.text === "string";
|
|
128
|
-
}
|
|
129
|
-
if (value.type === "image") {
|
|
130
|
-
return isImageContent(value);
|
|
131
|
-
}
|
|
132
|
-
if (value.type === "document") {
|
|
133
|
-
return isDocumentContent(value);
|
|
134
|
-
}
|
|
135
|
-
return false;
|
|
136
|
-
}
|
|
137
|
-
function isAssistantContent(value) {
|
|
138
|
-
if (!isRecord(value)) {
|
|
139
|
-
return false;
|
|
140
|
-
}
|
|
141
|
-
if (value.type === "text") {
|
|
142
|
-
return typeof value.text === "string";
|
|
143
|
-
}
|
|
144
|
-
if (value.type === "reasoning") {
|
|
145
|
-
return typeof value.text === "string" && (value.id === void 0 || typeof value.id === "string") && (value.content === void 0 || Array.isArray(value.content));
|
|
146
|
-
}
|
|
147
|
-
if (value.type === "tool_call") {
|
|
148
|
-
return typeof value.id === "string" && (value.callId === void 0 || typeof value.callId === "string") && isRecord(value.function) && typeof value.function.name === "string" && "arguments" in value.function;
|
|
149
|
-
}
|
|
150
|
-
if (value.type === "image") {
|
|
151
|
-
return isImageContent(value);
|
|
152
|
-
}
|
|
153
|
-
return false;
|
|
154
|
-
}
|
|
155
|
-
function isToolContent(value) {
|
|
156
|
-
return isRecord(value) && value.type === "tool_result" && typeof value.id === "string" && (value.callId === void 0 || typeof value.callId === "string") && (value.toolName === void 0 || typeof value.toolName === "string") && Array.isArray(value.content) && value.content.every(isToolResultContent);
|
|
157
|
-
}
|
|
158
|
-
function isToolResultContent(value) {
|
|
159
|
-
if (!isRecord(value)) {
|
|
160
|
-
return false;
|
|
161
|
-
}
|
|
162
|
-
if (value.type === "text") {
|
|
163
|
-
return typeof value.text === "string";
|
|
164
|
-
}
|
|
165
|
-
if (value.type === "image") {
|
|
166
|
-
return typeof value.data === "string" && (value.mediaType === void 0 || typeof value.mediaType === "string");
|
|
167
|
-
}
|
|
168
|
-
return false;
|
|
169
|
-
}
|
|
170
|
-
function isImageContent(value) {
|
|
171
|
-
if (!isRecord(value.source)) {
|
|
172
|
-
return false;
|
|
173
|
-
}
|
|
174
|
-
if (value.source.type === "url") {
|
|
175
|
-
return typeof value.source.url === "string";
|
|
176
|
-
}
|
|
177
|
-
if (value.source.type === "base64") {
|
|
178
|
-
return typeof value.source.data === "string" && typeof value.source.mediaType === "string";
|
|
179
|
-
}
|
|
180
|
-
return false;
|
|
181
|
-
}
|
|
182
|
-
function isDocumentContent(value) {
|
|
183
|
-
if (!isRecord(value.source)) {
|
|
184
|
-
return false;
|
|
185
|
-
}
|
|
186
|
-
if (value.source.type === "url") {
|
|
187
|
-
return typeof value.source.url === "string" && typeof value.source.mediaType === "string";
|
|
188
|
-
}
|
|
189
|
-
if (value.source.type === "base64") {
|
|
190
|
-
return typeof value.source.data === "string" && typeof value.source.mediaType === "string";
|
|
191
|
-
}
|
|
192
|
-
if (value.source.type === "text") {
|
|
193
|
-
return typeof value.source.text === "string" && (value.source.mediaType === void 0 || typeof value.source.mediaType === "string");
|
|
194
|
-
}
|
|
195
|
-
return false;
|
|
196
|
-
}
|
|
197
|
-
function isRecord(value) {
|
|
198
|
-
return typeof value === "object" && value !== null;
|
|
199
|
-
}
|
|
200
|
-
function isStreamingCompletionModel(model) {
|
|
201
|
-
return typeof model.streamCompletion === "function";
|
|
202
|
-
}
|
|
203
|
-
function parseCompletionData(text, schema) {
|
|
204
|
-
let json;
|
|
205
|
-
try {
|
|
206
|
-
json = JSON.parse(text);
|
|
207
|
-
} catch (error) {
|
|
208
|
-
throw new Error("createParsedCompletion expected the model response to be valid JSON.", {
|
|
209
|
-
cause: error
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
return schema.parse(json);
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
export {
|
|
216
|
-
createCompletion,
|
|
217
|
-
createCompletionStream,
|
|
218
|
-
createParsedCompletion,
|
|
219
|
-
isStreamingCompletionModel
|
|
220
|
-
};
|
|
221
|
-
//# sourceMappingURL=chunk-MC3CCKEB.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/completion/create-completion.ts"],"sourcesContent":["import { toProviderJsonSchema, type ZodSchema } from \"../schema/zod-schema\";\nimport type {\n AssistantContent,\n CompletionModel,\n CompletionRequest,\n CompletionResponse,\n CompletionStreamEvent,\n CompletionTool,\n Document,\n JsonObject,\n JsonValue,\n Message as MessageType,\n StreamingCompletionModel,\n ToolChoice,\n ToolDefinition,\n Usage,\n} from \"./types\";\nimport {\n assertCompletionRequestSupported,\n isProviderTool,\n Message,\n textFromAssistantContent,\n} from \"./types\";\n\nexport type CreateCompletionInput = string | MessageType | MessageType[];\n\nexport type CreateCompletionBaseOptions = {\n input?: CreateCompletionInput | undefined;\n messages?: MessageType[] | undefined;\n instructions?: string | undefined;\n documents?: Document[] | undefined;\n tools?: CompletionTool[] | undefined;\n temperature?: number | undefined;\n maxTokens?: number | undefined;\n toolChoice?: ToolChoice | undefined;\n outputSchema?: JsonObject | undefined;\n params?: JsonValue | undefined;\n};\n\nexport type CreateCompletionOptions = CreateCompletionBaseOptions;\n\nexport type CreateCompletionStreamOptions = CreateCompletionBaseOptions;\n\nexport type CreateParsedCompletionOptions<T> = Omit<CreateCompletionBaseOptions, \"outputSchema\"> & {\n schema: ZodSchema<T>;\n};\n\nexport type CreateCompletionResult<RawResponse = unknown> = {\n text: string;\n content: AssistantContent[];\n usage: Usage;\n response: CompletionResponse<RawResponse>;\n};\n\nexport type CreateParsedCompletionResult<\n T,\n RawResponse = unknown,\n> = CreateCompletionResult<RawResponse> & {\n data: T;\n};\n\ntype RawResponseOf<Model> =\n Model extends CompletionModel<infer RawResponse, infer _ModelName> ? RawResponse : unknown;\n\nexport function createCompletion<Model extends CompletionModel>(\n model: Model,\n options: CreateCompletionOptions,\n): Promise<CreateCompletionResult<RawResponseOf<Model>>> {\n return sendCompletion(model, options);\n}\n\nexport function createCompletionStream<Model extends StreamingCompletionModel>(\n model: Model,\n options: CreateCompletionStreamOptions,\n): AsyncIterable<CompletionStreamEvent<RawResponseOf<Model>>> {\n const request = toCompletionRequest(options);\n if (!isStreamingCompletionModel(model) || !model.capabilities.streaming) {\n throw new Error(\"This completion model does not support streaming\");\n }\n assertCompletionRequestSupported(model, request, { streaming: true });\n return model.streamCompletion(request) as AsyncIterable<\n CompletionStreamEvent<RawResponseOf<Model>>\n >;\n}\n\nexport async function createParsedCompletion<T, Model extends CompletionModel>(\n model: Model,\n options: CreateParsedCompletionOptions<T>,\n): Promise<CreateParsedCompletionResult<T, RawResponseOf<Model>>> {\n const { schema, ...completionOptions } = options;\n const request = toCompletionRequest(\n {\n ...completionOptions,\n outputSchema: toProviderJsonSchema(schema),\n },\n \"createParsedCompletion\",\n );\n assertCompletionRequestSupported(model, request);\n const response = (await model.completion(request)) as CompletionResponse<RawResponseOf<Model>>;\n const text = textFromAssistantContent(response.choice);\n return {\n data: parseCompletionData(text, schema),\n text,\n content: response.choice,\n usage: response.usage,\n response,\n };\n}\n\nasync function sendCompletion<Model extends CompletionModel>(\n model: Model,\n options: CreateCompletionOptions,\n): Promise<CreateCompletionResult<RawResponseOf<Model>>> {\n const request = toCompletionRequest(options);\n assertCompletionRequestSupported(model, request);\n const response = (await model.completion(request)) as CompletionResponse<RawResponseOf<Model>>;\n return {\n text: textFromAssistantContent(response.choice),\n content: response.choice,\n usage: response.usage,\n response,\n };\n}\n\nfunction toCompletionRequest(\n options: CreateCompletionBaseOptions,\n helperName = \"createCompletion\",\n): CompletionRequest {\n const chatHistory = [\n ...messagesFromMessages(options.messages),\n ...messagesFromInput(options.input),\n ];\n\n if (chatHistory.length === 0) {\n throw new Error(`${helperName} requires input or messages.`);\n }\n\n const configuredTools = options.tools ?? [];\n const request: CompletionRequest = {\n chatHistory,\n documents: [...(options.documents ?? [])],\n tools: configuredTools.filter((tool): tool is ToolDefinition => !isProviderTool(tool)),\n };\n const providerTools = configuredTools.filter(isProviderTool);\n if (providerTools.length > 0) request.providerTools = providerTools;\n\n if (options.instructions !== undefined && options.instructions.length > 0) {\n request.instructions = options.instructions;\n }\n if (options.temperature !== undefined) request.temperature = options.temperature;\n if (options.maxTokens !== undefined) request.maxTokens = options.maxTokens;\n if (options.toolChoice !== undefined) request.toolChoice = options.toolChoice;\n if (options.outputSchema !== undefined) request.outputSchema = options.outputSchema;\n if (options.params !== undefined) request.additionalParams = options.params;\n\n return request;\n}\n\nfunction messagesFromInput(input: CreateCompletionInput | undefined): MessageType[] {\n if (input === undefined) {\n return [];\n }\n if (typeof input === \"string\") {\n return [Message.user(input)];\n }\n if (Array.isArray(input)) {\n return normalizeMessageArray(input, \"input\");\n }\n if (!isCoreMessage(input)) {\n throw new TypeError(\"input must be a string, Message, or Message[].\");\n }\n return [input];\n}\n\nfunction messagesFromMessages(messages: MessageType[] | undefined): MessageType[] {\n return messages === undefined ? [] : normalizeMessageArray(messages, \"messages\");\n}\n\nfunction normalizeMessageArray(\n messages: MessageType[],\n fieldName: \"input\" | \"messages\",\n): MessageType[] {\n if (!messages.every(isCoreMessage)) {\n throw new TypeError(`${fieldName} must contain only Message values.`);\n }\n\n return [...messages];\n}\n\nfunction isCoreMessage(value: unknown): value is MessageType {\n if (!isRecord(value)) {\n return false;\n }\n\n if (value.role === \"system\") {\n return typeof value.content === \"string\";\n }\n\n if (value.role === \"user\") {\n return Array.isArray(value.content) && value.content.every(isUserContent);\n }\n\n if (value.role === \"assistant\") {\n return (\n (value.id === undefined || typeof value.id === \"string\") &&\n Array.isArray(value.content) &&\n value.content.every(isAssistantContent)\n );\n }\n\n if (value.role === \"tool\") {\n return Array.isArray(value.content) && value.content.every(isToolContent);\n }\n\n return false;\n}\n\nfunction isUserContent(value: unknown): boolean {\n if (!isRecord(value)) {\n return false;\n }\n\n if (value.type === \"text\") {\n return typeof value.text === \"string\";\n }\n\n if (value.type === \"image\") {\n return isImageContent(value);\n }\n\n if (value.type === \"document\") {\n return isDocumentContent(value);\n }\n\n return false;\n}\n\nfunction isAssistantContent(value: unknown): boolean {\n if (!isRecord(value)) {\n return false;\n }\n\n if (value.type === \"text\") {\n return typeof value.text === \"string\";\n }\n\n if (value.type === \"reasoning\") {\n return (\n typeof value.text === \"string\" &&\n (value.id === undefined || typeof value.id === \"string\") &&\n (value.content === undefined || Array.isArray(value.content))\n );\n }\n\n if (value.type === \"tool_call\") {\n return (\n typeof value.id === \"string\" &&\n (value.callId === undefined || typeof value.callId === \"string\") &&\n isRecord(value.function) &&\n typeof value.function.name === \"string\" &&\n \"arguments\" in value.function\n );\n }\n\n if (value.type === \"image\") {\n return isImageContent(value);\n }\n\n return false;\n}\n\nfunction isToolContent(value: unknown): boolean {\n return (\n isRecord(value) &&\n value.type === \"tool_result\" &&\n typeof value.id === \"string\" &&\n (value.callId === undefined || typeof value.callId === \"string\") &&\n (value.toolName === undefined || typeof value.toolName === \"string\") &&\n Array.isArray(value.content) &&\n value.content.every(isToolResultContent)\n );\n}\n\nfunction isToolResultContent(value: unknown): boolean {\n if (!isRecord(value)) {\n return false;\n }\n\n if (value.type === \"text\") {\n return typeof value.text === \"string\";\n }\n\n if (value.type === \"image\") {\n return (\n typeof value.data === \"string\" &&\n (value.mediaType === undefined || typeof value.mediaType === \"string\")\n );\n }\n\n return false;\n}\n\nfunction isImageContent(value: Record<string, unknown>): boolean {\n if (!isRecord(value.source)) {\n return false;\n }\n\n if (value.source.type === \"url\") {\n return typeof value.source.url === \"string\";\n }\n\n if (value.source.type === \"base64\") {\n return typeof value.source.data === \"string\" && typeof value.source.mediaType === \"string\";\n }\n\n return false;\n}\n\nfunction isDocumentContent(value: Record<string, unknown>): boolean {\n if (!isRecord(value.source)) {\n return false;\n }\n\n if (value.source.type === \"url\") {\n return typeof value.source.url === \"string\" && typeof value.source.mediaType === \"string\";\n }\n\n if (value.source.type === \"base64\") {\n return typeof value.source.data === \"string\" && typeof value.source.mediaType === \"string\";\n }\n\n if (value.source.type === \"text\") {\n return (\n typeof value.source.text === \"string\" &&\n (value.source.mediaType === undefined || typeof value.source.mediaType === \"string\")\n );\n }\n\n return false;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n\nexport function isStreamingCompletionModel(\n model: CompletionModel,\n): model is StreamingCompletionModel {\n return typeof (model as { streamCompletion?: unknown }).streamCompletion === \"function\";\n}\n\nfunction parseCompletionData<T>(text: string, schema: ZodSchema<T>): T {\n let json: unknown;\n try {\n json = JSON.parse(text);\n } catch (error) {\n throw new Error(\"createParsedCompletion expected the model response to be valid JSON.\", {\n cause: error,\n });\n }\n\n return schema.parse(json);\n}\n"],"mappings":";;;;;;;;;;;AAgEO,SAAS,iBACd,OACA,SACuD;AACvD,SAAO,eAAe,OAAO,OAAO;AACtC;AAEO,SAAS,uBACd,OACA,SAC4D;AAC5D,QAAM,UAAU,oBAAoB,OAAO;AAC3C,MAAI,CAAC,2BAA2B,KAAK,KAAK,CAAC,MAAM,aAAa,WAAW;AACvE,UAAM,IAAI,MAAM,kDAAkD;AAAA,EACpE;AACA,mCAAiC,OAAO,SAAS,EAAE,WAAW,KAAK,CAAC;AACpE,SAAO,MAAM,iBAAiB,OAAO;AAGvC;AAEA,eAAsB,uBACpB,OACA,SACgE;AAChE,QAAM,EAAE,QAAQ,GAAG,kBAAkB,IAAI;AACzC,QAAM,UAAU;AAAA,IACd;AAAA,MACE,GAAG;AAAA,MACH,cAAc,qBAAqB,MAAM;AAAA,IAC3C;AAAA,IACA;AAAA,EACF;AACA,mCAAiC,OAAO,OAAO;AAC/C,QAAM,WAAY,MAAM,MAAM,WAAW,OAAO;AAChD,QAAM,OAAO,yBAAyB,SAAS,MAAM;AACrD,SAAO;AAAA,IACL,MAAM,oBAAoB,MAAM,MAAM;AAAA,IACtC;AAAA,IACA,SAAS,SAAS;AAAA,IAClB,OAAO,SAAS;AAAA,IAChB;AAAA,EACF;AACF;AAEA,eAAe,eACb,OACA,SACuD;AACvD,QAAM,UAAU,oBAAoB,OAAO;AAC3C,mCAAiC,OAAO,OAAO;AAC/C,QAAM,WAAY,MAAM,MAAM,WAAW,OAAO;AAChD,SAAO;AAAA,IACL,MAAM,yBAAyB,SAAS,MAAM;AAAA,IAC9C,SAAS,SAAS;AAAA,IAClB,OAAO,SAAS;AAAA,IAChB;AAAA,EACF;AACF;AAEA,SAAS,oBACP,SACA,aAAa,oBACM;AACnB,QAAM,cAAc;AAAA,IAClB,GAAG,qBAAqB,QAAQ,QAAQ;AAAA,IACxC,GAAG,kBAAkB,QAAQ,KAAK;AAAA,EACpC;AAEA,MAAI,YAAY,WAAW,GAAG;AAC5B,UAAM,IAAI,MAAM,GAAG,UAAU,8BAA8B;AAAA,EAC7D;AAEA,QAAM,kBAAkB,QAAQ,SAAS,CAAC;AAC1C,QAAM,UAA6B;AAAA,IACjC;AAAA,IACA,WAAW,CAAC,GAAI,QAAQ,aAAa,CAAC,CAAE;AAAA,IACxC,OAAO,gBAAgB,OAAO,CAAC,SAAiC,CAAC,eAAe,IAAI,CAAC;AAAA,EACvF;AACA,QAAM,gBAAgB,gBAAgB,OAAO,cAAc;AAC3D,MAAI,cAAc,SAAS,EAAG,SAAQ,gBAAgB;AAEtD,MAAI,QAAQ,iBAAiB,UAAa,QAAQ,aAAa,SAAS,GAAG;AACzE,YAAQ,eAAe,QAAQ;AAAA,EACjC;AACA,MAAI,QAAQ,gBAAgB,OAAW,SAAQ,cAAc,QAAQ;AACrE,MAAI,QAAQ,cAAc,OAAW,SAAQ,YAAY,QAAQ;AACjE,MAAI,QAAQ,eAAe,OAAW,SAAQ,aAAa,QAAQ;AACnE,MAAI,QAAQ,iBAAiB,OAAW,SAAQ,eAAe,QAAQ;AACvE,MAAI,QAAQ,WAAW,OAAW,SAAQ,mBAAmB,QAAQ;AAErE,SAAO;AACT;AAEA,SAAS,kBAAkB,OAAyD;AAClF,MAAI,UAAU,QAAW;AACvB,WAAO,CAAC;AAAA,EACV;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,CAAC,QAAQ,KAAK,KAAK,CAAC;AAAA,EAC7B;AACA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,sBAAsB,OAAO,OAAO;AAAA,EAC7C;AACA,MAAI,CAAC,cAAc,KAAK,GAAG;AACzB,UAAM,IAAI,UAAU,gDAAgD;AAAA,EACtE;AACA,SAAO,CAAC,KAAK;AACf;AAEA,SAAS,qBAAqB,UAAoD;AAChF,SAAO,aAAa,SAAY,CAAC,IAAI,sBAAsB,UAAU,UAAU;AACjF;AAEA,SAAS,sBACP,UACA,WACe;AACf,MAAI,CAAC,SAAS,MAAM,aAAa,GAAG;AAClC,UAAM,IAAI,UAAU,GAAG,SAAS,oCAAoC;AAAA,EACtE;AAEA,SAAO,CAAC,GAAG,QAAQ;AACrB;AAEA,SAAS,cAAc,OAAsC;AAC3D,MAAI,CAAC,SAAS,KAAK,GAAG;AACpB,WAAO;AAAA,EACT;AAEA,MAAI,MAAM,SAAS,UAAU;AAC3B,WAAO,OAAO,MAAM,YAAY;AAAA,EAClC;AAEA,MAAI,MAAM,SAAS,QAAQ;AACzB,WAAO,MAAM,QAAQ,MAAM,OAAO,KAAK,MAAM,QAAQ,MAAM,aAAa;AAAA,EAC1E;AAEA,MAAI,MAAM,SAAS,aAAa;AAC9B,YACG,MAAM,OAAO,UAAa,OAAO,MAAM,OAAO,aAC/C,MAAM,QAAQ,MAAM,OAAO,KAC3B,MAAM,QAAQ,MAAM,kBAAkB;AAAA,EAE1C;AAEA,MAAI,MAAM,SAAS,QAAQ;AACzB,WAAO,MAAM,QAAQ,MAAM,OAAO,KAAK,MAAM,QAAQ,MAAM,aAAa;AAAA,EAC1E;AAEA,SAAO;AACT;AAEA,SAAS,cAAc,OAAyB;AAC9C,MAAI,CAAC,SAAS,KAAK,GAAG;AACpB,WAAO;AAAA,EACT;AAEA,MAAI,MAAM,SAAS,QAAQ;AACzB,WAAO,OAAO,MAAM,SAAS;AAAA,EAC/B;AAEA,MAAI,MAAM,SAAS,SAAS;AAC1B,WAAO,eAAe,KAAK;AAAA,EAC7B;AAEA,MAAI,MAAM,SAAS,YAAY;AAC7B,WAAO,kBAAkB,KAAK;AAAA,EAChC;AAEA,SAAO;AACT;AAEA,SAAS,mBAAmB,OAAyB;AACnD,MAAI,CAAC,SAAS,KAAK,GAAG;AACpB,WAAO;AAAA,EACT;AAEA,MAAI,MAAM,SAAS,QAAQ;AACzB,WAAO,OAAO,MAAM,SAAS;AAAA,EAC/B;AAEA,MAAI,MAAM,SAAS,aAAa;AAC9B,WACE,OAAO,MAAM,SAAS,aACrB,MAAM,OAAO,UAAa,OAAO,MAAM,OAAO,cAC9C,MAAM,YAAY,UAAa,MAAM,QAAQ,MAAM,OAAO;AAAA,EAE/D;AAEA,MAAI,MAAM,SAAS,aAAa;AAC9B,WACE,OAAO,MAAM,OAAO,aACnB,MAAM,WAAW,UAAa,OAAO,MAAM,WAAW,aACvD,SAAS,MAAM,QAAQ,KACvB,OAAO,MAAM,SAAS,SAAS,YAC/B,eAAe,MAAM;AAAA,EAEzB;AAEA,MAAI,MAAM,SAAS,SAAS;AAC1B,WAAO,eAAe,KAAK;AAAA,EAC7B;AAEA,SAAO;AACT;AAEA,SAAS,cAAc,OAAyB;AAC9C,SACE,SAAS,KAAK,KACd,MAAM,SAAS,iBACf,OAAO,MAAM,OAAO,aACnB,MAAM,WAAW,UAAa,OAAO,MAAM,WAAW,cACtD,MAAM,aAAa,UAAa,OAAO,MAAM,aAAa,aAC3D,MAAM,QAAQ,MAAM,OAAO,KAC3B,MAAM,QAAQ,MAAM,mBAAmB;AAE3C;AAEA,SAAS,oBAAoB,OAAyB;AACpD,MAAI,CAAC,SAAS,KAAK,GAAG;AACpB,WAAO;AAAA,EACT;AAEA,MAAI,MAAM,SAAS,QAAQ;AACzB,WAAO,OAAO,MAAM,SAAS;AAAA,EAC/B;AAEA,MAAI,MAAM,SAAS,SAAS;AAC1B,WACE,OAAO,MAAM,SAAS,aACrB,MAAM,cAAc,UAAa,OAAO,MAAM,cAAc;AAAA,EAEjE;AAEA,SAAO;AACT;AAEA,SAAS,eAAe,OAAyC;AAC/D,MAAI,CAAC,SAAS,MAAM,MAAM,GAAG;AAC3B,WAAO;AAAA,EACT;AAEA,MAAI,MAAM,OAAO,SAAS,OAAO;AAC/B,WAAO,OAAO,MAAM,OAAO,QAAQ;AAAA,EACrC;AAEA,MAAI,MAAM,OAAO,SAAS,UAAU;AAClC,WAAO,OAAO,MAAM,OAAO,SAAS,YAAY,OAAO,MAAM,OAAO,cAAc;AAAA,EACpF;AAEA,SAAO;AACT;AAEA,SAAS,kBAAkB,OAAyC;AAClE,MAAI,CAAC,SAAS,MAAM,MAAM,GAAG;AAC3B,WAAO;AAAA,EACT;AAEA,MAAI,MAAM,OAAO,SAAS,OAAO;AAC/B,WAAO,OAAO,MAAM,OAAO,QAAQ,YAAY,OAAO,MAAM,OAAO,cAAc;AAAA,EACnF;AAEA,MAAI,MAAM,OAAO,SAAS,UAAU;AAClC,WAAO,OAAO,MAAM,OAAO,SAAS,YAAY,OAAO,MAAM,OAAO,cAAc;AAAA,EACpF;AAEA,MAAI,MAAM,OAAO,SAAS,QAAQ;AAChC,WACE,OAAO,MAAM,OAAO,SAAS,aAC5B,MAAM,OAAO,cAAc,UAAa,OAAO,MAAM,OAAO,cAAc;AAAA,EAE/E;AAEA,SAAO;AACT;AAEA,SAAS,SAAS,OAAkD;AAClE,SAAO,OAAO,UAAU,YAAY,UAAU;AAChD;AAEO,SAAS,2BACd,OACmC;AACnC,SAAO,OAAQ,MAAyC,qBAAqB;AAC/E;AAEA,SAAS,oBAAuB,MAAc,QAAyB;AACrE,MAAI;AACJ,MAAI;AACF,WAAO,KAAK,MAAM,IAAI;AAAA,EACxB,SAAS,OAAO;AACd,UAAM,IAAI,MAAM,wEAAwE;AAAA,MACtF,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,SAAO,OAAO,MAAM,IAAI;AAC1B;","names":[]}
|