@agentstep/agent-sdk 0.5.3 → 0.5.5

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 (183) 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 +13 -13
  6. package/dist/backends/factory/auth.js +6 -6
  7. package/dist/backends/factory/index.js +10 -10
  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 +9 -9
  12. package/dist/backends/pi/auth.js +6 -6
  13. package/dist/backends/pi/index.js +7 -7
  14. package/dist/backends/registry.js +26 -26
  15. package/dist/{chunk-VY6IWBSK.js → chunk-2GIAAUSW.js} +20 -3
  16. package/dist/{chunk-TF36SWHG.js → chunk-2LTNC5C7.js} +2 -2
  17. package/dist/{chunk-YIY47OVD.js → chunk-2RIOHWZW.js} +6 -6
  18. package/dist/{chunk-AESA3ARX.js → chunk-3ST3YLED.js} +3 -3
  19. package/dist/{chunk-C52BVTYC.js → chunk-5435RAMR.js} +4 -4
  20. package/dist/{chunk-TSR33JMZ.js → chunk-5TOLDBBJ.js} +5 -5
  21. package/dist/{chunk-65XQ72BF.js → chunk-5WY3LSCS.js} +1 -1
  22. package/dist/{chunk-Q2JYAAJO.js → chunk-64AWIKIO.js} +10 -10
  23. package/dist/{chunk-UQZFFG7U.js → chunk-64M4Z6HW.js} +1 -1
  24. package/dist/{chunk-P4NU74SP.js → chunk-6ZODIFRZ.js} +38 -0
  25. package/dist/{chunk-MV42BTU3.js → chunk-7OM5LP3K.js} +1 -1
  26. package/dist/{chunk-7IYL2O7H.js → chunk-A7DBW4MD.js} +3 -3
  27. package/dist/{chunk-Y7NMJ662.js → chunk-ADSZ2OCX.js} +2 -2
  28. package/dist/{chunk-Z6OPLBPQ.js → chunk-AJOG6UYH.js} +1 -1
  29. package/dist/{chunk-NJ6KNTZR.js → chunk-B2VM6IRJ.js} +15 -15
  30. package/dist/{chunk-IAKR572X.js → chunk-B374MDPO.js} +1 -1
  31. package/dist/{chunk-2YPJLPTR.js → chunk-BZYAXHRB.js} +6 -6
  32. package/dist/{chunk-X4ARJS6I.js → chunk-C3PD6T4A.js} +4 -4
  33. package/dist/{chunk-PGJSOKPH.js → chunk-C4GMG6IB.js} +3 -3
  34. package/dist/{chunk-EHMKMOXH.js → chunk-C4YHYPOW.js} +5 -5
  35. package/dist/{chunk-6ZM7XNH3.js → chunk-CZH5FQSF.js} +1 -1
  36. package/dist/{chunk-C7BU4RX6.js → chunk-D5E5XJAU.js} +3 -3
  37. package/dist/{chunk-TE6KCRPP.js → chunk-DAKCDGWV.js} +1 -1
  38. package/dist/{chunk-Y4MI27HU.js → chunk-DL7IPOZF.js} +1 -1
  39. package/dist/{chunk-YL6IQUJC.js → chunk-DMROEZYE.js} +4 -4
  40. package/dist/{chunk-XXGVNVPI.js → chunk-DPR6K7Y4.js} +24 -6
  41. package/dist/{chunk-G4DTLYOD.js → chunk-DQW2QEK5.js} +1 -1
  42. package/dist/{chunk-7EDLLXFQ.js → chunk-DXRTOMZP.js} +13 -3
  43. package/dist/{chunk-23CUQSLR.js → chunk-DYRGMJTC.js} +2 -2
  44. package/dist/{chunk-GBLR2CPP.js → chunk-FSQ6I3C7.js} +37 -2
  45. package/dist/{chunk-UYP3VGYB.js → chunk-GOFQ63N3.js} +8 -8
  46. package/dist/{chunk-BCBRLP33.js → chunk-H355W724.js} +2 -2
  47. package/dist/{chunk-DZGFZMUE.js → chunk-HRBNDS5T.js} +1 -1
  48. package/dist/{chunk-ANS2TQYT.js → chunk-HWVBBUL2.js} +1 -1
  49. package/dist/{chunk-ACPP4KN7.js → chunk-IN3EHQ4Z.js} +4 -4
  50. package/dist/{chunk-6TJBZXD4.js → chunk-IUMA4QRX.js} +1 -1
  51. package/dist/{chunk-DTQ7J35Q.js → chunk-IYVGGJMH.js} +2 -2
  52. package/dist/{chunk-T6F4TFHD.js → chunk-J2SP5UND.js} +4 -4
  53. package/dist/{chunk-C5GVKLNS.js → chunk-J6WSFODH.js} +2 -2
  54. package/dist/{chunk-335F7KSU.js → chunk-JCOR7AIY.js} +2 -2
  55. package/dist/{chunk-ZGI6YG2G.js → chunk-JP4HHXHY.js} +85 -6
  56. package/dist/{chunk-VYY4RHIF.js → chunk-JPONGXV5.js} +2 -2
  57. package/dist/{chunk-FILGQF2G.js → chunk-JWVVF66Q.js} +2 -2
  58. package/dist/{chunk-7JAUY5SG.js → chunk-K2UJFAGD.js} +3 -3
  59. package/dist/{chunk-AIAF5ZZA.js → chunk-KB7MV6VS.js} +1 -1
  60. package/dist/chunk-KYLDNVV7.js +176 -0
  61. package/dist/{chunk-7XIAKW75.js → chunk-LII6JJQT.js} +1 -1
  62. package/dist/{chunk-62CZZBEE.js → chunk-MFSO7IGE.js} +4 -4
  63. package/dist/{chunk-5NCA624D.js → chunk-NOJ3ERIN.js} +50 -17
  64. package/dist/{chunk-7JWW4ZQI.js → chunk-OACMO7AL.js} +15 -15
  65. package/dist/{chunk-UGH5JDXX.js → chunk-P2NWS65Y.js} +2 -2
  66. package/dist/{chunk-BCBDHUFY.js → chunk-P4B4V4SV.js} +2 -2
  67. package/dist/{chunk-75XURMV5.js → chunk-P5DSHKKP.js} +9 -9
  68. package/dist/{chunk-WFRHLTKI.js → chunk-P5X2DSGQ.js} +3 -3
  69. package/dist/{chunk-M3752GFZ.js → chunk-P7TV5XP4.js} +3 -3
  70. package/dist/{chunk-A2W3USEZ.js → chunk-PEEKWYYE.js} +1 -1
  71. package/dist/{chunk-WXMEJVLS.js → chunk-PKWN44LF.js} +4 -4
  72. package/dist/{chunk-VMLXV2H6.js → chunk-PUH4LEJZ.js} +1 -1
  73. package/dist/{chunk-TWH4UH6G.js → chunk-PVVJCRII.js} +1 -1
  74. package/dist/{chunk-E2OYBE5D.js → chunk-R6M4V3IG.js} +2 -2
  75. package/dist/{chunk-NUOCXBFP.js → chunk-RA25CUV4.js} +13 -13
  76. package/dist/{chunk-6KJS42ZL.js → chunk-SMM7YOM2.js} +2 -2
  77. package/dist/{chunk-VC5DELR4.js → chunk-SZNZZB7J.js} +23 -1
  78. package/dist/{chunk-4A4F4L4H.js → chunk-TC7UW22R.js} +2 -2
  79. package/dist/{chunk-BYIU4WAQ.js → chunk-TWX2D563.js} +3 -3
  80. package/dist/{chunk-UALRSWXY.js → chunk-TXOB3PZH.js} +13 -13
  81. package/dist/{chunk-LHFEBLOE.js → chunk-UFAYAE3A.js} +7 -7
  82. package/dist/{chunk-WRLCJNQF.js → chunk-UK3ZFCQP.js} +1 -1
  83. package/dist/{chunk-ZG3PHDZJ.js → chunk-UKCIGI3T.js} +3 -3
  84. package/dist/{chunk-7APAOJIZ.js → chunk-UKCRJFFC.js} +3 -3
  85. package/dist/{chunk-FSVDF57K.js → chunk-UKIOGRMN.js} +5 -5
  86. package/dist/chunk-V5EEO7MU.js +129 -0
  87. package/dist/{chunk-KQTTKYZY.js → chunk-W3YXUIPS.js} +1 -1
  88. package/dist/{chunk-O2X4XBU7.js → chunk-W4FZ4HYD.js} +1 -1
  89. package/dist/{chunk-E35XHOFL.js → chunk-WOL4EVCE.js} +7 -7
  90. package/dist/{chunk-NRX5WHHN.js → chunk-X65C4UZH.js} +4 -4
  91. package/dist/{chunk-MTLM36QD.js → chunk-X7Y4TV6O.js} +2 -2
  92. package/dist/{chunk-BLTCDZ3O.js → chunk-XNEUJKY4.js} +4 -4
  93. package/dist/{chunk-6KQFP32G.js → chunk-YICDEIRE.js} +2 -2
  94. package/dist/{chunk-UAEVL47I.js → chunk-YSZLX4WE.js} +1 -1
  95. package/dist/{chunk-EQ32JFKT.js → chunk-YTZQ5J6L.js} +13 -3
  96. package/dist/{chunk-A7AXD5AM.js → chunk-ZFMAACZT.js} +2 -2
  97. package/dist/{chunk-6DPJVMEC.js → chunk-ZIZU3B65.js} +1 -1
  98. package/dist/{chunk-2FKWZKV2.js → chunk-ZXJTXNUX.js} +4 -4
  99. package/dist/config/index.js +5 -5
  100. package/dist/containers/client.js +6 -6
  101. package/dist/containers/exec.js +6 -6
  102. package/dist/containers/lifecycle.js +38 -38
  103. package/dist/containers/setup.js +8 -8
  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 +5 -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 +11 -7
  115. package/dist/db/migrations.js +1 -1
  116. package/dist/db/proxy.js +5 -5
  117. package/dist/db/schema.js +5 -1
  118. package/dist/db/session-resources.js +9 -7
  119. package/dist/db/sessions.js +8 -8
  120. package/dist/db/skills.js +27 -0
  121. package/dist/db/sync.js +5 -5
  122. package/dist/db/tenants.js +3 -3
  123. package/dist/db/threads.js +7 -7
  124. package/dist/db/traces.js +5 -5
  125. package/dist/db/upstream_keys.js +3 -3
  126. package/dist/db/vaults.js +6 -6
  127. package/dist/dreaming/review.js +11 -11
  128. package/dist/handlers/agents.js +54 -54
  129. package/dist/handlers/api_keys.js +55 -55
  130. package/dist/handlers/audit.js +55 -55
  131. package/dist/handlers/batch.js +55 -55
  132. package/dist/handlers/credentials.js +57 -55
  133. package/dist/handlers/environments.js +55 -55
  134. package/dist/handlers/events.js +58 -58
  135. package/dist/handlers/files.js +55 -55
  136. package/dist/handlers/index.js +129 -106
  137. package/dist/handlers/license.js +54 -54
  138. package/dist/handlers/memory.js +65 -57
  139. package/dist/handlers/metrics.js +54 -54
  140. package/dist/handlers/models.js +55 -55
  141. package/dist/handlers/providers.js +54 -54
  142. package/dist/handlers/resources.js +58 -56
  143. package/dist/handlers/sessions.js +58 -58
  144. package/dist/handlers/settings.js +54 -54
  145. package/dist/handlers/skills-write.js +68 -56
  146. package/dist/handlers/skills.js +55 -55
  147. package/dist/handlers/stream.js +54 -54
  148. package/dist/handlers/tenants.js +55 -55
  149. package/dist/handlers/threads.js +55 -55
  150. package/dist/handlers/traces.js +55 -55
  151. package/dist/handlers/upstream_keys.js +57 -57
  152. package/dist/handlers/vaults.js +54 -54
  153. package/dist/handlers/whoami.js +54 -54
  154. package/dist/http.js +53 -53
  155. package/dist/index.js +62 -62
  156. package/dist/init.js +50 -50
  157. package/dist/lib/model-registry.js +6 -6
  158. package/dist/lib/skills-cache.js +6 -6
  159. package/dist/observability/otlp.js +12 -12
  160. package/dist/observability/redactor.js +8 -8
  161. package/dist/providers/fly.js +5 -5
  162. package/dist/providers/modal.js +5 -5
  163. package/dist/providers/registry.js +1 -1
  164. package/dist/providers/resolve-secrets.js +7 -7
  165. package/dist/providers/sprites.js +7 -7
  166. package/dist/providers/upstream-keys.js +12 -12
  167. package/dist/providers/vercel.js +6 -6
  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 +43 -43
  172. package/dist/sessions/grader.js +5 -5
  173. package/dist/sessions/secrets.js +8 -8
  174. package/dist/sessions/sweeper.js +39 -39
  175. package/dist/sessions/threads.js +45 -45
  176. package/dist/shutdown.js +40 -40
  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-RJDYM2HR.js +0 -31
  182. package/dist/{chunk-LT5PRO54.js → chunk-ZJERBDQE.js} +0 -0
  183. package/dist/{dist-S64ZABZX.js → dist-EY25RQ2S.js} +3 -3
@@ -4,11 +4,11 @@ import {
4
4
  getSources,
5
5
  getStats,
6
6
  searchSkills
7
- } from "./chunk-TE6KCRPP.js";
7
+ } from "./chunk-DAKCDGWV.js";
8
8
  import {
9
9
  jsonOk,
10
10
  routeWrap
11
- } from "./chunk-DTQ7J35Q.js";
11
+ } from "./chunk-IYVGGJMH.js";
12
12
 
13
13
  // src/handlers/skills.ts
14
14
  async function handleGetSkillsCatalog(request) {
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  buildGeminiAuthEnv,
6
6
  validateGeminiRuntime
7
- } from "./chunk-Z6OPLBPQ.js";
7
+ } from "./chunk-AJOG6UYH.js";
8
8
  import {
9
9
  prepareGeminiOnSandbox
10
10
  } from "./chunk-XG4UIGDH.js";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-XBHDQK4Z.js";
7
7
  import {
8
8
  getConfig
9
- } from "./chunk-UGH5JDXX.js";
9
+ } from "./chunk-P2NWS65Y.js";
10
10
 
11
11
  // src/backends/claude/args.ts
12
12
  function buildClaudeArgs(input) {
@@ -8,13 +8,13 @@ import {
8
8
  getMemoryByPath,
9
9
  getMemoryStore,
10
10
  listMemories
11
- } from "./chunk-GBLR2CPP.js";
11
+ } from "./chunk-FSQ6I3C7.js";
12
12
  import {
13
13
  listSessions
14
- } from "./chunk-TSR33JMZ.js";
14
+ } from "./chunk-5TOLDBBJ.js";
15
15
  import {
16
16
  listEvents
17
- } from "./chunk-7JAUY5SG.js";
17
+ } from "./chunk-K2UJFAGD.js";
18
18
  import {
19
19
  init_clock,
20
20
  nowMs
@@ -120,7 +120,7 @@ Analyze the sessions above and propose memory changes using the update_memories
120
120
  "anthropic-version": "2023-06-01"
121
121
  },
