zigrix 0.1.1 → 0.2.1

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 (69) hide show
  1. package/README.md +10 -2
  2. package/dist/config/defaults.d.ts +8 -0
  3. package/dist/config/defaults.js +8 -1
  4. package/dist/config/schema.d.ts +112 -0
  5. package/dist/config/schema.js +186 -12
  6. package/dist/dashboard/.next/BUILD_ID +1 -1
  7. package/dist/dashboard/.next/app-build-manifest.json +28 -28
  8. package/dist/dashboard/.next/app-path-routes-manifest.json +3 -3
  9. package/dist/dashboard/.next/build-manifest.json +5 -5
  10. package/dist/dashboard/.next/prerender-manifest.json +6 -6
  11. package/dist/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/dist/dashboard/.next/server/app/_not-found.html +1 -1
  13. package/dist/dashboard/.next/server/app/_not-found.rsc +1 -1
  14. package/dist/dashboard/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  15. package/dist/dashboard/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  16. package/dist/dashboard/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  17. package/dist/dashboard/.next/server/app/api/auth/setup/route_client-reference-manifest.js +1 -1
  18. package/dist/dashboard/.next/server/app/api/overview/route_client-reference-manifest.js +1 -1
  19. package/dist/dashboard/.next/server/app/api/stream/route_client-reference-manifest.js +1 -1
  20. package/dist/dashboard/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  21. package/dist/dashboard/.next/server/app/api/tasks/[taskId]/conversation/route_client-reference-manifest.js +1 -1
  22. package/dist/dashboard/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  23. package/dist/dashboard/.next/server/app/login/page_client-reference-manifest.js +1 -1
  24. package/dist/dashboard/.next/server/app/login.html +1 -1
  25. package/dist/dashboard/.next/server/app/login.rsc +1 -1
  26. package/dist/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  27. package/dist/dashboard/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  28. package/dist/dashboard/.next/server/app/setup.html +1 -1
  29. package/dist/dashboard/.next/server/app/setup.rsc +1 -1
  30. package/dist/dashboard/.next/server/app-paths-manifest.json +3 -3
  31. package/dist/dashboard/.next/server/chunks/331.js +1 -1
  32. package/dist/dashboard/.next/server/functions-config-manifest.json +3 -3
  33. package/dist/dashboard/.next/server/middleware-build-manifest.js +1 -1
  34. package/dist/dashboard/.next/server/middleware.js +1 -1
  35. package/dist/dashboard/.next/server/pages/404.html +1 -1
  36. package/dist/dashboard/.next/server/pages/500.html +1 -1
  37. package/dist/dashboard/.next/server/pages/_error.js +1 -1
  38. package/dist/dashboard/.next/static/chunks/{255-ebd51be49873d76c.js → 255-4f212684648fcab9.js} +1 -1
  39. package/dist/dashboard/.next/static/chunks/main-cec07dc17fdd452c.js +1 -0
  40. package/dist/dashboard/package.json +2 -2
  41. package/dist/doctor.d.ts +3 -0
  42. package/dist/doctor.js +233 -60
  43. package/dist/index.js +286 -33
  44. package/dist/migrate/import-orchestration.d.ts +31 -0
  45. package/dist/migrate/import-orchestration.js +638 -0
  46. package/dist/onboard.d.ts +1 -1
  47. package/dist/onboard.js +132 -37
  48. package/dist/orchestration/dispatch.js +16 -71
  49. package/dist/orchestration/evidence.d.ts +7 -0
  50. package/dist/orchestration/evidence.js +79 -4
  51. package/dist/orchestration/pipeline.d.ts +1 -0
  52. package/dist/orchestration/pipeline.js +26 -1
  53. package/dist/orchestration/prompt-compose.d.ts +35 -0
  54. package/dist/orchestration/prompt-compose.js +172 -0
  55. package/dist/orchestration/worker.d.ts +4 -1
  56. package/dist/orchestration/worker.js +132 -52
  57. package/dist/state/tasks.d.ts +43 -2
  58. package/dist/state/tasks.js +281 -10
  59. package/dist/state/verify.js +89 -11
  60. package/package.json +3 -3
  61. package/rules/defaults/orchestrator-agent.md +4 -2
  62. package/rules/defaults/worker-common.md +3 -0
  63. package/skills/oz/SKILL.md +117 -0
  64. package/skills/oz/references/examples.md +44 -0
  65. package/skills/oz/references/routing-rubric.md +71 -0
  66. package/skills/zigrix-main-agent-guide/SKILL.md +37 -7
  67. package/dist/dashboard/.next/static/chunks/main-da2d845a416cfa3f.js +0 -1
  68. /package/dist/dashboard/.next/static/{iKGx5hWe1zbwJZWchF9kg → dOjvoQUj-mqwJ8kKG4peU}/_buildManifest.js +0 -0
  69. /package/dist/dashboard/.next/static/{iKGx5hWe1zbwJZWchF9kg → dOjvoQUj-mqwJ8kKG4peU}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -150,7 +150,7 @@ zigrix reset state --yes
