gsd-pi 2.80.0-dev.b62439b9f → 2.80.0-dev.c5c38454b

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 (431) hide show
  1. package/dist/{cli/cli-web-branch.d.ts → cli-web-branch.d.ts} +1 -1
  2. package/dist/{cli/cli-web-branch.js → cli-web-branch.js} +3 -3
  3. package/dist/{cli/cli.js → cli.js} +25 -25
  4. package/dist/{extension-runtime/extension-registry.js → extension-registry.js} +1 -1
  5. package/dist/{headless/headless-query.d.ts → headless-query.d.ts} +1 -1
  6. package/dist/{headless/headless-query.js → headless-query.js} +2 -3
  7. package/dist/{headless/headless-recover.js → headless-recover.js} +2 -3
  8. package/dist/{headless/headless.js → headless.js} +3 -3
  9. package/dist/loader.js +10 -10
  10. package/dist/{providers/models-resolver.js → models-resolver.js} +1 -1
  11. package/dist/{onboarding/onboarding.js → onboarding.js} +8 -8
  12. package/dist/{providers/remote-questions-config.js → remote-questions-config.js} +1 -1
  13. package/dist/{resource-runtime/resource-loader.d.ts → resource-loader.d.ts} +1 -1
  14. package/dist/{resource-runtime/resource-loader.js → resource-loader.js} +6 -6
  15. package/dist/resources/.managed-resources-content-hash +1 -1
  16. package/dist/resources/extensions/github-sync/templates.js +39 -8
  17. package/dist/resources/extensions/gsd/auto/loop.js +13 -9
  18. package/dist/resources/extensions/gsd/auto/run-unit.js +19 -15
  19. package/dist/resources/extensions/gsd/auto-dashboard.js +51 -15
  20. package/dist/resources/extensions/gsd/auto-dispatch.js +10 -0
  21. package/dist/resources/extensions/gsd/auto-recovery.js +154 -8
  22. package/dist/resources/extensions/gsd/auto-start.js +2 -3
  23. package/dist/resources/extensions/gsd/auto-worktree.js +6 -4
  24. package/dist/resources/extensions/gsd/auto.js +3 -3
  25. package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +15 -1
  26. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +11 -1
  27. package/dist/resources/extensions/gsd/bootstrap/write-gate.js +129 -1
  28. package/dist/resources/extensions/gsd/commands-extract-learnings.js +17 -12
  29. package/dist/resources/extensions/gsd/db-base-schema.js +14 -0
  30. package/dist/resources/extensions/gsd/db-migration-steps.js +16 -0
  31. package/dist/resources/extensions/gsd/gsd-db.js +102 -2
  32. package/dist/resources/extensions/gsd/guided-flow.js +2 -2
  33. package/dist/resources/extensions/gsd/pr-evidence.js +57 -16
  34. package/dist/resources/extensions/gsd/working-output-messages.js +64 -0
  35. package/dist/{security/security-overrides.js → security-overrides.js} +1 -1
  36. package/dist/{startup/startup-model-validation.js → startup-model-validation.js} +1 -1
  37. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  38. package/dist/{update/update-check.js → update-check.js} +1 -1
  39. package/dist/web/standalone/.next/BUILD_ID +1 -1
  40. package/dist/web/standalone/.next/app-path-routes-manifest.json +11 -11
  41. package/dist/web/standalone/.next/build-manifest.json +3 -3
  42. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  43. package/dist/web/standalone/.next/react-loadable-manifest.json +1 -1
  44. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  45. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  46. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  47. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  48. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  49. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  50. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  51. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  52. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  53. package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
  54. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  55. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  56. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  57. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  58. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  59. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  60. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  61. package/dist/web/standalone/.next/server/app/api/boot/route.js.nft.json +1 -1
  62. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  63. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
  64. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  65. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
  66. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  67. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
  68. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  69. package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
  70. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  71. package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
  72. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  73. package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
  74. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  75. package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
  76. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  77. package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  78. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  79. package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
  80. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  81. package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  82. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  83. package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
  84. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  85. package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
  86. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  87. package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
  88. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  89. package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
  90. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  91. package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
  92. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  93. package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  94. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  95. package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
  96. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  97. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  98. package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  99. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  100. package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
  101. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  102. package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
  103. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  104. package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
  105. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  106. package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
  107. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  108. package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
  109. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  110. package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
  111. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  112. package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
  113. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  114. package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
  115. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  116. package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
  117. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  118. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  119. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  120. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
  121. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +3 -3
  122. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
  123. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  124. package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
  125. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  126. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  127. package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
  128. package/dist/web/standalone/.next/server/app/index.html +1 -1
  129. package/dist/web/standalone/.next/server/app/index.rsc +1 -1
  130. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  131. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  132. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  133. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  134. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  135. package/dist/web/standalone/.next/server/app-paths-manifest.json +11 -11
  136. package/dist/web/standalone/.next/server/chunks/6897.js +12 -0
  137. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  138. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  139. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  140. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  141. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  142. package/dist/web/standalone/.next/static/chunks/{8336.6f6f30e410419aff.js → 8336.631939fb583761fa.js} +1 -1
  143. package/dist/web/standalone/.next/static/chunks/{webpack-d82dbee6356c1733.js → webpack-0481f1221120a7c6.js} +1 -1
  144. package/dist/{cli/web-mode.js → web-mode.js} +3 -3
  145. package/dist/{onboarding/welcome-screen.js → welcome-screen.js} +1 -1
  146. package/dist/{worktrees/worktree-cli.js → worktree-cli.js} +2 -3
  147. package/package.json +7 -3
  148. package/packages/pi-ai/dist/models/fake-model.d.ts +12 -0
  149. package/packages/pi-ai/dist/models/fake-model.d.ts.map +1 -0
  150. package/packages/pi-ai/dist/models/fake-model.js +27 -0
  151. package/packages/pi-ai/dist/models/fake-model.js.map +1 -0
  152. package/packages/pi-ai/dist/models/index.d.ts.map +1 -1
  153. package/packages/pi-ai/dist/models/index.js +8 -0
  154. package/packages/pi-ai/dist/models/index.js.map +1 -1
  155. package/packages/pi-ai/dist/providers/fake.d.ts +42 -0
  156. package/packages/pi-ai/dist/providers/fake.d.ts.map +1 -0
  157. package/packages/pi-ai/dist/providers/fake.js +319 -0
  158. package/packages/pi-ai/dist/providers/fake.js.map +1 -0
  159. package/packages/pi-ai/dist/providers/register-builtins.d.ts.map +1 -1
  160. package/packages/pi-ai/dist/providers/register-builtins.js +24 -0
  161. package/packages/pi-ai/dist/providers/register-builtins.js.map +1 -1
  162. package/packages/pi-ai/src/models/fake-model.ts +30 -0
  163. package/packages/pi-ai/src/models/index.ts +9 -0
  164. package/packages/pi-ai/src/providers/fake.ts +376 -0
  165. package/packages/pi-ai/src/providers/register-builtins.ts +23 -0
  166. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
  167. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js +44 -0
  168. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js.map +1 -1
  169. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts +2 -0
  170. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
  171. package/packages/pi-coding-agent/dist/core/extensions/runner.js +14 -1
  172. package/packages/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
  173. package/packages/pi-coding-agent/dist/core/extensions/runner.test.js +97 -0
  174. package/packages/pi-coding-agent/dist/core/extensions/runner.test.js.map +1 -1
  175. package/packages/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
  176. package/packages/pi-coding-agent/dist/core/model-registry.js +5 -0
  177. package/packages/pi-coding-agent/dist/core/model-registry.js.map +1 -1
  178. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +4 -0
  179. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
  180. package/packages/pi-coding-agent/dist/core/settings-manager.js +8 -0
  181. package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
  182. package/packages/pi-coding-agent/dist/core/slash-commands.d.ts.map +1 -1
  183. package/packages/pi-coding-agent/dist/core/slash-commands.js +1 -0
  184. package/packages/pi-coding-agent/dist/core/slash-commands.js.map +1 -1
  185. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.js +6 -4
  186. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.js.map +1 -1
  187. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js +54 -15
  188. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js.map +1 -1
  189. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.d.ts +26 -0
  190. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.d.ts.map +1 -0
  191. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.js +112 -0
  192. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.js.map +1 -0
  193. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.test.d.ts +2 -0
  194. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.test.d.ts.map +1 -0
  195. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.test.js +51 -0
  196. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.test.js.map +1 -0
  197. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  198. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.js.map +1 -1
  199. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts.map +1 -1
  200. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js +10 -9
  201. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js.map +1 -1
  202. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts +3 -0
  203. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  204. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +11 -0
  205. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js.map +1 -1
  206. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.js +7 -6
  207. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.js.map +1 -1
  208. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +16 -0
  209. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  210. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +106 -17
  211. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  212. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  213. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +58 -1
  214. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  215. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.test.js +40 -1
  216. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.test.js.map +1 -1
  217. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.test.js +1 -0
  218. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.test.js.map +1 -1
  219. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.d.ts +1 -0
  220. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.d.ts.map +1 -1
  221. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.js.map +1 -1
  222. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +3 -0
  223. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  224. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +23 -0
  225. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  226. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.d.ts.map +1 -1
  227. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js +20 -0
  228. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js.map +1 -1
  229. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.test.d.ts +2 -0
  230. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.test.d.ts.map +1 -0
  231. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.test.js +79 -0
  232. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.test.js.map +1 -0
  233. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts +12 -0
  234. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
  235. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js +13 -0
  236. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  237. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +1 -1
  238. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  239. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js +18 -1
  240. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
  241. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts.map +1 -1
  242. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js +36 -27
  243. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js.map +1 -1
  244. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.d.ts +11 -0
  245. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.d.ts.map +1 -0
  246. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.js +18 -0
  247. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.js.map +1 -0
  248. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.test.d.ts +2 -0
  249. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.test.d.ts.map +1 -0
  250. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.test.js +48 -0
  251. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.test.js.map +1 -0
  252. package/packages/pi-coding-agent/src/core/chat-controller-ordering.test.ts +51 -0
  253. package/packages/pi-coding-agent/src/core/extensions/runner.test.ts +108 -0
  254. package/packages/pi-coding-agent/src/core/extensions/runner.ts +16 -1
  255. package/packages/pi-coding-agent/src/core/model-registry.ts +4 -0
  256. package/packages/pi-coding-agent/src/core/settings-manager.ts +12 -0
  257. package/packages/pi-coding-agent/src/core/slash-commands.ts +1 -0
  258. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.ts +7 -5
  259. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-execution.test.ts +78 -15
  260. package/packages/pi-coding-agent/src/modes/interactive/components/adaptive-layout.test.ts +59 -0
  261. package/packages/pi-coding-agent/src/modes/interactive/components/adaptive-layout.ts +160 -0
  262. package/packages/pi-coding-agent/src/modes/interactive/components/assistant-message.ts +1 -0
  263. package/packages/pi-coding-agent/src/modes/interactive/components/chat-frame.ts +10 -9
  264. package/packages/pi-coding-agent/src/modes/interactive/components/settings-selector.ts +15 -0
  265. package/packages/pi-coding-agent/src/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.ts +10 -9
  266. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +118 -17
  267. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.test.ts +43 -1
  268. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +73 -1
  269. package/packages/pi-coding-agent/src/modes/interactive/controllers/input-controller.test.ts +1 -0
  270. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode-state.ts +1 -1
  271. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +25 -0
  272. package/packages/pi-coding-agent/src/modes/interactive/slash-command-handlers.test.ts +95 -0
  273. package/packages/pi-coding-agent/src/modes/interactive/slash-command-handlers.ts +24 -1
  274. package/packages/pi-coding-agent/src/modes/interactive/theme/theme-schema.ts +13 -0
  275. package/packages/pi-coding-agent/src/modes/interactive/theme/theme.ts +32 -2
  276. package/packages/pi-coding-agent/src/modes/interactive/theme/themes.ts +36 -27
  277. package/packages/pi-coding-agent/src/modes/interactive/tui-mode.test.ts +65 -0
  278. package/packages/pi-coding-agent/src/modes/interactive/tui-mode.ts +29 -0
  279. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  280. package/packages/pi-tui/dist/__tests__/style.test.d.ts +2 -0
  281. package/packages/pi-tui/dist/__tests__/style.test.d.ts.map +1 -0
  282. package/packages/pi-tui/dist/__tests__/style.test.js +63 -0
  283. package/packages/pi-tui/dist/__tests__/style.test.js.map +1 -0
  284. package/packages/pi-tui/dist/__tests__/tui.test.js +1 -2
  285. package/packages/pi-tui/dist/__tests__/tui.test.js.map +1 -1
  286. package/packages/pi-tui/dist/index.d.ts +1 -0
  287. package/packages/pi-tui/dist/index.d.ts.map +1 -1
  288. package/packages/pi-tui/dist/index.js +2 -0
  289. package/packages/pi-tui/dist/index.js.map +1 -1
  290. package/packages/pi-tui/dist/style.d.ts +41 -0
  291. package/packages/pi-tui/dist/style.d.ts.map +1 -0
  292. package/packages/pi-tui/dist/style.js +158 -0
  293. package/packages/pi-tui/dist/style.js.map +1 -0
  294. package/packages/pi-tui/dist/tui.d.ts +1 -3
  295. package/packages/pi-tui/dist/tui.d.ts.map +1 -1
  296. package/packages/pi-tui/dist/tui.js +2 -3
  297. package/packages/pi-tui/dist/tui.js.map +1 -1
  298. package/packages/pi-tui/src/__tests__/style.test.ts +76 -0
  299. package/packages/pi-tui/src/__tests__/tui.test.ts +1 -2
  300. package/packages/pi-tui/src/index.ts +9 -0
  301. package/packages/pi-tui/src/style.ts +225 -0
  302. package/packages/pi-tui/src/tui.ts +2 -3
  303. package/packages/pi-tui/tsconfig.tsbuildinfo +1 -1
  304. package/pkg/dist/modes/interactive/theme/theme-schema.d.ts +12 -0
  305. package/pkg/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
  306. package/pkg/dist/modes/interactive/theme/theme-schema.js +13 -0
  307. package/pkg/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  308. package/pkg/dist/modes/interactive/theme/theme.d.ts +1 -1
  309. package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  310. package/pkg/dist/modes/interactive/theme/theme.js +18 -1
  311. package/pkg/dist/modes/interactive/theme/theme.js.map +1 -1
  312. package/pkg/dist/modes/interactive/theme/themes.d.ts.map +1 -1
  313. package/pkg/dist/modes/interactive/theme/themes.js +36 -27
  314. package/pkg/dist/modes/interactive/theme/themes.js.map +1 -1
  315. package/src/resources/extensions/github-sync/templates.ts +38 -8
  316. package/src/resources/extensions/github-sync/tests/inline-code.test.ts +66 -0
  317. package/src/resources/extensions/gsd/auto/loop.ts +14 -10
  318. package/src/resources/extensions/gsd/auto/run-unit.ts +24 -14
  319. package/src/resources/extensions/gsd/auto-dashboard.ts +57 -8
  320. package/src/resources/extensions/gsd/auto-dispatch.ts +17 -0
  321. package/src/resources/extensions/gsd/auto-recovery.ts +153 -7
  322. package/src/resources/extensions/gsd/auto-start.ts +7 -6
  323. package/src/resources/extensions/gsd/auto-worktree.ts +6 -4
  324. package/src/resources/extensions/gsd/auto.ts +3 -3
  325. package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +16 -1
  326. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +17 -1
  327. package/src/resources/extensions/gsd/bootstrap/write-gate.ts +135 -1
  328. package/src/resources/extensions/gsd/commands-extract-learnings.ts +17 -12
  329. package/src/resources/extensions/gsd/db-base-schema.ts +15 -0
  330. package/src/resources/extensions/gsd/db-migration-steps.ts +17 -0
  331. package/src/resources/extensions/gsd/gsd-db.ts +119 -1
  332. package/src/resources/extensions/gsd/guided-flow.ts +2 -2
  333. package/src/resources/extensions/gsd/pr-evidence.ts +63 -5
  334. package/src/resources/extensions/gsd/tests/auto-abort-pause-regression.test.ts +7 -1
  335. package/src/resources/extensions/gsd/tests/auto-dashboard.test.ts +33 -0
  336. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +83 -4
  337. package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +170 -1
  338. package/src/resources/extensions/gsd/tests/commands-extract-learnings.test.ts +9 -0
  339. package/src/resources/extensions/gsd/tests/db-migration-steps.integration.test.ts +428 -0
  340. package/src/resources/extensions/gsd/tests/db-schema-metadata.test.ts +2 -2
  341. package/src/resources/extensions/gsd/tests/fixtures/pr-body/commands-ship-basic.md +52 -0
  342. package/src/resources/extensions/gsd/tests/fixtures/pr-body/commands-ship-empty-optionals.md +42 -0
  343. package/src/resources/extensions/gsd/tests/fixtures/pr-body/swarm-lane-no-blockers.md +55 -0
  344. package/src/resources/extensions/gsd/tests/fixtures/pr-body/swarm-lane-with-blockers.md +60 -0
  345. package/src/resources/extensions/gsd/tests/gsd-db.test.ts +44 -0
  346. package/src/resources/extensions/gsd/tests/has-pending-deep-stage.test.ts +33 -1
  347. package/src/resources/extensions/gsd/tests/headless-answers.test.ts +1 -1
  348. package/src/resources/extensions/gsd/tests/headless-query.test.ts +2 -2
  349. package/src/resources/extensions/gsd/tests/pr-evidence-equivalence.test.ts +102 -0
  350. package/src/resources/extensions/gsd/tests/pr-evidence-hardening.test.ts +165 -0
  351. package/src/resources/extensions/gsd/tests/resource-loader-import-path.test.ts +1 -1
  352. package/src/resources/extensions/gsd/tests/uok-plan-v2-wiring.test.ts +1 -1
  353. package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +7 -8
  354. package/src/resources/extensions/gsd/tests/working-output-messages.test.ts +93 -0
  355. package/src/resources/extensions/gsd/tests/worktree-submodule-safety.test.ts +1 -1
  356. package/src/resources/extensions/gsd/tests/worktree-write-gate.test.ts +179 -0
  357. package/src/resources/extensions/gsd/working-output-messages.ts +120 -0
  358. package/dist/web/standalone/.next/server/chunks/7020.js +0 -12
  359. /package/dist/{app/app-paths.d.ts → app-paths.d.ts} +0 -0
  360. /package/dist/{app/app-paths.js → app-paths.js} +0 -0
  361. /package/dist/{extension-runtime/bundled-extension-paths.d.ts → bundled-extension-paths.d.ts} +0 -0
  362. /package/dist/{extension-runtime/bundled-extension-paths.js → bundled-extension-paths.js} +0 -0
  363. /package/dist/{extension-runtime/bundled-resource-path.d.ts → bundled-resource-path.d.ts} +0 -0
  364. /package/dist/{extension-runtime/bundled-resource-path.js → bundled-resource-path.js} +0 -0
  365. /package/dist/{startup/claude-cli-check.d.ts → claude-cli-check.d.ts} +0 -0
  366. /package/dist/{startup/claude-cli-check.js → claude-cli-check.js} +0 -0
  367. /package/dist/{cli/cli-auto-routing.d.ts → cli-auto-routing.d.ts} +0 -0
  368. /package/dist/{cli/cli-auto-routing.js → cli-auto-routing.js} +0 -0
  369. /package/dist/{cli/cli-policy.d.ts → cli-policy.d.ts} +0 -0
  370. /package/dist/{cli/cli-policy.js → cli-policy.js} +0 -0
  371. /package/dist/{cli/cli.d.ts → cli.d.ts} +0 -0
  372. /package/dist/{extension-runtime/extension-discovery.d.ts → extension-discovery.d.ts} +0 -0
  373. /package/dist/{extension-runtime/extension-discovery.js → extension-discovery.js} +0 -0
  374. /package/dist/{extension-runtime/extension-registry.d.ts → extension-registry.d.ts} +0 -0
  375. /package/dist/{extension-runtime/extension-sort.d.ts → extension-sort.d.ts} +0 -0
  376. /package/dist/{extension-runtime/extension-sort.js → extension-sort.js} +0 -0
  377. /package/dist/{extension-runtime/extension-validator.d.ts → extension-validator.d.ts} +0 -0
  378. /package/dist/{extension-runtime/extension-validator.js → extension-validator.js} +0 -0
  379. /package/dist/{headless/headless-answers.d.ts → headless-answers.d.ts} +0 -0
  380. /package/dist/{headless/headless-answers.js → headless-answers.js} +0 -0
  381. /package/dist/{headless/headless-context.d.ts → headless-context.d.ts} +0 -0
  382. /package/dist/{headless/headless-context.js → headless-context.js} +0 -0
  383. /package/dist/{headless/headless-events.d.ts → headless-events.d.ts} +0 -0
  384. /package/dist/{headless/headless-events.js → headless-events.js} +0 -0
  385. /package/dist/{headless/headless-recover.d.ts → headless-recover.d.ts} +0 -0
  386. /package/dist/{headless/headless-types.d.ts → headless-types.d.ts} +0 -0
  387. /package/dist/{headless/headless-types.js → headless-types.js} +0 -0
  388. /package/dist/{headless/headless-ui.d.ts → headless-ui.d.ts} +0 -0
  389. /package/dist/{headless/headless-ui.js → headless-ui.js} +0 -0
  390. /package/dist/{headless/headless.d.ts → headless.d.ts} +0 -0
  391. /package/dist/{cli/help-text.d.ts → help-text.d.ts} +0 -0
  392. /package/dist/{cli/help-text.js → help-text.js} +0 -0
  393. /package/dist/{cli/logo.d.ts → logo.d.ts} +0 -0
  394. /package/dist/{cli/logo.js → logo.js} +0 -0
  395. /package/dist/{mcp/mcp-server.d.ts → mcp-server.d.ts} +0 -0
  396. /package/dist/{mcp/mcp-server.js → mcp-server.js} +0 -0
  397. /package/dist/{providers/models-resolver.d.ts → models-resolver.d.ts} +0 -0
  398. /package/dist/{onboarding/onboarding.d.ts → onboarding.d.ts} +0 -0
  399. /package/dist/{providers/pi-migration.d.ts → pi-migration.d.ts} +0 -0
  400. /package/dist/{providers/pi-migration.js → pi-migration.js} +0 -0
  401. /package/dist/{app/project-sessions.d.ts → project-sessions.d.ts} +0 -0
  402. /package/dist/{app/project-sessions.js → project-sessions.js} +0 -0
  403. /package/dist/{providers/provider-migrations.d.ts → provider-migrations.d.ts} +0 -0
  404. /package/dist/{providers/provider-migrations.js → provider-migrations.js} +0 -0
  405. /package/dist/{providers/remote-questions-config.d.ts → remote-questions-config.d.ts} +0 -0
  406. /package/dist/{rtk/rtk-shared.d.ts → rtk-shared.d.ts} +0 -0
  407. /package/dist/{rtk/rtk-shared.js → rtk-shared.js} +0 -0
  408. /package/dist/{rtk/rtk.d.ts → rtk.d.ts} +0 -0
  409. /package/dist/{rtk/rtk.js → rtk.js} +0 -0
  410. /package/dist/{startup/runtime-checks.d.ts → runtime-checks.d.ts} +0 -0
  411. /package/dist/{startup/runtime-checks.js → runtime-checks.js} +0 -0
  412. /package/dist/{security/security-overrides.d.ts → security-overrides.d.ts} +0 -0
  413. /package/dist/{startup/startup-model-validation.d.ts → startup-model-validation.d.ts} +0 -0
  414. /package/dist/{startup/startup-timings.d.ts → startup-timings.d.ts} +0 -0
  415. /package/dist/{startup/startup-timings.js → startup-timings.js} +0 -0
  416. /package/dist/{app/tool-bootstrap.d.ts → tool-bootstrap.d.ts} +0 -0
  417. /package/dist/{app/tool-bootstrap.js → tool-bootstrap.js} +0 -0
  418. /package/dist/{update/update-check.d.ts → update-check.d.ts} +0 -0
  419. /package/dist/{update/update-cmd.d.ts → update-cmd.d.ts} +0 -0
  420. /package/dist/{update/update-cmd.js → update-cmd.js} +0 -0
  421. /package/dist/web/standalone/.next/static/{-WDXZiiJHGZDbYH75Mu6f → TCSim36ZpcPu2WgeoC45g}/_buildManifest.js +0 -0
  422. /package/dist/web/standalone/.next/static/{-WDXZiiJHGZDbYH75Mu6f → TCSim36ZpcPu2WgeoC45g}/_ssgManifest.js +0 -0
  423. /package/dist/{cli/web-mode.d.ts → web-mode.d.ts} +0 -0
  424. /package/dist/{onboarding/welcome-screen.d.ts → welcome-screen.d.ts} +0 -0
  425. /package/dist/{onboarding/wizard.d.ts → wizard.d.ts} +0 -0
  426. /package/dist/{onboarding/wizard.js → wizard.js} +0 -0
  427. /package/dist/{worktrees/worktree-cli.d.ts → worktree-cli.d.ts} +0 -0
  428. /package/dist/{worktrees/worktree-name-gen.d.ts → worktree-name-gen.d.ts} +0 -0
  429. /package/dist/{worktrees/worktree-name-gen.js → worktree-name-gen.js} +0 -0
  430. /package/dist/{worktrees/worktree-status-banner.d.ts → worktree-status-banner.d.ts} +0 -0
  431. /package/dist/{worktrees/worktree-status-banner.js → worktree-status-banner.js} +0 -0
