@agentstep/agent-sdk 0.5.11 → 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 (191) 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 +11 -11
  4. package/dist/backends/codex/auth.js +6 -6
  5. package/dist/backends/codex/index.js +12 -12
  6. package/dist/backends/factory/auth.js +6 -6
  7. package/dist/backends/factory/index.js +14 -14
  8. package/dist/backends/gemini/auth.js +6 -6
  9. package/dist/backends/gemini/index.js +10 -10
  10. package/dist/backends/opencode/auth.js +6 -6
  11. package/dist/backends/opencode/index.js +12 -12
  12. package/dist/backends/pi/auth.js +6 -6
  13. package/dist/backends/pi/index.js +12 -12
  14. package/dist/backends/registry.js +30 -30
  15. package/dist/{chunk-ZEDULYKX.js → chunk-2IISXUVF.js} +1 -1
  16. package/dist/{chunk-34Q6WMIT.js → chunk-2Z56TPBL.js} +3 -3
  17. package/dist/{chunk-MMB7ZTAF.js → chunk-3DRK36FB.js} +5 -5
  18. package/dist/{chunk-LXSGQ2VF.js → chunk-3NNU7TQ4.js} +8 -8
  19. package/dist/{chunk-SAA6477U.js → chunk-3UK3IF27.js} +4 -4
  20. package/dist/chunk-4ANV3AH3.js +65 -0
  21. package/dist/{chunk-RNU253MD.js → chunk-4ENK7S24.js} +21 -2
  22. package/dist/{chunk-IFZ7EXMG.js → chunk-4EVT4MFD.js} +1 -1
  23. package/dist/{chunk-7POF237O.js → chunk-4MKJB6U2.js} +1 -1
  24. package/dist/{chunk-WKPUTJGD.js → chunk-5LDBCBOR.js} +1 -1
  25. package/dist/{chunk-5KXAMBPI.js → chunk-6PIL2RJD.js} +2 -2
  26. package/dist/{chunk-KZGFT75I.js → chunk-6X3G5SAS.js} +41 -18
  27. package/dist/{chunk-WUMBZMBF.js → chunk-7ASUTNKE.js} +2 -2
  28. package/dist/{chunk-CR3UN3BC.js → chunk-7BT6V4CH.js} +20 -18
  29. package/dist/{chunk-5COWXLGO.js → chunk-7D55V4XP.js} +1 -1
  30. package/dist/{chunk-BJ3EPRZU.js → chunk-7NZ46LIO.js} +29 -28
  31. package/dist/{chunk-6FNPCZTL.js → chunk-7SO7O6RV.js} +2 -2
  32. package/dist/{chunk-4JPJ3ZIV.js → chunk-7Z6LTBYQ.js} +5 -5
  33. package/dist/{chunk-NVTDXBGV.js → chunk-APKELBCA.js} +1 -1
  34. package/dist/{chunk-RYVVSBST.js → chunk-B3UOTIOI.js} +7 -7
  35. package/dist/{chunk-4UNMDYKD.js → chunk-B5JUCPYW.js} +1 -1
  36. package/dist/{chunk-LJSD6G6K.js → chunk-BQ5MWNWN.js} +3 -3
  37. package/dist/{chunk-KB4EKC5T.js → chunk-BYJRL4IQ.js} +5 -5
  38. package/dist/{chunk-7NIUHK63.js → chunk-C3ZPWUDE.js} +2 -2
  39. package/dist/{chunk-LSXVCZN7.js → chunk-CD2FQVQR.js} +1 -1
  40. package/dist/{chunk-6BOOQV4Q.js → chunk-CFLMIJ2C.js} +3 -3
  41. package/dist/{chunk-GMIAU3CP.js → chunk-CGGGCKSK.js} +4 -4
  42. package/dist/chunk-D2GADI73.js +253 -0
  43. package/dist/{chunk-MPG77WHN.js → chunk-D3TY7PMJ.js} +5 -5
  44. package/dist/{chunk-UHPS3XNG.js → chunk-DAIEVD4O.js} +4 -4
  45. package/dist/{chunk-2U2KCTMF.js → chunk-DDF2CRA3.js} +2 -2
  46. package/dist/{chunk-WL3VMUAI.js → chunk-FCKUWBUL.js} +2 -2
  47. package/dist/{chunk-YFGBTXID.js → chunk-FV2XE3DX.js} +2 -2
  48. package/dist/{chunk-73BYGQWA.js → chunk-G7Y5YGLE.js} +1 -1
  49. package/dist/{chunk-JE5Z2GLG.js → chunk-HE3IEIKM.js} +3 -3
  50. package/dist/{chunk-WKMRBRJQ.js → chunk-HH23DOBB.js} +1 -1
  51. package/dist/{chunk-HCORTMQH.js → chunk-HHS6EHSG.js} +4 -4
  52. package/dist/{chunk-T4IPZC4G.js → chunk-ISXWS5Y4.js} +6 -6
  53. package/dist/{chunk-TCTAUIAQ.js → chunk-JK2GXKOQ.js} +5 -5
  54. package/dist/{chunk-7KSQJK2V.js → chunk-JXU6SA6S.js} +42 -1
  55. package/dist/{chunk-ALIJNBQY.js → chunk-KHICXOTH.js} +3 -3
  56. package/dist/{chunk-BUQATYS7.js → chunk-KNWM237Q.js} +2 -2
  57. package/dist/{chunk-RNDLMMKI.js → chunk-LOWHDHDD.js} +3 -3
  58. package/dist/{chunk-6SVZD3UA.js → chunk-M4OF5D4K.js} +4 -4
  59. package/dist/{chunk-VFVLRR3Z.js → chunk-M7SYXJBT.js} +1 -1
  60. package/dist/{chunk-IBO36HUU.js → chunk-MQBNN4KH.js} +1 -1
  61. package/dist/{chunk-32RP2UX6.js → chunk-MTB7SCZ5.js} +5 -5
  62. package/dist/{chunk-LEVIKSPQ.js → chunk-MTRTBT7L.js} +1 -1
  63. package/dist/{chunk-UMIIZKVX.js → chunk-N5F5OUUZ.js} +3 -3
  64. package/dist/{chunk-KGTWD46T.js → chunk-NWIMPG4M.js} +1 -1
  65. package/dist/chunk-ONEKY3CM.js +146 -0
  66. package/dist/{chunk-OMI5CR4P.js → chunk-ONS32E65.js} +28 -20
  67. package/dist/{chunk-N5C3WQWD.js → chunk-PDUQCDIO.js} +1 -1
  68. package/dist/{chunk-DSNNEER4.js → chunk-PJTGQVKB.js} +1 -1
  69. package/dist/{chunk-M2ZBXMYO.js → chunk-PLSXDJT4.js} +5 -4
  70. package/dist/{chunk-2UDGQWRA.js → chunk-PPI76YVT.js} +2 -2
  71. package/dist/{chunk-N33MOUCH.js → chunk-PRWWTLPR.js} +3 -3
  72. package/dist/{chunk-T75UYYMI.js → chunk-PVFGDKXO.js} +2 -2
  73. package/dist/{chunk-PIJJXKMK.js → chunk-PXMTLKUJ.js} +3 -3
  74. package/dist/{chunk-6ERUVF2Y.js → chunk-QB7JAMWG.js} +1 -1
  75. package/dist/{chunk-KRQRJEQY.js → chunk-QS544PN6.js} +4 -4
  76. package/dist/{chunk-4N7WVJHB.js → chunk-R5LXEIOJ.js} +9 -9
  77. package/dist/{chunk-OJUDLJOG.js → chunk-REY2YZ5X.js} +3 -3
  78. package/dist/{chunk-4IEDAORR.js → chunk-RFK4W5PZ.js} +1 -1
  79. package/dist/{chunk-NOG7ZJJA.js → chunk-RLLVP37Q.js} +1 -1
  80. package/dist/{chunk-UONJFSWM.js → chunk-S5NB47IR.js} +6 -6
  81. package/dist/{chunk-3XGUMXGR.js → chunk-SXR4HQZY.js} +2 -2
  82. package/dist/{chunk-YN2F26NN.js → chunk-T3CXZ2BE.js} +2 -2
  83. package/dist/{chunk-I7FLMXEF.js → chunk-TN34IN7S.js} +16 -13
  84. package/dist/{chunk-XUODI55L.js → chunk-U3QU5AVC.js} +1 -1
  85. package/dist/{chunk-GTHATO73.js → chunk-UB5WVCY4.js} +3 -3
  86. package/dist/{chunk-3TF3YLM2.js → chunk-UROFA6OZ.js} +2 -2
  87. package/dist/{chunk-4HFKDLD7.js → chunk-UTQRPXTL.js} +9 -8
  88. package/dist/{chunk-Y3EUEPGQ.js → chunk-UWHV7EJG.js} +2 -2
  89. package/dist/{chunk-5VL4L6BJ.js → chunk-VG2TYPZ4.js} +18 -2
  90. package/dist/{chunk-EZBJEV6F.js → chunk-VTH56ERA.js} +4 -4
  91. package/dist/{chunk-Z4DZMNDE.js → chunk-W6QYWXOZ.js} +2 -2
  92. package/dist/{chunk-3WZGFAV4.js → chunk-WKGJQIRC.js} +4 -3
  93. package/dist/{chunk-EGN4TPN5.js → chunk-WT3SEE34.js} +3 -3
  94. package/dist/{chunk-CZ4IOIWV.js → chunk-X23OAFFE.js} +4 -4
  95. package/dist/{chunk-DVDNHXCM.js → chunk-XSRIFWHR.js} +2 -2
  96. package/dist/{chunk-SS5IC3XV.js → chunk-Y6BFKPNB.js} +1 -1
  97. package/dist/{chunk-EFSLGRY2.js → chunk-YCL5RHEC.js} +2 -2
  98. package/dist/{chunk-RTLMLG3A.js → chunk-YD67W6DW.js} +7 -7
  99. package/dist/{chunk-4QRE6LZG.js → chunk-YE47YUGE.js} +6 -6
  100. package/dist/{chunk-F6DCNXO5.js → chunk-YEJFXJHR.js} +2 -2
  101. package/dist/{chunk-RJB7YG26.js → chunk-YUVQQCT4.js} +15 -15
  102. package/dist/{chunk-T64ECODW.js → chunk-YUZFNAG6.js} +21 -0
  103. package/dist/{chunk-G43CK3VC.js → chunk-YWAMRRAX.js} +9 -9
  104. package/dist/config/index.js +5 -5
  105. package/dist/containers/client.js +6 -6
  106. package/dist/containers/exec.js +6 -6
  107. package/dist/containers/lifecycle.js +42 -42
  108. package/dist/containers/setup.js +9 -8
  109. package/dist/db/agents.js +6 -6
  110. package/dist/db/api_keys.js +5 -5
  111. package/dist/db/audit.js +3 -3
  112. package/dist/db/batch.js +10 -10
  113. package/dist/db/client.js +2 -2
  114. package/dist/db/credentials.js +3 -3
  115. package/dist/db/drizzle.js +4 -4
  116. package/dist/db/environments.js +6 -6
  117. package/dist/db/events.js +5 -5
  118. package/dist/db/files.js +5 -5
  119. package/dist/db/memory.js +5 -5
  120. package/dist/db/migrations.js +1 -1
  121. package/dist/db/proxy.js +5 -5
  122. package/dist/db/schema.js +5 -3
  123. package/dist/db/session-resources.js +5 -5
  124. package/dist/db/sessions.js +8 -8
  125. package/dist/db/skills.js +5 -5
  126. package/dist/db/sync.js +5 -5
  127. package/dist/db/tenants.js +3 -3
  128. package/dist/db/threads.js +7 -7
  129. package/dist/db/traces.js +5 -5
  130. package/dist/db/upstream_keys.js +3 -3
  131. package/dist/db/vaults.js +6 -6
  132. package/dist/db/work.js +33 -0
  133. package/dist/dreaming/review.js +11 -11
  134. package/dist/handlers/agents.js +58 -58
  135. package/dist/handlers/api_keys.js +59 -59
  136. package/dist/handlers/audit.js +59 -59
  137. package/dist/handlers/batch.js +59 -59
  138. package/dist/handlers/credentials.js +59 -59
  139. package/dist/handlers/environments.js +59 -59
  140. package/dist/handlers/events.js +62 -62
  141. package/dist/handlers/files.js +59 -59
  142. package/dist/handlers/index.js +135 -114
  143. package/dist/handlers/license.js +58 -58
  144. package/dist/handlers/memory.js +60 -60
  145. package/dist/handlers/metrics.js +58 -58
  146. package/dist/handlers/models.js +59 -59
  147. package/dist/handlers/providers.js +58 -58
  148. package/dist/handlers/resources.js +58 -58
  149. package/dist/handlers/sessions.js +62 -62
  150. package/dist/handlers/settings.js +58 -58
  151. package/dist/handlers/skills-write.js +61 -59
  152. package/dist/handlers/skills.js +59 -59
  153. package/dist/handlers/stream.js +58 -58
  154. package/dist/handlers/tenants.js +59 -59
  155. package/dist/handlers/threads.js +59 -59
  156. package/dist/handlers/traces.js +59 -59
  157. package/dist/handlers/ui.d.ts +6 -0
  158. package/dist/handlers/ui.d.ts.map +1 -0
  159. package/dist/handlers/ui.js +1 -1
  160. package/dist/handlers/upstream_keys.js +61 -61
  161. package/dist/handlers/vaults.js +58 -58
  162. package/dist/handlers/whoami.js +58 -58
  163. package/dist/handlers/work.js +114 -0
  164. package/dist/http.js +57 -57
  165. package/dist/index.js +78 -67
  166. package/dist/init.js +54 -54
  167. package/dist/lib/model-registry.js +6 -6
  168. package/dist/lib/skills-cache.js +6 -6
  169. package/dist/observability/otlp.js +12 -12
  170. package/dist/observability/redactor.js +8 -8
  171. package/dist/providers/fly.js +5 -5
  172. package/dist/providers/modal.js +5 -5
  173. package/dist/providers/registry.js +15 -3
  174. package/dist/providers/resolve-secrets.js +7 -7
  175. package/dist/providers/sprites.js +7 -7
  176. package/dist/providers/upstream-keys.js +12 -12
  177. package/dist/providers/vercel.js +5 -5
  178. package/dist/proxy/forward.js +6 -6
  179. package/dist/queue/index.js +6 -6
  180. package/dist/sessions/bus.js +10 -10
  181. package/dist/sessions/driver.js +47 -47
  182. package/dist/sessions/grader.js +5 -5
  183. package/dist/sessions/secrets.js +8 -8
  184. package/dist/sessions/sweeper.js +43 -43
  185. package/dist/sessions/threads.js +48 -48
  186. package/dist/shutdown.js +44 -44
  187. package/dist/sync/anthropic.js +10 -10
  188. package/dist/sync/container-file-sync.js +6 -6
  189. package/dist/sync/file-sync.js +17 -17
  190. package/dist/workers/runner.js +85 -0
  191. package/package.json +1 -1
