gsd-pi 2.74.0-dev.b741afb → 2.74.0-dev.ffbcc03

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 (403) hide show
  1. package/dist/resources/extensions/gsd/activity-log.js +16 -0
  2. package/dist/resources/extensions/gsd/auto/loop.js +147 -10
  3. package/dist/resources/extensions/gsd/auto/phases.js +113 -3
  4. package/dist/resources/extensions/gsd/auto/session.js +10 -0
  5. package/dist/resources/extensions/gsd/auto-dispatch.js +11 -1
  6. package/dist/resources/extensions/gsd/auto-model-selection.js +51 -5
  7. package/dist/resources/extensions/gsd/auto-post-unit.js +215 -8
  8. package/dist/resources/extensions/gsd/auto-recovery.js +24 -10
  9. package/dist/resources/extensions/gsd/auto-unit-closeout.js +18 -0
  10. package/dist/resources/extensions/gsd/auto-verification.js +100 -2
  11. package/dist/resources/extensions/gsd/auto.js +28 -2
  12. package/dist/resources/extensions/gsd/bootstrap/register-extension.js +10 -1
  13. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +61 -9
  14. package/dist/resources/extensions/gsd/cache.js +16 -5
  15. package/dist/resources/extensions/gsd/commands/handlers/ops.js +5 -0
  16. package/dist/resources/extensions/gsd/commands-extract-learnings.js +225 -0
  17. package/dist/resources/extensions/gsd/commands-prefs-wizard.js +1 -1
  18. package/dist/resources/extensions/gsd/docs/preferences-reference.md +14 -1
  19. package/dist/resources/extensions/gsd/ecosystem/gsd-extension-api.js +144 -0
  20. package/dist/resources/extensions/gsd/ecosystem/loader.js +145 -0
  21. package/dist/resources/extensions/gsd/git-service.js +49 -1
  22. package/dist/resources/extensions/gsd/graph-context.js +98 -7
  23. package/dist/resources/extensions/gsd/gsd-db.js +260 -2
  24. package/dist/resources/extensions/gsd/guided-flow.js +24 -1
  25. package/dist/resources/extensions/gsd/init-wizard.js +1 -0
  26. package/dist/resources/extensions/gsd/journal.js +27 -0
  27. package/dist/resources/extensions/gsd/metrics.js +19 -0
  28. package/dist/resources/extensions/gsd/parallel-orchestrator.js +33 -1
  29. package/dist/resources/extensions/gsd/preferences-models.js +20 -3
  30. package/dist/resources/extensions/gsd/preferences-types.js +1 -0
  31. package/dist/resources/extensions/gsd/preferences-validation.js +108 -2
  32. package/dist/resources/extensions/gsd/preferences.js +26 -0
  33. package/dist/resources/extensions/gsd/safety/evidence-collector.js +15 -30
  34. package/dist/resources/extensions/gsd/slice-parallel-orchestrator.js +12 -2
  35. package/dist/resources/extensions/gsd/templates/PREFERENCES.md +18 -0
  36. package/dist/resources/extensions/gsd/tools/complete-slice.js +5 -0
  37. package/dist/resources/extensions/gsd/tools/validate-milestone.js +39 -4
  38. package/dist/resources/extensions/gsd/unit-ownership.js +1 -1
  39. package/dist/resources/extensions/gsd/uok/audit-toggle.js +7 -0
  40. package/dist/resources/extensions/gsd/uok/audit.js +40 -0
  41. package/dist/resources/extensions/gsd/uok/contracts.js +1 -0
  42. package/dist/resources/extensions/gsd/uok/execution-graph.js +179 -0
  43. package/dist/resources/extensions/gsd/uok/flags.js +29 -0
  44. package/dist/resources/extensions/gsd/uok/gate-runner.js +109 -0
  45. package/dist/resources/extensions/gsd/uok/gitops.js +53 -0
  46. package/dist/resources/extensions/gsd/uok/kernel.js +80 -0
  47. package/dist/resources/extensions/gsd/uok/loop-adapter.js +133 -0
  48. package/dist/resources/extensions/gsd/uok/model-policy.js +66 -0
  49. package/dist/resources/extensions/gsd/uok/plan-v2.js +132 -0
  50. package/dist/resources/extensions/gsd/workflow-logger.js +22 -0
  51. package/dist/resources/extensions/ttsr/ttsr-manager.js +3 -1
  52. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  53. package/dist/web/standalone/.next/BUILD_ID +1 -1
  54. package/dist/web/standalone/.next/app-path-routes-manifest.json +9 -9
  55. package/dist/web/standalone/.next/build-manifest.json +2 -2
  56. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  57. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  58. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  59. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  60. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  61. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  62. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  63. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  64. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  65. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  66. package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
  67. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  68. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  69. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  70. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  71. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  72. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  73. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  74. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +1 -1
  75. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +1 -1
  76. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +1 -1
  77. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +1 -1
  78. package/dist/web/standalone/.next/server/app/index.html +1 -1
  79. package/dist/web/standalone/.next/server/app/index.rsc +1 -1
  80. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  81. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  82. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  83. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  84. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  85. package/dist/web/standalone/.next/server/app-paths-manifest.json +9 -9
  86. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  87. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  88. package/dist/web/standalone/.next/server/middleware-manifest.json +5 -5
  89. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  90. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  91. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  92. package/package.json +1 -1
  93. package/packages/mcp-server/dist/readers/graph.d.ts +1 -1
  94. package/packages/mcp-server/dist/readers/graph.d.ts.map +1 -1
  95. package/packages/mcp-server/dist/readers/graph.js +107 -0
  96. package/packages/mcp-server/dist/readers/graph.js.map +1 -1
  97. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  98. package/packages/mcp-server/dist/workflow-tools.js +88 -6
  99. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  100. package/packages/mcp-server/src/readers/graph.test.ts +178 -0
  101. package/packages/mcp-server/src/readers/graph.ts +148 -1
  102. package/packages/mcp-server/src/workflow-tools.ts +95 -10
  103. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  104. package/packages/pi-agent-core/tsconfig.tsbuildinfo +1 -1
  105. package/packages/pi-ai/dist/index.d.ts +1 -9
  106. package/packages/pi-ai/dist/index.d.ts.map +1 -1
  107. package/packages/pi-ai/dist/index.js +1 -9
  108. package/packages/pi-ai/dist/index.js.map +1 -1
  109. package/packages/pi-ai/dist/models/capability-patches.d.ts +19 -0
  110. package/packages/pi-ai/dist/models/capability-patches.d.ts.map +1 -0
  111. package/packages/pi-ai/dist/models/capability-patches.js +36 -0
  112. package/packages/pi-ai/dist/models/capability-patches.js.map +1 -0
  113. package/packages/pi-ai/dist/{models.custom.d.ts → models/custom.d.ts} +1 -1
  114. package/packages/pi-ai/dist/models/custom.d.ts.map +1 -0
  115. package/packages/pi-ai/dist/{models.custom.js → models/custom.js} +4 -4
  116. package/packages/pi-ai/dist/models/custom.js.map +1 -0
  117. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts +1482 -0
  118. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts.map +1 -0
  119. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js +1484 -0
  120. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js.map +1 -0
  121. package/packages/pi-ai/dist/models/generated/anthropic.d.ts +377 -0
  122. package/packages/pi-ai/dist/models/generated/anthropic.d.ts.map +1 -0
  123. package/packages/pi-ai/dist/models/generated/anthropic.js +379 -0
  124. package/packages/pi-ai/dist/models/generated/anthropic.js.map +1 -0
  125. package/packages/pi-ai/dist/models/generated/azure-openai-responses.d.ts +700 -0
  126. package/packages/pi-ai/dist/models/generated/azure-openai-responses.d.ts.map +1 -0
  127. package/packages/pi-ai/dist/models/generated/azure-openai-responses.js +702 -0
  128. package/packages/pi-ai/dist/models/generated/azure-openai-responses.js.map +1 -0
  129. package/packages/pi-ai/dist/models/generated/cerebras.d.ts +71 -0
  130. package/packages/pi-ai/dist/models/generated/cerebras.d.ts.map +1 -0
  131. package/packages/pi-ai/dist/models/generated/cerebras.js +73 -0
  132. package/packages/pi-ai/dist/models/generated/cerebras.js.map +1 -0
  133. package/packages/pi-ai/dist/models/generated/github-copilot.d.ts +590 -0
  134. package/packages/pi-ai/dist/models/generated/github-copilot.d.ts.map +1 -0
  135. package/packages/pi-ai/dist/models/generated/github-copilot.js +444 -0
  136. package/packages/pi-ai/dist/models/generated/github-copilot.js.map +1 -0
  137. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts +156 -0
  138. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts.map +1 -0
  139. package/packages/pi-ai/dist/models/generated/google-antigravity.js +158 -0
  140. package/packages/pi-ai/dist/models/generated/google-antigravity.js.map +1 -0
  141. package/packages/pi-ai/dist/models/generated/google-gemini-cli.d.ts +105 -0
  142. package/packages/pi-ai/dist/models/generated/google-gemini-cli.d.ts.map +1 -0
  143. package/packages/pi-ai/dist/models/generated/google-gemini-cli.js +107 -0
  144. package/packages/pi-ai/dist/models/generated/google-gemini-cli.js.map +1 -0
  145. package/packages/pi-ai/dist/models/generated/google-vertex.d.ts +207 -0
  146. package/packages/pi-ai/dist/models/generated/google-vertex.d.ts.map +1 -0
  147. package/packages/pi-ai/dist/models/generated/google-vertex.js +209 -0
  148. package/packages/pi-ai/dist/models/generated/google-vertex.js.map +1 -0
  149. package/packages/pi-ai/dist/models/generated/google.d.ts +462 -0
  150. package/packages/pi-ai/dist/models/generated/google.d.ts.map +1 -0
  151. package/packages/pi-ai/dist/models/generated/google.js +464 -0
  152. package/packages/pi-ai/dist/models/generated/google.js.map +1 -0
  153. package/packages/pi-ai/dist/models/generated/groq.d.ts +309 -0
  154. package/packages/pi-ai/dist/models/generated/groq.d.ts.map +1 -0
  155. package/packages/pi-ai/dist/models/generated/groq.js +311 -0
  156. package/packages/pi-ai/dist/models/generated/groq.js.map +1 -0
  157. package/packages/pi-ai/dist/models/generated/huggingface.d.ts +383 -0
  158. package/packages/pi-ai/dist/models/generated/huggingface.d.ts.map +1 -0
  159. package/packages/pi-ai/dist/models/generated/huggingface.js +347 -0
  160. package/packages/pi-ai/dist/models/generated/huggingface.js.map +1 -0
  161. package/packages/pi-ai/dist/{models.generated.d.ts → models/generated/index.d.ts} +1 -1
  162. package/packages/pi-ai/dist/{models.generated.d.ts.map → models/generated/index.d.ts.map} +1 -1
  163. package/packages/pi-ai/dist/models/generated/index.js +51 -0
  164. package/packages/pi-ai/dist/models/generated/index.js.map +1 -0
  165. package/packages/pi-ai/dist/models/generated/kimi-coding.d.ts +37 -0
  166. package/packages/pi-ai/dist/models/generated/kimi-coding.d.ts.map +1 -0
  167. package/packages/pi-ai/dist/models/generated/kimi-coding.js +39 -0
  168. package/packages/pi-ai/dist/models/generated/kimi-coding.js.map +1 -0
  169. package/packages/pi-ai/dist/models/generated/minimax-cn.d.ts +105 -0
  170. package/packages/pi-ai/dist/models/generated/minimax-cn.d.ts.map +1 -0
  171. package/packages/pi-ai/dist/models/generated/minimax-cn.js +107 -0
  172. package/packages/pi-ai/dist/models/generated/minimax-cn.js.map +1 -0
  173. package/packages/pi-ai/dist/models/generated/minimax.d.ts +105 -0
  174. package/packages/pi-ai/dist/models/generated/minimax.d.ts.map +1 -0
  175. package/packages/pi-ai/dist/models/generated/minimax.js +107 -0
  176. package/packages/pi-ai/dist/models/generated/minimax.js.map +1 -0
  177. package/packages/pi-ai/dist/models/generated/mistral.d.ts +445 -0
  178. package/packages/pi-ai/dist/models/generated/mistral.d.ts.map +1 -0
  179. package/packages/pi-ai/dist/models/generated/mistral.js +447 -0
  180. package/packages/pi-ai/dist/models/generated/mistral.js.map +1 -0
  181. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts +139 -0
  182. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts.map +1 -0
  183. package/packages/pi-ai/dist/models/generated/openai-codex.js +141 -0
  184. package/packages/pi-ai/dist/models/generated/openai-codex.js.map +1 -0
  185. package/packages/pi-ai/dist/models/generated/openai.d.ts +700 -0
  186. package/packages/pi-ai/dist/models/generated/openai.d.ts.map +1 -0
  187. package/packages/pi-ai/dist/models/generated/openai.js +702 -0
  188. package/packages/pi-ai/dist/models/generated/openai.js.map +1 -0
  189. package/packages/pi-ai/dist/models/generated/opencode-go.d.ts +122 -0
  190. package/packages/pi-ai/dist/models/generated/opencode-go.d.ts.map +1 -0
  191. package/packages/pi-ai/dist/models/generated/opencode-go.js +124 -0
  192. package/packages/pi-ai/dist/models/generated/opencode-go.js.map +1 -0
  193. package/packages/pi-ai/dist/models/generated/opencode.d.ts +530 -0
  194. package/packages/pi-ai/dist/models/generated/opencode.d.ts.map +1 -0
  195. package/packages/pi-ai/dist/models/generated/opencode.js +532 -0
  196. package/packages/pi-ai/dist/models/generated/opencode.js.map +1 -0
  197. package/packages/pi-ai/dist/models/generated/openrouter.d.ts +4270 -0
  198. package/packages/pi-ai/dist/models/generated/openrouter.d.ts.map +1 -0
  199. package/packages/pi-ai/dist/models/generated/openrouter.js +4272 -0
  200. package/packages/pi-ai/dist/models/generated/openrouter.js.map +1 -0
  201. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.d.ts +2604 -0
  202. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.d.ts.map +1 -0
  203. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.js +2606 -0
  204. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.js.map +1 -0
  205. package/packages/pi-ai/dist/models/generated/xai.d.ts +411 -0
  206. package/packages/pi-ai/dist/models/generated/xai.d.ts.map +1 -0
  207. package/packages/pi-ai/dist/models/generated/xai.js +413 -0
  208. package/packages/pi-ai/dist/models/generated/xai.js.map +1 -0
  209. package/packages/pi-ai/dist/models/generated/zai.d.ts +276 -0
  210. package/packages/pi-ai/dist/models/generated/zai.d.ts.map +1 -0
  211. package/packages/pi-ai/dist/models/generated/zai.js +239 -0
  212. package/packages/pi-ai/dist/models/generated/zai.js.map +1 -0
  213. package/packages/pi-ai/dist/models/index.d.ts +27 -0
  214. package/packages/pi-ai/dist/models/index.d.ts.map +1 -0
  215. package/packages/pi-ai/dist/models/index.js +80 -0
  216. package/packages/pi-ai/dist/models/index.js.map +1 -0
  217. package/packages/pi-ai/dist/models.d.ts +1 -36
  218. package/packages/pi-ai/dist/models.d.ts.map +1 -1
  219. package/packages/pi-ai/dist/models.generated.test.js +1 -2
  220. package/packages/pi-ai/dist/models.generated.test.js.map +1 -1
  221. package/packages/pi-ai/dist/models.js +3 -112
  222. package/packages/pi-ai/dist/models.js.map +1 -1
  223. package/packages/pi-ai/dist/models.test.js +6 -5
  224. package/packages/pi-ai/dist/models.test.js.map +1 -1
  225. package/packages/pi-ai/scripts/generate-models.ts +74 -40
  226. package/packages/pi-ai/src/index.ts +1 -9
  227. package/packages/pi-ai/src/models/capability-patches.ts +40 -0
  228. package/packages/pi-ai/src/{models.custom.ts → models/custom.ts} +4 -4
  229. package/packages/pi-ai/src/models/generated/amazon-bedrock.ts +1486 -0
  230. package/packages/pi-ai/src/models/generated/anthropic.ts +381 -0
  231. package/packages/pi-ai/src/models/generated/azure-openai-responses.ts +704 -0
  232. package/packages/pi-ai/src/models/generated/cerebras.ts +75 -0
  233. package/packages/pi-ai/src/models/generated/github-copilot.ts +446 -0
  234. package/packages/pi-ai/src/models/generated/google-antigravity.ts +160 -0
  235. package/packages/pi-ai/src/models/generated/google-gemini-cli.ts +109 -0
  236. package/packages/pi-ai/src/models/generated/google-vertex.ts +211 -0
  237. package/packages/pi-ai/src/models/generated/google.ts +466 -0
  238. package/packages/pi-ai/src/models/generated/groq.ts +313 -0
  239. package/packages/pi-ai/src/models/generated/huggingface.ts +349 -0
  240. package/packages/pi-ai/src/models/generated/index.ts +52 -0
  241. package/packages/pi-ai/src/models/generated/kimi-coding.ts +41 -0
  242. package/packages/pi-ai/src/models/generated/minimax-cn.ts +109 -0
  243. package/packages/pi-ai/src/models/generated/minimax.ts +109 -0
  244. package/packages/pi-ai/src/models/generated/mistral.ts +449 -0
  245. package/packages/pi-ai/src/models/generated/openai-codex.ts +143 -0
  246. package/packages/pi-ai/src/models/generated/openai.ts +704 -0
  247. package/packages/pi-ai/src/models/generated/opencode-go.ts +126 -0
  248. package/packages/pi-ai/src/models/generated/opencode.ts +534 -0
  249. package/packages/pi-ai/src/models/generated/openrouter.ts +4274 -0
  250. package/packages/pi-ai/src/models/generated/vercel-ai-gateway.ts +2608 -0
  251. package/packages/pi-ai/src/models/generated/xai.ts +415 -0
  252. package/packages/pi-ai/src/models/generated/zai.ts +241 -0
  253. package/packages/pi-ai/src/models/index.ts +106 -0
  254. package/packages/pi-ai/src/models.generated.test.ts +1 -2
  255. package/packages/pi-ai/src/models.test.ts +6 -5
  256. package/packages/pi-ai/src/models.ts +3 -153
  257. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
  258. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  259. package/packages/pi-coding-agent/dist/core/agent-session.js +8 -2
  260. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  261. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js +472 -0
  262. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js.map +1 -1
  263. package/packages/pi-coding-agent/dist/core/model-registry-env-fallback.test.d.ts +2 -0
  264. package/packages/pi-coding-agent/dist/core/model-registry-env-fallback.test.d.ts.map +1 -0
  265. package/packages/pi-coding-agent/dist/core/model-registry-env-fallback.test.js +52 -0
  266. package/packages/pi-coding-agent/dist/core/model-registry-env-fallback.test.js.map +1 -0
  267. package/packages/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
  268. package/packages/pi-coding-agent/dist/core/model-registry.js +2 -2
  269. package/packages/pi-coding-agent/dist/core/model-registry.js.map +1 -1
  270. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js +11 -0
  271. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js.map +1 -1
  272. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts +1 -0
  273. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  274. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.js +23 -9
  275. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.js.map +1 -1
  276. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts +11 -0
  277. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts.map +1 -0
  278. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js +47 -0
  279. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js.map +1 -0
  280. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +8 -0
  281. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  282. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +68 -8
  283. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  284. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  285. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.js +22 -22
  286. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.js.map +1 -1
  287. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  288. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +232 -18
  289. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  290. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.d.ts +2 -0
  291. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.d.ts.map +1 -0
  292. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.js +38 -0
  293. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.js.map +1 -0
  294. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +14 -0
  295. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  296. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +70 -6
  297. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  298. package/packages/pi-coding-agent/src/core/agent-session.ts +12 -6
  299. package/packages/pi-coding-agent/src/core/chat-controller-ordering.test.ts +612 -0
  300. package/packages/pi-coding-agent/src/core/model-registry-env-fallback.test.ts +59 -0
  301. package/packages/pi-coding-agent/src/core/model-registry.ts +2 -1
  302. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-execution.test.ts +19 -0
  303. package/packages/pi-coding-agent/src/modes/interactive/components/assistant-message.ts +25 -10
  304. package/packages/pi-coding-agent/src/modes/interactive/components/chat-frame.ts +67 -0
  305. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +83 -7
  306. package/packages/pi-coding-agent/src/modes/interactive/components/user-message.ts +23 -26
  307. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +298 -41
  308. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode-ordering.test.ts +44 -0
  309. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +92 -6
  310. package/packages/pi-coding-agent/src/types/ambient-modules.d.ts +69 -0
  311. package/packages/pi-coding-agent/tsconfig.json +2 -2
  312. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  313. package/src/resources/extensions/gsd/activity-log.ts +21 -0
  314. package/src/resources/extensions/gsd/auto/loop-deps.ts +4 -0
  315. package/src/resources/extensions/gsd/auto/loop.ts +159 -10
  316. package/src/resources/extensions/gsd/auto/phases.ts +123 -3
  317. package/src/resources/extensions/gsd/auto/session.ts +10 -0
  318. package/src/resources/extensions/gsd/auto-dispatch.ts +16 -6
  319. package/src/resources/extensions/gsd/auto-model-selection.ts +66 -5
  320. package/src/resources/extensions/gsd/auto-post-unit.ts +226 -9
  321. package/src/resources/extensions/gsd/auto-recovery.ts +29 -9
  322. package/src/resources/extensions/gsd/auto-unit-closeout.ts +25 -1
  323. package/src/resources/extensions/gsd/auto-verification.ts +129 -2
  324. package/src/resources/extensions/gsd/auto.ts +34 -2
  325. package/src/resources/extensions/gsd/bootstrap/register-extension.ts +15 -1
  326. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +72 -8
  327. package/src/resources/extensions/gsd/cache.ts +16 -5
  328. package/src/resources/extensions/gsd/commands/handlers/ops.ts +5 -0
  329. package/src/resources/extensions/gsd/commands-extract-learnings.ts +304 -0
  330. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +1 -1
  331. package/src/resources/extensions/gsd/docs/preferences-reference.md +14 -1
  332. package/src/resources/extensions/gsd/ecosystem/gsd-extension-api.ts +228 -0
  333. package/src/resources/extensions/gsd/ecosystem/loader.ts +201 -0
  334. package/src/resources/extensions/gsd/git-service.ts +68 -0
  335. package/src/resources/extensions/gsd/graph-context.ts +139 -12
  336. package/src/resources/extensions/gsd/gsd-db.ts +321 -3
  337. package/src/resources/extensions/gsd/guided-flow.ts +33 -1
  338. package/src/resources/extensions/gsd/init-wizard.ts +3 -2
  339. package/src/resources/extensions/gsd/journal.ts +30 -0
  340. package/src/resources/extensions/gsd/metrics.ts +26 -0
  341. package/src/resources/extensions/gsd/parallel-orchestrator.ts +40 -1
  342. package/src/resources/extensions/gsd/preferences-models.ts +20 -3
  343. package/src/resources/extensions/gsd/preferences-types.ts +32 -0
  344. package/src/resources/extensions/gsd/preferences-validation.ts +107 -2
  345. package/src/resources/extensions/gsd/preferences.ts +28 -0
  346. package/src/resources/extensions/gsd/safety/evidence-collector.ts +15 -31
  347. package/src/resources/extensions/gsd/session-lock.ts +14 -2
  348. package/src/resources/extensions/gsd/slice-parallel-orchestrator.ts +20 -1
  349. package/src/resources/extensions/gsd/templates/PREFERENCES.md +18 -0
  350. package/src/resources/extensions/gsd/tests/artifacts-table-preserved-on-cache-invalidate.test.ts +177 -0
  351. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +7 -3
  352. package/src/resources/extensions/gsd/tests/auto-model-selection.test.ts +20 -0
  353. package/src/resources/extensions/gsd/tests/auto-project-root-env.test.ts +7 -3
  354. package/src/resources/extensions/gsd/tests/auto-retry-mcp-churn-fixes.test.ts +272 -0
  355. package/src/resources/extensions/gsd/tests/cold-resume-db-reopen.test.ts +6 -2
  356. package/src/resources/extensions/gsd/tests/commands-extract-learnings.test.ts +340 -0
  357. package/src/resources/extensions/gsd/tests/complete-slice.test.ts +2 -2
  358. package/src/resources/extensions/gsd/tests/complete-task.test.ts +2 -2
  359. package/src/resources/extensions/gsd/tests/finalize-timeout-guard.test.ts +10 -7
  360. package/src/resources/extensions/gsd/tests/gsd-db.test.ts +1 -1
  361. package/src/resources/extensions/gsd/tests/health-widget.test.ts +1 -1
  362. package/src/resources/extensions/gsd/tests/md-importer.test.ts +1 -2
  363. package/src/resources/extensions/gsd/tests/memory-store.test.ts +2 -3
  364. package/src/resources/extensions/gsd/tests/post-exec-retry-bypass.test.ts +79 -1
  365. package/src/resources/extensions/gsd/tests/post-unit-state-rebuild.test.ts +2 -1
  366. package/src/resources/extensions/gsd/tests/pre-execution-pause-wiring.test.ts +40 -1
  367. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +1 -1
  368. package/src/resources/extensions/gsd/tests/token-profile.test.ts +8 -5
  369. package/src/resources/extensions/gsd/tests/uok-audit-unified.test.ts +101 -0
  370. package/src/resources/extensions/gsd/tests/uok-contracts.test.ts +85 -0
  371. package/src/resources/extensions/gsd/tests/uok-execution-graph.test.ts +69 -0
  372. package/src/resources/extensions/gsd/tests/uok-flags.test.ts +39 -0
  373. package/src/resources/extensions/gsd/tests/uok-gate-runner.test.ts +70 -0
  374. package/src/resources/extensions/gsd/tests/uok-gitops-turn-action.test.ts +85 -0
  375. package/src/resources/extensions/gsd/tests/uok-gitops-wiring.test.ts +35 -0
  376. package/src/resources/extensions/gsd/tests/uok-model-policy.test.ts +89 -0
  377. package/src/resources/extensions/gsd/tests/uok-plan-v2-wiring.test.ts +167 -0
  378. package/src/resources/extensions/gsd/tests/uok-preferences.test.ts +42 -0
  379. package/src/resources/extensions/gsd/tests/validate-milestone-write-order.test.ts +39 -0
  380. package/src/resources/extensions/gsd/tools/complete-slice.ts +9 -2
  381. package/src/resources/extensions/gsd/tools/validate-milestone.ts +48 -3
  382. package/src/resources/extensions/gsd/types.ts +14 -1
  383. package/src/resources/extensions/gsd/unit-ownership.ts +2 -2
  384. package/src/resources/extensions/gsd/uok/audit-toggle.ts +9 -0
  385. package/src/resources/extensions/gsd/uok/audit.ts +51 -0
  386. package/src/resources/extensions/gsd/uok/contracts.ts +135 -0
  387. package/src/resources/extensions/gsd/uok/execution-graph.ts +241 -0
  388. package/src/resources/extensions/gsd/uok/flags.ts +45 -0
  389. package/src/resources/extensions/gsd/uok/gate-runner.ts +146 -0
  390. package/src/resources/extensions/gsd/uok/gitops.ts +75 -0
  391. package/src/resources/extensions/gsd/uok/kernel.ts +105 -0
  392. package/src/resources/extensions/gsd/uok/loop-adapter.ts +162 -0
  393. package/src/resources/extensions/gsd/uok/model-policy.ts +112 -0
  394. package/src/resources/extensions/gsd/uok/plan-v2.ts +156 -0
  395. package/src/resources/extensions/gsd/workflow-logger.ts +27 -1
  396. package/src/resources/extensions/ttsr/ttsr-manager.ts +10 -5
  397. package/packages/pi-ai/dist/models.custom.d.ts.map +0 -1
  398. package/packages/pi-ai/dist/models.custom.js.map +0 -1
  399. package/packages/pi-ai/dist/models.generated.js +0 -14343
  400. package/packages/pi-ai/dist/models.generated.js.map +0 -1
  401. package/packages/pi-ai/src/models.generated.ts +0 -14345
  402. /package/dist/web/standalone/.next/static/{XnHY5eXUsTCFmNodWHetD → kn6xzWKYnogsxp2b6RpDD}/_buildManifest.js +0 -0
  403. /package/dist/web/standalone/.next/static/{XnHY5eXUsTCFmNodWHetD → kn6xzWKYnogsxp2b6RpDD}/_ssgManifest.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")},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1575:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(9233);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}}},2280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(8208),e=c(7617),f=c(2018);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()}}},2813:(a,b,c)=>{"use strict";c.d(b,{N:()=>h});var d=c(3024),e=c(6760),f=c(3136),g=c(4431);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}`)}},3024:a=>{"use strict";a.exports=require("node:fs")},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{"use strict";a.exports=require("node:url")},4431:(a,b,c)=>{"use strict";c.d(b,{KW:()=>h,hg:()=>f,vB:()=>i});var d=c(3024),e=c(6760);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"]}},4870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},6760:a=>{"use strict";a.exports=require("node:path")},8335:()=>{},9225:(a,b,c)=>{"use strict";a.exports=c(4870)},9233:(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(3024),e=c(6760),f=c(2813);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||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")},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1575:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(9233);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}}},2280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(8208),e=c(7617),f=c(2018);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()}}},2813:(a,b,c)=>{"use strict";c.d(b,{N:()=>h});var d=c(3024),e=c(6760),f=c(3136),g=c(4431);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}`)}},3024:a=>{"use strict";a.exports=require("node:fs")},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{"use strict";a.exports=require("node:url")},4431:(a,b,c)=>{"use strict";c.d(b,{KW:()=>h,hg:()=>f,vB:()=>i});var d=c(3024),e=c(6760);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"]}},4870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},6760:a=>{"use strict";a.exports=require("node:path")},8335:()=>{},9225:(a,b,c)=>{"use strict";a.exports=c(4870)},9233:(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(3024),e=c(6760),f=c(2813);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
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}))}},9294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741],()=>b(b.s=1575));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")},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},2280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(8208),e=c(7617),f=c(2018);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()}}},2813:(a,b,c)=>{"use strict";c.d(b,{N:()=>h});var d=c(3024),e=c(6760),f=c(3136),g=c(4431);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}`)}},3024:a=>{"use strict";a.exports=require("node:fs")},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{"use strict";a.exports=require("node:url")},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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(9233);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}}},4431:(a,b,c)=>{"use strict";c.d(b,{KW:()=>h,hg:()=>f,vB:()=>i});var d=c(3024),e=c(6760);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"]}},4870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},6760:a=>{"use strict";a.exports=require("node:path")},8335:()=>{},9225:(a,b,c)=>{"use strict";a.exports=c(4870)},9233:(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(3024),e=c(6760),f=c(2813);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||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")},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},2280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(8208),e=c(7617),f=c(2018);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()}}},2813:(a,b,c)=>{"use strict";c.d(b,{N:()=>h});var d=c(3024),e=c(6760),f=c(3136),g=c(4431);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}`)}},3024:a=>{"use strict";a.exports=require("node:fs")},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{"use strict";a.exports=require("node:url")},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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(9233);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}}},4431:(a,b,c)=>{"use strict";c.d(b,{KW:()=>h,hg:()=>f,vB:()=>i});var d=c(3024),e=c(6760);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"]}},4870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},6760:a=>{"use strict";a.exports=require("node:path")},8335:()=>{},9225:(a,b,c)=>{"use strict";a.exports=c(4870)},9233:(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(3024),e=c(6760),f=c(2813);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
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}))}},9294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")}};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")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},5094:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(9233),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}}},6193:a=>{a.exports=require("node:string_decoder")},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6760:a=>{a.exports=require("node:path")},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8161:a=>{a.exports=require("node:os")},9233:(a,b,c)=>{c.d(b,{B3:()=>o,GW:()=>s,ME:()=>n,Q$:()=>m,ch:()=>r,jG:()=>p,lx:()=>q});var d=c(3024),e=c(6760),f=c(2813);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||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")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},5094:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(9233),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}}},6193:a=>{a.exports=require("node:string_decoder")},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6760:a=>{a.exports=require("node:path")},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8161:a=>{a.exports=require("node:os")},9233:(a,b,c)=>{c.d(b,{B3:()=>o,GW:()=>s,ME:()=>n,Q$:()=>m,ch:()=>r,jG:()=>p,lx:()=>q});var d=c(3024),e=c(6760),f=c(2813);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
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}))}},9294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=5094));module.exports=c})();
@@ -1,4 +1,4 @@
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")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6193:a=>{a.exports=require("node:string_decoder")},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6760:a=>{a.exports=require("node:path")},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8161:a=>{a.exports=require("node:os")},9233:(a,b,c)=>{c.d(b,{B3:()=>o,GW:()=>s,ME:()=>n,Q$:()=>m,ch:()=>r,jG:()=>p,lx:()=>q});var d=c(3024),e=c(6760),f=c(2813);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||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")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6193:a=>{a.exports=require("node:string_decoder")},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6760:a=>{a.exports=require("node:path")},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8161:a=>{a.exports=require("node:os")},9233:(a,b,c)=>{c.d(b,{B3:()=>o,GW:()=>s,ME:()=>n,Q$:()=>m,ch:()=>r,jG:()=>p,lx:()=>q});var d=c(3024),e=c(6760),f=c(2813);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
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}))}},9294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9679:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(9233),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
 
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/de70bee13400563f.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/f6e8833d46e738d8.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-b868033a5834586d.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-42fdce068d44fa4f.js" async=""></script><script src="/_next/static/chunks/main-app-fdab67f7802d7832.js" async=""></script><script src="/_next/static/chunks/4986-c2fc8845ce785303.js" async=""></script><script src="/_next/static/chunks/app/layout-a16c7a7ecdf0c2cf.js" async=""></script><script src="/_next/static/chunks/app/page-f1e30ab6bb269149.js" async=""></script><meta name="next-size-adjust" content=""/><title>GSD</title><meta name="description" content="The evolution of Get Shit Done — now a real coding agent. One command. Walk away. Come back to a built project."/><meta name="application-name" content="GSD"/><link rel="icon" href="/icon-light-32x32.png" media="(prefers-color-scheme: light)"/><link rel="icon" href="/icon-dark-32x32.png" media="(prefers-color-scheme: dark)"/><link rel="icon" href="/icon.svg" type="image/svg+xml"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_188709 __variable_9a8899 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","dark",null,["light","dark"],null,true,true)</script><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div class="flex h-screen items-center justify-center bg-background text-sm text-muted-foreground">Loading workspace…</div><!--/$--><!--$--><!--/$--><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><script src="/_next/static/chunks/webpack-b868033a5834586d.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[21942,[\"4986\",\"static/chunks/4986-c2fc8845ce785303.js\",\"7177\",\"static/chunks/app/layout-a16c7a7ecdf0c2cf.js\"],\"ThemeProvider\"]\n3:I[57121,[],\"\"]\n4:I[74581,[],\"\"]\n5:I[61549,[\"4986\",\"static/chunks/4986-c2fc8845ce785303.js\",\"7177\",\"static/chunks/app/layout-a16c7a7ecdf0c2cf.js\"],\"Toaster\"]\n6:I[61304,[],\"ClientPageRoot\"]\n7:I[66919,[\"8974\",\"static/chunks/app/page-f1e30ab6bb269149.js\"],\"default\"]\na:I[90484,[],\"OutletBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[90484,[],\"ViewportBoundary\"]\nf:I[90484,[],\"MetadataBoundary\"]\n11:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/4cf2300e9c8272f7-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/93f479601ee12b01-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/de70bee13400563f.css\",\"style\"]\n:HL[\"/_next/static/css/f6e8833d46e738d8.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/de70bee13400563f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f6e8833d46e738d8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"__variable_188709 __variable_9a8899 font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"dark\",\"children\":[[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L5\",null,{\"position\":\"bottom-right\"}]]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{\"Component\":\"$7\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@8\",\"$@9\"]}}],null,[\"$\",\"$La\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@c\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L10\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"XnHY5eXUsTCFmNodWHetD\"}\n"])</script><script>self.__next_f.push([1,"8:{}\n9:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}]]\n"])</script><script>self.__next_f.push([1,"12:I[86869,[],\"IconMark\"]\nc:null\n10:[[\"$\",\"title\",\"0\",{\"children\":\"GSD\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"The evolution of Get Shit Done — now a real coding agent. One command. Walk away. Come back to a built project.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"GSD\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/icon-light-32x32.png\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/icon-dark-32x32.png\",\"media\":\"(prefers-color-scheme: dark)\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/icon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L12\",\"6\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/de70bee13400563f.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/f6e8833d46e738d8.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-b868033a5834586d.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-42fdce068d44fa4f.js" async=""></script><script src="/_next/static/chunks/main-app-fdab67f7802d7832.js" async=""></script><script src="/_next/static/chunks/4986-c2fc8845ce785303.js" async=""></script><script src="/_next/static/chunks/app/layout-a16c7a7ecdf0c2cf.js" async=""></script><script src="/_next/static/chunks/app/page-f1e30ab6bb269149.js" async=""></script><meta name="next-size-adjust" content=""/><title>GSD</title><meta name="description" content="The evolution of Get Shit Done — now a real coding agent. One command. Walk away. Come back to a built project."/><meta name="application-name" content="GSD"/><link rel="icon" href="/icon-light-32x32.png" media="(prefers-color-scheme: light)"/><link rel="icon" href="/icon-dark-32x32.png" media="(prefers-color-scheme: dark)"/><link rel="icon" href="/icon.svg" type="image/svg+xml"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_188709 __variable_9a8899 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","dark",null,["light","dark"],null,true,true)</script><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div class="flex h-screen items-center justify-center bg-background text-sm text-muted-foreground">Loading workspace…</div><!--/$--><!--$--><!--/$--><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><script src="/_next/static/chunks/webpack-b868033a5834586d.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[21942,[\"4986\",\"static/chunks/4986-c2fc8845ce785303.js\",\"7177\",\"static/chunks/app/layout-a16c7a7ecdf0c2cf.js\"],\"ThemeProvider\"]\n3:I[57121,[],\"\"]\n4:I[74581,[],\"\"]\n5:I[61549,[\"4986\",\"static/chunks/4986-c2fc8845ce785303.js\",\"7177\",\"static/chunks/app/layout-a16c7a7ecdf0c2cf.js\"],\"Toaster\"]\n6:I[61304,[],\"ClientPageRoot\"]\n7:I[66919,[\"8974\",\"static/chunks/app/page-f1e30ab6bb269149.js\"],\"default\"]\na:I[90484,[],\"OutletBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[90484,[],\"ViewportBoundary\"]\nf:I[90484,[],\"MetadataBoundary\"]\n11:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/4cf2300e9c8272f7-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/93f479601ee12b01-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/de70bee13400563f.css\",\"style\"]\n:HL[\"/_next/static/css/f6e8833d46e738d8.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/de70bee13400563f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f6e8833d46e738d8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"__variable_188709 __variable_9a8899 font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"dark\",\"children\":[[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L5\",null,{\"position\":\"bottom-right\"}]]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{\"Component\":\"$7\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@8\",\"$@9\"]}}],null,[\"$\",\"$La\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@c\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L10\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"kn6xzWKYnogsxp2b6RpDD\"}\n"])</script><script>self.__next_f.push([1,"8:{}\n9:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}]]\n"])</script><script>self.__next_f.push([1,"12:I[86869,[],\"IconMark\"]\nc:null\n10:[[\"$\",\"title\",\"0\",{\"children\":\"GSD\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"The evolution of Get Shit Done — now a real coding agent. One command. Walk away. Come back to a built project.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"GSD\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/icon-light-32x32.png\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/icon-dark-32x32.png\",\"media\":\"(prefers-color-scheme: dark)\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/icon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L12\",\"6\",{}]]\n"])</script></body></html>
@@ -14,7 +14,7 @@ f:I[90484,[],"MetadataBoundary"]
14
14
  :HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
15
15
  :HL["/_next/static/css/de70bee13400563f.css","style"]
16
16
  :HL["/_next/static/css/f6e8833d46e738d8.css","style"]
17
- 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/f6e8833d46e738d8.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 font-sans antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"dark","children":[["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$L5",null,{"position":"bottom-right"}]]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],null,["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"XnHY5eXUsTCFmNodWHetD"}
17
+ 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/f6e8833d46e738d8.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 font-sans antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"dark","children":[["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$L5",null,{"position":"bottom-right"}]]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],null,["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"kn6xzWKYnogsxp2b6RpDD"}
18
18
  8:{}
19
19
  9:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
20
20
  e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]
@@ -3,7 +3,7 @@
3
3
  3:I[66919,["8974","static/chunks/app/page-f1e30ab6bb269149.js"],"default"]
4
4
  6:I[90484,[],"OutletBoundary"]
5
5
  7:"$Sreact.suspense"
6
- 0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"XnHY5eXUsTCFmNodWHetD"}
6
+ 0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"kn6xzWKYnogsxp2b6RpDD"}
7
7
  4:{}
