@agentstep/agent-sdk 0.4.41 → 0.5.0

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 (195) 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/args.js +1 -1
  5. package/dist/backends/codex/auth.js +6 -6
  6. package/dist/backends/codex/index.js +8 -8
  7. package/dist/backends/factory/args.js +1 -1
  8. package/dist/backends/factory/auth.js +6 -6
  9. package/dist/backends/factory/index.js +8 -8
  10. package/dist/backends/gemini/args.js +1 -1
  11. package/dist/backends/gemini/auth.js +6 -6
  12. package/dist/backends/gemini/index.js +8 -8
  13. package/dist/backends/opencode/args.js +1 -1
  14. package/dist/backends/opencode/auth.js +6 -6
  15. package/dist/backends/opencode/index.js +9 -9
  16. package/dist/backends/opencode/mcp.js +1 -1
  17. package/dist/backends/pi/args.js +1 -1
  18. package/dist/backends/pi/auth.js +6 -6
  19. package/dist/backends/pi/index.js +8 -8
  20. package/dist/backends/registry.js +24 -24
  21. package/dist/{chunk-L2RX552S.js → chunk-22OUZJAV.js} +3 -3
  22. package/dist/{chunk-PIJKJNGB.js → chunk-24IDJ7LY.js} +4 -4
  23. package/dist/{chunk-WCDWL6ED.js → chunk-2YZOIFVN.js} +49 -0
  24. package/dist/{chunk-RDGOGAQ5.js → chunk-3FLQ7KZP.js} +1 -1
  25. package/dist/{chunk-ZQXBHNEZ.js → chunk-3PA4NXRP.js} +2 -2
  26. package/dist/{chunk-H7UKW666.js → chunk-445EL6J5.js} +1 -1
  27. package/dist/{chunk-2RSL5SO7.js → chunk-4D345E27.js} +2 -2
  28. package/dist/{chunk-2Z2KAPUL.js → chunk-4RDILRIO.js} +3 -3
  29. package/dist/{chunk-MHBLVGRF.js → chunk-5MERXOLJ.js} +4 -4
  30. package/dist/{chunk-E7DD7F7J.js → chunk-5U5LRAFJ.js} +2 -2
  31. package/dist/{chunk-34EB622U.js → chunk-64IQEPSD.js} +2 -2
  32. package/dist/{chunk-ENGKR2JT.js → chunk-6CVQDSTS.js} +1 -1
  33. package/dist/{chunk-T5VRE77P.js → chunk-6KWJASEO.js} +1 -1
  34. package/dist/{chunk-W2NHS4IF.js → chunk-6QZ23WRF.js} +15 -19
  35. package/dist/{chunk-DU7LSFQQ.js → chunk-7SY65LWY.js} +6 -9
  36. package/dist/{chunk-C46UG6GQ.js → chunk-A6VORSKD.js} +1 -1
  37. package/dist/{chunk-3FDE3BPB.js → chunk-AB7MPL3H.js} +6 -6
  38. package/dist/{chunk-RP6WQ4IH.js → chunk-AJL3T5JS.js} +3 -3
  39. package/dist/{chunk-KKCLTWG7.js → chunk-AXBM7HAR.js} +1 -1
  40. package/dist/{chunk-ZTH5JRZG.js → chunk-BCIFFAGW.js} +41 -10
  41. package/dist/{chunk-OXWELRJL.js → chunk-CBPO2P4I.js} +101 -16
  42. package/dist/{chunk-32XS3Y6P.js → chunk-CLSGNQ7J.js} +8 -8
  43. package/dist/{chunk-SV2B3P6B.js → chunk-DBFPJSOY.js} +19 -17
  44. package/dist/{chunk-JWH4OIBP.js → chunk-DJZSPWG2.js} +4 -4
  45. package/dist/{chunk-JZL4L54R.js → chunk-DKLHYSPW.js} +2 -2
  46. package/dist/{chunk-NQVRZAIX.js → chunk-DMMNAQUM.js} +2 -2
  47. package/dist/{chunk-Y6SFUNGO.js → chunk-EOJ66GY7.js} +4 -4
  48. package/dist/{chunk-EUINGLHA.js → chunk-EWIWVXXP.js} +30 -20
  49. package/dist/{chunk-5EKQBD2H.js → chunk-FCUXFLNK.js} +2 -2
  50. package/dist/{chunk-LAVHQCRP.js → chunk-FSQ4HGHX.js} +3 -3
  51. package/dist/{chunk-WQARLGBG.js → chunk-GCQDNUS2.js} +3 -3
  52. package/dist/{chunk-MXOG5SAO.js → chunk-GFSRNOPI.js} +11 -14
  53. package/dist/{chunk-S7W3KJYH.js → chunk-GIMDS46L.js} +9 -4
  54. package/dist/{chunk-FP4E3QUS.js → chunk-GLKWJESP.js} +2 -2
  55. package/dist/{chunk-FDBR634Z.js → chunk-GV6GUSCP.js} +6 -6
  56. package/dist/{chunk-X6IQ57SC.js → chunk-H6OT5GUL.js} +9 -5
  57. package/dist/{chunk-TPPLYCJF.js → chunk-HMOSAXVZ.js} +2 -2
  58. package/dist/{chunk-L5RW66H5.js → chunk-HVLYE4S5.js} +1 -1
  59. package/dist/{chunk-RVR6C22M.js → chunk-HWR2HYQJ.js} +1 -1
  60. package/dist/{chunk-HH4OXSOV.js → chunk-HY3T4YJV.js} +5 -5
  61. package/dist/{chunk-AR2TM7CR.js → chunk-I26QP3A3.js} +1 -1
  62. package/dist/{chunk-D2TRWKVQ.js → chunk-I2WVMCYN.js} +80 -2
  63. package/dist/{chunk-JHGJG2Z2.js → chunk-IBYOMAZ3.js} +1 -1
  64. package/dist/{chunk-SUGSHXND.js → chunk-IEZFRNLC.js} +2 -2
  65. package/dist/{chunk-ZMJ4EP4C.js → chunk-ILHIHMO3.js} +7 -2
  66. package/dist/{chunk-XWWLMJXT.js → chunk-IRW7AYTP.js} +6 -15
  67. package/dist/{chunk-N76ZVITA.js → chunk-JFOHGHW5.js} +9 -9
  68. package/dist/{chunk-DAVYI5H4.js → chunk-JLUCJMAQ.js} +23 -23
  69. package/dist/{chunk-GVPJL3XS.js → chunk-JP7Y3TKK.js} +5 -5
  70. package/dist/{chunk-TH7WJLZC.js → chunk-KGBKIJPF.js} +3 -3
  71. package/dist/{chunk-MQQ44IGX.js → chunk-KKAJC3Z2.js} +3 -3
  72. package/dist/{chunk-3NK6YTA5.js → chunk-KUWJJD6O.js} +42 -8
  73. package/dist/{chunk-2GIX4HAT.js → chunk-L26TVIB6.js} +2 -2
  74. package/dist/{chunk-KLN6HPYM.js → chunk-L3IACZ72.js} +1 -1
  75. package/dist/{chunk-C6AXM3M7.js → chunk-LQP6XGFU.js} +2 -2
  76. package/dist/{chunk-YBZJHDSE.js → chunk-MAJWADF7.js} +2 -2
  77. package/dist/{chunk-7GG3FEK2.js → chunk-MCWCRZM4.js} +4 -4
  78. package/dist/{chunk-JCW3ZRES.js → chunk-MQBMXAPU.js} +1 -1
  79. package/dist/{chunk-CREPPDHX.js → chunk-NDTIDWBE.js} +1 -1
  80. package/dist/{chunk-5EQJOUWM.js → chunk-NHAYKVXG.js} +2 -2
  81. package/dist/{chunk-FXLUSECC.js → chunk-NKQVOAWN.js} +1 -1
  82. package/dist/{chunk-ZYISLRS6.js → chunk-OKT2J4ZB.js} +114 -37
  83. package/dist/{chunk-V5HWHJ4P.js → chunk-OSNMIPHV.js} +1 -1
  84. package/dist/{chunk-ZFJPOQSY.js → chunk-OZFSKR2W.js} +69 -30
  85. package/dist/{chunk-3IV56JJW.js → chunk-P56WU3UT.js} +3 -2
  86. package/dist/{chunk-NQX7WBA4.js → chunk-PJYCPDV5.js} +14 -9
  87. package/dist/{chunk-LMNFIJ6M.js → chunk-PN3AWRMX.js} +15 -15
  88. package/dist/{chunk-ZMNQ2YJ6.js → chunk-PNZF7HIU.js} +3 -3
  89. package/dist/{chunk-R5T4LJSK.js → chunk-PZNAQBHQ.js} +2 -2
  90. package/dist/{chunk-RH4GKU52.js → chunk-QTXAWC5J.js} +18 -3
  91. package/dist/{chunk-2I35VGHX.js → chunk-R3QHLKJG.js} +2 -2
  92. package/dist/{chunk-OGJUSGF7.js → chunk-R6EEBWM3.js} +1 -1
  93. package/dist/{chunk-V66YKIW6.js → chunk-RYJXSXCV.js} +5 -5
  94. package/dist/{chunk-CHDQ3HIR.js → chunk-S7DFMJR5.js} +5 -9
  95. package/dist/{chunk-V2R7RWVY.js → chunk-STJNO6SL.js} +1 -1
  96. package/dist/{chunk-USYY3L7G.js → chunk-T3FQPTOA.js} +2 -2
  97. package/dist/{chunk-5IGBMS2U.js → chunk-T3HMVHDG.js} +1 -1
  98. package/dist/{chunk-IAF6VMPO.js → chunk-TPMZO6S2.js} +1 -1
  99. package/dist/{chunk-P26WOAA3.js → chunk-TUEBRYPZ.js} +1 -1
  100. package/dist/{chunk-HOIDGDU5.js → chunk-TVODT2UR.js} +1 -1
  101. package/dist/{chunk-Z25I7DRV.js → chunk-V5DH3OAC.js} +10 -5
  102. package/dist/{chunk-ZVXIZ2JD.js → chunk-VP527YC5.js} +35 -6
  103. package/dist/{chunk-6POQAFEC.js → chunk-W3JMIUHV.js} +1 -1
  104. package/dist/{chunk-6IYCBW4J.js → chunk-WEC625LQ.js} +1 -1
  105. package/dist/{chunk-V7MTIMPB.js → chunk-X6QIWZ33.js} +2 -2
  106. package/dist/{chunk-6GP5IKXE.js → chunk-XSNJ7NT2.js} +1 -1
  107. package/dist/{chunk-LZFB3HRK.js → chunk-XTKTIFHC.js} +5 -10
  108. package/dist/{chunk-QSUGIJWV.js → chunk-YMCS6AB7.js} +4 -9
  109. package/dist/{chunk-FOOH6SCB.js → chunk-YXOCKQZU.js} +2 -2
  110. package/dist/{chunk-2PPB644A.js → chunk-Z4LFLXRR.js} +1 -1
  111. package/dist/{chunk-N3QIXC2B.js → chunk-Z6VZYRVN.js} +2 -2
  112. package/dist/config/index.js +5 -5
  113. package/dist/containers/client.js +6 -6
  114. package/dist/containers/exec.js +6 -6
  115. package/dist/containers/lifecycle.js +36 -36
  116. package/dist/containers/setup.js +8 -8
  117. package/dist/db/agents.js +8 -6
  118. package/dist/db/api_keys.js +5 -5
  119. package/dist/db/audit.js +3 -3
  120. package/dist/db/batch.js +10 -10
  121. package/dist/db/client.js +2 -2
  122. package/dist/db/credentials.js +3 -3
  123. package/dist/db/drizzle.js +4 -4
  124. package/dist/db/environments.js +6 -6
  125. package/dist/db/events.js +5 -5
  126. package/dist/db/files.js +5 -5
  127. package/dist/db/memory.js +5 -5
  128. package/dist/db/migrations.js +1 -1
  129. package/dist/db/proxy.js +5 -5
  130. package/dist/db/schema.js +1 -1
  131. package/dist/db/session-resources.js +5 -5
  132. package/dist/db/sessions.js +8 -7
  133. package/dist/db/sync.js +5 -5
  134. package/dist/db/tenants.js +3 -3
  135. package/dist/db/traces.js +5 -5
  136. package/dist/db/upstream_keys.js +3 -3
  137. package/dist/db/vaults.js +12 -8
  138. package/dist/handlers/agents.js +56 -52
  139. package/dist/handlers/api_keys.js +53 -53
  140. package/dist/handlers/audit.js +53 -53
  141. package/dist/handlers/batch.js +53 -53
  142. package/dist/handlers/credentials.js +53 -53
  143. package/dist/handlers/environments.js +53 -53
  144. package/dist/handlers/events.js +56 -56
  145. package/dist/handlers/files.js +53 -53
  146. package/dist/handlers/index.js +100 -92
  147. package/dist/handlers/license.js +52 -52
  148. package/dist/handlers/memory.js +53 -53
  149. package/dist/handlers/metrics.js +52 -52
  150. package/dist/handlers/models.js +53 -53
  151. package/dist/handlers/openapi.js +3 -3
  152. package/dist/handlers/providers.js +52 -52
  153. package/dist/handlers/resources.js +52 -52
  154. package/dist/handlers/sessions.js +55 -55
  155. package/dist/handlers/settings.js +52 -52
  156. package/dist/handlers/skills-write.js +52 -52
  157. package/dist/handlers/skills.js +53 -53
  158. package/dist/handlers/stream.js +52 -52
  159. package/dist/handlers/tenants.js +53 -53
  160. package/dist/handlers/threads.js +52 -52
  161. package/dist/handlers/traces.js +53 -53
  162. package/dist/handlers/upstream_keys.js +55 -55
  163. package/dist/handlers/vaults.js +56 -52
  164. package/dist/handlers/whoami.js +52 -52
  165. package/dist/http.js +55 -51
  166. package/dist/index.js +57 -57
  167. package/dist/init.js +48 -48
  168. package/dist/lib/model-registry.js +6 -6
  169. package/dist/lib/skills-cache.js +6 -6
  170. package/dist/observability/otlp.js +12 -12
  171. package/dist/observability/redactor.js +8 -8
  172. package/dist/openapi/schemas.js +3 -1
  173. package/dist/openapi/spec.js +2 -2
  174. package/dist/providers/fly.js +5 -5
  175. package/dist/providers/modal.js +5 -5
  176. package/dist/providers/registry.js +1 -1
  177. package/dist/providers/resolve-secrets.js +7 -7
  178. package/dist/providers/sprites.js +7 -7
  179. package/dist/providers/upstream-keys.js +12 -11
  180. package/dist/providers/vercel.js +5 -5
  181. package/dist/proxy/forward.js +6 -6
  182. package/dist/queue/index.js +6 -6
  183. package/dist/sessions/bus.js +10 -10
  184. package/dist/sessions/driver.js +41 -41
  185. package/dist/sessions/grader.js +5 -5
  186. package/dist/sessions/mcp-auth.js +1 -1
  187. package/dist/sessions/secrets.js +8 -8
  188. package/dist/sessions/sweeper.js +37 -37
  189. package/dist/sessions/threads.js +41 -41
  190. package/dist/shutdown.js +38 -38
  191. package/dist/sync/anthropic.js +11 -11
  192. package/dist/sync/container-file-sync.js +6 -6
  193. package/dist/sync/file-sync.js +17 -17
  194. package/package.json +1 -1
  195. /package/dist/{chunk-WPK4ZPMG.js → chunk-UE6DNLSV.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  buildClaudeArgs,
3
3
  buildClaudeAuthEnv
4
- } from "./chunk-S7W3KJYH.js";
4
+ } from "./chunk-GIMDS46L.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-V7MTIMPB.js";
28
+ } from "./chunk-X6QIWZ33.js";
29
29
 
