@agentstep/agent-sdk 0.4.31 → 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 (164) hide show
  1. package/dist/auth/middleware.js +5 -5
  2. package/dist/backends/claude/args.js +3 -3
  3. package/dist/backends/claude/index.js +4 -4
  4. package/dist/backends/codex/auth.js +3 -3
  5. package/dist/backends/codex/index.js +7 -7
  6. package/dist/backends/factory/auth.js +3 -3
  7. package/dist/backends/factory/index.js +4 -4
  8. package/dist/backends/gemini/auth.js +3 -3
  9. package/dist/backends/gemini/index.js +7 -7
  10. package/dist/backends/opencode/auth.js +3 -3
  11. package/dist/backends/opencode/index.js +7 -7
  12. package/dist/backends/pi/auth.js +3 -3
  13. package/dist/backends/pi/index.js +4 -4
  14. package/dist/backends/registry.js +21 -21
  15. package/dist/{chunk-KFORPY7J.js → chunk-2CPZFRJJ.js} +6 -6
  16. package/dist/{chunk-TGEDOUUD.js → chunk-2GIX4HAT.js} +1 -1
  17. package/dist/{chunk-JIURGVRG.js → chunk-2I35VGHX.js} +4 -4
  18. package/dist/{chunk-ULS4X3UQ.js → chunk-2PPB644A.js} +1 -1
  19. package/dist/{chunk-RCF2SVUO.js → chunk-2VED3F37.js} +20 -16
  20. package/dist/{chunk-G6JKWW2S.js → chunk-3HL62Y77.js} +1 -1
  21. package/dist/{chunk-A7CS7RTM.js → chunk-3HTE2CIM.js} +3 -3
  22. package/dist/{chunk-4MDF5N2L.js → chunk-3K4KIYEZ.js} +2 -2
  23. package/dist/{chunk-BNXUV6NZ.js → chunk-3NQH2EUI.js} +3 -3
  24. package/dist/{chunk-UCOSSYKZ.js → chunk-45JXGYJK.js} +8 -7
  25. package/dist/{chunk-UBFEHVPY.js → chunk-47XDZFF4.js} +2 -2
  26. package/dist/chunk-4XXQAVKE.js +34 -0
  27. package/dist/{chunk-O5B7GRUK.js → chunk-5EQJOUWM.js} +1 -1
  28. package/dist/{chunk-AJPZY6EJ.js → chunk-5IGBMS2U.js} +1 -1
  29. package/dist/{chunk-IN5KO2L2.js → chunk-6IYCBW4J.js} +1 -1
  30. package/dist/{chunk-TLH4JLC7.js → chunk-7CD4QT5R.js} +2 -2
  31. package/dist/{chunk-Y2VQ65PM.js → chunk-7VVH435L.js} +3 -3
  32. package/dist/{chunk-XVK7YFZP.js → chunk-C46UG6GQ.js} +1 -1
  33. package/dist/{chunk-I2SLDKCN.js → chunk-C6AXM3M7.js} +2 -2
  34. package/dist/{chunk-NJ4JTJJM.js → chunk-CREPPDHX.js} +1 -1
  35. package/dist/{chunk-NIW3B4V2.js → chunk-DYK2WTYW.js} +5 -5
  36. package/dist/{chunk-FOOPNRHA.js → chunk-EA4JOLDI.js} +2 -2
  37. package/dist/{chunk-YS5UPMTH.js → chunk-EUIR2ADY.js} +8 -8
  38. package/dist/{chunk-Q3DOTREK.js → chunk-FXLUSECC.js} +1 -1
  39. package/dist/chunk-G7KUVNDY.js +80 -0
  40. package/dist/{chunk-UZQLLGX4.js → chunk-GUXT2F26.js} +12 -12
  41. package/dist/{chunk-WORPHTCS.js → chunk-IDIOFF35.js} +33 -4
  42. package/dist/{chunk-MHL3EXDR.js → chunk-JCW3ZRES.js} +1 -1
  43. package/dist/{chunk-7RJNOZLB.js → chunk-JVNWYWAT.js} +14 -14
  44. package/dist/{chunk-RKL2NK3V.js → chunk-JZL4L54R.js} +4 -4
  45. package/dist/{chunk-M7W3PCFS.js → chunk-K7NOZ7LV.js} +1 -1
  46. package/dist/{chunk-BQRKJAOP.js → chunk-MPTQYBVB.js} +1 -1
  47. package/dist/{chunk-ZOWT6X6Y.js → chunk-MQQ44IGX.js} +4 -4
  48. package/dist/{chunk-GNHRAWOX.js → chunk-N3QIXC2B.js} +2 -2
  49. package/dist/{chunk-JWSR5TZ3.js → chunk-OGJUSGF7.js} +1 -1
  50. package/dist/{chunk-KLFJTFDB.js → chunk-P26WOAA3.js} +1 -1
  51. package/dist/{chunk-LHQD4KLV.js → chunk-P3PHXVMA.js} +1 -1
  52. package/dist/{chunk-OLF7H564.js → chunk-PKYFFSLU.js} +5 -5
  53. package/dist/{chunk-UW4T4TG3.js → chunk-QBMPITYC.js} +1 -1
  54. package/dist/{chunk-33OBMYKV.js → chunk-QEIG7FXY.js} +1 -1
  55. package/dist/{chunk-MVC2FD32.js → chunk-QHBXWPSO.js} +3 -3
  56. package/dist/{chunk-TLEGXMX7.js → chunk-QO2C2PBW.js} +3 -3
  57. package/dist/{chunk-FEXR57M4.js → chunk-R6V363NP.js} +4 -4
  58. package/dist/{chunk-KRLVSKID.js → chunk-RRASSOJX.js} +4 -4
  59. package/dist/{chunk-S4AYCMMB.js → chunk-RVR6C22M.js} +1 -1
  60. package/dist/{chunk-WU52LOGJ.js → chunk-S7HHYBY3.js} +1 -1
  61. package/dist/{chunk-JJGAQMPS.js → chunk-S7W3KJYH.js} +1 -1
  62. package/dist/{chunk-CGKRD37R.js → chunk-TIHUJDA6.js} +2 -2
  63. package/dist/{chunk-ZKHUJB7A.js → chunk-TPPLYCJF.js} +1 -1
  64. package/dist/{chunk-PTYMGYNJ.js → chunk-TQYD3NYI.js} +1 -1
  65. package/dist/{chunk-PVITAFPJ.js → chunk-UJAD2NQ7.js} +2 -2
  66. package/dist/{chunk-4LKSYF4M.js → chunk-V2R7RWVY.js} +1 -1
  67. package/dist/{chunk-6YZ5WTLB.js → chunk-V7MTIMPB.js} +7 -5
  68. package/dist/{chunk-R3Q62FVO.js → chunk-WCNGMBIE.js} +2 -2
  69. package/dist/{chunk-CIUFOD65.js → chunk-WQARLGBG.js} +3 -3
  70. package/dist/{chunk-W63RBT7H.js → chunk-WQHRP3JL.js} +181 -15
  71. package/dist/{chunk-OZJG5G7V.js → chunk-X7VVDJ6T.js} +3 -3
  72. package/dist/{chunk-V5XH43NK.js → chunk-XMTKYR64.js} +7 -7
  73. package/dist/{chunk-ZG7FD2KD.js → chunk-YD3T4PBA.js} +2 -2
  74. package/dist/{chunk-55SVTKOM.js → chunk-YDZ7PCQO.js} +2 -2
  75. package/dist/{chunk-UZHSDRAK.js → chunk-YNOONYPO.js} +3 -3
  76. package/dist/{chunk-5H2CQ6L4.js → chunk-YVHFSCAX.js} +2 -2
  77. package/dist/{chunk-DKBNLGZO.js → chunk-YYEDFQJY.js} +11 -11
  78. package/dist/{chunk-O3XR457F.js → chunk-ZUDHZG7B.js} +2 -2
  79. package/dist/config/index.js +2 -2
  80. package/dist/containers/client.js +3 -3
  81. package/dist/containers/exec.js +3 -3
  82. package/dist/containers/lifecycle.js +38 -33
  83. package/dist/containers/setup.js +4 -4
  84. package/dist/containers/warm-pool.js +21 -0
  85. package/dist/db/agents.js +2 -2
  86. package/dist/db/api_keys.js +2 -2
  87. package/dist/db/batch.js +6 -6
  88. package/dist/db/environments.js +2 -2
  89. package/dist/db/events.js +2 -2
  90. package/dist/db/files.js +2 -2
  91. package/dist/db/memory.js +2 -2
  92. package/dist/db/proxy.js +2 -2
  93. package/dist/db/session-resources.js +2 -2
  94. package/dist/db/sessions.js +3 -3
  95. package/dist/db/sync.js +2 -2
  96. package/dist/db/vaults.js +2 -2
  97. package/dist/handlers/agents.js +48 -47
  98. package/dist/handlers/api_keys.js +48 -47
  99. package/dist/handlers/audit.js +48 -47
  100. package/dist/handlers/batch.js +49 -48
  101. package/dist/handlers/credentials.js +49 -48
  102. package/dist/handlers/environments.js +49 -48
  103. package/dist/handlers/events.js +51 -50
  104. package/dist/handlers/files.js +49 -48
  105. package/dist/handlers/index.js +96 -95
  106. package/dist/handlers/license.js +48 -47
  107. package/dist/handlers/memory.js +49 -48
  108. package/dist/handlers/metrics.js +48 -47
  109. package/dist/handlers/models.js +49 -48
  110. package/dist/handlers/providers.js +48 -47
  111. package/dist/handlers/resources.js +48 -47
  112. package/dist/handlers/sessions.js +51 -50
  113. package/dist/handlers/settings.js +48 -47
  114. package/dist/handlers/skills-write.js +48 -47
  115. package/dist/handlers/skills.js +49 -48
  116. package/dist/handlers/stream.js +48 -47
  117. package/dist/handlers/tenants.js +48 -47
  118. package/dist/handlers/threads.js +48 -47
  119. package/dist/handlers/traces.js +48 -47
  120. package/dist/handlers/upstream_keys.js +49 -48
  121. package/dist/handlers/vaults.js +48 -47
  122. package/dist/handlers/whoami.js +48 -47
  123. package/dist/http.js +47 -46
  124. package/dist/index.js +60 -59
  125. package/dist/init.js +44 -43
  126. package/dist/lib/model-registry.js +3 -3
  127. package/dist/lib/skills-cache.js +3 -3
  128. package/dist/observability/otlp.js +8 -8
  129. package/dist/observability/redactor.js +4 -4
  130. package/dist/providers/apple-container.js +2 -2
  131. package/dist/providers/docker.js +1 -1
  132. package/dist/providers/fly.js +2 -2
  133. package/dist/providers/modal.js +2 -2
  134. package/dist/providers/podman.js +24 -21
  135. package/dist/providers/registry.js +1 -1
  136. package/dist/providers/resolve-secrets.js +3 -3
  137. package/dist/providers/sprites.js +5 -4
  138. package/dist/providers/upstream-keys.js +6 -6
  139. package/dist/providers/vercel.js +2 -2
  140. package/dist/proxy/forward.js +3 -3
  141. package/dist/queue/index.js +3 -3
  142. package/dist/sessions/bus.js +6 -6
  143. package/dist/sessions/driver.js +37 -36
  144. package/dist/sessions/grader.js +2 -2
  145. package/dist/sessions/secrets.js +3 -3
  146. package/dist/sessions/sweeper.js +35 -34
  147. package/dist/sessions/threads.js +38 -37
  148. package/dist/shutdown.js +36 -35
  149. package/dist/sync/anthropic.js +6 -6
  150. package/dist/sync/container-file-sync.js +3 -3
  151. package/dist/sync/file-sync.js +12 -12
  152. package/package.json +1 -1
  153. package/dist/chunk-RMZRSYIJ.js +0 -31
  154. package/dist/{chunk-2COVNKOK.js → chunk-5EKQBD2H.js} +5 -5
  155. package/dist/{chunk-WNHJTUPW.js → chunk-A3KHFT7I.js} +5 -5
  156. package/dist/{chunk-VND46TDY.js → chunk-E7DD7F7J.js} +4 -4
  157. package/dist/{chunk-BCUBVYE3.js → chunk-L2RX552S.js} +4 -4
  158. package/dist/{chunk-LASUEMN6.js → chunk-SUGSHXND.js} +5 -5
  159. package/dist/{chunk-NDVC4J3H.js → chunk-TH7WJLZC.js} +5 -5
  160. package/dist/{chunk-XTZWBXAO.js → chunk-USYY3L7G.js} +4 -4
  161. package/dist/{chunk-C4II4GGZ.js → chunk-WPK4ZPMG.js} +0 -0
  162. package/dist/{chunk-QVFRPABA.js → chunk-X6IQ57SC.js} +5 -5
  163. package/dist/{chunk-P2IGNOJI.js → chunk-ZTH5JRZG.js} +5 -5
  164. package/dist/{chunk-J37F7PXJ.js → chunk-ZVXIZ2JD.js} +5 -5
