@agentstep/agent-sdk 0.4.29 → 0.4.31

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 (176) 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 +7 -7
  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 +7 -7
  10. package/dist/backends/opencode/auth.js +6 -6
  11. package/dist/backends/opencode/index.js +7 -7
  12. package/dist/backends/pi/auth.js +6 -6
  13. package/dist/backends/pi/index.js +7 -7
  14. package/dist/backends/registry.js +18 -18
  15. package/dist/{chunk-R5OZHLAD.js → chunk-2COVNKOK.js} +2 -2
  16. package/dist/{chunk-2NAUMCWE.js → chunk-33OBMYKV.js} +1 -1
  17. package/dist/{chunk-MJ5J57UJ.js → chunk-4LKSYF4M.js} +1 -1
  18. package/dist/{chunk-ESXH27JB.js → chunk-4MDF5N2L.js} +2 -2
  19. package/dist/{chunk-GQFC44YI.js → chunk-55SVTKOM.js} +8 -5
  20. package/dist/{chunk-YIVJ3JTW.js → chunk-5H2CQ6L4.js} +2 -2
  21. package/dist/{chunk-JK5TPJHH.js → chunk-6GP5IKXE.js} +1 -1
  22. package/dist/{chunk-5GZEX4HV.js → chunk-6POQAFEC.js} +1 -1
  23. package/dist/{chunk-EF5QCTEQ.js → chunk-6YZ5WTLB.js} +2 -2
  24. package/dist/{chunk-BFXQ3IOS.js → chunk-7RJNOZLB.js} +18 -15
  25. package/dist/{chunk-4DTL7OKD.js → chunk-A7CS7RTM.js} +5 -5
  26. package/dist/{chunk-DO4WVWW7.js → chunk-AJPZY6EJ.js} +1 -1
  27. package/dist/{chunk-JDELTTHV.js → chunk-AR2TM7CR.js} +1 -1
  28. package/dist/{chunk-YGAHGTVZ.js → chunk-BCUBVYE3.js} +3 -3
  29. package/dist/{chunk-LLYP77OL.js → chunk-BNXUV6NZ.js} +11 -5
  30. package/dist/{chunk-NX6SIEN6.js → chunk-BQRKJAOP.js} +2 -2
  31. package/dist/{chunk-4GC7D5GD.js → chunk-CGKRD37R.js} +2 -2
  32. package/dist/{chunk-ZMMDLKR3.js → chunk-CIUFOD65.js} +3 -3
  33. package/dist/{chunk-HMBJOI5F.js → chunk-DKBNLGZO.js} +23 -14
  34. package/dist/{chunk-ZP5VMV5O.js → chunk-FEXR57M4.js} +4 -4
  35. package/dist/{chunk-OONL25NZ.js → chunk-FOOPNRHA.js} +2 -2
  36. package/dist/{chunk-EGCAA6KI.js → chunk-G6JKWW2S.js} +2 -2
  37. package/dist/{chunk-UXMCHRGA.js → chunk-GNHRAWOX.js} +2 -2
  38. package/dist/{chunk-BZ6HFTHU.js → chunk-H7UKW666.js} +1 -1
  39. package/dist/{chunk-HLNTWWAZ.js → chunk-I2SLDKCN.js} +2 -2
  40. package/dist/{chunk-NWW4246M.js → chunk-IN5KO2L2.js} +1 -1
  41. package/dist/{chunk-VIGJQU6V.js → chunk-J37F7PXJ.js} +4 -4
  42. package/dist/{chunk-X2CAT5MN.js → chunk-JIURGVRG.js} +1 -1
  43. package/dist/{chunk-WFIMX3HG.js → chunk-JJGAQMPS.js} +1 -1
  44. package/dist/{chunk-B2JLKTBJ.js → chunk-JWSR5TZ3.js} +1 -1
  45. package/dist/{chunk-I5ZA45YL.js → chunk-KFORPY7J.js} +9 -5
  46. package/dist/{chunk-4RNCKCDV.js → chunk-KLFJTFDB.js} +1 -1
  47. package/dist/{chunk-MHQXDTJB.js → chunk-KLN6HPYM.js} +1 -1
  48. package/dist/{chunk-RK3QBYXO.js → chunk-KRLVSKID.js} +5 -5
  49. package/dist/{chunk-ZQGJKPPY.js → chunk-L5RW66H5.js} +31 -6
  50. package/dist/{chunk-NUINUAXO.js → chunk-LASUEMN6.js} +3 -3
  51. package/dist/{chunk-AMWWPUSK.js → chunk-LHQD4KLV.js} +1 -1
  52. package/dist/{chunk-UIVEK3MD.js → chunk-M7W3PCFS.js} +1 -1
  53. package/dist/{chunk-T45NOW43.js → chunk-MHL3EXDR.js} +1 -1
  54. package/dist/{chunk-BMPB7XJH.js → chunk-MVC2FD32.js} +4 -4
  55. package/dist/{chunk-O45IQUWS.js → chunk-NDVC4J3H.js} +3 -3
  56. package/dist/{chunk-Y2KDIPCT.js → chunk-NIW3B4V2.js} +5 -5
  57. package/dist/{chunk-OWP537VU.js → chunk-NJ4JTJJM.js} +1 -1
  58. package/dist/{chunk-ZNQD65DN.js → chunk-O3XR457F.js} +4 -4
  59. package/dist/{chunk-I44FSUBC.js → chunk-O5B7GRUK.js} +1 -1
  60. package/dist/{chunk-OC2RYYTW.js → chunk-OLF7H564.js} +11 -8
  61. package/dist/{chunk-OTLXV4RO.js → chunk-OZJG5G7V.js} +4 -4
  62. package/dist/{chunk-JEI7I3EH.js → chunk-P2IGNOJI.js} +3 -3
  63. package/dist/{chunk-LYTHR3HC.js → chunk-PTYMGYNJ.js} +1 -1
  64. package/dist/chunk-PVITAFPJ.js +212 -0
  65. package/dist/{chunk-YCXELHKG.js → chunk-Q3DOTREK.js} +1 -1
  66. package/dist/{chunk-NUO56TF7.js → chunk-QVFRPABA.js} +3 -3
  67. package/dist/{chunk-HGZ6R6ST.js → chunk-R3Q62FVO.js} +19 -6
  68. package/dist/{chunk-SXE7H3VK.js → chunk-R5T4LJSK.js} +2 -2
  69. package/dist/{chunk-DT57EZQB.js → chunk-RCF2SVUO.js} +15 -15
  70. package/dist/{chunk-EHCGLMPC.js → chunk-RKL2NK3V.js} +1 -1
  71. package/dist/{chunk-TY3HD5I5.js → chunk-S4AYCMMB.js} +1 -1
  72. package/dist/{chunk-5D5P37FY.js → chunk-TGEDOUUD.js} +1 -1
  73. package/dist/{chunk-W26HCKWX.js → chunk-TLEGXMX7.js} +3 -3
  74. package/dist/{chunk-RZKUB4JQ.js → chunk-TLH4JLC7.js} +2 -2
  75. package/dist/{chunk-OA3CLTYY.js → chunk-UBFEHVPY.js} +3 -3
  76. package/dist/{chunk-WHASPTF3.js → chunk-UCOSSYKZ.js} +12 -9
  77. package/dist/{chunk-AQXCXWAZ.js → chunk-ULS4X3UQ.js} +1 -1
  78. package/dist/{chunk-XZOBOKL6.js → chunk-UW4T4TG3.js} +3 -3
  79. package/dist/{chunk-ATTHVKNE.js → chunk-UZHSDRAK.js} +4 -4
  80. package/dist/{chunk-KZ4AECAK.js → chunk-UZQLLGX4.js} +43 -16
  81. package/dist/{chunk-JURAGCGR.js → chunk-V5XH43NK.js} +8 -8
  82. package/dist/{chunk-NIOWKTIF.js → chunk-VND46TDY.js} +2 -2
  83. package/dist/{chunk-XGUSWFDD.js → chunk-W63RBT7H.js} +9 -9
  84. package/dist/{chunk-2BDD6OHG.js → chunk-WCDWL6ED.js} +14 -0
  85. package/dist/{chunk-NXRJ7Z4G.js → chunk-WNHJTUPW.js} +2 -2
  86. package/dist/{chunk-FJAWIVSD.js → chunk-WORPHTCS.js} +4 -4
  87. package/dist/{chunk-O3Z7JWR7.js → chunk-WU52LOGJ.js} +7 -4
  88. package/dist/{chunk-ADK2TYO4.js → chunk-XTZWBXAO.js} +2 -2
  89. package/dist/{chunk-4WMYJM36.js → chunk-XVK7YFZP.js} +1 -1
  90. package/dist/{chunk-S3SKODVV.js → chunk-Y2VQ65PM.js} +4 -4
  91. package/dist/{chunk-KOGG7CSN.js → chunk-YS5UPMTH.js} +6 -6
  92. package/dist/{chunk-LMHXLYUV.js → chunk-ZG7FD2KD.js} +2 -2
  93. package/dist/{chunk-M4CTE7EH.js → chunk-ZKHUJB7A.js} +2 -2
  94. package/dist/{chunk-LHHBOQUR.js → chunk-ZMJ4EP4C.js} +2 -0
  95. package/dist/{chunk-DNGLD7VN.js → chunk-ZOWT6X6Y.js} +1 -1
  96. package/dist/config/index.js +5 -5
  97. package/dist/containers/client.js +6 -6
  98. package/dist/containers/exec.js +6 -6
  99. package/dist/containers/lifecycle.js +30 -30
  100. package/dist/containers/setup.js +8 -8
  101. package/dist/db/agents.js +6 -6
  102. package/dist/db/api_keys.js +5 -5
  103. package/dist/db/audit.js +3 -3
  104. package/dist/db/batch.js +10 -10
  105. package/dist/db/client.js +2 -2
  106. package/dist/db/credentials.js +3 -3
  107. package/dist/db/drizzle.js +4 -4
  108. package/dist/db/environments.js +6 -6
  109. package/dist/db/events.js +5 -5
  110. package/dist/db/files.js +5 -5
  111. package/dist/db/memory.js +5 -5
  112. package/dist/db/migrations.js +1 -1
  113. package/dist/db/proxy.js +5 -5
  114. package/dist/db/schema.js +1 -1
  115. package/dist/db/session-resources.js +5 -5
  116. package/dist/db/sessions.js +7 -7
  117. package/dist/db/sync.js +5 -5
  118. package/dist/db/tenants.js +3 -3
  119. package/dist/db/traces.js +5 -5
  120. package/dist/db/upstream_keys.js +3 -3
  121. package/dist/db/vaults.js +6 -6
  122. package/dist/handlers/agents.js +45 -45
  123. package/dist/handlers/api_keys.js +46 -46
  124. package/dist/handlers/audit.js +46 -46
  125. package/dist/handlers/batch.js +46 -46
  126. package/dist/handlers/credentials.js +46 -46
  127. package/dist/handlers/environments.js +46 -46
  128. package/dist/handlers/events.js +49 -49
  129. package/dist/handlers/files.js +46 -46
  130. package/dist/handlers/index.js +81 -81
  131. package/dist/handlers/license.js +45 -45
  132. package/dist/handlers/memory.js +46 -46
  133. package/dist/handlers/metrics.js +45 -45
  134. package/dist/handlers/models.js +46 -46
  135. package/dist/handlers/providers.js +45 -45
  136. package/dist/handlers/resources.js +45 -45
  137. package/dist/handlers/sessions.js +48 -48
  138. package/dist/handlers/settings.js +45 -45
  139. package/dist/handlers/skills-write.js +45 -45
  140. package/dist/handlers/skills.js +46 -46
  141. package/dist/handlers/stream.js +45 -45
  142. package/dist/handlers/tenants.js +46 -46
  143. package/dist/handlers/threads.js +45 -45
  144. package/dist/handlers/traces.js +46 -46
  145. package/dist/handlers/upstream_keys.js +48 -48
  146. package/dist/handlers/vaults.js +45 -45
  147. package/dist/handlers/whoami.js +45 -45
  148. package/dist/http.js +44 -44
  149. package/dist/index.js +48 -48
  150. package/dist/init.js +41 -41
  151. package/dist/lib/model-registry.js +6 -6
  152. package/dist/lib/skills-cache.js +6 -6
  153. package/dist/observability/otlp.js +12 -12
  154. package/dist/observability/redactor.js +8 -8
  155. package/dist/providers/fly.js +5 -5
  156. package/dist/providers/modal.js +5 -5
  157. package/dist/providers/registry.js +1 -1
  158. package/dist/providers/resolve-secrets.js +7 -7
  159. package/dist/providers/sprites.js +7 -7
  160. package/dist/providers/upstream-keys.js +11 -11
  161. package/dist/providers/vercel.js +5 -5
  162. package/dist/proxy/forward.js +6 -6
  163. package/dist/queue/index.js +6 -6
  164. package/dist/sessions/bus.js +10 -10
  165. package/dist/sessions/driver.js +34 -34
  166. package/dist/sessions/grader.js +5 -5
  167. package/dist/sessions/secrets.js +8 -8
  168. package/dist/sessions/sweeper.js +31 -31
  169. package/dist/sessions/threads.js +34 -34
  170. package/dist/shutdown.js +32 -32
  171. package/dist/sync/anthropic.js +10 -10
  172. package/dist/sync/container-file-sync.js +6 -6
  173. package/dist/sync/file-sync.js +17 -17
  174. package/package.json +1 -1
  175. package/dist/chunk-AE5JQORN.js +0 -131
  176. /package/dist/{chunk-QUJNG4RA.js → chunk-C4II4GGZ.js} +0 -0
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-23UKWXJH.js";
7
7
  import {
8
8
  recordAudit
9
- } from "./chunk-MHQXDTJB.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-ESXH27JB.js";
18
+ } from "./chunk-4MDF5N2L.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-ADK2TYO4.js";
26
+ } from "./chunk-XTZWBXAO.js";
27
27
  import {
28
28
  listSessionsByApiKey
29
- } from "./chunk-I5ZA45YL.js";
29
+ } from "./chunk-KFORPY7J.js";
30
30
  import {
31
31
  getDb,
32
32
  init_client
33
- } from "./chunk-5GZEX4HV.js";
33
+ } from "./chunk-6POQAFEC.js";
34
34
  import {
35
35
  badRequest,
36
36
  forbidden,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  listEntries
3
- } from "./chunk-VIGJQU6V.js";
3
+ } from "./chunk-J37F7PXJ.js";
4
4
 
