@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.
- package/dist/auth/middleware.js +8 -8
- package/dist/backends/claude/args.js +6 -6
- package/dist/backends/claude/index.js +7 -7
- package/dist/backends/codex/auth.js +6 -6
- package/dist/backends/codex/index.js +13 -13
- package/dist/backends/factory/auth.js +6 -6
- package/dist/backends/factory/index.js +10 -10
- package/dist/backends/gemini/auth.js +6 -6
- package/dist/backends/gemini/index.js +7 -7
- package/dist/backends/opencode/auth.js +6 -6
- package/dist/backends/opencode/index.js +9 -9
- package/dist/backends/pi/auth.js +6 -6
- package/dist/backends/pi/index.js +7 -7
- package/dist/backends/registry.js +26 -26
- package/dist/{chunk-VY6IWBSK.js → chunk-2GIAAUSW.js} +20 -3
- package/dist/{chunk-TF36SWHG.js → chunk-2LTNC5C7.js} +2 -2
- package/dist/{chunk-YIY47OVD.js → chunk-2RIOHWZW.js} +6 -6
- package/dist/{chunk-AESA3ARX.js → chunk-3ST3YLED.js} +3 -3
- package/dist/{chunk-C52BVTYC.js → chunk-5435RAMR.js} +4 -4
- package/dist/{chunk-TSR33JMZ.js → chunk-5TOLDBBJ.js} +5 -5
- package/dist/{chunk-65XQ72BF.js → chunk-5WY3LSCS.js} +1 -1
- package/dist/{chunk-Q2JYAAJO.js → chunk-64AWIKIO.js} +10 -10
- package/dist/{chunk-UQZFFG7U.js → chunk-64M4Z6HW.js} +1 -1
- package/dist/{chunk-P4NU74SP.js → chunk-6ZODIFRZ.js} +38 -0
- package/dist/{chunk-MV42BTU3.js → chunk-7OM5LP3K.js} +1 -1
- package/dist/{chunk-7IYL2O7H.js → chunk-A7DBW4MD.js} +3 -3
- package/dist/{chunk-Y7NMJ662.js → chunk-ADSZ2OCX.js} +2 -2
- package/dist/{chunk-Z6OPLBPQ.js → chunk-AJOG6UYH.js} +1 -1
- package/dist/{chunk-NJ6KNTZR.js → chunk-B2VM6IRJ.js} +15 -15
- package/dist/{chunk-IAKR572X.js → chunk-B374MDPO.js} +1 -1
- package/dist/{chunk-2YPJLPTR.js → chunk-BZYAXHRB.js} +6 -6
- package/dist/{chunk-X4ARJS6I.js → chunk-C3PD6T4A.js} +4 -4
- package/dist/{chunk-PGJSOKPH.js → chunk-C4GMG6IB.js} +3 -3
- package/dist/{chunk-EHMKMOXH.js → chunk-C4YHYPOW.js} +5 -5
- package/dist/{chunk-6ZM7XNH3.js → chunk-CZH5FQSF.js} +1 -1
- package/dist/{chunk-C7BU4RX6.js → chunk-D5E5XJAU.js} +3 -3
- package/dist/{chunk-TE6KCRPP.js → chunk-DAKCDGWV.js} +1 -1
- package/dist/{chunk-Y4MI27HU.js → chunk-DL7IPOZF.js} +1 -1
- package/dist/{chunk-YL6IQUJC.js → chunk-DMROEZYE.js} +4 -4
- package/dist/{chunk-XXGVNVPI.js → chunk-DPR6K7Y4.js} +24 -6
- package/dist/{chunk-G4DTLYOD.js → chunk-DQW2QEK5.js} +1 -1
- package/dist/{chunk-7EDLLXFQ.js → chunk-DXRTOMZP.js} +13 -3
- package/dist/{chunk-23CUQSLR.js → chunk-DYRGMJTC.js} +2 -2
- package/dist/{chunk-GBLR2CPP.js → chunk-FSQ6I3C7.js} +37 -2
- package/dist/{chunk-UYP3VGYB.js → chunk-GOFQ63N3.js} +8 -8
- package/dist/{chunk-BCBRLP33.js → chunk-H355W724.js} +2 -2
- package/dist/{chunk-DZGFZMUE.js → chunk-HRBNDS5T.js} +1 -1
- package/dist/{chunk-ANS2TQYT.js → chunk-HWVBBUL2.js} +1 -1
- package/dist/{chunk-ACPP4KN7.js → chunk-IN3EHQ4Z.js} +4 -4
- package/dist/{chunk-6TJBZXD4.js → chunk-IUMA4QRX.js} +1 -1
- package/dist/{chunk-DTQ7J35Q.js → chunk-IYVGGJMH.js} +2 -2
- package/dist/{chunk-T6F4TFHD.js → chunk-J2SP5UND.js} +4 -4
- package/dist/{chunk-C5GVKLNS.js → chunk-J6WSFODH.js} +2 -2
- package/dist/{chunk-335F7KSU.js → chunk-JCOR7AIY.js} +2 -2
- package/dist/{chunk-ZGI6YG2G.js → chunk-JP4HHXHY.js} +85 -6
- package/dist/{chunk-VYY4RHIF.js → chunk-JPONGXV5.js} +2 -2
- package/dist/{chunk-FILGQF2G.js → chunk-JWVVF66Q.js} +2 -2
- package/dist/{chunk-7JAUY5SG.js → chunk-K2UJFAGD.js} +3 -3
- package/dist/{chunk-AIAF5ZZA.js → chunk-KB7MV6VS.js} +1 -1
- package/dist/chunk-KYLDNVV7.js +176 -0
- package/dist/{chunk-7XIAKW75.js → chunk-LII6JJQT.js} +1 -1
- package/dist/{chunk-62CZZBEE.js → chunk-MFSO7IGE.js} +4 -4
- package/dist/{chunk-5NCA624D.js → chunk-NOJ3ERIN.js} +50 -17
- package/dist/{chunk-7JWW4ZQI.js → chunk-OACMO7AL.js} +15 -15
- package/dist/{chunk-UGH5JDXX.js → chunk-P2NWS65Y.js} +2 -2
- package/dist/{chunk-BCBDHUFY.js → chunk-P4B4V4SV.js} +2 -2
- package/dist/{chunk-75XURMV5.js → chunk-P5DSHKKP.js} +9 -9
- package/dist/{chunk-WFRHLTKI.js → chunk-P5X2DSGQ.js} +3 -3
- package/dist/{chunk-M3752GFZ.js → chunk-P7TV5XP4.js} +3 -3
- package/dist/{chunk-A2W3USEZ.js → chunk-PEEKWYYE.js} +1 -1
- package/dist/{chunk-WXMEJVLS.js → chunk-PKWN44LF.js} +4 -4
- package/dist/{chunk-VMLXV2H6.js → chunk-PUH4LEJZ.js} +1 -1
- package/dist/{chunk-TWH4UH6G.js → chunk-PVVJCRII.js} +1 -1
- package/dist/{chunk-E2OYBE5D.js → chunk-R6M4V3IG.js} +2 -2
- package/dist/{chunk-NUOCXBFP.js → chunk-RA25CUV4.js} +13 -13
- package/dist/{chunk-6KJS42ZL.js → chunk-SMM7YOM2.js} +2 -2
- package/dist/{chunk-VC5DELR4.js → chunk-SZNZZB7J.js} +23 -1
- package/dist/{chunk-4A4F4L4H.js → chunk-TC7UW22R.js} +2 -2
- package/dist/{chunk-BYIU4WAQ.js → chunk-TWX2D563.js} +3 -3
- package/dist/{chunk-UALRSWXY.js → chunk-TXOB3PZH.js} +13 -13
- package/dist/{chunk-LHFEBLOE.js → chunk-UFAYAE3A.js} +7 -7
- package/dist/{chunk-WRLCJNQF.js → chunk-UK3ZFCQP.js} +1 -1
- package/dist/{chunk-ZG3PHDZJ.js → chunk-UKCIGI3T.js} +3 -3
- package/dist/{chunk-7APAOJIZ.js → chunk-UKCRJFFC.js} +3 -3
- package/dist/{chunk-FSVDF57K.js → chunk-UKIOGRMN.js} +5 -5
- package/dist/chunk-V5EEO7MU.js +129 -0
- package/dist/{chunk-KQTTKYZY.js → chunk-W3YXUIPS.js} +1 -1
- package/dist/{chunk-O2X4XBU7.js → chunk-W4FZ4HYD.js} +1 -1
- package/dist/{chunk-E35XHOFL.js → chunk-WOL4EVCE.js} +7 -7
- package/dist/{chunk-NRX5WHHN.js → chunk-X65C4UZH.js} +4 -4
- package/dist/{chunk-MTLM36QD.js → chunk-X7Y4TV6O.js} +2 -2
- package/dist/{chunk-BLTCDZ3O.js → chunk-XNEUJKY4.js} +4 -4
- package/dist/{chunk-6KQFP32G.js → chunk-YICDEIRE.js} +2 -2
- package/dist/{chunk-UAEVL47I.js → chunk-YSZLX4WE.js} +1 -1
- package/dist/{chunk-EQ32JFKT.js → chunk-YTZQ5J6L.js} +13 -3
- package/dist/{chunk-A7AXD5AM.js → chunk-ZFMAACZT.js} +2 -2
- package/dist/{chunk-6DPJVMEC.js → chunk-ZIZU3B65.js} +1 -1
- package/dist/{chunk-2FKWZKV2.js → chunk-ZXJTXNUX.js} +4 -4
- package/dist/config/index.js +5 -5
- package/dist/containers/client.js +6 -6
- package/dist/containers/exec.js +6 -6
- package/dist/containers/lifecycle.js +38 -38
- package/dist/containers/setup.js +8 -8
- package/dist/db/agents.js +6 -6
- package/dist/db/api_keys.js +5 -5
- package/dist/db/audit.js +3 -3
- package/dist/db/batch.js +10 -10
- package/dist/db/client.js +2 -2
- package/dist/db/credentials.js +5 -3
- package/dist/db/drizzle.js +4 -4
- package/dist/db/environments.js +6 -6
- package/dist/db/events.js +5 -5
- package/dist/db/files.js +5 -5
- package/dist/db/memory.js +11 -7
- package/dist/db/migrations.js +1 -1
- package/dist/db/proxy.js +5 -5
- package/dist/db/schema.js +5 -1
- package/dist/db/session-resources.js +9 -7
- package/dist/db/sessions.js +8 -8
- package/dist/db/skills.js +27 -0
- package/dist/db/sync.js +5 -5
- package/dist/db/tenants.js +3 -3
- package/dist/db/threads.js +7 -7
- package/dist/db/traces.js +5 -5
- package/dist/db/upstream_keys.js +3 -3
- package/dist/db/vaults.js +6 -6
- package/dist/dreaming/review.js +11 -11
- package/dist/handlers/agents.js +54 -54
- package/dist/handlers/api_keys.js +55 -55
- package/dist/handlers/audit.js +55 -55
- package/dist/handlers/batch.js +55 -55
- package/dist/handlers/credentials.js +57 -55
- package/dist/handlers/environments.js +55 -55
- package/dist/handlers/events.js +58 -58
- package/dist/handlers/files.js +55 -55
- package/dist/handlers/index.js +129 -106
- package/dist/handlers/license.js +54 -54
- package/dist/handlers/memory.js +65 -57
- package/dist/handlers/metrics.js +54 -54
- package/dist/handlers/models.js +55 -55
- package/dist/handlers/providers.js +54 -54
- package/dist/handlers/resources.js +58 -56
- package/dist/handlers/sessions.js +58 -58
- package/dist/handlers/settings.js +54 -54
- package/dist/handlers/skills-write.js +68 -56
- package/dist/handlers/skills.js +55 -55
- package/dist/handlers/stream.js +54 -54
- package/dist/handlers/tenants.js +55 -55
- package/dist/handlers/threads.js +55 -55
- package/dist/handlers/traces.js +55 -55
- package/dist/handlers/upstream_keys.js +57 -57
- package/dist/handlers/vaults.js +54 -54
- package/dist/handlers/whoami.js +54 -54
- package/dist/http.js +53 -53
- package/dist/index.js +62 -62
- package/dist/init.js +50 -50
- package/dist/lib/model-registry.js +6 -6
- package/dist/lib/skills-cache.js +6 -6
- package/dist/observability/otlp.js +12 -12
- package/dist/observability/redactor.js +8 -8
- package/dist/providers/fly.js +5 -5
- package/dist/providers/modal.js +5 -5
- package/dist/providers/registry.js +1 -1
- package/dist/providers/resolve-secrets.js +7 -7
- package/dist/providers/sprites.js +7 -7
- package/dist/providers/upstream-keys.js +12 -12
- package/dist/providers/vercel.js +6 -6
- package/dist/proxy/forward.js +6 -6
- package/dist/queue/index.js +6 -6
- package/dist/sessions/bus.js +10 -10
- package/dist/sessions/driver.js +43 -43
- package/dist/sessions/grader.js +5 -5
- package/dist/sessions/secrets.js +8 -8
- package/dist/sessions/sweeper.js +39 -39
- package/dist/sessions/threads.js +45 -45
- package/dist/shutdown.js +40 -40
- package/dist/sync/anthropic.js +10 -10
- package/dist/sync/container-file-sync.js +6 -6
- package/dist/sync/file-sync.js +17 -17
- package/package.json +1 -1
- package/dist/chunk-RJDYM2HR.js +0 -31
- package/dist/{chunk-LT5PRO54.js → chunk-ZJERBDQE.js} +0 -0
- 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-
|
|
7
|
+
} from "./chunk-DAKCDGWV.js";
|
|
8
8
|
import {
|
|
9
9
|
jsonOk,
|
|
10
10
|
routeWrap
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-IYVGGJMH.js";
|
|
12
12
|
|
|
13
13
|
// src/handlers/skills.ts
|
|
14
14
|
async function handleGetSkillsCatalog(request) {
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
getMemoryByPath,
|
|
9
9
|
getMemoryStore,
|
|
10
10
|
listMemories
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-FSQ6I3C7.js";
|
|
12
12
|
import {
|
|
13
13
|
listSessions
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-5TOLDBBJ.js";
|
|
15
15
|
import {
|
|
16
16
|
listEvents
|
|
17
|
-
} from "./chunk-
|
|
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-
|
|
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],
|
|
@@ -4,13 +4,13 @@ import {
|
|
|
4
4
|
} from "./chunk-D2XITRN6.js";
|
|
5
5
|
import {
|
|
6
6
|
authenticateAndIntercept
|
|
7
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
22
|
+
} from "./chunk-TWX2D563.js";
|
|
23
23
|
import {
|
|
24
24
|
getAgent
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-P7TV5XP4.js";
|
|
26
26
|
import {
|
|
27
27
|
getDb,
|
|
28
28
|
init_client
|
|
29
|
-
} from "./chunk-
|
|
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-
|
|
13
|
+
} from "./chunk-JWVVF66Q.js";
|
|
14
14
|
import {
|
|
15
15
|
schema_exports
|
|
16
|
-
} from "./chunk-
|
|
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-
|
|
3
|
+
} from "./chunk-2RIOHWZW.js";
|
|
4
4
|
import {
|
|
5
5
|
closeDb,
|
|
6
6
|
init_client,
|
|
7
7
|
syncDb
|
|
8
|
-
} from "./chunk-
|
|
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
|
-
|
|
18
|
-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
284
|
+
handleRedactMemoryVersion,
|
|
285
|
+
handleArchiveMemoryStore,
|
|
286
|
+
handleDreamMemoryStore
|
|
208
287
|
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
jsonOk,
|
|
3
3
|
routeWrap
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IYVGGJMH.js";
|
|
5
5
|
import {
|
|
6
6
|
readSetting,
|
|
7
7
|
writeSetting
|
|
8
|
-
} from "./chunk-
|
|
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-
|
|
4
|
+
} from "./chunk-SZNZZB7J.js";
|
|
5
5
|
import {
|
|
6
6
|
getDb,
|
|
7
7
|
init_client
|
|
8
|
-
} from "./chunk-
|
|
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-
|
|
13
|
+
} from "./chunk-JWVVF66Q.js";
|
|
14
14
|
import {
|
|
15
15
|
schema_exports
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-SZNZZB7J.js";
|
|
17
17
|
import {
|
|
18
18
|
getDb,
|
|
19
19
|
init_client
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-W3YXUIPS.js";
|
|
21
21
|
|
|
22
22
|
// src/db/events.ts
|
|
23
23
|
init_client();
|
|
@@ -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
|
+
};
|
|
@@ -2,19 +2,19 @@ import {
|
|
|
2
2
|
getSyncRow,
|
|
3
3
|
getSyncedRemoteId,
|
|
4
4
|
upsertSync
|
|
5
|
-
} from "./chunk-
|
|
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-
|
|
11
|
+
} from "./chunk-TWX2D563.js";
|
|
12
12
|
import {
|
|
13
13
|
getEnvironment
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-UKCRJFFC.js";
|
|
15
15
|
import {
|
|
16
16
|
getAgent
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-P7TV5XP4.js";
|
|
18
18
|
|
|
19
19
|
// src/sync/anthropic.ts
|
|
20
20
|
import { createHash } from "crypto";
|