@tachu/extensions 1.0.0-beta.1 → 1.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/CHANGELOG.md +41 -66
  2. package/README.md +83 -708
  3. package/README_ZH.md +82 -696
  4. package/dist/backends/file.d.ts +6 -6
  5. package/dist/backends/file.d.ts.map +1 -1
  6. package/dist/backends/file.js +27 -11
  7. package/dist/backends/file.js.map +1 -1
  8. package/dist/backends/terminal.d.ts +6 -6
  9. package/dist/backends/terminal.d.ts.map +1 -1
  10. package/dist/backends/terminal.js +31 -7
  11. package/dist/backends/terminal.js.map +1 -1
  12. package/dist/backends/web.d.ts +6 -6
  13. package/dist/backends/web.d.ts.map +1 -1
  14. package/dist/backends/web.js +10 -8
  15. package/dist/backends/web.js.map +1 -1
  16. package/dist/common/net.d.ts +8 -0
  17. package/dist/common/net.d.ts.map +1 -1
  18. package/dist/common/net.js +39 -24
  19. package/dist/common/net.js.map +1 -1
  20. package/dist/common/path.d.ts +38 -5
  21. package/dist/common/path.d.ts.map +1 -1
  22. package/dist/common/path.js +55 -13
  23. package/dist/common/path.js.map +1 -1
  24. package/dist/common/process.js.map +1 -1
  25. package/dist/index.d.ts +7 -3
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +7 -3
  28. package/dist/index.js.map +1 -1
  29. package/dist/mcp/sse-adapter.d.ts +45 -33
  30. package/dist/mcp/sse-adapter.d.ts.map +1 -1
  31. package/dist/mcp/sse-adapter.js +59 -34
  32. package/dist/mcp/sse-adapter.js.map +1 -1
  33. package/dist/mcp/stdio-adapter.d.ts +45 -33
  34. package/dist/mcp/stdio-adapter.d.ts.map +1 -1
  35. package/dist/mcp/stdio-adapter.js +59 -34
  36. package/dist/mcp/stdio-adapter.js.map +1 -1
  37. package/dist/memory/fs-memory-system.d.ts +288 -0
  38. package/dist/memory/fs-memory-system.d.ts.map +1 -0
  39. package/dist/memory/fs-memory-system.js +482 -0
  40. package/dist/memory/fs-memory-system.js.map +1 -0
  41. package/dist/memory/index.d.ts +5 -0
  42. package/dist/memory/index.d.ts.map +1 -0
  43. package/dist/memory/index.js +5 -0
  44. package/dist/memory/index.js.map +1 -0
  45. package/dist/memory/projection-outbox.d.ts +69 -0
  46. package/dist/memory/projection-outbox.d.ts.map +1 -0
  47. package/dist/memory/projection-outbox.js +187 -0
  48. package/dist/memory/projection-outbox.js.map +1 -0
  49. package/dist/memory/projection-projector.d.ts +16 -0
  50. package/dist/memory/projection-projector.d.ts.map +1 -0
  51. package/dist/memory/projection-projector.js +56 -0
  52. package/dist/memory/projection-projector.js.map +1 -0
  53. package/dist/memory/projection-worker.d.ts +28 -0
  54. package/dist/memory/projection-worker.d.ts.map +1 -0
  55. package/dist/memory/projection-worker.js +84 -0
  56. package/dist/memory/projection-worker.js.map +1 -0
  57. package/dist/observability/jsonl-emitter.d.ts +25 -25
  58. package/dist/observability/jsonl-emitter.d.ts.map +1 -1
  59. package/dist/observability/jsonl-emitter.js +25 -25
  60. package/dist/observability/jsonl-emitter.js.map +1 -1
  61. package/dist/observability/otel-emitter.d.ts +23 -23
  62. package/dist/observability/otel-emitter.d.ts.map +1 -1
  63. package/dist/observability/otel-emitter.js +39 -30
  64. package/dist/observability/otel-emitter.js.map +1 -1
  65. package/dist/providers/anthropic.d.ts +51 -32
  66. package/dist/providers/anthropic.d.ts.map +1 -1
  67. package/dist/providers/anthropic.js +293 -58
  68. package/dist/providers/anthropic.js.map +1 -1
  69. package/dist/providers/gemini.d.ts +115 -0
  70. package/dist/providers/gemini.d.ts.map +1 -0
  71. package/dist/providers/gemini.js +901 -0
  72. package/dist/providers/gemini.js.map +1 -0
  73. package/dist/providers/index.d.ts +2 -0
  74. package/dist/providers/index.d.ts.map +1 -1
  75. package/dist/providers/index.js +2 -0
  76. package/dist/providers/index.js.map +1 -1
  77. package/dist/providers/mock.d.ts +67 -24
  78. package/dist/providers/mock.d.ts.map +1 -1
  79. package/dist/providers/mock.js +122 -41
  80. package/dist/providers/mock.js.map +1 -1
  81. package/dist/providers/openai.d.ts +70 -35
  82. package/dist/providers/openai.d.ts.map +1 -1
  83. package/dist/providers/openai.js +330 -50
  84. package/dist/providers/openai.js.map +1 -1
  85. package/dist/providers/qwen.d.ts +146 -0
  86. package/dist/providers/qwen.d.ts.map +1 -0
  87. package/dist/providers/qwen.js +672 -0
  88. package/dist/providers/qwen.js.map +1 -0
  89. package/dist/safety/default-gate.d.ts +112 -0
  90. package/dist/safety/default-gate.d.ts.map +1 -0
  91. package/dist/safety/default-gate.js +188 -0
  92. package/dist/safety/default-gate.js.map +1 -0
  93. package/dist/safety/index.d.ts +2 -0
  94. package/dist/safety/index.d.ts.map +1 -0
  95. package/dist/safety/index.js +2 -0
  96. package/dist/safety/index.js.map +1 -0
  97. package/dist/tools/_shared/web-client.d.ts +18 -0
  98. package/dist/tools/_shared/web-client.d.ts.map +1 -0
  99. package/dist/tools/_shared/web-client.js +46 -0
  100. package/dist/tools/_shared/web-client.js.map +1 -0
  101. package/dist/tools/apply-patch/executor.d.ts.map +1 -1
  102. package/dist/tools/apply-patch/executor.js +54 -4
  103. package/dist/tools/apply-patch/executor.js.map +1 -1
  104. package/dist/tools/edit-file/executor.d.ts +32 -0
  105. package/dist/tools/edit-file/executor.d.ts.map +1 -0
  106. package/dist/tools/edit-file/executor.js +84 -0
  107. package/dist/tools/edit-file/executor.js.map +1 -0
  108. package/dist/tools/fetch-url/descriptor.md +6 -0
  109. package/dist/tools/fetch-url/executor.d.ts +8 -0
  110. package/dist/tools/fetch-url/executor.d.ts.map +1 -1
  111. package/dist/tools/fetch-url/executor.js +83 -2
  112. package/dist/tools/fetch-url/executor.js.map +1 -1
  113. package/dist/tools/git-blame/executor.d.ts +24 -0
  114. package/dist/tools/git-blame/executor.d.ts.map +1 -0
  115. package/dist/tools/git-blame/executor.js +76 -0
  116. package/dist/tools/git-blame/executor.js.map +1 -0
  117. package/dist/tools/git-branch/executor.d.ts +22 -0
  118. package/dist/tools/git-branch/executor.d.ts.map +1 -0
  119. package/dist/tools/git-branch/executor.js +81 -0
  120. package/dist/tools/git-branch/executor.js.map +1 -0
  121. package/dist/tools/git-diff/executor.d.ts +37 -0
  122. package/dist/tools/git-diff/executor.d.ts.map +1 -0
  123. package/dist/tools/git-diff/executor.js +156 -0
  124. package/dist/tools/git-diff/executor.js.map +1 -0
  125. package/dist/tools/git-log/executor.d.ts +31 -0
  126. package/dist/tools/git-log/executor.d.ts.map +1 -0
  127. package/dist/tools/git-log/executor.js +65 -0
  128. package/dist/tools/git-log/executor.js.map +1 -0
  129. package/dist/tools/git-show/executor.d.ts +22 -0
  130. package/dist/tools/git-show/executor.d.ts.map +1 -0
  131. package/dist/tools/git-show/executor.js +74 -0
  132. package/dist/tools/git-show/executor.js.map +1 -0
  133. package/dist/tools/git-status/executor.d.ts +25 -0
  134. package/dist/tools/git-status/executor.d.ts.map +1 -0
  135. package/dist/tools/git-status/executor.js +120 -0
  136. package/dist/tools/git-status/executor.js.map +1 -0
  137. package/dist/tools/glob/executor.d.ts +18 -0
  138. package/dist/tools/glob/executor.d.ts.map +1 -0
  139. package/dist/tools/glob/executor.js +47 -0
  140. package/dist/tools/glob/executor.js.map +1 -0
  141. package/dist/tools/index.d.ts +1 -1
  142. package/dist/tools/index.d.ts.map +1 -1
  143. package/dist/tools/index.js +459 -4
  144. package/dist/tools/index.js.map +1 -1
  145. package/dist/tools/list-dir/executor.d.ts.map +1 -1
  146. package/dist/tools/list-dir/executor.js +5 -3
  147. package/dist/tools/list-dir/executor.js.map +1 -1
  148. package/dist/tools/multi-edit/executor.d.ts +29 -0
  149. package/dist/tools/multi-edit/executor.d.ts.map +1 -0
  150. package/dist/tools/multi-edit/executor.js +37 -0
  151. package/dist/tools/multi-edit/executor.js.map +1 -0
  152. package/dist/tools/read-file/executor.d.ts +5 -0
  153. package/dist/tools/read-file/executor.d.ts.map +1 -1
  154. package/dist/tools/read-file/executor.js +49 -5
  155. package/dist/tools/read-file/executor.js.map +1 -1
  156. package/dist/tools/run-shell/executor.d.ts +12 -1
  157. package/dist/tools/run-shell/executor.d.ts.map +1 -1
  158. package/dist/tools/run-shell/executor.js +105 -9
  159. package/dist/tools/run-shell/executor.js.map +1 -1
  160. package/dist/tools/run-tests/executor.d.ts +28 -0
  161. package/dist/tools/run-tests/executor.d.ts.map +1 -0
  162. package/dist/tools/run-tests/executor.js +161 -0
  163. package/dist/tools/run-tests/executor.js.map +1 -0
  164. package/dist/tools/run-typecheck/executor.d.ts +25 -0
  165. package/dist/tools/run-typecheck/executor.d.ts.map +1 -0
  166. package/dist/tools/run-typecheck/executor.js +83 -0
  167. package/dist/tools/run-typecheck/executor.js.map +1 -0
  168. package/dist/tools/search-code/executor.d.ts.map +1 -1
  169. package/dist/tools/search-code/executor.js +60 -30
  170. package/dist/tools/search-code/executor.js.map +1 -1
  171. package/dist/tools/shared.d.ts +26 -0
  172. package/dist/tools/shared.d.ts.map +1 -1
  173. package/dist/tools/shared.js +15 -0
  174. package/dist/tools/shared.js.map +1 -1
  175. package/dist/tools/todo-read/executor.d.ts +20 -0
  176. package/dist/tools/todo-read/executor.d.ts.map +1 -0
  177. package/dist/tools/todo-read/executor.js +26 -0
  178. package/dist/tools/todo-read/executor.js.map +1 -0
  179. package/dist/tools/todo-write/executor.d.ts +21 -0
  180. package/dist/tools/todo-write/executor.d.ts.map +1 -0
  181. package/dist/tools/todo-write/executor.js +38 -0
  182. package/dist/tools/todo-write/executor.js.map +1 -0
  183. package/dist/tools/web-fetch/descriptor.md +198 -0
  184. package/dist/tools/web-fetch/errors.d.ts +32 -0
  185. package/dist/tools/web-fetch/errors.d.ts.map +1 -0
  186. package/dist/tools/web-fetch/errors.js +91 -0
  187. package/dist/tools/web-fetch/errors.js.map +1 -0
  188. package/dist/tools/web-fetch/executor.d.ts +10 -0
  189. package/dist/tools/web-fetch/executor.d.ts.map +1 -0
  190. package/dist/tools/web-fetch/executor.js +191 -0
  191. package/dist/tools/web-fetch/executor.js.map +1 -0
  192. package/dist/tools/web-fetch/index.d.ts +4 -0
  193. package/dist/tools/web-fetch/index.d.ts.map +1 -0
  194. package/dist/tools/web-fetch/index.js +3 -0
  195. package/dist/tools/web-fetch/index.js.map +1 -0
  196. package/dist/tools/web-fetch/types.d.ts +157 -0
  197. package/dist/tools/web-fetch/types.d.ts.map +1 -0
  198. package/dist/tools/web-fetch/types.js +7 -0
  199. package/dist/tools/web-fetch/types.js.map +1 -0
  200. package/dist/tools/web-search/descriptor.md +89 -0
  201. package/dist/tools/web-search/errors.d.ts +33 -0
  202. package/dist/tools/web-search/errors.d.ts.map +1 -0
  203. package/dist/tools/web-search/errors.js +45 -0
  204. package/dist/tools/web-search/errors.js.map +1 -0
  205. package/dist/tools/web-search/executor.d.ts +10 -0
  206. package/dist/tools/web-search/executor.d.ts.map +1 -0
  207. package/dist/tools/web-search/executor.js +185 -0
  208. package/dist/tools/web-search/executor.js.map +1 -0
  209. package/dist/tools/web-search/index.d.ts +4 -0
  210. package/dist/tools/web-search/index.d.ts.map +1 -0
  211. package/dist/tools/web-search/index.js +3 -0
  212. package/dist/tools/web-search/index.js.map +1 -0
  213. package/dist/tools/web-search/types.d.ts +86 -0
  214. package/dist/tools/web-search/types.d.ts.map +1 -0
  215. package/dist/tools/web-search/types.js +7 -0
  216. package/dist/tools/web-search/types.js.map +1 -0
  217. package/dist/tools/write-file/executor.js +3 -3
  218. package/dist/tools/write-file/executor.js.map +1 -1
  219. package/dist/transformers/document-to-text.d.ts +11 -11
  220. package/dist/transformers/document-to-text.d.ts.map +1 -1
  221. package/dist/transformers/document-to-text.js +11 -11
  222. package/dist/transformers/document-to-text.js.map +1 -1
  223. package/dist/transformers/image-to-text.d.ts +15 -15
  224. package/dist/transformers/image-to-text.d.ts.map +1 -1
  225. package/dist/transformers/image-to-text.js +22 -21
  226. package/dist/transformers/image-to-text.js.map +1 -1
  227. package/dist/vector/index.d.ts +4 -2
  228. package/dist/vector/index.d.ts.map +1 -1
  229. package/dist/vector/index.js +2 -2
  230. package/dist/vector/index.js.map +1 -1
  231. package/dist/vector/local-fs-index.d.ts +59 -0
  232. package/dist/vector/local-fs-index.d.ts.map +1 -0
  233. package/dist/vector/local-fs-index.js +216 -0
  234. package/dist/vector/local-fs-index.js.map +1 -0
  235. package/dist/vector/qdrant.d.ts +11 -52
  236. package/dist/vector/qdrant.d.ts.map +1 -1
  237. package/dist/vector/qdrant.js +39 -105
  238. package/dist/vector/qdrant.js.map +1 -1
  239. package/package.json +27 -6
  240. package/dist/vector/local-fs.d.ts +0 -76
  241. package/dist/vector/local-fs.d.ts.map +0 -1
  242. package/dist/vector/local-fs.js +0 -153
  243. package/dist/vector/local-fs.js.map +0 -1