122
122
  body: JSON.stringify({
123
- model: "claude-sonnet-4-20250514",
123
+ model: opts.model || "claude-sonnet-4-6",
124
124
  max_tokens: 4096,
125
125
  system: DREAMING_SYSTEM_PROMPT,
126
126
  tools: [UPDATE_MEMORIES_TOOL],
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-UGH5JDXX.js";
3
+ } from "./chunk-P2NWS65Y.js";
4
4
 
5
5
  // src/backends/codex/auth.ts
6
6
  function buildCodexAuthEnv() {
@@ -4,13 +4,13 @@ import {
4
4
  } from "./chunk-D2XITRN6.js";
5
5
  import {
6
6
  authenticateAndIntercept
7
- } from "./chunk-WFRHLTKI.js";
7
+ } from "./chunk-P5X2DSGQ.js";
8
8
  import {
9
9
  checkAndBump
10
10
  } from "./chunk-HVUWXUUI.js";
11
11
  import {
12
12
  ensureInitialized
13
- } from "./chunk-NJ6KNTZR.js";
13
+ } from "./chunk-B2VM6IRJ.js";
14
14
  import {
15
15
  captureException
16
16
  } from "./chunk-3MQ2FWXS.js";
@@ -7,7 +7,7 @@ import {
7
7
  jsonOk,
8
8
  paginatedOk,
9
9
  routeWrap
10
- } from "./chunk-DTQ7J35Q.js";
10
+ } from "./chunk-IYVGGJMH.js";
11
11
  import {
12
12
  archiveVault,
13
13
  createVault,
@@ -19,14 +19,14 @@ import {
19
19
  listVaults,
20
20
  setEntry,
21
21
  updateVault
22
- } from "./chunk-BYIU4WAQ.js";
22
+ } from "./chunk-TWX2D563.js";
23
23
  import {
24
24
  getAgent
25
- } from "./chunk-M3752GFZ.js";
25
+ } from "./chunk-P7TV5XP4.js";
26
26
  import {
27
27
  getDb,
28
28
  init_client
29
- } from "./chunk-KQTTKYZY.js";
29
+ } from "./chunk-W3YXUIPS.js";
30
30
  import {
31
31
  badRequest,
32
32
  conflict,
@@ -10,10 +10,10 @@ import {
10
10
  import {
11
11
  getDrizzle,
12
12
  init_drizzle
13
- } from "./chunk-FILGQF2G.js";
13
+ } from "./chunk-JWVVF66Q.js";
14
14
  import {
15
15
  schema_exports
16
- } from "./chunk-VC5DELR4.js";
16
+ } from "./chunk-SZNZZB7J.js";
17
17
 
