@treeseed/sdk 0.13.0-rc.93 → 0.13.0-rc.95

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.
@@ -1 +1 @@
1
- {"completedAt":"2026-09-07T10:20:08.311Z"}
1
+ {"completedAt":"2026-09-07T12:41:51.583Z"}
@@ -46,3 +46,20 @@ export declare const aiInstanceDraftSchema: z.ZodEffects<z.ZodObject<{
46
46
  model: string;
47
47
  }>;
48
48
  export type AiInstanceDraft = z.infer<typeof aiInstanceDraftSchema>;
49
+ /** Registration adopts an already managed local runtime; it never provisions a cloud machine. */
50
+ export declare const aiNodeRegistrationSchema: z.ZodObject<{
51
+ name: z.ZodString;
52
+ projectId: z.ZodString;
53
+ purpose: z.ZodEnum<["inference", "training", "both"]>;
54
+ model: z.ZodString;
55
+ }, "strict", z.ZodTypeAny, {
56
+ name: string;
57
+ projectId: string;
58
+ purpose: "inference" | "training" | "both";
59
+ model: string;
60
+ }, {
61
+ name: string;
62
+ projectId: string;
63
+ purpose: "inference" | "training" | "both";
64
+ model: string;
65
+ }>;
@@ -18,6 +18,13 @@ const aiInstanceDraftSchema = z.object({
18
18
  }).strict().superRefine((value, context) => {
19
19
  if (value.purpose !== "inference" && !value.storageConnectionId) context.addIssue({ code: "custom", path: ["storageConnectionId"], message: "Training requires a storage connection." });
20
20
  });
21
+ const aiNodeRegistrationSchema = z.object({
22
+ name: z.string().trim().min(1).max(128),
23
+ projectId: z.string().uuid(),
24
+ purpose: z.enum(["inference", "training", "both"]),
25
+ model: z.string().trim().min(1).max(512)
26
+ }).strict();
21
27
  export {
22
- aiInstanceDraftSchema
28
+ aiInstanceDraftSchema,
29
+ aiNodeRegistrationSchema
23
30
  };
@@ -90,6 +90,7 @@ const operationBindings = {
90
90
  "host initialize": local("local.host.initialize"),
91
91
  "dev session start": local("local.dev.session.start"),
92
92
  "dev session stop": local("local.dev.session.stop"),
93
+ "dev session recover": local("local.dev.session.recover"),
93
94
  "dev use": local("local.dev.use"),
94
95
  "dev rebuild": local("local.dev.rebuild"),
95
96
  "dev status": local("local.dev.status"),
@@ -386,7 +387,8 @@ const commandTree = {
386
387
  ]),
387
388
  branch("session", [
388
389
  developmentCommand("start", "mutation", "manifest", [{ name: "--actor", description: "Audited development-session actor.", type: "string" }, { name: "--lease-seconds", description: "Requested bounded lease duration.", type: "number" }]),
389
- developmentCommand("stop", "mutation", void 0, [{ name: "--session", description: "Development session identity.", type: "string" }, { name: "--restore", description: "Restore released routes and targets.", type: "boolean" }])
390
+ developmentCommand("stop", "mutation", void 0, [{ name: "--session", description: "Development session identity.", type: "string" }, { name: "--restore", description: "Restore released routes and targets.", type: "boolean" }]),
391
+ developmentCommand("recover", "mutation", void 0, [{ name: "--session", description: "Exact manager session whose local custody should be recovered.", type: "string", required: true }])
390
392
  ]),
391
393
  developmentCommand("use", "mutation", "selection", [{ name: "--session", description: "Development session identity.", type: "string" }, { name: "--target", description: "Additional project.target=mode selections.", type: "string[]" }]),
392
394
  developmentCommand("rebuild", "mutation", "target", [{ name: "--session", description: "Development session identity.", type: "string" }]),
@@ -1,4 +1,13 @@
1
1
  export declare const AI_INSTANCE_OPERATIONS: {
2
+ register: import("../../control-plane-operation.js").ControlPlaneOperationBinding<{
3
+ teamId: string;
4
+ instanceId: string;
5
+ }, {}, {
6
+ name: string;
7
+ projectId: string;
8
+ purpose: "inference" | "training" | "both";
9
+ model: string;
10
+ }, Record<string, unknown>>;
2
11
  list: import("../../control-plane-operation.js").ControlPlaneOperationBinding<{
3
12
  teamId: string;
4
13
  }, {
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { defineOperation } from "../../operation-builder.js";
3
- import { aiInstanceDraftSchema } from "../../../deployment/ai-instance.js";
3
+ import { aiInstanceDraftSchema, aiNodeRegistrationSchema } from "../../../deployment/ai-instance.js";
4
4
  const team = z.object({ teamId: z.string().min(1) }).strict(), instance = team.extend({ instanceId: z.string().uuid() });
5
5
  const empty = z.object({}).strict(), record = z.record(z.unknown());
6
6
  function descriptor(action, method, path) {
@@ -8,6 +8,7 @@ function descriptor(action, method, path) {
8
8
  return { operationId: `ai.instances.${action}`, description: `${action} a team-owned AI configuration; no cloud provisioning.`, rest: { method, path }, parameters: `treeseed.ai.instances.${action}.parameters/v1`, capability: read ? "infrastructure.read" : "infrastructure.write", authentication: "oauth", oauthScopes: read ? ["treeseed:read"] : ["treeseed:admin"], kind: read ? "read" : "mutation", riskClass: "ordinary", confirmation: "never", surfaces: ["rest", "cli"], cacheScope: read ? "principal" : "none", pagination: "none", concurrencyRequired: !read };
9
9
  }
10
10
  const AI_INSTANCE_OPERATIONS = {
11
+ register: defineOperation(descriptor("register", "PUT", "/v1/teams/{teamId}/ai-instances/{instanceId}/registration"), { path: instance, query: empty, body: aiNodeRegistrationSchema, output: record }),
11
12
  list: defineOperation({ ...descriptor("list", "GET", "/v1/teams/{teamId}/ai-instances"), pagination: "cursor" }, { path: team, query: z.object({ cursor: z.string().optional(), limit: z.coerce.number().int().min(1).max(100).optional() }).strict(), body: z.undefined(), output: record }),
12
13
  show: defineOperation(descriptor("show", "GET", "/v1/teams/{teamId}/ai-instances/{instanceId}"), { path: instance, query: empty, body: z.undefined(), output: record }),
13
14
  put: defineOperation(descriptor("put", "PUT", "/v1/teams/{teamId}/ai-instances/{instanceId}"), { path: instance, query: empty, body: aiInstanceDraftSchema, output: record }),
@@ -1,6 +1,15 @@
1
1
  import type { ControlPlaneOperationDescriptor } from './control-plane-operation.js';
2
2
  export declare const CONTROL_PLANE_OPERATIONS: {
3
3
  readonly aiInstances: {
4
+ register: import("./control-plane-operation.js").ControlPlaneOperationBinding<{
5
+ teamId: string;
6
+ instanceId: string;
7
+ }, {}, {
8
+ name: string;
9
+ projectId: string;
10
+ purpose: "inference" | "training" | "both";
11
+ model: string;
12
+ }, Record<string, unknown>>;
4
13
  list: import("./control-plane-operation.js").ControlPlaneOperationBinding<{
5
14
  teamId: string;
6
15
  }, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@treeseed/sdk",
3
- "version": "0.13.0-rc.93",
3
+ "version": "0.13.0-rc.95",
4
4
  "description": "Portable TreeSeed contracts, standards, and typed remote control-plane clients.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {