gsd-pi 2.62.1 → 2.63.0-dev.026d309

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 (163) hide show
  1. package/dist/resources/extensions/gsd/auto/loop.js +8 -1
  2. package/dist/resources/extensions/gsd/auto/phases.js +10 -3
  3. package/dist/resources/extensions/gsd/auto-post-unit.js +6 -4
  4. package/dist/resources/extensions/gsd/auto-verification.js +14 -3
  5. package/dist/resources/extensions/gsd/state.js +1 -0
  6. package/dist/resources/extensions/gsd/tools/complete-slice.js +3 -3
  7. package/dist/resources/extensions/gsd/workflow-logger.js +13 -8
  8. package/dist/resources/extensions/gsd/workflow-reconcile.js +3 -1
  9. package/dist/web/standalone/.next/BUILD_ID +1 -1
  10. package/dist/web/standalone/.next/app-path-routes-manifest.json +19 -19
  11. package/dist/web/standalone/.next/build-manifest.json +3 -3
  12. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  13. package/dist/web/standalone/.next/required-server-files.json +4 -4
  14. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  15. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  16. package/dist/web/standalone/.next/server/app/_global-error.html +2 -2
  17. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  18. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  19. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  20. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  21. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  22. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  23. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  24. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  25. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  26. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  27. package/dist/web/standalone/.next/server/app/_not-found.rsc +3 -3
  28. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  29. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  30. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  31. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  32. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  33. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  34. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  35. package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
  36. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  37. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
  38. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  39. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
  40. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  41. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
  42. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  43. package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
  44. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  45. package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
  46. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  47. package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  48. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  49. package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
  50. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  51. package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
  52. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  53. package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
  54. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  55. package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
  56. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  57. package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  58. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  59. package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
  60. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  61. package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  62. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  63. package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  64. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  65. package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  66. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  67. package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
  68. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  69. package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
  70. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  71. package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
  72. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  73. package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
  74. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  75. package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  76. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  77. package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  78. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  79. package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
  80. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  81. package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
  82. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  83. package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
  84. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  85. package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
  86. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  87. package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
  88. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  89. package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
  90. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  91. package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
  92. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  93. package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  94. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  95. package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
  96. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  97. package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
  98. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  99. package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
  100. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  101. package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
  102. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  103. package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
  104. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  105. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
  106. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +4 -4
  107. package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
  108. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  109. package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
  110. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  111. package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
  112. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  113. package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  114. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  115. package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
  116. package/dist/web/standalone/.next/server/app/index.html +1 -1
  117. package/dist/web/standalone/.next/server/app/index.rsc +4 -4
  118. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  119. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  120. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  121. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  122. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  123. package/dist/web/standalone/.next/server/app/page.js +2 -2
  124. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  125. package/dist/web/standalone/.next/server/app-paths-manifest.json +19 -19
  126. package/dist/web/standalone/.next/server/chunks/2229.js +1 -1
  127. package/dist/web/standalone/.next/server/chunks/7471.js +3 -3
  128. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  129. package/dist/web/standalone/.next/server/middleware.js +2 -2
  130. package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
  131. package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
  132. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  133. package/dist/web/standalone/.next/server/pages/500.html +2 -2
  134. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  135. package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
  136. package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
  137. package/dist/web/standalone/.next/static/chunks/app/page-0c485498795110d6.js +1 -0
  138. package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
  139. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
  140. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  141. package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
  142. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  143. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
  144. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
  145. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
  146. package/dist/web/standalone/server.js +1 -1
  147. package/package.json +1 -1
  148. package/packages/pi-coding-agent/package.json +1 -1
  149. package/pkg/package.json +1 -1
  150. package/src/resources/extensions/gsd/auto/loop.ts +8 -1
  151. package/src/resources/extensions/gsd/auto/phases.ts +8 -6
  152. package/src/resources/extensions/gsd/auto-post-unit.ts +6 -3
  153. package/src/resources/extensions/gsd/auto-verification.ts +14 -3
  154. package/src/resources/extensions/gsd/state.ts +1 -0
  155. package/src/resources/extensions/gsd/tests/workflow-logger.test.ts +17 -41
  156. package/src/resources/extensions/gsd/tools/complete-slice.ts +3 -5
  157. package/src/resources/extensions/gsd/workflow-logger.ts +13 -8
  158. package/src/resources/extensions/gsd/workflow-reconcile.ts +3 -1
  159. package/dist/web/standalone/.next/static/chunks/app/page-62be3b5fa91e4c8f.js +0 -1
  160. package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
  161. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
  162. /package/dist/web/standalone/.next/static/{86gWhNPP3233lZ7KPwda7 → TTlAguZQ5vR9EOv6G8cel}/_buildManifest.js +0 -0
  163. /package/dist/web/standalone/.next/static/{86gWhNPP3233lZ7KPwda7 → TTlAguZQ5vR9EOv6G8cel}/_ssgManifest.js +0 -0
