@puku-ai/sdk 4.0.1 → 4.0.2

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/dist/index.d.ts +26 -0
  2. package/dist/index.js +32 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/vendor/_vendor/partial-json-parser/parser.d.ts +2 -0
  5. package/dist/vendor/_vendor/partial-json-parser/parser.js +223 -0
  6. package/dist/vendor/_vendor/partial-json-parser/parser.js.map +1 -0
  7. package/dist/vendor/api-promise.d.ts +2 -0
  8. package/dist/vendor/api-promise.js +3 -0
  9. package/dist/vendor/api-promise.js.map +1 -0
  10. package/dist/vendor/client.d.ts +399 -0
  11. package/dist/vendor/client.js +976 -0
  12. package/dist/vendor/client.js.map +1 -0
  13. package/dist/vendor/core/api-promise.d.ts +49 -0
  14. package/dist/vendor/core/api-promise.js +77 -0
  15. package/dist/vendor/core/api-promise.js.map +1 -0
  16. package/dist/vendor/core/api.d.ts +10 -0
  17. package/dist/vendor/core/api.js +2 -0
  18. package/dist/vendor/core/api.js.map +1 -0
  19. package/dist/vendor/core/credentials.d.ts +130 -0
  20. package/dist/vendor/core/credentials.js +274 -0
  21. package/dist/vendor/core/credentials.js.map +1 -0
  22. package/dist/vendor/core/error.d.ts +82 -0
  23. package/dist/vendor/core/error.js +140 -0
  24. package/dist/vendor/core/error.js.map +1 -0
  25. package/dist/vendor/core/middleware.d.ts +153 -0
  26. package/dist/vendor/core/middleware.js +168 -0
  27. package/dist/vendor/core/middleware.js.map +1 -0
  28. package/dist/vendor/core/pagination.d.ts +121 -0
  29. package/dist/vendor/core/pagination.js +207 -0
  30. package/dist/vendor/core/pagination.js.map +1 -0
  31. package/dist/vendor/core/resource.d.ts +5 -0
  32. package/dist/vendor/core/resource.js +8 -0
  33. package/dist/vendor/core/resource.js.map +1 -0
  34. package/dist/vendor/core/streaming.d.ts +41 -0
  35. package/dist/vendor/core/streaming.js +342 -0
  36. package/dist/vendor/core/streaming.js.map +1 -0
  37. package/dist/vendor/core/uploads.d.ts +2 -0
  38. package/dist/vendor/core/uploads.js +2 -0
  39. package/dist/vendor/core/uploads.js.map +1 -0
  40. package/dist/vendor/error.d.ts +2 -0
  41. package/dist/vendor/error.js +3 -0
  42. package/dist/vendor/error.js.map +1 -0
  43. package/dist/vendor/helpers/beta/environments.d.ts +22 -0
  44. package/dist/vendor/helpers/beta/environments.js +23 -0
  45. package/dist/vendor/helpers/beta/environments.js.map +1 -0
  46. package/dist/vendor/helpers/beta/json-schema.d.ts +36 -0
  47. package/dist/vendor/helpers/beta/json-schema.js +53 -0
  48. package/dist/vendor/helpers/beta/json-schema.js.map +1 -0
  49. package/dist/vendor/helpers/beta/mcp.d.ts +302 -0
  50. package/dist/vendor/helpers/beta/mcp.js +406 -0
  51. package/dist/vendor/helpers/beta/mcp.js.map +1 -0
  52. package/dist/vendor/helpers/beta/memory.d.ts +10 -0
  53. package/dist/vendor/helpers/beta/memory.js +15 -0
  54. package/dist/vendor/helpers/beta/memory.js.map +1 -0
  55. package/dist/vendor/helpers/beta/standard-schema.d.ts +44 -0
  56. package/dist/vendor/helpers/beta/standard-schema.js +54 -0
  57. package/dist/vendor/helpers/beta/standard-schema.js.map +1 -0
  58. package/dist/vendor/helpers/beta/zod.d.ts +32 -0
  59. package/dist/vendor/helpers/beta/zod.js +52 -0
  60. package/dist/vendor/helpers/beta/zod.js.map +1 -0
  61. package/dist/vendor/helpers/index.d.ts +2 -0
  62. package/dist/vendor/helpers/index.js +3 -0
  63. package/dist/vendor/helpers/index.js.map +1 -0
  64. package/dist/vendor/helpers/json-schema.d.ts +17 -0
  65. package/dist/vendor/helpers/json-schema.js +34 -0
  66. package/dist/vendor/helpers/json-schema.js.map +1 -0
  67. package/dist/vendor/helpers/zod.d.ts +12 -0
  68. package/dist/vendor/helpers/zod.js +42 -0
  69. package/dist/vendor/helpers/zod.js.map +1 -0
  70. package/dist/vendor/index.d.ts +16 -0
  71. package/dist/vendor/index.js +23 -0
  72. package/dist/vendor/index.js.map +1 -0
  73. package/dist/vendor/internal/builtin-types.d.ts +72 -0
  74. package/dist/vendor/internal/builtin-types.js +3 -0
  75. package/dist/vendor/internal/builtin-types.js.map +1 -0
  76. package/dist/vendor/internal/constants.d.ts +4 -0
  77. package/dist/vendor/internal/constants.js +10 -0
  78. package/dist/vendor/internal/constants.js.map +1 -0
  79. package/dist/vendor/internal/decoders/jsonl.d.ts +9 -0
  80. package/dist/vendor/internal/decoders/jsonl.js +37 -0
  81. package/dist/vendor/internal/decoders/jsonl.js.map +1 -0
  82. package/dist/vendor/internal/decoders/line.d.ts +16 -0
  83. package/dist/vendor/internal/decoders/line.js +105 -0
  84. package/dist/vendor/internal/decoders/line.js.map +1 -0
  85. package/dist/vendor/internal/detect-platform.d.ts +14 -0
  86. package/dist/vendor/internal/detect-platform.js +155 -0
  87. package/dist/vendor/internal/detect-platform.js.map +1 -0
  88. package/dist/vendor/internal/errors.d.ts +2 -0
  89. package/dist/vendor/internal/errors.js +38 -0
  90. package/dist/vendor/internal/errors.js.map +1 -0
  91. package/dist/vendor/internal/file-store.d.ts +135 -0
  92. package/dist/vendor/internal/file-store.js +529 -0
  93. package/dist/vendor/internal/file-store.js.map +1 -0
  94. package/dist/vendor/internal/headers.d.ts +28 -0
  95. package/dist/vendor/internal/headers.js +114 -0
  96. package/dist/vendor/internal/headers.js.map +1 -0
  97. package/dist/vendor/internal/message-stream-utils.d.ts +9 -0
  98. package/dist/vendor/internal/message-stream-utils.js +30 -0
  99. package/dist/vendor/internal/message-stream-utils.js.map +1 -0
  100. package/dist/vendor/internal/node.browser.d.ts +8 -0
  101. package/dist/vendor/internal/node.browser.js +19 -0
  102. package/dist/vendor/internal/node.browser.js.map +1 -0
  103. package/dist/vendor/internal/node.d.ts +13 -0
  104. package/dist/vendor/internal/node.js +14 -0
  105. package/dist/vendor/internal/node.js.map +1 -0
  106. package/dist/vendor/internal/parse.d.ts +17 -0
  107. package/dist/vendor/internal/parse.js +62 -0
  108. package/dist/vendor/internal/parse.js.map +1 -0
  109. package/dist/vendor/internal/qs/formats.d.ts +6 -0
  110. package/dist/vendor/internal/qs/formats.js +9 -0
  111. package/dist/vendor/internal/qs/formats.js.map +1 -0
  112. package/dist/vendor/internal/qs/index.d.ts +9 -0
  113. package/dist/vendor/internal/qs/index.js +10 -0
  114. package/dist/vendor/internal/qs/index.js.map +1 -0
  115. package/dist/vendor/internal/qs/stringify.d.ts +2 -0
  116. package/dist/vendor/internal/qs/stringify.js +274 -0
  117. package/dist/vendor/internal/qs/stringify.js.map +1 -0
  118. package/dist/vendor/internal/qs/types.d.ts +56 -0
  119. package/dist/vendor/internal/qs/types.js +2 -0
  120. package/dist/vendor/internal/qs/types.js.map +1 -0
  121. package/dist/vendor/internal/qs/utils.d.ts +14 -0
  122. package/dist/vendor/internal/qs/utils.js +217 -0
  123. package/dist/vendor/internal/qs/utils.js.map +1 -0
  124. package/dist/vendor/internal/request-options.d.ts +126 -0
  125. package/dist/vendor/internal/request-options.js +27 -0
  126. package/dist/vendor/internal/request-options.js.map +1 -0
  127. package/dist/vendor/internal/request-signal.d.ts +3 -0
  128. package/dist/vendor/internal/request-signal.js +45 -0
  129. package/dist/vendor/internal/request-signal.js.map +1 -0
  130. package/dist/vendor/internal/shim-types.d.ts +16 -0
  131. package/dist/vendor/internal/shim-types.js +3 -0
  132. package/dist/vendor/internal/shim-types.js.map +1 -0
  133. package/dist/vendor/internal/shims.d.ts +25 -0
  134. package/dist/vendor/internal/shims.js +85 -0
  135. package/dist/vendor/internal/shims.js.map +1 -0
  136. package/dist/vendor/internal/stainless-helper-header.d.ts +59 -0
  137. package/dist/vendor/internal/stainless-helper-header.js +83 -0
  138. package/dist/vendor/internal/stainless-helper-header.js.map +1 -0
  139. package/dist/vendor/internal/stream-utils.d.ts +7 -0
  140. package/dist/vendor/internal/stream-utils.js +35 -0
  141. package/dist/vendor/internal/stream-utils.js.map +1 -0
  142. package/dist/vendor/internal/to-file.d.ts +44 -0
  143. package/dist/vendor/internal/to-file.js +93 -0
  144. package/dist/vendor/internal/to-file.js.map +1 -0
  145. package/dist/vendor/internal/types.d.ts +62 -0
  146. package/dist/vendor/internal/types.js +3 -0
  147. package/dist/vendor/internal/types.js.map +1 -0
  148. package/dist/vendor/internal/uploads.d.ts +41 -0
  149. package/dist/vendor/internal/uploads.js +139 -0
  150. package/dist/vendor/internal/uploads.js.map +1 -0
  151. package/dist/vendor/internal/utils/abort.d.ts +11 -0
  152. package/dist/vendor/internal/utils/abort.js +22 -0
  153. package/dist/vendor/internal/utils/abort.js.map +1 -0
  154. package/dist/vendor/internal/utils/async-queue.d.ts +30 -0
  155. package/dist/vendor/internal/utils/async-queue.js +66 -0
  156. package/dist/vendor/internal/utils/async-queue.js.map +1 -0
  157. package/dist/vendor/internal/utils/backoff.d.ts +22 -0
  158. package/dist/vendor/internal/utils/backoff.js +36 -0
  159. package/dist/vendor/internal/utils/backoff.js.map +1 -0
  160. package/dist/vendor/internal/utils/base64.d.ts +2 -0
  161. package/dist/vendor/internal/utils/base64.js +33 -0
  162. package/dist/vendor/internal/utils/base64.js.map +1 -0
  163. package/dist/vendor/internal/utils/bytes.d.ts +3 -0
  164. package/dist/vendor/internal/utils/bytes.js +26 -0
  165. package/dist/vendor/internal/utils/bytes.js.map +1 -0
  166. package/dist/vendor/internal/utils/env.d.ts +8 -0
  167. package/dist/vendor/internal/utils/env.js +18 -0
  168. package/dist/vendor/internal/utils/env.js.map +1 -0
  169. package/dist/vendor/internal/utils/log.d.ts +46 -0
  170. package/dist/vendor/internal/utils/log.js +105 -0
  171. package/dist/vendor/internal/utils/log.js.map +1 -0
  172. package/dist/vendor/internal/utils/path.d.ts +14 -0
  173. package/dist/vendor/internal/utils/path.js +74 -0
  174. package/dist/vendor/internal/utils/path.js.map +1 -0
  175. package/dist/vendor/internal/utils/promise.d.ts +10 -0
  176. package/dist/vendor/internal/utils/promise.js +15 -0
  177. package/dist/vendor/internal/utils/promise.js.map +1 -0
  178. package/dist/vendor/internal/utils/query.d.ts +1 -0
  179. package/dist/vendor/internal/utils/query.js +6 -0
  180. package/dist/vendor/internal/utils/query.js.map +1 -0
  181. package/dist/vendor/internal/utils/sleep.d.ts +9 -0
  182. package/dist/vendor/internal/utils/sleep.js +24 -0
  183. package/dist/vendor/internal/utils/sleep.js.map +1 -0
  184. package/dist/vendor/internal/utils/time.d.ts +2 -0
  185. package/dist/vendor/internal/utils/time.js +5 -0
  186. package/dist/vendor/internal/utils/time.js.map +1 -0
  187. package/dist/vendor/internal/utils/uuid.d.ts +4 -0
  188. package/dist/vendor/internal/utils/uuid.js +15 -0
  189. package/dist/vendor/internal/utils/uuid.js.map +1 -0
  190. package/dist/vendor/internal/utils/values.d.ts +24 -0
  191. package/dist/vendor/internal/utils/values.js +106 -0
  192. package/dist/vendor/internal/utils/values.js.map +1 -0
  193. package/dist/vendor/internal/utils.d.ts +7 -0
  194. package/dist/vendor/internal/utils.js +9 -0
  195. package/dist/vendor/internal/utils.js.map +1 -0
  196. package/dist/vendor/lib/BetaMessageStream.d.ts +123 -0
  197. package/dist/vendor/lib/BetaMessageStream.js +662 -0
  198. package/dist/vendor/lib/BetaMessageStream.js.map +1 -0
  199. package/dist/vendor/lib/MessageStream.d.ts +122 -0
  200. package/dist/vendor/lib/MessageStream.js +609 -0
  201. package/dist/vendor/lib/MessageStream.js.map +1 -0
  202. package/dist/vendor/lib/beta-parser.d.ts +36 -0
  203. package/dist/vendor/lib/beta-parser.js +75 -0
  204. package/dist/vendor/lib/beta-parser.js.map +1 -0
  205. package/dist/vendor/lib/credentials/credential-chain.d.ts +38 -0
  206. package/dist/vendor/lib/credentials/credential-chain.js +208 -0
  207. package/dist/vendor/lib/credentials/credential-chain.js.map +1 -0
  208. package/dist/vendor/lib/credentials/identity-token.d.ts +10 -0
  209. package/dist/vendor/lib/credentials/identity-token.js +35 -0
  210. package/dist/vendor/lib/credentials/identity-token.js.map +1 -0
  211. package/dist/vendor/lib/credentials/oidc-federation.d.ts +39 -0
  212. package/dist/vendor/lib/credentials/oidc-federation.js +79 -0
  213. package/dist/vendor/lib/credentials/oidc-federation.js.map +1 -0
  214. package/dist/vendor/lib/credentials/token-cache.d.ts +53 -0
  215. package/dist/vendor/lib/credentials/token-cache.js +110 -0
  216. package/dist/vendor/lib/credentials/token-cache.js.map +1 -0
  217. package/dist/vendor/lib/credentials/types.d.ts +95 -0
  218. package/dist/vendor/lib/credentials/types.js +226 -0
  219. package/dist/vendor/lib/credentials/types.js.map +1 -0
  220. package/dist/vendor/lib/credentials/user-oauth.d.ts +20 -0
  221. package/dist/vendor/lib/credentials/user-oauth.js +94 -0
  222. package/dist/vendor/lib/credentials/user-oauth.js.map +1 -0
  223. package/dist/vendor/lib/credentials.d.ts +3 -0
  224. package/dist/vendor/lib/credentials.js +3 -0
  225. package/dist/vendor/lib/credentials.js.map +1 -0
  226. package/dist/vendor/lib/environments/index.d.ts +3 -0
  227. package/dist/vendor/lib/environments/index.js +4 -0
  228. package/dist/vendor/lib/environments/index.js.map +1 -0
  229. package/dist/vendor/lib/environments/poller.d.ts +94 -0
  230. package/dist/vendor/lib/environments/poller.js +218 -0
  231. package/dist/vendor/lib/environments/poller.js.map +1 -0
  232. package/dist/vendor/lib/environments/worker.d.ts +226 -0
  233. package/dist/vendor/lib/environments/worker.js +572 -0
  234. package/dist/vendor/lib/environments/worker.js.map +1 -0
  235. package/dist/vendor/lib/helper-client.d.ts +30 -0
  236. package/dist/vendor/lib/helper-client.js +55 -0
  237. package/dist/vendor/lib/helper-client.js.map +1 -0
  238. package/dist/vendor/lib/middleware.d.ts +97 -0
  239. package/dist/vendor/lib/middleware.js +775 -0
  240. package/dist/vendor/lib/middleware.js.map +1 -0
  241. package/dist/vendor/lib/parser.d.ts +31 -0
  242. package/dist/vendor/lib/parser.js +62 -0
  243. package/dist/vendor/lib/parser.js.map +1 -0
  244. package/dist/vendor/lib/sessions/accumulate.d.ts +22 -0
  245. package/dist/vendor/lib/sessions/accumulate.js +42 -0
  246. package/dist/vendor/lib/sessions/accumulate.js.map +1 -0
  247. package/dist/vendor/lib/standard-schema.d.ts +130 -0
  248. package/dist/vendor/lib/standard-schema.js +41 -0
  249. package/dist/vendor/lib/standard-schema.js.map +1 -0
  250. package/dist/vendor/lib/tools/BetaRunnableTool.d.ts +48 -0
  251. package/dist/vendor/lib/tools/BetaRunnableTool.js +26 -0
  252. package/dist/vendor/lib/tools/BetaRunnableTool.js.map +1 -0
  253. package/dist/vendor/lib/tools/BetaToolRunner.d.ts +160 -0
  254. package/dist/vendor/lib/tools/BetaToolRunner.js +497 -0
  255. package/dist/vendor/lib/tools/BetaToolRunner.js.map +1 -0
  256. package/dist/vendor/lib/tools/CompactionControl.d.ts +29 -0
  257. package/dist/vendor/lib/tools/CompactionControl.js +25 -0
  258. package/dist/vendor/lib/tools/CompactionControl.js.map +1 -0
  259. package/dist/vendor/lib/tools/SessionToolRunner.d.ts +178 -0
  260. package/dist/vendor/lib/tools/SessionToolRunner.js +737 -0
  261. package/dist/vendor/lib/tools/SessionToolRunner.js.map +1 -0
  262. package/dist/vendor/lib/tools/ToolError.d.ts +32 -0
  263. package/dist/vendor/lib/tools/ToolError.js +43 -0
  264. package/dist/vendor/lib/tools/ToolError.js.map +1 -0
  265. package/dist/vendor/lib/transform-json-schema.d.ts +2 -0
  266. package/dist/vendor/lib/transform-json-schema.js +111 -0
  267. package/dist/vendor/lib/transform-json-schema.js.map +1 -0
  268. package/dist/vendor/pagination.d.ts +2 -0
  269. package/dist/vendor/pagination.js +3 -0
  270. package/dist/vendor/pagination.js.map +1 -0
  271. package/dist/vendor/resource.d.ts +2 -0
  272. package/dist/vendor/resource.js +3 -0
  273. package/dist/vendor/resource.js.map +1 -0
  274. package/dist/vendor/resources/beta/agents/agents.d.ts +1128 -0
  275. package/dist/vendor/resources/beta/agents/agents.js +123 -0
  276. package/dist/vendor/resources/beta/agents/agents.js.map +1 -0
  277. package/dist/vendor/resources/beta/agents/index.d.ts +2 -0
  278. package/dist/vendor/resources/beta/agents/index.js +4 -0
  279. package/dist/vendor/resources/beta/agents/index.js.map +1 -0
  280. package/dist/vendor/resources/beta/agents/versions.d.ts +32 -0
  281. package/dist/vendor/resources/beta/agents/versions.js +32 -0
  282. package/dist/vendor/resources/beta/agents/versions.js.map +1 -0
  283. package/dist/vendor/resources/beta/agents.d.ts +1 -0
  284. package/dist/vendor/resources/beta/agents.js +3 -0
  285. package/dist/vendor/resources/beta/agents.js.map +1 -0
  286. package/dist/vendor/resources/beta/beta.d.ts +131 -0
  287. package/dist/vendor/resources/beta/beta.js +69 -0
  288. package/dist/vendor/resources/beta/beta.js.map +1 -0
  289. package/dist/vendor/resources/beta/deployment-runs.d.ts +305 -0
  290. package/dist/vendor/resources/beta/deployment-runs.js +51 -0
  291. package/dist/vendor/resources/beta/deployment-runs.js.map +1 -0
  292. package/dist/vendor/resources/beta/deployments.d.ts +698 -0
  293. package/dist/vendor/resources/beta/deployments.js +192 -0
  294. package/dist/vendor/resources/beta/deployments.js.map +1 -0
  295. package/dist/vendor/resources/beta/dreams.d.ts +335 -0
  296. package/dist/vendor/resources/beta/dreams.js +112 -0
  297. package/dist/vendor/resources/beta/dreams.js.map +1 -0
  298. package/dist/vendor/resources/beta/environments/environments.d.ts +432 -0
  299. package/dist/vendor/resources/beta/environments/environments.js +142 -0
  300. package/dist/vendor/resources/beta/environments/environments.js.map +1 -0
  301. package/dist/vendor/resources/beta/environments/index.d.ts +2 -0
  302. package/dist/vendor/resources/beta/environments/index.js +4 -0
  303. package/dist/vendor/resources/beta/environments/index.js.map +1 -0
  304. package/dist/vendor/resources/beta/environments/work.d.ts +500 -0
  305. package/dist/vendor/resources/beta/environments/work.js +251 -0
  306. package/dist/vendor/resources/beta/environments/work.js.map +1 -0
  307. package/dist/vendor/resources/beta/environments.d.ts +1 -0
  308. package/dist/vendor/resources/beta/environments.js +3 -0
  309. package/dist/vendor/resources/beta/environments.js.map +1 -0
  310. package/dist/vendor/resources/beta/files.d.ts +190 -0
  311. package/dist/vendor/resources/beta/files.js +120 -0
  312. package/dist/vendor/resources/beta/files.js.map +1 -0
  313. package/dist/vendor/resources/beta/index.d.ts +17 -0
  314. package/dist/vendor/resources/beta/index.js +19 -0
  315. package/dist/vendor/resources/beta/index.js.map +1 -0
  316. package/dist/vendor/resources/beta/memory-stores/index.d.ts +3 -0
  317. package/dist/vendor/resources/beta/memory-stores/index.js +5 -0
  318. package/dist/vendor/resources/beta/memory-stores/index.js.map +1 -0
  319. package/dist/vendor/resources/beta/memory-stores/memories.d.ts +346 -0
  320. package/dist/vendor/resources/beta/memory-stores/memories.js +126 -0
  321. package/dist/vendor/resources/beta/memory-stores/memories.js.map +1 -0
  322. package/dist/vendor/resources/beta/memory-stores/memory-stores.d.ts +230 -0
  323. package/dist/vendor/resources/beta/memory-stores/memory-stores.js +137 -0
  324. package/dist/vendor/resources/beta/memory-stores/memory-stores.js.map +1 -0
  325. package/dist/vendor/resources/beta/memory-stores/memory-versions.d.ts +252 -0
  326. package/dist/vendor/resources/beta/memory-stores/memory-versions.js +77 -0
  327. package/dist/vendor/resources/beta/memory-stores/memory-versions.js.map +1 -0
  328. package/dist/vendor/resources/beta/memory-stores.d.ts +1 -0
  329. package/dist/vendor/resources/beta/memory-stores.js +3 -0
  330. package/dist/vendor/resources/beta/memory-stores.js.map +1 -0
  331. package/dist/vendor/resources/beta/messages/batches.d.ts +685 -0
  332. package/dist/vendor/resources/beta/messages/batches.js +203 -0
  333. package/dist/vendor/resources/beta/messages/batches.js.map +1 -0
  334. package/dist/vendor/resources/beta/messages/index.d.ts +3 -0
  335. package/dist/vendor/resources/beta/messages/index.js +5 -0
  336. package/dist/vendor/resources/beta/messages/index.js.map +1 -0
  337. package/dist/vendor/resources/beta/messages/messages.d.ts +5376 -0
  338. package/dist/vendor/resources/beta/messages/messages.js +158 -0
  339. package/dist/vendor/resources/beta/messages/messages.js.map +1 -0
  340. package/dist/vendor/resources/beta/messages.d.ts +1 -0
  341. package/dist/vendor/resources/beta/messages.js +3 -0
  342. package/dist/vendor/resources/beta/messages.js.map +1 -0
  343. package/dist/vendor/resources/beta/models.d.ts +217 -0
  344. package/dist/vendor/resources/beta/models.js +56 -0
  345. package/dist/vendor/resources/beta/models.js.map +1 -0
  346. package/dist/vendor/resources/beta/organization/api-keys.d.ts +176 -0
  347. package/dist/vendor/resources/beta/organization/api-keys.js +52 -0
  348. package/dist/vendor/resources/beta/organization/api-keys.js.map +1 -0
  349. package/dist/vendor/resources/beta/organization/compliance-settings.d.ts +73 -0
  350. package/dist/vendor/resources/beta/organization/compliance-settings.js +48 -0
  351. package/dist/vendor/resources/beta/organization/compliance-settings.js.map +1 -0
  352. package/dist/vendor/resources/beta/organization/external-keys.d.ts +271 -0
  353. package/dist/vendor/resources/beta/organization/external-keys.js +115 -0
  354. package/dist/vendor/resources/beta/organization/external-keys.js.map +1 -0
  355. package/dist/vendor/resources/beta/organization/federation/federation.d.ts +13 -0
  356. package/dist/vendor/resources/beta/organization/federation/federation.js +13 -0
  357. package/dist/vendor/resources/beta/organization/federation/federation.js.map +1 -0
  358. package/dist/vendor/resources/beta/organization/federation/index.d.ts +3 -0
  359. package/dist/vendor/resources/beta/organization/federation/index.js +5 -0
  360. package/dist/vendor/resources/beta/organization/federation/index.js.map +1 -0
  361. package/dist/vendor/resources/beta/organization/federation/issuers.d.ts +352 -0
  362. package/dist/vendor/resources/beta/organization/federation/issuers.js +165 -0
  363. package/dist/vendor/resources/beta/organization/federation/issuers.js.map +1 -0
  364. package/dist/vendor/resources/beta/organization/federation/rules/index.d.ts +2 -0
  365. package/dist/vendor/resources/beta/organization/federation/rules/index.js +4 -0
  366. package/dist/vendor/resources/beta/organization/federation/rules/index.js.map +1 -0
  367. package/dist/vendor/resources/beta/organization/federation/rules/rules.d.ts +467 -0
  368. package/dist/vendor/resources/beta/organization/federation/rules/rules.js +190 -0
  369. package/dist/vendor/resources/beta/organization/federation/rules/rules.js.map +1 -0
  370. package/dist/vendor/resources/beta/organization/federation/rules/workspaces.d.ts +123 -0
  371. package/dist/vendor/resources/beta/organization/federation/rules/workspaces.js +110 -0
  372. package/dist/vendor/resources/beta/organization/federation/rules/workspaces.js.map +1 -0
  373. package/dist/vendor/resources/beta/organization/federation/rules.d.ts +1 -0
  374. package/dist/vendor/resources/beta/organization/federation/rules.js +3 -0
  375. package/dist/vendor/resources/beta/organization/federation/rules.js.map +1 -0
  376. package/dist/vendor/resources/beta/organization/federation.d.ts +1 -0
  377. package/dist/vendor/resources/beta/organization/federation.js +3 -0
  378. package/dist/vendor/resources/beta/organization/federation.js.map +1 -0
  379. package/dist/vendor/resources/beta/organization/index.d.ts +10 -0
  380. package/dist/vendor/resources/beta/organization/index.js +12 -0
  381. package/dist/vendor/resources/beta/organization/index.js.map +1 -0
  382. package/dist/vendor/resources/beta/organization/invites.d.ts +161 -0
  383. package/dist/vendor/resources/beta/organization/invites.js +72 -0
  384. package/dist/vendor/resources/beta/organization/invites.js.map +1 -0
  385. package/dist/vendor/resources/beta/organization/organization.d.ts +72 -0
  386. package/dist/vendor/resources/beta/organization/organization.js +54 -0
  387. package/dist/vendor/resources/beta/organization/organization.js.map +1 -0
  388. package/dist/vendor/resources/beta/organization/rate-limits.d.ts +76 -0
  389. package/dist/vendor/resources/beta/organization/rate-limits.js +27 -0
  390. package/dist/vendor/resources/beta/organization/rate-limits.js.map +1 -0
  391. package/dist/vendor/resources/beta/organization/service-accounts/index.d.ts +2 -0
  392. package/dist/vendor/resources/beta/organization/service-accounts/index.js +4 -0
  393. package/dist/vendor/resources/beta/organization/service-accounts/index.js.map +1 -0
  394. package/dist/vendor/resources/beta/organization/service-accounts/service-accounts.d.ts +257 -0
  395. package/dist/vendor/resources/beta/organization/service-accounts/service-accounts.js +166 -0
  396. package/dist/vendor/resources/beta/organization/service-accounts/service-accounts.js.map +1 -0
  397. package/dist/vendor/resources/beta/organization/service-accounts/workspaces.d.ts +140 -0
  398. package/dist/vendor/resources/beta/organization/service-accounts/workspaces.js +121 -0
  399. package/dist/vendor/resources/beta/organization/service-accounts/workspaces.js.map +1 -0
  400. package/dist/vendor/resources/beta/organization/service-accounts.d.ts +1 -0
  401. package/dist/vendor/resources/beta/organization/service-accounts.js +3 -0
  402. package/dist/vendor/resources/beta/organization/service-accounts.js.map +1 -0
  403. package/dist/vendor/resources/beta/organization/users.d.ts +123 -0
  404. package/dist/vendor/resources/beta/organization/users.js +63 -0
  405. package/dist/vendor/resources/beta/organization/users.js.map +1 -0
  406. package/dist/vendor/resources/beta/organization/workspaces/index.d.ts +4 -0
  407. package/dist/vendor/resources/beta/organization/workspaces/index.js +6 -0
  408. package/dist/vendor/resources/beta/organization/workspaces/index.js.map +1 -0
  409. package/dist/vendor/resources/beta/organization/workspaces/members.d.ts +134 -0
  410. package/dist/vendor/resources/beta/organization/workspaces/members.js +98 -0
  411. package/dist/vendor/resources/beta/organization/workspaces/members.js.map +1 -0
  412. package/dist/vendor/resources/beta/organization/workspaces/rate-limits.d.ts +82 -0
  413. package/dist/vendor/resources/beta/organization/workspaces/rate-limits.js +30 -0
  414. package/dist/vendor/resources/beta/organization/workspaces/rate-limits.js.map +1 -0
  415. package/dist/vendor/resources/beta/organization/workspaces/service-accounts.d.ts +209 -0
  416. package/dist/vendor/resources/beta/organization/workspaces/service-accounts.js +185 -0
  417. package/dist/vendor/resources/beta/organization/workspaces/service-accounts.js.map +1 -0
  418. package/dist/vendor/resources/beta/organization/workspaces/workspaces.d.ts +302 -0
  419. package/dist/vendor/resources/beta/organization/workspaces/workspaces.js +104 -0
  420. package/dist/vendor/resources/beta/organization/workspaces/workspaces.js.map +1 -0
  421. package/dist/vendor/resources/beta/organization/workspaces.d.ts +1 -0
  422. package/dist/vendor/resources/beta/organization/workspaces.js +3 -0
  423. package/dist/vendor/resources/beta/organization/workspaces.js.map +1 -0
  424. package/dist/vendor/resources/beta/organization.d.ts +1 -0
  425. package/dist/vendor/resources/beta/organization.js +3 -0
  426. package/dist/vendor/resources/beta/organization.js.map +1 -0
  427. package/dist/vendor/resources/beta/sessions/events.d.ts +1513 -0
  428. package/dist/vendor/resources/beta/sessions/events.js +115 -0
  429. package/dist/vendor/resources/beta/sessions/events.js.map +1 -0
  430. package/dist/vendor/resources/beta/sessions/index.d.ts +4 -0
  431. package/dist/vendor/resources/beta/sessions/index.js +6 -0
  432. package/dist/vendor/resources/beta/sessions/index.js.map +1 -0
  433. package/dist/vendor/resources/beta/sessions/resources.d.ts +227 -0
  434. package/dist/vendor/resources/beta/sessions/resources.js +128 -0
  435. package/dist/vendor/resources/beta/sessions/resources.js.map +1 -0
  436. package/dist/vendor/resources/beta/sessions/sessions.d.ts +866 -0
  437. package/dist/vendor/resources/beta/sessions/sessions.js +150 -0
  438. package/dist/vendor/resources/beta/sessions/sessions.js.map +1 -0
  439. package/dist/vendor/resources/beta/sessions/threads/events.d.ts +77 -0
  440. package/dist/vendor/resources/beta/sessions/threads/events.js +57 -0
  441. package/dist/vendor/resources/beta/sessions/threads/events.js.map +1 -0
  442. package/dist/vendor/resources/beta/sessions/threads/index.d.ts +2 -0
  443. package/dist/vendor/resources/beta/sessions/threads/index.js +4 -0
  444. package/dist/vendor/resources/beta/sessions/threads/index.js.map +1 -0
  445. package/dist/vendor/resources/beta/sessions/threads/threads.d.ts +195 -0
  446. package/dist/vendor/resources/beta/sessions/threads/threads.js +80 -0
  447. package/dist/vendor/resources/beta/sessions/threads/threads.js.map +1 -0
  448. package/dist/vendor/resources/beta/sessions/threads.d.ts +1 -0
  449. package/dist/vendor/resources/beta/sessions/threads.js +3 -0
  450. package/dist/vendor/resources/beta/sessions/threads.js.map +1 -0
  451. package/dist/vendor/resources/beta/sessions.d.ts +1 -0
  452. package/dist/vendor/resources/beta/sessions.js +3 -0
  453. package/dist/vendor/resources/beta/sessions.js.map +1 -0
  454. package/dist/vendor/resources/beta/skills/index.d.ts +2 -0
  455. package/dist/vendor/resources/beta/skills/index.js +4 -0
  456. package/dist/vendor/resources/beta/skills/index.js.map +1 -0
  457. package/dist/vendor/resources/beta/skills/skills.d.ts +178 -0
  458. package/dist/vendor/resources/beta/skills/skills.js +96 -0
  459. package/dist/vendor/resources/beta/skills/skills.js.map +1 -0
  460. package/dist/vendor/resources/beta/skills/versions.d.ts +181 -0
  461. package/dist/vendor/resources/beta/skills/versions.js +125 -0
  462. package/dist/vendor/resources/beta/skills/versions.js.map +1 -0
  463. package/dist/vendor/resources/beta/skills.d.ts +1 -0
  464. package/dist/vendor/resources/beta/skills.js +3 -0
  465. package/dist/vendor/resources/beta/skills.js.map +1 -0
  466. package/dist/vendor/resources/beta/tunnels/certificates.d.ts +162 -0
  467. package/dist/vendor/resources/beta/tunnels/certificates.js +125 -0
  468. package/dist/vendor/resources/beta/tunnels/certificates.js.map +1 -0
  469. package/dist/vendor/resources/beta/tunnels/index.d.ts +2 -0
  470. package/dist/vendor/resources/beta/tunnels/index.js +4 -0
  471. package/dist/vendor/resources/beta/tunnels/index.js.map +1 -0
  472. package/dist/vendor/resources/beta/tunnels/tunnels.d.ts +211 -0
  473. package/dist/vendor/resources/beta/tunnels/tunnels.js +173 -0
  474. package/dist/vendor/resources/beta/tunnels/tunnels.js.map +1 -0
  475. package/dist/vendor/resources/beta/tunnels.d.ts +1 -0
  476. package/dist/vendor/resources/beta/tunnels.js +3 -0
  477. package/dist/vendor/resources/beta/tunnels.js.map +1 -0
  478. package/dist/vendor/resources/beta/user-profiles.d.ts +244 -0
  479. package/dist/vendor/resources/beta/user-profiles.js +114 -0
  480. package/dist/vendor/resources/beta/user-profiles.js.map +1 -0
  481. package/dist/vendor/resources/beta/vaults/credentials.d.ts +715 -0
  482. package/dist/vendor/resources/beta/vaults/credentials.js +173 -0
  483. package/dist/vendor/resources/beta/vaults/credentials.js.map +1 -0
  484. package/dist/vendor/resources/beta/vaults/index.d.ts +2 -0
  485. package/dist/vendor/resources/beta/vaults/index.js +4 -0
  486. package/dist/vendor/resources/beta/vaults/index.js.map +1 -0
  487. package/dist/vendor/resources/beta/vaults/vaults.d.ts +191 -0
  488. package/dist/vendor/resources/beta/vaults/vaults.js +141 -0
  489. package/dist/vendor/resources/beta/vaults/vaults.js.map +1 -0
  490. package/dist/vendor/resources/beta/vaults.d.ts +1 -0
  491. package/dist/vendor/resources/beta/vaults.js +3 -0
  492. package/dist/vendor/resources/beta/vaults.js.map +1 -0
  493. package/dist/vendor/resources/beta/webhooks.d.ts +464 -0
  494. package/dist/vendor/resources/beta/webhooks.js +29 -0
  495. package/dist/vendor/resources/beta/webhooks.js.map +1 -0
  496. package/dist/vendor/resources/beta.d.ts +1 -0
  497. package/dist/vendor/resources/beta.js +3 -0
  498. package/dist/vendor/resources/beta.js.map +1 -0
  499. package/dist/vendor/resources/completions.d.ts +172 -0
  500. package/dist/vendor/resources/completions.js +19 -0
  501. package/dist/vendor/resources/completions.js.map +1 -0
  502. package/dist/vendor/resources/files.d.ts +104 -0
  503. package/dist/vendor/resources/files.js +48 -0
  504. package/dist/vendor/resources/files.js.map +1 -0
  505. package/dist/vendor/resources/index.d.ts +7 -0
  506. package/dist/vendor/resources/index.js +9 -0
  507. package/dist/vendor/resources/index.js.map +1 -0
  508. package/dist/vendor/resources/messages/batches.d.ts +312 -0
  509. package/dist/vendor/resources/messages/batches.js +157 -0
  510. package/dist/vendor/resources/messages/batches.js.map +1 -0
  511. package/dist/vendor/resources/messages/index.d.ts +2 -0
  512. package/dist/vendor/resources/messages/index.js +4 -0
  513. package/dist/vendor/resources/messages/index.js.map +1 -0
  514. package/dist/vendor/resources/messages/messages.d.ts +3886 -0
  515. package/dist/vendor/resources/messages/messages.js +130 -0
  516. package/dist/vendor/resources/messages/messages.js.map +1 -0
  517. package/dist/vendor/resources/messages.d.ts +1 -0
  518. package/dist/vendor/resources/messages.js +3 -0
  519. package/dist/vendor/resources/messages.js.map +1 -0
  520. package/dist/vendor/resources/models.d.ts +196 -0
  521. package/dist/vendor/resources/models.js +41 -0
  522. package/dist/vendor/resources/models.js.map +1 -0
  523. package/dist/vendor/resources/shared.d.ts +43 -0
  524. package/dist/vendor/resources/shared.js +3 -0
  525. package/dist/vendor/resources/shared.js.map +1 -0
  526. package/dist/vendor/resources/skills/index.d.ts +2 -0
  527. package/dist/vendor/resources/skills/index.js +4 -0
  528. package/dist/vendor/resources/skills/index.js.map +1 -0
  529. package/dist/vendor/resources/skills/skills.d.ts +128 -0
  530. package/dist/vendor/resources/skills/skills.js +36 -0
  531. package/dist/vendor/resources/skills/skills.js.map +1 -0
  532. package/dist/vendor/resources/skills/versions.d.ts +103 -0
  533. package/dist/vendor/resources/skills/versions.js +37 -0
  534. package/dist/vendor/resources/skills/versions.js.map +1 -0
  535. package/dist/vendor/resources/skills.d.ts +1 -0
  536. package/dist/vendor/resources/skills.js +3 -0
  537. package/dist/vendor/resources/skills.js.map +1 -0
  538. package/dist/vendor/resources/top-level.d.ts +1 -0
  539. package/dist/vendor/resources/top-level.js +3 -0
  540. package/dist/vendor/resources/top-level.js.map +1 -0
  541. package/dist/vendor/resources.d.ts +1 -0
  542. package/dist/vendor/resources.js +2 -0
  543. package/dist/vendor/resources.js.map +1 -0
  544. package/dist/vendor/streaming.d.ts +2 -0
  545. package/dist/vendor/streaming.js +3 -0
  546. package/dist/vendor/streaming.js.map +1 -0
  547. package/dist/vendor/tools/agent-toolset/fs-util.d.ts +74 -0
  548. package/dist/vendor/tools/agent-toolset/fs-util.js +184 -0
  549. package/dist/vendor/tools/agent-toolset/fs-util.js.map +1 -0
  550. package/dist/vendor/tools/agent-toolset/memories.d.ts +172 -0
  551. package/dist/vendor/tools/agent-toolset/memories.js +910 -0
  552. package/dist/vendor/tools/agent-toolset/memories.js.map +1 -0
  553. package/dist/vendor/tools/agent-toolset/node.browser.d.ts +80 -0
  554. package/dist/vendor/tools/agent-toolset/node.browser.js +129 -0
  555. package/dist/vendor/tools/agent-toolset/node.browser.js.map +1 -0
  556. package/dist/vendor/tools/agent-toolset/node.d.ts +191 -0
  557. package/dist/vendor/tools/agent-toolset/node.js +886 -0
  558. package/dist/vendor/tools/agent-toolset/node.js.map +1 -0
  559. package/dist/vendor/tools/agent-toolset/skills.d.ts +73 -0
  560. package/dist/vendor/tools/agent-toolset/skills.js +320 -0
  561. package/dist/vendor/tools/agent-toolset/skills.js.map +1 -0
  562. package/dist/vendor/tools/agent-toolset/sync-interval.d.ts +18 -0
  563. package/dist/vendor/tools/agent-toolset/sync-interval.js +25 -0
  564. package/dist/vendor/tools/agent-toolset/sync-interval.js.map +1 -0
  565. package/dist/vendor/tools/memory/node.browser.d.ts +26 -0
  566. package/dist/vendor/tools/memory/node.browser.js +44 -0
  567. package/dist/vendor/tools/memory/node.browser.js.map +1 -0
  568. package/dist/vendor/tools/memory/node.d.ts +17 -0
  569. package/dist/vendor/tools/memory/node.js +327 -0
  570. package/dist/vendor/tools/memory/node.js.map +1 -0
  571. package/dist/vendor/uploads.d.ts +2 -0
  572. package/dist/vendor/uploads.js +3 -0
  573. package/dist/vendor/uploads.js.map +1 -0
  574. package/dist/vendor/version.d.ts +1 -0
  575. package/dist/vendor/version.js +2 -0
  576. package/dist/vendor/version.js.map +1 -0
  577. package/package.json +7 -14
  578. package/sdk.cjs +2 -2
  579. package/sdk.cjs.map +2 -2
  580. package/sdk.d.ts +1 -1
  581. package/sdk.mjs +2 -2
  582. package/sdk.mjs.map +3 -3