@@ -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/memory.ts
19
19
  init_drizzle();
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  resolveVaultSecrets
3
- } from "./chunk-6ERUVF2Y.js";
3
+ } from "./chunk-QB7JAMWG.js";
4
4
  import {
5
5
  dockerProvider
6
6
  } from "./chunk-4XXQAVKE.js";
7
7
  import {
8
8
  appendEvent
9
- } from "./chunk-CZ4IOIWV.js";
9
+ } from "./chunk-X23OAFFE.js";
10
10
  import {
11
11
  getSession,
12
12
  getSessionRow,
13
13
  setSessionSandbox
14
- } from "./chunk-32RP2UX6.js";
14
+ } from "./chunk-MTB7SCZ5.js";
15
15
  import {
16
16
  deleteSprite,
17
17
  listSprites
18
- } from "./chunk-NVTDXBGV.js";
18
+ } from "./chunk-APKELBCA.js";
19
19
  import {
20
20
  allSessionSandboxes,
21
21
  countInEnv,
@@ -23,13 +23,14 @@ import {
23
23
  unregister
24
24
  } from "./chunk-EFOIR7R3.js";
25
25
  import {
26
- resolveContainerProvider
27
- } from "./chunk-7KSQJK2V.js";
26
+ resolveProvider,
27
+ tryResolveProvider
28
+ } from "./chunk-JXU6SA6S.js";
28
29
  import {
29
30
  getEnvironment,
30
31
  getEnvironmentRow,
31
32
  listEnvironments
32
- } from "./chunk-6BOOQV4Q.js";
33
+ } from "./chunk-CFLMIJ2C.js";
33
34
  import {
34
35
  addWarm,
35
36
  claimWarm,
@@ -40,13 +41,13 @@ import {
40
41
  } from "./chunk-G7KUVNDY.js";
41
42
  import {
42
43
  getAgent
43
- } from "./chunk-EGN4TPN5.js";
44
+ } from "./chunk-WT3SEE34.js";
44
45
  import {
45
46
  resolveBackend
46
- } from "./chunk-4N7WVJHB.js";
47
+ } from "./chunk-R5LXEIOJ.js";
47
48
  import {
48
49
  getConfig
49
- } from "./chunk-3WZGFAV4.js";
50
+ } from "./chunk-WKGJQIRC.js";
50
51
  import {
51
52
  init_clock,
52
53
  nowMs
@@ -152,7 +153,7 @@ async function acquireForFirstTurn(sessionId) {
152
153
  throw new ApiError(404, "not_found_error", "agent not found for session");
153
154
  }
154
155
  const backend = resolveBackend(agent.engine);
155
- const provider = await resolveContainerProvider(envObj?.config?.provider);
156
+ const provider = await resolveProvider({ envConfigProvider: envObj?.config?.provider });
156
157
  const sessionForSecrets = getSession(sessionId);
157
158
  const secrets = sessionForSecrets?.vault_ids?.length ? resolveVaultSecrets(sessionForSecrets.vault_ids) : {};
158
159
  if (provider.checkAvailability) {
@@ -413,7 +414,8 @@ async function fillOneEnv(env) {
413
414
  const target = effectiveWarmPoolSize(env.id);
414
415
  if (target <= 0) return;
415
416
  try {
416
- const provider = await resolveContainerProvider(env.config?.provider);
417
+ const provider = await tryResolveProvider({ envConfigProvider: env.config?.provider });
418
+ if (!provider) return;
417
419
  if (!provider.supportsWarmPool) return;
418
420
  const engine = env.config?.default_engine ?? "claude";
419
421
  const backend = resolveBackend(engine);
@@ -574,7 +576,8 @@ async function releaseSession(sessionId) {
574
576
  const name = entry?.sandboxName ?? row?.sandbox_name ?? null;
575
577
  if (name) {
576
578
  const envObj = row ? getEnvironment(row.environment_id) : null;
577
- const provider = await resolveContainerProvider(envObj?.config?.provider);
579
+ const provider = await tryResolveProvider({ envConfigProvider: envObj?.config?.provider });
580
+ if (!provider) return;
578
581
  await provider.delete(name, entry?.vaultSecrets).catch((err) => {
579
582
  console.warn(`releaseSession: failed to delete container ${name}:`, err);
580
583
  });
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_migrations,
3
3
  runMigrations
4
- } from "./chunk-T64ECODW.js";
4
+ } from "./chunk-YUZFNAG6.js";
5
5
  import {
6
6
  __esm
7
7
  } from "./chunk-2ESYSVXG.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  loadVaultForCaller
3
- } from "./chunk-GMIAU3CP.js";
3
+ } from "./chunk-CGGGCKSK.js";
4
4
  import {
5
5
  jsonOk,
6
6
  paginatedOk,
7
7
  routeWrap
8
- } from "./chunk-WL3VMUAI.js";
8
+ } from "./chunk-FCKUWBUL.js";
9
9
  import {
10
10
  archiveCredential,
11
11
  createCredential,
@@ -13,7 +13,7 @@ import {
13
13
  getCredential,
14
14
  listCredentials,
15
15
  updateCredential
16
- } from "./chunk-5COWXLGO.js";
16
+ } from "./chunk-7D55V4XP.js";
17
17
  import {
18
18
  badRequest,
19
19
  conflict,
@@ -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
  import {
18
18
  __esm,
19
19
  __export
@@ -6,29 +6,29 @@ import {
6
6
  reconcileDockerOrphanSandboxes,
7
7
  reconcileOrphanSandboxes,
8
8
  releaseSession
9
- } from "./chunk-I7FLMXEF.js";
9
+ } from "./chunk-TN34IN7S.js";
10
10
  import {
11
11
  appendEvent,
12
12
  dropEmitter
13
- } from "./chunk-CZ4IOIWV.js";
13
+ } from "./chunk-X23OAFFE.js";
14
14
  import {
15
15
  archiveSession,
16
16
  getSessionRow,
17
17
  listIdleSessions,
18
18
  updateSessionStatus
19
- } from "./chunk-32RP2UX6.js";
19
+ } from "./chunk-MTB7SCZ5.js";
20
20
  import {
21
- resolveContainerProvider
22
- } from "./chunk-7KSQJK2V.js";
21
+ tryResolveProvider
22
+ } from "./chunk-JXU6SA6S.js";
23
23
  import {
24
24
  getEnvironment
25
- } from "./chunk-6BOOQV4Q.js";
25
+ } from "./chunk-CFLMIJ2C.js";
26
26
  import {
27
27
  expireWarm
28
28
  } from "./chunk-G7KUVNDY.js";