@@ -11,14 +11,14 @@ import {
11
11
  getFileRecord,
12
12
  listFiles,
13
13
  updateFileStoragePath
14
- } from "./chunk-WNHJTUPW.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-4MDF5N2L.js";
21
+ } from "./chunk-3K4KIYEZ.js";
22
22
  import {
23
23
  getDb,
24
24
  init_client
@@ -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
+ };
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  buildPiAuthEnv,
6
6
  validatePiRuntime
7
- } from "./chunk-S4AYCMMB.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-J37F7PXJ.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,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-6YZ5WTLB.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
  buildClaudeArgs,
3
3
  buildClaudeAuthEnv
4
- } from "./chunk-JJGAQMPS.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-6YZ5WTLB.js";
28
+ } from "./chunk-V7MTIMPB.js";
29
29
 
30
30
  // src/backends/claude/index.ts
31
31
  function buildTurn(input) {
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  createSession
3
- } from "./chunk-KFORPY7J.js";
3
+ } from "./chunk-2CPZFRJJ.js";
4
4
  import {
5
5
  createEnvironment,
6
6
  deleteEnvironment,
7
7
  getEnvironment
8
- } from "./chunk-QVFRPABA.js";
8
+ } from "./chunk-X6IQ57SC.js";
9
9
  import {
10
10
  archiveAgent,
11
11
  createAgent,
12
12
  getAgent
13
- } from "./chunk-P2IGNOJI.js";
13
+ } from "./chunk-ZTH5JRZG.js";
14
14
  import {
15
15
  getDrizzle,
16
16
  init_drizzle
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  getConfig,
6
6
  readSetting
7
- } from "./chunk-6YZ5WTLB.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-C4II4GGZ.js";
3
+ } from "./chunk-WPK4ZPMG.js";
4
4
  import {
5
5
  getEnvironmentRow,
6
6
  updateEnvironmentState
7
- } from "./chunk-QVFRPABA.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-6YZ5WTLB.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-MVC2FD32.js";
3
+ } from "./chunk-QHBXWPSO.js";
4
4
  import {
5
5
  getSessionRow
6
- } from "./chunk-KFORPY7J.js";
6
+ } from "./chunk-2CPZFRJJ.js";
7
7
  import {
8
8
  listEventsByTrace
9
- } from "./chunk-NDVC4J3H.js";
9
+ } from "./chunk-TH7WJLZC.js";
10
10
  import {
11
11
  getAgent
12
- } from "./chunk-P2IGNOJI.js";
12
+ } from "./chunk-ZTH5JRZG.js";
13
13
  import {
14
14
  getConfig
15
- } from "./chunk-6YZ5WTLB.js";
15
+ } from "./chunk-V7MTIMPB.js";
16
16
 
