spawnfile 0.1.3 → 0.1.5

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.
Files changed (78) hide show
  1. package/README.md +2 -0
  2. package/dist/cli/lifecycleCommands.d.ts +3 -0
  3. package/dist/cli/lifecycleCommands.js +80 -0
  4. package/dist/cli/runCli.d.ts +2 -1
  5. package/dist/cli/runCli.js +5 -47
  6. package/dist/compiler/buildCompilePlan.js +12 -202
  7. package/dist/compiler/buildCompilePlanRuntime.d.ts +6 -1
  8. package/dist/compiler/buildCompilePlanRuntime.js +9 -0
  9. package/dist/compiler/buildCompilePlanTeams.js +16 -10
  10. package/dist/compiler/buildCompilePlanTraversal.d.ts +16 -0
  11. package/dist/compiler/buildCompilePlanTraversal.js +214 -0
  12. package/dist/compiler/buildCompilePlanTraversalHelpers.d.ts +18 -0
  13. package/dist/compiler/buildCompilePlanTraversalHelpers.js +22 -0
  14. package/dist/compiler/compilePlanHelpers.d.ts +3 -1
  15. package/dist/compiler/compilePlanHelpers.js +37 -1
  16. package/dist/compiler/compileProject.js +14 -0
  17. package/dist/compiler/containerArtifacts.js +18 -3
  18. package/dist/compiler/containerArtifactsPlans.js +32 -0
  19. package/dist/compiler/containerArtifactsRender.js +86 -3
  20. package/dist/compiler/containerArtifactsTypes.d.ts +7 -3
  21. package/dist/compiler/containerEntrypointRender.d.ts +1 -1
  22. package/dist/compiler/containerEntrypointRender.js +37 -27
  23. package/dist/compiler/containerTargetResources.d.ts +4 -0
  24. package/dist/compiler/containerTargetResources.js +54 -0
  25. package/dist/compiler/containerWorkspaceResourceRender.d.ts +3 -0
  26. package/dist/compiler/containerWorkspaceResourceRender.js +128 -0
  27. package/dist/compiler/executionDefaults.js +0 -3
  28. package/dist/compiler/helpers.d.ts +1 -1
  29. package/dist/compiler/index.d.ts +1 -0
  30. package/dist/compiler/index.js +1 -0
  31. package/dist/compiler/moltnetArtifacts.d.ts +11 -5
  32. package/dist/compiler/moltnetArtifacts.js +133 -117
  33. package/dist/compiler/moltnetClientConfig.js +8 -2
  34. package/dist/compiler/moltnetConfigLowering.d.ts +36 -0
  35. package/dist/compiler/moltnetConfigLowering.js +125 -0
  36. package/dist/compiler/moltnetRuntimeConfig.d.ts +2 -0
  37. package/dist/compiler/moltnetRuntimeConfig.js +69 -0
  38. package/dist/compiler/runProject.d.ts +2 -0
  39. package/dist/compiler/runProject.js +20 -6
  40. package/dist/compiler/surfaces.d.ts +3 -13
  41. package/dist/compiler/surfaces.js +1 -6
  42. package/dist/compiler/syncProjectAuth.js +67 -19
  43. package/dist/compiler/types.d.ts +16 -1
  44. package/dist/compiler/upProject.d.ts +19 -0
  45. package/dist/compiler/upProject.js +37 -0
  46. package/dist/compiler/view/buildOrganizationView.js +22 -2
  47. package/dist/compiler/view/renderNetworks.js +14 -3
  48. package/dist/compiler/view/renderTree.js +8 -2
  49. package/dist/compiler/view/types.d.ts +18 -3
  50. package/dist/compiler/workspaceResources.d.ts +34 -0
  51. package/dist/compiler/workspaceResources.js +120 -0
  52. package/dist/manifest/executionSchemas.d.ts +106 -0
  53. package/dist/manifest/executionSchemas.js +140 -0
  54. package/dist/manifest/loadManifest.js +15 -27
  55. package/dist/manifest/renderSpawnfile.js +44 -52
  56. package/dist/manifest/renderSpawnfileNetworks.d.ts +2 -0
  57. package/dist/manifest/renderSpawnfileNetworks.js +63 -0
  58. package/dist/manifest/renderSpawnfileWorkspace.d.ts +2 -0
  59. package/dist/manifest/renderSpawnfileWorkspace.js +47 -0
  60. package/dist/manifest/scaffold.js +12 -6
  61. package/dist/manifest/scheduleSchemas.d.ts +15 -0
  62. package/dist/manifest/scheduleSchemas.js +26 -0
  63. package/dist/manifest/schemas.d.ts +626 -368
  64. package/dist/manifest/schemas.js +51 -191
  65. package/dist/manifest/teamNetworkSchemas.d.ts +228 -0
  66. package/dist/manifest/teamNetworkSchemas.js +295 -0
  67. package/dist/manifest/workspaceSchemas.d.ts +96 -0
  68. package/dist/manifest/workspaceSchemas.js +166 -0
  69. package/dist/report/types.d.ts +10 -0
  70. package/dist/runtime/common.d.ts +2 -1
  71. package/dist/runtime/common.js +3 -3
  72. package/dist/runtime/picoclaw/adapter.js +7 -0
  73. package/dist/runtime/picoclaw/runAuth.js +5 -41
  74. package/dist/runtime/tinyclaw/adapter.js +9 -2
  75. package/dist/runtime/tinyclaw/schedules.d.ts +9 -0
  76. package/dist/runtime/tinyclaw/schedules.js +62 -0
  77. package/dist/runtime/types.d.ts +1 -0
  78. package/package.json +2 -1