8
8
  5:"$0:rsc:props:children:0:props:serverProvidedParams:params"
9
9
  8:null
@@ -14,7 +14,7 @@ f:I[90484,[],"MetadataBoundary"]
14
14
  :HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
15
15
  :HL["/_next/static/css/de70bee13400563f.css","style"]
16
16
  :HL["/_next/static/css/f6e8833d46e738d8.css","style"]
17
- 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/f6e8833d46e738d8.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 font-sans antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"dark","children":[["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$L5",null,{"position":"bottom-right"}]]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],null,["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"XnHY5eXUsTCFmNodWHetD"}
17
+ 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/f6e8833d46e738d8.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 font-sans antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"dark","children":[["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$L5",null,{"position":"bottom-right"}]]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],null,["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"kn6xzWKYnogsxp2b6RpDD"}
18
18
  8:{}
19
19
  9:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
20
20
  e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]
@@ -3,4 +3,4 @@
3
3
  3:I[90484,[],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
5
  5:I[86869,[],"IconMark"]
6
- 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"GSD"}],["$","meta","1",{"name":"description","content":"The evolution of Get Shit Done — now a real coding agent. One command. Walk away. Come back to a built project."}],["$","meta","2",{"name":"application-name","content":"GSD"}],["$","link","3",{"rel":"icon","href":"/icon-light-32x32.png","media":"(prefers-color-scheme: light)"}],["$","link","4",{"rel":"icon","href":"/icon-dark-32x32.png","media":"(prefers-color-scheme: dark)"}],["$","link","5",{"rel":"icon","href":"/icon.svg","type":"image/svg+xml"}],["$","$L5","6",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"XnHY5eXUsTCFmNodWHetD"}
6
+ 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"GSD"}],["$","meta","1",{"name":"description","content":"The evolution of Get Shit Done — now a real coding agent. One command. Walk away. Come back to a built project."}],["$","meta","2",{"name":"application-name","content":"GSD"}],["$","link","3",{"rel":"icon","href":"/icon-light-32x32.png","media":"(prefers-color-scheme: light)"}],["$","link","4",{"rel":"icon","href":"/icon-dark-32x32.png","media":"(prefers-color-scheme: dark)"}],["$","link","5",{"rel":"icon","href":"/icon.svg","type":"image/svg+xml"}],["$","$L5","6",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"kn6xzWKYnogsxp2b6RpDD"}
@@ -5,4 +5,4 @@
5
5
  5:I[61549,["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"Toaster"]
6
6
  :HL["/_next/static/css/de70bee13400563f.css","style"]
7
7
  :HL["/_next/static/css/f6e8833d46e738d8.css","style"]
8
- 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/f6e8833d46e738d8.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 font-sans antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"dark","children":[["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$L5",null,{"position":"bottom-right"}]]}]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"XnHY5eXUsTCFmNodWHetD"}
8
+ 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/f6e8833d46e738d8.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 font-sans antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"dark","children":[["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$L5",null,{"position":"bottom-right"}]]}]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"kn6xzWKYnogsxp2b6RpDD"}
@@ -2,4 +2,4 @@
2
2
  :HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
