@anvia/core 0.26.0 → 1.0.0-rc.10

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.
Files changed (184) hide show
  1. package/README.md +400 -94
  2. package/dist/agent/index.d.ts +67 -71
  3. package/dist/agent/index.js +36 -18
  4. package/dist/agent/interactions/index.d.ts +122 -0
  5. package/dist/agent/interactions/index.js +20 -0
  6. package/dist/agent-DWzW9SoH.d.ts +150 -0
  7. package/dist/chunk-3RM57ZT2.js +31 -0
  8. package/dist/chunk-3RM57ZT2.js.map +1 -0
  9. package/dist/chunk-3RWESPUG.js +331 -0
  10. package/dist/chunk-3RWESPUG.js.map +1 -0
  11. package/dist/{chunk-NCPN4SJR.js → chunk-3SKZ2BKP.js} +15 -13
  12. package/dist/chunk-3SKZ2BKP.js.map +1 -0
  13. package/dist/chunk-3XQGVDU5.js +69 -0
  14. package/dist/chunk-3XQGVDU5.js.map +1 -0
  15. package/dist/{chunk-MRQLEK2B.js → chunk-5C6B6ZRH.js} +69 -51
  16. package/dist/chunk-5C6B6ZRH.js.map +1 -0
  17. package/dist/chunk-6BBOCFHV.js +323 -0
  18. package/dist/chunk-6BBOCFHV.js.map +1 -0
  19. package/dist/chunk-7JLAIN6E.js +15 -0
  20. package/dist/chunk-7JLAIN6E.js.map +1 -0
  21. package/dist/chunk-7PHMK7W4.js +1516 -0
  22. package/dist/chunk-7PHMK7W4.js.map +1 -0
  23. package/dist/{chunk-CWUJUSOS.js → chunk-AZB6N7P4.js} +94 -65
  24. package/dist/chunk-AZB6N7P4.js.map +1 -0
  25. package/dist/chunk-D4PACGPA.js +37 -0
  26. package/dist/chunk-D4PACGPA.js.map +1 -0
  27. package/dist/chunk-EFLT7XZD.js +51 -0
  28. package/dist/chunk-EFLT7XZD.js.map +1 -0
  29. package/dist/chunk-EMZKPRE6.js +667 -0
  30. package/dist/chunk-EMZKPRE6.js.map +1 -0
  31. package/dist/chunk-I3Q7XSBB.js +59 -0
  32. package/dist/chunk-I3Q7XSBB.js.map +1 -0
  33. package/dist/chunk-J6LVLV6P.js +13 -0
  34. package/dist/chunk-J6LVLV6P.js.map +1 -0
  35. package/dist/chunk-LTXABCOO.js +127 -0
  36. package/dist/chunk-LTXABCOO.js.map +1 -0
  37. package/dist/chunk-OJBFDBLG.js +164 -0
  38. package/dist/chunk-OJBFDBLG.js.map +1 -0
  39. package/dist/chunk-QGX73TSQ.js +177 -0
  40. package/dist/chunk-QGX73TSQ.js.map +1 -0
  41. package/dist/chunk-QOUPWOGW.js +29 -0
  42. package/dist/chunk-QOUPWOGW.js.map +1 -0
  43. package/dist/chunk-SJMSS5SI.js +171 -0
  44. package/dist/chunk-SJMSS5SI.js.map +1 -0
  45. package/dist/chunk-T2C3CGDQ.js +56 -0
  46. package/dist/chunk-T2C3CGDQ.js.map +1 -0
  47. package/dist/chunk-VX3HS6PE.js +4569 -0
  48. package/dist/chunk-VX3HS6PE.js.map +1 -0
  49. package/dist/chunk-X4LK4ODN.js +86 -0
  50. package/dist/chunk-X4LK4ODN.js.map +1 -0
  51. package/dist/chunk-ZA564323.js +331 -0
  52. package/dist/chunk-ZA564323.js.map +1 -0
  53. package/dist/completion/index.d.ts +6 -36
  54. package/dist/completion/index.js +34 -29
  55. package/dist/documents/index.d.ts +34 -0
  56. package/dist/documents/index.js +340 -0
  57. package/dist/documents/index.js.map +1 -0
  58. package/dist/dynamic-tools-aIZlg5x1.d.ts +45 -0
  59. package/dist/embeddings/index.d.ts +11 -9
  60. package/dist/embeddings/index.js +3 -4
  61. package/dist/evals/index.d.ts +57 -21
  62. package/dist/evals/index.js +209 -104
  63. package/dist/evals/index.js.map +1 -1
  64. package/dist/extractor/index.d.ts +27 -42
  65. package/dist/extractor/index.js +9 -22
  66. package/dist/guardrails/index.d.ts +7 -129
  67. package/dist/guardrails/index.js +1 -1
  68. package/dist/image-generation/index.d.ts +23 -23
  69. package/dist/image-generation/index.js +7 -39
  70. package/dist/image-generation/index.js.map +1 -1
  71. package/dist/index.d.ts +24 -22
  72. package/dist/index.js +85 -68
  73. package/dist/internal/agent.d.ts +156 -10
  74. package/dist/internal/agent.js +58 -18
  75. package/dist/internal/agent.js.map +1 -1
  76. package/dist/mcp/index.d.ts +7 -15
  77. package/dist/mcp/index.js +3 -348
  78. package/dist/mcp/index.js.map +1 -1
  79. package/dist/memory/index.d.ts +20 -6
  80. package/dist/memory/index.js +11 -10
  81. package/dist/middleware-kcF8AusP.d.ts +59 -0
  82. package/dist/model-call-options-CZkSw_xN.d.ts +6 -0
  83. package/dist/model-listing/index.d.ts +3 -1
  84. package/dist/observability/index.d.ts +23 -4
  85. package/dist/observability/index.js +10 -5
  86. package/dist/observability/index.js.map +1 -1
  87. package/dist/pipeline/index.d.ts +111 -73
  88. package/dist/pipeline/index.js +471 -286
  89. package/dist/pipeline/index.js.map +1 -1
  90. package/dist/provider-output-error-BEwDgVv3.d.ts +99 -0
  91. package/dist/retry-CjvSlKGW.d.ts +16 -0
  92. package/dist/skills/index.d.ts +5 -4
  93. package/dist/skills/index.js +8 -8
  94. package/dist/speech-generation/index.d.ts +37 -0
  95. package/dist/speech-generation/index.js +10 -0
  96. package/dist/streaming/index.js +37 -3
  97. package/dist/streaming/index.js.map +1 -1
  98. package/dist/text-ZLECpQE7.d.ts +32 -0
  99. package/dist/think-tool-BwCsJ365.d.ts +40 -0
  100. package/dist/tool/index.d.ts +11 -6
  101. package/dist/tool/index.js +21 -21
  102. package/dist/tool-BpqpoRSE.d.ts +58 -0
  103. package/dist/transcription/index.d.ts +29 -22
  104. package/dist/transcription/index.js +7 -57
  105. package/dist/transcription/index.js.map +1 -1
  106. package/dist/type-utils-CtHVDRn_.d.ts +6 -0
  107. package/dist/types-CXNE592e.d.ts +130 -0
  108. package/dist/types-Cr4uiYo5.d.ts +99 -0
  109. package/dist/{types-04LqWrmy.d.ts → types-DC1U1XwW.d.ts} +1 -1
  110. package/dist/types-DKOXVTcq.d.ts +155 -0
  111. package/dist/types-DgvozfPc.d.ts +349 -0
  112. package/dist/types-DhkodEft.d.ts +105 -0
  113. package/dist/types-DjqRHeAi.d.ts +31 -0
  114. package/dist/types-Sue2hb_L.d.ts +403 -0
  115. package/dist/vector-store/index.d.ts +34 -34
  116. package/dist/vector-store/index.js +10 -6
  117. package/package.json +22 -24
  118. package/dist/agent-x3YTyv5i.d.ts +0 -222
  119. package/dist/audio-generation/index.d.ts +0 -33
  120. package/dist/audio-generation/index.js +0 -42
  121. package/dist/audio-generation/index.js.map +0 -1
  122. package/dist/chunk-2ODTMRHP.js +0 -54
  123. package/dist/chunk-2ODTMRHP.js.map +0 -1
  124. package/dist/chunk-ADH7NNCS.js +0 -512
  125. package/dist/chunk-ADH7NNCS.js.map +0 -1
  126. package/dist/chunk-BALBBVI3.js +0 -2732
  127. package/dist/chunk-BALBBVI3.js.map +0 -1
  128. package/dist/chunk-CQNNSZPG.js +0 -9
  129. package/dist/chunk-CQNNSZPG.js.map +0 -1
  130. package/dist/chunk-CWUJUSOS.js.map +0 -1
  131. package/dist/chunk-DALYP4PX.js +0 -225
  132. package/dist/chunk-DALYP4PX.js.map +0 -1
  133. package/dist/chunk-HYUYZEAJ.js +0 -223
  134. package/dist/chunk-HYUYZEAJ.js.map +0 -1
  135. package/dist/chunk-I6XOQ4LK.js +0 -466
  136. package/dist/chunk-I6XOQ4LK.js.map +0 -1
  137. package/dist/chunk-JI5YZWNT.js +0 -220
  138. package/dist/chunk-JI5YZWNT.js.map +0 -1
  139. package/dist/chunk-MC3CCKEB.js +0 -221
  140. package/dist/chunk-MC3CCKEB.js.map +0 -1
  141. package/dist/chunk-MELYDKWQ.js +0 -337
  142. package/dist/chunk-MELYDKWQ.js.map +0 -1
  143. package/dist/chunk-MNWK2USR.js +0 -243
  144. package/dist/chunk-MNWK2USR.js.map +0 -1
  145. package/dist/chunk-MRQLEK2B.js.map +0 -1
  146. package/dist/chunk-NCPN4SJR.js.map +0 -1
  147. package/dist/chunk-OIMLU4SF.js +0 -20
  148. package/dist/chunk-OIMLU4SF.js.map +0 -1
  149. package/dist/chunk-Q25IWLBT.js +0 -138
  150. package/dist/chunk-Q25IWLBT.js.map +0 -1
  151. package/dist/chunk-UQX6EXWG.js +0 -33
  152. package/dist/chunk-UQX6EXWG.js.map +0 -1
  153. package/dist/chunk-WQKHFADH.js +0 -12
  154. package/dist/chunk-WQKHFADH.js.map +0 -1
  155. package/dist/chunk-XUUY2L2D.js +0 -42
  156. package/dist/chunk-XUUY2L2D.js.map +0 -1
  157. package/dist/chunk-XWUC7CIT.js +0 -1
  158. package/dist/chunk-XWUC7CIT.js.map +0 -1
  159. package/dist/chunk-YLMDBQO4.js +0 -141
  160. package/dist/chunk-YLMDBQO4.js.map +0 -1
  161. package/dist/errors-2moLDuuN.d.ts +0 -17
  162. package/dist/hooks/index.d.ts +0 -12
  163. package/dist/hooks/index.js +0 -17
  164. package/dist/index-BxSbmOMr.d.ts +0 -257
  165. package/dist/json-BVPssigK.d.ts +0 -39
  166. package/dist/loaders/index.d.ts +0 -91
  167. package/dist/loaders/index.js +0 -299
  168. package/dist/loaders/index.js.map +0 -1
  169. package/dist/middleware-Dp3d_pxi.d.ts +0 -90
  170. package/dist/request/index.d.ts +0 -28
  171. package/dist/request/index.js +0 -25
  172. package/dist/think-tool-DfCMuO8e.d.ts +0 -26
  173. package/dist/tool-Cohdv5GC.d.ts +0 -65
  174. package/dist/types-BCTRUGex.d.ts +0 -47
  175. package/dist/types-BrLbKnEz.d.ts +0 -119
  176. package/dist/types-D9JpeAPF.d.ts +0 -114
  177. package/dist/types-G12i56s2.d.ts +0 -354
  178. package/dist/types-JJCxRnaZ.d.ts +0 -70
  179. package/dist/types-O-abTIin.d.ts +0 -79
  180. package/dist/ui/index.d.ts +0 -107
  181. package/dist/ui/index.js +0 -10
  182. package/dist/ui/index.js.map +0 -1
  183. /package/dist/{hooks → agent/interactions}/index.js.map +0 -0
  184. /package/dist/{request → speech-generation}/index.js.map +0 -0
