@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
@@ -0,0 +1,86 @@
1
+ // src/agent/errors.ts
2
+ var AgentStructuredOutputError = class extends Error {
3
+ phase;
4
+ attempt;
5
+ maxAttempts;
6
+ outputLength;
7
+ normalizedLength;
8
+ outputFormat;
9
+ attemptUsage;
10
+ usage;
11
+ finishReason;
12
+ providerFinishReason;
13
+ constructor(options) {
14
+ const failure = options.phase === "truncated" ? "because the provider reached its output limit" : options.phase === "content-filter" ? "because the provider filtered the response" : options.phase === "parse" ? "during JSON parsing" : "during schema validation";
15
+ const errorOptions = options.cause === void 0 ? void 0 : { cause: options.cause };
16
+ super(
17
+ `Agent structured output failed ${failure} on attempt ${options.attempt} of ${options.maxAttempts}.`,
18
+ errorOptions
19
+ );
20
+ this.name = "AgentStructuredOutputError";
21
+ this.phase = options.phase;
22
+ this.attempt = options.attempt;
23
+ this.maxAttempts = options.maxAttempts;
24
+ this.outputLength = options.outputLength;
25
+ this.normalizedLength = options.normalizedLength;
26
+ this.outputFormat = options.outputFormat;
27
+ this.attemptUsage = options.attemptUsage;
28
+ this.usage = options.usage;
29
+ this.finishReason = options.finishReason;
30
+ this.providerFinishReason = options.providerFinishReason;
31
+ }
32
+ };
33
+ var MaxTurnsError = class extends Error {
34
+ constructor(maxTurns, chatHistory, prompt) {
35
+ super(`Reached max turn limit: ${maxTurns}`);
36
+ this.maxTurns = maxTurns;
37
+ this.chatHistory = chatHistory;
38
+ this.prompt = prompt;
39
+ this.name = "MaxTurnsError";
40
+ }
41
+ maxTurns;
42
+ chatHistory;
43
+ prompt;
44
+ };
45
+ var AgentRunCancelledError = class extends Error {
46
+ constructor(chatHistory, reason, options) {
47
+ super(`Agent run cancelled: ${reason}`, options);
48
+ this.chatHistory = chatHistory;
49
+ this.reason = reason;
50
+ this.name = "AgentRunCancelledError";
51
+ }
52
+ chatHistory;
53
+ reason;
54
+ };
55
+ var AgentRunBlockedError = class extends Error {
56
+ constructor(result) {
57
+ super(`Agent run was blocked by an ${result.stage} guardrail.`);
58
+ this.result = result;
59
+ this.name = "AgentRunBlockedError";
60
+ }
61
+ result;
62
+ };
63
+ var AgentStreamClosedError = class extends Error {
64
+ constructor() {
65
+ super("Agent stream is no longer accepting steering input.");
66
+ this.name = "AgentStreamClosedError";
67
+ }
68
+ };
69
+ var AgentToolSuspensionError = class extends Error {
70
+ constructor(result) {
71
+ super("Agent tool execution suspended for human interaction.");
72
+ this.result = result;
73
+ this.name = "AgentToolSuspensionError";
74
+ }
75
+ result;
76
+ };
77
+
78
+ export {
79
+ AgentStructuredOutputError,
80
+ MaxTurnsError,
81
+ AgentRunCancelledError,
82
+ AgentRunBlockedError,
83
+ AgentStreamClosedError,
84
+ AgentToolSuspensionError
85
+ };
86
+ //# sourceMappingURL=chunk-X4LK4ODN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/agent/errors.ts"],"sourcesContent":["import type { CompletionFinishReason, Message, Usage } from \"../completion/index\";\nimport type { AgentBlockedResult, AgentSuspendedResult } from \"./run-types\";\n\nexport type AgentStructuredOutputPhase = \"truncated\" | \"content-filter\" | \"parse\" | \"schema\";\n\nexport type AgentStructuredOutputFormat = \"raw\" | \"json-fence\" | \"unlabeled-fence\";\n\nexport class AgentStructuredOutputError extends Error {\n readonly phase: AgentStructuredOutputPhase;\n readonly attempt: number;\n readonly maxAttempts: number;\n readonly outputLength: number;\n readonly normalizedLength: number;\n readonly outputFormat: AgentStructuredOutputFormat;\n readonly attemptUsage: Usage;\n readonly usage: Usage;\n readonly finishReason: CompletionFinishReason | undefined;\n readonly providerFinishReason: string | undefined;\n\n constructor(options: {\n phase: AgentStructuredOutputPhase;\n attempt: number;\n maxAttempts: number;\n outputLength: number;\n normalizedLength: number;\n outputFormat: AgentStructuredOutputFormat;\n attemptUsage: Usage;\n usage: Usage;\n finishReason?: CompletionFinishReason | undefined;\n providerFinishReason?: string | undefined;\n cause?: unknown;\n }) {\n const failure =\n options.phase === \"truncated\"\n ? \"because the provider reached its output limit\"\n : options.phase === \"content-filter\"\n ? \"because the provider filtered the response\"\n : options.phase === \"parse\"\n ? \"during JSON parsing\"\n : \"during schema validation\";\n const errorOptions = options.cause === undefined ? undefined : { cause: options.cause };\n super(\n `Agent structured output failed ${failure} on attempt ${options.attempt} of ${options.maxAttempts}.`,\n errorOptions,\n );\n this.name = \"AgentStructuredOutputError\";\n this.phase = options.phase;\n this.attempt = options.attempt;\n this.maxAttempts = options.maxAttempts;\n this.outputLength = options.outputLength;\n this.normalizedLength = options.normalizedLength;\n this.outputFormat = options.outputFormat;\n this.attemptUsage = options.attemptUsage;\n this.usage = options.usage;\n this.finishReason = options.finishReason;\n this.providerFinishReason = options.providerFinishReason;\n }\n}\n\nexport class MaxTurnsError extends Error {\n constructor(\n readonly maxTurns: number,\n readonly chatHistory: Message[],\n readonly prompt: Message,\n ) {\n super(`Reached max turn limit: ${maxTurns}`);\n this.name = \"MaxTurnsError\";\n }\n}\n\nexport class AgentRunCancelledError extends Error {\n constructor(\n readonly chatHistory: Message[],\n readonly reason: string,\n options?: ErrorOptions,\n ) {\n super(`Agent run cancelled: ${reason}`, options);\n this.name = \"AgentRunCancelledError\";\n }\n}\n\nexport class AgentRunBlockedError extends Error {\n constructor(readonly result: AgentBlockedResult) {\n super(`Agent run was blocked by an ${result.stage} guardrail.`);\n this.name = \"AgentRunBlockedError\";\n }\n}\n\nexport class AgentStreamClosedError extends Error {\n constructor() {\n super(\"Agent stream is no longer accepting steering input.\");\n this.name = \"AgentStreamClosedError\";\n }\n}\n\nexport class AgentToolSuspensionError extends Error {\n constructor(readonly result: AgentSuspendedResult) {\n super(\"Agent tool execution suspended for human interaction.\");\n this.name = \"AgentToolSuspensionError\";\n }\n}\n"],"mappings":";AAOO,IAAM,6BAAN,cAAyC,MAAM;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,SAYT;AACD,UAAM,UACJ,QAAQ,UAAU,cACd,kDACA,QAAQ,UAAU,mBAChB,+CACA,QAAQ,UAAU,UAChB,wBACA;AACV,UAAM,eAAe,QAAQ,UAAU,SAAY,SAAY,EAAE,OAAO,QAAQ,MAAM;AACtF;AAAA,MACE,kCAAkC,OAAO,eAAe,QAAQ,OAAO,OAAO,QAAQ,WAAW;AAAA,MACjG;AAAA,IACF;AACA,SAAK,OAAO;AACZ,SAAK,QAAQ,QAAQ;AACrB,SAAK,UAAU,QAAQ;AACvB,SAAK,cAAc,QAAQ;AAC3B,SAAK,eAAe,QAAQ;AAC5B,SAAK,mBAAmB,QAAQ;AAChC,SAAK,eAAe,QAAQ;AAC5B,SAAK,eAAe,QAAQ;AAC5B,SAAK,QAAQ,QAAQ;AACrB,SAAK,eAAe,QAAQ;AAC5B,SAAK,uBAAuB,QAAQ;AAAA,EACtC;AACF;AAEO,IAAM,gBAAN,cAA4B,MAAM;AAAA,EACvC,YACW,UACA,aACA,QACT;AACA,UAAM,2BAA2B,QAAQ,EAAE;AAJlC;AACA;AACA;AAGT,SAAK,OAAO;AAAA,EACd;AAAA,EANW;AAAA,EACA;AAAA,EACA;AAKb;AAEO,IAAM,yBAAN,cAAqC,MAAM;AAAA,EAChD,YACW,aACA,QACT,SACA;AACA,UAAM,wBAAwB,MAAM,IAAI,OAAO;AAJtC;AACA;AAIT,SAAK,OAAO;AAAA,EACd;AAAA,EANW;AAAA,EACA;AAMb;AAEO,IAAM,uBAAN,cAAmC,MAAM;AAAA,EAC9C,YAAqB,QAA4B;AAC/C,UAAM,+BAA+B,OAAO,KAAK,aAAa;AAD3C;AAEnB,SAAK,OAAO;AAAA,EACd;AAAA,EAHqB;AAIvB;AAEO,IAAM,yBAAN,cAAqC,MAAM;AAAA,EAChD,cAAc;AACZ,UAAM,qDAAqD;AAC3D,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,2BAAN,cAAuC,MAAM;AAAA,EAClD,YAAqB,QAA8B;AACjD,UAAM,uDAAuD;AAD1C;AAEnB,SAAK,OAAO;AAAA,EACd;AAAA,EAHqB;AAIvB;","names":[]}
@@ -0,0 +1,331 @@
1
+ import {
2
+ mapWithConcurrency
3
+ } from "./chunk-3RM57ZT2.js";
4
+ import {
5
+ resolveRetryOptions,
6
+ runWithRetries,
7
+ throwIfAborted
8
+ } from "./chunk-3RWESPUG.js";
9
+
10
+ // src/embeddings/distance.ts
11
+ function dotProduct(left, right) {
12
+ assertSameDimensions(left, right);
13
+ return left.reduce((sum, value, index) => sum + value * right[index], 0);
14
+ }
15
+ function cosineSimilarity(left, right) {
16
+ assertSameDimensions(left, right);
17
+ const leftMagnitude = magnitude(left);
18
+ const rightMagnitude = magnitude(right);
19
+ if (leftMagnitude === 0 || rightMagnitude === 0) {
20
+ return 0;
21
+ }
22
+ return dotProduct(left, right) / (leftMagnitude * rightMagnitude);
23
+ }
24
+ function angularDistance(left, right) {
25
+ const similarity = Math.max(-1, Math.min(1, cosineSimilarity(left, right)));
26
+ return Math.acos(similarity) / Math.PI;
27
+ }
28
+ function euclideanDistance(left, right) {
29
+ assertSameDimensions(left, right);
30
+ return Math.sqrt(
31
+ left.reduce((sum, value, index) => sum + (value - right[index]) ** 2, 0)
32
+ );
33
+ }
34
+ function manhattanDistance(left, right) {
35
+ assertSameDimensions(left, right);
36
+ return left.reduce((sum, value, index) => sum + Math.abs(value - right[index]), 0);
37
+ }
38
+ function chebyshevDistance(left, right) {
39
+ assertSameDimensions(left, right);
40
+ return left.reduce(
41
+ (max, value, index) => Math.max(max, Math.abs(value - right[index])),
42
+ 0
43
+ );
44
+ }
45
+ function magnitude(vector) {
46
+ return Math.sqrt(vector.reduce((sum, value) => sum + value ** 2, 0));
47
+ }
48
+ function assertSameDimensions(left, right) {
49
+ if (left.length !== right.length) {
50
+ throw new Error(`Vector dimension mismatch: ${left.length} !== ${right.length}`);
51
+ }
52
+ }
53
+
54
+ // src/embeddings/embed.ts
55
+ async function embedText(options) {
56
+ const { embeddings } = await embedTexts({
57
+ model: options.model,
58
+ texts: [options.text],
59
+ retries: options.retries,
60
+ abortSignal: options.abortSignal
61
+ });
62
+ const embedding = embeddings[0];
63
+ if (embedding === void 0) throw new Error("Embedding model returned no embeddings");
64
+ return { embedding };
65
+ }
66
+ async function embedTexts(options) {
67
+ throwIfAborted(options.abortSignal);
68
+ if (options.texts.length === 0) return { embeddings: [] };
69
+ const batches = chunk(options.texts, batchSize(options.model.maxBatchSize, options.texts.length));
70
+ const results = await mapWithConcurrency(
71
+ batches,
72
+ concurrency(options.concurrency),
73
+ (batch) => embedDenseBatch(options.model, batch, options)
74
+ );
75
+ const embeddings = results.flat();
76
+ if (embeddings.length !== options.texts.length) {
77
+ throw new Error(
78
+ `Embedding model returned ${embeddings.length} embeddings for ${options.texts.length} texts`
79
+ );
80
+ }
81
+ return { embeddings };
82
+ }
83
+ async function embedSparseTexts(options) {
84
+ throwIfAborted(options.abortSignal);
85
+ if (options.texts.length === 0) return { embeddings: [] };
86
+ const batches = chunk(options.texts, batchSize(options.model.maxBatchSize, options.texts.length));
87
+ const results = await mapWithConcurrency(
88
+ batches,
89
+ concurrency(options.concurrency),
90
+ (batch) => embedSparseBatch(options.model, batch, options)
91
+ );
92
+ const embeddings = results.flat();
93
+ if (embeddings.length !== options.texts.length) {
94
+ throw new Error(
95
+ `Sparse embedding model returned ${embeddings.length} embeddings for ${options.texts.length} texts`
96
+ );
97
+ }
98
+ return { embeddings };
99
+ }
100
+ async function embedSparseQuery(options) {
101
+ throwIfAborted(options.abortSignal);
102
+ const embedding = await runWithRetries(
103
+ () => {
104
+ throwIfAborted(options.abortSignal);
105
+ return options.model.embedQuery(options.query, modelCallOptions(options.abortSignal));
106
+ },
107
+ resolveRetries(options),
108
+ { streaming: false, abortSignal: options.abortSignal }
109
+ );
110
+ throwIfAborted(options.abortSignal);
111
+ validateSparseEmbedding(embedding, "query");
112
+ return { embedding };
113
+ }
114
+ async function embedDocuments(options) {
115
+ throwIfAborted(options.abortSignal);
116
+ const prepared = prepareDocuments(options.documents, options);
117
+ const flatTexts = prepared.flatMap(
118
+ (item, documentIndex) => item.texts.map((text) => ({ documentIndex, text }))
119
+ );
120
+ const concurrencyLimit = concurrency(options.concurrency);
121
+ if ("model" in options && options.model !== void 0) {
122
+ const batches = chunk(flatTexts, batchSize(options.model.maxBatchSize, flatTexts.length || 1));
123
+ const results = await mapWithConcurrency(batches, concurrencyLimit, async (batch) => {
124
+ const embeddings = await embedDenseBatch(
125
+ options.model,
126
+ batch.map((item) => item.text),
127
+ options
128
+ );
129
+ assertBatchLength("Embedding", embeddings.length, batch.length);
130
+ return batch.map((item, index) => ({
131
+ documentIndex: item.documentIndex,
132
+ embedding: embeddings[index]
133
+ }));
134
+ });
135
+ const byDocument = groupEmbeddings(results.flat());
136
+ return {
137
+ documents: prepared.map((item, index) => embeddedDocument(item, byDocument.get(index) ?? []))
138
+ };
139
+ }
140
+ const { dense, sparse } = options.models;
141
+ const [denseResults, sparseResults] = await Promise.all([
142
+ mapWithConcurrency(
143
+ chunk(flatTexts, batchSize(dense.maxBatchSize, flatTexts.length || 1)),
144
+ concurrencyLimit,
145
+ async (batch) => {
146
+ const embeddings = await embedDenseBatch(
147
+ dense,
148
+ batch.map((item) => item.text),
149
+ options
150
+ );
151
+ assertBatchLength("Embedding", embeddings.length, batch.length);
152
+ return batch.map((item, index) => ({
153
+ documentIndex: item.documentIndex,
154
+ embedding: embeddings[index]
155
+ }));
156
+ }
157
+ ),
158
+ mapWithConcurrency(
159
+ chunk(flatTexts, batchSize(sparse.maxBatchSize, flatTexts.length || 1)),
160
+ concurrencyLimit,
161
+ async (batch) => {
162
+ const embeddings = await embedSparseBatch(
163
+ sparse,
164
+ batch.map((item) => item.text),
165
+ options
166
+ );
167
+ assertBatchLength("Sparse embedding", embeddings.length, batch.length);
168
+ return batch.map((item, index) => ({
169
+ documentIndex: item.documentIndex,
170
+ embedding: embeddings[index]
171
+ }));
172
+ }
173
+ )
174
+ ]);
175
+ const denseByDocument = groupEmbeddings(denseResults.flat());
176
+ const sparseByDocument = groupEmbeddings(sparseResults.flat());
177
+ return {
178
+ documents: prepared.map((item, index) => {
179
+ const embeddings = denseByDocument.get(index) ?? [];
180
+ const sparseEmbeddings = sparseByDocument.get(index) ?? [];
181
+ if (embeddings.length !== sparseEmbeddings.length) {
182
+ throw new Error(
183
+ `Hybrid embedding produced ${embeddings.length} dense and ${sparseEmbeddings.length} sparse vectors for document ${item.id}`
184
+ );
185
+ }
186
+ return embeddedDocument(item, embeddings, sparseEmbeddings);
187
+ })
188
+ };
189
+ }
190
+ async function embedDenseBatch(model, texts, options) {
191
+ throwIfAborted(options.abortSignal);
192
+ const embeddings = await runWithRetries(
193
+ () => model.embedTexts(texts, modelCallOptions(options.abortSignal)),
194
+ resolveRetries(options),
195
+ { streaming: false, abortSignal: options.abortSignal }
196
+ );
197
+ throwIfAborted(options.abortSignal);
198
+ for (const [index, embedding] of embeddings.entries()) {
199
+ validateDenseEmbedding(embedding, model.dimensions, index);
200
+ }
201
+ return embeddings;
202
+ }
203
+ async function embedSparseBatch(model, texts, options) {
204
+ throwIfAborted(options.abortSignal);
205
+ const embeddings = await runWithRetries(
206
+ () => model.embedTexts(texts, modelCallOptions(options.abortSignal)),
207
+ resolveRetries(options),
208
+ { streaming: false, abortSignal: options.abortSignal }
209
+ );
210
+ throwIfAborted(options.abortSignal);
211
+ for (const [index, embedding] of embeddings.entries()) validateSparseEmbedding(embedding, index);
212
+ return embeddings;
213
+ }
214
+ function prepareDocuments(documents, options) {
215
+ const ids = /* @__PURE__ */ new Set();
216
+ return documents.map((document, index) => {
217
+ const id = options.id?.(document, index) ?? `doc${index}`;
218
+ if (id.length === 0) throw new TypeError("Embedded document ids must not be empty");
219
+ if (ids.has(id)) throw new TypeError(`Duplicate embedded document id: ${id}`);
220
+ ids.add(id);
221
+ const content = options.content(document, index);
222
+ if (Array.isArray(content) && content.length === 0)
223
+ throw new TypeError(`Embedded document ${id} must contain at least one text chunk`);
224
+ return {
225
+ id,
226
+ document,
227
+ metadata: options.metadata?.(document, index),
228
+ texts: Array.isArray(content) ? content : [content]
229
+ };
230
+ });
231
+ }
232
+ function embeddedDocument(item, embeddings, sparseEmbeddings) {
233
+ let result = {
234
+ id: item.id,
235
+ document: item.document,
236
+ embeddings
237
+ };
238
+ if (item.metadata !== void 0) {
239
+ result = { ...result, metadata: item.metadata };
240
+ }
241
+ if (sparseEmbeddings !== void 0) {
242
+ result = { ...result, sparseEmbeddings };
243
+ }
244
+ return result;
245
+ }
246
+ function groupEmbeddings(items) {
247
+ const groups = /* @__PURE__ */ new Map();
248
+ for (const item of items) {
249
+ const list = groups.get(item.documentIndex) ?? [];
250
+ list.push(item.embedding);
251
+ groups.set(item.documentIndex, list);
252
+ }
253
+ return groups;
254
+ }
255
+ function assertBatchLength(name, actual, expected) {
256
+ if (actual !== expected)
257
+ throw new Error(`${name} model returned ${actual} embeddings for ${expected} texts`);
258
+ }
259
+ function resolveRetries(options) {
260
+ return options.retries === void 0 || options.retries === false ? void 0 : resolveRetryOptions(options.retries);
261
+ }
262
+ function modelCallOptions(abortSignal) {
263
+ return abortSignal === void 0 ? void 0 : { abortSignal };
264
+ }
265
+ function chunk(items, size) {
266
+ const chunks = [];
267
+ for (let index = 0; index < items.length; index += size)
268
+ chunks.push(items.slice(index, index + size));
269
+ return chunks;
270
+ }
271
+ function batchSize(configured, fallback) {
272
+ if (configured === void 0) return fallback;
273
+ if (!Number.isSafeInteger(configured) || configured < 1) {
274
+ throw new RangeError("Embedding model maxBatchSize must be a positive safe integer");
275
+ }
276
+ return configured;
277
+ }
278
+ function concurrency(configured) {
279
+ if (configured === void 0) return 1;
280
+ if (!Number.isSafeInteger(configured) || configured < 1) {
281
+ throw new RangeError("Embedding concurrency must be a positive safe integer");
282
+ }
283
+ return configured;
284
+ }
285
+ function validateDenseEmbedding(embedding, dimensions, index) {
286
+ if (embedding.vector.length === 0) {
287
+ throw new TypeError(`Embedding model returned an empty vector at index ${index}`);
288
+ }
289
+ if (!embedding.vector.every(Number.isFinite)) {
290
+ throw new TypeError(`Embedding model returned a non-finite vector at index ${index}`);
291
+ }
292
+ if (dimensions !== void 0) {
293
+ if (!Number.isSafeInteger(dimensions) || dimensions < 1)
294
+ throw new TypeError("Embedding model dimensions must be a positive safe integer");
295
+ if (embedding.vector.length !== dimensions) {
296
+ throw new Error(
297
+ `Embedding model returned ${embedding.vector.length} dimensions at index ${index}; expected ${dimensions}`
298
+ );
299
+ }
300
+ }
301
+ }
302
+ function validateSparseEmbedding(embedding, index) {
303
+ const { indices, values } = embedding.vector;
304
+ if (indices.length !== values.length) {
305
+ throw new Error(`Sparse embedding at ${index} has mismatched indices and values`);
306
+ }
307
+ if (!indices.every((value) => Number.isSafeInteger(value) && value >= 0)) {
308
+ throw new TypeError(`Sparse embedding at ${index} has an invalid index`);
309
+ }
310
+ if (new Set(indices).size !== indices.length) {
311
+ throw new TypeError(`Sparse embedding at ${index} has duplicate indices`);
312
+ }
313
+ if (!values.every(Number.isFinite)) {
314
+ throw new TypeError(`Sparse embedding at ${index} has a non-finite value`);
315
+ }
316
+ }
317
+
318
+ export {
319
+ dotProduct,
320
+ cosineSimilarity,
321
+ angularDistance,
322
+ euclideanDistance,
323
+ manhattanDistance,
324
+ chebyshevDistance,
325
+ embedText,
326
+ embedTexts,
327
+ embedSparseTexts,
328
+ embedSparseQuery,
329
+ embedDocuments
330
+ };
331
+ //# sourceMappingURL=chunk-ZA564323.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/embeddings/distance.ts","../src/embeddings/embed.ts"],"sourcesContent":["export function dotProduct(left: number[], right: number[]): number {\n assertSameDimensions(left, right);\n return left.reduce((sum, value, index) => sum + value * (right[index] as number), 0);\n}\n\nexport function cosineSimilarity(left: number[], right: number[]): number {\n assertSameDimensions(left, right);\n const leftMagnitude = magnitude(left);\n const rightMagnitude = magnitude(right);\n if (leftMagnitude === 0 || rightMagnitude === 0) {\n return 0;\n }\n return dotProduct(left, right) / (leftMagnitude * rightMagnitude);\n}\n\nexport function angularDistance(left: number[], right: number[]): number {\n const similarity = Math.max(-1, Math.min(1, cosineSimilarity(left, right)));\n return Math.acos(similarity) / Math.PI;\n}\n\nexport function euclideanDistance(left: number[], right: number[]): number {\n assertSameDimensions(left, right);\n return Math.sqrt(\n left.reduce((sum, value, index) => sum + (value - (right[index] as number)) ** 2, 0),\n );\n}\n\nexport function manhattanDistance(left: number[], right: number[]): number {\n assertSameDimensions(left, right);\n return left.reduce((sum, value, index) => sum + Math.abs(value - (right[index] as number)), 0);\n}\n\nexport function chebyshevDistance(left: number[], right: number[]): number {\n assertSameDimensions(left, right);\n return left.reduce(\n (max, value, index) => Math.max(max, Math.abs(value - (right[index] as number))),\n 0,\n );\n}\n\nfunction magnitude(vector: number[]): number {\n return Math.sqrt(vector.reduce((sum, value) => sum + value ** 2, 0));\n}\n\nfunction assertSameDimensions(left: number[], right: number[]): void {\n if (left.length !== right.length) {\n throw new Error(`Vector dimension mismatch: ${left.length} !== ${right.length}`);\n }\n}\n","import { throwIfAborted } from \"../internal/abort\";\nimport { mapWithConcurrency } from \"../internal/concurrency\";\nimport type { ModelCallOptions } from \"../model-call-options\";\nimport { type ResolvedRetryOptions, resolveRetryOptions, runWithRetries } from \"../retry\";\nimport type {\n EmbedDocumentsOptions,\n EmbedDocumentsResult,\n EmbeddedDocument,\n Embedding,\n EmbeddingOperationOptions,\n EmbedHybridDocumentsOptions,\n EmbedSparseQueryOptions,\n EmbedSparseQueryResult,\n EmbedSparseTextsOptions,\n EmbedSparseTextsResult,\n EmbedTextOptions,\n EmbedTextResult,\n EmbedTextsOptions,\n EmbedTextsResult,\n SparseEmbedding,\n VectorMetadata,\n} from \"./types\";\n\nexport async function embedText(options: EmbedTextOptions): Promise<EmbedTextResult> {\n const { embeddings } = await embedTexts({\n model: options.model,\n texts: [options.text],\n retries: options.retries,\n abortSignal: options.abortSignal,\n });\n const embedding = embeddings[0];\n if (embedding === undefined) throw new Error(\"Embedding model returned no embeddings\");\n return { embedding };\n}\n\nexport async function embedTexts(options: EmbedTextsOptions): Promise<EmbedTextsResult> {\n throwIfAborted(options.abortSignal);\n if (options.texts.length === 0) return { embeddings: [] };\n const batches = chunk(options.texts, batchSize(options.model.maxBatchSize, options.texts.length));\n const results = await mapWithConcurrency(batches, concurrency(options.concurrency), (batch) =>\n embedDenseBatch(options.model, batch, options),\n );\n const embeddings = results.flat();\n if (embeddings.length !== options.texts.length) {\n throw new Error(\n `Embedding model returned ${embeddings.length} embeddings for ${options.texts.length} texts`,\n );\n }\n return { embeddings };\n}\n\nexport async function embedSparseTexts(\n options: EmbedSparseTextsOptions,\n): Promise<EmbedSparseTextsResult> {\n throwIfAborted(options.abortSignal);\n if (options.texts.length === 0) return { embeddings: [] };\n const batches = chunk(options.texts, batchSize(options.model.maxBatchSize, options.texts.length));\n const results = await mapWithConcurrency(batches, concurrency(options.concurrency), (batch) =>\n embedSparseBatch(options.model, batch, options),\n );\n const embeddings = results.flat();\n if (embeddings.length !== options.texts.length) {\n throw new Error(\n `Sparse embedding model returned ${embeddings.length} embeddings for ${options.texts.length} texts`,\n );\n }\n return { embeddings };\n}\n\nexport async function embedSparseQuery(\n options: EmbedSparseQueryOptions,\n): Promise<EmbedSparseQueryResult> {\n throwIfAborted(options.abortSignal);\n const embedding = await runWithRetries(\n () => {\n throwIfAborted(options.abortSignal);\n return options.model.embedQuery(options.query, modelCallOptions(options.abortSignal));\n },\n resolveRetries(options),\n { streaming: false, abortSignal: options.abortSignal },\n );\n throwIfAborted(options.abortSignal);\n validateSparseEmbedding(embedding, \"query\");\n return { embedding };\n}\n\nexport function embedDocuments<T, Metadata extends VectorMetadata = VectorMetadata>(\n options: EmbedDocumentsOptions<T, Metadata>,\n): Promise<EmbedDocumentsResult<T, Metadata>>;\nexport function embedDocuments<T, Metadata extends VectorMetadata = VectorMetadata>(\n options: EmbedHybridDocumentsOptions<T, Metadata>,\n): Promise<EmbedDocumentsResult<T, Metadata>>;\nexport async function embedDocuments<T, Metadata extends VectorMetadata = VectorMetadata>(\n options: EmbedDocumentsOptions<T, Metadata> | EmbedHybridDocumentsOptions<T, Metadata>,\n): Promise<EmbedDocumentsResult<T, Metadata>> {\n throwIfAborted(options.abortSignal);\n const prepared = prepareDocuments(options.documents, options);\n const flatTexts = prepared.flatMap((item, documentIndex) =>\n item.texts.map((text) => ({ documentIndex, text })),\n );\n const concurrencyLimit = concurrency(options.concurrency);\n\n if (\"model\" in options && options.model !== undefined) {\n const batches = chunk(flatTexts, batchSize(options.model.maxBatchSize, flatTexts.length || 1));\n const results = await mapWithConcurrency(batches, concurrencyLimit, async (batch) => {\n const embeddings = await embedDenseBatch(\n options.model,\n batch.map((item) => item.text),\n options,\n );\n assertBatchLength(\"Embedding\", embeddings.length, batch.length);\n return batch.map((item, index) => ({\n documentIndex: item.documentIndex,\n embedding: embeddings[index] as Embedding,\n }));\n });\n const byDocument = groupEmbeddings(results.flat());\n return {\n documents: prepared.map((item, index) => embeddedDocument(item, byDocument.get(index) ?? [])),\n };\n }\n\n const { dense, sparse } = options.models;\n const [denseResults, sparseResults] = await Promise.all([\n mapWithConcurrency(\n chunk(flatTexts, batchSize(dense.maxBatchSize, flatTexts.length || 1)),\n concurrencyLimit,\n async (batch) => {\n const embeddings = await embedDenseBatch(\n dense,\n batch.map((item) => item.text),\n options,\n );\n assertBatchLength(\"Embedding\", embeddings.length, batch.length);\n return batch.map((item, index) => ({\n documentIndex: item.documentIndex,\n embedding: embeddings[index] as Embedding,\n }));\n },\n ),\n mapWithConcurrency(\n chunk(flatTexts, batchSize(sparse.maxBatchSize, flatTexts.length || 1)),\n concurrencyLimit,\n async (batch) => {\n const embeddings = await embedSparseBatch(\n sparse,\n batch.map((item) => item.text),\n options,\n );\n assertBatchLength(\"Sparse embedding\", embeddings.length, batch.length);\n return batch.map((item, index) => ({\n documentIndex: item.documentIndex,\n embedding: embeddings[index] as SparseEmbedding,\n }));\n },\n ),\n ]);\n const denseByDocument = groupEmbeddings(denseResults.flat());\n const sparseByDocument = groupEmbeddings(sparseResults.flat());\n return {\n documents: prepared.map((item, index) => {\n const embeddings = denseByDocument.get(index) ?? [];\n const sparseEmbeddings = sparseByDocument.get(index) ?? [];\n if (embeddings.length !== sparseEmbeddings.length) {\n throw new Error(\n `Hybrid embedding produced ${embeddings.length} dense and ${sparseEmbeddings.length} sparse vectors for document ${item.id}`,\n );\n }\n return embeddedDocument(item, embeddings, sparseEmbeddings);\n }),\n };\n}\n\nasync function embedDenseBatch(\n model: EmbedTextOptions[\"model\"],\n texts: string[],\n options: EmbeddingOperationOptions,\n): Promise<Embedding[]> {\n throwIfAborted(options.abortSignal);\n const embeddings = await runWithRetries(\n () => model.embedTexts(texts, modelCallOptions(options.abortSignal)),\n resolveRetries(options),\n { streaming: false, abortSignal: options.abortSignal },\n );\n throwIfAborted(options.abortSignal);\n for (const [index, embedding] of embeddings.entries()) {\n validateDenseEmbedding(embedding, model.dimensions, index);\n }\n return embeddings;\n}\n\nasync function embedSparseBatch(\n model: EmbedSparseTextsOptions[\"model\"],\n texts: string[],\n options: EmbeddingOperationOptions,\n): Promise<SparseEmbedding[]> {\n throwIfAborted(options.abortSignal);\n const embeddings = await runWithRetries(\n () => model.embedTexts(texts, modelCallOptions(options.abortSignal)),\n resolveRetries(options),\n { streaming: false, abortSignal: options.abortSignal },\n );\n throwIfAborted(options.abortSignal);\n for (const [index, embedding] of embeddings.entries()) validateSparseEmbedding(embedding, index);\n return embeddings;\n}\n\nfunction prepareDocuments<T, Metadata extends VectorMetadata>(\n documents: T[],\n options: Pick<EmbedDocumentsOptions<T, Metadata>, \"id\" | \"content\" | \"metadata\">,\n) {\n const ids = new Set<string>();\n return documents.map((document, index) => {\n const id = options.id?.(document, index) ?? `doc${index}`;\n if (id.length === 0) throw new TypeError(\"Embedded document ids must not be empty\");\n if (ids.has(id)) throw new TypeError(`Duplicate embedded document id: ${id}`);\n ids.add(id);\n const content = options.content(document, index);\n if (Array.isArray(content) && content.length === 0)\n throw new TypeError(`Embedded document ${id} must contain at least one text chunk`);\n return {\n id,\n document,\n metadata: options.metadata?.(document, index),\n texts: Array.isArray(content) ? content : [content],\n };\n });\n}\n\nfunction embeddedDocument<T, Metadata extends VectorMetadata>(\n item: { id: string; document: T; metadata: Metadata | undefined },\n embeddings: Embedding[],\n sparseEmbeddings?: SparseEmbedding[],\n): EmbeddedDocument<T, Metadata> {\n let result: EmbeddedDocument<T, Metadata> = {\n id: item.id,\n document: item.document,\n embeddings,\n };\n if (item.metadata !== undefined) {\n result = { ...result, metadata: item.metadata };\n }\n if (sparseEmbeddings !== undefined) {\n result = { ...result, sparseEmbeddings };\n }\n return result;\n}\n\nfunction groupEmbeddings<E>(\n items: Array<{ documentIndex: number; embedding: E }>,\n): Map<number, E[]> {\n const groups = new Map<number, E[]>();\n for (const item of items) {\n const list = groups.get(item.documentIndex) ?? [];\n list.push(item.embedding);\n groups.set(item.documentIndex, list);\n }\n return groups;\n}\n\nfunction assertBatchLength(name: string, actual: number, expected: number): void {\n if (actual !== expected)\n throw new Error(`${name} model returned ${actual} embeddings for ${expected} texts`);\n}\n\nfunction resolveRetries(options: EmbeddingOperationOptions): ResolvedRetryOptions | undefined {\n return options.retries === undefined || options.retries === false\n ? undefined\n : resolveRetryOptions(options.retries);\n}\n\nfunction modelCallOptions(abortSignal: AbortSignal | undefined): ModelCallOptions | undefined {\n return abortSignal === undefined ? undefined : { abortSignal };\n}\n\nfunction chunk<T>(items: T[], size: number): T[][] {\n const chunks: T[][] = [];\n for (let index = 0; index < items.length; index += size)\n chunks.push(items.slice(index, index + size));\n return chunks;\n}\n\nfunction batchSize(configured: number | undefined, fallback: number): number {\n if (configured === undefined) return fallback;\n if (!Number.isSafeInteger(configured) || configured < 1) {\n throw new RangeError(\"Embedding model maxBatchSize must be a positive safe integer\");\n }\n return configured;\n}\n\nfunction concurrency(configured: number | undefined): number {\n if (configured === undefined) return 1;\n if (!Number.isSafeInteger(configured) || configured < 1) {\n throw new RangeError(\"Embedding concurrency must be a positive safe integer\");\n }\n return configured;\n}\n\nfunction validateDenseEmbedding(\n embedding: Embedding,\n dimensions: number | undefined,\n index: number,\n): void {\n if (embedding.vector.length === 0) {\n throw new TypeError(`Embedding model returned an empty vector at index ${index}`);\n }\n if (!embedding.vector.every(Number.isFinite)) {\n throw new TypeError(`Embedding model returned a non-finite vector at index ${index}`);\n }\n if (dimensions !== undefined) {\n if (!Number.isSafeInteger(dimensions) || dimensions < 1)\n throw new TypeError(\"Embedding model dimensions must be a positive safe integer\");\n if (embedding.vector.length !== dimensions) {\n throw new Error(\n `Embedding model returned ${embedding.vector.length} dimensions at index ${index}; expected ${dimensions}`,\n );\n }\n }\n}\n\nfunction validateSparseEmbedding(embedding: SparseEmbedding, index: number | \"query\"): void {\n const { indices, values } = embedding.vector;\n if (indices.length !== values.length) {\n throw new Error(`Sparse embedding at ${index} has mismatched indices and values`);\n }\n if (!indices.every((value) => Number.isSafeInteger(value) && value >= 0)) {\n throw new TypeError(`Sparse embedding at ${index} has an invalid index`);\n }\n if (new Set(indices).size !== indices.length) {\n throw new TypeError(`Sparse embedding at ${index} has duplicate indices`);\n }\n if (!values.every(Number.isFinite)) {\n throw new TypeError(`Sparse embedding at ${index} has a non-finite value`);\n }\n}\n"],"mappings":";;;;;;;;;;AAAO,SAAS,WAAW,MAAgB,OAAyB;AAClE,uBAAqB,MAAM,KAAK;AAChC,SAAO,KAAK,OAAO,CAAC,KAAK,OAAO,UAAU,MAAM,QAAS,MAAM,KAAK,GAAc,CAAC;AACrF;AAEO,SAAS,iBAAiB,MAAgB,OAAyB;AACxE,uBAAqB,MAAM,KAAK;AAChC,QAAM,gBAAgB,UAAU,IAAI;AACpC,QAAM,iBAAiB,UAAU,KAAK;AACtC,MAAI,kBAAkB,KAAK,mBAAmB,GAAG;AAC/C,WAAO;AAAA,EACT;AACA,SAAO,WAAW,MAAM,KAAK,KAAK,gBAAgB;AACpD;AAEO,SAAS,gBAAgB,MAAgB,OAAyB;AACvE,QAAM,aAAa,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,iBAAiB,MAAM,KAAK,CAAC,CAAC;AAC1E,SAAO,KAAK,KAAK,UAAU,IAAI,KAAK;AACtC;AAEO,SAAS,kBAAkB,MAAgB,OAAyB;AACzE,uBAAqB,MAAM,KAAK;AAChC,SAAO,KAAK;AAAA,IACV,KAAK,OAAO,CAAC,KAAK,OAAO,UAAU,OAAO,QAAS,MAAM,KAAK,MAAiB,GAAG,CAAC;AAAA,EACrF;AACF;AAEO,SAAS,kBAAkB,MAAgB,OAAyB;AACzE,uBAAqB,MAAM,KAAK;AAChC,SAAO,KAAK,OAAO,CAAC,KAAK,OAAO,UAAU,MAAM,KAAK,IAAI,QAAS,MAAM,KAAK,CAAY,GAAG,CAAC;AAC/F;AAEO,SAAS,kBAAkB,MAAgB,OAAyB;AACzE,uBAAqB,MAAM,KAAK;AAChC,SAAO,KAAK;AAAA,IACV,CAAC,KAAK,OAAO,UAAU,KAAK,IAAI,KAAK,KAAK,IAAI,QAAS,MAAM,KAAK,CAAY,CAAC;AAAA,IAC/E;AAAA,EACF;AACF;AAEA,SAAS,UAAU,QAA0B;AAC3C,SAAO,KAAK,KAAK,OAAO,OAAO,CAAC,KAAK,UAAU,MAAM,SAAS,GAAG,CAAC,CAAC;AACrE;AAEA,SAAS,qBAAqB,MAAgB,OAAuB;AACnE,MAAI,KAAK,WAAW,MAAM,QAAQ;AAChC,UAAM,IAAI,MAAM,8BAA8B,KAAK,MAAM,QAAQ,MAAM,MAAM,EAAE;AAAA,EACjF;AACF;;;ACzBA,eAAsB,UAAU,SAAqD;AACnF,QAAM,EAAE,WAAW,IAAI,MAAM,WAAW;AAAA,IACtC,OAAO,QAAQ;AAAA,IACf,OAAO,CAAC,QAAQ,IAAI;AAAA,IACpB,SAAS,QAAQ;AAAA,IACjB,aAAa,QAAQ;AAAA,EACvB,CAAC;AACD,QAAM,YAAY,WAAW,CAAC;AAC9B,MAAI,cAAc,OAAW,OAAM,IAAI,MAAM,wCAAwC;AACrF,SAAO,EAAE,UAAU;AACrB;AAEA,eAAsB,WAAW,SAAuD;AACtF,iBAAe,QAAQ,WAAW;AAClC,MAAI,QAAQ,MAAM,WAAW,EAAG,QAAO,EAAE,YAAY,CAAC,EAAE;AACxD,QAAM,UAAU,MAAM,QAAQ,OAAO,UAAU,QAAQ,MAAM,cAAc,QAAQ,MAAM,MAAM,CAAC;AAChG,QAAM,UAAU,MAAM;AAAA,IAAmB;AAAA,IAAS,YAAY,QAAQ,WAAW;AAAA,IAAG,CAAC,UACnF,gBAAgB,QAAQ,OAAO,OAAO,OAAO;AAAA,EAC/C;AACA,QAAM,aAAa,QAAQ,KAAK;AAChC,MAAI,WAAW,WAAW,QAAQ,MAAM,QAAQ;AAC9C,UAAM,IAAI;AAAA,MACR,4BAA4B,WAAW,MAAM,mBAAmB,QAAQ,MAAM,MAAM;AAAA,IACtF;AAAA,EACF;AACA,SAAO,EAAE,WAAW;AACtB;AAEA,eAAsB,iBACpB,SACiC;AACjC,iBAAe,QAAQ,WAAW;AAClC,MAAI,QAAQ,MAAM,WAAW,EAAG,QAAO,EAAE,YAAY,CAAC,EAAE;AACxD,QAAM,UAAU,MAAM,QAAQ,OAAO,UAAU,QAAQ,MAAM,cAAc,QAAQ,MAAM,MAAM,CAAC;AAChG,QAAM,UAAU,MAAM;AAAA,IAAmB;AAAA,IAAS,YAAY,QAAQ,WAAW;AAAA,IAAG,CAAC,UACnF,iBAAiB,QAAQ,OAAO,OAAO,OAAO;AAAA,EAChD;AACA,QAAM,aAAa,QAAQ,KAAK;AAChC,MAAI,WAAW,WAAW,QAAQ,MAAM,QAAQ;AAC9C,UAAM,IAAI;AAAA,MACR,mCAAmC,WAAW,MAAM,mBAAmB,QAAQ,MAAM,MAAM;AAAA,IAC7F;AAAA,EACF;AACA,SAAO,EAAE,WAAW;AACtB;AAEA,eAAsB,iBACpB,SACiC;AACjC,iBAAe,QAAQ,WAAW;AAClC,QAAM,YAAY,MAAM;AAAA,IACtB,MAAM;AACJ,qBAAe,QAAQ,WAAW;AAClC,aAAO,QAAQ,MAAM,WAAW,QAAQ,OAAO,iBAAiB,QAAQ,WAAW,CAAC;AAAA,IACtF;AAAA,IACA,eAAe,OAAO;AAAA,IACtB,EAAE,WAAW,OAAO,aAAa,QAAQ,YAAY;AAAA,EACvD;AACA,iBAAe,QAAQ,WAAW;AAClC,0BAAwB,WAAW,OAAO;AAC1C,SAAO,EAAE,UAAU;AACrB;AAQA,eAAsB,eACpB,SAC4C;AAC5C,iBAAe,QAAQ,WAAW;AAClC,QAAM,WAAW,iBAAiB,QAAQ,WAAW,OAAO;AAC5D,QAAM,YAAY,SAAS;AAAA,IAAQ,CAAC,MAAM,kBACxC,KAAK,MAAM,IAAI,CAAC,UAAU,EAAE,eAAe,KAAK,EAAE;AAAA,EACpD;AACA,QAAM,mBAAmB,YAAY,QAAQ,WAAW;AAExD,MAAI,WAAW,WAAW,QAAQ,UAAU,QAAW;AACrD,UAAM,UAAU,MAAM,WAAW,UAAU,QAAQ,MAAM,cAAc,UAAU,UAAU,CAAC,CAAC;AAC7F,UAAM,UAAU,MAAM,mBAAmB,SAAS,kBAAkB,OAAO,UAAU;AACnF,YAAM,aAAa,MAAM;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM,IAAI,CAAC,SAAS,KAAK,IAAI;AAAA,QAC7B;AAAA,MACF;AACA,wBAAkB,aAAa,WAAW,QAAQ,MAAM,MAAM;AAC9D,aAAO,MAAM,IAAI,CAAC,MAAM,WAAW;AAAA,QACjC,eAAe,KAAK;AAAA,QACpB,WAAW,WAAW,KAAK;AAAA,MAC7B,EAAE;AAAA,IACJ,CAAC;AACD,UAAM,aAAa,gBAAgB,QAAQ,KAAK,CAAC;AACjD,WAAO;AAAA,MACL,WAAW,SAAS,IAAI,CAAC,MAAM,UAAU,iBAAiB,MAAM,WAAW,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC;AAAA,IAC9F;AAAA,EACF;AAEA,QAAM,EAAE,OAAO,OAAO,IAAI,QAAQ;AAClC,QAAM,CAAC,cAAc,aAAa,IAAI,MAAM,QAAQ,IAAI;AAAA,IACtD;AAAA,MACE,MAAM,WAAW,UAAU,MAAM,cAAc,UAAU,UAAU,CAAC,CAAC;AAAA,MACrE;AAAA,MACA,OAAO,UAAU;AACf,cAAM,aAAa,MAAM;AAAA,UACvB;AAAA,UACA,MAAM,IAAI,CAAC,SAAS,KAAK,IAAI;AAAA,UAC7B;AAAA,QACF;AACA,0BAAkB,aAAa,WAAW,QAAQ,MAAM,MAAM;AAC9D,eAAO,MAAM,IAAI,CAAC,MAAM,WAAW;AAAA,UACjC,eAAe,KAAK;AAAA,UACpB,WAAW,WAAW,KAAK;AAAA,QAC7B,EAAE;AAAA,MACJ;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM,WAAW,UAAU,OAAO,cAAc,UAAU,UAAU,CAAC,CAAC;AAAA,MACtE;AAAA,MACA,OAAO,UAAU;AACf,cAAM,aAAa,MAAM;AAAA,UACvB;AAAA,UACA,MAAM,IAAI,CAAC,SAAS,KAAK,IAAI;AAAA,UAC7B;AAAA,QACF;AACA,0BAAkB,oBAAoB,WAAW,QAAQ,MAAM,MAAM;AACrE,eAAO,MAAM,IAAI,CAAC,MAAM,WAAW;AAAA,UACjC,eAAe,KAAK;AAAA,UACpB,WAAW,WAAW,KAAK;AAAA,QAC7B,EAAE;AAAA,MACJ;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,kBAAkB,gBAAgB,aAAa,KAAK,CAAC;AAC3D,QAAM,mBAAmB,gBAAgB,cAAc,KAAK,CAAC;AAC7D,SAAO;AAAA,IACL,WAAW,SAAS,IAAI,CAAC,MAAM,UAAU;AACvC,YAAM,aAAa,gBAAgB,IAAI,KAAK,KAAK,CAAC;AAClD,YAAM,mBAAmB,iBAAiB,IAAI,KAAK,KAAK,CAAC;AACzD,UAAI,WAAW,WAAW,iBAAiB,QAAQ;AACjD,cAAM,IAAI;AAAA,UACR,6BAA6B,WAAW,MAAM,cAAc,iBAAiB,MAAM,gCAAgC,KAAK,EAAE;AAAA,QAC5H;AAAA,MACF;AACA,aAAO,iBAAiB,MAAM,YAAY,gBAAgB;AAAA,IAC5D,CAAC;AAAA,EACH;AACF;AAEA,eAAe,gBACb,OACA,OACA,SACsB;AACtB,iBAAe,QAAQ,WAAW;AAClC,QAAM,aAAa,MAAM;AAAA,IACvB,MAAM,MAAM,WAAW,OAAO,iBAAiB,QAAQ,WAAW,CAAC;AAAA,IACnE,eAAe,OAAO;AAAA,IACtB,EAAE,WAAW,OAAO,aAAa,QAAQ,YAAY;AAAA,EACvD;AACA,iBAAe,QAAQ,WAAW;AAClC,aAAW,CAAC,OAAO,SAAS,KAAK,WAAW,QAAQ,GAAG;AACrD,2BAAuB,WAAW,MAAM,YAAY,KAAK;AAAA,EAC3D;AACA,SAAO;AACT;AAEA,eAAe,iBACb,OACA,OACA,SAC4B;AAC5B,iBAAe,QAAQ,WAAW;AAClC,QAAM,aAAa,MAAM;AAAA,IACvB,MAAM,MAAM,WAAW,OAAO,iBAAiB,QAAQ,WAAW,CAAC;AAAA,IACnE,eAAe,OAAO;AAAA,IACtB,EAAE,WAAW,OAAO,aAAa,QAAQ,YAAY;AAAA,EACvD;AACA,iBAAe,QAAQ,WAAW;AAClC,aAAW,CAAC,OAAO,SAAS,KAAK,WAAW,QAAQ,EAAG,yBAAwB,WAAW,KAAK;AAC/F,SAAO;AACT;AAEA,SAAS,iBACP,WACA,SACA;AACA,QAAM,MAAM,oBAAI,IAAY;AAC5B,SAAO,UAAU,IAAI,CAAC,UAAU,UAAU;AACxC,UAAM,KAAK,QAAQ,KAAK,UAAU,KAAK,KAAK,MAAM,KAAK;AACvD,QAAI,GAAG,WAAW,EAAG,OAAM,IAAI,UAAU,yCAAyC;AAClF,QAAI,IAAI,IAAI,EAAE,EAAG,OAAM,IAAI,UAAU,mCAAmC,EAAE,EAAE;AAC5E,QAAI,IAAI,EAAE;AACV,UAAM,UAAU,QAAQ,QAAQ,UAAU,KAAK;AAC/C,QAAI,MAAM,QAAQ,OAAO,KAAK,QAAQ,WAAW;AAC/C,YAAM,IAAI,UAAU,qBAAqB,EAAE,uCAAuC;AACpF,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,UAAU,QAAQ,WAAW,UAAU,KAAK;AAAA,MAC5C,OAAO,MAAM,QAAQ,OAAO,IAAI,UAAU,CAAC,OAAO;AAAA,IACpD;AAAA,EACF,CAAC;AACH;AAEA,SAAS,iBACP,MACA,YACA,kBAC+B;AAC/B,MAAI,SAAwC;AAAA,IAC1C,IAAI,KAAK;AAAA,IACT,UAAU,KAAK;AAAA,IACf;AAAA,EACF;AACA,MAAI,KAAK,aAAa,QAAW;AAC/B,aAAS,EAAE,GAAG,QAAQ,UAAU,KAAK,SAAS;AAAA,EAChD;AACA,MAAI,qBAAqB,QAAW;AAClC,aAAS,EAAE,GAAG,QAAQ,iBAAiB;AAAA,EACzC;AACA,SAAO;AACT;AAEA,SAAS,gBACP,OACkB;AAClB,QAAM,SAAS,oBAAI,IAAiB;AACpC,aAAW,QAAQ,OAAO;AACxB,UAAM,OAAO,OAAO,IAAI,KAAK,aAAa,KAAK,CAAC;AAChD,SAAK,KAAK,KAAK,SAAS;AACxB,WAAO,IAAI,KAAK,eAAe,IAAI;AAAA,EACrC;AACA,SAAO;AACT;AAEA,SAAS,kBAAkB,MAAc,QAAgB,UAAwB;AAC/E,MAAI,WAAW;AACb,UAAM,IAAI,MAAM,GAAG,IAAI,mBAAmB,MAAM,mBAAmB,QAAQ,QAAQ;AACvF;AAEA,SAAS,eAAe,SAAsE;AAC5F,SAAO,QAAQ,YAAY,UAAa,QAAQ,YAAY,QACxD,SACA,oBAAoB,QAAQ,OAAO;AACzC;AAEA,SAAS,iBAAiB,aAAoE;AAC5F,SAAO,gBAAgB,SAAY,SAAY,EAAE,YAAY;AAC/D;AAEA,SAAS,MAAS,OAAY,MAAqB;AACjD,QAAM,SAAgB,CAAC;AACvB,WAAS,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS;AACjD,WAAO,KAAK,MAAM,MAAM,OAAO,QAAQ,IAAI,CAAC;AAC9C,SAAO;AACT;AAEA,SAAS,UAAU,YAAgC,UAA0B;AAC3E,MAAI,eAAe,OAAW,QAAO;AACrC,MAAI,CAAC,OAAO,cAAc,UAAU,KAAK,aAAa,GAAG;AACvD,UAAM,IAAI,WAAW,8DAA8D;AAAA,EACrF;AACA,SAAO;AACT;AAEA,SAAS,YAAY,YAAwC;AAC3D,MAAI,eAAe,OAAW,QAAO;AACrC,MAAI,CAAC,OAAO,cAAc,UAAU,KAAK,aAAa,GAAG;AACvD,UAAM,IAAI,WAAW,uDAAuD;AAAA,EAC9E;AACA,SAAO;AACT;AAEA,SAAS,uBACP,WACA,YACA,OACM;AACN,MAAI,UAAU,OAAO,WAAW,GAAG;AACjC,UAAM,IAAI,UAAU,qDAAqD,KAAK,EAAE;AAAA,EAClF;AACA,MAAI,CAAC,UAAU,OAAO,MAAM,OAAO,QAAQ,GAAG;AAC5C,UAAM,IAAI,UAAU,yDAAyD,KAAK,EAAE;AAAA,EACtF;AACA,MAAI,eAAe,QAAW;AAC5B,QAAI,CAAC,OAAO,cAAc,UAAU,KAAK,aAAa;AACpD,YAAM,IAAI,UAAU,4DAA4D;AAClF,QAAI,UAAU,OAAO,WAAW,YAAY;AAC1C,YAAM,IAAI;AAAA,QACR,4BAA4B,UAAU,OAAO,MAAM,wBAAwB,KAAK,cAAc,UAAU;AAAA,MAC1G;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,wBAAwB,WAA4B,OAA+B;AAC1F,QAAM,EAAE,SAAS,OAAO,IAAI,UAAU;AACtC,MAAI,QAAQ,WAAW,OAAO,QAAQ;AACpC,UAAM,IAAI,MAAM,uBAAuB,KAAK,oCAAoC;AAAA,EAClF;AACA,MAAI,CAAC,QAAQ,MAAM,CAAC,UAAU,OAAO,cAAc,KAAK,KAAK,SAAS,CAAC,GAAG;AACxE,UAAM,IAAI,UAAU,uBAAuB,KAAK,uBAAuB;AAAA,EACzE;AACA,MAAI,IAAI,IAAI,OAAO,EAAE,SAAS,QAAQ,QAAQ;AAC5C,UAAM,IAAI,UAAU,uBAAuB,KAAK,wBAAwB;AAAA,EAC1E;AACA,MAAI,CAAC,OAAO,MAAM,OAAO,QAAQ,GAAG;AAClC,UAAM,IAAI,UAAU,uBAAuB,KAAK,yBAAyB;AAAA,EAC3E;AACF;","names":[]}
@@ -1,42 +1,12 @@
1
- export { C as CreateCompletionBaseOptions, a as CreateCompletionInput, b as CreateCompletionOptions, c as CreateCompletionResult, d as CreateCompletionStreamOptions, e as CreateParsedCompletionOptions, f as CreateParsedCompletionResult, g as createCompletion, h as createCompletionStream, i as createParsedCompletion, j as isJsonValue, k as isStreamingCompletionModel } from '../json-BVPssigK.js';
2
- import { D as Document, M as Message, C as CompletionModel, i as CompletionTool, L as ToolChoice, l as JsonValue, J as JsonObject, f as CompletionRequest, g as CompletionResponse } from '../types-G12i56s2.js';
3
- export { A as AssistantContent, a as AssistantGenerationMetadata, b as AssistantMessage, c as AssistantMessageOptions, N as CompletionCapabilityError, O as CompletionModelCapabilities, d as CompletionModelInfo, e as CompletionModelMetadataOptions, h as CompletionSource, Q as CompletionStreamEvent, j as ContextUsage, R as DocumentContent, I as ImageContent, V as ImageDetail, k as JsonPrimitive, m as MessageOptions, n as ModelContextLimits, P as ProviderTool, o as ProviderToolCall, W as Reasoning, X as ReasoningContent, Y as ReasoningContentType, Z as StreamingCompletionModel, S as SystemMessage, T as Text, p as ToolCall, _ as ToolCallArgumentsMode, q as ToolContent, r as ToolDefinition, $ as ToolFunction, s as ToolMessage, t as ToolResult, u as ToolResultContent, v as ToolResultMessageOptions, w as ToolResultOptions, U as Usage, a0 as UsageDetails, x as UserContent, y as UserMessage, a1 as assertCompletionRequestSupported, z as calculateContextUsage, B as getAssistantGenerationMetadata, E as isProviderTool, H as isToolResultContentArray, a2 as reasoningDisplayText, F as resolveCompletionModelInfo, K as serializeToolResultOutput, a3 as textFromAssistantContent, G as withContextUsage } from '../types-G12i56s2.js';
1
+ export { M as ModelCallOptions } from '../model-call-options-CZkSw_xN.js';
2
+ export { R as RetryContext, a as RetryOptions, b as RetrySetting } from '../retry-CjvSlKGW.js';
3
+ import { D as Document, M as Message } from '../types-DgvozfPc.js';
4
+ export { A as AssistantContentPart, a as AssistantGenerationMetadata, b as AssistantMessage, Q as CompletionCapabilityError, C as CompletionFinishReason, c as CompletionModel, V as CompletionModelCapabilities, d as CompletionModelInfo, e as CompletionModelStreamEvent, f as CompletionRequest, g as CompletionResponse, h as CompletionResult, i as CompletionSource, j as CompletionStreamEvent, W as CompletionStreamPart, k as CompletionTool, l as ContextUsage, F as FileData, m as FilePart, I as ImageDetail, n as ImagePart, J as JsonObject, o as JsonPrimitive, p as JsonValue, q as ModelContextLimits, P as ProviderTool, r as ProviderToolCall, R as ReasoningContentType, s as ReasoningDetail, t as ReasoningPart, X as StreamingCompletionModel, S as SystemMessage, T as TextPart, Y as ToolApprovalResponsePart, Z as ToolCallArgumentsMode, u as ToolCallPart, v as ToolChoice, w as ToolDefinition, _ as ToolInteractionResponsePart, x as ToolMessage, $ as ToolQuestionAnswer, a0 as ToolQuestionResponsePart, y as ToolResultContentPart, z as ToolResultOutput, B as ToolResultPart, U as Usage, a1 as UsageDetails, E as UserContentPart, G as UserMessage, a2 as assertCompletionRequestSupported, H as calculateContextUsage, K as getAssistantGenerationMetadata, L as isProviderTool, a3 as reasoningDisplayText, N as resolveModelContextLimits, a4 as textFromAssistantContent, O as withContextUsage } from '../types-DgvozfPc.js';
5
+ export { C as COMPLETION_PROVIDER_OUTPUT_ERROR_CODE, a as CompletionBaseOptions, b as CompletionInput, c as CompletionProviderOutputError, d as CompletionProviderOutputErrorKind, e as CompletionProviderOutputErrorOptions, f as CompletionStructuredOutputError, g as CompletionStructuredOutputPhase, G as GenerateCompletionOptions, h as GenerateStructuredCompletionOptions, M as MessageMetadataSchema, S as StreamCompletionOptions, i as StreamStructuredCompletionOptions, j as createMessageSchema, k as generateCompletion, l as isJsonValue, m as isMessage, r as isStreamingCompletionModel, n as messageSchema, o as messagesSchema, p as parseMessage, q as parseMessages, s as streamCompletion } from '../provider-output-error-BEwDgVv3.js';
4
6
  import '../zod-schema-C7F4clpm.js';
