@agentstep/agent-sdk 0.4.30 → 0.4.32

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 (182) 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 +7 -7
  4. package/dist/backends/codex/auth.js +6 -6
  5. package/dist/backends/codex/index.js +10 -10
  6. package/dist/backends/factory/auth.js +6 -6
  7. package/dist/backends/factory/index.js +7 -7
  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 +10 -10
  12. package/dist/backends/pi/auth.js +6 -6
  13. package/dist/backends/pi/index.js +7 -7
  14. package/dist/backends/registry.js +24 -24
  15. package/dist/{chunk-QWGJS6V6.js → chunk-2CPZFRJJ.js} +13 -9
  16. package/dist/{chunk-NZATVUV2.js → chunk-2GIX4HAT.js} +1 -1
  17. package/dist/{chunk-67D4I5AE.js → chunk-2I35VGHX.js} +4 -4
  18. package/dist/{chunk-XQEMI2MI.js → chunk-2PPB644A.js} +1 -1
  19. package/dist/{chunk-LR4TA74O.js → chunk-2VED3F37.js} +21 -17
  20. package/dist/{chunk-HFBC2TOG.js → chunk-3HL62Y77.js} +2 -2
  21. package/dist/{chunk-YTC6ST5T.js → chunk-3HTE2CIM.js} +5 -5
  22. package/dist/{chunk-LOAFGJWC.js → chunk-3K4KIYEZ.js} +2 -2
  23. package/dist/{chunk-65XR7JU6.js → chunk-3NQH2EUI.js} +4 -4
  24. package/dist/{chunk-DL2BACWC.js → chunk-45JXGYJK.js} +9 -8
  25. package/dist/{chunk-BQOFXJSK.js → chunk-47XDZFF4.js} +3 -3
  26. package/dist/chunk-4XXQAVKE.js +34 -0
  27. package/dist/{chunk-4PVPM2WC.js → chunk-5EKQBD2H.js} +7 -7
  28. package/dist/{chunk-HA5FIXGQ.js → chunk-5EQJOUWM.js} +1 -1
  29. package/dist/{chunk-IFXD4DH5.js → chunk-5IGBMS2U.js} +1 -1
  30. package/dist/{chunk-SXTHM67U.js → chunk-6GP5IKXE.js} +1 -1
  31. package/dist/{chunk-HEDK5J34.js → chunk-6IYCBW4J.js} +1 -1
  32. package/dist/{chunk-4C7XJI2V.js → chunk-6POQAFEC.js} +1 -1
  33. package/dist/{chunk-6VENJOPG.js → chunk-7CD4QT5R.js} +2 -2
  34. package/dist/{chunk-5QTDZQ2H.js → chunk-7VVH435L.js} +4 -4
  35. package/dist/{chunk-SW75SNDB.js → chunk-A3KHFT7I.js} +7 -7
  36. package/dist/{chunk-BBYQMNGK.js → chunk-AR2TM7CR.js} +1 -1
  37. package/dist/{chunk-BKBC43KV.js → chunk-C46UG6GQ.js} +1 -1
  38. package/dist/{chunk-KA33M67F.js → chunk-C6AXM3M7.js} +2 -2
  39. package/dist/{chunk-XTTHH5MF.js → chunk-CREPPDHX.js} +1 -1
  40. package/dist/{chunk-F3BVYYRX.js → chunk-DYK2WTYW.js} +5 -5
  41. package/dist/{chunk-NT2AI5IE.js → chunk-E7DD7F7J.js} +6 -6
  42. package/dist/{chunk-BJK4SGWG.js → chunk-EA4JOLDI.js} +2 -2
  43. package/dist/{chunk-4B7PQTTS.js → chunk-EUIR2ADY.js} +8 -8
  44. package/dist/{chunk-REGPK5NG.js → chunk-FXLUSECC.js} +1 -1
  45. package/dist/chunk-G7KUVNDY.js +80 -0
  46. package/dist/{chunk-H62LRJJP.js → chunk-GUXT2F26.js} +42 -12
  47. package/dist/{chunk-YGTC5UP5.js → chunk-H7UKW666.js} +1 -1
  48. package/dist/{chunk-TRGHIMCR.js → chunk-IDIOFF35.js} +33 -4
  49. package/dist/{chunk-L43UD7PK.js → chunk-JCW3ZRES.js} +1 -1
  50. package/dist/{chunk-VMILIALE.js → chunk-JVNWYWAT.js} +15 -15
  51. package/dist/{chunk-6EQZSMIZ.js → chunk-JZL4L54R.js} +4 -4
  52. package/dist/{chunk-2JKOYBUO.js → chunk-K7NOZ7LV.js} +1 -1
  53. package/dist/{chunk-NC4FHDIP.js → chunk-KLN6HPYM.js} +1 -1
  54. package/dist/{chunk-YIOKUA23.js → chunk-L2RX552S.js} +7 -7
  55. package/dist/{chunk-JSKZXF5J.js → chunk-L5RW66H5.js} +1 -1
  56. package/dist/{chunk-AXISFTHX.js → chunk-MPTQYBVB.js} +2 -2
  57. package/dist/{chunk-FIJTBRZ5.js → chunk-MQQ44IGX.js} +4 -4
  58. package/dist/{chunk-ULQOJ3WO.js → chunk-N3QIXC2B.js} +2 -2
  59. package/dist/{chunk-VC25NYHW.js → chunk-OGJUSGF7.js} +1 -1
  60. package/dist/{chunk-AP2N4R6D.js → chunk-P26WOAA3.js} +1 -1
  61. package/dist/{chunk-H3O7QBOQ.js → chunk-P3PHXVMA.js} +1 -1
  62. package/dist/{chunk-BSVZAXLI.js → chunk-PKYFFSLU.js} +6 -6
  63. package/dist/{chunk-ULJVEN67.js → chunk-QBMPITYC.js} +3 -3
  64. package/dist/{chunk-DNV6JZLZ.js → chunk-QEIG7FXY.js} +1 -1
  65. package/dist/{chunk-TRQX5AIZ.js → chunk-QHBXWPSO.js} +4 -4
  66. package/dist/{chunk-JYUJQHPR.js → chunk-QO2C2PBW.js} +3 -3
  67. package/dist/{chunk-SLAOS6JN.js → chunk-R5T4LJSK.js} +2 -2
  68. package/dist/{chunk-46XURNM7.js → chunk-R6V363NP.js} +4 -4
  69. package/dist/{chunk-X2EEOO6Q.js → chunk-RRASSOJX.js} +5 -5
  70. package/dist/{chunk-2DRBKIGQ.js → chunk-RVR6C22M.js} +1 -1
  71. package/dist/{chunk-CL3DUJRJ.js → chunk-S7HHYBY3.js} +2 -2
  72. package/dist/{chunk-EIR2TG5I.js → chunk-S7W3KJYH.js} +1 -1
  73. package/dist/{chunk-7V277COF.js → chunk-SUGSHXND.js} +7 -7
  74. package/dist/{chunk-5NBZZZKH.js → chunk-TH7WJLZC.js} +8 -8
  75. package/dist/{chunk-7DSZOBSQ.js → chunk-TIHUJDA6.js} +2 -2
  76. package/dist/{chunk-HF6HORZZ.js → chunk-TPPLYCJF.js} +2 -2
  77. package/dist/{chunk-PFWTQ43U.js → chunk-TQYD3NYI.js} +1 -1
  78. package/dist/{chunk-VUADJZRV.js → chunk-UJAD2NQ7.js} +3 -3
  79. package/dist/{chunk-WHV4YUQB.js → chunk-USYY3L7G.js} +6 -6
  80. package/dist/{chunk-M36DF445.js → chunk-V2R7RWVY.js} +1 -1
  81. package/dist/{chunk-EFDAVLKN.js → chunk-V7MTIMPB.js} +9 -7
  82. package/dist/{chunk-XUNTHJIE.js → chunk-WCDWL6ED.js} +7 -0
  83. package/dist/{chunk-QV5WI73T.js → chunk-WCNGMBIE.js} +3 -3
  84. package/dist/{chunk-FGQFNIRI.js → chunk-WQARLGBG.js} +3 -3
  85. package/dist/{chunk-EN3ICYTL.js → chunk-WQHRP3JL.js} +181 -15
  86. package/dist/{chunk-S5HVHCAK.js → chunk-X6IQ57SC.js} +8 -8
  87. package/dist/{chunk-WP5EWNGJ.js → chunk-X7VVDJ6T.js} +4 -4
  88. package/dist/{chunk-UF3NB27E.js → chunk-XMTKYR64.js} +8 -8
  89. package/dist/{chunk-7UJ2PIXJ.js → chunk-YD3T4PBA.js} +2 -2
  90. package/dist/{chunk-EFCCO74P.js → chunk-YDZ7PCQO.js} +3 -3
  91. package/dist/{chunk-JN3G4Y4L.js → chunk-YNOONYPO.js} +4 -4
  92. package/dist/{chunk-H7Z4BWRI.js → chunk-YVHFSCAX.js} +2 -2
  93. package/dist/{chunk-3KLJGU75.js → chunk-YYEDFQJY.js} +18 -12
  94. package/dist/{chunk-LHHBOQUR.js → chunk-ZMJ4EP4C.js} +2 -0
  95. package/dist/{chunk-TXUUUO5R.js → chunk-ZTH5JRZG.js} +8 -8
  96. package/dist/{chunk-TZZMVXFM.js → chunk-ZUDHZG7B.js} +4 -4
  97. package/dist/{chunk-7GNSB22P.js → chunk-ZVXIZ2JD.js} +8 -8
  98. package/dist/config/index.js +5 -5
  99. package/dist/containers/client.js +6 -6
  100. package/dist/containers/exec.js +6 -6
  101. package/dist/containers/lifecycle.js +42 -37
  102. package/dist/containers/setup.js +8 -8
  103. package/dist/containers/warm-pool.js +21 -0
  104. package/dist/db/agents.js +6 -6
  105. package/dist/db/api_keys.js +5 -5
  106. package/dist/db/audit.js +3 -3
  107. package/dist/db/batch.js +10 -10
  108. package/dist/db/client.js +2 -2
  109. package/dist/db/credentials.js +3 -3
  110. package/dist/db/drizzle.js +4 -4
  111. package/dist/db/environments.js +6 -6
  112. package/dist/db/events.js +5 -5
  113. package/dist/db/files.js +5 -5
  114. package/dist/db/memory.js +5 -5
  115. package/dist/db/migrations.js +1 -1
  116. package/dist/db/proxy.js +5 -5
  117. package/dist/db/schema.js +1 -1
  118. package/dist/db/session-resources.js +5 -5
  119. package/dist/db/sessions.js +7 -7
  120. package/dist/db/sync.js +5 -5
  121. package/dist/db/tenants.js +3 -3
  122. package/dist/db/traces.js +5 -5
  123. package/dist/db/upstream_keys.js +3 -3
  124. package/dist/db/vaults.js +6 -6
  125. package/dist/handlers/agents.js +53 -52
  126. package/dist/handlers/api_keys.js +54 -53
  127. package/dist/handlers/audit.js +54 -53
  128. package/dist/handlers/batch.js +54 -53
  129. package/dist/handlers/credentials.js +54 -53
  130. package/dist/handlers/environments.js +54 -53
  131. package/dist/handlers/events.js +57 -56
  132. package/dist/handlers/files.js +54 -53
  133. package/dist/handlers/index.js +103 -102
  134. package/dist/handlers/license.js +53 -52
  135. package/dist/handlers/memory.js +54 -53
  136. package/dist/handlers/metrics.js +53 -52
  137. package/dist/handlers/models.js +54 -53
  138. package/dist/handlers/providers.js +53 -52
  139. package/dist/handlers/resources.js +53 -52
  140. package/dist/handlers/sessions.js +56 -55
  141. package/dist/handlers/settings.js +53 -52
  142. package/dist/handlers/skills-write.js +53 -52
  143. package/dist/handlers/skills.js +54 -53
  144. package/dist/handlers/stream.js +53 -52
  145. package/dist/handlers/tenants.js +54 -53
  146. package/dist/handlers/threads.js +53 -52
  147. package/dist/handlers/traces.js +54 -53
  148. package/dist/handlers/upstream_keys.js +56 -55
  149. package/dist/handlers/vaults.js +53 -52
  150. package/dist/handlers/whoami.js +53 -52
  151. package/dist/http.js +52 -51
  152. package/dist/index.js +66 -65
  153. package/dist/init.js +49 -48
  154. package/dist/lib/model-registry.js +6 -6
  155. package/dist/lib/skills-cache.js +6 -6
  156. package/dist/observability/otlp.js +12 -12
  157. package/dist/observability/redactor.js +8 -8
  158. package/dist/providers/apple-container.js +2 -2
  159. package/dist/providers/docker.js +1 -1
  160. package/dist/providers/fly.js +5 -5
  161. package/dist/providers/modal.js +5 -5
  162. package/dist/providers/podman.js +24 -21
  163. package/dist/providers/registry.js +1 -1
  164. package/dist/providers/resolve-secrets.js +7 -7
  165. package/dist/providers/sprites.js +8 -7
  166. package/dist/providers/upstream-keys.js +11 -11
  167. package/dist/providers/vercel.js +5 -5
  168. package/dist/proxy/forward.js +6 -6
  169. package/dist/queue/index.js +6 -6
  170. package/dist/sessions/bus.js +10 -10
  171. package/dist/sessions/driver.js +42 -41
  172. package/dist/sessions/grader.js +5 -5
  173. package/dist/sessions/secrets.js +8 -8
  174. package/dist/sessions/sweeper.js +39 -38
  175. package/dist/sessions/threads.js +42 -41
  176. package/dist/shutdown.js +40 -39
  177. package/dist/sync/anthropic.js +10 -10
  178. package/dist/sync/container-file-sync.js +6 -6
  179. package/dist/sync/file-sync.js +17 -17
  180. package/package.json +1 -1
  181. package/dist/chunk-RMZRSYIJ.js +0 -31
  182. /package/dist/{chunk-C6JEPQ7T.js → chunk-WPK4ZPMG.js} +0 -0
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-23UKWXJH.js";
7
7
  import {
8
8
  recordAudit
9
- } from "./chunk-NC4FHDIP.js";
9
+ } from "./chunk-KLN6HPYM.js";
10
10
  import {
11
11
  COMMUNITY_LIMITS,
12
12
  hasFeature,
@@ -15,7 +15,7 @@ import {
15
15
  import {
16
16
  jsonOk,
17
17
  routeWrap
18
- } from "./chunk-LOAFGJWC.js";
18
+ } from "./chunk-3K4KIYEZ.js";
19
19
  import {
20
20
  createApiKey,
21
21
  getApiKeyById,
@@ -23,14 +23,14 @@ import {
23
23
  listApiKeys,
24
24
  revokeApiKey,
25
25
  updateApiKeyPermissions
26
- } from "./chunk-WHV4YUQB.js";
26
+ } from "./chunk-USYY3L7G.js";
27
27
  import {
28
28
  listSessionsByApiKey
29
- } from "./chunk-QWGJS6V6.js";
29
+ } from "./chunk-2CPZFRJJ.js";
30
30
  import {
31
31
  getDb,
32
32
  init_client
33
- } from "./chunk-4C7XJI2V.js";
33
+ } from "./chunk-6POQAFEC.js";
34
34
  import {
35
35
  badRequest,
36
36
  forbidden,
@@ -4,13 +4,13 @@ import {
4
4
  } from "./chunk-D2XITRN6.js";
5
5
  import {
6
6
  authenticateAndIntercept
7
- } from "./chunk-FGQFNIRI.js";
7
+ } from "./chunk-WQARLGBG.js";
8
8
  import {
9
9
  checkAndBump
10
10
  } from "./chunk-HVUWXUUI.js";