17
17
  // src/observability/otlp.ts
18
18
  import { createHash } from "crypto";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getModels
3
- } from "./chunk-XVK7YFZP.js";
3
+ } from "./chunk-C46UG6GQ.js";
4
4
  import {
5
5
  jsonOk,
6
6
  routeWrap
7
- } from "./chunk-4MDF5N2L.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-O5B7GRUK.js";
3
+ } from "./chunk-5EQJOUWM.js";
4
4
  import {
5
5
  opencodeBackend
6
- } from "./chunk-ZOWT6X6Y.js";
6
+ } from "./chunk-MQQ44IGX.js";
7
+ import {
8
+ factoryBackend
9
+ } from "./chunk-2GIX4HAT.js";
7
10
  import {
8
11
  geminiBackend
9
- } from "./chunk-RKL2NK3V.js";
12
+ } from "./chunk-JZL4L54R.js";
10
13
  import {
11
14
  codexBackend
12
- } from "./chunk-JIURGVRG.js";
13
- import {
14
- factoryBackend
15
- } from "./chunk-TGEDOUUD.js";
15
+ } from "./chunk-2I35VGHX.js";
16
16
  import {
17
17
  claudeBackend
18
- } from "./chunk-TLH4JLC7.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-6YZ5WTLB.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-ZKHUJB7A.js";
24
+ } from "./chunk-TPPLYCJF.js";
25
25
  import {
26
26
  isProxied
27
- } from "./chunk-VND46TDY.js";
27
+ } from "./chunk-E7DD7F7J.js";
28
28
  import {
29
29
  acquireForFirstTurn,
30
30
  installSkills,
31
31
  provisionResources,
32
32
  wrapProviderWithSecrets
33
- } from "./chunk-W63RBT7H.js";
33
+ } from "./chunk-WQHRP3JL.js";
34
34
  import {
35
35
  BLOCKED_ENV_KEYS,
36
36
  resolveVaultSecrets
37
- } from "./chunk-AJPZY6EJ.js";
37
+ } from "./chunk-5IGBMS2U.js";
38
38
  import {
39
39
  appendEvent,
40
40
  appendEventsBatch
41
- } from "./chunk-MVC2FD32.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-KFORPY7J.js";
52
+ } from "./chunk-2CPZFRJJ.js";
53
53
  import {
54
54
  listEvents,
55
55
  markUserEventProcessed
56
- } from "./chunk-NDVC4J3H.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-C4II4GGZ.js";
62
+ } from "./chunk-WPK4ZPMG.js";
63
63
  import {
64
64
  getEnvironment
65
- } from "./chunk-QVFRPABA.js";
65
+ } from "./chunk-X6IQ57SC.js";
66
66
  import {
67
67
  getAgent
68
- } from "./chunk-P2IGNOJI.js";
68
+ } from "./chunk-ZTH5JRZG.js";
69
69
  import {
70
70
  resolveBackend
71
- } from "./chunk-YS5UPMTH.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-6YZ5WTLB.js";
87
+ } from "./chunk-V7MTIMPB.js";
88
88
  import {
89
89
  init_clock,
90
90
  nowMs
@@ -6,20 +6,29 @@ import {
6
6
  reconcileDockerOrphanSandboxes,
7
7
  reconcileOrphanSandboxes,
8
8
  releaseSession
9
- } from "./chunk-W63RBT7H.js";
9
+ } from "./chunk-WQHRP3JL.js";
10
10
  import {
11
11
  appendEvent,
12
12
  dropEmitter
13
- } from "./chunk-MVC2FD32.js";
13
+ } from "./chunk-QHBXWPSO.js";
14
14
  import {
15
15
  archiveSession,
16
16
  getSessionRow,
17
17
  listIdleSessions,
18
18
  updateSessionStatus
19
- } from "./chunk-KFORPY7J.js";
19
+ } from "./chunk-2CPZFRJJ.js";
20
+ import {
21
+ resolveContainerProvider
22
+ } from "./chunk-WPK4ZPMG.js";
23
+ import {
24
+ getEnvironment
25
+ } from "./chunk-X6IQ57SC.js";
26
+ import {
27
+ expireWarm
28
+ } from "./chunk-G7KUVNDY.js";
20
29
  import {
21
30
  getConfig
22
- } from "./chunk-6YZ5WTLB.js";
31
+ } from "./chunk-V7MTIMPB.js";
23
32
  import {
24
33
  init_clock,
25
34
  nowMs
@@ -63,10 +72,30 @@ async function runSweep() {
63
72
  console.warn("[sweeper] reconcile docker failed:", e);
64
73
  }
65
74
  }
