managed-deepagents 0.4.2 → 0.4.3-dev.94

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 (449) hide show
  1. package/README.md +78 -35
  2. package/dist/channels/assistant-text.js +1 -1
  3. package/dist/channels/assistant-text.js.map +1 -1
  4. package/dist/channels/binding.d.ts.map +1 -1
  5. package/dist/channels/binding.js +3 -1
  6. package/dist/channels/binding.js.map +1 -1
  7. package/dist/channels/index.d.ts +7 -8
  8. package/dist/channels/index.d.ts.map +1 -1
  9. package/dist/channels/index.js +6 -5
  10. package/dist/channels/index.js.map +1 -1
  11. package/dist/channels/manifest.d.ts +7 -4
  12. package/dist/channels/manifest.d.ts.map +1 -1
  13. package/dist/channels/messaging-registry.d.ts +21 -0
  14. package/dist/channels/messaging-registry.d.ts.map +1 -0
  15. package/dist/channels/messaging-registry.js +50 -0
  16. package/dist/channels/messaging-registry.js.map +1 -0
  17. package/dist/channels/registry-types.d.ts +1 -1
  18. package/dist/channels/registry.d.ts +4 -3
  19. package/dist/channels/registry.d.ts.map +1 -1
  20. package/dist/channels/registry.js +5 -6
  21. package/dist/channels/registry.js.map +1 -1
  22. package/dist/channels/schedule-delivery.d.ts +4 -1
  23. package/dist/channels/schedule-delivery.d.ts.map +1 -1
  24. package/dist/channels/schedule-delivery.js +3 -1
  25. package/dist/channels/schedule-delivery.js.map +1 -1
  26. package/dist/channels/slack/adapter.d.ts +1 -2
  27. package/dist/channels/slack/adapter.d.ts.map +1 -1
  28. package/dist/channels/slack/adapter.js +0 -2
  29. package/dist/channels/slack/adapter.js.map +1 -1
  30. package/dist/channels/slack/http.d.ts +7 -39
  31. package/dist/channels/slack/http.d.ts.map +1 -1
  32. package/dist/channels/slack/http.js +64 -122
  33. package/dist/channels/slack/http.js.map +1 -1
  34. package/dist/channels/slack/index.d.ts +94 -8
  35. package/dist/channels/slack/index.d.ts.map +1 -1
  36. package/dist/channels/slack/index.js +144 -6
  37. package/dist/channels/slack/index.js.map +1 -1
  38. package/dist/channels/slack/normalize.d.ts +6 -4
  39. package/dist/channels/slack/normalize.d.ts.map +1 -1
  40. package/dist/channels/slack/normalize.js +61 -28
  41. package/dist/channels/slack/normalize.js.map +1 -1
  42. package/dist/channels/slack/transport.d.ts.map +1 -1
  43. package/dist/channels/slack/transport.js +3 -2
  44. package/dist/channels/slack/transport.js.map +1 -1
  45. package/dist/channels/store.d.ts +14 -0
  46. package/dist/channels/store.d.ts.map +1 -1
  47. package/dist/channels/store.js +41 -27
  48. package/dist/channels/store.js.map +1 -1
  49. package/dist/connectors/marketplace/catalog.d.ts +96 -0
  50. package/dist/connectors/marketplace/catalog.d.ts.map +1 -0
  51. package/dist/connectors/marketplace/catalog.js +213 -0
  52. package/dist/connectors/marketplace/catalog.js.map +1 -0
  53. package/dist/connectors/marketplace/fleet-mcp.d.ts +62 -0
  54. package/dist/connectors/marketplace/fleet-mcp.d.ts.map +1 -0
  55. package/dist/connectors/marketplace/fleet-mcp.js +215 -0
  56. package/dist/connectors/marketplace/fleet-mcp.js.map +1 -0
  57. package/dist/connectors/marketplace/index.d.ts +31 -0
  58. package/dist/connectors/marketplace/index.d.ts.map +1 -0
  59. package/dist/connectors/marketplace/index.js +39 -0
  60. package/dist/connectors/marketplace/index.js.map +1 -0
  61. package/dist/connectors/marketplace/load.d.ts +14 -0
  62. package/dist/connectors/marketplace/load.d.ts.map +1 -0
  63. package/dist/connectors/marketplace/load.js +206 -0
  64. package/dist/connectors/marketplace/load.js.map +1 -0
  65. package/dist/connectors/mcp/index.d.ts +13 -20
  66. package/dist/connectors/mcp/index.d.ts.map +1 -1
  67. package/dist/connectors/mcp/index.js +92 -112
  68. package/dist/connectors/mcp/index.js.map +1 -1
  69. package/dist/connectors/mcp/load.d.ts.map +1 -1
  70. package/dist/connectors/mcp/load.js +16 -40
  71. package/dist/connectors/mcp/load.js.map +1 -1
  72. package/dist/connectors/slack/index.d.ts +24 -0
  73. package/dist/connectors/slack/index.d.ts.map +1 -0
  74. package/dist/connectors/slack/index.js +64 -0
  75. package/dist/connectors/slack/index.js.map +1 -0
  76. package/dist/connectors/tool-selection.d.ts +55 -0
  77. package/dist/connectors/tool-selection.d.ts.map +1 -0
  78. package/dist/connectors/tool-selection.js +112 -0
  79. package/dist/connectors/tool-selection.js.map +1 -0
  80. package/dist/connectors/toolserver/catalog.d.ts +326 -0
  81. package/dist/connectors/toolserver/catalog.d.ts.map +1 -0
  82. package/dist/connectors/toolserver/catalog.js +415 -0
  83. package/dist/connectors/toolserver/catalog.js.map +1 -0
  84. package/dist/connectors/toolserver/connectors.d.ts +698 -0
  85. package/dist/connectors/toolserver/connectors.d.ts.map +1 -0
  86. package/dist/connectors/toolserver/connectors.js +13 -0
  87. package/dist/connectors/toolserver/connectors.js.map +1 -0
  88. package/dist/connectors/toolserver/index.d.ts +142 -0
  89. package/dist/connectors/toolserver/index.d.ts.map +1 -0
  90. package/dist/connectors/toolserver/index.js +105 -0
  91. package/dist/connectors/toolserver/index.js.map +1 -0
  92. package/dist/connectors/toolserver/integrations.d.ts +103 -0
  93. package/dist/connectors/toolserver/integrations.d.ts.map +1 -0
  94. package/dist/connectors/toolserver/integrations.js +288 -0
  95. package/dist/connectors/toolserver/integrations.js.map +1 -0
  96. package/dist/connectors/toolserver/load.d.ts +55 -0
  97. package/dist/connectors/toolserver/load.d.ts.map +1 -0
  98. package/dist/connectors/toolserver/load.js +289 -0
  99. package/dist/connectors/toolserver/load.js.map +1 -0
  100. package/dist/define-deep-agent.d.ts.map +1 -1
  101. package/dist/define-deep-agent.js +9 -3
  102. package/dist/define-deep-agent.js.map +1 -1
  103. package/dist/extension.d.ts +69 -0
  104. package/dist/extension.d.ts.map +1 -0
  105. package/dist/extension.js +108 -0
  106. package/dist/extension.js.map +1 -0
  107. package/dist/identity/actor-subject.d.ts +60 -0
  108. package/dist/identity/actor-subject.d.ts.map +1 -0
  109. package/dist/identity/actor-subject.js +107 -0
  110. package/dist/identity/actor-subject.js.map +1 -0
  111. package/dist/identity/byo-oauth.d.ts +105 -0
  112. package/dist/identity/byo-oauth.d.ts.map +1 -0
  113. package/dist/identity/byo-oauth.js +190 -0
  114. package/dist/identity/byo-oauth.js.map +1 -0
  115. package/dist/identity/claims.d.ts +16 -0
  116. package/dist/identity/claims.d.ts.map +1 -0
  117. package/dist/identity/claims.js +33 -0
  118. package/dist/identity/claims.js.map +1 -0
  119. package/dist/identity/connect-inference.d.ts +37 -0
  120. package/dist/identity/connect-inference.d.ts.map +1 -0
  121. package/dist/identity/connect-inference.js +53 -0
  122. package/dist/identity/connect-inference.js.map +1 -0
  123. package/dist/identity/connect-provider-types.d.ts +35 -6
  124. package/dist/identity/connect-provider-types.d.ts.map +1 -1
  125. package/dist/identity/connect-provider-types.js +3 -1
  126. package/dist/identity/connect-provider-types.js.map +1 -1
  127. package/dist/identity/connect-provider.d.ts +9 -4
  128. package/dist/identity/connect-provider.d.ts.map +1 -1
  129. package/dist/identity/connect-provider.js +39 -13
  130. package/dist/identity/connect-provider.js.map +1 -1
  131. package/dist/identity/credential-resolvers.d.ts +33 -0
  132. package/dist/identity/credential-resolvers.d.ts.map +1 -0
  133. package/dist/identity/credential-resolvers.js +62 -0
  134. package/dist/identity/credential-resolvers.js.map +1 -0
  135. package/dist/identity/define-fleet-connect.d.ts +53 -0
  136. package/dist/identity/define-fleet-connect.d.ts.map +1 -0
  137. package/dist/identity/define-fleet-connect.js +76 -0
  138. package/dist/identity/define-fleet-connect.js.map +1 -0
  139. package/dist/identity/fleet-connect-hint.d.ts +41 -0
  140. package/dist/identity/fleet-connect-hint.d.ts.map +1 -0
  141. package/dist/identity/fleet-connect-hint.js +190 -0
  142. package/dist/identity/fleet-connect-hint.js.map +1 -0
  143. package/dist/identity/fleet-connect.d.ts +93 -0
  144. package/dist/identity/fleet-connect.d.ts.map +1 -0
  145. package/dist/identity/fleet-connect.js +256 -0
  146. package/dist/identity/fleet-connect.js.map +1 -0
  147. package/dist/identity/fleet-integration-connect.d.ts +32 -0
  148. package/dist/identity/fleet-integration-connect.d.ts.map +1 -0
  149. package/dist/identity/fleet-integration-connect.js +35 -0
  150. package/dist/identity/fleet-integration-connect.js.map +1 -0
  151. package/dist/identity/fleet.d.ts +56 -0
  152. package/dist/identity/fleet.d.ts.map +1 -0
  153. package/dist/identity/fleet.js +131 -0
  154. package/dist/identity/fleet.js.map +1 -0
  155. package/dist/identity/github/connect-http.d.ts +8 -4
  156. package/dist/identity/github/connect-http.d.ts.map +1 -1
  157. package/dist/identity/github/connect-http.js +32 -15
  158. package/dist/identity/github/connect-http.js.map +1 -1
  159. package/dist/identity/github/credentials-store.d.ts +10 -10
  160. package/dist/identity/github/credentials-store.d.ts.map +1 -1
  161. package/dist/identity/github/credentials-store.js +51 -49
  162. package/dist/identity/github/credentials-store.js.map +1 -1
  163. package/dist/identity/github/credentials.d.ts +16 -13
  164. package/dist/identity/github/credentials.d.ts.map +1 -1
  165. package/dist/identity/github/credentials.js +43 -23
  166. package/dist/identity/github/credentials.js.map +1 -1
  167. package/dist/identity/github/index.d.ts +1 -4
  168. package/dist/identity/github/index.d.ts.map +1 -1
  169. package/dist/identity/github/index.js +0 -3
  170. package/dist/identity/github/index.js.map +1 -1
  171. package/dist/identity/github/oauth.d.ts +18 -20
  172. package/dist/identity/github/oauth.d.ts.map +1 -1
  173. package/dist/identity/github/oauth.js +90 -109
  174. package/dist/identity/github/oauth.js.map +1 -1
  175. package/dist/identity/google/connect-http.d.ts +37 -0
  176. package/dist/identity/google/connect-http.d.ts.map +1 -0
  177. package/dist/identity/google/connect-http.js +42 -0
  178. package/dist/identity/google/connect-http.js.map +1 -0
  179. package/dist/identity/google/index.d.ts +7 -0
  180. package/dist/identity/google/index.d.ts.map +1 -0
  181. package/dist/identity/google/index.js +6 -0
  182. package/dist/identity/google/index.js.map +1 -0
  183. package/dist/identity/google/oauth.d.ts +22 -0
  184. package/dist/identity/google/oauth.d.ts.map +1 -0
  185. package/dist/identity/google/oauth.js +48 -0
  186. package/dist/identity/google/oauth.js.map +1 -0
  187. package/dist/identity/index.d.ts +40 -64
  188. package/dist/identity/index.d.ts.map +1 -1
  189. package/dist/identity/index.js +104 -243
  190. package/dist/identity/index.js.map +1 -1
  191. package/dist/identity/linkedin/connect-http.d.ts +37 -0
  192. package/dist/identity/linkedin/connect-http.d.ts.map +1 -0
  193. package/dist/identity/linkedin/connect-http.js +41 -0
  194. package/dist/identity/linkedin/connect-http.js.map +1 -0
  195. package/dist/identity/linkedin/index.d.ts +7 -0
  196. package/dist/identity/linkedin/index.d.ts.map +1 -0
  197. package/dist/identity/linkedin/index.js +6 -0
  198. package/dist/identity/linkedin/index.js.map +1 -0
  199. package/dist/identity/linkedin/oauth.d.ts +22 -0
  200. package/dist/identity/linkedin/oauth.d.ts.map +1 -0
  201. package/dist/identity/linkedin/oauth.js +47 -0
  202. package/dist/identity/linkedin/oauth.js.map +1 -0
  203. package/dist/identity/loopback.d.ts +27 -2
  204. package/dist/identity/loopback.d.ts.map +1 -1
  205. package/dist/identity/loopback.js +61 -8
  206. package/dist/identity/loopback.js.map +1 -1
  207. package/dist/identity/marketplace/connect-hint.d.ts +31 -0
  208. package/dist/identity/marketplace/connect-hint.d.ts.map +1 -0
  209. package/dist/identity/marketplace/connect-hint.js +59 -0
  210. package/dist/identity/marketplace/connect-hint.js.map +1 -0
  211. package/dist/identity/marketplace/connect.d.ts +51 -0
  212. package/dist/identity/marketplace/connect.d.ts.map +1 -0
  213. package/dist/identity/marketplace/connect.js +88 -0
  214. package/dist/identity/marketplace/connect.js.map +1 -0
  215. package/dist/identity/marketplace/index.d.ts +9 -0
  216. package/dist/identity/marketplace/index.d.ts.map +1 -0
  217. package/dist/identity/marketplace/index.js +9 -0
  218. package/dist/identity/marketplace/index.js.map +1 -0
  219. package/dist/identity/microsoft/connect-http.d.ts +38 -0
  220. package/dist/identity/microsoft/connect-http.d.ts.map +1 -0
  221. package/dist/identity/microsoft/connect-http.js +42 -0
  222. package/dist/identity/microsoft/connect-http.js.map +1 -0
  223. package/dist/identity/microsoft/index.d.ts +7 -0
  224. package/dist/identity/microsoft/index.d.ts.map +1 -0
  225. package/dist/identity/microsoft/index.js +6 -0
  226. package/dist/identity/microsoft/index.js.map +1 -0
  227. package/dist/identity/microsoft/oauth.d.ts +24 -0
  228. package/dist/identity/microsoft/oauth.d.ts.map +1 -0
  229. package/dist/identity/microsoft/oauth.js +65 -0
  230. package/dist/identity/microsoft/oauth.js.map +1 -0
  231. package/dist/identity/oauth-env.d.ts +43 -0
  232. package/dist/identity/oauth-env.d.ts.map +1 -0
  233. package/dist/identity/oauth-env.js +66 -0
  234. package/dist/identity/oauth-env.js.map +1 -0
  235. package/dist/identity/oauth-tickets.d.ts +37 -0
  236. package/dist/identity/oauth-tickets.d.ts.map +1 -0
  237. package/dist/identity/oauth-tickets.js +114 -0
  238. package/dist/identity/oauth-tickets.js.map +1 -0
  239. package/dist/identity/options.d.ts +35 -0
  240. package/dist/identity/options.d.ts.map +1 -0
  241. package/dist/identity/options.js +80 -0
  242. package/dist/identity/options.js.map +1 -0
  243. package/dist/identity/slack/connect-http.d.ts +6 -4
  244. package/dist/identity/slack/connect-http.d.ts.map +1 -1
  245. package/dist/identity/slack/connect-http.js +27 -17
  246. package/dist/identity/slack/connect-http.js.map +1 -1
  247. package/dist/identity/slack/index.d.ts +1 -2
  248. package/dist/identity/slack/index.d.ts.map +1 -1
  249. package/dist/identity/slack/index.js +1 -2
  250. package/dist/identity/slack/index.js.map +1 -1
  251. package/dist/identity/slack/links.d.ts +18 -17
  252. package/dist/identity/slack/links.d.ts.map +1 -1
  253. package/dist/identity/slack/links.js +64 -61
  254. package/dist/identity/slack/links.js.map +1 -1
  255. package/dist/identity/slack/oauth.d.ts +3 -35
  256. package/dist/identity/slack/oauth.d.ts.map +1 -1
  257. package/dist/identity/slack/oauth.js +9 -115
  258. package/dist/identity/slack/oauth.js.map +1 -1
  259. package/dist/identity/supabase.js +9 -9
  260. package/dist/identity/supabase.js.map +1 -1
  261. package/dist/identity/types.d.ts +91 -54
  262. package/dist/identity/types.d.ts.map +1 -1
  263. package/dist/identity/x/connect-http.d.ts +38 -0
  264. package/dist/identity/x/connect-http.d.ts.map +1 -0
  265. package/dist/identity/x/connect-http.js +41 -0
  266. package/dist/identity/x/connect-http.js.map +1 -0
  267. package/dist/identity/x/index.d.ts +6 -0
  268. package/dist/identity/x/index.d.ts.map +1 -0
  269. package/dist/identity/x/index.js +5 -0
  270. package/dist/identity/x/index.js.map +1 -0
  271. package/dist/index.d.ts +9 -20
  272. package/dist/index.d.ts.map +1 -1
  273. package/dist/index.js +3 -11
  274. package/dist/index.js.map +1 -1
  275. package/dist/ingress/index.d.ts +52 -0
  276. package/dist/ingress/index.d.ts.map +1 -0
  277. package/dist/ingress/index.js +127 -0
  278. package/dist/ingress/index.js.map +1 -0
  279. package/dist/memory/define-memory.d.ts +39 -0
  280. package/dist/memory/define-memory.d.ts.map +1 -0
  281. package/dist/memory/define-memory.js +78 -0
  282. package/dist/memory/define-memory.js.map +1 -0
  283. package/dist/memory/index.d.ts +9 -0
  284. package/dist/memory/index.d.ts.map +1 -0
  285. package/dist/memory/index.js +8 -0
  286. package/dist/memory/index.js.map +1 -0
  287. package/dist/memory/instructions-middleware.d.ts +74 -0
  288. package/dist/memory/instructions-middleware.d.ts.map +1 -0
  289. package/dist/memory/instructions-middleware.js +115 -0
  290. package/dist/memory/instructions-middleware.js.map +1 -0
  291. package/dist/memory/slices.d.ts +21 -0
  292. package/dist/memory/slices.d.ts.map +1 -0
  293. package/dist/memory/slices.js +61 -0
  294. package/dist/memory/slices.js.map +1 -0
  295. package/dist/memory/types.d.ts +71 -0
  296. package/dist/memory/types.d.ts.map +1 -0
  297. package/dist/memory/types.js +10 -0
  298. package/dist/memory/types.js.map +1 -0
  299. package/dist/namespaces.d.ts +262 -0
  300. package/dist/namespaces.d.ts.map +1 -0
  301. package/dist/namespaces.js +101 -0
  302. package/dist/namespaces.js.map +1 -0
  303. package/dist/runtime/auth.d.ts +43 -32
  304. package/dist/runtime/auth.d.ts.map +1 -1
  305. package/dist/runtime/auth.js +225 -125
  306. package/dist/runtime/auth.js.map +1 -1
  307. package/dist/runtime/backend.d.ts +1 -1
  308. package/dist/runtime/backend.d.ts.map +1 -1
  309. package/dist/runtime/backend.js +26 -5
  310. package/dist/runtime/backend.js.map +1 -1
  311. package/dist/runtime/channel.d.ts +91 -0
  312. package/dist/runtime/channel.d.ts.map +1 -0
  313. package/dist/runtime/channel.js +98 -0
  314. package/dist/runtime/channel.js.map +1 -0
  315. package/dist/runtime/connector.d.ts +66 -23
  316. package/dist/runtime/connector.d.ts.map +1 -1
  317. package/dist/runtime/connector.js +67 -27
  318. package/dist/runtime/connector.js.map +1 -1
  319. package/dist/runtime/cors.d.ts +12 -3
  320. package/dist/runtime/cors.d.ts.map +1 -1
  321. package/dist/runtime/cors.js +23 -5
  322. package/dist/runtime/cors.js.map +1 -1
  323. package/dist/runtime/credentials.d.ts +8 -8
  324. package/dist/runtime/credentials.d.ts.map +1 -1
  325. package/dist/runtime/credentials.js +46 -23
  326. package/dist/runtime/credentials.js.map +1 -1
  327. package/dist/runtime/http.d.ts +46 -0
  328. package/dist/runtime/http.d.ts.map +1 -0
  329. package/dist/runtime/http.js +53 -0
  330. package/dist/runtime/http.js.map +1 -0
  331. package/dist/runtime/identity-http.d.ts +13 -20
  332. package/dist/runtime/identity-http.d.ts.map +1 -1
  333. package/dist/runtime/identity-http.js +158 -75
  334. package/dist/runtime/identity-http.js.map +1 -1
  335. package/dist/runtime/identity-runtime.d.ts +12 -28
  336. package/dist/runtime/identity-runtime.d.ts.map +1 -1
  337. package/dist/runtime/identity-runtime.js +35 -72
  338. package/dist/runtime/identity-runtime.js.map +1 -1
  339. package/dist/runtime/index.d.ts +89 -225
  340. package/dist/runtime/index.d.ts.map +1 -1
  341. package/dist/runtime/index.js +92 -61
  342. package/dist/runtime/index.js.map +1 -1
  343. package/dist/runtime/memory/index.d.ts +0 -2
  344. package/dist/runtime/memory/index.d.ts.map +1 -1
  345. package/dist/runtime/memory/index.js +0 -2
  346. package/dist/runtime/memory/index.js.map +1 -1
  347. package/dist/runtime/memory/mounts.d.ts +4 -12
  348. package/dist/runtime/memory/mounts.d.ts.map +1 -1
  349. package/dist/runtime/memory/mounts.js +9 -20
  350. package/dist/runtime/memory/mounts.js.map +1 -1
  351. package/dist/runtime/recursion-limit.d.ts +22 -0
  352. package/dist/runtime/recursion-limit.d.ts.map +1 -0
  353. package/dist/runtime/recursion-limit.js +46 -0
  354. package/dist/runtime/recursion-limit.js.map +1 -0
  355. package/dist/runtime/sandbox-manager.d.ts +60 -3
  356. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  357. package/dist/runtime/sandbox-manager.js +326 -26
  358. package/dist/runtime/sandbox-manager.js.map +1 -1
  359. package/dist/runtime/sandbox-stream-retry.d.ts +18 -0
  360. package/dist/runtime/sandbox-stream-retry.d.ts.map +1 -0
  361. package/dist/runtime/sandbox-stream-retry.js +90 -0
  362. package/dist/runtime/sandbox-stream-retry.js.map +1 -0
  363. package/dist/runtime/setup-script.d.ts.map +1 -1
  364. package/dist/runtime/setup-script.js +16 -2
  365. package/dist/runtime/setup-script.js.map +1 -1
  366. package/dist/runtime/types.d.ts +16 -0
  367. package/dist/runtime/types.d.ts.map +1 -1
  368. package/dist/runtime/validated-token.d.ts +9 -14
  369. package/dist/runtime/validated-token.d.ts.map +1 -1
  370. package/dist/runtime/validated-token.js +79 -106
  371. package/dist/runtime/validated-token.js.map +1 -1
  372. package/dist/sandbox.d.ts +17 -42
  373. package/dist/sandbox.d.ts.map +1 -1
  374. package/dist/sandbox.js +11 -32
  375. package/dist/sandbox.js.map +1 -1
  376. package/dist/schedules.js +8 -9
  377. package/dist/schedules.js.map +1 -1
  378. package/dist/types.d.ts +4 -3
  379. package/dist/types.d.ts.map +1 -1
  380. package/dist/types.js.map +1 -1
  381. package/package.json +22 -29
  382. package/dist/channels/collect.d.ts +0 -26
  383. package/dist/channels/collect.d.ts.map +0 -1
  384. package/dist/channels/collect.js +0 -42
  385. package/dist/channels/collect.js.map +0 -1
  386. package/dist/channels/github/adapter-core.d.ts +0 -6
  387. package/dist/channels/github/adapter-core.d.ts.map +0 -1
  388. package/dist/channels/github/adapter-core.js +0 -27
  389. package/dist/channels/github/adapter-core.js.map +0 -1
  390. package/dist/channels/github/adapter.d.ts +0 -16
  391. package/dist/channels/github/adapter.d.ts.map +0 -1
  392. package/dist/channels/github/adapter.js +0 -52
  393. package/dist/channels/github/adapter.js.map +0 -1
  394. package/dist/channels/github/define.d.ts +0 -198
  395. package/dist/channels/github/define.d.ts.map +0 -1
  396. package/dist/channels/github/define.js +0 -166
  397. package/dist/channels/github/define.js.map +0 -1
  398. package/dist/channels/github/http.d.ts +0 -25
  399. package/dist/channels/github/http.d.ts.map +0 -1
  400. package/dist/channels/github/http.js +0 -147
  401. package/dist/channels/github/http.js.map +0 -1
  402. package/dist/channels/github/index.d.ts +0 -12
  403. package/dist/channels/github/index.d.ts.map +0 -1
  404. package/dist/channels/github/index.js +0 -10
  405. package/dist/channels/github/index.js.map +0 -1
  406. package/dist/channels/github/normalize.d.ts +0 -32
  407. package/dist/channels/github/normalize.d.ts.map +0 -1
  408. package/dist/channels/github/normalize.js +0 -152
  409. package/dist/channels/github/normalize.js.map +0 -1
  410. package/dist/channels/github/source-thread.d.ts +0 -24
  411. package/dist/channels/github/source-thread.d.ts.map +0 -1
  412. package/dist/channels/github/source-thread.js +0 -54
  413. package/dist/channels/github/source-thread.js.map +0 -1
  414. package/dist/channels/github/transport.d.ts +0 -19
  415. package/dist/channels/github/transport.d.ts.map +0 -1
  416. package/dist/channels/github/transport.js +0 -92
  417. package/dist/channels/github/transport.js.map +0 -1
  418. package/dist/channels/plugin.d.ts +0 -61
  419. package/dist/channels/plugin.d.ts.map +0 -1
  420. package/dist/channels/plugin.js +0 -80
  421. package/dist/channels/plugin.js.map +0 -1
  422. package/dist/channels/slack/define.d.ts +0 -74
  423. package/dist/channels/slack/define.d.ts.map +0 -1
  424. package/dist/channels/slack/define.js +0 -160
  425. package/dist/channels/slack/define.js.map +0 -1
  426. package/dist/connectors/github/index.d.ts +0 -78
  427. package/dist/connectors/github/index.d.ts.map +0 -1
  428. package/dist/connectors/github/index.js +0 -106
  429. package/dist/connectors/github/index.js.map +0 -1
  430. package/dist/connectors/github/sandbox.d.ts +0 -54
  431. package/dist/connectors/github/sandbox.d.ts.map +0 -1
  432. package/dist/connectors/github/sandbox.js +0 -515
  433. package/dist/connectors/github/sandbox.js.map +0 -1
  434. package/dist/connectors/langsmith/index.d.ts +0 -385
  435. package/dist/connectors/langsmith/index.d.ts.map +0 -1
  436. package/dist/connectors/langsmith/index.js +0 -431
  437. package/dist/connectors/langsmith/index.js.map +0 -1
  438. package/dist/connectors/langsmith/routes.d.ts +0 -247
  439. package/dist/connectors/langsmith/routes.d.ts.map +0 -1
  440. package/dist/connectors/langsmith/routes.js +0 -1182
  441. package/dist/connectors/langsmith/routes.js.map +0 -1
  442. package/dist/runtime/memory/seed.d.ts +0 -21
  443. package/dist/runtime/memory/seed.d.ts.map +0 -1
  444. package/dist/runtime/memory/seed.js +0 -160
  445. package/dist/runtime/memory/seed.js.map +0 -1
  446. package/dist/runtime/memory/user-repo.d.ts +0 -19
  447. package/dist/runtime/memory/user-repo.d.ts.map +0 -1
  448. package/dist/runtime/memory/user-repo.js +0 -57
  449. package/dist/runtime/memory/user-repo.js.map +0 -1
@@ -1,16 +1,43 @@
1
+ import { createHash, randomBytes } from "node:crypto";
1
2
  import { hasSandboxConnectors, runConnectorSandboxHooks, } from "./connector.js";
2
3
  import { runSetupScript } from "./setup-script.js";
4
+ import { isSandboxStreamError } from "./sandbox-stream-retry.js";
3
5
  /**
4
6
  * Created sandboxes, keyed by scope, reused for the lifetime of this runtime
5
7
  * process. Storing the in-flight promise dedupes concurrent runs and guarantees
6
8
  * `setup.sh` is executed only once per newly created sandbox.
7
9
  */
8
10
  const managedSandboxes = new Map();
11
+ /** Host box names that must not be re-adopted after invalidate until recreate. */
12
+ const invalidatedSandboxNames = new Set();
13
+ /** Host box name for a resolved backend instance (survives cache replacement). */
14
+ const backendHostNames = new WeakMap();
15
+ /**
16
+ * Separator between the deployment name and the identity digest in a managed
17
+ * sandbox name.
18
+ *
19
+ * Doubled so one deployment's prefix can never match another's name:
20
+ * `agent--<digest>` is not matched by the `agent-staging--` prefix. Mirrors the
21
+ * `--u--` / `--t--` convention used for Context Hub child repos, and must stay
22
+ * in sync with `SANDBOX_NAME_SEPARATOR` in the CLI.
23
+ */
24
+ const SANDBOX_NAME_SEPARATOR = "--";
25
+ /** Hex characters of the identity digest kept in a sandbox name. */
26
+ const SANDBOX_DIGEST_LENGTH = 12;
27
+ /** Sandbox statuses that can be adopted as-is. */
28
+ const ADOPTABLE_STATUS = new Set(["ready", "running"]);
29
+ /** Sandbox status for one that is stopped but restartable. */
30
+ const STOPPED_STATUS = "stopped";
9
31
  const defaultLangSmithSandboxClientLoader = async () => {
10
32
  const dynamicImport = new Function("specifier", "return import(specifier)");
11
33
  return (await dynamicImport("langsmith/sandbox"));
12
34
  };