30
30
  // src/backends/claude/index.ts
31
31
  function buildTurn(input) {
@@ -38,7 +38,7 @@ function buildTurn(input) {
38
38
  const env = buildClaudeAuthEnv();
39
39
  const customTools = agent.tools.filter((t) => t.type === "custom");
40
40
  const hasBridgeTools = customTools.length > 0 || agent.threads_enabled;
41
- if (hasBridgeTools || agent.mcp_servers && Object.keys(agent.mcp_servers).length > 0) {
41
+ if (hasBridgeTools || agent.mcp_servers && agent.mcp_servers.length > 0) {
42
42
  const mcpIdx = argsBase.indexOf("--mcp-config");
43
43
  let existingServers = {};
44
44
  if (mcpIdx >= 0 && mcpIdx + 1 < argsBase.length) {
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  init_schema,
3
3
  schema_exports
4
- } from "./chunk-ZMJ4EP4C.js";
4
+ } from "./chunk-ILHIHMO3.js";
5
5
  import {
6
6
  getDb,
7
7
  init_client
8
- } from "./chunk-6POQAFEC.js";
8
+ } from "./chunk-W3JMIUHV.js";
9
9
  import {
10
10
  __esm
11
11
  } from "./chunk-2ESYSVXG.js";
@@ -4,13 +4,13 @@ import {
4
4
  } from "./chunk-D2XITRN6.js";
5
5
  import {
6
6
  authenticateAndIntercept
7
- } from "./chunk-WQARLGBG.js";
7
+ } from "./chunk-GCQDNUS2.js";
8
8
  import {
9
9
  checkAndBump
10
10
  } from "./chunk-HVUWXUUI.js";
11
11
  import {
12
12
  ensureInitialized
13
- } from "./chunk-LMNFIJ6M.js";
13
+ } from "./chunk-PN3AWRMX.js";
14
14
  import {
15
15
  captureException
16
16
  } from "./chunk-3MQ2FWXS.js";