75
+ try {
76
+ await evictExpiredWarmContainers();
77
+ } catch (e) {
78
+ console.warn("[sweeper] warm pool eviction failed:", e);
79
+ }
66
80
  } finally {
67
81
  sweeping = false;
68
82
  }
69
83
  }
84
+ async function evictExpiredWarmContainers() {
85
+ const expired = expireWarm(nowMs());
86
+ if (expired.length === 0) return;
87
+ console.log(`[sweeper] evicting ${expired.length} expired warm container(s)`);
88
+ for (const entry of expired) {
89
+ try {
90
+ const envObj = getEnvironment(entry.envId);
91
+ const provider = await resolveContainerProvider(envObj?.config?.provider);
92
+ await provider.delete(entry.sandboxName, entry.vaultSecrets);
93
+ console.log(`[sweeper] deleted expired warm container: ${entry.sandboxName}`);
94
+ } catch (err) {
95
+ console.warn(`[sweeper] failed to delete warm container ${entry.sandboxName}:`, err);
96
+ }
97
+ }
98
+ }
70
99
  async function evictIdleSessions() {
71
100
  if (stopping) return;
72
101
  const cfg = getConfig();
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-6YZ5WTLB.js";
3
+ } from "./chunk-V7MTIMPB.js";
4
4
  import {
5
5
  ApiError
6
6
  } from "./chunk-EZYKRG4W.js";
