@agentstep/agent-sdk 0.4.41 → 0.5.1
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 +8 -8
- package/dist/backends/claude/wrapper-script.js +1 -1
- package/dist/backends/codex/args.js +1 -1
- package/dist/backends/codex/auth.js +6 -6
- package/dist/backends/codex/index.js +8 -8
- package/dist/backends/factory/args.js +1 -1
- package/dist/backends/factory/auth.js +6 -6
- package/dist/backends/factory/index.js +8 -8
- package/dist/backends/gemini/args.js +1 -1
- package/dist/backends/gemini/auth.js +6 -6
- package/dist/backends/gemini/index.js +8 -8
- package/dist/backends/opencode/args.js +1 -1
- package/dist/backends/opencode/auth.js +6 -6
- package/dist/backends/opencode/index.js +9 -9
- package/dist/backends/opencode/mcp.js +1 -1
- package/dist/backends/pi/args.js +1 -1
- package/dist/backends/pi/auth.js +6 -6
- package/dist/backends/pi/index.js +8 -8
- package/dist/backends/registry.js +25 -25
- package/dist/{chunk-L2RX552S.js → chunk-22OUZJAV.js} +3 -3
- package/dist/{chunk-XWWLMJXT.js → chunk-2YFS435Z.js} +6 -15
- package/dist/{chunk-W2NHS4IF.js → chunk-2YIMCZJK.js} +15 -19
- package/dist/{chunk-WCDWL6ED.js → chunk-2YZOIFVN.js} +49 -0
- package/dist/{chunk-2PPB644A.js → chunk-37C5BNVV.js} +1 -1
- package/dist/{chunk-RDGOGAQ5.js → chunk-3FLQ7KZP.js} +1 -1
- package/dist/{chunk-2RSL5SO7.js → chunk-3NKK4M23.js} +2 -2
- package/dist/{chunk-CHDQ3HIR.js → chunk-3S4CGFKJ.js} +5 -9
- package/dist/{chunk-H7UKW666.js → chunk-445EL6J5.js} +1 -1
- package/dist/{chunk-FP4E3QUS.js → chunk-4LHJJXH3.js} +2 -2
- package/dist/{chunk-ZFJPOQSY.js → chunk-4MKBT3KA.js} +69 -30
- package/dist/{chunk-ENGKR2JT.js → chunk-56XDLNEW.js} +1 -1
- package/dist/{chunk-Y6SFUNGO.js → chunk-57LAR6EM.js} +4 -4
- package/dist/{chunk-JZL4L54R.js → chunk-5M47X54D.js} +2 -2
- package/dist/{chunk-MHBLVGRF.js → chunk-5MERXOLJ.js} +4 -4
- package/dist/{chunk-E7DD7F7J.js → chunk-5U5LRAFJ.js} +2 -2
- package/dist/{chunk-MQQ44IGX.js → chunk-63AKPSCV.js} +3 -3
- package/dist/{chunk-T5VRE77P.js → chunk-6KWJASEO.js} +1 -1
- package/dist/{chunk-EUINGLHA.js → chunk-6RFQCFL2.js} +30 -20
- package/dist/{chunk-V5HWHJ4P.js → chunk-74E7GKUG.js} +1 -1
- package/dist/{chunk-DU7LSFQQ.js → chunk-7SY65LWY.js} +6 -9
- package/dist/{chunk-JCW3ZRES.js → chunk-A46RUKGA.js} +1 -1
- package/dist/{chunk-LZFB3HRK.js → chunk-AQB3P5ZP.js} +5 -10
- package/dist/{chunk-RP6WQ4IH.js → chunk-B5EY2VJC.js} +3 -3
- package/dist/{chunk-ZTH5JRZG.js → chunk-BCIFFAGW.js} +41 -10
- package/dist/{chunk-2Z2KAPUL.js → chunk-BJP5BIHE.js} +3 -3
- package/dist/{chunk-5EQJOUWM.js → chunk-C35ZTCBP.js} +2 -2
- package/dist/{chunk-OXWELRJL.js → chunk-CBPO2P4I.js} +101 -16
- package/dist/{chunk-HH4OXSOV.js → chunk-CE366H6Z.js} +5 -5
- package/dist/{chunk-C46UG6GQ.js → chunk-CKFJN5XK.js} +1 -1
- package/dist/{chunk-YBZJHDSE.js → chunk-COZG53R3.js} +2 -2
- package/dist/{chunk-SV2B3P6B.js → chunk-DBFPJSOY.js} +19 -17
- package/dist/{chunk-NQVRZAIX.js → chunk-DMMNAQUM.js} +2 -2
- package/dist/{chunk-JWH4OIBP.js → chunk-DRNZ24RF.js} +4 -4
- package/dist/{chunk-3FDE3BPB.js → chunk-EDUTIJAU.js} +9 -7
- package/dist/{chunk-5EKQBD2H.js → chunk-FCUXFLNK.js} +2 -2
- package/dist/{chunk-34EB622U.js → chunk-FYBHPBWY.js} +2 -2
- package/dist/{chunk-HOIDGDU5.js → chunk-GD3WXIHX.js} +1 -1
- package/dist/{chunk-6IYCBW4J.js → chunk-GIUB2OPA.js} +1 -1
- package/dist/{chunk-V7MTIMPB.js → chunk-GQYSSSVA.js} +3 -3
- package/dist/{chunk-X6IQ57SC.js → chunk-H6OT5GUL.js} +9 -5
- package/dist/{chunk-TPPLYCJF.js → chunk-HMOSAXVZ.js} +2 -2
- package/dist/{chunk-L5RW66H5.js → chunk-HVLYE4S5.js} +1 -1
- package/dist/{chunk-PIJKJNGB.js → chunk-HZZ6ZLKP.js} +4 -4
- package/dist/{chunk-AR2TM7CR.js → chunk-I26QP3A3.js} +1 -1
- package/dist/{chunk-D2TRWKVQ.js → chunk-I2WVMCYN.js} +80 -2
- package/dist/{chunk-JHGJG2Z2.js → chunk-IBYOMAZ3.js} +1 -1
- package/dist/{chunk-SUGSHXND.js → chunk-IEZFRNLC.js} +2 -2
- package/dist/{chunk-ZMJ4EP4C.js → chunk-ILHIHMO3.js} +7 -2
- package/dist/{chunk-FDBR634Z.js → chunk-IMPLRDOV.js} +6 -6
- package/dist/{chunk-ZYISLRS6.js → chunk-JWHSUEDE.js} +114 -37
- package/dist/{chunk-TH7WJLZC.js → chunk-KGBKIJPF.js} +3 -3
- package/dist/{chunk-3NK6YTA5.js → chunk-KUWJJD6O.js} +42 -8
- package/dist/{chunk-2I35VGHX.js → chunk-L35CBI7F.js} +2 -2
- package/dist/{chunk-KLN6HPYM.js → chunk-L3IACZ72.js} +1 -1
- package/dist/{chunk-MXOG5SAO.js → chunk-LIXSR7BG.js} +11 -14
- package/dist/{chunk-7GG3FEK2.js → chunk-MCWCRZM4.js} +4 -4
- package/dist/{chunk-V66YKIW6.js → chunk-MXMXJYN4.js} +5 -5
- package/dist/{chunk-GVPJL3XS.js → chunk-MZYJFU4K.js} +5 -5
- package/dist/{chunk-ZMNQ2YJ6.js → chunk-NBYCX6L4.js} +4 -4
- package/dist/{chunk-ZQXBHNEZ.js → chunk-NL4UNA53.js} +2 -2
- package/dist/{chunk-WQARLGBG.js → chunk-NRXTWATQ.js} +3 -3
- package/dist/{chunk-FXLUSECC.js → chunk-O56RNR7B.js} +1 -1
- package/dist/{chunk-3IV56JJW.js → chunk-P56WU3UT.js} +3 -2
- package/dist/{chunk-NQX7WBA4.js → chunk-PJYCPDV5.js} +14 -9
- package/dist/{chunk-R5T4LJSK.js → chunk-PZNAQBHQ.js} +2 -2
- package/dist/{chunk-32XS3Y6P.js → chunk-Q4XF3OBK.js} +8 -8
- package/dist/{chunk-IU457W7Q.js → chunk-QBJOYOVF.js} +2 -1
- package/dist/{chunk-C6AXM3M7.js → chunk-QJ6QQO6D.js} +3 -3
- package/dist/{chunk-2GIX4HAT.js → chunk-R6EXYBCT.js} +2 -2
- package/dist/{chunk-RVR6C22M.js → chunk-RT5S5KRX.js} +1 -1
- package/dist/{chunk-USYY3L7G.js → chunk-T3FQPTOA.js} +2 -2
- package/dist/{chunk-5IGBMS2U.js → chunk-T3HMVHDG.js} +1 -1
- package/dist/{chunk-RH4GKU52.js → chunk-T3IGOI6Z.js} +18 -3
- package/dist/{chunk-DAVYI5H4.js → chunk-T7BHW3CP.js} +23 -23
- package/dist/{chunk-QSUGIJWV.js → chunk-TG3S4RVJ.js} +4 -9
- package/dist/{chunk-IAF6VMPO.js → chunk-TPMZO6S2.js} +1 -1
- package/dist/{chunk-OGJUSGF7.js → chunk-UMRDMOB6.js} +1 -1
- package/dist/{chunk-KKCLTWG7.js → chunk-UMVZZQKD.js} +1 -1
- package/dist/{chunk-LAVHQCRP.js → chunk-UQ3LKJPM.js} +3 -3
- package/dist/{chunk-P26WOAA3.js → chunk-USIMPXUH.js} +1 -1
- package/dist/{chunk-Z25I7DRV.js → chunk-V5DH3OAC.js} +10 -5
- package/dist/{chunk-N3QIXC2B.js → chunk-VJWNFMMQ.js} +2 -2
- package/dist/{chunk-ZVXIZ2JD.js → chunk-VP527YC5.js} +35 -6
- package/dist/{chunk-6POQAFEC.js → chunk-W3JMIUHV.js} +1 -1
- package/dist/{chunk-V2R7RWVY.js → chunk-WDACZSRU.js} +1 -1
- package/dist/{chunk-FOOH6SCB.js → chunk-WU74DV5R.js} +2 -2
- package/dist/{chunk-6GP5IKXE.js → chunk-XSNJ7NT2.js} +1 -1
- package/dist/{chunk-S7W3KJYH.js → chunk-YYMUSVUI.js} +9 -4
- package/dist/{chunk-CREPPDHX.js → chunk-YZZHDZ7B.js} +1 -1
- package/dist/{chunk-LMNFIJ6M.js → chunk-ZWC5V2DB.js} +15 -15
- package/dist/{chunk-N76ZVITA.js → chunk-ZY2U24QP.js} +24 -14
- 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 +37 -37
- package/dist/containers/setup.js +9 -9
- package/dist/db/agents.js +8 -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 +3 -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 +5 -5
- package/dist/db/migrations.js +1 -1
- package/dist/db/proxy.js +5 -5
- package/dist/db/schema.js +1 -1
- package/dist/db/session-resources.js +5 -5
- package/dist/db/sessions.js +8 -7
- package/dist/db/sync.js +5 -5
- package/dist/db/tenants.js +3 -3
- package/dist/db/traces.js +5 -5
- package/dist/db/upstream_keys.js +3 -3
- package/dist/db/vaults.js +12 -8
- package/dist/handlers/agents.js +57 -53
- package/dist/handlers/api_keys.js +54 -54
- package/dist/handlers/audit.js +54 -54
- package/dist/handlers/batch.js +54 -54
- package/dist/handlers/credentials.js +54 -54
- package/dist/handlers/environments.js +54 -54
- package/dist/handlers/events.js +57 -57
- package/dist/handlers/files.js +54 -54
- package/dist/handlers/index.js +101 -93
- package/dist/handlers/license.js +53 -53
- package/dist/handlers/memory.js +54 -54
- package/dist/handlers/metrics.js +53 -53
- package/dist/handlers/models.js +54 -54
- package/dist/handlers/openapi.js +3 -3
- package/dist/handlers/providers.js +53 -53
- package/dist/handlers/resources.js +53 -53
- package/dist/handlers/sessions.js +56 -56
- package/dist/handlers/settings.js +53 -53
- package/dist/handlers/skills-write.js +53 -53
- package/dist/handlers/skills.js +54 -54
- package/dist/handlers/stream.js +53 -53
- package/dist/handlers/tenants.js +54 -54
- package/dist/handlers/threads.js +53 -53
- package/dist/handlers/traces.js +54 -54
- package/dist/handlers/upstream_keys.js +56 -56
- package/dist/handlers/vaults.js +57 -53
- package/dist/handlers/whoami.js +53 -53
- package/dist/http.js +56 -52
- package/dist/index.js +58 -58
- package/dist/init.js +49 -49
- 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/openapi/schemas.js +3 -1
- package/dist/openapi/spec.js +2 -2
- 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 -11
- package/dist/providers/vercel.js +5 -5
- 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 +42 -42
- package/dist/sessions/grader.js +5 -5
- package/dist/sessions/mcp-auth.js +1 -1
- package/dist/sessions/secrets.js +8 -8
- package/dist/sessions/sweeper.js +38 -38
- package/dist/sessions/threads.js +42 -42
- package/dist/shutdown.js +39 -39
- package/dist/sync/anthropic.js +11 -11
- 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-WPK4ZPMG.js → chunk-JRQB3SHR.js} +0 -0
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
reportUpstreamFailure,
|
|
3
3
|
reportUpstreamSuccess,
|
|
4
4
|
resolveAnthropicKey
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-HZZ6ZLKP.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveRemoteSessionId
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-22OUZJAV.js";
|
|
9
9
|
import {
|
|
10
10
|
assertResourceTenant
|
|
11
11
|
} from "./chunk-23UKWXJH.js";
|
|
@@ -20,45 +20,46 @@ import {
|
|
|
20
20
|
listMemoryStores,
|
|
21
21
|
searchMemories,
|
|
22
22
|
updateMemory
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-IEZFRNLC.js";
|
|
24
24
|
import {
|
|
25
25
|
jsonOk,
|
|
26
|
+
paginatedOk,
|
|
26
27
|
routeWrap
|
|
27
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-T3IGOI6Z.js";
|
|
28
29
|
import {
|
|
29
30
|
forwardToAnthropic
|
|
30
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-A46RUKGA.js";
|
|
31
32
|
import {
|
|
32
33
|
runTurn,
|
|
33
34
|
writePermissionResponse
|
|
34
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-T7BHW3CP.js";
|
|
35
36
|
import {
|
|
36
37
|
enqueueTurn
|
|
37
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-37C5BNVV.js";
|
|
38
39
|
import {
|
|
39
40
|
getProxiedTenantId,
|
|
40
41
|
isProxied
|
|
41
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-5U5LRAFJ.js";
|
|
42
43
|
import {
|
|
43
44
|
getActor
|
|
44
45
|
} from "./chunk-LAWTTG2E.js";
|
|
45
46
|
import {
|
|
46
47
|
appendEvent
|
|
47
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-5MERXOLJ.js";
|
|
48
49
|
import {
|
|
49
50
|
bumpSessionStats,
|
|
50
51
|
getSession,
|
|
51
52
|
getSessionRow,
|
|
52
53
|
setOutcomeCriteria,
|
|
53
54
|
updateSessionMutable
|
|
54
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-KUWJJD6O.js";
|
|
55
56
|
import {
|
|
56
57
|
listEvents,
|
|
57
58
|
rowToManagedEvent
|
|
58
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-KGBKIJPF.js";
|
|
59
60
|
import {
|
|
60
61
|
getAgent
|
|
61
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-BCIFFAGW.js";
|
|
62
63
|
import {
|
|
63
64
|
init_clock,
|
|
64
65
|
nowMs
|
|
@@ -66,7 +67,7 @@ import {
|
|
|
66
67
|
import {
|
|
67
68
|
getDb,
|
|
68
69
|
init_client
|
|
69
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-W3JMIUHV.js";
|
|
70
71
|
import {
|
|
71
72
|
badRequest,
|
|
72
73
|
notFound
|
|
@@ -634,12 +635,7 @@ function handleListEvents(request, sessionId) {
|
|
|
634
635
|
const afterSeq = Number(url.searchParams.get("after_seq") ?? url.searchParams.get("page") ?? "0");
|
|
635
636
|
const rows = listEvents(sessionId, { limit, order, afterSeq });
|
|
636
637
|
const data = rows.map(rowToManagedEvent);
|
|
637
|
-
return
|
|
638
|
-
data,
|
|
639
|
-
has_more: rows.length === limit,
|
|
640
|
-
first_id: data.length > 0 ? data[0].id : null,
|
|
641
|
-
last_id: data.length > 0 ? data[data.length - 1].id : null
|
|
642
|
-
});
|
|
638
|
+
return paginatedOk(data, limit);
|
|
643
639
|
});
|
|
644
640
|
}
|
|
645
641
|
|
|
@@ -54,6 +54,7 @@ function runMigrations(db) {
|
|
|
54
54
|
template_sandbox TEXT,
|
|
55
55
|
checkpoint_id TEXT,
|
|
56
56
|
created_at INTEGER NOT NULL,
|
|
57
|
+
updated_at INTEGER NOT NULL DEFAULT 0,
|
|
57
58
|
archived_at INTEGER
|
|
58
59
|
);
|
|
59
60
|
|
|
@@ -459,6 +460,16 @@ function runMigrations(db) {
|
|
|
459
460
|
if (envCols3.some((c) => c.name === "template_sprite")) {
|
|
460
461
|
db.exec(`ALTER TABLE environments RENAME COLUMN template_sprite TO template_sandbox`);
|
|
461
462
|
}
|
|
463
|
+
{
|
|
464
|
+
const cols = db.prepare("PRAGMA table_info(agents)").all();
|
|
465
|
+
const names = new Set(cols.map((c) => c.name));
|
|
466
|
+
if (!names.has("description")) {
|
|
467
|
+
db.exec("ALTER TABLE agents ADD COLUMN description TEXT");
|
|
468
|
+
}
|
|
469
|
+
if (!names.has("metadata_json")) {
|
|
470
|
+
db.exec("ALTER TABLE agents ADD COLUMN metadata_json TEXT NOT NULL DEFAULT '{}'");
|
|
471
|
+
}
|
|
472
|
+
}
|
|
462
473
|
const sessColsQuota = db.prepare(`PRAGMA table_info(sessions)`).all();
|
|
463
474
|
if (!sessColsQuota.some((c) => c.name === "max_tokens")) {
|
|
464
475
|
db.exec(`ALTER TABLE sessions ADD COLUMN max_tokens INTEGER DEFAULT NULL`);
|
|
@@ -466,6 +477,44 @@ function runMigrations(db) {
|
|
|
466
477
|
if (!sessColsQuota.some((c) => c.name === "max_wall_duration_ms")) {
|
|
467
478
|
db.exec(`ALTER TABLE sessions ADD COLUMN max_wall_duration_ms INTEGER DEFAULT NULL`);
|
|
468
479
|
}
|
|
480
|
+
{
|
|
481
|
+
const cols = db.prepare("PRAGMA table_info(environments)").all();
|
|
482
|
+
if (!cols.some((c) => c.name === "updated_at")) {
|
|
483
|
+
db.exec("ALTER TABLE environments ADD COLUMN updated_at INTEGER");
|
|
484
|
+
db.exec("UPDATE environments SET updated_at = created_at WHERE updated_at IS NULL");
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
{
|
|
488
|
+
const cols = db.prepare("PRAGMA table_info(vaults)").all();
|
|
489
|
+
const names = new Set(cols.map((c) => c.name));
|
|
490
|
+
if (!names.has("metadata_json")) {
|
|
491
|
+
db.exec("ALTER TABLE vaults ADD COLUMN metadata_json TEXT NOT NULL DEFAULT '{}'");
|
|
492
|
+
}
|
|
493
|
+
if (!names.has("archived_at")) {
|
|
494
|
+
db.exec("ALTER TABLE vaults ADD COLUMN archived_at INTEGER");
|
|
495
|
+
}
|
|
496
|
+
const agentIdCol = cols.find((c) => c.name === "agent_id");
|
|
497
|
+
if (agentIdCol && agentIdCol.notnull === 1) {
|
|
498
|
+
db.exec(`
|
|
499
|
+
CREATE TABLE vaults_new (
|
|
500
|
+
id TEXT PRIMARY KEY,
|
|
501
|
+
agent_id TEXT,
|
|
502
|
+
name TEXT NOT NULL,
|
|
503
|
+
metadata_json TEXT NOT NULL DEFAULT '{}',
|
|
504
|
+
tenant_id TEXT,
|
|
505
|
+
created_at INTEGER NOT NULL,
|
|
506
|
+
updated_at INTEGER NOT NULL,
|
|
507
|
+
archived_at INTEGER
|
|
508
|
+
);
|
|
509
|
+
INSERT INTO vaults_new SELECT id, agent_id, name,
|
|
510
|
+
COALESCE(metadata_json, '{}'), tenant_id, created_at, updated_at,
|
|
511
|
+
archived_at FROM vaults;
|
|
512
|
+
DROP TABLE vaults;
|
|
513
|
+
ALTER TABLE vaults_new RENAME TO vaults;
|
|
514
|
+
`);
|
|
515
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_vaults_tenant ON vaults(tenant_id)`);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
469
518
|
}
|
|
470
519
|
var init_migrations = __esm({
|
|
471
520
|
"src/db/migrations.ts"() {
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
loadVaultForCaller
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4MKBT3KA.js";
|
|
4
4
|
import {
|
|
5
5
|
jsonOk,
|
|
6
|
+
paginatedOk,
|
|
6
7
|
routeWrap
|
|
7
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-T3IGOI6Z.js";
|
|
8
9
|
import {
|
|
9
10
|
createCredential,
|
|
10
11
|
deleteCredential,
|
|
11
12
|
getCredential,
|
|
12
13
|
listCredentials,
|
|
13
14
|
updateCredential
|
|
14
|
-
} from "./chunk-
|
|
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
|
|
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) {
|
|
@@ -8,14 +8,14 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
jsonOk,
|
|
10
10
|
routeWrap
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-T3IGOI6Z.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-
|
|
18
|
+
} from "./chunk-W3JMIUHV.js";
|
|
19
19
|
import {
|
|
20
20
|
badRequest
|
|
21
21
|
} from "./chunk-EZYKRG4W.js";
|
|
@@ -5,9 +5,11 @@ import {
|
|
|
5
5
|
} from "./chunk-23UKWXJH.js";
|
|
6
6
|
import {
|
|
7
7
|
jsonOk,
|
|
8
|
+
paginatedOk,
|
|
8
9
|
routeWrap
|
|
9
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-T3IGOI6Z.js";
|
|
10
11
|
import {
|
|
12
|
+
archiveVault,
|
|
11
13
|
createVault,
|
|
12
14
|
deleteEntry,
|
|
13
15
|
deleteVault,
|
|
@@ -15,15 +17,16 @@ import {
|
|
|
15
17
|
getVault,
|
|
16
18
|
listEntries,
|
|
17
19
|
listVaults,
|
|
18
|
-
setEntry
|
|
19
|
-
|
|
20
|
+
setEntry,
|
|
21
|
+
updateVault
|
|
22
|
+
} from "./chunk-VP527YC5.js";
|
|
20
23
|
import {
|
|
21
24
|
getAgent
|
|
22
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-BCIFFAGW.js";
|
|
23
26
|
import {
|
|
24
27
|
getDb,
|
|
25
28
|
init_client
|
|
26
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-W3JMIUHV.js";
|
|
27
30
|
import {
|
|
28
31
|
badRequest,
|
|
29
32
|
conflict,
|
|
@@ -54,14 +57,17 @@ function maskValue(value) {
|
|
|
54
57
|
return `${value.slice(0, 4)}****${value.slice(-2)}`;
|
|
55
58
|
}
|
|
56
59
|
var CreateVaultSchema = z.object({
|
|
57
|
-
agent_id: z.string().min(1),
|
|
60
|
+
agent_id: z.string().min(1).optional(),
|
|
58
61
|
name: z.string().min(1).optional(),
|
|
59
62
|
/** Anthropic-compatible alias for `name`. */
|
|
60
63
|
display_name: z.string().min(1).optional(),
|
|
64
|
+
metadata: z.record(z.string().max(512)).optional(),
|
|
61
65
|
/** v0.5: required for global admin, ignored for tenant users. */
|
|
62
66
|
tenant_id: z.string().optional()
|
|
63
67
|
}).refine((data) => data.name || data.display_name, {
|
|
64
68
|
message: "Either name or display_name is required"
|
|
69
|
+
}).refine((data) => !data.metadata || Object.keys(data.metadata).length <= 16, {
|
|
70
|
+
message: "metadata must have at most 16 key-value pairs"
|
|
65
71
|
});
|
|
66
72
|
var PutEntrySchema = z.object({
|
|
67
73
|
value: z.string()
|
|
@@ -71,30 +77,37 @@ function handleCreateVault(request) {
|
|
|
71
77
|
const body = await request.json();
|
|
72
78
|
const parsed = CreateVaultSchema.safeParse(body);
|
|
73
79
|
if (!parsed.success) throw badRequest(parsed.error.message);
|
|
74
|
-
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
80
|
+
let createTenantId;
|
|
81
|
+
if (parsed.data.agent_id) {
|
|
82
|
+
const agentTenantId = getAgentTenantId(parsed.data.agent_id);
|
|
83
|
+
if (agentTenantId === void 0) {
|
|
84
|
+
throw notFound(`agent not found: ${parsed.data.agent_id}`);
|
|
85
|
+
}
|
|
86
|
+
assertResourceTenant(auth, agentTenantId, `agent not found: ${parsed.data.agent_id}`);
|
|
87
|
+
const agent = getAgent(parsed.data.agent_id);
|
|
88
|
+
if (!agent) throw notFound(`agent not found: ${parsed.data.agent_id}`);
|
|
89
|
+
createTenantId = resolveCreateTenant(auth, parsed.data.tenant_id);
|
|
90
|
+
if (createTenantId !== agentTenantId) {
|
|
91
|
+
throw badRequest(
|
|
92
|
+
`vault tenant_id must match agent tenant_id (${agentTenantId})`
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
const vaultName2 = parsed.data.name ?? parsed.data.display_name;
|
|
96
|
+
const existing = listVaults({ agent_id: parsed.data.agent_id, tenantFilter: tenantFilter(auth) });
|
|
97
|
+
if (existing.some((v) => v.name === vaultName2)) {
|
|
98
|
+
throw conflict(`Vault "${vaultName2}" already exists for this agent`);
|
|
99
|
+
}
|
|
100
|
+
} else {
|
|
101
|
+
createTenantId = resolveCreateTenant(auth, parsed.data.tenant_id);
|
|
86
102
|
}
|
|
87
103
|
const vaultName = parsed.data.name ?? parsed.data.display_name;
|
|
88
|
-
const existing = listVaults({ agent_id: parsed.data.agent_id, tenantFilter: tenantFilter(auth) });
|
|
89
|
-
if (existing.some((v) => v.name === vaultName)) {
|
|
90
|
-
throw conflict(`Vault "${vaultName}" already exists for this agent`);
|
|
91
|
-
}
|
|
92
104
|
const vault = createVault({
|
|
93
|
-
agent_id: parsed.data.agent_id,
|
|
105
|
+
agent_id: parsed.data.agent_id ?? null,
|
|
94
106
|
name: vaultName,
|
|
107
|
+
metadata: parsed.data.metadata,
|
|
95
108
|
tenant_id: createTenantId
|
|
96
109
|
});
|
|
97
|
-
return jsonOk(
|
|
110
|
+
return jsonOk(vault, 201);
|
|
98
111
|
});
|
|
99
112
|
}
|
|
100
113
|
function handleListVaults(request) {
|
|
@@ -103,12 +116,7 @@ function handleListVaults(request) {
|
|
|
103
116
|
const agentId = url.searchParams.get("agent_id") ?? void 0;
|
|
104
117
|
const requestedLimit = Number(url.searchParams.get("limit") || "100");
|
|
105
118
|
const data = listVaults({ agent_id: agentId, tenantFilter: tenantFilter(auth) });
|
|
106
|
-
return
|
|
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
|
-
});
|
|
119
|
+
return paginatedOk(data, requestedLimit);
|
|
112
120
|
});
|
|
113
121
|
}
|
|
114
122
|
function handleGetVault(request, id) {
|
|
@@ -124,6 +132,35 @@ function handleDeleteVault(request, id) {
|
|
|
124
132
|
return jsonOk({ id, type: "vault_deleted" });
|
|
125
133
|
});
|
|
126
134
|
}
|
|
135
|
+
var UpdateVaultSchema = z.object({
|
|
136
|
+
display_name: z.string().min(1).max(255).optional(),
|
|
137
|
+
metadata: z.record(z.string().max(512)).optional()
|
|
138
|
+
}).refine((data) => !data.metadata || Object.keys(data.metadata).length <= 16, {
|
|
139
|
+
message: "metadata must have at most 16 key-value pairs"
|
|
140
|
+
});
|
|
141
|
+
function handleUpdateVault(request, id) {
|
|
142
|
+
return routeWrap(request, async ({ auth }) => {
|
|
143
|
+
loadVaultForCaller(auth, id);
|
|
144
|
+
const body = await request.json();
|
|
145
|
+
const parsed = UpdateVaultSchema.safeParse(body);
|
|
146
|
+
if (!parsed.success) throw badRequest(parsed.error.message);
|
|
147
|
+
const vault = updateVault(id, {
|
|
148
|
+
display_name: parsed.data.display_name,
|
|
149
|
+
metadata: parsed.data.metadata
|
|
150
|
+
});
|
|
151
|
+
if (!vault) throw notFound(`vault not found: ${id}`);
|
|
152
|
+
return jsonOk(vault);
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
function handleArchiveVault(request, id) {
|
|
156
|
+
return routeWrap(request, async ({ auth }) => {
|
|
157
|
+
loadVaultForCaller(auth, id);
|
|
158
|
+
const ok = archiveVault(id);
|
|
159
|
+
if (!ok) throw notFound(`vault not found: ${id}`);
|
|
160
|
+
const vault = getVault(id);
|
|
161
|
+
return jsonOk(vault);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
127
164
|
function handleListEntries(request, vaultId) {
|
|
128
165
|
return routeWrap(request, async ({ auth }) => {
|
|
129
166
|
loadVaultForCaller(auth, vaultId);
|
|
@@ -165,6 +202,8 @@ export {
|
|
|
165
202
|
handleListVaults,
|
|
166
203
|
handleGetVault,
|
|
167
204
|
handleDeleteVault,
|
|
205
|
+
handleUpdateVault,
|
|
206
|
+
handleArchiveVault,
|
|
168
207
|
handleListEntries,
|
|
169
208
|
handleGetEntry,
|
|
170
209
|
handlePutEntry,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SUPPORTED_PROVIDERS
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HZZ6ZLKP.js";
|
|
4
4
|
import {
|
|
5
5
|
addUpstreamKey,
|
|
6
6
|
deleteUpstreamKey,
|
|
@@ -8,20 +8,20 @@ import {
|
|
|
8
8
|
enableUpstreamKey,
|
|
9
9
|
getUpstreamKey,
|
|
10
10
|
listUpstreamKeys
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-445EL6J5.js";
|
|
12
12
|
import {
|
|
13
13
|
requireGlobalAdmin
|
|
14
14
|
} from "./chunk-23UKWXJH.js";
|
|
15
15
|
import {
|
|
16
16
|
recordAudit
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-L3IACZ72.js";
|
|
18
18
|
import {
|
|
19
19
|
requireFeature
|
|
20
20
|
} from "./chunk-2N2KL4KM.js";
|
|
21
21
|
import {
|
|
22
22
|
jsonOk,
|
|
23
23
|
routeWrap
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-T3IGOI6Z.js";
|
|
25
25
|
import {
|
|
26
26
|
badRequest,
|
|
27
27
|
notFound
|
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
} from "./chunk-S3JRZFF5.js";
|
|
4
4
|
import {
|
|
5
5
|
buildGeminiArgs
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-IBYOMAZ3.js";
|
|
7
7
|
import {
|
|
8
8
|
buildGeminiAuthEnv,
|
|
9
9
|
validateGeminiRuntime
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WDACZSRU.js";
|
|
11
11
|
import {
|
|
12
12
|
prepareGeminiOnSandbox
|
|
13
13
|
} from "./chunk-XG4UIGDH.js";
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getSession
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KUWJJD6O.js";
|
|
4
4
|
import {
|
|
5
5
|
appendEvent,
|
|
6
6
|
appendEventsBatch,
|
|
7
7
|
listEvents,
|
|
8
8
|
rowToManagedEvent
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-KGBKIJPF.js";
|
|
10
10
|
import {
|
|
11
11
|
getAgent
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-BCIFFAGW.js";
|
|
13
13
|
import {
|
|
14
14
|
getDb,
|
|
15
15
|
init_client
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-W3JMIUHV.js";
|
|
17
17
|
|
|
18
18
|
// src/sessions/bus.ts
|
|
19
19
|
import { EventEmitter } from "events";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildOpencodeArgs
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-P56WU3UT.js";
|
|
4
4
|
import {
|
|
5
5
|
buildOpencodeAuthEnv,
|
|
6
6
|
validateOpencodeRuntime
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-UMRDMOB6.js";
|
|
8
8
|
import {
|
|
9
9
|
buildOpencodeConfigEnv
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-V5DH3OAC.js";
|
|
11
11
|
import {
|
|
12
12
|
prepareOpencodeOnSandbox
|
|
13
13
|
} from "./chunk-P7P2NWZD.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
syncAndCreateSession
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7SY65LWY.js";
|
|
4
4
|
import {
|
|
5
5
|
resolveRemoteSessionId,
|
|
6
6
|
upsertSync
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-22OUZJAV.js";
|
|
8
8
|
import {
|
|
9
9
|
assertResourceTenant,
|
|
10
10
|
tenantFilter
|
|
@@ -14,14 +14,16 @@ import {
|
|
|
14
14
|
} from "./chunk-DC2UMEQH.js";
|
|
15
15
|
import {
|
|
16
16
|
kickoffEnvironmentSetup
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-QJ6QQO6D.js";
|
|
18
18
|
import {
|
|
19
|
+
decodeCursor,
|
|
19
20
|
jsonOk,
|
|
21
|
+
paginatedOk,
|
|
20
22
|
routeWrap
|
|
21
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-T3IGOI6Z.js";
|
|
22
24
|
import {
|
|
23
25
|
forwardToAnthropic
|
|
24
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-A46RUKGA.js";
|
|
25
27
|
import {
|
|
26
28
|
errors_exports,
|
|
27
29
|
init_errors
|
|
@@ -31,18 +33,18 @@ import {
|
|
|
31
33
|
isProxied,
|
|
32
34
|
markProxied,
|
|
33
35
|
unmarkProxied
|
|
34
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-5U5LRAFJ.js";
|
|
35
37
|
import {
|
|
36
38
|
dropActor,
|
|
37
39
|
getActor
|
|
38
40
|
} from "./chunk-LAWTTG2E.js";
|
|
39
41
|
import {
|
|
40
42
|
releaseSession
|
|
41
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-ZY2U24QP.js";
|
|
42
44
|
import {
|
|
43
45
|
appendEvent,
|
|
44
46
|
dropEmitter
|
|
45
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-5MERXOLJ.js";
|
|
46
48
|
import {
|
|
47
49
|
archiveSession,
|
|
48
50
|
createSession,
|
|
@@ -50,13 +52,13 @@ import {
|
|
|
50
52
|
listSessions,
|
|
51
53
|
updateSessionMutable,
|
|
52
54
|
updateSessionStatus
|
|
53
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-KUWJJD6O.js";
|
|
54
56
|
import {
|
|
55
57
|
getEnvironment
|
|
56
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-H6OT5GUL.js";
|
|
57
59
|
import {
|
|
58
60
|
getAgent
|
|
59
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-BCIFFAGW.js";
|
|
60
62
|
import {
|
|
61
63
|
init_clock,
|
|
62
64
|
nowMs
|
|
@@ -64,7 +66,7 @@ import {
|
|
|
64
66
|
import {
|
|
65
67
|
getDb,
|
|
66
68
|
init_client
|
|
67
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-W3JMIUHV.js";
|
|
68
70
|
import {
|
|
69
71
|
badRequest,
|
|
70
72
|
notFound
|
|
@@ -445,13 +447,25 @@ function handleListSessions(request) {
|
|
|
445
447
|
const limit = url.searchParams.get("limit");
|
|
446
448
|
const order = url.searchParams.get("order");
|
|
447
449
|
const includeArchived = url.searchParams.get("include_archived") === "true";
|
|
448
|
-
const cursor = url.searchParams.get("page")
|
|
450
|
+
const cursor = decodeCursor(url.searchParams.get("page"));
|
|
449
451
|
const agentId = url.searchParams.get("agent_id") ?? void 0;
|
|
450
452
|
const agentVersion = url.searchParams.get("agent_version");
|
|
451
453
|
const environmentId = url.searchParams.get("environment_id") ?? void 0;
|
|
454
|
+
const statusesRaw = url.searchParams.getAll("statuses");
|
|
452
455
|
const statusRaw = url.searchParams.get("status");
|
|
456
|
+
let statuses;
|
|
453
457
|
let status;
|
|
454
|
-
if (
|
|
458
|
+
if (statusesRaw.length > 0) {
|
|
459
|
+
const values = statusesRaw.flatMap((v) => v.split(","));
|
|
460
|
+
for (const v of values) {
|
|
461
|
+
if (!ALLOWED_STATUSES.includes(v)) {
|
|
462
|
+
throw badRequest(
|
|
463
|
+
`invalid statuses value: ${v} (allowed: ${ALLOWED_STATUSES.join(",")})`
|
|
464
|
+
);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
statuses = values;
|
|
468
|
+
} else if (statusRaw != null) {
|
|
455
469
|
if (!ALLOWED_STATUSES.includes(statusRaw)) {
|
|
456
470
|
throw badRequest(
|
|
457
471
|
`invalid status value: ${statusRaw} (allowed: ${ALLOWED_STATUSES.join(",")})`
|
|
@@ -465,6 +479,7 @@ function handleListSessions(request) {
|
|
|
465
479
|
agent_version: agentVersion ? Number(agentVersion) : void 0,
|
|
466
480
|
environmentId,
|
|
467
481
|
status,
|
|
482
|
+
statuses,
|
|
468
483
|
limit: requestedLimit,
|
|
469
484
|
order: order ?? void 0,
|
|
470
485
|
includeArchived,
|
|
@@ -475,12 +490,7 @@ function handleListSessions(request) {
|
|
|
475
490
|
createdLte: parseMs(url.searchParams.get("created_at[lte]")),
|
|
476
491
|
tenantFilter: tenantFilter(auth)
|
|
477
492
|
});
|
|
478
|
-
return
|
|
479
|
-
data,
|
|
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
|
|
483
|
-
});
|
|
493
|
+
return paginatedOk(data, requestedLimit);
|
|
484
494
|
});
|
|
485
495
|
}
|
|
486
496
|
function handleGetSession(request, id) {
|