29
29
  import {
30
30
  getConfig
31
- } from "./chunk-3WZGFAV4.js";
31
+ } from "./chunk-WKGJQIRC.js";
32
32
  import {
33
33
  init_clock,
34
34
  nowMs
@@ -88,7 +88,8 @@ async function evictExpiredWarmContainers() {
88
88
  for (const entry of expired) {
89
89
  try {
90
90
  const envObj = getEnvironment(entry.envId);
91
- const provider = await resolveContainerProvider(envObj?.config?.provider);
91
+ const provider = await tryResolveProvider({ envConfigProvider: envObj?.config?.provider });
92
+ if (!provider) continue;
92
93
  await provider.delete(entry.sandboxName, entry.vaultSecrets);
93
94
  console.log(`[sweeper] deleted expired warm container: ${entry.sandboxName}`);
94
95
  } catch (err) {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  listCredentialsWithTokens
3
- } from "./chunk-5COWXLGO.js";
3
+ } from "./chunk-7D55V4XP.js";
4
4
  import {
5
5
  listEntries
6
- } from "./chunk-OJUDLJOG.js";
6
+ } from "./chunk-REY2YZ5X.js";
7
7
 
8
8
  // src/sessions/secrets.ts
9
9
  function loadSessionSecrets(vaultIds) {
@@ -6,7 +6,7 @@ import {
6
6
  getSkill,
7
7
  getSkillVersion,
8
8
  listSkillVersions
9
- } from "./chunk-F6DCNXO5.js";
9
+ } from "./chunk-YEJFXJHR.js";
10
10
  import {
11
11
  resolveCreateTenant
12
12
  } from "./chunk-23UKWXJH.js";
@@ -15,7 +15,7 @@ import {
15
15
  jsonOk,
16
16
  paginatedOk,
17
17
  routeWrap
18
- } from "./chunk-WL3VMUAI.js";
18
+ } from "./chunk-FCKUWBUL.js";
19
19
  import {
20
20
  badRequest,
21
21
  notFound
@@ -226,6 +226,21 @@ function handleGetSkillVersion(request, skillId, version) {
226
226
  return jsonOk(sv);
227
227
  });