@@ -2,10 +2,10 @@ import {
2
2
  reportUpstreamFailure,
3
3
  reportUpstreamSuccess,
4
4
  resolveAnthropicKey
5
- } from "./chunk-UZHSDRAK.js";
5
+ } from "./chunk-YNOONYPO.js";
6
6
  import {
7
7
  resolveRemoteSessionId
8
- } from "./chunk-BCUBVYE3.js";
8
+ } from "./chunk-L2RX552S.js";
9
9
  import {
10
10
  assertResourceTenant
11
11
  } from "./chunk-23UKWXJH.js";
@@ -20,45 +20,45 @@ import {
20
20
  listMemoryStores,
21
21
  searchMemories,
22
22
  updateMemory
23
- } from "./chunk-LASUEMN6.js";
23
+ } from "./chunk-SUGSHXND.js";
24
24
  import {
25
25
  jsonOk,
26
26
  routeWrap
27
- } from "./chunk-4MDF5N2L.js";
27
+ } from "./chunk-3K4KIYEZ.js";
28
28
  import {
29
29
  forwardToAnthropic
30
- } from "./chunk-MHL3EXDR.js";
31
- import {
32
- enqueueTurn
33
- } from "./chunk-ULS4X3UQ.js";
30
+ } from "./chunk-JCW3ZRES.js";
34
31
  import {
35
32
  runTurn,
36
33
  writePermissionResponse
37
- } from "./chunk-UZQLLGX4.js";
34
+ } from "./chunk-GUXT2F26.js";
35
+ import {
36
+ enqueueTurn
37
+ } from "./chunk-2PPB644A.js";
38
38
  import {
39
39
  getProxiedTenantId,
40
40
  isProxied
41
- } from "./chunk-VND46TDY.js";
41
+ } from "./chunk-E7DD7F7J.js";
42
42
  import {
43
43
  getActor
44
44
  } from "./chunk-LAWTTG2E.js";