@@ -259,6 +259,7 @@ export async function deriveState(basePath: string): Promise<GSDState> {
259
259
  _telemetry.markdownDeriveCount++;
260
260
  }
261
261
  } else {
262
+ logWarning("state", "DB unavailable — using filesystem state derivation (degraded mode)");
262
263
  result = await _deriveStateImpl(basePath);
263
264
  _telemetry.markdownDeriveCount++;
264
265
  }
@@ -217,12 +217,26 @@ describe("workflow-logger", () => {
217
217
  assert.ok(formatted.includes("\n"));
218
218
  });
219
219
 
220
- test("does not include context in formatted output", () => {
220
+ test("includes context fields in formatted output", () => {
221
221
  logError("tool", "failed", { cmd: "complete_task" });
222
222
  const entries = drainLogs();
223
223
  const formatted = formatForNotification(entries);
224
- assert.equal(formatted, "[tool] failed");
225
- assert.ok(!formatted.includes("complete_task"));
224
+ assert.equal(formatted, "[tool] failed (cmd: complete_task)");
225
+ });
226
+
227
+ test("excludes error key from context to avoid redundancy", () => {
228
+ logError("tool", "disk write failed", { error: "ENOSPC", path: "/tmp/foo" });
229
+ const entries = drainLogs();
230
+ const formatted = formatForNotification(entries);
231
+ assert.ok(formatted.includes("path: /tmp/foo"));
232
+ assert.ok(!formatted.includes("error: ENOSPC"));
233
+ });
234
+
235
+ test("formats entry without context unchanged", () => {
236
+ logError("intercept", "blocked write");
237
+ const entries = drainLogs();
238
+ const formatted = formatForNotification(entries);
239
+ assert.equal(formatted, "[intercept] blocked write");
226
240
  });
227
241
  });
228
242
 
@@ -279,44 +293,6 @@ describe("workflow-logger", () => {
279
293
  });
280
294
  });
281
295
 
