@agentstep/agent-sdk 0.5.10 → 0.5.12

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 (218) hide show
  1. package/dist/auth/middleware.js +8 -8
  2. package/dist/backends/claude/args.js +6 -6
  3. package/dist/backends/claude/index.js +12 -12
  4. package/dist/backends/claude/wrapper-script.js +1 -1
  5. package/dist/backends/codex/auth.js +6 -6
  6. package/dist/backends/codex/index.js +14 -14
  7. package/dist/backends/codex/setup.js +2 -2
  8. package/dist/backends/codex/wrapper-script.js +1 -1
  9. package/dist/backends/factory/auth.js +6 -6
  10. package/dist/backends/factory/index.js +16 -16
  11. package/dist/backends/factory/setup.js +2 -2
  12. package/dist/backends/factory/wrapper-script.js +1 -1
  13. package/dist/backends/gemini/auth.js +6 -6
  14. package/dist/backends/gemini/index.js +12 -12
  15. package/dist/backends/gemini/setup.js +2 -2
  16. package/dist/backends/gemini/wrapper-script.js +1 -1
  17. package/dist/backends/opencode/auth.js +6 -6
  18. package/dist/backends/opencode/index.js +14 -14
  19. package/dist/backends/opencode/setup.js +2 -2
  20. package/dist/backends/opencode/wrapper-script.js +1 -1
  21. package/dist/backends/pi/auth.js +6 -6
  22. package/dist/backends/pi/index.js +14 -14
  23. package/dist/backends/pi/setup.js +2 -2
  24. package/dist/backends/pi/wrapper-script.js +1 -1
  25. package/dist/backends/registry.js +36 -36
  26. package/dist/{chunk-ZEDULYKX.js → chunk-2IISXUVF.js} +1 -1
  27. package/dist/{chunk-34Q6WMIT.js → chunk-2Z56TPBL.js} +3 -3
  28. package/dist/{chunk-WCLMAQR4.js → chunk-3DRK36FB.js} +5 -5
  29. package/dist/{chunk-2PTWIZX6.js → chunk-3NNU7TQ4.js} +8 -8
  30. package/dist/{chunk-NFGCFN57.js → chunk-3UK3IF27.js} +6 -6
  31. package/dist/chunk-4ANV3AH3.js +65 -0
  32. package/dist/{chunk-RNU253MD.js → chunk-4ENK7S24.js} +21 -2
  33. package/dist/{chunk-IFZ7EXMG.js → chunk-4EVT4MFD.js} +1 -1
  34. package/dist/{chunk-7POF237O.js → chunk-4MKJB6U2.js} +1 -1
  35. package/dist/{chunk-WKPUTJGD.js → chunk-5LDBCBOR.js} +1 -1
  36. package/dist/{chunk-ZIMK4TPI.js → chunk-6PIL2RJD.js} +2 -2
  37. package/dist/{chunk-6TRWB7CE.js → chunk-6X3G5SAS.js} +41 -18
  38. package/dist/{chunk-LVSQULRG.js → chunk-7ASUTNKE.js} +2 -2
  39. package/dist/{chunk-KJENLSJT.js → chunk-7BT6V4CH.js} +20 -18
  40. package/dist/{chunk-5COWXLGO.js → chunk-7D55V4XP.js} +1 -1
  41. package/dist/{chunk-KYDOZBD5.js → chunk-7NZ46LIO.js} +29 -28
  42. package/dist/{chunk-4QBWHZKQ.js → chunk-7SO7O6RV.js} +2 -2
  43. package/dist/{chunk-4JPJ3ZIV.js → chunk-7Z6LTBYQ.js} +5 -5
  44. package/dist/{chunk-NVTDXBGV.js → chunk-APKELBCA.js} +1 -1
  45. package/dist/{chunk-YSUPRYX2.js → chunk-AQHYCRTO.js} +1 -1
  46. package/dist/{chunk-GUD3MOP7.js → chunk-B3UOTIOI.js} +9 -9
  47. package/dist/{chunk-2OFGWHZB.js → chunk-B5JUCPYW.js} +1 -1
  48. package/dist/{chunk-LJSD6G6K.js → chunk-BQ5MWNWN.js} +3 -3
  49. package/dist/{chunk-SKRIZPPF.js → chunk-BYJRL4IQ.js} +6 -6
  50. package/dist/{chunk-56KP3SAI.js → chunk-C3ZPWUDE.js} +2 -2
  51. package/dist/{chunk-LSXVCZN7.js → chunk-CD2FQVQR.js} +1 -1
  52. package/dist/{chunk-6BOOQV4Q.js → chunk-CFLMIJ2C.js} +3 -3
  53. package/dist/{chunk-6BRG2NJL.js → chunk-CGGGCKSK.js} +4 -4
  54. package/dist/{chunk-QYSDP6V5.js → chunk-CMOU2OFW.js} +1 -1
  55. package/dist/chunk-D2GADI73.js +253 -0
  56. package/dist/{chunk-75C3KFST.js → chunk-D3TY7PMJ.js} +5 -5
  57. package/dist/{chunk-RTZNJDEL.js → chunk-DAIEVD4O.js} +4 -4
  58. package/dist/{chunk-BGNQXT4T.js → chunk-DDF2CRA3.js} +2 -2
  59. package/dist/{chunk-DQ5VMD3Z.js → chunk-FCKUWBUL.js} +2 -2
  60. package/dist/{chunk-YFGBTXID.js → chunk-FV2XE3DX.js} +2 -2
  61. package/dist/{chunk-73BYGQWA.js → chunk-G7Y5YGLE.js} +1 -1
  62. package/dist/{chunk-PXOL34HI.js → chunk-HE3IEIKM.js} +3 -3
  63. package/dist/{chunk-WKMRBRJQ.js → chunk-HH23DOBB.js} +1 -1
  64. package/dist/{chunk-HCORTMQH.js → chunk-HHS6EHSG.js} +4 -4
  65. package/dist/{chunk-6T4DKZYW.js → chunk-ISXWS5Y4.js} +8 -8
  66. package/dist/{chunk-QBJOYOVF.js → chunk-J6T3W6RY.js} +15 -0
  67. package/dist/{chunk-CXDNTVCM.js → chunk-JK2GXKOQ.js} +5 -5
  68. package/dist/{chunk-A4BGGHRC.js → chunk-JXU6SA6S.js} +42 -1
  69. package/dist/{chunk-37Y556D5.js → chunk-KHICXOTH.js} +3 -3
  70. package/dist/chunk-KJ2GJLPQ.js +39 -0
  71. package/dist/{chunk-BUQATYS7.js → chunk-KNWM237Q.js} +2 -2
  72. package/dist/{chunk-RNDLMMKI.js → chunk-LOWHDHDD.js} +3 -3
  73. package/dist/{chunk-6SVZD3UA.js → chunk-M4OF5D4K.js} +4 -4
  74. package/dist/{chunk-CZPWZ5A5.js → chunk-M7SYXJBT.js} +1 -1
  75. package/dist/{chunk-IBO36HUU.js → chunk-MQBNN4KH.js} +1 -1
  76. package/dist/{chunk-32RP2UX6.js → chunk-MTB7SCZ5.js} +5 -5
  77. package/dist/{chunk-LEVIKSPQ.js → chunk-MTRTBT7L.js} +1 -1
  78. package/dist/{chunk-TARFRZ44.js → chunk-N5F5OUUZ.js} +3 -3
  79. package/dist/{chunk-M2LUXIXU.js → chunk-NMZMRH3E.js} +1 -1
  80. package/dist/{chunk-KGTWD46T.js → chunk-NWIMPG4M.js} +1 -1
  81. package/dist/chunk-OGA7KDQZ.js +37 -0
  82. package/dist/chunk-ONEKY3CM.js +146 -0
  83. package/dist/{chunk-SUFGP47L.js → chunk-ONS32E65.js} +28 -20
  84. package/dist/{chunk-XG4UIGDH.js → chunk-PAQ2JFVD.js} +1 -1
  85. package/dist/{chunk-N5C3WQWD.js → chunk-PDUQCDIO.js} +1 -1
  86. package/dist/{chunk-DSNNEER4.js → chunk-PJTGQVKB.js} +1 -1
  87. package/dist/{chunk-SAUR463Z.js → chunk-PLSXDJT4.js} +6 -5
  88. package/dist/{chunk-NL4EKSFA.js → chunk-PPI76YVT.js} +2 -2
  89. package/dist/{chunk-N33MOUCH.js → chunk-PRWWTLPR.js} +3 -3
  90. package/dist/{chunk-T75UYYMI.js → chunk-PVFGDKXO.js} +2 -2
  91. package/dist/{chunk-PIJJXKMK.js → chunk-PXMTLKUJ.js} +3 -3
  92. package/dist/chunk-PZ5EGY64.js +37 -0
  93. package/dist/{chunk-6ERUVF2Y.js → chunk-QB7JAMWG.js} +1 -1
  94. package/dist/{chunk-IY3KO2BC.js → chunk-QS544PN6.js} +4 -4
  95. package/dist/{chunk-GBGXSRZX.js → chunk-R5LXEIOJ.js} +9 -9
  96. package/dist/{chunk-OJUDLJOG.js → chunk-REY2YZ5X.js} +3 -3
  97. package/dist/{chunk-4IEDAORR.js → chunk-RFK4W5PZ.js} +1 -1
  98. package/dist/{chunk-NOG7ZJJA.js → chunk-RLLVP37Q.js} +1 -1
  99. package/dist/{chunk-HV7M7UUY.js → chunk-S5NB47IR.js} +6 -6
  100. package/dist/{chunk-3XGUMXGR.js → chunk-SXR4HQZY.js} +2 -2
  101. package/dist/{chunk-YN2F26NN.js → chunk-T3CXZ2BE.js} +2 -2
  102. package/dist/{chunk-MF3J7WTR.js → chunk-TN34IN7S.js} +16 -13
  103. package/dist/{chunk-XUODI55L.js → chunk-U3QU5AVC.js} +1 -1
  104. package/dist/{chunk-PNJRIMKJ.js → chunk-UB5WVCY4.js} +3 -3
  105. package/dist/{chunk-P7P2NWZD.js → chunk-URNG7ZX2.js} +1 -1
  106. package/dist/{chunk-3TF3YLM2.js → chunk-UROFA6OZ.js} +2 -2
  107. package/dist/{chunk-T5P54I7S.js → chunk-UTQRPXTL.js} +9 -8
  108. package/dist/{chunk-Y3EUEPGQ.js → chunk-UWHV7EJG.js} +2 -2
  109. package/dist/chunk-UY3VT3HQ.js +39 -0
  110. package/dist/{chunk-5LXMEHQX.js → chunk-VG2TYPZ4.js} +18 -2
  111. package/dist/{chunk-EZBJEV6F.js → chunk-VTH56ERA.js} +4 -4
  112. package/dist/{chunk-Z4DZMNDE.js → chunk-W6QYWXOZ.js} +2 -2
  113. package/dist/{chunk-3WZGFAV4.js → chunk-WKGJQIRC.js} +4 -3
  114. package/dist/{chunk-EGN4TPN5.js → chunk-WT3SEE34.js} +3 -3
  115. package/dist/{chunk-CZ4IOIWV.js → chunk-X23OAFFE.js} +4 -4
  116. package/dist/{chunk-E4FQRMHV.js → chunk-XJYR5HE3.js} +18 -0
  117. package/dist/{chunk-X3IXLDWQ.js → chunk-XSRIFWHR.js} +2 -2
  118. package/dist/{chunk-SS5IC3XV.js → chunk-Y6BFKPNB.js} +1 -1
  119. package/dist/{chunk-EFSLGRY2.js → chunk-YCL5RHEC.js} +2 -2
  120. package/dist/{chunk-LGVD2IGL.js → chunk-YD67W6DW.js} +9 -9
  121. package/dist/{chunk-J3XIGC3L.js → chunk-YE47YUGE.js} +6 -6
  122. package/dist/{chunk-F6DCNXO5.js → chunk-YEJFXJHR.js} +2 -2
  123. package/dist/{chunk-ZV6Y5VOD.js → chunk-YUVQQCT4.js} +15 -15
  124. package/dist/{chunk-T64ECODW.js → chunk-YUZFNAG6.js} +21 -0
  125. package/dist/{chunk-OWG6UV4S.js → chunk-YWAMRRAX.js} +10 -10
  126. package/dist/config/index.js +5 -5
  127. package/dist/containers/client.js +6 -6
  128. package/dist/containers/exec.js +6 -6
  129. package/dist/containers/lifecycle.js +48 -48
  130. package/dist/containers/setup.js +10 -9
  131. package/dist/db/agents.js +6 -6
  132. package/dist/db/api_keys.js +5 -5
  133. package/dist/db/audit.js +3 -3
  134. package/dist/db/batch.js +10 -10
  135. package/dist/db/client.js +2 -2
  136. package/dist/db/credentials.js +3 -3
  137. package/dist/db/drizzle.js +4 -4
  138. package/dist/db/environments.js +6 -6
  139. package/dist/db/events.js +5 -5
  140. package/dist/db/files.js +5 -5
  141. package/dist/db/memory.js +5 -5
  142. package/dist/db/migrations.js +1 -1
  143. package/dist/db/proxy.js +5 -5
  144. package/dist/db/schema.js +5 -3
  145. package/dist/db/session-resources.js +5 -5
  146. package/dist/db/sessions.js +8 -8
  147. package/dist/db/skills.js +5 -5
  148. package/dist/db/sync.js +5 -5
  149. package/dist/db/tenants.js +3 -3
  150. package/dist/db/threads.js +7 -7
  151. package/dist/db/traces.js +5 -5
  152. package/dist/db/upstream_keys.js +3 -3
  153. package/dist/db/vaults.js +6 -6
  154. package/dist/db/work.js +33 -0
  155. package/dist/dreaming/review.js +11 -11
  156. package/dist/handlers/agents.js +64 -64
  157. package/dist/handlers/api_keys.js +65 -65
  158. package/dist/handlers/audit.js +65 -65
  159. package/dist/handlers/batch.js +65 -65
  160. package/dist/handlers/credentials.js +65 -65
  161. package/dist/handlers/environments.js +65 -65
  162. package/dist/handlers/events.js +68 -68
  163. package/dist/handlers/files.js +65 -65
  164. package/dist/handlers/index.js +141 -120
  165. package/dist/handlers/license.js +64 -64
  166. package/dist/handlers/memory.js +66 -66
  167. package/dist/handlers/metrics.js +64 -64
  168. package/dist/handlers/models.js +65 -65
  169. package/dist/handlers/providers.js +64 -64
  170. package/dist/handlers/resources.js +64 -64
  171. package/dist/handlers/sessions.js +68 -68
  172. package/dist/handlers/settings.js +64 -64
  173. package/dist/handlers/skills-write.js +67 -65
  174. package/dist/handlers/skills.js +65 -65
  175. package/dist/handlers/stream.js +64 -64
  176. package/dist/handlers/tenants.js +65 -65
  177. package/dist/handlers/threads.js +65 -65
  178. package/dist/handlers/traces.js +65 -65
  179. package/dist/handlers/ui.d.ts +6 -0
  180. package/dist/handlers/ui.d.ts.map +1 -0
  181. package/dist/handlers/ui.js +1 -1
  182. package/dist/handlers/upstream_keys.js +67 -67
  183. package/dist/handlers/vaults.js +64 -64
  184. package/dist/handlers/whoami.js +64 -64
  185. package/dist/handlers/work.js +114 -0
  186. package/dist/http.js +63 -63
  187. package/dist/index.js +84 -73
  188. package/dist/init.js +60 -60
  189. package/dist/lib/model-registry.js +6 -6
  190. package/dist/lib/skills-cache.js +6 -6
  191. package/dist/observability/otlp.js +12 -12
  192. package/dist/observability/redactor.js +8 -8
  193. package/dist/providers/daytona.js +1 -1
  194. package/dist/providers/fly.js +7 -6
  195. package/dist/providers/modal.js +5 -5
  196. package/dist/providers/registry.js +15 -3
  197. package/dist/providers/resolve-secrets.js +7 -7
  198. package/dist/providers/sprites.js +7 -7
  199. package/dist/providers/upstream-keys.js +12 -12
  200. package/dist/providers/vercel.js +5 -5
  201. package/dist/proxy/forward.js +6 -6
  202. package/dist/queue/index.js +6 -6
  203. package/dist/sessions/bus.js +10 -10
  204. package/dist/sessions/driver.js +53 -53
  205. package/dist/sessions/grader.js +5 -5
  206. package/dist/sessions/secrets.js +8 -8
  207. package/dist/sessions/sweeper.js +49 -49
  208. package/dist/sessions/threads.js +54 -54
  209. package/dist/shutdown.js +50 -50
  210. package/dist/sync/anthropic.js +10 -10
  211. package/dist/sync/container-file-sync.js +6 -6
  212. package/dist/sync/file-sync.js +17 -17
  213. package/dist/workers/runner.js +85 -0
  214. package/package.json +1 -1
  215. package/dist/chunk-3W6KEDQE.js +0 -20
  216. package/dist/chunk-JDBXIJKG.js +0 -20
  217. package/dist/chunk-QQDSHL27.js +0 -22
  218. package/dist/chunk-SWIP7JBQ.js +0 -22
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  listTraces
3
- } from "./chunk-7POF237O.js";
3
+ } from "./chunk-4MKJB6U2.js";
4
4
  import {
5
5
  jsonOk,
6
6
  routeWrap
7
- } from "./chunk-DQ5VMD3Z.js";
7
+ } from "./chunk-FCKUWBUL.js";
8
8
  import {
9
9
  exportTrace
10
- } from "./chunk-4JPJ3ZIV.js";
10
+ } from "./chunk-7Z6LTBYQ.js";
11
11
  import {
12
12
  listEventsByTrace,
13
13
  rowToManagedEvent
14
- } from "./chunk-N33MOUCH.js";
14
+ } from "./chunk-PRWWTLPR.js";
15
15
  import {
16
16
  badRequest,
17
17
  notFound
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getModels
3
- } from "./chunk-KGTWD46T.js";
3
+ } from "./chunk-NWIMPG4M.js";
4
4
  import {
5
5
  jsonOk,
6
6
  routeWrap
7
- } from "./chunk-DQ5VMD3Z.js";
7
+ } from "./chunk-FCKUWBUL.js";
8
8
 
