conductor-oss 0.3.4 → 0.4.0

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 (1214) hide show
  1. package/README.md +225 -201
  2. package/dist/commands/setup.d.ts.map +1 -1
  3. package/dist/commands/setup.js +28 -3
  4. package/dist/commands/setup.js.map +1 -1
  5. package/dist/commands/start.d.ts +14 -2
  6. package/dist/commands/start.d.ts.map +1 -1
  7. package/dist/commands/start.js +351 -180
  8. package/dist/commands/start.js.map +1 -1
  9. package/node_modules/@conductor-oss/core/dist/board-watcher.d.ts.map +1 -1
  10. package/node_modules/@conductor-oss/core/dist/board-watcher.js +11 -8
  11. package/node_modules/@conductor-oss/core/dist/board-watcher.js.map +1 -1
  12. package/node_modules/@conductor-oss/core/dist/config-sync.d.ts.map +1 -1
  13. package/node_modules/@conductor-oss/core/dist/config-sync.js +23 -2
  14. package/node_modules/@conductor-oss/core/dist/config-sync.js.map +1 -1
  15. package/node_modules/@conductor-oss/core/dist/config.d.ts.map +1 -1
  16. package/node_modules/@conductor-oss/core/dist/config.js +87 -4
  17. package/node_modules/@conductor-oss/core/dist/config.js.map +1 -1
  18. package/node_modules/@conductor-oss/core/dist/metadata.d.ts.map +1 -1
  19. package/node_modules/@conductor-oss/core/dist/metadata.js +4 -0
  20. package/node_modules/@conductor-oss/core/dist/metadata.js.map +1 -1
  21. package/node_modules/@conductor-oss/core/dist/prompt-builder.d.ts +1 -1
  22. package/node_modules/@conductor-oss/core/dist/prompt-builder.d.ts.map +1 -1
  23. package/node_modules/@conductor-oss/core/dist/prompt-builder.js +5 -0
  24. package/node_modules/@conductor-oss/core/dist/prompt-builder.js.map +1 -1
  25. package/node_modules/@conductor-oss/core/dist/scaffold.d.ts +20 -2
  26. package/node_modules/@conductor-oss/core/dist/scaffold.d.ts.map +1 -1
  27. package/node_modules/@conductor-oss/core/dist/scaffold.js +39 -5
  28. package/node_modules/@conductor-oss/core/dist/scaffold.js.map +1 -1
  29. package/node_modules/@conductor-oss/core/dist/session-manager.d.ts.map +1 -1
  30. package/node_modules/@conductor-oss/core/dist/session-manager.js +82 -9
  31. package/node_modules/@conductor-oss/core/dist/session-manager.js.map +1 -1
  32. package/node_modules/@conductor-oss/core/dist/types.d.ts +33 -7
  33. package/node_modules/@conductor-oss/core/dist/types.d.ts.map +1 -1
  34. package/node_modules/@conductor-oss/core/dist/types.js +151 -0
  35. package/node_modules/@conductor-oss/core/dist/types.js.map +1 -1
  36. package/node_modules/@conductor-oss/plugin-agent-amp/package.json +1 -1
  37. package/node_modules/@conductor-oss/plugin-agent-ccr/package.json +1 -1
  38. package/node_modules/@conductor-oss/plugin-agent-claude-code/package.json +1 -1
  39. package/node_modules/@conductor-oss/plugin-agent-codex/package.json +1 -1
  40. package/node_modules/@conductor-oss/plugin-agent-cursor-cli/package.json +1 -1
  41. package/node_modules/@conductor-oss/plugin-agent-droid/package.json +1 -1
  42. package/node_modules/@conductor-oss/plugin-agent-gemini/package.json +1 -1
  43. package/node_modules/@conductor-oss/plugin-agent-github-copilot/package.json +1 -1
  44. package/node_modules/@conductor-oss/plugin-agent-opencode/package.json +1 -1
  45. package/node_modules/@conductor-oss/plugin-agent-qwen-code/package.json +1 -1
  46. package/node_modules/@conductor-oss/plugin-mcp-server/package.json +1 -1
  47. package/node_modules/@conductor-oss/plugin-notifier-desktop/package.json +1 -1
  48. package/node_modules/@conductor-oss/plugin-notifier-discord/package.json +1 -1
  49. package/node_modules/@conductor-oss/plugin-runtime-tmux/package.json +1 -1
  50. package/node_modules/@conductor-oss/plugin-scm-github/package.json +1 -1
  51. package/node_modules/@conductor-oss/plugin-terminal-web/package.json +1 -1
  52. package/node_modules/@conductor-oss/plugin-tracker-github/package.json +1 -1
  53. package/node_modules/@conductor-oss/plugin-workspace-worktree/package.json +1 -1
  54. package/package.json +24 -23
  55. package/web/.next/standalone/node_modules/@babel/code-frame/lib/index.js +217 -0
  56. package/web/.next/standalone/node_modules/@babel/code-frame/package.json +32 -0
  57. package/web/.next/standalone/node_modules/@babel/helper-validator-identifier/lib/identifier.js +70 -0
  58. package/web/.next/standalone/node_modules/@babel/helper-validator-identifier/lib/index.js +57 -0
  59. package/web/.next/standalone/node_modules/@babel/helper-validator-identifier/lib/keyword.js +35 -0
  60. package/web/.next/standalone/node_modules/@babel/helper-validator-identifier/package.json +31 -0
  61. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/CLI.js +338 -0
  62. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/Cache.js +208 -0
  63. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/DefaultProvider.js +35 -0
  64. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/DefaultProvider.spec.js +75 -0
  65. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/browser-data/browser-data.js +235 -0
  66. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/browser-data/chrome-headless-shell.js +47 -0
  67. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/browser-data/chrome.js +296 -0
  68. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/browser-data/chromedriver.js +43 -0
  69. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/browser-data/chromium.js +63 -0
  70. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/browser-data/firefox.js +374 -0
  71. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/browser-data/types.js +63 -0
  72. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/debug.js +8 -0
  73. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/detectPlatform.js +47 -0
  74. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/fileUtil.js +156 -0
  75. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/httpUtil.js +132 -0
  76. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/install.js +351 -0
  77. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/launch.js +426 -0
  78. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/main-cli.js +9 -0
  79. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/main.js +15 -0
  80. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/package.json +1 -0
  81. package/web/.next/standalone/node_modules/@puppeteer/browsers/lib/esm/provider.js +13 -0
  82. package/web/.next/standalone/node_modules/@puppeteer/browsers/package.json +125 -0
  83. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/asyncify-helpers.js +53 -0
  84. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/context-asyncify.js +58 -0
  85. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/context.js +691 -0
  86. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/debug.js +6 -0
  87. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/deferred-promise.js +96 -0
  88. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/errors.js +58 -0
  89. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/esmHelpers.js +19 -0
  90. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/generated/emscripten-module.WASM_RELEASE_SYNC.js +387 -0
  91. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/generated/ffi.WASM_RELEASE_SYNC.js +71 -0
  92. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/index.js +128 -0
  93. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/lifetime.js +227 -0
  94. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/memory.js +41 -0
  95. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/module-asyncify.js +97 -0
  96. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/module-test.js +77 -0
  97. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/module.js +302 -0
  98. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/runtime-asyncify.js +49 -0
  99. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/runtime.js +300 -0
  100. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/types-ffi.js +38 -0
  101. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/types.js +58 -0
  102. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/variants.js +169 -0
  103. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/dist/vm-interface.js +12 -0
  104. package/web/.next/standalone/node_modules/@tootallnate/quickjs-emscripten/package.json +60 -0
  105. package/web/.next/standalone/node_modules/agent-base/dist/helpers.js +66 -0
  106. package/web/.next/standalone/node_modules/agent-base/dist/index.js +178 -0
  107. package/web/.next/standalone/node_modules/agent-base/package.json +46 -0
  108. package/web/.next/standalone/node_modules/ast-types/def/babel-core.js +256 -0
  109. package/web/.next/standalone/node_modules/ast-types/def/babel.js +11 -0
  110. package/web/.next/standalone/node_modules/ast-types/def/core.js +298 -0
  111. package/web/.next/standalone/node_modules/ast-types/def/es-proposals.js +33 -0
  112. package/web/.next/standalone/node_modules/ast-types/def/es2020.js +16 -0
  113. package/web/.next/standalone/node_modules/ast-types/def/es6.js +210 -0
  114. package/web/.next/standalone/node_modules/ast-types/def/es7.js +34 -0
  115. package/web/.next/standalone/node_modules/ast-types/def/esprima.js +49 -0
  116. package/web/.next/standalone/node_modules/ast-types/def/flow.js +292 -0
  117. package/web/.next/standalone/node_modules/ast-types/def/jsx.js +103 -0
  118. package/web/.next/standalone/node_modules/ast-types/def/type-annotations.js +40 -0
  119. package/web/.next/standalone/node_modules/ast-types/def/typescript.js +344 -0
  120. package/web/.next/standalone/node_modules/ast-types/fork.js +52 -0
  121. package/web/.next/standalone/node_modules/ast-types/gen/namedTypes.js +6 -0
  122. package/web/.next/standalone/node_modules/ast-types/lib/equiv.js +154 -0
  123. package/web/.next/standalone/node_modules/ast-types/lib/node-path.js +411 -0
  124. package/web/.next/standalone/node_modules/ast-types/lib/path-visitor.js +343 -0
  125. package/web/.next/standalone/node_modules/ast-types/lib/path.js +331 -0
  126. package/web/.next/standalone/node_modules/ast-types/lib/scope.js +318 -0
  127. package/web/.next/standalone/node_modules/ast-types/lib/shared.js +47 -0
  128. package/web/.next/standalone/node_modules/ast-types/lib/types.js +780 -0
  129. package/web/.next/standalone/node_modules/ast-types/main.js +53 -0
  130. package/web/.next/standalone/node_modules/ast-types/package.json +65 -0
  131. package/web/.next/standalone/node_modules/b4a/index.js +188 -0
  132. package/web/.next/standalone/node_modules/b4a/package.json +49 -0
  133. package/web/.next/standalone/node_modules/basic-ftp/dist/Client.js +782 -0
  134. package/web/.next/standalone/node_modules/basic-ftp/dist/FileInfo.js +92 -0
  135. package/web/.next/standalone/node_modules/basic-ftp/dist/FtpContext.js +365 -0
  136. package/web/.next/standalone/node_modules/basic-ftp/dist/ProgressTracker.js +72 -0
  137. package/web/.next/standalone/node_modules/basic-ftp/dist/StringEncoding.js +2 -0
  138. package/web/.next/standalone/node_modules/basic-ftp/dist/StringWriter.js +23 -0
  139. package/web/.next/standalone/node_modules/basic-ftp/dist/index.js +28 -0
  140. package/web/.next/standalone/node_modules/basic-ftp/dist/netUtils.js +66 -0
  141. package/web/.next/standalone/node_modules/basic-ftp/dist/parseControlResponse.js +66 -0
  142. package/web/.next/standalone/node_modules/basic-ftp/dist/parseList.js +79 -0
  143. package/web/.next/standalone/node_modules/basic-ftp/dist/parseListDOS.js +52 -0
  144. package/web/.next/standalone/node_modules/basic-ftp/dist/parseListMLSD.js +187 -0
  145. package/web/.next/standalone/node_modules/basic-ftp/dist/parseListUnix.js +155 -0
  146. package/web/.next/standalone/node_modules/basic-ftp/dist/transfer.js +318 -0
  147. package/web/.next/standalone/node_modules/basic-ftp/package.json +52 -0
  148. package/web/.next/standalone/node_modules/buffer-crc32/index.js +111 -0
  149. package/web/.next/standalone/node_modules/buffer-crc32/package.json +39 -0
  150. package/web/.next/standalone/node_modules/callsites/index.js +13 -0
  151. package/web/.next/standalone/node_modules/callsites/package.json +39 -0
  152. package/web/.next/standalone/node_modules/cliui/build/lib/index.js +287 -0
  153. package/web/.next/standalone/node_modules/cliui/build/lib/string-utils.js +27 -0
  154. package/web/.next/standalone/node_modules/cliui/index.mjs +13 -0
  155. package/web/.next/standalone/node_modules/cliui/package.json +83 -0
  156. package/web/.next/standalone/node_modules/cosmiconfig/dist/Explorer.js +170 -0
  157. package/web/.next/standalone/node_modules/cosmiconfig/dist/ExplorerBase.js +126 -0
  158. package/web/.next/standalone/node_modules/cosmiconfig/dist/ExplorerSync.js +184 -0
  159. package/web/.next/standalone/node_modules/cosmiconfig/dist/cacheWrapper.js +32 -0
  160. package/web/.next/standalone/node_modules/cosmiconfig/dist/canUseDynamicImport.js +23 -0
  161. package/web/.next/standalone/node_modules/cosmiconfig/dist/defaults.js +105 -0
  162. package/web/.next/standalone/node_modules/cosmiconfig/dist/getDirectory.js +38 -0
  163. package/web/.next/standalone/node_modules/cosmiconfig/dist/getPropertyByPath.js +28 -0
  164. package/web/.next/standalone/node_modules/cosmiconfig/dist/index.js +148 -0
  165. package/web/.next/standalone/node_modules/cosmiconfig/dist/loaders.js +150 -0
  166. package/web/.next/standalone/node_modules/cosmiconfig/dist/merge.js +40 -0
  167. package/web/.next/standalone/node_modules/cosmiconfig/dist/readFile.js +56 -0
  168. package/web/.next/standalone/node_modules/cosmiconfig/dist/types.js +3 -0
  169. package/web/.next/standalone/node_modules/cosmiconfig/dist/util.js +99 -0
  170. package/web/.next/standalone/node_modules/cosmiconfig/package.json +103 -0
  171. package/web/.next/standalone/node_modules/data-uri-to-buffer/dist/common.js +54 -0
  172. package/web/.next/standalone/node_modules/data-uri-to-buffer/dist/node.js +26 -0
  173. package/web/.next/standalone/node_modules/data-uri-to-buffer/package.json +48 -0
  174. package/web/.next/standalone/node_modules/debug/package.json +64 -0
  175. package/web/.next/standalone/node_modules/debug/src/browser.js +272 -0
  176. package/web/.next/standalone/node_modules/debug/src/common.js +292 -0
  177. package/web/.next/standalone/node_modules/debug/src/index.js +10 -0
  178. package/web/.next/standalone/node_modules/debug/src/node.js +263 -0
  179. package/web/.next/standalone/node_modules/degenerator/dist/compile.js +107 -0
  180. package/web/.next/standalone/node_modules/degenerator/dist/degenerator.js +156 -0
  181. package/web/.next/standalone/node_modules/degenerator/dist/index.js +19 -0
  182. package/web/.next/standalone/node_modules/degenerator/package.json +42 -0
  183. package/web/.next/standalone/node_modules/end-of-stream/index.js +96 -0
  184. package/web/.next/standalone/node_modules/end-of-stream/package.json +37 -0
  185. package/web/.next/standalone/node_modules/env-paths/index.js +74 -0
  186. package/web/.next/standalone/node_modules/env-paths/license +9 -0
  187. package/web/.next/standalone/node_modules/env-paths/package.json +45 -0
  188. package/web/.next/standalone/node_modules/env-paths/readme.md +115 -0
  189. package/web/.next/standalone/node_modules/error-ex/index.js +141 -0
  190. package/web/.next/standalone/node_modules/error-ex/package.json +46 -0
  191. package/web/.next/standalone/node_modules/escalade/package.json +74 -0
  192. package/web/.next/standalone/node_modules/escalade/sync/index.d.mts +9 -0
  193. package/web/.next/standalone/node_modules/escalade/sync/index.js +18 -0
  194. package/web/.next/standalone/node_modules/escalade/sync/index.mjs +18 -0
  195. package/web/.next/standalone/node_modules/escodegen/escodegen.js +2667 -0
  196. package/web/.next/standalone/node_modules/escodegen/package.json +63 -0
  197. package/web/.next/standalone/node_modules/esprima/dist/esprima.js +6709 -0
  198. package/web/.next/standalone/node_modules/esprima/package.json +112 -0
  199. package/web/.next/standalone/node_modules/estraverse/estraverse.js +805 -0
  200. package/web/.next/standalone/node_modules/estraverse/package.json +40 -0
  201. package/web/.next/standalone/node_modules/esutils/lib/ast.js +144 -0
  202. package/web/.next/standalone/node_modules/esutils/lib/code.js +135 -0
  203. package/web/.next/standalone/node_modules/esutils/lib/keyword.js +165 -0
  204. package/web/.next/standalone/node_modules/esutils/lib/utils.js +33 -0
  205. package/web/.next/standalone/node_modules/esutils/package.json +44 -0
  206. package/web/.next/standalone/node_modules/events-universal/default.js +1 -0
  207. package/web/.next/standalone/node_modules/events-universal/package.json +39 -0
  208. package/web/.next/standalone/node_modules/extract-zip/LICENSE +23 -0
  209. package/web/.next/standalone/node_modules/extract-zip/cli.js +19 -0
  210. package/web/.next/standalone/node_modules/extract-zip/index.js +173 -0
  211. package/web/.next/standalone/node_modules/extract-zip/package.json +80 -0
  212. package/web/.next/standalone/node_modules/extract-zip/readme.md +57 -0
  213. package/web/.next/standalone/node_modules/fast-fifo/fixed-size.js +39 -0
  214. package/web/.next/standalone/node_modules/fast-fifo/index.js +48 -0
  215. package/web/.next/standalone/node_modules/fast-fifo/package.json +28 -0
  216. package/web/.next/standalone/node_modules/fd-slicer/index.js +296 -0
  217. package/web/.next/standalone/node_modules/fd-slicer/package.json +36 -0
  218. package/web/.next/standalone/node_modules/get-stream/buffer-stream.js +52 -0
  219. package/web/.next/standalone/node_modules/get-stream/index.js +60 -0
  220. package/web/.next/standalone/node_modules/get-stream/package.json +50 -0
  221. package/web/.next/standalone/node_modules/get-uri/dist/data.js +43 -0
  222. package/web/.next/standalone/node_modules/get-uri/dist/file.js +57 -0
  223. package/web/.next/standalone/node_modules/get-uri/dist/ftp.js +93 -0
  224. package/web/.next/standalone/node_modules/get-uri/dist/http-error.js +15 -0
  225. package/web/.next/standalone/node_modules/get-uri/dist/http.js +191 -0
  226. package/web/.next/standalone/node_modules/get-uri/dist/https.js +16 -0
  227. package/web/.next/standalone/node_modules/get-uri/dist/index.js +57 -0
  228. package/web/.next/standalone/node_modules/get-uri/dist/notfound.js +16 -0
  229. package/web/.next/standalone/node_modules/get-uri/dist/notmodified.js +17 -0
  230. package/web/.next/standalone/node_modules/get-uri/package.json +58 -0
  231. package/web/.next/standalone/node_modules/http-proxy-agent/dist/index.js +148 -0
  232. package/web/.next/standalone/node_modules/http-proxy-agent/package.json +47 -0
  233. package/web/.next/standalone/node_modules/https-proxy-agent/dist/index.js +180 -0
  234. package/web/.next/standalone/node_modules/https-proxy-agent/dist/parse-proxy-response.js +101 -0
  235. package/web/.next/standalone/node_modules/https-proxy-agent/package.json +50 -0
  236. package/web/.next/standalone/node_modules/import-fresh/index.js +34 -0
  237. package/web/.next/standalone/node_modules/import-fresh/node_modules/resolve-from/index.js +47 -0
  238. package/web/.next/standalone/node_modules/import-fresh/node_modules/resolve-from/license +9 -0
  239. package/web/.next/standalone/node_modules/import-fresh/node_modules/resolve-from/package.json +34 -0
  240. package/web/.next/standalone/node_modules/import-fresh/node_modules/resolve-from/readme.md +72 -0
  241. package/web/.next/standalone/node_modules/import-fresh/package.json +48 -0
  242. package/web/.next/standalone/node_modules/ip-address/dist/address-error.js +12 -0
  243. package/web/.next/standalone/node_modules/ip-address/dist/common.js +46 -0
  244. package/web/.next/standalone/node_modules/ip-address/dist/ip-address.js +35 -0
  245. package/web/.next/standalone/node_modules/ip-address/dist/ipv4.js +360 -0
  246. package/web/.next/standalone/node_modules/ip-address/dist/ipv6.js +1003 -0
  247. package/web/.next/standalone/node_modules/ip-address/dist/v4/constants.js +8 -0
  248. package/web/.next/standalone/node_modules/ip-address/dist/v6/constants.js +76 -0
  249. package/web/.next/standalone/node_modules/ip-address/dist/v6/helpers.js +45 -0
  250. package/web/.next/standalone/node_modules/ip-address/dist/v6/regular-expressions.js +95 -0
  251. package/web/.next/standalone/node_modules/ip-address/package.json +78 -0
  252. package/web/.next/standalone/node_modules/is-arrayish/index.js +10 -0
  253. package/web/.next/standalone/node_modules/is-arrayish/package.json +34 -0
  254. package/web/.next/standalone/node_modules/js-tokens/index.js +23 -0
  255. package/web/.next/standalone/node_modules/js-tokens/package.json +30 -0
  256. package/web/.next/standalone/node_modules/js-yaml/index.js +47 -0
  257. package/web/.next/standalone/node_modules/js-yaml/lib/common.js +59 -0
  258. package/web/.next/standalone/node_modules/js-yaml/lib/dumper.js +965 -0
  259. package/web/.next/standalone/node_modules/js-yaml/lib/exception.js +55 -0
  260. package/web/.next/standalone/node_modules/js-yaml/lib/loader.js +1733 -0
  261. package/web/.next/standalone/node_modules/js-yaml/lib/schema/core.js +11 -0
  262. package/web/.next/standalone/node_modules/js-yaml/lib/schema/default.js +22 -0
  263. package/web/.next/standalone/node_modules/js-yaml/lib/schema/failsafe.js +17 -0
  264. package/web/.next/standalone/node_modules/js-yaml/lib/schema/json.js +19 -0
  265. package/web/.next/standalone/node_modules/js-yaml/lib/schema.js +121 -0
  266. package/web/.next/standalone/node_modules/js-yaml/lib/snippet.js +101 -0
  267. package/web/.next/standalone/node_modules/js-yaml/lib/type/binary.js +125 -0
  268. package/web/.next/standalone/node_modules/js-yaml/lib/type/bool.js +35 -0
  269. package/web/.next/standalone/node_modules/js-yaml/lib/type/float.js +97 -0
  270. package/web/.next/standalone/node_modules/js-yaml/lib/type/int.js +156 -0
  271. package/web/.next/standalone/node_modules/js-yaml/lib/type/map.js +8 -0
  272. package/web/.next/standalone/node_modules/js-yaml/lib/type/merge.js +12 -0
  273. package/web/.next/standalone/node_modules/js-yaml/lib/type/null.js +35 -0
  274. package/web/.next/standalone/node_modules/js-yaml/lib/type/omap.js +44 -0
  275. package/web/.next/standalone/node_modules/js-yaml/lib/type/pairs.js +53 -0
  276. package/web/.next/standalone/node_modules/js-yaml/lib/type/seq.js +8 -0
  277. package/web/.next/standalone/node_modules/js-yaml/lib/type/set.js +29 -0
  278. package/web/.next/standalone/node_modules/js-yaml/lib/type/str.js +8 -0
  279. package/web/.next/standalone/node_modules/js-yaml/lib/type/timestamp.js +88 -0
  280. package/web/.next/standalone/node_modules/js-yaml/lib/type.js +66 -0
  281. package/web/.next/standalone/node_modules/js-yaml/package.json +66 -0
  282. package/web/.next/standalone/node_modules/json-parse-even-better-errors/index.js +121 -0
  283. package/web/.next/standalone/node_modules/json-parse-even-better-errors/package.json +33 -0
  284. package/web/.next/standalone/node_modules/lines-and-columns/build/index.js +62 -0
  285. package/web/.next/standalone/node_modules/lines-and-columns/package.json +49 -0
  286. package/web/.next/standalone/node_modules/lru-cache/index.js +1227 -0
  287. package/web/.next/standalone/node_modules/lru-cache/package.json +96 -0
  288. package/web/.next/standalone/node_modules/ms/index.js +162 -0
  289. package/web/.next/standalone/node_modules/ms/package.json +38 -0
  290. package/web/.next/standalone/node_modules/netmask/lib/netmask.js +208 -0
  291. package/web/.next/standalone/node_modules/netmask/package.json +36 -0
  292. package/web/.next/standalone/node_modules/once/once.js +42 -0
  293. package/web/.next/standalone/node_modules/once/package.json +33 -0
  294. package/web/.next/standalone/node_modules/pac-proxy-agent/dist/index.js +238 -0
  295. package/web/.next/standalone/node_modules/pac-proxy-agent/package.json +58 -0
  296. package/web/.next/standalone/node_modules/pac-resolver/dist/dateRange.js +73 -0
  297. package/web/.next/standalone/node_modules/pac-resolver/dist/dnsDomainIs.js +30 -0
  298. package/web/.next/standalone/node_modules/pac-resolver/dist/dnsDomainLevels.js +28 -0
  299. package/web/.next/standalone/node_modules/pac-resolver/dist/dnsResolve.js +32 -0
  300. package/web/.next/standalone/node_modules/pac-resolver/dist/index.js +87 -0
  301. package/web/.next/standalone/node_modules/pac-resolver/dist/ip.js +50 -0
  302. package/web/.next/standalone/node_modules/pac-resolver/dist/isInNet.js +42 -0
  303. package/web/.next/standalone/node_modules/pac-resolver/dist/isPlainHostName.js +23 -0
  304. package/web/.next/standalone/node_modules/pac-resolver/dist/isResolvable.js +23 -0
  305. package/web/.next/standalone/node_modules/pac-resolver/dist/localHostOrDomainIs.js +40 -0
  306. package/web/.next/standalone/node_modules/pac-resolver/dist/myIpAddress.js +50 -0
  307. package/web/.next/standalone/node_modules/pac-resolver/dist/shExpMatch.js +41 -0
  308. package/web/.next/standalone/node_modules/pac-resolver/dist/timeRange.js +92 -0
  309. package/web/.next/standalone/node_modules/pac-resolver/dist/util.js +22 -0
  310. package/web/.next/standalone/node_modules/pac-resolver/dist/weekdayRange.js +91 -0
  311. package/web/.next/standalone/node_modules/pac-resolver/package.json +47 -0
  312. package/web/.next/standalone/node_modules/parent-module/index.js +37 -0
  313. package/web/.next/standalone/node_modules/parent-module/package.json +46 -0
  314. package/web/.next/standalone/node_modules/parse-json/index.js +54 -0
  315. package/web/.next/standalone/node_modules/parse-json/package.json +45 -0
  316. package/web/.next/standalone/node_modules/pend/index.js +55 -0
  317. package/web/.next/standalone/node_modules/pend/package.json +18 -0
  318. package/web/.next/standalone/node_modules/picocolors/package.json +25 -0
  319. package/web/.next/standalone/node_modules/picocolors/picocolors.js +75 -0
  320. package/web/.next/standalone/node_modules/progress/index.js +1 -0
  321. package/web/.next/standalone/node_modules/progress/lib/node-progress.js +236 -0
  322. package/web/.next/standalone/node_modules/progress/package.json +26 -0
  323. package/web/.next/standalone/node_modules/proxy-agent/dist/index.js +138 -0
  324. package/web/.next/standalone/node_modules/proxy-agent/package.json +60 -0
  325. package/web/.next/standalone/node_modules/proxy-from-env/index.js +108 -0
  326. package/web/.next/standalone/node_modules/proxy-from-env/package.json +34 -0
  327. package/web/.next/standalone/node_modules/pump/index.js +86 -0
  328. package/web/.next/standalone/node_modules/pump/package.json +30 -0
  329. package/web/.next/standalone/node_modules/puppeteer/lib/esm/package.json +1 -0
  330. package/web/.next/standalone/node_modules/puppeteer/lib/esm/puppeteer/getConfiguration.js +122 -0
  331. package/web/.next/standalone/node_modules/puppeteer/lib/esm/puppeteer/puppeteer.js +40 -0
  332. package/web/.next/standalone/node_modules/puppeteer/package.json +145 -0
  333. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/package.json +1 -0
  334. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/Browser.js +204 -0
  335. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/BrowserContext.js +182 -0
  336. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/CDPSession.js +68 -0
  337. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/DeviceRequestPrompt.js +34 -0
  338. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/Dialog.js +90 -0
  339. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/ElementHandle.js +1406 -0
  340. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/ElementHandleSymbol.js +10 -0
  341. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/Frame.js +904 -0
  342. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/HTTPRequest.js +461 -0
  343. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/HTTPResponse.js +56 -0
  344. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/Input.js +211 -0
  345. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/JSHandle.js +227 -0
  346. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/Page.js +1511 -0
  347. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/Realm.js +44 -0
  348. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/Target.js +49 -0
  349. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/WebWorker.js +106 -0
  350. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/api.js +22 -0
  351. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/api/locators/locators.js +769 -0
  352. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/bidi/BrowserConnector.js +83 -0
  353. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Accessibility.js +591 -0
  354. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Binding.js +162 -0
  355. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/BluetoothEmulation.js +26 -0
  356. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Browser.js +321 -0
  357. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/BrowserConnector.js +26 -0
  358. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/BrowserContext.js +192 -0
  359. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/CdpPreloadScript.js +39 -0
  360. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/CdpSession.js +129 -0
  361. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Connection.js +244 -0
  362. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Coverage.js +372 -0
  363. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js +151 -0
  364. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Dialog.js +23 -0
  365. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/ElementHandle.js +206 -0
  366. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/EmulationManager.js +458 -0
  367. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/ExecutionContext.js +457 -0
  368. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/ExtensionTransport.js +175 -0
  369. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Frame.js +358 -0
  370. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/FrameManager.js +455 -0
  371. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/FrameManagerEvents.js +24 -0
  372. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/FrameTree.js +91 -0
  373. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/HTTPRequest.js +195 -0
  374. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/HTTPResponse.js +126 -0
  375. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Input.js +499 -0
  376. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/IsolatedWorld.js +157 -0
  377. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/IsolatedWorlds.js +20 -0
  378. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/JSHandle.js +101 -0
  379. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/LifecycleWatcher.js +174 -0
  380. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/NetworkEventManager.js +162 -0
  381. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/NetworkManager.js +601 -0
  382. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Page.js +1006 -0
  383. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.js +69 -0
  384. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Target.js +243 -0
  385. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/TargetManageEvents.js +7 -0
  386. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/TargetManager.js +320 -0
  387. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Tracing.js +110 -0
  388. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/WebWorker.js +73 -0
  389. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/cdp.js +43 -0
  390. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/utils.js +216 -0
  391. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/AriaQueryHandler.js +54 -0
  392. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/BrowserConnector.js +129 -0
  393. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/BrowserWebSocketTransport.js +39 -0
  394. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/CSSQueryHandler.js +18 -0
  395. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js +133 -0
  396. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/ConsoleMessage.js +78 -0
  397. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/CustomQueryHandler.js +114 -0
  398. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/Debug.js +109 -0
  399. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/Device.js +1604 -0
  400. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/Errors.js +94 -0
  401. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/EventEmitter.js +128 -0
  402. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/FileChooser.js +75 -0
  403. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/GetQueryHandler.js +70 -0
  404. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/HandleIterator.js +142 -0
  405. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/LazyArg.js +23 -0
  406. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/NetworkManagerEvents.js +21 -0
  407. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/PDFOptions.js +58 -0
  408. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/PQueryHandler.js +18 -0
  409. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/PSelectorParser.js +100 -0
  410. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/PierceQueryHandler.js +18 -0
  411. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/Puppeteer.js +98 -0
  412. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/QueryHandler.js +225 -0
  413. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/ScriptInjector.js +51 -0
  414. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/SecurityDetails.js +69 -0
  415. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/TaskQueue.js +24 -0
  416. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/TextQueryHandler.js +15 -0
  417. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/TimeoutSettings.js +39 -0
  418. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/USKeyboardLayout.js +394 -0
  419. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/WaitTask.js +197 -0
  420. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/XPathQueryHandler.js +21 -0
  421. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/common.js +35 -0
  422. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/common/util.js +375 -0
  423. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/environment.js +24 -0
  424. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/generated/injected.js +9 -0
  425. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/index-browser.js +11 -0
  426. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/index.js +8 -0
  427. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/node/BrowserLauncher.js +312 -0
  428. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/node/ChromeLauncher.js +258 -0
  429. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/node/FirefoxLauncher.js +166 -0
  430. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/node/LaunchOptions.js +22 -0
  431. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/node/NodeWebSocketTransport.js +55 -0
  432. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/node/PipeTransport.js +72 -0
  433. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/node/PuppeteerNode.js +281 -0
  434. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/node/ScreenRecorder.js +279 -0
  435. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/node/node.js +12 -0
  436. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/node/util/fs.js +24 -0
  437. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/puppeteer-core.js +41 -0
  438. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/revisions.js +14 -0
  439. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/util/AsyncIterableUtil.js +29 -0
  440. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/util/Deferred.js +105 -0
  441. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/util/ErrorLike.js +41 -0
  442. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/util/Function.js +70 -0
  443. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/util/Mutex.js +46 -0
  444. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/util/assert.js +18 -0
  445. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/util/decorators.js +232 -0
  446. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/util/disposable.js +342 -0
  447. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/util/encoding.js +63 -0
  448. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/util/incremental-id-generator.js +18 -0
  449. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/util/util.js +13 -0
  450. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/puppeteer/util/version.js +10 -0
  451. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/third_party/mitt/mitt.js +44 -0
  452. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/third_party/parsel-js/parsel-js.js +196 -0
  453. package/web/.next/standalone/node_modules/puppeteer-core/lib/esm/third_party/rxjs/rxjs.js +2887 -0
  454. package/web/.next/standalone/node_modules/puppeteer-core/package.json +169 -0
  455. package/web/.next/standalone/node_modules/semver/functions/clean.js +8 -0
  456. package/web/.next/standalone/node_modules/semver/functions/compare-build.js +9 -0
  457. package/web/.next/standalone/node_modules/semver/functions/compare-loose.js +5 -0
  458. package/web/.next/standalone/node_modules/semver/functions/diff.js +60 -0
  459. package/web/.next/standalone/node_modules/semver/functions/inc.js +21 -0
  460. package/web/.next/standalone/node_modules/semver/functions/major.js +5 -0
  461. package/web/.next/standalone/node_modules/semver/functions/minor.js +5 -0
  462. package/web/.next/standalone/node_modules/semver/functions/patch.js +5 -0
  463. package/web/.next/standalone/node_modules/semver/functions/prerelease.js +8 -0
  464. package/web/.next/standalone/node_modules/semver/functions/rcompare.js +5 -0
  465. package/web/.next/standalone/node_modules/semver/functions/rsort.js +5 -0
  466. package/web/.next/standalone/node_modules/semver/functions/sort.js +5 -0
  467. package/web/.next/standalone/node_modules/semver/functions/valid.js +8 -0
  468. package/web/.next/standalone/node_modules/semver/index.js +91 -0
  469. package/web/.next/standalone/node_modules/semver/ranges/gtr.js +6 -0
  470. package/web/.next/standalone/node_modules/semver/ranges/intersects.js +9 -0
  471. package/web/.next/standalone/node_modules/semver/ranges/ltr.js +6 -0
  472. package/web/.next/standalone/node_modules/semver/ranges/max-satisfying.js +27 -0
  473. package/web/.next/standalone/node_modules/semver/ranges/min-satisfying.js +26 -0
  474. package/web/.next/standalone/node_modules/semver/ranges/min-version.js +63 -0
  475. package/web/.next/standalone/node_modules/semver/ranges/outside.js +82 -0
  476. package/web/.next/standalone/node_modules/semver/ranges/simplify.js +49 -0
  477. package/web/.next/standalone/node_modules/semver/ranges/subset.js +249 -0
  478. package/web/.next/standalone/node_modules/semver/ranges/to-comparators.js +10 -0
  479. package/web/.next/standalone/node_modules/semver/ranges/valid.js +13 -0
  480. package/web/.next/standalone/node_modules/smart-buffer/build/smartbuffer.js +1233 -0
  481. package/web/.next/standalone/node_modules/smart-buffer/build/utils.js +108 -0
  482. package/web/.next/standalone/node_modules/smart-buffer/package.json +79 -0
  483. package/web/.next/standalone/node_modules/socks/build/client/socksclient.js +793 -0
  484. package/web/.next/standalone/node_modules/socks/build/common/constants.js +108 -0
  485. package/web/.next/standalone/node_modules/socks/build/common/helpers.js +167 -0
  486. package/web/.next/standalone/node_modules/socks/build/common/receivebuffer.js +43 -0
  487. package/web/.next/standalone/node_modules/socks/build/common/util.js +25 -0
  488. package/web/.next/standalone/node_modules/socks/build/index.js +18 -0
  489. package/web/.next/standalone/node_modules/socks/package.json +58 -0
  490. package/web/.next/standalone/node_modules/socks-proxy-agent/dist/index.js +195 -0
  491. package/web/.next/standalone/node_modules/socks-proxy-agent/package.json +142 -0
  492. package/web/.next/standalone/node_modules/source-map/lib/array-set.js +121 -0
  493. package/web/.next/standalone/node_modules/source-map/lib/base64-vlq.js +140 -0
  494. package/web/.next/standalone/node_modules/source-map/lib/base64.js +67 -0
  495. package/web/.next/standalone/node_modules/source-map/lib/binary-search.js +111 -0
  496. package/web/.next/standalone/node_modules/source-map/lib/mapping-list.js +79 -0
  497. package/web/.next/standalone/node_modules/source-map/lib/quick-sort.js +114 -0
  498. package/web/.next/standalone/node_modules/source-map/lib/source-map-consumer.js +1145 -0
  499. package/web/.next/standalone/node_modules/source-map/lib/source-map-generator.js +425 -0
  500. package/web/.next/standalone/node_modules/source-map/lib/source-node.js +413 -0
  501. package/web/.next/standalone/node_modules/source-map/lib/util.js +488 -0
  502. package/web/.next/standalone/node_modules/source-map/package.json +73 -0
  503. package/web/.next/standalone/node_modules/source-map/source-map.js +8 -0
  504. package/web/.next/standalone/node_modules/streamx/index.js +1184 -0
  505. package/web/.next/standalone/node_modules/streamx/package.json +34 -0
  506. package/web/.next/standalone/node_modules/tar-fs/LICENSE +21 -0
  507. package/web/.next/standalone/node_modules/tar-fs/README.md +154 -0
  508. package/web/.next/standalone/node_modules/tar-fs/index.js +400 -0
  509. package/web/.next/standalone/node_modules/tar-fs/package.json +61 -0
  510. package/web/.next/standalone/node_modules/tar-stream/constants.js +14 -0
  511. package/web/.next/standalone/node_modules/tar-stream/extract.js +406 -0
  512. package/web/.next/standalone/node_modules/tar-stream/headers.js +321 -0
  513. package/web/.next/standalone/node_modules/tar-stream/index.js +2 -0
  514. package/web/.next/standalone/node_modules/tar-stream/pack.js +287 -0
  515. package/web/.next/standalone/node_modules/tar-stream/package.json +42 -0
  516. package/web/.next/standalone/node_modules/text-decoder/index.js +64 -0
  517. package/web/.next/standalone/node_modules/text-decoder/lib/pass-through-decoder.js +19 -0
  518. package/web/.next/standalone/node_modules/text-decoder/lib/utf8-decoder.js +185 -0
  519. package/web/.next/standalone/node_modules/text-decoder/package.json +39 -0
  520. package/web/.next/standalone/node_modules/tslib/package.json +47 -0
  521. package/web/.next/standalone/node_modules/tslib/tslib.js +484 -0
  522. package/web/.next/standalone/node_modules/wrappy/package.json +29 -0
  523. package/web/.next/standalone/node_modules/wrappy/wrappy.js +33 -0
  524. package/web/.next/standalone/node_modules/ws/lib/buffer-util.js +131 -0
  525. package/web/.next/standalone/node_modules/ws/lib/constants.js +19 -0
  526. package/web/.next/standalone/node_modules/ws/lib/event-target.js +292 -0
  527. package/web/.next/standalone/node_modules/ws/lib/extension.js +203 -0
  528. package/web/.next/standalone/node_modules/ws/lib/limiter.js +55 -0
  529. package/web/.next/standalone/node_modules/ws/lib/permessage-deflate.js +528 -0
  530. package/web/.next/standalone/node_modules/ws/lib/receiver.js +706 -0
  531. package/web/.next/standalone/node_modules/ws/lib/sender.js +602 -0
  532. package/web/.next/standalone/node_modules/ws/lib/stream.js +161 -0
  533. package/web/.next/standalone/node_modules/ws/lib/subprotocol.js +62 -0
  534. package/web/.next/standalone/node_modules/ws/lib/validation.js +152 -0
  535. package/web/.next/standalone/node_modules/ws/lib/websocket-server.js +554 -0
  536. package/web/.next/standalone/node_modules/ws/lib/websocket.js +1393 -0
  537. package/web/.next/standalone/node_modules/ws/package.json +69 -0
  538. package/web/.next/standalone/node_modules/ws/wrapper.mjs +8 -0
  539. package/web/.next/standalone/node_modules/y18n/build/lib/index.js +174 -0
  540. package/web/.next/standalone/node_modules/y18n/build/lib/platform-shims/node.js +19 -0
  541. package/web/.next/standalone/node_modules/y18n/index.mjs +8 -0
  542. package/web/.next/standalone/node_modules/y18n/package.json +70 -0
  543. package/web/.next/standalone/node_modules/yargs/build/lib/argsert.js +62 -0
  544. package/web/.next/standalone/node_modules/yargs/build/lib/command.js +449 -0
  545. package/web/.next/standalone/node_modules/yargs/build/lib/completion-templates.js +48 -0
  546. package/web/.next/standalone/node_modules/yargs/build/lib/completion.js +243 -0
  547. package/web/.next/standalone/node_modules/yargs/build/lib/middleware.js +88 -0
  548. package/web/.next/standalone/node_modules/yargs/build/lib/parse-command.js +32 -0
  549. package/web/.next/standalone/node_modules/yargs/build/lib/typings/common-types.js +9 -0
  550. package/web/.next/standalone/node_modules/yargs/build/lib/usage.js +584 -0
  551. package/web/.next/standalone/node_modules/yargs/build/lib/utils/apply-extends.js +59 -0
  552. package/web/.next/standalone/node_modules/yargs/build/lib/utils/is-promise.js +5 -0
  553. package/web/.next/standalone/node_modules/yargs/build/lib/utils/levenshtein.js +34 -0
  554. package/web/.next/standalone/node_modules/yargs/build/lib/utils/maybe-async-result.js +17 -0
  555. package/web/.next/standalone/node_modules/yargs/build/lib/utils/obj-filter.js +10 -0
  556. package/web/.next/standalone/node_modules/yargs/build/lib/utils/process-argv.js +17 -0
  557. package/web/.next/standalone/node_modules/yargs/build/lib/utils/set-blocking.js +12 -0
  558. package/web/.next/standalone/node_modules/yargs/build/lib/utils/which-module.js +10 -0
  559. package/web/.next/standalone/node_modules/yargs/build/lib/validation.js +305 -0
  560. package/web/.next/standalone/node_modules/yargs/build/lib/yargs-factory.js +1512 -0
  561. package/web/.next/standalone/node_modules/yargs/build/lib/yerror.js +9 -0
  562. package/web/.next/standalone/node_modules/yargs/helpers/helpers.mjs +10 -0
  563. package/web/.next/standalone/node_modules/yargs/index.mjs +8 -0
  564. package/web/.next/standalone/node_modules/yargs/lib/platform-shims/esm.mjs +73 -0
  565. package/web/.next/standalone/node_modules/yargs/package.json +123 -0
  566. package/web/.next/standalone/node_modules/yargs-parser/build/lib/index.js +62 -0
  567. package/web/.next/standalone/node_modules/yargs-parser/build/lib/string-utils.js +65 -0
  568. package/web/.next/standalone/node_modules/yargs-parser/build/lib/tokenize-arg-string.js +40 -0
  569. package/web/.next/standalone/node_modules/yargs-parser/build/lib/yargs-parser-types.js +12 -0
  570. package/web/.next/standalone/node_modules/yargs-parser/build/lib/yargs-parser.js +1045 -0
  571. package/web/.next/standalone/node_modules/yargs-parser/package.json +92 -0
  572. package/web/.next/standalone/node_modules/yauzl/LICENSE +21 -0
  573. package/web/.next/standalone/node_modules/yauzl/README.md +658 -0
  574. package/web/.next/standalone/node_modules/yauzl/index.js +796 -0
  575. package/web/.next/standalone/node_modules/yauzl/package.json +40 -0
  576. package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
  577. package/web/.next/standalone/packages/web/.next/app-path-routes-manifest.json +10 -0
  578. package/web/.next/standalone/packages/web/.next/build-manifest.json +6 -6
  579. package/web/.next/standalone/packages/web/.next/node_modules/puppeteer-582bc9288a971b4a/lib/esm/package.json +1 -0
  580. package/web/.next/standalone/packages/web/.next/node_modules/puppeteer-582bc9288a971b4a/lib/esm/puppeteer/getConfiguration.js +122 -0
  581. package/web/.next/standalone/packages/web/.next/node_modules/puppeteer-582bc9288a971b4a/lib/esm/puppeteer/puppeteer.js +40 -0
  582. package/web/.next/standalone/packages/web/.next/node_modules/puppeteer-582bc9288a971b4a/package.json +145 -0
  583. package/web/.next/standalone/packages/web/.next/prerender-manifest.json +3 -27
  584. package/web/.next/standalone/packages/web/.next/routes-manifest.json +70 -0
  585. package/web/.next/standalone/packages/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  586. package/web/.next/standalone/packages/web/.next/server/app/_global-error/page.js +1 -1
  587. package/web/.next/standalone/packages/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  588. package/web/.next/standalone/packages/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  589. package/web/.next/standalone/packages/web/.next/server/app/_global-error.html +2 -2
  590. package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
  591. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  592. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  593. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  594. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  595. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  596. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  597. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page/server-reference-manifest.json +7 -7
  598. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js +10 -7
  599. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  600. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  601. package/web/.next/standalone/packages/web/.next/server/app/_not-found.html +1 -1
  602. package/web/.next/standalone/packages/web/.next/server/app/_not-found.rsc +15 -14
  603. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +15 -14
  604. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  605. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +6 -5
  606. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  607. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  608. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  609. package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js +3 -3
  610. package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js.nft.json +1 -1
  611. package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js +5 -4
  612. package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js.nft.json +1 -1
  613. package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route/app-paths-manifest.json +3 -0
  614. package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route/build-manifest.json +11 -0
  615. package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route/server-reference-manifest.json +4 -0
  616. package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route.js +10 -0
  617. package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route.js.map +5 -0
  618. package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route.js.nft.json +1 -0
  619. package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route_client-reference-manifest.js +2 -0
  620. package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js +3 -3
  621. package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js.nft.json +1 -1
  622. package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route.js +3 -3
  623. package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route.js.nft.json +1 -1
  624. package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route/app-paths-manifest.json +3 -0
  625. package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route/build-manifest.json +11 -0
  626. package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route/server-reference-manifest.json +4 -0
  627. package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route.js +10 -0
  628. package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route.js.map +5 -0
  629. package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route.js.nft.json +1 -0
  630. package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route_client-reference-manifest.js +2 -0
  631. package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js +3 -3
  632. package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js.nft.json +1 -1
  633. package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js +3 -3
  634. package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js.nft.json +1 -1
  635. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route/app-paths-manifest.json +3 -0
  636. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route/build-manifest.json +11 -0
  637. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route/server-reference-manifest.json +4 -0
  638. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route.js +10 -0
  639. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route.js.map +5 -0
  640. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route.js.nft.json +1 -0
  641. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route_client-reference-manifest.js +2 -0
  642. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js +3 -3
  643. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js.nft.json +1 -1
  644. package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js +3 -3
  645. package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js.nft.json +1 -1
  646. package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js +3 -3
  647. package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js.nft.json +1 -1
  648. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js +3 -3
  649. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js.nft.json +1 -1
  650. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js +3 -3
  651. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js.nft.json +1 -1
  652. package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js +3 -3
  653. package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js.nft.json +1 -1
  654. package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route/app-paths-manifest.json +3 -0
  655. package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route/build-manifest.json +11 -0
  656. package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route/server-reference-manifest.json +4 -0
  657. package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route.js +10 -0
  658. package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route.js.map +5 -0
  659. package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route.js.nft.json +1 -0
  660. package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route_client-reference-manifest.js +2 -0
  661. package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js +3 -3
  662. package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js.nft.json +1 -1
  663. package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js +3 -3
  664. package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js.nft.json +1 -1
  665. package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js +3 -3
  666. package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js.nft.json +1 -1
  667. package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js +3 -3
  668. package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js.nft.json +1 -1
  669. package/web/.next/standalone/packages/web/.next/server/app/api/remote-access/route/app-paths-manifest.json +3 -0
  670. package/web/.next/standalone/packages/web/.next/server/app/api/remote-access/route/build-manifest.json +11 -0
  671. package/web/.next/standalone/packages/web/.next/server/app/api/remote-access/route/server-reference-manifest.json +4 -0
  672. package/web/.next/standalone/packages/web/.next/server/app/api/remote-access/route.js +11 -0
  673. package/web/.next/standalone/packages/web/.next/server/app/api/remote-access/route.js.map +5 -0
  674. package/web/.next/standalone/packages/web/.next/server/app/api/remote-access/route.js.nft.json +1 -0
  675. package/web/.next/standalone/packages/web/.next/server/app/api/remote-access/route_client-reference-manifest.js +2 -0
  676. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js +3 -3
  677. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  678. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js +3 -3
  679. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js.nft.json +1 -1
  680. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js +3 -3
  681. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js.nft.json +1 -1
  682. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js +3 -3
  683. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
  684. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js +3 -3
  685. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js.nft.json +1 -1
  686. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js +3 -3
  687. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js.nft.json +1 -1
  688. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/route.js +3 -3
  689. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/route.js.nft.json +1 -1
  690. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/stream/route/app-paths-manifest.json +3 -0
  691. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/stream/route/build-manifest.json +11 -0
  692. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/stream/route/server-reference-manifest.json +4 -0
  693. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/stream/route.js +10 -0
  694. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/stream/route.js.map +5 -0
  695. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/stream/route.js.nft.json +1 -0
  696. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/stream/route_client-reference-manifest.js +2 -0
  697. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js +3 -3
  698. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js.nft.json +1 -1
  699. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js +3 -3
  700. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js.nft.json +1 -1
  701. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route/app-paths-manifest.json +3 -0
  702. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route/build-manifest.json +11 -0
  703. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route/server-reference-manifest.json +4 -0
  704. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route.js +10 -0
  705. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route.js.map +5 -0
  706. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route.js.nft.json +1 -0
  707. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route_client-reference-manifest.js +2 -0
  708. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js +3 -3
  709. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js.nft.json +1 -1
  710. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js +3 -3
  711. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js.nft.json +1 -1
  712. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js +3 -3
  713. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js.nft.json +1 -1
  714. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js +3 -3
  715. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js.nft.json +1 -1
  716. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route/app-paths-manifest.json +3 -0
  717. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route/build-manifest.json +11 -0
  718. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route/server-reference-manifest.json +4 -0
  719. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route.js +10 -0
  720. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route.js.map +5 -0
  721. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route.js.nft.json +1 -0
  722. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route_client-reference-manifest.js +2 -0
  723. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route/app-paths-manifest.json +3 -0
  724. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route/build-manifest.json +11 -0
  725. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route/server-reference-manifest.json +4 -0
  726. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route.js +10 -0
  727. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route.js.map +5 -0
  728. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route.js.nft.json +1 -0
  729. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route_client-reference-manifest.js +2 -0
  730. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route/app-paths-manifest.json +3 -0
  731. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route/build-manifest.json +11 -0
  732. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route/server-reference-manifest.json +4 -0
  733. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route.js +10 -0
  734. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route.js.map +5 -0
  735. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route.js.nft.json +1 -0
  736. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route_client-reference-manifest.js +2 -0
  737. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js +3 -3
  738. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -1
  739. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js +3 -3
  740. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  741. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js +3 -3
  742. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js.nft.json +1 -1
  743. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js +3 -3
  744. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
  745. package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js +3 -3
  746. package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js.nft.json +1 -1
  747. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js +3 -3
  748. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js.nft.json +1 -1
  749. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js +3 -3
  750. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  751. package/web/.next/standalone/packages/web/.next/server/app/auth/grant/route.js +1 -1
  752. package/web/.next/standalone/packages/web/.next/server/app/auth/grant/route.js.nft.json +1 -1
  753. package/web/.next/standalone/packages/web/.next/server/app/icon.svg/route.js +1 -1
  754. package/web/.next/standalone/packages/web/.next/server/app/icon.svg/route.js.nft.json +1 -1
  755. package/web/.next/standalone/packages/web/.next/server/app/page/build-manifest.json +4 -4
  756. package/web/.next/standalone/packages/web/.next/server/app/page/react-loadable-manifest.json +4 -3
  757. package/web/.next/standalone/packages/web/.next/server/app/page/server-reference-manifest.json +7 -7
  758. package/web/.next/standalone/packages/web/.next/server/app/page.js +13 -9
  759. package/web/.next/standalone/packages/web/.next/server/app/page.js.nft.json +1 -1
  760. package/web/.next/standalone/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
  761. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page/build-manifest.json +4 -4
  762. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page/server-reference-manifest.json +7 -7
  763. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js +13 -9
  764. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  765. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  766. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page/build-manifest.json +4 -4
  767. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page/server-reference-manifest.json +7 -7
  768. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js +10 -7
  769. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js.nft.json +1 -1
  770. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page_client-reference-manifest.js +1 -1
  771. package/web/.next/standalone/packages/web/.next/server/app/unlock/page/build-manifest.json +4 -4
  772. package/web/.next/standalone/packages/web/.next/server/app/unlock/page/server-reference-manifest.json +7 -7
  773. package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js +11 -8
  774. package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js.nft.json +1 -1
  775. package/web/.next/standalone/packages/web/.next/server/app/unlock/page_client-reference-manifest.js +1 -1
  776. package/web/.next/standalone/packages/web/.next/server/app-paths-manifest.json +10 -0
  777. package/web/.next/standalone/packages/web/.next/server/chunks/26076_server_app_api_sessions_[id]_preview_screenshot_route_actions_dcbbcaf6.js +3 -0
  778. package/web/.next/standalone/packages/web/.next/server/chunks/29f24__next-internal_server_app_api_sessions_[id]_feed_stream_route_actions_1262f517.js +3 -0
  779. package/web/.next/standalone/packages/web/.next/server/chunks/29f24__next-internal_server_app_api_sessions_[id]_interrupt_route_actions_89990829.js +3 -0
  780. package/web/.next/standalone/packages/web/.next/server/chunks/29f24__next-internal_server_app_api_sessions_[id]_preview_dom_route_actions_fb81dadb.js +3 -0
  781. package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_boards_comments_route_actions_7acfa960.js +3 -0
  782. package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_context-files_open_route_actions_ffa7eab4.js +3 -0
  783. package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_sessions_[id]_preview_route_actions_9f632c66.js +3 -0
  784. package/web/.next/standalone/packages/web/.next/server/chunks/[externals]__06cd15c5._.js +3 -0
  785. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__0c7f79b1._.js → [root-of-the-server]__025155ac._.js} +1 -1
  786. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__144e8e60._.js → [root-of-the-server]__03277e82._.js} +1 -1
  787. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__16d4a78f._.js → [root-of-the-server]__03d02e36._.js} +1 -1
  788. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__095ffdaa._.js → [root-of-the-server]__06d0fa23._.js} +1 -1
  789. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__07d320fc._.js +3 -0
  790. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__09d81126._.js +3 -0
  791. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__0a4bdecd._.js +3 -0
  792. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__0d3270b2._.js +3 -0
  793. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__0f87f848._.js +3 -0
  794. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__120e7cdf._.js +3 -0
  795. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__186317eb._.js +3 -0
  796. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1888a793._.js +3 -0
  797. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1ae07be2._.js +3 -0
  798. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1b995ded._.js +3 -0
  799. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1c1c0e68._.js +3 -0
  800. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1ce34a21._.js +3 -0
  801. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__228603ec._.js +3 -0
  802. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__256d4deb._.js +3 -0
  803. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2a02fc49._.js +3 -0
  804. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2ce39d51._.js +1 -1
  805. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2d6ad93c._.js +3 -0
  806. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__31703e2b._.js +3 -0
  807. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__394943dc._.js +3 -0
  808. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3bab2cf7._.js +3 -0
  809. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3f48e8a2._.js +3 -0
  810. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__405fc5bc._.js +3 -0
  811. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__412dec17._.js +3 -0
  812. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__428f1837._.js +3 -0
  813. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__446f586e._.js +3 -0
  814. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__46ba5636._.js +3 -0
  815. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__49e358a8._.js +3 -0
  816. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4a3e9ddd._.js +3 -0
  817. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4d8a3fa3._.js +3 -0
  818. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5dc7cf0d._.js +3 -0
  819. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5fd67791._.js +3 -0
  820. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__61a55b93._.js +3 -0
  821. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__621d9bca._.js +3 -0
  822. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6313c91e._.js +28 -0
  823. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__65fcccc8._.js +3 -0
  824. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__668ff2cd._.js +3 -0
  825. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__66e8ccce._.js +3 -0
  826. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6b163dd7._.js +3 -0
  827. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6c5a5852._.js +3 -0
  828. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__73601621._.js +3 -0
  829. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__747ac51a._.js +3 -0
  830. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__78d6e137._.js +3 -0
  831. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7dac9015._.js +3 -0
  832. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7e929085._.js +3 -0
  833. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7fcfdb86._.js +3 -0
  834. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__80fb443b._.js +3 -0
  835. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__85538066._.js +3 -0
  836. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__85b114a2._.js +3 -0
  837. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__865615a6._.js +3 -0
  838. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__893cfe3c._.js +3 -0
  839. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__90d02df4._.js +3 -0
  840. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__925bed49._.js +3 -0
  841. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__95440fe8._.js +3 -0
  842. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__968aabbd._.js +3 -0
  843. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__97658502._.js +3 -0
  844. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__9b2f424f._.js +3 -0
  845. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__9ca51739._.js +3 -0
  846. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a45d3a1d._.js +3 -0
  847. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b5c89bad._.js +3 -0
  848. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b73a3118._.js +3 -0
  849. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c06cb06b._.js +3 -0
  850. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c624410f._.js +3 -0
  851. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c6ecf2e6._.js +3 -0
  852. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c9626ece._.js +3 -0
  853. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c9b787f4._.js +3 -0
  854. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cb1e2942._.js +3 -0
  855. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cb29be7d._.js +3 -0
  856. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cc4964a5._.js +3 -0
  857. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cdcdbbe3._.js +3 -0
  858. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ce529f57._.js +3 -0
  859. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cfaae401._.js +3 -0
  860. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d2afbd4e._.js +3 -0
  861. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d62bf196._.js +3 -0
  862. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d8cd86c9._.js +3 -0
  863. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__de098ee1._.js +3 -0
  864. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e0d759be._.js +3 -0
  865. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e6181b22._.js +3 -0
  866. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e633102f._.js +3 -0
  867. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ea845f9f._.js +7 -0
  868. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__eabdec9e._.js +3 -0
  869. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__eb0c88b2._.js +3 -0
  870. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ececfccf._.js +3 -0
  871. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ed83cdf3._.js +3 -0
  872. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__eda7b9ea._.js +3 -0
  873. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ef38eeb2._.js +3 -0
  874. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__efbfac9f._.js +3 -0
  875. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__efd26bfc._.js +3 -0
  876. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f12a3bd3._.js +3 -0
  877. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f4786ce9._.js +3 -0
  878. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f4d63c18._.js +3 -0
  879. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f8ebc9db._.js +3 -0
  880. package/web/.next/standalone/packages/web/.next/server/chunks/_2c837d66._.js +80 -0
  881. package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_5eb57175.js +6 -0
  882. package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_eaad1f33.js +3 -0
  883. package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_app-update_route_actions_67fa9ca7.js +3 -0
  884. package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_github_webhook_route_actions_16ed82df.js +3 -0
  885. package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_remote-access_route_actions_5ebfaea6.js +3 -0
  886. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[externals]_node:async_hooks_b485b2a4._.js +3 -0
  887. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__000b8c99._.js +4 -0
  888. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__009ce29c._.js +3 -0
  889. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__010700d3._.js +3 -0
  890. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0aa08967._.js +3 -0
  891. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__11ca851a._.js +3 -0
  892. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__29091976._.js +3 -0
  893. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__29d8d063._.js +4 -0
  894. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__4168e031._.js +3 -0
  895. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__5fccda2c._.js +3 -0
  896. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__525ee5d4._.js → [root-of-the-server]__85aece6a._.js} +2 -2
  897. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__8a6b25f0._.js +3 -0
  898. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__8bcf983b._.js +1 -1
  899. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__a3c8291e._.js +3 -0
  900. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__b388693f._.js +1 -1
  901. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__d1efcbf0._.js +3 -0
  902. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__d800fc87._.js +3 -0
  903. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__e6f079d9._.js +3 -0
  904. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_0e1412de._.js +1 -1
  905. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_1f2460d5._.js +3 -0
  906. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_230c0c14._.js +80 -0
  907. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_27fe5f5d._.js +1 -1
  908. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_69e05fca._.js +1 -1
  909. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_6cfd06c2._.js +3 -0
  910. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_7321b77f._.js +1 -1
  911. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_80efe193._.js +1 -1
  912. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_8982bbf3._.js +3 -0
  913. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_9f3d31e1._.js +1 -1
  914. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_b214b154._.js +3 -0
  915. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_b6d31783._.js +1 -1
  916. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_c0f0e227._.js +1 -1
  917. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_c9612a3a._.js +1 -1
  918. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_e1c18705._.js +3 -0
  919. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_f36ddaa9._.js +1 -1
  920. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_270cb834._.js +1 -1
  921. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_8d94411c._.js +3 -0
  922. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_3d65ee57._.js +24 -0
  923. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_902120fe._.js +31 -0
  924. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{node_modules_@clerk_nextjs_dist_esm_app-router_57153687._.js → node_modules_@clerk_nextjs_dist_esm_app-router_0a811c5a._.js} +2 -2
  925. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_2c78c2f3._.js +3 -0
  926. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_server_index_a054612e.js +3 -0
  927. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@radix-ui_02f0d3f0._.js +3 -0
  928. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_message-square_2e76b8d9.js +3 -0
  929. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_next_a9871523._.js +14 -0
  930. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_next_ae5d7b42._.js +3 -0
  931. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{node_modules_next_2a43e292._.js → node_modules_next_c73d6895._.js} +2 -2
  932. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_next_dist_08570d7f._.js +1 -1
  933. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_next_dist_65e60196._.js +1 -1
  934. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_next_dist_891f7b49._.js +6 -0
  935. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_cd51dad4.js +1 -1
  936. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js +1 -1
  937. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_board_WorkspaceKanban_tsx_735b7999._.js +1 -1
  938. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_ui_Tooltip_tsx_6becc8ca._.js +3 -0
  939. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_features_dashboard_DashboardClient_tsx_81ae42b0._.js +3 -0
  940. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_lib_cn_ts_d08d265f._.js +3 -0
  941. package/web/.next/standalone/packages/web/.next/server/functions-config-manifest.json +7 -5
  942. package/web/.next/standalone/packages/web/.next/server/middleware-build-manifest.js +4 -4
  943. package/web/.next/standalone/packages/web/.next/server/middleware.js +2 -4
  944. package/web/.next/standalone/packages/web/.next/server/pages/404.html +1 -1
  945. package/web/.next/standalone/packages/web/.next/server/pages/500.html +2 -2
  946. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
  947. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.json +8 -8
  948. package/web/.next/standalone/packages/web/.next/static/{8a_zZln8ezVAo0jAilwbF → E4-NvSai1Ps20r9dtdpps}/_clientMiddlewareManifest.json +0 -4
  949. package/web/.next/standalone/packages/web/.next/static/chunks/006a91a252482204.js +1 -0
  950. package/web/.next/standalone/packages/web/.next/static/chunks/07f3b9a104ce0ff4.js +1 -0
  951. package/web/.next/standalone/packages/web/.next/static/chunks/1004422d31074d62.js +1 -0
  952. package/web/.next/standalone/packages/web/.next/static/chunks/{12d9b4273416fe9b.js → 28eac764d6544827.js} +1 -1
  953. package/web/.next/standalone/packages/web/.next/static/chunks/2e2e8fd2ceca47dc.js +6 -0
  954. package/web/.next/standalone/packages/web/.next/static/chunks/30ababddac1b82dc.js +1 -0
  955. package/web/.next/standalone/packages/web/.next/static/chunks/3349bdab17ed1183.js +1 -0
  956. package/web/.next/standalone/packages/web/.next/static/chunks/3770166bed1577ce.js +4 -0
  957. package/web/.next/standalone/packages/web/.next/static/chunks/4c3afea55dd8bc93.js +1 -0
  958. package/web/.next/standalone/packages/web/.next/static/chunks/57858ac28cbf124d.js +1 -0
  959. package/web/.next/standalone/packages/web/.next/static/chunks/7fd2a83e9e74f215.js +1 -0
  960. package/web/.next/standalone/packages/web/.next/static/chunks/91e9e111a2536f92.js +1 -0
  961. package/web/.next/standalone/packages/web/.next/static/chunks/aabc80195233b4da.js +1 -0
  962. package/web/.next/standalone/packages/web/.next/static/chunks/bf82908a598c6de5.css +3 -0
  963. package/web/.next/standalone/packages/web/.next/static/chunks/d6a81d2f8b98b4be.js +1 -0
  964. package/web/.next/standalone/packages/web/.next/static/chunks/e9d0e95bbaa0f4fb.js +1 -0
  965. package/web/.next/standalone/packages/web/.next/static/chunks/ebaa0c535c4135f1.js +1 -0
  966. package/web/.next/standalone/packages/web/.next/static/chunks/{turbopack-57373a2ee9f56180.js → turbopack-49f4119854e8206e.js} +1 -1
  967. package/web/.next/standalone/packages/web/package.json +2 -1
  968. package/web/.next/standalone/packages/web/src/app/api/agents/route.ts +196 -2
  969. package/web/.next/standalone/packages/web/src/app/api/app-update/route.ts +6 -0
  970. package/web/.next/standalone/packages/web/src/app/api/auth/session/route.ts +38 -3
  971. package/web/.next/standalone/packages/web/src/app/api/boards/comments/route.ts +8 -0
  972. package/web/.next/standalone/packages/web/src/app/api/boards/route.ts +1 -0
  973. package/web/.next/standalone/packages/web/src/app/api/context-files/open/route.ts +8 -0
  974. package/web/.next/standalone/packages/web/src/app/api/github/webhook/route.ts +5 -0
  975. package/web/.next/standalone/packages/web/src/app/api/remote-access/route.ts +115 -0
  976. package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/feed/stream/route.ts +8 -0
  977. package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/interrupt/route.ts +8 -0
  978. package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/preview/dom/route.ts +37 -0
  979. package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/preview/route.test.ts +141 -0
  980. package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/preview/route.ts +90 -0
  981. package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/preview/screenshot/route.ts +43 -0
  982. package/web/.next/standalone/packages/web/src/app/auth/grant/route.ts +3 -28
  983. package/web/.next/standalone/packages/web/src/app/layout.tsx +4 -2
  984. package/web/.next/standalone/packages/web/src/app/page.tsx +32 -3
  985. package/web/.next/standalone/packages/web/src/app/sessions/[id]/page.tsx +36 -3
  986. package/web/.next/standalone/packages/web/src/app/sign-in/[[...sign-in]]/page.tsx +20 -2
  987. package/web/.next/standalone/packages/web/src/app/unlock/page.tsx +29 -7
  988. package/web/.next/standalone/packages/web/src/components/Dashboard.tsx +8 -4
  989. package/web/.next/standalone/packages/web/src/components/board/WorkspaceKanban.tsx +1524 -213
  990. package/web/.next/standalone/packages/web/src/components/layout/AppShell.tsx +30 -14
  991. package/web/.next/standalone/packages/web/src/components/layout/AppUpdateNotice.tsx +345 -0
  992. package/web/.next/standalone/packages/web/src/components/layout/WorkspaceSidebarPanel.tsx +1 -1
  993. package/web/.next/standalone/packages/web/src/components/sessions/ChatPanel.tsx +614 -130
  994. package/web/.next/standalone/packages/web/src/components/sessions/SessionDetail.tsx +33 -6
  995. package/web/.next/standalone/packages/web/src/components/sessions/SessionOverview.tsx +0 -57
  996. package/web/.next/standalone/packages/web/src/components/sessions/SessionPreview.tsx +1143 -0
  997. package/web/.next/standalone/packages/web/src/components/sessions/SessionRuntimeStatusBar.tsx +215 -0
  998. package/web/.next/standalone/packages/web/src/features/dashboard/DashboardClient.tsx +1049 -329
  999. package/web/.next/standalone/packages/web/src/features/sessions/SessionPageClient.tsx +9 -17
  1000. package/web/.next/standalone/packages/web/src/hooks/useAgents.ts +5 -0
  1001. package/web/.next/standalone/packages/web/src/hooks/usePreferences.ts +4 -8
  1002. package/web/.next/standalone/packages/web/src/hooks/useResponsiveSidebarState.ts +46 -0
  1003. package/web/.next/standalone/packages/web/src/hooks/useSessionFeed.ts +57 -3
  1004. package/web/.next/standalone/packages/web/src/lib/auth.test.ts +98 -0
  1005. package/web/.next/standalone/packages/web/src/lib/auth.ts +88 -54
  1006. package/web/.next/standalone/packages/web/src/lib/chatFeed.ts +4 -4
  1007. package/web/.next/standalone/packages/web/src/lib/devPreviewBrowser.ts +608 -0
  1008. package/web/.next/standalone/packages/web/src/lib/edgeAuth.test.ts +14 -25
  1009. package/web/.next/standalone/packages/web/src/lib/edgeAuth.ts +39 -52
  1010. package/web/.next/standalone/packages/web/src/lib/guardedRustProxy.ts +30 -2
  1011. package/web/.next/standalone/packages/web/src/lib/knownAgents.ts +125 -0
  1012. package/web/.next/standalone/packages/web/src/lib/liveEvents.ts +50 -3
  1013. package/web/.next/standalone/packages/web/src/lib/modelAccess.ts +7 -0
  1014. package/web/.next/standalone/packages/web/src/lib/previewSession.test.ts +109 -0
  1015. package/web/.next/standalone/packages/web/src/lib/previewSession.ts +216 -0
  1016. package/web/.next/standalone/packages/web/src/lib/previewTypes.ts +75 -0
  1017. package/web/.next/standalone/packages/web/src/lib/projectConfigSync.ts +13 -2
  1018. package/web/.next/standalone/packages/web/src/lib/proxyRoutes.ts +1 -1
  1019. package/web/.next/standalone/packages/web/src/lib/remoteAccess.test.ts +118 -0
  1020. package/web/.next/standalone/packages/web/src/lib/remoteAccess.ts +245 -0
  1021. package/web/.next/standalone/packages/web/src/lib/remoteAccessManager.ts +513 -0
  1022. package/web/.next/standalone/packages/web/src/lib/remoteAccessRuntime.ts +117 -0
  1023. package/web/.next/standalone/packages/web/src/lib/remoteAuth.test.ts +15 -0
  1024. package/web/.next/standalone/packages/web/src/lib/remoteAuth.ts +8 -65
  1025. package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels/amp.ts +42 -0
  1026. package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels/ccr.ts +47 -0
  1027. package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels/claude.ts +179 -0
  1028. package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels/codex.ts +211 -0
  1029. package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels/copilot.ts +136 -0
  1030. package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels/cursor.ts +39 -0
  1031. package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels/droid.ts +103 -0
  1032. package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels/gemini.ts +65 -0
  1033. package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels/helpers.ts +409 -0
  1034. package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels/index.ts +127 -0
  1035. package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels/opencode.ts +138 -0
  1036. package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels/qwen.ts +50 -0
  1037. package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels/types.ts +78 -0
  1038. package/web/.next/standalone/packages/web/src/lib/runtimeAgentModelsShared.ts +9 -0
  1039. package/web/.next/standalone/packages/web/src/lib/rustBackendProxy.ts +29 -3
  1040. package/web/.next/standalone/packages/web/src/lib/sessionModelCatalog.ts +56 -0
  1041. package/web/.next/standalone/packages/web/src/lib/sessionRuntimeStatus.ts +152 -0
  1042. package/web/.next/standalone/packages/web/src/lib/types.ts +32 -0
  1043. package/web/.next/standalone/packages/web/src/proxy.ts +2 -98
  1044. package/web/.next/static/{8a_zZln8ezVAo0jAilwbF → E4-NvSai1Ps20r9dtdpps}/_clientMiddlewareManifest.json +0 -4
  1045. package/web/.next/static/chunks/006a91a252482204.js +1 -0
  1046. package/web/.next/static/chunks/07f3b9a104ce0ff4.js +1 -0
  1047. package/web/.next/static/chunks/1004422d31074d62.js +1 -0
  1048. package/web/.next/static/chunks/{12d9b4273416fe9b.js → 28eac764d6544827.js} +1 -1
  1049. package/web/.next/static/chunks/2e2e8fd2ceca47dc.js +6 -0
  1050. package/web/.next/static/chunks/30ababddac1b82dc.js +1 -0
  1051. package/web/.next/static/chunks/3349bdab17ed1183.js +1 -0
  1052. package/web/.next/static/chunks/3770166bed1577ce.js +4 -0
  1053. package/web/.next/static/chunks/4c3afea55dd8bc93.js +1 -0
  1054. package/web/.next/static/chunks/57858ac28cbf124d.js +1 -0
  1055. package/web/.next/static/chunks/7fd2a83e9e74f215.js +1 -0
  1056. package/web/.next/static/chunks/91e9e111a2536f92.js +1 -0
  1057. package/web/.next/static/chunks/aabc80195233b4da.js +1 -0
  1058. package/web/.next/static/chunks/bf82908a598c6de5.css +3 -0
  1059. package/web/.next/static/chunks/d6a81d2f8b98b4be.js +1 -0
  1060. package/web/.next/static/chunks/e9d0e95bbaa0f4fb.js +1 -0
  1061. package/web/.next/static/chunks/ebaa0c535c4135f1.js +1 -0
  1062. package/web/.next/static/chunks/{turbopack-57373a2ee9f56180.js → turbopack-49f4119854e8206e.js} +1 -1
  1063. package/web/.next/standalone/packages/web/.next/server/app/index.html +0 -1
  1064. package/web/.next/standalone/packages/web/.next/server/app/index.meta +0 -14
  1065. package/web/.next/standalone/packages/web/.next/server/app/index.rsc +0 -24
  1066. package/web/.next/standalone/packages/web/.next/server/app/index.segments/__PAGE__.segment.rsc +0 -9
  1067. package/web/.next/standalone/packages/web/.next/server/app/index.segments/_full.segment.rsc +0 -24
  1068. package/web/.next/standalone/packages/web/.next/server/app/index.segments/_head.segment.rsc +0 -6
  1069. package/web/.next/standalone/packages/web/.next/server/app/index.segments/_index.segment.rsc +0 -6
  1070. package/web/.next/standalone/packages/web/.next/server/app/index.segments/_tree.segment.rsc +0 -7
  1071. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__0074ebac._.js +0 -3
  1072. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__03a6b3e6._.js +0 -3
  1073. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__049daed6._.js +0 -3
  1074. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__09c3bdaf._.js +0 -7
  1075. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__137c9740._.js +0 -3
  1076. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__14949257._.js +0 -80
  1077. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__15594e11._.js +0 -3
  1078. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__159ecc1b._.js +0 -3
  1079. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__171dd44e._.js +0 -3
  1080. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__177505ca._.js +0 -3
  1081. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__18aa1fa3._.js +0 -3
  1082. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1c3521a3._.js +0 -3
  1083. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1c793b78._.js +0 -3
  1084. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__22fbbc7b._.js +0 -3
  1085. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__25bbe81a._.js +0 -3
  1086. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2d10de49._.js +0 -3
  1087. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__30442998._.js +0 -3
  1088. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__31d22800._.js +0 -3
  1089. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3d6b30a3._.js +0 -14
  1090. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3d7ad620._.js +0 -3
  1091. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__44892736._.js +0 -3
  1092. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__495221b1._.js +0 -3
  1093. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4ff9e8b0._.js +0 -3
  1094. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__54eb1ef0._.js +0 -3
  1095. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5c375e13._.js +0 -3
  1096. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6362697f._.js +0 -3
  1097. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__69b36e36._.js +0 -3
  1098. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6badbf4e._.js +0 -3
  1099. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6c4cd852._.js +0 -3
  1100. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6f7b329b._.js +0 -3
  1101. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__70b7af90._.js +0 -3
  1102. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__71077192._.js +0 -3
  1103. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__758687ca._.js +0 -3
  1104. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7604e43b._.js +0 -3
  1105. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__77b23eae._.js +0 -3
  1106. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__78650ac9._.js +0 -3
  1107. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__789107eb._.js +0 -3
  1108. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__78c062a8._.js +0 -3
  1109. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__78c4bb1e._.js +0 -3
  1110. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__790d1d4b._.js +0 -3
  1111. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__8132442f._.js +0 -3
  1112. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__833a2cd9._.js +0 -3
  1113. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__85d6ae4c._.js +0 -3
  1114. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__8d933120._.js +0 -3
  1115. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__90ac5665._.js +0 -3
  1116. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__92a4f9bf._.js +0 -3
  1117. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__93d550e2._.js +0 -3
  1118. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__96e59c1f._.js +0 -3
  1119. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__9c1d09aa._.js +0 -3
  1120. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__9d98fee2._.js +0 -3
  1121. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__9fcf6265._.js +0 -3
  1122. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a5b78741._.js +0 -3
  1123. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a8a4b101._.js +0 -3
  1124. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a8d11727._.js +0 -3
  1125. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b2e0e81c._.js +0 -3
  1126. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__bf756716._.js +0 -3
  1127. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c09452b3._.js +0 -3
  1128. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c3c6a7bf._.js +0 -3
  1129. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c43dcff1._.js +0 -3
  1130. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c923cbdc._.js +0 -3
  1131. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ce993e7b._.js +0 -3
  1132. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cfbdd2bf._.js +0 -3
  1133. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d1d8bfb5._.js +0 -3
  1134. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d4d1744d._.js +0 -3
  1135. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d8852803._.js +0 -3
  1136. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ea1961bd._.js +0 -3
  1137. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ee8a3221._.js +0 -3
  1138. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ef8c815b._.js +0 -3
  1139. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ef918d06._.js +0 -3
  1140. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f3693403._.js +0 -3
  1141. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f62cac3a._.js +0 -3
  1142. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f73117e9._.js +0 -3
  1143. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f7651519._.js +0 -3
  1144. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__fc6ffe6c._.js +0 -3
  1145. package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_c59ce641._.js +0 -52
  1146. package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_3f8eedde._.js +0 -3
  1147. package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_9a15df2c._.js +0 -14
  1148. package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_2175c4f5._.js +0 -6
  1149. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__09178ceb._.js +0 -3
  1150. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__404c1aeb._.js +0 -3
  1151. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__4c215c94._.js +0 -3
  1152. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__504277b5._.js +0 -3
  1153. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__6622b514._.js +0 -4
  1154. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__869d9ac0._.js +0 -4
  1155. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__9dc23e5a._.js +0 -3
  1156. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__b3463b25._.js +0 -3
  1157. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__d6c32514._.js +0 -3
  1158. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__dd8d1ff5._.js +0 -3
  1159. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__e93a8bf2._.js +0 -3
  1160. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__f3a0805b._.js +0 -26
  1161. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__f9e4d8f6._.js +0 -3
  1162. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_3acfb388._.js +0 -3
  1163. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_54e5c07e._.js +0 -3
  1164. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_5edc4d99._.js +0 -3
  1165. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_668c9201._.js +0 -3
  1166. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_5c577fb4._.js +0 -22
  1167. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_a719fbda._.js +0 -3
  1168. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_f2ebd7a9._.js +0 -3
  1169. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_next_06f89723._.js +0 -6
  1170. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_next_dist_aa203534._.js +0 -3
  1171. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_79316445._.js +0 -3
  1172. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_a078c137._.js +0 -3
  1173. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_page_tsx_cd282e82._.js +0 -3
  1174. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_unlock_UnlockForm_tsx_ce3149a7._.js +0 -3
  1175. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_556f498f._.js +0 -3
  1176. package/web/.next/standalone/packages/web/.next/static/chunks/25438e9094804f85.js +0 -1
  1177. package/web/.next/standalone/packages/web/.next/static/chunks/38c2e6a114505dfb.js +0 -1
  1178. package/web/.next/standalone/packages/web/.next/static/chunks/42170782dc03a5a6.js +0 -1
  1179. package/web/.next/standalone/packages/web/.next/static/chunks/4f46b791ea244c81.js +0 -6
  1180. package/web/.next/standalone/packages/web/.next/static/chunks/524a7c2a8e85ea2f.js +0 -1
  1181. package/web/.next/standalone/packages/web/.next/static/chunks/5672ef74a562c5dd.js +0 -1
  1182. package/web/.next/standalone/packages/web/.next/static/chunks/710591a828e2bb9d.js +0 -1
  1183. package/web/.next/standalone/packages/web/.next/static/chunks/72c822cfe5b6f4f2.js +0 -4
  1184. package/web/.next/standalone/packages/web/.next/static/chunks/870a993d28314a90.js +0 -1
  1185. package/web/.next/standalone/packages/web/.next/static/chunks/8c120e4e5b844646.js +0 -1
  1186. package/web/.next/standalone/packages/web/.next/static/chunks/8ec81b945f12169b.js +0 -1
  1187. package/web/.next/standalone/packages/web/.next/static/chunks/aa158726d4a10331.js +0 -1
  1188. package/web/.next/standalone/packages/web/.next/static/chunks/adf48bd54f32b061.js +0 -1
  1189. package/web/.next/standalone/packages/web/.next/static/chunks/c5caacf383990e7b.js +0 -1
  1190. package/web/.next/standalone/packages/web/.next/static/chunks/d3cd3cf58c908ec9.js +0 -1
  1191. package/web/.next/standalone/packages/web/.next/static/chunks/df9658182f4f7d54.css +0 -3
  1192. package/web/.next/standalone/packages/web/src/app/unlock/UnlockForm.tsx +0 -98
  1193. package/web/.next/standalone/packages/web/src/lib/editorLinks.ts +0 -51
  1194. package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels.ts +0 -788
  1195. package/web/.next/static/chunks/25438e9094804f85.js +0 -1
  1196. package/web/.next/static/chunks/38c2e6a114505dfb.js +0 -1
  1197. package/web/.next/static/chunks/42170782dc03a5a6.js +0 -1
  1198. package/web/.next/static/chunks/4f46b791ea244c81.js +0 -6
  1199. package/web/.next/static/chunks/524a7c2a8e85ea2f.js +0 -1
  1200. package/web/.next/static/chunks/5672ef74a562c5dd.js +0 -1
  1201. package/web/.next/static/chunks/710591a828e2bb9d.js +0 -1
  1202. package/web/.next/static/chunks/72c822cfe5b6f4f2.js +0 -4
  1203. package/web/.next/static/chunks/870a993d28314a90.js +0 -1
  1204. package/web/.next/static/chunks/8c120e4e5b844646.js +0 -1
  1205. package/web/.next/static/chunks/8ec81b945f12169b.js +0 -1
  1206. package/web/.next/static/chunks/aa158726d4a10331.js +0 -1
  1207. package/web/.next/static/chunks/adf48bd54f32b061.js +0 -1
  1208. package/web/.next/static/chunks/c5caacf383990e7b.js +0 -1
  1209. package/web/.next/static/chunks/d3cd3cf58c908ec9.js +0 -1
  1210. package/web/.next/static/chunks/df9658182f4f7d54.css +0 -3
  1211. /package/web/.next/standalone/packages/web/.next/static/{8a_zZln8ezVAo0jAilwbF → E4-NvSai1Ps20r9dtdpps}/_buildManifest.js +0 -0
  1212. /package/web/.next/standalone/packages/web/.next/static/{8a_zZln8ezVAo0jAilwbF → E4-NvSai1Ps20r9dtdpps}/_ssgManifest.js +0 -0
  1213. /package/web/.next/static/{8a_zZln8ezVAo0jAilwbF → E4-NvSai1Ps20r9dtdpps}/_buildManifest.js +0 -0
  1214. /package/web/.next/static/{8a_zZln8ezVAo0jAilwbF → E4-NvSai1Ps20r9dtdpps}/_ssgManifest.js +0 -0