13
35
  let langSmithSandboxClientLoader = defaultLangSmithSandboxClientLoader;
36
+ const defaultLangSmithSandboxBackendLoader = async () => {
37
+ const { LangSmithSandbox } = await import("deepagents");
38
+ return LangSmithSandbox;
39
+ };
40
+ let langSmithSandboxBackendLoader = defaultLangSmithSandboxBackendLoader;
14
41
  /**
15
42
  * Resolve (and cache) the scoped LangSmith sandbox backend for this run,
16
43
  * provisioning it with `setup.sh` the first time it is created.
@@ -30,7 +57,14 @@ export function resolveManagedSandbox(sandbox, setupScript, config, options) {
30
57
  syncChain: Promise.resolve(),
31
58
  freshlyCreated: true,
32
59
  ready: Promise.resolve().then(async () => {
33
- const backend = await createLangSmithSandbox(sandbox, setupScript, config, options, "create");
60
+ const { backend, hostName } = await createLangSmithSandbox(sandbox, setupScript, config, options, "create", key);
61
+ created.hostName = hostName;
62
+ const id = backend.id;
63
+ created.backendId =
64
+ typeof id === "string" && id.trim() ? id.trim() : undefined;
65
+ if (hostName) {
66
+ backendHostNames.set(backend, hostName);
67
+ }
34
68
  created.syncedThreads.add(threadKey);
35
69
  return backend;
36
70
  }),
@@ -90,45 +124,168 @@ export function sandboxScopeKey(sandbox, config) {
90
124
  /** Clear the process-level sandbox cache. Test-only. */