@@ -64,8 +64,23 @@ async function routeWrap(request, handler) {
64
64
  function jsonOk(body, status = 200) {
65
65
  return Response.json(body, { status });
66
66
  }
67
+ function paginatedOk(data, requestedLimit) {
68
+ const hasMore = data.length === requestedLimit;
69
+ const nextPage = hasMore && data.length > 0 ? Buffer.from(data[data.length - 1].id).toString("base64url") : null;
70
+ return jsonOk({ data, next_page: nextPage });
71
+ }
72
+ function decodeCursor(page) {
73
+ if (!page) return void 0;
74
+ try {
75
+ return Buffer.from(page, "base64url").toString("utf8");
76
+ } catch {
77
+ return void 0;
78
+ }
79
+ }
67
80
 
68
81
  export {
69
82
  routeWrap,
70
- jsonOk
83
+ jsonOk,
84
+ paginatedOk,
85
+ decodeCursor
71
86
  };
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  buildCodexArgs
3
- } from "./chunk-NQX7WBA4.js";
3
+ } from "./chunk-PJYCPDV5.js";
4
4
  import {
5
5
  buildCodexAuthEnv,
6
6
  validateCodexRuntime
7
- } from "./chunk-6IYCBW4J.js";
7
+ } from "./chunk-WEC625LQ.js";
8
8
  import {
9
9
  prepareCodexOnSandbox
10
10
  } from "./chunk-M2LUXIXU.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-V7MTIMPB.js";