18
18
  // src/db/files.ts
19
19
  init_drizzle();
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  markStopping
3
- } from "./chunk-YIY47OVD.js";
3
+ } from "./chunk-2RIOHWZW.js";
4
4
  import {
5
5
  closeDb,
6
6
  init_client,
7
7
  syncDb
8
- } from "./chunk-KQTTKYZY.js";
8
+ } from "./chunk-W3YXUIPS.js";
9
9
  import {
10
10
  getRuntime
11
11
  } from "./chunk-UYTSKFGK.js";
@@ -2,6 +2,9 @@ import {
2
2
  assertResourceTenant,
3
3
  tenantFilter
4
4
  } from "./chunk-23UKWXJH.js";
5
+ import {
6
+ reviewSessions
7
+ } from "./chunk-IN3EHQ4Z.js";
5
8
  import {
6
9
  archiveMemoryStore,
7
10
  createMemoryStore,
@@ -14,21 +17,27 @@ import {
14
17
  listMemories,
15
18
  listMemoryStores,
16
19
  listMemoryVersions,
17
- updateMemory
18
- } from "./chunk-GBLR2CPP.js";
20
+ redactMemoryVersion,
21
+ updateMemory,
22
+ updateMemoryStore
23
+ } from "./chunk-FSQ6I3C7.js";
19
24
  import {
20
25
  jsonOk,
21
26
  paginatedOk,
22
27
  routeWrap
23
- } from "./chunk-DTQ7J35Q.js";
28
+ } from "./chunk-IYVGGJMH.js";
29
+ import {
30
+ getConfig
31
+ } from "./chunk-P2NWS65Y.js";
24
32
  import {
25
33
  getDb,
26
34
  init_client
27
- } from "./chunk-KQTTKYZY.js";
35
+ } from "./chunk-W3YXUIPS.js";
28
36
  import {
29
37
  badRequest,
30
38
  conflict,
31
- notFound
39
+ notFound,
40
+ tooManyRequests
32
41
  } from "./chunk-EZYKRG4W.js";