228
228
  }
229
+ function handleGetSkillVersionContent(request, skillId, version) {
230
+ return routeWrap(request, async () => {
231
+ const skill = getSkill(skillId);
232
+ if (!skill) throw notFound("skill not found");
233
+ const sv = getSkillVersion(skillId, version);
234
+ if (!sv) throw notFound("skill version not found");
235
+ return new Response(sv.content, {
236
+ headers: {
237
+ "Content-Type": "text/markdown",
238
+ "Content-Disposition": `attachment; filename="${skill.name}-${version}.md"`,
239
+ "Content-Length": String(Buffer.byteLength(sv.content, "utf-8"))
240
+ }
241
+ });
242
+ });
243
+ }
229
244
  function handleDeleteSkillVersion(request, skillId, version) {
230
245
  return routeWrap(request, async () => {
231
246
  const result = deleteSkillVersion(skillId, version);
@@ -246,5 +261,6 @@ export {
246
261
  handleCreateSkillVersion,
247
262
  handleListSkillVersions,
248
263
  handleGetSkillVersion,
264
+ handleGetSkillVersionContent,
249
265
  handleDeleteSkillVersion
250
266
  };
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  createSession
3
- } from "./chunk-32RP2UX6.js";
3
+ } from "./chunk-MTB7SCZ5.js";
4
4
  import {
5
5
  createEnvironment,
6
6
  deleteEnvironment,
7
7
  getEnvironment
8
- } from "./chunk-6BOOQV4Q.js";
8
+ } from "./chunk-CFLMIJ2C.js";
9
9
  import {
10
10
  archiveAgent,
11
11
  createAgent,
12
12
  getAgent
13
- } from "./chunk-EGN4TPN5.js";
13
+ } from "./chunk-WT3SEE34.js";
14
14
  import {
15
15
  getDrizzle,
16
16
  init_drizzle
17
- } from "./chunk-T75UYYMI.js";
17
+ } from "./chunk-PVFGDKXO.js";
18
18
 
