@agentstep/agent-sdk 0.4.41 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/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 +24 -24
- package/dist/{chunk-L2RX552S.js → chunk-22OUZJAV.js} +3 -3
- package/dist/{chunk-PIJKJNGB.js → chunk-24IDJ7LY.js} +4 -4
- package/dist/{chunk-WCDWL6ED.js → chunk-2YZOIFVN.js} +49 -0
- package/dist/{chunk-RDGOGAQ5.js → chunk-3FLQ7KZP.js} +1 -1
- package/dist/{chunk-ZQXBHNEZ.js → chunk-3PA4NXRP.js} +2 -2
- package/dist/{chunk-H7UKW666.js → chunk-445EL6J5.js} +1 -1
- package/dist/{chunk-2RSL5SO7.js → chunk-4D345E27.js} +2 -2
- package/dist/{chunk-2Z2KAPUL.js → chunk-4RDILRIO.js} +3 -3
- package/dist/{chunk-MHBLVGRF.js → chunk-5MERXOLJ.js} +4 -4
- package/dist/{chunk-E7DD7F7J.js → chunk-5U5LRAFJ.js} +2 -2
- package/dist/{chunk-34EB622U.js → chunk-64IQEPSD.js} +2 -2
- package/dist/{chunk-ENGKR2JT.js → chunk-6CVQDSTS.js} +1 -1
- package/dist/{chunk-T5VRE77P.js → chunk-6KWJASEO.js} +1 -1
- package/dist/{chunk-W2NHS4IF.js → chunk-6QZ23WRF.js} +15 -19
- package/dist/{chunk-DU7LSFQQ.js → chunk-7SY65LWY.js} +6 -9
- package/dist/{chunk-C46UG6GQ.js → chunk-A6VORSKD.js} +1 -1
- package/dist/{chunk-3FDE3BPB.js → chunk-AB7MPL3H.js} +6 -6
- package/dist/{chunk-RP6WQ4IH.js → chunk-AJL3T5JS.js} +3 -3
- package/dist/{chunk-KKCLTWG7.js → chunk-AXBM7HAR.js} +1 -1
- package/dist/{chunk-ZTH5JRZG.js → chunk-BCIFFAGW.js} +41 -10
- package/dist/{chunk-OXWELRJL.js → chunk-CBPO2P4I.js} +101 -16
- package/dist/{chunk-32XS3Y6P.js → chunk-CLSGNQ7J.js} +8 -8
- package/dist/{chunk-SV2B3P6B.js → chunk-DBFPJSOY.js} +19 -17
- package/dist/{chunk-JWH4OIBP.js → chunk-DJZSPWG2.js} +4 -4
- package/dist/{chunk-JZL4L54R.js → chunk-DKLHYSPW.js} +2 -2
- package/dist/{chunk-NQVRZAIX.js → chunk-DMMNAQUM.js} +2 -2
- package/dist/{chunk-Y6SFUNGO.js → chunk-EOJ66GY7.js} +4 -4
- package/dist/{chunk-EUINGLHA.js → chunk-EWIWVXXP.js} +30 -20
- package/dist/{chunk-5EKQBD2H.js → chunk-FCUXFLNK.js} +2 -2
- package/dist/{chunk-LAVHQCRP.js → chunk-FSQ4HGHX.js} +3 -3
- package/dist/{chunk-WQARLGBG.js → chunk-GCQDNUS2.js} +3 -3
- package/dist/{chunk-MXOG5SAO.js → chunk-GFSRNOPI.js} +11 -14
- package/dist/{chunk-S7W3KJYH.js → chunk-GIMDS46L.js} +9 -4
- package/dist/{chunk-FP4E3QUS.js → chunk-GLKWJESP.js} +2 -2
- package/dist/{chunk-FDBR634Z.js → chunk-GV6GUSCP.js} +6 -6
- 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-RVR6C22M.js → chunk-HWR2HYQJ.js} +1 -1
- package/dist/{chunk-HH4OXSOV.js → chunk-HY3T4YJV.js} +5 -5
- 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-XWWLMJXT.js → chunk-IRW7AYTP.js} +6 -15
- package/dist/{chunk-N76ZVITA.js → chunk-JFOHGHW5.js} +9 -9
- package/dist/{chunk-DAVYI5H4.js → chunk-JLUCJMAQ.js} +23 -23
- package/dist/{chunk-GVPJL3XS.js → chunk-JP7Y3TKK.js} +5 -5
- package/dist/{chunk-TH7WJLZC.js → chunk-KGBKIJPF.js} +3 -3
- package/dist/{chunk-MQQ44IGX.js → chunk-KKAJC3Z2.js} +3 -3
- package/dist/{chunk-3NK6YTA5.js → chunk-KUWJJD6O.js} +42 -8
- package/dist/{chunk-2GIX4HAT.js → chunk-L26TVIB6.js} +2 -2
- package/dist/{chunk-KLN6HPYM.js → chunk-L3IACZ72.js} +1 -1
- package/dist/{chunk-C6AXM3M7.js → chunk-LQP6XGFU.js} +2 -2
- package/dist/{chunk-YBZJHDSE.js → chunk-MAJWADF7.js} +2 -2
- package/dist/{chunk-7GG3FEK2.js → chunk-MCWCRZM4.js} +4 -4
- package/dist/{chunk-JCW3ZRES.js → chunk-MQBMXAPU.js} +1 -1
- package/dist/{chunk-CREPPDHX.js → chunk-NDTIDWBE.js} +1 -1
- package/dist/{chunk-5EQJOUWM.js → chunk-NHAYKVXG.js} +2 -2
- package/dist/{chunk-FXLUSECC.js → chunk-NKQVOAWN.js} +1 -1
- package/dist/{chunk-ZYISLRS6.js → chunk-OKT2J4ZB.js} +114 -37
- package/dist/{chunk-V5HWHJ4P.js → chunk-OSNMIPHV.js} +1 -1
- package/dist/{chunk-ZFJPOQSY.js → chunk-OZFSKR2W.js} +69 -30
- package/dist/{chunk-3IV56JJW.js → chunk-P56WU3UT.js} +3 -2
- package/dist/{chunk-NQX7WBA4.js → chunk-PJYCPDV5.js} +14 -9
- package/dist/{chunk-LMNFIJ6M.js → chunk-PN3AWRMX.js} +15 -15
- package/dist/{chunk-ZMNQ2YJ6.js → chunk-PNZF7HIU.js} +3 -3
- package/dist/{chunk-R5T4LJSK.js → chunk-PZNAQBHQ.js} +2 -2
- package/dist/{chunk-RH4GKU52.js → chunk-QTXAWC5J.js} +18 -3
- package/dist/{chunk-2I35VGHX.js → chunk-R3QHLKJG.js} +2 -2
- package/dist/{chunk-OGJUSGF7.js → chunk-R6EEBWM3.js} +1 -1
- package/dist/{chunk-V66YKIW6.js → chunk-RYJXSXCV.js} +5 -5
- package/dist/{chunk-CHDQ3HIR.js → chunk-S7DFMJR5.js} +5 -9
- package/dist/{chunk-V2R7RWVY.js → chunk-STJNO6SL.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-IAF6VMPO.js → chunk-TPMZO6S2.js} +1 -1
- package/dist/{chunk-P26WOAA3.js → chunk-TUEBRYPZ.js} +1 -1
- package/dist/{chunk-HOIDGDU5.js → chunk-TVODT2UR.js} +1 -1
- package/dist/{chunk-Z25I7DRV.js → chunk-V5DH3OAC.js} +10 -5
- package/dist/{chunk-ZVXIZ2JD.js → chunk-VP527YC5.js} +35 -6
- package/dist/{chunk-6POQAFEC.js → chunk-W3JMIUHV.js} +1 -1
- package/dist/{chunk-6IYCBW4J.js → chunk-WEC625LQ.js} +1 -1
- package/dist/{chunk-V7MTIMPB.js → chunk-X6QIWZ33.js} +2 -2
- package/dist/{chunk-6GP5IKXE.js → chunk-XSNJ7NT2.js} +1 -1
- package/dist/{chunk-LZFB3HRK.js → chunk-XTKTIFHC.js} +5 -10
- package/dist/{chunk-QSUGIJWV.js → chunk-YMCS6AB7.js} +4 -9
- package/dist/{chunk-FOOH6SCB.js → chunk-YXOCKQZU.js} +2 -2
- package/dist/{chunk-2PPB644A.js → chunk-Z4LFLXRR.js} +1 -1
- package/dist/{chunk-N3QIXC2B.js → chunk-Z6VZYRVN.js} +2 -2
- 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 +36 -36
- package/dist/containers/setup.js +8 -8
- 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 +56 -52
- package/dist/handlers/api_keys.js +53 -53
- package/dist/handlers/audit.js +53 -53
- package/dist/handlers/batch.js +53 -53
- package/dist/handlers/credentials.js +53 -53
- package/dist/handlers/environments.js +53 -53
- package/dist/handlers/events.js +56 -56
- package/dist/handlers/files.js +53 -53
- package/dist/handlers/index.js +100 -92
- package/dist/handlers/license.js +52 -52
- package/dist/handlers/memory.js +53 -53
- package/dist/handlers/metrics.js +52 -52
- package/dist/handlers/models.js +53 -53
- package/dist/handlers/openapi.js +3 -3
- package/dist/handlers/providers.js +52 -52
- package/dist/handlers/resources.js +52 -52
- package/dist/handlers/sessions.js +55 -55
- package/dist/handlers/settings.js +52 -52
- package/dist/handlers/skills-write.js +52 -52
- package/dist/handlers/skills.js +53 -53
- package/dist/handlers/stream.js +52 -52
- package/dist/handlers/tenants.js +53 -53
- package/dist/handlers/threads.js +52 -52
- package/dist/handlers/traces.js +53 -53
- package/dist/handlers/upstream_keys.js +55 -55
- package/dist/handlers/vaults.js +56 -52
- package/dist/handlers/whoami.js +52 -52
- package/dist/http.js +55 -51
- package/dist/index.js +57 -57
- package/dist/init.js +48 -48
- 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 +41 -41
- 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 +37 -37
- package/dist/sessions/threads.js +41 -41
- package/dist/shutdown.js +38 -38
- 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-UE6DNLSV.js} +0 -0
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createSession
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KUWJJD6O.js";
|
|
4
4
|
import {
|
|
5
5
|
createEnvironment,
|
|
6
6
|
deleteEnvironment,
|
|
7
7
|
getEnvironment
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-H6OT5GUL.js";
|
|
9
9
|
import {
|
|
10
10
|
archiveAgent,
|
|
11
11
|
createAgent,
|
|
12
12
|
getAgent
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-BCIFFAGW.js";
|
|
14
14
|
import {
|
|
15
15
|
getDrizzle,
|
|
16
16
|
init_drizzle
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-PZNAQBHQ.js";
|
|
18
18
|
|
|
19
19
|
// src/db/batch.ts
|
|
20
20
|
init_drizzle();
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildPiArgs
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6KWJASEO.js";
|
|
4
4
|
import {
|
|
5
5
|
buildPiAuthEnv,
|
|
6
6
|
validatePiRuntime
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-HWR2HYQJ.js";
|
|
8
8
|
import {
|
|
9
9
|
preparePiOnSandbox
|
|
10
10
|
} from "./chunk-QYSDP6V5.js";
|
|
@@ -4,33 +4,36 @@ import {
|
|
|
4
4
|
tenantFilter
|
|
5
5
|
} from "./chunk-23UKWXJH.js";
|
|
6
6
|
import {
|
|
7
|
+
decodeCursor,
|
|
7
8
|
jsonOk,
|
|
9
|
+
paginatedOk,
|
|
8
10
|
routeWrap
|
|
9
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-QTXAWC5J.js";
|
|
10
12
|
import {
|
|
11
13
|
forwardToAnthropic,
|
|
12
14
|
validateAnthropicProxy
|
|
13
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-MQBMXAPU.js";
|
|
14
16
|
import {
|
|
15
17
|
getProxiedTenantId,
|
|
16
18
|
isProxied,
|
|
17
19
|
markProxied,
|
|
18
20
|
unmarkProxied
|
|
19
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-5U5LRAFJ.js";
|
|
20
22
|
import {
|
|
21
23
|
archiveAgent,
|
|
22
24
|
createAgent,
|
|
23
25
|
getAgent,
|
|
26
|
+
listAgentVersions,
|
|
24
27
|
listAgents,
|
|
25
28
|
updateAgent
|
|
26
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-BCIFFAGW.js";
|
|
27
30
|
import {
|
|
28
31
|
resolveBackend
|
|
29
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-GV6GUSCP.js";
|
|
30
33
|
import {
|
|
31
34
|
getDb,
|
|
32
35
|
init_client
|
|
33
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-W3JMIUHV.js";
|
|
34
37
|
import {
|
|
35
38
|
badRequest,
|
|
36
39
|
conflict,
|
|
@@ -77,25 +80,23 @@ var ToolSchema = z.union([
|
|
|
77
80
|
input_schema: z.record(z.unknown())
|
|
78
81
|
})
|
|
79
82
|
]);
|
|
80
|
-
var McpServerSchema = z.record(
|
|
81
|
-
z.object({
|
|
82
|
-
type: z.enum(["stdio", "http", "sse"]).optional(),
|
|
83
|
-
url: z.string().optional(),
|
|
84
|
-
command: z.union([z.string(), z.array(z.string())]).optional(),
|
|
85
|
-
args: z.array(z.string()).optional(),
|
|
86
|
-
headers: z.record(z.string()).optional(),
|
|
87
|
-
env: z.record(z.string()).optional()
|
|
88
|
-
})
|
|
89
|
-
);
|
|
90
83
|
var ModelConfigSchema = z.object({
|
|
91
84
|
speed: z.enum(["standard", "fast"]).optional()
|
|
92
85
|
});
|
|
93
86
|
var CreateSchema = z.object({
|
|
94
87
|
name: z.string().min(1),
|
|
95
|
-
model: z.string().min(1),
|
|
88
|
+
model: z.object({ id: z.string().min(1), speed: z.enum(["standard", "fast"]).optional() }),
|
|
89
|
+
description: z.string().max(2048).optional(),
|
|
90
|
+
metadata: z.record(z.string(), z.string().max(512)).optional(),
|
|
96
91
|
system: z.string().nullish(),
|
|
97
92
|
tools: z.array(ToolSchema).optional(),
|
|
98
|
-
mcp_servers:
|
|
93
|
+
mcp_servers: z.array(
|
|
94
|
+
z.object({
|
|
95
|
+
name: z.string(),
|
|
96
|
+
type: z.string().optional(),
|
|
97
|
+
url: z.string().optional()
|
|
98
|
+
}).passthrough()
|
|
99
|
+
).optional(),
|
|
99
100
|
engine: z.enum(["claude", "opencode", "codex", "anthropic", "gemini", "factory", "pi"]).optional(),
|
|
100
101
|
webhook_url: z.string().url().optional(),
|
|
101
102
|
webhook_events: z.array(z.string()).optional(),
|
|
@@ -117,16 +118,28 @@ var CreateSchema = z.object({
|
|
|
117
118
|
/** v0.5: required for global admin, ignored for tenant users. */
|
|
118
119
|
tenant_id: z.string().optional()
|
|
119
120
|
}).refine((data) => {
|
|
121
|
+
if (!data.metadata) return true;
|
|
122
|
+
return Object.keys(data.metadata).length <= 16;
|
|
123
|
+
}, "metadata exceeds 16 key limit").refine((data) => {
|
|
120
124
|
if (!data.skills) return true;
|
|
121
125
|
const total = data.skills.reduce((sum, s) => sum + s.content.length, 0);
|
|
122
126
|
return total <= 1024 * 1024;
|
|
123
127
|
}, "Total skills content exceeds 1MB limit");
|
|
124
128
|
var UpdateSchema = z.object({
|
|
129
|
+
version: z.number().int().min(1),
|
|
125
130
|
name: z.string().min(1).optional(),
|
|
126
|
-
model: z.string().min(1).optional(),
|
|
131
|
+
model: z.object({ id: z.string().min(1), speed: z.enum(["standard", "fast"]).optional() }).optional(),
|
|
132
|
+
description: z.string().max(2048).optional(),
|
|
133
|
+
metadata: z.record(z.string(), z.string().max(512)).optional(),
|
|
127
134
|
system: z.string().nullish(),
|
|
128
135
|
tools: z.array(z.unknown()).optional(),
|
|
129
|
-
mcp_servers: z.
|
|
136
|
+
mcp_servers: z.array(
|
|
137
|
+
z.object({
|
|
138
|
+
name: z.string(),
|
|
139
|
+
type: z.string().optional(),
|
|
140
|
+
url: z.string().optional()
|
|
141
|
+
}).passthrough()
|
|
142
|
+
).optional(),
|
|
130
143
|
webhook_url: z.string().url().nullish(),
|
|
131
144
|
webhook_events: z.array(z.string()).optional(),
|
|
132
145
|
/** Null clears the secret (unsigned webhooks); string rotates it. */
|
|
@@ -140,6 +153,9 @@ var UpdateSchema = z.object({
|
|
|
140
153
|
skills: z.array(SkillSchema).max(20).optional(),
|
|
141
154
|
model_config: ModelConfigSchema.optional()
|
|
142
155
|
}).refine((data) => {
|
|
156
|
+
if (!data.metadata) return true;
|
|
157
|
+
return Object.keys(data.metadata).length <= 16;
|
|
158
|
+
}, "metadata exceeds 16 key limit").refine((data) => {
|
|
143
159
|
if (!data.skills) return true;
|
|
144
160
|
const total = data.skills.reduce((sum, s) => sum + s.content.length, 0);
|
|
145
161
|
return total <= 1024 * 1024;
|
|
@@ -172,10 +188,12 @@ function handleCreateAgent(request) {
|
|
|
172
188
|
return proxyRes;
|
|
173
189
|
}
|
|
174
190
|
const backend = resolveBackend(backendName);
|
|
191
|
+
const modelId = parsed.data.model.id;
|
|
192
|
+
const modelSpeed = parsed.data.model.speed;
|
|
175
193
|
const { isValidModelForEngine, FALLBACK_MODELS } = await import("./backends/models.js");
|
|
176
|
-
if (!isValidModelForEngine(backendName,
|
|
194
|
+
if (!isValidModelForEngine(backendName, modelId)) {
|
|
177
195
|
throw badRequest(
|
|
178
|
-
`Model "${
|
|
196
|
+
`Model "${modelId}" is not supported by the ${backendName} engine. Supported models: ${(FALLBACK_MODELS[backendName] ?? []).join(", ")}`
|
|
179
197
|
);
|
|
180
198
|
}
|
|
181
199
|
if (backendName !== "claude" && parsed.data.tools && parsed.data.tools.length > 0) {
|
|
@@ -185,13 +203,27 @@ function handleCreateAgent(request) {
|
|
|
185
203
|
}
|
|
186
204
|
const createErr = backend.validateAgentCreation?.();
|
|
187
205
|
if (createErr) throw badRequest(createErr);
|
|
206
|
+
const mcpInput = parsed.data.mcp_servers;
|
|
207
|
+
let mcpRecord = {};
|
|
208
|
+
if (mcpInput) {
|
|
209
|
+
for (const s of mcpInput) {
|
|
210
|
+
const { name, ...rest } = s;
|
|
211
|
+
mcpRecord[name] = { type: rest.type ?? "url", ...rest };
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
const mergedModelConfig = {
|
|
215
|
+
...parsed.data.model_config ?? {},
|
|
216
|
+
...modelSpeed ? { speed: modelSpeed } : {}
|
|
217
|
+
};
|
|
188
218
|
const nowIso = (/* @__PURE__ */ new Date()).toISOString();
|
|
189
219
|
const agent = createAgent({
|
|
190
220
|
name: parsed.data.name,
|
|
191
|
-
model:
|
|
221
|
+
model: modelId,
|
|
222
|
+
description: parsed.data.description,
|
|
223
|
+
metadata: parsed.data.metadata,
|
|
192
224
|
system: parsed.data.system ?? null,
|
|
193
225
|
tools: parsed.data.tools ?? [{ type: "agent_toolset_20260401" }],
|
|
194
|
-
mcp_servers:
|
|
226
|
+
mcp_servers: mcpRecord,
|
|
195
227
|
backend: backendName,
|
|
196
228
|
webhook_url: parsed.data.webhook_url ?? null,
|
|
197
229
|
webhook_events: parsed.data.webhook_events,
|
|
@@ -203,7 +235,7 @@ function handleCreateAgent(request) {
|
|
|
203
235
|
...s,
|
|
204
236
|
installed_at: s.installed_at ?? nowIso
|
|
205
237
|
})),
|
|
206
|
-
model_config:
|
|
238
|
+
model_config: mergedModelConfig,
|
|
207
239
|
tenant_id: createTenantId
|
|
208
240
|
});
|
|
209
241
|
return jsonOk(agent, 201);
|
|
@@ -215,7 +247,7 @@ function handleListAgents(request) {
|
|
|
215
247
|
const limit = url.searchParams.get("limit");
|
|
216
248
|
const order = url.searchParams.get("order");
|
|
217
249
|
const includeArchived = url.searchParams.get("include_archived") === "true";
|
|
218
|
-
const cursor = url.searchParams.get("page")
|
|
250
|
+
const cursor = decodeCursor(url.searchParams.get("page"));
|
|
219
251
|
const requestedLimit = limit ? Number(limit) : 20;
|
|
220
252
|
const data = listAgents({
|
|
221
253
|
limit: requestedLimit,
|
|
@@ -224,12 +256,7 @@ function handleListAgents(request) {
|
|
|
224
256
|
cursor,
|
|
225
257
|
tenantFilter: tenantFilter(auth)
|
|
226
258
|
});
|
|
227
|
-
return
|
|
228
|
-
data,
|
|
229
|
-
has_more: data.length === requestedLimit,
|
|
230
|
-
first_id: data.length > 0 ? data[0].id : null,
|
|
231
|
-
last_id: data.length > 0 ? data[data.length - 1].id : null
|
|
232
|
-
});
|
|
259
|
+
return paginatedOk(data, requestedLimit);
|
|
233
260
|
});
|
|
234
261
|
}
|
|
235
262
|
function handleGetAgent(request, id) {
|
|
@@ -251,20 +278,36 @@ function handleUpdateAgent(request, id) {
|
|
|
251
278
|
assertProxiedAgentTenant(auth, id);
|
|
252
279
|
return forwardToAnthropic(request, `/v1/agents/${id}`);
|
|
253
280
|
}
|
|
254
|
-
loadAgentForCaller(auth, id);
|
|
281
|
+
const current = loadAgentForCaller(auth, id);
|
|
255
282
|
const body = await request.json().catch(() => null);
|
|
256
283
|
if (body && typeof body === "object" && "backend" in body) {
|
|
257
284
|
throw badRequest("backend cannot be changed after agent creation");
|
|
258
285
|
}
|
|
259
286
|
const parsed = UpdateSchema.safeParse(body);
|
|
260
287
|
if (!parsed.success) throw badRequest(parsed.error.message);
|
|
288
|
+
if (current.version !== parsed.data.version) {
|
|
289
|
+
throw conflict(`Version mismatch: expected ${current.version}, got ${parsed.data.version}`);
|
|
290
|
+
}
|
|
291
|
+
const modelId = parsed.data.model?.id;
|
|
292
|
+
const modelSpeed = parsed.data.model?.speed;
|
|
293
|
+
let mcpRecord;
|
|
294
|
+
if (parsed.data.mcp_servers !== void 0) {
|
|
295
|
+
mcpRecord = {};
|
|
296
|
+
for (const s of parsed.data.mcp_servers) {
|
|
297
|
+
const { name, ...rest } = s;
|
|
298
|
+
mcpRecord[name] = { type: rest.type ?? "url", ...rest };
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
const mergedModelConfig = parsed.data.model_config || modelSpeed ? { ...parsed.data.model_config ?? {}, ...modelSpeed ? { speed: modelSpeed } : {} } : void 0;
|
|
261
302
|
const nowIso = (/* @__PURE__ */ new Date()).toISOString();
|
|
262
303
|
const updated = updateAgent(id, {
|
|
263
304
|
name: parsed.data.name,
|
|
264
|
-
model:
|
|
305
|
+
model: modelId,
|
|
306
|
+
description: parsed.data.description,
|
|
307
|
+
metadata: parsed.data.metadata,
|
|
265
308
|
system: parsed.data.system,
|
|
266
309
|
tools: parsed.data.tools,
|
|
267
|
-
mcp_servers:
|
|
310
|
+
mcp_servers: mcpRecord,
|
|
268
311
|
webhook_url: parsed.data.webhook_url,
|
|
269
312
|
webhook_events: parsed.data.webhook_events,
|
|
270
313
|
webhook_secret: parsed.data.webhook_secret,
|
|
@@ -274,7 +317,7 @@ function handleUpdateAgent(request, id) {
|
|
|
274
317
|
...s,
|
|
275
318
|
installed_at: s.installed_at ?? nowIso
|
|
276
319
|
})),
|
|
277
|
-
model_config:
|
|
320
|
+
model_config: mergedModelConfig
|
|
278
321
|
});
|
|
279
322
|
if (!updated) throw notFound(`agent ${id} not found`);
|
|
280
323
|
return jsonOk(updated);
|
|
@@ -294,11 +337,45 @@ function handleDeleteAgent(request, id) {
|
|
|
294
337
|
return jsonOk({ id, type: "agent_deleted" });
|
|
295
338
|
});
|
|
296
339
|
}
|
|
340
|
+
function handleArchiveAgent(request, id) {
|
|
341
|
+
return routeWrap(request, async ({ auth }) => {
|
|
342
|
+
if (isProxied(id)) {
|
|
343
|
+
assertProxiedAgentTenant(auth, id);
|
|
344
|
+
const res = await forwardToAnthropic(request, `/v1/agents/${id}/archive`);
|
|
345
|
+
if (res.ok) unmarkProxied(id);
|
|
346
|
+
return res;
|
|
347
|
+
}
|
|
348
|
+
loadAgentForCaller(auth, id);
|
|
349
|
+
const ok = archiveAgent(id);
|
|
350
|
+
if (!ok) throw notFound(`agent ${id} not found`);
|
|
351
|
+
const agent = getAgent(id);
|
|
352
|
+
return jsonOk(agent);
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
function handleListAgentVersions(request, id) {
|
|
356
|
+
return routeWrap(request, async ({ auth, request: req }) => {
|
|
357
|
+
loadAgentForCaller(auth, id);
|
|
358
|
+
const url = new URL(req.url);
|
|
359
|
+
const limit = url.searchParams.get("limit");
|
|
360
|
+
const cursorRaw = decodeCursor(url.searchParams.get("page"));
|
|
361
|
+
const cursor = cursorRaw ? Number(cursorRaw) : void 0;
|
|
362
|
+
const requestedLimit = limit ? Number(limit) : 20;
|
|
363
|
+
const data = listAgentVersions(id, {
|
|
364
|
+
limit: requestedLimit,
|
|
365
|
+
cursor
|
|
366
|
+
});
|
|
367
|
+
const hasMore = data.length === requestedLimit;
|
|
368
|
+
const nextPage = hasMore && data.length > 0 ? Buffer.from(String(data[data.length - 1].version)).toString("base64url") : null;
|
|
369
|
+
return jsonOk({ data, next_page: nextPage });
|
|
370
|
+
});
|
|
371
|
+
}
|
|
297
372
|
|
|
298
373
|
export {
|
|
299
374
|
handleCreateAgent,
|
|
300
375
|
handleListAgents,
|
|
301
376
|
handleGetAgent,
|
|
302
377
|
handleUpdateAgent,
|
|
303
|
-
handleDeleteAgent
|
|
378
|
+
handleDeleteAgent,
|
|
379
|
+
handleArchiveAgent,
|
|
380
|
+
handleListAgentVersions
|
|
304
381
|
};
|
|
@@ -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-QTXAWC5J.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,
|
|
@@ -5,9 +5,10 @@ function buildOpencodeArgs(input) {
|
|
|
5
5
|
args.push("--session", input.backendSessionId);
|
|
6
6
|
}
|
|
7
7
|
if (input.agent.model) {
|
|
8
|
+
const modelId = input.agent.model.id;
|
|
8
9
|
const cloudPrefixes = ["claude-", "gpt-", "o1-", "o3-", "o4-", "codex-", "chatgpt-", "gemini-"];
|
|
9
|
-
const isOllama = !
|
|
10
|
-
const modelArg = isOllama ? `ollama/${
|
|
10
|
+
const isOllama = !modelId.includes("/") && !cloudPrefixes.some((p) => modelId.startsWith(p));
|
|
11
|
+
const modelArg = isOllama ? `ollama/${modelId}` : modelId;
|
|
11
12
|
args.push("--model", modelArg);
|
|
12
13
|
}
|
|
13
14
|
return args;
|
|
@@ -7,32 +7,37 @@ function buildCodexArgs(input) {
|
|
|
7
7
|
"--skip-git-repo-check"
|
|
8
8
|
];
|
|
9
9
|
if (input.agent.model) {
|
|
10
|
-
|
|
10
|
+
const modelId = input.agent.model.id;
|
|
11
|
+
args.push("--model", modelId);
|
|
11
12
|
const cloudPrefixes = ["claude-", "gpt-", "o1-", "o3-", "o4-", "codex-", "chatgpt-"];
|
|
12
|
-
const isOllama = !
|
|
13
|
+
const isOllama = !modelId.includes("/") && !cloudPrefixes.some((p) => modelId.startsWith(p));
|
|
13
14
|
if (isOllama) {
|
|
14
15
|
args.push("--oss", "--local-provider", "ollama");
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
if (input.agent.mcp_servers) {
|
|
18
|
-
for (const
|
|
19
|
+
for (const server of input.agent.mcp_servers) {
|
|
20
|
+
const name = server.name;
|
|
19
21
|
if (server.type) {
|
|
20
22
|
args.push("-c", `mcp_servers.${name}.type="${server.type}"`);
|
|
21
23
|
}
|
|
22
24
|
if (server.url) {
|
|
23
25
|
args.push("-c", `mcp_servers.${name}.url="${server.url}"`);
|
|
24
26
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
const command = server.command;
|
|
28
|
+
if (typeof command === "string") {
|
|
29
|
+
args.push("-c", `mcp_servers.${name}.command="${command}"`);
|
|
27
30
|
}
|
|
28
|
-
|
|
31
|
+
const sArgs = server.args;
|
|
32
|
+
if (sArgs && sArgs.length > 0) {
|
|
29
33
|
args.push(
|
|
30
34
|
"-c",
|
|
31
|
-
`mcp_servers.${name}.args=${JSON.stringify(
|
|
35
|
+
`mcp_servers.${name}.args=${JSON.stringify(sArgs)}`
|
|
32
36
|
);
|
|
33
37
|
}
|
|
34
|
-
|
|
35
|
-
|
|
38
|
+
const headers = server.headers;
|
|
39
|
+
if (headers) {
|
|
40
|
+
for (const [hk, hv] of Object.entries(headers)) {
|
|
36
41
|
args.push("-c", `mcp_servers.${name}.http_headers.${hk}="${hv}"`);
|
|
37
42
|
}
|
|
38
43
|
}
|
|
@@ -1,60 +1,60 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runTurn
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JLUCJMAQ.js";
|
|
4
4
|
import {
|
|
5
5
|
enqueueTurn
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-Z4LFLXRR.js";
|
|
7
7
|
import {
|
|
8
8
|
installOtlpExporter
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-JP7Y3TKK.js";
|
|
10
10
|
import {
|
|
11
11
|
redactAppendInput
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-Z6VZYRVN.js";
|
|
13
13
|
import {
|
|
14
14
|
createApiKey,
|
|
15
15
|
listApiKeys
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-T3FQPTOA.js";
|
|
17
17
|
import {
|
|
18
18
|
initSentry
|
|
19
19
|
} from "./chunk-3MQ2FWXS.js";
|
|
20
20
|
import {
|
|
21
21
|
installShutdownHandlers
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-64IQEPSD.js";
|
|
23
23
|
import {
|
|
24
24
|
runSweep
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-AB7MPL3H.js";
|
|
26
26
|
import {
|
|
27
27
|
fillWarmPools,
|
|
28
28
|
reconcileDockerOrphanSandboxes,
|
|
29
29
|
reconcileOrphanSandboxes
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-JFOHGHW5.js";
|
|
31
31
|
import {
|
|
32
32
|
appendEvent,
|
|
33
33
|
installPayloadRedactor
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-5MERXOLJ.js";
|
|
35
35
|
import {
|
|
36
36
|
setSessionSandbox
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-KUWJJD6O.js";
|
|
38
38
|
import {
|
|
39
39
|
readEnvValue,
|
|
40
40
|
upsertEnvLine
|
|
41
41
|
} from "./chunk-YPXI7Q2M.js";
|
|
42
42
|
import {
|
|
43
43
|
getLastUnprocessedUserMessage
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-KGBKIJPF.js";
|
|
45
45
|
import {
|
|
46
46
|
getBySession,
|
|
47
47
|
register
|
|
48
48
|
} from "./chunk-EFOIR7R3.js";
|
|
49
49
|
import {
|
|
50
50
|
resolveContainerProvider
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-UE6DNLSV.js";
|
|
52
52
|
import {
|
|
53
53
|
getEnvironment
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-H6OT5GUL.js";
|
|
55
55
|
import {
|
|
56
56
|
getConfig
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-X6QIWZ33.js";
|
|
58
58
|
import {
|
|
59
59
|
init_clock,
|
|
60
60
|
nowMs
|
|
@@ -62,7 +62,7 @@ import {
|
|
|
62
62
|
import {
|
|
63
63
|
getDb,
|
|
64
64
|
init_client
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-W3JMIUHV.js";
|
|
66
66
|
import {
|
|
67
67
|
getRuntime
|
|
68
68
|
} from "./chunk-UYTSKFGK.js";
|