33
42
 
34
43
  // src/handlers/memory.ts
@@ -96,6 +105,22 @@ function handleDeleteMemoryStore(request, id) {
96
105
  return jsonOk({ id, type: "memory_store_deleted" });
97
106
  });
98
107
  }
108
+ var UpdateStoreSchema = z.object({
109
+ name: z.string().min(1).optional(),
110
+ description: z.string().optional(),
111
+ metadata: z.record(z.string()).optional()
112
+ });
113
+ function handleUpdateMemoryStore(request, id) {
114
+ return routeWrap(request, async ({ auth }) => {
115
+ loadStoreForCaller(auth, id);
116
+ const body = await request.json();
117
+ const parsed = UpdateStoreSchema.safeParse(body);
118
+ if (!parsed.success) throw badRequest(parsed.error.message);
119
+ const store = updateMemoryStore(id, parsed.data);
120
+ if (!store) throw notFound(`memory store not found: ${id}`);
121
+ return jsonOk(store);
122
+ });
123
+ }
99
124
  var CreateMemorySchema = z.object({
100
125
  path: z.string().min(1),
101
126
  content: z.string()
@@ -182,6 +207,17 @@ function handleGetMemoryVersion(request, storeId, versionId) {
182
207
  return jsonOk(version);
183
208
  });
184
209
  }
