@agentstep/agent-sdk 0.5.0 → 0.5.1

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 (126) hide show
  1. package/dist/auth/middleware.js +3 -3
  2. package/dist/backends/claude/args.js +2 -2
  3. package/dist/backends/claude/index.js +4 -4
  4. package/dist/backends/claude/wrapper-script.js +1 -1
  5. package/dist/backends/codex/auth.js +2 -2
  6. package/dist/backends/codex/index.js +3 -3
  7. package/dist/backends/factory/auth.js +2 -2
  8. package/dist/backends/factory/index.js +3 -3
  9. package/dist/backends/gemini/auth.js +2 -2
  10. package/dist/backends/gemini/index.js +3 -3
  11. package/dist/backends/opencode/auth.js +2 -2
  12. package/dist/backends/opencode/index.js +3 -3
  13. package/dist/backends/pi/auth.js +2 -2
  14. package/dist/backends/pi/index.js +3 -3
  15. package/dist/backends/registry.js +15 -15
  16. package/dist/{chunk-IRW7AYTP.js → chunk-2YFS435Z.js} +1 -1
  17. package/dist/{chunk-6QZ23WRF.js → chunk-2YIMCZJK.js} +5 -5
  18. package/dist/{chunk-Z4LFLXRR.js → chunk-37C5BNVV.js} +1 -1
  19. package/dist/{chunk-4D345E27.js → chunk-3NKK4M23.js} +2 -2
  20. package/dist/{chunk-S7DFMJR5.js → chunk-3S4CGFKJ.js} +2 -2
  21. package/dist/{chunk-GLKWJESP.js → chunk-4LHJJXH3.js} +1 -1
  22. package/dist/{chunk-OZFSKR2W.js → chunk-4MKBT3KA.js} +1 -1
  23. package/dist/{chunk-6CVQDSTS.js → chunk-56XDLNEW.js} +1 -1
  24. package/dist/{chunk-EOJ66GY7.js → chunk-57LAR6EM.js} +2 -2
  25. package/dist/{chunk-DKLHYSPW.js → chunk-5M47X54D.js} +1 -1
  26. package/dist/{chunk-KKAJC3Z2.js → chunk-63AKPSCV.js} +1 -1
  27. package/dist/{chunk-EWIWVXXP.js → chunk-6RFQCFL2.js} +4 -4
  28. package/dist/{chunk-OSNMIPHV.js → chunk-74E7GKUG.js} +1 -1
  29. package/dist/{chunk-MQBMXAPU.js → chunk-A46RUKGA.js} +1 -1
  30. package/dist/{chunk-XTKTIFHC.js → chunk-AQB3P5ZP.js} +1 -1
  31. package/dist/{chunk-AJL3T5JS.js → chunk-B5EY2VJC.js} +1 -1
  32. package/dist/{chunk-4RDILRIO.js → chunk-BJP5BIHE.js} +3 -3
  33. package/dist/{chunk-NHAYKVXG.js → chunk-C35ZTCBP.js} +1 -1
  34. package/dist/{chunk-HY3T4YJV.js → chunk-CE366H6Z.js} +1 -1
  35. package/dist/{chunk-A6VORSKD.js → chunk-CKFJN5XK.js} +1 -1
  36. package/dist/{chunk-MAJWADF7.js → chunk-COZG53R3.js} +2 -2
  37. package/dist/{chunk-DJZSPWG2.js → chunk-DRNZ24RF.js} +2 -2
  38. package/dist/{chunk-AB7MPL3H.js → chunk-EDUTIJAU.js} +6 -4
  39. package/dist/{chunk-64IQEPSD.js → chunk-FYBHPBWY.js} +1 -1
  40. package/dist/{chunk-TVODT2UR.js → chunk-GD3WXIHX.js} +1 -1
  41. package/dist/{chunk-WEC625LQ.js → chunk-GIUB2OPA.js} +1 -1
  42. package/dist/{chunk-X6QIWZ33.js → chunk-GQYSSSVA.js} +1 -1
  43. package/dist/{chunk-24IDJ7LY.js → chunk-HZZ6ZLKP.js} +1 -1
  44. package/dist/{chunk-GV6GUSCP.js → chunk-IMPLRDOV.js} +6 -6
  45. package/dist/{chunk-OKT2J4ZB.js → chunk-JWHSUEDE.js} +3 -3
  46. package/dist/{chunk-R3QHLKJG.js → chunk-L35CBI7F.js} +1 -1
  47. package/dist/{chunk-GFSRNOPI.js → chunk-LIXSR7BG.js} +4 -4
  48. package/dist/{chunk-RYJXSXCV.js → chunk-MXMXJYN4.js} +1 -1
  49. package/dist/{chunk-JP7Y3TKK.js → chunk-MZYJFU4K.js} +1 -1
  50. package/dist/{chunk-PNZF7HIU.js → chunk-NBYCX6L4.js} +3 -3
  51. package/dist/{chunk-3PA4NXRP.js → chunk-NL4UNA53.js} +2 -2
  52. package/dist/{chunk-GCQDNUS2.js → chunk-NRXTWATQ.js} +2 -2
  53. package/dist/{chunk-NKQVOAWN.js → chunk-O56RNR7B.js} +1 -1
  54. package/dist/{chunk-CLSGNQ7J.js → chunk-Q4XF3OBK.js} +3 -3
  55. package/dist/{chunk-IU457W7Q.js → chunk-QBJOYOVF.js} +2 -1
  56. package/dist/{chunk-LQP6XGFU.js → chunk-QJ6QQO6D.js} +2 -2
  57. package/dist/{chunk-L26TVIB6.js → chunk-R6EXYBCT.js} +1 -1
  58. package/dist/{chunk-HWR2HYQJ.js → chunk-RT5S5KRX.js} +1 -1
  59. package/dist/{chunk-QTXAWC5J.js → chunk-T3IGOI6Z.js} +2 -2
  60. package/dist/{chunk-JLUCJMAQ.js → chunk-T7BHW3CP.js} +4 -4
  61. package/dist/{chunk-YMCS6AB7.js → chunk-TG3S4RVJ.js} +1 -1
  62. package/dist/{chunk-R6EEBWM3.js → chunk-UMRDMOB6.js} +1 -1
  63. package/dist/{chunk-AXBM7HAR.js → chunk-UMVZZQKD.js} +1 -1
  64. package/dist/{chunk-FSQ4HGHX.js → chunk-UQ3LKJPM.js} +1 -1
  65. package/dist/{chunk-TUEBRYPZ.js → chunk-USIMPXUH.js} +1 -1
  66. package/dist/{chunk-Z6VZYRVN.js → chunk-VJWNFMMQ.js} +1 -1
  67. package/dist/{chunk-STJNO6SL.js → chunk-WDACZSRU.js} +1 -1
  68. package/dist/{chunk-YXOCKQZU.js → chunk-WU74DV5R.js} +1 -1
  69. package/dist/{chunk-GIMDS46L.js → chunk-YYMUSVUI.js} +1 -1
  70. package/dist/{chunk-NDTIDWBE.js → chunk-YZZHDZ7B.js} +1 -1
  71. package/dist/{chunk-PN3AWRMX.js → chunk-ZWC5V2DB.js} +9 -9
  72. package/dist/{chunk-JFOHGHW5.js → chunk-ZY2U24QP.js} +19 -9
  73. package/dist/config/index.js +1 -1
  74. package/dist/containers/client.js +2 -2
  75. package/dist/containers/exec.js +2 -2
  76. package/dist/containers/lifecycle.js +18 -18
  77. package/dist/containers/setup.js +3 -3
  78. package/dist/handlers/agents.js +29 -29
  79. package/dist/handlers/api_keys.js +29 -29
  80. package/dist/handlers/audit.js +29 -29
  81. package/dist/handlers/batch.js +29 -29
  82. package/dist/handlers/credentials.js +30 -30
  83. package/dist/handlers/environments.js +30 -30
  84. package/dist/handlers/events.js +30 -30
  85. package/dist/handlers/files.js +29 -29
  86. package/dist/handlers/index.js +57 -57
  87. package/dist/handlers/license.js +29 -29
  88. package/dist/handlers/memory.js +29 -29
  89. package/dist/handlers/metrics.js +29 -29
  90. package/dist/handlers/models.js +30 -30
  91. package/dist/handlers/providers.js +29 -29
  92. package/dist/handlers/resources.js +29 -29
  93. package/dist/handlers/sessions.js +30 -30
  94. package/dist/handlers/settings.js +29 -29
  95. package/dist/handlers/skills-write.js +29 -29
  96. package/dist/handlers/skills.js +30 -30
  97. package/dist/handlers/stream.js +28 -28
  98. package/dist/handlers/tenants.js +29 -29
  99. package/dist/handlers/threads.js +29 -29
  100. package/dist/handlers/traces.js +29 -29
  101. package/dist/handlers/upstream_keys.js +30 -30
  102. package/dist/handlers/vaults.js +29 -29
  103. package/dist/handlers/whoami.js +29 -29
  104. package/dist/http.js +28 -28
  105. package/dist/index.js +29 -29
  106. package/dist/init.js +25 -25
  107. package/dist/lib/model-registry.js +2 -2
  108. package/dist/lib/skills-cache.js +2 -2
  109. package/dist/observability/otlp.js +2 -2
  110. package/dist/observability/redactor.js +2 -2
  111. package/dist/providers/fly.js +1 -1
  112. package/dist/providers/modal.js +1 -1
  113. package/dist/providers/registry.js +1 -1
  114. package/dist/providers/sprites.js +3 -3
  115. package/dist/providers/upstream-keys.js +2 -2
  116. package/dist/providers/vercel.js +1 -1
  117. package/dist/proxy/forward.js +2 -2
  118. package/dist/queue/index.js +2 -2
  119. package/dist/sessions/driver.js +19 -19
  120. package/dist/sessions/grader.js +1 -1
  121. package/dist/sessions/sweeper.js +19 -19
  122. package/dist/sessions/threads.js +19 -19
  123. package/dist/shutdown.js +20 -20
  124. package/dist/sync/file-sync.js +2 -2
  125. package/package.json +1 -1
  126. /package/dist/{chunk-UE6DNLSV.js → chunk-JRQB3SHR.js} +0 -0
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  jsonOk,
6
6
  routeWrap