@@ -1,8 +1,14 @@
1
1
  import Anthropic from "@anthropic-ai/sdk";
2
2
  import { ProviderError, TimeoutError, } from "@tachu/core";
3
3
  import { withAbortTimeout } from "../common/net";
4
- const DEFAULT_TIMEOUT_MS = 60_000;
5
- const KNOWN_MODELS = [
4
+ /** `@tachu/core` tool-use 的 LLM 层超时;否则 Provider 会先 60s 掐断,Agentic 首包易失败。 */
5
+ const DEFAULT_TIMEOUT_MS = 120_000;
6
+ /**
7
+ * Anthropic `/v1/models` 返回结构(SDK 0.30+ 提供 `client.models.list`)。
8
+ *
9
+ * 仅在 SDK 升级或端点缺失时用作 fallback 映射参考,**不再作为硬编码清单返回**。
10
+ */
11
+ const FALLBACK_MODELS = [
6
12
  {
7
13
  modelName: "claude-3-5-sonnet-latest",
8
14
  capabilities: {
@@ -31,17 +37,88 @@ const KNOWN_MODELS = [
31
37
  },
32
38
  },
33
39
  ];
40
+ /**
41
+ * 将 Anthropic SDK 返回的原始 `ModelInfo` 适配为本项目统一的 {@link ModelInfo}。
42
+ *
43
+ * Claude 系列全部支持 streaming 与 tool use(tool use 以 `structured_outputs`
44
+ * 近似代表;在 `capabilities` 为 `null` 或字段缺失时保守回退为 `true`)。
45
+ */
46
+ const adaptSdkModelInfo = (raw) => {
47
+ const capabilities = raw.capabilities ?? undefined;
48
+ const supportsImage = capabilities?.image_input?.supported === true;
49
+ const supportsPdf = capabilities?.pdf_input?.supported === true;
50
+ const supportedModalities = ["text"];
51
+ if (supportsImage) {
52
+ supportedModalities.push("image");
53
+ }
54
+ if (supportsPdf) {
55
+ supportedModalities.push("file");
56
+ }
57
+ return {
58
+ modelName: raw.id,
59
+ capabilities: {
60
+ supportedModalities,
61
+ maxContextTokens: raw.max_input_tokens ?? 200_000,
62
+ supportsStreaming: true,
63
+ supportsFunctionCalling: capabilities?.structured_outputs?.supported !== false,
64
+ },
65
+ };
66
+ };
34
67
  const toAnthropicTools = (tools) => tools?.map((tool) => ({
35
68
  name: tool.name,
36
69
  description: tool.description,
37
70
  input_schema: tool.inputSchema,
38
71
  }));
72
+ const collectText = (content) => {
73
+ if (typeof content === "string") {
74
+ return content;
75
+ }
76
+ return content
77
+ .map((part) => (part.type === "text" ? part.text : ""))
78
+ .join("");
79
+ };
80
+ const toAnthropicContentBlocks = (content) => {
81
+ if (typeof content === "string") {
82
+ return content;
83
+ }
84
+ return content.map((part) => {
85
+ if (part.type === "text") {
86
+ return { type: "text", text: part.text };
87
+ }
88
+ if (part.type === "file") {
89
+ return {
90
+ type: "text",
91
+ text: `[file:${part.file.mimeType}:${part.file.name ?? part.file.uri ?? "inline"}]`,
92
+ };
93
+ }
94
+ // MessageImagePart → Anthropic image block
95
+ // 支持 data URL 与远端 URL 两种输入;Anthropic SDK 会根据 source.type 分派。
96
+ const url = part.image_url.url;
97
+ if (url.startsWith("data:")) {
98
+ const [header, data] = url.split(",", 2);
99
+ const mediaTypeMatch = /data:([^;,]+)(?:;base64)?/.exec(header ?? "");
100
+ const mediaType = mediaTypeMatch?.[1] ?? "image/png";
101
+ return {
102
+ type: "image",
103
+ source: {
104
+ type: "base64",
105
+ media_type: mediaType,
106
+ data: data ?? "",
107
+ },
108
+ };
109
+ }
110
+ return {
111
+ type: "image",
112
+ source: { type: "url", url },
113
+ };
114
+ });
115
+ };
39
116
  const toAnthropicMessages = (messages) => {
40
117
  const systemSegments = [];
41
118
  const converted = [];
42
119
  for (const message of messages) {
43
120
  if (message.role === "system") {
44
- systemSegments.push(message.content);
121
+ systemSegments.push(collectText(message.content));
45
122
  continue;
46
123
  }
47
124
  if (message.role === "tool") {
@@ -51,15 +128,38 @@ const toAnthropicMessages = (messages) => {
51
128
  {
52
129
  type: "tool_result",
53
130
  tool_use_id: message.toolCallId ?? message.name ?? "tool",
54
- content: message.content,
131
+ content: collectText(message.content),
55
132
  },
56
133
  ],
57
134
  });
58
135
  continue;
59
136
  }
137
+ if (message.role === "assistant" && message.toolCalls && message.toolCalls.length > 0) {
138
+ // Loop 回灌历史时,assistant 消息需把 text + tool_use 块混排。
139
+ // Anthropic 协议要求 tool_use 块位于同一条 assistant content 数组内,
140
+ // 且 `input` 为**对象**(不是 JSON 字符串,与 OpenAI 相反)。
141
+ const textContent = collectText(message.content).trim();
142
+ const blocks = [];
143
+ if (textContent.length > 0) {
144
+ blocks.push({ type: "text", text: textContent });
145
+ }
146
+ for (const call of message.toolCalls) {
147
+ blocks.push({
148
+ type: "tool_use",
149
+ id: call.id,
150
+ name: call.name,
151
+ input: call.arguments ?? {},
152
+ });
153
+ }
154
+ converted.push({
155
+ role: "assistant",
156
+ content: blocks,
157
+ });
158
+ continue;
159
+ }
60
160
  converted.push({
61
161
  role: message.role === "assistant" ? "assistant" : "user",
62
- content: message.content,
162
+ content: toAnthropicContentBlocks(message.content),
63
163
  });
64
164
  }
65
165
  return {
@@ -67,6 +167,50 @@ const toAnthropicMessages = (messages) => {
67
167
  messages: converted,
68
168
  };
69
169
  };
170
+ /**
171
+ * 把 Anthropic 响应的 content blocks 里 `type === "tool_use"` 的块解析为 `ToolCallRequest[]`。
172
+ *
173
+ * Anthropic 和 OpenAI 的关键差异:`tool_use.input` **已经是对象**,不是 JSON 字符串。
174
+ */
175
+ const parseAnthropicToolCalls = (content) => {
176
+ if (!Array.isArray(content)) {
177
+ return undefined;
178
+ }
179
+ const out = [];
180
+ for (const block of content) {
181
+ if (!block || typeof block !== "object")
182
+ continue;
183
+ const obj = block;
184
+ if (obj.type !== "tool_use")
185
+ continue;
186
+ const id = typeof obj.id === "string" && obj.id.length > 0 ? obj.id : `call-${out.length}`;
187
+ const name = typeof obj.name === "string" ? obj.name : "";
188
+ if (name.length === 0)
189
+ continue;
190
+ let input = {};
191
+ if (obj.input && typeof obj.input === "object" && !Array.isArray(obj.input)) {
192
+ input = obj.input;
193
+ }
194
+ out.push({ id, name, arguments: input });
195
+ }
196
+ return out.length > 0 ? out : undefined;
197
+ };
198
+ /**
199
+ * Anthropic `stop_reason` → 统一 `ChatFinishReason` 映射。
200
+ */
201
+ const mapAnthropicFinishReason = (raw) => {
202
+ if (raw === "end_turn")
203
+ return "stop";
204
+ if (raw === "tool_use")
205
+ return "tool_calls";
206
+ if (raw === "max_tokens")
207
+ return "length";
208
+ if (raw === "stop_sequence")
209
+ return "stop";
210
+ if (raw === null || raw === undefined)
211
+ return "unknown";
212
+ return "unknown";
213
+ };
70
214
  const mapProviderError = (error) => {
71
215
  if (error instanceof TimeoutError || error instanceof ProviderError) {
72
216
  return error;
@@ -102,38 +246,72 @@ export class AnthropicProviderAdapter {
102
246
  client;
103
247
  timeoutMs;
104
248
  /**
105
- * 创建 Anthropic Provider。
106
- *
107
- * @param options Provider 配置
108
- * @throws ProviderError 缺失凭据时抛出
109
- */
249
+ * `listAvailableModels` TTL 缓存(),默认 60s,避免反复命中远端 `/v1/models`。
250
+ */
251
+ modelListCache = null;
252
+ modelListCacheTtlMs;
253
+ /**
254
+ * 创建 Anthropic Provider。
255
+ *
256
+ * @param options Provider 配置
257
+ * @throws ProviderError 缺失凭据时抛出
258
+ */
110
259
  constructor(options = {}) {
111
260
  const apiKey = options.apiKey ?? process.env.ANTHROPIC_API_KEY;
112
261
  if (!apiKey) {
113
262
  throw new ProviderError("PROVIDER_MISSING_CREDENTIALS", "缺少 ANTHROPIC_API_KEY 或 options.apiKey");
114
263
  }
115
264
  this.timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
265
+ this.modelListCacheTtlMs = options.modelListCacheTtlMs ?? 60_000;
116
266
  this.client = new Anthropic({
267
+ ...(options.extra ?? {}),
117
268
  apiKey,
118
269
  baseURL: options.baseURL,
119
270
  });
120
271
  }
121
272
  /**
122
- * 返回 Anthropic 已知模型清单(官方暂未公开统一 list endpoint)。
123
- *
124
- * @returns 模型列表
125
- */
273
+ * 调用 Anthropic `/v1/models` 返回**动态**模型清单(SDK 0.30+)。
274
+ *
275
+ * SDK 调用异常(鉴权失败、网络异常、SDK 旧版本无此接口等),退化为
276
+ * {@link FALLBACK_MODELS} 静态清单以保证上层 ModelRouter 不会因单次列表失败
277
+ * 而整体不可用;真实错误已通过 `mapProviderError` 转成结构化错误抛给
278
+ * 诊断链路(此处吞错并落 fallback 是出于鲁棒性考虑)。
279
+ */
126
280
  async listAvailableModels() {
127
- return KNOWN_MODELS;
281
+ const ttl = this.modelListCacheTtlMs;
282
+ if (ttl > 0 && this.modelListCache && Date.now() - this.modelListCache.at < ttl) {
283
+ return this.modelListCache.value;
284
+ }
285
+ try {
286
+ const models = this.client.models;
287
+ if (!models || typeof models.list !== "function") {
288
+ return FALLBACK_MODELS;
289
+ }
290
+ const page = models.list(null, {});
291
+ const infos = [];
292
+ for await (const raw of page) {
293
+ if (raw && typeof raw.id === "string") {
294
+ infos.push(adaptSdkModelInfo(raw));
295
+ }
296
+ }
297
+ const result = infos.length > 0 ? infos : FALLBACK_MODELS;
298
+ if (ttl > 0) {
299
+ this.modelListCache = { at: Date.now(), value: result };
300
+ }
301
+ return result;
302
+ }
303
+ catch {
304
+ return FALLBACK_MODELS;
305
+ }
128
306
  }
129
307
  /**
130
- * 发起非流式对话请求。
131
- *
132
- * @param request 对话请求
133
- * @param signal 可选取消信号
134
- * @returns 对话响应
135
- */
136
- async chat(request, signal) {
308
+ * 发起非流式对话请求。
309
+ *
310
+ * @param request 对话请求
311
+ * @param signal 可选取消信号
312
+ * @returns 对话响应
313
+ */
314
+ async chat(request, _ctx, signal) {
137
315
  const extended = request;
138
316
  const mapped = toAnthropicMessages(request.messages);
139
317
  const timeout = withAbortTimeout(signal, this.timeoutMs);
@@ -165,34 +343,32 @@ export class AnthropicProviderAdapter {
165
343
  const response = await this.client.messages.create(body, {
166
344
  signal: timeout.signal,
167
345
  });
346
+ // 块不再落入 content 字符串(避免污染最终答复),
347
+ // 而是解析为结构化 `toolCalls` 字段;content 仅保留 `type === "text"` 的块拼接。
168
348
  const content = response.content
169
- .map((block) => {
170
- if (block.type === "text") {
171
- return block.text;
172
- }
173
- if (block.type === "tool_use") {
174
- return JSON.stringify({
175
- type: "tool_use",
176
- id: block.id,
177
- name: block.name,
178
- input: block.input,
179
- });
180
- }
181
- return "";
182
- })
349
+ .map((block) => (block.type === "text" ? block.text : ""))
183
350
  .filter((part) => part.length > 0)
184
351
  .join("\n");
352
+ const toolCalls = parseAnthropicToolCalls(response.content);
353
+ const finishReason = mapAnthropicFinishReason(response.stop_reason);
354
+ // Anthropic prompt caching:`cache_read_input_tokens` 不计入 `input_tokens`。
355
+ // 既有行为是把它合并进 `promptTokens` 用于预算与估算(保持不变),
356
+ // 同时通过 `cachedPromptTokens` 单独上报命中量供 CLI / 账单按折扣展示。
357
+ const cacheRead = response.usage.cache_read_input_tokens ?? 0;
185
358
  return {
186
359
  content,
360
+ ...(toolCalls ? { toolCalls } : {}),
361
+ finishReason,
187
362
  usage: {
188
363
  promptTokens: response.usage.input_tokens +
189
364
  (response.usage.cache_creation_input_tokens ?? 0) +
190
- (response.usage.cache_read_input_tokens ?? 0),
365
+ cacheRead,
191
366
  completionTokens: response.usage.output_tokens,
192
367
  totalTokens: response.usage.input_tokens +
193
368
  (response.usage.cache_creation_input_tokens ?? 0) +
194
- (response.usage.cache_read_input_tokens ?? 0) +
369
+ cacheRead +
195
370
  response.usage.output_tokens,
371
+ ...(cacheRead > 0 ? { cachedPromptTokens: cacheRead } : {}),
196
372
  },
197
373
  };
198
374
  }
@@ -204,13 +380,13 @@ export class AnthropicProviderAdapter {
204
380
  }
205
381
  }
206
382
  /**
207
- * 发起流式对话请求。
208
- *
209
- * @param request 对话请求
210
- * @param signal 可选取消信号
211
- * @returns 流式分片
212
- */
213
- async *chatStream(request, signal) {
383
+ * 发起流式对话请求。
384
+ *
385
+ * @param request 对话请求
386
+ * @param signal 可选取消信号
387
+ * @returns 流式分片
388
+ */
389
+ async *chatStream(request, _ctx, signal) {
214
390
  const extended = request;
215
391
  const mapped = toAnthropicMessages(request.messages);
216
392
  const timeout = withAbortTimeout(signal, this.timeoutMs);
@@ -245,26 +421,85 @@ export class AnthropicProviderAdapter {
245
421
  })(), {
246
422
  signal: timeout.signal,
247
423
  }));
424
+ // block index 聚合 tool_use 分片。
425
+ // Anthropic 在 `content_block_start` 时给出 tool_use 元信息(id/name),
426
+ // 随后的 `content_block_delta` 携带 `input_json_delta.partial_json` 拼装参数;
427
+ // `content_block_stop` 触发聚合发射 tool-call-complete。
428
+ const toolBlocks = new Map();
429
+ let finishReason = "unknown";
248
430
  for await (const event of stream) {
249
431
  if (timeout.signal.aborted) {
250
432
  throw timeout.signal.reason ?? new Error("aborted");
251
433
  }
434
+ if (event.type === "content_block_start") {
435
+ const block = event.content_block;
436
+ if (block?.type === "tool_use" && typeof event.index === "number") {
437
+ const id = typeof block.id === "string" && block.id.length > 0 ? block.id : `call-${event.index}`;
438
+ const name = typeof block.name === "string" ? block.name : "";
439
+ toolBlocks.set(event.index, { id, name, argumentsText: "" });
440
+ yield {
441
+ type: "tool-call-delta",
442
+ index: event.index,
443
+ id,
444
+ ...(name ? { name } : {}),
445
+ };
446
+ }
447
+ continue;
448
+ }
252
449
  if (event.type === "content_block_delta") {
253
450
  if (event.delta?.type === "text_delta" && typeof event.delta.text === "string") {
254
- yield { delta: event.delta.text };
451
+ yield { type: "text-delta", delta: event.delta.text };
452
+ continue;
255
453
  }
256
- else if (event.delta?.type === "input_json_delta") {
257
- yield {
258
- delta: JSON.stringify({
454
+ if (event.delta?.type === "input_json_delta" && typeof event.index === "number") {
455
+ const partial = event.delta.partial_json ?? "";
456
+ const buffered = toolBlocks.get(event.index);
457
+ if (buffered) {
458
+ buffered.argumentsText += partial;
459
+ }
460
+ if (partial.length > 0) {
461
+ yield {
259
462
  type: "tool-call-delta",
260
- value: event.delta.partial_json ?? "",
261
- }),
463
+ index: event.index,
464
+ argumentsDelta: partial,
465
+ };
466
+ }
467
+ }
468
+ continue;
469
+ }
470
+ if (event.type === "content_block_stop" && typeof event.index === "number") {
471
+ const buffered = toolBlocks.get(event.index);
472
+ if (buffered && buffered.name.length > 0) {
473
+ let parsedArgs = {};
474
+ const argsText = buffered.argumentsText.trim();
475
+ if (argsText.length > 0) {
476
+ try {
477
+ const parsed = JSON.parse(argsText);
478
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
479
+ parsedArgs = parsed;
480
+ }
481
+ else {
482
+ throw new Error("tool arguments must be a JSON object");
483
+ }
484
+ }
485
+ catch (err) {
486
+ throw new ProviderError("PROVIDER_TOOL_ARGUMENTS_INVALID", `Anthropic stream 聚合后的工具调用 ${buffered.name} 参数不是合法 JSON`, { cause: err, retryable: true });
487
+ }
488
+ }
489
+ yield {
490
+ type: "tool-call-complete",
491
+ call: { id: buffered.id, name: buffered.name, arguments: parsedArgs },
262
492
  };
493
+ toolBlocks.delete(event.index);
263
494
  }
264
495
  continue;
265
496
  }
497
+ if (event.type === "message_delta" && event.delta?.stop_reason) {
498
+ finishReason = mapAnthropicFinishReason(event.delta.stop_reason);
499
+ continue;
500
+ }
266
501
  if (event.type === "message_stop") {
267
- yield { delta: "", done: true };
502
+ yield { type: "finish", finishReason };
268
503
  }
269
504
  }
270
505
  }
@@ -276,12 +511,12 @@ export class AnthropicProviderAdapter {
276
511
  }
277
512
  }
278
513
  /**
279
- * 调用官方 countTokens 接口做精确计数。
280
- *
281
- * @param messages 消息列表
282
- * @param model 模型名
283
- * @returns token 数
284
- */
514
+ * 调用官方 countTokens 接口做精确计数。
515
+ *
516
+ * @param messages 消息列表
517
+ * @param model 模型名
518
+ * @returns token 数
519
+ */
285
520
  async countTokens(messages, model) {
286
521
  const mapped = toAnthropicMessages(messages);
287
522
  const payload = {
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EACL,aAAa,EACb,YAAY,GAQb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAoBjD,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,MAAM,YAAY,GAAgB;IAChC;QACE,SAAS,EAAE,0BAA0B;QACrC,YAAY,EAAE;YACZ,mBAAmB,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACtC,gBAAgB,EAAE,OAAO;YACzB,iBAAiB,EAAE,IAAI;YACvB,uBAAuB,EAAE,IAAI;SAC9B;KACF;IACD;QACE,SAAS,EAAE,yBAAyB;QACpC,YAAY,EAAE;YACZ,mBAAmB,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACtC,gBAAgB,EAAE,OAAO;YACzB,iBAAiB,EAAE,IAAI;YACvB,uBAAuB,EAAE,IAAI;SAC9B;KACF;IACD;QACE,SAAS,EAAE,sBAAsB;QACjC,YAAY,EAAE;YACZ,mBAAmB,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACtC,gBAAgB,EAAE,OAAO;YACzB,iBAAiB,EAAE,IAAI;YACvB,uBAAuB,EAAE,IAAI;SAC9B;KACF;CACF,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,KAAmC,EAC8D,EAAE,CACnG,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,WAAW,EAAE,IAAI,CAAC,WAAW;IAC7B,YAAY,EAAE,IAAI,CAAC,WAAW;CAC/B,CAAC,CAAC,CAAC;AAEN,MAAM,mBAAmB,GAAG,CAC1B,QAAmB,EACgD,EAAE;IACrE,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,SAAS,GAA4B,EAAE,CAAC;IAE9C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACrC,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM;wBACzD,OAAO,EAAE,OAAO,CAAC,OAAO;qBACzB;iBACF;aACF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;YACzD,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,MAAM,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3E,QAAQ,EAAE,SAAS;KACpB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAgC,EAAE;IACxE,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,SAAS,GAAG,KAA+D,CAAC;IAClF,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,gBAAgB,CAAC;IACtD,IAAI,SAAS,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC7B,OAAO,IAAI,aAAa,CAAC,sBAAsB,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC7B,OAAO,IAAI,aAAa,CAAC,uBAAuB,EAAE,OAAO,EAAE;YACzD,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QACnC,OAAO,IAAI,aAAa,CAAC,yBAAyB,EAAE,OAAO,EAAE;YAC3D,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,aAAa,CAAC,sBAAsB,EAAE,OAAO,EAAE;QACxD,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAC1B,EAAE,GAAG,WAAW,CAAC;IACjB,IAAI,GAAG,WAAW,CAAC;IAEX,MAAM,CAAY;IAClB,SAAS,CAAS;IAEnC;;;;;OAKG;IACH,YAAY,UAAoC,EAAE;QAChD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC/D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,aAAa,CACrB,8BAA8B,EAC9B,uCAAuC,CACxC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;QACzD,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC1B,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,mBAAmB;QACvB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CAAC,OAAoB,EAAE,MAAoB;QACnD,MAAM,QAAQ,GAAG,OAA8B,CAAC;QAChD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,GAA4B;gBACpC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;gBACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC;YACF,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YACzC,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC;YACtC,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9B,CAAC;YACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,WAAW;gBACd,QAAQ,CAAC,UAAU,KAAK,UAAU;oBAChC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;oBACjB,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;wBAC9D,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE;wBAC3D,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAa,EAAE;gBAChE,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO;iBAC7B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1B,OAAO,KAAK,CAAC,IAAI,CAAC;gBACpB,CAAC;gBACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC;wBACpB,IAAI,EAAE,UAAU;wBAChB,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;qBACnB,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;iBACjC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,OAAO;gBACL,OAAO;gBACP,KAAK,EAAE;oBACL,YAAY,EACV,QAAQ,CAAC,KAAK,CAAC,YAAY;wBAC3B,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,CAAC;wBACjD,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC;oBAC/C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;oBAC9C,WAAW,EACT,QAAQ,CAAC,KAAK,CAAC,YAAY;wBAC3B,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,CAAC;wBACjD,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC;wBAC7C,QAAQ,CAAC,KAAK,CAAC,aAAa;iBAC/B;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,CAAC,UAAU,CACf,OAAoB,EACpB,MAAoB;QAEpB,MAAM,QAAQ,GAAG,OAA8B,CAAC;QAChD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAC/C,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,GAA4B;oBACpC,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;oBACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM,EAAE,IAAI;iBACb,CAAC;gBACF,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBACtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;gBACzC,CAAC;gBACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAClB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACtC,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,CAAC;gBACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACrB,CAAC;gBACD,IAAI,CAAC,WAAW;oBACd,QAAQ,CAAC,UAAU,KAAK,UAAU;wBAChC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;wBACjB,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;4BAC9D,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE;4BAC3D,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,EAAW,EACb;gBACE,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CACF,CAGC,CAAC;YAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC3B,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;gBACtD,CAAC;gBACD,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBACzC,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,YAAY,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC/E,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;oBACpC,CAAC;yBAAM,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,kBAAkB,EAAE,CAAC;wBACpD,MAAM;4BACJ,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;gCACpB,IAAI,EAAE,iBAAiB;gCACvB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE;6BACtC,CAAC;yBACH,CAAC;oBACJ,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBAClC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAC,QAAmB,EAAE,KAAa;QAClD,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,OAAO,GAA4B;YACvC,KAAK;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACjC,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAgB,CAAC,CAAC;QACxE,OAAO,MAAM,CAAC,YAAY,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EACL,aAAa,EACb,YAAY,GAWb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AA+BjD,gFAAgF;AAChF,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAEnC;;;;GAIG;AACH,MAAM,eAAe,GAAgB;IACnC;QACE,SAAS,EAAE,0BAA0B;QACrC,YAAY,EAAE;YACZ,mBAAmB,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACtC,gBAAgB,EAAE,OAAO;YACzB,iBAAiB,EAAE,IAAI;YACvB,uBAAuB,EAAE,IAAI;SAC9B;KACF;IACD;QACE,SAAS,EAAE,yBAAyB;QACpC,YAAY,EAAE;YACZ,mBAAmB,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACtC,gBAAgB,EAAE,OAAO;YACzB,iBAAiB,EAAE,IAAI;YACvB,uBAAuB,EAAE,IAAI;SAC9B;KACF;IACD;QACE,SAAS,EAAE,sBAAsB;QACjC,YAAY,EAAE;YACZ,mBAAmB,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACtC,gBAAgB,EAAE,OAAO;YACzB,iBAAiB,EAAE,IAAI;YACvB,uBAAuB,EAAE,IAAI;SAC9B;KACF;CACF,CAAC;AAkBF;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,CAAC,GAA0B,EAAa,EAAE;IAClE,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,SAAS,CAAC;IACnD,MAAM,aAAa,GAAG,YAAY,EAAE,WAAW,EAAE,SAAS,KAAK,IAAI,CAAC;IACpE,MAAM,WAAW,GAAG,YAAY,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAChE,MAAM,mBAAmB,GAAa,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,aAAa,EAAE,CAAC;QAClB,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,EAAE;QACjB,YAAY,EAAE;YACZ,mBAAmB;YACnB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,OAAO;YACjD,iBAAiB,EAAE,IAAI;YACvB,uBAAuB,EACrB,YAAY,EAAE,kBAAkB,EAAE,SAAS,KAAK,KAAK;SACxD;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,KAAmC,EAC8D,EAAE,CACnG,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,WAAW,EAAE,IAAI,CAAC,WAAW;IAC7B,YAAY,EAAE,IAAI,CAAC,WAAW;CAC/B,CAAC,CAAC,CAAC;AAEN,MAAM,WAAW,GAAG,CAAC,OAA2B,EAAU,EAAE;IAC1D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACtD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAC/B,OAA2B,EACc,EAAE;IAC3C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3C,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,QAAQ,GAAG;aACpF,CAAC;QACJ,CAAC;QACJ,2CAA2C;QAC3C,6DAA6D;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QAC/B,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACzC,MAAM,cAAc,GAAG,2BAA2B,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;YACrD,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,SAAS;oBACrB,IAAI,EAAE,IAAI,IAAI,EAAE;iBACjB;aACF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;SAC7B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,QAAmB,EACgD,EAAE;IACrE,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,SAAS,GAA4B,EAAE,CAAC;IAE9C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAClD,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM;wBACzD,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;qBACtC;iBACF;aACF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3F,iDAAiD;YACjD,wDAAwD;YACxD,8CAA8C;YACzC,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACxD,MAAM,MAAM,GAAmC,EAAE,CAAC;YAClD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,KAAK,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;iBAC5B,CAAC,CAAC;YACL,CAAC;YACD,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,MAAe;aACzB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;YACzD,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC,OAAO,CAAU;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,MAAM,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3E,QAAQ,EAAE,SAAS;KACpB,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,CAC9B,OAAgB,EACe,EAAE;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QAClD,MAAM,GAAG,GAAG,KAA0E,CAAC;QACvF,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU;YAAE,SAAS;QACtC,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3F,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAChC,IAAI,KAAK,GAA4B,EAAE,CAAC;QACxC,IAAI,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5E,KAAK,GAAG,GAAG,CAAC,KAAgC,CAAC;QAC/C,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1C,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,wBAAwB,GAAG,CAAC,GAAY,EAAoB,EAAE;IAClE,IAAI,GAAG,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC;IACtC,IAAI,GAAG,KAAK,UAAU;QAAE,OAAO,YAAY,CAAC;IAC5C,IAAI,GAAG,KAAK,YAAY;QAAE,OAAO,QAAQ,CAAC;IAC1C,IAAI,GAAG,KAAK,eAAe;QAAE,OAAO,MAAM,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAgC,EAAE;IACxE,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,SAAS,GAAG,KAA+D,CAAC;IAClF,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,gBAAgB,CAAC;IACtD,IAAI,SAAS,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC7B,OAAO,IAAI,aAAa,CAAC,sBAAsB,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC7B,OAAO,IAAI,aAAa,CAAC,uBAAuB,EAAE,OAAO,EAAE;YACzD,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QACnC,OAAO,IAAI,aAAa,CAAC,yBAAyB,EAAE,OAAO,EAAE;YAC3D,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,aAAa,CAAC,sBAAsB,EAAE,OAAO,EAAE;QACxD,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAC1B,EAAE,GAAG,WAAW,CAAC;IACjB,IAAI,GAAG,WAAW,CAAC;IAEX,MAAM,CAAY;IAClB,SAAS,CAAS;IACpC;;MAEE;IACO,cAAc,GAA8C,IAAI,CAAC;IACxD,mBAAmB,CAAS;IAE9C;;;;;MAKE;IACD,YAAY,UAAoC,EAAE;QAChD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC/D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,aAAa,CACrB,8BAA8B,EAC9B,uCAAuC,CACxC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;QACzD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,MAAM,CAAC;QACjE,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC1B,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;IACL,CAAC;IAEF;;;;;;;MAOE;IACD,KAAK,CAAC,mBAAmB;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC;YAChF,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QACnC,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAI,IAAI,CAAC,MAOnB,CAAC,MAAM,CAAC;YACV,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACjD,OAAO,eAAe,CAAC;YACzB,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACnC,MAAM,KAAK,GAAgB,EAAE,CAAC;YAC9B,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAA4C,EAAE,CAAC;gBACrE,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;oBACtC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;YAC1D,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACZ,IAAI,CAAC,cAAc,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YAC1D,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC;IAEF;;;;;;MAME;IACD,KAAK,CAAC,IAAI,CACR,OAAoB,EACpB,IAAwB,EACxB,MAAoB;QAEpB,MAAM,QAAQ,GAAG,OAA8B,CAAC;QAChD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,GAA4B;gBACpC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;gBACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC;YACF,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YACzC,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC;YACtC,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9B,CAAC;YACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,WAAW;gBACd,QAAQ,CAAC,UAAU,KAAK,UAAU;oBAChC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;oBACjB,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;wBAC9D,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE;wBAC3D,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAa,EAAE;gBAChE,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAER,+BAA+B;YAC/B,8DAA8D;YACzD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO;iBAC7B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACzD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;iBACjC,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,uBAAuB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,YAAY,GAAG,wBAAwB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAEzE,yEAAyE;YACzE,2CAA2C;YAC3C,oDAAoD;YAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC;YAC9D,OAAO;gBACL,OAAO;gBACP,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,YAAY;gBACZ,KAAK,EAAE;oBACL,YAAY,EACV,QAAQ,CAAC,KAAK,CAAC,YAAY;wBAC3B,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,CAAC;wBACjD,SAAS;oBACX,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;oBAC9C,WAAW,EACT,QAAQ,CAAC,KAAK,CAAC,YAAY;wBAC3B,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,CAAC;wBACjD,SAAS;wBACT,QAAQ,CAAC,KAAK,CAAC,aAAa;oBAC9B,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5D;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAEF;;;;;;MAME;IACD,KAAK,CAAC,CAAC,UAAU,CACf,OAAoB,EACpB,IAAwB,EACxB,MAAoB;QAEpB,MAAM,QAAQ,GAAG,OAA8B,CAAC;QAChD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAC/C,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,GAA4B;oBACpC,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;oBACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM,EAAE,IAAI;iBACb,CAAC;gBACF,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBACtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;gBACzC,CAAC;gBACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAClB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACtC,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,CAAC;gBACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACrB,CAAC;gBACD,IAAI,CAAC,WAAW;oBACd,QAAQ,CAAC,UAAU,KAAK,UAAU;wBAChC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;wBACjB,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;4BAC9D,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE;4BAC3D,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,EAAW,EACb;gBACE,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CACF,CAUC,CAAC;YAER,8BAA8B;YAC9B,+DAA+D;YAC/D,qEAAqE;YACrE,kDAAkD;YAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+D,CAAC;YAC1F,IAAI,YAAY,GAAqB,SAAS,CAAC;YAE/C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC3B,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;gBACtD,CAAC;gBAED,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBACzC,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC;oBAClC,IAAI,KAAK,EAAE,IAAI,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAClE,MAAM,EAAE,GAAG,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;wBAClG,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC9D,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC7D,MAAM;4BACJ,IAAI,EAAE,iBAAiB;4BACvB,KAAK,EAAE,KAAK,CAAC,KAAK;4BAClB,EAAE;4BACF,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC1B,CAAC;oBACJ,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBACzC,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,YAAY,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC/E,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBACtD,SAAS;oBACX,CAAC;oBACD,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,kBAAkB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAChF,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;wBAC/C,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAC7C,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC;wBACpC,CAAC;wBACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACvB,MAAM;gCACJ,IAAI,EAAE,iBAAiB;gCACvB,KAAK,EAAE,KAAK,CAAC,KAAK;gCAClB,cAAc,EAAE,OAAO;6BACxB,CAAC;wBACJ,CAAC;oBACH,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC3E,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC7C,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzC,IAAI,UAAU,GAA4B,EAAE,CAAC;wBAC7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;wBAC/C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACxB,IAAI,CAAC;gCACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gCACpC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oCACnE,UAAU,GAAG,MAAiC,CAAC;gCACjD,CAAC;qCAAM,CAAC;oCACN,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;gCAC1D,CAAC;4BACH,CAAC;4BAAC,OAAO,GAAG,EAAE,CAAC;gCACb,MAAM,IAAI,aAAa,CACrB,iCAAiC,EACjC,6BAA6B,QAAQ,CAAC,IAAI,cAAc,EACxD,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAChC,CAAC;4BACJ,CAAC;wBACH,CAAC;wBACD,MAAM;4BACJ,IAAI,EAAE,oBAAoB;4BAC1B,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE;yBACtE,CAAC;wBACF,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACjC,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;oBAC/D,YAAY,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBACjE,SAAS;gBACX,CAAC;gBAED,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBAClC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAEF;;;;;;MAME;IACD,KAAK,CAAC,WAAW,CAAC,QAAmB,EAAE,KAAa;QAClD,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,OAAO,GAA4B;YACvC,KAAK;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACjC,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAgB,CAAC,CAAC;QACxE,OAAO,MAAM,CAAC,YAAY,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,115 @@
1
+ import { type AdapterCallContext, type ChatRequest, type ChatResponse, type ChatStreamChunk, type EmbeddingContent, type EmbeddingRequest, type EmbeddingResponse, type Message, type ModelInfo, type ProviderAdapter, type RerankRequest, type RerankResponse } from "@tachu/core";
2
+ export interface GeminiProviderOptions {
3
+ apiKey?: string;
4
+ vertexai?: boolean;
5
+ project?: string;
6
+ location?: string;
7
+ baseURL?: string;
8
+ apiVersion?: string;
9
+ timeoutMs?: number;
10
+ extra?: Record<string, unknown>;
11
+ modelListCacheTtlMs?: number;
12
+ client?: GeminiClientLike;
13
+ }
14
+ export interface GeminiClientLike {
15
+ models: {
16
+ generateContent(params: Record<string, unknown>): Promise<GeminiGenerateContentResponse>;
17
+ generateContentStream(params: Record<string, unknown>): Promise<AsyncIterable<GeminiGenerateContentResponse>>;
18
+ embedContent(params: Record<string, unknown>): Promise<GeminiEmbedContentResponse>;
19
+ countTokens?(params: Record<string, unknown>): Promise<{
20
+ totalTokens?: number;
21
+ cachedContentTokenCount?: number;
22
+ }>;
23
+ list?(params?: Record<string, unknown>): Promise<GeminiModelPager | {
24
+ page?: GeminiModel[];
25
+ }>;
26
+ };
27
+ }
28
+ export type GeminiChatRequest = ChatRequest & {
29
+ topP?: number;
30
+ topK?: number;
31
+ stop?: string[];
32
+ };
33
+ interface GeminiPart {
34
+ text?: string | undefined;
35
+ inlineData?: {
36
+ mimeType?: string | undefined;
37
+ data?: string | undefined;
38
+ } | undefined;
39
+ fileData?: {
40
+ mimeType?: string | undefined;
41
+ fileUri?: string | undefined;
42
+ displayName?: string | undefined;
43
+ } | undefined;
44
+ functionCall?: {
45
+ id?: string | undefined;
46
+ name?: string | undefined;
47
+ args?: Record<string, unknown> | undefined;
48
+ } | undefined;
49
+ functionResponse?: {
50
+ id?: string | undefined;
51
+ name?: string | undefined;
52
+ response?: Record<string, unknown> | undefined;
53
+ } | undefined;
54
+ thought?: boolean | undefined;
55
+ thoughtSignature?: string | undefined;
56
+ partMetadata?: Record<string, unknown> | undefined;
57
+ }
58
+ interface GeminiContent {
59
+ role?: "user" | "model" | string | undefined;
60
+ parts?: GeminiPart[] | undefined;
61
+ }
62
+ interface GeminiCandidate {
63
+ content?: GeminiContent | undefined;
64
+ finishReason?: string | undefined;
65
+ finishMessage?: string | undefined;
66
+ index?: number | undefined;
67
+ }
68
+ interface GeminiGenerateContentResponse {
69
+ candidates?: GeminiCandidate[] | undefined;
70
+ usageMetadata?: {
71
+ promptTokenCount?: number | undefined;
72
+ candidatesTokenCount?: number | undefined;
73
+ thoughtsTokenCount?: number | undefined;
74
+ toolUsePromptTokenCount?: number | undefined;
75
+ totalTokenCount?: number | undefined;
76
+ cachedContentTokenCount?: number | undefined;
77
+ } | undefined;
78
+ responseId?: string | undefined;
79
+ modelVersion?: string | undefined;
80
+ text?: string | undefined;
81
+ }
82
+ interface GeminiEmbedContentResponse {
83
+ embeddings?: Array<{
84
+ values?: number[] | undefined;
85
+ }> | undefined;
86
+ metadata?: Record<string, unknown> | undefined;
87
+ }
88
+ interface GeminiModel {
89
+ name?: string | undefined;
90
+ displayName?: string | undefined;
91
+ inputTokenLimit?: number | undefined;
92
+ supportedActions?: string[] | undefined;
93
+ thinking?: boolean | undefined;
94
+ }
95
+ interface GeminiModelPager extends AsyncIterable<GeminiModel> {
96
+ page?: GeminiModel[] | undefined;
97
+ }
98
+ export declare class GeminiProviderAdapter implements ProviderAdapter {
99
+ readonly id = "gemini";
100
+ readonly name = "Gemini";
101
+ private readonly client;
102
+ private readonly timeoutMs;
103
+ private readonly modelListCacheTtlMs;
104
+ private modelListCache;
105
+ constructor(options?: GeminiProviderOptions);
106
+ listAvailableModels(): Promise<ModelInfo[]>;
107
+ chat(request: ChatRequest, _ctx: AdapterCallContext, signal?: AbortSignal): Promise<ChatResponse>;
108
+ chatStream(request: ChatRequest, _ctx: AdapterCallContext, signal?: AbortSignal): AsyncIterable<ChatStreamChunk>;
109
+ countTokens(messages: Message[], model: string): Promise<number>;
110
+ embed(request: EmbeddingRequest, _ctx: AdapterCallContext, signal?: AbortSignal): Promise<EmbeddingResponse>;
111
+ rerank(request: RerankRequest, ctx: AdapterCallContext, signal?: AbortSignal): Promise<RerankResponse>;
112
+ embeddingInputToText(input: EmbeddingContent): string;
113
+ }
114
+ export {};
115
+ //# sourceMappingURL=gemini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"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"}