19
19
  // src/db/batch.ts
20
20
  init_drizzle();
@@ -9,10 +9,10 @@ import {
9
9
  import {
10
10
  getDrizzle,
11
11
  init_drizzle
12
- } from "./chunk-T75UYYMI.js";
12
+ } from "./chunk-PVFGDKXO.js";
13
13
  import {
14
14
  schema_exports
15
- } from "./chunk-RNU253MD.js";
15
+ } from "./chunk-4ENK7S24.js";
16
16
 
17
17
  // src/db/api_keys.ts
18
18
  init_drizzle();
@@ -5,10 +5,10 @@ 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
 
13
13
  // src/config/index.ts
14
14
  init_drizzle();
@@ -55,7 +55,8 @@ function loadConfig() {
55
55
  process.env.ANTHROPIC_PASSTHROUGH_ENABLED ?? readSetting("anthropic_passthrough_enabled")
56
56
  ),
57
57
  warmPoolSize: num(process.env.WARM_POOL_SIZE, 0),
58
- warmPoolTtlMs: num(process.env.WARM_POOL_TTL_MS, 3e5)
58
+ warmPoolTtlMs: num(process.env.WARM_POOL_TTL_MS, 3e5),
59
+ defaultProvider: process.env.DEFAULT_PROVIDER || readSetting("default_provider") || void 0
59
60
  };
60
61
  }
61
62
  function parseBool(v) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULT_TENANT_ID
3
- } from "./chunk-LSXVCZN7.js";
3
+ } from "./chunk-CD2FQVQR.js";
4
4
  import {
5
5
  init_ids,
6
6
  newId
@@ -13,10 +13,10 @@ import {
13
13
  import {
14
14
  getDrizzle,
15
15
  init_drizzle
16
- } from "./chunk-T75UYYMI.js";
16
+ } from "./chunk-PVFGDKXO.js";
17
17
  import {
18
18
  schema_exports
19
- } from "./chunk-RNU253MD.js";
19
+ } from "./chunk-4ENK7S24.js";
20
20
 
21
21
  // src/db/agents.ts
22
22
  init_drizzle();
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  getSession
3
- } from "./chunk-32RP2UX6.js";
3
+ } from "./chunk-MTB7SCZ5.js";
4
4
  import {
5
5
  appendEvent,
6
6
  appendEventsBatch,
7
7
  listEvents,
8
8
  rowToManagedEvent
9
- } from "./chunk-N33MOUCH.js";
9
+ } from "./chunk-PRWWTLPR.js";
10
10
  import {
11
11
  getAgent
12
- } from "./chunk-EGN4TPN5.js";
12
+ } from "./chunk-WT3SEE34.js";
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/sessions/bus.ts
19
19
  import { EventEmitter } from "events";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  markStopping
3
- } from "./chunk-4HFKDLD7.js";
3
+ } from "./chunk-UTQRPXTL.js";
4
4
  import {
5
5
  closeDb,
6
6
  init_client,
7
7
  syncDb
8
- } from "./chunk-XUODI55L.js";
8
+ } from "./chunk-U3QU5AVC.js";
9
9
  import {
10
10
  getRuntime
11
11
  } from "./chunk-UYTSKFGK.js";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-FX2AEKOV.js";
7
7
  import {
8
8
  getConfig
9
- } from "./chunk-3WZGFAV4.js";
9
+ } from "./chunk-WKGJQIRC.js";
10
10
 
11
11
  // src/backends/claude/args.ts
12
12
  function buildClaudeArgs(input) {
@@ -5,10 +5,10 @@ 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
 
13
13
  // src/db/proxy.ts
14
14
  init_drizzle();
@@ -1,3 +1,10 @@
1
+ import {
2
+ buildPiArgs
3
+ } from "./chunk-6KWJASEO.js";
4
+ import {
5
+ buildPiAuthEnv,
6
+ validatePiRuntime
7
+ } from "./chunk-2IISXUVF.js";
1
8
  import {
2
9
  preparePiOnSandbox
3
10
  } from "./chunk-CMOU2OFW.js";
@@ -7,13 +14,6 @@ import {
7
14
  import {
8
15
  PI_WRAPPER_PATH
9
16
  } from "./chunk-OGA7KDQZ.js";
10
- import {
11
- buildPiArgs
12
- } from "./chunk-6KWJASEO.js";
13
- import {
14
- buildPiAuthEnv,
15
- validatePiRuntime
16
- } from "./chunk-ZEDULYKX.js";
17
17
  import {
18
18
  wrapPromptWithSystem
19
19
  } from "./chunk-YE2RMJY7.js";
@@ -2,7 +2,7 @@ import {
2
2
  archiveThread,
3
3
  getThread,
4
4
  listThreads
5
- } from "./chunk-34Q6WMIT.js";
5
+ } from "./chunk-2Z56TPBL.js";
6
6
  import {
7
7
  assertResourceTenant
8
8
  } from "./chunk-23UKWXJH.js";
@@ -10,21 +10,21 @@ import {
10
10
  jsonOk,
11
11
  paginatedOk,
12
12
  routeWrap
13
- } from "./chunk-WL3VMUAI.js";
13
+ } from "./chunk-FCKUWBUL.js";
14
14
  import {
15
15
  subscribe
16
- } from "./chunk-CZ4IOIWV.js";
16
+ } from "./chunk-X23OAFFE.js";
17
17
  import {
18
18
  getSession
19
- } from "./chunk-32RP2UX6.js";
19
+ } from "./chunk-MTB7SCZ5.js";
20
20
  import {
21
21
  listEvents,
22
22
  rowToManagedEvent
23
- } from "./chunk-N33MOUCH.js";
23
+ } from "./chunk-PRWWTLPR.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
@@ -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/skills.ts
19
19
  init_drizzle();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  syncAndCreateSession
3
- } from "./chunk-6SVZD3UA.js";
3
+ } from "./chunk-M4OF5D4K.js";
4
4
  import {
5
5
  resolveRemoteSessionId,
6
6
  upsertSync
7
- } from "./chunk-RNDLMMKI.js";
7
+ } from "./chunk-LOWHDHDD.js";
8
8
  import {
9
9
  assertResourceTenant,
10
10
  tenantFilter
@@ -14,19 +14,19 @@ import {
14
14
  } from "./chunk-DC2UMEQH.js";
15
15
  import {
16
16
  getMemoryStore
17
- } from "./chunk-YN2F26NN.js";
17
+ } from "./chunk-T3CXZ2BE.js";
18
18
  import {
19
19
  kickoffEnvironmentSetup
20
- } from "./chunk-M2ZBXMYO.js";
20
+ } from "./chunk-PLSXDJT4.js";
21
21
  import {
22
22
  decodeCursor,
23
23
  jsonOk,
24
24
  paginatedOk,
25
25
  routeWrap
26
- } from "./chunk-WL3VMUAI.js";
26
+ } from "./chunk-FCKUWBUL.js";
27
27
  import {
28
28
  forwardToAnthropic
29
- } from "./chunk-WKPUTJGD.js";
29
+ } from "./chunk-5LDBCBOR.js";
30
30
  import {
31
31
  errors_exports,
32
32
  init_errors
@@ -36,18 +36,18 @@ import {
36
36
  isProxied,
37
37
  markProxied,
38
38
  unmarkProxied
39
- } from "./chunk-EFSLGRY2.js";
39
+ } from "./chunk-YCL5RHEC.js";
40
40
  import {
41
41
  dropActor,
42
42
  getActor
43
43
  } from "./chunk-LAWTTG2E.js";