@@ -0,0 +1,94 @@
1
+ import type { PukuAI } from '../../client';
2
+ import type { BetaSelfHostedWork } from '../../resources/beta/environments/work';
3
+ import type { BetaToolRunnerRequestOptions } from '../tools/BetaToolRunner';
4
+ export { is4xx, isFatal4xx, isStatus, jitter } from '../../internal/utils/backoff';
5
+ export declare const POLL_BLOCK_MS = 999;
6
+ export interface WorkPollerOptions {
7
+ client: PukuAI;
8
+ environmentId: string;
9
+ /**
10
+ * The environment key — the single credential for the self-hosted runner. It
11
+ * authenticates the work-poll calls here and every per-session call the
12
+ * consumer makes afterwards.
13
+ */
14
+ environmentKey: string;
15
+ workerId?: string;
16
+ /** External abort signal. Aborting it ends the iteration. */
17
+ signal?: AbortSignal;
18
+ /**
19
+ * Whether the poller posts `work.stop` itself after the consumer's loop body
20
+ * returns. Defaults to `true`. Set `false` when the consumer already owns the
21
+ * stop (e.g. {@link EnvironmentWorker} force-stops every item) so the work
22
+ * item is not stopped twice.
23
+ *
24
+ * Orthogonal to {@link WorkPollerOptions.drain}: `autoStop` is a per-item
25
+ * lifecycle flag (does the poller `work.stop` each item), `drain` controls
26
+ * loop termination (does the poller return when the queue is empty). They are
27
+ * not two names for the same thing — `EnvironmentWorker.run` uses
28
+ * `autoStop: false` with `drain` defaulting `false`.
29
+ */
30
+ autoStop?: boolean;
31
+ /**
32
+ * When `true`, the poller returns (ends iteration) as soon as the work queue
33
+ * is empty instead of long-polling forever. Defaults to `false` (long-poll
34
+ * until aborted). Pair with `blockMs: null` for a single non-blocking pass
35
+ * over whatever is already queued.
36
+ */
37
+ drain?: boolean;
38
+ /**
39
+ * Block timeout in milliseconds passed through to `work.poll` — the server
40
+ * long-polls up to this long for an item before returning empty. Defaults to
41
+ * {@link POLL_BLOCK_MS} (the API cap, 999). Pass `null` to omit it entirely
42
+ * for a non-blocking single poll (useful with {@link WorkPollerOptions.drain}).
43
+ */
44
+ blockMs?: number | null;
45
+ /**
46
+ * Reclaim unacknowledged work items older than this many milliseconds, passed
47
+ * through to `work.poll`'s `reclaim_older_than_ms`. Defaults to `undefined`
48
+ * (omitted — the server applies its own default).
49
+ */
50
+ reclaimOlderThanMs?: number | null;
51
+ /**
52
+ * Extra per-request options merged into the poll/ack/stop calls. Custom
53
+ * `headers` (e.g. a proxy's auth/routing headers) are layered on top of the
54
+ * environment-key auth + helper telemetry headers; the poller owns the abort
55
+ * signal, so a `signal` here is ignored.
56
+ */
57
+ requestOptions?: BetaToolRunnerRequestOptions;
58
+ }
59
+ /**
60
+ * Async-iterable that long-polls a self-hosted environment for work, ack's
61
+ * each item, yields the {@link BetaSelfHostedWork} item, and posts `stop` after
62
+ * the consumer's loop body returns (or when the consumer `break`s).
63
+ *
64
+ * A yielded item may carry a per-item `secret` payload (populated only by the
65
+ * poll response); the poller passes it through untouched — consumers such as
66
+ * {@link EnvironmentWorker} extract the sessions token it carries and prefer
67
+ * that over the environment key for the item's downstream calls. Treat it as
68
+ * opaque and never log it.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * for await (const work of client.beta.environments.work.poller({
73
+ * environmentId,
74
+ * environmentKey,
75
+ * })) {
76
+ * // ...service the work...
77
+ * }
78
+ * ```
79
+ */
80
+ export declare class WorkPoller implements AsyncIterable<BetaSelfHostedWork> {
81
+ #private;
82
+ readonly client: PukuAI;
83
+ readonly environmentId: string;
84
+ readonly environmentKey: string;
85
+ readonly workerId: string;
86
+ constructor(opts: WorkPollerOptions);
87
+ /** Read-only view of this iterator's abort signal. */
88
+ get signal(): AbortSignal;
89
+ /** Abort the iterator. The current `for await` will exit cleanly. */
90
+ abort(): void;
91
+ [Symbol.asyncIterator](): AsyncIterator<BetaSelfHostedWork>;
92
+ }
93
+ /** Exponential poll backoff: 1s, 2s, 4s … clamped to a 60s cap. */
94
+ export declare function backoff(attempt: number): number;
@@ -0,0 +1,218 @@
1
+ import { PukuError } from '../../core/error.js';
2
+ import { loggerFor } from '../../internal/utils/log.js';
3
+ import { sleep } from '../../internal/utils/sleep.js';
4
+ import { uuid4 } from '../../internal/utils/uuid.js';
5
+ import { linkAbort } from '../../internal/utils/abort.js';
6
+ import { buildHeaders } from '../../internal/headers.js';
7
+ import { applyJitter, backoff as expBackoff, isFatal4xx, isStatus, jitter, } from '../../internal/utils/backoff.js';
8
+ import { copyClientForHelper } from '../helper-client.js';
9
+ export { is4xx, isFatal4xx, isStatus, jitter } from '../../internal/utils/backoff.js';
10
+ // API caps block_ms at 999; rely on client-side jitter between empty polls.
11
+ export const POLL_BLOCK_MS = 999;
12
+ const POLL_BACKOFF_BASE_MS = 1000;
13
+ const POLL_BACKOFF_CAP_MS = 60_000;
14
+ const IDLE_REPORT_INTERVAL_MS = 300_000;
15
+ /**
16
+ * Async-iterable that long-polls a self-hosted environment for work, ack's
17
+ * each item, yields the {@link BetaSelfHostedWork} item, and posts `stop` after
18
+ * the consumer's loop body returns (or when the consumer `break`s).
19
+ *
20
+ * A yielded item may carry a per-item `secret` payload (populated only by the
21
+ * poll response); the poller passes it through untouched — consumers such as
22
+ * {@link EnvironmentWorker} extract the sessions token it carries and prefer
23
+ * that over the environment key for the item's downstream calls. Treat it as
24
+ * opaque and never log it.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * for await (const work of client.beta.environments.work.poller({
29
+ * environmentId,
30
+ * environmentKey,
31
+ * })) {
32
+ * // ...service the work...
33
+ * }
34
+ * ```
35
+ */
36
+ export class WorkPoller {
37
+ client;
38
+ environmentId;
39
+ environmentKey;
40
+ workerId;
41
+ // Sub-client scoped to the environment key. Every poll / ack / stop call
42
+ // is routed through this so the parent's `X-Api-Key` never lands on the
43
+ // wire alongside the bearer credential. The helper-telemetry header is
44
+ // attached as a default on this client; per-call plumbing is unnecessary.
45
+ #runnerClient;
46
+ #consumed = false;
47
+ #controller;
48
+ #detachExternal;
49
+ #autoStop;
50
+ #drain;
51
+ #blockMs;
52
+ #reclaimOlderThanMs;
53
+ #requestOpts;
54
+ constructor(opts) {
55
+ this.client = opts.client;
56
+ this.environmentId = opts.environmentId;
57
+ this.environmentKey = opts.environmentKey;
58
+ this.workerId = opts.workerId ?? defaultWorkerId();
59
+ this.#runnerClient = copyClientForHelper(opts.client, {
60
+ authToken: opts.environmentKey,
61
+ helper: 'environments-work-poller',
62
+ });
63
+ this.#autoStop = opts.autoStop ?? true;
64
+ this.#drain = opts.drain ?? false;
65
+ // `undefined` => default to the API cap; an explicit `null` => omit
66
+ // `block_ms` for a non-blocking poll.
67
+ this.#blockMs = opts.blockMs === undefined ? POLL_BLOCK_MS : opts.blockMs;
68
+ this.#reclaimOlderThanMs = opts.reclaimOlderThanMs ?? null;
69
+ this.#requestOpts = opts.requestOptions;
70
+ this.#controller = new AbortController();
71
+ this.#detachExternal = linkAbort(opts.signal, this.#controller);
72
+ }
73
+ /** Read-only view of this iterator's abort signal. */
74
+ get signal() {
75
+ return this.#controller.signal;
76
+ }
77
+ /** Abort the iterator. The current `for await` will exit cleanly. */
78
+ abort() {
79
+ this.#controller.abort();
80
+ }
81
+ async *[Symbol.asyncIterator]() {
82
+ if (this.#consumed) {
83
+ throw new PukuError('Cannot iterate over a consumed WorkPoller');
84
+ }
85
+ this.#consumed = true;
86
+ const log = loggerFor(this.client);
87
+ log.info('poller starting', {
88
+ component: 'work-poller',
89
+ environment_id: this.environmentId,
90
+ });
91
+ const idle = new IdleLog(log, this.environmentId);
92
+ try {
93
+ let attempt = 0;
94
+ while (!this.#controller.signal.aborted) {
95
+ let work;
96
+ try {
97
+ work = await this.#runnerClient.beta.environments.work.poll(this.environmentId, {
98
+ 'PukuAI-Worker-ID': this.workerId,
99
+ ...(this.#blockMs !== null ? { block_ms: this.#blockMs } : {}),
100
+ ...(this.#reclaimOlderThanMs !== null ?
101
+ { reclaim_older_than_ms: this.#reclaimOlderThanMs }
102
+ : {}),
103
+ }, { headers: buildHeaders([this.#requestOpts?.headers]), signal: this.#controller.signal });
104
+ }
105
+ catch (e) {
106
+ if (this.#controller.signal.aborted)
107
+ return;
108
+ // A bad environment key / missing environment never recovers — surface
109
+ // it instead of spinning forever at the backoff cap.
110
+ if (isFatal4xx(e)) {
111
+ log.error('poll failed permanently, stopping poller', { error: String(e) });
112
+ throw e;
113
+ }
114
+ // Jittered exponential backoff so a fleet of pollers doesn't retry in
115
+ // lockstep after a shared outage.
116
+ const wait = applyJitter(backoff(attempt));
117
+ log.warn('poll failed, backing off', { error: String(e), backoff_ms: wait });
118
+ attempt++;
119
+ await sleep(wait, this.#controller.signal);
120
+ continue;
121
+ }
122
+ attempt = 0;
123
+ if (work == null) {
124
+ // Queue empty: either return now (drain) or wait and poll again.
125
+ if (this.#drain)
126
+ return;
127
+ idle.onEmptyPoll();
128
+ await sleep(jitter(1000, 3000), this.#controller.signal);
129
+ continue;
130
+ }
131
+ idle.onClaim();
132
+ log.info('claimed work', {
133
+ component: 'work-poller',
134
+ environment_id: this.environmentId,
135
+ work_id: work.id,
136
+ work_type: work.data.type,
137
+ });
138
+ try {
139
+ await this.#runnerClient.beta.environments.work.ack(work.id, { environment_id: work.environment_id }, { headers: buildHeaders([this.#requestOpts?.headers]), signal: this.#controller.signal });
140
+ }
141
+ catch (e) {
142
+ log.error('ack failed', { work_id: work.id, error: String(e) });
143
+ continue;
144
+ }
145
+ try {
146
+ yield work;
147
+ }
148
+ finally {
149
+ // Post-handler stop. Runs whether the consumer body returned
150
+ // normally, threw, or `break`d out of the loop — unless the consumer
151
+ // owns the stop itself (`autoStop: false`).
152
+ if (this.#autoStop) {
153
+ try {
154
+ await this.#runnerClient.beta.environments.work.stop(work.id, { environment_id: work.environment_id }, { headers: buildHeaders([this.#requestOpts?.headers]) });
155
+ }
156
+ catch (e) {
157
+ if (!isStatus(e, 409))
158
+ log.warn('stop failed', { work_id: work.id, error: String(e) });
159
+ }
160
+ }
161
+ }
162
+ }
163
+ }
164
+ finally {
165
+ // Detach from the external signal so the consumer can drop their
166
+ // signal reference without leaking this iterator instance.
167
+ this.#detachExternal();
168
+ }
169
+ }
170
+ }
171
+ /** Exponential poll backoff: 1s, 2s, 4s … clamped to a 60s cap. */
172
+ export function backoff(attempt) {
173
+ return expBackoff(attempt, POLL_BACKOFF_BASE_MS, POLL_BACKOFF_CAP_MS);
174
+ }
175
+ /**
176
+ * Keeps an idle poll loop visible in the logs without an INFO line per poll:
177
+ * the first empty poll after start-up or after a claim logs at INFO and later
178
+ * ones at DEBUG, with an INFO reminder every `IDLE_REPORT_INTERVAL_MS` while
179
+ * the loop stays idle.
180
+ */
181
+ class IdleLog {
182
+ #log;
183
+ #environmentId;
184
+ #idleSince;
185
+ #lastReport = 0;
186
+ constructor(log, environmentId) {
187
+ this.#log = log;
188
+ this.#environmentId = environmentId;
189
+ }
190
+ onEmptyPoll() {
191
+ const now = Date.now();
192
+ const fields = { component: 'work-poller', environment_id: this.#environmentId };
193
+ if (this.#idleSince === undefined) {
194
+ this.#idleSince = this.#lastReport = now;
195
+ this.#log.info('idle; polling for work', fields);
196
+ }
197
+ else if (now - this.#lastReport >= IDLE_REPORT_INTERVAL_MS) {
198
+ this.#lastReport = now;
199
+ this.#log.info(`still polling; idle for ${Math.round((now - this.#idleSince) / 1000)}s`, fields);
200
+ }
201
+ else {
202
+ this.#log.debug('poll returned no work', fields);
203
+ }
204
+ }
205
+ onClaim() {
206
+ this.#idleSince = undefined;
207
+ }
208
+ }
209
+ function defaultWorkerId() {
210
+ // The API documents the worker id as a *unique* identifier for Redis consumer
211
+ // groups, so the fallback must be unique even when several pollers share a
212
+ // host. Prefix with the hostname when one is exposed for readability, but rely
213
+ // on the uuid for uniqueness.
214
+ const env = globalThis.process?.env;
215
+ const host = env?.['HOSTNAME'];
216
+ return host ? `${host}-${uuid4()}` : uuid4();
217
+ }
218
+ //# sourceMappingURL=poller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poller.js","sourceRoot":"","sources":["../../../../src/vendor/lib/environments/poller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,226 @@
1
+ import type { PukuAI } from '../../client';
2
+ import type { BetaRunnableTool } from '../tools/BetaRunnableTool';
3
+ import type { BetaToolRunnerRequestOptions } from '../tools/BetaToolRunner';
4
+ import type { AgentToolContext, MemoryDeleteMode } from '../../tools/agent-toolset/node';
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: PukuAI;
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 worker's standing credential: polling always
21
+ * uses it, and per-session calls fall back to it when a claimed item's
22
+ * `secret` doesn't yield a sessions token. Required by
23
+ * {@link EnvironmentWorker.run}; falls back to `PUKU_ENVIRONMENT_KEY` in
24
+ * {@link EnvironmentWorker.handleItem}.
25
+ */
26
+ environmentKey?: string;
27
+ /**
28
+ * Tools to expose to each claimed session. Defaults to
29
+ * `betaAgentToolset20260401(ctx)` (the standard `agent_toolset_20260401` set
30
+ * bound to the per-session {@link AgentToolContext}).
31
+ *
32
+ * A `run` that blocks the event loop synchronously also stalls the lease
33
+ * heartbeat, and the worker can lose the lease; keep tools non-blocking (see
34
+ * {@link BetaRunnableTool.run}).
35
+ */
36
+ tools?: EnvironmentWorkerTools;
37
+ /** Base directory for the per-session {@link AgentToolContext}. Defaults to `process.cwd()`. */
38
+ workdir?: string;
39
+ /**
40
+ * @deprecated No longer accepted: the file tools are always confined to
41
+ * `workdir` plus `allowedRoots`, which is neither behavior this flag used to
42
+ * select, so passing either value throws. Remove it; list extra directories
43
+ * in {@link AgentToolContext.allowedRoots}. The property is removed in a
44
+ * future release.
45
+ */
46
+ unrestrictedPaths?: boolean;
47
+ /** Forwarded to the per-session {@link AgentToolContext} (`maxFileBytes`). */
48
+ maxFileBytes?: number | null;
49
+ /** Forwarded to {@link SessionToolRunner} (`maxIdleMs`). */
50
+ maxIdleMs?: number;
51
+ /**
52
+ * How often (milliseconds) to sync the session's attached memory stores back
53
+ * while it runs — checked after each dispatched tool call, plus one final
54
+ * sync when the session ends cleanly. Defaults to
55
+ * `DEFAULT_MEMORY_SYNC_INTERVAL_MS` (15s); the constructor throws for
56
+ * values below `MIN_MEMORY_SYNC_INTERVAL_MS` (5s). Every teardown also runs
57
+ * a push-only flush of changed files; that flush and the final sync are
58
+ * each bounded by `MEMORY_FLUSH_TIMEOUT_MS`, and a warning is logged when
59
+ * either bound cuts work off. `null` disables memory download and sync
60
+ * entirely. Memory stores are only touched for work items whose `secret`
61
+ * carries a `sessions_token`; while sync is enabled, an item without one
62
+ * fails when its session has memory stores attached, because those stores
63
+ * cannot be mounted without the token. With `null` the same item runs,
64
+ * without memory, and nothing is logged — turning sync off is the
65
+ * operator's explicit choice.
66
+ */
67
+ memorySyncIntervalMs?: number | null;
68
+ /**
69
+ * Whether local file deletions may delete on the server — see
70
+ * {@link MemoryDeleteMode}. Uploads and pulls are unaffected.
71
+ * Defaults to `"enabled"`.
72
+ */
73
+ memorySyncDeletions?: MemoryDeleteMode;
74
+ /** Forwarded to the {@link WorkPoller}. */
75
+ workerId?: string;
76
+ /** External abort signal; aborting it ends the run. */
77
+ signal?: AbortSignal;
78
+ /**
79
+ * Extra per-request options merged into every call this worker issues — the
80
+ * work poll/ack/heartbeat/stop control-plane calls and the per-session
81
+ * SessionToolRunner's stream/list/send. Mirrors what
82
+ * `client.beta.messages.toolRunner` accepts: custom `headers` (e.g. a proxy's
83
+ * auth/routing headers) reach all of them. The worker owns the abort signals,
84
+ * so a `signal` here is ignored — use {@link EnvironmentWorkerOptions.signal}.
85
+ */
86
+ requestOptions?: BetaToolRunnerRequestOptions;
87
+ }
88
+ /**
89
+ * Options for {@link EnvironmentWorker.handleItem}. Every field falls back to the
90
+ * matching `PUKU_*` environment variable — the ones the
91
+ * `ant worker poll --on-work` command sets for the process it spawns — when not
92
+ * passed explicitly.
93
+ */
94
+ export interface HandleItemOptions {
95
+ /** Work item id. Falls back to `PUKU_WORK_ID`. */
96
+ workId?: string;
97
+ /** Self-hosted environment id. Falls back to `PUKU_ENVIRONMENT_ID`. */
98
+ environmentId?: string;
99
+ /** Session id. Falls back to `PUKU_SESSION_ID`. */
100
+ sessionId?: string;
101
+ /**
102
+ * The environment key used to authenticate every per-session call. Resolution
103
+ * order: this option, then the worker's own `environmentKey`, then
104
+ * `PUKU_ENVIRONMENT_KEY`.
105
+ */
106
+ environmentKey?: string;
107
+ /**
108
+ * The work item's per-item `secret` payload from the poll response. Falls
109
+ * back to `PUKU_WORK_SECRET`. Unlike the others it is optional — when
110
+ * present, the sessions token extracted from it is preferred as the Bearer
111
+ * credential for this item's heartbeat / force-stop / skill-download /
112
+ * session calls; when absent (or undecodable) those calls use the
113
+ * environment key.
114
+ */
115
+ workSecret?: string;
116
+ /** External abort signal; aborting it ends the run. Defaults to the constructor's signal. */
117
+ signal?: AbortSignal;
118
+ }
119
+ /**
120
+ * Extract the per-item sessions token from a work item's `secret` payload.
121
+ *
122
+ * The `secret` the poll response populates is not itself a credential: it is a
123
+ * URL-safe base64 JSON payload matching {@link BetaWorkSecret} — the
124
+ * `sessions_token` (the bearer for this item's work lifecycle and
125
+ * session-level calls) plus fields this worker does not consume. Returns the
126
+ * sessions token, or `null` (meaning: fall back to the environment key) when
127
+ * the payload is missing, doesn't decode, or carries no token. Never log the
128
+ * payload or anything extracted from it.
129
+ */
130
+ export declare function sessionsTokenFromSecret(secret: string | null | undefined): string | null;
131
+ /**
132
+ * The self-hosted environment runner, composed from the control-plane
133
+ * {@link WorkPoller} and the per-session {@link SessionToolRunner}.
134
+ *
135
+ * For each claimed `session` work item it: builds the per-session
136
+ * {@link AgentToolContext}, downloads the session agent's skills
137
+ * (`setupSkills`), then runs a {@link SessionToolRunner} for the session
138
+ * while heartbeating the work-item lease on the same event loop; on exit it
139
+ * force-stops the work item (unless the lease was lost, in which case the item
140
+ * is left to whoever holds it now), cleans up the downloaded skills, and loops
141
+ * to the next one. The lease heartbeat reports `state === "stopping"` / a lost
142
+ * lease back into the run by aborting the session runner.
143
+ *
144
+ * The `environmentKey` is the worker's standing credential. When a claimed
145
+ * work item carries a per-item `secret` (a short-lived payload the poll
146
+ * response may populate), the sessions token extracted from it is preferred
147
+ * over the environment key for that item's heartbeat / force-stop /
148
+ * skill-download / session calls; polling itself always uses the environment
149
+ * key, and items without a usable secret fall back to it entirely.
150
+ *
151
+ * Use {@link EnvironmentWorker.handleItem} if you already hold a claimed work
152
+ * item (e.g. a `worker poll --on-work` script handed one to a fresh process) and
153
+ * just want the per-item flow without the poll loop — with no arguments it reads
154
+ * the `PUKU_*` env vars that command sets.
155
+ *
156
+ * Construct it via `client.beta.environments.work.worker({ ... })` (or
157
+ * `new EnvironmentWorker({ client, ... })` directly).
158
+ *
159
+ * @example
160
+ * ```ts
161
+ * // Long-running daemon: poll for work, serve each session, loop.
162
+ * await client.beta.environments.work
163
+ * .worker({ environmentId, environmentKey, workdir: '/workspace' })
164
+ * .run(AbortSignal.timeout(60 * 60_000));
165
+ *
166
+ * // Already-claimed item (e.g. inside `ant worker poll --on-work ...`):
167
+ * await client.beta.environments.work.worker({ workdir: '/workspace' }).handleItem();
168
+ * ```
169
+ */
170
+ export declare class EnvironmentWorker {
171
+ #private;
172
+ readonly client: PukuAI;
173
+ readonly environmentId: string | undefined;
174
+ readonly environmentKey: string | undefined;
175
+ readonly tools: EnvironmentWorkerTools | undefined;
176
+ readonly workdir: string;
177
+ /** @deprecated Never set; see {@link EnvironmentWorkerOptions.unrestrictedPaths}. */
178
+ readonly unrestrictedPaths: boolean | undefined;
179
+ readonly maxFileBytes: number | null | undefined;
180
+ readonly maxIdleMs: number | undefined;
181
+ readonly memorySyncIntervalMs: number | null | undefined;
182
+ readonly memorySyncDeletions: MemoryDeleteMode;
183
+ readonly workerId: string | undefined;
184
+ readonly requestOptions: BetaToolRunnerRequestOptions | undefined;
185
+ constructor(opts: Omit<EnvironmentWorkerOptions, 'unrestrictedPaths'>);
186
+ /** @deprecated `unrestrictedPaths` is no longer accepted — see {@link EnvironmentWorkerOptions.unrestrictedPaths}. */
187
+ constructor(opts: Omit<EnvironmentWorkerOptions, 'unrestrictedPaths'> & {
188
+ unrestrictedPaths: boolean;
189
+ });
190
+ /**
191
+ * Poll the environment and service each claimed session until the supplied
192
+ * signal (or the one passed to the constructor) aborts. Throws if
193
+ * `environmentId` / `environmentKey` were not provided to the constructor.
194
+ */
195
+ run(signal?: AbortSignal): Promise<void>;
196
+ /**
197
+ * Service a single, already-claimed work item without the poll loop: build the
198
+ * per-session {@link AgentToolContext} (workdir from this worker's options),
199
+ * download the session agent's skills (`setupSkills`), run a
200
+ * {@link SessionToolRunner} for the session while heartbeating the work-item
201
+ * lease, and force-stop the work item on exit (whether the runner finishes
202
+ * normally, throws, or the control plane signals shutdown). The one
203
+ * exception is a lost lease: the item then belongs to the queue or another
204
+ * worker and is left alone.
205
+ *
206
+ * Use this when something else does the claiming — e.g. a `worker poll
207
+ * --on-work` script that hands an already-claimed item to a fresh process. The
208
+ * work id / environment id / session id each fall back to `PUKU_WORK_ID` /
209
+ * `PUKU_ENVIRONMENT_ID` / `PUKU_SESSION_ID` (the env vars that
210
+ * command sets) when not passed; the environment key resolves from this
211
+ * option, then the worker's own `environmentKey`, then
212
+ * `PUKU_ENVIRONMENT_KEY`. With no arguments inside that command it just
213
+ * works. Throws a clear error naming the first of the four required values
214
+ * still missing after resolution. Throws `SessionMemoryError` when the
215
+ * session has memory stores attached but they cannot be mounted — the work
216
+ * item carried no sessions token (unless `memorySyncIntervalMs` turned
217
+ * memory off), or a store failed to download.
218
+ *
219
+ * `workSecret` is the work item's per-item `secret` payload from the poll
220
+ * response, falling back to `PUKU_WORK_SECRET`; unlike the others it is
221
+ * optional — when present, the sessions token extracted from it is preferred
222
+ * as the Bearer credential for this item's heartbeat / force-stop / session
223
+ * calls; when absent (or undecodable) those calls use the environment key.
224
+ */
225
+ handleItem(opts?: HandleItemOptions): Promise<void>;
226
+ }