@treeseed/sdk 0.13.0-rc.25 → 0.13.0-rc.26

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.
@@ -0,0 +1,179 @@
1
+ import { z } from "zod";
2
+ const identifier = z.string().regex(/^[a-z][a-z0-9.-]{1,63}$/u);
3
+ const digest = z.string().regex(/^sha256:[a-f0-9]{64}$/u);
4
+ const gitCommit = z.string().regex(/^[a-f0-9]{40}$/u);
5
+ const packageVersion = z.string().min(1).regex(/^[0-9][0-9A-Za-z.+:~-]*$/u);
6
+ const localAlias = z.string().regex(
7
+ /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)*\.localhost$/u,
8
+ "Host aliases must use the .localhost namespace."
9
+ );
10
+ const binding = z.string().regex(/^(?:\[[0-9a-f:]+\]|[^:]+):[1-9][0-9]{0,4}$/iu);
11
+ const deploymentTrackSchema = z.enum(["stable", "development"]);
12
+ const hostComponentSchema = z.object({
13
+ enabled: z.boolean(),
14
+ track: deploymentTrackSchema,
15
+ profile: identifier.optional(),
16
+ aliases: z.record(z.string().min(1), localAlias).default({}),
17
+ configuration: z.record(z.unknown()).default({})
18
+ }).strict();
19
+ const hostConfigurationSchema = z.object({
20
+ schemaVersion: z.literal("treeseed.host/v1"),
21
+ configurationId: identifier,
22
+ generation: z.number().int().positive(),
23
+ host: z.object({
24
+ id: identifier,
25
+ role: identifier,
26
+ architecture: z.literal("amd64")
27
+ }).strict(),
28
+ runtime: z.object({ management: z.enum(["managed", "external"]) }).strict(),
29
+ updates: z.object({
30
+ defaultTrack: deploymentTrackSchema,
31
+ stable: z.object({
32
+ metadataPollSeconds: z.number().int().min(3600),
33
+ maintenanceWindow: z.object({
34
+ weekday: z.enum(["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]),
35
+ localTime: z.string().regex(/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/u),
36
+ jitterMinutes: z.number().int().min(0).max(30)
37
+ }).strict()
38
+ }).strict(),
39
+ development: z.object({ pollSeconds: z.literal(60) }).strict()
40
+ }).strict(),
41
+ components: z.record(identifier, hostComponentSchema),
42
+ network: z.object({
43
+ manager: z.object({ binding, aliases: z.array(localAlias).min(1), sans: z.array(z.string().min(1)), trustedLanCidrs: z.array(z.string().min(1)) }).strict()
44
+ }).strict(),
45
+ secrets: z.record(identifier, z.object({
46
+ provider: z.enum(["file", "systemd-credential", "vault", "aws-secrets-manager"]),
47
+ reference: z.string().min(1)
48
+ }).strict())
49
+ }).strict();
50
+ const packageEndpointSchema = z.object({
51
+ id: identifier,
52
+ protocol: z.enum(["http", "https", "tcp"]),
53
+ port: z.number().int().min(1).max(65535),
54
+ visibility: z.enum(["private", "host"]),
55
+ defaultAlias: localAlias.optional(),
56
+ aliasOverride: z.boolean().default(true),
57
+ tls: z.enum(["edge", "passthrough", "none"]),
58
+ authentication: z.enum(["none", "application", "mtls"]),
59
+ healthGate: z.object({ protocol: z.enum(["http", "https", "tcp"]), path: z.string().startsWith("/").optional(), timeoutSeconds: z.number().int().positive().max(600) }).strict().optional()
60
+ }).strict().superRefine((endpoint, context) => {
61
+ if (endpoint.visibility === "host" && !endpoint.defaultAlias) context.addIssue({ code: z.ZodIssueCode.custom, path: ["defaultAlias"], message: "Host-visible endpoints require a .localhost alias." });
62
+ if (endpoint.visibility === "host" && !endpoint.healthGate) context.addIssue({ code: z.ZodIssueCode.custom, path: ["healthGate"], message: "Host-visible endpoints require a health gate." });
63
+ if (endpoint.visibility === "private" && endpoint.defaultAlias) context.addIssue({ code: z.ZodIssueCode.custom, path: ["defaultAlias"], message: "Private endpoints cannot declare host aliases." });
64
+ });
65
+ const packageRuntimeSchema = z.object({
66
+ schemaVersion: z.literal("treeseed.package-runtime/v1"),
67
+ componentId: identifier,
68
+ version: packageVersion,
69
+ compose: z.object({ projectName: identifier, files: z.array(z.string().min(1)).min(1) }).strict(),
70
+ services: z.array(z.object({ id: identifier, composeService: identifier, endpoints: z.array(packageEndpointSchema) }).strict()).min(1),
71
+ stateVolumes: z.array(z.object({ id: identifier, volume: z.string().min(1), backup: z.enum(["required", "optional", "none"]) }).strict()),
72
+ migrations: z.array(z.object({ id: identifier, order: z.number().int().nonnegative(), backupRequired: z.boolean() }).strict()),
73
+ requiredCapabilities: z.array(identifier)
74
+ }).strict().superRefine((runtime, context) => {
75
+ const endpointIds = runtime.services.flatMap((service) => service.endpoints.map((endpoint) => `${service.id}.${endpoint.id}`));
76
+ if (new Set(endpointIds).size !== endpointIds.length) context.addIssue({ code: z.ZodIssueCode.custom, path: ["services"], message: "Endpoint identities must be unique within a component." });
77
+ });
78
+ const catalogPackageSchema = z.object({ name: z.string().regex(/^treeseed(?:-[a-z0-9-]+)?$/u), version: packageVersion, architecture: z.enum(["amd64", "all"]), origin: z.literal("TreeSeed Deployment"), order: z.number().int().nonnegative() }).strict();
79
+ const catalogImageSchema = z.object({ role: identifier, repository: z.string().regex(/^treeseed\/[a-z0-9-]+$/u), digest, platforms: z.array(z.enum(["linux/amd64", "linux/arm64"])).min(1), consumers: z.array(identifier).min(1) }).strict();
80
+ const componentReleaseSchema = z.object({
81
+ schemaVersion: z.literal("treeseed.component-release/v1"),
82
+ componentId: identifier,
83
+ release: packageVersion,
84
+ track: deploymentTrackSchema,
85
+ source: z.object({ repository: z.string().regex(/^treeseed-ai\/[a-z0-9-]+$/u), commit: gitCommit }).strict(),
86
+ stableBase: z.object({ releaseRange: z.string().min(1), compatibilityId: identifier, catalogDigest: digest }).strict().nullable(),
87
+ packages: z.array(catalogPackageSchema).min(1),
88
+ images: z.array(catalogImageSchema),
89
+ runtime: packageRuntimeSchema,
90
+ runtimeDigest: digest,
91
+ rollback: z.object({ compatible: z.boolean(), requiresBackup: z.boolean() }).strict(),
92
+ evidence: z.object({ provenance: z.array(z.string().url()), sboms: z.array(z.string().url()), vulnerabilities: z.array(z.string().url()) }).strict()
93
+ }).strict().superRefine((release, context) => {
94
+ if (release.runtime.componentId !== release.componentId || release.runtime.version !== release.release) context.addIssue({ code: z.ZodIssueCode.custom, path: ["runtime"], message: "Runtime identity must match its component release." });
95
+ if (release.track === "development" && !release.stableBase) context.addIssue({ code: z.ZodIssueCode.custom, path: ["stableBase"], message: "Development releases require an exact stable-base binding." });
96
+ if (release.track === "stable" && release.stableBase) context.addIssue({ code: z.ZodIssueCode.custom, path: ["stableBase"], message: "Stable releases cannot be overlays." });
97
+ });
98
+ const releaseCatalogSchema = z.object({
99
+ schemaVersion: z.literal("treeseed.release-catalog/v1"),
100
+ release: packageVersion,
101
+ generation: z.number().int().positive(),
102
+ track: deploymentTrackSchema,
103
+ compatibilityId: identifier,
104
+ catalogDigest: digest,
105
+ stableBase: z.object({ release: packageVersion, catalogDigest: digest }).strict().nullable(),
106
+ components: z.array(componentReleaseSchema).min(1),
107
+ createdAt: z.string().datetime()
108
+ }).strict();
109
+ const hostPlanSchema = z.object({ schemaVersion: z.literal("treeseed.host-plan/v1"), planId: identifier, configurationDigest: digest, catalogDigest: digest, changes: z.array(z.object({ componentId: identifier, action: z.enum(["install", "upgrade", "reconfigure", "remove", "noop"]), from: packageVersion.nullable(), to: packageVersion.nullable() }).strict()), blockers: z.array(z.object({ code: identifier, message: z.string().min(1) }).strict()) }).strict();
110
+ const hostBootstrapSchema = z.object({
111
+ schemaVersion: z.literal("treeseed.host-bootstrap/v1"),
112
+ bootstrapId: identifier,
113
+ configurationDigest: digest,
114
+ apt: z.object({ origin: z.literal("TreeSeed Deployment"), suite: deploymentTrackSchema, repository: z.string().url(), keyFingerprint: z.string().regex(/^[A-F0-9]{40}$/u) }).strict(),
115
+ packages: z.array(catalogPackageSchema).min(1),
116
+ credentialPolicy: z.object({ noStoreResponse: z.literal(true), redactedLogging: z.literal(true), ephemeralGeneration: z.literal(true), deleteAfterInstall: z.literal(true) }).strict(),
117
+ createdAt: z.string().datetime()
118
+ }).strict();
119
+ const hostUpdateSchema = z.object({
120
+ schemaVersion: z.literal("treeseed.host-update/v1"),
121
+ updateId: identifier,
122
+ track: deploymentTrackSchema,
123
+ fromCatalogDigest: digest,
124
+ toCatalogDigest: digest,
125
+ components: z.array(z.object({ componentId: identifier, from: packageVersion.nullable(), to: packageVersion, imageDigests: z.array(digest) }).strict()).min(1),
126
+ activation: z.object({ policy: z.enum(["maintenance-window", "continuous"]), eligibleAt: z.string().datetime(), jitterSeconds: z.number().int().nonnegative() }).strict(),
127
+ state: z.enum(["planned", "draining", "applying", "healthy", "failed", "rolled-back"])
128
+ }).strict();
129
+ const hostReceiptSchema = z.object({ schemaVersion: z.literal("treeseed.host-receipt/v1"), receiptId: identifier, planId: identifier, state: z.enum(["known-good", "degraded", "rolled-back"]), configurationDigest: digest, catalogDigest: digest, packages: z.array(catalogPackageSchema), images: z.array(catalogImageSchema), completedAt: z.string().datetime() }).strict();
130
+ const hostBackupSchema = z.object({
131
+ schemaVersion: z.literal("treeseed.host-backup/v1"),
132
+ backupId: identifier,
133
+ componentId: identifier,
134
+ generation: z.number().int().positive(),
135
+ state: z.enum(["pending", "complete", "failed", "verified"]),
136
+ artifacts: z.array(z.object({ volumeId: identifier, location: z.string().min(1), digest, encrypted: z.boolean() }).strict()),
137
+ createdAt: z.string().datetime(),
138
+ verifiedAt: z.string().datetime().nullable()
139
+ }).strict();
140
+ const hostMigrationSchema = z.object({
141
+ schemaVersion: z.literal("treeseed.host-migration/v1"),
142
+ migrationId: identifier,
143
+ componentId: identifier,
144
+ operation: identifier,
145
+ fromGeneration: z.number().int().nonnegative(),
146
+ toGeneration: z.number().int().positive(),
147
+ backupId: identifier.nullable(),
148
+ state: z.enum(["pending", "quiesced", "copied", "verified", "activated", "failed", "rolled-back"]),
149
+ sourceWritersStopped: z.boolean(),
150
+ completedAt: z.string().datetime().nullable()
151
+ }).strict();
152
+ const hostRecoverySchema = z.object({
153
+ schemaVersion: z.literal("treeseed.host-recovery/v1"),
154
+ recoveryId: identifier,
155
+ receiptId: identifier,
156
+ componentId: identifier.nullable(),
157
+ trigger: z.enum(["health-gate", "operator", "boot", "interrupted-update"]),
158
+ action: z.enum(["retry", "rollback", "restore"]),
159
+ targetGeneration: z.number().int().positive(),
160
+ state: z.enum(["pending", "running", "healthy", "failed"]),
161
+ backupId: identifier.nullable(),
162
+ completedAt: z.string().datetime().nullable()
163
+ }).strict();
164
+ export {
165
+ componentReleaseSchema,
166
+ deploymentTrackSchema,
167
+ hostBackupSchema,
168
+ hostBootstrapSchema,
169
+ hostComponentSchema,
170
+ hostConfigurationSchema,
171
+ hostMigrationSchema,
172
+ hostPlanSchema,
173
+ hostReceiptSchema,
174
+ hostRecoverySchema,
175
+ hostUpdateSchema,
176
+ packageEndpointSchema,
177
+ packageRuntimeSchema,
178
+ releaseCatalogSchema
179
+ };
@@ -18,6 +18,28 @@ const operationBindings = {
18
18
  "secrets unlock": local("local.secrets.unlock"),
19
19
  "secrets lock": local("local.secrets.lock"),
20
20
  "secrets rotate": local("local.secrets.rotate"),
21
+ "host status": local("local.host.status"),
22
+ "host doctor": local("local.host.doctor"),
23
+ "host plan": local("local.host.plan"),
24
+ "host apply": local("local.host.apply"),
25
+ "host reconcile": local("local.host.reconcile"),
26
+ "host events": local("local.host.events"),
27
+ "host update status": local("local.host.update.status"),
28
+ "host update check": local("local.host.update.check"),
29
+ "host update apply": local("local.host.update.apply"),
30
+ "host update channel": local("local.host.update.channel"),
31
+ "host update pause": local("local.host.update.pause"),
32
+ "host update resume": local("local.host.update.resume"),
33
+ "host component list": local("local.host.component.list"),
34
+ "host component status": local("local.host.component.status"),
35
+ "host component enable": local("local.host.component.enable"),
36
+ "host component disable": local("local.host.component.disable"),
37
+ "host aliases list": local("local.host.aliases.list"),
38
+ "host recovery status": local("local.host.recovery.status"),
39
+ "host recovery retry": local("local.host.recovery.retry"),
40
+ "host recovery restore": local("local.host.recovery.restore"),
41
+ "host bootstrap status": local("local.host.bootstrap.status"),
42
+ "host bootstrap enroll": local("local.host.bootstrap.enroll"),
21
43
  "agents list": operation("agents.list", [field("path", "projectId", "context", "project", true), ...page()]),
22
44
  "agents show": operation("agents.show", [field("path", "projectId", "context", "project", true), field("path", "agentSlug", "argument", "agent", true)]),
23
45
  "agents classes list": operation("agents.classes.list", [field("path", "projectId", "context", "project", true)]),
@@ -95,6 +117,19 @@ const commandTree = {
95
117
  { nodeType: "leaf", segment: "send", description: "Send a message to project agents through a team discussion channel.", kind: "mutation", arguments: [{ name: "channel", description: "Team discussion channel.", required: true }, { name: "message", description: "Markdown message to send.", required: true }], options: [planOption, { name: "--team", description: "Team identity or slug.", type: "string" }, { name: "--project", description: "Default project for unqualified agent names.", type: "string" }, { name: "--to", description: "Agent target; use project/agent when names may be ambiguous.", type: "string[]" }, { name: "--topic", description: "Optional discussion topic.", type: "string" }, { name: "--wait", description: "Seconds to wait for durable responses.", type: "number", defaultValue: 0 }], authorization: { capability: "agents.execute", confirmation: "never" }, resultSchemaId: "treeseed.communication-send-receipt/v1", execution: unavailable() },
96
118
  branch("auth", [leaf("login", "mutation", void 0, "credential"), leaf("logout", "mutation"), leaf("status")]),
97
119
  branch("secrets", [leaf("list"), leaf("status"), leaf("unlock", "mutation", void 0, "credential"), leaf("lock", "mutation"), leaf("rotate", "mutation", void 0, "credential")]),
120
+ branch("host", [
121
+ leaf("status"),
122
+ leaf("doctor"),
123
+ leaf("plan"),
124
+ leaf("apply", "mutation", void 0, "authority"),
125
+ leaf("reconcile", "mutation", void 0, "authority"),
126
+ leaf("events"),
127
+ branch("update", [leaf("status"), leaf("check", "mutation"), leaf("apply", "mutation", void 0, "authority"), leaf("channel", "mutation", "track", "authority"), leaf("pause", "mutation", void 0, "authority"), leaf("resume", "mutation", void 0, "authority")]),
128
+ branch("component", [leaf("list"), leaf("status", "read", "component"), leaf("enable", "mutation", "component", "authority"), leaf("disable", "mutation", "component", "destructive")]),
129
+ branch("aliases", [leaf("list")]),
130
+ branch("recovery", [leaf("status"), leaf("retry", "mutation", void 0, "authority"), leaf("restore", "mutation", "generation", "destructive")]),
131
+ branch("bootstrap", [leaf("status"), leaf("enroll", "mutation", void 0, "credential")])
132
+ ]),
98
133
  branch("agents", [
99
134
  leaf("list"),
100
135
  leaf("show", "read", "agent"),
@@ -9,27 +9,27 @@ export declare function communicationOperations(): {
9
9
  topic?: string | undefined;
10
10
  waitSeconds?: number | undefined;
11
11
  }, {
12
+ status: "partial" | "failed" | "complete" | "running" | "queued";
12
13
  schemaVersion: "treeseed.communication-send-receipt/v1";
14
+ createdAt: string;
13
15
  responses: {
14
- status: "cancelled" | "failed" | "responded";
16
+ status: "failed" | "cancelled" | "responded";
17
+ createdAt: string;
15
18
  projectId: string;
16
19
  agentSlug: string;
17
20
  assignmentId: string | null;
18
21
  invocationId: string;
19
22
  messageRef: string;
20
23
  markdown: string;
21
- createdAt: string;
22
24
  }[];
23
- status: "failed" | "queued" | "running" | "complete" | "partial";
24
25
  teamId: string;
25
26
  channel: string;
26
27
  topic: string | null;
27
28
  messageRef: string;
28
- createdAt: string;
29
29
  sendId: string;
30
30
  discussionId: string;
31
31
  targets: {
32
- status: "cancelled" | "failed" | "queued" | "running" | "responded";
32
+ status: "failed" | "running" | "cancelled" | "queued" | "responded";
33
33
  projectId: string;
34
34
  agentSlug: string;
35
35
  projectSlug: string;
@@ -42,27 +42,27 @@ export declare function communicationOperations(): {
42
42
  teamId: string;
43
43
  sendId: string;
44
44
  }, {}, undefined, {
45
+ status: "partial" | "failed" | "complete" | "running" | "queued";
45
46
  schemaVersion: "treeseed.communication-send-receipt/v1";
47
+ createdAt: string;
46
48
  responses: {
47
- status: "cancelled" | "failed" | "responded";
49
+ status: "failed" | "cancelled" | "responded";
50
+ createdAt: string;
48
51
  projectId: string;
49
52
  agentSlug: string;
50
53
  assignmentId: string | null;
51
54
  invocationId: string;
52
55
  messageRef: string;
53
56
  markdown: string;
54
- createdAt: string;
55
57
  }[];
56
- status: "failed" | "queued" | "running" | "complete" | "partial";
57
58
  teamId: string;
58
59
  channel: string;
59
60
  topic: string | null;
60
61
  messageRef: string;
61
- createdAt: string;
62
62
  sendId: string;
63
63
  discussionId: string;
64
64
  targets: {
65
- status: "cancelled" | "failed" | "queued" | "running" | "responded";
65
+ status: "failed" | "running" | "cancelled" | "queued" | "responded";
66
66
  projectId: string;
67
67
  agentSlug: string;
68
68
  projectSlug: string;
@@ -81,8 +81,8 @@ export declare function providerDiscussionResponseOperation(): import("../contro
81
81
  summary?: string | undefined;
82
82
  usage?: Record<string, unknown> | undefined;
83
83
  }, {
84
- schemaVersion: "treeseed.provider-discussion-response-receipt/v1";
85
84
  status: "responded";
85
+ schemaVersion: "treeseed.provider-discussion-response-receipt/v1";
86
86
  assignmentId: string;
87
87
  invocationId: string;
88
88
  messageRef: string;
@@ -37,14 +37,14 @@ export declare const communicationTargetSchema: z.ZodObject<{
37
37
  invocationId: z.ZodNullable<z.ZodString>;
38
38
  status: z.ZodEnum<["queued", "running", "responded", "failed", "cancelled"]>;
39
39
  }, "strict", z.ZodTypeAny, {
40
- status: "cancelled" | "failed" | "queued" | "running" | "responded";
40
+ status: "failed" | "running" | "cancelled" | "queued" | "responded";
41
41
  projectId: string;
42
42
  agentSlug: string;
43
43
  projectSlug: string;
44
44
  definitionRevision: string;
45
45
  invocationId: string | null;
46
46
  }, {
47
- status: "cancelled" | "failed" | "queued" | "running" | "responded";
47
+ status: "failed" | "running" | "cancelled" | "queued" | "responded";
48
48
  projectId: string;
49
49
  agentSlug: string;
50
50
  projectSlug: string;
@@ -62,23 +62,23 @@ export declare const communicationResponseSchema: z.ZodObject<{
62
62
  status: z.ZodEnum<["responded", "failed", "cancelled"]>;
63
63
  createdAt: z.ZodString;
64
64
  }, "strict", z.ZodTypeAny, {
65
- status: "cancelled" | "failed" | "responded";
65
+ status: "failed" | "cancelled" | "responded";
66
+ createdAt: string;
66
67
  projectId: string;
67
68
  agentSlug: string;
68
69
  assignmentId: string | null;
69
70
  invocationId: string;
70
71
  messageRef: string;
71
72
  markdown: string;
72
- createdAt: string;
73
73
  }, {
74
- status: "cancelled" | "failed" | "responded";
74
+ status: "failed" | "cancelled" | "responded";
75
+ createdAt: string;
75
76
  projectId: string;
76
77
  agentSlug: string;
77
78
  assignmentId: string | null;
78
79
  invocationId: string;
79
80
  messageRef: string;
80
81
  markdown: string;
81
- createdAt: string;
82
82
  }>;
83
83
  export declare const communicationSendReceiptSchema: z.ZodObject<{
84
84
  schemaVersion: z.ZodLiteral<"treeseed.communication-send-receipt/v1">;
@@ -98,14 +98,14 @@ export declare const communicationSendReceiptSchema: z.ZodObject<{
98
98
  invocationId: z.ZodNullable<z.ZodString>;
99
99
  status: z.ZodEnum<["queued", "running", "responded", "failed", "cancelled"]>;
100
100
  }, "strict", z.ZodTypeAny, {
101
- status: "cancelled" | "failed" | "queued" | "running" | "responded";
101
+ status: "failed" | "running" | "cancelled" | "queued" | "responded";
102
102
  projectId: string;
103
103
  agentSlug: string;
104
104
  projectSlug: string;
105
105
  definitionRevision: string;
106
106
  invocationId: string | null;
107
107
  }, {
108
- status: "cancelled" | "failed" | "queued" | "running" | "responded";
108
+ status: "failed" | "running" | "cancelled" | "queued" | "responded";
109
109
  projectId: string;
110
110
  agentSlug: string;
111
111
  projectSlug: string;
@@ -123,48 +123,48 @@ export declare const communicationSendReceiptSchema: z.ZodObject<{
123
123
  status: z.ZodEnum<["responded", "failed", "cancelled"]>;
124
124
  createdAt: z.ZodString;
125
125
  }, "strict", z.ZodTypeAny, {
126
- status: "cancelled" | "failed" | "responded";
126
+ status: "failed" | "cancelled" | "responded";
127
+ createdAt: string;
127
128
  projectId: string;
128
129
  agentSlug: string;
129
130
  assignmentId: string | null;
130
131
  invocationId: string;
131
132
  messageRef: string;
132
133
  markdown: string;
133
- createdAt: string;
134
134
  }, {
135
- status: "cancelled" | "failed" | "responded";
135
+ status: "failed" | "cancelled" | "responded";
136
+ createdAt: string;
136
137
  projectId: string;
137
138
  agentSlug: string;
138
139
  assignmentId: string | null;
139
140
  invocationId: string;
140
141
  messageRef: string;
141
142
  markdown: string;
142
- createdAt: string;
143
143
  }>, "many">;
144
144
  createdAt: z.ZodString;
145
145
  updatedAt: z.ZodString;
146
146
  }, "strict", z.ZodTypeAny, {
147
+ status: "partial" | "failed" | "complete" | "running" | "queued";
147
148
  schemaVersion: "treeseed.communication-send-receipt/v1";
149
+ createdAt: string;
148
150
  responses: {
149
- status: "cancelled" | "failed" | "responded";
151
+ status: "failed" | "cancelled" | "responded";
152
+ createdAt: string;
150
153
  projectId: string;
151
154
  agentSlug: string;
152
155
  assignmentId: string | null;
153
156
  invocationId: string;
154
157
  messageRef: string;
155
158
  markdown: string;
156
- createdAt: string;
157
159
  }[];
158
- status: "failed" | "queued" | "running" | "complete" | "partial";
159
160
  teamId: string;
160
161
  channel: string;
161
162
  topic: string | null;
162
163
  messageRef: string;
163
- createdAt: string;
164
164
  sendId: string;
165
165
  discussionId: string;
166
166
  targets: {
167
- status: "cancelled" | "failed" | "queued" | "running" | "responded";
167
+ status: "failed" | "running" | "cancelled" | "queued" | "responded";
168
168
  projectId: string;
169
169
  agentSlug: string;
170
170
  projectSlug: string;
@@ -173,27 +173,27 @@ export declare const communicationSendReceiptSchema: z.ZodObject<{
173
173
  }[];
174
174
  updatedAt: string;
175
175
  }, {
176
+ status: "partial" | "failed" | "complete" | "running" | "queued";
176
177
  schemaVersion: "treeseed.communication-send-receipt/v1";
178
+ createdAt: string;
177
179
  responses: {
178
- status: "cancelled" | "failed" | "responded";
180
+ status: "failed" | "cancelled" | "responded";
181
+ createdAt: string;
179
182
  projectId: string;
180
183
  agentSlug: string;
181
184
  assignmentId: string | null;
182
185
  invocationId: string;
183
186
  messageRef: string;
184
187
  markdown: string;
185
- createdAt: string;
186
188
  }[];
187
- status: "failed" | "queued" | "running" | "complete" | "partial";
188
189
  teamId: string;
189
190
  channel: string;
190
191
  topic: string | null;
191
192
  messageRef: string;
192
- createdAt: string;
193
193
  sendId: string;
194
194
  discussionId: string;
195
195
  targets: {
196
- status: "cancelled" | "failed" | "queued" | "running" | "responded";
196
+ status: "failed" | "running" | "cancelled" | "queued" | "responded";
197
197
  projectId: string;
198
198
  agentSlug: string;
199
199
  projectSlug: string;
@@ -229,15 +229,15 @@ export declare const providerDiscussionResponseReceiptSchema: z.ZodObject<{
229
229
  status: z.ZodLiteral<"responded">;
230
230
  settledAt: z.ZodString;
231
231
  }, "strict", z.ZodTypeAny, {
232
- schemaVersion: "treeseed.provider-discussion-response-receipt/v1";
233
232
  status: "responded";
233
+ schemaVersion: "treeseed.provider-discussion-response-receipt/v1";
234
234
  assignmentId: string;
235
235
  invocationId: string;
236
236
  messageRef: string;
237
237
  settledAt: string;
238
238
  }, {
239
- schemaVersion: "treeseed.provider-discussion-response-receipt/v1";
240
239
  status: "responded";
240
+ schemaVersion: "treeseed.provider-discussion-response-receipt/v1";
241
241
  assignmentId: string;
242
242
  invocationId: string;
243
243
  messageRef: string;
@@ -471,27 +471,27 @@ export declare const CONTROL_PLANE_OPERATIONS: {
471
471
  topic?: string | undefined;
472
472
  waitSeconds?: number | undefined;
473
473
  }, {
474
+ status: "partial" | "failed" | "complete" | "running" | "queued";
474
475
  schemaVersion: "treeseed.communication-send-receipt/v1";
476
+ createdAt: string;
475
477
  responses: {
476
- status: "cancelled" | "failed" | "responded";
478
+ status: "failed" | "cancelled" | "responded";
479
+ createdAt: string;
477
480
  projectId: string;
478
481
  agentSlug: string;
479
482
  assignmentId: string | null;
480
483
  invocationId: string;
481
484
  messageRef: string;
482
485
  markdown: string;
483
- createdAt: string;
484
486
  }[];
485
- status: "failed" | "queued" | "running" | "complete" | "partial";
486
487
  teamId: string;
487
488
  channel: string;
488
489
  topic: string | null;
489
490
  messageRef: string;
490
- createdAt: string;
491
491
  sendId: string;
492
492
  discussionId: string;
493
493
  targets: {
494
- status: "cancelled" | "failed" | "queued" | "running" | "responded";
494
+ status: "failed" | "running" | "cancelled" | "queued" | "responded";
495
495
  projectId: string;
496
496
  agentSlug: string;
497
497
  projectSlug: string;
@@ -504,27 +504,27 @@ export declare const CONTROL_PLANE_OPERATIONS: {
504
504
  teamId: string;
505
505
  sendId: string;
506
506
  }, {}, undefined, {
507
+ status: "partial" | "failed" | "complete" | "running" | "queued";
507
508
  schemaVersion: "treeseed.communication-send-receipt/v1";
509
+ createdAt: string;
508
510
  responses: {
509
- status: "cancelled" | "failed" | "responded";
511
+ status: "failed" | "cancelled" | "responded";
512
+ createdAt: string;
510
513
  projectId: string;
511
514
  agentSlug: string;
512
515
  assignmentId: string | null;
513
516
  invocationId: string;
514
517
  messageRef: string;
515
518
  markdown: string;
516
- createdAt: string;
517
519
  }[];
518
- status: "failed" | "queued" | "running" | "complete" | "partial";
519
520
  teamId: string;
520
521
  channel: string;
521
522
  topic: string | null;
522
523
  messageRef: string;
523
- createdAt: string;
524
524
  sendId: string;
525
525
  discussionId: string;
526
526
  targets: {
527
- status: "cancelled" | "failed" | "queued" | "running" | "responded";
527
+ status: "failed" | "running" | "cancelled" | "queued" | "responded";
528
528
  projectId: string;
529
529
  agentSlug: string;
530
530
  projectSlug: string;
@@ -1074,8 +1074,8 @@ export declare const CONTROL_PLANE_OPERATIONS: {
1074
1074
  summary?: string | undefined;
1075
1075
  usage?: Record<string, unknown> | undefined;
1076
1076
  }, {
1077
- schemaVersion: "treeseed.provider-discussion-response-receipt/v1";
1078
1077
  status: "responded";
1078
+ schemaVersion: "treeseed.provider-discussion-response-receipt/v1";
1079
1079
  assignmentId: string;
1080
1080
  invocationId: string;
1081
1081
  messageRef: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@treeseed/sdk",
3
- "version": "0.13.0-rc.25",
3
+ "version": "0.13.0-rc.26",
4
4
  "description": "Portable TreeSeed contracts, standards, and typed remote control-plane clients.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -61,6 +61,10 @@
61
61
  "vitest": "^4.1.2"
62
62
  },
63
63
  "exports": {
64
+ "./deployment": {
65
+ "types": "./dist/deployment/index.d.ts",
66
+ "default": "./dist/deployment/index.js"
67
+ },
64
68
  "./standards": {
65
69
  "types": "./dist/standards/index.d.ts",
66
70
  "default": "./dist/standards/index.js"