44
44
  import {
45
45
  releaseSession
46
- } from "./chunk-I7FLMXEF.js";
46
+ } from "./chunk-TN34IN7S.js";
47
47
  import {
48
48
  appendEvent,
49
49
  dropEmitter
50
- } from "./chunk-CZ4IOIWV.js";
50
+ } from "./chunk-X23OAFFE.js";
51
51
  import {
52
52
  archiveSession,
53
53
  createSession,
@@ -55,13 +55,13 @@ import {
55
55
  listSessions,
56
56
  updateSessionMutable,
57
57
  updateSessionStatus
58
- } from "./chunk-32RP2UX6.js";
58
+ } from "./chunk-MTB7SCZ5.js";
59
59
  import {
60
60
  getEnvironment
61
- } from "./chunk-6BOOQV4Q.js";
61
+ } from "./chunk-CFLMIJ2C.js";
62
62
  import {
63
63
  getAgent
64
- } from "./chunk-EGN4TPN5.js";
64
+ } from "./chunk-WT3SEE34.js";
65
65
  import {
66
66
  init_clock,
67
67
  nowMs
@@ -69,7 +69,7 @@ import {
69
69
  import {
70
70
  getDb,
71
71
  init_client
72
- } from "./chunk-XUODI55L.js";
72
+ } from "./chunk-U3QU5AVC.js";
73
73
  import {
74
74
  badRequest,
75
75
  notFound
@@ -233,7 +233,7 @@ function handleCreateSession(request) {
233
233
  env: env.id,
234
234
  vaults: data.vault_ids
235
235
  });
236
- if (env.config?.provider === "anthropic" && agent.engine !== "claude") {
236
+ if ((env.config?.type === "cloud" || env.config?.provider === "anthropic") && agent.engine !== "claude") {
237
237
  throw badRequest(
238
238
  `${agent.engine} engine cannot run on the anthropic provider \u2014 Anthropic's managed agents API only supports Claude models. Use a container provider (docker, e2b, fly, etc.) instead.`
239
239
  );
@@ -264,7 +264,7 @@ function handleCreateSession(request) {
264
264
  if (store.archived_at) throw badRequest(`memory store ${r.memory_store_id} is archived`);
265
265
  }
266
266
  }
267
- if (env.config?.provider === "anthropic") {
267
+ if (env.config?.type === "cloud" || env.config?.provider === "anthropic") {
268
268
  const { resolveAnthropicKey } = await import("./providers/upstream-keys.js");
269
269
  const resolved = resolveAnthropicKey({ vaultIds: data.vault_ids ?? void 0 });
270
270
  if (!resolved) {
@@ -575,6 +575,27 @@ function runMigrations(db) {
575
575
  db.exec("ALTER TABLE memory_versions ADD COLUMN redacted_at INTEGER");
576
576
  }
577
577
  }
578
+ db.exec(`
579
+ CREATE TABLE IF NOT EXISTS work_items (
580
+ id TEXT PRIMARY KEY,
581
+ environment_id TEXT NOT NULL,
582
+ session_id TEXT NOT NULL,
583
+ state TEXT NOT NULL DEFAULT 'queued',
584
+ worker_id TEXT,
585
+ inputs_json TEXT,
586
+ metadata_json TEXT NOT NULL DEFAULT '{}',
587
+ tenant_id TEXT,
588
+ created_at INTEGER NOT NULL,
589
+ acknowledged_at INTEGER,
590
+ started_at INTEGER,
591
+ latest_heartbeat_at INTEGER,
592
+ stop_requested_at INTEGER,
593
+ stopped_at INTEGER,
594
+ lease_expires_at INTEGER
595
+ )
596
+ `);
597
+ db.exec(`CREATE INDEX IF NOT EXISTS idx_work_env_state ON work_items(environment_id, state)`);
598
+ db.exec(`CREATE INDEX IF NOT EXISTS idx_work_session ON work_items(session_id)`);
578
599
  {
579
600
  const cols = db.prepare("PRAGMA table_info(vaults)").all();
580
601
  const names = new Set(cols.map((c) => c.name));
@@ -1,19 +1,19 @@
1
- import {
2
- buildFactoryArgs
3
- } from "./chunk-TPMZO6S2.js";
4
- import {
5
- buildFactoryAuthEnv,
6
- validateFactoryRuntime
7
- } from "./chunk-WKMRBRJQ.js";
8
1
  import {
9
2
  prepareFactoryOnSandbox
10
3
  } from "./chunk-AQHYCRTO.js";
4
+ import {
5
+ createFactoryTranslator
6
+ } from "./chunk-7TSTCMII.js";
11
7
  import {
12
8
  FACTORY_WRAPPER_PATH
13
9
  } from "./chunk-KJ2GJLPQ.js";
14
10
  import {
15
- createFactoryTranslator
16
- } from "./chunk-7TSTCMII.js";
11
+ buildFactoryArgs
12
+ } from "./chunk-TPMZO6S2.js";
13
+ import {
14
+ buildFactoryAuthEnv,
15
+ validateFactoryRuntime
16
+ } from "./chunk-HH23DOBB.js";
17
17
  import {
18
18
  wrapPromptWithSystem
19
19
  } from "./chunk-YE2RMJY7.js";
@@ -5,12 +5,12 @@ import {
5
5
  readSetting,
6
6
  writeSetting,
7
7
  writeTokenSetting
8
- } from "../chunk-3WZGFAV4.js";
8
+ } from "../chunk-WKGJQIRC.js";
9
9
  import "../chunk-HFDLUBWN.js";
10
- import "../chunk-T75UYYMI.js";
11
- import "../chunk-RNU253MD.js";
12
- import "../chunk-XUODI55L.js";
13
- import "../chunk-T64ECODW.js";
10
+ import "../chunk-PVFGDKXO.js";
11
+ import "../chunk-4ENK7S24.js";
12
+ import "../chunk-U3QU5AVC.js";
13
+ import "../chunk-YUZFNAG6.js";
14
14
  import "../chunk-2ESYSVXG.js";
15
15
  export {
16
16
  getConfig,