5
5
  // src/providers/resolve-secrets.ts
6
6
  var BLOCKED_ENV_KEYS = /* @__PURE__ */ new Set([
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  getDb,
12
12
  init_client
13
- } from "./chunk-5GZEX4HV.js";
13
+ } from "./chunk-6POQAFEC.js";
14
14
 
15
15
  // src/db/tenants.ts
16
16
  init_client();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getDrizzle,
3
3
  init_drizzle
4
- } from "./chunk-SXE7H3VK.js";
4
+ } from "./chunk-R5T4LJSK.js";
5
5
  import {
6
6
  schema_exports
7
- } from "./chunk-LHHBOQUR.js";
7
+ } from "./chunk-ZMJ4EP4C.js";
8
8
  import {
9
9
  init_clock,
10
10
  nowMs
@@ -12,7 +12,7 @@ import {
12
12
  import {
13
13
  getDb,
14
14
  init_client
15
- } from "./chunk-5GZEX4HV.js";
15
+ } from "./chunk-6POQAFEC.js";
16
16
 
17
17
  // src/db/sync.ts
18
18
  init_drizzle();
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  jsonOk,
8
8
  routeWrap
9
- } from "./chunk-ESXH27JB.js";
9
+ } from "./chunk-4MDF5N2L.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-VIGJQU6V.js";
19
+ } from "./chunk-J37F7PXJ.js";
20
20
  import {
21
21
  getAgent
22
- } from "./chunk-JEI7I3EH.js";
22
+ } from "./chunk-P2IGNOJI.js";
23
23
  import {
24
24
  getDb,
25
25
  init_client
26
- } from "./chunk-5GZEX4HV.js";
26
+ } from "./chunk-6POQAFEC.js";
27
27
  import {
28
28
  badRequest,
29
29
  conflict,
@@ -101,8 +101,14 @@ function handleListVaults(request) {
101
101
  return routeWrap(request, async ({ auth, request: req }) => {
102
102
  const url = new URL(req.url);
103
103
  const agentId = url.searchParams.get("agent_id") ?? void 0;
104
+ const requestedLimit = Number(url.searchParams.get("limit") || "100");
104
105
  const data = listVaults({ agent_id: agentId, tenantFilter: tenantFilter(auth) });
105
- return jsonOk({ data });
106
+ return jsonOk({
107
+ data,
108
+ has_more: data.length === requestedLimit,
109
+ first_id: data.length > 0 ? data[0].id : null,
110
+ last_id: data.length > 0 ? data[data.length - 1].id : null
111
+ });
106
112
  });
107
113
  }
108
114
  function handleGetVault(request, id) {
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  markStopping
3
- } from "./chunk-FJAWIVSD.js";
3
+ } from "./chunk-WORPHTCS.js";
4
4
  import {
5
5
  closeDb,
6
6
  init_client,
7
7
  syncDb
8
- } from "./chunk-5GZEX4HV.js";
8
+ } from "./chunk-6POQAFEC.js";
9
9
  import {
10
10
  getRuntime
11
11
  } from "./chunk-UYTSKFGK.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  BatchError,