3
3
  :HL["/_next/static/css/de70bee13400563f.css","style"]
4
4
  :HL["/_next/static/css/f6e8833d46e738d8.css","style"]
5
- 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"XnHY5eXUsTCFmNodWHetD"}
5
+ 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"kn6xzWKYnogsxp2b6RpDD"}
@@ -2,44 +2,44 @@
2
2
  "/_not-found/page": "app/_not-found/page.js",
3
3
  "/_global-error/page": "app/_global-error/page.js",
4
4
  "/api/bridge-terminal/input/route": "app/api/bridge-terminal/input/route.js",
5
- "/api/boot/route": "app/api/boot/route.js",
6
5
  "/api/bridge-terminal/resize/route": "app/api/bridge-terminal/resize/route.js",
6
+ "/api/boot/route": "app/api/boot/route.js",
7
7
  "/api/bridge-terminal/stream/route": "app/api/bridge-terminal/stream/route.js",
8
8
  "/api/dev-mode/route": "app/api/dev-mode/route.js",
9
9
  "/api/cleanup/route": "app/api/cleanup/route.js",
10
10
  "/api/doctor/route": "app/api/doctor/route.js",
11
- "/api/export-data/route": "app/api/export-data/route.js",
12
11
  "/api/captures/route": "app/api/captures/route.js",
