@puku-ai/sdk 2.0.2 → 2.1.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 (499) hide show
  1. package/README.md +46 -14
  2. package/package.json +20 -222
  3. package/sdk.cjs +5223 -0
  4. package/sdk.cjs.map +65 -0
  5. package/sdk.d.ts +8802 -0
  6. package/sdk.mjs +52 -0
  7. package/sdk.mjs.map +65 -0
  8. package/dist/_vendor/partial-json-parser/parser.d.mts +0 -3
  9. package/dist/_vendor/partial-json-parser/parser.d.ts.map +0 -1
  10. package/dist/_vendor/partial-json-parser/parser.js +0 -226
  11. package/dist/_vendor/partial-json-parser/parser.js.map +0 -1
  12. package/dist/_vendor/partial-json-parser/parser.mjs +0 -223
  13. package/dist/_vendor/partial-json-parser/parser.mjs.map +0 -1
  14. package/dist/api-promise.d.mts +0 -3
  15. package/dist/api-promise.d.ts.map +0 -1
  16. package/dist/api-promise.js +0 -19
  17. package/dist/api-promise.js.map +0 -1
  18. package/dist/api-promise.mjs +0 -3
  19. package/dist/api-promise.mjs.map +0 -1
  20. package/dist/client.d.mts +0 -248
  21. package/dist/client.d.ts.map +0 -1
  22. package/dist/client.js +0 -605
  23. package/dist/client.js.map +0 -1
  24. package/dist/client.mjs +0 -567
  25. package/dist/client.mjs.map +0 -1
  26. package/dist/core/api-promise.d.mts +0 -49
  27. package/dist/core/api-promise.d.ts.map +0 -1
  28. package/dist/core/api-promise.js +0 -76
  29. package/dist/core/api-promise.js.map +0 -1
  30. package/dist/core/api-promise.mjs +0 -72
  31. package/dist/core/api-promise.mjs.map +0 -1
  32. package/dist/core/error.d.mts +0 -50
  33. package/dist/core/error.d.ts.map +0 -1
  34. package/dist/core/error.js +0 -125
  35. package/dist/core/error.js.map +0 -1
  36. package/dist/core/error.mjs +0 -109
  37. package/dist/core/error.mjs.map +0 -1
  38. package/dist/core/pagination.d.mts +0 -105
  39. package/dist/core/pagination.d.ts.map +0 -1
  40. package/dist/core/pagination.js +0 -196
  41. package/dist/core/pagination.js.map +0 -1
  42. package/dist/core/pagination.mjs +0 -188
  43. package/dist/core/pagination.mjs.map +0 -1
  44. package/dist/core/resource.d.mts +0 -6
  45. package/dist/core/resource.d.ts.map +0 -1
  46. package/dist/core/resource.js +0 -12
  47. package/dist/core/resource.js.map +0 -1
  48. package/dist/core/resource.mjs +0 -8
  49. package/dist/core/resource.mjs.map +0 -1
  50. package/dist/core/streaming.d.mts +0 -33
  51. package/dist/core/streaming.d.ts.map +0 -1
  52. package/dist/core/streaming.js +0 -293
  53. package/dist/core/streaming.js.map +0 -1
  54. package/dist/core/streaming.mjs +0 -288
  55. package/dist/core/streaming.mjs.map +0 -1
  56. package/dist/core/uploads.d.mts +0 -3
  57. package/dist/core/uploads.d.ts.map +0 -1
  58. package/dist/core/uploads.js +0 -6
  59. package/dist/core/uploads.js.map +0 -1
  60. package/dist/core/uploads.mjs +0 -2
  61. package/dist/core/uploads.mjs.map +0 -1
  62. package/dist/error.d.mts +0 -3
  63. package/dist/error.d.ts.map +0 -1
  64. package/dist/error.js +0 -19
  65. package/dist/error.js.map +0 -1
  66. package/dist/error.mjs +0 -3
  67. package/dist/error.mjs.map +0 -1
  68. package/dist/helpers/beta/json-schema.d.mts +0 -31
  69. package/dist/helpers/beta/json-schema.d.ts.map +0 -1
  70. package/dist/helpers/beta/json-schema.js +0 -56
  71. package/dist/helpers/beta/json-schema.js.map +0 -1
  72. package/dist/helpers/beta/json-schema.mjs +0 -52
  73. package/dist/helpers/beta/json-schema.mjs.map +0 -1
  74. package/dist/helpers/beta/mcp.d.mts +0 -303
  75. package/dist/helpers/beta/mcp.d.ts.map +0 -1
  76. package/dist/helpers/beta/mcp.js +0 -419
  77. package/dist/helpers/beta/mcp.js.map +0 -1
  78. package/dist/helpers/beta/mcp.mjs +0 -406
  79. package/dist/helpers/beta/mcp.mjs.map +0 -1
  80. package/dist/helpers/beta/memory.d.mts +0 -11
  81. package/dist/helpers/beta/memory.d.ts.map +0 -1
  82. package/dist/helpers/beta/memory.js +0 -18
  83. package/dist/helpers/beta/memory.js.map +0 -1
  84. package/dist/helpers/beta/memory.mjs +0 -15
  85. package/dist/helpers/beta/memory.mjs.map +0 -1
  86. package/dist/helpers/beta/zod.d.mts +0 -7
  87. package/dist/helpers/beta/zod.d.ts.map +0 -1
  88. package/dist/helpers/beta/zod.js +0 -19
  89. package/dist/helpers/beta/zod.js.map +0 -1
  90. package/dist/helpers/beta/zod.mjs +0 -15
  91. package/dist/helpers/beta/zod.mjs.map +0 -1
  92. package/dist/helpers/index.d.mts +0 -3
  93. package/dist/helpers/index.d.ts.map +0 -1
  94. package/dist/helpers/index.js +0 -8
  95. package/dist/helpers/index.js.map +0 -1
  96. package/dist/helpers/index.mjs +0 -3
  97. package/dist/helpers/index.mjs.map +0 -1
  98. package/dist/helpers/json-schema.d.mts +0 -18
  99. package/dist/helpers/json-schema.d.ts.map +0 -1
  100. package/dist/helpers/json-schema.js +0 -37
  101. package/dist/helpers/json-schema.js.map +0 -1
  102. package/dist/helpers/json-schema.mjs +0 -34
  103. package/dist/helpers/json-schema.mjs.map +0 -1
  104. package/dist/helpers/zod.d.mts +0 -13
  105. package/dist/helpers/zod.d.ts.map +0 -1
  106. package/dist/helpers/zod.js +0 -24
  107. package/dist/helpers/zod.js.map +0 -1
  108. package/dist/helpers/zod.mjs +0 -21
  109. package/dist/helpers/zod.mjs.map +0 -1
  110. package/dist/index.d.mts +0 -33
  111. package/dist/index.d.ts.map +0 -1
  112. package/dist/index.js +0 -38
  113. package/dist/index.js.map +0 -1
  114. package/dist/index.mjs +0 -12
  115. package/dist/index.mjs.map +0 -1
  116. package/dist/internal/builtin-types.d.mts +0 -73
  117. package/dist/internal/builtin-types.d.ts.map +0 -1
  118. package/dist/internal/builtin-types.js +0 -4
  119. package/dist/internal/builtin-types.js.map +0 -1
  120. package/dist/internal/builtin-types.mjs +0 -3
  121. package/dist/internal/builtin-types.mjs.map +0 -1
  122. package/dist/internal/constants.d.mts +0 -5
  123. package/dist/internal/constants.d.ts.map +0 -1
  124. package/dist/internal/constants.js +0 -18
  125. package/dist/internal/constants.js.map +0 -1
  126. package/dist/internal/constants.mjs +0 -15
  127. package/dist/internal/constants.mjs.map +0 -1
  128. package/dist/internal/decoders/jsonl.d.mts +0 -10
  129. package/dist/internal/decoders/jsonl.d.ts.map +0 -1
  130. package/dist/internal/decoders/jsonl.js +0 -41
  131. package/dist/internal/decoders/jsonl.js.map +0 -1
  132. package/dist/internal/decoders/jsonl.mjs +0 -37
  133. package/dist/internal/decoders/jsonl.mjs.map +0 -1
  134. package/dist/internal/decoders/line.d.mts +0 -17
  135. package/dist/internal/decoders/line.d.ts.map +0 -1
  136. package/dist/internal/decoders/line.js +0 -110
  137. package/dist/internal/decoders/line.js.map +0 -1
  138. package/dist/internal/decoders/line.mjs +0 -105
  139. package/dist/internal/decoders/line.mjs.map +0 -1
  140. package/dist/internal/detect-platform.d.mts +0 -15
  141. package/dist/internal/detect-platform.d.ts.map +0 -1
  142. package/dist/internal/detect-platform.js +0 -162
  143. package/dist/internal/detect-platform.js.map +0 -1
  144. package/dist/internal/detect-platform.mjs +0 -157
  145. package/dist/internal/detect-platform.mjs.map +0 -1
  146. package/dist/internal/errors.d.mts +0 -3
  147. package/dist/internal/errors.d.ts.map +0 -1
  148. package/dist/internal/errors.js +0 -41
  149. package/dist/internal/errors.js.map +0 -1
  150. package/dist/internal/errors.mjs +0 -36
  151. package/dist/internal/errors.mjs.map +0 -1
  152. package/dist/internal/headers.d.mts +0 -22
  153. package/dist/internal/headers.d.ts.map +0 -1
  154. package/dist/internal/headers.js +0 -79
  155. package/dist/internal/headers.js.map +0 -1
  156. package/dist/internal/headers.mjs +0 -74
  157. package/dist/internal/headers.mjs.map +0 -1
  158. package/dist/internal/parse.d.mts +0 -17
  159. package/dist/internal/parse.d.ts.map +0 -1
  160. package/dist/internal/parse.js +0 -60
  161. package/dist/internal/parse.js.map +0 -1
  162. package/dist/internal/parse.mjs +0 -56
  163. package/dist/internal/parse.mjs.map +0 -1
  164. package/dist/internal/request-options.d.mts +0 -77
  165. package/dist/internal/request-options.d.ts.map +0 -1
  166. package/dist/internal/request-options.js +0 -14
  167. package/dist/internal/request-options.js.map +0 -1
  168. package/dist/internal/request-options.mjs +0 -10
  169. package/dist/internal/request-options.mjs.map +0 -1
  170. package/dist/internal/shim-types.d.mts +0 -17
  171. package/dist/internal/shim-types.d.ts.map +0 -1
  172. package/dist/internal/shim-types.js +0 -4
  173. package/dist/internal/shim-types.js.map +0 -1
  174. package/dist/internal/shim-types.mjs +0 -3
  175. package/dist/internal/shim-types.mjs.map +0 -1
  176. package/dist/internal/shims.d.mts +0 -26
  177. package/dist/internal/shims.d.ts.map +0 -1
  178. package/dist/internal/shims.js +0 -92
  179. package/dist/internal/shims.js.map +0 -1
  180. package/dist/internal/shims.mjs +0 -85
  181. package/dist/internal/shims.mjs.map +0 -1
  182. package/dist/internal/stream-utils.d.mts +0 -8
  183. package/dist/internal/stream-utils.d.ts.map +0 -1
  184. package/dist/internal/stream-utils.js +0 -38
  185. package/dist/internal/stream-utils.js.map +0 -1
  186. package/dist/internal/stream-utils.mjs +0 -35
  187. package/dist/internal/stream-utils.mjs.map +0 -1
  188. package/dist/internal/to-file.d.mts +0 -45
  189. package/dist/internal/to-file.d.ts.map +0 -1
  190. package/dist/internal/to-file.js +0 -96
  191. package/dist/internal/to-file.js.map +0 -1
  192. package/dist/internal/to-file.mjs +0 -93
  193. package/dist/internal/to-file.mjs.map +0 -1
  194. package/dist/internal/types.d.mts +0 -69
  195. package/dist/internal/types.d.ts.map +0 -1
  196. package/dist/internal/types.js +0 -4
  197. package/dist/internal/types.js.map +0 -1
  198. package/dist/internal/types.mjs +0 -3
  199. package/dist/internal/types.mjs.map +0 -1
  200. package/dist/internal/uploads.d.mts +0 -42
  201. package/dist/internal/uploads.d.ts.map +0 -1
  202. package/dist/internal/uploads.js +0 -145
  203. package/dist/internal/uploads.js.map +0 -1
  204. package/dist/internal/uploads.mjs +0 -135
  205. package/dist/internal/uploads.mjs.map +0 -1
  206. package/dist/internal/utils/base64.d.mts +0 -3
  207. package/dist/internal/utils/base64.d.ts.map +0 -1
  208. package/dist/internal/utils/base64.js +0 -38
  209. package/dist/internal/utils/base64.js.map +0 -1
  210. package/dist/internal/utils/base64.mjs +0 -33
  211. package/dist/internal/utils/base64.mjs.map +0 -1
  212. package/dist/internal/utils/bytes.d.mts +0 -4
  213. package/dist/internal/utils/bytes.d.ts.map +0 -1
  214. package/dist/internal/utils/bytes.js +0 -31
  215. package/dist/internal/utils/bytes.js.map +0 -1
  216. package/dist/internal/utils/bytes.mjs +0 -26
  217. package/dist/internal/utils/bytes.mjs.map +0 -1
  218. package/dist/internal/utils/env.d.mts +0 -9
  219. package/dist/internal/utils/env.d.ts.map +0 -1
  220. package/dist/internal/utils/env.js +0 -22
  221. package/dist/internal/utils/env.js.map +0 -1
  222. package/dist/internal/utils/env.mjs +0 -18
  223. package/dist/internal/utils/env.mjs.map +0 -1
  224. package/dist/internal/utils/log.d.mts +0 -37
  225. package/dist/internal/utils/log.d.ts.map +0 -1
  226. package/dist/internal/utils/log.js +0 -86
  227. package/dist/internal/utils/log.js.map +0 -1
  228. package/dist/internal/utils/log.mjs +0 -80
  229. package/dist/internal/utils/log.mjs.map +0 -1
  230. package/dist/internal/utils/path.d.mts +0 -15
  231. package/dist/internal/utils/path.d.ts.map +0 -1
  232. package/dist/internal/utils/path.js +0 -79
  233. package/dist/internal/utils/path.js.map +0 -1
  234. package/dist/internal/utils/path.mjs +0 -74
  235. package/dist/internal/utils/path.mjs.map +0 -1
  236. package/dist/internal/utils/query.d.mts +0 -5
  237. package/dist/internal/utils/query.d.ts.map +0 -1
  238. package/dist/internal/utils/query.js +0 -23
  239. package/dist/internal/utils/query.js.map +0 -1
  240. package/dist/internal/utils/query.mjs +0 -20
  241. package/dist/internal/utils/query.mjs.map +0 -1
  242. package/dist/internal/utils/sleep.d.mts +0 -2
  243. package/dist/internal/utils/sleep.d.ts.map +0 -1
  244. package/dist/internal/utils/sleep.js +0 -7
  245. package/dist/internal/utils/sleep.js.map +0 -1
  246. package/dist/internal/utils/sleep.mjs +0 -3
  247. package/dist/internal/utils/sleep.mjs.map +0 -1
  248. package/dist/internal/utils/uuid.d.mts +0 -5
  249. package/dist/internal/utils/uuid.d.ts.map +0 -1
  250. package/dist/internal/utils/uuid.js +0 -19
  251. package/dist/internal/utils/uuid.js.map +0 -1
  252. package/dist/internal/utils/uuid.mjs +0 -15
  253. package/dist/internal/utils/uuid.mjs.map +0 -1
  254. package/dist/internal/utils/values.d.mts +0 -19
  255. package/dist/internal/utils/values.d.ts.map +0 -1
  256. package/dist/internal/utils/values.js +0 -119
  257. package/dist/internal/utils/values.js.map +0 -1
  258. package/dist/internal/utils/values.mjs +0 -100
  259. package/dist/internal/utils/values.mjs.map +0 -1
  260. package/dist/internal/utils.d.mts +0 -8
  261. package/dist/internal/utils.d.ts.map +0 -1
  262. package/dist/internal/utils.js +0 -25
  263. package/dist/internal/utils.js.map +0 -1
  264. package/dist/internal/utils.mjs +0 -9
  265. package/dist/internal/utils.mjs.map +0 -1
  266. package/dist/lib/BetaMessageStream.d.mts +0 -122
  267. package/dist/lib/BetaMessageStream.d.ts.map +0 -1
  268. package/dist/lib/BetaMessageStream.js +0 -628
  269. package/dist/lib/BetaMessageStream.js.map +0 -1
  270. package/dist/lib/BetaMessageStream.mjs +0 -624
  271. package/dist/lib/BetaMessageStream.mjs.map +0 -1
  272. package/dist/lib/MessageStream.d.mts +0 -121
  273. package/dist/lib/MessageStream.d.ts.map +0 -1
  274. package/dist/lib/MessageStream.js +0 -609
  275. package/dist/lib/MessageStream.js.map +0 -1
  276. package/dist/lib/MessageStream.mjs +0 -605
  277. package/dist/lib/MessageStream.mjs.map +0 -1
  278. package/dist/lib/beta-parser.d.mts +0 -37
  279. package/dist/lib/beta-parser.d.ts.map +0 -1
  280. package/dist/lib/beta-parser.js +0 -79
  281. package/dist/lib/beta-parser.js.map +0 -1
  282. package/dist/lib/beta-parser.mjs +0 -75
  283. package/dist/lib/beta-parser.mjs.map +0 -1
  284. package/dist/lib/parser.d.mts +0 -32
  285. package/dist/lib/parser.d.ts.map +0 -1
  286. package/dist/lib/parser.js +0 -66
  287. package/dist/lib/parser.js.map +0 -1
  288. package/dist/lib/parser.mjs +0 -62
  289. package/dist/lib/parser.mjs.map +0 -1
  290. package/dist/lib/stainless-helper-header.d.mts +0 -34
  291. package/dist/lib/stainless-helper-header.d.ts.map +0 -1
  292. package/dist/lib/stainless-helper-header.js +0 -70
  293. package/dist/lib/stainless-helper-header.js.map +0 -1
  294. package/dist/lib/stainless-helper-header.mjs +0 -63
  295. package/dist/lib/stainless-helper-header.mjs.map +0 -1
  296. package/dist/lib/tools/BetaRunnableTool.d.mts +0 -12
  297. package/dist/lib/tools/BetaRunnableTool.d.ts.map +0 -1
  298. package/dist/lib/tools/BetaRunnableTool.js +0 -3
  299. package/dist/lib/tools/BetaRunnableTool.js.map +0 -1
  300. package/dist/lib/tools/BetaRunnableTool.mjs +0 -2
  301. package/dist/lib/tools/BetaRunnableTool.mjs.map +0 -1
  302. package/dist/lib/tools/BetaToolRunner.d.mts +0 -136
  303. package/dist/lib/tools/BetaToolRunner.d.ts.map +0 -1
  304. package/dist/lib/tools/BetaToolRunner.js +0 -374
  305. package/dist/lib/tools/BetaToolRunner.js.map +0 -1
  306. package/dist/lib/tools/BetaToolRunner.mjs +0 -370
  307. package/dist/lib/tools/BetaToolRunner.mjs.map +0 -1
  308. package/dist/lib/tools/CompactionControl.d.mts +0 -25
  309. package/dist/lib/tools/CompactionControl.d.ts.map +0 -1
  310. package/dist/lib/tools/CompactionControl.js +0 -28
  311. package/dist/lib/tools/CompactionControl.js.map +0 -1
  312. package/dist/lib/tools/CompactionControl.mjs +0 -25
  313. package/dist/lib/tools/CompactionControl.mjs.map +0 -1
  314. package/dist/lib/tools/ToolError.d.mts +0 -33
  315. package/dist/lib/tools/ToolError.d.ts.map +0 -1
  316. package/dist/lib/tools/ToolError.js +0 -47
  317. package/dist/lib/tools/ToolError.js.map +0 -1
  318. package/dist/lib/tools/ToolError.mjs +0 -43
  319. package/dist/lib/tools/ToolError.mjs.map +0 -1
  320. package/dist/lib/tools/ToolRunner.d.mts +0 -132
  321. package/dist/lib/tools/ToolRunner.d.ts.map +0 -1
  322. package/dist/lib/tools/ToolRunner.js +0 -291
  323. package/dist/lib/tools/ToolRunner.js.map +0 -1
  324. package/dist/lib/tools/ToolRunner.mjs +0 -287
  325. package/dist/lib/tools/ToolRunner.mjs.map +0 -1
  326. package/dist/lib/transform-json-schema.d.mts +0 -3
  327. package/dist/lib/transform-json-schema.d.ts.map +0 -1
  328. package/dist/lib/transform-json-schema.js +0 -114
  329. package/dist/lib/transform-json-schema.js.map +0 -1
  330. package/dist/lib/transform-json-schema.mjs +0 -111
  331. package/dist/lib/transform-json-schema.mjs.map +0 -1
  332. package/dist/pagination.d.mts +0 -3
  333. package/dist/pagination.d.ts.map +0 -1
  334. package/dist/pagination.js +0 -19
  335. package/dist/pagination.js.map +0 -1
  336. package/dist/pagination.mjs +0 -3
  337. package/dist/pagination.mjs.map +0 -1
  338. package/dist/resource.d.mts +0 -3
  339. package/dist/resource.d.ts.map +0 -1
  340. package/dist/resource.js +0 -19
  341. package/dist/resource.js.map +0 -1
  342. package/dist/resource.mjs +0 -3
  343. package/dist/resource.mjs.map +0 -1
  344. package/dist/resources/beta/beta.d.mts +0 -66
  345. package/dist/resources/beta/beta.d.ts.map +0 -1
  346. package/dist/resources/beta/beta.js +0 -58
  347. package/dist/resources/beta/beta.js.map +0 -1
  348. package/dist/resources/beta/beta.mjs +0 -21
  349. package/dist/resources/beta/beta.mjs.map +0 -1
  350. package/dist/resources/beta/files.d.mts +0 -151
  351. package/dist/resources/beta/files.d.ts.map +0 -1
  352. package/dist/resources/beta/files.js +0 -124
  353. package/dist/resources/beta/files.js.map +0 -1
  354. package/dist/resources/beta/files.mjs +0 -120
  355. package/dist/resources/beta/files.mjs.map +0 -1
  356. package/dist/resources/beta/index.d.mts +0 -6
  357. package/dist/resources/beta/index.d.ts.map +0 -1
  358. package/dist/resources/beta/index.js +0 -15
  359. package/dist/resources/beta/index.js.map +0 -1
  360. package/dist/resources/beta/index.mjs +0 -7
  361. package/dist/resources/beta/index.mjs.map +0 -1
  362. package/dist/resources/beta/messages/batches.d.mts +0 -646
  363. package/dist/resources/beta/messages/batches.d.ts.map +0 -1
  364. package/dist/resources/beta/messages/batches.js +0 -204
  365. package/dist/resources/beta/messages/batches.js.map +0 -1
  366. package/dist/resources/beta/messages/batches.mjs +0 -200
  367. package/dist/resources/beta/messages/batches.mjs.map +0 -1
  368. package/dist/resources/beta/messages/index.d.mts +0 -4
  369. package/dist/resources/beta/messages/index.d.ts.map +0 -1
  370. package/dist/resources/beta/messages/index.js +0 -12
  371. package/dist/resources/beta/messages/index.js.map +0 -1
  372. package/dist/resources/beta/messages/index.mjs +0 -5
  373. package/dist/resources/beta/messages/index.mjs.map +0 -1
  374. package/dist/resources/beta/messages/messages.d.mts +0 -2966
  375. package/dist/resources/beta/messages/messages.d.ts.map +0 -1
  376. package/dist/resources/beta/messages/messages.js +0 -192
  377. package/dist/resources/beta/messages/messages.js.map +0 -1
  378. package/dist/resources/beta/messages/messages.mjs +0 -153
  379. package/dist/resources/beta/messages/messages.mjs.map +0 -1
  380. package/dist/resources/beta/messages.d.mts +0 -2
  381. package/dist/resources/beta/messages.d.ts.map +0 -1
  382. package/dist/resources/beta/messages.js +0 -19
  383. package/dist/resources/beta/messages.js.map +0 -1
  384. package/dist/resources/beta/messages.mjs +0 -3
  385. package/dist/resources/beta/messages.mjs.map +0 -1
  386. package/dist/resources/beta/models.d.mts +0 -208
  387. package/dist/resources/beta/models.d.ts.map +0 -1
  388. package/dist/resources/beta/models.js +0 -60
  389. package/dist/resources/beta/models.js.map +0 -1
  390. package/dist/resources/beta/models.mjs +0 -56
  391. package/dist/resources/beta/models.mjs.map +0 -1
  392. package/dist/resources/beta/skills/index.d.mts +0 -3
  393. package/dist/resources/beta/skills/index.d.ts.map +0 -1
  394. package/dist/resources/beta/skills/index.js +0 -9
  395. package/dist/resources/beta/skills/index.js.map +0 -1
  396. package/dist/resources/beta/skills/index.mjs +0 -4
  397. package/dist/resources/beta/skills/index.mjs.map +0 -1
  398. package/dist/resources/beta/skills/skills.d.mts +0 -249
  399. package/dist/resources/beta/skills/skills.d.ts.map +0 -1
  400. package/dist/resources/beta/skills/skills.js +0 -127
  401. package/dist/resources/beta/skills/skills.js.map +0 -1
  402. package/dist/resources/beta/skills/skills.mjs +0 -90
  403. package/dist/resources/beta/skills/skills.mjs.map +0 -1
  404. package/dist/resources/beta/skills/versions.d.mts +0 -257
  405. package/dist/resources/beta/skills/versions.d.ts.map +0 -1
  406. package/dist/resources/beta/skills/versions.js +0 -100
  407. package/dist/resources/beta/skills/versions.js.map +0 -1
  408. package/dist/resources/beta/skills/versions.mjs +0 -96
  409. package/dist/resources/beta/skills/versions.mjs.map +0 -1
  410. package/dist/resources/beta/skills.d.mts +0 -2
  411. package/dist/resources/beta/skills.d.ts.map +0 -1
  412. package/dist/resources/beta/skills.js +0 -19
  413. package/dist/resources/beta/skills.js.map +0 -1
  414. package/dist/resources/beta/skills.mjs +0 -3
  415. package/dist/resources/beta/skills.mjs.map +0 -1
  416. package/dist/resources/beta.d.mts +0 -2
  417. package/dist/resources/beta.d.ts.map +0 -1
  418. package/dist/resources/beta.js +0 -19
  419. package/dist/resources/beta.js.map +0 -1
  420. package/dist/resources/beta.mjs +0 -3
  421. package/dist/resources/beta.mjs.map +0 -1
  422. package/dist/resources/completions.d.mts +0 -182
  423. package/dist/resources/completions.d.ts.map +0 -1
  424. package/dist/resources/completions.js +0 -23
  425. package/dist/resources/completions.js.map +0 -1
  426. package/dist/resources/completions.mjs +0 -19
  427. package/dist/resources/completions.mjs.map +0 -1
  428. package/dist/resources/index.d.mts +0 -6
  429. package/dist/resources/index.d.ts.map +0 -1
  430. package/dist/resources/index.js +0 -28
  431. package/dist/resources/index.js.map +0 -1
  432. package/dist/resources/index.mjs +0 -7
  433. package/dist/resources/index.mjs.map +0 -1
  434. package/dist/resources/messages/batches.d.mts +0 -304
  435. package/dist/resources/messages/batches.d.ts.map +0 -1
  436. package/dist/resources/messages/batches.js +0 -153
  437. package/dist/resources/messages/batches.js.map +0 -1
  438. package/dist/resources/messages/batches.mjs +0 -149
  439. package/dist/resources/messages/batches.mjs.map +0 -1
  440. package/dist/resources/messages/index.d.mts +0 -3
  441. package/dist/resources/messages/index.d.ts.map +0 -1
  442. package/dist/resources/messages/index.js +0 -9
  443. package/dist/resources/messages/index.js.map +0 -1
  444. package/dist/resources/messages/index.mjs +0 -4
  445. package/dist/resources/messages/index.mjs.map +0 -1
  446. package/dist/resources/messages/messages.d.mts +0 -2258
  447. package/dist/resources/messages/messages.d.ts.map +0 -1
  448. package/dist/resources/messages/messages.js +0 -157
  449. package/dist/resources/messages/messages.js.map +0 -1
  450. package/dist/resources/messages/messages.mjs +0 -120
  451. package/dist/resources/messages/messages.mjs.map +0 -1
  452. package/dist/resources/messages.d.mts +0 -2
  453. package/dist/resources/messages.d.ts.map +0 -1
  454. package/dist/resources/messages.js +0 -19
  455. package/dist/resources/messages.js.map +0 -1
  456. package/dist/resources/messages.mjs +0 -3
  457. package/dist/resources/messages.mjs.map +0 -1
  458. package/dist/resources/models.d.mts +0 -193
  459. package/dist/resources/models.d.ts.map +0 -1
  460. package/dist/resources/models.js +0 -45
  461. package/dist/resources/models.js.map +0 -1
  462. package/dist/resources/models.mjs +0 -41
  463. package/dist/resources/models.mjs.map +0 -1
  464. package/dist/resources/shared.d.mts +0 -44
  465. package/dist/resources/shared.d.ts.map +0 -1
  466. package/dist/resources/shared.js +0 -4
  467. package/dist/resources/shared.js.map +0 -1
  468. package/dist/resources/shared.mjs +0 -3
  469. package/dist/resources/shared.mjs.map +0 -1
  470. package/dist/resources/top-level.d.mts +0 -2
  471. package/dist/resources/top-level.d.ts.map +0 -1
  472. package/dist/resources/top-level.js +0 -4
  473. package/dist/resources/top-level.js.map +0 -1
  474. package/dist/resources/top-level.mjs +0 -3
  475. package/dist/resources/top-level.mjs.map +0 -1
  476. package/dist/streaming.d.mts +0 -3
  477. package/dist/streaming.d.ts.map +0 -1
  478. package/dist/streaming.js +0 -19
  479. package/dist/streaming.js.map +0 -1
  480. package/dist/streaming.mjs +0 -3
  481. package/dist/streaming.mjs.map +0 -1
  482. package/dist/tools/memory/node.d.mts +0 -18
  483. package/dist/tools/memory/node.d.ts.map +0 -1
  484. package/dist/tools/memory/node.js +0 -358
  485. package/dist/tools/memory/node.js.map +0 -1
  486. package/dist/tools/memory/node.mjs +0 -320
  487. package/dist/tools/memory/node.mjs.map +0 -1
  488. package/dist/uploads.d.mts +0 -3
  489. package/dist/uploads.d.ts.map +0 -1
  490. package/dist/uploads.js +0 -19
  491. package/dist/uploads.js.map +0 -1
  492. package/dist/uploads.mjs +0 -3
  493. package/dist/uploads.mjs.map +0 -1
  494. package/dist/version.d.mts +0 -2
  495. package/dist/version.d.ts.map +0 -1
  496. package/dist/version.js +0 -5
  497. package/dist/version.js.map +0 -1
  498. package/dist/version.mjs +0 -2
  499. package/dist/version.mjs.map +0 -1