@@ -1,93 +1,8 @@
1
1
  import { z } from "zod";
2
+ import { agentScheduleSchema } from "./scheduleSchemas.js";
3
+ import { executionSchema } from "./executionSchemas.js";
2
4
  import { surfacesSchema } from "./surfaceSchemas.js";
3
- const modelAuthMethodSchema = z.enum(["api_key", "claude-code", "codex", "none"]);
4
- const modelEndpointCompatibilitySchema = z.enum(["anthropic", "openai"]);
5
- const modelAuthSchema = z
6
- .object({
7
- method: modelAuthMethodSchema.optional(),
8
- methods: z.record(z.string(), modelAuthMethodSchema).optional()
9
- })
10
- .strict()
11
- .superRefine((value, context) => {
12
- if (!value.method && !value.methods) {
13
- context.addIssue({
14
- code: z.ZodIssueCode.custom,
15
- message: "model auth must declare method or methods"
16
- });
17
- }
18
- if (value.method && value.methods) {
19
- context.addIssue({
20
- code: z.ZodIssueCode.custom,
21
- message: "model auth must not declare both method and methods"
22
- });
23
- }
24
- if (value.methods && Object.keys(value.methods).length === 0) {
25
- context.addIssue({
26
- code: z.ZodIssueCode.custom,
27
- message: "model auth methods must not be empty"
28
- });
29
- }
30
- });
31
- const modelEntryAuthMethodSchema = z.enum(["api_key", "claude-code", "codex", "none"]);
32
- const modelEntryAuthSchema = z
33
- .object({
34
- key: z.string().optional(),
35
- method: modelEntryAuthMethodSchema.optional()
36
- })
37
- .strict()
38
- .superRefine((value, context) => {
39
- if (!value.method) {
40
- context.addIssue({
41
- code: z.ZodIssueCode.custom,
42
- message: "model auth must declare method"
43
- });
44
- }
45
- if (value.key && value.method !== "api_key") {
46
- context.addIssue({
47
- code: z.ZodIssueCode.custom,
48
- message: "model auth key is only valid for api_key auth"
49
- });
50
- }
51
- });
52
- const modelEndpointSchema = z
53
- .object({
54
- base_url: z.string().min(1),
55
- compatibility: modelEndpointCompatibilitySchema
56
- })
57
- .strict();
58
- const modelTargetSchema = z
59
- .object({
60
- auth: modelEntryAuthSchema.optional(),
61
- endpoint: modelEndpointSchema.optional(),
62
- name: z.string(),
63
- provider: z.string()
64
- })
65
- .strict()
66
- .superRefine((value, context) => {
67
- const usesCustomEndpoint = value.provider === "custom" || value.provider === "local";
68
- if (usesCustomEndpoint && !value.endpoint) {
69
- context.addIssue({
70
- code: z.ZodIssueCode.custom,
71
- message: `${value.provider} models must declare endpoint`
72
- });
73
- }
74
- if (!usesCustomEndpoint && value.endpoint) {
75
- context.addIssue({
76
- code: z.ZodIssueCode.custom,
77
- message: "endpoint is only valid for custom or local models"
78
- });
79
- }
80
- });
81
- const docsSchema = z
82
- .object({
83
- extras: z.record(z.string(), z.string()).optional(),
84
- heartbeat: z.string().optional(),
85
- identity: z.string().optional(),
86
- memory: z.string().optional(),
87
- soul: z.string().optional(),
88
- system: z.string().optional()
89
- })
90
- .strict();
5
+ import { teamNetworkSchema, teamWorkspaceSchema } from "./teamNetworkSchemas.js";
91
6
  const skillRequirementSchema = z