45
45
  import {
46
46
  appendEvent
47
- } from "./chunk-MVC2FD32.js";
47
+ } from "./chunk-QHBXWPSO.js";
48
48
  import {
49
49
  bumpSessionStats,
50
50
  getSession,
51
51
  getSessionRow,
52
52
  setOutcomeCriteria,
53
53
  updateSessionMutable
54
- } from "./chunk-KFORPY7J.js";
54
+ } from "./chunk-2CPZFRJJ.js";
55
55
  import {
56
56
  listEvents,
57
57
  rowToManagedEvent
58
- } from "./chunk-NDVC4J3H.js";
58
+ } from "./chunk-TH7WJLZC.js";
59
59
  import {
60
60
  getAgent
61
- } from "./chunk-P2IGNOJI.js";
61
+ } from "./chunk-ZTH5JRZG.js";
62
62
  import {
63
63
  init_clock,
64
64
  nowMs
@@ -1,19 +1,19 @@
1
+ import {
2
+ createGeminiTranslator
3
+ } from "./chunk-S3JRZFF5.js";
1
4
  import {
2
5
  buildGeminiArgs
3
6
  } from "./chunk-JHGJG2Z2.js";
4
7
  import {
5
8
  buildGeminiAuthEnv,
6
9
  validateGeminiRuntime
7
- } from "./chunk-4LKSYF4M.js";
10
+ } from "./chunk-V2R7RWVY.js";
8
11
  import {
9
12
  prepareGeminiOnSandbox
10
13
  } from "./chunk-XG4UIGDH.js";