3
+ } from "./chunk-X6QIWZ33.js";
4
4
 
5
5
  // src/backends/opencode/auth.ts
6
6
  function buildOpencodeAuthEnv() {
@@ -4,14 +4,14 @@ import {
4
4
  import {
5
5
  jsonOk,
6
6
  routeWrap
7
- } from "./chunk-RH4GKU52.js";
7
+ } from "./chunk-QTXAWC5J.js";
8
8
  import {
9
9
  getProxiedTenantId
10
- } from "./chunk-E7DD7F7J.js";
10
+ } from "./chunk-5U5LRAFJ.js";
11
11
  import {
12
12
  getSession,
13
13
  updateSessionResources
14
- } from "./chunk-3NK6YTA5.js";
14
+ } from "./chunk-KUWJJD6O.js";
15
15
  import {
16
16
  countResources,
17
17
  createResource,
@@ -19,11 +19,11 @@ import {
19
19
  getResource,
20
20
  init_session_resources,
21
21
  listResources
22
- } from "./chunk-5EKQBD2H.js";
22
+ } from "./chunk-FCUXFLNK.js";
23
23
  import {
24
24
  getDb,
25
25
  init_client
26
- } from "./chunk-6POQAFEC.js";
26
+ } from "./chunk-W3JMIUHV.js";
27
27
  import {
28
28
  badRequest,
29
29
  notFound
@@ -1,17 +1,18 @@
1
1
  import {
2
2
  loadVaultForCaller
3
- } from "./chunk-ZFJPOQSY.js";
3
+ } from "./chunk-OZFSKR2W.js";
4
4
  import {
5
5
  jsonOk,
6
+ paginatedOk,
6
7
  routeWrap
7
- } from "./chunk-RH4GKU52.js";
8
+ } from "./chunk-QTXAWC5J.js";
8
9
  import {
9
10
  createCredential,
10
11
  deleteCredential,
11
12
  getCredential,
12
13
  listCredentials,
13
14
  updateCredential
14
- } from "./chunk-L5RW66H5.js";
15
+ } from "./chunk-HVLYE4S5.js";
15
16
  import {
16
17
  badRequest,
17
18
  conflict,
@@ -123,12 +124,7 @@ function handleListCredentials(request, vaultId) {
123
124
  const url = new URL(req.url);
124
125
  const requestedLimit = Number(url.searchParams.get("limit") || "100");
125
126
  const data = listCredentials(vaultId);
126
- return jsonOk({
127
- data,
128
- has_more: data.length === requestedLimit,
129
- first_id: data.length > 0 ? data[0].id : null,
130
- last_id: data.length > 0 ? data[data.length - 1].id : null
131
- });
127
+ return paginatedOk(data, requestedLimit);
132
128
  });
