gsd-pi 2.70.1-dev.3591dcf → 2.70.1-dev.6504106

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 (138) hide show
  1. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +129 -30
  2. package/dist/resources/extensions/get-secrets-from-user.js +17 -1
  3. package/dist/resources/extensions/gsd/auto-start.js +3 -11
  4. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +4 -0
  5. package/dist/resources/extensions/gsd/guided-flow.js +12 -10
  6. package/dist/resources/extensions/gsd/init-wizard.js +3 -11
  7. package/dist/resources/extensions/gsd/prompts/discuss.md +31 -13
  8. package/dist/resources/extensions/gsd/state.js +234 -332
  9. package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +34 -0
  10. package/dist/resources/extensions/gsd/workflow-mcp-auto-prep.js +56 -0
  11. package/dist/resources/extensions/gsd/workflow-mcp.js +1 -1
  12. package/dist/web/standalone/.next/BUILD_ID +1 -1
  13. package/dist/web/standalone/.next/app-path-routes-manifest.json +15 -15
  14. package/dist/web/standalone/.next/build-manifest.json +3 -3
  15. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  16. package/dist/web/standalone/.next/react-loadable-manifest.json +1 -1
  17. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  18. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  19. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  20. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  21. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  22. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  23. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  24. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  25. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  26. package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
  27. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  28. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  29. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  30. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  31. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  32. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  33. package/dist/web/standalone/.next/server/app/index.html +1 -1
  34. package/dist/web/standalone/.next/server/app/index.rsc +1 -1
  35. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  36. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  37. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  38. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  39. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  40. package/dist/web/standalone/.next/server/app-paths-manifest.json +15 -15
  41. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  42. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  43. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  44. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  45. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  46. package/dist/web/standalone/.next/static/chunks/2826.dd3dc8bbd3025fa5.js +9 -0
  47. package/dist/web/standalone/.next/static/chunks/{webpack-6e4d7e9a4f57bed4.js → webpack-b868033a5834586d.js} +1 -1
  48. package/package.json +1 -1
  49. package/packages/mcp-server/dist/env-writer.d.ts +39 -0
  50. package/packages/mcp-server/dist/env-writer.d.ts.map +1 -0
  51. package/packages/mcp-server/dist/env-writer.js +158 -0
  52. package/packages/mcp-server/dist/env-writer.js.map +1 -0
  53. package/packages/mcp-server/dist/server.d.ts +11 -2
  54. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  55. package/packages/mcp-server/dist/server.js +102 -2
  56. package/packages/mcp-server/dist/server.js.map +1 -1
  57. package/packages/mcp-server/src/env-writer.test.ts +280 -0
  58. package/packages/mcp-server/src/env-writer.ts +183 -0
  59. package/packages/mcp-server/src/secure-env-collect.test.ts +265 -0
  60. package/packages/mcp-server/src/server.ts +137 -3
  61. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.d.ts +2 -0
  62. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.d.ts.map +1 -0
  63. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js +310 -0
  64. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js.map +1 -0
  65. package/packages/pi-coding-agent/dist/core/extensions/types.d.ts +2 -0
  66. package/packages/pi-coding-agent/dist/core/extensions/types.d.ts.map +1 -1
  67. package/packages/pi-coding-agent/dist/core/extensions/types.js.map +1 -1
  68. package/packages/pi-coding-agent/dist/modes/interactive/components/dynamic-border.d.ts +19 -2
  69. package/packages/pi-coding-agent/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  70. package/packages/pi-coding-agent/dist/modes/interactive/components/dynamic-border.js +50 -1
  71. package/packages/pi-coding-agent/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  72. package/packages/pi-coding-agent/dist/modes/interactive/components/extension-input.d.ts +1 -0
  73. package/packages/pi-coding-agent/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  74. package/packages/pi-coding-agent/dist/modes/interactive/components/extension-input.js +1 -0
  75. package/packages/pi-coding-agent/dist/modes/interactive/components/extension-input.js.map +1 -1
  76. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  77. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +158 -23
  78. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  79. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.d.ts +1 -0
  80. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.d.ts.map +1 -1
  81. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.js.map +1 -1
  82. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +6 -0
  83. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  84. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +58 -2
  85. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  86. package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.js +1 -1
  87. package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.js.map +1 -1
  88. package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts +1 -0
  89. package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  90. package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.js.map +1 -1
  91. package/packages/pi-coding-agent/src/core/chat-controller-ordering.test.ts +370 -0
  92. package/packages/pi-coding-agent/src/core/extensions/types.ts +2 -0
  93. package/packages/pi-coding-agent/src/modes/interactive/components/dynamic-border.ts +58 -2
  94. package/packages/pi-coding-agent/src/modes/interactive/components/extension-input.ts +2 -0
  95. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +189 -29
  96. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode-state.ts +1 -0
  97. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +66 -2
  98. package/packages/pi-coding-agent/src/modes/rpc/rpc-mode.ts +1 -1
  99. package/packages/pi-coding-agent/src/modes/rpc/rpc-types.ts +1 -0
  100. package/packages/pi-tui/dist/components/__tests__/input.test.js +9 -0
  101. package/packages/pi-tui/dist/components/__tests__/input.test.js.map +1 -1
  102. package/packages/pi-tui/dist/components/__tests__/markdown-maxlines.test.d.ts +2 -0
  103. package/packages/pi-tui/dist/components/__tests__/markdown-maxlines.test.d.ts.map +1 -0
  104. package/packages/pi-tui/dist/components/__tests__/markdown-maxlines.test.js +66 -0
  105. package/packages/pi-tui/dist/components/__tests__/markdown-maxlines.test.js.map +1 -0
  106. package/packages/pi-tui/dist/components/input.d.ts +2 -0
  107. package/packages/pi-tui/dist/components/input.d.ts.map +1 -1
  108. package/packages/pi-tui/dist/components/input.js +7 -4
  109. package/packages/pi-tui/dist/components/input.js.map +1 -1
  110. package/packages/pi-tui/dist/components/markdown.d.ts +3 -0
  111. package/packages/pi-tui/dist/components/markdown.d.ts.map +1 -1
  112. package/packages/pi-tui/dist/components/markdown.js +17 -1
  113. package/packages/pi-tui/dist/components/markdown.js.map +1 -1
  114. package/packages/pi-tui/src/components/__tests__/input.test.ts +11 -0
  115. package/packages/pi-tui/src/components/__tests__/markdown-maxlines.test.ts +75 -0
  116. package/packages/pi-tui/src/components/input.ts +7 -4
  117. package/packages/pi-tui/src/components/markdown.ts +22 -1
  118. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +166 -31
  119. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +145 -0
  120. package/src/resources/extensions/get-secrets-from-user.ts +24 -1
  121. package/src/resources/extensions/gsd/auto-start.ts +3 -13
  122. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +4 -0
  123. package/src/resources/extensions/gsd/guided-flow.ts +12 -9
  124. package/src/resources/extensions/gsd/init-wizard.ts +3 -13
  125. package/src/resources/extensions/gsd/prompts/discuss.md +31 -13
  126. package/src/resources/extensions/gsd/state.ts +274 -344
  127. package/src/resources/extensions/gsd/tests/derive-state-helpers.test.ts +436 -0
  128. package/src/resources/extensions/gsd/tests/discuss-incremental-persistence.test.ts +9 -0
  129. package/src/resources/extensions/gsd/tests/secure-env-collect.test.ts +45 -0
  130. package/src/resources/extensions/gsd/tests/workflow-mcp-auto-prep.test.ts +76 -0
  131. package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +155 -1
  132. package/src/resources/extensions/gsd/tests/workflow-tool-executors.test.ts +22 -0
  133. package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +60 -25
  134. package/src/resources/extensions/gsd/workflow-mcp-auto-prep.ts +76 -0
  135. package/src/resources/extensions/gsd/workflow-mcp.ts +1 -1
  136. package/dist/web/standalone/.next/static/chunks/2826.821e01b07d92e948.js +0 -9
  137. /package/dist/web/standalone/.next/static/{KdlODhIktLmeRKpLpHdKb → T3hWbQ-WQBDEIGoaOOfEo}/_buildManifest.js +0 -0
  138. /package/dist/web/standalone/.next/static/{KdlODhIktLmeRKpLpHdKb → T3hWbQ-WQBDEIGoaOOfEo}/_ssgManifest.js +0 -0