3
3
  executeBatch
4
- } from "./chunk-S3SKODVV.js";
4
+ } from "./chunk-Y2VQ65PM.js";
5
5
  import {
6
6
  jsonOk,
7
7
  routeWrap
8
- } from "./chunk-ESXH27JB.js";
8
+ } from "./chunk-4MDF5N2L.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-T45NOW43.js";
3
+ } from "./chunk-MHL3EXDR.js";
4
4
  import {
5
5
  isAnthropicApiKey,
6
6
  isPassthroughAllowedPath
@@ -8,10 +8,10 @@ import {
8
8
  import {
9
9
  findByRawKey,
10
10
  hydratePermissions
11
- } from "./chunk-ADK2TYO4.js";
11
+ } from "./chunk-XTZWBXAO.js";
12
12
  import {
13
13
  getConfig
14
- } from "./chunk-EF5QCTEQ.js";
14
+ } from "./chunk-6YZ5WTLB.js";
15
15
  import {
16
16
  unauthorized
17
17
  } from "./chunk-EZYKRG4W.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  syncAndCreateSession
3
- } from "./chunk-ZP5VMV5O.js";
3
+ } from "./chunk-FEXR57M4.js";
4
4
  import {
5
5
  resolveRemoteSessionId,
6
6
  upsertSync
7
- } from "./chunk-YGAHGTVZ.js";
7
+ } from "./chunk-BCUBVYE3.js";
8
8
  import {
9
9
  assertResourceTenant,
10
10
  tenantFilter
@@ -14,14 +14,14 @@ import {
14
14
  } from "./chunk-DC2UMEQH.js";
15
15
  import {
16
16
  kickoffEnvironmentSetup
17
- } from "./chunk-HLNTWWAZ.js";
17
+ } from "./chunk-I2SLDKCN.js";
18
18
  import {
19
19
  jsonOk,
20
20
  routeWrap
21
- } from "./chunk-ESXH27JB.js";
21
+ } from "./chunk-4MDF5N2L.js";
22
22
  import {
23
23
  forwardToAnthropic
24
- } from "./chunk-T45NOW43.js";
24
+ } from "./chunk-MHL3EXDR.js";
25
25
  import {
26
26
  errors_exports,
27
27
  init_errors
@@ -31,18 +31,18 @@ import {
31
31
  isProxied,
32
32
  markProxied,
33
33
  unmarkProxied
34
- } from "./chunk-NIOWKTIF.js";
34
+ } from "./chunk-VND46TDY.js";
35
35
  import {
36
36
  dropActor,
37
37
  getActor
38
38
  } from "./chunk-LAWTTG2E.js";
