@treeseed/sdk 0.13.0-rc.105 → 0.13.0-rc.107

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,233 @@
1
+ import { z } from 'zod';
2
+ /** Encrypted, single-use server-side state; never an application cookie value. */
3
+ export declare const browserLoginTransactionSchema: z.ZodObject<{
4
+ state: z.ZodString;
5
+ nonce: z.ZodString;
6
+ verifier: z.ZodString;
7
+ expiresAt: z.ZodNumber;
8
+ issuer: z.ZodEffects<z.ZodString, string, string>;
9
+ clientId: z.ZodString;
10
+ redirectUri: z.ZodEffects<z.ZodString, string, string>;
11
+ resource: z.ZodEffects<z.ZodString, string, string>;
12
+ scopes: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
13
+ }, "strict", z.ZodTypeAny, {
14
+ issuer: string;
15
+ resource: string;
16
+ scopes: string[];
17
+ clientId: string;
18
+ state: string;
19
+ nonce: string;
20
+ verifier: string;
21
+ expiresAt: number;
22
+ redirectUri: string;
23
+ }, {
24
+ issuer: string;
25
+ resource: string;
26
+ scopes: string[];
27
+ clientId: string;
28
+ state: string;
29
+ nonce: string;
30
+ verifier: string;
31
+ expiresAt: number;
32
+ redirectUri: string;
33
+ }>;
34
+ export type BrowserLoginTransaction = z.infer<typeof browserLoginTransactionSchema>;
35
+ /** Private BFF protocol, authenticated with a registered application workload.
36
+ * These operations are not user/browser or agent-tool credential endpoints.
37
+ * The server chooses the app namespace from authentication, not request fields.
38
+ */
39
+ export declare const BROWSER_SESSION_BRIDGE_PATH = "/internal/identity/browser/v1";
40
+ export declare const BROWSER_SESSION_PERMISSION = "identity:sessions:manage";
41
+ export declare const BROWSER_SESSION_SCOPE = "treeseed:identity:sessions";
42
+ export declare const browserSessionRequests: {
43
+ begin: z.ZodObject<{
44
+ browserBinding: z.ZodString;
45
+ }, "strict", z.ZodTypeAny, {
46
+ browserBinding: string;
47
+ }, {
48
+ browserBinding: string;
49
+ }>;
50
+ finish: z.ZodObject<{
51
+ browserBinding: z.ZodString;
52
+ callback: z.ZodEffects<z.ZodString, string, string>;
53
+ }, "strict", z.ZodTypeAny, {
54
+ browserBinding: string;
55
+ callback: string;
56
+ }, {
57
+ browserBinding: string;
58
+ callback: string;
59
+ }>;
60
+ credentials: z.ZodObject<{
61
+ handle: z.ZodString;
62
+ }, "strict", z.ZodTypeAny, {
63
+ handle: string;
64
+ }, {
65
+ handle: string;
66
+ }>;
67
+ logout: z.ZodObject<{
68
+ handle: z.ZodString;
69
+ }, "strict", z.ZodTypeAny, {
70
+ handle: string;
71
+ }, {
72
+ handle: string;
73
+ }>;
74
+ };
75
+ export declare const browserSessionResponses: {
76
+ begin: z.ZodObject<{
77
+ authorizationUrl: z.ZodEffects<z.ZodString, string, string>;
78
+ }, "strict", z.ZodTypeAny, {
79
+ authorizationUrl: string;
80
+ }, {
81
+ authorizationUrl: string;
82
+ }>;
83
+ finish: z.ZodObject<{
84
+ handle: z.ZodString;
85
+ expiresAt: z.ZodString;
86
+ }, "strict", z.ZodTypeAny, {
87
+ expiresAt: string;
88
+ handle: string;
89
+ }, {
90
+ expiresAt: string;
91
+ handle: string;
92
+ }>;
93
+ credentials: z.ZodEffects<z.ZodObject<{
94
+ accessToken: z.ZodString;
95
+ resource: z.ZodEffects<z.ZodString, string, string>;
96
+ expiresAt: z.ZodNumber;
97
+ principal: z.ZodObject<{
98
+ principalId: z.ZodEffects<z.ZodString, string, string>;
99
+ kind: z.ZodEnum<["human", "service", "provider", "agent"]>;
100
+ identity: z.ZodObject<{
101
+ issuer: z.ZodEffects<z.ZodString, string, string>;
102
+ subject: z.ZodEffects<z.ZodString, string, string>;
103
+ }, "strict", z.ZodTypeAny, {
104
+ issuer: string;
105
+ subject: string;
106
+ }, {
107
+ issuer: string;
108
+ subject: string;
109
+ }>;
110
+ actor: z.ZodOptional<z.ZodObject<{
111
+ issuer: z.ZodEffects<z.ZodString, string, string>;
112
+ subject: z.ZodEffects<z.ZodString, string, string>;
113
+ }, "strict", z.ZodTypeAny, {
114
+ issuer: string;
115
+ subject: string;
116
+ }, {
117
+ issuer: string;
118
+ subject: string;
119
+ }>>;
120
+ audience: z.ZodEffects<z.ZodString, string, string>;
121
+ scopes: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
122
+ }, "strict", z.ZodTypeAny, {
123
+ scopes: string[];
124
+ identity: {
125
+ issuer: string;
126
+ subject: string;
127
+ };
128
+ principalId: string;
129
+ kind: "human" | "service" | "provider" | "agent";
130
+ audience: string;
131
+ actor?: {
132
+ issuer: string;
133
+ subject: string;
134
+ } | undefined;
135
+ }, {
136
+ scopes: string[];
137
+ identity: {
138
+ issuer: string;
139
+ subject: string;
140
+ };
141
+ principalId: string;
142
+ kind: "human" | "service" | "provider" | "agent";
143
+ audience: string;
144
+ actor?: {
145
+ issuer: string;
146
+ subject: string;
147
+ } | undefined;
148
+ }>;
149
+ }, "strict", z.ZodTypeAny, {
150
+ resource: string;
151
+ expiresAt: number;
152
+ accessToken: string;
153
+ principal: {
154
+ scopes: string[];
155
+ identity: {
156
+ issuer: string;
157
+ subject: string;
158
+ };
159
+ principalId: string;
160
+ kind: "human" | "service" | "provider" | "agent";
161
+ audience: string;
162
+ actor?: {
163
+ issuer: string;
164
+ subject: string;
165
+ } | undefined;
166
+ };
167
+ }, {
168
+ resource: string;
169
+ expiresAt: number;
170
+ accessToken: string;
171
+ principal: {
172
+ scopes: string[];
173
+ identity: {
174
+ issuer: string;
175
+ subject: string;
176
+ };
177
+ principalId: string;
178
+ kind: "human" | "service" | "provider" | "agent";
179
+ audience: string;
180
+ actor?: {
181
+ issuer: string;
182
+ subject: string;
183
+ } | undefined;
184
+ };
185
+ }>, {
186
+ resource: string;
187
+ expiresAt: number;
188
+ accessToken: string;
189
+ principal: {
190
+ scopes: string[];
191
+ identity: {
192
+ issuer: string;
193
+ subject: string;
194
+ };
195
+ principalId: string;
196
+ kind: "human" | "service" | "provider" | "agent";
197
+ audience: string;
198
+ actor?: {
199
+ issuer: string;
200
+ subject: string;
201
+ } | undefined;
202
+ };
203
+ }, {
204
+ resource: string;
205
+ expiresAt: number;
206
+ accessToken: string;
207
+ principal: {
208
+ scopes: string[];
209
+ identity: {
210
+ issuer: string;
211
+ subject: string;
212
+ };
213
+ principalId: string;
214
+ kind: "human" | "service" | "provider" | "agent";
215
+ audience: string;
216
+ actor?: {
217
+ issuer: string;
218
+ subject: string;
219
+ } | undefined;
220
+ };
221
+ }>;
222
+ logout: z.ZodObject<{
223
+ loggedOut: z.ZodLiteral<true>;
224
+ upstreamRevoked: z.ZodBoolean;
225
+ }, "strict", z.ZodTypeAny, {
226
+ loggedOut: true;
227
+ upstreamRevoked: boolean;
228
+ }, {
229
+ loggedOut: true;
230
+ upstreamRevoked: boolean;
231
+ }>;
232
+ };
233
+ export type BrowserSessionCredentials = z.infer<typeof browserSessionResponses.credentials>;
@@ -0,0 +1,51 @@
1
+ import { z } from "zod";
2
+ import { identityEndpointSchema, identityPrincipalSchema, resourceTokenRequestSchema } from "./contracts.js";
3
+ const opaque = z.string().regex(/^[A-Za-z0-9_-]{43}$/u);
4
+ const clientId = z.string().min(1).max(256);
5
+ const authorizationUrl = z.string().url().max(8192).superRefine((value, context) => {
6
+ const url = new URL(value);
7
+ if (url.protocol !== "https:" || url.username || url.password || url.hash)
8
+ context.addIssue({ code: z.ZodIssueCode.custom, message: "Authorization URLs require HTTPS without credentials or fragments." });
9
+ });
10
+ const browserLoginTransactionSchema = z.object({
11
+ state: opaque,
12
+ nonce: opaque,
13
+ verifier: opaque,
14
+ expiresAt: z.number().int().positive(),
15
+ issuer: identityEndpointSchema,
16
+ clientId,
17
+ redirectUri: identityEndpointSchema,
18
+ resource: identityEndpointSchema,
19
+ scopes: resourceTokenRequestSchema.shape.scopes
20
+ }).strict();
21
+ const BROWSER_SESSION_BRIDGE_PATH = "/internal/identity/browser/v1";
22
+ const BROWSER_SESSION_PERMISSION = "identity:sessions:manage";
23
+ const BROWSER_SESSION_SCOPE = "treeseed:identity:sessions";
24
+ const browserSessionRequests = {
25
+ begin: z.object({ browserBinding: opaque }).strict(),
26
+ finish: z.object({ browserBinding: opaque, callback: authorizationUrl }).strict(),
27
+ credentials: z.object({ handle: opaque }).strict(),
28
+ logout: z.object({ handle: opaque }).strict()
29
+ };
30
+ const browserSessionResponses = {
31
+ begin: z.object({ authorizationUrl }).strict(),
32
+ finish: z.object({ handle: opaque, expiresAt: z.string().datetime() }).strict(),
33
+ credentials: z.object({
34
+ accessToken: z.string().min(1).max(16384),
35
+ resource: identityEndpointSchema,
36
+ expiresAt: z.number().int().positive(),
37
+ principal: identityPrincipalSchema
38
+ }).strict().superRefine((value, context) => {
39
+ if (value.resource !== value.principal.audience || value.principal.kind !== "human")
40
+ context.addIssue({ code: z.ZodIssueCode.custom, message: "Browser credentials require a human principal for this resource." });
41
+ }),
42
+ logout: z.object({ loggedOut: z.literal(true), upstreamRevoked: z.boolean() }).strict()
43
+ };
44
+ export {
45
+ BROWSER_SESSION_BRIDGE_PATH,
46
+ BROWSER_SESSION_PERMISSION,
47
+ BROWSER_SESSION_SCOPE,
48
+ browserLoginTransactionSchema,
49
+ browserSessionRequests,
50
+ browserSessionResponses
51
+ };
@@ -47,6 +47,37 @@ export declare const protectedResourceMetadataSchema: z.ZodObject<{
47
47
  resource_documentation?: string | undefined;
48
48
  }>;