92
7
  .object({
93
8
  mcp: z.array(z.string()).optional()
@@ -129,74 +44,6 @@ const mcpServerSchema = z
129
44
  });
130
45
  }
131
46
  });
132
- const executionSchema = z
133
- .object({
134
- model: z
135
- .object({
136
- auth: modelAuthSchema.optional(),
137
- fallback: z.array(modelTargetSchema).optional(),
138
- primary: modelTargetSchema
139
- })
140
- .superRefine((value, context) => {
141
- const declaredProviders = new Set([
142
- value.primary.provider,
143
- ...(value.fallback ?? []).map((model) => model.provider)
144
- ]);
145
- if (value.auth?.methods) {
146
- for (const provider of declaredProviders) {
147
- if (!(provider in value.auth.methods)) {
148
- context.addIssue({
149
- code: z.ZodIssueCode.custom,
150
- message: `model auth methods must declare provider ${provider}`
151
- });
152
- }
153
- }
154
- for (const provider of Object.keys(value.auth.methods)) {
155
- if (!declaredProviders.has(provider)) {
156
- context.addIssue({
157
- code: z.ZodIssueCode.custom,
158
- message: `model auth methods declared unknown provider ${provider}`
159
- });
160
- }
161
- }
162
- }
163
- for (const target of [value.primary, ...(value.fallback ?? [])]) {
164
- const method = target.auth?.method ??
165
- value.auth?.methods?.[target.provider] ??
166
- value.auth?.method ??
167
- (target.provider === "local" ? "none" : undefined);
168
- if (target.provider === "custom" && !method) {
169
- context.addIssue({
170
- code: z.ZodIssueCode.custom,
171
- message: "custom models must declare auth.method or inherit legacy model auth"
172
- });
173
- }
174
- if ((target.provider === "custom" || target.provider === "local") &&
175
- method === "api_key" &&
176
- !target.auth?.key) {
177
- context.addIssue({
178
- code: z.ZodIssueCode.custom,
179
- message: `${target.provider} api_key auth must declare auth.key`
180
- });
181
- }
182
- }
183
- })
184
- .strict()
185
- .optional(),
186
- sandbox: z
187
- .object({
188
- mode: z.enum(["sandboxed", "unrestricted", "workspace"])
189
- })
190
- .strict()
191
- .optional(),
192
- workspace: z
193
- .object({
194
- isolation: z.enum(["isolated", "shared"])
195
- })
196
- .strict()
197
- .optional()
198
- })
199
- .strict();
200
47
  const runtimeBindingSchema = z.union([
201
48
  z.string().min(1),
202
49
  z
@@ -218,22 +65,57 @@ const policySchema = z
218
65
  on_degrade: z.enum(["allow", "error", "warn"])
219
66
  })
220
67
  .strict();