91
125
  export function clearManagedSandboxCacheForTests() {
92
126
  managedSandboxes.clear();
127
+ invalidatedSandboxNames.clear();
93
128
  }
94
129
  /**
95
- * Drop a cached sandbox so the next resolve creates a fresh one.
96
- * Used when the LangSmith sandbox is gone or the control plane returns 502.
130
+ * Drop a cached sandbox and delete its Host box so recreate cannot adopt it.
131
+ *
132
+ * Process-cache clear alone is not enough under deploy: names are deterministic
133
+ * per scope, so the next resolve would re-adopt the same broken box. Mark the
134
+ * name blocked (delete can lag) and best-effort `deleteSandbox`.
135
+ *
136
+ * When `expectedBackendId` / `expectedHostName` are set, only pop the cache
137
+ * entry if it still refers to that failing sandbox. A concurrent sibling may
138
+ * already have replaced it — deleting the replacement would strand the healthy
139
+ * recreate.
97
140
  */
98
- export function invalidateManagedSandbox(sandbox, config) {
99
- managedSandboxes.delete(sandboxScopeKey(sandbox, config));
141
+ export async function invalidateManagedSandbox(sandbox, config, setupScriptOrOptions) {
142
+ const options = typeof setupScriptOrOptions === "string" ||
143
+ setupScriptOrOptions === undefined
144
+ ? { setupScript: setupScriptOrOptions }
145
+ : setupScriptOrOptions;
146
+ const { setupScript, expectedBackendId, expectedHostName } = options;
147
+ const key = sandboxScopeKey(sandbox, config);
148
+ const names = new Set();
149
+ let popCache = true;
150
+ let entry = managedSandboxes.get(key);
151
+ if (entry !== undefined &&
152
+ (expectedBackendId !== undefined || expectedHostName !== undefined)) {
153
+ const matches = (expectedBackendId !== undefined &&
154
+ entry.backendId === expectedBackendId) ||
155
+ (expectedBackendId === undefined &&
156
+ expectedHostName !== undefined &&
157
+ entry.hostName === expectedHostName);
158
+ if (!matches) {
159
+ popCache = false;
160
+ // Safe to delete the failing box only when the replacement uses a
161
+ // different Host name (unique-suffix path).
162
+ if (expectedHostName &&
163
+ entry.hostName &&
164
+ expectedHostName !== entry.hostName) {
165
+ names.add(expectedHostName);
166
+ }
167
+ entry = undefined;
168
+ }
169
+ }
170
+ if (popCache) {
171
+ managedSandboxes.delete(key);
172
+ }
173
+ if (entry?.hostName) {
174
+ names.add(entry.hostName);
175
+ }
176
+ if (expectedHostName && popCache) {
177
+ names.add(expectedHostName);
178
+ }
179
+ if (popCache &&
180
+ expectedBackendId === undefined &&
181
+ expectedHostName === undefined) {
182
+ try {
183
+ const computed = hostSandboxNameFor(sandbox, config, setupScript);
184
+ if (computed) {
185
+ names.add(computed);
186
+ }
187
+ }
188
+ catch {
189
+ // Still clear the cache even if naming fails (e.g. missing thread_id).
190
+ }
191
+ }
192
+ if (names.size === 0) {
193
+ return;
194
+ }
195
+ for (const name of names) {
196
+ invalidatedSandboxNames.add(name);
197
+ }
198
+ await Promise.all([...names].map((name) => deleteHostSandbox(sandbox, name)));
199
+ }
200
+ /** Host box name recorded for a resolved backend instance. */
201
+ export function managedSandboxHostName(backend) {
202
+ return backendHostNames.get(backend);
100
203
  }
101
204
  /** True when a sandbox API error is worth invalidating + recreating once. */
102
205
  export function isTransientSandboxError(error) {
206
+ // Never-started stream race is also recreate-safe (and retried in place first
207
+ // by executeWithStreamRetry during provision). Truncated HTTP bodies and
208
+ // peer-closed errors are recreate-only — do not replay in place.
209
+ if (isSandboxStreamError(error)) {
210
+ return true;
211
+ }
103
212
  const message = error instanceof Error
104
213
  ? `${error.name}: ${error.message}`
105
214
  : typeof error === "string"
106
215
  ? error
107
216
  : String(error);
108
- return /LangSmithSandboxError|HTTP 502|Bad Gateway|HTTP 503|HTTP 504|ECONNRESET|ETIMEDOUT|sandbox.*(not found|gone|unavailable|terminated)/i.test(message);
217
+ return /LangSmithSandboxError|HTTP 502|Bad Gateway|HTTP 503|HTTP 504|ECONNRESET|ETIMEDOUT|peer closed connection without sending complete message body|incomplete chunked read|sandbox.*(not found|gone|unavailable|terminated)/i.test(message);
109
218
  }
110
219
  /** Override the LangSmith SDK loader. Test-only. */
111
220
  export function setLangSmithSandboxClientLoaderForTests(loader) {
112
221
  langSmithSandboxClientLoader = loader ?? defaultLangSmithSandboxClientLoader;
113
222
  }
114
- async function createLangSmithSandbox(sandbox, setupScript, config, options, mode) {
115
- if (providerKey(sandbox.provider) !== "LangSmithSandbox") {
116
- throw new Error("MDA only supports deepagents' LangSmithSandbox provider");
117
- }
118
- const backend = await createLangSmithSandboxBackend(sandbox);
223
+ /** Override the DeepAgents LangSmith backend wrapper. Test-only. */
224
+ export function setLangSmithSandboxBackendForTests(backend) {
225
+ langSmithSandboxBackendLoader = backend
226
+ ? async () => backend
227
+ : defaultLangSmithSandboxBackendLoader;
228
+ }
229
+ /**
230
+ * Deployment this runtime belongs to, used to name the sandboxes it creates so
231
+ * `mda delete` can find them again.
232
+ *
233
+ * `MDA_DEPLOYMENT_NAME` is injected by `mda deploy`; `LANGSMITH_DEPLOYMENT_NAME`
234
+ * is the platform's own value and is preferred when present. Undefined under
235
+ * local `mda dev`, where sandboxes stay unnamed and LangSmith generates a name.
236
+ */
237
+ export function managedDeploymentName() {
238
+ return (stringOption(process.env.LANGSMITH_DEPLOYMENT_NAME) ??
239
+ stringOption(process.env.MDA_DEPLOYMENT_NAME));
240
+ }
241
+ /**
242
+ * Deterministic sandbox name for a deployment, sandbox scope, and provisioning
243
+ * recipe.
244
+ *
245
+ * The inputs are digested rather than embedded because the scope key carries
246
+ * thread and assistant UUIDs; a short digest keeps the name clear of any length
247
+ * limit while staying stable across container restarts, which is what lets a
248
+ * restarted deployment re-adopt its sandbox instead of leaking it.
249
+ *
250
+ * Provisioning is part of the identity so that editing `setup.sh` or switching
251
+ * snapshots produces a different name. An adopted sandbox skips provisioning, so
252
+ * without this a redeploy would silently leave existing threads on the old
253
+ * environment.
254
+ */
255
+ export function managedSandboxName(deployment, scopeKey, provisioning = {}) {
256
+ const digest = createHash("sha256")
257
+ .update(scopeKey)
258
+ .update("\0")
259
+ .update(provisioningFingerprint(provisioning))
260
+ .digest("hex")
261
+ .slice(0, SANDBOX_DIGEST_LENGTH);
262
+ return `${deployment}${SANDBOX_NAME_SEPARATOR}${digest}`;
263
+ }
264
+ /** Stable string for a provisioning recipe, insensitive to option ordering. */
265
+ function provisioningFingerprint(provisioning) {
266
+ const createOptions = Object.entries(provisioning.createOptions ?? {}).sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0));
267
+ return JSON.stringify([createOptions, provisioning.setupScript ?? ""]);
268
+ }
269
+ async function createLangSmithSandbox(sandbox, setupScript, config, options, mode, scopeKey) {
270
+ const { backend, adopted, hostName } = await createLangSmithSandboxBackend(sandbox, scopeKey, setupScript);
119
271
  await runConnectorSandboxHooks(options?.connectors, {
120
272
  backend,
121
- mode,
273
+ // An adopted sandbox already ran create-time provisioning in an earlier
274
+ // process, so treat it as a reuse for connector purposes.
275
+ mode: adopted ? "reuse" : mode,
122
276
  config,
123
277
  identity: options?.identity,
124
278
  });
125
- if (setupScript && setupScript.trim().length > 0) {
279
+ // Only a new sandbox needs `setup.sh`: an adopted one ran this exact script
280
+ // already, since a changed script yields a different sandbox name.
281
+ if (!adopted && setupScript && setupScript.trim().length > 0) {
126
282
  await runSetupScript(backend, setupScript);
127
283
  }
128
- return backend;
284
+ return { backend, hostName };
129
285
  }
130
- async function createLangSmithSandboxBackend(sandbox) {
131
- const { scope: _scope, apiKey = process.env.LANGSMITH_API_KEY, defaultTimeout, templateName, snapshotId, ...createSandboxOptions } = sandbox.options ?? {};
286
+ function sandboxCreateOptions(sandbox) {
287
+ const { scope: _scope, apiKey: _apiKey, defaultTimeout: _defaultTimeout, templateName, snapshotId, ...resolvedCreateOptions } = sandbox.options ?? {};
288
+ const createSandboxOptions = resolvedCreateOptions;
132
289
  if (snapshotId && templateName) {
133
290
  throw new Error("snapshotId and templateName are mutually exclusive. Pass only one creation source.");
134
291
  }
@@ -138,12 +295,162 @@ async function createLangSmithSandboxBackend(sandbox) {
138
295
  if (snapshotId) {
139
296
  createSandboxOptions.snapshotId = snapshotId;
140
297
  }
298
+ return createSandboxOptions;
299
+ }
300
+ function hostSandboxNameFor(sandbox, config, setupScript) {
301
+ const deployment = managedDeploymentName();
302
+ if (!deployment) {
303
+ return undefined;
304
+ }
305
+ return managedSandboxName(deployment, sandboxScopeKey(sandbox, config), {
306
+ createOptions: sandboxCreateOptions(sandbox),
307
+ setupScript,
308
+ });
309
+ }
310
+ async function sandboxClientFor(sandbox) {
311
+ const { SandboxClient } = await langSmithSandboxClientLoader();
312
+ const apiKey = stringOption(sandbox.options?.apiKey) ??
313
+ stringOption(process.env.LANGSMITH_API_KEY);
314
+ return new SandboxClient(apiKey ? { apiKey } : undefined);
315
+ }
316
+ async function deleteHostSandbox(sandbox, name) {
317
+ try {
318
+ const client = await sandboxClientFor(sandbox);
319
+ if (typeof client.deleteSandbox !== "function") {
320
+ return;
321
+ }
322
+ await client.deleteSandbox(name);
323
+ console.info(`[mda] sandbox invalidate: deleted name=${JSON.stringify(name)}`);
324
+ }
325
+ catch (error) {
326
+ const label = error instanceof Error
327
+ ? `${error.name}: ${error.message}`
328
+ : String(error);
329
+ console.warn(`[mda] sandbox invalidate: delete failed name=${JSON.stringify(name)} err=${label}`);
330
+ }
331
+ }
332
+ async function createLangSmithSandboxBackend(sandbox, scopeKey, setupScript) {
333
+ const { apiKey = process.env.LANGSMITH_API_KEY, defaultTimeout } = sandbox.options ?? {};
334
+ const createSandboxOptions = sandboxCreateOptions(sandbox);
141
335
  const { SandboxClient } = await langSmithSandboxClientLoader();
142
336
  const sdkOptions = stringOption(apiKey);
143
337
  const client = new SandboxClient(sdkOptions ? { apiKey: sdkOptions } : undefined);
144
- const langSmithSandbox = await client.createSandbox(createSandboxOptions);
145
- const Backend = sandbox.provider;
146
- return new Backend({ sandbox: langSmithSandbox, defaultTimeout });
338
+ const deployment = managedDeploymentName();
339
+ const sandboxName = deployment
340
+ ? managedSandboxName(deployment, scopeKey, {
341
+ createOptions: createSandboxOptions,
342
+ setupScript,
343
+ })
344
+ : undefined;
345
+ const { sandbox: langSmithSandbox, adopted } = await resolveSandboxInstance(client, createSandboxOptions, sandboxName);
346
+ const resolved = langSmithSandbox;
347
+ const hostName = stringOption(resolved.name) ?? sandboxName;
348
+ console.info(`[mda] sandbox resolve: ${adopted ? "adopted" : "created"} ` +
349
+ `name=${JSON.stringify(hostName ?? null)} ` +
350
+ `id=${JSON.stringify(resolved.id ?? null)} ` +
351
+ `scope=${JSON.stringify(scopeKey)}`);
352
+ const Backend = await langSmithSandboxBackendLoader();
353
+ return {
354
+ backend: new Backend({
355
+ sandbox: langSmithSandbox,
356
+ defaultTimeout,
357
+ }),
358
+ adopted,
359
+ hostName,
360
+ };
361
+ }
362
+ /**
363
+ * Adopt this deployment's existing sandbox for `name`, or create it.
364
+ *
365
+ * Names are deterministic per scope, so a redeployed or restarted container
366
+ * finds the sandbox its predecessor created instead of stranding it until the
367
+ * idle TTL fires. When `name` is undefined (local dev) this is a plain create.
368
+ */
369
+ async function resolveSandboxInstance(client, createSandboxOptions, name) {
370
+ if (!name) {
371
+ return {
372
+ sandbox: await client.createSandbox(createSandboxOptions),
373
+ adopted: false,
374
+ };
375
+ }
376
+ // After invalidate, refuse to adopt the same Host name even if delete lags —
377
+ // otherwise recreate loops on the broken box that just failed provision.
378
+ const existing = await adoptSandbox(client, name);
379
+ if (existing !== undefined && !invalidatedSandboxNames.has(name)) {
380
+ return { sandbox: existing, adopted: true };
381
+ }
382
+ try {
383
+ const created = await client.createSandbox({
384
+ ...createSandboxOptions,
385
+ name,
386
+ });
387
+ invalidatedSandboxNames.delete(name);
388
+ return { sandbox: created, adopted: false };
389
+ }
390
+ catch (error) {
391
+ if (!isSandboxNameConflict(error)) {
392
+ throw error;
393
+ }
394
+ // Either a concurrent container won the create race, or an unusable sandbox
395
+ // (failed, mid-delete) still holds the name. Never adopt a name we just
396
+ // invalidated — fall through to a unique suffix instead.
397
+ if (!invalidatedSandboxNames.has(name)) {
398
+ const winner = await adoptSandbox(client, name);
399
+ if (winner !== undefined) {
400
+ return { sandbox: winner, adopted: true };
401
+ }
402
+ }
403
+ // Keep the deployment prefix so teardown still finds this sandbox.
404
+ const created = await client.createSandbox({
405
+ ...createSandboxOptions,
406
+ name: `${name}-${sandboxNameSuffix()}`,
407
+ });
408
+ invalidatedSandboxNames.delete(name);
409
+ return { sandbox: created, adopted: false };
410
+ }
411
+ }
412
+ /**
413
+ * Return the existing sandbox for `name` when it is usable, else undefined.
414
+ *
415
+ * Best-effort by design: this runs on the sandbox hot path, so a lookup failure
416
+ * falls back to creating rather than failing the run.
417
+ */
418
+ async function adoptSandbox(client, name) {
419
+ if (typeof client.getSandbox !== "function") {
420
+ return undefined;
421
+ }
422
+ let existing;
423
+ try {
424
+ existing = await client.getSandbox(name);
425
+ }
426
+ catch {
427
+ return undefined;
428
+ }
429
+ if (existing === undefined || existing === null) {
430
+ return undefined;
431
+ }
432
+ const status = stringOption(existing.status)?.toLowerCase();
433
+ // No status reported: assume the SDK handed back a usable sandbox.
434
+ if (status === undefined || ADOPTABLE_STATUS.has(status)) {
435
+ return existing;
436
+ }
437
+ if (status === STOPPED_STATUS && typeof client.startSandbox === "function") {
438
+ try {
439
+ return (await client.startSandbox(name)) ?? existing;
440
+ }
441
+ catch {
442
+ return undefined;
443
+ }
444
+ }
445
+ return undefined;
446
+ }
447
+ /** True when a create failed because the sandbox name is already taken. */
448
+ function isSandboxNameConflict(error) {
449
+ const message = error instanceof Error ? `${error.name}: ${error.message}` : String(error);
450
+ return /409|conflict|already exists|already in use|duplicate/i.test(message);
451
+ }
452
+ function sandboxNameSuffix() {
453
+ return randomBytes(4).toString("hex");
147
454
  }
148
455
  function threadSyncKey(sandbox, config) {
149
456
  const scope = sandbox.options?.scope ?? "thread";
@@ -158,13 +465,6 @@ function threadSyncKey(sandbox, config) {
158
465
  }
159
466
  return sandboxScopeKey(sandbox, config);
160
467
  }
161
- function providerKey(provider) {
162
- const providerId = provider.providerId;
163
- if (typeof providerId === "string" && providerId.trim()) {
164
- return providerId.trim();
165
- }
166
- return typeof provider.name === "string" ? provider.name.trim() : "";
167
- }
168
468
  function threadIdFromConfig(config) {
169
469
  const threadId = configValue(config, "thread_id");
170
470
  if (threadId === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-manager.js","sourceRoot":"","sources":["../../src/runtime/sandbox-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox-manager.js","sourceRoot":"","sources":["../../src/runtime/sandbox-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Retry sandbox `execute` when the command stream dies before start.
3
+ *
4
+ * LangSmith sandboxes can return HTTP 201 / accept uploads while the websocket
5
+ * command channel is not ready yet. The first `execute` then fails with
6
+ * `Command stream ended before 'started' message`. Cold GitHub provision and
7
+ * `setup.sh` hit this path immediately after create; retrying the same execute
8
+ * with backoff is cheaper (and more reliable) than throwing away the box.
9
+ */
10
+ export declare function isSandboxStreamError(error: unknown): boolean;
11
+ export declare function executeWithStreamRetry<T>(execute: (command: string) => Promise<T> | T, command: string, options?: {
12
+ /** Fixed operation name for Host logs. Never pass command contents. */
13
+ label?: string;
14
+ attempts?: number;
15
+ baseDelayMs?: number;
16
+ sleep?: (ms: number) => Promise<void>;
17
+ }): Promise<T>;
18
+ //# sourceMappingURL=sandbox-stream-retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-stream-retry.d.ts","sourceRoot":"","sources":["../../src/runtime/sandbox-stream-retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwBH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAoB5D;AAED,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAC5C,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACP,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC,GACL,OAAO,CAAC,CAAC,CAAC,CAsDZ"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Retry sandbox `execute` when the command stream dies before start.
3
+ *
4
+ * LangSmith sandboxes can return HTTP 201 / accept uploads while the websocket
5
+ * command channel is not ready yet. The first `execute` then fails with
6
+ * `Command stream ended before 'started' message`. Cold GitHub provision and
7
+ * `setup.sh` hit this path immediately after create; retrying the same execute
8
+ * with backoff is cheaper (and more reliable) than throwing away the box.
9
+ */
10
+ const STREAM_EXECUTE_ATTEMPTS = 6;
11
+ // Cold boxes often need several seconds after HTTP 201 before the websocket
12
+ // command channel is ready — a 1s base burned through attempts too quickly.
13
+ const STREAM_EXECUTE_BASE_DELAY_MS = 2_000;
14
+ // Only the "never started" race is safe to retry in place. Broader transport
15
+ // errors (bare SandboxOperationError, truncated HTTP bodies) can arrive after
16
+ // the command began or finished — those belong on the invalidate/recreate path.
17
+ const STREAM_NEVER_STARTED_RE = /Command stream ended before ['"]started['"] message/i;
18
+ const STREAM_NEVER_STARTED_NAMES = new Set([
19
+ "_StreamEndedBeforeStarted",
20
+ "StreamEndedBeforeStarted",
21
+ ]);
22
+ function errorLabel(error) {
23
+ if (error instanceof Error) {
24
+ return `${error.name}: ${error.message}`;
25
+ }
26
+ return String(error);
27
+ }
28
+ export function isSandboxStreamError(error) {
29
+ if (error instanceof Error && STREAM_NEVER_STARTED_NAMES.has(error.name)) {
30
+ return true;
31
+ }
32
+ if (error !== null &&
33
+ typeof error === "object" &&
34
+ STREAM_NEVER_STARTED_NAMES.has(error.constructor?.name ?? "")) {
35
+ return true;
36
+ }
37
+ const message = error instanceof Error
38
+ ? `${error.name}: ${error.message}`
39
+ : typeof error === "string"
40
+ ? error
41
+ : String(error);
42
+ return STREAM_NEVER_STARTED_RE.test(message);
43
+ }
44
+ export async function executeWithStreamRetry(execute, command, options = {}) {
45
+ const attempts = options.attempts ?? STREAM_EXECUTE_ATTEMPTS;
46
+ const baseDelayMs = options.baseDelayMs ?? STREAM_EXECUTE_BASE_DELAY_MS;
47
+ const sleep = options.sleep ??
48
+ ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
49
+ if (attempts < 1) {
50
+ throw new Error("attempts must be >= 1");
51
+ }
52
+ let lastError;
53
+ const op = options.label?.trim() || "execute";
54
+ const started = Date.now();
55
+ for (let attempt = 0; attempt < attempts; attempt++) {
56
+ const attemptStarted = Date.now();
57
+ try {
58
+ const result = await execute(command);
59
+ if (attempt > 0) {
60
+ console.warn(`[mda] sandbox stream execute recovered after ${attempt + 1} attempt(s) ` +
61
+ `(${((Date.now() - started) / 1000).toFixed(1)}s total) op=${JSON.stringify(op)}`);
62
+ }
63
+ return result;
64
+ }
65
+ catch (error) {
66
+ lastError = error;
67
+ const elapsedAttempt = (Date.now() - attemptStarted) / 1000;
68
+ if (!isSandboxStreamError(error)) {
69
+ console.warn(`[mda] sandbox execute failed (not stream-retryable) ` +
70
+ `attempt=${attempt + 1}/${attempts} elapsed=${elapsedAttempt.toFixed(1)}s ` +
71
+ `op=${JSON.stringify(op)} err=${errorLabel(error)}`);
72
+ throw error;
73
+ }
74
+ if (attempt >= attempts - 1) {
75
+ console.warn(`[mda] sandbox stream execute exhausted retries ` +
76
+ `attempts=${attempts} elapsed=${((Date.now() - started) / 1000).toFixed(1)}s ` +
77
+ `op=${JSON.stringify(op)} err=${errorLabel(error)}`);
78
+ throw error;
79
+ }
80
+ const delayMs = baseDelayMs * 2 ** attempt;
81
+ console.warn(`[mda] sandbox stream not ready; retrying execute ` +
82
+ `attempt=${attempt + 1}/${attempts} elapsed=${elapsedAttempt.toFixed(1)}s ` +
83
+ `sleep=${(delayMs / 1000).toFixed(1)}s op=${JSON.stringify(op)} ` +
84
+ `err=${errorLabel(error)}`);
85
+ await sleep(delayMs);
86
+ }
87
+ }
88
+ throw lastError;
89
+ }
90
+ //# sourceMappingURL=sandbox-stream-retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-stream-retry.js","sourceRoot":"","sources":["../../src/runtime/sandbox-stream-retry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup-script.d.ts","sourceRoot":"","sources":["../../src/runtime/setup-script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAK5E;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,QAAQ,CAAC,GACnD,IAAI,CAON"}
1
+ {"version":3,"file":"setup-script.d.ts","sourceRoot":"","sources":["../../src/runtime/setup-script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAO5E;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAiCf;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,QAAQ,CAAC,GACnD,IAAI,CAON"}
@@ -1,3 +1,4 @@
1
+ import { executeWithStreamRetry } from "./sandbox-stream-retry.js";
1
2
  /** Absolute path the provisioning script is uploaded to inside the sandbox. */
2
3
  const SETUP_REMOTE_PATH = "/tmp/mda-setup.sh";
3
4
  /**
@@ -8,13 +9,24 @@ const SETUP_REMOTE_PATH = "/tmp/mda-setup.sh";
8
9
  * by path; otherwise it is run inline (see {@link runSetupScriptInline}).
9
10
  */
10
11
  export async function runSetupScript(backend, script) {
12
+ const sandboxId = "id" in backend && typeof backend.id === "string"
13
+ ? backend.id
14
+ : null;
11
15
  if (typeof backend.uploadFiles === "function") {
16
+ console.info(`[mda] sandbox setup.sh: uploading script ` +
17
+ `sandbox_id=${JSON.stringify(sandboxId)} path=${SETUP_REMOTE_PATH}`);
12
18
  await backend.uploadFiles([
13
19
  [SETUP_REMOTE_PATH, new TextEncoder().encode(script)],
14
20
  ]);
15
- assertSetupSucceeded(await backend.execute(`bash ${SETUP_REMOTE_PATH}`));
21
+ console.info(`[mda] sandbox setup.sh: starting execute ` +
22
+ `sandbox_id=${JSON.stringify(sandboxId)} ` +
23
+ `cmd=${JSON.stringify(`bash ${SETUP_REMOTE_PATH}`)}`);
24
+ // Fresh sandboxes often reject the first websocket execute; retry in place.
25
+ assertSetupSucceeded(await executeWithStreamRetry((command) => backend.execute(command), `bash ${SETUP_REMOTE_PATH}`, { label: "setup.sh" }));
16
26
  return;
17
27
  }
28
+ console.info(`[mda] sandbox setup.sh: starting inline execute ` +
29
+ `sandbox_id=${JSON.stringify(sandboxId)}`);
18
30
  await runSetupScriptInline(backend, script);
19
31
  }
20
32
  /**
@@ -24,7 +36,9 @@ export async function runSetupScript(backend, script) {
24
36
  * conform to the execute surface but do not expose upload support.
25
37
  */
26
38
  export async function runSetupScriptInline(backend, script) {
27
- assertSetupSucceeded(await backend.execute(script));
39
+ assertSetupSucceeded(await executeWithStreamRetry((command) => backend.execute(command), script, {
40
+ label: "setup.sh (inline)",
41
+ }));
28
42
  }
29
43
  export function assertSetupSucceeded(result) {
30
44
  if (typeof result.exitCode === "number" && result.exitCode !== 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"setup-script.js","sourceRoot":"","sources":["../../src/runtime/setup-script.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAiC,EACjC,MAAc;IAEd,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,OAAO,CAAC,WAAW,CAAC;YACxB,CAAC,iBAAiB,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACtD,CAAC,CAAC;QACH,oBAAoB,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IACD,MAAM,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAiC,EACjC,MAAc;IAEd,oBAAoB,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAoD;IAEpD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,0CAA0C,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1F,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"setup-script.js","sourceRoot":"","sources":["../../src/runtime/setup-script.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,+EAA+E;AAC/E,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAiC,EACjC,MAAc;IAEd,MAAM,SAAS,GACb,IAAI,IAAI,OAAO,IAAI,OAAQ,OAA4B,CAAC,EAAE,KAAK,QAAQ;QACrE,CAAC,CAAE,OAA0B,CAAC,EAAE;QAChC,CAAC,CAAC,IAAI,CAAC;IACX,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QAC9C,OAAO,CAAC,IAAI,CACV,2CAA2C;YACzC,cAAc,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,iBAAiB,EAAE,CACtE,CAAC;QACF,MAAM,OAAO,CAAC,WAAW,CAAC;YACxB,CAAC,iBAAiB,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACtD,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CACV,2CAA2C;YACzC,cAAc,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG;YAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,iBAAiB,EAAE,CAAC,EAAE,CACvD,CAAC;QACF,4EAA4E;QAC5E,oBAAoB,CAClB,MAAM,sBAAsB,CAC1B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EACrC,QAAQ,iBAAiB,EAAE,EAC3B,EAAE,KAAK,EAAE,UAAU,EAAE,CACtB,CACF,CAAC;QACF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,IAAI,CACV,kDAAkD;QAChD,cAAc,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAC5C,CAAC;IACF,MAAM,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAiC,EACjC,MAAc;IAEd,oBAAoB,CAClB,MAAM,sBAAsB,CAC1B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EACrC,MAAM,EACN;QACE,KAAK,EAAE,mBAAmB;KAC3B,CACF,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAoD;IAEpD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,0CAA0C,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1F,CAAC;IACJ,CAAC;AACH,CAAC"}