150
150
  2. seeds rule files from bundled templates
151
151
  3. ensures `zigrix` is reachable from the runtime-visible PATH
152
152
  4. detects OpenClaw and imports agents from `openclaw.json`
153
- 5. registers bundled `skills/zigrix-*` into `~/.openclaw/skills/`
153
+ 5. registers bundled OpenClaw skills into `~/.openclaw/skills/` (including `oz` and the `zigrix-*` packs)
154
154
  6. leaves the environment ready for agent-led orchestration
155
155
 
156
156
  ---
@@ -161,9 +161,17 @@ When OpenClaw is present, Zigrix is optimized for this model:
161
161
 
162
162
  - import agent definitions and normalize roles
163
163
  - establish orchestrator ownership for task execution
164
- - register Zigrix skill packs for agent readiness checks
164
+ - register bundled OpenClaw skills for agent readiness checks
165
+ - expose `/oz` as the public Zigrix chat entrypoint after onboarding
165
166
  - keep CLI reachability stable for OpenClaw runtime
166
167
 
168
+ After `zigrix onboard`, the expected chat-side entrypoints are:
169
+ - `/oz fix the auth flow`
170
+ - `이거 맡겨`
171
+ - `route this through Zigrix`
172
+
173
+ `/oz` is force-delegate. Natural-language delegation is judged semantically by the installed skill and should enter the standard Zigrix chain (`zigrix task dispatch` → orchestrator spawn) instead of falling back to direct execution.
174
+
167
175
  Read the full integration contract in [docs/openclaw-integration.md](docs/openclaw-integration.md).
168
176
 
169
177
  ---
@@ -41,6 +41,10 @@ export declare function buildDefaultConfig(baseDir?: string): {
41
41
  readonly requiredRoles: readonly ["orchestrator", "qa", "security"];
42
42
  readonly optionalRoles: readonly ["frontend", "backend", "system"];
43
43
  };
44
+ readonly large: {
45
+ readonly requiredRoles: readonly ["orchestrator", "qa", "security", "system"];
46
+ readonly optionalRoles: readonly ["frontend", "backend"];
47
+ };
44
48
  };
45
49
  readonly completion: {
46
50
  readonly requireQa: true;
@@ -111,6 +115,10 @@ export declare const defaultConfig: {
111
115
  readonly requiredRoles: readonly ["orchestrator", "qa", "security"];
112
116
  readonly optionalRoles: readonly ["frontend", "backend", "system"];
113
117
  };
118
+ readonly large: {
119
+ readonly requiredRoles: readonly ["orchestrator", "qa", "security", "system"];
120
+ readonly optionalRoles: readonly ["frontend", "backend"];
121
+ };
114
122
  };