7
- } from "./chunk-QTXAWC5J.js";
7
+ } from "./chunk-T3IGOI6Z.js";
8
8
 
9
9
  // src/handlers/license.ts
10
10
  function handleGetLicense(request) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-X6QIWZ33.js";
3
+ } from "./chunk-GQYSSSVA.js";
4
4
 
5
5
  // src/backends/codex/auth.ts
6
6
  function buildCodexAuthEnv() {
@@ -45,7 +45,7 @@ function loadConfig() {
45
45
  spriteTimeoutMs: num(process.env.SPRITE_TIMEOUT_MS, 3e4),
46
46
  concurrency: num(process.env.CONCURRENCY, 4),
47
47
  maxSandboxesPerEnv: num(process.env.MAX_SANDBOXES_PER_ENV, 8),
48
- sessionMaxAgeMs: num(process.env.SESSION_MAX_AGE_MS, 7 * 24 * 3600 * 1e3),
48
+ sessionMaxAgeMs: num(process.env.SESSION_MAX_AGE_MS, 3600 * 1e3),
49
49
  sweeperIntervalMs: num(process.env.SWEEPER_INTERVAL_MS, 6e4),
50
50
  otlpEndpoint: process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTLP_ENDPOINT || readSetting("otlp_endpoint") || void 0,
51
51
  otlpAuthorization: process.env.OTEL_EXPORTER_OTLP_HEADERS_AUTHORIZATION || process.env.OTLP_AUTHORIZATION || readSetting("otlp_authorization") || void 0,
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-KUWJJD6O.js";
11
11
  import {
12
12
  getConfig
13
- } from "./chunk-X6QIWZ33.js";
13
+ } from "./chunk-GQYSSSVA.js";
14
14
 
15
15
  // src/providers/upstream-keys.ts
16
16
  var CONSECUTIVE_FAIL_THRESHOLD = 3;
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  piBackend
3
- } from "./chunk-NHAYKVXG.js";
3
+ } from "./chunk-C35ZTCBP.js";
4
4
  import {
5
5
  opencodeBackend
6
- } from "./chunk-KKAJC3Z2.js";
6
+ } from "./chunk-63AKPSCV.js";
7
7
  import {
8
8
  factoryBackend
9
- } from "./chunk-L26TVIB6.js";
9
+ } from "./chunk-R6EXYBCT.js";
10
10
  import {
11
11
  geminiBackend
12
- } from "./chunk-DKLHYSPW.js";
12
+ } from "./chunk-5M47X54D.js";
13
13
  import {
14
14
  codexBackend
15
- } from "./chunk-R3QHLKJG.js";
15
+ } from "./chunk-L35CBI7F.js";
16
16
  import {
17
17
  claudeBackend
18
- } from "./chunk-PNZF7HIU.js";
18
+ } from "./chunk-NBYCX6L4.js";
19
19
 
