@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,143 @@
1
+ import type { Anthropic } from "../../client.mjs";
2
+ import type { BetaRunnableTool } from "../tools/BetaRunnableTool.mjs";
3
+ import type { BetaToolRunnerRequestOptions } from "../tools/BetaToolRunner.mjs";
4
+ import type { AgentToolContext } from "../../tools/agent-toolset/node.mjs";
5
+ /**
6
+ * Either a fixed tool array or a factory invoked once per claimed session with
7
+ * that session's {@link AgentToolContext} — use the factory form to bind
8
+ * `betaAgentToolset20260401` (or any tool that needs the workdir / session
9
+ * id) to the right session.
10
+ */
11
+ export type EnvironmentWorkerTools = Array<BetaRunnableTool> | ((ctx: AgentToolContext) => Array<BetaRunnableTool>);
12
+ export interface EnvironmentWorkerOptions {
13
+ client: Anthropic;
14
+ /**
15
+ * The self-hosted environment to poll for work. Required by
16
+ * {@link EnvironmentWorker.run}; not used by {@link EnvironmentWorker.handleItem}.
17
+ */
18
+ environmentId?: string;
19
+ /**
20
+ * The environment key — the single credential for the runner. It authenticates
21
+ * the work-poll calls and every per-session call (event stream, lease
22
+ * heartbeat, force-stop). Required by {@link EnvironmentWorker.run}; falls back
23
+ * to `ANTHROPIC_ENVIRONMENT_KEY` in {@link EnvironmentWorker.handleItem}.
24
+ */
25
+ environmentKey?: string;
26
+ /**
27
+ * Tools to expose to each claimed session. Defaults to
28
+ * `betaAgentToolset20260401(ctx)` (the standard `agent_toolset_20260401` set
29
+ * bound to the per-session {@link AgentToolContext}).
30
+ */
31
+ tools?: EnvironmentWorkerTools;
32
+ /** Base directory for the per-session {@link AgentToolContext}. Defaults to `process.cwd()`. */
33
+ workdir?: string;
34
+ /** Forwarded to the per-session {@link AgentToolContext}. */
35
+ unrestrictedPaths?: boolean;
36
+ /** Forwarded to {@link SessionToolRunner} (`maxIdleMs`). */
37
+ maxIdleMs?: number;
38
+ /** Forwarded to the {@link WorkPoller}. */
39
+ workerId?: string;
40
+ /** External abort signal; aborting it ends the run. */
41
+ signal?: AbortSignal;
42
+ /**
43
+ * Extra per-request options merged into every call this worker issues — the
44
+ * work poll/ack/heartbeat/stop control-plane calls and the per-session
45
+ * SessionToolRunner's stream/list/send. Mirrors what
46
+ * `client.beta.messages.toolRunner` accepts: custom `headers` (e.g. a proxy's
47
+ * auth/routing headers) reach all of them. The worker owns the abort signals,
48
+ * so a `signal` here is ignored — use {@link EnvironmentWorkerOptions.signal}.
49
+ */
50
+ requestOptions?: BetaToolRunnerRequestOptions;
51
+ }
52
+ /**
53
+ * Options for {@link EnvironmentWorker.handleItem}. Every field falls back to the
54
+ * matching `ANTHROPIC_*` environment variable — the ones the
55
+ * `ant worker poll --on-work` command sets for the process it spawns — when not
56
+ * passed explicitly.
57
+ */
58
+ export interface HandleItemOptions {
59
+ /** Work item id. Falls back to `ANTHROPIC_WORK_ID`. */
60
+ workId?: string;
61
+ /** Self-hosted environment id. Falls back to `ANTHROPIC_ENVIRONMENT_ID`. */
62
+ environmentId?: string;
63
+ /** Session id. Falls back to `ANTHROPIC_SESSION_ID`. */
64
+ sessionId?: string;
65
+ /**
66
+ * The environment key used to authenticate every per-session call. Resolution
67
+ * order: this option, then the worker's own `environmentKey`, then
68
+ * `ANTHROPIC_ENVIRONMENT_KEY`.
69
+ */
70
+ environmentKey?: string;
71
+ /** External abort signal; aborting it ends the run. Defaults to the constructor's signal. */
72
+ signal?: AbortSignal;
73
+ }
74
+ /**
75
+ * The self-hosted environment runner, composed from the control-plane
76
+ * {@link WorkPoller} and the per-session {@link SessionToolRunner}.
77
+ *
78
+ * For each claimed `session` work item it: builds the per-session
79
+ * {@link AgentToolContext}, downloads the session agent's skills
80
+ * (`setupSkills`), then runs a {@link SessionToolRunner} for the session
81
+ * *while* heartbeating the work-item lease in parallel; on exit it force-stops
82
+ * the work item, cleans up the downloaded skills, and loops to the next one. The
83
+ * lease heartbeat reports `state === "stopping"` / a lost lease back into the run
84
+ * by aborting the session runner.
85
+ *
86
+ * Use {@link EnvironmentWorker.handleItem} if you already hold a claimed work
87
+ * item (e.g. a `worker poll --on-work` script handed one to a fresh process) and
88
+ * just want the per-item flow without the poll loop — with no arguments it reads
89
+ * the `ANTHROPIC_*` env vars that command sets.
90
+ *
91
+ * Construct it via `client.beta.environments.work.worker({ ... })` (or
92
+ * `new EnvironmentWorker({ client, ... })` directly).
93
+ *
94
+ * @example
95
+ * ```ts
96
+ * // Long-running daemon: poll for work, serve each session, loop.
97
+ * await client.beta.environments.work
98
+ * .worker({ environmentId, environmentKey, workdir: '/workspace' })
99
+ * .run(AbortSignal.timeout(60 * 60_000));
100
+ *
101
+ * // Already-claimed item (e.g. inside `ant worker poll --on-work ...`):
102
+ * await client.beta.environments.work.worker({ workdir: '/workspace' }).handleItem();
103
+ * ```
104
+ */
105
+ export declare class EnvironmentWorker {
106
+ #private;
107
+ readonly client: Anthropic;
108
+ readonly environmentId: string | undefined;
109
+ readonly environmentKey: string | undefined;
110
+ readonly tools: EnvironmentWorkerTools | undefined;
111
+ readonly workdir: string;
112
+ readonly unrestrictedPaths: boolean | undefined;
113
+ readonly maxIdleMs: number | undefined;
114
+ readonly workerId: string | undefined;
115
+ readonly requestOptions: BetaToolRunnerRequestOptions | undefined;
116
+ constructor(opts: EnvironmentWorkerOptions);
117
+ /**
118
+ * Poll the environment and service each claimed session until the supplied
119
+ * signal (or the one passed to the constructor) aborts. Throws if
120
+ * `environmentId` / `environmentKey` were not provided to the constructor.
121
+ */
122
+ run(signal?: AbortSignal): Promise<void>;
123
+ /**
124
+ * Service a single, already-claimed work item without the poll loop: build the
125
+ * per-session {@link AgentToolContext} (workdir from this worker's options),
126
+ * download the session agent's skills (`setupSkills`), run a
127
+ * {@link SessionToolRunner} for the session while heartbeating the work-item
128
+ * lease in parallel, and force-stop the work item on exit (whether the runner
129
+ * finishes normally, throws, or the heartbeat loop signals shutdown).
130
+ *
131
+ * Use this when something else does the claiming — e.g. a `worker poll
132
+ * --on-work` script that hands an already-claimed item to a fresh process. The
133
+ * work id / environment id / session id each fall back to `ANTHROPIC_WORK_ID` /
134
+ * `ANTHROPIC_ENVIRONMENT_ID` / `ANTHROPIC_SESSION_ID` (the env vars that
135
+ * command sets) when not passed; the environment key resolves from this
136
+ * option, then the worker's own `environmentKey`, then
137
+ * `ANTHROPIC_ENVIRONMENT_KEY`. With no arguments inside that command it just
138
+ * works. Throws a clear error naming the first of the four required values
139
+ * still missing after resolution.
140
+ */
141
+ handleItem(opts?: HandleItemOptions): Promise<void>;
142
+ }
143
+ //# sourceMappingURL=worker.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.mts","sourceRoot":"","sources":["../../src/lib/environments/worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAqB;AAQ9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,sCAAkC;AAClE,OAAO,KAAK,EAAE,4BAA4B,EAAE,oCAAgC;AAU5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,2CAAuC;AAKvE;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAC9B,KAAK,CAAC,gBAAgB,CAAC,GACvB,CAAC,CAAC,GAAG,EAAE,gBAAgB,KAAK,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEzD,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,4BAA4B,CAAC;CAC/C;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,iBAAiB;;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,4BAA4B,GAAG,SAAS,CAAC;gBAGtD,IAAI,EAAE,wBAAwB;IAa1C;;;;OAIG;IACG,GAAG,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB9C;;;;;;;;;;;;;;;;;OAiBG;IACG,UAAU,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CA+G1D"}
@@ -0,0 +1,143 @@
1
+ import type { Anthropic } from "../../client.js";
2
+ import type { BetaRunnableTool } from "../tools/BetaRunnableTool.js";
3
+ import type { BetaToolRunnerRequestOptions } from "../tools/BetaToolRunner.js";
4
+ import type { AgentToolContext } from "../../tools/agent-toolset/node.js";
5
+ /**
6
+ * Either a fixed tool array or a factory invoked once per claimed session with
7
+ * that session's {@link AgentToolContext} — use the factory form to bind
8
+ * `betaAgentToolset20260401` (or any tool that needs the workdir / session
9
+ * id) to the right session.
10
+ */
11
+ export type EnvironmentWorkerTools = Array<BetaRunnableTool> | ((ctx: AgentToolContext) => Array<BetaRunnableTool>);
12
+ export interface EnvironmentWorkerOptions {
13
+ client: Anthropic;
14
+ /**
15
+ * The self-hosted environment to poll for work. Required by
16
+ * {@link EnvironmentWorker.run}; not used by {@link EnvironmentWorker.handleItem}.
17
+ */
18
+ environmentId?: string;
19
+ /**
20
+ * The environment key — the single credential for the runner. It authenticates
21
+ * the work-poll calls and every per-session call (event stream, lease
22
+ * heartbeat, force-stop). Required by {@link EnvironmentWorker.run}; falls back
23
+ * to `ANTHROPIC_ENVIRONMENT_KEY` in {@link EnvironmentWorker.handleItem}.
24
+ */
25
+ environmentKey?: string;
26
+ /**
27
+ * Tools to expose to each claimed session. Defaults to
28
+ * `betaAgentToolset20260401(ctx)` (the standard `agent_toolset_20260401` set
29
+ * bound to the per-session {@link AgentToolContext}).
30
+ */
31
+ tools?: EnvironmentWorkerTools;
32
+ /** Base directory for the per-session {@link AgentToolContext}. Defaults to `process.cwd()`. */
33
+ workdir?: string;
34
+ /** Forwarded to the per-session {@link AgentToolContext}. */
35
+ unrestrictedPaths?: boolean;
36
+ /** Forwarded to {@link SessionToolRunner} (`maxIdleMs`). */
37
+ maxIdleMs?: number;
38
+ /** Forwarded to the {@link WorkPoller}. */
39
+ workerId?: string;
40
+ /** External abort signal; aborting it ends the run. */
41
+ signal?: AbortSignal;
42
+ /**
43
+ * Extra per-request options merged into every call this worker issues — the
44
+ * work poll/ack/heartbeat/stop control-plane calls and the per-session
45
+ * SessionToolRunner's stream/list/send. Mirrors what
46
+ * `client.beta.messages.toolRunner` accepts: custom `headers` (e.g. a proxy's
47
+ * auth/routing headers) reach all of them. The worker owns the abort signals,
48
+ * so a `signal` here is ignored — use {@link EnvironmentWorkerOptions.signal}.
49
+ */
50
+ requestOptions?: BetaToolRunnerRequestOptions;
51
+ }
52
+ /**
53
+ * Options for {@link EnvironmentWorker.handleItem}. Every field falls back to the
54
+ * matching `ANTHROPIC_*` environment variable — the ones the
55
+ * `ant worker poll --on-work` command sets for the process it spawns — when not
56
+ * passed explicitly.
57
+ */
58
+ export interface HandleItemOptions {
59
+ /** Work item id. Falls back to `ANTHROPIC_WORK_ID`. */
60
+ workId?: string;
61
+ /** Self-hosted environment id. Falls back to `ANTHROPIC_ENVIRONMENT_ID`. */
62
+ environmentId?: string;
63
+ /** Session id. Falls back to `ANTHROPIC_SESSION_ID`. */
64
+ sessionId?: string;
65
+ /**
66
+ * The environment key used to authenticate every per-session call. Resolution
67
+ * order: this option, then the worker's own `environmentKey`, then
68
+ * `ANTHROPIC_ENVIRONMENT_KEY`.
69
+ */
70
+ environmentKey?: string;
71
+ /** External abort signal; aborting it ends the run. Defaults to the constructor's signal. */
72
+ signal?: AbortSignal;
73
+ }
74
+ /**
75
+ * The self-hosted environment runner, composed from the control-plane
76
+ * {@link WorkPoller} and the per-session {@link SessionToolRunner}.
77
+ *
78
+ * For each claimed `session` work item it: builds the per-session
79
+ * {@link AgentToolContext}, downloads the session agent's skills
80
+ * (`setupSkills`), then runs a {@link SessionToolRunner} for the session
81
+ * *while* heartbeating the work-item lease in parallel; on exit it force-stops
82
+ * the work item, cleans up the downloaded skills, and loops to the next one. The
83
+ * lease heartbeat reports `state === "stopping"` / a lost lease back into the run
84
+ * by aborting the session runner.
85
+ *
86
+ * Use {@link EnvironmentWorker.handleItem} if you already hold a claimed work
87
+ * item (e.g. a `worker poll --on-work` script handed one to a fresh process) and
88
+ * just want the per-item flow without the poll loop — with no arguments it reads
89
+ * the `ANTHROPIC_*` env vars that command sets.
90
+ *
91
+ * Construct it via `client.beta.environments.work.worker({ ... })` (or
92
+ * `new EnvironmentWorker({ client, ... })` directly).
93
+ *
94
+ * @example
95
+ * ```ts
96
+ * // Long-running daemon: poll for work, serve each session, loop.
97
+ * await client.beta.environments.work
98
+ * .worker({ environmentId, environmentKey, workdir: '/workspace' })
99
+ * .run(AbortSignal.timeout(60 * 60_000));
100
+ *
101
+ * // Already-claimed item (e.g. inside `ant worker poll --on-work ...`):
102
+ * await client.beta.environments.work.worker({ workdir: '/workspace' }).handleItem();
103
+ * ```
104
+ */
105
+ export declare class EnvironmentWorker {
106
+ #private;
107
+ readonly client: Anthropic;
108
+ readonly environmentId: string | undefined;
109
+ readonly environmentKey: string | undefined;
110
+ readonly tools: EnvironmentWorkerTools | undefined;
111
+ readonly workdir: string;
112
+ readonly unrestrictedPaths: boolean | undefined;
113
+ readonly maxIdleMs: number | undefined;
114
+ readonly workerId: string | undefined;
115
+ readonly requestOptions: BetaToolRunnerRequestOptions | undefined;
116
+ constructor(opts: EnvironmentWorkerOptions);
117
+ /**
118
+ * Poll the environment and service each claimed session until the supplied
119
+ * signal (or the one passed to the constructor) aborts. Throws if
120
+ * `environmentId` / `environmentKey` were not provided to the constructor.
121
+ */
122
+ run(signal?: AbortSignal): Promise<void>;
123
+ /**
124
+ * Service a single, already-claimed work item without the poll loop: build the
125
+ * per-session {@link AgentToolContext} (workdir from this worker's options),
126
+ * download the session agent's skills (`setupSkills`), run a
127
+ * {@link SessionToolRunner} for the session while heartbeating the work-item
128
+ * lease in parallel, and force-stop the work item on exit (whether the runner
129
+ * finishes normally, throws, or the heartbeat loop signals shutdown).
130
+ *
131
+ * Use this when something else does the claiming — e.g. a `worker poll
132
+ * --on-work` script that hands an already-claimed item to a fresh process. The
133
+ * work id / environment id / session id each fall back to `ANTHROPIC_WORK_ID` /
134
+ * `ANTHROPIC_ENVIRONMENT_ID` / `ANTHROPIC_SESSION_ID` (the env vars that
135
+ * command sets) when not passed; the environment key resolves from this
136
+ * option, then the worker's own `environmentKey`, then
137
+ * `ANTHROPIC_ENVIRONMENT_KEY`. With no arguments inside that command it just
138
+ * works. Throws a clear error naming the first of the four required values
139
+ * still missing after resolution.
140
+ */
141
+ handleItem(opts?: HandleItemOptions): Promise<void>;
142
+ }
143
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/lib/environments/worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,wBAAqB;AAQ9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,qCAAkC;AAClE,OAAO,KAAK,EAAE,4BAA4B,EAAE,mCAAgC;AAU5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,0CAAuC;AAKvE;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAC9B,KAAK,CAAC,gBAAgB,CAAC,GACvB,CAAC,CAAC,GAAG,EAAE,gBAAgB,KAAK,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEzD,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,4BAA4B,CAAC;CAC/C;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,iBAAiB;;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,4BAA4B,GAAG,SAAS,CAAC;gBAGtD,IAAI,EAAE,wBAAwB;IAa1C;;;;OAIG;IACG,GAAG,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB9C;;;;;;;;;;;;;;;;;OAiBG;IACG,UAAU,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CA+G1D"}
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ var _EnvironmentWorker_instances, _EnvironmentWorker_signal, _EnvironmentWorker_handleItem;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.EnvironmentWorker = void 0;
5
+ const tslib_1 = require("../../internal/tslib.js");
6
+ const error_1 = require("../../core/error.js");
7
+ const log_1 = require("../../internal/utils/log.js");
8
+ const env_1 = require("../../internal/utils/env.js");
9
+ const sleep_1 = require("../../internal/utils/sleep.js");
10
+ const backoff_1 = require("../../internal/utils/backoff.js");
11
+ const abort_1 = require("../../internal/utils/abort.js");
12
+ const headers_1 = require("../../internal/headers.js");
13
+ const SessionToolRunner_1 = require("../tools/SessionToolRunner.js");
14
+ const poller_1 = require("./poller.js");
15
+ const helper_client_1 = require("../helper-client.js");
16
+ const HEARTBEAT_DEFAULT_MS = 30000;
17
+ const NO_HEARTBEAT_SENTINEL = 'NO_HEARTBEAT';
18
+ /**
19
+ * The self-hosted environment runner, composed from the control-plane
20
+ * {@link WorkPoller} and the per-session {@link SessionToolRunner}.
21
+ *
22
+ * For each claimed `session` work item it: builds the per-session
23
+ * {@link AgentToolContext}, downloads the session agent's skills
24
+ * (`setupSkills`), then runs a {@link SessionToolRunner} for the session
25
+ * *while* heartbeating the work-item lease in parallel; on exit it force-stops
26
+ * the work item, cleans up the downloaded skills, and loops to the next one. The
27
+ * lease heartbeat reports `state === "stopping"` / a lost lease back into the run
28
+ * by aborting the session runner.
29
+ *
30
+ * Use {@link EnvironmentWorker.handleItem} if you already hold a claimed work
31
+ * item (e.g. a `worker poll --on-work` script handed one to a fresh process) and
32
+ * just want the per-item flow without the poll loop — with no arguments it reads
33
+ * the `ANTHROPIC_*` env vars that command sets.
34
+ *
35
+ * Construct it via `client.beta.environments.work.worker({ ... })` (or
36
+ * `new EnvironmentWorker({ client, ... })` directly).
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * // Long-running daemon: poll for work, serve each session, loop.
41
+ * await client.beta.environments.work
42
+ * .worker({ environmentId, environmentKey, workdir: '/workspace' })
43
+ * .run(AbortSignal.timeout(60 * 60_000));
44
+ *
45
+ * // Already-claimed item (e.g. inside `ant worker poll --on-work ...`):
46
+ * await client.beta.environments.work.worker({ workdir: '/workspace' }).handleItem();
47
+ * ```
48
+ */
49
+ class EnvironmentWorker {
50
+ constructor(opts) {
51
+ _EnvironmentWorker_instances.add(this);
52
+ _EnvironmentWorker_signal.set(this, void 0);
53
+ this.client = opts.client;
54
+ this.environmentId = opts.environmentId;
55
+ this.environmentKey = opts.environmentKey;
56
+ this.tools = opts.tools;
57
+ this.workdir = opts.workdir ?? process.cwd();
58
+ this.unrestrictedPaths = opts.unrestrictedPaths;
59
+ this.maxIdleMs = opts.maxIdleMs;
60
+ this.workerId = opts.workerId;
61
+ this.requestOptions = opts.requestOptions;
62
+ tslib_1.__classPrivateFieldSet(this, _EnvironmentWorker_signal, opts.signal, "f");
63
+ }
64
+ /**
65
+ * Poll the environment and service each claimed session until the supplied
66
+ * signal (or the one passed to the constructor) aborts. Throws if
67
+ * `environmentId` / `environmentKey` were not provided to the constructor.
68
+ */
69
+ async run(signal) {
70
+ const { environmentId, environmentKey } = this;
71
+ if (environmentId === undefined || environmentKey === undefined) {
72
+ throw new error_1.AnthropicError('EnvironmentWorker.run: environmentId and environmentKey are required to poll for work');
73
+ }
74
+ const externalSignal = signal ?? tslib_1.__classPrivateFieldGet(this, _EnvironmentWorker_signal, "f");
75
+ const poller = new poller_1.WorkPoller({
76
+ client: this.client,
77
+ environmentId,
78
+ environmentKey,
79
+ ...(this.workerId !== undefined ? { workerId: this.workerId } : {}),
80
+ ...(externalSignal ? { signal: externalSignal } : {}),
81
+ ...(this.requestOptions !== undefined ? { requestOptions: this.requestOptions } : {}),
82
+ // The per-item handler force-stops every work item on exit; let it be the
83
+ // single owner of `work.stop` rather than double-posting from the poller.
84
+ autoStop: false,
85
+ });
86
+ for await (const work of poller) {
87
+ await tslib_1.__classPrivateFieldGet(this, _EnvironmentWorker_instances, "m", _EnvironmentWorker_handleItem).call(this, work, environmentKey, poller.signal);
88
+ }
89
+ }
90
+ /**
91
+ * Service a single, already-claimed work item without the poll loop: build the
92
+ * per-session {@link AgentToolContext} (workdir from this worker's options),
93
+ * download the session agent's skills (`setupSkills`), run a
94
+ * {@link SessionToolRunner} for the session while heartbeating the work-item
95
+ * lease in parallel, and force-stop the work item on exit (whether the runner
96
+ * finishes normally, throws, or the heartbeat loop signals shutdown).
97
+ *
98
+ * Use this when something else does the claiming — e.g. a `worker poll
99
+ * --on-work` script that hands an already-claimed item to a fresh process. The
100
+ * work id / environment id / session id each fall back to `ANTHROPIC_WORK_ID` /
101
+ * `ANTHROPIC_ENVIRONMENT_ID` / `ANTHROPIC_SESSION_ID` (the env vars that
102
+ * command sets) when not passed; the environment key resolves from this
103
+ * option, then the worker's own `environmentKey`, then
104
+ * `ANTHROPIC_ENVIRONMENT_KEY`. With no arguments inside that command it just
105
+ * works. Throws a clear error naming the first of the four required values
106
+ * still missing after resolution.
107
+ */
108
+ async handleItem(opts) {
109
+ const workId = opts?.workId ?? (0, env_1.readEnv)('ANTHROPIC_WORK_ID');
110
+ const environmentId = opts?.environmentId ?? (0, env_1.readEnv)('ANTHROPIC_ENVIRONMENT_ID');
111
+ const sessionId = opts?.sessionId ?? (0, env_1.readEnv)('ANTHROPIC_SESSION_ID');
112
+ const environmentKey = opts?.environmentKey ?? this.environmentKey ?? (0, env_1.readEnv)('ANTHROPIC_ENVIRONMENT_KEY');
113
+ if (!workId) {
114
+ throw new error_1.AnthropicError('handleItem: workId is required — pass it or set ANTHROPIC_WORK_ID');
115
+ }
116
+ if (!environmentId) {
117
+ throw new error_1.AnthropicError('handleItem: environmentId is required — pass it or set ANTHROPIC_ENVIRONMENT_ID');
118
+ }
119
+ if (!sessionId) {
120
+ throw new error_1.AnthropicError('handleItem: sessionId is required — pass it or set ANTHROPIC_SESSION_ID');
121
+ }
122
+ if (!environmentKey) {
123
+ throw new error_1.AnthropicError('handleItem: environmentKey is required — pass it, construct the worker with it, or set ANTHROPIC_ENVIRONMENT_KEY');
124
+ }
125
+ const work = {
126
+ id: workId,
127
+ environment_id: environmentId,
128
+ data: { type: 'session', id: sessionId },
129
+ };
130
+ await tslib_1.__classPrivateFieldGet(this, _EnvironmentWorker_instances, "m", _EnvironmentWorker_handleItem).call(this, work, environmentKey, opts?.signal ?? tslib_1.__classPrivateFieldGet(this, _EnvironmentWorker_signal, "f"));
131
+ }
132
+ }
133
+ exports.EnvironmentWorker = EnvironmentWorker;
134
+ _EnvironmentWorker_signal = new WeakMap(), _EnvironmentWorker_instances = new WeakSet(), _EnvironmentWorker_handleItem =
135
+ /**
136
+ * The per-item body shared by {@link EnvironmentWorker.run}'s poll loop and
137
+ * {@link EnvironmentWorker.handleItem}: run a {@link SessionToolRunner} for the
138
+ * work item's session while heartbeating its lease, force-stopping on exit.
139
+ * Non-session work items are ignored.
140
+ */
141
+ async function _EnvironmentWorker_handleItem(work, environmentKey, externalSignal) {
142
+ const log = (0, log_1.loggerFor)(this.client);
143
+ // Every per-session call — the SessionToolRunner event stream/list/send, the
144
+ // lease heartbeat, and the work force-stop — authenticates with the
145
+ // environment key. Scope a client to it once and thread that through.
146
+ // `copyClientForHelper` also clears the parent's `apiKey`, so the sub-client
147
+ // emits *only* the bearer credential on the wire (a plain
148
+ // `withOptions({authToken})` would leave `X-Api-Key` set as well).
149
+ const sessionClient = (0, helper_client_1.copyClientForHelper)(this.client, {
150
+ authToken: environmentKey,
151
+ helper: 'environments-worker',
152
+ });
153
+ // The poller runs with `autoStop: false`, so the per-item handler is the
154
+ // single owner of `work.stop` for every claimed item.
155
+ const sessionId = work.data.id;
156
+ const ctx = {
157
+ workdir: this.workdir,
158
+ client: this.client,
159
+ sessionId,
160
+ ...(this.unrestrictedPaths !== undefined ? { unrestrictedPaths: this.unrestrictedPaths } : {}),
161
+ };
162
+ // Lazily load the Node-only toolset module — see the import note at the top.
163
+ const agentToolset = await Promise.resolve().then(() => tslib_1.__importStar(require("../../tools/agent-toolset/node.js")));
164
+ let cleanupSkills = async () => { };
165
+ try {
166
+ cleanupSkills = await agentToolset.setupSkills(ctx);
167
+ }
168
+ catch (e) {
169
+ log.warn('skill setup failed', { session_id: sessionId, work_id: work.id, error: String(e) });
170
+ }
171
+ const tools = typeof this.tools === 'function' ?
172
+ this.tools(ctx)
173
+ : this.tools ?? agentToolset.betaAgentToolset20260401(ctx);
174
+ // A per-session controller: aborts when the supplied signal aborts, when the
175
+ // session runner finishes, or when the lease heartbeat says to stop.
176
+ const ctrl = new AbortController();
177
+ const detachExternal = (0, abort_1.linkAbort)(externalSignal, ctrl);
178
+ const heartbeatPromise = heartbeatLoop(sessionClient, work, ctrl, log, this.requestOptions).catch((e) => {
179
+ if (!ctrl.signal.aborted)
180
+ log.error('heartbeat loop failed', { work_id: work.id, error: String(e) });
181
+ ctrl.abort();
182
+ });
183
+ try {
184
+ const runner = new SessionToolRunner_1.SessionToolRunner(sessionId, {
185
+ client: sessionClient,
186
+ tools,
187
+ ...(this.maxIdleMs !== undefined ? { maxIdleMs: this.maxIdleMs } : {}),
188
+ ...(this.requestOptions !== undefined ? { requestOptions: this.requestOptions } : {}),
189
+ signal: ctrl.signal,
190
+ });
191
+ for await (const _ of runner) {
192
+ // Drive the runner to completion; per-call observability is not part
193
+ // of this composition's surface — use `SessionToolRunner` directly
194
+ // (via `client.beta.sessions.events.toolRunner`) if you want it.
195
+ }
196
+ }
197
+ finally {
198
+ ctrl.abort();
199
+ detachExternal();
200
+ await heartbeatPromise;
201
+ await cleanupSkills().catch((e) => {
202
+ log.warn('skill cleanup failed', { session_id: sessionId, work_id: work.id, error: String(e) });
203
+ });
204
+ await forceStop(sessionClient, work, log, this.requestOptions);
205
+ }
206
+ };
207
+ /** Force-stop a claimed work item, swallowing the 409 that means it's already stopped. */
208
+ async function forceStop(client, work, log, requestOptions) {
209
+ try {
210
+ await client.beta.environments.work.stop(work.id, { environment_id: work.environment_id, force: true },
211
+ // Caller's headers pass through; the helper-tag header is on the scoped
212
+ // sub-client's default_headers via copyClientForHelper, so no per-call
213
+ // re-stamping needed.
214
+ { ...requestOptions, headers: (0, headers_1.buildHeaders)([requestOptions?.headers]) });
215
+ }
216
+ catch (e) {
217
+ if (!(0, backoff_1.isStatus)(e, 409)) {
218
+ log.error('force-stop on exit failed', { work_id: work.id, error: String(e) });
219
+ }
220
+ }
221
+ }
222
+ /**
223
+ * Keep the work-item lease alive while a session is being served. Aborts `ctrl`
224
+ * when the control plane reports the work is `stopping`/`stopped`, when the
225
+ * lease is no longer extended, or on a permanent heartbeat failure.
226
+ */
227
+ async function heartbeatLoop(client, work, ctrl, logger, requestOptions) {
228
+ let intervalMs = HEARTBEAT_DEFAULT_MS;
229
+ let last = NO_HEARTBEAT_SENTINEL;
230
+ const beat = async () => {
231
+ try {
232
+ const resp = await client.beta.environments.work.heartbeat(work.id, { environment_id: work.environment_id, expected_last_heartbeat: last }, { ...requestOptions, headers: (0, headers_1.buildHeaders)([requestOptions?.headers]), signal: ctrl.signal });
233
+ last = resp.last_heartbeat;
234
+ if (resp.ttl_seconds > 0) {
235
+ intervalMs = Math.max(1000, Math.min((resp.ttl_seconds * 1000) / 2, HEARTBEAT_DEFAULT_MS));
236
+ }
237
+ if (resp.state === 'stopping' || resp.state === 'stopped') {
238
+ logger.info('heartbeat signals shutdown', { work_id: work.id, state: resp.state });
239
+ ctrl.abort();
240
+ }
241
+ if (!resp.lease_extended) {
242
+ logger.warn('lease not extended, shutting down', { work_id: work.id });
243
+ ctrl.abort();
244
+ }
245
+ }
246
+ catch (e) {
247
+ // An abort throws to unwind the caller (the `heartbeatLoop(...).catch`
248
+ // in `#handleItem`) rather than returning early.
249
+ ctrl.signal.throwIfAborted();
250
+ if ((0, backoff_1.isFatal4xx)(e)) {
251
+ logger.error('permanent heartbeat failure', { work_id: work.id, error: String(e) });
252
+ ctrl.abort();
253
+ throw e;
254
+ }
255
+ logger.warn('transient heartbeat failure', { work_id: work.id, error: String(e) });
256
+ }
257
+ };
258
+ await beat();
259
+ while (!ctrl.signal.aborted) {
260
+ await (0, sleep_1.sleep)(intervalMs, ctrl.signal);
261
+ ctrl.signal.throwIfAborted();
262
+ await beat();
263
+ }
264
+ }
265
+ //# sourceMappingURL=worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/lib/environments/worker.ts"],"names":[],"mappings":"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"}