39
39
  import {
40
40
  releaseSession
41
- } from "./chunk-XGUSWFDD.js";
41
+ } from "./chunk-W63RBT7H.js";
42
42
  import {
43
43
  appendEvent,
44
44
  dropEmitter
45
- } from "./chunk-BMPB7XJH.js";
45
+ } from "./chunk-MVC2FD32.js";
46
46
  import {
47
47
  archiveSession,
48
48
  createSession,
@@ -50,13 +50,13 @@ import {
50
50
  listSessions,
51
51
  updateSessionMutable,
52
52
  updateSessionStatus
53
- } from "./chunk-I5ZA45YL.js";
53
+ } from "./chunk-KFORPY7J.js";
54
54
  import {
55
55
  getEnvironment
56
- } from "./chunk-NUO56TF7.js";
56
+ } from "./chunk-QVFRPABA.js";
57
57
  import {
58
58
  getAgent
59
- } from "./chunk-JEI7I3EH.js";
59
+ } from "./chunk-P2IGNOJI.js";
60
60
  import {
61
61
  init_clock,
62
62
  nowMs
@@ -64,7 +64,7 @@ import {
64
64
  import {
65
65
  getDb,
66
66
  init_client
67
- } from "./chunk-5GZEX4HV.js";
67
+ } from "./chunk-6POQAFEC.js";
68
68
  import {
69
69
  badRequest,
70
70
  notFound
@@ -137,6 +137,8 @@ var CreateSchema = z.object({
137
137
  title: z.string().nullish(),
138
138
  metadata: z.record(z.unknown()).optional(),
139
139
  max_budget_usd: z.number().positive().optional(),
140
+ max_tokens: z.number().int().positive().optional(),
141
+ max_wall_duration_ms: z.number().int().positive().optional(),
140
142
  resources: z.array(ResourceSchema).optional(),
141
143
  vault_ids: z.array(z.string()).optional()
142
144
  });
@@ -267,6 +269,8 @@ function handleCreateSession(request) {
267
269
  title: data.title ?? null,
268
270
  metadata: data.metadata ?? {},
269
271
  max_budget_usd: data.max_budget_usd ?? null,
272
+ max_tokens: data.max_tokens ?? null,
273
+ max_wall_duration_ms: data.max_wall_duration_ms ?? null,
270
274
  resources: data.resources?.length ? data.resources : null,
271
275
  vault_ids: data.vault_ids?.length ? data.vault_ids : null,
272
276
  api_key_id: auth.keyId,
@@ -326,6 +330,8 @@ function handleCreateSession(request) {
326
330
  title: data.title ?? null,
327
331
  metadata: data.metadata ?? {},
328
332
  max_budget_usd: data.max_budget_usd ?? null,
333
+ max_tokens: data.max_tokens ?? null,
334
+ max_wall_duration_ms: data.max_wall_duration_ms ?? null,
329
335
  resources: data.resources?.length ? data.resources : null,
330
336
  vault_ids: data.vault_ids?.length ? data.vault_ids : null,
331
337
  api_key_id: auth.keyId,
@@ -453,12 +459,13 @@ function handleListSessions(request) {
453
459
  }
454
460
  status = statusRaw;
455
461
  }
462
+ const requestedLimit = limit ? Number(limit) : 50;
456
463
  const data = listSessions({
457
464
  agent_id: agentId,
458
465
  agent_version: agentVersion ? Number(agentVersion) : void 0,
459
466
  environmentId,
460
467
  status,
461
- limit: limit ? Number(limit) : void 0,
468
+ limit: requestedLimit,
462
469
  order: order ?? void 0,
463
470
  includeArchived,
464
471
  cursor,
@@ -470,7 +477,9 @@ function handleListSessions(request) {
470
477
  });
471
478
  return jsonOk({
472
479
  data,
473
- next_page: data.length > 0 ? data[data.length - 1].id : null
480
+ has_more: data.length === requestedLimit,
481
+ first_id: data.length > 0 ? data[0].id : null,
482
+ last_id: data.length > 0 ? data[data.length - 1].id : null
474
483
  });
475
484
  });
476
485
  }
@@ -2,19 +2,19 @@ import {
2
2
  getSyncRow,
3
3
  getSyncedRemoteId,
4
4
  upsertSync
5
- } from "./chunk-YGAHGTVZ.js";
5
+ } from "./chunk-BCUBVYE3.js";
6
6
  import {
7
7
  injectMcpAuthHeaders
8
8
  } from "./chunk-SV2B3P6B.js";