@@ -14,6 +14,7 @@ import {
14
14
  import ReactMarkdown from "react-markdown";
15
15
  import remarkGfm from "remark-gfm";
16
16
  import {
17
+ ArrowRightLeft,
17
18
  BrainCircuit,
18
19
  ChevronDown,
19
20
  ChevronRight,
@@ -35,9 +36,22 @@ import {
35
36
  import { AgentTileIcon } from "@/components/AgentTileIcon";
36
37
  import { useAgents } from "@/hooks/useAgents";
37
38
  import { useSessionFeed } from "@/hooks/useSessionFeed";
38
- import type { NormalizedChatEntry } from "@/lib/chatFeed";
39
+ import { normalizeChatText, type NormalizedChatEntry } from "@/lib/chatFeed";
39
40
  import { normalizeAgentName } from "@/lib/agentUtils";
40
- import { getAvailableAgentModels, resolveAgentModelAccess } from "@conductor-oss/core/types";
41
+ import {
42
+ formatCurrentModelLabel,
43
+ getAllStaticModelOptions,
44
+ } from "@/lib/sessionModelCatalog";
45
+ import type { RuntimeAgentModelCatalog } from "@/lib/runtimeAgentModelsShared";
46
+ import { SessionRuntimeStatusBar } from "./SessionRuntimeStatusBar";
47
+ import {
48
+ getAgentModelCatalog,
49
+ getAvailableAgentModels,
50
+ getAvailableAgentReasoningEfforts,
51
+ type AgentModelOption,
52
+ type AgentReasoningOption,
53
+ type ModelAccessPreferences,
54
+ } from "@conductor-oss/core/types";
41
55
 
42
56
  interface ChatPanelProps {
43
57
  sessionId: string;
@@ -92,45 +106,25 @@ const COMMON_SLASH_COMMANDS: SlashCommandOption[] = [
92
106
  },
93
107
  ];
94
108
 
95
- function formatCurrentModelLabel(agentName: string, modelId: string): string {
96
- const normalizedModel = modelId.trim();
97
- const normalizedAgent = normalizeAgentName(agentName);
98
- if (!normalizedModel) return normalizedModel;
99
-
100
- if (normalizedAgent === "claude-code") {
101
- const lower = normalizedModel.toLowerCase();
102
- if (lower === "opus") return "Claude Opus";
103
- if (lower === "sonnet") return "Claude Sonnet";
104
- if (lower === "haiku") return "Claude Haiku";
105
- const match = lower.match(/^claude-(sonnet|opus|haiku)-(\d+)-(\d+)(?:-\d{8})?$/);
106
- if (match) {
107
- const family = match[1];
108
- return `Claude ${family[0]?.toUpperCase() + family.slice(1)} ${match[2]}.${match[3]}`;
109
- }
110
- }
109
+ function findRuntimeCatalog(
110
+ agents: ReturnType<typeof useAgents>["agents"],
111
+ agentName: string,
112
+ ): RuntimeAgentModelCatalog | null {
113
+ const normalizedAgentName = normalizeAgentName(agentName);
114
+ if (!normalizedAgentName) return null;
111
115
 
112
- return normalizedModel
113
- .split(/[-_]+/g)
114
- .filter(Boolean)
115
- .map((segment) => {
116
- const lower = segment.toLowerCase();
117
- if (lower === "gpt") return "GPT";
118
- if (/^\d+(?:\.\d+)?$/.test(segment)) return segment;
119
- return segment[0]?.toUpperCase() + segment.slice(1);
120
- })
121
- .join("-");
116
+ return agents.find((agent) => normalizeAgentName(agent.name) === normalizedAgentName)?.runtimeModelCatalog ?? null;
122
117
  }
123
118
 
119
+
124
120
  function getModelOptions(
125
- agents: ReturnType<typeof useAgents>["agents"],
121
+ runtimeCatalog: RuntimeAgentModelCatalog | null,
126
122
  agentName: string,
127
123
  currentModel: string,
128
124
  ): ModelOption[] {
129
125
  const options = new Map<string, ModelOption>();
130
- const normalizedAgentName = normalizeAgentName(agentName);
131
126
 
132
- const fallbackModels = getAvailableAgentModels(agentName, undefined);
133
- for (const model of fallbackModels) {
127
+ for (const model of getAllStaticModelOptions(agentName)) {
134
128
  const id = model.id.trim();
135
129
  if (!id || options.has(id)) continue;
136
130
  options.set(id, {
@@ -140,25 +134,17 @@ function getModelOptions(
140
134
  });
141
135
  }
142
136
 
143
- for (const agent of agents) {
144
- if (normalizedAgentName && normalizeAgentName(agent.name) !== normalizedAgentName) {
145
- continue;
146
- }
147
- const catalog = agent.runtimeModelCatalog;
148
- if (!catalog) continue;
149
-
150
- const modelsByAccess = catalog.modelsByAccess;
151
- if (!modelsByAccess) continue;
152
-
153
- for (const modelList of Object.values(modelsByAccess)) {
154
- if (!Array.isArray(modelList)) continue;
155
- for (const model of modelList) {
156
- const id = typeof model.id === "string" ? model.id.trim() : "";
157
- if (!id || options.has(id)) continue;
158
- const label = typeof model.label === "string" && model.label.trim().length > 0 ? model.label.trim() : id;
159
- const helper = typeof agent.name === "string" && agent.name.trim().length > 0 ? agent.name.trim() : "Runtime catalog";
160
- options.set(id, { id, label, helper });
161
- }
137
+ for (const modelList of Object.values(runtimeCatalog?.modelsByAccess ?? {})) {
138
+ if (!Array.isArray(modelList)) continue;
139
+ for (const model of modelList) {
140
+ const id = typeof model.id === "string" ? model.id.trim() : "";
141
+ if (!id || options.has(id)) continue;
142
+ const label = typeof model.label === "string" && model.label.trim().length > 0 ? model.label.trim() : id;
143
+ options.set(id, {
144
+ id,
145
+ label,
146
+ helper: "Detected locally",
147
+ });
162
148
  }
163
149
  }
164
150
 
@@ -173,6 +159,101 @@ function getModelOptions(
173
159
  return [...options.values()].sort((left, right) => left.label.localeCompare(right.label));
174
160
  }
175
161
 
162
+ function getReasoningOptions(
163
+ agentName: string,
164
+ runtimeCatalog: RuntimeAgentModelCatalog | null,
165
+ model: string,
166
+ ): AgentReasoningOption[] {
167
+ const normalizedModel = model.trim();
168
+ const options = new Map<string, AgentReasoningOption>();
169
+
170
+ const push = (candidate: AgentReasoningOption | null | undefined) => {
171
+ if (!candidate?.id || options.has(candidate.id)) return;
172
+ options.set(candidate.id, candidate);
173
+ };
174
+
175
+ if (normalizedModel) {
176
+ for (const option of runtimeCatalog?.reasoningOptionsByModel?.[normalizedModel] ?? []) {
177
+ push(option);
178
+ }
179
+ }
180
+
181
+ for (const group of Object.values(runtimeCatalog?.reasoningOptionsByAccess ?? {})) {
182
+ if (!Array.isArray(group)) continue;
183
+ for (const option of group) {
184
+ push(option);
185
+ }
186
+ }
187
+
188
+ const catalog = getAgentModelCatalog(agentName);
189
+ if (catalog) {
190
+ for (const accessOption of catalog.accessOptions) {
191
+ const preferences = { [catalog.accessKey]: accessOption.id } as ModelAccessPreferences;
192
+ for (const option of getAvailableAgentReasoningEfforts(agentName, preferences)) {
193
+ push(option);
194
+ }
195
+ }
196
+ } else {
197
+ for (const option of getAvailableAgentReasoningEfforts(agentName, undefined)) {
198
+ push(option);
199
+ }
200
+ }
201
+
202
+ return [...options.values()];
203
+ }
204
+
205
+ function formatReasoningLabel(value: string): string {
206
+ const normalized = value.trim().toLowerCase();
207
+ if (!normalized) return "Session default";
208
+ if (normalized === "xhigh") return "Extra High";
209
+ return normalized
210
+ .split(/[_\s-]+/g)
211
+ .filter(Boolean)
212
+ .map((part) => part[0]?.toUpperCase() + part.slice(1))
213
+ .join(" ");
214
+ }
215
+
216
+ function getDefaultReasoningSelection(
217
+ agentName: string,
218
+ runtimeCatalog: RuntimeAgentModelCatalog | null,
219
+ model: string,
220
+ sessionReasoningEffort: string,
221
+ ): string {
222
+ const options = getReasoningOptions(agentName, runtimeCatalog, model);
223
+ const normalizedSession = sessionReasoningEffort.trim().toLowerCase();
224
+ if (normalizedSession && options.some((option) => option.id === normalizedSession)) {
225
+ return normalizedSession;
226
+ }
227
+
228
+ const normalizedModel = model.trim();
229
+ const runtimeDefault = normalizedModel
230
+ ? runtimeCatalog?.defaultReasoningByModel?.[normalizedModel] ?? null
231
+ : null;
232
+ const normalizedRuntimeDefault = runtimeDefault?.trim().toLowerCase() ?? "";
233
+ if (normalizedRuntimeDefault && options.some((option) => option.id === normalizedRuntimeDefault)) {
234
+ return normalizedRuntimeDefault;
235
+ }
236
+
237
+ for (const candidate of Object.values(runtimeCatalog?.defaultReasoningByAccess ?? {})) {
238
+ const normalizedCandidate = candidate?.trim().toLowerCase() ?? "";
239
+ if (normalizedCandidate && options.some((option) => option.id === normalizedCandidate)) {
240
+ return normalizedCandidate;
241
+ }
242
+ }
243
+
244
+ return options[0]?.id ?? "";
245
+ }
246
+
247
+ function getCustomModelPlaceholder(
248
+ agentName: string,
249
+ runtimeCatalog: RuntimeAgentModelCatalog | null,
250
+ ): string {
251
+ const runtimePlaceholder = runtimeCatalog?.customModelPlaceholder?.trim();
252
+ if (runtimePlaceholder) return runtimePlaceholder;
253
+ const label = getAgentModelCatalog(agentName)?.label ?? "agent";
254
+ return `Enter exact ${label} model id`;
255
+ }
256
+
176
257
  function getSlashCommandOptions(agentName: string, message: string): SlashCommandOption[] {
177
258
  const normalizedMessage = message.trimStart();
178
259
  if (!normalizedMessage.startsWith("/")) {
@@ -610,13 +691,16 @@ function OutlineSummaryBlock({ sections }: { sections: ParsedOutlineSection[] })
610
691
  function extractToolContent(entry: NormalizedChatEntry): string[] {
611
692
  const raw = entry.metadata?.toolContent;
612
693
  if (Array.isArray(raw)) {
613
- return raw.filter((value): value is string => typeof value === "string" && value.trim().length > 0);
694
+ return raw
695
+ .map((value) => typeof value === "string" ? normalizeChatText(value) : "")
696
+ .filter((value): value is string => value.trim().length > 0);
614
697
  }
615
- return entry.text.trim().length > 0 ? [entry.text.trim()] : [];
698
+ const normalized = normalizeChatText(entry.text);
699
+ return normalized.trim().length > 0 ? [normalized.trim()] : [];
616
700
  }
617
701
 
618
702
  function getToolInlineSummary(entry: NormalizedChatEntry, content: string[]): string | null {
619
- const title = typeof entry.metadata?.toolTitle === "string" ? entry.metadata.toolTitle.trim() : "";
703
+ const title = typeof entry.metadata?.toolTitle === "string" ? normalizeChatText(entry.metadata.toolTitle).trim() : "";
620
704
  const first = content[0]?.trim() ?? "";
621
705
  if (!first) return null;
622
706
  if (title && first.toLowerCase() === title.toLowerCase()) {
@@ -836,8 +920,8 @@ function ToolEntry({ entry }: { entry: NormalizedChatEntry }) {
836
920
  const content = extractToolContent(entry);
837
921
  const inlineSummary = getToolInlineSummary(entry, content);
838
922
  const toolTitle = typeof entry.metadata?.toolTitle === "string" && entry.metadata.toolTitle.trim().length > 0
839
- ? entry.metadata.toolTitle.trim()
840
- : entry.text.trim() || "Tool call";
923
+ ? normalizeChatText(entry.metadata.toolTitle).trim()
924
+ : normalizeChatText(entry.text).trim() || "Tool call";
841
925
  const toolStatus = typeof entry.metadata?.toolStatus === "string" ? entry.metadata.toolStatus : null;
842
926
  const statusTone = getToolStatusTone(toolStatus);
843
927
  const Icon = getToolIcon(entry);
@@ -1027,7 +1111,127 @@ function AssistantEntry({
1027
1111
  );
1028
1112
  }
1029
1113
 
1030
- function SystemEntry({ entry }: { entry: NormalizedChatEntry }) {
1114
+ function asOptionalMetadataText(value: unknown): string | null {
1115
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
1116
+ }
1117
+
1118
+ function extractSessionPreferenceUpdate(entry: NormalizedChatEntry) {
1119
+ const eventType = asOptionalMetadataText(entry.metadata?.eventType);
1120
+ if (eventType !== "session_preferences_updated" && entry.source !== "session_preferences") {
1121
+ return null;
1122
+ }
1123
+
1124
+ const previousModel = asOptionalMetadataText(entry.metadata?.previousModel);
1125
+ const nextModel = asOptionalMetadataText(entry.metadata?.model);
1126
+ const previousReasoningEffort = asOptionalMetadataText(entry.metadata?.previousReasoningEffort);
1127
+ const nextReasoningEffort = asOptionalMetadataText(entry.metadata?.reasoningEffort);
1128
+ const modelChanged = typeof entry.metadata?.modelChanged === "boolean"
1129
+ ? entry.metadata.modelChanged
1130
+ : Boolean(nextModel && nextModel !== previousModel);
1131
+ const reasoningChanged = typeof entry.metadata?.reasoningChanged === "boolean"
1132
+ ? entry.metadata.reasoningChanged
1133
+ : Boolean(nextReasoningEffort && nextReasoningEffort !== previousReasoningEffort);
1134
+
1135
+ if (!modelChanged && !reasoningChanged) {
1136
+ return null;
1137
+ }
1138
+
1139
+ return {
1140
+ previousModel,
1141
+ nextModel,
1142
+ previousReasoningEffort,
1143
+ nextReasoningEffort,
1144
+ modelChanged,
1145
+ reasoningChanged,
1146
+ };
1147
+ }
1148
+
1149
+ function ModelEventChip({
1150
+ agentName,
1151
+ model,
1152
+ tone,
1153
+ }: {
1154
+ agentName: string;
1155
+ model: string | null;
1156
+ tone: "muted" | "accent";
1157
+ }) {
1158
+ const palette = tone === "accent"
1159
+ ? "border-[#5a452f] bg-[rgba(234,122,42,0.08)] text-[#f2c79f]"
1160
+ : "border-[#384244] bg-[rgba(255,255,255,0.04)] text-[#d6d6d6]";
1161
+
1162
+ return (
1163
+ <span className={`inline-flex items-center gap-2 rounded-full border px-2 py-1 text-[12px] leading-[18px] ${palette}`}>
1164
+ <span>{model ? formatCurrentModelLabel(agentName, model) : "Session default"}</span>
1165
+ </span>
1166
+ );
1167
+ }
1168
+
1169
+ function SessionPreferenceEntry({
1170
+ entry,
1171
+ agentName,
1172
+ }: {
1173
+ entry: NormalizedChatEntry;
1174
+ agentName: string;
1175
+ }) {
1176
+ const update = extractSessionPreferenceUpdate(entry);
1177
+ const timestamp = formatTimestamp(entry.createdAt);
1178
+
1179
+ if (!update) {
1180
+ return null;
1181
+ }
1182
+
1183
+ const heading = update.modelChanged
1184
+ ? "Model switched"
1185
+ : "Reasoning updated";
1186
+
1187
+ return (
1188
+ <div className="rounded-[3px] border border-[#5a452f] bg-[rgba(234,122,42,0.08)] px-3 py-3">
1189
+ <div className="flex flex-wrap items-center gap-2">
1190
+ <span className="inline-flex items-center gap-2 text-[12px] font-medium uppercase tracking-[0.18em] text-[#f2c79f]">
1191
+ <ArrowRightLeft className="h-[14px] w-[14px]" strokeWidth={1.8} />
1192
+ {heading}
1193
+ </span>
1194
+ {timestamp ? (
1195
+ <span className="text-[12px] leading-[18px] text-[#b38358]">{timestamp}</span>
1196
+ ) : null}
1197
+ </div>
1198
+
1199
+ <div className="mt-3 space-y-3">
1200
+ {update.modelChanged ? (
1201
+ <div className="flex flex-wrap items-center gap-2">
1202
+ <ModelEventChip agentName={agentName} model={update.previousModel} tone="muted" />
1203
+ <ChevronRight className="h-[14px] w-[14px] text-[#b38358]" strokeWidth={1.8} />
1204
+ <ModelEventChip agentName={agentName} model={update.nextModel} tone="accent" />
1205
+ </div>
1206
+ ) : null}
1207
+ {update.reasoningChanged ? (
1208
+ <div className="flex flex-wrap items-center gap-2 text-[12px] leading-[18px] text-[#efd8c1]">
1209
+ <span className="rounded-full border border-[#384244] bg-[rgba(255,255,255,0.04)] px-2 py-1">
1210
+ {formatReasoningLabel(update.previousReasoningEffort ?? "")}
1211
+ </span>
1212
+ <ChevronRight className="h-[14px] w-[14px] text-[#b38358]" strokeWidth={1.8} />
1213
+ <span className="rounded-full border border-[#5a452f] bg-[rgba(234,122,42,0.08)] px-2 py-1 text-[#f2c79f]">
1214
+ {formatReasoningLabel(update.nextReasoningEffort ?? "")}
1215
+ </span>
1216
+ </div>
1217
+ ) : null}
1218
+ </div>
1219
+ </div>
1220
+ );
1221
+ }
1222
+
1223
+ function SystemEntry({
1224
+ entry,
1225
+ agentName,
1226
+ }: {
1227
+ entry: NormalizedChatEntry;
1228
+ agentName: string;
1229
+ }) {
1230
+ const preferenceEntry = extractSessionPreferenceUpdate(entry);
1231
+ if (preferenceEntry) {
1232
+ return <SessionPreferenceEntry entry={entry} agentName={agentName} />;
1233
+ }
1234
+
1031
1235
  return (
1032
1236
  <div className="rounded-[3px] border border-[#315434] bg-[rgba(84,176,79,0.08)] px-3 py-2">
1033
1237
  <p className="text-[12px] uppercase tracking-[0.18em] text-[#8bc886]">System</p>
@@ -1055,7 +1259,7 @@ function FeedEntry({
1055
1259
  case "tool":
1056
1260
  return <ToolEntry entry={entry} />;
1057
1261
  case "system":
1058
- return <SystemEntry entry={entry} />;
1262
+ return <SystemEntry entry={entry} agentName={agentName} />;
1059
1263
  default:
1060
1264
  return <StatusEntry entry={entry} />;
1061
1265
  }
@@ -1102,6 +1306,23 @@ async function uploadAttachments(files: File[]): Promise<string[]> {
1102
1306
  return uploadedPaths.filter(Boolean);
1103
1307
  }
1104
1308
 
1309
+ async function postSessionTerminalKeys(
1310
+ sessionId: string,
1311
+ body: { keys?: string; special?: string },
1312
+ ): Promise<void> {
1313
+ const response = await fetch(`/api/sessions/${encodeURIComponent(sessionId)}/keys`, {
1314
+ method: "POST",
1315
+ headers: {
1316
+ "Content-Type": "application/json",
1317
+ },
1318
+ body: JSON.stringify(body),
1319
+ });
1320
+ const data = (await response.json().catch(() => null)) as { error?: string } | null;
1321
+ if (!response.ok) {
1322
+ throw new Error(data?.error ?? `Failed to send terminal input: ${response.status}`);
1323
+ }
1324
+ }
1325
+
1105
1326
  export function ChatPanel({
1106
1327
  sessionId,
1107
1328
  agentName,
@@ -1110,48 +1331,110 @@ export function ChatPanel({
1110
1331
  sessionReasoningEffort,
1111
1332
  }: ChatPanelProps) {
1112
1333
  const { agents } = useAgents();
1113
- const { entries, error, loading, parserState, sessionStatus, refresh } = useSessionFeed(sessionId);
1334
+ const { entries, error, loading, parserState, runtimeStatus, sessionStatus, refresh } = useSessionFeed(sessionId);
1114
1335
 
1115
1336
  const [message, setMessage] = useState("");
1116
1337
  const [sending, setSending] = useState(false);
1117
1338
  const [interrupting, setInterrupting] = useState(false);
1118
1339
  const [sendError, setSendError] = useState<string | null>(null);
1119
1340
  const [modelMenuOpen, setModelMenuOpen] = useState(false);
1341
+ const [reasoningMenuOpen, setReasoningMenuOpen] = useState(false);
1120
1342
  const [selectedModel, setSelectedModel] = useState(sessionModel?.trim() || "");
1343
+ const [customModelInput, setCustomModelInput] = useState("");
1344
+ const [selectedReasoning, setSelectedReasoning] = useState(sessionReasoningEffort?.trim().toLowerCase() || "");
1121
1345
  const [attachments, setAttachments] = useState<AttachmentDraft[]>([]);
1122
1346
  const [selectedSlashIndex, setSelectedSlashIndex] = useState(0);
1123
1347
 
1124
1348
  const endRef = useRef<HTMLDivElement | null>(null);
1349
+ const scrollContainerRef = useRef<HTMLDivElement | null>(null);
1125
1350
  const fileInputRef = useRef<HTMLInputElement | null>(null);
1126
1351
  const modelMenuRef = useRef<HTMLDivElement | null>(null);
1352
+ const reasoningMenuRef = useRef<HTMLDivElement | null>(null);
1353
+ const shouldStickToBottomRef = useRef(true);
1127
1354
  const normalizedAgentName = agentName?.trim() || "";
1128
1355
  const normalizedSessionStatus = sessionStatus?.trim().toLowerCase() ?? "";
1356
+ const runtimeCatalog = useMemo(
1357
+ () => findRuntimeCatalog(agents, normalizedAgentName),
1358
+ [agents, normalizedAgentName],
1359
+ );
1129
1360
  const modelOptions = useMemo(
1130
- () => getModelOptions(agents, normalizedAgentName, sessionModel?.trim() || ""),
1131
- [agents, normalizedAgentName, sessionModel],
1361
+ () => getModelOptions(runtimeCatalog, normalizedAgentName, sessionModel?.trim() || ""),
1362
+ [runtimeCatalog, normalizedAgentName, sessionModel],
1132
1363
  );
1133
1364
  const router = useRouter();
1365
+ const modelPlaceholder = useMemo(
1366
+ () => getCustomModelPlaceholder(normalizedAgentName, runtimeCatalog),
1367
+ [normalizedAgentName, runtimeCatalog],
1368
+ );
1369
+ const resolvedModelValue = selectedModel.trim();
1370
+ const reasoningOptions = useMemo(
1371
+ () => getReasoningOptions(
1372
+ normalizedAgentName,
1373
+ runtimeCatalog,
1374
+ resolvedModelValue || sessionModel?.trim() || "",
1375
+ ),
1376
+ [normalizedAgentName, runtimeCatalog, resolvedModelValue, sessionModel],
1377
+ );
1378
+ const defaultReasoningSelection = useMemo(
1379
+ () => getDefaultReasoningSelection(
1380
+ normalizedAgentName,
1381
+ runtimeCatalog,
1382
+ resolvedModelValue || sessionModel?.trim() || "",
1383
+ sessionReasoningEffort?.trim() || "",
1384
+ ),
1385
+ [normalizedAgentName, runtimeCatalog, resolvedModelValue, sessionModel, sessionReasoningEffort],
1386
+ );
1134
1387
 
1135
1388
  useEffect(() => {
1136
1389
  setSelectedModel(sessionModel?.trim() || "");
1390
+ setCustomModelInput(sessionModel?.trim() || "");
1137
1391
  }, [sessionModel]);
1138
1392
 
1393
+ useEffect(() => {
1394
+ setSelectedReasoning(sessionReasoningEffort?.trim().toLowerCase() || "");
1395
+ }, [sessionReasoningEffort]);
1396
+
1397
+ useEffect(() => {
1398
+ if (!selectedModel.trim()) {
1399
+ setCustomModelInput("");
1400
+ return;
1401
+ }
1402
+ if (modelOptions.some((option) => option.id === selectedModel.trim())) {
1403
+ setCustomModelInput("");
1404
+ return;
1405
+ }
1406
+ setCustomModelInput(selectedModel.trim());
1407
+ }, [modelOptions, selectedModel]);
1408
+
1409
+ useEffect(() => {
1410
+ if (!selectedReasoning) {
1411
+ return;
1412
+ }
1413
+ if (reasoningOptions.some((option) => option.id === selectedReasoning)) {
1414
+ return;
1415
+ }
1416
+ setSelectedReasoning(defaultReasoningSelection || "");
1417
+ }, [defaultReasoningSelection, reasoningOptions, selectedReasoning]);
1418
+
1139
1419
  // Clear transient error state when the session changes.
1140
1420
  useEffect(() => {
1141
1421
  setSendError(null);
1142
1422
  }, [sessionId]);
1143
1423
 
1144
- // Close model menu on click outside.
1424
+ // Close model/reasoning menus on click outside.
1145
1425
  useEffect(() => {
1146
- if (!modelMenuOpen) return;
1426
+ if (!modelMenuOpen && !reasoningMenuOpen) return;
1147
1427
  function onClickOutside(event: globalThis.MouseEvent) {
1148
1428
  if (modelMenuRef.current && !modelMenuRef.current.contains(event.target as Node)) {
1149
1429
  setModelMenuOpen(false);
1150
1430
  }
1431
+ if (reasoningMenuRef.current && !reasoningMenuRef.current.contains(event.target as Node)) {
1432
+ setReasoningMenuOpen(false);
1433
+ }
1151
1434
  }
1152
1435
  document.addEventListener("mousedown", onClickOutside);
1153
1436
  return () => document.removeEventListener("mousedown", onClickOutside);
1154
- }, [modelMenuOpen]);
1437
+ }, [modelMenuOpen, reasoningMenuOpen]);
1155
1438
 
1156
1439
  const displayEntries = useMemo(
1157
1440
  () => {
@@ -1165,6 +1448,10 @@ export function ChatPanel({
1165
1448
 
1166
1449
  const hasStreamingEntry = displayEntries.some((entry) => entry.streaming);
1167
1450
  const isSessionRunning = normalizedSessionStatus === "running" || normalizedSessionStatus === "working" || hasStreamingEntry;
1451
+ const hasLiveTerminalSession = normalizedSessionStatus === "running"
1452
+ || normalizedSessionStatus === "working"
1453
+ || normalizedSessionStatus === "needs_input"
1454
+ || normalizedSessionStatus === "stuck";
1168
1455
  const composerSummary = useMemo(
1169
1456
  () => extractComposerSummary(displayEntries),
1170
1457
  [displayEntries],
@@ -1179,15 +1466,42 @@ export function ChatPanel({
1179
1466
  [displayEntries],
1180
1467
  );
1181
1468
 
1469
+ const updateBottomStickiness = useCallback(() => {
1470
+ const container = scrollContainerRef.current;
1471
+ if (!container) {
1472
+ shouldStickToBottomRef.current = true;
1473
+ return;
1474
+ }
1475
+
1476
+ const distanceFromBottom = container.scrollHeight - container.scrollTop - container.clientHeight;
1477
+ shouldStickToBottomRef.current = distanceFromBottom <= 80;
1478
+ }, []);
1479
+
1480
+ const scrollToBottom = useCallback((behavior: ScrollBehavior) => {
1481
+ shouldStickToBottomRef.current = true;
1482
+ if (typeof window === "undefined") {
1483
+ endRef.current?.scrollIntoView({ behavior, block: "end" });
1484
+ return;
1485
+ }
1486
+
1487
+ window.requestAnimationFrame(() => {
1488
+ endRef.current?.scrollIntoView({ behavior, block: "end" });
1489
+ });
1490
+ }, []);
1491
+
1492
+ useEffect(() => {
1493
+ shouldStickToBottomRef.current = true;
1494
+ }, [sessionId]);
1495
+
1182
1496
  const prevEntryCountRef = useRef(0);
1183
1497
  useEffect(() => {
1184
1498
  const count = displayEntries.length;
1185
- // Only auto-scroll when entries are added or while streaming — not on every poll.
1186
- if (count !== prevEntryCountRef.current || hasStreamingEntry || sending) {
1187
- endRef.current?.scrollIntoView({ behavior: hasStreamingEntry ? "auto" : "smooth", block: "end" });
1499
+ const countChanged = count !== prevEntryCountRef.current;
1500
+ if ((countChanged || hasStreamingEntry || sending) && shouldStickToBottomRef.current) {
1501
+ scrollToBottom(hasStreamingEntry ? "auto" : "smooth");
1188
1502
  }
1189
1503
  prevEntryCountRef.current = count;
1190
- }, [displayEntries, hasStreamingEntry, sending]);
1504
+ }, [displayEntries, hasStreamingEntry, scrollToBottom, sending]);
1191
1505
 
1192
1506
  useEffect(() => {
1193
1507
  if (!showSlashCommandMenu) {
@@ -1198,18 +1512,33 @@ export function ChatPanel({
1198
1512
  }, [showSlashCommandMenu, slashCommandOptions.length]);
1199
1513
 
1200
1514
  const selectedModelLabel = useMemo(() => {
1201
- if (!selectedModel) return "Latest";
1515
+ if (!selectedModel) {
1516
+ return sessionModel?.trim()
1517
+ ? formatCurrentModelLabel(normalizedAgentName, sessionModel)
1518
+ : "Session default";
1519
+ }
1202
1520
  return modelOptions.find((option) => option.id === selectedModel)?.label ?? selectedModel;
1203
- }, [modelOptions, selectedModel]);
1521
+ }, [modelOptions, normalizedAgentName, selectedModel, sessionModel]);
1522
+ const selectedReasoningLabel = useMemo(() => {
1523
+ if (!selectedReasoning) {
1524
+ return sessionReasoningEffort?.trim()
1525
+ ? formatReasoningLabel(sessionReasoningEffort)
1526
+ : defaultReasoningSelection
1527
+ ? formatReasoningLabel(defaultReasoningSelection)
1528
+ : "Reasoning";
1529
+ }
1530
+ return reasoningOptions.find((option) => option.id === selectedReasoning)?.label
1531
+ ?? formatReasoningLabel(selectedReasoning);
1532
+ }, [defaultReasoningSelection, reasoningOptions, selectedReasoning, sessionReasoningEffort]);
1204
1533
 
1205
1534
  const handleInterrupt = useCallback(async () => {
1206
- if (!isSessionRunning || interrupting) return;
1535
+ if (!hasLiveTerminalSession || interrupting) return;
1207
1536
 
1208
1537
  setInterrupting(true);
1209
1538
  setSendError(null);
1210
1539
 
1211
1540
  try {
1212
- const response = await fetch(`/api/sessions/${encodeURIComponent(sessionId)}/kill`, {
1541
+ const response = await fetch(`/api/sessions/${encodeURIComponent(sessionId)}/interrupt`, {
1213
1542
  method: "POST",
1214
1543
  });
1215
1544
 
@@ -1218,22 +1547,34 @@ export function ChatPanel({
1218
1547
  | null;
1219
1548
 
1220
1549
  if (!response.ok) {
1221
- throw new Error(data?.error ?? `Failed to stop agent: ${response.status}`);
1550
+ throw new Error(data?.error ?? `Failed to interrupt agent: ${response.status}`);
1222
1551
  }
1223
-
1224
- await refresh();
1225
1552
  } catch (err) {
1226
- setSendError(err instanceof Error ? err.message : "Failed to stop agent");
1553
+ setSendError(err instanceof Error ? err.message : "Failed to interrupt agent");
1227
1554
  } finally {
1228
1555
  setInterrupting(false);
1229
1556
  }
1230
- }, [isSessionRunning, interrupting, sessionId, refresh]);
1557
+ }, [hasLiveTerminalSession, interrupting, sessionId]);
1558
+
1559
+ const handleSendTerminalSpecial = useCallback(async (special: string) => {
1560
+ if (!hasLiveTerminalSession) return;
1561
+
1562
+ shouldStickToBottomRef.current = true;
1563
+ setSendError(null);
1564
+
1565
+ try {
1566
+ await postSessionTerminalKeys(sessionId, { special });
1567
+ } catch (err) {
1568
+ setSendError(err instanceof Error ? err.message : "Failed to send terminal input");
1569
+ }
1570
+ }, [hasLiveTerminalSession, sessionId]);
1231
1571
 
1232
1572
  const handleSend = useCallback(async () => {
1233
1573
  if (isSessionRunning || interrupting) return;
1234
1574
  const trimmedMessage = message.trim();
1235
1575
  if (!trimmedMessage && attachments.length === 0) return;
1236
1576
 
1577
+ shouldStickToBottomRef.current = true;
1237
1578
  setSending(true);
1238
1579
  setSendError(null);
1239
1580
 
@@ -1249,7 +1590,7 @@ export function ChatPanel({
1249
1590
  message: trimmedMessage,
1250
1591
  attachments: attachmentPaths,
1251
1592
  model: selectedModel || null,
1252
- reasoningEffort: sessionReasoningEffort || null,
1593
+ reasoningEffort: selectedReasoning || null,
1253
1594
  projectId: projectId || null,
1254
1595
  }),
1255
1596
  });
@@ -1274,7 +1615,7 @@ export function ChatPanel({
1274
1615
  } finally {
1275
1616
  setSending(false);
1276
1617
  }
1277
- }, [isSessionRunning, interrupting, message, attachments, sessionId, selectedModel, sessionReasoningEffort, projectId, router, refresh]);
1618
+ }, [isSessionRunning, interrupting, message, attachments, sessionId, selectedModel, selectedReasoning, projectId, router, refresh]);
1278
1619
 
1279
1620
  function applySlashCommand(option: SlashCommandOption) {
1280
1621
  setMessage(option.command);
@@ -1282,6 +1623,10 @@ export function ChatPanel({
1282
1623
  }
1283
1624
 
1284
1625
  function handleComposerKeyDown(event: KeyboardEvent<HTMLTextAreaElement>) {
1626
+ const composerEmpty = message.length === 0 && attachments.length === 0;
1627
+ const shouldPassthroughSpecial =
1628
+ hasLiveTerminalSession && composerEmpty && !showSlashCommandMenu;
1629
+
1285
1630
  if (showSlashCommandMenu && event.key === "ArrowDown") {
1286
1631
  event.preventDefault();
1287
1632
  setSelectedSlashIndex((current) => (
@@ -1298,9 +1643,22 @@ export function ChatPanel({
1298
1643
  return;
1299
1644
  }
1300
1645
 
1301
- if (event.key === "Escape" && isSessionRunning) {
1646
+ if (event.ctrlKey && !event.metaKey && !event.altKey && !event.shiftKey && hasLiveTerminalSession) {
1647
+ if (event.key.toLowerCase() === "c") {
1648
+ event.preventDefault();
1649
+ void handleInterrupt();
1650
+ return;
1651
+ }
1652
+ if (event.key.toLowerCase() === "d") {
1653
+ event.preventDefault();
1654
+ void handleSendTerminalSpecial("C-d");
1655
+ return;
1656
+ }
1657
+ }
1658
+
1659
+ if (shouldPassthroughSpecial && event.key === "Escape") {
1302
1660
  event.preventDefault();
1303
- void handleInterrupt();
1661
+ void handleSendTerminalSpecial("Escape");
1304
1662
  return;
1305
1663
  }
1306
1664
 
@@ -1317,34 +1675,33 @@ export function ChatPanel({
1317
1675
  return;
1318
1676
  }
1319
1677
  }
1678
+ if (shouldPassthroughSpecial) {
1679
+ void handleSendTerminalSpecial("Enter");
1680
+ return;
1681
+ }
1320
1682
  if (!isSessionRunning) {
1321
1683
  void handleSend();
1322
1684
  }
1685
+ return;
1323
1686
  }
1324
- }
1325
-
1326
- useEffect(() => {
1327
- if (!isSessionRunning) return;
1328
-
1329
- const onKeyDown = (event: globalThis.KeyboardEvent) => {
1330
- if (
1331
- event.key !== "Escape"
1332
- || event.defaultPrevented
1333
- || event.metaKey
1334
- || event.ctrlKey
1335
- || event.altKey
1336
- || event.shiftKey
1337
- ) {
1338
- return;
1339
- }
1340
1687
 
1688
+ if (shouldPassthroughSpecial && event.key === "Tab") {
1341
1689
  event.preventDefault();
1342
- void handleInterrupt();
1343
- };
1690
+ void handleSendTerminalSpecial("Tab");
1691
+ return;
1692
+ }
1344
1693
 
1345
- window.addEventListener("keydown", onKeyDown);
1346
- return () => window.removeEventListener("keydown", onKeyDown);
1347
- }, [handleInterrupt, isSessionRunning]);
1694
+ if (shouldPassthroughSpecial && (
1695
+ event.key === "ArrowUp"
1696
+ || event.key === "ArrowDown"
1697
+ || event.key === "ArrowLeft"
1698
+ || event.key === "ArrowRight"
1699
+ || event.key === "Backspace"
1700
+ )) {
1701
+ event.preventDefault();
1702
+ void handleSendTerminalSpecial(event.key);
1703
+ }
1704
+ }
1348
1705
 
1349
1706
  function handleAttachmentChange(event: ChangeEvent<HTMLInputElement>) {
1350
1707
  const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10 MB
@@ -1373,7 +1730,11 @@ export function ChatPanel({
1373
1730
  return (
1374
1731
  <div className="relative flex h-full min-h-0 flex-col overflow-hidden bg-[radial-gradient(circle_at_top,rgba(45,45,45,0.32),rgba(33,33,33,1)_40%)] text-[#c4c4c4]">
1375
1732
  <div className="mx-auto flex h-full min-h-0 w-full max-w-[855px] flex-col">
1376
- <div className="flex-1 overflow-y-auto px-3 pt-3 sm:px-4">
1733
+ <div
1734
+ ref={scrollContainerRef}
1735
+ onScroll={updateBottomStickiness}
1736
+ className="flex-1 overflow-y-auto px-3 pt-3 sm:px-4"
1737
+ >
1377
1738
  <div className="mx-auto flex w-full max-w-[768px] flex-col gap-5 pb-6">
1378
1739
  {loading && displayEntries.length === 0 ? (
1379
1740
  <div className="flex items-center gap-2 px-4 text-[#8f8f8f]">
@@ -1437,7 +1798,10 @@ export function ChatPanel({
1437
1798
  <div className="relative" ref={modelMenuRef}>
1438
1799
  <button
1439
1800
  type="button"
1440
- onClick={() => setModelMenuOpen((open) => !open)}
1801
+ onClick={() => {
1802
+ setReasoningMenuOpen(false);
1803
+ setModelMenuOpen((open) => !open);
1804
+ }}
1441
1805
  className="inline-flex min-h-[31px] items-center gap-2 rounded-[3px] border border-[#333] bg-[#1c1c1c] px-[9px] py-[5px] text-[14px] leading-[21px] text-[#c4c4c4] transition hover:bg-[#292929]"
1442
1806
  >
1443
1807
  <span className="max-w-[140px] truncate">{selectedModelLabel}</span>
@@ -1445,35 +1809,144 @@ export function ChatPanel({
1445
1809
  </button>
1446
1810
 
1447
1811
  {modelMenuOpen ? (
1448
- <div className="absolute bottom-[calc(100%+8px)] right-0 z-20 max-h-80 w-[280px] overflow-y-auto rounded-[4px] border border-[#333] bg-[#1c1c1c] p-1 shadow-[0_18px_50px_rgba(0,0,0,0.35)]">
1449
- <button
1450
- type="button"
1451
- onClick={() => {
1452
- setSelectedModel(sessionModel?.trim() || "");
1453
- setModelMenuOpen(false);
1454
- }}
1455
- className="flex w-full flex-col rounded-[3px] px-3 py-2 text-left transition hover:bg-[#292929]"
1456
- >
1457
- <span className="text-[14px] leading-[21px] text-[#c4c4c4]">Session default</span>
1458
- <span className="text-[12px] leading-[18px] text-[#8f8f8f]">
1459
- Keep using the model configured on this session.
1460
- </span>
1461
- </button>
1462
-
1463
- {modelOptions.map((option) => (
1812
+ <div className="absolute bottom-[calc(100%+8px)] right-0 z-20 w-[320px] overflow-hidden rounded-[4px] border border-[#333] bg-[#1c1c1c] shadow-[0_18px_50px_rgba(0,0,0,0.35)]">
1813
+ <div className="border-b border-[#333] px-3 py-2">
1814
+ <p className="text-[12px] font-medium uppercase tracking-[0.16em] text-[#8f8f8f]">Model</p>
1815
+ <p className="mt-1 text-[12px] leading-[18px] text-[#6f6f6f]">
1816
+ Presets come from the local runtime catalog. You can also force any exact model id.
1817
+ </p>
1818
+ </div>
1819
+ <div className="max-h-72 overflow-y-auto p-1">
1464
1820
  <button
1465
- key={option.id}
1466
1821
  type="button"
1467
1822
  onClick={() => {
1468
- setSelectedModel(option.id);
1823
+ setSelectedModel(sessionModel?.trim() || "");
1824
+ setCustomModelInput("");
1469
1825
  setModelMenuOpen(false);
1470
1826
  }}
1471
- className={`flex w-full flex-col rounded-[3px] px-3 py-2 text-left transition hover:bg-[#292929] ${selectedModel === option.id ? "bg-[#292929]" : ""}`}
1827
+ className="flex w-full flex-col rounded-[3px] px-3 py-2 text-left transition hover:bg-[#292929]"
1472
1828
  >
1473
- <span className="text-[14px] leading-[21px] text-[#c4c4c4]">{option.label}</span>
1474
- <span className="text-[12px] leading-[18px] text-[#8f8f8f]">{option.helper}</span>
1829
+ <span className="text-[14px] leading-[21px] text-[#c4c4c4]">Session default</span>
1830
+ <span className="text-[12px] leading-[18px] text-[#8f8f8f]">
1831
+ {sessionModel?.trim()
1832
+ ? `Use ${formatCurrentModelLabel(normalizedAgentName, sessionModel)} for follow-up turns.`
1833
+ : "Keep using the model configured on this session."}
1834
+ </span>
1475
1835
  </button>
1476
- ))}
1836
+
1837
+ {modelOptions.map((option) => (
1838
+ <button
1839
+ key={option.id}
1840
+ type="button"
1841
+ onClick={() => {
1842
+ setSelectedModel(option.id);
1843
+ setCustomModelInput("");
1844
+ setModelMenuOpen(false);
1845
+ }}
1846
+ className={`flex w-full flex-col rounded-[3px] px-3 py-2 text-left transition hover:bg-[#292929] ${selectedModel === option.id ? "bg-[#292929]" : ""}`}
1847
+ >
1848
+ <span className="text-[14px] leading-[21px] text-[#c4c4c4]">{option.label}</span>
1849
+ <span className="text-[12px] leading-[18px] text-[#8f8f8f]">{option.helper}</span>
1850
+ </button>
1851
+ ))}
1852
+ </div>
1853
+ <div className="border-t border-[#333] p-3">
1854
+ <label className="mb-2 block text-[12px] leading-[18px] text-[#8f8f8f]">
1855
+ Exact model id
1856
+ </label>
1857
+ <div className="flex items-center gap-2">
1858
+ <input
1859
+ value={customModelInput}
1860
+ onChange={(event) => setCustomModelInput(event.target.value)}
1861
+ onKeyDown={(event) => {
1862
+ if (event.key !== "Enter") return;
1863
+ event.preventDefault();
1864
+ const nextModel = customModelInput.trim();
1865
+ if (!nextModel) return;
1866
+ setSelectedModel(nextModel);
1867
+ setModelMenuOpen(false);
1868
+ }}
1869
+ placeholder={modelPlaceholder}
1870
+ className="min-w-0 flex-1 rounded-[3px] border border-[#333] bg-[#171717] px-3 py-2 text-[13px] leading-[20px] text-[#d0d0d0] outline-none placeholder:text-[#666] focus:border-[#4a4a4a]"
1871
+ />
1872
+ <button
1873
+ type="button"
1874
+ onClick={() => {
1875
+ const nextModel = customModelInput.trim();
1876
+ if (!nextModel) return;
1877
+ setSelectedModel(nextModel);
1878
+ setModelMenuOpen(false);
1879
+ }}
1880
+ className="rounded-[3px] border border-[#333] px-3 py-2 text-[12px] leading-[18px] text-[#c4c4c4] transition hover:bg-[#292929]"
1881
+ >
1882
+ Use
1883
+ </button>
1884
+ </div>
1885
+ </div>
1886
+ </div>
1887
+ ) : null}
1888
+ </div>
1889
+ <div className="relative" ref={reasoningMenuRef}>
1890
+ <button
1891
+ type="button"
1892
+ onClick={() => {
1893
+ setModelMenuOpen(false);
1894
+ setReasoningMenuOpen((open) => !open);
1895
+ }}
1896
+ className="inline-flex min-h-[31px] items-center gap-2 rounded-[3px] border border-[#333] bg-[#1c1c1c] px-[9px] py-[5px] text-[14px] leading-[21px] text-[#c4c4c4] transition hover:bg-[#292929]"
1897
+ >
1898
+ <span className="max-w-[120px] truncate">{selectedReasoningLabel}</span>
1899
+ <ChevronDown className="h-[10px] w-[10px] text-[#8f8f8f]" strokeWidth={1.8} />
1900
+ </button>
1901
+
1902
+ {reasoningMenuOpen ? (
1903
+ <div className="absolute bottom-[calc(100%+8px)] right-0 z-20 w-[260px] overflow-hidden rounded-[4px] border border-[#333] bg-[#1c1c1c] shadow-[0_18px_50px_rgba(0,0,0,0.35)]">
1904
+ <div className="border-b border-[#333] px-3 py-2">
1905
+ <p className="text-[12px] font-medium uppercase tracking-[0.16em] text-[#8f8f8f]">Reasoning</p>
1906
+ <p className="mt-1 text-[12px] leading-[18px] text-[#6f6f6f]">
1907
+ Override how hard the agent thinks for the next turns.
1908
+ </p>
1909
+ </div>
1910
+ <div className="max-h-72 overflow-y-auto p-1">
1911
+ <button
1912
+ type="button"
1913
+ onClick={() => {
1914
+ setSelectedReasoning("");
1915
+ setReasoningMenuOpen(false);
1916
+ }}
1917
+ className="flex w-full flex-col rounded-[3px] px-3 py-2 text-left transition hover:bg-[#292929]"
1918
+ >
1919
+ <span className="text-[14px] leading-[21px] text-[#c4c4c4]">Session default</span>
1920
+ <span className="text-[12px] leading-[18px] text-[#8f8f8f]">
1921
+ {sessionReasoningEffort?.trim()
1922
+ ? `Use ${formatReasoningLabel(sessionReasoningEffort)}.`
1923
+ : "Use the default reasoning level for the selected model."}
1924
+ </span>
1925
+ </button>
1926
+
1927
+ {reasoningOptions.map((option) => (
1928
+ <button
1929
+ key={option.id}
1930
+ type="button"
1931
+ onClick={() => {
1932
+ setSelectedReasoning(option.id.trim().toLowerCase());
1933
+ setReasoningMenuOpen(false);
1934
+ }}
1935
+ className={`flex w-full flex-col rounded-[3px] px-3 py-2 text-left transition hover:bg-[#292929] ${selectedReasoning === option.id.trim().toLowerCase() ? "bg-[#292929]" : ""}`}
1936
+ >
1937
+ <span className="text-[14px] leading-[21px] text-[#c4c4c4]">{option.label}</span>
1938
+ <span className="text-[12px] leading-[18px] text-[#8f8f8f]">{option.description}</span>
1939
+ </button>
1940
+ ))}
1941
+ {reasoningOptions.length === 0 ? (
1942
+ <div className="px-3 py-2 text-[12px] leading-[18px] text-[#8f8f8f]">
1943
+ No explicit reasoning controls were detected for this agent.
1944
+ </div>
1945
+ ) : null}
1946
+ </div>
1947
+ <div className="border-t border-[#333] px-3 py-2 text-[12px] leading-[18px] text-[#6f6f6f]">
1948
+ Reasoning options can change with the selected model.
1949
+ </div>
1477
1950
  </div>
1478
1951
  ) : null}
1479
1952
  </div>
@@ -1547,9 +2020,12 @@ export function ChatPanel({
1547
2020
  <div className="inline-flex h-[29px] items-center justify-center rounded-[3px] border border-[#333] bg-[#1c1c1c] px-[9px] text-[#8f8f8f]">
1548
2021
  <Code2 className="h-[15px] w-[15px]" strokeWidth={1.7} />
1549
2022
  </div>
1550
- {sessionReasoningEffort ? (
1551
- <div className="hidden min-h-[29px] items-center rounded-[3px] bg-[#1c1c1c] px-[9px] py-[5px] text-[12px] leading-[18px] text-[#8f8f8f] sm:inline-flex">
1552
- {sessionReasoningEffort}
2023
+ <div className="hidden min-h-[29px] items-center rounded-[3px] bg-[#1c1c1c] px-[9px] py-[5px] text-[12px] leading-[18px] text-[#8f8f8f] sm:inline-flex">
2024
+ {selectedReasoningLabel}
2025
+ </div>
2026
+ {hasLiveTerminalSession ? (
2027
+ <div className="hidden min-h-[29px] items-center rounded-[3px] border border-[#333] bg-[#171717] px-[9px] py-[5px] text-[12px] leading-[18px] text-[#8f8f8f] sm:inline-flex">
2028
+ Terminal keys: empty composer forwards Enter, Tab, arrows, Esc, Backspace. Ctrl+C interrupts.
1553
2029
  </div>
1554
2030
  ) : null}
1555
2031
  </div>
@@ -1569,7 +2045,7 @@ export function ChatPanel({
1569
2045
  ) : isSessionRunning ? (
1570
2046
  <span className="inline-flex items-center gap-2">
1571
2047
  <span>Stop</span>
1572
- <span className="hidden text-[11px] leading-[11px] text-[#8f8f8f] sm:inline">Esc</span>
2048
+ <span className="hidden text-[11px] leading-[11px] text-[#8f8f8f] sm:inline">Ctrl+C</span>
1573
2049
  </span>
1574
2050
  ) : sending ? (
1575
2051
  <Loader2 className="h-4 w-4 animate-spin" />
@@ -1580,6 +2056,14 @@ export function ChatPanel({
1580
2056
  </div>
1581
2057
  </div>
1582
2058
  </div>
2059
+
2060
+ <SessionRuntimeStatusBar
2061
+ agentName={normalizedAgentName}
2062
+ sessionModel={sessionModel?.trim() || null}
2063
+ sessionReasoningEffort={sessionReasoningEffort?.trim() || null}
2064
+ runtimeStatus={runtimeStatus}
2065
+ agents={agents}
2066
+ />
1583
2067
  </div>
1584
2068
  </div>
1585
2069
  </div>