package/dist/mcp/index.js CHANGED
@@ -1,352 +1,7 @@
1
1
  import {
2
- isRecord
3
- } from "../chunk-CQNNSZPG.js";
4
-
5
- // src/mcp/result.ts
6
- function createCallToolParams(name, args) {
7
- if (args === null || args === void 0) {
8
- return { name };
9
- }
10
- if (!isRecord(args)) {
11
- throw new Error("MCP tool arguments must be a JSON object");
12
- }
13
- return { name, arguments: args };
14
- }
15
- function mapMcpToolResult(result) {
16
- if ("toolResult" in result) {
17
- return serializeMcpValue(result.toolResult);
18
- }
19
- if (result.isError === true) {
20
- throw new Error(mcpErrorMessage(result.content));
21
- }
22
- return result.content.map(mapMcpContent).join("");
23
- }
24
- function mcpErrorMessage(content) {
25
- const text = content.map((item) => item.type === "text" ? item.text : void 0).filter((item) => item !== void 0).join("\n");
26
- return text === "" ? "MCP tool returned an error" : text;
27
- }
28
- function mapMcpContent(content) {
29
- if (content.type === "text") {
30
- return content.text;
31
- }
32
- if (content.type === "image") {
33
- return `data:${content.mimeType};base64,${content.data}`;
34
- }
35
- if (content.type === "resource") {
36
- const mimeType = content.resource.mimeType === void 0 ? "" : `data:${content.resource.mimeType};`;
37
- if ("text" in content.resource) {
38
- return `${mimeType}${content.resource.uri}:${content.resource.text}`;
39
- }
40
- return `${mimeType}${content.resource.uri}:${content.resource.blob}`;
41
- }
42
- throw new Error(`Unsupported MCP tool result content: ${serializeMcpValue(content)}`);
43
- }
44
- function serializeMcpValue(value) {
45
- if (typeof value === "string") {
46
- return value;
47
- }
48
- const serialized = JSON.stringify(value);
49
- return serialized === void 0 ? String(value) : serialized;
50
- }
51
-
52
- // src/mcp/tool.ts
53
- var MCP_TOOL_METADATA_KEY = /* @__PURE__ */ Symbol.for("anvia.mcp.tool.metadata");
54
- function createMcpTool(definition, client, serverName) {
55
- const tool = {
56
- name: definition.name,
57
- definition() {
58
- return {
59
- name: definition.name,
60
- description: definition.description ?? "",
61
- parameters: definition.inputSchema
62
- };
63
- },
64
- async call(args) {
65
- const result = await client.callTool(createCallToolParams(definition.name, args));
66
- return mapMcpToolResult(result);
67
- }
68
- };
69
- if (serverName !== void 0) {
70
- Object.defineProperty(tool, MCP_TOOL_METADATA_KEY, {
71
- value: { serverName },
72
- enumerable: false
73
- });
74
- }
75
- return tool;
76
- }
77
-
78
- // src/mcp/connect.ts
79
- async function connectMcp(connection) {
80
- const client = await connection.connect();
81
- let tools;
82
- try {
83
- ({ tools } = await client.listTools());
84
- } catch (error) {
85
- try {
86
- await client.close();
87
- } catch {
88
- }
89
- throw error;
90
- }
91
- return {
92
- name: connection.name,
93
- tools: tools.map((tool) => createMcpTool(tool, client, connection.name)),
94
- close: () => client.close()
95
- };
96
- }
97
-
98
- // src/mcp/connections.ts
99
- import { readFileSync } from "fs";
100
- import { Client } from "@modelcontextprotocol/sdk/client/index.js";
101
- import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
102
- import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
103
- import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
104
-
105
- // src/mcp/url-safety.ts
106
- import { lookup } from "dns/promises";
107
- import { BlockList, isIP } from "net";
108
- import { Agent, Pool, fetch as undiciFetch } from "undici";
109
- var blockedIpv4Addresses = new BlockList();
110
- var blockedIpv6Addresses = new BlockList();
111
- for (const [network, prefix] of [
112
- ["0.0.0.0", 8],
113
- ["10.0.0.0", 8],
114
- ["100.64.0.0", 10],
115
- ["127.0.0.0", 8],
116
- ["169.254.0.0", 16],
117
- ["172.16.0.0", 12],
118
- ["192.0.0.0", 24],
119
- ["192.0.2.0", 24],
120
- ["192.88.99.0", 24],
121
- ["192.168.0.0", 16],
122
- ["198.18.0.0", 15],
123
- ["198.51.100.0", 24],
124
- ["203.0.113.0", 24],
125
- ["224.0.0.0", 4],
126
- ["240.0.0.0", 4]
127
- ]) {
128
- blockedIpv4Addresses.addSubnet(network, prefix, "ipv4");
129
- }
130
- for (const [network, prefix] of [
131
- ["::", 96],
132
- ["::ffff:0:0", 96],
133
- ["64:ff9b::", 96],
134
- ["64:ff9b:1::", 48],
135
- ["100::", 64],
136
- ["2001::", 32],
137
- ["2001:2::", 48],
138
- ["2001:10::", 28],
139
- ["2001:20::", 28],
140
- ["2001:db8::", 32],
141
- ["2002::", 16],
142
- ["fc00::", 7],
143
- ["fe80::", 10],
144
- ["fec0::", 10],
145
- ["ff00::", 8]
146
- ]) {
147
- blockedIpv6Addresses.addSubnet(network, prefix, "ipv6");
148
- }
149
- var defaultAddressResolver = (hostname) => lookup(hostname, { all: true, verbatim: true });
150
- function parseAndValidateMcpUrl(url) {
151
- let parsed;
152
- try {
153
- parsed = new URL(url);
154
- } catch {
155
- throw new Error(`Invalid MCP URL: ${url}`);
156
- }
157
- if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
158
- throw new Error(`MCP URL blocked: only HTTP(S) URLs are allowed (${parsed.protocol})`);
159
- }
160
- validateMcpHostname(parsed.hostname);
161
- return parsed;
162
- }
163
- async function resolveAndValidateMcpHostname(hostname, resolveAddresses = defaultAddressResolver) {
164
- const normalizedHostname = normalizeHostname(hostname);
165
- validateMcpHostname(normalizedHostname);
166
- const family = isIP(normalizedHostname);
167
- if (family !== 0) {
168
- return [{ address: normalizedHostname, family }];
169
- }
170
- let addresses;
171
- try {
172
- addresses = await resolveAddresses(normalizedHostname);
173
- } catch (cause) {
174
- throw new Error(`Unable to resolve MCP URL hostname (${normalizedHostname})`, { cause });
175
- }
176
- if (addresses.length === 0) {
177
- throw new Error(`Unable to resolve MCP URL hostname (${normalizedHostname})`);
178
- }
179
- for (const { address } of addresses) {
180
- validateMcpHostname(address);
181
- }
182
- return addresses;
183
- }
184
- function createSafeMcpLookup(resolveAddresses = defaultAddressResolver) {
185
- return (hostname, options, callback) => {
186
- void resolveAndValidateMcpHostname(hostname, resolveAddresses).then(
187
- (addresses) => {
188
- const requestedFamily = normalizeRequestedFamily(options.family);
189
- const matchingAddresses = requestedFamily === 0 ? addresses : addresses.filter(({ family }) => family === requestedFamily);
190
- if (matchingAddresses.length === 0) {
191
- const error = new Error(`No matching address family for MCP URL (${hostname})`);
192
- Object.assign(error, { code: "EAI_ADDRFAMILY" });
193
- callback(error, []);
194
- return;
195
- }
196
- if (options.all) {
197
- callback(null, matchingAddresses);
198
- return;
199
- }
200
- const address = matchingAddresses[0];
201
- if (!address) {
202
- callback(new Error(`Unable to resolve MCP URL hostname (${hostname})`), []);
203
- return;
204
- }
205
- callback(null, address.address, address.family);
206
- },
207
- (cause) => {
208
- callback(asError(cause), []);
209
- }
210
- );
211
- };
212
- }
213
- function createSafeMcpFetch() {
214
- return (url, init) => {
215
- parseAndValidateMcpUrl(url);
216
- return undiciFetch(url, {
217
- ...init,
218
- dispatcher: safeMcpDispatcher
219
- });
220
- };
221
- }
222
- function validateMcpHostname(hostname) {
223
- const normalizedHostname = normalizeHostname(hostname);
224
- if (normalizedHostname === "localhost" || normalizedHostname.endsWith(".localhost")) {
225
- throw new Error(`MCP URL blocked: localhost not allowed (${normalizedHostname})`);
226
- }
227
- const family = isIP(normalizedHostname);
228
- if (family === 0) {
229
- return;
230
- }
231
- if (family === 4 && normalizedHostname.startsWith("127.") || family === 6 && normalizedHostname === "::1") {
232
- throw new Error(`MCP URL blocked: localhost not allowed (${normalizedHostname})`);
233
- }
234
- if (normalizedHostname === "169.254.169.254" || normalizedHostname === "fd00:ec2::254") {
235
- throw new Error(`MCP URL blocked: cloud metadata endpoint not allowed (${normalizedHostname})`);
236
- }
237
- if (family === 4 && blockedIpv4Addresses.check(normalizedHostname, "ipv4") || family === 6 && blockedIpv6Addresses.check(normalizedHostname, "ipv6")) {
238
- const range = family === 4 ? "IP" : "IPv6";
239
- throw new Error(`MCP URL blocked: private ${range} range not allowed (${normalizedHostname})`);
240
- }
241
- }
242
- function normalizeHostname(hostname) {
243
- const withoutBrackets = hostname.startsWith("[") && hostname.endsWith("]") ? hostname.slice(1, -1) : hostname;
244
- return withoutBrackets.toLowerCase().replace(/\.+$/, "");
245
- }
246
- function normalizeRequestedFamily(family) {
247
- if (family === 4 || family === "IPv4") {
248
- return 4;
249
- }
250
- if (family === 6 || family === "IPv6") {
251
- return 6;
252
- }
253
- return 0;
254
- }
255
- function asError(cause) {
256
- return cause instanceof Error ? cause : new Error(String(cause));
257
- }
258
- var safeMcpDispatcher = new Agent({
259
- autoSelectFamily: true,
260
- connect: {
261
- lookup: createSafeMcpLookup()
262
- },
263
- factory(origin, options) {
264
- parseAndValidateMcpUrl(origin);
265
- return new Pool(origin, options);
266
- }
267
- });
268
-
269
- // src/mcp/connections.ts
270
- var CORE_CLIENT_VERSION = readCorePackageVersion();
271
- var mcp = {
272
- stdio(options) {
273
- return {
274
- name: options.name,
275
- async connect() {
276
- const { name: _name, ...server } = options;
277
- const client = createSdkClient();
278
- await client.connect(asSdkTransport(new StdioClientTransport(server)));
279
- return client;
280
- }
281
- };
282
- },
283
- http(options) {
284
- return {
285
- name: options.name,
286
- async connect() {
287
- assertNoCustomMcpFetch(options.transport?.fetch);
288
- const url = parseAndValidateMcpUrl(options.url);
289
- const client = createSdkClient();
290
- await client.connect(
291
- asSdkTransport(
292
- new StreamableHTTPClientTransport(url, {
293
- ...options.transport,
294
- fetch: createSafeMcpFetch()
295
- })
296
- )
297
- );
298
- return client;
299
- }
300
- };
301
- },
302
- sse(options) {
303
- return {
304
- name: options.name,
305
- async connect() {
306
- assertNoCustomMcpFetch(options.transport?.fetch);
307
- const url = parseAndValidateMcpUrl(options.url);
308
- const client = createSdkClient();
309
- await client.connect(
310
- asSdkTransport(
311
- new SSEClientTransport(url, {
312
- ...options.transport,
313
- fetch: createSafeMcpFetch()
314
- })
315
- )
316
- );
317
- return client;
318
- }
319
- };
320
- }
321
- };
322
- function assertNoCustomMcpFetch(fetch) {
323
- if (fetch !== void 0) {
324
- throw new Error(
325
- "Custom MCP transport fetch implementations are not allowed because they can bypass SSRF protection"
326
- );
327
- }
328
- }
329
- function createSdkClient() {
330
- return new Client({
331
- name: "@anvia/core",
332
- version: CORE_CLIENT_VERSION
333
- });
334
- }
335
- function readCorePackageVersion() {
336
- try {
337
- const packageJson = JSON.parse(
338
- readFileSync(new URL("../../package.json", import.meta.url), "utf8")
339
- );
340
- return typeof packageJson.version === "string" ? packageJson.version : "0.0.0";
341
- } catch {
342
- return "0.0.0";
343
- }
344
- }
345
- function asSdkTransport(transport) {
346
- return transport;
347
- }
2
+ isMcpTool
3
+ } from "../chunk-J6LVLV6P.js";
348
4
  export {
349
- connectMcp,
350
- mcp
5
+ isMcpTool
351
6
  };
