gsd-pi 2.46.0 → 2.46.1-dev.79664f2

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 (183) hide show
  1. package/README.md +1 -0
  2. package/dist/resources/extensions/claude-code-cli/index.js +25 -0
  3. package/dist/resources/extensions/claude-code-cli/models.js +40 -0
  4. package/dist/resources/extensions/claude-code-cli/package.json +11 -0
  5. package/dist/resources/extensions/claude-code-cli/partial-builder.js +223 -0
  6. package/dist/resources/extensions/claude-code-cli/readiness.js +26 -0
  7. package/dist/resources/extensions/claude-code-cli/sdk-types.js +8 -0
  8. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +293 -0
  9. package/dist/resources/extensions/gsd/auto-start.js +7 -7
  10. package/dist/resources/extensions/gsd/bootstrap/dynamic-tools.js +2 -0
  11. package/dist/resources/extensions/gsd/prompts/complete-slice.md +1 -1
  12. package/dist/resources/extensions/gsd/prompts/guided-plan-milestone.md +2 -2
  13. package/dist/resources/extensions/gsd/prompts/plan-milestone.md +2 -2
  14. package/dist/resources/extensions/gsd/prompts/plan-slice.md +1 -1
  15. package/dist/resources/extensions/gsd/prompts/research-milestone.md +2 -2
  16. package/dist/resources/extensions/gsd/prompts/run-uat.md +2 -2
  17. package/dist/resources/extensions/gsd/workflow-events.js +1 -1
  18. package/dist/resources/extensions/remote-questions/config.js +42 -0
  19. package/dist/web/standalone/.next/BUILD_ID +1 -1
  20. package/dist/web/standalone/.next/app-path-routes-manifest.json +14 -14
  21. package/dist/web/standalone/.next/build-manifest.json +3 -3
  22. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  23. package/dist/web/standalone/.next/required-server-files.json +3 -3
  24. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  25. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  26. package/dist/web/standalone/.next/server/app/_global-error.html +2 -2
  27. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  28. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  29. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  30. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  31. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  32. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  33. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  34. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  35. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  36. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  37. package/dist/web/standalone/.next/server/app/_not-found.rsc +3 -3
  38. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  39. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  40. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  41. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  42. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  43. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  44. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  45. package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
  46. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  47. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
  48. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  49. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
  50. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  51. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
  52. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  53. package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
  54. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  55. package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
  56. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  57. package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  58. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  59. package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
  60. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  61. package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
  62. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  63. package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
  64. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  65. package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  66. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  67. package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
  68. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  69. package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  70. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  71. package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  72. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  73. package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  74. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  75. package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
  76. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  77. package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
  78. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  79. package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
  80. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  81. package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
  82. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  83. package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  84. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  85. package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  86. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  87. package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
  88. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +5 -5
  89. package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
  90. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  91. package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
  92. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  93. package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
  94. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  95. package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
  96. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  97. package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
  98. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  99. package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
  100. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  101. package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  102. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  103. package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
  104. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  105. package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
  106. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  107. package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
  108. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  109. package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
  110. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  111. package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
  112. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  113. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
  114. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +4 -4
  115. package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
  116. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  117. package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
  118. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  119. package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
  120. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  121. package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  122. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  123. package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
  124. package/dist/web/standalone/.next/server/app/index.html +1 -1
  125. package/dist/web/standalone/.next/server/app/index.rsc +4 -4
  126. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  127. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  128. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  129. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  130. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  131. package/dist/web/standalone/.next/server/app/page.js +2 -2
  132. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  133. package/dist/web/standalone/.next/server/app-paths-manifest.json +14 -14
  134. package/dist/web/standalone/.next/server/chunks/229.js +1 -1
  135. package/dist/web/standalone/.next/server/chunks/471.js +3 -3
  136. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  137. package/dist/web/standalone/.next/server/middleware.js +2 -2
  138. package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
  139. package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
  140. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  141. package/dist/web/standalone/.next/server/pages/500.html +2 -2
  142. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  143. package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
  144. package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
  145. package/dist/web/standalone/.next/static/chunks/app/page-6654a8cca61a3d1c.js +1 -0
  146. package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
  147. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
  148. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  149. package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
  150. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  151. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
  152. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
  153. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
  154. package/dist/web/standalone/server.js +1 -1
  155. package/package.json +2 -1
  156. package/packages/pi-coding-agent/package.json +1 -1
  157. package/pkg/package.json +1 -1
  158. package/src/resources/extensions/claude-code-cli/index.ts +28 -0
  159. package/src/resources/extensions/claude-code-cli/models.ts +42 -0
  160. package/src/resources/extensions/claude-code-cli/package.json +11 -0
  161. package/src/resources/extensions/claude-code-cli/partial-builder.ts +258 -0
  162. package/src/resources/extensions/claude-code-cli/readiness.ts +30 -0
  163. package/src/resources/extensions/claude-code-cli/sdk-types.ts +149 -0
  164. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +355 -0
  165. package/src/resources/extensions/gsd/auto-start.ts +8 -8
  166. package/src/resources/extensions/gsd/bootstrap/dynamic-tools.ts +3 -0
  167. package/src/resources/extensions/gsd/prompts/complete-slice.md +1 -1
  168. package/src/resources/extensions/gsd/prompts/guided-plan-milestone.md +2 -2
  169. package/src/resources/extensions/gsd/prompts/plan-milestone.md +2 -2
  170. package/src/resources/extensions/gsd/prompts/plan-slice.md +1 -1
  171. package/src/resources/extensions/gsd/prompts/research-milestone.md +2 -2
  172. package/src/resources/extensions/gsd/prompts/run-uat.md +2 -2
  173. package/src/resources/extensions/gsd/tests/ensure-db-open.test.ts +7 -3
  174. package/src/resources/extensions/gsd/tests/plan-slice-prompt.test.ts +40 -0
  175. package/src/resources/extensions/gsd/tests/remote-questions.test.ts +84 -0
  176. package/src/resources/extensions/gsd/tests/run-uat.test.ts +25 -0
  177. package/src/resources/extensions/gsd/workflow-events.ts +1 -1
  178. package/src/resources/extensions/remote-questions/config.ts +45 -0
  179. package/dist/web/standalone/.next/static/chunks/app/page-12dd5ece0df4badc.js +0 -1
  180. package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
  181. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
  182. /package/dist/web/standalone/.next/static/{8zT99piZz8u3xAU3Omz2g → vP6aj-TThZymVNx5Pi2AN}/_buildManifest.js +0 -0
  183. /package/dist/web/standalone/.next/static/{8zT99piZz8u3xAU3Omz2g → vP6aj-TThZymVNx5Pi2AN}/_ssgManifest.js +0 -0