@@ -23,12 +23,14 @@ export async function executeSummarySave(params, basePath = process.cwd()) {
23
23
  return {
24
24
  content: [{ type: "text", text: "Error: GSD database is not available. Cannot save artifact." }],
25
25
  details: { operation: "save_summary", error: "db_unavailable" },
26
+ isError: true,
26
27
  };
27
28
  }
28
29
  if (!isSupportedSummaryArtifactType(params.artifact_type)) {
29
30
  return {
30
31
  content: [{ type: "text", text: `Error: Invalid artifact_type "${params.artifact_type}". Must be one of: ${SUPPORTED_SUMMARY_ARTIFACT_TYPES.join(", ")}` }],
31
32
  details: { operation: "save_summary", error: "invalid_artifact_type" },
33
+ isError: true,
32
34
  };
33
35
  }
34
36
  const contextGuard = shouldBlockContextArtifactSaveInSnapshot(loadWriteGateSnapshot(basePath), params.artifact_type, params.milestone_id ?? null, params.slice_id ?? null);
@@ -36,6 +38,7 @@ export async function executeSummarySave(params, basePath = process.cwd()) {
36
38
  return {
37
39
  content: [{ type: "text", text: `Error saving artifact: ${contextGuard.reason ?? "context write blocked"}` }],
38
40
  details: { operation: "save_summary", error: "context_write_blocked" },
41
+ isError: true,
39
42
  };
40
43
  }