20
20
  // src/backends/registry.ts
21
21
  var BACKENDS = {
@@ -8,11 +8,11 @@ import {
8
8
  jsonOk,
9
9
  paginatedOk,
10
10
  routeWrap
11
- } from "./chunk-QTXAWC5J.js";
11
+ } from "./chunk-T3IGOI6Z.js";
12
12
  import {
13
13
  forwardToAnthropic,
14
14
  validateAnthropicProxy
15
- } from "./chunk-MQBMXAPU.js";
15
+ } from "./chunk-A46RUKGA.js";
16
16
  import {
17
17
  getProxiedTenantId,
18
18
  isProxied,
@@ -29,7 +29,7 @@ import {
29
29
  } from "./chunk-BCIFFAGW.js";
30
30
  import {
31
31
  resolveBackend
32
- } from "./chunk-GV6GUSCP.js";
32
+ } from "./chunk-IMPLRDOV.js";
33
33
  import {
34
34
  getDb,
35
35
  init_client
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  buildCodexAuthEnv,
6
6
  validateCodexRuntime
7
- } from "./chunk-WEC625LQ.js";
7
+ } from "./chunk-GIUB2OPA.js";
8
8
  import {
9
9
  prepareCodexOnSandbox
10
10
  } from "./chunk-M2LUXIXU.js";