9
9
  // src/handlers/models.ts
10
10
  function handleListModels(request) {
@@ -4,13 +4,13 @@ import {
4
4
  } from "./chunk-D2XITRN6.js";
5
5
  import {
6
6
  authenticateAndIntercept
7
- } from "./chunk-LJSD6G6K.js";
7
+ } from "./chunk-BQ5MWNWN.js";
8
8
  import {
9
9
  checkAndBump
10
10
  } from "./chunk-HVUWXUUI.js";
11
11
  import {
12
12
  ensureInitialized
13
- } from "./chunk-KJENLSJT.js";
13
+ } from "./chunk-7BT6V4CH.js";
14
14
  import {
15
15
  captureException
16
16
  } from "./chunk-3MQ2FWXS.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  listEntries
3
- } from "./chunk-OJUDLJOG.js";
3
+ } from "./chunk-REY2YZ5X.js";
4
4
  import {
5
5
  getConfig
6
- } from "./chunk-3WZGFAV4.js";
6
+ } from "./chunk-WKGJQIRC.js";
7
7
 
8
8
  // src/observability/redactor.ts
9
9
  var REDACTED = "[REDACTED]";
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  getDb,
15
15
  init_client
16
- } from "./chunk-XUODI55L.js";
16
+ } from "./chunk-U3QU5AVC.js";
17
17
 