41
44
  try {
@@ -68,6 +71,7 @@ export async function executeSummarySave(params, basePath = process.cwd()) {
68
71
  return {
69
72
  content: [{ type: "text", text: `Error saving artifact: ${msg}` }],
70
73
  details: { operation: "save_summary", error: msg },
74
+ isError: true,
71
75
  };
72
76
  }
73
77
  }
@@ -77,6 +81,7 @@ export async function executeTaskComplete(params, basePath = process.cwd()) {
77
81
  return {
78
82
  content: [{ type: "text", text: "Error: GSD database is not available. Cannot complete task." }],
79
83
  details: { operation: "complete_task", error: "db_unavailable" },
84
+ isError: true,
80
85
  };
81
86
  }
82
87
  try {
@@ -87,6 +92,7 @@ export async function executeTaskComplete(params, basePath = process.cwd()) {
87
92
  return {
88
93
  content: [{ type: "text", text: `Error completing task: ${result.error}` }],
89
94
  details: { operation: "complete_task", error: result.error },
95
+ isError: true,
90
96
  };
91
97
  }
92
98
  return {
@@ -106,6 +112,7 @@ export async function executeTaskComplete(params, basePath = process.cwd()) {
106
112
  return {
107
113
  content: [{ type: "text", text: `Error completing task: ${msg}` }],
108
114
  details: { operation: "complete_task", error: msg },
115
+ isError: true,
109
116
  };
110
117
  }
111
118
  }
@@ -115,6 +122,7 @@ export async function executeSliceComplete(params, basePath = process.cwd()) {
115
122
  return {
116
123
  content: [{ type: "text", text: "Error: GSD database is not available. Cannot complete slice." }],
117
124
  details: { operation: "complete_slice", error: "db_unavailable" },
125
+ isError: true,
118
126
  };
119
127
  }
120
128
  try {
@@ -167,6 +175,7 @@ export async function executeSliceComplete(params, basePath = process.cwd()) {
167
175
  return {
168
176
  content: [{ type: "text", text: `Error completing slice: ${result.error}` }],
169
177
  details: { operation: "complete_slice", error: result.error },
178
+ isError: true,
170
179
  };
171
180
  }
172
181
  return {
@@ -186,6 +195,7 @@ export async function executeSliceComplete(params, basePath = process.cwd()) {
186
195
  return {
187
196
  content: [{ type: "text", text: `Error completing slice: ${msg}` }],
188
197
  details: { operation: "complete_slice", error: msg },
198
+ isError: true,
189
199
  };
190
200
  }
191
201
  }
@@ -195,6 +205,7 @@ export async function executeCompleteMilestone(params, basePath = process.cwd())
195
205
  return {
196
206
  content: [{ type: "text", text: "Error: GSD database is not available. Cannot complete milestone." }],
197
207
  details: { operation: "complete_milestone", error: "db_unavailable" },
208
+ isError: true,
198
209
  };
199
210
  }
200
211
  try {
@@ -204,6 +215,7 @@ export async function executeCompleteMilestone(params, basePath = process.cwd())
204
215
  return {
205
216
  content: [{ type: "text", text: `Error completing milestone: ${result.error}` }],
206
217
  details: { operation: "complete_milestone", error: result.error },
218
+ isError: true,
207
219
  };
208
220
  }
209
221
  return {
@@ -221,6 +233,7 @@ export async function executeCompleteMilestone(params, basePath = process.cwd())
221
233
  return {
222
234
  content: [{ type: "text", text: `Error completing milestone: ${msg}` }],
223
235
  details: { operation: "complete_milestone", error: msg },
236
+ isError: true,
224
237
  };
225
238
  }
226
239
  }