352
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mcp/result.ts","../../src/mcp/tool.ts","../../src/mcp/connect.ts","../../src/mcp/connections.ts","../../src/mcp/url-safety.ts"],"sourcesContent":["import { isRecord } from \"../internal/record\";\nimport type { McpToolCallContent, McpToolCallResult } from \"./types\";\n\nexport function createCallToolParams(\n name: string,\n args: unknown,\n): { name: string; arguments?: Record<string, unknown> } {\n if (args === null || args === undefined) {\n return { name };\n }\n\n if (!isRecord(args)) {\n throw new Error(\"MCP tool arguments must be a JSON object\");\n }\n\n return { name, arguments: args };\n}\n\nexport function mapMcpToolResult(result: McpToolCallResult): string {\n if (\"toolResult\" in result) {\n return serializeMcpValue(result.toolResult);\n }\n\n if (result.isError === true) {\n throw new Error(mcpErrorMessage(result.content));\n }\n\n return result.content.map(mapMcpContent).join(\"\");\n}\n\nfunction mcpErrorMessage(content: McpToolCallContent[]): string {\n const text = content\n .map((item) => (item.type === \"text\" ? item.text : undefined))\n .filter((item): item is string => item !== undefined)\n .join(\"\\n\");\n\n return text === \"\" ? \"MCP tool returned an error\" : text;\n}\n\nfunction mapMcpContent(content: McpToolCallContent): string {\n if (content.type === \"text\") {\n return content.text;\n }\n\n if (content.type === \"image\") {\n return `data:${content.mimeType};base64,${content.data}`;\n }\n\n if (content.type === \"resource\") {\n const mimeType =\n content.resource.mimeType === undefined ? \"\" : `data:${content.resource.mimeType};`;\n if (\"text\" in content.resource) {\n return `${mimeType}${content.resource.uri}:${content.resource.text}`;\n }\n\n return `${mimeType}${content.resource.uri}:${content.resource.blob}`;\n }\n\n throw new Error(`Unsupported MCP tool result content: ${serializeMcpValue(content)}`);\n}\n\nfunction serializeMcpValue(value: unknown): string {\n if (typeof value === \"string\") {\n return value;\n }\n\n const serialized = JSON.stringify(value);\n return serialized === undefined ? String(value) : serialized;\n}\n","import type { ToolDefinition } from \"../completion/index\";\nimport type { Tool } from \"../tool/index\";\nimport { createCallToolParams, mapMcpToolResult } from \"./result\";\nimport type { McpClient, McpToolDefinition } from \"./types\";\n\nconst MCP_TOOL_METADATA_KEY = Symbol.for(\"anvia.mcp.tool.metadata\");\n\nexport function createMcpTool(\n definition: McpToolDefinition,\n client: McpClient,\n serverName?: string,\n): Tool {\n const tool: Tool = {\n name: definition.name,\n definition(): ToolDefinition {\n return {\n name: definition.name,\n description: definition.description ?? \"\",\n parameters: definition.inputSchema,\n };\n },\n async call(args): Promise<string> {\n const result = await client.callTool(createCallToolParams(definition.name, args));\n return mapMcpToolResult(result);\n },\n };\n if (serverName !== undefined) {\n Object.defineProperty(tool, MCP_TOOL_METADATA_KEY, {\n value: { serverName },\n enumerable: false,\n });\n }\n return tool;\n}\n","import { createMcpTool } from \"./tool\";\nimport type { McpConnection, McpServer } from \"./types\";\n\nexport async function connectMcp(connection: McpConnection): Promise<McpServer> {\n const client = await connection.connect();\n let tools: Awaited<ReturnType<typeof client.listTools>>[\"tools\"];\n try {\n ({ tools } = await client.listTools());\n } catch (error) {\n try {\n await client.close();\n } catch {\n // Preserve the initialization failure so callers see the actionable MCP error.\n }\n throw error;\n }\n\n return {\n name: connection.name,\n tools: tools.map((tool) => createMcpTool(tool, client, connection.name)),\n close: () => client.close(),\n };\n}\n","import { readFileSync } from \"node:fs\";\nimport { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { SSEClientTransport } from \"@modelcontextprotocol/sdk/client/sse.js\";\nimport { StdioClientTransport } from \"@modelcontextprotocol/sdk/client/stdio.js\";\nimport { StreamableHTTPClientTransport } from \"@modelcontextprotocol/sdk/client/streamableHttp.js\";\nimport type {\n McpClient,\n McpConnection,\n McpHttpOptions,\n McpSseOptions,\n McpStdioOptions,\n} from \"./types\";\nimport { createSafeMcpFetch, parseAndValidateMcpUrl } from \"./url-safety\";\n\nconst CORE_CLIENT_VERSION = readCorePackageVersion();\n\nexport const mcp = {\n stdio(options: McpStdioOptions): McpConnection {\n return {\n name: options.name,\n async connect(): Promise<McpClient> {\n const { name: _name, ...server } = options;\n const client = createSdkClient();\n await client.connect(asSdkTransport(new StdioClientTransport(server)));\n return client as McpClient;\n },\n };\n },\n\n http(options: McpHttpOptions): McpConnection {\n return {\n name: options.name,\n async connect(): Promise<McpClient> {\n assertNoCustomMcpFetch(options.transport?.fetch);\n const url = parseAndValidateMcpUrl(options.url);\n const client = createSdkClient();\n await client.connect(\n asSdkTransport(\n new StreamableHTTPClientTransport(url, {\n ...options.transport,\n fetch: createSafeMcpFetch(),\n }),\n ),\n );\n return client as McpClient;\n },\n };\n },\n\n sse(options: McpSseOptions): McpConnection {\n return {\n name: options.name,\n async connect(): Promise<McpClient> {\n assertNoCustomMcpFetch(options.transport?.fetch);\n const url = parseAndValidateMcpUrl(options.url);\n const client = createSdkClient();\n await client.connect(\n asSdkTransport(\n new SSEClientTransport(url, {\n ...options.transport,\n fetch: createSafeMcpFetch(),\n }),\n ),\n );\n return client as McpClient;\n },\n };\n },\n};\n\nfunction assertNoCustomMcpFetch(fetch: unknown): void {\n if (fetch !== undefined) {\n throw new Error(\n \"Custom MCP transport fetch implementations are not allowed because they can bypass SSRF protection\",\n );\n }\n}\n\nfunction createSdkClient(): Client {\n return new Client({\n name: \"@anvia/core\",\n version: CORE_CLIENT_VERSION,\n });\n}\n\nfunction readCorePackageVersion(): string {\n try {\n const packageJson = JSON.parse(\n readFileSync(new URL(\"../../package.json\", import.meta.url), \"utf8\"),\n ) as { version?: unknown };\n return typeof packageJson.version === \"string\" ? packageJson.version : \"0.0.0\";\n } catch {\n return \"0.0.0\";\n }\n}\n\nfunction asSdkTransport(transport: unknown): Parameters<Client[\"connect\"]>[0] {\n return transport as Parameters<Client[\"connect\"]>[0];\n}\n","import type { LookupAddress } from \"node:dns\";\nimport { lookup } from \"node:dns/promises\";\nimport type { LookupFunction } from \"node:net\";\nimport { BlockList, isIP } from \"node:net\";\nimport type { StreamableHTTPClientTransportOptions } from \"@modelcontextprotocol/sdk/client/streamableHttp.js\";\nimport { Agent, Pool, fetch as undiciFetch } from \"undici\";\n\ntype FetchLike = NonNullable<StreamableHTTPClientTransportOptions[\"fetch\"]>;\n\nexport type McpAddressResolver = (hostname: string) => Promise<LookupAddress[]>;\n\nconst blockedIpv4Addresses = new BlockList();\nconst blockedIpv6Addresses = new BlockList();\n\nfor (const [network, prefix] of [\n [\"0.0.0.0\", 8],\n [\"10.0.0.0\", 8],\n [\"100.64.0.0\", 10],\n [\"127.0.0.0\", 8],\n [\"169.254.0.0\", 16],\n [\"172.16.0.0\", 12],\n [\"192.0.0.0\", 24],\n [\"192.0.2.0\", 24],\n [\"192.88.99.0\", 24],\n [\"192.168.0.0\", 16],\n [\"198.18.0.0\", 15],\n [\"198.51.100.0\", 24],\n [\"203.0.113.0\", 24],\n [\"224.0.0.0\", 4],\n [\"240.0.0.0\", 4],\n] as const) {\n blockedIpv4Addresses.addSubnet(network, prefix, \"ipv4\");\n}\n\nfor (const [network, prefix] of [\n [\"::\", 96],\n [\"::ffff:0:0\", 96],\n [\"64:ff9b::\", 96],\n [\"64:ff9b:1::\", 48],\n [\"100::\", 64],\n [\"2001::\", 32],\n [\"2001:2::\", 48],\n [\"2001:10::\", 28],\n [\"2001:20::\", 28],\n [\"2001:db8::\", 32],\n [\"2002::\", 16],\n [\"fc00::\", 7],\n [\"fe80::\", 10],\n [\"fec0::\", 10],\n [\"ff00::\", 8],\n] as const) {\n blockedIpv6Addresses.addSubnet(network, prefix, \"ipv6\");\n}\n\nconst defaultAddressResolver: McpAddressResolver = (hostname) =>\n lookup(hostname, { all: true, verbatim: true });\n\nexport function parseAndValidateMcpUrl(url: string | URL): URL {\n let parsed: URL;\n try {\n parsed = new URL(url);\n } catch {\n throw new Error(`Invalid MCP URL: ${url}`);\n }\n\n if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") {\n throw new Error(`MCP URL blocked: only HTTP(S) URLs are allowed (${parsed.protocol})`);\n }\n\n validateMcpHostname(parsed.hostname);\n return parsed;\n}\n\nexport async function resolveAndValidateMcpHostname(\n hostname: string,\n resolveAddresses: McpAddressResolver = defaultAddressResolver,\n): Promise<LookupAddress[]> {\n const normalizedHostname = normalizeHostname(hostname);\n validateMcpHostname(normalizedHostname);\n\n const family = isIP(normalizedHostname);\n if (family !== 0) {\n return [{ address: normalizedHostname, family }];\n }\n\n let addresses: LookupAddress[];\n try {\n addresses = await resolveAddresses(normalizedHostname);\n } catch (cause) {\n throw new Error(`Unable to resolve MCP URL hostname (${normalizedHostname})`, { cause });\n }\n\n if (addresses.length === 0) {\n throw new Error(`Unable to resolve MCP URL hostname (${normalizedHostname})`);\n }\n\n for (const { address } of addresses) {\n validateMcpHostname(address);\n }\n\n return addresses;\n}\n\nexport function createSafeMcpLookup(\n resolveAddresses: McpAddressResolver = defaultAddressResolver,\n): LookupFunction {\n return (hostname, options, callback) => {\n void resolveAndValidateMcpHostname(hostname, resolveAddresses).then(\n (addresses) => {\n const requestedFamily = normalizeRequestedFamily(options.family);\n const matchingAddresses =\n requestedFamily === 0\n ? addresses\n : addresses.filter(({ family }) => family === requestedFamily);\n\n if (matchingAddresses.length === 0) {\n const error = new Error(`No matching address family for MCP URL (${hostname})`);\n Object.assign(error, { code: \"EAI_ADDRFAMILY\" });\n callback(error, []);\n return;\n }\n\n if (options.all) {\n callback(null, matchingAddresses);\n return;\n }\n\n const address = matchingAddresses[0];\n if (!address) {\n callback(new Error(`Unable to resolve MCP URL hostname (${hostname})`), []);\n return;\n }\n callback(null, address.address, address.family);\n },\n (cause: unknown) => {\n callback(asError(cause), []);\n },\n );\n };\n}\n\nexport function createSafeMcpFetch(): FetchLike {\n return (url, init) => {\n parseAndValidateMcpUrl(url);\n return undiciFetch(url as Parameters<typeof undiciFetch>[0], {\n ...(init as Parameters<typeof undiciFetch>[1]),\n dispatcher: safeMcpDispatcher,\n }) as ReturnType<FetchLike>;\n };\n}\n\nfunction validateMcpHostname(hostname: string): void {\n const normalizedHostname = normalizeHostname(hostname);\n\n if (normalizedHostname === \"localhost\" || normalizedHostname.endsWith(\".localhost\")) {\n throw new Error(`MCP URL blocked: localhost not allowed (${normalizedHostname})`);\n }\n\n const family = isIP(normalizedHostname);\n if (family === 0) {\n return;\n }\n\n if (\n (family === 4 && normalizedHostname.startsWith(\"127.\")) ||\n (family === 6 && normalizedHostname === \"::1\")\n ) {\n throw new Error(`MCP URL blocked: localhost not allowed (${normalizedHostname})`);\n }\n\n if (normalizedHostname === \"169.254.169.254\" || normalizedHostname === \"fd00:ec2::254\") {\n throw new Error(`MCP URL blocked: cloud metadata endpoint not allowed (${normalizedHostname})`);\n }\n\n if (\n (family === 4 && blockedIpv4Addresses.check(normalizedHostname, \"ipv4\")) ||\n (family === 6 && blockedIpv6Addresses.check(normalizedHostname, \"ipv6\"))\n ) {\n const range = family === 4 ? \"IP\" : \"IPv6\";\n throw new Error(`MCP URL blocked: private ${range} range not allowed (${normalizedHostname})`);\n }\n}\n\nfunction normalizeHostname(hostname: string): string {\n const withoutBrackets =\n hostname.startsWith(\"[\") && hostname.endsWith(\"]\") ? hostname.slice(1, -1) : hostname;\n return withoutBrackets.toLowerCase().replace(/\\.+$/, \"\");\n}\n\nfunction normalizeRequestedFamily(family: number | string | undefined): 0 | 4 | 6 {\n if (family === 4 || family === \"IPv4\") {\n return 4;\n }\n if (family === 6 || family === \"IPv6\") {\n return 6;\n }\n return 0;\n}\n\nfunction asError(cause: unknown): Error {\n return cause instanceof Error ? cause : new Error(String(cause));\n}\n\nconst safeMcpDispatcher = new Agent({\n autoSelectFamily: true,\n connect: {\n lookup: createSafeMcpLookup(),\n },\n factory(origin, options) {\n parseAndValidateMcpUrl(origin);\n return new Pool(origin, options as Pool.Options);\n },\n});\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,8 +1,22 @@
1
- export { M as MemoryCompactionConflictError, a as MemoryCompactionError, c as createSummaryMemoryCompactor, i as isMemoryCompactionSummary } from '../errors-2moLDuuN.js';
2
- import { n as MemoryOptions, o as ResolvedMemoryOptions } from '../types-BrLbKnEz.js';
3
- export { p as MemoryAppendInput, M as MemoryCompactionCommitInput, a as MemoryCompactionCommitResult, b as MemoryCompactionOptions, c as MemoryCompactionSnapshot, d as MemoryCompactionStore, e as MemoryCompactor, f as MemoryCompactorInput, g as MemoryCompactorResult, q as MemoryContext, h as MemoryConversation, i as MemoryConversationListOptions, j as MemoryConversationMessage, k as MemoryConversationSummary, r as MemoryErrorInput, l as MemoryInspector, s as MemoryRegistration, t as MemorySavePolicy, m as MemoryStore, R as ResolvedMemoryCompactionOptions, u as SessionOptions, S as SummaryMemoryCompactorOptions } from '../types-BrLbKnEz.js';
4
- import '../types-G12i56s2.js';
1
+ import { M as Message, U as Usage } from '../types-DgvozfPc.js';
2
+ import { a as CreateSummaryMemoryCompactorOptions, m as MemoryCompactor, f as MemoryCompactionMessage, C as CreateMemoryScopeKeyOptions } from '../types-DKOXVTcq.js';
3
+ export { M as MemoryAppendOptions, b as MemoryClearOptions, c as MemoryCompactionCapability, d as MemoryCompactionConflictRetryOptions, e as MemoryCompactionInfo, g as MemoryCompactionMetadata, h as MemoryCompactionOptions, i as MemoryCompactionReplacePrefixOptions, j as MemoryCompactionReplacePrefixResult, k as MemoryCompactionSnapshot, l as MemoryCompactionSnapshotOptions, n as MemoryCompactorInput, o as MemoryCompactorResult, p as MemoryConversation, q as MemoryConversationGetOptions, r as MemoryConversationListOptions, s as MemoryConversationMessage, t as MemoryConversationSummary, u as MemoryErrorOptions, v as MemoryInspector, w as MemoryLoadOptions, x as MemoryOptions, y as MemorySavePolicy, z as MemoryScope, A as MemoryScopeKeyOptions, B as MemoryScopeKeyResolver, D as MemoryStore } from '../types-DKOXVTcq.js';
4
+ import '../model-call-options-CZkSw_xN.js';
5
+ import '../retry-CjvSlKGW.js';
5
6
 
6
- declare function resolveMemoryOptions(options?: MemoryOptions): ResolvedMemoryOptions;
7
+ declare function createSummaryMemoryCompactor(options: CreateSummaryMemoryCompactorOptions): MemoryCompactor;
8
+ declare function isMemoryCompactionMessage(message: Message): message is MemoryCompactionMessage;
7
9
 
8
- export { MemoryOptions, ResolvedMemoryOptions, resolveMemoryOptions };
10
+ declare class MemoryCompactionError extends Error {
11
+ readonly usage: Usage | undefined;
12
+ constructor(message: string, options?: ErrorOptions & {
13
+ usage?: Usage | undefined;
14
+ });
15
+ }
16
+ declare class MemoryCompactionConflictError extends MemoryCompactionError {
17
+ constructor(attempts: number, usage?: Usage);
18
+ }
19
+
20
+ declare function createMemoryScopeKey(options: CreateMemoryScopeKeyOptions): string;
21
+
22
+ export { CreateMemoryScopeKeyOptions, CreateSummaryMemoryCompactorOptions, MemoryCompactionConflictError, MemoryCompactionError, MemoryCompactionMessage, MemoryCompactor, createMemoryScopeKey, createSummaryMemoryCompactor, isMemoryCompactionMessage };
@@ -1,21 +1,22 @@
1
- import "../chunk-XWUC7CIT.js";
2
1
  import {
3
- resolveMemoryOptions
4
- } from "../chunk-UQX6EXWG.js";
2
+ createMemoryScopeKey
3
+ } from "../chunk-QOUPWOGW.js";
5
4
  import {
6
5
  MemoryCompactionConflictError,
7
6
  MemoryCompactionError,
8
7
  createSummaryMemoryCompactor,
9
- isMemoryCompactionSummary
10
- } from "../chunk-MRQLEK2B.js";
11
- import "../chunk-MC3CCKEB.js";
12
- import "../chunk-ADH7NNCS.js";
13
- import "../chunk-WQKHFADH.js";
8
+ isMemoryCompactionMessage
9
+ } from "../chunk-5C6B6ZRH.js";
10
+ import "../chunk-7PHMK7W4.js";
11
+ import "../chunk-7JLAIN6E.js";
12
+ import "../chunk-QGX73TSQ.js";
13
+ import "../chunk-3XQGVDU5.js";
14
+ import "../chunk-3RWESPUG.js";
14
15
  export {
15
16
  MemoryCompactionConflictError,
16
17
  MemoryCompactionError,
18
+ createMemoryScopeKey,
17
19
  createSummaryMemoryCompactor,
18
- isMemoryCompactionSummary,
19
- resolveMemoryOptions
20
+ isMemoryCompactionMessage
20
21
  };
21
22
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,59 @@
1
+ import { f as CompletionRequest, g as CompletionResponse, p as JsonValue, y as ToolResultContentPart } from './types-DgvozfPc.js';
2
+ import { M as MaybePromise } from './type-utils-CtHVDRn_.js';
3
+
4
+ type CompletionRequestMiddlewareArgs = {
5
+ turn: number;
6
+ request: CompletionRequest;
7
+ originalRequest: CompletionRequest;
8
+ };
9
+ type CompletionRequestMiddlewareResult = {
10
+ request: CompletionRequest;
11
+ } | undefined;
12
+ type CompletionResponseMiddlewareArgs<RawResponse = unknown> = {
13
+ turn: number;
14
+ request: CompletionRequest;
15
+ response: CompletionResponse<RawResponse>;
16
+ originalResponse: CompletionResponse<RawResponse>;
17
+ };
18
+ type CompletionResponseMiddlewareResult<RawResponse = unknown> = {
19
+ response: CompletionResponse<RawResponse>;
20
+ } | undefined;
21
+ type ToolInputMiddlewareArgs = {
22
+ toolName: string;
23
+ args: string;
24
+ originalArgs: string;
25
+ turn: number;
26
+ toolCallId?: string | undefined;
27
+ internalCallId: string;
28
+ };
29
+ type ToolInputMiddlewareResult = {
30
+ args: JsonValue | string;
31
+ } | undefined;
32
+ type ToolResultMiddlewareArgs = {
33
+ toolName: string;
34
+ args: string;
35
+ result: string;
36
+ originalResult: string;
37
+ structuredResult?: readonly ToolResultContentPart[] | undefined;
38
+ originalStructuredResult?: readonly ToolResultContentPart[] | undefined;
39
+ turn: number;
40
+ toolCallId?: string | undefined;
41
+ internalCallId: string;
42
+ };
43
+ type ToolOutputMiddlewareArgs = ToolResultMiddlewareArgs;
44
+ type ToolOutputMiddlewareResult = string | Readonly<{
45
+ result: string;
46
+ structuredResult?: never;
47
+ }> | Readonly<{
48
+ structuredResult: readonly ToolResultContentPart[];
49
+ result?: never;
50
+ }> | undefined;
51
+ interface AgentMiddleware<RawResponse = unknown> {
52
+ onCompletionRequest?(args: CompletionRequestMiddlewareArgs): MaybePromise<CompletionRequestMiddlewareResult>;
53
+ onCompletionResponse?(args: CompletionResponseMiddlewareArgs<RawResponse>): MaybePromise<CompletionResponseMiddlewareResult<RawResponse>>;
54
+ onToolInput?(args: ToolInputMiddlewareArgs): MaybePromise<ToolInputMiddlewareResult>;
55
+ onToolOutput?(args: ToolOutputMiddlewareArgs): MaybePromise<ToolOutputMiddlewareResult>;
56
+ }
57
+ declare function createMiddleware<RawResponse = unknown>(middleware: AgentMiddleware<RawResponse>): AgentMiddleware<RawResponse>;
58
+
59
+ export { type AgentMiddleware as A, type CompletionRequestMiddlewareArgs as C, type ToolInputMiddlewareArgs as T, type CompletionRequestMiddlewareResult as a, type CompletionResponseMiddlewareArgs as b, type CompletionResponseMiddlewareResult as c, type ToolInputMiddlewareResult as d, type ToolOutputMiddlewareArgs as e, type ToolOutputMiddlewareResult as f, type ToolResultMiddlewareArgs as g, createMiddleware as h };
@@ -0,0 +1,6 @@
1
+ /** Options that control one provider model invocation without becoming request payload data. */
2
+ type ModelCallOptions = {
3
+ abortSignal?: AbortSignal | undefined;
4
+ };
5
+
6
+ export type { ModelCallOptions as M };
@@ -24,7 +24,9 @@ type ModelList = {
24
24
  data: ListedModel[];
25
25
  };
26
26
  interface ModelListingClient {
27
- listModels(): Promise<ModelList>;
27
+ listModels(options?: {
28
+ abortSignal?: AbortSignal | undefined;
29
+ }): Promise<ModelList>;
28
30
  }
29
31
 
30
32
  export { type ListedModel, type ModelId, type ModelList, type ModelListingClient, ModelListingError };
@@ -1,4 +1,23 @@
1
- export { m as AgentGenerationEndArgs, n as AgentGenerationErrorArgs, o as AgentGenerationModelInfo, p as AgentGenerationObserver, q as AgentGenerationStartArgs, r as AgentGenerationUpdateArgs, i as AgentObserver, k as AgentObserverRegistration, s as AgentRunEndArgs, t as AgentRunErrorArgs, u as AgentRunEventArgs, v as AgentRunObserver, w as AgentRunPromptRef, x as AgentRunStartArgs, y as AgentToolEndArgs, z as AgentToolErrorArgs, B as AgentToolObserver, C as AgentToolStartArgs, D as AgentToolStreamEventArgs, E as AgentTraceInfo, j as AgentTraceOptions, O as ObserveOptions, F as createObserver } from '../index-BxSbmOMr.js';
2
- import '../types-G12i56s2.js';
3
- import '../guardrails/index.js';
4
- import '../tool-Cohdv5GC.js';
1
+ export { x as AgentGenerationEndArgs, y as AgentGenerationErrorArgs, z as AgentGenerationModelInfo, B as AgentGenerationObserver, C as AgentGenerationStartArgs, D as AgentGenerationUpdateArgs, E as AgentObservabilityOptions, F as AgentObserver, G as AgentObserverErrorPolicy, H as AgentObserverMap, I as AgentObserverTraceInfo, J as AgentRunEndArgs, K as AgentRunErrorArgs, L as AgentRunEventArgs, M as AgentRunObserver, N as AgentRunPromptRef, O as AgentRunStartArgs, P as AgentToolEndArgs, Q as AgentToolErrorArgs, R as AgentToolObserver, S as AgentToolStartArgs, T as AgentToolStreamEventArgs, U as AgentToolSuspendedArgs, V as AgentTraceInfo, W as AgentTraceOptions } from '../types-Sue2hb_L.js';
2
+ import '../agent/interactions/index.js';
3
+ import 'zod';
4
+ import '../types-DgvozfPc.js';
5
+ import '../model-call-options-CZkSw_xN.js';
6
+ import '../retry-CjvSlKGW.js';
7
+ import '../types-DhkodEft.js';
8
+ import '../type-utils-CtHVDRn_.js';
9
+ import '../types-DKOXVTcq.js';
10
+ import '../tool-BpqpoRSE.js';
11
+ import '../middleware-kcF8AusP.js';
12
+
13
+ type AgentObserverFailure = {
14
+ readonly observer: string;
15
+ readonly error: unknown;
16
+ };
17
+ declare class AgentObserverDispatchError extends AggregateError {
18
+ readonly phase: string;
19
+ readonly failures: readonly AgentObserverFailure[];
20
+ constructor(phase: string, failures: readonly AgentObserverFailure[]);
21
+ }
22
+
23
+ export { AgentObserverDispatchError };
@@ -1,8 +1,13 @@
1
- // src/observability/types.ts
2
- function createObserver(observer) {
3
- return observer;
4
- }
1
+ import {
2
+ AgentObserverDispatchError
3
+ } from "../chunk-6BBOCFHV.js";
4
+ import "../chunk-D4PACGPA.js";
5
+ import "../chunk-7PHMK7W4.js";
6
+ import "../chunk-7JLAIN6E.js";
7
+ import "../chunk-QGX73TSQ.js";
8
+ import "../chunk-3XQGVDU5.js";
9
+ import "../chunk-3RWESPUG.js";
5
10
  export {
6
- createObserver
11
+ AgentObserverDispatchError
7
12
  };
8
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/observability/types.ts"],"sourcesContent":["import type {\n CompletionModelCapabilities,\n CompletionRequest,\n CompletionResponse,\n CompletionSource,\n JsonObject,\n JsonValue,\n Message,\n ProviderToolCall,\n ToolCall,\n ToolDefinition,\n ToolResultContent,\n Usage,\n} from \"../completion\";\nimport type { AgentDeltaEvent } from \"../request/types\";\nimport type { ToolCallStreamEvent } from \"../tool\";\n\nexport type AgentTraceInfo = {\n traceId?: string | undefined;\n observationId?: string | undefined;\n};\n\nexport type AgentTraceOptions = {\n name?: string | undefined;\n userId?: string | undefined;\n sessionId?: string | undefined;\n metadata?: Record<string, unknown> | undefined;\n tags?: string[] | undefined;\n version?: string | undefined;\n traceId?: string | undefined;\n failOnObserverError?: boolean | undefined;\n promptRef?: AgentRunPromptRef | undefined;\n};\n\nexport type AgentRunPromptRef = {\n name: string;\n version?: number | undefined;\n};\n\nexport type AgentRunStartArgs = {\n agentName?: string | undefined;\n agentDescription?: string | undefined;\n instructions?: string | undefined;\n trace?: AgentTraceOptions | undefined;\n prompt: Message;\n promptRef?: AgentRunPromptRef | undefined;\n history: Message[];\n maxTurns: number;\n};\n\nexport type AgentRunEndArgs = {\n output: string;\n usage: Usage;\n messages: Message[];\n sources?: CompletionSource[] | undefined;\n providerToolCalls?: ProviderToolCall[] | undefined;\n};\n\nexport type AgentRunErrorArgs = {\n error: unknown;\n usage: Usage;\n messages: Message[];\n};\n\nexport type AgentGenerationModelInfo = {\n provider: string;\n defaultModel: string;\n capabilities?: CompletionModelCapabilities | undefined;\n};\n\nexport type AgentGenerationStartArgs = {\n turn: number;\n request: CompletionRequest;\n providerRequest?: JsonObject | undefined;\n modelInfo?: AgentGenerationModelInfo | undefined;\n};\n\nexport type AgentGenerationEndArgs<RawResponse = unknown> = {\n turn: number;\n response: CompletionResponse<RawResponse>;\n firstDeltaMs?: number | undefined;\n};\n\nexport type AgentGenerationErrorArgs = {\n turn: number;\n error: unknown;\n};\n\nexport type AgentGenerationUpdateArgs = {\n turn: number;\n delta: AgentDeltaEvent;\n};\n\nexport type AgentRunEventArgs = {\n name: string;\n attributes?: Record<string, JsonValue | undefined> | undefined;\n level?: \"DEFAULT\" | \"WARNING\" | \"ERROR\" | undefined;\n timestamp?: Date | string | undefined;\n};\n\nexport type AgentToolStartArgs = {\n turn: number;\n toolCall: ToolCall;\n toolName: string;\n args: string;\n internalCallId: string;\n toolCallId?: string | undefined;\n toolDefinition?: ToolDefinition | undefined;\n toolMetadata?: JsonObject | undefined;\n};\n\nexport type AgentToolEndArgs = AgentToolStartArgs & {\n result: string;\n structuredResult?: ToolResultContent[] | undefined;\n skipped: boolean;\n};\n\nexport type AgentToolErrorArgs = AgentToolStartArgs & {\n error: unknown;\n};\n\nexport type AgentToolStreamEventArgs = AgentToolStartArgs & {\n event: ToolCallStreamEvent;\n};\n\nexport interface AgentGenerationObserver {\n end(args: AgentGenerationEndArgs): void | Promise<void>;\n error?(args: AgentGenerationErrorArgs): void | Promise<void>;\n update?(args: AgentGenerationUpdateArgs): void | Promise<void>;\n}\n\nexport interface AgentToolObserver {\n streamEvent?(args: AgentToolStreamEventArgs): void | Promise<void>;\n end(args: AgentToolEndArgs): void | Promise<void>;\n error?(args: AgentToolErrorArgs): void | Promise<void>;\n}\n\nexport interface AgentRunObserver {\n readonly trace?: AgentTraceInfo | undefined;\n startGeneration?(\n args: AgentGenerationStartArgs,\n ): AgentGenerationObserver | undefined | Promise<AgentGenerationObserver | undefined>;\n startTool?(\n args: AgentToolStartArgs,\n ): AgentToolObserver | undefined | Promise<AgentToolObserver | undefined>;\n end(args: AgentRunEndArgs): void | Promise<void>;\n error?(args: AgentRunErrorArgs): void | Promise<void>;\n event?(args: AgentRunEventArgs): void | Promise<void>;\n}\n\nexport interface AgentObserver {\n startRun(\n args: AgentRunStartArgs,\n ): AgentRunObserver | undefined | Promise<AgentRunObserver | undefined>;\n flush?(): void | Promise<void>;\n shutdown?(): void | Promise<void>;\n}\n\nexport type AgentObserverRegistration = {\n observer: AgentObserver;\n failOnObserverError?: boolean | undefined;\n};\n\nexport type ObserveOptions = {\n failOnObserverError?: boolean | undefined;\n};\n\nexport function createObserver(observer: AgentObserver): AgentObserver {\n return observer;\n}\n"],"mappings":";AAuKO,SAAS,eAAe,UAAwC;AACrE,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}