11
14
  import {
12
15
  GEMINI_WRAPPER_PATH
13
16
  } from "./chunk-3W6KEDQE.js";
14
- import {
15
- createGeminiTranslator
16
- } from "./chunk-S3JRZFF5.js";
17
17
  import {
18
18
  wrapPromptWithSystem
19
19
  } from "./chunk-FVBDEOTZ.js";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  jsonOk,
6
6
  routeWrap
7
- } from "./chunk-4MDF5N2L.js";
7
+ } from "./chunk-3K4KIYEZ.js";
8
8
 
9
9
  // src/handlers/license.ts
10
10
  function handleGetLicense(request) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  markStopping
3
- } from "./chunk-WORPHTCS.js";
3
+ } from "./chunk-IDIOFF35.js";
4
4
  import {
5
5
  closeDb,
6
6
  init_client,
@@ -4,19 +4,19 @@ import {
4
4
  import {
5
5
  buildOpencodeAuthEnv,
6
6
  validateOpencodeRuntime
7
- } from "./chunk-JWSR5TZ3.js";
7
+ } from "./chunk-OGJUSGF7.js";
8
8
  import {
9
9
  buildOpencodeConfigEnv
10
10
  } from "./chunk-Z25I7DRV.js";
11
11
  import {
12
12
  prepareOpencodeOnSandbox
13
13
  } from "./chunk-P7P2NWZD.js";
14
- import {
15
- createOpencodeTranslator
16
- } from "./chunk-ETWGCBIQ.js";
17
14
  import {
18
15
  OPENCODE_WRAPPER_PATH
19
16
  } from "./chunk-SWIP7JBQ.js";
17
+ import {
18
+ createOpencodeTranslator
19
+ } from "./chunk-ETWGCBIQ.js";
20
20
  import {
21
21
  wrapPromptWithSystem
22
22
  } from "./chunk-FVBDEOTZ.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  listEntries
3
- } from "./chunk-J37F7PXJ.js";
3
+ } from "./chunk-ZVXIZ2JD.js";
4
4
  import {
5
5
  getConfig
6
- } from "./chunk-6YZ5WTLB.js";
6
+ } from "./chunk-V7MTIMPB.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-6YZ5WTLB.js";
3
+ } from "./chunk-V7MTIMPB.js";
4
4
 
5
5
  // src/backends/opencode/auth.ts
6
6
  function buildOpencodeAuthEnv() {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-6YZ5WTLB.js";
3
+ } from "./chunk-V7MTIMPB.js";
4
4
  import {
5
5
  ApiError
6
6
  } from "./chunk-EZYKRG4W.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readSetting
3
- } from "./chunk-6YZ5WTLB.js";
3
+ } from "./chunk-V7MTIMPB.js";
4
4
 
5
5
  // src/lib/skills-cache.ts
6
6
  var DEFAULT_FEED_URL = "https://www.agentstep.com/v1/skills/feed";
@@ -6,27 +6,27 @@ import {
6
6
  import {
7
7
  jsonOk,
8
8
  routeWrap
9
- } from "./chunk-4MDF5N2L.js";
9
+ } from "./chunk-3K4KIYEZ.js";
10
10
  import {
11
11
  forwardToAnthropic,
12
12
  validateAnthropicProxy
13
- } from "./chunk-MHL3EXDR.js";
13
+ } from "./chunk-JCW3ZRES.js";
14
14
  import {
15
15
  getProxiedTenantId,
16
16
  isProxied,
17
17
  markProxied,
18
18
  unmarkProxied
19
- } from "./chunk-VND46TDY.js";
19
+ } from "./chunk-E7DD7F7J.js";
20
20
  import {
21
21
  archiveAgent,
22
22
  createAgent,
23
23
  getAgent,
24
24
  listAgents,
25
25
  updateAgent
26
- } from "./chunk-P2IGNOJI.js";
26
+ } from "./chunk-ZTH5JRZG.js";
27
27
  import {
28
28
  resolveBackend
29
- } from "./chunk-YS5UPMTH.js";
29
+ } from "./chunk-EUIR2ADY.js";
30
30
  import {
31
31
  getDb,
32
32
  init_client