@@ -230,6 +243,7 @@ export async function executeValidateMilestone(params, basePath = process.cwd())
230
243
  return {
231
244
  content: [{ type: "text", text: "Error: GSD database is not available. Cannot validate milestone." }],
232
245
  details: { operation: "validate_milestone", error: "db_unavailable" },
246
+ isError: true,
233
247
  };
234
248
  }
235
249
  try {
@@ -238,6 +252,7 @@ export async function executeValidateMilestone(params, basePath = process.cwd())
238
252
  return {
239
253
  content: [{ type: "text", text: `Error validating milestone: ${result.error}` }],
240
254
  details: { operation: "validate_milestone", error: result.error },
255
+ isError: true,
241
256
  };
242
257
  }
243
258
  return {
@@ -256,6 +271,7 @@ export async function executeValidateMilestone(params, basePath = process.cwd())
256
271
  return {
257
272
  content: [{ type: "text", text: `Error validating milestone: ${msg}` }],
258
273
  details: { operation: "validate_milestone", error: msg },
274
+ isError: true,
259
275
  };
260
276
  }
261
277
  }
@@ -265,6 +281,7 @@ export async function executeReassessRoadmap(params, basePath = process.cwd()) {
265
281
  return {
266
282
  content: [{ type: "text", text: "Error: GSD database is not available. Cannot reassess roadmap." }],
267
283
  details: { operation: "reassess_roadmap", error: "db_unavailable" },
284
+ isError: true,
268
285
  };
269
286
  }