18
18
  // src/db/upstream_keys.ts
19
19
  init_client();
@@ -3,21 +3,21 @@ import {
3
3
  } from "./chunk-23UKWXJH.js";
4
4
  import {
5
5
  recordAudit
6
- } from "./chunk-N5C3WQWD.js";
6
+ } from "./chunk-PDUQCDIO.js";
7
7
  import {
8
8
  requireFeature
9
9
  } from "./chunk-2N2KL4KM.js";
10
10
  import {
11
11
  jsonOk,
12
12
  routeWrap
13
- } from "./chunk-DQ5VMD3Z.js";
13
+ } from "./chunk-FCKUWBUL.js";
14
14
  import {
15
15
  archiveTenant,
16
16
  createTenant,
17
17
  getTenant,
18
18
  listTenants,
19
19
  renameTenant
20
- } from "./chunk-LSXVCZN7.js";
20
+ } from "./chunk-CD2FQVQR.js";
21
21
  import {
22
22
  badRequest,
23
23
  notFound
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-3WZGFAV4.js";
3
+ } from "./chunk-WKGJQIRC.js";
4
4
 
5
5
  // src/backends/factory/auth.ts
6
6
  function buildFactoryAuthEnv() {
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  disableUpstreamKey,
3
3
  selectNextUpstreamKey
4
- } from "./chunk-73BYGQWA.js";
4
+ } from "./chunk-G7Y5YGLE.js";
5
5
  import {
6
6
  listEntries
7
- } from "./chunk-OJUDLJOG.js";
7
+ } from "./chunk-REY2YZ5X.js";
8
8
  import {
9
9
  getSession
10
- } from "./chunk-32RP2UX6.js";
10
+ } from "./chunk-MTB7SCZ5.js";
11
11
  import {
12
12
  getConfig
13
- } from "./chunk-3WZGFAV4.js";
13
+ } from "./chunk-WKGJQIRC.js";
14
14
 
