@anthropic-ai/sdk 0.95.2 → 0.97.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 (582) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/api-promise.d.mts +1 -0
  3. package/api-promise.d.mts.map +1 -1
  4. package/api-promise.d.ts +1 -0
  5. package/api-promise.d.ts.map +1 -1
  6. package/api-promise.mjs +1 -0
  7. package/api-promise.mjs.map +1 -1
  8. package/bin/migration-config.json +222 -0
  9. package/client.d.mts.map +1 -1
  10. package/client.d.ts.map +1 -1
  11. package/client.mjs.map +1 -1
  12. package/core/api-promise.d.mts.map +1 -1
  13. package/core/api-promise.d.ts.map +1 -1
  14. package/core/api-promise.mjs.map +1 -1
  15. package/core/credentials.mjs.map +1 -1
  16. package/core/error.d.mts.map +1 -1
  17. package/core/error.d.ts.map +1 -1
  18. package/core/error.mjs.map +1 -1
  19. package/core/pagination.d.mts.map +1 -1
  20. package/core/pagination.d.ts.map +1 -1
  21. package/core/pagination.mjs.map +1 -1
  22. package/core/resource.d.mts.map +1 -1
  23. package/core/resource.d.ts.map +1 -1
  24. package/core/streaming.d.mts.map +1 -1
  25. package/core/streaming.d.ts.map +1 -1
  26. package/core/streaming.js +2 -0
  27. package/core/streaming.js.map +1 -1
  28. package/core/streaming.mjs +2 -0
  29. package/core/streaming.mjs.map +1 -1
  30. package/core/uploads.d.mts.map +1 -1
  31. package/core/uploads.d.ts.map +1 -1
  32. package/core/uploads.mjs.map +1 -1
  33. package/error.d.mts +1 -0
  34. package/error.d.mts.map +1 -1
  35. package/error.d.ts +1 -0
  36. package/error.d.ts.map +1 -1
  37. package/error.mjs +1 -0
  38. package/error.mjs.map +1 -1
  39. package/helpers/beta/environments.d.mts +22 -0
  40. package/helpers/beta/environments.d.mts.map +1 -0
  41. package/helpers/beta/environments.d.ts +22 -0
  42. package/helpers/beta/environments.d.ts.map +1 -0
  43. package/helpers/beta/environments.js +30 -0
  44. package/helpers/beta/environments.js.map +1 -0
  45. package/helpers/beta/environments.mjs +22 -0
  46. package/helpers/beta/environments.mjs.map +1 -0
  47. package/helpers/beta/json-schema.d.mts +6 -0
  48. package/helpers/beta/json-schema.d.mts.map +1 -1
  49. package/helpers/beta/json-schema.d.ts +6 -0
  50. package/helpers/beta/json-schema.d.ts.map +1 -1
  51. package/helpers/beta/json-schema.js +1 -0
  52. package/helpers/beta/json-schema.js.map +1 -1
  53. package/helpers/beta/json-schema.mjs +1 -0
  54. package/helpers/beta/json-schema.mjs.map +1 -1
  55. package/helpers/beta/mcp.d.mts.map +1 -1
  56. package/helpers/beta/mcp.d.ts.map +1 -1
  57. package/helpers/beta/mcp.mjs.map +1 -1
  58. package/helpers/beta/memory.d.mts.map +1 -1
  59. package/helpers/beta/memory.d.ts.map +1 -1
  60. package/helpers/beta/zod.d.mts +11 -5
  61. package/helpers/beta/zod.d.mts.map +1 -1
  62. package/helpers/beta/zod.d.ts +11 -5
  63. package/helpers/beta/zod.d.ts.map +1 -1
  64. package/helpers/beta/zod.js +1 -0
  65. package/helpers/beta/zod.js.map +1 -1
  66. package/helpers/beta/zod.mjs +1 -0
  67. package/helpers/beta/zod.mjs.map +1 -1
  68. package/helpers/index.d.mts.map +1 -1
  69. package/helpers/index.d.ts.map +1 -1
  70. package/helpers/index.mjs.map +1 -1
  71. package/helpers/json-schema.d.mts.map +1 -1
  72. package/helpers/json-schema.d.ts.map +1 -1
  73. package/helpers/json-schema.mjs.map +1 -1
  74. package/helpers/zod.d.mts +2 -2
  75. package/helpers/zod.d.mts.map +1 -1
  76. package/helpers/zod.d.ts +2 -2
  77. package/helpers/zod.d.ts.map +1 -1
  78. package/helpers/zod.js.map +1 -1
  79. package/helpers/zod.mjs.map +1 -1
  80. package/index.d.mts.map +1 -1
  81. package/index.d.ts.map +1 -1
  82. package/index.mjs.map +1 -1
  83. package/internal/decoders/jsonl.d.mts.map +1 -1
  84. package/internal/decoders/jsonl.d.ts.map +1 -1
  85. package/internal/decoders/jsonl.mjs.map +1 -1
  86. package/internal/decoders/line.mjs.map +1 -1
  87. package/internal/detect-platform.mjs.map +1 -1
  88. package/internal/headers.mjs.map +1 -1
  89. package/internal/parse.d.mts.map +1 -1
  90. package/internal/parse.d.ts.map +1 -1
  91. package/internal/parse.mjs.map +1 -1
  92. package/internal/qs/formats.d.mts.map +1 -1
  93. package/internal/qs/formats.d.ts.map +1 -1
  94. package/internal/qs/index.d.mts +2 -2
  95. package/internal/qs/index.d.mts.map +1 -1
  96. package/internal/qs/index.d.ts +2 -2
  97. package/internal/qs/index.d.ts.map +1 -1
  98. package/internal/qs/index.mjs.map +1 -1
  99. package/internal/qs/stringify.d.mts.map +1 -1
  100. package/internal/qs/stringify.d.ts.map +1 -1
  101. package/internal/qs/stringify.mjs.map +1 -1
  102. package/internal/qs/utils.d.mts.map +1 -1
  103. package/internal/qs/utils.d.ts.map +1 -1
  104. package/internal/qs/utils.mjs.map +1 -1
  105. package/internal/request-options.d.mts.map +1 -1
  106. package/internal/request-options.d.ts.map +1 -1
  107. package/internal/shims.d.mts +6 -0
  108. package/internal/shims.d.mts.map +1 -1
  109. package/internal/shims.d.ts +6 -0
  110. package/internal/shims.d.ts.map +1 -1
  111. package/internal/to-file.d.mts.map +1 -1
  112. package/internal/to-file.d.ts.map +1 -1
  113. package/internal/to-file.mjs.map +1 -1
  114. package/internal/types.d.mts +4 -4
  115. package/internal/types.d.mts.map +1 -1
  116. package/internal/types.d.ts +4 -4
  117. package/internal/types.d.ts.map +1 -1
  118. package/internal/uploads.d.mts.map +1 -1
  119. package/internal/uploads.d.ts.map +1 -1
  120. package/internal/uploads.mjs.map +1 -1
  121. package/internal/utils/abort.d.mts +13 -0
  122. package/internal/utils/abort.d.mts.map +1 -0
  123. package/internal/utils/abort.d.ts +13 -0
  124. package/internal/utils/abort.d.ts.map +1 -0
  125. package/internal/utils/abort.js +26 -0
  126. package/internal/utils/abort.js.map +1 -0
  127. package/internal/utils/abort.mjs +23 -0
  128. package/internal/utils/abort.mjs.map +1 -0
  129. package/internal/utils/async-queue.d.mts +31 -0
  130. package/internal/utils/async-queue.d.mts.map +1 -0
  131. package/internal/utils/async-queue.d.ts +31 -0
  132. package/internal/utils/async-queue.d.ts.map +1 -0
  133. package/internal/utils/async-queue.js +75 -0
  134. package/internal/utils/async-queue.js.map +1 -0
  135. package/internal/utils/async-queue.mjs +71 -0
  136. package/internal/utils/async-queue.mjs.map +1 -0
  137. package/internal/utils/backoff.d.mts +23 -0
  138. package/internal/utils/backoff.d.mts.map +1 -0
  139. package/internal/utils/backoff.d.ts +23 -0
  140. package/internal/utils/backoff.d.ts.map +1 -0
  141. package/internal/utils/backoff.js +44 -0
  142. package/internal/utils/backoff.js.map +1 -0
  143. package/internal/utils/backoff.mjs +36 -0
  144. package/internal/utils/backoff.mjs.map +1 -0
  145. package/internal/utils/base64.mjs.map +1 -1
  146. package/internal/utils/log.d.mts.map +1 -1
  147. package/internal/utils/log.d.ts.map +1 -1
  148. package/internal/utils/log.mjs.map +1 -1
  149. package/internal/utils/path.mjs.map +1 -1
  150. package/internal/utils/promise.d.mts +11 -0
  151. package/internal/utils/promise.d.mts.map +1 -0
  152. package/internal/utils/promise.d.ts +11 -0
  153. package/internal/utils/promise.d.ts.map +1 -0
  154. package/internal/utils/promise.js +18 -0
  155. package/internal/utils/promise.js.map +1 -0
  156. package/internal/utils/promise.mjs +15 -0
  157. package/internal/utils/promise.mjs.map +1 -0
  158. package/internal/utils/query.mjs.map +1 -1
  159. package/internal/utils/sleep.d.mts +9 -1
  160. package/internal/utils/sleep.d.mts.map +1 -1
  161. package/internal/utils/sleep.d.ts +9 -1
  162. package/internal/utils/sleep.d.ts.map +1 -1
  163. package/internal/utils/sleep.js +23 -2
  164. package/internal/utils/sleep.js.map +1 -1
  165. package/internal/utils/sleep.mjs +23 -2
  166. package/internal/utils/sleep.mjs.map +1 -1
  167. package/internal/utils/values.mjs.map +1 -1
  168. package/internal/utils.d.mts.map +1 -1
  169. package/internal/utils.d.ts.map +1 -1
  170. package/internal/utils.mjs.map +1 -1
  171. package/lib/BetaMessageStream.d.mts.map +1 -1
  172. package/lib/BetaMessageStream.d.ts.map +1 -1
  173. package/lib/BetaMessageStream.mjs.map +1 -1
  174. package/lib/MessageStream.d.mts.map +1 -1
  175. package/lib/MessageStream.d.ts.map +1 -1
  176. package/lib/MessageStream.mjs.map +1 -1
  177. package/lib/beta-parser.d.mts.map +1 -1
  178. package/lib/beta-parser.d.ts.map +1 -1
  179. package/lib/beta-parser.mjs.map +1 -1
  180. package/lib/credentials/credential-chain.d.mts.map +1 -1
  181. package/lib/credentials/credential-chain.d.ts.map +1 -1
  182. package/lib/credentials/credential-chain.mjs.map +1 -1
  183. package/lib/credentials/identity-token.d.mts.map +1 -1
  184. package/lib/credentials/identity-token.d.ts.map +1 -1
  185. package/lib/credentials/identity-token.mjs.map +1 -1
  186. package/lib/credentials/oidc-federation.d.mts.map +1 -1
  187. package/lib/credentials/oidc-federation.d.ts.map +1 -1
  188. package/lib/credentials/oidc-federation.mjs.map +1 -1
  189. package/lib/credentials/token-cache.d.mts.map +1 -1
  190. package/lib/credentials/token-cache.d.ts.map +1 -1
  191. package/lib/credentials/token-cache.mjs.map +1 -1
  192. package/lib/credentials/types.d.mts.map +1 -1
  193. package/lib/credentials/types.d.ts.map +1 -1
  194. package/lib/credentials/types.mjs.map +1 -1
  195. package/lib/credentials/user-oauth.d.mts.map +1 -1
  196. package/lib/credentials/user-oauth.d.ts.map +1 -1
  197. package/lib/credentials/user-oauth.mjs.map +1 -1
  198. package/lib/credentials.d.mts.map +1 -1
  199. package/lib/credentials.d.ts.map +1 -1
  200. package/lib/credentials.mjs.map +1 -1
  201. package/lib/environments/index.d.mts +4 -0
  202. package/lib/environments/index.d.mts.map +1 -0
  203. package/lib/environments/index.d.ts +4 -0
  204. package/lib/environments/index.d.ts.map +1 -0
  205. package/lib/environments/index.js +18 -0
  206. package/lib/environments/index.js.map +1 -0
  207. package/lib/environments/index.mjs +4 -0
  208. package/lib/environments/index.mjs.map +1 -0
  209. package/lib/environments/poller.d.mts +89 -0
  210. package/lib/environments/poller.d.mts.map +1 -0
  211. package/lib/environments/poller.d.ts +89 -0
  212. package/lib/environments/poller.d.ts.map +1 -0
  213. package/lib/environments/poller.js +181 -0
  214. package/lib/environments/poller.js.map +1 -0
  215. package/lib/environments/poller.mjs +172 -0
  216. package/lib/environments/poller.mjs.map +1 -0
  217. package/lib/environments/worker.d.mts +143 -0
  218. package/lib/environments/worker.d.mts.map +1 -0
  219. package/lib/environments/worker.d.ts +143 -0
  220. package/lib/environments/worker.d.ts.map +1 -0
  221. package/lib/environments/worker.js +265 -0
  222. package/lib/environments/worker.js.map +1 -0
  223. package/lib/environments/worker.mjs +261 -0
  224. package/lib/environments/worker.mjs.map +1 -0
  225. package/lib/helper-client.d.mts +49 -0
  226. package/lib/helper-client.d.mts.map +1 -0
  227. package/lib/helper-client.d.ts +49 -0
  228. package/lib/helper-client.d.ts.map +1 -0
  229. package/lib/helper-client.js +57 -0
  230. package/lib/helper-client.js.map +1 -0
  231. package/lib/helper-client.mjs +54 -0
  232. package/lib/helper-client.mjs.map +1 -0
  233. package/lib/parser.d.mts.map +1 -1
  234. package/lib/parser.d.ts.map +1 -1
  235. package/lib/parser.mjs.map +1 -1
  236. package/lib/stainless-helper-header.d.mts.map +1 -1
  237. package/lib/stainless-helper-header.d.ts.map +1 -1
  238. package/lib/tools/BetaRunnableTool.d.mts +54 -2
  239. package/lib/tools/BetaRunnableTool.d.mts.map +1 -1
  240. package/lib/tools/BetaRunnableTool.d.ts +54 -2
  241. package/lib/tools/BetaRunnableTool.d.ts.map +1 -1
  242. package/lib/tools/BetaRunnableTool.js +37 -0
  243. package/lib/tools/BetaRunnableTool.js.map +1 -1
  244. package/lib/tools/BetaRunnableTool.mjs +34 -1
  245. package/lib/tools/BetaRunnableTool.mjs.map +1 -1
  246. package/lib/tools/BetaToolRunner.d.mts.map +1 -1
  247. package/lib/tools/BetaToolRunner.d.ts.map +1 -1
  248. package/lib/tools/BetaToolRunner.js +4 -14
  249. package/lib/tools/BetaToolRunner.js.map +1 -1
  250. package/lib/tools/BetaToolRunner.mjs +2 -12
  251. package/lib/tools/BetaToolRunner.mjs.map +1 -1
  252. package/lib/tools/CompactionControl.d.mts.map +1 -1
  253. package/lib/tools/CompactionControl.d.ts.map +1 -1
  254. package/lib/tools/SessionToolRunner.d.mts +140 -0
  255. package/lib/tools/SessionToolRunner.d.mts.map +1 -0
  256. package/lib/tools/SessionToolRunner.d.ts +140 -0
  257. package/lib/tools/SessionToolRunner.d.ts.map +1 -0
  258. package/lib/tools/SessionToolRunner.js +459 -0
  259. package/lib/tools/SessionToolRunner.js.map +1 -0
  260. package/lib/tools/SessionToolRunner.mjs +455 -0
  261. package/lib/tools/SessionToolRunner.mjs.map +1 -0
  262. package/lib/tools/ToolError.d.mts.map +1 -1
  263. package/lib/tools/ToolError.d.ts.map +1 -1
  264. package/lib/tools/ToolRunner.d.mts.map +1 -1
  265. package/lib/tools/ToolRunner.d.ts.map +1 -1
  266. package/lib/tools/ToolRunner.mjs.map +1 -1
  267. package/lib/transform-json-schema.mjs.map +1 -1
  268. package/package.json +1 -1
  269. package/pagination.d.mts +1 -0
  270. package/pagination.d.mts.map +1 -1
  271. package/pagination.d.ts +1 -0
  272. package/pagination.d.ts.map +1 -1
  273. package/pagination.mjs +1 -0
  274. package/pagination.mjs.map +1 -1
  275. package/resource.d.mts +1 -0
  276. package/resource.d.mts.map +1 -1
  277. package/resource.d.ts +1 -0
  278. package/resource.d.ts.map +1 -1
  279. package/resource.mjs +1 -0
  280. package/resource.mjs.map +1 -1
  281. package/resources/beta/agents/agents.d.mts +125 -1
  282. package/resources/beta/agents/agents.d.mts.map +1 -1
  283. package/resources/beta/agents/agents.d.ts +125 -1
  284. package/resources/beta/agents/agents.d.ts.map +1 -1
  285. package/resources/beta/agents/agents.js.map +1 -1
  286. package/resources/beta/agents/agents.mjs.map +1 -1
  287. package/resources/beta/agents/index.d.mts +1 -1
  288. package/resources/beta/agents/index.d.mts.map +1 -1
  289. package/resources/beta/agents/index.d.ts +1 -1
  290. package/resources/beta/agents/index.d.ts.map +1 -1
  291. package/resources/beta/agents/index.js.map +1 -1
  292. package/resources/beta/agents/index.mjs.map +1 -1
  293. package/resources/beta/agents/versions.d.mts.map +1 -1
  294. package/resources/beta/agents/versions.d.ts.map +1 -1
  295. package/resources/beta/agents/versions.mjs.map +1 -1
  296. package/resources/beta/agents.d.mts.map +1 -1
  297. package/resources/beta/agents.d.ts.map +1 -1
  298. package/resources/beta/agents.mjs.map +1 -1
  299. package/resources/beta/beta.d.mts +10 -10
  300. package/resources/beta/beta.d.mts.map +1 -1
  301. package/resources/beta/beta.d.ts +10 -10
  302. package/resources/beta/beta.d.ts.map +1 -1
  303. package/resources/beta/beta.js +2 -2
  304. package/resources/beta/beta.js.map +1 -1
  305. package/resources/beta/beta.mjs +2 -2
  306. package/resources/beta/beta.mjs.map +1 -1
  307. package/resources/beta/environments/environments.d.mts +425 -0
  308. package/resources/beta/environments/environments.d.mts.map +1 -0
  309. package/resources/beta/environments/environments.d.ts +425 -0
  310. package/resources/beta/environments/environments.d.ts.map +1 -0
  311. package/resources/beta/environments/environments.js +150 -0
  312. package/resources/beta/environments/environments.js.map +1 -0
  313. package/resources/beta/environments/environments.mjs +145 -0
  314. package/resources/beta/environments/environments.mjs.map +1 -0
  315. package/resources/beta/environments/index.d.mts +3 -0
  316. package/resources/beta/environments/index.d.mts.map +1 -0
  317. package/resources/beta/environments/index.d.ts +3 -0
  318. package/resources/beta/environments/index.d.ts.map +1 -0
  319. package/resources/beta/environments/index.js +9 -0
  320. package/resources/beta/environments/index.js.map +1 -0
  321. package/resources/beta/environments/index.mjs +4 -0
  322. package/resources/beta/environments/index.mjs.map +1 -0
  323. package/resources/beta/environments/work.d.mts +496 -0
  324. package/resources/beta/environments/work.d.mts.map +1 -0
  325. package/resources/beta/environments/work.d.ts +496 -0
  326. package/resources/beta/environments/work.d.ts.map +1 -0
  327. package/resources/beta/environments/work.js +274 -0
  328. package/resources/beta/environments/work.js.map +1 -0
  329. package/resources/beta/environments/work.mjs +268 -0
  330. package/resources/beta/environments/work.mjs.map +1 -0
  331. package/resources/beta/environments.d.mts +1 -388
  332. package/resources/beta/environments.d.mts.map +1 -1
  333. package/resources/beta/environments.d.ts +1 -388
  334. package/resources/beta/environments.d.ts.map +1 -1
  335. package/resources/beta/environments.js +2 -138
  336. package/resources/beta/environments.js.map +1 -1
  337. package/resources/beta/environments.mjs +1 -136
  338. package/resources/beta/environments.mjs.map +1 -1
  339. package/resources/beta/files.d.mts.map +1 -1
  340. package/resources/beta/files.d.ts.map +1 -1
  341. package/resources/beta/files.mjs.map +1 -1
  342. package/resources/beta/index.d.mts +4 -4
  343. package/resources/beta/index.d.mts.map +1 -1
  344. package/resources/beta/index.d.ts +4 -4
  345. package/resources/beta/index.d.ts.map +1 -1
  346. package/resources/beta/index.js +12 -12
  347. package/resources/beta/index.js.map +1 -1
  348. package/resources/beta/index.mjs +1 -1
  349. package/resources/beta/index.mjs.map +1 -1
  350. package/resources/beta/memory-stores/index.d.mts.map +1 -1
  351. package/resources/beta/memory-stores/index.d.ts.map +1 -1
  352. package/resources/beta/memory-stores/index.mjs.map +1 -1
  353. package/resources/beta/memory-stores/memories.d.mts.map +1 -1
  354. package/resources/beta/memory-stores/memories.d.ts.map +1 -1
  355. package/resources/beta/memory-stores/memories.mjs.map +1 -1
  356. package/resources/beta/memory-stores/memory-stores.d.mts.map +1 -1
  357. package/resources/beta/memory-stores/memory-stores.d.ts.map +1 -1
  358. package/resources/beta/memory-stores/memory-stores.mjs.map +1 -1
  359. package/resources/beta/memory-stores/memory-versions.d.mts.map +1 -1
  360. package/resources/beta/memory-stores/memory-versions.d.ts.map +1 -1
  361. package/resources/beta/memory-stores/memory-versions.mjs.map +1 -1
  362. package/resources/beta/memory-stores.d.mts.map +1 -1
  363. package/resources/beta/memory-stores.d.ts.map +1 -1
  364. package/resources/beta/memory-stores.mjs.map +1 -1
  365. package/resources/beta/messages/batches.d.mts +5 -0
  366. package/resources/beta/messages/batches.d.mts.map +1 -1
  367. package/resources/beta/messages/batches.d.ts +5 -0
  368. package/resources/beta/messages/batches.d.ts.map +1 -1
  369. package/resources/beta/messages/batches.mjs.map +1 -1
  370. package/resources/beta/messages/index.d.mts +1 -1
  371. package/resources/beta/messages/index.d.mts.map +1 -1
  372. package/resources/beta/messages/index.d.ts +1 -1
  373. package/resources/beta/messages/index.d.ts.map +1 -1
  374. package/resources/beta/messages/index.js.map +1 -1
  375. package/resources/beta/messages/index.mjs.map +1 -1
  376. package/resources/beta/messages/messages.d.mts +80 -5
  377. package/resources/beta/messages/messages.d.mts.map +1 -1
  378. package/resources/beta/messages/messages.d.ts +80 -5
  379. package/resources/beta/messages/messages.d.ts.map +1 -1
  380. package/resources/beta/messages/messages.js.map +1 -1
  381. package/resources/beta/messages/messages.mjs.map +1 -1
  382. package/resources/beta/messages.d.mts.map +1 -1
  383. package/resources/beta/messages.d.ts.map +1 -1
  384. package/resources/beta/messages.mjs.map +1 -1
  385. package/resources/beta/models.d.mts.map +1 -1
  386. package/resources/beta/models.d.ts.map +1 -1
  387. package/resources/beta/models.mjs.map +1 -1
  388. package/resources/beta/sessions/events.d.mts +97 -9
  389. package/resources/beta/sessions/events.d.mts.map +1 -1
  390. package/resources/beta/sessions/events.d.ts +97 -9
  391. package/resources/beta/sessions/events.d.ts.map +1 -1
  392. package/resources/beta/sessions/events.js +27 -1
  393. package/resources/beta/sessions/events.js.map +1 -1
  394. package/resources/beta/sessions/events.mjs +25 -0
  395. package/resources/beta/sessions/events.mjs.map +1 -1
  396. package/resources/beta/sessions/index.d.mts +3 -3
  397. package/resources/beta/sessions/index.d.mts.map +1 -1
  398. package/resources/beta/sessions/index.d.ts +3 -3
  399. package/resources/beta/sessions/index.d.ts.map +1 -1
  400. package/resources/beta/sessions/index.js.map +1 -1
  401. package/resources/beta/sessions/index.mjs.map +1 -1
  402. package/resources/beta/sessions/resources.d.mts.map +1 -1
  403. package/resources/beta/sessions/resources.d.ts.map +1 -1
  404. package/resources/beta/sessions/resources.mjs.map +1 -1
  405. package/resources/beta/sessions/sessions.d.mts +101 -9
  406. package/resources/beta/sessions/sessions.d.mts.map +1 -1
  407. package/resources/beta/sessions/sessions.d.ts +101 -9
  408. package/resources/beta/sessions/sessions.d.ts.map +1 -1
  409. package/resources/beta/sessions/sessions.js.map +1 -1
  410. package/resources/beta/sessions/sessions.mjs.map +1 -1
  411. package/resources/beta/sessions/threads/events.d.mts.map +1 -1
  412. package/resources/beta/sessions/threads/events.d.ts.map +1 -1
  413. package/resources/beta/sessions/threads/events.mjs.map +1 -1
  414. package/resources/beta/sessions/threads/index.d.mts +1 -1
  415. package/resources/beta/sessions/threads/index.d.mts.map +1 -1
  416. package/resources/beta/sessions/threads/index.d.ts +1 -1
  417. package/resources/beta/sessions/threads/index.d.ts.map +1 -1
  418. package/resources/beta/sessions/threads/index.js.map +1 -1
  419. package/resources/beta/sessions/threads/index.mjs.map +1 -1
  420. package/resources/beta/sessions/threads/threads.d.mts +3 -23
  421. package/resources/beta/sessions/threads/threads.d.mts.map +1 -1
  422. package/resources/beta/sessions/threads/threads.d.ts +3 -23
  423. package/resources/beta/sessions/threads/threads.d.ts.map +1 -1
  424. package/resources/beta/sessions/threads/threads.js.map +1 -1
  425. package/resources/beta/sessions/threads/threads.mjs.map +1 -1
  426. package/resources/beta/sessions/threads.d.mts.map +1 -1
  427. package/resources/beta/sessions/threads.d.ts.map +1 -1
  428. package/resources/beta/sessions/threads.mjs.map +1 -1
  429. package/resources/beta/sessions.d.mts.map +1 -1
  430. package/resources/beta/sessions.d.ts.map +1 -1
  431. package/resources/beta/sessions.mjs.map +1 -1
  432. package/resources/beta/skills/index.d.mts +1 -1
  433. package/resources/beta/skills/index.d.mts.map +1 -1
  434. package/resources/beta/skills/index.d.ts +1 -1
  435. package/resources/beta/skills/index.d.ts.map +1 -1
  436. package/resources/beta/skills/index.js.map +1 -1
  437. package/resources/beta/skills/index.mjs.map +1 -1
  438. package/resources/beta/skills/skills.d.mts +2 -2
  439. package/resources/beta/skills/skills.d.mts.map +1 -1
  440. package/resources/beta/skills/skills.d.ts +2 -2
  441. package/resources/beta/skills/skills.d.ts.map +1 -1
  442. package/resources/beta/skills/skills.js.map +1 -1
  443. package/resources/beta/skills/skills.mjs.map +1 -1
  444. package/resources/beta/skills/versions.d.mts +28 -1
  445. package/resources/beta/skills/versions.d.mts.map +1 -1
  446. package/resources/beta/skills/versions.d.ts +28 -1
  447. package/resources/beta/skills/versions.d.ts.map +1 -1
  448. package/resources/beta/skills/versions.js +28 -0
  449. package/resources/beta/skills/versions.js.map +1 -1
  450. package/resources/beta/skills/versions.mjs +28 -0
  451. package/resources/beta/skills/versions.mjs.map +1 -1
  452. package/resources/beta/skills.d.mts.map +1 -1
  453. package/resources/beta/skills.d.ts.map +1 -1
  454. package/resources/beta/skills.mjs.map +1 -1
  455. package/resources/beta/user-profiles.d.mts.map +1 -1
  456. package/resources/beta/user-profiles.d.ts.map +1 -1
  457. package/resources/beta/user-profiles.mjs.map +1 -1
  458. package/resources/beta/vaults/credentials.d.mts.map +1 -1
  459. package/resources/beta/vaults/credentials.d.ts.map +1 -1
  460. package/resources/beta/vaults/credentials.mjs.map +1 -1
  461. package/resources/beta/vaults/index.d.mts.map +1 -1
  462. package/resources/beta/vaults/index.d.ts.map +1 -1
  463. package/resources/beta/vaults/index.mjs.map +1 -1
  464. package/resources/beta/vaults/vaults.d.mts.map +1 -1
  465. package/resources/beta/vaults/vaults.d.ts.map +1 -1
  466. package/resources/beta/vaults/vaults.mjs.map +1 -1
  467. package/resources/beta/vaults.d.mts.map +1 -1
  468. package/resources/beta/vaults.d.ts.map +1 -1
  469. package/resources/beta/vaults.mjs.map +1 -1
  470. package/resources/beta/webhooks.d.mts.map +1 -1
  471. package/resources/beta/webhooks.d.ts.map +1 -1
  472. package/resources/beta/webhooks.mjs.map +1 -1
  473. package/resources/beta.d.mts.map +1 -1
  474. package/resources/beta.d.ts.map +1 -1
  475. package/resources/beta.mjs.map +1 -1
  476. package/resources/completions.d.mts.map +1 -1
  477. package/resources/completions.d.ts.map +1 -1
  478. package/resources/completions.mjs.map +1 -1
  479. package/resources/index.d.mts.map +1 -1
  480. package/resources/index.d.ts.map +1 -1
  481. package/resources/index.mjs.map +1 -1
  482. package/resources/messages/batches.d.mts.map +1 -1
  483. package/resources/messages/batches.d.ts.map +1 -1
  484. package/resources/messages/batches.mjs.map +1 -1
  485. package/resources/messages/index.d.mts.map +1 -1
  486. package/resources/messages/index.d.ts.map +1 -1
  487. package/resources/messages/index.mjs.map +1 -1
  488. package/resources/messages/messages.d.mts.map +1 -1
  489. package/resources/messages/messages.d.ts.map +1 -1
  490. package/resources/messages/messages.mjs.map +1 -1
  491. package/resources/messages.d.mts.map +1 -1
  492. package/resources/messages.d.ts.map +1 -1
  493. package/resources/messages.mjs.map +1 -1
  494. package/resources/models.d.mts.map +1 -1
  495. package/resources/models.d.ts.map +1 -1
  496. package/resources/models.mjs.map +1 -1
  497. package/resources.d.mts.map +1 -1
  498. package/resources.d.ts.map +1 -1
  499. package/resources.mjs.map +1 -1
  500. package/src/core/streaming.ts +2 -0
  501. package/src/helpers/beta/environments.ts +33 -0
  502. package/src/helpers/beta/json-schema.ts +7 -0
  503. package/src/helpers/beta/zod.ts +13 -7
  504. package/src/helpers/zod.ts +2 -3
  505. package/src/internal/utils/abort.ts +21 -0
  506. package/src/internal/utils/async-queue.ts +66 -0
  507. package/src/internal/utils/backoff.ts +41 -0
  508. package/src/internal/utils/promise.ts +18 -0
  509. package/src/internal/utils/sleep.ts +25 -2
  510. package/src/lib/environments/index.ts +23 -0
  511. package/src/lib/environments/poller.ts +253 -0
  512. package/src/lib/environments/worker.ts +395 -0
  513. package/src/lib/helper-client.ts +89 -0
  514. package/src/lib/tools/BetaRunnableTool.ts +82 -1
  515. package/src/lib/tools/BetaToolRunner.ts +2 -17
  516. package/src/lib/tools/SessionToolRunner.ts +591 -0
  517. package/src/resources/beta/agents/agents.ts +158 -0
  518. package/src/resources/beta/agents/index.ts +7 -0
  519. package/src/resources/beta/beta.ts +62 -21
  520. package/src/resources/beta/environments/environments.ts +625 -0
  521. package/src/resources/beta/environments/index.ts +42 -0
  522. package/src/resources/beta/environments/work.ts +697 -0
  523. package/src/resources/beta/environments.ts +1 -540
  524. package/src/resources/beta/index.ts +21 -1
  525. package/src/resources/beta/messages/batches.ts +6 -0
  526. package/src/resources/beta/messages/index.ts +8 -0
  527. package/src/resources/beta/messages/messages.ts +109 -5
  528. package/src/resources/beta/sessions/events.ts +153 -7
  529. package/src/resources/beta/sessions/index.ts +7 -1
  530. package/src/resources/beta/sessions/sessions.ts +130 -6
  531. package/src/resources/beta/sessions/threads/index.ts +0 -1
  532. package/src/resources/beta/sessions/threads/threads.ts +4 -37
  533. package/src/resources/beta/skills/index.ts +1 -0
  534. package/src/resources/beta/skills/skills.ts +2 -0
  535. package/src/resources/beta/skills/versions.ts +44 -0
  536. package/src/tools/agent-toolset/fs-util.ts +154 -0
  537. package/src/tools/agent-toolset/node.ts +787 -0
  538. package/src/tools/agent-toolset/skills.ts +256 -0
  539. package/src/version.ts +1 -1
  540. package/streaming.d.mts +1 -0
  541. package/streaming.d.mts.map +1 -1
  542. package/streaming.d.ts +1 -0
  543. package/streaming.d.ts.map +1 -1
  544. package/streaming.mjs +1 -0
  545. package/streaming.mjs.map +1 -1
  546. package/tools/agent-toolset/fs-util.d.mts +49 -0
  547. package/tools/agent-toolset/fs-util.d.mts.map +1 -0
  548. package/tools/agent-toolset/fs-util.d.ts +49 -0
  549. package/tools/agent-toolset/fs-util.d.ts.map +1 -0
  550. package/tools/agent-toolset/fs-util.js +159 -0
  551. package/tools/agent-toolset/fs-util.js.map +1 -0
  552. package/tools/agent-toolset/fs-util.mjs +151 -0
  553. package/tools/agent-toolset/fs-util.mjs.map +1 -0
  554. package/tools/agent-toolset/node.d.mts +139 -0
  555. package/tools/agent-toolset/node.d.mts.map +1 -0
  556. package/tools/agent-toolset/node.d.ts +139 -0
  557. package/tools/agent-toolset/node.d.ts.map +1 -0
  558. package/tools/agent-toolset/node.js +746 -0
  559. package/tools/agent-toolset/node.js.map +1 -0
  560. package/tools/agent-toolset/node.mjs +731 -0
  561. package/tools/agent-toolset/node.mjs.map +1 -0
  562. package/tools/agent-toolset/skills.d.mts +50 -0
  563. package/tools/agent-toolset/skills.d.mts.map +1 -0
  564. package/tools/agent-toolset/skills.d.ts +50 -0
  565. package/tools/agent-toolset/skills.d.ts.map +1 -0
  566. package/tools/agent-toolset/skills.js +249 -0
  567. package/tools/agent-toolset/skills.js.map +1 -0
  568. package/tools/agent-toolset/skills.mjs +243 -0
  569. package/tools/agent-toolset/skills.mjs.map +1 -0
  570. package/tools/memory/node.d.mts.map +1 -1
  571. package/tools/memory/node.d.ts.map +1 -1
  572. package/tools/memory/node.mjs.map +1 -1
  573. package/uploads.d.mts +1 -0
  574. package/uploads.d.mts.map +1 -1
  575. package/uploads.d.ts +1 -0
  576. package/uploads.d.ts.map +1 -1
  577. package/uploads.mjs +1 -0
  578. package/uploads.mjs.map +1 -1
  579. package/version.d.mts +1 -1
  580. package/version.d.ts +1 -1
  581. package/version.js +1 -1
  582. package/version.mjs +1 -1
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Shared, Node-only filesystem helpers for the agent toolset's file tools:
3
+ * path confinement (symlink-aware), an atomic write, and language-independent
4
+ * error messages. Kept out of `node.ts` so the tool implementations stay focused
5
+ * and these helpers can be reused by every file tool.
6
+ */
7
+ import * as fs from 'node:fs/promises';
8
+ import * as path from 'node:path';
9
+ import { randomUUID } from 'node:crypto';
10
+ import { ToolError } from "../../lib/tools/ToolError.mjs";
11
+ /** Mode for directories the file tools create — not world-writable under a 0 umask. */
12
+ export const DIR_CREATE_MODE = 0o755;
13
+ /** Mode for files the file tools create. */
14
+ export const FILE_CREATE_MODE = 0o644;
15
+ /** `realpath` `p`, or return `p` unchanged when it cannot be resolved. */
16
+ async function realpathOrSelf(p) {
17
+ try {
18
+ return await fs.realpath(p);
19
+ }
20
+ catch {
21
+ return p;
22
+ }
23
+ }
24
+ /**
25
+ * Fully resolve `abs`: `realpath` the longest existing ancestor and re-append
26
+ * the rest, but never re-append a component that is itself a symlink — read the
27
+ * link and continue from its target instead. This handles paths being created
28
+ * (write/edit) without letting a symlink leaf (e.g. a dangling one pointing
29
+ * outside a confinement root) slip through unresolved.
30
+ */
31
+ export async function canonicalize(abs) {
32
+ const tail = [];
33
+ let prefix = abs;
34
+ for (;;) {
35
+ let real;
36
+ try {
37
+ real = await fs.realpath(prefix);
38
+ }
39
+ catch {
40
+ let isLink = false;
41
+ try {
42
+ isLink = (await fs.lstat(prefix)).isSymbolicLink();
43
+ }
44
+ catch {
45
+ /* prefix truly doesn't exist (ENOENT) — fall through and walk up */
46
+ }
47
+ if (isLink) {
48
+ // Resolve the symlink ourselves and retry; `tail` (the part below it)
49
+ // still applies to the link's target.
50
+ prefix = path.resolve(path.dirname(prefix), await fs.readlink(prefix));
51
+ continue;
52
+ }
53
+ const parent = path.dirname(prefix);
54
+ if (parent === prefix)
55
+ return abs; // walked past the FS root without a hit
56
+ tail.push(path.basename(prefix));
57
+ prefix = parent;
58
+ continue;
59
+ }
60
+ return tail.length ? path.join(real, ...tail.reverse()) : real;
61
+ }
62
+ }
63
+ /**
64
+ * Resolve `p` and confine it to `root`.
65
+ *
66
+ * Unless `allowOutside` is set, absolute inputs are rejected and the
67
+ * **canonical** path is returned — every symlink in `p` (including the leaf,
68
+ * even a dangling one) is resolved before the confinement check, and the
69
+ * resolved path is what the caller then operates on, so a symlink inside `root`
70
+ * that points outside it can neither pass the check nor be followed afterwards.
71
+ *
72
+ * Residual TOCTOU: a component could still be swapped for a symlink between this
73
+ * call and the eventual `fs` operation. Closing that fully needs per-component
74
+ * `O_NOFOLLOW`/`openat`, which Node does not expose ergonomically; this is why a
75
+ * sandbox is still recommended for the toolset as a whole.
76
+ */
77
+ export async function confineToRoot(root, p, opts) {
78
+ const allowOutside = opts?.allowOutside ?? false;
79
+ if (path.isAbsolute(p)) {
80
+ if (!allowOutside) {
81
+ throw new ToolError(`absolute path ${JSON.stringify(p)} not permitted`);
82
+ }
83
+ return path.resolve(p);
84
+ }
85
+ const realRoot = await realpathOrSelf(path.resolve(root));
86
+ const abs = path.resolve(realRoot, p);
87
+ if (allowOutside)
88
+ return abs;
89
+ const real = await canonicalize(abs);
90
+ const rootSep = realRoot.endsWith(path.sep) ? realRoot : realRoot + path.sep;
91
+ if (real !== realRoot && !real.startsWith(rootSep)) {
92
+ throw new ToolError(`path ${JSON.stringify(p)} escapes workdir`);
93
+ }
94
+ return real;
95
+ }
96
+ /**
97
+ * Atomically write `content` to `targetPath`: write a sibling temp file, fsync
98
+ * it, then rename over the target. The rename is atomic on most filesystems, so
99
+ * a crash mid-write never leaves the target half-written.
100
+ */
101
+ export async function atomicWriteFile(targetPath, content) {
102
+ const dir = path.dirname(targetPath);
103
+ const tempPath = path.join(dir, `.tmp-${process.pid}-${randomUUID()}`);
104
+ let handle;
105
+ try {
106
+ handle = await fs.open(tempPath, 'wx', FILE_CREATE_MODE);
107
+ await handle.writeFile(content, 'utf-8');
108
+ await handle.sync();
109
+ await handle.close();
110
+ handle = undefined;
111
+ await fs.rename(tempPath, targetPath);
112
+ }
113
+ catch (err) {
114
+ if (handle)
115
+ await handle.close().catch(() => { });
116
+ await fs.unlink(tempPath).catch(() => { });
117
+ throw err;
118
+ }
119
+ }
120
+ /**
121
+ * Map a thrown filesystem error to a consistent, language-independent message,
122
+ * so the model sees the same wording regardless of the runtime (Node's raw
123
+ * `ENOENT: no such file...` text would otherwise leak through). Falls back to
124
+ * the raw error message for codes we don't special-case.
125
+ */
126
+ export function fsErrorMessage(err, file) {
127
+ const code = err?.code;
128
+ switch (code) {
129
+ case 'ENOENT':
130
+ return `${file}: no such file or directory`;
131
+ case 'EACCES':
132
+ case 'EPERM':
133
+ return `${file}: permission denied`;
134
+ case 'ENOTDIR':
135
+ return `${file}: not a directory`;
136
+ case 'EISDIR':
137
+ return `${file}: is a directory`;
138
+ case 'ELOOP':
139
+ return `${file}: too many levels of symbolic links`;
140
+ case 'ENAMETOOLONG':
141
+ return `${file}: file name too long`;
142
+ case 'ENOSPC':
143
+ return `${file}: no space left on device`;
144
+ case 'EMFILE':
145
+ case 'ENFILE':
146
+ return `${file}: too many open files`;
147
+ default:
148
+ return `${file}: ${err instanceof Error ? err.message : String(err)}`;
149
+ }
150
+ }
151
+ //# sourceMappingURL=fs-util.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-util.mjs","sourceRoot":"","sources":["../../src/tools/agent-toolset/fs-util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Node implementation of the `agent_toolset_20260401` tools — `bash`, `read`,
3
+ * `write`, `edit`, `glob`, `grep` — plus the workdir/skills
4
+ * {@link AgentToolContext}.
5
+ *
6
+ * This mirrors `@anthropic-ai/sdk/tools/memory/node`: it is the explicit,
7
+ * Node-only entry point for these implementations. Importing it pulls in
8
+ * `node:child_process`, `node:fs`, etc., so it is kept separate from the rest of
9
+ * the SDK — depending on it is an opt-in.
10
+ *
11
+ * **Node 22+ is required** for this module: the `glob` tool uses the native
12
+ * `fs.glob`, added in Node 22. The rest of the SDK still supports Node 18+; only
13
+ * the agent toolset has this requirement.
14
+ *
15
+ * The result of {@link betaAgentToolset20260401} is a plain `BetaRunnableTool[]`;
16
+ * hand it to any tool runner — `client.beta.messages.toolRunner({ …, tools })`
17
+ * for the Messages API, or `client.beta.sessions.events.toolRunner({ …, tools })`
18
+ * for a managed-agents session:
19
+ *
20
+ * ```ts
21
+ * import { betaAgentToolset20260401 } from '@anthropic-ai/sdk/tools/agent-toolset/node';
22
+ *
23
+ * const tools = betaAgentToolset20260401({ workdir: '/work' });
24
+ * const tools2 = betaAgentToolset20260401({ workdir: '/work' }).filter((t) => t.name !== 'bash');
25
+ * ```
26
+ *
27
+ * Trust model: the file tools confine to `workdir` (symlink-aware) and are safe
28
+ * without a sandbox; `bash` is unrestricted and should run inside one. See
29
+ * {@link AgentToolContext}.
30
+ */
31
+ import type { Anthropic } from "../../client.mjs";
32
+ import type { BetaRunnableTool } from "../../lib/tools/BetaRunnableTool.mjs";
33
+ export { setupSkills, resolveSkillVersion, extractSkillArchive } from "./skills.mjs";
34
+ /**
35
+ * Workdir + path-policy for the agent toolset.
36
+ *
37
+ * Trust model — two tiers:
38
+ *
39
+ * - The file tools ({@link betaReadTool}, {@link betaWriteTool},
40
+ * {@link betaEditTool}, {@link betaGlobTool}, {@link betaGrepTool}) confine to
41
+ * `workdir` unless `unrestrictedPaths` is set. {@link resolvePath}
42
+ * canonicalizes the target (resolving every symlink, including the leaf)
43
+ * before the check *and* returns that canonical path for the operation, so a
44
+ * symlink inside the workdir that points outside it neither passes the check
45
+ * nor gets followed afterwards — this is a real boundary, not a lexical hint
46
+ * (modulo the residual TOCTOU noted on {@link resolvePath}).
47
+ * - {@link betaBashTool} runs an unrestricted `/bin/bash` and cannot be
48
+ * confined. Run it — and, for defense in depth, the whole toolset — inside a
49
+ * sandbox the host controls (e.g. a self-hosted environment runner).
50
+ */
51
+ export interface AgentToolContext {
52
+ /** Base directory for resolving relative tool paths. */
53
+ workdir: string;
54
+ /**
55
+ * When `false` (default), the file tools reject absolute paths and paths
56
+ * that escape `workdir` (symlinks resolved). Does **not** constrain
57
+ * {@link betaBashTool}.
58
+ */
59
+ unrestrictedPaths?: boolean;
60
+ /**
61
+ * Anthropic client. Optional — the bare toolset needs no client; it is only
62
+ * used by `setupSkills`, which (together with {@link AgentToolContext.sessionId})
63
+ * fetches the session's resolved agent and downloads each of its skills into
64
+ * `{workdir}/skills/<name>/`.
65
+ */
66
+ client?: Anthropic;
67
+ /** Session whose agent's skills `setupSkills` should download. */
68
+ sessionId?: string;
69
+ /**
70
+ * Optional environment for the bash subprocess. When unset, the bash tool
71
+ * inherits the process environment with the runner's `ANTHROPIC_*`
72
+ * credentials scrubbed. When provided, it FULLY REPLACES that default
73
+ * environment — the mapping is used verbatim and is NOT merged with or added
74
+ * to the scrubbed process environment. To keep the defaults plus extra vars,
75
+ * build the combined mapping yourself before passing it.
76
+ */
77
+ env?: NodeJS.ProcessEnv;
78
+ }
79
+ /**
80
+ * Returns the `agent_toolset_20260401` implementations bound to `ctx`. The
81
+ * result is a plain array of `BetaRunnableTool`; filter or extend it before
82
+ * handing it to a tool runner:
83
+ *
84
+ * ```ts
85
+ * const tools = [...betaAgentToolset20260401(ctx), myCustomTool];
86
+ * const tools = betaAgentToolset20260401(ctx).filter((t) => t.name !== 'grep');
87
+ * ```
88
+ *
89
+ * Concurrency note: `client.beta.sessions.events.toolRunner` dispatches a
90
+ * session's tool calls serially (the sessions API delivers one `agent.tool_use`
91
+ * at a time). `client.beta.messages.toolRunner` runs a turn's `tool.run` calls
92
+ * via `Promise.all`. The toolset below is safe under either model —
93
+ * {@link betaBashTool} serializes its persistent shell internally and the FS
94
+ * tools are independent per call — but {@link betaEditTool}/{@link betaWriteTool}
95
+ * cannot synchronize concurrent writes to the *same* file across processes, so a
96
+ * multi-edit turn touching one path is still subject to inherent FS lost-update
97
+ * races. Custom tools that close over mutable state should do their own queueing.
98
+ */
99
+ export declare function betaAgentToolset20260401(ctx: AgentToolContext): BetaRunnableTool[];
100
+ /**
101
+ * Resolve `p` relative to `ctx.workdir`. Unless `unrestrictedPaths` is set,
102
+ * absolute inputs are rejected and the **canonical** path is returned — every
103
+ * symlink in `p` (including the leaf, even a dangling one) is resolved before
104
+ * the workdir check, and the resolved path is what the tool then operates on, so
105
+ * a symlink inside the workdir that points outside it can neither pass the check
106
+ * nor be followed afterwards. See the trust model on {@link AgentToolContext}.
107
+ *
108
+ * Residual TOCTOU: a component could still be swapped for a symlink between this
109
+ * call and the eventual `fs` operation. Closing that fully needs per-component
110
+ * `O_NOFOLLOW`/`openat`, which Node does not expose ergonomically; the same
111
+ * residual exposure exists in `tools/memory/node` and is why a sandbox is still
112
+ * recommended for the toolset as a whole.
113
+ */
114
+ export declare function resolvePath(ctx: AgentToolContext, p: string): Promise<string>;
115
+ /**
116
+ * A persistent /bin/bash process. State (cwd, env, background jobs) survives
117
+ * across exec() calls. Uses pipes rather than a PTY so input is never echoed.
118
+ */
119
+ export declare class BashSession {
120
+ #private;
121
+ constructor(dir: string, env?: NodeJS.ProcessEnv);
122
+ /** Whether the underlying shell process has exited. */
123
+ get closed(): boolean;
124
+ exec(command: string, opts?: {
125
+ timeoutMs?: number;
126
+ signal?: AbortSignal | null | undefined;
127
+ }): Promise<{
128
+ output: string;
129
+ exitCode: number;
130
+ }>;
131
+ close(): void;
132
+ }
133
+ export declare function betaBashTool(ctx: AgentToolContext): BetaRunnableTool;
134
+ export declare function betaReadTool(ctx: AgentToolContext): BetaRunnableTool;
135
+ export declare function betaWriteTool(ctx: AgentToolContext): BetaRunnableTool;
136
+ export declare function betaEditTool(ctx: AgentToolContext): BetaRunnableTool;
137
+ export declare function betaGlobTool(ctx: AgentToolContext): BetaRunnableTool;
138
+ export declare function betaGrepTool(ctx: AgentToolContext): BetaRunnableTool;
139
+ //# sourceMappingURL=node.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.mts","sourceRoot":"","sources":["../../src/tools/agent-toolset/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAQH,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAqB;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,6CAAyC;AAMzE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAiB;AA6BjF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CASlF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,gBAAgB,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE7E;AA0BD;;;GAGG;AACH,qBAAa,WAAW;;gBASV,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAA+B;IAyBpE,uDAAuD;IACvD,IAAI,MAAM,IAAI,OAAO,CAEpB;IAkBK,IAAI,CACR,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAA;KAAO,GACzE,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAkEhD,KAAK,IAAI,IAAI;CAkBd;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAgEpE;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAgDpE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAqBrE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CA6DpE;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAgEpE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAmBpE"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Node implementation of the `agent_toolset_20260401` tools — `bash`, `read`,
3
+ * `write`, `edit`, `glob`, `grep` — plus the workdir/skills
4
+ * {@link AgentToolContext}.
5
+ *
6
+ * This mirrors `@anthropic-ai/sdk/tools/memory/node`: it is the explicit,
7
+ * Node-only entry point for these implementations. Importing it pulls in
8
+ * `node:child_process`, `node:fs`, etc., so it is kept separate from the rest of
9
+ * the SDK — depending on it is an opt-in.
10
+ *
11
+ * **Node 22+ is required** for this module: the `glob` tool uses the native
12
+ * `fs.glob`, added in Node 22. The rest of the SDK still supports Node 18+; only
13
+ * the agent toolset has this requirement.
14
+ *
15
+ * The result of {@link betaAgentToolset20260401} is a plain `BetaRunnableTool[]`;
16
+ * hand it to any tool runner — `client.beta.messages.toolRunner({ …, tools })`
17
+ * for the Messages API, or `client.beta.sessions.events.toolRunner({ …, tools })`
18
+ * for a managed-agents session:
19
+ *
20
+ * ```ts
21
+ * import { betaAgentToolset20260401 } from '@anthropic-ai/sdk/tools/agent-toolset/node';
22
+ *
23
+ * const tools = betaAgentToolset20260401({ workdir: '/work' });
24
+ * const tools2 = betaAgentToolset20260401({ workdir: '/work' }).filter((t) => t.name !== 'bash');
25
+ * ```
26
+ *
27
+ * Trust model: the file tools confine to `workdir` (symlink-aware) and are safe
28
+ * without a sandbox; `bash` is unrestricted and should run inside one. See
29
+ * {@link AgentToolContext}.
30
+ */
31
+ import type { Anthropic } from "../../client.js";
32
+ import type { BetaRunnableTool } from "../../lib/tools/BetaRunnableTool.js";
33
+ export { setupSkills, resolveSkillVersion, extractSkillArchive } from "./skills.js";
34
+ /**
35
+ * Workdir + path-policy for the agent toolset.
36
+ *
37
+ * Trust model — two tiers:
38
+ *
39
+ * - The file tools ({@link betaReadTool}, {@link betaWriteTool},
40
+ * {@link betaEditTool}, {@link betaGlobTool}, {@link betaGrepTool}) confine to
41
+ * `workdir` unless `unrestrictedPaths` is set. {@link resolvePath}
42
+ * canonicalizes the target (resolving every symlink, including the leaf)
43
+ * before the check *and* returns that canonical path for the operation, so a
44
+ * symlink inside the workdir that points outside it neither passes the check
45
+ * nor gets followed afterwards — this is a real boundary, not a lexical hint
46
+ * (modulo the residual TOCTOU noted on {@link resolvePath}).
47
+ * - {@link betaBashTool} runs an unrestricted `/bin/bash` and cannot be
48
+ * confined. Run it — and, for defense in depth, the whole toolset — inside a
49
+ * sandbox the host controls (e.g. a self-hosted environment runner).
50
+ */
51
+ export interface AgentToolContext {
52
+ /** Base directory for resolving relative tool paths. */
53
+ workdir: string;
54
+ /**
55
+ * When `false` (default), the file tools reject absolute paths and paths
56
+ * that escape `workdir` (symlinks resolved). Does **not** constrain
57
+ * {@link betaBashTool}.
58
+ */
59
+ unrestrictedPaths?: boolean;
60
+ /**
61
+ * Anthropic client. Optional — the bare toolset needs no client; it is only
62
+ * used by `setupSkills`, which (together with {@link AgentToolContext.sessionId})
63
+ * fetches the session's resolved agent and downloads each of its skills into
64
+ * `{workdir}/skills/<name>/`.
65
+ */
66
+ client?: Anthropic;
67
+ /** Session whose agent's skills `setupSkills` should download. */
68
+ sessionId?: string;
69
+ /**
70
+ * Optional environment for the bash subprocess. When unset, the bash tool
71
+ * inherits the process environment with the runner's `ANTHROPIC_*`
72
+ * credentials scrubbed. When provided, it FULLY REPLACES that default
73
+ * environment — the mapping is used verbatim and is NOT merged with or added
74
+ * to the scrubbed process environment. To keep the defaults plus extra vars,
75
+ * build the combined mapping yourself before passing it.
76
+ */
77
+ env?: NodeJS.ProcessEnv;
78
+ }
79
+ /**
80
+ * Returns the `agent_toolset_20260401` implementations bound to `ctx`. The
81
+ * result is a plain array of `BetaRunnableTool`; filter or extend it before
82
+ * handing it to a tool runner:
83
+ *
84
+ * ```ts
85
+ * const tools = [...betaAgentToolset20260401(ctx), myCustomTool];
86
+ * const tools = betaAgentToolset20260401(ctx).filter((t) => t.name !== 'grep');
87
+ * ```
88
+ *
89
+ * Concurrency note: `client.beta.sessions.events.toolRunner` dispatches a
90
+ * session's tool calls serially (the sessions API delivers one `agent.tool_use`
91
+ * at a time). `client.beta.messages.toolRunner` runs a turn's `tool.run` calls
92
+ * via `Promise.all`. The toolset below is safe under either model —
93
+ * {@link betaBashTool} serializes its persistent shell internally and the FS
94
+ * tools are independent per call — but {@link betaEditTool}/{@link betaWriteTool}
95
+ * cannot synchronize concurrent writes to the *same* file across processes, so a
96
+ * multi-edit turn touching one path is still subject to inherent FS lost-update
97
+ * races. Custom tools that close over mutable state should do their own queueing.
98
+ */
99
+ export declare function betaAgentToolset20260401(ctx: AgentToolContext): BetaRunnableTool[];
100
+ /**
101
+ * Resolve `p` relative to `ctx.workdir`. Unless `unrestrictedPaths` is set,
102
+ * absolute inputs are rejected and the **canonical** path is returned — every
103
+ * symlink in `p` (including the leaf, even a dangling one) is resolved before
104
+ * the workdir check, and the resolved path is what the tool then operates on, so
105
+ * a symlink inside the workdir that points outside it can neither pass the check
106
+ * nor be followed afterwards. See the trust model on {@link AgentToolContext}.
107
+ *
108
+ * Residual TOCTOU: a component could still be swapped for a symlink between this
109
+ * call and the eventual `fs` operation. Closing that fully needs per-component
110
+ * `O_NOFOLLOW`/`openat`, which Node does not expose ergonomically; the same
111
+ * residual exposure exists in `tools/memory/node` and is why a sandbox is still
112
+ * recommended for the toolset as a whole.
113
+ */
114
+ export declare function resolvePath(ctx: AgentToolContext, p: string): Promise<string>;
115
+ /**
116
+ * A persistent /bin/bash process. State (cwd, env, background jobs) survives
117
+ * across exec() calls. Uses pipes rather than a PTY so input is never echoed.
118
+ */
119
+ export declare class BashSession {
120
+ #private;
121
+ constructor(dir: string, env?: NodeJS.ProcessEnv);
122
+ /** Whether the underlying shell process has exited. */
123
+ get closed(): boolean;
124
+ exec(command: string, opts?: {
125
+ timeoutMs?: number;
126
+ signal?: AbortSignal | null | undefined;
127
+ }): Promise<{
128
+ output: string;
129
+ exitCode: number;
130
+ }>;
131
+ close(): void;
132
+ }
133
+ export declare function betaBashTool(ctx: AgentToolContext): BetaRunnableTool;
134
+ export declare function betaReadTool(ctx: AgentToolContext): BetaRunnableTool;
135
+ export declare function betaWriteTool(ctx: AgentToolContext): BetaRunnableTool;
136
+ export declare function betaEditTool(ctx: AgentToolContext): BetaRunnableTool;
137
+ export declare function betaGlobTool(ctx: AgentToolContext): BetaRunnableTool;
138
+ export declare function betaGrepTool(ctx: AgentToolContext): BetaRunnableTool;
139
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/tools/agent-toolset/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAQH,OAAO,KAAK,EAAE,SAAS,EAAE,wBAAqB;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,4CAAyC;AAMzE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,oBAAiB;AA6BjF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CASlF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,gBAAgB,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE7E;AA0BD;;;GAGG;AACH,qBAAa,WAAW;;gBASV,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAA+B;IAyBpE,uDAAuD;IACvD,IAAI,MAAM,IAAI,OAAO,CAEpB;IAkBK,IAAI,CACR,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAA;KAAO,GACzE,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAkEhD,KAAK,IAAI,IAAI;CAkBd;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAgEpE;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAgDpE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAqBrE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CA6DpE;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAgEpE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAmBpE"}