133
129
  }
134
130
  function handleGetCredential(request, vaultId, credentialId) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-V7MTIMPB.js";
3
+ } from "./chunk-X6QIWZ33.js";
4
4
 
5
5
  // src/backends/gemini/auth.ts
6
6
  function buildGeminiAuthEnv() {
@@ -9,10 +9,10 @@ import {
9
9
  import {
10
10
  getDrizzle,
11
11
  init_drizzle
12
- } from "./chunk-R5T4LJSK.js";
12
+ } from "./chunk-PZNAQBHQ.js";
13
13
  import {
14
14
  schema_exports
15
- } from "./chunk-ZMJ4EP4C.js";
15
+ } from "./chunk-ILHIHMO3.js";
16
16
 
17
17
  // src/db/api_keys.ts
18
18
  init_drizzle();
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  listEntries
3
- } from "./chunk-ZVXIZ2JD.js";
3
+ } from "./chunk-VP527YC5.js";
4
4
 
5
5
  // src/providers/resolve-secrets.ts
6
6
  var BLOCKED_ENV_KEYS = /* @__PURE__ */ new Set([
@@ -11,7 +11,7 @@ function buildFactoryArgs(input) {
11
11
  args.push("--session-id", input.backendSessionId);
12
12
  }
13
13
  if (input.agent.model) {
14
- args.push("--model", input.agent.model);
14
+ args.push("--model", input.agent.model.id);
15
15
  }
16
16
  return args;
17
17
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-V7MTIMPB.js";
3
+ } from "./chunk-X6QIWZ33.js";
4
4
  import {
5
5
  ApiError
6
6
  } from "./chunk-EZYKRG4W.js";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  jsonOk,
6
6
  routeWrap
7
- } from "./chunk-RH4GKU52.js";
7
+ } from "./chunk-QTXAWC5J.js";
8
8
 
