@nylorun/runtime 0.44.2-beta → 0.45.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 CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.45.0-beta
4
+
5
+ ### Minor Changes
6
+
7
+ - f87ba81: Pods on Agent Substrate (preview, ADR-138 Phase 1a). `nylorun local sandbox enable --context <name> --backend substrate` runs the Tenant's sandboxes as Agent Substrate v1.0 actors instead of agent-sandbox Sandboxes, on a Kubernetes 1.37 cluster with Substrate installed (Docker Desktop's kind cluster, or Substrate's own kind script). It creates the Tenant's namespace and the sandboxes service's RBAC, makes the Tenant's atespace with the service as its editor, gives actors a name for the edge in CoreDNS, and publishes the edge's two ports from the `sandboxes` service: a TLS front, in that container, through which actors reach the Harness API and the gates. The default backend stays agent-sandbox, and nothing changes for a Tenant that does not pass `--backend substrate`.
8
+
9
+ The sandboxes service drives Substrate's API: a template per pod incarnation, pinned by digest; an egress policy from the Agent's network (its preset, hosts and suffixes, which the core now sends with each pod); suspend and resume for `mode`; and the same `/v1/pods` contract, so the core is unchanged. Not yet on Substrate: keys injected at egress, builds and tags; those come in Phase 1b.
10
+
11
+ ### Patch Changes
12
+
13
+ - 0c6634b: `GET /v1/tenant/sandbox`'s `cluster` names its `backend` (`agent-sandbox` or `substrate`) and, on Agent Substrate, its `atespace`. `nylorun doctor sandbox` prints the Tenant's pods line (backend, context, namespace, ready), and Studio's Sandbox section says Agent Substrate with the atespace.
14
+ - Pin core to the tested release.
15
+ - Pin harness to the tested release.
16
+ - Updated dependencies [0c6634b]
17
+ - Updated dependencies
18
+ - @nylorun/core@0.39.0-beta
19
+ - @nylorun/harness@0.35.1-beta
20
+
3
21
  ## 0.44.2-beta
4
22
 
5
23
  ### Patch Changes