@@ -1,3 +1,3 @@
1
- (()=>{var a={};a.id=191,a.ids=[191],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},29233:(a,b,c)=>{"use strict";c.d(b,{B3:()=>o,GW:()=>s,ME:()=>n,Q$:()=>m,ch:()=>r,jG:()=>p,lx:()=>q});var d=c(73024),e=c(76760),f=c(85534);let g="__gsd_pty_sessions__",h="__gsd_pty_cleanup_installed__";function i(){let a=globalThis;return a[g]||(a[g]=new Map),a[g]}function j(a){return Buffer.byteLength(a,"utf8")}function k(a,b){if(b)for(a.buffer.push(b),a.bufferedBytes+=j(b);a.bufferedBytes>1048576&&a.buffer.length>1;){let b=a.buffer.shift();if(!b)break;a.bufferedBytes-=j(b)}}let l=new Set(["gsd",process.env.SHELL||"/bin/zsh","/bin/bash","/bin/zsh","/bin/sh"]);function m(a){return!a||l.has(a)}function n(a,b,c,g=[]){let j;if(!function(){let a=globalThis;if(a[h])return;a[h]=!0;let b=()=>{let a=i();for(let[b,c]of a.entries()){c.alive=!1;try{c.pty.kill()}catch{}c.listeners.clear(),a.delete(b)}};process.once("exit",b),process.once("SIGINT",()=>{b(),process.exit(130)}),process.once("SIGTERM",()=>{b(),process.exit(143)}),process.once("SIGHUP",()=>{b(),process.exit(129)})}(),!m(c))throw Error(`Command not allowed: ${c}`);let l=i(),o=l.get(a);if(o?.alive)return o;o&&l.delete(a);let{nodePtyModule:p,packageRoot:q}=function(){let a,b,c=[];for(let f of((a=new Set).add(process.cwd()),(b=process.env.GSD_WEB_PACKAGE_ROOT)&&(a.add(b),a.add((0,e.join)(b,"dist","web","standalone")),a.add((0,e.join)(b,"web"))),Array.from(a))){let a=(0,e.join)(f,"node_modules","node-pty","package.json");if(!(0,d.existsSync)(a)){c.push(`${f}: node-pty not found`);continue}try{let b=(0,e.dirname)(a);if(!function(a){let b=(0,e.join)(a,"prebuilds",`${process.platform}-${process.arch}`);return(0,d.existsSync)((0,e.join)(b,"pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Release","pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Debug","pty.node"))}(b)){c.push(`${b}: missing native assets`);continue}return{nodePtyModule:("u">typeof require?require:Function("return require")())((0,e.join)(b,"lib","index.js")),packageRoot:b}}catch(a){c.push(`${f}: ${a instanceof Error?a.message:String(a)}`)}}throw Error(`Failed to load node-pty with native assets. Tried: ${c.join(" | ")||"no candidate roots"}`)}();try{let a=(0,e.join)(q,"prebuilds",`${process.platform}-${process.arch}`,"spawn-helper");if((0,d.existsSync)(a)){let b=(0,d.statSync)(a);(73&b.mode)==0&&((0,d.chmodSync)(a,493|b.mode),console.log("[pty] Fixed spawn-helper permissions:",a))}}catch(a){console.warn("[pty] Could not check spawn-helper:",a)}let r=b||process.env.GSD_WEB_PROJECT_CWD||process.cwd(),s=function(a,b,c=[]){if(!b){let a="win32"===process.platform?"powershell.exe":process.env.SHELL||"/bin/zsh";return{executable:a,args:[],label:(0,e.basename)(a)}}if("gsd"===b)try{let b=(0,f.N)({packageRoot:process.env.GSD_WEB_PACKAGE_ROOT||process.cwd(),cwd:a,execPath:process.execPath,hostKind:process.env.GSD_WEB_HOST_KIND,mode:"interactive",messages:c});return{executable:b.command,args:b.args,label:"gsd"}}catch(a){console.warn("[pty] Falling back to PATH-resolved gsd:",a instanceof Error?a.message:String(a))}return{executable:b,args:c,label:(0,e.basename)(b)}}(r,c,g);console.log("[pty] Spawning command:",s.label,"cwd:",r,"node-pty:",q);let t={};for(let[a,b]of Object.entries(process.env))void 0===b||"gsd"!==c&&a.startsWith("GSD_WEB_")||(t[a]=b);t.TERM="xterm-256color",t.COLORTERM="truecolor",t.HISTFILE="/dev/null",t.HISTSIZE="0",t.SAVEHIST="0",t.LESSHISTFILE="/dev/null",t.NODE_REPL_HISTORY="/dev/null",c&&(t.GSD_WEB_PTY="1");try{j=p.spawn(s.executable,s.args,{name:"xterm-256color",cols:120,rows:30,cwd:r,env:t}),console.log("[pty] Spawned pid:",j.pid)}catch(a){throw console.error("[pty] Spawn failed:",a),console.error("[pty] Command:",s.executable,"Args:",s.args,"CWD:",r),console.error("[pty] CWD exists:",(0,d.existsSync)(r)),a}let u={id:a,pty:j,listeners:new Set,alive:!0,buffer:[],bufferedBytes:0};return j.onData(a=>{for(let b of(k(u,a),u.listeners))try{b(a)}catch{}}),j.onExit(({exitCode:a,signal:b})=>{u.alive=!1;let c=`\r
1
+ (()=>{var a={};a.id=191,a.ids=[191],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},29233:(a,b,c)=>{"use strict";c.d(b,{B3:()=>o,GW:()=>s,ME:()=>n,Q$:()=>m,ch:()=>r,jG:()=>p,lx:()=>q});var d=c(73024),e=c(76760),f=c(52813);let g="__gsd_pty_sessions__",h="__gsd_pty_cleanup_installed__";function i(){let a=globalThis;return a[g]||(a[g]=new Map),a[g]}function j(a){return Buffer.byteLength(a,"utf8")}function k(a,b){if(b)for(a.buffer.push(b),a.bufferedBytes+=j(b);a.bufferedBytes>1048576&&a.buffer.length>1;){let b=a.buffer.shift();if(!b)break;a.bufferedBytes-=j(b)}}let l=new Set(["gsd",process.env.SHELL||"/bin/zsh","/bin/bash","/bin/zsh","/bin/sh"]);function m(a){return!a||l.has(a)}function n(a,b,c,g=[]){let j;if(!function(){let a=globalThis;if(a[h])return;a[h]=!0;let b=()=>{let a=i();for(let[b,c]of a.entries()){c.alive=!1;try{c.pty.kill()}catch{}c.listeners.clear(),a.delete(b)}};process.once("exit",b),process.once("SIGINT",()=>{b(),process.exit(130)}),process.once("SIGTERM",()=>{b(),process.exit(143)}),process.once("SIGHUP",()=>{b(),process.exit(129)})}(),!m(c))throw Error(`Command not allowed: ${c}`);let l=i(),o=l.get(a);if(o?.alive)return o;o&&l.delete(a);let{nodePtyModule:p,packageRoot:q}=function(){let a,b,c=[];for(let f of((a=new Set).add(process.cwd()),(b=process.env.GSD_WEB_PACKAGE_ROOT)&&(a.add(b),a.add((0,e.join)(b,"dist","web","standalone")),a.add((0,e.join)(b,"web"))),Array.from(a))){let a=(0,e.join)(f,"node_modules","node-pty","package.json");if(!(0,d.existsSync)(a)){c.push(`${f}: node-pty not found`);continue}try{let b=(0,e.dirname)(a);if(!function(a){let b=(0,e.join)(a,"prebuilds",`${process.platform}-${process.arch}`);return(0,d.existsSync)((0,e.join)(b,"pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Release","pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Debug","pty.node"))}(b)){c.push(`${b}: missing native assets`);continue}return{nodePtyModule:("u">typeof require?require:Function("return require")())((0,e.join)(b,"lib","index.js")),packageRoot:b}}catch(a){c.push(`${f}: ${a instanceof Error?a.message:String(a)}`)}}throw Error(`Failed to load node-pty with native assets. Tried: ${c.join(" | ")||"no candidate roots"}`)}();try{let a=(0,e.join)(q,"prebuilds",`${process.platform}-${process.arch}`,"spawn-helper");if((0,d.existsSync)(a)){let b=(0,d.statSync)(a);(73&b.mode)==0&&((0,d.chmodSync)(a,493|b.mode),console.log("[pty] Fixed spawn-helper permissions:",a))}}catch(a){console.warn("[pty] Could not check spawn-helper:",a)}let r=b||process.env.GSD_WEB_PROJECT_CWD||process.cwd(),s=function(a,b,c=[]){if(!b){let a="win32"===process.platform?"powershell.exe":process.env.SHELL||"/bin/zsh";return{executable:a,args:[],label:(0,e.basename)(a)}}if("gsd"===b)try{let b=(0,f.N)({packageRoot:process.env.GSD_WEB_PACKAGE_ROOT||process.cwd(),cwd:a,execPath:process.execPath,hostKind:process.env.GSD_WEB_HOST_KIND,mode:"interactive",messages:c});return{executable:b.command,args:b.args,label:"gsd"}}catch(a){console.warn("[pty] Falling back to PATH-resolved gsd:",a instanceof Error?a.message:String(a))}return{executable:b,args:c,label:(0,e.basename)(b)}}(r,c,g);console.log("[pty] Spawning command:",s.label,"cwd:",r,"node-pty:",q);let t={};for(let[a,b]of Object.entries(process.env))void 0===b||"gsd"!==c&&a.startsWith("GSD_WEB_")||(t[a]=b);t.TERM="xterm-256color",t.COLORTERM="truecolor",t.HISTFILE="/dev/null",t.HISTSIZE="0",t.SAVEHIST="0",t.LESSHISTFILE="/dev/null",t.NODE_REPL_HISTORY="/dev/null",c&&(t.GSD_WEB_PTY="1");try{j=p.spawn(s.executable,s.args,{name:"xterm-256color",cols:120,rows:30,cwd:r,env:t}),console.log("[pty] Spawned pid:",j.pid)}catch(a){throw console.error("[pty] Spawn failed:",a),console.error("[pty] Command:",s.executable,"Args:",s.args,"CWD:",r),console.error("[pty] CWD exists:",(0,d.existsSync)(r)),a}let u={id:a,pty:j,listeners:new Set,alive:!0,buffer:[],bufferedBytes:0};return j.onData(a=>{for(let b of(k(u,a),u.listeners))try{b(a)}catch{}}),j.onExit(({exitCode:a,signal:b})=>{u.alive=!1;let c=`\r
2
2
  \x1b[90m[Process exited with code ${a}${b?`, signal ${b}`:""}]\x1b[0m\r
3
- `;for(let a of(k(u,c),u.listeners))try{a(c)}catch{}}),l.set(a,u),u}function o(a,b){let c=i().get(a);return!!c?.alive&&(c.pty.write(b),!0)}function p(a,b,c){let d=i().get(a);if(!d?.alive)return!1;try{return d.pty.resize(b,c),!0}catch{return!1}}function q(a){let b=i(),c=b.get(a);if(!c)return!1;c.alive=!1;try{c.pty.kill()}catch{}return c.listeners.clear(),b.delete(a),!0}function r(a,b){let c=i().get(a);if(!c)return null;let d=c.buffer.slice();for(let a of(c.listeners.add(b),d))try{b(a)}catch{return c.listeners.delete(b),null}return()=>{c.listeners.delete(b)}}function s(){return Array.from(i().values()).map(a=>({id:a.id,alive:a.alive,pid:a.pty.pid}))}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},41575:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y,dynamic:()=>x,runtime:()=>w});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(29233);let w="nodejs",x="force-dynamic";async function y(a){let b;try{b=await a.json()}catch{return Response.json({error:"Invalid JSON"},{status:400})}let c=b.id||"default",d=b.data;return"string"!=typeof d?Response.json({error:"data must be a string"},{status:400}):(0,v.B3)(c,d)?Response.json({ok:!0}):Response.json({error:"Session not found or dead"},{status:404})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/terminal/input/route",pathname:"/api/terminal/input",filename:"route",bundlePath:"app/api/terminal/input/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/terminal/input/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/terminal/input/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70016:(a,b,c)=>{"use strict";c.d(b,{KW:()=>h,hg:()=>f,vB:()=>i});var d=c(73024),e=c(76760);function f(a){return g(a)&&function(){let[a,b]=process.versions.node.split(".").map(Number);return a>22||22===a&&b>=7}()?"--experimental-transform-types":"--experimental-strip-types"}function g(a){return a.replace(/\\/g,"/").includes("/node_modules/")}function h(a,b,c=d.existsSync){if(g(a)){let d=b.replace(/\.ts$/,".js"),f=(0,e.join)(a,"dist",d);if(c(f))return{modulePath:f,useCompiledJs:!0}}return{modulePath:(0,e.join)(a,"src",b),useCompiledJs:!1}}function i(a,b,c){return b.useCompiledJs?["--input-type=module"]:["--import",c,f(a),"--input-type=module"]}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},78335:()=>{},85534:(a,b,c)=>{"use strict";c.d(b,{N:()=>h});var d=c(73024),e=c(76760),f=c(73136),g=c(70016);function h(a){let b=a.existsSync??d.existsSync,c=a.execPath??process.execPath,h=function(a){if("rpc"!==a.mode)return[];if(!a.sessionDir)throw Error("RPC CLI entry requires sessionDir");return["--mode","rpc","--continue","--session-dir",a.sessionDir]}(a),i="interactive"===a.mode?a.messages??[]:[],j=(0,e.join)(a.packageRoot,"src","loader.ts"),k=(0,e.join)(a.packageRoot,"src","resources","extensions","gsd","tests","resolve-ts.mjs"),l=(0,e.join)(a.packageRoot,"dist","loader.js"),m=b(j)&&b(k)?{command:c,args:["--import",(0,f.pathToFileURL)(k).href,(0,g.hg)(a.packageRoot),j,...h,...i],cwd:a.cwd}:null,n=b(l)?{command:c,args:[l,...h,...i],cwd:a.cwd}:null;if("packaged-standalone"===a.hostKind){if(n)return n;if(m)return m}else{if(m)return m;if(n)return n}throw Error(`GSD CLI entry not found; checked=${j},${l}`)}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741],()=>b(b.s=41575));module.exports=c})();
3
+ `;for(let a of(k(u,c),u.listeners))try{a(c)}catch{}}),l.set(a,u),u}function o(a,b){let c=i().get(a);return!!c?.alive&&(c.pty.write(b),!0)}function p(a,b,c){let d=i().get(a);if(!d?.alive)return!1;try{return d.pty.resize(b,c),!0}catch{return!1}}function q(a){let b=i(),c=b.get(a);if(!c)return!1;c.alive=!1;try{c.pty.kill()}catch{}return c.listeners.clear(),b.delete(a),!0}function r(a,b){let c=i().get(a);if(!c)return null;let d=c.buffer.slice();for(let a of(c.listeners.add(b),d))try{b(a)}catch{return c.listeners.delete(b),null}return()=>{c.listeners.delete(b)}}function s(){return Array.from(i().values()).map(a=>({id:a.id,alive:a.alive,pid:a.pty.pid}))}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},34431:(a,b,c)=>{"use strict";c.d(b,{KW:()=>h,hg:()=>f,vB:()=>i});var d=c(73024),e=c(76760);function f(a){return g(a)&&function(){let[a,b]=process.versions.node.split(".").map(Number);return a>22||22===a&&b>=7}()?"--experimental-transform-types":"--experimental-strip-types"}function g(a){return a.replace(/\\/g,"/").includes("/node_modules/")}function h(a,b,c=d.existsSync){if(g(a)){let d=b.replace(/\.ts$/,".js"),f=(0,e.join)(a,"dist",d);if(c(f))return{modulePath:f,useCompiledJs:!0}}return{modulePath:(0,e.join)(a,"src",b),useCompiledJs:!1}}function i(a,b,c){return b.useCompiledJs?["--input-type=module"]:["--import",c,f(a),"--input-type=module"]}},41575:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y,dynamic:()=>x,runtime:()=>w});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(29233);let w="nodejs",x="force-dynamic";async function y(a){let b;try{b=await a.json()}catch{return Response.json({error:"Invalid JSON"},{status:400})}let c=b.id||"default",d=b.data;return"string"!=typeof d?Response.json({error:"data must be a string"},{status:400}):(0,v.B3)(c,d)?Response.json({ok:!0}):Response.json({error:"Session not found or dead"},{status:404})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/terminal/input/route",pathname:"/api/terminal/input",filename:"route",bundlePath:"app/api/terminal/input/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/terminal/input/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/terminal/input/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},52813:(a,b,c)=>{"use strict";c.d(b,{N:()=>h});var d=c(73024),e=c(76760),f=c(73136),g=c(34431);function h(a){let b=a.existsSync??d.existsSync,c=a.execPath??process.execPath,h=function(a){if("rpc"!==a.mode)return[];if(!a.sessionDir)throw Error("RPC CLI entry requires sessionDir");return["--mode","rpc","--continue","--session-dir",a.sessionDir]}(a),i="interactive"===a.mode?a.messages??[]:[],j=(0,e.join)(a.packageRoot,"src","loader.ts"),k=(0,e.join)(a.packageRoot,"src","resources","extensions","gsd","tests","resolve-ts.mjs"),l=(0,e.join)(a.packageRoot,"dist","loader.js"),m=b(j)&&b(k)?{command:c,args:["--import",(0,f.pathToFileURL)(k).href,(0,g.hg)(a.packageRoot),j,...h,...i],cwd:a.cwd}:null,n=b(l)?{command:c,args:[l,...h,...i],cwd:a.cwd}:null;if("packaged-standalone"===a.hostKind){if(n)return n;if(m)return m}else{if(m)return m;if(n)return n}throw Error(`GSD CLI entry not found; checked=${j},${l}`)}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741],()=>b(b.s=41575));module.exports=c})();
@@ -1,3 +1,3 @@
1
- (()=>{var a={};a.id=5517,a.ids=[5517],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},4318:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y,dynamic:()=>x,runtime:()=>w});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(29233);let w="nodejs",x="force-dynamic";async function y(a){let b;try{b=await a.json()}catch{return Response.json({error:"Invalid JSON"},{status:400})}let c=b.id||"default",d=b.cols,e=b.rows;return"number"!=typeof d||"number"!=typeof e||d<1||e<1?Response.json({error:"cols and rows must be positive numbers"},{status:400}):(0,v.jG)(c,Math.floor(d),Math.floor(e))?Response.json({ok:!0}):Response.json({error:"Session not found or dead"},{status:404})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/terminal/resize/route",pathname:"/api/terminal/resize",filename:"route",bundlePath:"app/api/terminal/resize/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/terminal/resize/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/terminal/resize/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},29233:(a,b,c)=>{"use strict";c.d(b,{B3:()=>o,GW:()=>s,ME:()=>n,Q$:()=>m,ch:()=>r,jG:()=>p,lx:()=>q});var d=c(73024),e=c(76760),f=c(85534);let g="__gsd_pty_sessions__",h="__gsd_pty_cleanup_installed__";function i(){let a=globalThis;return a[g]||(a[g]=new Map),a[g]}function j(a){return Buffer.byteLength(a,"utf8")}function k(a,b){if(b)for(a.buffer.push(b),a.bufferedBytes+=j(b);a.bufferedBytes>1048576&&a.buffer.length>1;){let b=a.buffer.shift();if(!b)break;a.bufferedBytes-=j(b)}}let l=new Set(["gsd",process.env.SHELL||"/bin/zsh","/bin/bash","/bin/zsh","/bin/sh"]);function m(a){return!a||l.has(a)}function n(a,b,c,g=[]){let j;if(!function(){let a=globalThis;if(a[h])return;a[h]=!0;let b=()=>{let a=i();for(let[b,c]of a.entries()){c.alive=!1;try{c.pty.kill()}catch{}c.listeners.clear(),a.delete(b)}};process.once("exit",b),process.once("SIGINT",()=>{b(),process.exit(130)}),process.once("SIGTERM",()=>{b(),process.exit(143)}),process.once("SIGHUP",()=>{b(),process.exit(129)})}(),!m(c))throw Error(`Command not allowed: ${c}`);let l=i(),o=l.get(a);if(o?.alive)return o;o&&l.delete(a);let{nodePtyModule:p,packageRoot:q}=function(){let a,b,c=[];for(let f of((a=new Set).add(process.cwd()),(b=process.env.GSD_WEB_PACKAGE_ROOT)&&(a.add(b),a.add((0,e.join)(b,"dist","web","standalone")),a.add((0,e.join)(b,"web"))),Array.from(a))){let a=(0,e.join)(f,"node_modules","node-pty","package.json");if(!(0,d.existsSync)(a)){c.push(`${f}: node-pty not found`);continue}try{let b=(0,e.dirname)(a);if(!function(a){let b=(0,e.join)(a,"prebuilds",`${process.platform}-${process.arch}`);return(0,d.existsSync)((0,e.join)(b,"pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Release","pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Debug","pty.node"))}(b)){c.push(`${b}: missing native assets`);continue}return{nodePtyModule:("u">typeof require?require:Function("return require")())((0,e.join)(b,"lib","index.js")),packageRoot:b}}catch(a){c.push(`${f}: ${a instanceof Error?a.message:String(a)}`)}}throw Error(`Failed to load node-pty with native assets. Tried: ${c.join(" | ")||"no candidate roots"}`)}();try{let a=(0,e.join)(q,"prebuilds",`${process.platform}-${process.arch}`,"spawn-helper");if((0,d.existsSync)(a)){let b=(0,d.statSync)(a);(73&b.mode)==0&&((0,d.chmodSync)(a,493|b.mode),console.log("[pty] Fixed spawn-helper permissions:",a))}}catch(a){console.warn("[pty] Could not check spawn-helper:",a)}let r=b||process.env.GSD_WEB_PROJECT_CWD||process.cwd(),s=function(a,b,c=[]){if(!b){let a="win32"===process.platform?"powershell.exe":process.env.SHELL||"/bin/zsh";return{executable:a,args:[],label:(0,e.basename)(a)}}if("gsd"===b)try{let b=(0,f.N)({packageRoot:process.env.GSD_WEB_PACKAGE_ROOT||process.cwd(),cwd:a,execPath:process.execPath,hostKind:process.env.GSD_WEB_HOST_KIND,mode:"interactive",messages:c});return{executable:b.command,args:b.args,label:"gsd"}}catch(a){console.warn("[pty] Falling back to PATH-resolved gsd:",a instanceof Error?a.message:String(a))}return{executable:b,args:c,label:(0,e.basename)(b)}}(r,c,g);console.log("[pty] Spawning command:",s.label,"cwd:",r,"node-pty:",q);let t={};for(let[a,b]of Object.entries(process.env))void 0===b||"gsd"!==c&&a.startsWith("GSD_WEB_")||(t[a]=b);t.TERM="xterm-256color",t.COLORTERM="truecolor",t.HISTFILE="/dev/null",t.HISTSIZE="0",t.SAVEHIST="0",t.LESSHISTFILE="/dev/null",t.NODE_REPL_HISTORY="/dev/null",c&&(t.GSD_WEB_PTY="1");try{j=p.spawn(s.executable,s.args,{name:"xterm-256color",cols:120,rows:30,cwd:r,env:t}),console.log("[pty] Spawned pid:",j.pid)}catch(a){throw console.error("[pty] Spawn failed:",a),console.error("[pty] Command:",s.executable,"Args:",s.args,"CWD:",r),console.error("[pty] CWD exists:",(0,d.existsSync)(r)),a}let u={id:a,pty:j,listeners:new Set,alive:!0,buffer:[],bufferedBytes:0};return j.onData(a=>{for(let b of(k(u,a),u.listeners))try{b(a)}catch{}}),j.onExit(({exitCode:a,signal:b})=>{u.alive=!1;let c=`\r
1
+ (()=>{var a={};a.id=5517,a.ids=[5517],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},4318:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y,dynamic:()=>x,runtime:()=>w});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(29233);let w="nodejs",x="force-dynamic";async function y(a){let b;try{b=await a.json()}catch{return Response.json({error:"Invalid JSON"},{status:400})}let c=b.id||"default",d=b.cols,e=b.rows;return"number"!=typeof d||"number"!=typeof e||d<1||e<1?Response.json({error:"cols and rows must be positive numbers"},{status:400}):(0,v.jG)(c,Math.floor(d),Math.floor(e))?Response.json({ok:!0}):Response.json({error:"Session not found or dead"},{status:404})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/terminal/resize/route",pathname:"/api/terminal/resize",filename:"route",bundlePath:"app/api/terminal/resize/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/terminal/resize/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/terminal/resize/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},29233:(a,b,c)=>{"use strict";c.d(b,{B3:()=>o,GW:()=>s,ME:()=>n,Q$:()=>m,ch:()=>r,jG:()=>p,lx:()=>q});var d=c(73024),e=c(76760),f=c(52813);let g="__gsd_pty_sessions__",h="__gsd_pty_cleanup_installed__";function i(){let a=globalThis;return a[g]||(a[g]=new Map),a[g]}function j(a){return Buffer.byteLength(a,"utf8")}function k(a,b){if(b)for(a.buffer.push(b),a.bufferedBytes+=j(b);a.bufferedBytes>1048576&&a.buffer.length>1;){let b=a.buffer.shift();if(!b)break;a.bufferedBytes-=j(b)}}let l=new Set(["gsd",process.env.SHELL||"/bin/zsh","/bin/bash","/bin/zsh","/bin/sh"]);function m(a){return!a||l.has(a)}function n(a,b,c,g=[]){let j;if(!function(){let a=globalThis;if(a[h])return;a[h]=!0;let b=()=>{let a=i();for(let[b,c]of a.entries()){c.alive=!1;try{c.pty.kill()}catch{}c.listeners.clear(),a.delete(b)}};process.once("exit",b),process.once("SIGINT",()=>{b(),process.exit(130)}),process.once("SIGTERM",()=>{b(),process.exit(143)}),process.once("SIGHUP",()=>{b(),process.exit(129)})}(),!m(c))throw Error(`Command not allowed: ${c}`);let l=i(),o=l.get(a);if(o?.alive)return o;o&&l.delete(a);let{nodePtyModule:p,packageRoot:q}=function(){let a,b,c=[];for(let f of((a=new Set).add(process.cwd()),(b=process.env.GSD_WEB_PACKAGE_ROOT)&&(a.add(b),a.add((0,e.join)(b,"dist","web","standalone")),a.add((0,e.join)(b,"web"))),Array.from(a))){let a=(0,e.join)(f,"node_modules","node-pty","package.json");if(!(0,d.existsSync)(a)){c.push(`${f}: node-pty not found`);continue}try{let b=(0,e.dirname)(a);if(!function(a){let b=(0,e.join)(a,"prebuilds",`${process.platform}-${process.arch}`);return(0,d.existsSync)((0,e.join)(b,"pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Release","pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Debug","pty.node"))}(b)){c.push(`${b}: missing native assets`);continue}return{nodePtyModule:("u">typeof require?require:Function("return require")())((0,e.join)(b,"lib","index.js")),packageRoot:b}}catch(a){c.push(`${f}: ${a instanceof Error?a.message:String(a)}`)}}throw Error(`Failed to load node-pty with native assets. Tried: ${c.join(" | ")||"no candidate roots"}`)}();try{let a=(0,e.join)(q,"prebuilds",`${process.platform}-${process.arch}`,"spawn-helper");if((0,d.existsSync)(a)){let b=(0,d.statSync)(a);(73&b.mode)==0&&((0,d.chmodSync)(a,493|b.mode),console.log("[pty] Fixed spawn-helper permissions:",a))}}catch(a){console.warn("[pty] Could not check spawn-helper:",a)}let r=b||process.env.GSD_WEB_PROJECT_CWD||process.cwd(),s=function(a,b,c=[]){if(!b){let a="win32"===process.platform?"powershell.exe":process.env.SHELL||"/bin/zsh";return{executable:a,args:[],label:(0,e.basename)(a)}}if("gsd"===b)try{let b=(0,f.N)({packageRoot:process.env.GSD_WEB_PACKAGE_ROOT||process.cwd(),cwd:a,execPath:process.execPath,hostKind:process.env.GSD_WEB_HOST_KIND,mode:"interactive",messages:c});return{executable:b.command,args:b.args,label:"gsd"}}catch(a){console.warn("[pty] Falling back to PATH-resolved gsd:",a instanceof Error?a.message:String(a))}return{executable:b,args:c,label:(0,e.basename)(b)}}(r,c,g);console.log("[pty] Spawning command:",s.label,"cwd:",r,"node-pty:",q);let t={};for(let[a,b]of Object.entries(process.env))void 0===b||"gsd"!==c&&a.startsWith("GSD_WEB_")||(t[a]=b);t.TERM="xterm-256color",t.COLORTERM="truecolor",t.HISTFILE="/dev/null",t.HISTSIZE="0",t.SAVEHIST="0",t.LESSHISTFILE="/dev/null",t.NODE_REPL_HISTORY="/dev/null",c&&(t.GSD_WEB_PTY="1");try{j=p.spawn(s.executable,s.args,{name:"xterm-256color",cols:120,rows:30,cwd:r,env:t}),console.log("[pty] Spawned pid:",j.pid)}catch(a){throw console.error("[pty] Spawn failed:",a),console.error("[pty] Command:",s.executable,"Args:",s.args,"CWD:",r),console.error("[pty] CWD exists:",(0,d.existsSync)(r)),a}let u={id:a,pty:j,listeners:new Set,alive:!0,buffer:[],bufferedBytes:0};return j.onData(a=>{for(let b of(k(u,a),u.listeners))try{b(a)}catch{}}),j.onExit(({exitCode:a,signal:b})=>{u.alive=!1;let c=`\r
2
2
  \x1b[90m[Process exited with code ${a}${b?`, signal ${b}`:""}]\x1b[0m\r
3
- `;for(let a of(k(u,c),u.listeners))try{a(c)}catch{}}),l.set(a,u),u}function o(a,b){let c=i().get(a);return!!c?.alive&&(c.pty.write(b),!0)}function p(a,b,c){let d=i().get(a);if(!d?.alive)return!1;try{return d.pty.resize(b,c),!0}catch{return!1}}function q(a){let b=i(),c=b.get(a);if(!c)return!1;c.alive=!1;try{c.pty.kill()}catch{}return c.listeners.clear(),b.delete(a),!0}function r(a,b){let c=i().get(a);if(!c)return null;let d=c.buffer.slice();for(let a of(c.listeners.add(b),d))try{b(a)}catch{return c.listeners.delete(b),null}return()=>{c.listeners.delete(b)}}function s(){return Array.from(i().values()).map(a=>({id:a.id,alive:a.alive,pid:a.pty.pid}))}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70016:(a,b,c)=>{"use strict";c.d(b,{KW:()=>h,hg:()=>f,vB:()=>i});var d=c(73024),e=c(76760);function f(a){return g(a)&&function(){let[a,b]=process.versions.node.split(".").map(Number);return a>22||22===a&&b>=7}()?"--experimental-transform-types":"--experimental-strip-types"}function g(a){return a.replace(/\\/g,"/").includes("/node_modules/")}function h(a,b,c=d.existsSync){if(g(a)){let d=b.replace(/\.ts$/,".js"),f=(0,e.join)(a,"dist",d);if(c(f))return{modulePath:f,useCompiledJs:!0}}return{modulePath:(0,e.join)(a,"src",b),useCompiledJs:!1}}function i(a,b,c){return b.useCompiledJs?["--input-type=module"]:["--import",c,f(a),"--input-type=module"]}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},78335:()=>{},85534:(a,b,c)=>{"use strict";c.d(b,{N:()=>h});var d=c(73024),e=c(76760),f=c(73136),g=c(70016);function h(a){let b=a.existsSync??d.existsSync,c=a.execPath??process.execPath,h=function(a){if("rpc"!==a.mode)return[];if(!a.sessionDir)throw Error("RPC CLI entry requires sessionDir");return["--mode","rpc","--continue","--session-dir",a.sessionDir]}(a),i="interactive"===a.mode?a.messages??[]:[],j=(0,e.join)(a.packageRoot,"src","loader.ts"),k=(0,e.join)(a.packageRoot,"src","resources","extensions","gsd","tests","resolve-ts.mjs"),l=(0,e.join)(a.packageRoot,"dist","loader.js"),m=b(j)&&b(k)?{command:c,args:["--import",(0,f.pathToFileURL)(k).href,(0,g.hg)(a.packageRoot),j,...h,...i],cwd:a.cwd}:null,n=b(l)?{command:c,args:[l,...h,...i],cwd:a.cwd}:null;if("packaged-standalone"===a.hostKind){if(n)return n;if(m)return m}else{if(m)return m;if(n)return n}throw Error(`GSD CLI entry not found; checked=${j},${l}`)}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741],()=>b(b.s=4318));module.exports=c})();
3
+ `;for(let a of(k(u,c),u.listeners))try{a(c)}catch{}}),l.set(a,u),u}function o(a,b){let c=i().get(a);return!!c?.alive&&(c.pty.write(b),!0)}function p(a,b,c){let d=i().get(a);if(!d?.alive)return!1;try{return d.pty.resize(b,c),!0}catch{return!1}}function q(a){let b=i(),c=b.get(a);if(!c)return!1;c.alive=!1;try{c.pty.kill()}catch{}return c.listeners.clear(),b.delete(a),!0}function r(a,b){let c=i().get(a);if(!c)return null;let d=c.buffer.slice();for(let a of(c.listeners.add(b),d))try{b(a)}catch{return c.listeners.delete(b),null}return()=>{c.listeners.delete(b)}}function s(){return Array.from(i().values()).map(a=>({id:a.id,alive:a.alive,pid:a.pty.pid}))}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},34431:(a,b,c)=>{"use strict";c.d(b,{KW:()=>h,hg:()=>f,vB:()=>i});var d=c(73024),e=c(76760);function f(a){return g(a)&&function(){let[a,b]=process.versions.node.split(".").map(Number);return a>22||22===a&&b>=7}()?"--experimental-transform-types":"--experimental-strip-types"}function g(a){return a.replace(/\\/g,"/").includes("/node_modules/")}function h(a,b,c=d.existsSync){if(g(a)){let d=b.replace(/\.ts$/,".js"),f=(0,e.join)(a,"dist",d);if(c(f))return{modulePath:f,useCompiledJs:!0}}return{modulePath:(0,e.join)(a,"src",b),useCompiledJs:!1}}function i(a,b,c){return b.useCompiledJs?["--input-type=module"]:["--import",c,f(a),"--input-type=module"]}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},52813:(a,b,c)=>{"use strict";c.d(b,{N:()=>h});var d=c(73024),e=c(76760),f=c(73136),g=c(34431);function h(a){let b=a.existsSync??d.existsSync,c=a.execPath??process.execPath,h=function(a){if("rpc"!==a.mode)return[];if(!a.sessionDir)throw Error("RPC CLI entry requires sessionDir");return["--mode","rpc","--continue","--session-dir",a.sessionDir]}(a),i="interactive"===a.mode?a.messages??[]:[],j=(0,e.join)(a.packageRoot,"src","loader.ts"),k=(0,e.join)(a.packageRoot,"src","resources","extensions","gsd","tests","resolve-ts.mjs"),l=(0,e.join)(a.packageRoot,"dist","loader.js"),m=b(j)&&b(k)?{command:c,args:["--import",(0,f.pathToFileURL)(k).href,(0,g.hg)(a.packageRoot),j,...h,...i],cwd:a.cwd}:null,n=b(l)?{command:c,args:[l,...h,...i],cwd:a.cwd}:null;if("packaged-standalone"===a.hostKind){if(n)return n;if(m)return m}else{if(m)return m;if(n)return n}throw Error(`GSD CLI entry not found; checked=${j},${l}`)}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741],()=>b(b.s=4318));module.exports=c})();
@@ -1,3 +1,3 @@
1
- "use strict";(()=>{var a={};a.id=8898,a.ids=[8898],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},29233:(a,b,c)=>{c.d(b,{B3:()=>o,GW:()=>s,ME:()=>n,Q$:()=>m,ch:()=>r,jG:()=>p,lx:()=>q});var d=c(73024),e=c(76760),f=c(85534);let g="__gsd_pty_sessions__",h="__gsd_pty_cleanup_installed__";function i(){let a=globalThis;return a[g]||(a[g]=new Map),a[g]}function j(a){return Buffer.byteLength(a,"utf8")}function k(a,b){if(b)for(a.buffer.push(b),a.bufferedBytes+=j(b);a.bufferedBytes>1048576&&a.buffer.length>1;){let b=a.buffer.shift();if(!b)break;a.bufferedBytes-=j(b)}}let l=new Set(["gsd",process.env.SHELL||"/bin/zsh","/bin/bash","/bin/zsh","/bin/sh"]);function m(a){return!a||l.has(a)}function n(a,b,c,g=[]){let j;if(!function(){let a=globalThis;if(a[h])return;a[h]=!0;let b=()=>{let a=i();for(let[b,c]of a.entries()){c.alive=!1;try{c.pty.kill()}catch{}c.listeners.clear(),a.delete(b)}};process.once("exit",b),process.once("SIGINT",()=>{b(),process.exit(130)}),process.once("SIGTERM",()=>{b(),process.exit(143)}),process.once("SIGHUP",()=>{b(),process.exit(129)})}(),!m(c))throw Error(`Command not allowed: ${c}`);let l=i(),o=l.get(a);if(o?.alive)return o;o&&l.delete(a);let{nodePtyModule:p,packageRoot:q}=function(){let a,b,c=[];for(let f of((a=new Set).add(process.cwd()),(b=process.env.GSD_WEB_PACKAGE_ROOT)&&(a.add(b),a.add((0,e.join)(b,"dist","web","standalone")),a.add((0,e.join)(b,"web"))),Array.from(a))){let a=(0,e.join)(f,"node_modules","node-pty","package.json");if(!(0,d.existsSync)(a)){c.push(`${f}: node-pty not found`);continue}try{let b=(0,e.dirname)(a);if(!function(a){let b=(0,e.join)(a,"prebuilds",`${process.platform}-${process.arch}`);return(0,d.existsSync)((0,e.join)(b,"pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Release","pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Debug","pty.node"))}(b)){c.push(`${b}: missing native assets`);continue}return{nodePtyModule:("u">typeof require?require:Function("return require")())((0,e.join)(b,"lib","index.js")),packageRoot:b}}catch(a){c.push(`${f}: ${a instanceof Error?a.message:String(a)}`)}}throw Error(`Failed to load node-pty with native assets. Tried: ${c.join(" | ")||"no candidate roots"}`)}();try{let a=(0,e.join)(q,"prebuilds",`${process.platform}-${process.arch}`,"spawn-helper");if((0,d.existsSync)(a)){let b=(0,d.statSync)(a);(73&b.mode)==0&&((0,d.chmodSync)(a,493|b.mode),console.log("[pty] Fixed spawn-helper permissions:",a))}}catch(a){console.warn("[pty] Could not check spawn-helper:",a)}let r=b||process.env.GSD_WEB_PROJECT_CWD||process.cwd(),s=function(a,b,c=[]){if(!b){let a="win32"===process.platform?"powershell.exe":process.env.SHELL||"/bin/zsh";return{executable:a,args:[],label:(0,e.basename)(a)}}if("gsd"===b)try{let b=(0,f.N)({packageRoot:process.env.GSD_WEB_PACKAGE_ROOT||process.cwd(),cwd:a,execPath:process.execPath,hostKind:process.env.GSD_WEB_HOST_KIND,mode:"interactive",messages:c});return{executable:b.command,args:b.args,label:"gsd"}}catch(a){console.warn("[pty] Falling back to PATH-resolved gsd:",a instanceof Error?a.message:String(a))}return{executable:b,args:c,label:(0,e.basename)(b)}}(r,c,g);console.log("[pty] Spawning command:",s.label,"cwd:",r,"node-pty:",q);let t={};for(let[a,b]of Object.entries(process.env))void 0===b||"gsd"!==c&&a.startsWith("GSD_WEB_")||(t[a]=b);t.TERM="xterm-256color",t.COLORTERM="truecolor",t.HISTFILE="/dev/null",t.HISTSIZE="0",t.SAVEHIST="0",t.LESSHISTFILE="/dev/null",t.NODE_REPL_HISTORY="/dev/null",c&&(t.GSD_WEB_PTY="1");try{j=p.spawn(s.executable,s.args,{name:"xterm-256color",cols:120,rows:30,cwd:r,env:t}),console.log("[pty] Spawned pid:",j.pid)}catch(a){throw console.error("[pty] Spawn failed:",a),console.error("[pty] Command:",s.executable,"Args:",s.args,"CWD:",r),console.error("[pty] CWD exists:",(0,d.existsSync)(r)),a}let u={id:a,pty:j,listeners:new Set,alive:!0,buffer:[],bufferedBytes:0};return j.onData(a=>{for(let b of(k(u,a),u.listeners))try{b(a)}catch{}}),j.onExit(({exitCode:a,signal:b})=>{u.alive=!1;let c=`\r
1
+ "use strict";(()=>{var a={};a.id=8898,a.ids=[8898],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},29233:(a,b,c)=>{c.d(b,{B3:()=>o,GW:()=>s,ME:()=>n,Q$:()=>m,ch:()=>r,jG:()=>p,lx:()=>q});var d=c(73024),e=c(76760),f=c(52813);let g="__gsd_pty_sessions__",h="__gsd_pty_cleanup_installed__";function i(){let a=globalThis;return a[g]||(a[g]=new Map),a[g]}function j(a){return Buffer.byteLength(a,"utf8")}function k(a,b){if(b)for(a.buffer.push(b),a.bufferedBytes+=j(b);a.bufferedBytes>1048576&&a.buffer.length>1;){let b=a.buffer.shift();if(!b)break;a.bufferedBytes-=j(b)}}let l=new Set(["gsd",process.env.SHELL||"/bin/zsh","/bin/bash","/bin/zsh","/bin/sh"]);function m(a){return!a||l.has(a)}function n(a,b,c,g=[]){let j;if(!function(){let a=globalThis;if(a[h])return;a[h]=!0;let b=()=>{let a=i();for(let[b,c]of a.entries()){c.alive=!1;try{c.pty.kill()}catch{}c.listeners.clear(),a.delete(b)}};process.once("exit",b),process.once("SIGINT",()=>{b(),process.exit(130)}),process.once("SIGTERM",()=>{b(),process.exit(143)}),process.once("SIGHUP",()=>{b(),process.exit(129)})}(),!m(c))throw Error(`Command not allowed: ${c}`);let l=i(),o=l.get(a);if(o?.alive)return o;o&&l.delete(a);let{nodePtyModule:p,packageRoot:q}=function(){let a,b,c=[];for(let f of((a=new Set).add(process.cwd()),(b=process.env.GSD_WEB_PACKAGE_ROOT)&&(a.add(b),a.add((0,e.join)(b,"dist","web","standalone")),a.add((0,e.join)(b,"web"))),Array.from(a))){let a=(0,e.join)(f,"node_modules","node-pty","package.json");if(!(0,d.existsSync)(a)){c.push(`${f}: node-pty not found`);continue}try{let b=(0,e.dirname)(a);if(!function(a){let b=(0,e.join)(a,"prebuilds",`${process.platform}-${process.arch}`);return(0,d.existsSync)((0,e.join)(b,"pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Release","pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Debug","pty.node"))}(b)){c.push(`${b}: missing native assets`);continue}return{nodePtyModule:("u">typeof require?require:Function("return require")())((0,e.join)(b,"lib","index.js")),packageRoot:b}}catch(a){c.push(`${f}: ${a instanceof Error?a.message:String(a)}`)}}throw Error(`Failed to load node-pty with native assets. Tried: ${c.join(" | ")||"no candidate roots"}`)}();try{let a=(0,e.join)(q,"prebuilds",`${process.platform}-${process.arch}`,"spawn-helper");if((0,d.existsSync)(a)){let b=(0,d.statSync)(a);(73&b.mode)==0&&((0,d.chmodSync)(a,493|b.mode),console.log("[pty] Fixed spawn-helper permissions:",a))}}catch(a){console.warn("[pty] Could not check spawn-helper:",a)}let r=b||process.env.GSD_WEB_PROJECT_CWD||process.cwd(),s=function(a,b,c=[]){if(!b){let a="win32"===process.platform?"powershell.exe":process.env.SHELL||"/bin/zsh";return{executable:a,args:[],label:(0,e.basename)(a)}}if("gsd"===b)try{let b=(0,f.N)({packageRoot:process.env.GSD_WEB_PACKAGE_ROOT||process.cwd(),cwd:a,execPath:process.execPath,hostKind:process.env.GSD_WEB_HOST_KIND,mode:"interactive",messages:c});return{executable:b.command,args:b.args,label:"gsd"}}catch(a){console.warn("[pty] Falling back to PATH-resolved gsd:",a instanceof Error?a.message:String(a))}return{executable:b,args:c,label:(0,e.basename)(b)}}(r,c,g);console.log("[pty] Spawning command:",s.label,"cwd:",r,"node-pty:",q);let t={};for(let[a,b]of Object.entries(process.env))void 0===b||"gsd"!==c&&a.startsWith("GSD_WEB_")||(t[a]=b);t.TERM="xterm-256color",t.COLORTERM="truecolor",t.HISTFILE="/dev/null",t.HISTSIZE="0",t.SAVEHIST="0",t.LESSHISTFILE="/dev/null",t.NODE_REPL_HISTORY="/dev/null",c&&(t.GSD_WEB_PTY="1");try{j=p.spawn(s.executable,s.args,{name:"xterm-256color",cols:120,rows:30,cwd:r,env:t}),console.log("[pty] Spawned pid:",j.pid)}catch(a){throw console.error("[pty] Spawn failed:",a),console.error("[pty] Command:",s.executable,"Args:",s.args,"CWD:",r),console.error("[pty] CWD exists:",(0,d.existsSync)(r)),a}let u={id:a,pty:j,listeners:new Set,alive:!0,buffer:[],bufferedBytes:0};return j.onData(a=>{for(let b of(k(u,a),u.listeners))try{b(a)}catch{}}),j.onExit(({exitCode:a,signal:b})=>{u.alive=!1;let c=`\r
2
2
  \x1b[90m[Process exited with code ${a}${b?`, signal ${b}`:""}]\x1b[0m\r
3
- `;for(let a of(k(u,c),u.listeners))try{a(c)}catch{}}),l.set(a,u),u}function o(a,b){let c=i().get(a);return!!c?.alive&&(c.pty.write(b),!0)}function p(a,b,c){let d=i().get(a);if(!d?.alive)return!1;try{return d.pty.resize(b,c),!0}catch{return!1}}function q(a){let b=i(),c=b.get(a);if(!c)return!1;c.alive=!1;try{c.pty.kill()}catch{}return c.listeners.clear(),b.delete(a),!0}function r(a,b){let c=i().get(a);if(!c)return null;let d=c.buffer.slice();for(let a of(c.listeners.add(b),d))try{b(a)}catch{return c.listeners.delete(b),null}return()=>{c.listeners.delete(b)}}function s(){return Array.from(i().values()).map(a=>({id:a.id,alive:a.alive,pid:a.pty.pid}))}},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65094:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>I,patchFetch:()=>H,routeModule:()=>D,serverHooks:()=>G,workAsyncStorage:()=>E,workUnitAsyncStorage:()=>F});var d={};c.r(d),c.d(d,{DELETE:()=>C,GET:()=>A,POST:()=>B,dynamic:()=>y,runtime:()=>x});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(29233),w=c(75433);let x="nodejs",y="force-dynamic",z=globalThis;async function A(){return Response.json({sessions:(0,v.GW)()})}async function B(a){let b,c=(0,w.jL)(a),d=`term-${z.__gsd_pty_next_index__++}`;try{b=(await a.json()).command}catch{}return b&&!(0,v.Q$)(b)?Response.json({error:`Command not allowed: ${b}`},{status:403}):((0,v.ME)(d,c,b),Response.json({id:d}))}async function C(a){let b=new URL(a.url).searchParams.get("id");if(!b)return Response.json({error:"id is required"},{status:400});let c=(0,v.lx)(b);return Response.json({ok:c,id:b})}z.__gsd_pty_next_index__||(z.__gsd_pty_next_index__=1);let D=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/terminal/sessions/route",pathname:"/api/terminal/sessions",filename:"route",bundlePath:"app/api/terminal/sessions/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/terminal/sessions/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:E,workUnitAsyncStorage:F,serverHooks:G}=D;function H(){return(0,g.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:F})}async function I(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),D.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/terminal/sessions/route";"/index"===d&&(d="/");let e=await D.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||D.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===D.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await D.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>D.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>D.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await D.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await D.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await D.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},70564:a=>{a.exports=require("@gsd/native")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,7020],()=>b(b.s=65094));module.exports=c})();
3
+ `;for(let a of(k(u,c),u.listeners))try{a(c)}catch{}}),l.set(a,u),u}function o(a,b){let c=i().get(a);return!!c?.alive&&(c.pty.write(b),!0)}function p(a,b,c){let d=i().get(a);if(!d?.alive)return!1;try{return d.pty.resize(b,c),!0}catch{return!1}}function q(a){let b=i(),c=b.get(a);if(!c)return!1;c.alive=!1;try{c.pty.kill()}catch{}return c.listeners.clear(),b.delete(a),!0}function r(a,b){let c=i().get(a);if(!c)return null;let d=c.buffer.slice();for(let a of(c.listeners.add(b),d))try{b(a)}catch{return c.listeners.delete(b),null}return()=>{c.listeners.delete(b)}}function s(){return Array.from(i().values()).map(a=>({id:a.id,alive:a.alive,pid:a.pty.pid}))}},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65094:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>I,patchFetch:()=>H,routeModule:()=>D,serverHooks:()=>G,workAsyncStorage:()=>E,workUnitAsyncStorage:()=>F});var d={};c.r(d),c.d(d,{DELETE:()=>C,GET:()=>A,POST:()=>B,dynamic:()=>y,runtime:()=>x});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(29233),w=c(7712);let x="nodejs",y="force-dynamic",z=globalThis;async function A(){return Response.json({sessions:(0,v.GW)()})}async function B(a){let b,c=(0,w.jL)(a),d=`term-${z.__gsd_pty_next_index__++}`;try{b=(await a.json()).command}catch{}return b&&!(0,v.Q$)(b)?Response.json({error:`Command not allowed: ${b}`},{status:403}):((0,v.ME)(d,c,b),Response.json({id:d}))}async function C(a){let b=new URL(a.url).searchParams.get("id");if(!b)return Response.json({error:"id is required"},{status:400});let c=(0,v.lx)(b);return Response.json({ok:c,id:b})}z.__gsd_pty_next_index__||(z.__gsd_pty_next_index__=1);let D=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/terminal/sessions/route",pathname:"/api/terminal/sessions",filename:"route",bundlePath:"app/api/terminal/sessions/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/terminal/sessions/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:E,workUnitAsyncStorage:F,serverHooks:G}=D;function H(){return(0,g.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:F})}async function I(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),D.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/terminal/sessions/route";"/index"===d&&(d="/");let e=await D.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||D.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===D.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await D.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>D.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>D.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await D.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await D.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await D.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},70564:a=>{a.exports=require("@gsd/native")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=65094));module.exports=c})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../../../node_modules/@gsd/native","../../../../../../../package.json","../../../../../../../packages/native/dist/ast/index.js","../../../../../../../packages/native/dist/clipboard/index.js","../../../../../../../packages/native/dist/diff/index.js","../../../../../../../packages/native/dist/fd/index.js","../../../../../../../packages/native/dist/glob/index.js","../../../../../../../packages/native/dist/grep/index.js","../../../../../../../packages/native/dist/gsd-parser/index.js","../../../../../../../packages/native/dist/highlight/index.js","../../../../../../../packages/native/dist/html/index.js","../../../../../../../packages/native/dist/image/index.js","../../../../../../../packages/native/dist/image/types.js","../../../../../../../packages/native/dist/index.js","../../../../../../../packages/native/dist/json-parse/index.js","../../../../../../../packages/native/dist/native.js","../../../../../../../packages/native/dist/ps/index.js","../../../../../../../packages/native/dist/stream-process/index.js","../../../../../../../packages/native/dist/text/index.js","../../../../../../../packages/native/dist/text/types.js","../../../../../../../packages/native/dist/truncate/index.js","../../../../../../../packages/native/dist/ttsr/index.js","../../../../../../../packages/native/dist/xxhash/index.js","../../../../../../../packages/native/package.json","../../../../../../../packages/pi-ai/package.json","../../../../../../../src/resources/extensions/gsd/onboarding-state.ts","../../../../../../../src/resources/extensions/gsd/package.json","../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/167.js","../../../../chunks/4741.js","../../../../chunks/7020.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
1
+ {"version":1,"files":["../../../../../../../node_modules/@gsd/native","../../../../../../../package.json","../../../../../../../packages/native/dist/ast/index.js","../../../../../../../packages/native/dist/clipboard/index.js","../../../../../../../packages/native/dist/diff/index.js","../../../../../../../packages/native/dist/fd/index.js","../../../../../../../packages/native/dist/glob/index.js","../../../../../../../packages/native/dist/grep/index.js","../../../../../../../packages/native/dist/gsd-parser/index.js","../../../../../../../packages/native/dist/highlight/index.js","../../../../../../../packages/native/dist/html/index.js","../../../../../../../packages/native/dist/image/index.js","../../../../../../../packages/native/dist/image/types.js","../../../../../../../packages/native/dist/index.js","../../../../../../../packages/native/dist/json-parse/index.js","../../../../../../../packages/native/dist/native.js","../../../../../../../packages/native/dist/ps/index.js","../../../../../../../packages/native/dist/stream-process/index.js","../../../../../../../packages/native/dist/text/index.js","../../../../../../../packages/native/dist/text/types.js","../../../../../../../packages/native/dist/truncate/index.js","../../../../../../../packages/native/dist/ttsr/index.js","../../../../../../../packages/native/dist/xxhash/index.js","../../../../../../../packages/native/package.json","../../../../../../../packages/pi-ai/package.json","../../../../../../../src/resources/extensions/gsd/onboarding-state.ts","../../../../../../../src/resources/extensions/gsd/package.json","../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/167.js","../../../../chunks/4741.js","../../../../chunks/6897.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
@@ -1,7 +1,7 @@
1
- "use strict";(()=>{var a={};a.id=5673,a.ids=[5673],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},29233:(a,b,c)=>{c.d(b,{B3:()=>o,GW:()=>s,ME:()=>n,Q$:()=>m,ch:()=>r,jG:()=>p,lx:()=>q});var d=c(73024),e=c(76760),f=c(85534);let g="__gsd_pty_sessions__",h="__gsd_pty_cleanup_installed__";function i(){let a=globalThis;return a[g]||(a[g]=new Map),a[g]}function j(a){return Buffer.byteLength(a,"utf8")}function k(a,b){if(b)for(a.buffer.push(b),a.bufferedBytes+=j(b);a.bufferedBytes>1048576&&a.buffer.length>1;){let b=a.buffer.shift();if(!b)break;a.bufferedBytes-=j(b)}}let l=new Set(["gsd",process.env.SHELL||"/bin/zsh","/bin/bash","/bin/zsh","/bin/sh"]);function m(a){return!a||l.has(a)}function n(a,b,c,g=[]){let j;if(!function(){let a=globalThis;if(a[h])return;a[h]=!0;let b=()=>{let a=i();for(let[b,c]of a.entries()){c.alive=!1;try{c.pty.kill()}catch{}c.listeners.clear(),a.delete(b)}};process.once("exit",b),process.once("SIGINT",()=>{b(),process.exit(130)}),process.once("SIGTERM",()=>{b(),process.exit(143)}),process.once("SIGHUP",()=>{b(),process.exit(129)})}(),!m(c))throw Error(`Command not allowed: ${c}`);let l=i(),o=l.get(a);if(o?.alive)return o;o&&l.delete(a);let{nodePtyModule:p,packageRoot:q}=function(){let a,b,c=[];for(let f of((a=new Set).add(process.cwd()),(b=process.env.GSD_WEB_PACKAGE_ROOT)&&(a.add(b),a.add((0,e.join)(b,"dist","web","standalone")),a.add((0,e.join)(b,"web"))),Array.from(a))){let a=(0,e.join)(f,"node_modules","node-pty","package.json");if(!(0,d.existsSync)(a)){c.push(`${f}: node-pty not found`);continue}try{let b=(0,e.dirname)(a);if(!function(a){let b=(0,e.join)(a,"prebuilds",`${process.platform}-${process.arch}`);return(0,d.existsSync)((0,e.join)(b,"pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Release","pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Debug","pty.node"))}(b)){c.push(`${b}: missing native assets`);continue}return{nodePtyModule:("u">typeof require?require:Function("return require")())((0,e.join)(b,"lib","index.js")),packageRoot:b}}catch(a){c.push(`${f}: ${a instanceof Error?a.message:String(a)}`)}}throw Error(`Failed to load node-pty with native assets. Tried: ${c.join(" | ")||"no candidate roots"}`)}();try{let a=(0,e.join)(q,"prebuilds",`${process.platform}-${process.arch}`,"spawn-helper");if((0,d.existsSync)(a)){let b=(0,d.statSync)(a);(73&b.mode)==0&&((0,d.chmodSync)(a,493|b.mode),console.log("[pty] Fixed spawn-helper permissions:",a))}}catch(a){console.warn("[pty] Could not check spawn-helper:",a)}let r=b||process.env.GSD_WEB_PROJECT_CWD||process.cwd(),s=function(a,b,c=[]){if(!b){let a="win32"===process.platform?"powershell.exe":process.env.SHELL||"/bin/zsh";return{executable:a,args:[],label:(0,e.basename)(a)}}if("gsd"===b)try{let b=(0,f.N)({packageRoot:process.env.GSD_WEB_PACKAGE_ROOT||process.cwd(),cwd:a,execPath:process.execPath,hostKind:process.env.GSD_WEB_HOST_KIND,mode:"interactive",messages:c});return{executable:b.command,args:b.args,label:"gsd"}}catch(a){console.warn("[pty] Falling back to PATH-resolved gsd:",a instanceof Error?a.message:String(a))}return{executable:b,args:c,label:(0,e.basename)(b)}}(r,c,g);console.log("[pty] Spawning command:",s.label,"cwd:",r,"node-pty:",q);let t={};for(let[a,b]of Object.entries(process.env))void 0===b||"gsd"!==c&&a.startsWith("GSD_WEB_")||(t[a]=b);t.TERM="xterm-256color",t.COLORTERM="truecolor",t.HISTFILE="/dev/null",t.HISTSIZE="0",t.SAVEHIST="0",t.LESSHISTFILE="/dev/null",t.NODE_REPL_HISTORY="/dev/null",c&&(t.GSD_WEB_PTY="1");try{j=p.spawn(s.executable,s.args,{name:"xterm-256color",cols:120,rows:30,cwd:r,env:t}),console.log("[pty] Spawned pid:",j.pid)}catch(a){throw console.error("[pty] Spawn failed:",a),console.error("[pty] Command:",s.executable,"Args:",s.args,"CWD:",r),console.error("[pty] CWD exists:",(0,d.existsSync)(r)),a}let u={id:a,pty:j,listeners:new Set,alive:!0,buffer:[],bufferedBytes:0};return j.onData(a=>{for(let b of(k(u,a),u.listeners))try{b(a)}catch{}}),j.onExit(({exitCode:a,signal:b})=>{u.alive=!1;let c=`\r
1
+ "use strict";(()=>{var a={};a.id=5673,a.ids=[5673],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},29233:(a,b,c)=>{c.d(b,{B3:()=>o,GW:()=>s,ME:()=>n,Q$:()=>m,ch:()=>r,jG:()=>p,lx:()=>q});var d=c(73024),e=c(76760),f=c(52813);let g="__gsd_pty_sessions__",h="__gsd_pty_cleanup_installed__";function i(){let a=globalThis;return a[g]||(a[g]=new Map),a[g]}function j(a){return Buffer.byteLength(a,"utf8")}function k(a,b){if(b)for(a.buffer.push(b),a.bufferedBytes+=j(b);a.bufferedBytes>1048576&&a.buffer.length>1;){let b=a.buffer.shift();if(!b)break;a.bufferedBytes-=j(b)}}let l=new Set(["gsd",process.env.SHELL||"/bin/zsh","/bin/bash","/bin/zsh","/bin/sh"]);function m(a){return!a||l.has(a)}function n(a,b,c,g=[]){let j;if(!function(){let a=globalThis;if(a[h])return;a[h]=!0;let b=()=>{let a=i();for(let[b,c]of a.entries()){c.alive=!1;try{c.pty.kill()}catch{}c.listeners.clear(),a.delete(b)}};process.once("exit",b),process.once("SIGINT",()=>{b(),process.exit(130)}),process.once("SIGTERM",()=>{b(),process.exit(143)}),process.once("SIGHUP",()=>{b(),process.exit(129)})}(),!m(c))throw Error(`Command not allowed: ${c}`);let l=i(),o=l.get(a);if(o?.alive)return o;o&&l.delete(a);let{nodePtyModule:p,packageRoot:q}=function(){let a,b,c=[];for(let f of((a=new Set).add(process.cwd()),(b=process.env.GSD_WEB_PACKAGE_ROOT)&&(a.add(b),a.add((0,e.join)(b,"dist","web","standalone")),a.add((0,e.join)(b,"web"))),Array.from(a))){let a=(0,e.join)(f,"node_modules","node-pty","package.json");if(!(0,d.existsSync)(a)){c.push(`${f}: node-pty not found`);continue}try{let b=(0,e.dirname)(a);if(!function(a){let b=(0,e.join)(a,"prebuilds",`${process.platform}-${process.arch}`);return(0,d.existsSync)((0,e.join)(b,"pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Release","pty.node"))||(0,d.existsSync)((0,e.join)(a,"build","Debug","pty.node"))}(b)){c.push(`${b}: missing native assets`);continue}return{nodePtyModule:("u">typeof require?require:Function("return require")())((0,e.join)(b,"lib","index.js")),packageRoot:b}}catch(a){c.push(`${f}: ${a instanceof Error?a.message:String(a)}`)}}throw Error(`Failed to load node-pty with native assets. Tried: ${c.join(" | ")||"no candidate roots"}`)}();try{let a=(0,e.join)(q,"prebuilds",`${process.platform}-${process.arch}`,"spawn-helper");if((0,d.existsSync)(a)){let b=(0,d.statSync)(a);(73&b.mode)==0&&((0,d.chmodSync)(a,493|b.mode),console.log("[pty] Fixed spawn-helper permissions:",a))}}catch(a){console.warn("[pty] Could not check spawn-helper:",a)}let r=b||process.env.GSD_WEB_PROJECT_CWD||process.cwd(),s=function(a,b,c=[]){if(!b){let a="win32"===process.platform?"powershell.exe":process.env.SHELL||"/bin/zsh";return{executable:a,args:[],label:(0,e.basename)(a)}}if("gsd"===b)try{let b=(0,f.N)({packageRoot:process.env.GSD_WEB_PACKAGE_ROOT||process.cwd(),cwd:a,execPath:process.execPath,hostKind:process.env.GSD_WEB_HOST_KIND,mode:"interactive",messages:c});return{executable:b.command,args:b.args,label:"gsd"}}catch(a){console.warn("[pty] Falling back to PATH-resolved gsd:",a instanceof Error?a.message:String(a))}return{executable:b,args:c,label:(0,e.basename)(b)}}(r,c,g);console.log("[pty] Spawning command:",s.label,"cwd:",r,"node-pty:",q);let t={};for(let[a,b]of Object.entries(process.env))void 0===b||"gsd"!==c&&a.startsWith("GSD_WEB_")||(t[a]=b);t.TERM="xterm-256color",t.COLORTERM="truecolor",t.HISTFILE="/dev/null",t.HISTSIZE="0",t.SAVEHIST="0",t.LESSHISTFILE="/dev/null",t.NODE_REPL_HISTORY="/dev/null",c&&(t.GSD_WEB_PTY="1");try{j=p.spawn(s.executable,s.args,{name:"xterm-256color",cols:120,rows:30,cwd:r,env:t}),console.log("[pty] Spawned pid:",j.pid)}catch(a){throw console.error("[pty] Spawn failed:",a),console.error("[pty] Command:",s.executable,"Args:",s.args,"CWD:",r),console.error("[pty] CWD exists:",(0,d.existsSync)(r)),a}let u={id:a,pty:j,listeners:new Set,alive:!0,buffer:[],bufferedBytes:0};return j.onData(a=>{for(let b of(k(u,a),u.listeners))try{b(a)}catch{}}),j.onExit(({exitCode:a,signal:b})=>{u.alive=!1;let c=`\r
2
2
  \x1b[90m[Process exited with code ${a}${b?`, signal ${b}`:""}]\x1b[0m\r
3
- `;for(let a of(k(u,c),u.listeners))try{a(c)}catch{}}),l.set(a,u),u}function o(a,b){let c=i().get(a);return!!c?.alive&&(c.pty.write(b),!0)}function p(a,b,c){let d=i().get(a);if(!d?.alive)return!1;try{return d.pty.resize(b,c),!0}catch{return!1}}function q(a){let b=i(),c=b.get(a);if(!c)return!1;c.alive=!1;try{c.pty.kill()}catch{}return c.listeners.clear(),b.delete(a),!0}function r(a,b){let c=i().get(a);if(!c)return null;let d=c.buffer.slice();for(let a of(c.listeners.add(b),d))try{b(a)}catch{return c.listeners.delete(b),null}return()=>{c.listeners.delete(b)}}function s(){return Array.from(i().values()).map(a=>({id:a.id,alive:a.alive,pid:a.pty.pid}))}},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},49679:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{GET:()=>A,dynamic:()=>y,runtime:()=>x});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(29233),w=c(75433);let x="nodejs",y="force-dynamic",z=new TextEncoder;async function A(a){let b=new URL(a.url),c=b.searchParams.get("id")||"default",d=b.searchParams.get("command")||void 0,e=b.searchParams.getAll("arg"),f=(0,w.jL)(a);if(!(0,v.Q$)(d))return Response.json({error:`Command not allowed: ${d}`},{status:403});try{(0,v.ME)(c,f,d,e)}catch(a){return console.error("[pty-stream] Failed to create session:",a),Response.json({error:"Failed to create PTY session",detail:String(a)},{status:500})}let g=null,h=!1;return new Response(new ReadableStream({start(b){b.enqueue(z.encode(`data: ${JSON.stringify({type:"connected",sessionId:c})}
3
+ `;for(let a of(k(u,c),u.listeners))try{a(c)}catch{}}),l.set(a,u),u}function o(a,b){let c=i().get(a);return!!c?.alive&&(c.pty.write(b),!0)}function p(a,b,c){let d=i().get(a);if(!d?.alive)return!1;try{return d.pty.resize(b,c),!0}catch{return!1}}function q(a){let b=i(),c=b.get(a);if(!c)return!1;c.alive=!1;try{c.pty.kill()}catch{}return c.listeners.clear(),b.delete(a),!0}function r(a,b){let c=i().get(a);if(!c)return null;let d=c.buffer.slice();for(let a of(c.listeners.add(b),d))try{b(a)}catch{return c.listeners.delete(b),null}return()=>{c.listeners.delete(b)}}function s(){return Array.from(i().values()).map(a=>({id:a.id,alive:a.alive,pid:a.pty.pid}))}},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},49679:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{GET:()=>A,dynamic:()=>y,runtime:()=>x});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(29233),w=c(7712);let x="nodejs",y="force-dynamic",z=new TextEncoder;async function A(a){let b=new URL(a.url),c=b.searchParams.get("id")||"default",d=b.searchParams.get("command")||void 0,e=b.searchParams.getAll("arg"),f=(0,w.jL)(a);if(!(0,v.Q$)(d))return Response.json({error:`Command not allowed: ${d}`},{status:403});try{(0,v.ME)(c,f,d,e)}catch(a){return console.error("[pty-stream] Failed to create session:",a),Response.json({error:"Failed to create PTY session",detail:String(a)},{status:500})}let g=null,h=!1;return new Response(new ReadableStream({start(b){b.enqueue(z.encode(`data: ${JSON.stringify({type:"connected",sessionId:c})}
4
4
 
5
5
  `)),g=(0,v.ch)(c,a=>{if(!h)try{b.enqueue(z.encode(`data: ${JSON.stringify({type:"output",data:a})}
6
6
 
7
- `))}catch{}}),a.signal.addEventListener("abort",()=>{if(!h){h=!0,g?.(),g=null;try{b.close()}catch{}}},{once:!0})},cancel(){h||(h=!0,g?.(),g=null)}}),{headers:{"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/terminal/stream/route",pathname:"/api/terminal/stream",filename:"route",bundlePath:"app/api/terminal/stream/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/terminal/stream/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/terminal/stream/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70564:a=>{a.exports=require("@gsd/native")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,7020],()=>b(b.s=49679));module.exports=c})();
7
+ `))}catch{}}),a.signal.addEventListener("abort",()=>{if(!h){h=!0,g?.(),g=null;try{b.close()}catch{}}},{once:!0})},cancel(){h||(h=!0,g?.(),g=null)}}),{headers:{"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/terminal/stream/route",pathname:"/api/terminal/stream",filename:"route",bundlePath:"app/api/terminal/stream/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/terminal/stream/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/terminal/stream/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70564:a=>{a.exports=require("@gsd/native")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=49679));module.exports=c})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../../../node_modules/@gsd/native","../../../../../../../package.json","../../../../../../../packages/native/dist/ast/index.js","../../../../../../../packages/native/dist/clipboard/index.js","../../../../../../../packages/native/dist/diff/index.js","../../../../../../../packages/native/dist/fd/index.js","../../../../../../../packages/native/dist/glob/index.js","../../../../../../../packages/native/dist/grep/index.js","../../../../../../../packages/native/dist/gsd-parser/index.js","../../../../../../../packages/native/dist/highlight/index.js","../../../../../../../packages/native/dist/html/index.js","../../../../../../../packages/native/dist/image/index.js","../../../../../../../packages/native/dist/image/types.js","../../../../../../../packages/native/dist/index.js","../../../../../../../packages/native/dist/json-parse/index.js","../../../../../../../packages/native/dist/native.js","../../../../../../../packages/native/dist/ps/index.js","../../../../../../../packages/native/dist/stream-process/index.js","../../../../../../../packages/native/dist/text/index.js","../../../../../../../packages/native/dist/text/types.js","../../../../../../../packages/native/dist/truncate/index.js","../../../../../../../packages/native/dist/ttsr/index.js","../../../../../../../packages/native/dist/xxhash/index.js","../../../../../../../packages/native/package.json","../../../../../../../packages/pi-ai/package.json","../../../../../../../src/resources/extensions/gsd/onboarding-state.ts","../../../../../../../src/resources/extensions/gsd/package.json","../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/167.js","../../../../chunks/4741.js","../../../../chunks/7020.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
1
+ {"version":1,"files":["../../../../../../../node_modules/@gsd/native","../../../../../../../package.json","../../../../../../../packages/native/dist/ast/index.js","../../../../../../../packages/native/dist/clipboard/index.js","../../../../../../../packages/native/dist/diff/index.js","../../../../../../../packages/native/dist/fd/index.js","../../../../../../../packages/native/dist/glob/index.js","../../../../../../../packages/native/dist/grep/index.js","../../../../../../../packages/native/dist/gsd-parser/index.js","../../../../../../../packages/native/dist/highlight/index.js","../../../../../../../packages/native/dist/html/index.js","../../../../../../../packages/native/dist/image/index.js","../../../../../../../packages/native/dist/image/types.js","../../../../../../../packages/native/dist/index.js","../../../../../../../packages/native/dist/json-parse/index.js","../../../../../../../packages/native/dist/native.js","../../../../../../../packages/native/dist/ps/index.js","../../../../../../../packages/native/dist/stream-process/index.js","../../../../../../../packages/native/dist/text/index.js","../../../../../../../packages/native/dist/text/types.js","../../../../../../../packages/native/dist/truncate/index.js","../../../../../../../packages/native/dist/ttsr/index.js","../../../../../../../packages/native/dist/xxhash/index.js","../../../../../../../packages/native/package.json","../../../../../../../packages/pi-ai/package.json","../../../../../../../src/resources/extensions/gsd/onboarding-state.ts","../../../../../../../src/resources/extensions/gsd/package.json","../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/167.js","../../../../chunks/4741.js","../../../../chunks/6897.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=4468,a.ids=[4468],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70564:a=>{a.exports=require("@gsd/native")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},88133:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>O,patchFetch:()=>N,routeModule:()=>J,serverHooks:()=>M,workAsyncStorage:()=>K,workUnitAsyncStorage:()=>L});var d={};c.r(d),c.d(d,{GET:()=>H,POST:()=>I,dynamic:()=>G,runtime:()=>F});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(31421),w=c(73024),x=c(76760),y=c(73136),z=c(75433),A=c(70016);let B="GSD_UNDO_MODULE",C="GSD_PATHS_MODULE";async function D(a){let b,{projectCwd:d}=(0,z.eG)(void 0,a),e=(0,x.join)(d,".gsd"),f=(0,x.join)(e,"completed-units.json"),g={lastUnitType:null,lastUnitId:null,lastUnitKey:null,completedCount:0,commits:[]};if(!(0,w.existsSync)(f))return g;try{b=JSON.parse((0,w.readFileSync)(f,"utf-8"))}catch{return g}if(!Array.isArray(b)||0===b.length)return g;let h=b[b.length-1],i=h.type??null,j=h.id??null,k=h.key??(i&&j?`${i}:${j}`:null),l=(0,x.join)(e,"activity"),m=[];if(i&&j&&(0,w.existsSync)(l))try{let{readdirSync:a}=await Promise.resolve().then(c.t.bind(c,73024,23)),b=j.replace(/\//g,"-"),d=a(l).filter(a=>a.includes(i)&&a.includes(b)&&a.endsWith(".jsonl")).sort().reverse();if(d.length>0){let a=(0,w.readFileSync)((0,x.join)(l,d[0]),"utf-8"),b=/\b[0-9a-f]{7,40}\b/g,c=new Set;for(let d of a.split("\n"))if(d.trim())try{let a=JSON.parse(d);if(a?.message?.content){for(let d of Array.isArray(a.message.content)?a.message.content:[])if("tool_result"===d.type&&"string"==typeof d.content){let a=d.content.match(b);if(a)for(let b of a)b.length>=7&&!c.has(b)&&(c.add(b),m.push(b))}}}catch{}}}catch{}return{lastUnitType:i,lastUnitId:j,lastUnitKey:k,completedCount:b.length,commits:m}}async function E(a){let{packageRoot:b,projectCwd:c}=(0,z.eG)(void 0,a),d=(0,x.join)(b,"src","resources","extensions","gsd","tests","resolve-ts.mjs"),e=(0,A.KW)(b,"resources/extensions/gsd/undo.ts"),f=(0,A.KW)(b,"resources/extensions/gsd/paths.ts"),g=e.modulePath,h=f.modulePath;if(!e.useCompiledJs&&(!(0,w.existsSync)(d)||!(0,w.existsSync)(g)||!(0,w.existsSync)(h)))throw Error(`undo service modules not found; checked=${d},${g},${h}`);if(e.useCompiledJs&&(!(0,w.existsSync)(g)||!(0,w.existsSync)(h)))throw Error(`undo service modules not found; checked=${g},${h}`);let i=`const { pathToFileURL } = await import("node:url"); const { existsSync, readFileSync, writeFileSync, readdirSync, unlinkSync } = await import("node:fs"); const { join } = await import("node:path"); const undoMod = await import(pathToFileURL(process.env.${B}).href); const pathsMod = await import(pathToFileURL(process.env.${C}).href); const basePath = process.env.GSD_UNDO_BASE; const gsdDir = pathsMod.gsdRoot(basePath); const completedPath = join(gsdDir, "completed-units.json"); if (!existsSync(completedPath)) { process.stdout.write(JSON.stringify({ success: false, message: "No completed units to undo" })); process.exit(0); } let entries; try { entries = JSON.parse(readFileSync(completedPath, "utf-8")); } catch { process.stdout.write(JSON.stringify({ success: false, message: "Could not parse completed-units.json" })); process.exit(0); } if (!Array.isArray(entries) || entries.length === 0) { process.stdout.write(JSON.stringify({ success: false, message: "No completed units to undo" })); process.exit(0); } const last = entries[entries.length - 1]; const unitType = last.type; const unitId = last.id; const parts = unitId ? unitId.split("/") : []; let planUpdated = false; if (unitType === "execute-task" && parts.length === 3) { const [mid, sid, tid] = parts; planUpdated = undoMod.uncheckTaskInPlan(basePath, mid, sid, tid); } let commitsReverted = 0; const activityDir = join(gsdDir, "activity"); if (existsSync(activityDir)) { const commits = undoMod.findCommitsForUnit(activityDir, unitType, unitId); if (commits.length > 0) { const { execFileSync } = await import("node:child_process"); for (const sha of commits.reverse()) { try { execFileSync("git", ["revert", "--no-commit", sha], { cwd: basePath, stdio: "pipe" }); commitsReverted++; } catch { try { execFileSync("git", ["revert", "--abort"], { cwd: basePath, stdio: "pipe" }); } catch {} break; } } } } entries.pop(); writeFileSync(completedPath, JSON.stringify(entries, null, 2), "utf-8"); const results = [\`Undone: \${unitType} (\${unitId})\`]; results.push(" - Removed from completed-units.json"); if (planUpdated) results.push(" - Unchecked task in PLAN"); if (commitsReverted > 0) { results.push(\` - Reverted \${commitsReverted} commit(s) (staged, not committed)\`); } process.stdout.write(JSON.stringify({ success: true, message: results.join("\\n") }));`,j=(0,A.vB)(b,e,(0,y.pathToFileURL)(d).href);return await new Promise((a,d)=>{(0,v.execFile)(process.execPath,[...j,"--eval",i],{cwd:b,env:{...process.env,[B]:g,[C]:h,GSD_UNDO_BASE:c},maxBuffer:2097152,windowsHide:!0},(b,c,e)=>{if(b)return void d(Error(`undo subprocess failed: ${e||b.message}`));try{a(JSON.parse(c))}catch(a){d(Error(`undo subprocess returned invalid JSON: ${a instanceof Error?a.message:String(a)}`))}})})}let F="nodejs",G="force-dynamic";async function H(a){try{let b=(0,z.jL)(a),c=await D(b);return Response.json(c,{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:a},{status:500,headers:{"Cache-Control":"no-store"}})}}async function I(a){try{let b=(0,z.jL)(a),c=await E(b);return Response.json(c,{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:a},{status:500,headers:{"Cache-Control":"no-store"}})}}let J=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/undo/route",pathname:"/api/undo",filename:"route",bundlePath:"app/api/undo/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/undo/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:K,workUnitAsyncStorage:L,serverHooks:M}=J;function N(){return(0,g.patchFetch)({workAsyncStorage:K,workUnitAsyncStorage:L})}async function O(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),J.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/undo/route";"/index"===d&&(d="/");let e=await J.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:F}=e,G=(0,k.normalizeAppPath)(d),H=!!(z.dynamicRoutes[G]||z.routes[D]),I=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(H&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[G];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await I();throw new t.NoFallbackError}}let K=null;!H||J.isDev||y||(K="/index"===(K=D)?"/":K);let L=!0===J.isDev||!H,M=H&&!L;F&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:F});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await J.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>J.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>J.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!H)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await J.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await J.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!H)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&H||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await J.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),H)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,7020],()=>b(b.s=88133));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=4468,a.ids=[4468],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70564:a=>{a.exports=require("@gsd/native")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94142:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>O,patchFetch:()=>N,routeModule:()=>J,serverHooks:()=>M,workAsyncStorage:()=>K,workUnitAsyncStorage:()=>L});var d={};c.r(d),c.d(d,{GET:()=>H,POST:()=>I,dynamic:()=>G,runtime:()=>F});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(31421),w=c(73024),x=c(76760),y=c(73136),z=c(7712),A=c(34431);let B="GSD_UNDO_MODULE",C="GSD_PATHS_MODULE";async function D(a){let b,{projectCwd:d}=(0,z.eG)(void 0,a),e=(0,x.join)(d,".gsd"),f=(0,x.join)(e,"completed-units.json"),g={lastUnitType:null,lastUnitId:null,lastUnitKey:null,completedCount:0,commits:[]};if(!(0,w.existsSync)(f))return g;try{b=JSON.parse((0,w.readFileSync)(f,"utf-8"))}catch{return g}if(!Array.isArray(b)||0===b.length)return g;let h=b[b.length-1],i=h.type??null,j=h.id??null,k=h.key??(i&&j?`${i}:${j}`:null),l=(0,x.join)(e,"activity"),m=[];if(i&&j&&(0,w.existsSync)(l))try{let{readdirSync:a}=await Promise.resolve().then(c.t.bind(c,73024,23)),b=j.replace(/\//g,"-"),d=a(l).filter(a=>a.includes(i)&&a.includes(b)&&a.endsWith(".jsonl")).sort().reverse();if(d.length>0){let a=(0,w.readFileSync)((0,x.join)(l,d[0]),"utf-8"),b=/\b[0-9a-f]{7,40}\b/g,c=new Set;for(let d of a.split("\n"))if(d.trim())try{let a=JSON.parse(d);if(a?.message?.content){for(let d of Array.isArray(a.message.content)?a.message.content:[])if("tool_result"===d.type&&"string"==typeof d.content){let a=d.content.match(b);if(a)for(let b of a)b.length>=7&&!c.has(b)&&(c.add(b),m.push(b))}}}catch{}}}catch{}return{lastUnitType:i,lastUnitId:j,lastUnitKey:k,completedCount:b.length,commits:m}}async function E(a){let{packageRoot:b,projectCwd:c}=(0,z.eG)(void 0,a),d=(0,x.join)(b,"src","resources","extensions","gsd","tests","resolve-ts.mjs"),e=(0,A.KW)(b,"resources/extensions/gsd/undo.ts"),f=(0,A.KW)(b,"resources/extensions/gsd/paths.ts"),g=e.modulePath,h=f.modulePath;if(!e.useCompiledJs&&(!(0,w.existsSync)(d)||!(0,w.existsSync)(g)||!(0,w.existsSync)(h)))throw Error(`undo service modules not found; checked=${d},${g},${h}`);if(e.useCompiledJs&&(!(0,w.existsSync)(g)||!(0,w.existsSync)(h)))throw Error(`undo service modules not found; checked=${g},${h}`);let i=`const { pathToFileURL } = await import("node:url"); const { existsSync, readFileSync, writeFileSync, readdirSync, unlinkSync } = await import("node:fs"); const { join } = await import("node:path"); const undoMod = await import(pathToFileURL(process.env.${B}).href); const pathsMod = await import(pathToFileURL(process.env.${C}).href); const basePath = process.env.GSD_UNDO_BASE; const gsdDir = pathsMod.gsdRoot(basePath); const completedPath = join(gsdDir, "completed-units.json"); if (!existsSync(completedPath)) { process.stdout.write(JSON.stringify({ success: false, message: "No completed units to undo" })); process.exit(0); } let entries; try { entries = JSON.parse(readFileSync(completedPath, "utf-8")); } catch { process.stdout.write(JSON.stringify({ success: false, message: "Could not parse completed-units.json" })); process.exit(0); } if (!Array.isArray(entries) || entries.length === 0) { process.stdout.write(JSON.stringify({ success: false, message: "No completed units to undo" })); process.exit(0); } const last = entries[entries.length - 1]; const unitType = last.type; const unitId = last.id; const parts = unitId ? unitId.split("/") : []; let planUpdated = false; if (unitType === "execute-task" && parts.length === 3) { const [mid, sid, tid] = parts; planUpdated = undoMod.uncheckTaskInPlan(basePath, mid, sid, tid); } let commitsReverted = 0; const activityDir = join(gsdDir, "activity"); if (existsSync(activityDir)) { const commits = undoMod.findCommitsForUnit(activityDir, unitType, unitId); if (commits.length > 0) { const { execFileSync } = await import("node:child_process"); for (const sha of commits.reverse()) { try { execFileSync("git", ["revert", "--no-commit", sha], { cwd: basePath, stdio: "pipe" }); commitsReverted++; } catch { try { execFileSync("git", ["revert", "--abort"], { cwd: basePath, stdio: "pipe" }); } catch {} break; } } } } entries.pop(); writeFileSync(completedPath, JSON.stringify(entries, null, 2), "utf-8"); const results = [\`Undone: \${unitType} (\${unitId})\`]; results.push(" - Removed from completed-units.json"); if (planUpdated) results.push(" - Unchecked task in PLAN"); if (commitsReverted > 0) { results.push(\` - Reverted \${commitsReverted} commit(s) (staged, not committed)\`); } process.stdout.write(JSON.stringify({ success: true, message: results.join("\\n") }));`,j=(0,A.vB)(b,e,(0,y.pathToFileURL)(d).href);return await new Promise((a,d)=>{(0,v.execFile)(process.execPath,[...j,"--eval",i],{cwd:b,env:{...process.env,[B]:g,[C]:h,GSD_UNDO_BASE:c},maxBuffer:2097152,windowsHide:!0},(b,c,e)=>{if(b)return void d(Error(`undo subprocess failed: ${e||b.message}`));try{a(JSON.parse(c))}catch(a){d(Error(`undo subprocess returned invalid JSON: ${a instanceof Error?a.message:String(a)}`))}})})}let F="nodejs",G="force-dynamic";async function H(a){try{let b=(0,z.jL)(a),c=await D(b);return Response.json(c,{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:a},{status:500,headers:{"Cache-Control":"no-store"}})}}async function I(a){try{let b=(0,z.jL)(a),c=await E(b);return Response.json(c,{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:a},{status:500,headers:{"Cache-Control":"no-store"}})}}let J=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/undo/route",pathname:"/api/undo",filename:"route",bundlePath:"app/api/undo/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/undo/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:K,workUnitAsyncStorage:L,serverHooks:M}=J;function N(){return(0,g.patchFetch)({workAsyncStorage:K,workUnitAsyncStorage:L})}async function O(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),J.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/undo/route";"/index"===d&&(d="/");let e=await J.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:F}=e,G=(0,k.normalizeAppPath)(d),H=!!(z.dynamicRoutes[G]||z.routes[D]),I=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(H&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[G];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await I();throw new t.NoFallbackError}}let K=null;!H||J.isDev||y||(K="/index"===(K=D)?"/":K);let L=!0===J.isDev||!H,M=H&&!L;F&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:F});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await J.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>J.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>J.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!H)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await J.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await J.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!H)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&H||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await J.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),H)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=94142));module.exports=c})();