11
11
  import {
12
12
  ensureInitialized
13
- } from "./chunk-LR4TA74O.js";
13
+ } from "./chunk-2VED3F37.js";
14
14
  import {
15
15
  captureException
16
16
  } from "./chunk-3MQ2FWXS.js";
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  jsonOk,
8
8
  routeWrap
9
- } from "./chunk-LOAFGJWC.js";
9
+ } from "./chunk-3K4KIYEZ.js";
10
10
  import {
11
11
  createVault,
12
12
  deleteEntry,
@@ -16,14 +16,14 @@ import {
16
16
  listEntries,
17
17
  listVaults,
18
18
  setEntry
19
- } from "./chunk-7GNSB22P.js";
19
+ } from "./chunk-ZVXIZ2JD.js";
20
20
  import {
21
21
  getAgent
22
- } from "./chunk-TXUUUO5R.js";
22
+ } from "./chunk-ZTH5JRZG.js";
23
23
  import {
24
24
  getDb,
25
25
  init_client
26
- } from "./chunk-4C7XJI2V.js";
26
+ } from "./chunk-6POQAFEC.js";
27
27
  import {
28
28
  badRequest,
29
29
  conflict,
@@ -5,23 +5,23 @@ import {
5
5
  } from "./chunk-23UKWXJH.js";
6
6
  import {
7
7
  kickoffEnvironmentSetup
8
- } from "./chunk-KA33M67F.js";
8
+ } from "./chunk-C6AXM3M7.js";
9
9
  import {
10
10
  jsonOk,
11
11
  routeWrap
12
- } from "./chunk-LOAFGJWC.js";
12
+ } from "./chunk-3K4KIYEZ.js";
13
13
  import {
14
14
  forwardToAnthropic
15
- } from "./chunk-L43UD7PK.js";
15
+ } from "./chunk-JCW3ZRES.js";
16
16
  import {
17
17
  getProxiedTenantId,
18
18
  isProxied,
19
19
  markProxied,
20
20
  unmarkProxied
21
- } from "./chunk-NT2AI5IE.js";
21
+ } from "./chunk-E7DD7F7J.js";
22
22
  import {
23
23
  resolveContainerProvider
24
- } from "./chunk-C6JEPQ7T.js";
24
+ } from "./chunk-WPK4ZPMG.js";
25
25
  import {
26
26
  archiveEnvironment,
27
27
  createEnvironment,
@@ -30,11 +30,11 @@ import {
30
30
  hasSessionsAttached,
31
31
  listEnvironments,
32
32
  updateEnvironment
33
- } from "./chunk-S5HVHCAK.js";
33
+ } from "./chunk-X6IQ57SC.js";
34
34
  import {
35
35
  getDb,
36
36
  init_client
37
- } from "./chunk-4C7XJI2V.js";
37
+ } from "./chunk-6POQAFEC.js";
38
38
  import {
39
39
  badRequest,
40
40
  conflict,
@@ -82,7 +82,8 @@ var ConfigSchema = z.object({
82
82
  type: z.literal("cloud"),
83
83
  provider: z.enum(["sprites", "docker", "apple-container", "apple-firecracker", "podman", "e2b", "vercel", "daytona", "fly", "modal", "mvm", "anthropic"]).optional(),
84
84
  packages: PackagesSchema,
85
- networking: NetworkingSchema.optional()
85
+ networking: NetworkingSchema.optional(),
86
+ warm_pool_size: z.number().int().min(0).optional()
86
87
  });
87
88
  var CreateSchema = z.object({
88
89
  name: z.string().min(1),
@@ -11,18 +11,18 @@ import {
11
11
  getFileRecord,
12
12
  listFiles,
13
13
  updateFileStoragePath
14
- } from "./chunk-SW75SNDB.js";
14
+ } from "./chunk-A3KHFT7I.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-LOAFGJWC.js";
21
+ } from "./chunk-3K4KIYEZ.js";
22
22
  import {
23
23
  getDb,
24
24
  init_client
25
- } from "./chunk-4C7XJI2V.js";
25
+ } from "./chunk-6POQAFEC.js";
26
26
  import {
27
27
  badRequest,
28
28
  notFound
@@ -0,0 +1,34 @@
1
+ import {
2
+ createCliProvider
3
+ } from "./chunk-5ZFOKZGR.js";
4
+
5
+ // src/providers/docker.ts
6
+ var DEFAULT_IMAGE = process.env.DOCKER_IMAGE ?? "node:22";
7
+ var dockerProvider = Object.assign(
8
+ createCliProvider({
9
+ name: "docker",
10
+ binary: "docker",
11
+ createSteps: (name) => [
12
+ ["create", "--name", name, DEFAULT_IMAGE, "sleep", "infinity"],
13
+ ["start", name]
14
+ ],
15
+ deleteArgs: (name) => ["rm", "-f", name],
16
+ execArgs: (name, argv) => ["exec", "-i", name, ...argv],
17
+ listArgs: (prefix) => [
18
+ "ps",
19
+ "-a",
20
+ "--filter",
21
+ `name=${prefix}`,
22
+ "--format",
23
+ "{{.Names}}"
24
+ ],
25
+ parseList: (stdout) => stdout.trim().split("\n").filter(Boolean),
26
+ checkCmd: ["version", "--format", "{{.Server.Version}}"],
27
+ checkFailMsg: (msg) => msg.includes("ENOENT") ? "Docker not installed. Run: brew install --cask docker" : "Docker not running \u2014 launch Docker Desktop"
28
+ }),
29
+ { supportsWarmPool: true }
30
+ );
31
+
32
+ export {
33
+ dockerProvider
34
+ };
@@ -2,18 +2,18 @@ import {
2
2
  init_ids,
3
3
  newId
4
4
  } from "./chunk-F4WUVOLE.js";
5
- import {
6
- getDrizzle,
7
- init_drizzle
8
- } from "./chunk-SLAOS6JN.js";
9
- import {
10
- schema_exports
11
- } from "./chunk-LHHBOQUR.js";
12
5
  import {
13
6
  init_clock,
14
7
  nowMs,
15
8
  toIso
16
9
  } from "./chunk-HFDLUBWN.js";
10
+ import {
11
+ getDrizzle,
12
+ init_drizzle
13
+ } from "./chunk-R5T4LJSK.js";
14
+ import {
15
+ schema_exports
16
+ } from "./chunk-ZMJ4EP4C.js";
17
17
  import {
18
18
  __esm,
19
19
  __export
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  buildPiAuthEnv,
6
6
  validatePiRuntime
7
- } from "./chunk-2DRBKIGQ.js";
7
+ } from "./chunk-RVR6C22M.js";
8
8
  import {
9
9
  preparePiOnSandbox
10
10
  } from "./chunk-QYSDP6V5.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  listEntries