15
15
  // src/providers/upstream-keys.ts
16
16
  var CONSECUTIVE_FAIL_THRESHOLD = 3;
@@ -1,22 +1,22 @@
1
+ import {
2
+ buildOpencodeArgs
3
+ } from "./chunk-P56WU3UT.js";
1
4
  import {
2
5
  buildOpencodeAuthEnv,
3
6
  validateOpencodeRuntime
4
- } from "./chunk-4IEDAORR.js";
7
+ } from "./chunk-RFK4W5PZ.js";
5
8
  import {
6
9
  buildOpencodeConfigEnv
7
10
  } from "./chunk-V5DH3OAC.js";
8
11
  import {
9
12
  prepareOpencodeOnSandbox
10
- } from "./chunk-P7P2NWZD.js";
11
- import {
12
- createOpencodeTranslator
13
- } from "./chunk-ETWGCBIQ.js";
13
+ } from "./chunk-URNG7ZX2.js";
14
14
  import {
15
15
  OPENCODE_WRAPPER_PATH
16
- } from "./chunk-SWIP7JBQ.js";
16
+ } from "./chunk-UY3VT3HQ.js";
17
17
  import {
18
- buildOpencodeArgs
19
- } from "./chunk-P56WU3UT.js";
18
+ createOpencodeTranslator
19
+ } from "./chunk-ETWGCBIQ.js";
20
20
  import {
21
21
  wrapPromptWithSystem
22
22
  } from "./chunk-YE2RMJY7.js";