49
49
  export type ProtectedResourceMetadata = z.infer<typeof protectedResourceMetadataSchema>;
50
+ /** Persist with encrypted native-client tokens. Refresh must revalidate this
51
+ * issuer/subject and client; email or an API URL cannot substitute for it. */
52
+ export declare const publicClientSessionBindingSchema: z.ZodObject<{
53
+ identity: z.ZodObject<{
54
+ issuer: z.ZodEffects<z.ZodString, string, string>;
55
+ subject: z.ZodEffects<z.ZodString, string, string>;
56
+ }, "strict", z.ZodTypeAny, {
57
+ issuer: string;
58
+ subject: string;
59
+ }, {
60
+ issuer: string;
61
+ subject: string;
62
+ }>;
63
+ clientId: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
64
+ scopes: z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>, string[], string[]>;
65
+ }, "strict", z.ZodTypeAny, {
66
+ scopes: string[];
67
+ identity: {
68
+ issuer: string;
69
+ subject: string;
70
+ };
71
+ clientId: string;
72
+ }, {
73
+ scopes: string[];
74
+ identity: {
75
+ issuer: string;
76
+ subject: string;
77
+ };
78
+ clientId: string;
79
+ }>;
80
+ export type PublicClientSessionBinding = z.infer<typeof publicClientSessionBindingSchema>;
50
81
  /** Implemented by Identity; implementations must isolate caches by resource and authority. */