5
7
  import 'zod';
6
8
 
7
9
  declare function normalizeDocuments(documents: Document[]): Message | undefined;
8
10
  declare function formatDocument(document: Document): string;
9
11
 
10
- type ModelNameOf<M extends CompletionModel> = M extends CompletionModel<unknown, infer ModelName> ? ModelName : string;
11
- type RawResponseOf<M extends CompletionModel> = M extends CompletionModel<infer RawResponse, infer _ModelName> ? RawResponse : unknown;
12
- declare class CompletionRequestBuilder<M extends CompletionModel = CompletionModel> {
13
- private readonly model;
14
- private readonly promptMessage;
15
- private requestModel;
16
- private instructionBlocks;
17
- private history;
18
- private docs;
19
- private toolDefs;
20
- private providerToolDefs;
21
- private temp;
22
- private maxTokenCount;
23
- private choice;
24
- private params;
25
- private schema;
26
- constructor(model: M, promptMessage: Message);
27
- modelOverride(model: ModelNameOf<M> | undefined): this;
28
- instructions(instructions: string | undefined): this;
29
- messages(messages: Message[]): this;
30
- documents(documents: Document[]): this;
31
- tools(tools: CompletionTool[]): this;
32
- temperature(temperature: number | undefined): this;
33
- maxTokens(maxTokens: number | undefined): this;
34
- toolChoice(toolChoice: ToolChoice | undefined): this;
35
- additionalParams(additionalParams: JsonValue | undefined): this;
36
- outputSchema(outputSchema: JsonObject | undefined): this;
37
- build(): CompletionRequest<ModelNameOf<M>>;
38
- send(): Promise<CompletionResponse<RawResponseOf<M>>>;
39
- private buildInstructions;
40
- }
41
-
42
- export { CompletionModel, CompletionRequest, CompletionRequestBuilder, CompletionResponse, CompletionTool, Document, JsonObject, JsonValue, Message, ToolChoice, formatDocument, normalizeDocuments };
12
+ export { Document, Message, formatDocument, normalizeDocuments };
@@ -1,57 +1,62 @@
1
1
  import {
2
- CompletionRequestBuilder,
3
2
  formatDocument,
4
3
  normalizeDocuments
5
- } from "../chunk-Q25IWLBT.js";
4
+ } from "../chunk-D4PACGPA.js";
6
5
  import {
7
- createCompletion,
8
- createCompletionStream,
9
- createParsedCompletion,
10
- isStreamingCompletionModel
11
- } from "../chunk-MC3CCKEB.js";
12
- import {
13
- AssistantContent,
6
+ COMPLETION_PROVIDER_OUTPUT_ERROR_CODE,
14
7
  CompletionCapabilityError,
15
- Message,
16
- ToolContent,
8
+ CompletionProviderOutputError,
9
+ CompletionStructuredOutputError,
17
10
  Usage,
18
- UserContent,
19
11
  assertCompletionRequestSupported,
20
12
  calculateContextUsage,
13
+ generateCompletion,
21
14
  getAssistantGenerationMetadata,
22
- isJsonValue,
23
15
  isProviderTool,
24
- isToolResultContentArray,
16
+ isStreamingCompletionModel,
25
17
  reasoningDisplayText,
26
- resolveCompletionModelInfo,
27
- serializeToolResultOutput,
18
+ resolveModelContextLimits,
19
+ streamCompletion,
28
20
  textFromAssistantContent,
29
21
  withContextUsage
30
- } from "../chunk-ADH7NNCS.js";
31
- import "../chunk-WQKHFADH.js";
22
+ } from "../chunk-7PHMK7W4.js";
23
+ import "../chunk-7JLAIN6E.js";
24
+ import {
25
+ createMessageSchema,
26
+ isMessage,
27
+ messageSchema,
28
+ messagesSchema,
29
+ parseMessage,
30
+ parseMessages
31
+ } from "../chunk-QGX73TSQ.js";
32
+ import {
33
+ isJsonValue
34
+ } from "../chunk-3XQGVDU5.js";
35
+ import "../chunk-3RWESPUG.js";
32
36
  export {
33
- AssistantContent,
37
+ COMPLETION_PROVIDER_OUTPUT_ERROR_CODE,
34
38
  CompletionCapabilityError,
35
- CompletionRequestBuilder,
36
- Message,
37
- ToolContent,
39
+ CompletionProviderOutputError,
40
+ CompletionStructuredOutputError,
38
41
  Usage,
39
- UserContent,
40
42
  assertCompletionRequestSupported,
41
43
  calculateContextUsage,
42
- createCompletion,
43
- createCompletionStream,
44
- createParsedCompletion,
44
+ createMessageSchema,
45
45
  formatDocument,
46
+ generateCompletion,
46
47
  getAssistantGenerationMetadata,
47
48
  isJsonValue,
49
+ isMessage,
48
50
  isProviderTool,
49
51
  isStreamingCompletionModel,
50
- isToolResultContentArray,
52
+ messageSchema,
53
+ messagesSchema,
51
54
  normalizeDocuments,
55
+ parseMessage,
56
+ parseMessages,
52
57
  reasoningDisplayText,
53
- resolveCompletionModelInfo,
54
- serializeToolResultOutput,
58
+ resolveModelContextLimits,
59
+ streamCompletion,
55
60
  textFromAssistantContent,
56
61
  withContextUsage
57
62
  };