@@ -5,16 +5,16 @@ import {
5
5
  } from "./chunk-23UKWXJH.js";
6
6
  import {
7
7
  kickoffEnvironmentSetup
8
- } from "./chunk-LQP6XGFU.js";
8
+ } from "./chunk-QJ6QQO6D.js";
9
9
  import {
10
10
  decodeCursor,
11
11
  jsonOk,
12
12
  paginatedOk,
13
13
  routeWrap
14
- } from "./chunk-QTXAWC5J.js";
14
+ } from "./chunk-T3IGOI6Z.js";
15
15
  import {
16
16
  forwardToAnthropic
17
- } from "./chunk-MQBMXAPU.js";
17
+ } from "./chunk-A46RUKGA.js";
18
18
  import {
19
19
  getProxiedTenantId,
20
20
  isProxied,
@@ -23,7 +23,7 @@ import {
23
23
  } from "./chunk-5U5LRAFJ.js";
24
24
  import {
25
25
  resolveContainerProvider
26
- } from "./chunk-UE6DNLSV.js";
26
+ } from "./chunk-JRQB3SHR.js";
27
27
  import {
28
28
  archiveEnvironment,
29
29
  createEnvironment,
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  jsonOk,
6
6
  routeWrap
7
- } from "./chunk-QTXAWC5J.js";
7
+ } from "./chunk-T3IGOI6Z.js";
8
8
  import {
9
9
  getProxiedTenantId
10
10
  } from "./chunk-5U5LRAFJ.js";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-BCIFFAGW.js";
13
13
  import {
14
14
  getConfig
15
- } from "./chunk-X6QIWZ33.js";
15
+ } from "./chunk-GQYSSSVA.js";
16
16
 
17
17
  // src/observability/otlp.ts
18
18
  import { createHash } from "crypto";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  buildClaudeArgs,
3
3
  buildClaudeAuthEnv
4
- } from "./chunk-GIMDS46L.js";
4
+ } from "./chunk-YYMUSVUI.js";
5
5
  import {
6
6
  PERMISSION_BRIDGE_DIR,
7
7
  PERMISSION_HOOK_SCRIPT_PATH,
@@ -22,10 +22,10 @@ import {
22
22
  import {
23
23
  CLAUDE_WRAPPER_PATH,
24
24
  installClaudeWrapper
25
- } from "./chunk-IU457W7Q.js";
25
+ } from "./chunk-QBJOYOVF.js";
26
26
  import {
27
27
  getConfig
28
- } from "./chunk-X6QIWZ33.js";
28
+ } from "./chunk-GQYSSSVA.js";
29
29
 
30
30
  // src/backends/claude/index.ts
31
31
  function buildTurn(input) {
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  jsonOk,
3
3
  routeWrap
4
- } from "./chunk-QTXAWC5J.js";
4
+ } from "./chunk-T3IGOI6Z.js";
5
5
  import {
6
6
  readSetting,
7
7
  writeSetting
8
- } from "./chunk-X6QIWZ33.js";
8
+ } from "./chunk-GQYSSSVA.js";
9
9
  import {
10
10
  badRequest
11
11
  } from "./chunk-EZYKRG4W.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  forwardToAnthropic
3
- } from "./chunk-MQBMXAPU.js";
3
+ } from "./chunk-A46RUKGA.js";
4
4
  import {
5
5
  isAnthropicApiKey,
6
6
  isPassthroughAllowedPath
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-T3FQPTOA.js";
12
12
  import {
13
13
  getConfig
14
- } from "./chunk-X6QIWZ33.js";
14
+ } from "./chunk-GQYSSSVA.js";
15
15
  import {
16
16
  unauthorized
17
17
  } from "./chunk-EZYKRG4W.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-X6QIWZ33.js";
3
+ } from "./chunk-GQYSSSVA.js";
4
4
  import {
5
5
  ApiError
6
6
  } from "./chunk-EZYKRG4W.js";
@@ -6,13 +6,13 @@ import {
6
6
  } from "./chunk-23UKWXJH.js";
7
7
  import {
8
8
  authenticateAndIntercept
9
- } from "./chunk-GCQDNUS2.js";
9
+ } from "./chunk-NRXTWATQ.js";
10
10
  import {
11
11
  forwardToAnthropic
12
- } from "./chunk-MQBMXAPU.js";
12
+ } from "./chunk-A46RUKGA.js";
13
13
  import {
14
14
  ensureInitialized
15
- } from "./chunk-PN3AWRMX.js";
15
+ } from "./chunk-ZWC5V2DB.js";
16
16
  import {
17
17
  getProxiedTenantId,
18
18
  isProxied
@@ -7,7 +7,8 @@ export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH"
7
7
  export NODE_COMPILE_CACHE=/tmp/v8-cache
8
8
  mkdir -p /tmp/v8-cache
9
9
  # Install claude CLI if not present
10
- if ! command -v claude >/dev/null 2>&1; then npm install -g @anthropic-ai/claude-code 2>/dev/null; fi
10
+ if ! command -v claude >/dev/null 2>&1; then npm install -g @anthropic-ai/claude-code; fi
11
+ claude --version >&2 2>/dev/null || true
11
12
  # Read env vars from stdin until blank line, save remaining stdin to temp file
12
13
  PROMPT_FILE=$(mktemp)
13
14
  while IFS= read -r line; do [ -z "$line" ] && break; export "$line"; done
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  resolveContainerProvider
3
- } from "./chunk-UE6DNLSV.js";
3
+ } from "./chunk-JRQB3SHR.js";
4
4
  import {
5
5
  getEnvironmentRow,
6
6
  updateEnvironmentState
7
7
  } from "./chunk-H6OT5GUL.js";
8
8
  import {
9
9
  installClaudeWrapper
10
- } from "./chunk-IU457W7Q.js";
10
+ } from "./chunk-QBJOYOVF.js";
11
11
  import {
12
12
  init_ids,
13
13
  newId
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  buildFactoryAuthEnv,
15
15
  validateFactoryRuntime
16
- } from "./chunk-NDTIDWBE.js";
16
+ } from "./chunk-YZZHDZ7B.js";
17
17
  import {
18
18
  wrapPromptWithSystem
19
19
  } from "./chunk-FVBDEOTZ.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-X6QIWZ33.js";
3
+ } from "./chunk-GQYSSSVA.js";
4
4
 
5
5
  // src/backends/pi/auth.ts