9
9
  import {
10
10
  listEntries
11
- } from "./chunk-VIGJQU6V.js";
11
+ } from "./chunk-J37F7PXJ.js";
12
12
  import {
13
13
  getEnvironment
14
- } from "./chunk-NUO56TF7.js";
14
+ } from "./chunk-QVFRPABA.js";
15
15
  import {
16
16
  getAgent
17
- } from "./chunk-JEI7I3EH.js";
17
+ } from "./chunk-P2IGNOJI.js";
18
18
 
19
19
  // src/sync/anthropic.ts
20
20
  import { createHash } from "crypto";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getModels
3
- } from "./chunk-4WMYJM36.js";
3
+ } from "./chunk-XVK7YFZP.js";
4
4
  import {
5
5
  jsonOk,
6
6
  routeWrap
7
- } from "./chunk-ESXH27JB.js";
7
+ } from "./chunk-4MDF5N2L.js";
8
8
 
9
9
  // src/handlers/models.ts
10
10
  function handleListModels(request) {
@@ -8,14 +8,14 @@ import {
8
8
  import {
9
9
  jsonOk,
10
10
  routeWrap
11
- } from "./chunk-ESXH27JB.js";
11
+ } from "./chunk-4MDF5N2L.js";
12
12
  import {
13
13
  snapshotApiMetrics
14
14
  } from "./chunk-D2XITRN6.js";
15
15
  import {
16
16
  getDb,
17
17
  init_client
18
- } from "./chunk-5GZEX4HV.js";
18
+ } from "./chunk-6POQAFEC.js";
19
19
  import {
20
20
  badRequest
21
21
  } from "./chunk-EZYKRG4W.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  listEntries