@@ -9,6 +9,21 @@ mkdir -p /tmp/v8-cache
9
9
  # Install claude CLI if not present
10
10
  if ! command -v claude >/dev/null 2>&1; then npm install -g @anthropic-ai/claude-code; fi
11
11
  claude --version >&2 2>/dev/null || true
12
+ # Sprites keep-alive: prevent VM suspension during long agent turns.
13
+ # Only activates if the sprites management socket exists (sprites containers only).
14
+ SPRITE_SOCK="/.sprite/api.sock"
15
+ HEARTBEAT_PID=""
16
+ if [ -S "$SPRITE_SOCK" ]; then
17
+ # Create task with 5-minute expiry
18
+ curl -sf --unix-socket "$SPRITE_SOCK" -H "Host: sprite" -X POST http://sprite/v1/tasks -H "Content-Type: application/json" -d '{"name":"agent-turn","expire":"5m"}' >/dev/null 2>&1
19
+ # Background heartbeat: refresh every 60s
20
+ (while sleep 60; do
21
+ curl -sf --unix-socket "$SPRITE_SOCK" -H "Host: sprite" -X PUT http://sprite/v1/tasks/agent-turn -H "Content-Type: application/json" -d '{"expire":"5m"}' >/dev/null 2>&1
22
+ done) &
23
+ HEARTBEAT_PID=$!
24
+ # Cleanup on exit
25
+ trap 'curl -sf --unix-socket "$SPRITE_SOCK" -H "Host: sprite" -X DELETE http://sprite/v1/tasks/agent-turn >/dev/null 2>&1; [ -n "$HEARTBEAT_PID" ] && kill $HEARTBEAT_PID 2>/dev/null' EXIT
26
+ fi
12
27
  # Read env vars from stdin until blank line, save remaining stdin to temp file