@@ -0,0 +1,34 @@
1
+ type TextChunk = Readonly<{
2
+ index: number;
3
+ text: string;
4
+ start: number;
5
+ end: number;
6
+ }>;
7
+ type ChunkTextOptions = Readonly<{
8
+ text: string;
9
+ strategy: "fixed";
10
+ maxSize: number;
11
+ overlap?: number;
12
+ }> | Readonly<{
13
+ text: string;
14
+ strategy: "recursive";
15
+ maxSize: number;
16
+ overlap?: number;
17
+ separators: readonly string[];
18
+ }>;
19
+ declare function chunkText(options: ChunkTextOptions): readonly TextChunk[];
20
+
21
+ type PdfTextPage = Readonly<{
22
+ pageNumber: number;
23
+ text: string;
24
+ }>;
25
+ type ExtractPdfTextOptions = Readonly<{
26
+ data: Uint8Array;
27
+ abortSignal?: AbortSignal;
28
+ }>;
29
+ type ExtractPdfTextResult = Readonly<{
30
+ pages: readonly PdfTextPage[];
31
+ }>;
32
+ declare function extractPdfText(options: ExtractPdfTextOptions): Promise<ExtractPdfTextResult>;
33
+
34
+ export { type ChunkTextOptions, type ExtractPdfTextOptions, type ExtractPdfTextResult, type PdfTextPage, type TextChunk, chunkText, extractPdfText };