@@ -15910,6 +15910,11 @@ export declare const TenantSandboxView: z.ZodObject<{
15910
15910
  namespace: z.ZodString;
15911
15911
  context: z.ZodString;
15912
15912
  ready: z.ZodBoolean;
15913
+ backend: z.ZodOptional<z.ZodEnum<{
15914
+ "agent-sandbox": "agent-sandbox";
15915
+ substrate: "substrate";
15916
+ }>>;
15917
+ atespace: z.ZodOptional<z.ZodString>;
15913
15918
  controllerVersion: z.ZodOptional<z.ZodString>;
15914
15919
  networkPolicy: z.ZodOptional<z.ZodObject<{
15915
15920
  enforced: z.ZodBoolean;
@@ -69,6 +69,8 @@ async function clusterOf(ctx) {
69
69
  namespace: info.namespace,
70
70
  context: info.context,
71
71
  ready,
72
+ backend: info.backend === "substrate" ? "substrate" : "agent-sandbox",
73
+ ...(info.backend === "substrate" && info.atespace ? { atespace: info.atespace } : {}),
72
74
  ...(info.controllerVersion ? { controllerVersion: info.controllerVersion } : {}),
73
75
  ...(info.networkPolicy
74
76
  ? {
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.2.0",
3
3
  "info": {
4
4
  "title": "Nylorun Management API",
5
- "version": "0.44.2-beta",
5
+ "version": "0.45.0-beta",
6
6
  "x-nylorun-protocol": {
7
7
  "min": 16,
8
8
  "max": 18,
@@ -2258,6 +2258,16 @@
2258
2258
  "ready": {
2259
2259
  "type": "boolean"
2260
2260
  },
2261
+ "backend": {
2262
+ "type": "string",
2263
+ "enum": [
2264
+ "agent-sandbox",
2265
+ "substrate"
2266
+ ]
2267
+ },
2268
+ "atespace": {
2269
+ "type": "string"
2270
+ },
2261
2271
  "controllerVersion": {
2262
2272
  "type": "string"
2263
2273
  },
package/dist/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.2.0",
3
3
  "info": {
4
4
  "title": "Nylorun Runtime API",
5
- "version": "0.44.2-beta",
5
+ "version": "0.45.0-beta",
6
6
  "x-nylorun-protocol": {
7
7
  "min": 16,
8
8
  "max": 18,
@@ -24,6 +24,15 @@ export interface PodSpec {
24
24
  readonly env?: Readonly<Record<string, string>>;
25
25
  /** Written to the Sandbox's join Secret before it is applied. */
26
26
  readonly joinToken?: string;
27
+ /**
28
+ * The Agent's resolved network. agent-sandbox ignores it (egress-gate enforces it); the
29
+ * Substrate backend renders the actor's egress policy from it (ADR-138).
30
+ */
31
+ readonly network?: {
32
+ readonly preset: string;
33
+ readonly hosts: readonly string[];
34
+ readonly suffixes: readonly string[];
35
+ };
27
36
  }
28
37
  /** A Sandbox as the service's informers see it (`driver.Status` in Go). */
29
38
  export interface PodStatus {
@@ -52,6 +61,9 @@ export interface ClusterInfo {
52
61
  readonly context: string;
53
62
  readonly controllerVersion?: string;
54
63
  readonly apiVersion?: string;
64
+ /** `agent-sandbox` (also when absent: older services) or `substrate` (ADR-138, preview). */
65
+ readonly backend?: "agent-sandbox" | "substrate";
66
+ readonly atespace?: string;
55
67
  readonly hostAddress?: string;
56
68
  readonly ports?: Readonly<Record<string, number>>;
57
69
  readonly networkPolicy?: {
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { parseSandboxDuration, parseSandboxSize } from "@nylorun/core/define";
7
7
  import { DEFAULT_HARNESS } from "@nylorun/core/contracts";
8
- import { idleMsOf, memoryMiBOf } from "../policy.js";
8
+ import { idleMsOf, memoryMiBOf, resolveNetwork } from "../policy.js";
9
9
  import { podTuningEnv } from "../../tuning.js";
10
10
  import { opIdOf } from "./lifecycle.js";
11
11
  import { runsBuiltinEngine } from "./builtin.js";
@@ -71,5 +71,11 @@ export function podSpecOf(input) {
71
71
  ...podTuningEnv(),
72
72
  },
73
73
  ...(input.joinToken ? { joinToken: input.joinToken } : {}),
74
+ network: networkOf(spec),
74
75
  };
75
76
  }
77
+ /** The spec's network as the sandboxes service reads it. */
78
+ function networkOf(spec) {
79
+ const network = resolveNetwork(spec);
80
+ return { preset: network.preset, hosts: [...network.hosts], suffixes: [...network.suffixes] };
81
+ }
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const RUNTIME_VERSION = "0.44.2-beta";
1
+ export declare const RUNTIME_VERSION = "0.45.0-beta";
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Kept in step with package.json by runtime/server/scripts/check-package.mjs, which runs in npm run check.
2
2
  // release:prepare also rewrites this when it bumps @nylorun/runtime.
3
- export const RUNTIME_VERSION = "0.44.2-beta";
3
+ export const RUNTIME_VERSION = "0.45.0-beta";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nylorun/runtime",
3
- "version": "0.44.2-beta",
3
+ "version": "0.45.0-beta",
4
4
  "description": "Nylorun Runtime: the agent execution Host on Postgres, Restate and S2, and model providers.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -65,8 +65,8 @@
65
65
  "@hono/node-server": "^2.1.5",
66
66
  "@hono/zod-openapi": "^1.6.3",
67
67
  "@modelcontextprotocol/sdk": "^1.32.1",
68
- "@nylorun/core": "0.38.0-beta",
69
- "@nylorun/harness": "0.35.0-beta",
68
+ "@nylorun/core": "0.39.0-beta",
69
+ "@nylorun/harness": "0.35.1-beta",
70
70
  "@restatedev/restate-sdk": "1.17.3",
71
71
  "@restatedev/restate-sdk-clients": "1.17.3",
72
72
  "@s2-dev/streamstore": "0.28.0",