3
- } from "./chunk-VIGJQU6V.js";
3
+ } from "./chunk-J37F7PXJ.js";
4
4
  import {
5
5
  getConfig
6
- } from "./chunk-EF5QCTEQ.js";
6
+ } from "./chunk-6YZ5WTLB.js";
7
7
 
8
8
  // src/observability/redactor.ts
9
9
  var REDACTED = "[REDACTED]";
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  getDb,
15
15
  init_client
16
- } from "./chunk-5GZEX4HV.js";
16
+ } from "./chunk-6POQAFEC.js";
17
17
 
18
18
  // src/db/upstream_keys.ts
19
19
  init_client();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  resolveContainerProvider
3
- } from "./chunk-QUJNG4RA.js";
3
+ } from "./chunk-C4II4GGZ.js";
4
4
  import {
5
5
  getEnvironmentRow,
6
6
  updateEnvironmentState
7
- } from "./chunk-NUO56TF7.js";
7
+ } from "./chunk-QVFRPABA.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-EF5QCTEQ.js";
3
+ } from "./chunk-6YZ5WTLB.js";
4
4
 
5
5
  // src/backends/codex/auth.ts
6
6
  function buildCodexAuthEnv() {
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-AIBH32FN.js";
5
5
  import {
6
6
  DEFAULT_TENANT_ID
7
- } from "./chunk-JDELTTHV.js";
7
+ } from "./chunk-AR2TM7CR.js";
8
8
  import {
9
9
  init_ids,
10
10
  newId
@@ -12,10 +12,10 @@ import {
12
12
  import {
13
13
  getDrizzle,
14
14
  init_drizzle
15
- } from "./chunk-SXE7H3VK.js";
15
+ } from "./chunk-R5T4LJSK.js";
16
16
  import {
17
17
  schema_exports
18
- } from "./chunk-LHHBOQUR.js";
18
+ } from "./chunk-ZMJ4EP4C.js";
19
19
  import {
20
20
  init_clock,
21
21
  nowMs,
@@ -39,7 +39,7 @@ function hydrateVault(row) {
39
39
  }
40
40
  function createVault(input) {
41
41
  const db = getDrizzle();
42
- const id = newId("vault");
42
+ const id = newId("vlt");
43
43
  const now = nowMs();
44
44
  db.insert(schema_exports.vaults).values({
45
45
  id,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  buildCodexAuthEnv,
3
3
  validateCodexRuntime
4
- } from "./chunk-NWW4246M.js";
4
+ } from "./chunk-IN5KO2L2.js";
5
5
  import {
6
6
  prepareCodexOnSandbox
7
7
  } from "./chunk-M2LUXIXU.js";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-XBHDQK4Z.js";
7
7
  import {
8
8
  getConfig
9
- } from "./chunk-EF5QCTEQ.js";
9
+ } from "./chunk-6YZ5WTLB.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-EF5QCTEQ.js";
3
+ } from "./chunk-6YZ5WTLB.js";
4
4
 