13
28
  PROMPT_FILE=$(mktemp)
14
29
  while IFS= read -r line; do [ -z "$line" ] && break; export "$line"; done
@@ -4,14 +4,14 @@ import {
4
4
  import {
5
5
  jsonOk,
6
6
  routeWrap
7
- } from "./chunk-DQ5VMD3Z.js";
7
+ } from "./chunk-FCKUWBUL.js";
8
8
  import {
9
9
  getProxiedTenantId
10
- } from "./chunk-EFSLGRY2.js";
10
+ } from "./chunk-YCL5RHEC.js";
11
11
  import {
12
12
  getSession,
13
13
  updateSessionResources
14
- } from "./chunk-32RP2UX6.js";
14
+ } from "./chunk-MTB7SCZ5.js";
15
15
  import {
16
16
  countResources,
17
17
  createResource,
@@ -20,11 +20,11 @@ import {
20
20
  init_session_resources,
21
21
  listResources,
22
22
  updateResource
23
- } from "./chunk-3TF3YLM2.js";
23
+ } from "./chunk-UROFA6OZ.js";
24
24
  import {
25
25
  getDb,
26
26
  init_client
27
- } from "./chunk-XUODI55L.js";
27
+ } from "./chunk-U3QU5AVC.js";
28
28
  import {
29
29
  badRequest,
30
30
  notFound
@@ -1,3 +1,7 @@
1
+ import {
2
+ getConfig
3
+ } from "./chunk-WKGJQIRC.js";
4
+
1
5
  // src/providers/registry.ts
2
6
  var PROVIDERS = {
3
7
  sprites: async () => (await import("./providers/sprites.js")).spritesProvider,
@@ -20,7 +24,44 @@ async function resolveContainerProvider(providerName) {
20
24
  if (!loader) throw new Error(`Unknown provider: "${key}". Available: ${Object.keys(PROVIDERS).join(", ")}`);
21
25
  return loader();
22
26
  }
27
+ var warnedEnvProvider = false;
28
+ async function resolveProvider(opts) {
29
+ const result = await tryResolveProvider(opts);
30
+ if (!result) {
31
+ throw new Error(
32
+ "No container provider configured. Set DEFAULT_PROVIDER env var, use gateway serve --provider <name>, or gateway worker --provider <name>."
33
+ );
34
+ }
35
+ return result;
36
+ }
37
+ async function tryResolveProvider(opts) {
38
+ if (opts?.override) {
39
+ return resolveContainerProvider(opts.override);
40
+ }
41
+ if (opts?.envConfigProvider) {
42
+ if (!warnedEnvProvider) {
43
+ console.warn("[provider] config.provider on environment is deprecated \u2014 use gateway serve --provider or DEFAULT_PROVIDER env var");
44
+ warnedEnvProvider = true;
45
+ }
46
+ return resolveContainerProvider(opts.envConfigProvider);
47
+ }
48
+ const cfg = getConfig();
49
+ if (cfg.defaultProvider) {
50
+ return resolveContainerProvider(cfg.defaultProvider);
51
+ }
52
+ return null;
53
+ }
54
+ function resolveProviderName(opts) {
55
+ if (opts?.override) return opts.override;
56
+ if (opts?.envConfigProvider) return opts.envConfigProvider;
57
+ const cfg = getConfig();
58
+ if (cfg.defaultProvider) return cfg.defaultProvider;
59
+ return "unknown";
60
+ }
23
61
 
24
62
  export {
25
- resolveContainerProvider
63
+ resolveContainerProvider,
64
+ resolveProvider,
65
+ tryResolveProvider,
66
+ resolveProviderName
26
67
  };
@@ -11,18 +11,18 @@ import {
11
11
  getFileRecord,
12
12
  listFiles,
13
13
  updateFileStoragePath
14
- } from "./chunk-BUQATYS7.js";
14
+ } from "./chunk-KNWM237Q.js";
15
15
  import {
16
16
  assertResourceTenant
17
17
  } from "./chunk-23UKWXJH.js";
18
18
  import {
19
19
  jsonOk,
20
20
  routeWrap
21
- } from "./chunk-DQ5VMD3Z.js";
21
+ } from "./chunk-FCKUWBUL.js";
22
22
  import {
23
23
  getDb,
24
24
  init_client
25
- } from "./chunk-XUODI55L.js";
25
+ } from "./chunk-U3QU5AVC.js";
26
26
  import {
27
27
  badRequest,
28
28
  notFound
@@ -0,0 +1,39 @@
1
+ // src/backends/factory/wrapper-script.ts
2
+ var FACTORY_WRAPPER_PATH = "/tmp/.factory-wrapper";
3
+ var SANDBOX_WRAPPER_SCRIPT = [
4
+ "#!/bin/bash",
5
+ "set -e",
6
+ 'while IFS= read -r line; do [ -z "$line" ] && break; export "$line"; done',
7
+ "PROMPT=$(cat)",
8
+ // Sprites keep-alive: prevent VM suspension during long agent turns.
9
+ 'SPRITE_SOCK="/.sprite/api.sock"',
10
+ 'HEARTBEAT_PID=""',
11
+ 'if [ -S "$SPRITE_SOCK" ]; then',
12
+ ' curl -sf --unix-socket "$SPRITE_SOCK" -H "Host: sprite" \\',
13
+ " -X POST http://sprite/v1/tasks \\",
14
+ ' -H "Content-Type: application/json" \\',
15
+ ` -d '{"name":"agent-turn","expire":"5m"}' >/dev/null 2>&1`,
16
+ " (while sleep 60; do",
17
+ ' curl -sf --unix-socket "$SPRITE_SOCK" -H "Host: sprite" \\',
18
+ " -X PUT http://sprite/v1/tasks/agent-turn \\",
19
+ ' -H "Content-Type: application/json" \\',
20
+ ` -d '{"expire":"5m"}' >/dev/null 2>&1`,
21
+ " done) &",
22
+ " HEARTBEAT_PID=$!",
23
+ ` trap 'curl -sf --unix-socket "$SPRITE_SOCK" -H "Host: sprite" -X DELETE http://sprite/v1/tasks/agent-turn >/dev/null 2>&1; [ -n "$HEARTBEAT_PID" ] && kill $HEARTBEAT_PID 2>/dev/null' EXIT`,
24
+ "fi",
25
+ 'droid "$@" "$PROMPT"'
26
+ ].join("\n");
27
+ async function installFactoryWrapper(sandboxName, provider) {
28
+ const escaped = SANDBOX_WRAPPER_SCRIPT.replace(/'/g, "'\\''");
29
+ await provider.exec(sandboxName, [
30
+ "bash",
31
+ "-c",
32
+ `printf '%s' '${escaped}' > ${FACTORY_WRAPPER_PATH} && chmod +x ${FACTORY_WRAPPER_PATH}`
33
+ ]);
34
+ }
35
+
36
+ export {
37
+ FACTORY_WRAPPER_PATH,
38
+ installFactoryWrapper
39
+ };
@@ -10,10 +10,10 @@ import {
10
10
  import {
11
11
  getDrizzle,
12
12
  init_drizzle
13
- } from "./chunk-T75UYYMI.js";
13
+ } from "./chunk-PVFGDKXO.js";
14
14
  import {
15
15
  schema_exports
16
- } from "./chunk-RNU253MD.js";
16
+ } from "./chunk-4ENK7S24.js";
17
17
 
18
18
  // src/db/files.ts
19
19
  init_drizzle();
@@ -5,14 +5,14 @@ import {
5
5
  import {
6
6
  getDrizzle,
7
7
  init_drizzle
8
- } from "./chunk-T75UYYMI.js";
8
+ } from "./chunk-PVFGDKXO.js";
9
9
  import {
10
10
  schema_exports
11
- } from "./chunk-RNU253MD.js";
11
+ } from "./chunk-4ENK7S24.js";
12
12
  import {
13
13
  getDb,
14
14
  init_client
15
- } from "./chunk-XUODI55L.js";
15
+ } from "./chunk-U3QU5AVC.js";
16
16
 