3
- } from "./chunk-7GNSB22P.js";
3
+ } from "./chunk-ZVXIZ2JD.js";
4
4
 
5
5
  // src/providers/resolve-secrets.ts
6
6
  var BLOCKED_ENV_KEYS = /* @__PURE__ */ new Set([
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getDrizzle,
3
3
  init_drizzle
4
- } from "./chunk-SLAOS6JN.js";
4
+ } from "./chunk-R5T4LJSK.js";
5
5
 
6
6
  // src/db/traces.ts
7
7
  init_drizzle();
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-EFDAVLKN.js";
3
+ } from "./chunk-V7MTIMPB.js";
4
4
 
5
5
  // src/backends/codex/auth.ts
6
6
  function buildCodexAuthEnv() {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_migrations,
3
3
  runMigrations
4
- } from "./chunk-XUNTHJIE.js";
4
+ } from "./chunk-WCDWL6ED.js";
5
5
  import {
6
6
  __esm
7
7
  } from "./chunk-2ESYSVXG.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  buildClaudeArgs,
3
3
  buildClaudeAuthEnv
4
- } from "./chunk-EIR2TG5I.js";
4
+ } from "./chunk-S7W3KJYH.js";
5
5
  import {
6
6
  PERMISSION_BRIDGE_DIR,
7
7
  PERMISSION_HOOK_SCRIPT_PATH,
@@ -25,7 +25,7 @@ import {
25
25
  } from "./chunk-IU457W7Q.js";
26
26
  import {
27
27
  getConfig
28
- } from "./chunk-EFDAVLKN.js";
28
+ } from "./chunk-V7MTIMPB.js";
29
29
 