9
9
  // src/handlers/license.ts
10
10
  function handleGetLicense(request) {
@@ -27,21 +27,26 @@ function isOllamaModel(model) {
27
27
  return !cloudPrefixes.some((p) => model.startsWith(p));
28
28
  }
29
29
  function buildOpencodeConfigEnv(agent, ollamaBaseUrl) {
30
- if (ollamaBaseUrl === void 0 && isOllamaModel(agent.model)) {
30
+ if (ollamaBaseUrl === void 0 && isOllamaModel(agent.model.id)) {
31
31
  ollamaBaseUrl = "http://localhost:11434/v1";
32
32
  }
33
33
  const config = {};
34
- if (agent.mcp_servers && Object.keys(agent.mcp_servers).length > 0) {
35
- config.mcp = mcpConfigToOpencode(agent.mcp_servers);
34
+ if (agent.mcp_servers && agent.mcp_servers.length > 0) {
35
+ const mcpRecord = {};
36
+ for (const s of agent.mcp_servers) {
37
+ const { name, ...rest } = s;
38
+ mcpRecord[name] = rest;
39
+ }
40
+ config.mcp = mcpConfigToOpencode(mcpRecord);
36
41
  }
37
- if (isOllamaModel(agent.model) && ollamaBaseUrl) {
42
+ if (isOllamaModel(agent.model.id) && ollamaBaseUrl) {
38
43
  config.provider = {
39
44
  ollama: {
40
45
  npm: "@ai-sdk/openai-compatible",
41
46
  name: "Ollama (local)",
42
47
  options: { baseURL: ollamaBaseUrl },
43
48
  models: {
44
- [agent.model]: { name: agent.model }
49
+ [agent.model.id]: { name: agent.model.id }
45
50
  }
46
51
  }
47
52
  };
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-AIBH32FN.js";
5
5
  import {
6
6
  DEFAULT_TENANT_ID
7
- } from "./chunk-AR2TM7CR.js";
7
+ } from "./chunk-I26QP3A3.js";
8
8
  import {
9
9
  init_ids,
10
10
  newId
@@ -17,24 +17,32 @@ import {
17
17
  import {
18
18
  getDrizzle,
19
19
  init_drizzle
20
- } from "./chunk-R5T4LJSK.js";
20
+ } from "./chunk-PZNAQBHQ.js";
21
21
  import {
22
22
  schema_exports
23
- } from "./chunk-ZMJ4EP4C.js";
23
+ } from "./chunk-ILHIHMO3.js";
24
24
 
25
25
  // src/db/vaults.ts
26
26
  init_drizzle();
27
27
  init_ids();
28
28
  init_clock();
29
- import { eq, and, asc, desc } from "drizzle-orm";
29
+ import { eq, and, asc, desc, isNull } from "drizzle-orm";
30
30
  function hydrateVault(row) {
31
+ let metadata = {};
32
+ try {
33
+ metadata = JSON.parse(row.metadata_json || "{}");
34
+ } catch {
35
+ }
31
36
  return {
37
+ type: "vault",
32
38
  id: row.id,
33
39
  agent_id: row.agent_id,
34
40
  name: row.name,
35
41
  display_name: row.name,
42
+ metadata,
36
43
  created_at: toIso(row.created_at),
37
- updated_at: toIso(row.updated_at)
44
+ updated_at: toIso(row.updated_at),
45
+ archived_at: row.archived_at ? toIso(row.archived_at) : null
38
46
  };
39
47
  }
40
48
  function createVault(input) {
@@ -43,8 +51,9 @@ function createVault(input) {
43
51
  const now = nowMs();
44
52
  db.insert(schema_exports.vaults).values({
45
53
  id,
46
- agent_id: input.agent_id,
54
+ agent_id: input.agent_id ?? null,
47
55
  name: input.name,
56
+ metadata_json: JSON.stringify(input.metadata ?? {}),
48
57
  tenant_id: input.tenant_id ?? DEFAULT_TENANT_ID,
49
58
  created_at: now,
50
59
  updated_at: now
@@ -69,6 +78,24 @@ function listVaults(opts) {
69
78
  const rows = where ? db.select().from(schema_exports.vaults).where(where).orderBy(desc(schema_exports.vaults.created_at)).all() : db.select().from(schema_exports.vaults).orderBy(desc(schema_exports.vaults.created_at)).all();
70
79
  return rows.map(hydrateVault);
71
80
  }
81
+ function updateVault(id, fields) {
82
+ const db = getDrizzle();
83
+ const now = nowMs();
84
+ const updates = { updated_at: now };
85
+ if (fields.display_name !== void 0) {
86
+ updates.name = fields.display_name;
87
+ }
88
+ if (fields.metadata !== void 0) {
89
+ updates.metadata_json = JSON.stringify(fields.metadata);
90
+ }
91
+ db.update(schema_exports.vaults).set(updates).where(eq(schema_exports.vaults.id, id)).run();
92
+ return getVault(id);
93
+ }
94
+ function archiveVault(id) {
95
+ const db = getDrizzle();
96
+ const res = db.update(schema_exports.vaults).set({ archived_at: nowMs() }).where(and(eq(schema_exports.vaults.id, id), isNull(schema_exports.vaults.archived_at))).run();
97
+ return res.changes > 0;
98
+ }
72
99
  function deleteVault(id) {
73
100
  const db = getDrizzle();
74
101
  const res = db.delete(schema_exports.vaults).where(eq(schema_exports.vaults.id, id)).run();
@@ -114,6 +141,8 @@ export {
114
141
  createVault,
115
142
  getVault,
116
143
  listVaults,
144
+ updateVault,
145
+ archiveVault,
117
146
  deleteVault,
118
147
  setEntry,
119
148
  getEntry,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_migrations,
3
3
  runMigrations
4
- } from "./chunk-WCDWL6ED.js";
4
+ } from "./chunk-2YZOIFVN.js";
5
5
  import {
6
6
  __esm
7
7
  } from "./chunk-2ESYSVXG.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-V7MTIMPB.js";
3
+ } from "./chunk-X6QIWZ33.js";
4
4
 
5
5
  // src/backends/codex/auth.ts
6
6
  function buildCodexAuthEnv() {
@@ -5,10 +5,10 @@ import {
5
5
  import {
6
6
  getDrizzle,
7
7
  init_drizzle
8
- } from "./chunk-R5T4LJSK.js";
8
+ } from "./chunk-PZNAQBHQ.js";
9
9
  import {
10
10
  schema_exports
11
- } from "./chunk-ZMJ4EP4C.js";
11
+ } from "./chunk-ILHIHMO3.js";
12
12
 
13
13
  // src/config/index.ts
14
14
  init_drizzle();
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getDrizzle,
3
3
  init_drizzle
4
- } from "./chunk-R5T4LJSK.js";
4
+ } from "./chunk-PZNAQBHQ.js";
5
5
 
6
6
  // src/db/traces.ts
7
7
  init_drizzle();
@@ -3,17 +3,17 @@ import {
3
3
  tenantFilter
4
4
  } from "./chunk-23UKWXJH.js";
5
5
  import {
6
- jsonOk,
6
+ paginatedOk,
7
7
  routeWrap
8
- } from "./chunk-RH4GKU52.js";
8
+ } from "./chunk-QTXAWC5J.js";
9
9
  import {
10
10
  getSession,
11
11
  listSessions
12
- } from "./chunk-3NK6YTA5.js";
12
+ } from "./chunk-KUWJJD6O.js";
13
13
  import {
14
14
  getDb,
15
15
  init_client
16
- } from "./chunk-6POQAFEC.js";
16
+ } from "./chunk-W3JMIUHV.js";
17
17
  import {
18
18
  notFound
19
19
  } from "./chunk-EZYKRG4W.js";
@@ -39,12 +39,7 @@ function handleListThreads(request, sessionId) {
39
39
  // show all threads including completed ones
40
40
  tenantFilter: tenantFilter(auth)
41
41
  });
42
- return jsonOk({
43
- data,
44
- has_more: data.length === requestedLimit,
45
- first_id: data.length > 0 ? data[0].id : null,
46
- last_id: data.length > 0 ? data[data.length - 1].id : null
47
- });
42
+ return paginatedOk(data, requestedLimit);
48
43
  });