17
17
  // src/db/sync.ts
18
18
  init_drizzle();
@@ -2,19 +2,19 @@ import {
2
2
  getSyncRow,
3
3
  getSyncedRemoteId,
4
4
  upsertSync
5
- } from "./chunk-RNDLMMKI.js";
5
+ } from "./chunk-LOWHDHDD.js";
6
6
  import {
7
7
  injectMcpAuthHeaders
8
8
  } from "./chunk-DBFPJSOY.js";
9
9
  import {
10
10
  listEntries
11
- } from "./chunk-OJUDLJOG.js";
11
+ } from "./chunk-REY2YZ5X.js";
12
12
  import {
13
13
  getEnvironment
14
- } from "./chunk-6BOOQV4Q.js";
14
+ } from "./chunk-CFLMIJ2C.js";
15
15
  import {
16
16
  getAgent
17
- } from "./chunk-EGN4TPN5.js";
17
+ } from "./chunk-WT3SEE34.js";
18
18
 
19
19
  // src/sync/anthropic.ts
20
20
  import { createHash } from "crypto";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  jsonOk,
3
3
  routeWrap
4
- } from "./chunk-DQ5VMD3Z.js";
4
+ } from "./chunk-FCKUWBUL.js";
5
5
 
6
6
  // src/handlers/whoami.ts
7
7
  function handleWhoami(request) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-3WZGFAV4.js";
3
+ } from "./chunk-WKGJQIRC.js";
4
4
 
5
5
  // src/backends/codex/auth.ts