6
6
  function buildPiAuthEnv() {
@@ -4,13 +4,13 @@ import {
4
4
  } from "./chunk-D2XITRN6.js";
5
5
  import {
6
6
  authenticateAndIntercept
7
- } from "./chunk-GCQDNUS2.js";
7
+ } from "./chunk-NRXTWATQ.js";
8
8
  import {
9
9
  checkAndBump
10
10
  } from "./chunk-HVUWXUUI.js";
11
11
  import {
12
12
  ensureInitialized
13
- } from "./chunk-PN3AWRMX.js";
13
+ } from "./chunk-ZWC5V2DB.js";
14
14
  import {
15
15
  captureException
16
16
  } from "./chunk-3MQ2FWXS.js";
@@ -30,7 +30,7 @@ import {
30
30
  installSkills,
31
31
  provisionResources,
32
32
  wrapProviderWithSecrets
33
- } from "./chunk-JFOHGHW5.js";
33
+ } from "./chunk-ZY2U24QP.js";
34
34
  import {
35
35
  BLOCKED_ENV_KEYS,
36
36
  resolveVaultSecrets
@@ -59,7 +59,7 @@ import {
59
59
  } from "./chunk-EFOIR7R3.js";
60
60
  import {
61
61
  resolveContainerProvider
62
- } from "./chunk-UE6DNLSV.js";
62
+ } from "./chunk-JRQB3SHR.js";
63
63
  import {
64
64
  getEnvironment
65
65
  } from "./chunk-H6OT5GUL.js";
@@ -68,7 +68,7 @@ import {
68
68
  } from "./chunk-BCIFFAGW.js";
69
69
  import {
70
70
  resolveBackend
71
- } from "./chunk-GV6GUSCP.js";
71
+ } from "./chunk-IMPLRDOV.js";
72
72
  import {
73
73
  PERMISSION_BRIDGE_PENDING_PATH,
74
74
  PERMISSION_BRIDGE_REQUEST_PATH,
@@ -84,7 +84,7 @@ import {
84
84
  } from "./chunk-XBHDQK4Z.js";
85
85
  import {
86
86
  getConfig
87
- } from "./chunk-X6QIWZ33.js";
87
+ } from "./chunk-GQYSSSVA.js";
88
88
  import {
89
89
  init_clock,
90
90
  nowMs
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  paginatedOk,
10
10
  routeWrap
11
- } from "./chunk-QTXAWC5J.js";
11
+ } from "./chunk-T3IGOI6Z.js";
12
12
  import {
13
13
  badRequest
14
14
  } from "./chunk-EZYKRG4W.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-X6QIWZ33.js";
3
+ } from "./chunk-GQYSSSVA.js";
4
4
 
5
5
  // src/backends/opencode/auth.ts
6
6
  function buildOpencodeAuthEnv() {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  jsonOk,
3
3
  routeWrap
4
- } from "./chunk-QTXAWC5J.js";
4
+ } from "./chunk-T3IGOI6Z.js";
5
5
 
6
6
  // src/handlers/whoami.ts
7
7
  function handleWhoami(request) {
@@ -18,7 +18,7 @@ import {
18
18
  import {
19
19
  jsonOk,
20
20
  routeWrap
21
- } from "./chunk-QTXAWC5J.js";
21
+ } from "./chunk-T3IGOI6Z.js";
22
22
  import {
23
23
  getDb,
24
24
  init_client
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-X6QIWZ33.js";
3
+ } from "./chunk-GQYSSSVA.js";
4
4
  import {
5
5
  ApiError
6
6
  } from "./chunk-EZYKRG4W.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-VP527YC5.js";
4
4
  import {
5
5
  getConfig
6
- } from "./chunk-X6QIWZ33.js";
6
+ } from "./chunk-GQYSSSVA.js";
7
7
 
8
8
  // src/observability/redactor.ts
9
9
  var REDACTED = "[REDACTED]";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-X6QIWZ33.js";
3
+ } from "./chunk-GQYSSSVA.js";
4
4
 
5
5
  // src/backends/gemini/auth.ts
6
6
  function buildGeminiAuthEnv() {
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  jsonOk,
7
7
  routeWrap
8
- } from "./chunk-QTXAWC5J.js";
8
+ } from "./chunk-T3IGOI6Z.js";
9
9
  import {
10
10
  badRequest
11
11
  } from "./chunk-EZYKRG4W.js";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-XBHDQK4Z.js";