30
30
  // src/backends/claude/index.ts
31
31
  function buildTurn(input) {
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  createSession
3
- } from "./chunk-QWGJS6V6.js";
3
+ } from "./chunk-2CPZFRJJ.js";
4
4
  import {
5
5
  createEnvironment,
6
6
  deleteEnvironment,
7
7
  getEnvironment
8
- } from "./chunk-S5HVHCAK.js";
8
+ } from "./chunk-X6IQ57SC.js";
9
9
  import {
10
10
  archiveAgent,
11
11
  createAgent,
12
12
  getAgent
13
- } from "./chunk-TXUUUO5R.js";
13
+ } from "./chunk-ZTH5JRZG.js";
14
14
  import {
15
15
  getDrizzle,
16
16
  init_drizzle
17
- } from "./chunk-SLAOS6JN.js";
17
+ } from "./chunk-R5T4LJSK.js";
18
18
 
19
19
  // src/db/batch.ts
20
20
  init_drizzle();
@@ -2,18 +2,18 @@ import {
2
2
  init_ids,
3
3
  newId
4
4
  } from "./chunk-F4WUVOLE.js";
5
- import {
6
- getDrizzle,
7
- init_drizzle
8
- } from "./chunk-SLAOS6JN.js";
9
- import {
10
- schema_exports
11
- } from "./chunk-LHHBOQUR.js";
12
5
  import {
13
6
  init_clock,
14
7
  nowMs,
15
8
  toIso
16
9
  } from "./chunk-HFDLUBWN.js";