210
+ function handleRedactMemoryVersion(request, storeId, versionId) {
211
+ return routeWrap(request, async ({ auth }) => {
212
+ loadStoreForCaller(auth, storeId);
213
+ const version = getMemoryVersion(storeId, versionId);
214
+ if (!version) throw notFound(`memory version not found: ${versionId}`);
215
+ const redacted = redactMemoryVersion(storeId, versionId);
216
+ if (!redacted) throw badRequest(`cannot redact this version: it is the current head of a live memory`);
217
+ const updated = getMemoryVersion(storeId, versionId);
218
+ return jsonOk(updated);
219
+ });
220
+ }
185
221
  function handleArchiveMemoryStore(request, storeId) {
186
222
  return routeWrap(request, async ({ auth }) => {
187
223
  loadStoreForCaller(auth, storeId);
@@ -191,12 +227,53 @@ function handleArchiveMemoryStore(request, storeId) {
191
227
  return jsonOk(store);
192
228
  });
193
229
  }
230
+ var DreamRequestSchema = z.object({
231
+ lookback_hours: z.number().min(1).max(720).default(24),
232
+ dry_run: z.boolean().default(false),
233
+ model: z.string().optional(),
234
+ api_key: z.string().optional()
235
+ });
236
+ var dreamCooldowns = /* @__PURE__ */ new Map();
237
+ var DREAM_COOLDOWN_MS = 5 * 60 * 1e3;
238
+ function handleDreamMemoryStore(request, storeId) {
239
+ return routeWrap(request, async ({ auth }) => {
240
+ loadStoreForCaller(auth, storeId);
241
+ const body = await request.json();
242
+ const parsed = DreamRequestSchema.safeParse(body);
243
+ if (!parsed.success) throw badRequest(parsed.error.message);
244
+ const lastDreamed = dreamCooldowns.get(storeId);
245
+ if (lastDreamed !== void 0 && Date.now() - lastDreamed < DREAM_COOLDOWN_MS) {
246
+ const retryAfterSec = Math.ceil((DREAM_COOLDOWN_MS - (Date.now() - lastDreamed)) / 1e3);
247
+ throw tooManyRequests(`dream was triggered recently; retry after ${retryAfterSec}s`);
248
+ }
249
+ const apiKey = parsed.data.api_key || getConfig().anthropicApiKey;
250
+ if (!apiKey) {
251
+ throw badRequest("No Anthropic API key available. Provide api_key in the request body or set ANTHROPIC_API_KEY.");
252
+ }
253
+ const result = await reviewSessions({
254
+ storeId,
255
+ lookbackMs: parsed.data.lookback_hours * 36e5,
256
+ dryRun: parsed.data.dry_run,
257
+ apiKey,
258
+ model: parsed.data.model
259
+ });
260
+ dreamCooldowns.set(storeId, Date.now());
261
+ return jsonOk({
262
+ type: "dream_result",
263
+ memory_store_id: storeId,
264
+ session_count: result.sessionCount,
265
+ proposed_changes: result.proposedChanges,
266
+ applied: result.applied
267
+ });
268
+ });
269
+ }
194
270
 
195
271
  export {
196
272
  handleCreateMemoryStore,
197
273
  handleListMemoryStores,
198
274
  handleGetMemoryStore,
199
275
  handleDeleteMemoryStore,
276
+ handleUpdateMemoryStore,
200
277
  handleCreateMemory,
201
278
  handleListMemories,
202
279
  handleGetMemory,
@@ -204,5 +281,7 @@ export {
204
281
  handleDeleteMemory,
205
282
  handleListMemoryVersions,
206
283
  handleGetMemoryVersion,
207
- handleArchiveMemoryStore
284
+ handleRedactMemoryVersion,
285
+ handleArchiveMemoryStore,
286
+ handleDreamMemoryStore
208
287
  };
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  jsonOk,
3
3
  routeWrap
4
- } from "./chunk-DTQ7J35Q.js";
4
+ } from "./chunk-IYVGGJMH.js";
5
5
  import {
6
6
  readSetting,
7
7
  writeSetting
8
- } from "./chunk-UGH5JDXX.js";
8
+ } from "./chunk-P2NWS65Y.js";
9
9
  import {
10
10
  badRequest
11
11
  } from "./chunk-EZYKRG4W.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  init_schema,
3
3
  schema_exports
4
- } from "./chunk-VC5DELR4.js";
4
+ } from "./chunk-SZNZZB7J.js";
5
5
  import {
6
6
  getDb,
7
7
  init_client
8
- } from "./chunk-KQTTKYZY.js";
8
+ } from "./chunk-W3YXUIPS.js";
9
9
  import {
10
10
  __esm
11
11
  } from "./chunk-2ESYSVXG.js";
@@ -10,14 +10,14 @@ import {
10
10
  import {
11
11
  getDrizzle,
12
12
  init_drizzle
13
- } from "./chunk-FILGQF2G.js";
13
+ } from "./chunk-JWVVF66Q.js";
14
14
  import {
15
15
  schema_exports
16
- } from "./chunk-VC5DELR4.js";
16
+ } from "./chunk-SZNZZB7J.js";
17
17
  import {
18
18
  getDb,
19
19
  init_client
20
- } from "./chunk-KQTTKYZY.js";
20
+ } from "./chunk-W3YXUIPS.js";
21
21
 
22
22
  // src/db/events.ts