13
- "/api/browse-directories/route": "app/api/browse-directories/route.js",
12
+ "/api/export-data/route": "app/api/export-data/route.js",
14
13
  "/api/forensics/route": "app/api/forensics/route.js",
15
14
  "/api/git/route": "app/api/git/route.js",
16
15
  "/api/history/route": "app/api/history/route.js",
17
16
  "/api/hooks/route": "app/api/hooks/route.js",
17
+ "/api/browse-directories/route": "app/api/browse-directories/route.js",
18
18
  "/api/inspect/route": "app/api/inspect/route.js",
19
- "/api/knowledge/route": "app/api/knowledge/route.js",
20
19
  "/api/experimental/route": "app/api/experimental/route.js",
20
+ "/api/knowledge/route": "app/api/knowledge/route.js",
21
21
  "/api/live-state/route": "app/api/live-state/route.js",
22
22
  "/api/notifications/route": "app/api/notifications/route.js",
23
23
  "/api/preferences/route": "app/api/preferences/route.js",
24
24
  "/api/recovery/route": "app/api/recovery/route.js",
25
- "/api/onboarding/route": "app/api/onboarding/route.js",
26
25
  "/api/projects/route": "app/api/projects/route.js",
27
26
  "/api/session/browser/route": "app/api/session/browser/route.js",