package/sdk.mjs ADDED
@@ -0,0 +1,52 @@
1
+ var mB=function(){let{crypto:B}=globalThis;if(B?.randomUUID)return mB=B.randomUUID.bind(B),B.randomUUID();let C=new Uint8Array(1),T=B?()=>B.getRandomValues(C)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(y)=>(+y^T()&15>>+y/4).toString(16))};function b(B){return typeof B==="object"&&B!==null&&(("name"in B)&&B.name==="AbortError"||("message"in B)&&String(B.message).includes("FetchRequestCanceledException"))}var TB=(B)=>{if(B instanceof Error)return B;if(typeof B==="object"&&B!==null){try{if(Object.prototype.toString.call(B)==="[object Error]"){let C=Error(B.message,B.cause?{cause:B.cause}:{});if(B.stack)C.stack=B.stack;if(B.cause&&!C.cause)C.cause=B.cause;if(B.name)C.name=B.name;return C}}catch{}try{return Error(JSON.stringify(B))}catch{}}return Error(B)};class W extends Error{}class z extends W{status;headers;error;requestID;type;constructor(B,C,T,y,R){super(`${z.makeMessage(B,C,T)}`);this.status=B,this.headers=y,this.requestID=y?.get("request-id"),this.error=C,this.type=R??null}static makeMessage(B,C,T){let y=C?.message?typeof C.message==="string"?C.message:JSON.stringify(C.message):C?JSON.stringify(C):T;if(B&&y)return`${B} ${y}`;if(B)return`${B} status code (no body)`;if(y)return y;return"(no status code or body)"}static generate(B,C,T,y){if(!B||!y)return new d({message:T,cause:TB(C)});let R=C,x=R?.error?.type;if(B===400)return new RB(B,R,T,y,x);if(B===401)return new xB(B,R,T,y,x);if(B===403)return new kB(B,R,T,y,x);if(B===404)return new EB(B,R,T,y,x);if(B===409)return new SB(B,R,T,y,x);if(B===422)return new PB(B,R,T,y,x);if(B===429)return new WB(B,R,T,y,x);if(B>=500)return new UB(B,R,T,y,x);return new z(B,R,T,y,x)}}class V extends z{constructor({message:B}={}){super(void 0,void 0,B||"Request was aborted.",void 0)}}class d extends z{constructor({message:B,cause:C}){super(void 0,void 0,B||"Connection error.",void 0);if(C)this.cause=C}}class yB extends d{constructor({message:B}={}){super({message:B??"Request timed out."})}}class RB extends z{}class xB extends z{}class kB extends z{}class EB extends z{}class SB extends z{}class PB extends z{}class WB extends z{}class UB extends z{}var D2=/^[a-z][a-z0-9+.-]*:/i,wC=(B)=>{return D2.test(B)},tB=(B)=>(tB=Array.isArray,tB(B)),oB=tB;function qB(B){if(typeof B!=="object")return{};return B??{}}function vB(B){if(!B)return!0;for(let C in B)return!1;return!0}function XC(B,C){return Object.prototype.hasOwnProperty.call(B,C)}var zC=(B,C)=>{if(typeof C!=="number"||!Number.isInteger(C))throw new W(`${B} must be an integer`);if(C<0)throw new W(`${B} must be a positive integer`);return C};var LB=(B)=>{try{return JSON.parse(B)}catch(C){return}},Y=(B,C)=>{let T=B[C];return delete B[C],T};var NC=(B)=>new Promise((C)=>setTimeout(C,B));var H="0.81.0";var YC=()=>{return typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u"};function q2(){if(typeof Deno<"u"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime<"u")return"edge";if(Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var L2=()=>{let B=q2();if(B==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":H,"X-Stainless-OS":VC(Deno.build.os),"X-Stainless-Arch":KC(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":H,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(B==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":H,"X-Stainless-OS":VC(globalThis.process.platform??"unknown"),"X-Stainless-Arch":KC(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let C=A2();if(C)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":H,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${C.browser}`,"X-Stainless-Runtime-Version":C.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":H,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function A2(){if(typeof navigator>"u"||!navigator)return null;let B=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:C,pattern:T}of B){let y=T.exec(navigator.userAgent);if(y){let R=y[1]||0,x=y[2]||0,k=y[3]||0;return{browser:C,version:`${R}.${x}.${k}`}}}return null}var KC=(B)=>{if(B==="x32")return"x32";if(B==="x86_64"||B==="x64")return"x64";if(B==="arm")return"arm";if(B==="aarch64"||B==="arm64")return"arm64";if(B)return`other:${B}`;return"unknown"},VC=(B)=>{if(B=B.toLowerCase(),B.includes("ios"))return"iOS";if(B==="android")return"Android";if(B==="darwin")return"MacOS";if(B==="win32")return"Windows";if(B==="freebsd")return"FreeBSD";if(B==="openbsd")return"OpenBSD";if(B==="linux")return"Linux";if(B)return`Other:${B}`;return"Unknown"},f2,QC=()=>{return f2??=L2()};function OC(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function uB(...B){let C=globalThis.ReadableStream;if(typeof C>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new C(...B)}function AB(B){let C=Symbol.asyncIterator in B?B[Symbol.asyncIterator]():B[Symbol.iterator]();return uB({start(){},async pull(T){let{done:y,value:R}=await C.next();if(y)T.close();else T.enqueue(R)},async cancel(){await C.return?.()}})}function MB(B){if(B[Symbol.asyncIterator])return B;let C=B.getReader();return{async next(){try{let T=await C.read();if(T?.done)C.releaseLock();return T}catch(T){throw C.releaseLock(),T}},async return(){let T=C.cancel();return C.releaseLock(),await T,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function DC(B){if(B===null||typeof B!=="object")return;if(B[Symbol.asyncIterator]){await B[Symbol.asyncIterator]().return?.();return}let C=B.getReader(),T=C.cancel();C.releaseLock(),await T}var qC=({headers:B,body:C})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(C)}};function LC(B){return Object.entries(B).filter(([C,T])=>typeof T<"u").map(([C,T])=>{if(typeof T==="string"||typeof T==="number"||typeof T==="boolean")return`${encodeURIComponent(C)}=${encodeURIComponent(T)}`;if(T===null)return`${encodeURIComponent(C)}=`;throw new W(`Cannot stringify type ${typeof T}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}function cC(B){let C=0;for(let R of B)C+=R.length;let T=new Uint8Array(C),y=0;for(let R of B)T.set(R,y),y+=R.length;return T}var AC;function v(B){let C;return(AC??(C=new globalThis.TextEncoder,AC=C.encode.bind(C)))(B)}var fC;function pB(B){let C;return(fC??(C=new globalThis.TextDecoder,fC=C.decode.bind(C)))(B)}class u{static NEWLINE_CHARS=new Set([`
2
+ `,"\r"]);static NEWLINE_REGEXP=/\r\n|[\n\r]/g;#B;#C;constructor(){this.#B=new Uint8Array,this.#C=null}decode(B){if(B==null)return[];let C=B instanceof ArrayBuffer?new Uint8Array(B):typeof B==="string"?v(B):B;this.#B=cC([this.#B,C]);let T=[],y;while((y=_2(this.#B,this.#C))!=null){if(y.carriage&&this.#C==null){this.#C=y.index;continue}if(this.#C!=null&&(y.index!==this.#C+1||y.carriage)){T.push(pB(this.#B.subarray(0,this.#C-1))),this.#B=this.#B.subarray(this.#C),this.#C=null;continue}let R=this.#C!==null?y.preceding-1:y.preceding,x=pB(this.#B.subarray(0,R));T.push(x),this.#B=this.#B.subarray(y.index),this.#C=null}return T}flush(){if(!this.#B.length)return[];return this.decode(`
3
+ `)}}function _2(B,C){for(let R=C??0;R<B.length;R++){if(B[R]===10)return{preceding:R,index:R+1,carriage:!1};if(B[R]===13)return{preceding:R,index:R+1,carriage:!0}}return null}function IC(B){for(let y=0;y<B.length-1;y++){if(B[y]===10&&B[y+1]===10)return y+2;if(B[y]===13&&B[y+1]===13)return y+2;if(B[y]===13&&B[y+1]===10&&y+3<B.length&&B[y+2]===13&&B[y+3]===10)return y+4}return-1}var cB={off:0,error:200,warn:300,info:400,debug:500},nB=(B,C,T)=>{if(!B)return;if(XC(cB,B))return B;K(T).warn(`${C} was set to ${JSON.stringify(B)}, expected one of ${JSON.stringify(Object.keys(cB))}`);return};function JB(){}function fB(B,C,T){if(!C||cB[B]>cB[T])return JB;else return C[B].bind(C)}var H2={error:JB,warn:JB,info:JB,debug:JB},_C=new WeakMap;function K(B){let C=B.logger,T=B.logLevel??"off";if(!C)return H2;let y=_C.get(C);if(y&&y[0]===T)return y[1];let R={error:fB("error",C,T),warn:fB("warn",C,T),info:fB("info",C,T),debug:fB("debug",C,T)};return _C.set(C,[T,R]),R}var l=(B)=>{if(B.options)B.options={...B.options},delete B.options.headers;if(B.headers)B.headers=Object.fromEntries((B.headers instanceof Headers?[...B.headers]:Object.entries(B.headers)).map(([C,T])=>[C,C.toLowerCase()==="x-api-key"||C.toLowerCase()==="authorization"||C.toLowerCase()==="cookie"||C.toLowerCase()==="set-cookie"?"***":T]));if("retryOfRequestLogID"in B){if(B.retryOfRequestLogID)B.retryOf=B.retryOfRequestLogID;delete B.retryOfRequestLogID}return B};class q{iterator;controller;#B;constructor(B,C,T){this.iterator=B;this.controller=C,this.#B=T}static fromSSEResponse(B,C,T){let y=!1,R=T?K(T):console;async function*x(){if(y)throw new W("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");y=!0;let k=!1;try{for await(let E of j2(B,C)){if(E.event==="completion")try{yield JSON.parse(E.data)}catch(S){throw R.error("Could not parse message into JSON:",E.data),R.error("From chunk:",E.raw),S}if(E.event==="message_start"||E.event==="message_delta"||E.event==="message_stop"||E.event==="content_block_start"||E.event==="content_block_delta"||E.event==="content_block_stop")try{yield JSON.parse(E.data)}catch(S){throw R.error("Could not parse message into JSON:",E.data),R.error("From chunk:",E.raw),S}if(E.event==="ping")continue;if(E.event==="error"){let S=LB(E.data)??E.data,U=S?.error?.type;throw new z(void 0,S,void 0,B.headers,U)}}k=!0}catch(E){if(b(E))return;throw E}finally{if(!k)C.abort()}}return new q(x,C,T)}static fromReadableStream(B,C,T){let y=!1;async function*R(){let k=new u,E=MB(B);for await(let S of E)for(let U of k.decode(S))yield U;for(let S of k.flush())yield S}async function*x(){if(y)throw new W("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");y=!0;let k=!1;try{for await(let E of R()){if(k)continue;if(E)yield JSON.parse(E)}k=!0}catch(E){if(b(E))return;throw E}finally{if(!k)C.abort()}}return new q(x,C,T)}[Symbol.asyncIterator](){return this.iterator()}tee(){let B=[],C=[],T=this.iterator(),y=(R)=>{return{next:()=>{if(R.length===0){let x=T.next();B.push(x),C.push(x)}return R.shift()}}};return[new q(()=>y(B),this.controller,this.#B),new q(()=>y(C),this.controller,this.#B)]}toReadableStream(){let B=this,C;return uB({async start(){C=B[Symbol.asyncIterator]()},async pull(T){try{let{value:y,done:R}=await C.next();if(R)return T.close();let x=v(JSON.stringify(y)+`
4
+ `);T.enqueue(x)}catch(y){T.error(y)}},async cancel(){await C.return?.()}})}}async function*j2(B,C){if(!B.body){if(C.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative")throw new W("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new W("Attempted to iterate over a response with no body")}let T=new HC,y=new u,R=MB(B.body);for await(let x of g2(R))for(let k of y.decode(x)){let E=T.decode(k);if(E)yield E}for(let x of y.flush()){let k=T.decode(x);if(k)yield k}}async function*g2(B){let C=new Uint8Array;for await(let T of B){if(T==null)continue;let y=T instanceof ArrayBuffer?new Uint8Array(T):typeof T==="string"?v(T):T,R=new Uint8Array(C.length+y.length);R.set(C),R.set(y,C.length),C=R;let x;while((x=IC(C))!==-1)yield C.slice(0,x),C=C.slice(x)}if(C.length>0)yield C}class HC{data;event;chunks;constructor(){this.event=null,this.data=[],this.chunks=[]}decode(B){if(B.endsWith("\r"))B=B.substring(0,B.length-1);if(!B){if(!this.event&&!this.data.length)return null;let R={event:this.event,data:this.data.join(`
5
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],R}if(this.chunks.push(B),B.startsWith(":"))return null;let[C,T,y]=b2(B,":");if(y.startsWith(" "))y=y.substring(1);if(C==="event")this.event=y;else if(C==="data")this.data.push(y);return null}}function b2(B,C){let T=B.indexOf(C);if(T!==-1)return[B.substring(0,T),C,B.substring(T+C.length)];return[B,"",""]}async function IB(B,C){let{response:T,requestLogID:y,retryOfRequestLogID:R,startTime:x}=C,k=await(async()=>{if(C.options.stream){if(K(B).debug("response",T.status,T.url,T.headers,T.body),C.options.__streamClass)return C.options.__streamClass.fromSSEResponse(T,C.controller);return q.fromSSEResponse(T,C.controller)}if(T.status===204)return null;if(C.options.__binaryResponse)return T;let S=T.headers.get("content-type")?.split(";")[0]?.trim();if(S?.includes("application/json")||S?.endsWith("+json")){if(T.headers.get("content-length")==="0")return;let M=await T.json();return eB(M,T)}return await T.text()})();return K(B).debug(`[${y}] response parsed`,l({retryOfRequestLogID:R,url:T.url,status:T.status,body:k,durationMs:Date.now()-x})),k}function eB(B,C){if(!B||typeof B!=="object"||Array.isArray(B))return B;return Object.defineProperty(B,"_request_id",{value:C.headers.get("request-id"),enumerable:!1})}class i extends Promise{responsePromise;parseResponse;parsedPromise;#B;constructor(B,C,T=IB){super((y)=>{y(null)});this.responsePromise=C;this.parseResponse=T;this.#B=B}_thenUnwrap(B){return new i(this.#B,this.responsePromise,async(C,T)=>eB(B(await this.parseResponse(C,T),T),T.response))}asResponse(){return this.responsePromise.then((B)=>B.response)}async withResponse(){let[B,C]=await Promise.all([this.parse(),this.asResponse()]);return{data:B,response:C,request_id:C.headers.get("request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then((B)=>this.parseResponse(this.#B,B));return this.parsedPromise}then(B,C){return this.parse().then(B,C)}catch(B){return this.parse().catch(B)}finally(B){return this.parse().finally(B)}}class rB{#B;options;response;body;constructor(B,C,T,y){this.#B=B,this.options=y,this.response=C,this.body=T}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageRequestOptions()!=null}async getNextPage(){let B=this.nextPageRequestOptions();if(!B)throw new W("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await this.#B.requestAPIList(this.constructor,B)}async*iterPages(){let B=this;yield B;while(B.hasNextPage())B=await B.getNextPage(),yield B}async*[Symbol.asyncIterator](){for await(let B of this.iterPages())for(let C of B.getPaginatedItems())yield C}}class _B extends i{constructor(B,C,T){super(B,C,async(y,R)=>new T(y,R.response,await IB(y,R),R.options))}async*[Symbol.asyncIterator](){let B=await this;for await(let C of B)yield C}}class c extends rB{data;has_more;first_id;last_id;constructor(B,C,T,y){super(B,C,T,y);this.data=T.data||[],this.has_more=T.has_more||!1,this.first_id=T.first_id||null,this.last_id=T.last_id||null}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){if(this.options.query?.before_id){let C=this.first_id;if(!C)return null;return{...this.options,query:{...qB(this.options.query),before_id:C}}}let B=this.last_id;if(!B)return null;return{...this.options,query:{...qB(this.options.query),after_id:B}}}}class FB extends rB{data;has_more;next_page;constructor(B,C,T,y){super(B,C,T,y);this.data=T.data||[],this.has_more=T.has_more||!1,this.next_page=T.next_page||null}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){let B=this.next_page;if(!B)return null;return{...this.options,query:{...qB(this.options.query),page:B}}}}var BC=()=>{if(typeof File>"u"){let{process:B}=globalThis,C=typeof B?.versions?.node==="string"&&parseInt(B.versions.node.split("."))<20;throw Error("`File` is not defined as a global, which is required for file uploads."+(C?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function m(B,C,T){return BC(),new File(B,C??"unknown_file",T)}function $B(B,C){let T=typeof B==="object"&&B!==null&&(("name"in B)&&B.name&&String(B.name)||("url"in B)&&B.url&&String(B.url)||("filename"in B)&&B.filename&&String(B.filename)||("path"in B)&&B.path&&String(B.path))||"";return C?T.split(/[\\/]/).pop()||void 0:T}var CC=(B)=>B!=null&&typeof B==="object"&&typeof B[Symbol.asyncIterator]==="function";var p=async(B,C,T=!0)=>{return{...B,body:await a2(B.body,C,T)}},jC=new WeakMap;function h2(B){let C=typeof B==="function"?B:B.fetch,T=jC.get(C);if(T)return T;let y=(async()=>{try{let R="Response"in C?C.Response:(await C("data:,")).constructor,x=new FormData;if(x.toString()===await new R(x).text())return!1;return!0}catch{return!0}})();return jC.set(C,y),y}var a2=async(B,C,T=!0)=>{if(!await h2(C))throw TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let y=new FormData;return await Promise.all(Object.entries(B||{}).map(([R,x])=>sB(y,R,x,T))),y},d2=(B)=>B instanceof Blob&&("name"in B);var sB=async(B,C,T,y)=>{if(T===void 0)return;if(T==null)throw TypeError(`Received null for "${C}"; to pass null in FormData, you must use the string 'null'`);if(typeof T==="string"||typeof T==="number"||typeof T==="boolean")B.append(C,String(T));else if(T instanceof Response){let R={},x=T.headers.get("Content-Type");if(x)R={type:x};B.append(C,m([await T.blob()],$B(T,y),R))}else if(CC(T))B.append(C,m([await new Response(AB(T)).blob()],$B(T,y)));else if(d2(T))B.append(C,m([T],$B(T,y),{type:T.type}));else if(Array.isArray(T))await Promise.all(T.map((R)=>sB(B,C+"[]",R,y)));else if(typeof T==="object")await Promise.all(Object.entries(T).map(([R,x])=>sB(B,`${C}[${R}]`,x,y)));else throw TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${T} instead`)};var gC=(B)=>B!=null&&typeof B==="object"&&typeof B.size==="number"&&typeof B.type==="string"&&typeof B.text==="function"&&typeof B.slice==="function"&&typeof B.arrayBuffer==="function",i2=(B)=>B!=null&&typeof B==="object"&&typeof B.name==="string"&&typeof B.lastModified==="number"&&gC(B),m2=(B)=>B!=null&&typeof B==="object"&&typeof B.url==="string"&&typeof B.blob==="function";async function HB(B,C,T){if(BC(),B=await B,C||=$B(B,!0),i2(B)){if(B instanceof File&&C==null&&T==null)return B;return m([await B.arrayBuffer()],C??B.name,{type:B.type,lastModified:B.lastModified,...T})}if(m2(B)){let R=await B.blob();return C||=new URL(B.url).pathname.split(/[\\/]/).pop(),m(await TC(R),C,T)}let y=await TC(B);if(!T?.type){let R=y.find((x)=>typeof x==="object"&&("type"in x)&&x.type);if(typeof R==="string")T={...T,type:R}}return m(y,C,T)}async function TC(B){let C=[];if(typeof B==="string"||ArrayBuffer.isView(B)||B instanceof ArrayBuffer)C.push(B);else if(gC(B))C.push(B instanceof Blob?B:await B.arrayBuffer());else if(CC(B))for await(let T of B)C.push(...await TC(T));else{let T=B?.constructor?.name;throw Error(`Unexpected data type: ${typeof B}${T?`; constructor: ${T}`:""}${t2(B)}`)}return C}function t2(B){if(typeof B!=="object"||B===null)return"";return`; props: [${Object.getOwnPropertyNames(B).map((T)=>`"${T}"`).join(", ")}]`}class Z{_client;constructor(B){this._client=B}}var bC=Symbol.for("brand.privateNullableHeaders");function*v2(B){if(!B)return;if(bC in B){let{values:y,nulls:R}=B;yield*y.entries();for(let x of R)yield[x,null];return}let C=!1,T;if(B instanceof Headers)T=B.entries();else if(oB(B))T=B;else C=!0,T=Object.entries(B??{});for(let y of T){let R=y[0];if(typeof R!=="string")throw TypeError("expected header name to be a string");let x=oB(y[1])?y[1]:[y[1]],k=!1;for(let E of x){if(E===void 0)continue;if(C&&!k)k=!0,yield[R,null];yield[R,E]}}}var J=(B)=>{let C=new Headers,T=new Set;for(let y of B){let R=new Set;for(let[x,k]of v2(y)){let E=x.toLowerCase();if(!R.has(E))C.delete(x),R.add(E);if(k===null)C.delete(x),T.add(E);else C.append(x,k),T.delete(E)}}return{[bC]:!0,values:C,nulls:T}};var D=Symbol("anthropic.sdk.stainlessHelper");function jB(B){return typeof B==="object"&&B!==null&&D in B}function gB(B,C){let T=new Set;if(B){for(let y of B)if(jB(y))T.add(y[D])}if(C)for(let y of C){if(jB(y))T.add(y[D]);if(Array.isArray(y.content)){for(let R of y.content)if(jB(R))T.add(R[D])}}return Array.from(T)}function GB(B,C){let T=gB(B,C);if(T.length===0)return{};return{"x-stainless-helper":T.join(", ")}}function lC(B){if(jB(B))return{"x-stainless-helper":B[D]};return{}}function aC(B){return B.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var hC=Object.freeze(Object.create(null)),u2=(B=aC)=>function(T,...y){if(T.length===1)return T[0];let R=!1,x=[],k=T.reduce((P,$,M)=>{if(/[?#]/.test($))R=!0;let X=y[M],A=(R?encodeURIComponent:B)(""+X);if(M!==y.length&&(X==null||typeof X==="object"&&X.toString===Object.getPrototypeOf(Object.getPrototypeOf(X.hasOwnProperty??hC)??hC)?.toString))A=X+"",x.push({start:P.length+$.length,length:A.length,error:`Value of type ${Object.prototype.toString.call(X).slice(8,-1)} is not a valid path parameter`});return P+$+(M===y.length?"":A)},""),E=k.split(/[?#]/,1)[0],S=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,U;while((U=S.exec(E))!==null)x.push({start:U.index,length:U[0].length,error:`Value "${U[0]}" can't be safely passed as a path parameter`});if(x.sort((P,$)=>P.start-$.start),x.length>0){let P=0,$=x.reduce((M,X)=>{let A=" ".repeat(X.start-P),_="^".repeat(X.length);return P=X.start+X.length,M+A+_},"");throw new W(`Path parameters result in path with invalid segments:
6
+ ${x.map((M)=>M.error).join(`
7
+ `)}
8
+ ${k}
9
+ ${$}`)}return k},G=u2(aC);class ZB extends Z{list(B={},C){let{betas:T,...y}=B??{};return this._client.getAPIList("/v1/files",c,{query:y,...C,headers:J([{"anthropic-beta":[...T??[],"files-api-2025-04-14"].toString()},C?.headers])})}delete(B,C={},T){let{betas:y}=C??{};return this._client.delete(G`/v1/files/${B}`,{...T,headers:J([{"anthropic-beta":[...y??[],"files-api-2025-04-14"].toString()},T?.headers])})}download(B,C={},T){let{betas:y}=C??{};return this._client.get(G`/v1/files/${B}/content`,{...T,headers:J([{"anthropic-beta":[...y??[],"files-api-2025-04-14"].toString(),Accept:"application/binary"},T?.headers]),__binaryResponse:!0})}retrieveMetadata(B,C={},T){let{betas:y}=C??{};return this._client.get(G`/v1/files/${B}`,{...T,headers:J([{"anthropic-beta":[...y??[],"files-api-2025-04-14"].toString()},T?.headers])})}upload(B,C){let{betas:T,...y}=B;return this._client.post("/v1/files",p({body:y,...C,headers:J([{"anthropic-beta":[...T??[],"files-api-2025-04-14"].toString()},lC(y.file),C?.headers])},this._client))}}class wB extends Z{retrieve(B,C={},T){let{betas:y}=C??{};return this._client.get(G`/v1/models/${B}?beta=true`,{...T,headers:J([{...y?.toString()!=null?{"anthropic-beta":y?.toString()}:void 0},T?.headers])})}list(B={},C){let{betas:T,...y}=B??{};return this._client.getAPIList("/v1/models?beta=true",c,{query:y,...C,headers:J([{...T?.toString()!=null?{"anthropic-beta":T?.toString()}:void 0},C?.headers])})}}var bB={"claude-opus-4-20250514":8192,"claude-opus-4-0":8192,"claude-4-opus-20250514":8192,"anthropic.claude-opus-4-20250514-v1:0":8192,"claude-opus-4@20250514":8192,"claude-opus-4-1-20250805":8192,"anthropic.claude-opus-4-1-20250805-v1:0":8192,"claude-opus-4-1@20250805":8192};function dC(B){return B?.output_format??B?.output_config?.format}function yC(B,C,T){let y=dC(C);if(!C||!("parse"in(y??{})))return{...B,content:B.content.map((R)=>{if(R.type==="text"){let x=Object.defineProperty({...R},"parsed_output",{value:null,enumerable:!1});return Object.defineProperty(x,"parsed",{get(){return T.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),null},enumerable:!1})}return R}),parsed_output:null};return RC(B,C,T)}function RC(B,C,T){let y=null,R=B.content.map((x)=>{if(x.type==="text"){let k=e2(C,x.text);if(y===null)y=k;let E=Object.defineProperty({...x},"parsed_output",{value:k,enumerable:!1});return Object.defineProperty(E,"parsed",{get(){return T.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),k},enumerable:!1})}return x});return{...B,content:R,parsed_output:y}}function e2(B,C){let T=dC(B);if(T?.type!=="json_schema")return null;try{if("parse"in T)return T.parse(C);return JSON.parse(C)}catch(y){throw new W(`Failed to parse structured output: ${y}`)}}var r2=(B)=>{let C=0,T=[];while(C<B.length){let y=B[C];if(y==="\\"){C++;continue}if(y==="{"){T.push({type:"brace",value:"{"}),C++;continue}if(y==="}"){T.push({type:"brace",value:"}"}),C++;continue}if(y==="["){T.push({type:"paren",value:"["}),C++;continue}if(y==="]"){T.push({type:"paren",value:"]"}),C++;continue}if(y===":"){T.push({type:"separator",value:":"}),C++;continue}if(y===","){T.push({type:"delimiter",value:","}),C++;continue}if(y==='"'){let E="",S=!1;y=B[++C];while(y!=='"'){if(C===B.length){S=!0;break}if(y==="\\"){if(C++,C===B.length){S=!0;break}E+=y+B[C],y=B[++C]}else E+=y,y=B[++C]}if(y=B[++C],!S)T.push({type:"string",value:E});continue}if(y&&/\s/.test(y)){C++;continue}let x=/[0-9]/;if(y&&x.test(y)||y==="-"||y==="."){let E="";if(y==="-")E+=y,y=B[++C];while(y&&x.test(y)||y===".")E+=y,y=B[++C];T.push({type:"number",value:E});continue}let k=/[a-z]/i;if(y&&k.test(y)){let E="";while(y&&k.test(y)){if(C===B.length)break;E+=y,y=B[++C]}if(E=="true"||E=="false"||E==="null")T.push({type:"name",value:E});else{C++;continue}continue}C++}return T},n=(B)=>{if(B.length===0)return B;let C=B[B.length-1];switch(C.type){case"separator":return B=B.slice(0,B.length-1),n(B);break;case"number":let T=C.value[C.value.length-1];if(T==="."||T==="-")return B=B.slice(0,B.length-1),n(B);case"string":let y=B[B.length-2];if(y?.type==="delimiter")return B=B.slice(0,B.length-1),n(B);else if(y?.type==="brace"&&y.value==="{")return B=B.slice(0,B.length-1),n(B);break;case"delimiter":return B=B.slice(0,B.length-1),n(B);break}return B},s2=(B)=>{let C=[];if(B.map((T)=>{if(T.type==="brace")if(T.value==="{")C.push("}");else C.splice(C.lastIndexOf("}"),1);if(T.type==="paren")if(T.value==="[")C.push("]");else C.splice(C.lastIndexOf("]"),1)}),C.length>0)C.reverse().map((T)=>{if(T==="}")B.push({type:"brace",value:"}"});else if(T==="]")B.push({type:"paren",value:"]"})});return B},BT=(B)=>{let C="";return B.map((T)=>{switch(T.type){case"string":C+='"'+T.value+'"';break;default:C+=T.value;break}}),C},lB=(B)=>JSON.parse(BT(s2(n(r2(B)))));var iC="__json_buf";function mC(B){return B.type==="tool_use"||B.type==="server_tool_use"||B.type==="mcp_tool_use"}class XB{messages=[];receivedMessages=[];#B;#C=null;controller=new AbortController;#y;#k=()=>{};#T=()=>{};#R;#E=()=>{};#P=()=>{};#x={};#W=!1;#M=!1;#J=!1;#S=!1;#F;#$;#U;constructor(B,C){this.#y=new Promise((T,y)=>{this.#k=T,this.#T=y}),this.#R=new Promise((T,y)=>{this.#E=T,this.#P=y}),this.#y.catch(()=>{}),this.#R.catch(()=>{}),this.#C=B,this.#U=C?.logger??console}get response(){return this.#F}get request_id(){return this.#$}async withResponse(){this.#S=!0;let B=await this.#y;if(!B)throw Error("Could not resolve a `Response` object");return{data:this,response:B,request_id:B.headers.get("request-id")}}static fromReadableStream(B){let C=new XB(null);return C._run(()=>C._fromReadableStream(B)),C}static createMessage(B,C,T,{logger:y}={}){let R=new XB(C,{logger:y});for(let x of C.messages)R._addMessageParam(x);return R.#C={...C,stream:!0},R._run(()=>R._createMessage(B,{...C,stream:!0},{...T,headers:{...T?.headers,"X-Stainless-Helper-Method":"stream"}})),R}_run(B){B().then(()=>{this._emitFinal(),this._emit("end")},this.#z)}_addMessageParam(B){this.messages.push(B)}_addMessage(B,C=!0){if(this.receivedMessages.push(B),C)this._emit("message",B)}async _createMessage(B,C,T){let y=T?.signal,R;if(y){if(y.aborted)this.controller.abort();R=this.controller.abort.bind(this.controller),y.addEventListener("abort",R)}try{this.#Z();let{response:x,data:k}=await B.create({...C,stream:!0},{...T,signal:this.controller.signal}).withResponse();this._connected(x);for await(let E of k)this.#w(E);if(k.controller.signal?.aborted)throw new V;this.#X()}finally{if(y&&R)y.removeEventListener("abort",R)}}_connected(B){if(this.ended)return;this.#F=B,this.#$=B?.headers.get("request-id"),this.#k(B),this._emit("connect")}get ended(){return this.#W}get errored(){return this.#M}get aborted(){return this.#J}abort(){this.controller.abort()}on(B,C){return(this.#x[B]||(this.#x[B]=[])).push({listener:C}),this}off(B,C){let T=this.#x[B];if(!T)return this;let y=T.findIndex((R)=>R.listener===C);if(y>=0)T.splice(y,1);return this}once(B,C){return(this.#x[B]||(this.#x[B]=[])).push({listener:C,once:!0}),this}emitted(B){return new Promise((C,T)=>{if(this.#S=!0,B!=="error")this.once("error",T);this.once(B,C)})}async done(){this.#S=!0,await this.#R}get currentMessage(){return this.#B}#G(){if(this.receivedMessages.length===0)throw new W("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)}async finalMessage(){return await this.done(),this.#G()}#N(){if(this.receivedMessages.length===0)throw new W("stream ended without producing a Message with role=assistant");let B=this.receivedMessages.at(-1).content.filter((C)=>C.type==="text").map((C)=>C.text);if(B.length===0)throw new W("stream ended without producing a content block with type=text");return B.join(" ")}async finalText(){return await this.done(),this.#N()}#z=(B)=>{if(this.#M=!0,b(B))B=new V;if(B instanceof V)return this.#J=!0,this._emit("abort",B);if(B instanceof W)return this._emit("error",B);if(B instanceof Error){let C=new W(B.message);return C.cause=B,this._emit("error",C)}return this._emit("error",new W(String(B)))};_emit(B,...C){if(this.#W)return;if(B==="end")this.#W=!0,this.#E();let T=this.#x[B];if(T)this.#x[B]=T.filter((y)=>!y.once),T.forEach(({listener:y})=>y(...C));if(B==="abort"){let y=C[0];if(!this.#S&&!T?.length)Promise.reject(y);this.#T(y),this.#P(y),this._emit("end");return}if(B==="error"){let y=C[0];if(!this.#S&&!T?.length)Promise.reject(y);this.#T(y),this.#P(y),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",this.#G())}#Z(){if(this.ended)return;this.#B=void 0}#w(B){if(this.ended)return;let C=this.#K(B);switch(this._emit("streamEvent",B,C),B.type){case"content_block_delta":{let T=C.content.at(-1);switch(B.delta.type){case"text_delta":{if(T.type==="text")this._emit("text",B.delta.text,T.text||"");break}case"citations_delta":{if(T.type==="text")this._emit("citation",B.delta.citation,T.citations??[]);break}case"input_json_delta":{if(mC(T)&&T.input)this._emit("inputJson",B.delta.partial_json,T.input);break}case"thinking_delta":{if(T.type==="thinking")this._emit("thinking",B.delta.thinking,T.thinking);break}case"signature_delta":{if(T.type==="thinking")this._emit("signature",T.signature);break}case"compaction_delta":{if(T.type==="compaction"&&T.content)this._emit("compaction",T.content);break}default:tC(B.delta)}break}case"message_stop":{this._addMessageParam(C),this._addMessage(yC(C,this.#C,{logger:this.#U}),!0);break}case"content_block_stop":{this._emit("contentBlock",C.content.at(-1));break}case"message_start":{this.#B=C;break}case"content_block_start":case"message_delta":break}}#X(){if(this.ended)throw new W("stream has ended, this shouldn't happen");let B=this.#B;if(!B)throw new W("request ended without sending any chunks");return this.#B=void 0,yC(B,this.#C,{logger:this.#U})}async _fromReadableStream(B,C){let T=C?.signal,y;if(T){if(T.aborted)this.controller.abort();y=this.controller.abort.bind(this.controller),T.addEventListener("abort",y)}try{this.#Z(),this._connected(null);let R=q.fromReadableStream(B,this.controller);for await(let x of R)this.#w(x);if(R.controller.signal?.aborted)throw new V;this.#X()}finally{if(T&&y)T.removeEventListener("abort",y)}}#K(B){let C=this.#B;if(B.type==="message_start"){if(C)throw new W(`Unexpected event order, got ${B.type} before receiving "message_stop"`);return B.message}if(!C)throw new W(`Unexpected event order, got ${B.type} before "message_start"`);switch(B.type){case"message_stop":return C;case"message_delta":if(C.container=B.delta.container,C.stop_reason=B.delta.stop_reason,C.stop_sequence=B.delta.stop_sequence,C.usage.output_tokens=B.usage.output_tokens,C.context_management=B.context_management,B.usage.input_tokens!=null)C.usage.input_tokens=B.usage.input_tokens;if(B.usage.cache_creation_input_tokens!=null)C.usage.cache_creation_input_tokens=B.usage.cache_creation_input_tokens;if(B.usage.cache_read_input_tokens!=null)C.usage.cache_read_input_tokens=B.usage.cache_read_input_tokens;if(B.usage.server_tool_use!=null)C.usage.server_tool_use=B.usage.server_tool_use;if(B.usage.iterations!=null)C.usage.iterations=B.usage.iterations;return C;case"content_block_start":return C.content.push(B.content_block),C;case"content_block_delta":{let T=C.content.at(B.index);switch(B.delta.type){case"text_delta":{if(T?.type==="text")C.content[B.index]={...T,text:(T.text||"")+B.delta.text};break}case"citations_delta":{if(T?.type==="text")C.content[B.index]={...T,citations:[...T.citations??[],B.delta.citation]};break}case"input_json_delta":{if(T&&mC(T)){let y=T[iC]||"";y+=B.delta.partial_json;let R={...T};if(Object.defineProperty(R,iC,{value:y,enumerable:!1,writable:!0}),y)try{R.input=lB(y)}catch(x){let k=new W(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${x}. JSON: ${y}`);this.#z(k)}C.content[B.index]=R}break}case"thinking_delta":{if(T?.type==="thinking")C.content[B.index]={...T,thinking:T.thinking+B.delta.thinking};break}case"signature_delta":{if(T?.type==="thinking")C.content[B.index]={...T,signature:B.delta.signature};break}case"compaction_delta":{if(T?.type==="compaction")C.content[B.index]={...T,content:(T.content||"")+B.delta.content};break}default:tC(B.delta)}return C}case"content_block_stop":return C}}[Symbol.asyncIterator](){let B=[],C=[],T=!1;return this.on("streamEvent",(y)=>{let R=C.shift();if(R)R.resolve(y);else B.push(y)}),this.on("end",()=>{T=!0;for(let y of C)y.resolve(void 0);C.length=0}),this.on("abort",(y)=>{T=!0;for(let R of C)R.reject(y);C.length=0}),this.on("error",(y)=>{T=!0;for(let R of C)R.reject(y);C.length=0}),{next:async()=>{if(!B.length){if(T)return{value:void 0,done:!0};return new Promise((R,x)=>C.push({resolve:R,reject:x})).then((R)=>R?{value:R,done:!1}:{value:void 0,done:!0})}return{value:B.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new q(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function tC(B){}class F extends Error{content;constructor(B){let C=typeof B==="string"?B:B.map((T)=>{if(T.type==="text")return T.text;return`[${T.type}]`}).join(" ");super(C);this.name="ToolError",this.content=B}}var oC=1e5,vC=`You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include:
10
+ 1. Task Overview
11
+ The user's core request and success criteria
12
+ Any clarifications or constraints they specified
13
+ 2. Current State
14
+ What has been completed so far
15
+ Files created, modified, or analyzed (with paths if relevant)
16
+ Key outputs or artifacts produced
17
+ 3. Important Discoveries
18
+ Technical constraints or requirements uncovered
19
+ Decisions made and their rationale
20
+ Errors encountered and how they were resolved
21
+ What approaches were tried that didn't work (and why)
22
+ 4. Next Steps
23
+ Specific actions needed to complete the task
24
+ Any blockers or open questions to resolve
25
+ Priority order if multiple steps remain
26
+ 5. Context to Preserve
27
+ User preferences or style requirements
28
+ Domain-specific details that aren't obvious
29
+ Any promises made to the user
30
+ Be concise but complete—err on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task.
31
+ Wrap your summary in <summary></summary> tags.`;function uC(){let B,C;return{promise:new Promise((y,R)=>{B=y,C=R}),resolve:B,reject:C}}class zB{client;#B=!1;#C=!1;#y;#k;#T;#R;#E;#P=0;constructor(B,C,T){this.client=B;this.#y={params:{...C,messages:structuredClone(C.messages)}};let R=["BetaToolRunner",...gB(C.tools,C.messages)].join(", ");this.#k={...T,headers:J([{"x-stainless-helper":R},T?.headers])},this.#E=uC()}async#x(){let B=this.#y.params.compactionControl;if(!B||!B.enabled)return!1;let C=0;if(this.#T!==void 0)try{let E=await this.#T;C=E.usage.input_tokens+(E.usage.cache_creation_input_tokens??0)+(E.usage.cache_read_input_tokens??0)+E.usage.output_tokens}catch{return!1}let T=B.contextTokenThreshold??oC;if(C<T)return!1;let y=B.model??this.#y.params.model,R=B.summaryPrompt??vC,x=this.#y.params.messages;if(x[x.length-1].role==="assistant"){let E=x[x.length-1];if(Array.isArray(E.content)){let S=E.content.filter((U)=>U.type!=="tool_use");if(S.length===0)x.pop();else E.content=S}}let k=await this.client.beta.messages.create({model:y,messages:[...x,{role:"user",content:[{type:"text",text:R}]}],max_tokens:this.#y.params.max_tokens},{headers:{"x-stainless-helper":"compaction"}});if(k.content[0]?.type!=="text")throw new W("Expected text response for compaction");return this.#y.params.messages=[{role:"user",content:k.content}],!0}async*[Symbol.asyncIterator](){if(this.#B)throw new W("Cannot iterate over a consumed stream");this.#B=!0,this.#C=!0,this.#R=void 0;try{while(!0){let B;try{if(this.#y.params.max_iterations&&this.#P>=this.#y.params.max_iterations)break;this.#C=!1,this.#R=void 0,this.#P++,this.#T=void 0;let{max_iterations:C,compactionControl:T,...y}=this.#y.params;if(y.stream)B=this.client.beta.messages.stream({...y},this.#k),this.#T=B.finalMessage(),this.#T.catch(()=>{}),yield B;else this.#T=this.client.beta.messages.create({...y,stream:!1},this.#k),yield this.#T;if(!await this.#x()){if(!this.#C){let{role:k,content:E}=await this.#T;this.#y.params.messages.push({role:k,content:E})}let x=await this.#W(this.#y.params.messages.at(-1));if(x)this.#y.params.messages.push(x);else if(!this.#C)break}}finally{if(B)B.abort()}}if(!this.#T)throw new W("ToolRunner concluded without a message from the server");this.#E.resolve(await this.#T)}catch(B){throw this.#B=!1,this.#E.promise.catch(()=>{}),this.#E.reject(B),this.#E=uC(),B}}setMessagesParams(B){if(typeof B==="function")this.#y.params=B(this.#y.params);else this.#y.params=B;this.#C=!0,this.#R=void 0}async generateToolResponse(){let B=await this.#T??this.params.messages.at(-1);if(!B)return null;return this.#W(B)}async#W(B){if(this.#R!==void 0)return this.#R;return this.#R=CT(this.#y.params,B),this.#R}done(){return this.#E.promise}async runUntilDone(){if(!this.#B)for await(let B of this);return this.done()}get params(){return this.#y.params}pushMessages(...B){this.setMessagesParams((C)=>({...C,messages:[...C.messages,...B]}))}then(B,C){return this.runUntilDone().then(B,C)}}async function CT(B,C=B.messages.at(-1)){if(!C||C.role!=="assistant"||!C.content||typeof C.content==="string")return null;let T=C.content.filter((R)=>R.type==="tool_use");if(T.length===0)return null;return{role:"user",content:await Promise.all(T.map(async(R)=>{let x=B.tools.find((k)=>("name"in k?k.name:k.mcp_server_name)===R.name);if(!x||!("run"in x))return{type:"tool_result",tool_use_id:R.id,content:`Error: Tool '${R.name}' not found`,is_error:!0};try{let k=R.input;if("parse"in x&&x.parse)k=x.parse(k);let E=await x.run(k);return{type:"tool_result",tool_use_id:R.id,content:E}}catch(k){return{type:"tool_result",tool_use_id:R.id,content:k instanceof F?k.content:`Error: ${k instanceof Error?k.message:String(k)}`,is_error:!0}}}))}}class e{iterator;controller;constructor(B,C){this.iterator=B;this.controller=C}async*decoder(){let B=new u;for await(let C of this.iterator)for(let T of B.decode(C))yield JSON.parse(T);for(let C of B.flush())yield JSON.parse(C)}[Symbol.asyncIterator](){return this.decoder()}static fromResponse(B,C){if(!B.body){if(C.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative")throw new W("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new W("Attempted to iterate over a response with no body")}return new e(MB(B.body),C)}}class NB extends Z{create(B,C){let{betas:T,...y}=B;return this._client.post("/v1/messages/batches?beta=true",{body:y,...C,headers:J([{"anthropic-beta":[...T??[],"message-batches-2024-09-24"].toString()},C?.headers])})}retrieve(B,C={},T){let{betas:y}=C??{};return this._client.get(G`/v1/messages/batches/${B}?beta=true`,{...T,headers:J([{"anthropic-beta":[...y??[],"message-batches-2024-09-24"].toString()},T?.headers])})}list(B={},C){let{betas:T,...y}=B??{};return this._client.getAPIList("/v1/messages/batches?beta=true",c,{query:y,...C,headers:J([{"anthropic-beta":[...T??[],"message-batches-2024-09-24"].toString()},C?.headers])})}delete(B,C={},T){let{betas:y}=C??{};return this._client.delete(G`/v1/messages/batches/${B}?beta=true`,{...T,headers:J([{"anthropic-beta":[...y??[],"message-batches-2024-09-24"].toString()},T?.headers])})}cancel(B,C={},T){let{betas:y}=C??{};return this._client.post(G`/v1/messages/batches/${B}/cancel?beta=true`,{...T,headers:J([{"anthropic-beta":[...y??[],"message-batches-2024-09-24"].toString()},T?.headers])})}async results(B,C={},T){let y=await this.retrieve(B);if(!y.results_url)throw new W(`No batch \`results_url\`; Has it finished processing? ${y.processing_status} - ${y.id}`);let{betas:R}=C??{};return this._client.get(y.results_url,{...T,headers:J([{"anthropic-beta":[...R??[],"message-batches-2024-09-24"].toString(),Accept:"application/binary"},T?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((x,k)=>e.fromResponse(k.response,k.controller))}}var pC={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"},yT=["claude-opus-4-6"];class h extends Z{batches=new NB(this._client);create(B,C){let T=nC(B),{betas:y,...R}=T;if(R.model in pC)console.warn(`The model '${R.model}' is deprecated and will reach end-of-life on ${pC[R.model]}
32
+ Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);if(R.model in yT&&R.thinking&&R.thinking.type==="enabled")console.warn(`Using Claude with ${R.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);let x=this._client._options.timeout;if(!R.stream&&x==null){let E=bB[R.model]??void 0;x=this._client.calculateNonstreamingTimeout(R.max_tokens,E)}let k=GB(R.tools,R.messages);return this._client.post("/v1/messages?beta=true",{body:R,timeout:x??600000,...C,headers:J([{...y?.toString()!=null?{"anthropic-beta":y?.toString()}:void 0},k,C?.headers]),stream:T.stream??!1})}parse(B,C){return C={...C,headers:J([{"anthropic-beta":[...B.betas??[],"structured-outputs-2025-12-15"].toString()},C?.headers])},this.create(B,C).then((T)=>RC(T,B,{logger:this._client.logger??console}))}stream(B,C){return XB.createMessage(this,B,C)}countTokens(B,C){let T=nC(B),{betas:y,...R}=T;return this._client.post("/v1/messages/count_tokens?beta=true",{body:R,...C,headers:J([{"anthropic-beta":[...y??[],"token-counting-2024-11-01"].toString()},C?.headers])})}toolRunner(B,C){return new zB(this._client,B,C)}}function nC(B){if(!B.output_format)return B;if(B.output_config?.format)throw new W("Both output_format and output_config.format were provided. Please use only output_config.format (output_format is deprecated).");let{output_format:C,...T}=B;return{...T,output_config:{...B.output_config,format:C}}}h.Batches=NB;h.BetaToolRunner=zB;h.ToolError=F;class KB extends Z{create(B,C={},T){let{betas:y,...R}=C??{};return this._client.post(G`/v1/skills/${B}/versions?beta=true`,p({body:R,...T,headers:J([{"anthropic-beta":[...y??[],"skills-2025-10-02"].toString()},T?.headers])},this._client))}retrieve(B,C,T){let{skill_id:y,betas:R}=C;return this._client.get(G`/v1/skills/${y}/versions/${B}?beta=true`,{...T,headers:J([{"anthropic-beta":[...R??[],"skills-2025-10-02"].toString()},T?.headers])})}list(B,C={},T){let{betas:y,...R}=C??{};return this._client.getAPIList(G`/v1/skills/${B}/versions?beta=true`,FB,{query:R,...T,headers:J([{"anthropic-beta":[...y??[],"skills-2025-10-02"].toString()},T?.headers])})}delete(B,C,T){let{skill_id:y,betas:R}=C;return this._client.delete(G`/v1/skills/${y}/versions/${B}?beta=true`,{...T,headers:J([{"anthropic-beta":[...R??[],"skills-2025-10-02"].toString()},T?.headers])})}}class r extends Z{versions=new KB(this._client);create(B={},C){let{betas:T,...y}=B??{};return this._client.post("/v1/skills?beta=true",p({body:y,...C,headers:J([{"anthropic-beta":[...T??[],"skills-2025-10-02"].toString()},C?.headers])},this._client,!1))}retrieve(B,C={},T){let{betas:y}=C??{};return this._client.get(G`/v1/skills/${B}?beta=true`,{...T,headers:J([{"anthropic-beta":[...y??[],"skills-2025-10-02"].toString()},T?.headers])})}list(B={},C){let{betas:T,...y}=B??{};return this._client.getAPIList("/v1/skills?beta=true",FB,{query:y,...C,headers:J([{"anthropic-beta":[...T??[],"skills-2025-10-02"].toString()},C?.headers])})}delete(B,C={},T){let{betas:y}=C??{};return this._client.delete(G`/v1/skills/${B}?beta=true`,{...T,headers:J([{"anthropic-beta":[...y??[],"skills-2025-10-02"].toString()},T?.headers])})}}r.Versions=KB;class j extends Z{models=new wB(this._client);messages=new h(this._client);files=new ZB(this._client);skills=new r(this._client)}j.Models=wB;j.Messages=h;j.Files=ZB;j.Skills=r;class s extends Z{create(B,C){let{betas:T,...y}=B;return this._client.post("/v1/complete",{body:y,timeout:this._client._options.timeout??600000,...C,headers:J([{...T?.toString()!=null?{"anthropic-beta":T?.toString()}:void 0},C?.headers]),stream:B.stream??!1})}}function eC(B){return B?.output_config?.format}function xC(B,C,T){let y=eC(C);if(!C||!("parse"in(y??{})))return{...B,content:B.content.map((R)=>{if(R.type==="text")return Object.defineProperty({...R},"parsed_output",{value:null,enumerable:!1});return R}),parsed_output:null};return kC(B,C,T)}function kC(B,C,T){let y=null,R=B.content.map((x)=>{if(x.type==="text"){let k=ET(C,x.text);if(y===null)y=k;return Object.defineProperty({...x},"parsed_output",{value:k,enumerable:!1})}return x});return{...B,content:R,parsed_output:y}}function ET(B,C){let T=eC(B);if(T?.type!=="json_schema")return null;try{if("parse"in T)return T.parse(C);return JSON.parse(C)}catch(y){throw new W(`Failed to parse structured output: ${y}`)}}var rC="__json_buf";function sC(B){return B.type==="tool_use"||B.type==="server_tool_use"}class VB{messages=[];receivedMessages=[];#B;#C=null;controller=new AbortController;#y;#k=()=>{};#T=()=>{};#R;#E=()=>{};#P=()=>{};#x={};#W=!1;#M=!1;#J=!1;#S=!1;#F;#$;#U;constructor(B,C){this.#y=new Promise((T,y)=>{this.#k=T,this.#T=y}),this.#R=new Promise((T,y)=>{this.#E=T,this.#P=y}),this.#y.catch(()=>{}),this.#R.catch(()=>{}),this.#C=B,this.#U=C?.logger??console}get response(){return this.#F}get request_id(){return this.#$}async withResponse(){this.#S=!0;let B=await this.#y;if(!B)throw Error("Could not resolve a `Response` object");return{data:this,response:B,request_id:B.headers.get("request-id")}}static fromReadableStream(B){let C=new VB(null);return C._run(()=>C._fromReadableStream(B)),C}static createMessage(B,C,T,{logger:y}={}){let R=new VB(C,{logger:y});for(let x of C.messages)R._addMessageParam(x);return R.#C={...C,stream:!0},R._run(()=>R._createMessage(B,{...C,stream:!0},{...T,headers:{...T?.headers,"X-Stainless-Helper-Method":"stream"}})),R}_run(B){B().then(()=>{this._emitFinal(),this._emit("end")},this.#z)}_addMessageParam(B){this.messages.push(B)}_addMessage(B,C=!0){if(this.receivedMessages.push(B),C)this._emit("message",B)}async _createMessage(B,C,T){let y=T?.signal,R;if(y){if(y.aborted)this.controller.abort();R=this.controller.abort.bind(this.controller),y.addEventListener("abort",R)}try{this.#Z();let{response:x,data:k}=await B.create({...C,stream:!0},{...T,signal:this.controller.signal}).withResponse();this._connected(x);for await(let E of k)this.#w(E);if(k.controller.signal?.aborted)throw new V;this.#X()}finally{if(y&&R)y.removeEventListener("abort",R)}}_connected(B){if(this.ended)return;this.#F=B,this.#$=B?.headers.get("request-id"),this.#k(B),this._emit("connect")}get ended(){return this.#W}get errored(){return this.#M}get aborted(){return this.#J}abort(){this.controller.abort()}on(B,C){return(this.#x[B]||(this.#x[B]=[])).push({listener:C}),this}off(B,C){let T=this.#x[B];if(!T)return this;let y=T.findIndex((R)=>R.listener===C);if(y>=0)T.splice(y,1);return this}once(B,C){return(this.#x[B]||(this.#x[B]=[])).push({listener:C,once:!0}),this}emitted(B){return new Promise((C,T)=>{if(this.#S=!0,B!=="error")this.once("error",T);this.once(B,C)})}async done(){this.#S=!0,await this.#R}get currentMessage(){return this.#B}#G(){if(this.receivedMessages.length===0)throw new W("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)}async finalMessage(){return await this.done(),this.#G()}#N(){if(this.receivedMessages.length===0)throw new W("stream ended without producing a Message with role=assistant");let B=this.receivedMessages.at(-1).content.filter((C)=>C.type==="text").map((C)=>C.text);if(B.length===0)throw new W("stream ended without producing a content block with type=text");return B.join(" ")}async finalText(){return await this.done(),this.#N()}#z=(B)=>{if(this.#M=!0,b(B))B=new V;if(B instanceof V)return this.#J=!0,this._emit("abort",B);if(B instanceof W)return this._emit("error",B);if(B instanceof Error){let C=new W(B.message);return C.cause=B,this._emit("error",C)}return this._emit("error",new W(String(B)))};_emit(B,...C){if(this.#W)return;if(B==="end")this.#W=!0,this.#E();let T=this.#x[B];if(T)this.#x[B]=T.filter((y)=>!y.once),T.forEach(({listener:y})=>y(...C));if(B==="abort"){let y=C[0];if(!this.#S&&!T?.length)Promise.reject(y);this.#T(y),this.#P(y),this._emit("end");return}if(B==="error"){let y=C[0];if(!this.#S&&!T?.length)Promise.reject(y);this.#T(y),this.#P(y),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",this.#G())}#Z(){if(this.ended)return;this.#B=void 0}#w(B){if(this.ended)return;let C=this.#K(B);switch(this._emit("streamEvent",B,C),B.type){case"content_block_delta":{let T=C.content.at(-1);switch(B.delta.type){case"text_delta":{if(T.type==="text")this._emit("text",B.delta.text,T.text||"");break}case"citations_delta":{if(T.type==="text")this._emit("citation",B.delta.citation,T.citations??[]);break}case"input_json_delta":{if(sC(T)&&T.input)this._emit("inputJson",B.delta.partial_json,T.input);break}case"thinking_delta":{if(T.type==="thinking")this._emit("thinking",B.delta.thinking,T.thinking);break}case"signature_delta":{if(T.type==="thinking")this._emit("signature",T.signature);break}default:B2(B.delta)}break}case"message_stop":{this._addMessageParam(C),this._addMessage(xC(C,this.#C,{logger:this.#U}),!0);break}case"content_block_stop":{this._emit("contentBlock",C.content.at(-1));break}case"message_start":{this.#B=C;break}case"content_block_start":case"message_delta":break;default:break}}#X(){if(this.ended)throw new W("stream has ended, this shouldn't happen");let B=this.#B;if(!B)throw new W("request ended without sending any chunks");return this.#B=void 0,xC(B,this.#C,{logger:this.#U})}async _fromReadableStream(B,C){let T=C?.signal,y;if(T){if(T.aborted)this.controller.abort();y=this.controller.abort.bind(this.controller),T.addEventListener("abort",y)}try{this.#Z(),this._connected(null);let R=q.fromReadableStream(B,this.controller);for await(let x of R)this.#w(x);if(R.controller.signal?.aborted)throw new V;this.#X()}finally{if(T&&y)T.removeEventListener("abort",y)}}#K(B){let C=this.#B;if(B.type==="message_start"){if(C)throw new W(`Unexpected event order, got ${B.type} before receiving "message_stop"`);return B.message}if(!C)throw new W(`Unexpected event order, got ${B.type} before "message_start"`);switch(B.type){case"message_stop":return C;case"message_delta":if(C.stop_reason=B.delta.stop_reason,C.stop_sequence=B.delta.stop_sequence,C.usage.output_tokens=B.usage.output_tokens,B.usage.input_tokens!=null)C.usage.input_tokens=B.usage.input_tokens;if(B.usage.cache_creation_input_tokens!=null)C.usage.cache_creation_input_tokens=B.usage.cache_creation_input_tokens;if(B.usage.cache_read_input_tokens!=null)C.usage.cache_read_input_tokens=B.usage.cache_read_input_tokens;if(B.usage.server_tool_use!=null)C.usage.server_tool_use=B.usage.server_tool_use;return C;case"content_block_start":return C.content.push({...B.content_block}),C;case"content_block_delta":{let T=C.content.at(B.index);switch(B.delta.type){case"text_delta":{if(T?.type==="text")C.content[B.index]={...T,text:(T.text||"")+B.delta.text};break}case"citations_delta":{if(T?.type==="text")C.content[B.index]={...T,citations:[...T.citations??[],B.delta.citation]};break}case"input_json_delta":{if(T&&sC(T)){let y=T[rC]||"";y+=B.delta.partial_json;let R={...T};if(Object.defineProperty(R,rC,{value:y,enumerable:!1,writable:!0}),y)R.input=lB(y);C.content[B.index]=R}break}case"thinking_delta":{if(T?.type==="thinking")C.content[B.index]={...T,thinking:T.thinking+B.delta.thinking};break}case"signature_delta":{if(T?.type==="thinking")C.content[B.index]={...T,signature:B.delta.signature};break}default:B2(B.delta)}return C}case"content_block_stop":return C}}[Symbol.asyncIterator](){let B=[],C=[],T=!1;return this.on("streamEvent",(y)=>{let R=C.shift();if(R)R.resolve(y);else B.push(y)}),this.on("end",()=>{T=!0;for(let y of C)y.resolve(void 0);C.length=0}),this.on("abort",(y)=>{T=!0;for(let R of C)R.reject(y);C.length=0}),this.on("error",(y)=>{T=!0;for(let R of C)R.reject(y);C.length=0}),{next:async()=>{if(!B.length){if(T)return{value:void 0,done:!0};return new Promise((R,x)=>C.push({resolve:R,reject:x})).then((R)=>R?{value:R,done:!1}:{value:void 0,done:!0})}return{value:B.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new q(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function B2(B){}class YB extends Z{create(B,C){return this._client.post("/v1/messages/batches",{body:B,...C})}retrieve(B,C){return this._client.get(G`/v1/messages/batches/${B}`,C)}list(B={},C){return this._client.getAPIList("/v1/messages/batches",c,{query:B,...C})}delete(B,C){return this._client.delete(G`/v1/messages/batches/${B}`,C)}cancel(B,C){return this._client.post(G`/v1/messages/batches/${B}/cancel`,C)}async results(B,C){let T=await this.retrieve(B);if(!T.results_url)throw new W(`No batch \`results_url\`; Has it finished processing? ${T.processing_status} - ${T.id}`);return this._client.get(T.results_url,{...C,headers:J([{Accept:"application/binary"},C?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((y,R)=>e.fromResponse(R.response,R.controller))}}class t extends Z{batches=new YB(this._client);create(B,C){if(B.model in C2)console.warn(`The model '${B.model}' is deprecated and will reach end-of-life on ${C2[B.model]}
33
+ Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);if(B.model in PT&&B.thinking&&B.thinking.type==="enabled")console.warn(`Using Claude with ${B.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);let T=this._client._options.timeout;if(!B.stream&&T==null){let R=bB[B.model]??void 0;T=this._client.calculateNonstreamingTimeout(B.max_tokens,R)}let y=GB(B.tools,B.messages);return this._client.post("/v1/messages",{body:B,timeout:T??600000,...C,headers:J([y,C?.headers]),stream:B.stream??!1})}parse(B,C){return this.create(B,C).then((T)=>kC(T,B,{logger:this._client.logger??console}))}stream(B,C){return VB.createMessage(this,B,C,{logger:this._client.logger??console})}countTokens(B,C){return this._client.post("/v1/messages/count_tokens",{body:B,...C})}}var C2={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026","claude-3-5-haiku-latest":"February 19th, 2026","claude-3-5-haiku-20241022":"February 19th, 2026"},PT=["claude-opus-4-6"];t.Batches=YB;class BB extends Z{retrieve(B,C={},T){let{betas:y}=C??{};return this._client.get(G`/v1/models/${B}`,{...T,headers:J([{...y?.toString()!=null?{"anthropic-beta":y?.toString()}:void 0},T?.headers])})}list(B={},C){let{betas:T,...y}=B??{};return this._client.getAPIList("/v1/models",c,{query:y,...C,headers:J([{...T?.toString()!=null?{"anthropic-beta":T?.toString()}:void 0},C?.headers])})}}var hB=(B)=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[B]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(B)?.trim();return};var T2="\\n\\nHuman:",y2="\\n\\nAssistant:";class aB{apiKey;baseURL;maxRetries;timeout;logger;logLevel;fetchOptions;fetch;#B;idempotencyHeader;_options;constructor({baseURL:B=hB("PUKU_BASE_URL"),apiKey:C=hB("PUKU_API_KEY")??null,...T}={}){if(!B)throw new W("Missing baseURL: pass `baseURL` to the constructor or set the PUKU_BASE_URL environment variable.");let y={apiKey:C,...T,baseURL:B};if(!y.dangerouslyAllowBrowser&&YC())throw new W(`It looks like you're running in a browser-like environment.
34
+
35
+ This is disabled by default, as it risks exposing your secret API credentials to attackers.
36
+ If you understand the risks and have appropriate mitigations in place,
37
+ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
38
+
39
+ new Anthropic({ apiKey, dangerouslyAllowBrowser: true });
40
+ `);if(this.baseURL=y.baseURL,this.baseURL.endsWith("/v1"))this.baseURL=this.baseURL.slice(0,-3);this.timeout=y.timeout??aB.DEFAULT_TIMEOUT,this.logger=y.logger??console;let R="warn";this.logLevel=R,this.logLevel=nB(y.logLevel,"ClientOptions.logLevel",this)??nB(hB("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??R,this.fetchOptions=y.fetchOptions,this.maxRetries=y.maxRetries??2,this.fetch=y.fetch??OC(),this.#B=qC,this._options=y,this.apiKey=typeof C==="string"?C:null}withOptions(B){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,...B})}#C(){return!0}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:B,nulls:C}){if(B.get("x-api-key"))return;if(this.apiKey&&B.get("x-api-key"))return;if(C.has("x-api-key"))return;throw Error('Could not resolve authentication method. Expected apiKey to be set, or for the "X-Api-Key" header to be explicitly omitted')}async authHeaders(B){return J([await this.apiKeyAuth(B)])}async apiKeyAuth(B){if(this.apiKey==null)return;return J([{"X-Api-Key":this.apiKey}])}stringifyQuery(B){return LC(B)}getUserAgent(){return`${this.constructor.name}/JS ${H}`}defaultIdempotencyKey(){return`stainless-node-retry-${mB()}`}makeStatusError(B,C,T,y){return z.generate(B,C,T,y)}buildURL(B,C,T){let y=!this.#C()&&T||this.baseURL,R=wC(B)?new URL(B):new URL(y+(y.endsWith("/")&&B.startsWith("/")?B.slice(1):B)),x=this.defaultQuery(),k=Object.fromEntries(R.searchParams);if(!vB(x)||!vB(k))C={...k,...x,...C};if(typeof C==="object"&&C&&!Array.isArray(C))R.search=this.stringifyQuery(C);return R.toString()}_calculateNonstreamingTimeout(B){if(3600*B/128000>600)throw new W("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 600000}async prepareOptions(B){}async prepareRequest(B,{url:C,options:T}){}get(B,C){return this.methodRequest("get",B,C)}post(B,C){return this.methodRequest("post",B,C)}patch(B,C){return this.methodRequest("patch",B,C)}put(B,C){return this.methodRequest("put",B,C)}delete(B,C){return this.methodRequest("delete",B,C)}methodRequest(B,C,T){return this.request(Promise.resolve(T).then((y)=>{return{method:B,path:C,...y}}))}request(B,C=null){return new i(this,this.makeRequest(B,C,void 0))}async makeRequest(B,C,T){let y=await B,R=y.maxRetries??this.maxRetries;if(C==null)C=R;await this.prepareOptions(y);let{req:x,url:k,timeout:E}=await this.buildRequest(y,{retryCount:R-C});await this.prepareRequest(x,{url:k,options:y});let S="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),U=T===void 0?"":`, retryOf: ${T}`,P=Date.now();if(K(this).debug(`[${S}] sending request`,l({retryOfRequestLogID:T,method:y.method,url:k,options:y,headers:x.headers})),y.signal?.aborted)throw new V;let $=new AbortController,M=await this.fetchWithTimeout(k,x,E,$).catch(TB),X=Date.now();if(M instanceof globalThis.Error){let f=`retrying, ${C} attempts remaining`;if(y.signal?.aborted)throw new V;let O=b(M)||/timed? ?out/i.test(String(M)+("cause"in M?String(M.cause):""));if(C)return K(this).info(`[${S}] connection ${O?"timed out":"failed"} - ${f}`),K(this).debug(`[${S}] connection ${O?"timed out":"failed"} (${f})`,l({retryOfRequestLogID:T,url:k,durationMs:X-P,message:M.message})),this.retryRequest(y,C,T??S);if(K(this).info(`[${S}] connection ${O?"timed out":"failed"} - error; no more retries left`),K(this).debug(`[${S}] connection ${O?"timed out":"failed"} (error; no more retries left)`,l({retryOfRequestLogID:T,url:k,durationMs:X-P,message:M.message})),O)throw new yB;throw new d({cause:M})}let A=[...M.headers.entries()].filter(([f])=>f==="request-id").map(([f,O])=>", "+f+": "+JSON.stringify(O)).join(""),_=`[${S}${U}${A}] ${x.method} ${k} ${M.ok?"succeeded":"failed"} with status ${M.status} in ${X-P}ms`;if(!M.ok){let f=await this.shouldRetry(M);if(C&&f){let DB=`retrying, ${C} attempts remaining`;return await DC(M.body),K(this).info(`${_} - ${DB}`),K(this).debug(`[${S}] response error (${DB})`,l({retryOfRequestLogID:T,url:M.url,status:M.status,headers:M.headers,durationMs:X-P})),this.retryRequest(y,C,T??S,M.headers)}let O=f?"error; no more retries left":"error; not retryable";K(this).info(`${_} - ${O}`);let $C=await M.text().catch((DB)=>TB(DB).message),GC=LB($C),ZC=GC?void 0:$C;throw K(this).debug(`[${S}] response error (${O})`,l({retryOfRequestLogID:T,url:M.url,status:M.status,headers:M.headers,message:ZC,durationMs:Date.now()-P})),this.makeStatusError(M.status,GC,ZC,M.headers)}return K(this).info(_),K(this).debug(`[${S}] response start`,l({retryOfRequestLogID:T,url:M.url,status:M.status,headers:M.headers,durationMs:X-P})),{response:M,options:y,controller:$,requestLogID:S,retryOfRequestLogID:T,startTime:P}}getAPIList(B,C,T){return this.requestAPIList(C,T&&"then"in T?T.then((y)=>({method:"get",path:B,...y})):{method:"get",path:B,...T})}requestAPIList(B,C){let T=this.makeRequest(C,null,void 0);return new _B(this,T,B)}async fetchWithTimeout(B,C,T,y){let{signal:R,method:x,...k}=C||{},E=this._makeAbort(y);if(R)R.addEventListener("abort",E,{once:!0});let S=setTimeout(E,T),U=globalThis.ReadableStream&&k.body instanceof globalThis.ReadableStream||typeof k.body==="object"&&k.body!==null&&Symbol.asyncIterator in k.body,P={signal:y.signal,...U?{duplex:"half"}:{},method:"GET",...k};if(x)P.method=x.toUpperCase();try{return await this.fetch.call(void 0,B,P)}finally{clearTimeout(S)}}async shouldRetry(B){let C=B.headers.get("x-should-retry");if(C==="true")return!0;if(C==="false")return!1;if(B.status===408)return!0;if(B.status===409)return!0;if(B.status===429)return!0;if(B.status>=500)return!0;return!1}async retryRequest(B,C,T,y){let R,x=y?.get("retry-after-ms");if(x){let E=parseFloat(x);if(!Number.isNaN(E))R=E}let k=y?.get("retry-after");if(k&&!R){let E=parseFloat(k);if(!Number.isNaN(E))R=E*1000;else R=Date.parse(k)-Date.now()}if(R===void 0){let E=B.maxRetries??this.maxRetries;R=this.calculateDefaultRetryTimeoutMillis(C,E)}return await NC(R),this.makeRequest(B,C-1,T)}calculateDefaultRetryTimeoutMillis(B,C){let R=C-B,x=Math.min(0.5*Math.pow(2,R),8),k=1-Math.random()*0.25;return x*k*1000}calculateNonstreamingTimeout(B,C){if(3600000*B/128000>600000||C!=null&&B>C)throw new W("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 600000}async buildRequest(B,{retryCount:C=0}={}){let T={...B},{method:y,path:R,query:x,defaultBaseURL:k}=T,E=this.buildURL(R,x,k);if("timeout"in T)zC("timeout",T.timeout);T.timeout=T.timeout??this.timeout;let{bodyHeaders:S,body:U}=this.buildBody({options:T}),P=await this.buildHeaders({options:B,method:y,bodyHeaders:S,retryCount:C});return{req:{method:y,headers:P,...T.signal&&{signal:T.signal},...globalThis.ReadableStream&&U instanceof globalThis.ReadableStream&&{duplex:"half"},...U&&{body:U},...this.fetchOptions??{},...T.fetchOptions??{}},url:E,timeout:T.timeout}}async buildHeaders({options:B,method:C,bodyHeaders:T,retryCount:y}){let R={};if(this.idempotencyHeader&&C!=="get"){if(!B.idempotencyKey)B.idempotencyKey=this.defaultIdempotencyKey();R[this.idempotencyHeader]=B.idempotencyKey}let x=J([R,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(y),...B.timeout?{"X-Stainless-Timeout":String(Math.trunc(B.timeout/1000))}:{},...QC(),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01"},await this.authHeaders(B),this._options.defaultHeaders,T,B.headers]);return this.validateHeaders(x),x.values}_makeAbort(B){return()=>B.abort()}buildBody({options:{body:B,headers:C}}){if(!B)return{bodyHeaders:void 0,body:void 0};let T=J([C]);if(ArrayBuffer.isView(B)||B instanceof ArrayBuffer||B instanceof DataView||typeof B==="string"&&T.values.has("content-type")||globalThis.Blob&&B instanceof globalThis.Blob||B instanceof FormData||B instanceof URLSearchParams||globalThis.ReadableStream&&B instanceof globalThis.ReadableStream)return{bodyHeaders:void 0,body:B};else if(typeof B==="object"&&((Symbol.asyncIterator in B)||(Symbol.iterator in B)&&("next"in B)&&typeof B.next==="function"))return{bodyHeaders:void 0,body:AB(B)};else if(typeof B==="object"&&T.values.get("content-type")==="application/x-www-form-urlencoded")return{bodyHeaders:{"content-type":"application/x-www-form-urlencoded"},body:this.stringifyQuery(B)};else return this.#B({body:B,headers:T})}static Anthropic=this;static PukuAI=this;static HUMAN_PROMPT=T2;static AI_PROMPT=y2;static DEFAULT_TIMEOUT=600000;static AnthropicError=W;static APIError=z;static APIConnectionError=d;static APIConnectionTimeoutError=yB;static APIUserAbortError=V;static NotFoundError=EB;static ConflictError=SB;static RateLimitError=WB;static BadRequestError=RB;static AuthenticationError=xB;static InternalServerError=UB;static PermissionDeniedError=kB;static UnprocessableEntityError=PB;static toFile=HB}class g extends aB{completions=new s(this);messages=new t(this);models=new BB(this);beta=new j(this)}g.Completions=s;g.Messages=t;g.Models=BB;g.Beta=j;g.Anthropic=g;var EC=(B)=>{if(typeof globalThis.Buffer<"u"){let C=globalThis.Buffer.from(B,"base64");return new Uint8Array(C.buffer,C.byteOffset,C.byteLength)}if(typeof atob<"u"){let C=atob(B),T=new Uint8Array(C.length);for(let y=0;y<C.length;y++)T[y]=C.charCodeAt(y);return T}throw new W("Cannot decode base64 string; Expected `Buffer` or `atob` to be defined")};var UT=new Set(["date-time","time","date","duration","email","hostname","uri","ipv4","ipv6","uuid"]);function MT(B){return JSON.parse(JSON.stringify(B))}function R2(B){let C=MT(B);return o(C)}function o(B){let C={},T=Y(B,"$ref");if(T!==void 0)return C.$ref=T,C;let y=Y(B,"$defs");if(y!==void 0){let P={};C.$defs=P;for(let[$,M]of Object.entries(y))P[$]=o(M)}let R=Y(B,"type"),x=Y(B,"anyOf"),k=Y(B,"oneOf"),E=Y(B,"allOf");if(Array.isArray(x))C.anyOf=x.map((P)=>o(P));else if(Array.isArray(k))C.anyOf=k.map((P)=>o(P));else if(Array.isArray(E))C.allOf=E.map((P)=>o(P));else{if(R===void 0)throw Error("JSON schema must have a type defined if anyOf/oneOf/allOf are not used");C.type=R}let S=Y(B,"description");if(S!==void 0)C.description=S;let U=Y(B,"title");if(U!==void 0)C.title=U;if(R==="object"){let P=Y(B,"properties")||{};C.properties=Object.fromEntries(Object.entries(P).map(([M,X])=>[M,o(X)])),Y(B,"additionalProperties"),C.additionalProperties=!1;let $=Y(B,"required");if($!==void 0)C.required=$}else if(R==="string"){let P=Y(B,"format");if(P!==void 0&&UT.has(P))C.format=P;else if(P!==void 0)B.format=P}else if(R==="array"){let P=Y(B,"items");if(P!==void 0)C.items=o(P);let $=Y(B,"minItems");if($!==void 0&&($===0||$===1))C.minItems=$;else if($!==void 0)B.minItems=$}if(Object.keys(B).length>0){let P=C.description;C.description=(P?P+`
41
+
42
+ `:"")+"{"+Object.entries(B).map(([$,M])=>`${$}: ${JSON.stringify(M)}`).join(", ")+"}"}return C}function a(B){if(B.inputSchema.type!=="object")throw Error(`JSON schema for tool "${B.name}" must be an object, but got ${B.inputSchema.type}`);return{type:"custom",name:B.name,input_schema:B.inputSchema,description:B.description,run:B.run,parse:(C)=>C,...B.close?{close:B.close}:{}}}function JT(B,C){if(B.type!=="object")throw Error(`JSON schema for tool must be an object, but got ${B.type}`);let T=C?.transform??!0;return B=R2(B),{type:"json_schema",schema:{...B},parse:(y)=>{try{return JSON.parse(y)}catch(R){throw new W(`Failed to parse structured output: ${R}`)}}}}function x2(B){throw new W(`${B} is provided by @puku-ai/sdk as a stub. Install the \`zod\` peer dependency to use this helper at runtime.`)}function FT(B){x2("betaZodOutputFormat")}function $T(B){x2("betaZodTool")}function GT(B){return{type:"memory_20250818",name:"memory",parse:(C)=>C,run:(C)=>{let T=B[C.command];if(!T)throw Error(`${C.command} not implemented`);return T.bind(B)(C)}}}var ZT=["image/jpeg","image/png","image/gif","image/webp"];function SC(B){return ZT.includes(B)}function wT(B){return!B||B.startsWith("text/")||B==="application/pdf"||SC(B)}class I extends Error{constructor(B){super(B);this.name="UnsupportedMCPValueError"}}function k2(B,C,T){let y={...B.inputSchema,type:"object",properties:B.inputSchema.properties??null,required:B.inputSchema.required??null};return{...{name:B.name,input_schema:y,...B.description!==void 0?{description:B.description}:{},...T},run:async(k)=>{let E=await C.callTool({name:B.name,arguments:k});if(E.isError){let S=E.content.map((U)=>dB(U));throw new F(S)}if(E.content.length===0&&typeof E.structuredContent==="object"&&E.structuredContent!==null)return JSON.stringify(E.structuredContent);return E.content.map((S)=>dB(S))},parse:(k)=>k,[D]:"mcpTool"}}function XT(B,C,T){return B.map((y)=>k2(y,C,T))}function E2(B,C){return{role:B.role,content:[dB(B.content,C)],[D]:"mcpMessage"}}function zT(B,C){return B.map((T)=>E2(T,C))}function dB(B,C){switch(B.type){case"text":return{type:"text",text:B.text,...C,[D]:"mcpContent"};case"image":{if(!SC(B.mimeType))throw new I(`Unsupported image MIME type: ${B.mimeType}`);return{type:"image",source:{type:"base64",data:B.data,media_type:B.mimeType},...C,[D]:"mcpContent"}}case"resource":return S2(B.resource,C,"mcpContent");case"resource_link":case"audio":throw new I(`Unsupported MCP content type: ${B.type}`);default:throw new I(`Unsupported MCP content type: ${B.type}`)}}function S2(B,C,T="mcpResourceToContent"){let y=B.mimeType;if(y&&SC(y)){if(!("blob"in B))throw new I(`Image resource must have blob data, not text. URI: ${B.uri}`);return{type:"image",source:{type:"base64",data:B.blob,media_type:y},...C,[D]:T}}if(y==="application/pdf"){if(!("blob"in B))throw new I(`PDF resource must have blob data, not text. URI: ${B.uri}`);return{type:"document",source:{type:"base64",data:B.blob,media_type:"application/pdf"},...C,[D]:T}}if(!y||y.startsWith("text/"))return{type:"document",source:VT(B),...C,[D]:T};throw new I(`Unsupported MIME type "${y}" for resource: ${B.uri}`)}function NT(B,C){if(B.contents.length===0)throw new I("Resource contents array must contain at least one item");let T=B.contents.find((y)=>wT(y.mimeType));if(!T){let y=B.contents.map((R)=>R.mimeType).filter((R)=>R!==void 0);throw new I(`No supported MIME type found in resource contents. Available: ${y.join(", ")}`)}return S2(T,C)}function KT(B){if("blob"in B)return EC(B.blob);return new TextEncoder().encode(B.text)}function VT(B){return{type:"text",data:"text"in B?B.text:new TextDecoder().decode(EC(B.blob)),media_type:"text/plain"}}function YT(B){if(B.contents.length===0)throw new I("Resource contents array must contain at least one item");let C=B.contents[0],T=new URL(C.uri).pathname.split("/").at(-1)||"file",y=C.mimeType,R=KT(C),x=new File([R],T,y?{type:y}:void 0);return x[D]="mcpResourceToFile",x}import*as N from"node:fs/promises";import*as iB from"node:fs";import*as w from"node:path";import*as MC from"node:child_process";import*as G2 from"node:crypto";import*as Z2 from"node:readline";function PC(){let B,C;return{promise:new Promise((y,R)=>{B=y,C=R}),resolve:B,reject:C}}import*as L from"node:fs/promises";import*as Q from"node:path";import{randomUUID as QT}from"node:crypto";var P2=493,OT=420;async function DT(B){try{return await L.realpath(B)}catch{return B}}async function qT(B){let C=[],T=B,y=0;for(;;){let R;try{R=await L.realpath(T)}catch{let x=!1;try{x=(await L.lstat(T)).isSymbolicLink()}catch{}if(x){if(++y>40)throw new F(`path ${JSON.stringify(B)} has too many levels of symbolic links`);T=Q.resolve(Q.dirname(T),await L.readlink(T));continue}let k=Q.dirname(T);if(k===T)return B;C.push(Q.basename(T)),T=k;continue}return C.length?Q.join(R,...C.reverse()):R}}async function W2(B,C,T){let y=T?.allowOutside??!1,R=await DT(Q.resolve(B)),x=Q.resolve(R,C);if(y)return x;let k=await qT(x);if(k!==R&&!k.startsWith(R+Q.sep))throw new F(`path ${JSON.stringify(C)} escapes workdir`);return k}async function WC(B,C){let T=Q.dirname(B),y=Q.join(T,`.tmp-${process.pid}-${QT()}`),R;try{R=await L.open(y,"wx",OT),await R.writeFile(C,"utf-8"),await R.sync(),await R.close(),R=void 0,await L.rename(y,B)}catch(x){if(R)await R.close().catch(()=>{});throw await L.unlink(y).catch(()=>{}),x}}function QB(B,C){switch(B?.code){case"ENOENT":return`${C}: no such file or directory`;case"EACCES":case"EPERM":return`${C}: permission denied`;case"ENOTDIR":return`${C}: not a directory`;case"EISDIR":return`${C}: is a directory`;case"ELOOP":return`${C}: too many levels of symbolic links`;case"ENAMETOOLONG":return`${C}: file name too long`;case"ENOSPC":return`${C}: no space left on device`;case"EMFILE":case"ENFILE":return`${C}: too many open files`;default:return`${C}: ${B instanceof Error?B.message:String(B)}`}}import{execFile as LT}from"node:child_process";import{promisify as AT}from"node:util";var X4=AT(LT);function UC(B){throw new W(`${B} requires the upstream /v1/skills/{id}/versions/{version} and/or /v1/sessions/{id} resources. `+"@puku-ai/sdk does not yet vendor those endpoints — the agent-toolset ships without skill auto-download. "+"Use betaAgentToolset20260401({ workdir }) without client/sessionId to get the bare tools.")}async function U2(B){let{client:C,sessionId:T}=B;if(!C||!T)return async()=>{};UC("setupSkills")}async function M2(B,C,T){if(/^\d+$/.test(T))return T;UC("resolveSkillVersion")}async function J2(B,C){UC("extractSkillArchive")}var F2=102400,w2=120000,fT=262144,OB=102400,cT=2000,IT=200;class JC extends W{timeoutMs;constructor(B){super(`bash command timed out after ${B}ms`);this.name="BashTimeoutError",this.timeoutMs=B}}var _T=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,HT=N.glob;function X2(B){return B===void 0?fT:B}function jT(B){return[z2(B),N2(B),K2(B),V2(B),Y2(B),Q2(B)]}function CB(B,C){return W2(B.workdir,C,{allowOutside:B.unrestrictedPaths??!1})}function gT(){let B={};for(let[C,T]of Object.entries(process.env)){if(C.startsWith("ANTHROPIC_"))continue;B[C]=T}return B}class FC{#B;#C="";#y=!1;#k=!1;#T=null;constructor(B,C=gT()){this.#B=MC.spawn("/bin/bash",["--noprofile","--norc"],{cwd:B,env:{...C,PS1:"",PS2:"",TERM:"dumb"},stdio:["pipe","pipe","pipe"],detached:!0}),this.#B.stdout.setEncoding("utf8"),this.#B.stderr.setEncoding("utf8"),this.#B.stdout.on("data",(T)=>this.#R(T)),this.#B.stderr.on("data",(T)=>this.#R(T)),this.#B.once("close",()=>{this.#k=!0;let T=this.#T;this.#T=null,T?.resolve()})}get closed(){return this.#k}#R(B){if(this.#C+=B,this.#C.length>F2)this.#C=this.#C.slice(this.#C.length-F2),this.#y=!0;if(this.#T&&this.#C.indexOf(this.#T.sentinel)>=0){let C=this.#T;this.#T=null,C.resolve()}}async exec(B,C={}){if(this.#k)throw new W("bash session terminated");let T=C.timeoutMs??w2,y=C.signal;y?.throwIfAborted(),this.#C="",this.#y=!1;let R=`__ANT_CMD_${G2.randomUUID()}_DONE__`,x=`${R.slice(0,8)}''${R.slice(8)}`,k=`{ ${B}
43
+ } </dev/null 2>&1; printf '\\n${x}%d\\n' $?
44
+ `;if(this.#B.stdin.write(k),this.#C.indexOf(R)<0){let{promise:M,resolve:X}=PC();this.#T={sentinel:R,resolve:X};let A,_;try{await Promise.race([M,new Promise((f,O)=>{A=setTimeout(()=>O(new JC(T)),T)}),new Promise((f,O)=>{if(!y)return;_=()=>O(y.reason),y.addEventListener("abort",_,{once:!0})})])}finally{if(A)clearTimeout(A);if(_&&y)y.removeEventListener("abort",_);this.#T=null}}let E=this.#C.indexOf(R);if(E<0)throw new W("bash session terminated");let U=this.#C.slice(E+R.length).match(/^(-?\d+)/),P=U?parseInt(U[1],10):-1,$=this.#C.slice(0,E).replace(_T,"").replace(/\n+$/,"");if(this.#y)$=`[output truncated]
45
+ ${$}`;return{output:$,exitCode:P}}close(){if(this.#k)return;this.#k=!0;let B=this.#T;this.#T=null,B?.resolve(),this.#B.stdout.destroy(),this.#B.stderr.destroy(),this.#B.stdin.destroy();try{process.kill(-this.#B.pid,"SIGKILL")}catch{this.#B.kill("SIGKILL")}this.#B.unref()}}function z2(B){let C,T=Promise.resolve();return a({name:"bash",description:"Run a bash command in a persistent shell. State (cwd, env vars) persists across calls.",inputSchema:{type:"object",properties:{command:{type:"string",description:"The command to run"},restart:{type:"boolean",description:"Restart the persistent shell before running"},timeout_ms:{type:"integer",description:"Per-call timeout in milliseconds"}}},run:async({command:y,restart:R,timeout_ms:x},k)=>{let E=T,S=PC();T=S.promise;try{await E}catch{}try{if(R)C?.close(),C=void 0;if(!y){if(R)return"bash session restarted";throw new F("bash: command is required")}C??=new FC(B.workdir,B.env);try{let{output:U,exitCode:P}=await C.exec(y,{timeoutMs:x??w2,signal:k?.signal});if(P!==0)throw new F(U||`exit ${P}`);return U}catch(U){if(U instanceof F)throw U;throw C.close(),C=void 0,new F(`bash: ${U instanceof Error?U.message:String(U)}`)}}finally{S.resolve()}},close:()=>{C?.close(),C=void 0}})}function N2(B){return a({name:"read",description:"Read a UTF-8 text file relative to the workdir.",inputSchema:{type:"object",properties:{file_path:{type:"string"},view_range:{type:"array",items:{type:"integer"},description:"[start_line, end_line] 1-indexed inclusive"}},required:["file_path"]},run:async({file_path:C,view_range:T})=>{if(!C)throw new F("read: file_path is required");let y=await CB(B,C),R;try{let P=await N.stat(y);if(!P.isFile())throw new F(`read: ${C} is not a regular file`);let $=X2(B.maxFileBytes);if($!==null&&P.size>$)throw new F(`read: ${C} is ${P.size} bytes, exceeds ${$}-byte limit. Use bash (head/tail/sed) to read a slice.`);R=await N.readFile(y,"utf8")}catch(P){if(P instanceof F)throw P;throw new F(`read: ${QB(P,C)}`)}if(!T)return R;if(T.length!==2)throw new F("read: view_range must be [start_line, end_line]");let[x,k]=T,E=R.split(`
46
+ `),S=Math.max(0,x-1),U=k>0?k:E.length;return E.slice(S,U).join(`
47
+ `)}})}function K2(B){return a({name:"write",description:"Write a UTF-8 text file relative to the workdir, creating parent directories as needed.",inputSchema:{type:"object",properties:{file_path:{type:"string"},content:{type:"string"}},required:["file_path","content"]},run:async({file_path:C,content:T})=>{if(!C)throw new F("write: file_path is required");let y=await CB(B,C);try{await N.mkdir(w.dirname(y),{recursive:!0,mode:P2}),await WC(y,T??"")}catch(R){throw new F(`write: ${QB(R,C)}`)}return`wrote ${Buffer.byteLength(T??"")} bytes to ${C}`}})}function V2(B){return a({name:"edit",description:"Replace old_string with new_string in a file. old_string must be unique unless replace_all.",inputSchema:{type:"object",properties:{file_path:{type:"string"},old_string:{type:"string"},new_string:{type:"string"},replace_all:{type:"boolean"}},required:["file_path","old_string","new_string"]},run:async({file_path:C,old_string:T,new_string:y,replace_all:R})=>{if(!C)throw new F("edit: file_path is required");if(!T)throw new F("edit: old_string is required");let x=await CB(B,C),k;try{let U=await N.stat(x);if(!U.isFile())throw new F(`edit: ${C} is not a regular file`);let P=X2(B.maxFileBytes);if(P!==null&&U.size>P)throw new F(`edit: ${C} is ${U.size} bytes, exceeds ${P}-byte limit. Use bash (sed/awk) to edit a large file.`);k=await N.readFile(x,"utf8")}catch(U){if(U instanceof F)throw U;throw new F(`edit: ${QB(U,C)}`)}let E=k.split(T).length-1;if(E===0)throw new F(`edit: old_string not found in ${C}`);let S;if(R)S=k.split(T).join(y);else{if(E>1)throw new F(`edit: old_string appears ${E} times in ${C} (must be unique)`);S=k.replace(T,()=>y)}try{await WC(x,S)}catch(U){throw new F(`edit: write: ${QB(U,C)}`)}return`edited ${C} (${R?E:1} replacement(s))`}})}function Y2(B){return a({name:"glob",description:"Match files under the workdir against a glob pattern. Results are mtime-sorted, newest first.",inputSchema:{type:"object",properties:{pattern:{type:"string"},path:{type:"string",description:"Directory to search in. Defaults to the workdir."}},required:["pattern"]},run:async({pattern:C,path:T})=>{if(!C)throw new F("glob: pattern is required");let y=w.resolve(B.workdir),R=C;if(w.isAbsolute(C)){if(!B.unrestrictedPaths)throw new F("glob: absolute pattern not permitted");y=w.parse(C).root,R=w.relative(y,C)}else if(T)y=await CB(B,T);if(!B.unrestrictedPaths&&R.split(/[\\/]/).includes(".."))throw new F('glob: ".." is not permitted in the pattern');let x=B.unrestrictedPaths?y:await N.realpath(y).catch(()=>y),k=[];try{for await(let E of HT(R,{cwd:y,withFileTypes:!0,exclude:(S)=>S.name===".git"||S.name==="node_modules"})){if(!E.isFile())continue;let S=w.join(E.parentPath,E.name);if(!B.unrestrictedPaths){let P;try{P=await N.realpath(S)}catch{continue}if(!hT(x,P))continue}let U=0;try{U=(await N.stat(S)).mtimeMs}catch{}k.push({path:S,mtime:U})}}catch(E){throw new F(`glob: ${E instanceof Error?E.message:String(E)}`)}if(k.length===0)return"no matches";return k.sort((E,S)=>S.mtime-E.mtime),k.slice(0,IT).map((E)=>E.path).join(`
48
+ `)}})}function Q2(B){return a({name:"grep",description:"Search file contents for a regex. Uses ripgrep if available, otherwise a built-in walker.",inputSchema:{type:"object",properties:{pattern:{type:"string"},path:{type:"string"}},required:["pattern"]},run:async({pattern:C,path:T},y)=>{if(!C)throw new F("grep: pattern is required");let R=w.resolve(B.workdir);if(T)R=await CB(B,T);let x=await mT();return x?bT(x,C,R,y?.signal):lT(C,R,y?.signal)}})}function bT(B,C,T,y){return new Promise((R,x)=>{let k=MC.spawn(B,["-n","--no-heading","-e",C,"--",T],{...y?{signal:y}:{}}),E="",S="",U=!1;k.stdout.on("data",(P)=>{if(U)return;if(E+=P,E.length>OB)U=!0,E=E.slice(0,OB),k.kill("SIGKILL")}),k.stderr.on("data",(P)=>S+=P),k.on("close",(P)=>{if(y?.aborted)return x(new F("grep: aborted"));if(U)return R(E+`
49
+ [output truncated at ${OB} bytes]`);if(P===0)return R(E);if(P===1)return R("no matches");x(new F(`grep: rg failed: ${S||`exit ${P}`}`))}),k.on("error",(P)=>{if(y?.aborted)return x(new F("grep: aborted"));x(new F(`grep: rg failed: ${P.message}`))})})}async function lT(B,C,T){let y;try{y=new RegExp(B)}catch(S){throw new F(`grep: invalid regex: ${S instanceof Error?S.message:String(S)}`)}let R=[],x=OB,k=(S)=>{if(x-=S.length+1,x<0)return R.push(`[output truncated at ${OB} bytes]`),!1;return R.push(S),!0};if((await N.stat(C).catch(()=>null))?.isFile())await $2(C,y,k);else await iT(C,"",(S)=>$2(w.join(C,S),y,k),T);if(T?.aborted)throw new F("grep: aborted");if(R.length===0)return"no matches";return R.join(`
50
+ `)}async function $2(B,C,T){let y=iB.createReadStream(B,{encoding:"utf8"}),R=Z2.createInterface({input:y,crlfDelay:1/0}),x=0;try{for await(let k of R){if(x++,k.length>cT)continue;if(C.test(k)&&!T(`${B}:${x}:${k}`))return!1}}catch{}finally{y.destroy()}return!0}function hT(B,C){let T=w.relative(B,C);return T===""||!T.startsWith(".."+w.sep)&&T!==".."&&!w.isAbsolute(T)}var aT=40,dT=50000;async function iT(B,C,T,y){let R=dT;async function x(k,E){if(E>aT)return!0;if(y?.aborted)return!1;let S;try{S=await N.readdir(w.join(B,k),{withFileTypes:!0})}catch{return!0}for(let U of S){if(U.name===".git"||U.name==="node_modules")continue;if(R--<=0)return!1;if(y?.aborted)return!1;let P=k?w.join(k,U.name):U.name;if(U.isDirectory()){if(!await x(P,E+1))return!1}else if(U.isFile()){if(await T(P)===!1)return!1}}return!0}await x(C,0)}async function mT(){let B=(process.env.PATH??"").split(w.delimiter);for(let C of B){let T=w.join(C,"rg");try{return await N.access(T,iB.constants.X_OK),T}catch{}}return null}export{HB as toFile,U2 as setupSkills,M2 as resolveSkillVersion,CB as resolvePath,XT as mcpTools,k2 as mcpTool,YT as mcpResourceToFile,NT as mcpResourceToContent,zT as mcpMessages,E2 as mcpMessage,dB as mcpContent,J2 as extractSkillArchive,g as default,$T as betaZodTool,FT as betaZodOutputFormat,K2 as betaWriteTool,a as betaTool,N2 as betaReadTool,GT as betaMemoryTool,JT as betaJSONSchemaOutputFormat,Q2 as betaGrepTool,Y2 as betaGlobTool,V2 as betaEditTool,z2 as betaBashTool,jT as betaAgentToolset20260401,H as VERSION,I as UnsupportedMCPValueError,PB as UnprocessableEntityError,F as ToolError,WB as RateLimitError,g as PukuAI,kB as PermissionDeniedError,_B as PagePromise,EB as NotFoundError,UB as InternalServerError,T2 as HUMAN_PROMPT,SB as ConflictError,JC as BashTimeoutError,FC as BashSession,aB as BaseAnthropic,RB as BadRequestError,xB as AuthenticationError,W as AnthropicError,V as APIUserAbortError,i as APIPromise,z as APIError,yB as APIConnectionTimeoutError,d as APIConnectionError,y2 as AI_PROMPT};
51
+
52
+ //# debugId=E731CAA97366E72964756E2164756E21