51
82
  export interface IdentityCredentials {
52
83
  token(request: ResourceTokenRequest): Promise<string>;
@@ -79,12 +110,12 @@ export declare const identityPrincipalSchema: z.ZodObject<{
79
110
  scopes: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
80
111
  }, "strict", z.ZodTypeAny, {
81
112
  scopes: string[];
82
- principalId: string;
83
- kind: "human" | "service" | "provider" | "agent";
84
113
  identity: {
85
114
  issuer: string;
86
115
  subject: string;
87
116
  };
117
+ principalId: string;
118
+ kind: "human" | "service" | "provider" | "agent";
88
119
  audience: string;
89
120
  actor?: {
90
121
  issuer: string;
@@ -92,12 +123,12 @@ export declare const identityPrincipalSchema: z.ZodObject<{
92
123
  } | undefined;
93
124
  }, {
94
125
  scopes: string[];
95
- principalId: string;
96
- kind: "human" | "service" | "provider" | "agent";
97
126
  identity: {
98
127
  issuer: string;
99
128
  subject: string;
100
129
  };
130
+ principalId: string;
131
+ kind: "human" | "service" | "provider" | "agent";
101
132
  audience: string;
102
133
  actor?: {
103
134
  issuer: string;
@@ -28,6 +28,11 @@ const protectedResourceMetadataSchema = z.object({
28
28
  bearer_methods_supported: z.array(z.literal("header")).length(1).optional(),
29
29
  resource_documentation: identityEndpointSchema.optional()
30
30
  });
31
+ const publicClientSessionBindingSchema = z.object({
32
+ identity: externalIdentitySchema,
33
+ clientId: identifier.refine((value) => value.length <= 256, "Client identifier is too long."),
34
+ scopes: scopes.refine((value) => value.length <= 256, "Scope inventory is too large.")
35
+ }).strict();
31
36
  const identityPrincipalSchema = z.object({
32
37
  principalId: identifier,
33
38
  kind: z.enum(["human", "service", "provider", "agent"]),
@@ -62,5 +67,6 @@ export {
62
67
  identityEndpointSchema,
63
68
  identityPrincipalSchema,
64
69
  protectedResourceMetadataSchema,
70
+ publicClientSessionBindingSchema,
65
71
  resourceTokenRequestSchema
66
72
  };
@@ -1 +1,2 @@
1
1
  export * from './contracts.js';
2
+ export * from './browser-session.js';
@@ -1 +1,2 @@
1
1
  export * from "./contracts.js";
2
+ export * from "./browser-session.js";
@@ -1,5 +1,6 @@
1
1
  import { commandPaths } from "./catalog/infrastructure/command-tree-paths.js";
2
2
  import { managedSecretCommands } from "./catalog/services/secret-commands.js";
3
+ import { identityLoginCommand } from "./catalog/services/identity-commands.js";
3
4
  import { hostProviderEnvironmentBranch, PROVIDER_ENVIRONMENT_COMMAND_BINDINGS, providerEnvironmentBranches } from "./catalog/provider-environment-commands.js";
4
5
  const unavailable = (reason = "This capability is not enabled until its control-plane operation is accepted.") => ({
5
6
  kind: "unavailable",
@@ -15,7 +16,7 @@ const aiNode = () => field("path", "nodeId", "context", "node", true);
15
16
  const aiInstance = () => [field("path", "teamId", "context", "team", true), field("path", "instanceId", "context", "node", true)];
16
17
  const operationBindings = {
17
18
  ...PROVIDER_ENVIRONMENT_COMMAND_BINDINGS,
18
- "auth login": protocol("protocol.oauth.device.login"),
19
+ "auth login": protocol("protocol.identity.login"),
19
20
  "auth logout": protocol("protocol.oauth.revoke"),
20
21
  "auth status": operation("accounts.current.show"),
21
22
  "users create": protocol("protocol.accounts.create"),
@@ -305,13 +306,7 @@ function userCreate() {
305
306
  return value;
306
307
  }
307
308
  function authLogin() {
308
- const value = leaf("login", "mutation");
309
- if (value.nodeType !== "leaf") throw new Error("Authentication login must be a leaf command.");
310
- value.options = [
311
- ...value.options ?? [],
312
- { name: "--timeout", description: "Maximum seconds to wait for device authorization.", type: "number" }
313
- ];
314
- return value;
309
+ return identityLoginCommand(leaf("login", "mutation"));
315
310
  }
316
311
  function libraryRead(segment, extraArguments = [], extraOptions = []) {
317
312
  return {
@@ -46,8 +46,8 @@ export declare const HOSTED_TOPOLOGY_OPERATIONS: {
46
46
  source: string;
47
47
  mediaType: string;
48
48
  } | {
49
- kind: "oci-image";
50
49
  identity: string;
50
+ kind: "oci-image";
51
51
  digest: string;
52
52
  }>;
53
53
  deploymentId: string;
@@ -117,8 +117,8 @@ export declare const HOSTED_TOPOLOGY_OPERATIONS: {
117
117
  source: string;
118
118
  mediaType: string;
119
119
  } | {
120
- kind: "oci-image";
121
120
  identity: string;
121
+ kind: "oci-image";
122
122
  digest: string;
123
123
  }>;
124
124
  planId: string;
@@ -155,6 +155,7 @@ export declare const HOSTED_TOPOLOGY_OPERATIONS: {
155
155
  }, {}, undefined, {
156
156
  operation: Record<string, unknown> | null;
157
157
  receipt: {
158
+ state: "known-good";
158
159
  schemaVersion: "treeseed.hosted-topology-receipt/v1";
159
160
  resources: {
160
161
  kind: "admin-application" | "pages-application" | "dns-record" | "tls-policy" | "api-proxy" | "control-plane-api" | "postgresql" | "operations-runner" | "treedx-service";
@@ -168,7 +169,6 @@ export declare const HOSTED_TOPOLOGY_OPERATIONS: {
168
169
  }[];
169
170
  planDigest: string;
170
171
  teamId: string;
171
- state: "known-good";
172
172
  environment: "production" | "staging";
173
173
  completedAt: string;
174
174
  receiptId: string;
@@ -277,8 +277,8 @@ export declare const HOSTED_TOPOLOGY_OPERATIONS: {
277
277
  source: string;
278
278
  mediaType: string;
279
279
  } | {
280
- kind: "oci-image";
281
280
  identity: string;
281
+ kind: "oci-image";
282
282
  digest: string;
283
283
  }>;
284
284
  planId: string;
@@ -363,8 +363,8 @@ export declare const HOSTED_TOPOLOGY_OPERATIONS: {
363
363
  source: string;
364
364
  mediaType: string;
365
365
  } | {
366
- kind: "oci-image";
367
366
  identity: string;
367
+ kind: "oci-image";
368
368
  digest: string;
369
369
  }>;
370
370
  planId: string;
@@ -3,8 +3,8 @@ export declare function inboxOperations(): {
3
3
  teamId: string;
4
4
  }, {
5
5
  kind?: "all" | "proposal" | "question" | undefined;
6
- projectId?: string | undefined;
7
6
  state?: "all" | "outstanding" | undefined;
7
+ projectId?: string | undefined;
8
8
  cursor?: string | undefined;
9
9
  limit?: number | undefined;
10
10
  }, undefined, {
@@ -0,0 +1,2 @@
1
+ import type { CommandNodeDescriptor } from '../../command-tree.js';
2
+ export declare function identityLoginCommand(value: CommandNodeDescriptor): CommandNodeDescriptor;
@@ -0,0 +1,12 @@
1
+ function identityLoginCommand(value) {
2
+ if (value.nodeType !== "leaf") throw new Error("Authentication login must be a leaf command.");
3
+ return { ...value, options: [
4
+ ...value.options ?? [],
5
+ { name: "--timeout", description: "Maximum seconds to wait for identity authorization.", type: "number" },
6
+ { name: "--device", description: "Use headless device authorization instead of local browser PKCE.", type: "boolean" },
7
+ { name: "--issuer", description: "Choose an authorization server advertised by the selected API.", type: "string" }
8
+ ] };
9
+ }
10
+ export {
11
+ identityLoginCommand
12
+ };
@@ -102,8 +102,8 @@ export declare const CONTROL_PLANE_OPERATIONS: {
102
102
  source: string;
103
103
  mediaType: string;
104
104
  } | {
105
- kind: "oci-image";
106
105
  identity: string;
106
+ kind: "oci-image";
107
107
  digest: string;
108
108
  }>;
109
109
  deploymentId: string;
@@ -173,8 +173,8 @@ export declare const CONTROL_PLANE_OPERATIONS: {
173
173
  source: string;
174
174
  mediaType: string;
175
175
  } | {
176
- kind: "oci-image";
177
176
  identity: string;
177
+ kind: "oci-image";
178
178
  digest: string;
179
179
  }>;
180
180
  planId: string;
@@ -211,6 +211,7 @@ export declare const CONTROL_PLANE_OPERATIONS: {
211
211
  }, {}, undefined, {
212
212
  operation: Record<string, unknown> | null;
213
213
  receipt: {
214
+ state: "known-good";
214
215
  schemaVersion: "treeseed.hosted-topology-receipt/v1";
215
216
  resources: {
216
217
  kind: "admin-application" | "pages-application" | "dns-record" | "tls-policy" | "api-proxy" | "control-plane-api" | "postgresql" | "operations-runner" | "treedx-service";
@@ -224,7 +225,6 @@ export declare const CONTROL_PLANE_OPERATIONS: {
224
225
  }[];
225
226
  planDigest: string;
226
227
  teamId: string;
227
- state: "known-good";
228
228
  environment: "production" | "staging";
229
229
  completedAt: string;
230
230
  receiptId: string;
@@ -333,8 +333,8 @@ export declare const CONTROL_PLANE_OPERATIONS: {
333
333
  source: string;
334
334
  mediaType: string;
335
335
  } | {
336
- kind: "oci-image";
337
336
  identity: string;
337
+ kind: "oci-image";
338
338
  digest: string;
339
339
  }>;
340
340
  planId: string;
@@ -419,8 +419,8 @@ export declare const CONTROL_PLANE_OPERATIONS: {
419
419
  source: string;
420
420
  mediaType: string;
421
421
  } | {
422
- kind: "oci-image";
423
422
  identity: string;
423
+ kind: "oci-image";
424
424
  digest: string;
425
425
  }>;
426
426
  planId: string;
@@ -622,8 +622,8 @@ export declare const CONTROL_PLANE_OPERATIONS: {
622
622
  teamId: string;
623
623
  }, {
624
624
  kind?: "all" | "proposal" | "question" | undefined;
625
- projectId?: string | undefined;
626
625
  state?: "all" | "outstanding" | undefined;
626
+ projectId?: string | undefined;
627
627
  cursor?: string | undefined;
628
628
  limit?: number | undefined;
629
629
  }, undefined, {
@@ -40,9 +40,9 @@ export declare const knowledgeShareSchema: z.ZodEffects<z.ZodObject<{
40
40
  }, "strict", z.ZodTypeAny, {
41
41
  status: "active" | "revoked" | "expired";
42
42
  id: string;
43
+ expiresAt: string | null;
43
44
  schemaVersion: "treeseed.knowledge-share/v1";
44
45
  createdAt: string;
45
- expiresAt: string | null;
46
46
  operations: ("read" | "context" | "query" | "graph")[];
47
47
  paths: string[];
48
48
  updatedAt: string;
@@ -68,9 +68,9 @@ export declare const knowledgeShareSchema: z.ZodEffects<z.ZodObject<{
68
68
  }>, {
69
69
  status: "active" | "revoked" | "expired";
70
70
  id: string;
71
+ expiresAt: string | null;
71
72
  schemaVersion: "treeseed.knowledge-share/v1";
72
73
  createdAt: string;
73
- expiresAt: string | null;
74
74
  operations: ("read" | "context" | "query" | "graph")[];
75
75
  paths: string[];
76
76
  updatedAt: string;
@@ -311,20 +311,20 @@ export declare const providerRegistrationRequestSchema: z.ZodObject<{
311
311
  state: z.ZodEnum<["pending-approval", "approved", "rejected", "revoked"]>;
312
312
  createdAt: z.ZodString;
313
313
  }, "strict", z.ZodTypeAny, {
314
+ state: "pending-approval" | "approved" | "rejected" | "revoked";
314
315
  schemaVersion: "treeseed.provider-registration-request/v1";
315
316
  requestId: string;
316
317
  teamId: string;
317
318
  publicKey: string;
318
319
  capabilities: string[];
319
- state: "pending-approval" | "approved" | "rejected" | "revoked";
320
320
  createdAt: string;
321
321
  }, {
322
+ state: "pending-approval" | "approved" | "rejected" | "revoked";
322
323
  schemaVersion: "treeseed.provider-registration-request/v1";
323
324
  requestId: string;
324
325
  teamId: string;
325
326
  publicKey: string;
326
327
  capabilities: string[];
327
- state: "pending-approval" | "approved" | "rejected" | "revoked";
328
328
  createdAt: string;
329
329
  }>;
330
330
  export declare const providerSessionSchema: z.ZodObject<{
@@ -335,18 +335,18 @@ export declare const providerSessionSchema: z.ZodObject<{
335
335
  expiresAt: z.ZodString;
336
336
  token: z.ZodString;
337
337
  }, "strict", z.ZodTypeAny, {
338
+ expiresAt: string;
338
339
  schemaVersion: "treeseed.provider-session/v1";
339
340
  providerId: string;
340
341
  scope: string[];
341
342
  issuedAt: string;
342
- expiresAt: string;
343
343
  token: string;
344
344
  }, {
345
+ expiresAt: string;
345
346
  schemaVersion: "treeseed.provider-session/v1";
346
347
  providerId: string;
347
348
  scope: string[];
348
349
  issuedAt: string;
349
- expiresAt: string;
350
350
  token: string;
351
351
  }>;
352
352
  export declare const environmentProfileDescriptorSchema: z.ZodObject<{
@@ -399,8 +399,8 @@ export declare const assignmentEnvironmentGrantSchema: z.ZodObject<{
399
399
  }>;
400
400
  expiresAt: z.ZodString;
401
401
  }, "strict", z.ZodTypeAny, {
402
- schemaVersion: "treeseed.assignment-environment-grant/v1";
403
402
  expiresAt: string;
403
+ schemaVersion: "treeseed.assignment-environment-grant/v1";
404
404
  variables: string[];
405
405
  assignmentId: string;
406
406
  profileId: string;
@@ -409,8 +409,8 @@ export declare const assignmentEnvironmentGrantSchema: z.ZodObject<{
409
409
  destinations: string[];
410
410
  };
411
411
  }, {
412
- schemaVersion: "treeseed.assignment-environment-grant/v1";
413
412
  expiresAt: string;
413
+ schemaVersion: "treeseed.assignment-environment-grant/v1";
414
414
  variables: string[];
415
415
  assignmentId: string;
416
416
  profileId: string;