7
7
  import {
8
8
  getConfig
9
- } from "./chunk-X6QIWZ33.js";
9
+ } from "./chunk-GQYSSSVA.js";
10
10
 
11
11
  // src/backends/claude/args.ts
12
12
  function buildClaudeArgs(input) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-X6QIWZ33.js";
3
+ } from "./chunk-GQYSSSVA.js";
4
4
 
5
5
  // src/backends/factory/auth.ts
6
6
  function buildFactoryAuthEnv() {
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  runTurn
3
- } from "./chunk-JLUCJMAQ.js";
3
+ } from "./chunk-T7BHW3CP.js";
4
4
  import {
5
5
  enqueueTurn
6
- } from "./chunk-Z4LFLXRR.js";
6
+ } from "./chunk-37C5BNVV.js";
7
7
  import {
8
8
  installOtlpExporter
9
- } from "./chunk-JP7Y3TKK.js";
9
+ } from "./chunk-MZYJFU4K.js";
10
10
  import {
11
11
  redactAppendInput
12
- } from "./chunk-Z6VZYRVN.js";
12
+ } from "./chunk-VJWNFMMQ.js";
13
13
  import {
14
14
  createApiKey,
15
15
  listApiKeys
@@ -19,15 +19,15 @@ import {
19
19
  } from "./chunk-3MQ2FWXS.js";
20
20
  import {
21
21
  installShutdownHandlers
22
- } from "./chunk-64IQEPSD.js";
22
+ } from "./chunk-FYBHPBWY.js";
23
23
  import {
24
24
  runSweep
25
- } from "./chunk-AB7MPL3H.js";
25
+ } from "./chunk-EDUTIJAU.js";
26
26
  import {
27
27
  fillWarmPools,
28
28
  reconcileDockerOrphanSandboxes,
29
29
  reconcileOrphanSandboxes
30
- } from "./chunk-JFOHGHW5.js";
30
+ } from "./chunk-ZY2U24QP.js";
31
31
  import {
32
32
  appendEvent,
33
33
  installPayloadRedactor
@@ -48,13 +48,13 @@ import {
48
48
  } from "./chunk-EFOIR7R3.js";
49
49
  import {
50
50
  resolveContainerProvider
51
- } from "./chunk-UE6DNLSV.js";
51
+ } from "./chunk-JRQB3SHR.js";
52
52
  import {
53
53
  getEnvironment
54
54
  } from "./chunk-H6OT5GUL.js";
55
55
  import {
56
56
  getConfig
57
- } from "./chunk-X6QIWZ33.js";
57
+ } from "./chunk-GQYSSSVA.js";
58
58
  import {
59
59
  init_clock,
60
60
  nowMs
@@ -15,7 +15,7 @@ import {
15
15
  import {
16
16
  deleteSprite,
17
17
  listSprites
18
- } from "./chunk-NKQVOAWN.js";
18
+ } from "./chunk-O56RNR7B.js";
19
19
  import {
20
20
  allSessionSandboxes,
21
21
  countInEnv,
@@ -24,7 +24,7 @@ import {
24
24
  } from "./chunk-EFOIR7R3.js";
25
25
  import {
26
26
  resolveContainerProvider
27
- } from "./chunk-UE6DNLSV.js";
27
+ } from "./chunk-JRQB3SHR.js";
28
28
  import {
29
29
  getEnvironment,
30
30
  getEnvironmentRow,
@@ -43,10 +43,10 @@ import {
43
43
  } from "./chunk-BCIFFAGW.js";
44
44
  import {
45
45
  resolveBackend
46
- } from "./chunk-GV6GUSCP.js";
46
+ } from "./chunk-IMPLRDOV.js";
47
47
  import {
48
48
  getConfig
49
- } from "./chunk-X6QIWZ33.js";
49
+ } from "./chunk-GQYSSSVA.js";
50
50
  import {
51
51
  init_clock,
52
52
  nowMs
@@ -123,15 +123,22 @@ async function acquireForFirstTurn(sessionId) {
123
123
  );
124
124
  }
125
125
  const config = getConfig();