68
+ const packageManagerSchema = z.enum(["apt", "npm", "pipx"]);
69
+ const packageSchema = z
70
+ .object({
71
+ id: z.string().min(1),
72
+ manager: packageManagerSchema,
73
+ name: z.string().min(1),
74
+ scope: z.string().min(1).optional(),
75
+ version: z.string().min(1).optional()
76
+ })
77
+ .strict()
78
+ .superRefine((value, context) => {
79
+ if (value.manager !== "npm" && value.scope !== undefined) {
80
+ context.addIssue({
81
+ code: z.ZodIssueCode.custom,
82
+ message: "scope is only supported for npm-managed packages"
83
+ });
84
+ }
85
+ if (value.manager === "npm" && value.scope !== undefined && value.scope !== "global") {
86
+ context.addIssue({
87
+ code: z.ZodIssueCode.custom,
88
+ message: "npm package scope must be global"
89
+ });
90
+ }
91
+ });
92
+ const environmentSchema = z
93
+ .object({
94
+ env: z.record(z.string(), z.string()).optional(),
95
+ mcp_servers: z.array(mcpServerSchema).optional(),
96
+ packages: z.array(packageSchema).optional(),
97
+ secrets: z.array(secretSchema).optional()
98
+ })
99
+ .strict()
100
+ .superRefine((value, context) => {
101
+ const packageIds = value.packages?.map((pkg) => pkg.id) ?? [];
102
+ if (new Set(packageIds).size !== packageIds.length) {
103
+ context.addIssue({
104
+ code: z.ZodIssueCode.custom,
105
+ message: "environment package ids must be unique"
106
+ });
107
+ }
108
+ });
221
109
  const commonManifestSchema = z
222
110
  .object({
223
111
  description: z.string().optional(),
224
- docs: docsSchema.optional(),
225
- env: z.record(z.string(), z.string()).optional(),
226
112
  execution: executionSchema.optional(),
227
113
  kind: z.enum(["agent", "team"]),
228
- mcp_servers: z.array(mcpServerSchema).optional(),
229
114
  name: z
230
115
  .string()
231
116
  .min(1)
232
117
  .refine((value) => !/\s/.test(value), { message: "name must not contain whitespace" }),
233
118
  policy: policySchema.optional(),
234
- runtime: runtimeBindingSchema.optional(),
235
- secrets: z.array(secretSchema).optional(),
236
- skills: z.array(skillReferenceSchema).optional(),
237
119
  surfaces: surfacesSchema.optional(),
238
120
  spawnfile_version: z.literal("0.1")
239
121
  })
@@ -246,10 +128,8 @@ const subagentSchema = z
246
128
  .strict();
247
129
  const sharedSurfaceSchema = z
248
130
  .object({
249
- env: z.record(z.string(), z.string()).optional(),
250
- mcp_servers: z.array(mcpServerSchema).optional(),
251
- secrets: z.array(secretSchema).optional(),
252
- skills: z.array(skillReferenceSchema).optional()
131
+ environment: environmentSchema.optional(),
132
+ workspace: teamWorkspaceSchema.optional()
253
133
  })
254
134
  .strict();
255
135
  const memberSchema = z
@@ -258,35 +138,15 @@ const memberSchema = z
258
138
  ref: z.string()
259
139
  })
260
140
  .strict();
261
- const teamNetworkRoomSchema = z
262
- .object({
263
- id: z.string().min(1),
264
- members: z.array(z.string().min(1)).min(1)
265
- })
266
- .strict();
267
- const teamNetworkSchema = z
268
- .object({
269
- expose: z.boolean().optional(),
270
- id: z.string().min(1),
271
- name: z.string().min(1).optional(),
272
- provider: z.literal("moltnet"),
273
- rooms: z.array(teamNetworkRoomSchema).min(1)
274
- })
275
- .strict()
276
- .superRefine((value, context) => {
277
- const roomIds = value.rooms.map((room) => room.id);
278
- if (new Set(roomIds).size !== roomIds.length) {
279
- context.addIssue({
280
- code: z.ZodIssueCode.custom,
281
- message: `network ${value.id} declares duplicate room ids`
282
- });
283
- }
284
- });
285
141
  const agentManifestSchema = commonManifestSchema