282
- describe("audit log persistence", () => {
283
- let dir: string;
284
-
285
- beforeEach(() => {
286
- dir = makeTempDir("wl-audit-");
287
- });
288
-
289
- afterEach(() => {
290
- setLogBasePath("");
291
- cleanup(dir);
292
- });
293
-
294
- test("writes entry to .gsd/audit-log.jsonl after setLogBasePath", () => {
295
- setLogBasePath(dir);
296
- logError("engine", "audit test entry");
297
-
298
- const auditPath = join(dir, ".gsd", "audit-log.jsonl");
299
- assert.ok(existsSync(auditPath), "audit-log.jsonl should exist");
300
- const content = readFileSync(auditPath, "utf-8");
301
- const entry = JSON.parse(content.trim());
302
- assert.equal(entry.severity, "error");
303
- assert.equal(entry.component, "engine");
304
- assert.equal(entry.message, "audit test entry");
305
- });
306
-
307
- test("_resetLogs does not clear the audit base path", () => {
308
- setLogBasePath(dir);
309
- _resetLogs();
310
- logError("engine", "post-reset entry");
311
-
312
- const auditPath = join(dir, ".gsd", "audit-log.jsonl");
313
- assert.ok(existsSync(auditPath), "audit-log.jsonl should exist after _resetLogs");
314
- const content = readFileSync(auditPath, "utf-8");
315
- const entry = JSON.parse(content.trim());
316
- assert.equal(entry.message, "post-reset entry");
317
- });
318
- });
319
-
320
296
  describe("new log components (db, dispatch)", () => {
321
297
  test("logError with 'db' component stores correct component", () => {
322
298
  logError("db", "failed to copy DB to worktree", { error: "ENOENT" });
@@ -292,13 +292,11 @@ export async function handleCompleteSlice(
292
292
  // Toggle roadmap checkbox via renderer module
293
293
  const roadmapToggled = await renderRoadmapCheckboxes(basePath, params.milestoneId);
294
294
  if (!roadmapToggled) {
295
- process.stderr.write(
296
- `gsd-db: complete_slice — could not find roadmap for ${params.milestoneId}, skipping checkbox toggle\n`,
297
- );
295
+ logWarning("tool", `complete_slice — could not find roadmap for ${params.milestoneId}, skipping checkbox toggle`);
298
296
  }
299
297
  } catch (renderErr) {
300
298
  // Disk render failed — roll back DB status so state stays consistent
301
- logWarning("tool", `complete_slice — disk render failed, rolling back DB status: ${(renderErr as Error).message}`);
299
+ logWarning("tool", `complete_slice — disk render failed for ${params.milestoneId}/${params.sliceId}, rolling back DB status`, { error: (renderErr as Error).message });
302
300
  updateSliceStatus(params.milestoneId, params.sliceId, 'pending');
303
301
  invalidateStateCache();
304
302
  return { error: `disk render failed: ${(renderErr as Error).message}` };
@@ -325,7 +323,7 @@ export async function handleCompleteSlice(
325
323
  trigger_reason: params.triggerReason,
326
324
  });
327
325
  } catch (hookErr) {
328
- logWarning("tool", `complete-slice post-mutation hook warning: ${(hookErr as Error).message}`);
326
+ logWarning("tool", `complete-slice post-mutation hook failed for ${params.milestoneId}/${params.sliceId}`, { error: (hookErr as Error).message });
329
327
  }
330
328
 
331
329
  return {
@@ -174,17 +174,22 @@ export function summarizeLogs(): string | null {
174
174
 
175
175
  /**
176
176
  * Format entries for display (used by auto-loop post-unit notification).
177
- * Note: context fields are not included in the formatted output.
177
+ * Includes key context fields (file paths, commands) when present.
178
178
  */
179
179
  export function formatForNotification(entries: readonly LogEntry[]): string {
180
180
  if (entries.length === 0) return "";
181
- if (entries.length === 1) {
182
- const e = entries[0];
183
- return `[${e.component}] ${e.message}`;
184
- }
185
- return entries
186
- .map((e) => `[${e.component}] ${e.message}`)
187
- .join("\n");
181
+ return entries.map((e) => {
182
+ let line = `[${e.component}] ${e.message}`;
183
+ if (e.context) {
184
+ const ctxParts = Object.entries(e.context)
185
+ .filter(([k]) => k !== "error") // error is redundant with message
186
+ .map(([k, v]) => v.includes(",") ? `${k}: "${v}"` : `${k}: ${v}`);
187
+ if (ctxParts.length > 0) {
188
+ line += ` (${ctxParts.join(", ")})`;
189
+ }
190
+ }
191
+ return line;
192
+ }).join("\n");
188
193
  }
189
194
 
190
195
  /**
@@ -348,7 +348,9 @@ function _reconcileWorktreeLogsInner(
348
348
  if (conflicts.length > 0) {
349
349
  // D-04: atomic all-or-nothing — block entire merge
350
350
  writeConflictsFile(mainBasePath, conflicts, worktreeBasePath);
351
- logError("reconcile", `${conflicts.length} conflict(s) detected`, { count: String(conflicts.length), path: join(mainBasePath, ".gsd", "CONFLICTS.md") });
351
+ const conflictSummary = conflicts.slice(0, 3).map(c => `${c.entityType}:${c.entityId}`).join(", ");
352
+ const truncated = conflicts.length > 3 ? `... and ${conflicts.length - 3} more` : "";
353
+ logError("reconcile", `${conflicts.length} conflict(s) detected on ${conflictSummary}${truncated}. Details: .gsd/CONFLICTS.md`, { count: String(conflicts.length), path: join(mainBasePath, ".gsd", "CONFLICTS.md") });
352
354
  return { autoMerged: 0, conflicts };
353
355
  }
354
356
 
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{5214:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return r.workAsyncStorageInstance}});let r=n(17828)},15726:(e,t,n)=>{Promise.resolve().then(n.bind(n,66919))},17828:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return r}});let r=(0,n(64054).createAsyncLocalStorage)()},21957:(e,t,n)=>{"use strict";function r({moduleIds:e}){return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return r}}),n(95155),n(47650),n(5214),n(2451),n(53887)},37206:(e,t,n)=>{"use strict";n.d(t,{default:()=>u.a});var r=n(75707),u=n.n(r)},41112:(e,t,n)=>{"use strict";function r({reason:e,children:t}){return t}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return r}}),n(1980)},64054:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={bindSnapshot:function(){return s},createAsyncLocalStorage:function(){return a},createSnapshot:function(){return i}};for(var r in n)Object.defineProperty(t,r,{enumerable:!0,get:n[r]});let u=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class l{disable(){throw u}getStore(){}run(){throw u}exit(){throw u}enterWith(){throw u}static bind(e){return e}}let o="u">typeof globalThis&&globalThis.AsyncLocalStorage;function a(){return o?new o:new l}function s(e){return o?o.bind(e):l.bind(e)}function i(){return o?o.snapshot():function(e,...t){return e(...t)}}},66919:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r=n(95155);let u=(0,n(37206).default)(()=>Promise.all([n.e(1838),n.e(6079),n.e(4986),n.e(2008),n.e(6502)]).then(n.bind(n,46502)).then(e=>e.GSDAppShell),{loadableGenerated:{webpack:()=>[46502]},ssr:!1,loading:()=>(0,r.jsx)("div",{className:"flex h-screen items-center justify-center bg-background text-sm text-muted-foreground",children:"Loading workspace…"})});function l(){return(0,r.jsx)(u,{})}},68635:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}});let r=n(95155),u=n(12115),l=n(41112);function o(e){return{default:e&&"default"in e?e.default:e}}n(21957);let a={loader:()=>Promise.resolve(o(()=>null)),loading:null,ssr:!0},s=function(e){let t={...a,...e},n=(0,u.lazy)(()=>t.loader().then(o)),s=t.loading;function i(e){let o=s?(0,r.jsx)(s,{isLoading:!0,pastDelay:!0,error:null}):null,a=!t.ssr||!!t.loading,i=a?u.Suspense:u.Fragment,c=t.ssr?(0,r.jsxs)(r.Fragment,{children:[null,(0,r.jsx)(n,{...e})]}):(0,r.jsx)(l.BailoutToCSR,{reason:"next/dynamic",children:(0,r.jsx)(n,{...e})});return(0,r.jsx)(i,{...a?{fallback:o}:{},children:c})}return i.displayName="LoadableComponent",i}},75707:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let r=n(73623)._(n(68635));function u(e,t){let n={};"function"==typeof e&&(n.loader=e);let u={...n,...t};return(0,r.default)({...u,modules:u.loadableGenerated?.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{e.O(0,[8441,3794,7358],()=>e(e.s=15726)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7358],{2852:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,27123,23)),Promise.resolve().then(n.t.bind(n,61304,23)),Promise.resolve().then(n.t.bind(n,78616,23)),Promise.resolve().then(n.t.bind(n,64777,23)),Promise.resolve().then(n.t.bind(n,57121,23)),Promise.resolve().then(n.t.bind(n,74581,23)),Promise.resolve().then(n.t.bind(n,90484,23)),Promise.resolve().then(n.bind(n,86869))},19393:()=>{}},e=>{var s=s=>e(e.s=s);e.O(0,[8441,3794],()=>(s(83861),s(2852))),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9337],{52560:(e,s,_)=>{Promise.resolve().then(_.t.bind(_,27123,23))}},e=>{e.O(0,[8441,3794,7358],()=>e(e.s=52560)),_N_E=e.O()}]);