115
123
  readonly completion: {
116
124
  readonly requireQa: true;
@@ -51,7 +51,14 @@ export function buildDefaultConfig(baseDir = resolveCanonicalConfigHome()) {
51
51
  scales: {
52
52
  simple: { requiredRoles: ['orchestrator'], optionalRoles: ['qa'] },
53
53
  normal: { requiredRoles: ['orchestrator', 'qa'], optionalRoles: ['frontend', 'backend'] },
54
- risky: { requiredRoles: ['orchestrator', 'qa', 'security'], optionalRoles: ['frontend', 'backend', 'system'] },
54
+ risky: {
55
+ requiredRoles: ['orchestrator', 'qa', 'security'],
56
+ optionalRoles: ['frontend', 'backend', 'system'],
57
+ },
58
+ large: {
59
+ requiredRoles: ['orchestrator', 'qa', 'security', 'system'],
60
+ optionalRoles: ['frontend', 'backend'],
61
+ },
55
62
  },
56
63
  completion: {
57
64
  requireQa: true,
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ export declare const STANDARD_SCALES: readonly ["simple", "normal", "risky", "large"];
2
3
  export declare const zigrixConfigSchema: z.ZodObject<{
3
4
  paths: z.ZodObject<{
4
5
  baseDir: z.ZodString;
@@ -144,9 +145,120 @@ export declare const zigrixConfigJsonSchema: {
144
145
  };
145
146
  readonly agents: {
146
147
  readonly type: "object";
148
+ readonly required: readonly ["registry", "orchestration"];
149
+ readonly properties: {
150
+ readonly registry: {
151
+ readonly type: "object";
152
+ readonly additionalProperties: {
153
+ readonly type: "object";
154
+ readonly required: readonly ["label", "role", "runtime"];
155
+ readonly properties: {
156
+ readonly label: {
157
+ readonly type: "string";
158
+ };
159
+ readonly role: {
160
+ readonly type: "string";
161
+ readonly enum: readonly ["orchestrator", "qa", "security", "frontend", "backend", "system"];
162
+ };
163
+ readonly runtime: {
164
+ readonly type: "string";
165
+ };
166
+ readonly enabled: {
167
+ readonly type: "boolean";
168
+ };
169
+ readonly metadata: {
170
+ readonly type: "object";
171
+ };
172
+ };
173
+ readonly additionalProperties: true;
174
+ };
175
+ };
176
+ readonly orchestration: {
177
+ readonly type: "object";
178
+ readonly required: readonly ["participants", "excluded", "orchestratorId"];
179
+ readonly properties: {
180
+ readonly participants: {
181
+ readonly type: "array";
182
+ readonly items: {
183
+ readonly type: "string";
184
+ };
185
+ };
186
+ readonly excluded: {
187
+ readonly type: "array";
188
+ readonly items: {
189
+ readonly type: "string";
190
+ };
191
+ };
192
+ readonly orchestratorId: {
193
+ readonly type: "string";
194
+ };
195
+ };
196
+ readonly additionalProperties: false;
197
+ };
198
+ };
199
+ readonly additionalProperties: false;
147
200
  };
148
201
  readonly rules: {
149
202
  readonly type: "object";
203
+ readonly required: readonly ["scales", "completion", "stale"];
204
+ readonly properties: {
205
+ readonly scales: {
206
+ readonly type: "object";
207
+ readonly required: readonly ["simple", "normal", "risky", "large"];
208
+ readonly properties: {
209
+ [k: string]: {
210
+ type: string;
211
+ required: string[];
212
+ properties: {
213
+ requiredRoles: {
214
+ type: string;
215
+ items: {
216
+ type: string;
217
+ enum: ("orchestrator" | "qa" | "security" | "frontend" | "backend" | "system")[];
218
+ };
219
+ };
220
+ optionalRoles: {
221
+ type: string;
222
+ items: {
223
+ type: string;
224
+ enum: ("orchestrator" | "qa" | "security" | "frontend" | "backend" | "system")[];
225
+ };
226
+ };
227
+ };
228
+ additionalProperties: boolean;
229
+ };
230
+ };
231
+ readonly additionalProperties: true;
232
+ };
233
+ readonly completion: {
234
+ readonly type: "object";
235
+ readonly required: readonly ["requireQa", "requireEvidence", "requireUserReport"];
236
+ readonly properties: {
237
+ readonly requireQa: {
238
+ readonly type: "boolean";
239
+ };
240
+ readonly requireEvidence: {
241
+ readonly type: "boolean";
242
+ };
243
+ readonly requireUserReport: {
244
+ readonly type: "boolean";
245
+ };
246
+ };
247
+ readonly additionalProperties: false;
248
+ };
249
+ readonly stale: {
250
+ readonly type: "object";
251
+ readonly required: readonly ["defaultHours"];
252
+ readonly properties: {
253
+ readonly defaultHours: {
254
+ readonly type: "number";
255
+ readonly exclusiveMinimum: 0;
256
+ };
257
+ };
258
+ readonly additionalProperties: false;
259
+ };
260
+ };
261
+ readonly additionalProperties: false;
150
262
  };
151
263
  readonly templates: {
152
264
  readonly type: "object";
@@ -1,8 +1,13 @@
1
+ import path from 'node:path';
1
2
  import { z } from 'zod';
2
3
  import { STANDARD_AGENT_ROLES, normalizeAgentRole } from '../agents/roles.js';
3
4
  const pathSchema = z.string().min(1);
5
+ export const STANDARD_SCALES = ['simple', 'normal', 'risky', 'large'];
4
6
  const standardRoleSchema = z.enum(STANDARD_AGENT_ROLES);
5
- const roleSchema = z.string().min(1).transform((value, ctx) => {
7
+ const roleSchema = z
8
+ .string()
9
+ .min(1)
10
+ .transform((value, ctx) => {
6
11
  const normalized = normalizeAgentRole(value);
7
12
  if (!normalized) {
8
13
  ctx.addIssue({
@@ -12,7 +17,8 @@ const roleSchema = z.string().min(1).transform((value, ctx) => {
12
17
  return z.NEVER;
13
18
  }
14
19
  return normalized;
15
- }).pipe(standardRoleSchema);
20
+ })
21
+ .pipe(standardRoleSchema);
16
22
  const agentSchema = z.object({
17
23
  label: z.string().min(1),
18
24
  role: roleSchema,
@@ -27,7 +33,8 @@ const templateSchema = z.object({
27
33
  body: z.string().min(1),
28
34
  });
29
35
  export const zigrixConfigSchema = z.object({
30
- paths: z.object({
36
+ paths: z
37
+ .object({
31
38
  baseDir: pathSchema,
32
39
  tasksDir: pathSchema,
33
40
  evidenceDir: pathSchema,
@@ -36,18 +43,58 @@ export const zigrixConfigSchema = z.object({
36
43
  indexFile: pathSchema,
37
44
  runsDir: pathSchema,
38
45
  rulesDir: pathSchema,
46
+ })
47
+ .superRefine((value, ctx) => {
48
+ const directoryEntries = [
49
+ ['tasksDir', value.tasksDir],
50
+ ['evidenceDir', value.evidenceDir],
51
+ ['promptsDir', value.promptsDir],
52
+ ['runsDir', value.runsDir],
53
+ ['rulesDir', value.rulesDir],
54
+ ];
55
+ const fileEntries = [
56
+ ['eventsFile', value.eventsFile],
57
+ ['indexFile', value.indexFile],
58
+ ];
59
+ const seen = new Map();
60
+ for (const [name, rawPath] of [...directoryEntries, ...fileEntries]) {
61
+ const normalized = path.resolve(rawPath);
62
+ const existing = seen.get(normalized);
63
+ if (existing) {
64
+ ctx.addIssue({
65
+ code: z.ZodIssueCode.custom,
66
+ message: `${name} collides with ${existing}`,
67
+ path: [name],
68
+ });
69
+ continue;
70
+ }
71
+ seen.set(normalized, name);
72
+ }
73
+ const directoryPaths = new Set(directoryEntries.map(([, rawPath]) => path.resolve(rawPath)));
74
+ for (const [name, rawPath] of fileEntries) {
75
+ const normalized = path.resolve(rawPath);
76
+ if (directoryPaths.has(normalized)) {
77
+ ctx.addIssue({
78
+ code: z.ZodIssueCode.custom,
79
+ message: `${name} must not resolve to a runtime directory path`,
80
+ path: [name],
81
+ });
82
+ }
83
+ }
39
84
  }),
40
85
  workspace: z.object({
41
86
  projectsBaseDir: z.string().default(''),
42
87
  }),
43
- agents: z.object({
88
+ agents: z
89
+ .object({
44
90
  registry: z.record(z.string(), agentSchema),
45
91
  orchestration: z.object({
46
92
  participants: z.array(z.string()),
47
93
  excluded: z.array(z.string()),
48
94
  orchestratorId: z.string().min(1),
49
95
  }),
50
- }).superRefine((value, ctx) => {
96
+ })
97
+ .superRefine((value, ctx) => {
51
98
  const overlap = value.orchestration.participants.filter((item) => value.orchestration.excluded.includes(item));
52
99
  for (const agentId of overlap) {
53
100
  ctx.addIssue({
@@ -87,6 +134,22 @@ export const zigrixConfigSchema = z.object({
87
134
  path: ['orchestration', 'orchestratorId'],
88
135
  });
89
136
  }
137
+ if (hasOrchestratorInRegistry && value.registry[orchestratorId]?.enabled === false) {
138
+ ctx.addIssue({
139
+ code: z.ZodIssueCode.custom,
140
+ message: `orchestratorId '${orchestratorId}' must reference an enabled agent`,
141
+ path: ['orchestration', 'orchestratorId'],
142
+ });
143
+ }
144
+ if (value.orchestration.participants.length > 0 &&
145
+ hasOrchestratorInRegistry &&
146
+ !value.orchestration.participants.includes(orchestratorId)) {
147
+ ctx.addIssue({
148
+ code: z.ZodIssueCode.custom,
149
+ message: `orchestratorId '${orchestratorId}' must be included in participants when participant mode is active`,
150
+ path: ['orchestration', 'participants'],
151
+ });
152
+ }
90
153
  if (value.orchestration.excluded.includes(orchestratorId)) {
91
154
  ctx.addIssue({
92
155
  code: z.ZodIssueCode.custom,
@@ -96,10 +159,32 @@ export const zigrixConfigSchema = z.object({
96
159
  }
97
160
  }),
98
161
  rules: z.object({
99
- scales: z.record(z.string(), z.object({
162
+ scales: z
163
+ .record(z.string(), z.object({
100
164
  requiredRoles: z.array(roleSchema),
101
165
  optionalRoles: z.array(roleSchema),
102
- })),
166
+ }))
167
+ .superRefine((value, ctx) => {
168
+ for (const scale of STANDARD_SCALES) {
169
+ if (!(scale in value)) {
170
+ ctx.addIssue({
171
+ code: z.ZodIssueCode.custom,
172
+ message: `rules.scales must define '${scale}'`,
173
+ path: [scale],
174
+ });
175
+ }
176
+ }
177
+ for (const [scale, policy] of Object.entries(value)) {
178
+ const overlap = policy.requiredRoles.filter((role) => policy.optionalRoles.includes(role));
179
+ for (const role of overlap) {
180
+ ctx.addIssue({
181
+ code: z.ZodIssueCode.custom,
182
+ message: `scale '${scale}' cannot list role '${role}' as both required and optional`,
183
+ path: [scale],
184
+ });
185
+ }
186
+ }
187
+ }),
103
188
  completion: z.object({
104
189
  requireQa: z.boolean(),
105
190
  requireEvidence: z.boolean(),
@@ -113,11 +198,13 @@ export const zigrixConfigSchema = z.object({
113
198
  workerPrompt: templateSchema,
114
199
  finalReport: templateSchema,
115
200
  }),
116
- openclaw: z.object({
201
+ openclaw: z
202
+ .object({
117
203
  home: z.string().default(''),
118
204
  binPath: z.string().nullable().default(null),
119
205
  gatewayUrl: z.string().default(''),
120
- }).default({ home: '', binPath: null, gatewayUrl: '' }),
206
+ })
207
+ .default({ home: '', binPath: null, gatewayUrl: '' }),
121
208
  runtime: z.object({
122
209
  outputMode: z.enum(['text', 'json']),
123
210
  jsonIndent: z.number().int().min(0).max(8),
@@ -131,7 +218,16 @@ export const zigrixConfigJsonSchema = {
131
218
  properties: {
132
219
  paths: {
133
220
  type: 'object',
134
- required: ['baseDir', 'tasksDir', 'evidenceDir', 'promptsDir', 'eventsFile', 'indexFile', 'runsDir', 'rulesDir'],
221
+ required: [
222
+ 'baseDir',
223
+ 'tasksDir',
224
+ 'evidenceDir',
225
+ 'promptsDir',
226
+ 'eventsFile',
227
+ 'indexFile',
228
+ 'runsDir',
229
+ 'rulesDir',
230
+ ],
135
231
  properties: {
136
232
  baseDir: { type: 'string' },
137
233
  tasksDir: { type: 'string' },
@@ -151,8 +247,86 @@ export const zigrixConfigJsonSchema = {
151
247
  },
152
248
  additionalProperties: false,
153
249
  },
154
- agents: { type: 'object' },
155
- rules: { type: 'object' },
250
+ agents: {
251
+ type: 'object',
252
+ required: ['registry', 'orchestration'],
253
+ properties: {
254
+ registry: {
255
+ type: 'object',
256
+ additionalProperties: {
257
+ type: 'object',
258
+ required: ['label', 'role', 'runtime'],
259
+ properties: {
260
+ label: { type: 'string' },
261
+ role: { type: 'string', enum: [...STANDARD_AGENT_ROLES] },
262
+ runtime: { type: 'string' },
263
+ enabled: { type: 'boolean' },
264
+ metadata: { type: 'object' },
265
+ },
266
+ additionalProperties: true,
267
+ },
268
+ },
269
+ orchestration: {
270
+ type: 'object',
271
+ required: ['participants', 'excluded', 'orchestratorId'],
272
+ properties: {
273
+ participants: { type: 'array', items: { type: 'string' } },
274
+ excluded: { type: 'array', items: { type: 'string' } },
275
+ orchestratorId: { type: 'string' },
276
+ },
277
+ additionalProperties: false,
278
+ },
279
+ },
280
+ additionalProperties: false,
281
+ },
282
+ rules: {
283
+ type: 'object',
284
+ required: ['scales', 'completion', 'stale'],
285
+ properties: {
286
+ scales: {
287
+ type: 'object',
288
+ required: [...STANDARD_SCALES],
289
+ properties: Object.fromEntries(STANDARD_SCALES.map((scale) => [
290
+ scale,
291
+ {
292
+ type: 'object',
293
+ required: ['requiredRoles', 'optionalRoles'],
294
+ properties: {
295
+ requiredRoles: {
296
+ type: 'array',
297
+ items: { type: 'string', enum: [...STANDARD_AGENT_ROLES] },
298
+ },
299
+ optionalRoles: {
300
+ type: 'array',
301
+ items: { type: 'string', enum: [...STANDARD_AGENT_ROLES] },
302
+ },
303
+ },
304
+ additionalProperties: false,
305
+ },
306
+ ])),
307
+ additionalProperties: true,
308
+ },
309
+ completion: {
310
+ type: 'object',
311
+ required: ['requireQa', 'requireEvidence', 'requireUserReport'],
312
+ properties: {
313
+ requireQa: { type: 'boolean' },
314
+ requireEvidence: { type: 'boolean' },
315
+ requireUserReport: { type: 'boolean' },
316
+ },
317
+ additionalProperties: false,
318
+ },
319
+ stale: {
320
+ type: 'object',
321
+ required: ['defaultHours'],
322
+ properties: {
323
+ defaultHours: { type: 'number', exclusiveMinimum: 0 },
324
+ },
325
+ additionalProperties: false,
326
+ },
327
+ },
328
+ additionalProperties: false,
329
+ },
156
330
  templates: { type: 'object' },
157
331
  openclaw: {
158
332
  type: 'object',
@@ -1 +1 @@
1
- iKGx5hWe1zbwJZWchF9kg
1
+ dOjvoQUj-mqwJ8kKG4peU
@@ -3,14 +3,14 @@
3
3
  "/_not-found/page": [
4
4
  "static/chunks/webpack-1c485544eee88ef7.js",
5
5
  "static/chunks/4bd1b696-c023c6e3521b1417.js",
6
- "static/chunks/255-ebd51be49873d76c.js",
6
+ "static/chunks/255-4f212684648fcab9.js",
7
7
  "static/chunks/main-app-458501fc143f8dcb.js",
8
8
  "static/chunks/app/_not-found/page-1ec508643ed76f3b.js"
9
9
  ],
10
10
  "/layout": [
11
11
  "static/chunks/webpack-1c485544eee88ef7.js",
12
12
  "static/chunks/4bd1b696-c023c6e3521b1417.js",
13
- "static/chunks/255-ebd51be49873d76c.js",
13
+ "static/chunks/255-4f212684648fcab9.js",
14
14
  "static/chunks/main-app-458501fc143f8dcb.js",
15
15
  "static/css/9f7ffdac282b0450.css",
16
16
  "static/chunks/app/layout-96206a34ff37a783.js"
@@ -18,86 +18,86 @@
18
18
  "/api/auth/logout/route": [
19
19
  "static/chunks/webpack-1c485544eee88ef7.js",
20
20
  "static/chunks/4bd1b696-c023c6e3521b1417.js",
21
- "static/chunks/255-ebd51be49873d76c.js",
21
+ "static/chunks/255-4f212684648fcab9.js",
22
22
  "static/chunks/main-app-458501fc143f8dcb.js",
23
23
  "static/chunks/app/api/auth/logout/route-aaf047a494f0055f.js"
24
24
  ],
25
25
  "/api/auth/session/route": [
26
26
  "static/chunks/webpack-1c485544eee88ef7.js",
27
27
  "static/chunks/4bd1b696-c023c6e3521b1417.js",
28
- "static/chunks/255-ebd51be49873d76c.js",
28
+ "static/chunks/255-4f212684648fcab9.js",
29
29
  "static/chunks/main-app-458501fc143f8dcb.js",
30
30
  "static/chunks/app/api/auth/session/route-aaf047a494f0055f.js"
31
31
  ],
32
- "/api/auth/setup/route": [
32
+ "/api/auth/login/route": [
33
33
  "static/chunks/webpack-1c485544eee88ef7.js",
34
34
  "static/chunks/4bd1b696-c023c6e3521b1417.js",
35
- "static/chunks/255-ebd51be49873d76c.js",
35
+ "static/chunks/255-4f212684648fcab9.js",
36
36
  "static/chunks/main-app-458501fc143f8dcb.js",
37
- "static/chunks/app/api/auth/setup/route-aaf047a494f0055f.js"
37
+ "static/chunks/app/api/auth/login/route-aaf047a494f0055f.js"
38
38
  ],
39
- "/api/auth/login/route": [
39
+ "/api/auth/setup/route": [
40
40
  "static/chunks/webpack-1c485544eee88ef7.js",
41
41
  "static/chunks/4bd1b696-c023c6e3521b1417.js",
42
- "static/chunks/255-ebd51be49873d76c.js",
42
+ "static/chunks/255-4f212684648fcab9.js",
43
43
  "static/chunks/main-app-458501fc143f8dcb.js",
44
- "static/chunks/app/api/auth/login/route-aaf047a494f0055f.js"
44
+ "static/chunks/app/api/auth/setup/route-aaf047a494f0055f.js"
45
45
  ],
46
46
  "/api/overview/route": [
47
47
  "static/chunks/webpack-1c485544eee88ef7.js",
48
48
  "static/chunks/4bd1b696-c023c6e3521b1417.js",
49
- "static/chunks/255-ebd51be49873d76c.js",
49
+ "static/chunks/255-4f212684648fcab9.js",
50
50
  "static/chunks/main-app-458501fc143f8dcb.js",
51
51
  "static/chunks/app/api/overview/route-aaf047a494f0055f.js"
52
52
  ],
53
- "/api/tasks/[taskId]/cancel/route": [
53
+ "/api/tasks/[taskId]/route": [
54
54
  "static/chunks/webpack-1c485544eee88ef7.js",
55
55
  "static/chunks/4bd1b696-c023c6e3521b1417.js",
56
- "static/chunks/255-ebd51be49873d76c.js",
56
+ "static/chunks/255-4f212684648fcab9.js",
57
57
  "static/chunks/main-app-458501fc143f8dcb.js",
58
- "static/chunks/app/api/tasks/[taskId]/cancel/route-aaf047a494f0055f.js"
58
+ "static/chunks/app/api/tasks/[taskId]/route-aaf047a494f0055f.js"
59
59
  ],
60
- "/api/tasks/[taskId]/conversation/route": [
60
+ "/api/tasks/[taskId]/cancel/route": [
61
61
  "static/chunks/webpack-1c485544eee88ef7.js",
62
62
  "static/chunks/4bd1b696-c023c6e3521b1417.js",
63
- "static/chunks/255-ebd51be49873d76c.js",
63
+ "static/chunks/255-4f212684648fcab9.js",
64
64
  "static/chunks/main-app-458501fc143f8dcb.js",
65
- "static/chunks/app/api/tasks/[taskId]/conversation/route-aaf047a494f0055f.js"
65
+ "static/chunks/app/api/tasks/[taskId]/cancel/route-aaf047a494f0055f.js"
66
66
  ],
67
- "/api/tasks/[taskId]/route": [
67
+ "/api/tasks/[taskId]/conversation/route": [
68
68
  "static/chunks/webpack-1c485544eee88ef7.js",
69
69
  "static/chunks/4bd1b696-c023c6e3521b1417.js",
70
- "static/chunks/255-ebd51be49873d76c.js",
70
+ "static/chunks/255-4f212684648fcab9.js",
71
71
  "static/chunks/main-app-458501fc143f8dcb.js",
72
- "static/chunks/app/api/tasks/[taskId]/route-aaf047a494f0055f.js"
72
+ "static/chunks/app/api/tasks/[taskId]/conversation/route-aaf047a494f0055f.js"
73
73
  ],
74
74
  "/api/stream/route": [
75
75
  "static/chunks/webpack-1c485544eee88ef7.js",
76
76
  "static/chunks/4bd1b696-c023c6e3521b1417.js",
77
- "static/chunks/255-ebd51be49873d76c.js",
77
+ "static/chunks/255-4f212684648fcab9.js",
78
78
  "static/chunks/main-app-458501fc143f8dcb.js",
79
79
  "static/chunks/app/api/stream/route-aaf047a494f0055f.js"
80
80
  ],
81
- "/setup/page": [
81
+ "/login/page": [
82
82
  "static/chunks/webpack-1c485544eee88ef7.js",
83
83
  "static/chunks/4bd1b696-c023c6e3521b1417.js",
84
- "static/chunks/255-ebd51be49873d76c.js",
84
+ "static/chunks/255-4f212684648fcab9.js",
85
85
  "static/chunks/main-app-458501fc143f8dcb.js",
86
86
  "static/css/1f406f685b1e941e.css",
87
- "static/chunks/app/setup/page-a01ab6e2460293c3.js"
87
+ "static/chunks/app/login/page-f627cfc7a91a6d34.js"
88
88
  ],
89
- "/login/page": [
89
+ "/setup/page": [
90
90
  "static/chunks/webpack-1c485544eee88ef7.js",
91
91
  "static/chunks/4bd1b696-c023c6e3521b1417.js",
92
- "static/chunks/255-ebd51be49873d76c.js",
92
+ "static/chunks/255-4f212684648fcab9.js",
93
93
  "static/chunks/main-app-458501fc143f8dcb.js",
94
94
  "static/css/1f406f685b1e941e.css",
95
- "static/chunks/app/login/page-f627cfc7a91a6d34.js"
95
+ "static/chunks/app/setup/page-a01ab6e2460293c3.js"
96
96
  ],
97
97
  "/page": [
98
98
  "static/chunks/webpack-1c485544eee88ef7.js",
99
99
  "static/chunks/4bd1b696-c023c6e3521b1417.js",
100
- "static/chunks/255-ebd51be49873d76c.js",
100
+ "static/chunks/255-4f212684648fcab9.js",
101
101
  "static/chunks/main-app-458501fc143f8dcb.js",
102
102
  "static/css/c3a7306cb2ba3f6c.css",
103
103
  "static/chunks/856-4671c40140d5540a.js",
@@ -2,14 +2,14 @@
2
2
  "/_not-found/page": "/_not-found",
3
3
  "/api/auth/logout/route": "/api/auth/logout",
4
4
  "/api/auth/session/route": "/api/auth/session",
5
- "/api/auth/setup/route": "/api/auth/setup",
6
5
  "/api/auth/login/route": "/api/auth/login",
6
+ "/api/auth/setup/route": "/api/auth/setup",
7
7
  "/api/overview/route": "/api/overview",
8
+ "/api/tasks/[taskId]/route": "/api/tasks/[taskId]",
8
9
  "/api/tasks/[taskId]/cancel/route": "/api/tasks/[taskId]/cancel",
9
10
  "/api/tasks/[taskId]/conversation/route": "/api/tasks/[taskId]/conversation",
10
- "/api/tasks/[taskId]/route": "/api/tasks/[taskId]",
11
11
  "/api/stream/route": "/api/stream",
12
- "/setup/page": "/setup",
13
12
  "/login/page": "/login",
13
+ "/setup/page": "/setup",
14
14
  "/page": "/"
15
15
  }
@@ -5,13 +5,13 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/iKGx5hWe1zbwJZWchF9kg/_buildManifest.js",
9
- "static/iKGx5hWe1zbwJZWchF9kg/_ssgManifest.js"
8
+ "static/dOjvoQUj-mqwJ8kKG4peU/_buildManifest.js",
9
+ "static/dOjvoQUj-mqwJ8kKG4peU/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [
12
12
  "static/chunks/webpack-1c485544eee88ef7.js",
13
13
  "static/chunks/4bd1b696-c023c6e3521b1417.js",
14
- "static/chunks/255-ebd51be49873d76c.js",
14
+ "static/chunks/255-4f212684648fcab9.js",
15
15
  "static/chunks/main-app-458501fc143f8dcb.js"
16
16
  ],
17
17
  "rootMainFilesTree": {},
@@ -19,13 +19,13 @@
19
19
  "/_app": [
20
20
  "static/chunks/webpack-1c485544eee88ef7.js",
21
21
  "static/chunks/framework-de98b93a850cfc71.js",
22
- "static/chunks/main-da2d845a416cfa3f.js",
22
+ "static/chunks/main-cec07dc17fdd452c.js",
23
23
  "static/chunks/pages/_app-7d307437aca18ad4.js"
24
24
  ],
25
25
  "/_error": [
26
26
  "static/chunks/webpack-1c485544eee88ef7.js",
27
27
  "static/chunks/framework-de98b93a850cfc71.js",
28
- "static/chunks/main-da2d845a416cfa3f.js",
28
+ "static/chunks/main-cec07dc17fdd452c.js",
29
29
  "static/chunks/pages/_error-cb2a52f75f2162e2.js"
30
30
  ]
31
31
  },