@nylorun/runtime 0.15.1-beta → 0.16.0-beta
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/CHANGELOG.md +82 -0
- package/README.md +33 -6
- package/dist/adapters/execution/restate.d.ts +9 -1
- package/dist/adapters/execution/restate.js +64 -5
- package/dist/adapters/replication/pgoutput.js +3 -1
- package/dist/adapters/sandbox/local.d.ts +10 -0
- package/dist/adapters/sandbox/local.js +195 -0
- package/dist/adapters/sandbox/virtual.js +36 -1
- package/dist/admin-openapi.json +37 -3
- package/dist/api/a2a/tasks.js +6 -1
- package/dist/api/ag-ui/history.js +6 -1
- package/dist/api/ag-ui/routes.js +5 -1
- package/dist/api/components.d.ts +2673 -655
- package/dist/api/components.js +17 -1
- package/dist/api/gate/keys.d.ts +4 -3
- package/dist/api/gate/routes.d.ts +19 -3
- package/dist/api/gate/routes.js +162 -53
- package/dist/api/http/app.js +4 -0
- package/dist/api/http/define.d.ts +10 -0
- package/dist/api/http/define.js +2 -1
- package/dist/api/http/routes/artifacts.d.ts +11 -0
- package/dist/api/http/routes/artifacts.js +518 -0
- package/dist/api/http/routes/sandboxes.d.ts +9 -0
- package/dist/api/http/routes/sandboxes.js +152 -0
- package/dist/api/http/routes/sessions.js +3 -1
- package/dist/api/http/routes/tenant.js +36 -2
- package/dist/artifacts/config.d.ts +23 -0
- package/dist/artifacts/config.js +27 -0
- package/dist/artifacts/export.d.ts +8 -0
- package/dist/artifacts/export.js +205 -0
- package/dist/artifacts/files.d.ts +36 -0
- package/dist/artifacts/files.js +45 -0
- package/dist/artifacts/folders.d.ts +60 -0
- package/dist/artifacts/folders.js +209 -0
- package/dist/artifacts/links.d.ts +28 -0
- package/dist/artifacts/links.js +92 -0
- package/dist/artifacts/media-types.d.ts +13 -0
- package/dist/artifacts/media-types.js +80 -0
- package/dist/artifacts/parts.d.ts +34 -0
- package/dist/artifacts/parts.js +38 -0
- package/dist/artifacts/service.d.ts +74 -0
- package/dist/artifacts/service.js +301 -0
- package/dist/artifacts/workspace.d.ts +60 -0
- package/dist/artifacts/workspace.js +57 -0
- package/dist/artifacts/zip.d.ts +10 -0
- package/dist/artifacts/zip.js +126 -0
- package/dist/blob/fs.d.ts +13 -0
- package/dist/blob/fs.js +194 -0
- package/dist/blob/index.d.ts +9 -0
- package/dist/blob/index.js +9 -0
- package/dist/blob/s3.d.ts +42 -0
- package/dist/blob/s3.js +366 -0
- package/dist/blob/types.d.ts +108 -0
- package/dist/blob/types.js +85 -0
- package/dist/core/sandbox-routes.d.ts +2 -2
- package/dist/core/sandbox-routes.js +4 -3
- package/dist/execution/memory.d.ts +11 -1
- package/dist/execution/memory.js +77 -3
- package/dist/execution/types.d.ts +54 -1
- package/dist/execution/types.js +31 -0
- package/dist/gates/contract.d.ts +14 -13
- package/dist/gates/contract.js +13 -12
- package/dist/gates/egress.d.ts +72 -0
- package/dist/gates/egress.js +319 -0
- package/dist/gates/handler.d.ts +3 -0
- package/dist/gates/handler.js +3 -2
- package/dist/gates/http-client.d.ts +3 -2
- package/dist/gates/http-client.js +17 -6
- package/dist/gates/in-process.d.ts +13 -1
- package/dist/gates/in-process.js +11 -0
- package/dist/gates/inflight.d.ts +23 -4
- package/dist/gates/inflight.js +18 -4
- package/dist/gates/model-gate.d.ts +6 -2
- package/dist/gates/tool-calls.d.ts +9 -5
- package/dist/gates/tool-calls.js +6 -6
- package/dist/gates/tool-client.d.ts +9 -2
- package/dist/gates/tool-client.js +56 -22
- package/dist/gates/tool-contract.d.ts +12 -7
- package/dist/gates/tool-contract.js +10 -4
- package/dist/gates/tool-gate.d.ts +1 -0
- package/dist/harness/calls.d.ts +52 -0
- package/dist/harness/calls.js +113 -0
- package/dist/harness/executors.d.ts +22 -0
- package/dist/harness/executors.js +96 -0
- package/dist/harness/main.d.ts +6 -0
- package/dist/harness/main.js +103 -0
- package/dist/harness/pod.d.ts +21 -0
- package/dist/harness/pod.js +119 -0
- package/dist/harness/run-tokens.d.ts +18 -0
- package/dist/harness/run-tokens.js +15 -0
- package/dist/harness/service.d.ts +46 -0
- package/dist/harness/service.js +179 -0
- package/dist/harness/ws-client.d.ts +43 -0
- package/dist/harness/ws-client.js +122 -0
- package/dist/harness/ws-port.d.ts +22 -0
- package/dist/harness/ws-port.js +78 -0
- package/dist/harness-api/in-process.d.ts +24 -0
- package/dist/harness-api/in-process.js +119 -0
- package/dist/harness-api/record.d.ts +44 -0
- package/dist/harness-api/record.js +250 -0
- package/dist/harness-api/renew.d.ts +37 -0
- package/dist/harness-api/renew.js +77 -0
- package/dist/harness-api/server.d.ts +104 -0
- package/dist/harness-api/server.js +408 -0
- package/dist/harness-api/start.d.ts +36 -0
- package/dist/harness-api/start.js +118 -0
- package/dist/harness-api/workspace.d.ts +53 -0
- package/dist/harness-api/workspace.js +201 -0
- package/dist/harness-api/ws-server.d.ts +34 -0
- package/dist/harness-api/ws-server.js +227 -0
- package/dist/host/app.js +23 -2
- package/dist/host/gates.d.ts +27 -2
- package/dist/host/gates.js +46 -1
- package/dist/host/http.d.ts +4 -1
- package/dist/host/http.js +6 -1
- package/dist/host/main.js +135 -27
- package/dist/host/stack-config.d.ts +101 -1
- package/dist/host/stack-config.js +199 -8
- package/dist/mcp/snapshot.d.ts +8 -1
- package/dist/mcp/snapshot.js +28 -0
- package/dist/media.d.ts +5 -24
- package/dist/media.js +5 -0
- package/dist/model/pi-model.d.ts +6 -2
- package/dist/model/pi-model.js +39 -22
- package/dist/node/index.d.ts +1 -1
- package/dist/node/index.js +1 -1
- package/dist/openapi.json +15245 -8850
- package/dist/record/index.d.ts +1 -0
- package/dist/record/index.js +1 -0
- package/dist/record/sandbox.d.ts +25 -0
- package/dist/record/sandbox.js +43 -0
- package/dist/sandbox/capability.d.ts +3 -0
- package/dist/sandbox/capability.js +10 -0
- package/dist/sandbox/egress-token.d.ts +26 -0
- package/dist/sandbox/egress-token.js +8 -0
- package/dist/sandbox/join.d.ts +37 -0
- package/dist/sandbox/join.js +165 -0
- package/dist/sandbox/manager.d.ts +99 -34
- package/dist/sandbox/manager.js +216 -84
- package/dist/sandbox/placement.d.ts +27 -0
- package/dist/sandbox/placement.js +44 -0
- package/dist/sandbox/pods/client.d.ts +90 -0
- package/dist/sandbox/pods/client.js +79 -0
- package/dist/sandbox/pods/lifecycle.d.ts +91 -0
- package/dist/sandbox/pods/lifecycle.js +178 -0
- package/dist/sandbox/pods/name.d.ts +1 -0
- package/dist/sandbox/pods/name.js +28 -0
- package/dist/sandbox/pods/network-gate.d.ts +25 -0
- package/dist/sandbox/pods/network-gate.js +71 -0
- package/dist/sandbox/pods/reconcile.d.ts +11 -0
- package/dist/sandbox/pods/reconcile.js +152 -0
- package/dist/sandbox/pods/spec.d.ts +45 -0
- package/dist/sandbox/pods/spec.js +62 -0
- package/dist/sandbox/records.d.ts +29 -0
- package/dist/sandbox/records.js +79 -0
- package/dist/sandbox/resolve.d.ts +5 -0
- package/dist/sandbox/resolve.js +3 -2
- package/dist/sandbox/session-sandbox.js +7 -5
- package/dist/sandbox/share.d.ts +11 -0
- package/dist/sandbox/share.js +10 -0
- package/dist/sandbox/tenant-config.d.ts +16 -1
- package/dist/sandbox/tenant-config.js +9 -0
- package/dist/sandbox/types.d.ts +29 -1
- package/dist/sandbox/types.js +13 -1
- package/dist/store/postgres/drizzle/0004_sandbox_resources.sql +20 -0
- package/dist/store/postgres/drizzle/0005_artifacts.sql +27 -0
- package/dist/store/postgres/drizzle/0006_folder_artifacts.sql +12 -0
- package/dist/store/postgres/drizzle/0007_sandbox_pods.sql +14 -0
- package/dist/store/postgres/drizzle/meta/_journal.json +28 -0
- package/dist/store/postgres/record-writer.d.ts +6 -1
- package/dist/store/postgres/record-writer.js +20 -2
- package/dist/store/postgres/schema.d.ts +894 -0
- package/dist/store/postgres/schema.js +130 -2
- package/dist/store/postgres/store.js +289 -4
- package/dist/store/types.d.ts +143 -6
- package/dist/streams/control.d.ts +2 -0
- package/dist/streams/control.js +5 -0
- package/dist/streams/types.d.ts +10 -1
- package/dist/tenant/advance.js +218 -160
- package/dist/tenant/artifact-tool.d.ts +5 -0
- package/dist/tenant/artifact-tool.js +119 -0
- package/dist/tenant/commands.js +30 -5
- package/dist/tenant/context.d.ts +64 -5
- package/dist/tenant/effects.d.ts +19 -13
- package/dist/tenant/effects.js +5 -382
- package/dist/tenant/history.d.ts +13 -23
- package/dist/tenant/history.js +14 -62
- package/dist/tenant/host-token.d.ts +92 -0
- package/dist/tenant/host-token.js +179 -0
- package/dist/tenant/module.js +1 -0
- package/dist/tenant/paths.d.ts +2 -1
- package/dist/tenant/paths.js +3 -1
- package/dist/tenant/reset.d.ts +5 -2
- package/dist/tenant/reset.js +22 -2
- package/dist/tenant/run-grants.d.ts +49 -0
- package/dist/tenant/run-grants.js +62 -0
- package/dist/tenant/run-token.d.ts +70 -0
- package/dist/tenant/run-token.js +138 -0
- package/dist/tenant/runtime.d.ts +38 -0
- package/dist/tenant/runtime.js +120 -32
- package/dist/tenant/sandboxes.d.ts +119 -0
- package/dist/tenant/sandboxes.js +551 -0
- package/dist/tenant/session.d.ts +2 -13
- package/dist/tenant/session.js +4 -28
- package/dist/tenant/sessions.d.ts +5 -0
- package/dist/tenant/sessions.js +28 -1
- package/dist/tenant/status.d.ts +8 -3
- package/dist/tenant/status.js +5 -0
- package/dist/tenant/streams.d.ts +7 -0
- package/dist/tenant/streams.js +24 -1
- package/dist/tenant/sweep.js +37 -4
- package/dist/tenant/tokens.js +9 -2
- package/dist/tenant/types.d.ts +18 -1
- package/dist/tenant/worker.d.ts +11 -5
- package/dist/tenant/worker.js +12 -6
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +13 -10
- package/dist/adapters/media.d.ts +0 -24
- package/dist/adapters/media.js +0 -111
package/dist/admin-openapi.json
CHANGED
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
"openapi": "3.2.0",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "Nylorun Runtime: Admin API",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.16.0-beta",
|
|
6
6
|
"description": "The Host's status, its Tenant's state and shutdown, with the admin key. Served on the operator listener when the Host has one; the public listener answers these routes with the opaque 404.",
|
|
7
7
|
"x-nylorun-protocol": {
|
|
8
8
|
"min": 4,
|
|
9
|
-
"max":
|
|
9
|
+
"max": 6,
|
|
10
10
|
"features": [
|
|
11
11
|
"runtime-tenants",
|
|
12
12
|
"admin-status",
|
|
13
13
|
"studio-principal",
|
|
14
14
|
"action-endpoints",
|
|
15
|
+
"artifacts",
|
|
15
16
|
"tenant-fixture-model",
|
|
16
17
|
"transcript-events",
|
|
17
18
|
"derived-principals",
|
|
@@ -20,7 +21,9 @@
|
|
|
20
21
|
"browser-access",
|
|
21
22
|
"ag-ui-endpoint",
|
|
22
23
|
"a2a-endpoint",
|
|
23
|
-
"action-endpoints"
|
|
24
|
+
"action-endpoints",
|
|
25
|
+
"sandboxes",
|
|
26
|
+
"sandbox-pods"
|
|
24
27
|
]
|
|
25
28
|
}
|
|
26
29
|
},
|
|
@@ -238,6 +241,31 @@
|
|
|
238
241
|
"lastError"
|
|
239
242
|
],
|
|
240
243
|
"additionalProperties": false
|
|
244
|
+
},
|
|
245
|
+
"harness": {
|
|
246
|
+
"type": "object",
|
|
247
|
+
"properties": {
|
|
248
|
+
"mode": {
|
|
249
|
+
"type": "string",
|
|
250
|
+
"enum": [
|
|
251
|
+
"in-process",
|
|
252
|
+
"remote"
|
|
253
|
+
]
|
|
254
|
+
},
|
|
255
|
+
"connected": {
|
|
256
|
+
"type": "integer",
|
|
257
|
+
"minimum": 0
|
|
258
|
+
},
|
|
259
|
+
"workspace": {
|
|
260
|
+
"type": "boolean"
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
"required": [
|
|
264
|
+
"mode",
|
|
265
|
+
"connected",
|
|
266
|
+
"workspace"
|
|
267
|
+
],
|
|
268
|
+
"additionalProperties": false
|
|
241
269
|
}
|
|
242
270
|
},
|
|
243
271
|
"required": [
|
|
@@ -306,6 +334,12 @@
|
|
|
306
334
|
"request_rejected",
|
|
307
335
|
"invalid_request",
|
|
308
336
|
"subject_required",
|
|
337
|
+
"sandbox_not_granted",
|
|
338
|
+
"sandbox_busy",
|
|
339
|
+
"sandbox_unavailable",
|
|
340
|
+
"placement_refused",
|
|
341
|
+
"sandbox_lost",
|
|
342
|
+
"sandbox_expired",
|
|
309
343
|
"internal_error"
|
|
310
344
|
]
|
|
311
345
|
},
|
package/dist/api/a2a/tasks.js
CHANGED
|
@@ -86,7 +86,12 @@ export function historyOf(events, contextId, taskId) {
|
|
|
86
86
|
const payload = (event.payload ?? {});
|
|
87
87
|
switch (event.type) {
|
|
88
88
|
case "command.message":
|
|
89
|
-
add(clientMessageId(event), "ROLE_USER",
|
|
89
|
+
add(clientMessageId(event), "ROLE_USER", "content" in payload
|
|
90
|
+
? [{ text: String(payload.content) }]
|
|
91
|
+
: Array.isArray(payload.parts)
|
|
92
|
+
? // Parts (protocol 6): text as text, a file part as its artifact reference.
|
|
93
|
+
payload.parts.map((part) => part.type === "text" ? valuePart(part.text) : valuePart(part))
|
|
94
|
+
: [valuePart(payload.data)]);
|
|
90
95
|
break;
|
|
91
96
|
case "command.respond":
|
|
92
97
|
add(clientMessageId(event), "ROLE_USER", [valuePart(payload.value)]);
|
|
@@ -11,7 +11,12 @@ export function messagesFromEvents(items) {
|
|
|
11
11
|
// The AG-UI endpoint sends the client's message id as the idempotency key.
|
|
12
12
|
id: p.idempotencyKey ?? raw.eventId,
|
|
13
13
|
role: "user",
|
|
14
|
-
content: typeof p.content === "string"
|
|
14
|
+
content: typeof p.content === "string"
|
|
15
|
+
? p.content
|
|
16
|
+
: Array.isArray(p.parts)
|
|
17
|
+
? // A message with parts (protocol 6): its text; files are artifacts, not text.
|
|
18
|
+
p.parts.flatMap((part) => (typeof part.text === "string" ? [part.text] : [])).join("\n")
|
|
19
|
+
: JSON.stringify(p.data),
|
|
15
20
|
});
|
|
16
21
|
sawAssistant = false;
|
|
17
22
|
continue;
|
package/dist/api/ag-ui/routes.js
CHANGED
|
@@ -33,6 +33,7 @@ import { fail, HttpError } from "../../tenant/http.js";
|
|
|
33
33
|
import { observeSession, readHistory, StreamClosed, } from "../../tenant/session-streams.js";
|
|
34
34
|
import { putSession, sessionView } from "../../tenant/sessions.js";
|
|
35
35
|
import { mayUseAgent } from "../../tenant/tokens.js";
|
|
36
|
+
import { sandboxGrantsOf } from "../../tenant/sandboxes.js";
|
|
36
37
|
const HEARTBEAT_MS = 15_000;
|
|
37
38
|
const TERMINAL = new Set([
|
|
38
39
|
"turn.completed",
|
|
@@ -244,7 +245,10 @@ export async function startRun(ctx, scope, agentId, caller, body, response) {
|
|
|
244
245
|
agentId,
|
|
245
246
|
ownerUserId: caller.subject,
|
|
246
247
|
...sessionOptions(input, scope),
|
|
247
|
-
}, caller.access, {
|
|
248
|
+
}, caller.access, {
|
|
249
|
+
createOnly: true,
|
|
250
|
+
...(sandboxGrantsOf(scope) === undefined ? {} : { sandboxGrants: sandboxGrantsOf(scope) }),
|
|
251
|
+
});
|
|
248
252
|
const translator = new RunTranslator(input.threadId, input.runId);
|
|
249
253
|
let cursor;
|
|
250
254
|
try {
|