27
+ "/api/onboarding/route": "app/api/onboarding/route.js",
28
28
  "/api/session/command/route": "app/api/session/command/route.js",
29
29
  "/api/session/events/route": "app/api/session/events/route.js",
30
30
  "/api/session/manage/route": "app/api/session/manage/route.js",
31
- "/api/settings-data/route": "app/api/settings-data/route.js",
32
31
  "/api/shutdown/route": "app/api/shutdown/route.js",
32
+ "/api/settings-data/route": "app/api/settings-data/route.js",
33
33
  "/api/skill-health/route": "app/api/skill-health/route.js",
34
- "/api/steer/route": "app/api/steer/route.js",
35
- "/api/terminal/input/route": "app/api/terminal/input/route.js",
36
34
  "/api/files/route": "app/api/files/route.js",
35
+ "/api/terminal/input/route": "app/api/terminal/input/route.js",
36
+ "/api/steer/route": "app/api/steer/route.js",
37
37
  "/api/terminal/resize/route": "app/api/terminal/resize/route.js",
38
38
  "/api/switch-root/route": "app/api/switch-root/route.js",
39
39
  "/api/terminal/sessions/route": "app/api/terminal/sessions/route.js",
40
40
  "/api/terminal/stream/route": "app/api/terminal/stream/route.js",
41
- "/api/undo/route": "app/api/undo/route.js",
42
41
  "/api/terminal/upload/route": "app/api/terminal/upload/route.js",
42
+ "/api/undo/route": "app/api/undo/route.js",
43
43
  "/api/visualizer/route": "app/api/visualizer/route.js",
44
44
  "/api/update/route": "app/api/update/route.js",
45
45
  "/api/remote-questions/route": "app/api/remote-questions/route.js",