23
23
  init_client();
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-UGH5JDXX.js";
3
+ } from "./chunk-P2NWS65Y.js";
4
4
  import {
5
5
  serverBusy
6
6
  } from "./chunk-EZYKRG4W.js";
@@ -0,0 +1,176 @@
1
+ import {
2
+ init_ids,
3
+ newId
4
+ } from "./chunk-F4WUVOLE.js";
5
+ import {
6
+ init_clock,
7
+ nowMs,
8
+ toIso
9
+ } from "./chunk-HFDLUBWN.js";
10
+ import {
11
+ getDrizzle,
12
+ init_drizzle
13
+ } from "./chunk-JWVVF66Q.js";
14
+ import {
15
+ schema_exports
16
+ } from "./chunk-SZNZZB7J.js";
17
+
18
+ // src/db/skills.ts
19
+ init_drizzle();
20
+ init_ids();
21
+ init_clock();
22
+ import { eq, and, isNull, lt, desc } from "drizzle-orm";
23
+ function hydrateSkill(row) {
24
+ return {
25
+ type: "skill",
26
+ id: row.id,
27
+ name: row.name,
28
+ description: row.description ?? "",
29
+ current_version: row.current_version ?? "1.0.0",
30
+ created_at: toIso(row.created_at),
31
+ updated_at: toIso(row.updated_at),
32
+ archived_at: row.archived_at ? toIso(row.archived_at) : null
33
+ };
34
+ }
35
+ function hydrateSkillVersion(row) {
36
+ return {
37
+ type: "skill_version",
38
+ id: row.id,
39
+ skill_id: row.skill_id,
40
+ version: row.version,
41
+ content: row.content,
42
+ created_at: toIso(row.created_at)
43
+ };
44
+ }
45
+ function createSkill(input) {
46
+ const db = getDrizzle();
47
+ const id = newId("skill");
48
+ const versionId = newId("sklv");
49
+ const now = nowMs();
50
+ const version = "1.0.0";
51
+ db.transaction((tx) => {
52
+ tx.insert(schema_exports.skills).values({
53
+ id,
54
+ name: input.name,
55
+ description: input.description ?? null,
56
+ current_version: version,
57
+ tenant_id: input.tenantId ?? null,
58
+ created_at: now,
59
+ updated_at: now
60
+ }).run();
61
+ tx.insert(schema_exports.skillVersions).values({
62
+ id: versionId,
63
+ skill_id: id,
64
+ version,
65
+ content: input.content,
66
+ created_at: now
67
+ }).run();
68
+ });
69
+ return getSkill(id);
70
+ }
71
+ function getSkill(id) {
72
+ const db = getDrizzle();
73
+ const row = db.select().from(schema_exports.skills).where(eq(schema_exports.skills.id, id)).get();
74
+ if (!row) return void 0;
75
+ return hydrateSkill(row);
76
+ }
77
+ function listSkills(opts) {
78
+ const db = getDrizzle();
79
+ const limit = Math.min(Math.max(opts?.limit ?? 20, 1), 100);
80
+ const includeArchived = opts?.includeArchived ?? false;
81
+ const conditions = [];
82
+ if (!includeArchived) conditions.push(isNull(schema_exports.skills.archived_at));
83
+ if (opts?.cursor) {
84
+ conditions.push(lt(schema_exports.skills.id, opts.cursor));
85
+ }
86
+ if (opts?.tenantId != null) {
87
+ conditions.push(eq(schema_exports.skills.tenant_id, opts.tenantId));
88
+ }
89
+ const where = conditions.length ? and(...conditions) : void 0;
90
+ const rows = where ? db.select().from(schema_exports.skills).where(where).orderBy(desc(schema_exports.skills.id)).limit(limit).all() : db.select().from(schema_exports.skills).orderBy(desc(schema_exports.skills.id)).limit(limit).all();
91
+ return rows.map((r) => hydrateSkill(r));
92
+ }
93
+ function deleteSkill(id) {
94
+ const db = getDrizzle();
95
+ let deleted = false;
96
+ db.transaction((tx) => {
97
+ tx.delete(schema_exports.skillVersions).where(eq(schema_exports.skillVersions.skill_id, id)).run();
98
+ const res = tx.delete(schema_exports.skills).where(eq(schema_exports.skills.id, id)).run();
99
+ deleted = res.changes > 0;
100
+ });
101
+ return deleted;
102
+ }
103
+ function autoIncrement(current) {
104
+ const parts = current.split(".");
105
+ if (parts.length !== 3) return `${current}.1`;
106
+ const patch = parseInt(parts[2], 10);
107
+ return `${parts[0]}.${parts[1]}.${isNaN(patch) ? 1 : patch + 1}`;
108
+ }
109
+ function createSkillVersion(skillId, input) {
110
+ const db = getDrizzle();
111
+ const skill = db.select().from(schema_exports.skills).where(eq(schema_exports.skills.id, skillId)).get();
112
+ if (!skill) return void 0;
113
+ const version = input.version ?? autoIncrement(skill.current_version ?? "1.0.0");
114
+ const id = newId("sklv");
115
+ const now = nowMs();
116
+ db.transaction((tx) => {
117
+ tx.insert(schema_exports.skillVersions).values({
118
+ id,
119
+ skill_id: skillId,
120
+ version,
121
+ content: input.content,
122
+ created_at: now
123
+ }).run();
124
+ tx.update(schema_exports.skills).set({ current_version: version, updated_at: now }).where(eq(schema_exports.skills.id, skillId)).run();
125
+ });
126
+ return getSkillVersion(skillId, version);
127
+ }
128
+ function getSkillVersion(skillId, version) {
129
+ const db = getDrizzle();
130
+ const row = db.select().from(schema_exports.skillVersions).where(
131
+ and(
132
+ eq(schema_exports.skillVersions.skill_id, skillId),
133
+ eq(schema_exports.skillVersions.version, version)
134
+ )
135
+ ).get();
136
+ if (!row) return void 0;
137
+ return hydrateSkillVersion(row);
138
+ }
139
+ function listSkillVersions(skillId, opts) {
140
+ const db = getDrizzle();
141
+ const limit = Math.min(Math.max(opts?.limit ?? 20, 1), 100);
142
+ const conditions = [eq(schema_exports.skillVersions.skill_id, skillId)];
143
+ if (opts?.cursor) {
144
+ conditions.push(lt(schema_exports.skillVersions.id, opts.cursor));
145
+ }
146
+ const rows = db.select().from(schema_exports.skillVersions).where(and(...conditions)).orderBy(desc(schema_exports.skillVersions.created_at)).limit(limit).all();
147
+ return rows.map(
148
+ (r) => hydrateSkillVersion(r)
149
+ );
150
+ }
151
+ function deleteSkillVersion(skillId, version) {
152
+ const db = getDrizzle();
153
+ const skill = db.select().from(schema_exports.skills).where(eq(schema_exports.skills.id, skillId)).get();
154
+ if (!skill) return { ok: false, reason: "skill not found" };
155
+ if (skill.current_version === version) {
156
+ return { ok: false, reason: "cannot delete the current version" };
157
+ }
158
+ const res = db.delete(schema_exports.skillVersions).where(
159
+ and(
160
+ eq(schema_exports.skillVersions.skill_id, skillId),
161
+ eq(schema_exports.skillVersions.version, version)
162
+ )
163
+ ).run();
164
+ return { ok: res.changes > 0 };
165
+ }
166
+
167
+ export {
168
+ createSkill,
169
+ getSkill,
170
+ listSkills,
171
+ deleteSkill,
172
+ createSkillVersion,
173
+ getSkillVersion,
174
+ listSkillVersions,
175
+ deleteSkillVersion
176
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfig
3
- } from "./chunk-UGH5JDXX.js";
3
+ } from "./chunk-P2NWS65Y.js";
4
4
 
5
5
  // src/backends/factory/auth.ts
6
6
  function buildFactoryAuthEnv() {
@@ -2,19 +2,19 @@ import {
2
2
  getSyncRow,
3
3
  getSyncedRemoteId,
4
4
  upsertSync
5
- } from "./chunk-AESA3ARX.js";
5
+ } from "./chunk-3ST3YLED.js";
6
6
  import {
7
7
  injectMcpAuthHeaders
8
8
  } from "./chunk-DBFPJSOY.js";
9
9
  import {
10
10
  listEntries
11
- } from "./chunk-BYIU4WAQ.js";
11
+ } from "./chunk-TWX2D563.js";
12
12
  import {
13
13
  getEnvironment
14
- } from "./chunk-7APAOJIZ.js";
14
+ } from "./chunk-UKCRJFFC.js";
15
15
  import {
16
16
  getAgent
17
- } from "./chunk-M3752GFZ.js";
17
+ } from "./chunk-P7TV5XP4.js";
18
18
 
19
19
  // src/sync/anthropic.ts
20
20
  import { createHash } from "crypto";