49
44
  }
50
45
 
@@ -4,11 +4,11 @@ import {
4
4
  } from "./chunk-23UKWXJH.js";
5
5
  import {
6
6
  listAudit
7
- } from "./chunk-KLN6HPYM.js";
7
+ } from "./chunk-L3IACZ72.js";
8
8
  import {
9
- jsonOk,
9
+ paginatedOk,
10
10
  routeWrap
11
- } from "./chunk-RH4GKU52.js";
11
+ } from "./chunk-QTXAWC5J.js";
12
12
  import {
13
13
  badRequest
14
14
  } from "./chunk-EZYKRG4W.js";
@@ -57,12 +57,7 @@ function handleListAudit(request) {
57
57
  createdLte,
58
58
  tenantFilter: tenantFilter(auth)
59
59
  });
60
- return jsonOk({
61
- data,
62
- has_more: data.length === requestedLimit,
63
- first_id: data.length > 0 ? data[0].id : null,
64
- last_id: data.length > 0 ? data[data.length - 1].id : null
65
- });
60
+ return paginatedOk(data, requestedLimit);
66
61
  });
67
62
  }
68
63
 
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  BatchError,
3
3
  executeBatch
4
- } from "./chunk-7GG3FEK2.js";
4
+ } from "./chunk-MCWCRZM4.js";
5
5
  import {
6
6
  jsonOk,
7
7
  routeWrap
8
- } from "./chunk-RH4GKU52.js";
8
+ } from "./chunk-QTXAWC5J.js";
9
9
  import {
10
10
  badRequest
11
11
  } from "./chunk-EZYKRG4W.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-V7MTIMPB.js";