270
287
  try {
@@ -273,6 +290,7 @@ export async function executeReassessRoadmap(params, basePath = process.cwd()) {
273
290
  return {
274
291
  content: [{ type: "text", text: `Error reassessing roadmap: ${result.error}` }],
275
292
  details: { operation: "reassess_roadmap", error: result.error },
293
+ isError: true,
276
294
  };
277
295
  }
278
296
  return {
@@ -292,6 +310,7 @@ export async function executeReassessRoadmap(params, basePath = process.cwd()) {
292
310
  return {
293
311
  content: [{ type: "text", text: `Error reassessing roadmap: ${msg}` }],
294
312
  details: { operation: "reassess_roadmap", error: msg },
313
+ isError: true,
295
314
  };
296
315
  }
297
316
  }
@@ -301,6 +320,7 @@ export async function executeSaveGateResult(params, basePath = process.cwd()) {
301
320
  return {
302
321
  content: [{ type: "text", text: "Error: GSD database is not available." }],
303
322
  details: { operation: "save_gate_result", error: "db_unavailable" },
323
+ isError: true,
304
324
  };
305
325
  }
306
326
  const validGates = ["Q3", "Q4", "Q5", "Q6", "Q7", "Q8"];
@@ -308,6 +328,7 @@ export async function executeSaveGateResult(params, basePath = process.cwd()) {
308
328
  return {
309
329
  content: [{ type: "text", text: `Error: Invalid gateId "${params.gateId}". Must be one of: ${validGates.join(", ")}` }],
310
330
  details: { operation: "save_gate_result", error: "invalid_gate_id" },
331
+ isError: true,
311
332
  };
312
333
  }
313
334
  const validVerdicts = ["pass", "flag", "omitted"];
@@ -315,6 +336,7 @@ export async function executeSaveGateResult(params, basePath = process.cwd()) {
315
336
  return {
316
337
  content: [{ type: "text", text: `Error: Invalid verdict "${params.verdict}". Must be one of: ${validVerdicts.join(", ")}` }],
317
338
  details: { operation: "save_gate_result", error: "invalid_verdict" },
339
+ isError: true,
318
340
  };
319
341
  }
320
342
  try {
@@ -339,6 +361,7 @@ export async function executeSaveGateResult(params, basePath = process.cwd()) {
339
361
  return {
340
362
  content: [{ type: "text", text: `Error saving gate result: ${msg}` }],
341
363
  details: { operation: "save_gate_result", error: msg },
364
+ isError: true,
342
365
  };
343
366
  }
344
367
  }
@@ -348,6 +371,7 @@ export async function executePlanMilestone(params, basePath = process.cwd()) {
348
371
  return {
349
372
  content: [{ type: "text", text: "Error: GSD database is not available. Cannot plan milestone." }],
350
373
  details: { operation: "plan_milestone", error: "db_unavailable" },
374
+ isError: true,
351
375
  };
352
376
  }
353
377
  try {
@@ -356,6 +380,7 @@ export async function executePlanMilestone(params, basePath = process.cwd()) {
356
380
  return {
357
381
  content: [{ type: "text", text: `Error planning milestone: ${result.error}` }],
358
382
  details: { operation: "plan_milestone", error: result.error },
383
+ isError: true,
359
384
  };
360
385
  }
361
386
  return {
@@ -373,6 +398,7 @@ export async function executePlanMilestone(params, basePath = process.cwd()) {
373
398
  return {
374
399
  content: [{ type: "text", text: `Error planning milestone: ${msg}` }],
375
400
  details: { operation: "plan_milestone", error: msg },
401
+ isError: true,
376
402
  };
377
403
  }
378
404
  }
@@ -382,6 +408,7 @@ export async function executePlanSlice(params, basePath = process.cwd()) {
382
408
  return {
383
409
  content: [{ type: "text", text: "Error: GSD database is not available. Cannot plan slice." }],
384
410
  details: { operation: "plan_slice", error: "db_unavailable" },
411
+ isError: true,
385
412
  };
386
413
  }
387
414
  try {
@@ -390,6 +417,7 @@ export async function executePlanSlice(params, basePath = process.cwd()) {
390
417
  return {
391
418
  content: [{ type: "text", text: `Error planning slice: ${result.error}` }],
392
419
  details: { operation: "plan_slice", error: result.error },
420
+ isError: true,
393
421
  };
394
422
  }
395
423
  return {
@@ -409,6 +437,7 @@ export async function executePlanSlice(params, basePath = process.cwd()) {
409
437
  return {
410
438
  content: [{ type: "text", text: `Error planning slice: ${msg}` }],
411
439
  details: { operation: "plan_slice", error: msg },
440
+ isError: true,
412
441
  };
413
442
  }
414
443
  }
@@ -418,6 +447,7 @@ export async function executeReplanSlice(params, basePath = process.cwd()) {
418
447
  return {
419
448
  content: [{ type: "text", text: "Error: GSD database is not available. Cannot replan slice." }],
420
449
  details: { operation: "replan_slice", error: "db_unavailable" },
450
+ isError: true,
421
451
  };
422
452
  }
423
453
  try {
@@ -426,6 +456,7 @@ export async function executeReplanSlice(params, basePath = process.cwd()) {
426
456
  return {
427
457
  content: [{ type: "text", text: `Error replanning slice: ${result.error}` }],
428
458
  details: { operation: "replan_slice", error: result.error },
459
+ isError: true,
429
460
  };
430
461
  }
431
462
  return {
@@ -445,6 +476,7 @@ export async function executeReplanSlice(params, basePath = process.cwd()) {
445
476
  return {
446
477
  content: [{ type: "text", text: `Error replanning slice: ${msg}` }],
447
478
  details: { operation: "replan_slice", error: msg },
479
+ isError: true,
448
480
  };
449
481
  }
450
482
  }
@@ -455,6 +487,7 @@ export async function executeMilestoneStatus(params, basePath = process.cwd()) {
455
487
  return {
456
488
  content: [{ type: "text", text: "Error: GSD database is not available." }],
457
489
  details: { operation: "milestone_status", error: "db_unavailable" },
490
+ isError: true,
458
491
  };
459
492
  }
460
493
  const adapter = _getAdapter();
@@ -503,6 +536,7 @@ export async function executeMilestoneStatus(params, basePath = process.cwd()) {
503
536
  return {
504
537
  content: [{ type: "text", text: `Error querying milestone status: ${msg}` }],
505
538
  details: { operation: "milestone_status", error: msg },
539
+ isError: true,
506
540
  };
507
541
  }
508
542
  }
@@ -0,0 +1,56 @@
1
+ import { ensureProjectWorkflowMcpConfig, } from "./mcp-project-config.js";
2
+ import { usesWorkflowMcpTransport } from "./workflow-mcp.js";
3
+ function getAuthModeSafe(ctx, provider) {
4
+ if (!provider)
5
+ return undefined;
6
+ const getAuthMode = ctx.modelRegistry?.getProviderAuthMode;
7
+ if (typeof getAuthMode !== "function")
8
+ return undefined;
9
+ try {
10
+ return getAuthMode(provider);
11
+ }
12
+ catch {
13
+ return undefined;
14
+ }
15
+ }
16
+ function hasClaudeCodeProvider(ctx) {
17
+ return getAuthModeSafe(ctx, "claude-code") === "externalCli";
18
+ }
19
+ function isClaudeCodeProviderReady(ctx) {
20
+ const readyCheck = ctx.modelRegistry?.isProviderRequestReady;
21
+ if (typeof readyCheck !== "function")
22
+ return false;
23
+ try {
24
+ return readyCheck("claude-code");
25
+ }
26
+ catch {
27
+ return false;
28
+ }
29
+ }
30
+ export function shouldAutoPrepareWorkflowMcp(ctx) {
31
+ const provider = ctx.model?.provider;
32
+ const baseUrl = ctx.model?.baseUrl;
33
+ const authMode = getAuthModeSafe(ctx, provider);
34
+ if (usesWorkflowMcpTransport(authMode, baseUrl))
35
+ return true;
36
+ if (provider === "claude-code")
37
+ return true;
38
+ if (hasClaudeCodeProvider(ctx))
39
+ return true;
40
+ return isClaudeCodeProviderReady(ctx);
41
+ }
42
+ export function prepareWorkflowMcpForProject(ctx, projectRoot) {
43
+ if (!shouldAutoPrepareWorkflowMcp(ctx))
44
+ return null;
45
+ try {
46
+ const result = ensureProjectWorkflowMcpConfig(projectRoot);
47
+ if (result.status !== "unchanged") {
48
+ ctx.ui?.notify?.(`Claude Code MCP prepared at ${result.configPath}`, "info");
49
+ }
50
+ return result;
51
+ }
52
+ catch (err) {
53
+ ctx.ui?.notify?.(`Claude Code MCP prep failed: ${err instanceof Error ? err.message : String(err)}. Detected Claude Code model but no workflow MCP. Please run /gsd mcp init . from your project root.`, "warning");
54
+ return null;
55
+ }
56
+ }
@@ -310,7 +310,7 @@ export function getWorkflowTransportSupportError(provider, requiredTools, option
310
310
  const unitLabel = options.unitType ? ` for ${options.unitType}` : "";
311
311
  const providerLabel = `"${provider}"`;
312
312
  if (!launch) {
313
- return `Provider ${providerLabel} cannot run ${surface}${unitLabel}: the GSD workflow MCP server is not configured or discoverable. Configure GSD_WORKFLOW_MCP_COMMAND, build packages/mcp-server/dist/cli.js, or install gsd-mcp-server on PATH.`;
313
+ return `Provider ${providerLabel} cannot run ${surface}${unitLabel}: the GSD workflow MCP server is not configured or discoverable. Detected Claude Code model but no workflow MCP. Please run /gsd mcp init . from your project root. You can also configure GSD_WORKFLOW_MCP_COMMAND, build packages/mcp-server/dist/cli.js, or install gsd-mcp-server on PATH.`;
314
314
  }
315
315
  const missing = [...new Set(requiredTools)].filter((tool) => !MCP_WORKFLOW_TOOL_SURFACE.has(tool));
316
316
  if (missing.length === 0)
@@ -1 +1 @@
1
- KdlODhIktLmeRKpLpHdKb
1
+ T3hWbQ-WQBDEIGoaOOfEo
@@ -5,43 +5,43 @@
5
5
  "/api/bridge-terminal/resize/route": "/api/bridge-terminal/resize",
6
6
  "/api/bridge-terminal/input/route": "/api/bridge-terminal/input",
7
7
  "/api/bridge-terminal/stream/route": "/api/bridge-terminal/stream",
8
- "/api/dev-mode/route": "/api/dev-mode",
9
8
  "/api/cleanup/route": "/api/cleanup",
10
- "/api/doctor/route": "/api/doctor",
11
- "/api/export-data/route": "/api/export-data",
9
+ "/api/dev-mode/route": "/api/dev-mode",
12
10
  "/api/captures/route": "/api/captures",
13
- "/api/forensics/route": "/api/forensics",
11
+ "/api/export-data/route": "/api/export-data",
12
+ "/api/doctor/route": "/api/doctor",
14
13
  "/api/browse-directories/route": "/api/browse-directories",
14
+ "/api/forensics/route": "/api/forensics",
15
15
  "/api/git/route": "/api/git",
16
16
  "/api/history/route": "/api/history",
17
- "/api/experimental/route": "/api/experimental",
18
17
  "/api/hooks/route": "/api/hooks",
19
- "/api/knowledge/route": "/api/knowledge",
20
18
  "/api/inspect/route": "/api/inspect",
21
- "/api/notifications/route": "/api/notifications",
19
+ "/api/knowledge/route": "/api/knowledge",
22
20
  "/api/live-state/route": "/api/live-state",
21
+ "/api/experimental/route": "/api/experimental",
22
+ "/api/notifications/route": "/api/notifications",
23
23
  "/api/preferences/route": "/api/preferences",
24
- "/api/recovery/route": "/api/recovery",
25
24
  "/api/onboarding/route": "/api/onboarding",
25
+ "/api/recovery/route": "/api/recovery",
26
26
  "/api/projects/route": "/api/projects",
27
27
  "/api/session/browser/route": "/api/session/browser",
28
28
  "/api/session/command/route": "/api/session/command",
29
29
  "/api/files/route": "/api/files",
30
- "/api/settings-data/route": "/api/settings-data",
31
- "/api/shutdown/route": "/api/shutdown",
32
30
  "/api/session/events/route": "/api/session/events",
31
+ "/api/shutdown/route": "/api/shutdown",
32
+ "/api/settings-data/route": "/api/settings-data",
33
33
  "/api/skill-health/route": "/api/skill-health",
34
- "/api/session/manage/route": "/api/session/manage",
35
34
  "/api/steer/route": "/api/steer",
35
+ "/api/session/manage/route": "/api/session/manage",
36
36
  "/api/terminal/input/route": "/api/terminal/input",
37
- "/api/switch-root/route": "/api/switch-root",
38
37
  "/api/terminal/resize/route": "/api/terminal/resize",
39
38
  "/api/terminal/sessions/route": "/api/terminal/sessions",
40
- "/api/terminal/upload/route": "/api/terminal/upload",
41
- "/api/terminal/stream/route": "/api/terminal/stream",
39
+ "/api/switch-root/route": "/api/switch-root",
42
40
  "/api/undo/route": "/api/undo",
43
- "/api/update/route": "/api/update",
41
+ "/api/terminal/upload/route": "/api/terminal/upload",
44
42
  "/api/visualizer/route": "/api/visualizer",
43
+ "/api/terminal/stream/route": "/api/terminal/stream",
45
44
  "/api/remote-questions/route": "/api/remote-questions",
45
+ "/api/update/route": "/api/update",
46
46
  "/page": "/"
47
47
  }
@@ -4,11 +4,11 @@
4
4
  ],
5
5
  "devFiles": [],
6
6
  "lowPriorityFiles": [
7
- "static/KdlODhIktLmeRKpLpHdKb/_buildManifest.js",
8
- "static/KdlODhIktLmeRKpLpHdKb/_ssgManifest.js"
7
+ "static/T3hWbQ-WQBDEIGoaOOfEo/_buildManifest.js",
8
+ "static/T3hWbQ-WQBDEIGoaOOfEo/_ssgManifest.js"
9
9
  ],
10
10
  "rootMainFiles": [
11
- "static/chunks/webpack-6e4d7e9a4f57bed4.js",
11
+ "static/chunks/webpack-b868033a5834586d.js",
12
12
  "static/chunks/4bd1b696-e356ca5ba0218e27.js",
13
13
  "static/chunks/3794-42fdce068d44fa4f.js",
14
14
  "static/chunks/main-app-fdab67f7802d7832.js"
@@ -78,8 +78,8 @@
78
78
  "dynamicRoutes": {},
79
79
  "notFoundRoutes": [],
80
80
  "preview": {
81
- "previewModeId": "c500c837ae69dd8eb4f9fb7dfab081bf",
82
- "previewModeSigningKey": "dc37d00b3cc64d875cf636dc2cbef65423eaa6b68e842986687e503b8f8f7686",
83
- "previewModeEncryptionKey": "2a9ede3a630dff97c36605e920fc19fbf5a780ba176e15f3742f79a2b78e2dbc"
81
+ "previewModeId": "88a5acc522599435ccf1ac7dd69f26ff",
82
+ "previewModeSigningKey": "b6d1d17cb965d25b98748510eedc5aa3a923bb2027a4a5176fa11d63193ac582",
83
+ "previewModeEncryptionKey": "c2fbc6f3b7c5e0dfededa4db507550fb9955449c5909476128fae09fe0e0c971"
84
84
  }
85
85
  }
@@ -6,7 +6,7 @@
6
6
  "static/chunks/363642f4.cf8b455e0d94b478.js",
7
7
  "static/chunks/4986-c2fc8845ce785303.js",
8
8
  "static/chunks/2008.71ee9230ad78df21.js",
9
- "static/chunks/2826.821e01b07d92e948.js"
9
+ "static/chunks/2826.dd3dc8bbd3025fa5.js"
10
10
  ]
11
11
  },