6
6
  function buildCodexAuthEnv() {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  init_session_resources,
3
3
  session_resources_exports
4
- } from "./chunk-3TF3YLM2.js";
4
+ } from "./chunk-UROFA6OZ.js";
5
5
  import {
6
6
  getAgent
7
- } from "./chunk-EGN4TPN5.js";
7
+ } from "./chunk-WT3SEE34.js";
8
8
  import {
9
9
  DEFAULT_TENANT_ID
10
- } from "./chunk-LSXVCZN7.js";
10
+ } from "./chunk-CD2FQVQR.js";
11
11
  import {
12
12
  init_ids,
13
13
  newId
@@ -20,10 +20,10 @@ import {
20
20
  import {
21
21
  getDrizzle,
22
22
  init_drizzle
23
- } from "./chunk-T75UYYMI.js";
23
+ } from "./chunk-PVFGDKXO.js";
24
24
  import {
25
25
  schema_exports
26
- } from "./chunk-RNU253MD.js";
26
+ } from "./chunk-4ENK7S24.js";
27
27
  import {
28
28
  __toCommonJS
29
29
  } from "./chunk-2ESYSVXG.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-3WZGFAV4.js";
3
+ } from "./chunk-WKGJQIRC.js";
4
4
  import {
5
5
  serverBusy
6
6
  } from "./chunk-EZYKRG4W.js";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  jsonOk,
3
3
  routeWrap
4
- } from "./chunk-DQ5VMD3Z.js";
4
+ } from "./chunk-FCKUWBUL.js";
5
5
  import {
6
6
  resolveContainerProvider
7
- } from "./chunk-A4BGGHRC.js";
7
+ } from "./chunk-JXU6SA6S.js";
8
8
  import {
9
9
  getConfig
10
- } from "./chunk-3WZGFAV4.js";
10
+ } from "./chunk-WKGJQIRC.js";
11
11
 
12
12
  // src/handlers/providers.ts
13
13
  var LOCAL_PROVIDERS = ["docker", "apple-container", "podman"];
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  installCodexWrapper
3
- } from "./chunk-E4FQRMHV.js";
3
+ } from "./chunk-XJYR5HE3.js";
4
4
 
5
5
  // src/backends/codex/setup.ts
6
6
  var SENTINEL_NAME = ".claude-agents-codex-installed";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  getConfig,
6
6
  readSetting
7
- } from "./chunk-3WZGFAV4.js";
7
+ } from "./chunk-WKGJQIRC.js";
8
8
  import {
9
9
  __commonJS
10
10
  } from "./chunk-2ESYSVXG.js";
@@ -0,0 +1,37 @@
1
+ // src/backends/pi/wrapper-script.ts
2
+ var PI_WRAPPER_PATH = "/tmp/.pi-wrapper";
3
+ var SANDBOX_WRAPPER_SCRIPT = [
4
+ "#!/bin/bash",
5
+ 'while IFS= read -r line; do [ -z "$line" ] && break; export "$line"; done',
6
+ // Sprites keep-alive: prevent VM suspension during long agent turns.
7
+ 'SPRITE_SOCK="/.sprite/api.sock"',
8
+ 'HEARTBEAT_PID=""',
9
+ 'if [ -S "$SPRITE_SOCK" ]; then',
10
+ ' curl -sf --unix-socket "$SPRITE_SOCK" -H "Host: sprite" \\',
11
+ " -X POST http://sprite/v1/tasks \\",
12
+ ' -H "Content-Type: application/json" \\',
13
+ ` -d '{"name":"agent-turn","expire":"5m"}' >/dev/null 2>&1`,
14
+ " (while sleep 60; do",
15
+ ' curl -sf --unix-socket "$SPRITE_SOCK" -H "Host: sprite" \\',
16
+ " -X PUT http://sprite/v1/tasks/agent-turn \\",
17
+ ' -H "Content-Type: application/json" \\',
18
+ ` -d '{"expire":"5m"}' >/dev/null 2>&1`,
19
+ " done) &",
20
+ " HEARTBEAT_PID=$!",
21
+ ` trap 'curl -sf --unix-socket "$SPRITE_SOCK" -H "Host: sprite" -X DELETE http://sprite/v1/tasks/agent-turn >/dev/null 2>&1; [ -n "$HEARTBEAT_PID" ] && kill $HEARTBEAT_PID 2>/dev/null' EXIT`,
22
+ "fi",
23
+ 'pi "$@"'
24
+ ].join("\n");
25
+ async function installPiWrapper(sandboxName, provider) {
26
+ const escaped = SANDBOX_WRAPPER_SCRIPT.replace(/'/g, "'\\''");
27
+ await provider.exec(sandboxName, [
28
+ "bash",
29
+ "-c",
30
+ `printf '%s' '${escaped}' > ${PI_WRAPPER_PATH} && chmod +x ${PI_WRAPPER_PATH}`
31
+ ]);
32
+ }
33
+
34
+ export {
35
+ PI_WRAPPER_PATH,
36
+ installPiWrapper
37
+ };