286
142
  .extend({
287
143
  expose: z.boolean().optional(),
288
144
  kind: z.literal("agent"),
289
- subagents: z.array(subagentSchema).optional()
145
+ environment: environmentSchema.optional(),
146
+ runtime: runtimeBindingSchema.optional(),
147
+ schedule: agentScheduleSchema.optional(),
148
+ subagents: z.array(subagentSchema).optional(),
149
+ workspace: teamWorkspaceSchema.optional()
290
150
  })
291
151
  .strict();
292
152
  const teamManifestSchema = commonManifestSchema
@@ -0,0 +1,228 @@
1
+ import { z } from "zod";
2
+ export { teamWorkspaceDocsSchema, teamWorkspaceSchema } from "./workspaceSchemas.js";
3
+ export type { TeamWorkspace, TeamWorkspaceDocs, TeamWorkspaceResource, TeamWorkspaceResource as TeamNetworkResource } from "./workspaceSchemas.js";
4
+ declare const teamNetworkAuthSchema: z.ZodObject<{
5
+ client: z.ZodOptional<z.ZodObject<{
6
+ static_token: z.ZodOptional<z.ZodBoolean>;
7
+ token_env: z.ZodOptional<z.ZodString>;
8
+ token_id: z.ZodOptional<z.ZodString>;
9
+ token_path: z.ZodOptional<z.ZodString>;
10
+ }, z.core.$strict>>;
11
+ mode: z.ZodEnum<{
12
+ none: "none";
13
+ open: "open";
14
+ bearer: "bearer";
15
+ }>;
16
+ tokens: z.ZodOptional<z.ZodArray<z.ZodObject<{
17
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
18
+ id: z.ZodString;
19
+ secret: z.ZodString;
20
+ scopes: z.ZodArray<z.ZodEnum<{
21
+ observe: "observe";
22
+ write: "write";
23
+ admin: "admin";
24
+ attach: "attach";
25
+ pair: "pair";
26
+ }>>;
27
+ }, z.core.$strict>>>;
28
+ }, z.core.$strict>;
29
+ declare const teamNetworkStoreSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
30
+ kind: z.ZodLiteral<"sqlite">;
31
+ path: z.ZodString;
32
+ }, z.core.$strict>, z.ZodObject<{
33
+ kind: z.ZodLiteral<"json">;
34
+ path: z.ZodString;
35
+ }, z.core.$strict>, z.ZodObject<{
36
+ kind: z.ZodLiteral<"postgres">;
37
+ dsn_secret: z.ZodString;
38
+ }, z.core.$strict>, z.ZodObject<{
39
+ kind: z.ZodLiteral<"memory">;
40
+ }, z.core.$strict>], "kind">;
41
+ declare const teamNetworkServerSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
42
+ allowed_origins: z.ZodOptional<z.ZodArray<z.ZodString>>;
43
+ auth: z.ZodObject<{
44
+ client: z.ZodOptional<z.ZodObject<{
45
+ static_token: z.ZodOptional<z.ZodBoolean>;
46
+ token_env: z.ZodOptional<z.ZodString>;
47
+ token_id: z.ZodOptional<z.ZodString>;
48
+ token_path: z.ZodOptional<z.ZodString>;
49
+ }, z.core.$strict>>;
50
+ mode: z.ZodEnum<{
51
+ none: "none";
52
+ open: "open";
53
+ bearer: "bearer";
54
+ }>;
55
+ tokens: z.ZodOptional<z.ZodArray<z.ZodObject<{
56
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
57
+ id: z.ZodString;
58
+ secret: z.ZodString;
59
+ scopes: z.ZodArray<z.ZodEnum<{
60
+ observe: "observe";
61
+ write: "write";
62
+ admin: "admin";
63
+ attach: "attach";
64
+ pair: "pair";
65
+ }>>;
66
+ }, z.core.$strict>>>;
67
+ }, z.core.$strict>;
68
+ direct_messages: z.ZodOptional<z.ZodBoolean>;
69
+ human_ingress: z.ZodOptional<z.ZodBoolean>;
70
+ listen: z.ZodObject<{
71
+ bind: z.ZodString;
72
+ port: z.ZodNumber;
73
+ }, z.core.$strict>;
74
+ mode: z.ZodLiteral<"managed">;
75
+ pairings: z.ZodOptional<z.ZodArray<z.ZodObject<{
76
+ id: z.ZodString;
77
+ remote_base_url: z.ZodString;
78
+ remote_network_id: z.ZodString;
79
+ remote_network_name: z.ZodString;
80
+ token_secret: z.ZodString;
81
+ }, z.core.$strict>>>;
82
+ store: z.ZodDiscriminatedUnion<[z.ZodObject<{
83
+ kind: z.ZodLiteral<"sqlite">;
84
+ path: z.ZodString;
85
+ }, z.core.$strict>, z.ZodObject<{
86
+ kind: z.ZodLiteral<"json">;
87
+ path: z.ZodString;
88
+ }, z.core.$strict>, z.ZodObject<{
89
+ kind: z.ZodLiteral<"postgres">;
90
+ dsn_secret: z.ZodString;
91
+ }, z.core.$strict>, z.ZodObject<{
92
+ kind: z.ZodLiteral<"memory">;
93
+ }, z.core.$strict>], "kind">;
94
+ trust_forwarded_proto: z.ZodOptional<z.ZodBoolean>;
95
+ url: z.ZodOptional<z.ZodString>;
96
+ }, z.core.$strict>, z.ZodObject<{
97
+ auth: z.ZodObject<{
98
+ client: z.ZodOptional<z.ZodObject<{
99
+ static_token: z.ZodOptional<z.ZodBoolean>;
100
+ token_env: z.ZodOptional<z.ZodString>;
101
+ token_id: z.ZodOptional<z.ZodString>;
102
+ token_path: z.ZodOptional<z.ZodString>;
103
+ }, z.core.$strict>>;
104
+ mode: z.ZodEnum<{
105
+ none: "none";
106
+ open: "open";
107
+ bearer: "bearer";
108
+ }>;
109
+ tokens: z.ZodOptional<z.ZodArray<z.ZodObject<{
110
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
111
+ id: z.ZodString;
112
+ secret: z.ZodString;
113
+ scopes: z.ZodArray<z.ZodEnum<{
114
+ observe: "observe";
115
+ write: "write";
116
+ admin: "admin";
117
+ attach: "attach";
118
+ pair: "pair";
119
+ }>>;
120
+ }, z.core.$strict>>>;
121
+ }, z.core.$strict>;
122
+ mode: z.ZodLiteral<"external">;
123
+ url: z.ZodString;
124
+ }, z.core.$strict>], "mode">;
125
+ declare const teamNetworkRoomSchema: z.ZodObject<{
126
+ id: z.ZodString;
127
+ members: z.ZodArray<z.ZodString>;
128
+ name: z.ZodOptional<z.ZodString>;
129
+ }, z.core.$strict>;
130
+ export declare const teamNetworkSchema: z.ZodObject<{
131
+ id: z.ZodString;
132
+ name: z.ZodOptional<z.ZodString>;
133
+ provider: z.ZodLiteral<"moltnet">;
134
+ rooms: z.ZodArray<z.ZodObject<{
135
+ id: z.ZodString;
136
+ members: z.ZodArray<z.ZodString>;
137
+ name: z.ZodOptional<z.ZodString>;
138
+ }, z.core.$strict>>;
139
+ server: z.ZodDiscriminatedUnion<[z.ZodObject<{
140
+ allowed_origins: z.ZodOptional<z.ZodArray<z.ZodString>>;
141
+ auth: z.ZodObject<{
142
+ client: z.ZodOptional<z.ZodObject<{
143
+ static_token: z.ZodOptional<z.ZodBoolean>;
144
+ token_env: z.ZodOptional<z.ZodString>;
145
+ token_id: z.ZodOptional<z.ZodString>;
146
+ token_path: z.ZodOptional<z.ZodString>;
147
+ }, z.core.$strict>>;
148
+ mode: z.ZodEnum<{
149
+ none: "none";
150
+ open: "open";
151
+ bearer: "bearer";
152
+ }>;
153
+ tokens: z.ZodOptional<z.ZodArray<z.ZodObject<{
154
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
155
+ id: z.ZodString;
156
+ secret: z.ZodString;
157
+ scopes: z.ZodArray<z.ZodEnum<{
158
+ observe: "observe";
159
+ write: "write";
160
+ admin: "admin";
161
+ attach: "attach";
162
+ pair: "pair";
163
+ }>>;
164
+ }, z.core.$strict>>>;
165
+ }, z.core.$strict>;
166
+ direct_messages: z.ZodOptional<z.ZodBoolean>;
167
+ human_ingress: z.ZodOptional<z.ZodBoolean>;
168
+ listen: z.ZodObject<{
169
+ bind: z.ZodString;
170
+ port: z.ZodNumber;
171
+ }, z.core.$strict>;
172
+ mode: z.ZodLiteral<"managed">;
173
+ pairings: z.ZodOptional<z.ZodArray<z.ZodObject<{
174
+ id: z.ZodString;
175
+ remote_base_url: z.ZodString;
176
+ remote_network_id: z.ZodString;
177
+ remote_network_name: z.ZodString;
178
+ token_secret: z.ZodString;
179
+ }, z.core.$strict>>>;
180
+ store: z.ZodDiscriminatedUnion<[z.ZodObject<{
181
+ kind: z.ZodLiteral<"sqlite">;
182
+ path: z.ZodString;
183
+ }, z.core.$strict>, z.ZodObject<{
184
+ kind: z.ZodLiteral<"json">;
185
+ path: z.ZodString;
186
+ }, z.core.$strict>, z.ZodObject<{
187
+ kind: z.ZodLiteral<"postgres">;
188
+ dsn_secret: z.ZodString;
189
+ }, z.core.$strict>, z.ZodObject<{
190
+ kind: z.ZodLiteral<"memory">;
191
+ }, z.core.$strict>], "kind">;
192
+ trust_forwarded_proto: z.ZodOptional<z.ZodBoolean>;
193
+ url: z.ZodOptional<z.ZodString>;
194
+ }, z.core.$strict>, z.ZodObject<{
195
+ auth: z.ZodObject<{
196
+ client: z.ZodOptional<z.ZodObject<{
197
+ static_token: z.ZodOptional<z.ZodBoolean>;
198
+ token_env: z.ZodOptional<z.ZodString>;
199
+ token_id: z.ZodOptional<z.ZodString>;
200
+ token_path: z.ZodOptional<z.ZodString>;
201
+ }, z.core.$strict>>;
202
+ mode: z.ZodEnum<{
203
+ none: "none";
204
+ open: "open";
205
+ bearer: "bearer";
206
+ }>;
207
+ tokens: z.ZodOptional<z.ZodArray<z.ZodObject<{
208
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
209
+ id: z.ZodString;
210
+ secret: z.ZodString;
211
+ scopes: z.ZodArray<z.ZodEnum<{
212
+ observe: "observe";
213
+ write: "write";
214
+ admin: "admin";
215
+ attach: "attach";
216
+ pair: "pair";
217
+ }>>;
218
+ }, z.core.$strict>>>;
219
+ }, z.core.$strict>;
220
+ mode: z.ZodLiteral<"external">;
221
+ url: z.ZodString;
222
+ }, z.core.$strict>], "mode">;
223
+ }, z.core.$strict>;
224
+ export type TeamNetwork = z.infer<typeof teamNetworkSchema>;
225
+ export type TeamNetworkRoom = z.infer<typeof teamNetworkRoomSchema>;
226
+ export type TeamNetworkServer = z.infer<typeof teamNetworkServerSchema>;
227
+ export type TeamNetworkAuth = z.infer<typeof teamNetworkAuthSchema>;
228
+ export type TeamNetworkStore = z.infer<typeof teamNetworkStoreSchema>;