10
+ import {
11
+ getDrizzle,
12
+ init_drizzle
13
+ } from "./chunk-R5T4LJSK.js";
14
+ import {
15
+ schema_exports
16
+ } from "./chunk-ZMJ4EP4C.js";
17
17
 
18
18
  // src/db/files.ts
19
19
  init_drizzle();
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  getDb,
12
12
  init_client
13
- } from "./chunk-4C7XJI2V.js";
13
+ } from "./chunk-6POQAFEC.js";
14
14
 
15
15
  // src/db/tenants.ts
16
16
  init_client();
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  getConfig,
6
6
  readSetting
7
- } from "./chunk-EFDAVLKN.js";
7
+ } from "./chunk-V7MTIMPB.js";
8
8
  import {
9
9
  __commonJS
10
10
  } from "./chunk-2ESYSVXG.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  resolveContainerProvider
3
- } from "./chunk-C6JEPQ7T.js";
3
+ } from "./chunk-WPK4ZPMG.js";
4
4
  import {
5
5
  getEnvironmentRow,
6
6
  updateEnvironmentState
7
- } from "./chunk-S5HVHCAK.js";
7
+ } from "./chunk-X6IQ57SC.js";
8
8
  import {
9
9
  installClaudeWrapper
10
10
  } from "./chunk-IU457W7Q.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-EFDAVLKN.js";