126
- if (countInEnv(env.id) + countWarm(env.id) >= config.maxSandboxesPerEnv) {
127
- throw new ApiError(503, "server_busy", "env sandbox pool exhausted");
126
+ const envObj = getEnvironment(row.environment_id);
127
+ const maxSandboxes = envObj?.config?.max_sandboxes ?? config.maxSandboxesPerEnv;
128
+ const active = countInEnv(env.id);
129
+ const warmCount = countWarm(env.id);
130
+ if (active + warmCount >= maxSandboxes) {
131
+ throw new ApiError(
132
+ 503,
133
+ "server_busy",
134
+ `environment ${env.id} sandbox pool exhausted (${active} active + ${warmCount} warm, limit ${maxSandboxes})`
135
+ );
128
136
  }
129
137
  const agent = getAgent(row.agent_id, row.agent_version);
130
138
  if (!agent) {
131
139
  throw new ApiError(404, "not_found_error", "agent not found for session");
132
140
  }
133
141
  const backend = resolveBackend(agent.engine);
134
- const envObj = getEnvironment(row.environment_id);
135
142
  const provider = await resolveContainerProvider(envObj?.config?.provider);
136
143
  const sessionForSecrets = getSession(sessionId);
137
144
  const secrets = sessionForSecrets?.vault_ids?.length ? resolveVaultSecrets(sessionForSecrets.vault_ids) : {};
@@ -337,7 +344,9 @@ async function replenishWarmPool(envId, engine, provider, secrets) {
337
344
  if (target <= 0) return;
338
345
  if (countWarm(envId) + countInflight(envId) >= target) return;
339
346
  const cfg = getConfig();
340
- if (countInEnv(envId) + countWarm(envId) + countInflight(envId) >= cfg.maxSandboxesPerEnv) return;
347
+ const envObj = getEnvironment(envId);
348
+ const maxSandboxes = envObj?.config?.max_sandboxes ?? cfg.maxSandboxesPerEnv;
349
+ if (countInEnv(envId) + countWarm(envId) + countInflight(envId) >= maxSandboxes) return;
341
350
  incrementInflight(envId);
342
351
  try {
343
352
  const sp = wrapProviderWithSecrets(provider, secrets);
@@ -391,7 +400,8 @@ async function fillOneEnv(env) {
391
400
  try {
392
401
  const provider = await resolveContainerProvider(env.config?.provider);
393
402
  if (!provider.supportsWarmPool) return;
394
- const backend = resolveBackend("claude");
403
+ const engine = env.config?.default_engine ?? "claude";
404
+ const backend = resolveBackend(engine);
395
405
  const needed = target - countWarm(env.id) - countInflight(env.id);
396
406
  for (let i = 0; i < needed; i++) {
397
407
  void replenishWarmPool(env.id, backend.name, provider, {});
@@ -5,7 +5,7 @@ import {
5
5
  readSetting,
6
6
  writeSetting,
7
7
  writeTokenSetting
8
- } from "../chunk-X6QIWZ33.js";
8
+ } from "../chunk-GQYSSSVA.js";
9
9
  import "../chunk-HFDLUBWN.js";
10
10
  import "../chunk-PZNAQBHQ.js";
11
11
  import "../chunk-ILHIHMO3.js";
@@ -7,8 +7,8 @@ import {
7
7
  killExecSession,
8
8
  listSprites,
9
9
  restoreCheckpoint
10
- } from "../chunk-NKQVOAWN.js";
11
- import "../chunk-X6QIWZ33.js";
10
+ } from "../chunk-O56RNR7B.js";
11
+ import "../chunk-GQYSSSVA.js";
12
12
  import "../chunk-HFDLUBWN.js";
13
13
  import "../chunk-PZNAQBHQ.js";
14
14
  import "../chunk-ILHIHMO3.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  startExec
3
- } from "../chunk-TUEBRYPZ.js";
4
- import "../chunk-X6QIWZ33.js";
3
+ } from "../chunk-USIMPXUH.js";
4
+ import "../chunk-GQYSSSVA.js";
5
5
  import "../chunk-HFDLUBWN.js";
6
6
  import "../chunk-PZNAQBHQ.js";
7
7
  import "../chunk-ILHIHMO3.js";