12
12
  "components/gsd/chat-mode.tsx -> react-markdown": {
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-6e4d7e9a4f57bed4.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-42fdce068d44fa4f.js" async=""></script><script src="/_next/static/chunks/main-app-fdab67f7802d7832.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-6e4d7e9a4f57bed4.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"KdlODhIktLmeRKpLpHdKb\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-b868033a5834586d.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-42fdce068d44fa4f.js" async=""></script><script src="/_next/static/chunks/main-app-fdab67f7802d7832.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-b868033a5834586d.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"T3hWbQ-WQBDEIGoaOOfEo\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
@@ -6,7 +6,7 @@
6
6
  8:I[90484,[],"ViewportBoundary"]
7
7
  a:I[90484,[],"MetadataBoundary"]
8
8
  c:I[27123,[],"default",1]
9
- 0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["_global-error",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"KdlODhIktLmeRKpLpHdKb"}
9
+ 0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["_global-error",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"T3hWbQ-WQBDEIGoaOOfEo"}
10
10
  d:[]
11
11
  7:"$Wd"
12
12
  9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
@@ -6,7 +6,7 @@
6
6
  8:I[90484,[],"ViewportBoundary"]
7
7
  a:I[90484,[],"MetadataBoundary"]
8
8
  c:I[27123,[],"default",1]
9
- 0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["_global-error",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"KdlODhIktLmeRKpLpHdKb"}
9
+ 0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["_global-error",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"T3hWbQ-WQBDEIGoaOOfEo"}
10
10
  d:[]
11
11
  7:"$Wd"
12
12
  9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
@@ -1,5 +1,5 @@
1
1
  1:"$Sreact.fragment"
2
2
  2:I[90484,[],"OutletBoundary"]
3
3
  3:"$Sreact.suspense"
4
- 0:{"rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"KdlODhIktLmeRKpLpHdKb"}
4
+ 0:{"rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"T3hWbQ-WQBDEIGoaOOfEo"}
5
5
  4:null
@@ -2,4 +2,4 @@
2
2
  2:I[57121,[],""]
3
3
  3:I[74581,[],""]
4
4
  4:[]
5
- 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"KdlODhIktLmeRKpLpHdKb"}
5
+ 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"T3hWbQ-WQBDEIGoaOOfEo"}
@@ -2,4 +2,4 @@
2
2
  2:I[90484,[],"ViewportBoundary"]
3
3
  3:I[90484,[],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
- 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"KdlODhIktLmeRKpLpHdKb"}
5
+ 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"T3hWbQ-WQBDEIGoaOOfEo"}
@@ -2,4 +2,4 @@
2
2
  2:I[57121,[],""]
3
3
  3:I[74581,[],""]
4
4
  4:[]
5
- 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"KdlODhIktLmeRKpLpHdKb"}
5
+ 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"T3hWbQ-WQBDEIGoaOOfEo"}