3
+ } from "./chunk-V7MTIMPB.js";
4
4
 
5
5
  // src/backends/factory/auth.ts
6
6
  function buildFactoryAuthEnv() {
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  onAfterCommit
3
- } from "./chunk-TRQX5AIZ.js";
3
+ } from "./chunk-QHBXWPSO.js";
4
4
  import {
5
5
  getSessionRow
6
- } from "./chunk-QWGJS6V6.js";
6
+ } from "./chunk-2CPZFRJJ.js";
7
7
  import {
8
8
  listEventsByTrace
9
- } from "./chunk-5NBZZZKH.js";
9
+ } from "./chunk-TH7WJLZC.js";
10
10
  import {
11
11
  getAgent
12
- } from "./chunk-TXUUUO5R.js";
12
+ } from "./chunk-ZTH5JRZG.js";
13
13
  import {
14
14
  getConfig
15
- } from "./chunk-EFDAVLKN.js";
15
+ } from "./chunk-V7MTIMPB.js";
16
16
 
17
17
  // src/observability/otlp.ts
18
18
  import { createHash } from "crypto";
@@ -1,14 +1,14 @@
1
+ import {
2
+ init_clock,
3
+ nowMs
4
+ } from "./chunk-HFDLUBWN.js";
1
5
  import {
2
6
  getDrizzle,
3
7
  init_drizzle
4
- } from "./chunk-SLAOS6JN.js";
8
+ } from "./chunk-R5T4LJSK.js";
5
9
  import {
6
10
  schema_exports
7
- } from "./chunk-LHHBOQUR.js";
8
- import {
9
- init_clock,
10
- nowMs
11
- } from "./chunk-HFDLUBWN.js";
11
+ } from "./chunk-ZMJ4EP4C.js";
12
12
 