3
+ } from "./chunk-X6QIWZ33.js";
4
4
  import {
5
5
  serverBusy
6
6
  } from "./chunk-EZYKRG4W.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  listEntries
3
- } from "./chunk-ZVXIZ2JD.js";
3
+ } from "./chunk-VP527YC5.js";
4
4
  import {
5
5
  getConfig
6
- } from "./chunk-V7MTIMPB.js";
6
+ } from "./chunk-X6QIWZ33.js";
7
7
 
8
8
  // src/observability/redactor.ts
9
9
  var REDACTED = "[REDACTED]";
@@ -5,12 +5,12 @@ import {
5
5
  readSetting,
6
6
  writeSetting,
7
7
  writeTokenSetting
8
- } from "../chunk-V7MTIMPB.js";
8
+ } from "../chunk-X6QIWZ33.js";
9
9
  import "../chunk-HFDLUBWN.js";
10
- import "../chunk-R5T4LJSK.js";
11
- import "../chunk-ZMJ4EP4C.js";
12
- import "../chunk-6POQAFEC.js";
13
- import "../chunk-WCDWL6ED.js";
10
+ import "../chunk-PZNAQBHQ.js";
11
+ import "../chunk-ILHIHMO3.js";
12
+ import "../chunk-W3JMIUHV.js";
13
+ import "../chunk-2YZOIFVN.js";
14
14
  import "../chunk-2ESYSVXG.js";
15
15
  export {
16
16
  getConfig,
@@ -7,13 +7,13 @@ import {
7
7
  killExecSession,
8
8
  listSprites,
9
9
  restoreCheckpoint
10
- } from "../chunk-FXLUSECC.js";
11
- import "../chunk-V7MTIMPB.js";
10
+ } from "../chunk-NKQVOAWN.js";
11
+ import "../chunk-X6QIWZ33.js";
12
12
  import "../chunk-HFDLUBWN.js";
13
- import "../chunk-R5T4LJSK.js";
14
- import "../chunk-ZMJ4EP4C.js";
15
- import "../chunk-6POQAFEC.js";
16
- import "../chunk-WCDWL6ED.js";
13
+ import "../chunk-PZNAQBHQ.js";
14
+ import "../chunk-ILHIHMO3.js";
15
+ import "../chunk-W3JMIUHV.js";
16
+ import "../chunk-2YZOIFVN.js";
17
17
  import "../chunk-EZYKRG4W.js";
18
18
  import "../chunk-2ESYSVXG.js";
19
19
  export {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  startExec
3
- } from "../chunk-P26WOAA3.js";
4
- import "../chunk-V7MTIMPB.js";
3
+ } from "../chunk-TUEBRYPZ.js";
4
+ import "../chunk-X6QIWZ33.js";
5
5
  import "../chunk-HFDLUBWN.js";
6
- import "../chunk-R5T4LJSK.js";
7
- import "../chunk-ZMJ4EP4C.js";
8
- import "../chunk-6POQAFEC.js";
9
- import "../chunk-WCDWL6ED.js";
6
+ import "../chunk-PZNAQBHQ.js";
7
+ import "../chunk-ILHIHMO3.js";
8
+ import "../chunk-W3JMIUHV.js";
9
+ import "../chunk-2YZOIFVN.js";
10
10
  import "../chunk-EZYKRG4W.js";
11
11
  import "../chunk-2ESYSVXG.js";
12
12
  export {