@@ -228,6 +228,31 @@ test('(k) run-uat prompt template', () => {
228
228
  );
229
229
  });
230
230
 
231
+ test('(k2) run-uat prompt references gsd_summary_save, not direct write', () => {
232
+ const promptResult = loadPromptFromWorktree('run-uat', {
233
+ workingDirectory: '/tmp/test-project',
234
+ milestoneId: 'M001',
235
+ sliceId: 'S01',
236
+ uatPath: '.gsd/milestones/M001/slices/S01/S01-UAT.md',
237
+ uatResultPath: '.gsd/milestones/M001/slices/S01/S01-UAT-RESULT.md',
238
+ uatType: 'artifact-driven',
239
+ inlinedContext: '<!-- no context -->',
240
+ });
241
+
242
+ assert.ok(
243
+ promptResult.includes('gsd_summary_save'),
244
+ 'run-uat prompt should reference gsd_summary_save tool',
245
+ );
246
+ assert.ok(
247
+ promptResult.includes('artifact_type: "ASSESSMENT"'),
248
+ 'run-uat prompt should specify ASSESSMENT artifact type',
249
+ );
250
+ assert.ok(
251
+ !promptResult.includes('MUST write'),
252
+ 'run-uat prompt should not instruct direct file write in footer',
253
+ );
254
+ });
255
+
231
256
  test('(l) dispatch preconditions via resolveSliceFile', () => {
232
257
  const base = createFixtureBase();
233
258
  const uatContent = makeUatContent('artifact-driven');
@@ -40,7 +40,7 @@ export function appendEvent(
40
40
  event: Omit<WorkflowEvent, "hash" | "session_id"> & { actor_name?: string; trigger_reason?: string },
41
41
  ): void {
42
42
  const hash = createHash("sha256")
43
- .update(JSON.stringify({ cmd: event.cmd, params: event.params, ts: event.ts }))
43
+ .update(JSON.stringify({ cmd: event.cmd, params: event.params }))
44
44
  .digest("hex")
45
45
  .slice(0, 16);
46
46
 
@@ -2,6 +2,7 @@
2
2
  * Remote Questions — configuration resolution and validation
3
3
  */
4
4
 
5
+ import { join } from "node:path";
5
6
  import { loadEffectiveGSDPreferences, type RemoteQuestionsConfig } from "../gsd/preferences.js";
6
7
  import type { RemoteChannel } from "./types.js";
7
8
 
@@ -33,7 +34,50 @@ const MAX_TIMEOUT_MINUTES = 30;
33
34
  const MIN_POLL_INTERVAL_SECONDS = 2;
34
35
  const MAX_POLL_INTERVAL_SECONDS = 30;
35
36
 
37
+ // Provider IDs in auth.json that correspond to remote channel env vars.
38
+ const AUTH_PROVIDER_ENV_MAP: Record<string, string> = {
39
+ discord_bot: "DISCORD_BOT_TOKEN",
40
+ slack_bot: "SLACK_BOT_TOKEN",
41
+ telegram_bot: "TELEGRAM_BOT_TOKEN",
42
+ };
43
+
44
+ /**
45
+ * Populate remote channel env vars from auth.json when they are not already
46
+ * set in the environment. Called before every config resolution so that tokens
47
+ * saved via `/gsd remote discord` (or `/gsd keys add discord_bot`) survive
48
+ * process restarts without requiring the user to export env vars manually.
49
+ *
50
+ * Silently no-ops if auth.json is absent, unreadable, or malformed.
51
+ */
52
+ function hydrateRemoteTokensFromAuth(): void {
53
+ const needed = Object.entries(AUTH_PROVIDER_ENV_MAP).filter(([, envVar]) => !process.env[envVar]);
54
+ if (needed.length === 0) return;
55
+
56
+ try {
57
+ const { AuthStorage } = require("@gsd/pi-coding-agent") as typeof import("@gsd/pi-coding-agent");
58
+ const authPath = join(process.env.HOME ?? "~", ".gsd", "agent", "auth.json");
59
+ const auth = AuthStorage.create(authPath);
60
+
61
+ for (const [providerId, envVar] of needed) {
62
+ try {
63
+ const creds = auth.getCredentialsForProvider(providerId);
64
+ const apiKeyCred = creds.find((c: { type: string }) => c.type === "api_key") as
65
+ | { type: "api_key"; key: string }
66
+ | undefined;
67
+ if (apiKeyCred?.key) {
68
+ process.env[envVar] = apiKeyCred.key;
69
+ }
70
+ } catch {
71
+ // Per-provider failure is non-fatal — skip and move on.
72
+ }
73
+ }
74
+ } catch {
75
+ // AuthStorage unavailable (unit tests, stripped build) — skip silently.
76
+ }
77
+ }
78
+
36
79
  export function resolveRemoteConfig(): ResolvedConfig | null {
80
+ hydrateRemoteTokensFromAuth();
37
81
  const prefs = loadEffectiveGSDPreferences();
38
82
  const rq: RemoteQuestionsConfig | undefined = prefs?.preferences.remote_questions;
39
83
  if (!rq || !rq.channel || !rq.channel_id) return null;
@@ -58,6 +102,7 @@ export function resolveRemoteConfig(): ResolvedConfig | null {
58
102
  }
59
103
 
60
104
  export function getRemoteConfigStatus(): string {
105
+ hydrateRemoteTokensFromAuth();
61
106
  const prefs = loadEffectiveGSDPreferences();
62
107
  const rq: RemoteQuestionsConfig | undefined = prefs?.preferences.remote_questions;
63
108
  if (!rq || !rq.channel || !rq.channel_id) return "Remote questions: not configured";
@@ -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(485),n.e(4024)]).then(n.bind(n,4024)).then(e=>e.GSDAppShell),{loadableGenerated:{webpack:()=>[4024]},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()}]);