13
13
  // src/db/proxy.ts
14
14
  init_drizzle();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getModels
3
- } from "./chunk-BKBC43KV.js";
3
+ } from "./chunk-C46UG6GQ.js";
4
4
  import {
5
5
  jsonOk,
6
6
  routeWrap
7
- } from "./chunk-LOAFGJWC.js";
7
+ } from "./chunk-3K4KIYEZ.js";
8
8
 
9
9
  // src/handlers/models.ts
10
10
  function handleListModels(request) {
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  piBackend
3
- } from "./chunk-HA5FIXGQ.js";
3
+ } from "./chunk-5EQJOUWM.js";
4
4
  import {
5
5
  opencodeBackend
6
- } from "./chunk-FIJTBRZ5.js";
6
+ } from "./chunk-MQQ44IGX.js";
7
+ import {
8
+ factoryBackend
9
+ } from "./chunk-2GIX4HAT.js";
7
10
  import {
8
11
  geminiBackend
9
- } from "./chunk-6EQZSMIZ.js";
12
+ } from "./chunk-JZL4L54R.js";
10
13
  import {
11
14
  codexBackend
12
- } from "./chunk-67D4I5AE.js";
13
- import {
14
- factoryBackend
15
- } from "./chunk-NZATVUV2.js";
15
+ } from "./chunk-2I35VGHX.js";
16
16
  import {
17
17
  claudeBackend
18
- } from "./chunk-6VENJOPG.js";
18
+ } from "./chunk-7CD4QT5R.js";
19
19
 
20
20
  // src/backends/registry.ts
21
21
  var BACKENDS = {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-EFDAVLKN.js";
3
+ } from "./chunk-V7MTIMPB.js";
4
4
  import {
5
5
  ApiError
6
6
  } from "./chunk-EZYKRG4W.js";
@@ -0,0 +1,80 @@
1
+ // src/containers/warm-pool.ts
2
+ var g = globalThis;
3
+ function state() {
4
+ if (!g.__caWarmPool) {
5
+ g.__caWarmPool = { byEnv: /* @__PURE__ */ new Map(), inflight: /* @__PURE__ */ new Map() };
6
+ }
7
+ return g.__caWarmPool;
8
+ }
9
+ function addWarm(entry) {
10
+ const s = state();
11
+ const list = s.byEnv.get(entry.envId) ?? [];
12
+ list.push(entry);
13
+ s.byEnv.set(entry.envId, list);
14
+ }
15
+ function claimWarm(envId, engine, provider) {
16
+ const s = state();
17
+ const list = s.byEnv.get(envId);
18
+ if (!list || list.length === 0) return null;
19
+ const idx = list.findIndex(
20
+ (e) => e.engine === engine && e.provider === provider
21
+ );
22
+ if (idx === -1) return null;
23
+ const [entry] = list.splice(idx, 1);
24
+ if (list.length === 0) s.byEnv.delete(envId);
25
+ return entry;
26
+ }
27
+ function expireWarm(now = Date.now()) {
28
+ const s = state();
29
+ const expired = [];
30
+ for (const [envId, list] of s.byEnv) {
31
+ const keep = [];
32
+ for (const entry of list) {
33
+ if (entry.expiresAt <= now) {
34
+ expired.push(entry);
35
+ } else {
36
+ keep.push(entry);
37
+ }
38
+ }
39
+ if (keep.length === 0) {
40
+ s.byEnv.delete(envId);
41
+ } else {
42
+ s.byEnv.set(envId, keep);
43
+ }
44
+ }
45
+ return expired;
46
+ }
47
+ function countWarm(envId) {
48
+ return state().byEnv.get(envId)?.length ?? 0;
49
+ }
50
+ function countInflight(envId) {
51
+ return state().inflight.get(envId) ?? 0;
52
+ }
53
+ function incrementInflight(envId) {
54
+ const s = state();
55
+ s.inflight.set(envId, (s.inflight.get(envId) ?? 0) + 1);
56
+ }
57
+ function decrementInflight(envId) {
58
+ const s = state();
59
+ const cur = s.inflight.get(envId) ?? 0;
60
+ const next = cur - 1;
61
+ if (next <= 0) {
62
+ s.inflight.delete(envId);
63
+ } else {
64
+ s.inflight.set(envId, next);
65
+ }
66
+ }
67
+ function __resetWarmPool() {
68
+ g.__caWarmPool = { byEnv: /* @__PURE__ */ new Map(), inflight: /* @__PURE__ */ new Map() };
69
+ }
70
+
71
+ export {
72
+ addWarm,
73
+ claimWarm,
74
+ expireWarm,
75
+ countWarm,
76
+ countInflight,
77
+ incrementInflight,
78
+ decrementInflight,
79
+ __resetWarmPool
80
+ };
@@ -21,24 +21,24 @@ import {
21
21
  } from "./chunk-72BKGVBE.js";
22
22
  import {
23
23
  loadSessionSecrets
24
- } from "./chunk-HF6HORZZ.js";
24
+ } from "./chunk-TPPLYCJF.js";
25
25
  import {
26
26
  isProxied
27
- } from "./chunk-NT2AI5IE.js";
27
+ } from "./chunk-E7DD7F7J.js";
28
28
  import {
29
29
  acquireForFirstTurn,
30
30
  installSkills,
31
31
  provisionResources,
32
32
  wrapProviderWithSecrets
33
- } from "./chunk-EN3ICYTL.js";
33
+ } from "./chunk-WQHRP3JL.js";
34
34
  import {
35
35
  BLOCKED_ENV_KEYS,
36
36
  resolveVaultSecrets
37
- } from "./chunk-IFXD4DH5.js";
37
+ } from "./chunk-5IGBMS2U.js";
38
38
  import {
39
39
  appendEvent,
40
40
  appendEventsBatch
41
- } from "./chunk-TRQX5AIZ.js";
41
+ } from "./chunk-QHBXWPSO.js";
42
42
  import {
43
43
  bumpSessionStats,
44
44
  getOutcomeCriteria,
@@ -49,26 +49,26 @@ import {
49
49
  setOutcomeCriteria,
50
50
  updateSessionMutable,
51
51
  updateSessionStatus
52
- } from "./chunk-QWGJS6V6.js";
52
+ } from "./chunk-2CPZFRJJ.js";
53
53
  import {
54
54
  listEvents,
55
55
  markUserEventProcessed
56
- } from "./chunk-5NBZZZKH.js";
56
+ } from "./chunk-TH7WJLZC.js";
57
57
  import {
58
58
  getBySession
59
59
  } from "./chunk-EFOIR7R3.js";
60
60
  import {
61
61
  resolveContainerProvider
62
- } from "./chunk-C6JEPQ7T.js";
62
+ } from "./chunk-WPK4ZPMG.js";
63
63
  import {
64
64
  getEnvironment
65
- } from "./chunk-S5HVHCAK.js";
65
+ } from "./chunk-X6IQ57SC.js";
66
66
  import {
67
67
  getAgent
68
- } from "./chunk-TXUUUO5R.js";
68
+ } from "./chunk-ZTH5JRZG.js";
69
69
  import {
70
70
  resolveBackend
71
- } from "./chunk-4B7PQTTS.js";
71
+ } from "./chunk-EUIR2ADY.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-EFDAVLKN.js";
87
+ } from "./chunk-V7MTIMPB.js";
88
88
  import {
89
89
  init_clock,
90
90
  nowMs
@@ -180,6 +180,36 @@ async function runTurn(sessionId, inputs, _depth = 0, parentTrace) {
180
180
  return;
181
181
  }
182
182
  }
183
+ if (budgetRow != null) {
184
+ const totalTokens = (budgetRow.usage_input_tokens ?? 0) + (budgetRow.usage_output_tokens ?? 0);
185
+ if (budgetRow.max_tokens != null && totalTokens >= budgetRow.max_tokens) {
186
+ emit("session.error", {
187
+ error: {
188
+ type: "quota_exceeded",
189
+ scope: "session",
190
+ message: `tokens used ${totalTokens} >= session token limit ${budgetRow.max_tokens}`
191
+ }
192
+ });
193
+ emit("session.status_idle", { stop_reason: formatStopReason("error") });
194
+ updateSessionStatus(sessionId, "idle", "error");
195
+ return;
196
+ }
197
+ }
198
+ if (budgetRow != null && budgetRow.max_wall_duration_ms != null) {
199
+ const ageMs = nowMs() - budgetRow.created_at;
200
+ if (ageMs >= budgetRow.max_wall_duration_ms) {
201
+ emit("session.error", {
202
+ error: {
203
+ type: "quota_exceeded",
204
+ scope: "session",
205
+ message: `session age ${ageMs}ms >= wall limit ${budgetRow.max_wall_duration_ms}ms`
206
+ }
207
+ });
208
+ emit("session.status_idle", { stop_reason: formatStopReason("error") });
209
+ updateSessionStatus(sessionId, "idle", "error");
210
+ return;
211
+ }
212
+ }
183
213
  for (const p of inputs) markUserEventProcessed(p.eventId, nowMs());
184
214
  const row = getSessionRow(sessionId);
185
215
  if (row && row.title == null) {
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  getDb,
15
15
  init_client
16
- } from "./chunk-4C7XJI2V.js";
16
+ } from "./chunk-6POQAFEC.js";
17
17
 
18
18
  // src/db/upstream_keys.ts
19
19
  init_client();