5
5
  // src/backends/opencode/auth.ts
6
6
  function buildOpencodeAuthEnv() {
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  init_session_resources,
3
3
  session_resources_exports
4
- } from "./chunk-R5OZHLAD.js";
4
+ } from "./chunk-2COVNKOK.js";
5
5
  import {
6
6
  DEFAULT_TENANT_ID
7
- } from "./chunk-JDELTTHV.js";
7
+ } from "./chunk-AR2TM7CR.js";
8
8
  import {
9
9
  init_ids,
10
10
  newId
@@ -12,10 +12,10 @@ import {
12
12
  import {
13
13
  getDrizzle,
14
14
  init_drizzle
15
- } from "./chunk-SXE7H3VK.js";
15
+ } from "./chunk-R5T4LJSK.js";
16
16
  import {
17
17
  schema_exports
18
- } from "./chunk-LHHBOQUR.js";
18
+ } from "./chunk-ZMJ4EP4C.js";
19
19
  import {
20
20
  init_clock,
21
21
  nowMs,
@@ -70,6 +70,8 @@ function hydrateSession(row) {
70
70
  title: row.title,
71
71
  metadata: JSON.parse(row.metadata_json),
72
72
  max_budget_usd: row.max_budget_usd ?? null,
73
+ max_tokens: row.max_tokens ?? null,
74
+ max_wall_duration_ms: row.max_wall_duration_ms ?? null,
73
75
  outcome: row.outcome_criteria_json ? JSON.parse(row.outcome_criteria_json) : null,
74
76
  resources,
75
77
  vault_ids: row.vault_ids_json ? JSON.parse(row.vault_ids_json) : [],
@@ -95,7 +97,7 @@ function hydrateSession(row) {
95
97
  }
96
98
  function createSession(input) {
97
99
  const db = getDrizzle();
98
- const id = newId("sess");
100
+ const id = newId("sesn");
99
101
  const now = nowMs();
100
102
  db.insert(schema_exports.sessions).values({
101
103
  id,
@@ -106,6 +108,8 @@ function createSession(input) {
106
108
  title: input.title ?? null,
107
109
  metadata_json: JSON.stringify(input.metadata ?? {}),
108
110
  max_budget_usd: input.max_budget_usd ?? null,
111
+ max_tokens: input.max_tokens ?? null,
112
+ max_wall_duration_ms: input.max_wall_duration_ms ?? null,
109
113
  resources_json: input.resources ? JSON.stringify(input.resources) : null,
110
114
  vault_ids_json: input.vault_ids ? JSON.stringify(input.vault_ids) : null,
111
115
  parent_session_id: input.parent_session_id ?? null,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-EF5QCTEQ.js";
3
+ } from "./chunk-6YZ5WTLB.js";
4
4
  import {
5
5
  ApiError
6
6
  } from "./chunk-EZYKRG4W.js";
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  getDb,
16
16
  init_client
17
- } from "./chunk-5GZEX4HV.js";
17
+ } from "./chunk-6POQAFEC.js";
18
18
 
19
19
  // src/db/audit.ts
20
20
  init_client();
@@ -4,14 +4,14 @@ import {
4
4
  import {
5
5
  jsonOk,
6
6
  routeWrap
7
- } from "./chunk-ESXH27JB.js";
7
+ } from "./chunk-4MDF5N2L.js";
8
8
  import {
9
9
  getProxiedTenantId
10
- } from "./chunk-NIOWKTIF.js";
10
+ } from "./chunk-VND46TDY.js";
11
11
  import {
12
12
  getSession,
13
13
  updateSessionResources
14
- } from "./chunk-I5ZA45YL.js";
14
+ } from "./chunk-KFORPY7J.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-R5OZHLAD.js";
22
+ } from "./chunk-2COVNKOK.js";
23
23
  import {
24
24
  getDb,
25
25
  init_client
26
- } from "./chunk-5GZEX4HV.js";
26
+ } from "./chunk-6POQAFEC.js";
27
27
  import {
28
28
  badRequest,
29
29
  notFound
@@ -14,20 +14,36 @@ import {
14
14
  import {
15
15
  getDb,
16
16
  init_client
17
- } from "./chunk-5GZEX4HV.js";
17
+ } from "./chunk-6POQAFEC.js";
18
18
 
19
19
  // src/db/credentials.ts
20
20
  init_client();
21
21
  init_ids();
22
22
  init_clock();
23
23
  function hydrate(row) {
24
+ if (row.auth_type === "mcp_oauth") {
25
+ return {
26
+ type: "vault_credential",
27
+ id: row.id,
28
+ vault_id: row.vault_id,
29
+ display_name: row.display_name,
30
+ auth: {
31
+ type: "mcp_oauth",
32
+ mcp_server_url: row.mcp_server_url,
33
+ expires_at: row.expires_at
34
+ },
35
+ created_at: toIso(row.created_at),
36
+ updated_at: toIso(row.updated_at),
37
+ archived_at: null
38
+ };
39
+ }
24
40
  return {
25
41
  type: "vault_credential",
26
42
  id: row.id,
27
43
  vault_id: row.vault_id,
28
44
  display_name: row.display_name,
29
45
  auth: {
30
- type: row.auth_type,
46
+ type: "static_bearer",
31
47
  mcp_server_url: row.mcp_server_url
32
48
  },
33
49
  created_at: toIso(row.created_at),
@@ -37,13 +53,14 @@ function hydrate(row) {
37
53
  }
38
54
  function createCredential(input) {
39
55
  const db = getDb();
40
- const id = newId("vcrd");
56
+ const id = newId("cred");
41
57
  const now = nowMs();
42
58
  const encrypted = encryptValue(input.token);
59
+ const refreshEncrypted = input.refresh_config ? encryptValue(JSON.stringify(input.refresh_config)) : null;
43
60
  db.prepare(
44
- `INSERT INTO vault_credentials (id, vault_id, display_name, auth_type, auth_token_encrypted, mcp_server_url, created_at, updated_at)
45
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)`
46
- ).run(id, input.vault_id, input.display_name, input.auth_type, encrypted, input.mcp_server_url ?? null, now, now);
61
+ `INSERT INTO vault_credentials (id, vault_id, display_name, auth_type, auth_token_encrypted, mcp_server_url, expires_at, refresh_config_encrypted, created_at, updated_at)
62
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
63
+ ).run(id, input.vault_id, input.display_name, input.auth_type, encrypted, input.mcp_server_url ?? null, input.expires_at ?? null, refreshEncrypted, now, now);
47
64
  return getCredential(id);
48
65
  }
49
66
  function getCredential(id) {
@@ -93,6 +110,14 @@ function updateCredential(id, input) {
93
110
  parts.push("mcp_server_url = ?");
94
111
  args.push(input.mcp_server_url);
95
112
  }
113
+ if (input.expires_at !== void 0) {
114
+ parts.push("expires_at = ?");
115
+ args.push(input.expires_at);
116
+ }
117
+ if (input.refresh_config !== void 0) {
118
+ parts.push("refresh_config_encrypted = ?");
119
+ args.push(input.refresh_config ? encryptValue(JSON.stringify(input.refresh_config)) : null);
120
+ }
96
121
  db.prepare(`UPDATE vault_credentials SET ${parts.join(", ")} WHERE id = ?`).run(...args, id);
97
122
  return getCredential(id);
98
123
  }
@@ -5,10 +5,10 @@ import {
5
5
  import {
6
6
  getDrizzle,
7
7
  init_drizzle
8
- } from "./chunk-SXE7H3VK.js";
8
+ } from "./chunk-R5T4LJSK.js";
9
9
  import {
10
10
  schema_exports
11
- } from "./chunk-LHHBOQUR.js";
11
+ } from "./chunk-ZMJ4EP4C.js";
12
12
  import {
13
13
  init_clock,
14
14
  nowMs,
@@ -47,7 +47,7 @@ function sha256(content) {
47
47
  }
48
48
  function createMemoryStore(input) {
49
49
  const db = getDrizzle();
50
- const id = newId("ms");
50
+ const id = newId("memstore");
51
51
  const now = nowMs();
52
52
  db.insert(schema_exports.memoryStores).values({
53
53
  id,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readSetting
3
- } from "./chunk-EF5QCTEQ.js";
3
+ } from "./chunk-6YZ5WTLB.js";
4
4
 
5
5
  // src/lib/skills-cache.ts
6
6
  var DEFAULT_FEED_URL = "https://www.agentstep.com/v1/skills/feed";