@baique/pi-web-sky 0.1.39 → 0.1.40

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 (379) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +9 -14
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/react-loadable-manifest.json +51 -51
  6. package/.next/required-server-files.js +1 -1
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/routes-manifest.json +3 -45
  9. package/.next/server/app/_global-error/page.js +2 -2
  10. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/_global-error.html +1 -1
  12. package/.next/server/app/_global-error.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/server/app/_not-found/page.js +1 -1
  17. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/_not-found.html +1 -1
  19. package/.next/server/app/_not-found.rsc +3 -3
  20. package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  21. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  22. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  23. package/.next/server/app/api/agent/[id]/bash-output/route.js +2 -2
  24. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  25. package/.next/server/app/api/agent/[id]/route.js +2 -2
  26. package/.next/server/app/api/agent/new/route.js +1 -1
  27. package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
  28. package/.next/server/app/api/agent/running/route.js +1 -1
  29. package/.next/server/app/api/app-update/route.js +1 -1
  30. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  31. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  32. package/.next/server/app/api/auth/login/[provider]/route.js +1 -1
  33. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  34. package/.next/server/app/api/auth/providers/route.js +1 -1
  35. package/.next/server/app/api/boards/[id]/reconcile/route.js +1 -0
  36. package/.next/server/app/api/boards/[id]/reconcile/route_client-reference-manifest.js +1 -0
  37. package/.next/server/app/api/boards/[id]/route.js +1 -1
  38. package/.next/server/app/api/boards/purge-orphans/route.js +1 -1
  39. package/.next/server/app/api/boards/reorder/route.js +1 -1
  40. package/.next/server/app/api/boards/route.js +1 -1
  41. package/.next/server/app/api/cwd/browse/route.js +1 -1
  42. package/.next/server/app/api/cwd/validate/route.js +2 -2
  43. package/.next/server/app/api/default-cwd/route.js +2 -2
  44. package/.next/server/app/api/file-index/route.js +2 -2
  45. package/.next/server/app/api/files/[...path]/route.js +3 -3
  46. package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -1
  47. package/.next/server/app/api/git/diff/route.js +1 -1
  48. package/.next/server/app/api/git/status/route.js +1 -1
  49. package/.next/server/app/api/home/route.js +1 -1
  50. package/.next/server/app/api/mcp/route.js +1 -1
  51. package/.next/server/app/api/models/route.js +2 -2
  52. package/.next/server/app/api/models-config/catalog/route.js +1 -1
  53. package/.next/server/app/api/models-config/discover/route.js +1 -1
  54. package/.next/server/app/api/models-config/route.js +1 -1
  55. package/.next/server/app/api/models-config/test/route.js +1 -1
  56. package/.next/server/app/api/plugins/route.js +2 -2
  57. package/.next/server/app/api/project-trust/route.js +2 -2
  58. package/.next/server/app/api/quota/route.js +1 -1
  59. package/.next/server/app/api/search/route.js +2 -2
  60. package/.next/server/app/api/sessions/[id]/auto-name/route.js +3 -3
  61. package/.next/server/app/api/sessions/[id]/context/route.js +2 -2
  62. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +2 -2
  63. package/.next/server/app/api/sessions/[id]/export/route.js +2 -2
  64. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  65. package/.next/server/app/api/sessions/[id]/state/route.js +2 -2
  66. package/.next/server/app/api/sessions/[id]/todos/route.js +2 -2
  67. package/.next/server/app/api/sessions/route.js +2 -2
  68. package/.next/server/app/api/skills/check/route.js +1 -1
  69. package/.next/server/app/api/skills/install/route.js +2 -2
  70. package/.next/server/app/api/skills/route.js +1 -1
  71. package/.next/server/app/api/skills/search/route.js +1 -1
  72. package/.next/server/app/api/skills/update/route.js +1 -1
  73. package/.next/server/app/api/task-card-questions/[id]/answer/route.js +1 -1
  74. package/.next/server/app/api/task-card-questions/route.js +1 -1
  75. package/.next/server/app/api/task-cards/[id]/route.js +1 -1
  76. package/.next/server/app/api/task-cards/route.js +1 -1
  77. package/.next/server/app/api/task-scheduler/status/route.js +1 -1
  78. package/.next/server/app/api/tasks/[id]/board/route.js +1 -1
  79. package/.next/server/app/api/tasks/[id]/route.js +1 -1
  80. package/.next/server/app/api/tasks/reorder/route.js +1 -1
  81. package/.next/server/app/api/tasks/route.js +1 -1
  82. package/.next/server/app/api/terminal/[id]/events/route.js +2 -2
  83. package/.next/server/app/api/terminal/[id]/route.js +2 -2
  84. package/.next/server/app/api/terminal/route.js +2 -2
  85. package/.next/server/app/api/worktrees/route.js +2 -2
  86. package/.next/server/app/favicon.ico/route.js +1 -1
  87. package/.next/server/app/index.html +1 -1
  88. package/.next/server/app/index.rsc +5 -5
  89. package/.next/server/app/index.segments/__PAGE__.segment.rsc +5 -5
  90. package/.next/server/app/index.segments/_full.segment.rsc +5 -5
  91. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  92. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  93. package/.next/server/app/page.js +7 -7
  94. package/.next/server/app/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app-paths-manifest.json +9 -14
  96. package/.next/server/chunks/1094.js +2 -2
  97. package/.next/server/chunks/1601.js +1 -1
  98. package/.next/server/chunks/1860.js +1 -1
  99. package/.next/server/chunks/2075.js +1 -1
  100. package/.next/server/chunks/2169.js +1 -1
  101. package/.next/server/chunks/2404.js +1 -1
  102. package/.next/server/chunks/2524.js +1 -0
  103. package/.next/server/chunks/3012.js +1 -1
  104. package/.next/server/chunks/{5760.js → 3379.js} +1 -1
  105. package/.next/server/chunks/3500.js +1 -1
  106. package/.next/server/chunks/4226.js +5 -2
  107. package/.next/server/chunks/4267.js +1 -1
  108. package/.next/server/chunks/4563.js +1 -1
  109. package/.next/server/chunks/5318.js +1 -1
  110. package/.next/server/chunks/542.js +3 -44
  111. package/.next/server/chunks/5794.js +1 -1
  112. package/.next/server/chunks/6052.js +1 -1
  113. package/.next/server/chunks/6253.js +1 -1
  114. package/.next/server/chunks/6288.js +1 -1
  115. package/.next/server/chunks/6366.js +1 -1
  116. package/.next/server/chunks/673.js +1 -1
  117. package/.next/server/chunks/6916.js +2 -2
  118. package/.next/server/chunks/7128.js +43 -0
  119. package/.next/server/chunks/7265.js +2 -2
  120. package/.next/server/chunks/7799.js +1 -1
  121. package/.next/server/chunks/8106.js +1 -1
  122. package/.next/server/chunks/8333.js +1 -1
  123. package/.next/server/chunks/8604.js +1 -1
  124. package/.next/server/chunks/861.js +1 -0
  125. package/.next/server/chunks/8713.js +1 -1
  126. package/.next/server/chunks/8782.js +2 -2
  127. package/.next/server/chunks/898.js +1 -1
  128. package/.next/server/chunks/922.js +2 -2
  129. package/.next/server/chunks/9280.js +6 -6
  130. package/.next/server/chunks/9510.js +1 -1
  131. package/.next/server/instrumentation.js +1 -1
  132. package/.next/server/instrumentation.js.nft.json +1 -1
  133. package/.next/server/middleware-build-manifest.js +1 -1
  134. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  135. package/.next/server/pages/404.html +1 -1
  136. package/.next/server/pages/500.html +1 -1
  137. package/.next/server/server-reference-manifest.json +1 -1
  138. package/.next/static/chunks/{103.23142a67b02246a8.js → 103.6c91a059aa01d92c.js} +2 -2
  139. package/.next/static/chunks/{1032.12b382a9096ab2a4.js → 1032.9e8f793d46f463f8.js} +1 -1
  140. package/.next/static/chunks/{1063.775c442bdbeef08b.js → 1063.470df8a037dc8409.js} +1 -1
  141. package/.next/static/chunks/1a258343.f4fc2c133917ded8.js +2 -0
  142. package/.next/static/chunks/{1ba63609.b2ae90f43319a29e.js → 1ba63609.569928c7234f832c.js} +1 -1
  143. package/.next/static/chunks/{2181.ba21239d3ac39f81.js → 2181.b8dda21843ef5e74.js} +1 -1
  144. package/.next/static/chunks/{2325.23caf22075e51aa5.js → 2325.23e538886331cf64.js} +1 -1
  145. package/.next/static/chunks/{2356.523277bb8c6bf72a.js → 2356.b7312589c345edec.js} +1 -1
  146. package/.next/static/chunks/{268.72794ee2773c2060.js → 268.a1d90aca268be18a.js} +1 -1
  147. package/.next/static/chunks/{2695.6f49435bae1e6f33.js → 2695.5624aa3aae540e87.js} +1 -1
  148. package/.next/static/chunks/{2703.495a65ed14b2f094.js → 2703.097bc88286733740.js} +1 -1
  149. package/.next/static/chunks/{2821.934bcf60fbdc28c6.js → 2821.d2392a93d192fe92.js} +1 -1
  150. package/.next/static/chunks/3308.2cd6f20e6c0f4e92.js +73 -0
  151. package/.next/static/chunks/{3336.a76f9485fe7cb762.js → 3336.9b1dc9ec3507d64f.js} +1 -1
  152. package/.next/static/chunks/3546.779d2c7646aa77cc.js +1 -0
  153. package/.next/static/chunks/{370.8e8f3cf8eb0e29dd.js → 370.cde2a84caa84054f.js} +1 -1
  154. package/.next/static/chunks/{3716.72bf4c9d7325debd.js → 3716.5bac496cea32ca8f.js} +1 -1
  155. package/.next/static/chunks/{3995.eca0f5bef1fc3ae5.js → 3995.cd112debcd64c610.js} +1 -1
  156. package/.next/static/chunks/{4004.74b9bcf5478b1663.js → 4004.a8f79ef62f32aa30.js} +2 -2
  157. package/.next/static/chunks/{4202.8440832386f023c7.js → 4202.96f5b1beb8b3e3f5.js} +1 -1
  158. package/.next/static/chunks/{4238.6f102dcbcf2ae339.js → 4238.28efbf9aa0c82d90.js} +1 -1
  159. package/.next/static/chunks/{4405.7a19458960a1058e.js → 4405.cda46a596a02aef7.js} +1 -1
  160. package/.next/static/chunks/54a60aa6.5e4421e7afde4de8.js +78 -0
  161. package/.next/static/chunks/{6121.eb9023b1cbc78ee2.js → 6121.5e650e714b402b6f.js} +1 -1
  162. package/.next/static/chunks/{6195.1153369f5f8b13a2.js → 6195.1b7f9dc127381bbc.js} +1 -1
  163. package/.next/static/chunks/6380.d148a8e2c701ad78.js +68 -0
  164. package/.next/static/chunks/6582.efef0ed269bacae2.js +1 -0
  165. package/.next/static/chunks/6be7e44c.00d0163f409986f0.js +1 -0
  166. package/.next/static/chunks/{7331.2add3c4e125a2dba.js → 7331.4afa66d6353c8e07.js} +1 -1
  167. package/.next/static/chunks/752.f41a9dcb0e6548eb.js +1 -0
  168. package/.next/static/chunks/{8200.a36b9f8c983c6b9e.js → 8200.350d650649b977eb.js} +1 -1
  169. package/.next/static/chunks/{8885.cf60cac98bf8b70c.js → 8885.2c060cb45c85547b.js} +1 -1
  170. package/.next/static/chunks/{918.6a9bbe564e4a2d0f.js → 918.593eb466d35cb8ad.js} +1 -1
  171. package/.next/static/chunks/{9698.4d09a99b9d99f3e5.js → 9698.758755d0387e0e22.js} +2 -2
  172. package/.next/static/chunks/97.fb73c551e14b3612.js +2 -0
  173. package/.next/static/chunks/{993e5495.8797001fcfcf2889.js → 993e5495.12cdfbc3af5c79e9.js} +1 -1
  174. package/.next/static/chunks/{9974.9a0f79beca65e8c4.js → 9974.5ee982e074ad047e.js} +1 -1
  175. package/.next/static/chunks/app/_global-error/page-bb8f79f321e26750.js +1 -0
  176. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-bb8f79f321e26750.js +1 -0
  177. package/.next/static/chunks/app/api/agent/[id]/events/route-bb8f79f321e26750.js +1 -0
  178. package/.next/static/chunks/app/api/agent/[id]/route-bb8f79f321e26750.js +1 -0
  179. package/.next/static/chunks/app/api/agent/new/route-bb8f79f321e26750.js +1 -0
  180. package/.next/static/chunks/app/api/agent/running/route-bb8f79f321e26750.js +1 -0
  181. package/.next/static/chunks/app/api/app-update/route-bb8f79f321e26750.js +1 -0
  182. package/.next/static/chunks/app/api/auth/all-providers/route-bb8f79f321e26750.js +1 -0
  183. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-bb8f79f321e26750.js +1 -0
  184. package/.next/static/chunks/app/api/auth/login/[provider]/route-bb8f79f321e26750.js +1 -0
  185. package/.next/static/chunks/app/api/auth/logout/[provider]/route-bb8f79f321e26750.js +1 -0
  186. package/.next/static/chunks/app/api/auth/providers/route-bb8f79f321e26750.js +1 -0
  187. package/.next/static/chunks/app/api/boards/[id]/reconcile/route-bb8f79f321e26750.js +1 -0
  188. package/.next/static/chunks/app/api/boards/[id]/route-bb8f79f321e26750.js +1 -0
  189. package/.next/static/chunks/app/api/boards/purge-orphans/route-bb8f79f321e26750.js +1 -0
  190. package/.next/static/chunks/app/api/boards/reorder/route-bb8f79f321e26750.js +1 -0
  191. package/.next/static/chunks/app/api/boards/route-bb8f79f321e26750.js +1 -0
  192. package/.next/static/chunks/app/api/cwd/browse/route-bb8f79f321e26750.js +1 -0
  193. package/.next/static/chunks/app/api/cwd/validate/route-bb8f79f321e26750.js +1 -0
  194. package/.next/static/chunks/app/api/default-cwd/route-bb8f79f321e26750.js +1 -0
  195. package/.next/static/chunks/app/api/file-index/route-bb8f79f321e26750.js +1 -0
  196. package/.next/static/chunks/app/api/files/[...path]/route-bb8f79f321e26750.js +1 -0
  197. package/.next/static/chunks/app/api/git/diff/route-bb8f79f321e26750.js +1 -0
  198. package/.next/static/chunks/app/api/git/status/route-bb8f79f321e26750.js +1 -0
  199. package/.next/static/chunks/app/api/home/route-bb8f79f321e26750.js +1 -0
  200. package/.next/static/chunks/app/api/mcp/route-bb8f79f321e26750.js +1 -0
  201. package/.next/static/chunks/app/api/models/route-bb8f79f321e26750.js +1 -0
  202. package/.next/static/chunks/app/api/models-config/catalog/route-bb8f79f321e26750.js +1 -0
  203. package/.next/static/chunks/app/api/models-config/discover/route-bb8f79f321e26750.js +1 -0
  204. package/.next/static/chunks/app/api/models-config/route-bb8f79f321e26750.js +1 -0
  205. package/.next/static/chunks/app/api/models-config/test/route-bb8f79f321e26750.js +1 -0
  206. package/.next/static/chunks/app/api/plugins/route-bb8f79f321e26750.js +1 -0
  207. package/.next/static/chunks/app/api/project-trust/route-bb8f79f321e26750.js +1 -0
  208. package/.next/static/chunks/app/api/quota/route-bb8f79f321e26750.js +1 -0
  209. package/.next/static/chunks/app/api/search/route-bb8f79f321e26750.js +1 -0
  210. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-bb8f79f321e26750.js +1 -0
  211. package/.next/static/chunks/app/api/sessions/[id]/context/route-bb8f79f321e26750.js +1 -0
  212. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-bb8f79f321e26750.js +1 -0
  213. package/.next/static/chunks/app/api/sessions/[id]/export/route-bb8f79f321e26750.js +1 -0
  214. package/.next/static/chunks/app/api/sessions/[id]/route-bb8f79f321e26750.js +1 -0
  215. package/.next/static/chunks/app/api/sessions/[id]/state/route-bb8f79f321e26750.js +1 -0
  216. package/.next/static/chunks/app/api/sessions/[id]/todos/route-bb8f79f321e26750.js +1 -0
  217. package/.next/static/chunks/app/api/sessions/route-bb8f79f321e26750.js +1 -0
  218. package/.next/static/chunks/app/api/skills/check/route-bb8f79f321e26750.js +1 -0
  219. package/.next/static/chunks/app/api/skills/install/route-bb8f79f321e26750.js +1 -0
  220. package/.next/static/chunks/app/api/skills/route-bb8f79f321e26750.js +1 -0
  221. package/.next/static/chunks/app/api/skills/search/route-bb8f79f321e26750.js +1 -0
  222. package/.next/static/chunks/app/api/skills/update/route-bb8f79f321e26750.js +1 -0
  223. package/.next/static/chunks/app/api/task-card-questions/[id]/answer/route-bb8f79f321e26750.js +1 -0
  224. package/.next/static/chunks/app/api/task-card-questions/route-bb8f79f321e26750.js +1 -0
  225. package/.next/static/chunks/app/api/task-cards/[id]/route-bb8f79f321e26750.js +1 -0
  226. package/.next/static/chunks/app/api/task-cards/route-bb8f79f321e26750.js +1 -0
  227. package/.next/static/chunks/app/api/task-scheduler/status/route-bb8f79f321e26750.js +1 -0
  228. package/.next/static/chunks/app/api/tasks/[id]/board/route-bb8f79f321e26750.js +1 -0
  229. package/.next/static/chunks/app/api/tasks/[id]/route-bb8f79f321e26750.js +1 -0
  230. package/.next/static/chunks/app/api/tasks/reorder/route-bb8f79f321e26750.js +1 -0
  231. package/.next/static/chunks/app/api/tasks/route-bb8f79f321e26750.js +1 -0
  232. package/.next/static/chunks/app/api/terminal/[id]/events/route-bb8f79f321e26750.js +1 -0
  233. package/.next/static/chunks/app/api/terminal/[id]/route-bb8f79f321e26750.js +1 -0
  234. package/.next/static/chunks/app/api/terminal/route-bb8f79f321e26750.js +1 -0
  235. package/.next/static/chunks/app/api/worktrees/route-bb8f79f321e26750.js +1 -0
  236. package/.next/static/chunks/app/{layout-7761e430ed68b347.js → layout-702d3c97d297c42d.js} +1 -1
  237. package/.next/static/chunks/app/manifest.webmanifest/route-bb8f79f321e26750.js +1 -0
  238. package/.next/static/chunks/app/page-fd18462c3c937a50.js +89 -0
  239. package/.next/static/chunks/next/dist/client/components/builtin/app-error-bb8f79f321e26750.js +1 -0
  240. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-bb8f79f321e26750.js +1 -0
  241. package/.next/static/chunks/next/dist/client/components/builtin/not-found-bb8f79f321e26750.js +1 -0
  242. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-bb8f79f321e26750.js +1 -0
  243. package/.next/static/chunks/webpack-d17b4dde91b96c63.js +1 -0
  244. package/.next/static/css/0c7244f7214af81f.css +1 -0
  245. package/.next/static/css/12456255969ac8de.css +31 -0
  246. package/.next/trace +43 -49
  247. package/.next/trace-build +1 -1
  248. package/.next/types/app/api/boards/[id]/{reconcile-task-edges → reconcile}/route.ts +3 -3
  249. package/.next/types/routes.d.ts +2 -7
  250. package/.next/types/validator.ts +3 -48
  251. package/README.md +6 -9
  252. package/THIRD_PARTY_NOTICES.md +10 -82
  253. package/bin/pi-web-sky.js +3 -3
  254. package/lib/board-reconcile-scheduler.ts +56 -0
  255. package/lib/board-reconcile.test.mjs +252 -0
  256. package/lib/board-reconcile.ts +422 -0
  257. package/lib/board-store.test.mjs +26 -4
  258. package/lib/board-store.ts +44 -6
  259. package/lib/i18n/messages/en.ts +1 -1
  260. package/lib/i18n/messages/zh-CN.ts +1 -1
  261. package/lib/session-delete.ts +5 -0
  262. package/lib/sqlite-db.ts +13 -1
  263. package/lib/task-card-store.ts +26 -1
  264. package/lib/task-scheduler.test.mjs +79 -0
  265. package/lib/task-scheduler.ts +195 -21
  266. package/lib/yjs-room-server.mjs +139 -0
  267. package/package.json +12 -9
  268. package/server.mjs +7 -7
  269. package/.next/server/app/api/boards/[id]/canvas/route.js +0 -1
  270. package/.next/server/app/api/boards/[id]/canvas/route_client-reference-manifest.js +0 -1
  271. package/.next/server/app/api/boards/[id]/edges/[eid]/route.js +0 -1
  272. package/.next/server/app/api/boards/[id]/edges/[eid]/route.js.nft.json +0 -1
  273. package/.next/server/app/api/boards/[id]/edges/[eid]/route_client-reference-manifest.js +0 -1
  274. package/.next/server/app/api/boards/[id]/edges/route.js +0 -1
  275. package/.next/server/app/api/boards/[id]/edges/route.js.nft.json +0 -1
  276. package/.next/server/app/api/boards/[id]/edges/route_client-reference-manifest.js +0 -1
  277. package/.next/server/app/api/boards/[id]/nodes/[nid]/route.js +0 -1
  278. package/.next/server/app/api/boards/[id]/nodes/[nid]/route.js.nft.json +0 -1
  279. package/.next/server/app/api/boards/[id]/nodes/[nid]/route_client-reference-manifest.js +0 -1
  280. package/.next/server/app/api/boards/[id]/nodes/route.js +0 -1
  281. package/.next/server/app/api/boards/[id]/nodes/route.js.nft.json +0 -1
  282. package/.next/server/app/api/boards/[id]/nodes/route_client-reference-manifest.js +0 -1
  283. package/.next/server/app/api/boards/[id]/reconcile-task-edges/route.js +0 -1
  284. package/.next/server/app/api/boards/[id]/reconcile-task-edges/route.js.nft.json +0 -1
  285. package/.next/server/app/api/boards/[id]/reconcile-task-edges/route_client-reference-manifest.js +0 -1
  286. package/.next/static/chunks/3308.857c554428b3294e.js +0 -73
  287. package/.next/static/chunks/333.bf0651c789b2eb33.js +0 -1
  288. package/.next/static/chunks/5315.dba7515ae6e139ae.js +0 -4
  289. package/.next/static/chunks/54a60aa6.0e43cde7298ebcb7.js +0 -78
  290. package/.next/static/chunks/7999.879d5a20e8641752.js +0 -259
  291. package/.next/static/chunks/app/_global-error/page-d6f52627eddf9119.js +0 -1
  292. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-d6f52627eddf9119.js +0 -1
  293. package/.next/static/chunks/app/api/agent/[id]/events/route-d6f52627eddf9119.js +0 -1
  294. package/.next/static/chunks/app/api/agent/[id]/route-d6f52627eddf9119.js +0 -1
  295. package/.next/static/chunks/app/api/agent/new/route-d6f52627eddf9119.js +0 -1
  296. package/.next/static/chunks/app/api/agent/running/route-d6f52627eddf9119.js +0 -1
  297. package/.next/static/chunks/app/api/app-update/route-d6f52627eddf9119.js +0 -1
  298. package/.next/static/chunks/app/api/auth/all-providers/route-d6f52627eddf9119.js +0 -1
  299. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-d6f52627eddf9119.js +0 -1
  300. package/.next/static/chunks/app/api/auth/login/[provider]/route-d6f52627eddf9119.js +0 -1
  301. package/.next/static/chunks/app/api/auth/logout/[provider]/route-d6f52627eddf9119.js +0 -1
  302. package/.next/static/chunks/app/api/auth/providers/route-d6f52627eddf9119.js +0 -1
  303. package/.next/static/chunks/app/api/boards/[id]/canvas/route-d6f52627eddf9119.js +0 -1
  304. package/.next/static/chunks/app/api/boards/[id]/edges/[eid]/route-d6f52627eddf9119.js +0 -1
  305. package/.next/static/chunks/app/api/boards/[id]/edges/route-d6f52627eddf9119.js +0 -1
  306. package/.next/static/chunks/app/api/boards/[id]/nodes/[nid]/route-d6f52627eddf9119.js +0 -1
  307. package/.next/static/chunks/app/api/boards/[id]/nodes/route-d6f52627eddf9119.js +0 -1
  308. package/.next/static/chunks/app/api/boards/[id]/reconcile-task-edges/route-d6f52627eddf9119.js +0 -1
  309. package/.next/static/chunks/app/api/boards/[id]/route-d6f52627eddf9119.js +0 -1
  310. package/.next/static/chunks/app/api/boards/purge-orphans/route-d6f52627eddf9119.js +0 -1
  311. package/.next/static/chunks/app/api/boards/reorder/route-d6f52627eddf9119.js +0 -1
  312. package/.next/static/chunks/app/api/boards/route-d6f52627eddf9119.js +0 -1
  313. package/.next/static/chunks/app/api/cwd/browse/route-d6f52627eddf9119.js +0 -1
  314. package/.next/static/chunks/app/api/cwd/validate/route-d6f52627eddf9119.js +0 -1
  315. package/.next/static/chunks/app/api/default-cwd/route-d6f52627eddf9119.js +0 -1
  316. package/.next/static/chunks/app/api/file-index/route-d6f52627eddf9119.js +0 -1
  317. package/.next/static/chunks/app/api/files/[...path]/route-d6f52627eddf9119.js +0 -1
  318. package/.next/static/chunks/app/api/git/diff/route-d6f52627eddf9119.js +0 -1
  319. package/.next/static/chunks/app/api/git/status/route-d6f52627eddf9119.js +0 -1
  320. package/.next/static/chunks/app/api/home/route-d6f52627eddf9119.js +0 -1
  321. package/.next/static/chunks/app/api/mcp/route-d6f52627eddf9119.js +0 -1
  322. package/.next/static/chunks/app/api/models/route-d6f52627eddf9119.js +0 -1
  323. package/.next/static/chunks/app/api/models-config/catalog/route-d6f52627eddf9119.js +0 -1
  324. package/.next/static/chunks/app/api/models-config/discover/route-d6f52627eddf9119.js +0 -1
  325. package/.next/static/chunks/app/api/models-config/route-d6f52627eddf9119.js +0 -1
  326. package/.next/static/chunks/app/api/models-config/test/route-d6f52627eddf9119.js +0 -1
  327. package/.next/static/chunks/app/api/plugins/route-d6f52627eddf9119.js +0 -1
  328. package/.next/static/chunks/app/api/project-trust/route-d6f52627eddf9119.js +0 -1
  329. package/.next/static/chunks/app/api/quota/route-d6f52627eddf9119.js +0 -1
  330. package/.next/static/chunks/app/api/search/route-d6f52627eddf9119.js +0 -1
  331. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-d6f52627eddf9119.js +0 -1
  332. package/.next/static/chunks/app/api/sessions/[id]/context/route-d6f52627eddf9119.js +0 -1
  333. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-d6f52627eddf9119.js +0 -1
  334. package/.next/static/chunks/app/api/sessions/[id]/export/route-d6f52627eddf9119.js +0 -1
  335. package/.next/static/chunks/app/api/sessions/[id]/route-d6f52627eddf9119.js +0 -1
  336. package/.next/static/chunks/app/api/sessions/[id]/state/route-d6f52627eddf9119.js +0 -1
  337. package/.next/static/chunks/app/api/sessions/[id]/todos/route-d6f52627eddf9119.js +0 -1
  338. package/.next/static/chunks/app/api/sessions/route-d6f52627eddf9119.js +0 -1
  339. package/.next/static/chunks/app/api/skills/check/route-d6f52627eddf9119.js +0 -1
  340. package/.next/static/chunks/app/api/skills/install/route-d6f52627eddf9119.js +0 -1
  341. package/.next/static/chunks/app/api/skills/route-d6f52627eddf9119.js +0 -1
  342. package/.next/static/chunks/app/api/skills/search/route-d6f52627eddf9119.js +0 -1
  343. package/.next/static/chunks/app/api/skills/update/route-d6f52627eddf9119.js +0 -1
  344. package/.next/static/chunks/app/api/task-card-questions/[id]/answer/route-d6f52627eddf9119.js +0 -1
  345. package/.next/static/chunks/app/api/task-card-questions/route-d6f52627eddf9119.js +0 -1
  346. package/.next/static/chunks/app/api/task-cards/[id]/route-d6f52627eddf9119.js +0 -1
  347. package/.next/static/chunks/app/api/task-cards/route-d6f52627eddf9119.js +0 -1
  348. package/.next/static/chunks/app/api/task-scheduler/status/route-d6f52627eddf9119.js +0 -1
  349. package/.next/static/chunks/app/api/tasks/[id]/board/route-d6f52627eddf9119.js +0 -1
  350. package/.next/static/chunks/app/api/tasks/[id]/route-d6f52627eddf9119.js +0 -1
  351. package/.next/static/chunks/app/api/tasks/reorder/route-d6f52627eddf9119.js +0 -1
  352. package/.next/static/chunks/app/api/tasks/route-d6f52627eddf9119.js +0 -1
  353. package/.next/static/chunks/app/api/terminal/[id]/events/route-d6f52627eddf9119.js +0 -1
  354. package/.next/static/chunks/app/api/terminal/[id]/route-d6f52627eddf9119.js +0 -1
  355. package/.next/static/chunks/app/api/terminal/route-d6f52627eddf9119.js +0 -1
  356. package/.next/static/chunks/app/api/worktrees/route-d6f52627eddf9119.js +0 -1
  357. package/.next/static/chunks/app/manifest.webmanifest/route-d6f52627eddf9119.js +0 -1
  358. package/.next/static/chunks/app/page-2c87c41e7f848f45.js +0 -89
  359. package/.next/static/chunks/e3e7ddb2.a35db430b3564999.js +0 -1
  360. package/.next/static/chunks/next/dist/client/components/builtin/app-error-d6f52627eddf9119.js +0 -1
  361. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-d6f52627eddf9119.js +0 -1
  362. package/.next/static/chunks/next/dist/client/components/builtin/not-found-d6f52627eddf9119.js +0 -1
  363. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-d6f52627eddf9119.js +0 -1
  364. package/.next/static/chunks/webpack-4bbf04891e910713.js +0 -1
  365. package/.next/static/css/80c818c5781fbadc.css +0 -4
  366. package/.next/static/css/d3a2b5077b52c727.css +0 -1
  367. package/.next/types/app/api/boards/[id]/canvas/route.ts +0 -353
  368. package/.next/types/app/api/boards/[id]/edges/[eid]/route.ts +0 -353
  369. package/.next/types/app/api/boards/[id]/edges/route.ts +0 -353
  370. package/.next/types/app/api/boards/[id]/nodes/[nid]/route.ts +0 -353
  371. package/.next/types/app/api/boards/[id]/nodes/route.ts +0 -353
  372. package/lib/board-search.test.mjs +0 -110
  373. package/lib/board-search.ts +0 -63
  374. package/lib/file-explorer-state.test.mjs +0 -63
  375. package/lib/file-explorer-state.ts +0 -36
  376. package/lib/sync-room-server.mjs +0 -137
  377. /package/.next/server/app/api/boards/[id]/{canvas → reconcile}/route.js.nft.json +0 -0
  378. /package/.next/static/{IzmOG04jJst1VpUvr_fr5 → 12RFLqhiUZG8Sj49T1KKQ}/_buildManifest.js +0 -0
  379. /package/.next/static/{IzmOG04jJst1VpUvr_fr5 → 12RFLqhiUZG8Sj49T1KKQ}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-400:oklch(70.4% .191 22.216);--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-text-muted:var(--text-muted)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-\[4px\]{margin-bottom:4px}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-\[720px\]{height:720px}.h-full{height:100%}.w-\[720px\]{width:720px}.w-full{width:100%}.max-w-\[820px\]{max-width:820px}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[drop-ripple_2\.4s_ease-out_infinite_backwards\]{animation:drop-ripple 2.4s ease-out infinite backwards}.animate-\[drop-zone-in_0\.15s_ease_both\]{animation:drop-zone-in .15s both}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e+38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-solid{--tw-border-style:solid;border-style:solid}.border-\[rgba\(37\,99\,235\,0\.5\)\]{border-color:#2563eb80}.bg-\[rgba\(37\,99\,235\,0\.06\)\]{background-color:#2563eb0f}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pb-\[4px\]{padding-bottom:4px}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.break-all{word-break:break-all}.text-red-400{color:var(--color-red-400)}.text-text-muted{color:var(--color-text-muted)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow-\[0_6px_18px_rgba\(37\,99\,235\,0\.18\)\]{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow-\[0_6px_18px_rgba\(37\,99\,235\,0\.18\)\]{--tw-drop-shadow-size:drop-shadow(0 6px 18px var(--tw-drop-shadow-color,#2563eb2e));--tw-drop-shadow:var(--tw-drop-shadow-size)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\[1px\]{--tw-backdrop-blur:blur(1px)}.backdrop-blur-\[1px\],.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.\[migrate\:debug\]{migrate:debug}.\[scrollbar-width\:none\]{scrollbar-width:none}.\[sync\:room\]{sync:room}.\[tool\:read\]{tool:read}}:root{--bg:#fff;--bg-panel:#f5f5f5;--bg-hover:#eee;--bg-selected:#e8e8e8;--border:var(--text)}@supports (color:color-mix(in lab,red,red)){:root{--border:color-mix(in srgb,var(--text) 20%,transparent)}}:root{--text:#0f172a;--text-muted:#3f4c5f;--text-dim:#8b95a3;--text-meta:#1e293beb;--msg-tool-text:#000}@supports (color:color-mix(in lab,red,red)){:root{--msg-tool-text:color-mix(in srgb,#000 85%,var(--text-muted))}}:root{--accent:#3184f8;--accent-hover:#1d4ed8;--user-bg:#eff6ff;--assistant-bg:#fff;--tool-bg:#f9fafb;--bg-subtle:#0000000a;--side-hover:var(--text)}@supports (color:color-mix(in lab,red,red)){:root{--side-hover:color-mix(in srgb,var(--text) 6%,transparent)}}:root{--side-active:var(--text)}@supports (color:color-mix(in lab,red,red)){:root{--side-active:color-mix(in srgb,var(--text) 10%,transparent)}}:root{--side-selected:var(--accent)}@supports (color:color-mix(in lab,red,red)){:root{--side-selected:color-mix(in srgb,var(--accent) 12%,transparent)}}:root{--side-input:var(--glass-bg-strong)}@supports (color:color-mix(in lab,red,red)){:root{--side-input:color-mix(in srgb,var(--glass-bg-strong) 60%,transparent)}}:root{--frame-glass:#ffffffc2;--side-panel:var(--frame-glass);--popover-glass:#ffffffdb;--app-bg-scrim:#0000000d;--glass-bg:#fafafba6;--glass-bg-strong:#ffffffc7;--glass-bg-input:#fafafb85;--panel-glass:#fafafbe0;--panel-glass-todo:#fafafbbf;--panel-glass-minimap:#fafafbbf;--timeline-rail:linear-gradient(to bottom,transparent,var(--text) 8%,var(--text) 92%,transparent)}@supports (color:color-mix(in lab,red,red)){:root{--timeline-rail:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--text) 22%,transparent) 8%,color-mix(in srgb,var(--text) 22%,transparent) 92%,transparent)}}:root{--timeline-dot-bg:var(--text)}@supports (color:color-mix(in lab,red,red)){:root{--timeline-dot-bg:color-mix(in srgb,var(--text) 16%,transparent)}}:root{--timeline-dot-border:var(--text)}@supports (color:color-mix(in lab,red,red)){:root{--timeline-dot-border:color-mix(in srgb,var(--text) 30%,transparent)}}:root{--timeline-dot-active-bg:var(--accent)}@supports (color:color-mix(in lab,red,red)){:root{--timeline-dot-active-bg:color-mix(in srgb,var(--accent) 55%,transparent)}}:root{--timeline-dot-active-border:var(--accent)}@supports (color:color-mix(in lab,red,red)){:root{--timeline-dot-active-border:color-mix(in srgb,var(--accent) 85%,transparent)}}:root{--timeline-dot-active-glow:0 0 0 3px var(--accent)}@supports (color:color-mix(in lab,red,red)){:root{--timeline-dot-active-glow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}}:root{--file-panel:var(--side-panel);--file-panel-chrome:var(--text)}@supports (color:color-mix(in lab,red,red)){:root{--file-panel-chrome:color-mix(in srgb,var(--text) 5%,transparent)}}:root{--file-panel-gutter:var(--text)}@supports (color:color-mix(in lab,red,red)){:root{--file-panel-gutter:color-mix(in srgb,var(--text) 3%,transparent)}}:root{--file-panel-paper:var(--bg)}@supports (color:color-mix(in lab,red,red)){:root{--file-panel-paper:color-mix(in srgb,var(--bg) 60%,transparent)}}:root{--board-card-glass:rgba(250,250,251,var(--bubble-alpha));--board-blur:12px;--board-scrim-alpha:0;--board-scrim-bg:rgba(0,0,0,var(--board-scrim-alpha));--board-scrim-blur:2px;--glass-blur:8px;--glass-blur-heavy:12px;--glass-blur-panel:10px;--glass-blur-popover:10px;--steer-active:#f97316;--follow-active:#8b5cf6;--user-bg-rgb:219,234,254;--assistant-bg-rgb:252,252,253;--tool-bg-rgb:248,248,250;--bubble-alpha:.44;--user-bg-glass:rgba(var(--user-bg-rgb),var(--bubble-alpha));--user-border-glass:#3b82f638;--assistant-card-glass:rgba(var(--assistant-bg-rgb),var(--bubble-alpha));--tool-bg-glass:rgba(var(--tool-bg-rgb),var(--bubble-alpha));--glass-blur-bubble:8px;--bubble-pad-x:14px;--bubble-pad-y:7px;--bubble-pad-end:8px;--bubble-gap:8px;--bubble-radius:12px;--bubble-inner-radius:7px;--bubble-meta-fs:11px;--bubble-title-fs:12px;--bubble-border:var(--border)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-border:color-mix(in srgb,var(--border) 60%,transparent)}}:root{--bubble-hairline:var(--border)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-hairline:color-mix(in srgb,var(--border) 55%,transparent)}}:root{--bubble-tool-bg:var(--tool-bg-glass)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-tool-bg:color-mix(in srgb,var(--tool-bg-glass) 58%,transparent)}}:root{--bubble-tool-bg-hover:var(--tool-bg-glass)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-tool-bg-hover:color-mix(in srgb,var(--tool-bg-glass) 80%,transparent)}}:root{--bubble-tool-bg-fold:var(--tool-bg-glass)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-tool-bg-fold:color-mix(in srgb,var(--tool-bg-glass) 28%,transparent)}}:root{--bubble-code-bg:var(--tool-bg-glass)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-code-bg:color-mix(in srgb,var(--tool-bg-glass) 58%,transparent)}}:root{--bubble-th-bg:var(--tool-bg-glass)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-th-bg:color-mix(in srgb,var(--tool-bg-glass) 45%,transparent)}}:root{--bubble-file-bg:var(--bg)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-file-bg:color-mix(in srgb,var(--bg) 98%,var(--bg-panel))}}:root{--bubble-file-chrome:var(--bg)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-file-chrome:color-mix(in srgb,var(--bg) 93%,var(--bg-panel))}}:root{--glass-saturate:80%}html.dark{--bg:#1a1a1a;--bg-panel:#242424;--bg-hover:#2e2e2e;--bg-selected:#383838;--border:var(--text)}@supports (color:color-mix(in lab,red,red)){html.dark{--border:color-mix(in srgb,var(--text) 25%,transparent)}}html.dark{--text:#f5f7fa;--text-muted:#c7d0da;--text-dim:#8a93a0;--text-meta:#e8eef7eb;--msg-tool-text:var(--text)}@supports (color:color-mix(in lab,red,red)){html.dark{--msg-tool-text:color-mix(in srgb,var(--text) 32%,var(--text-muted))}}html.dark{--accent:#60a5fa;--accent-hover:#93c5fd;--side-hover:var(--text)}@supports (color:color-mix(in lab,red,red)){html.dark{--side-hover:color-mix(in srgb,var(--text) 6%,transparent)}}html.dark{--side-active:var(--text)}@supports (color:color-mix(in lab,red,red)){html.dark{--side-active:color-mix(in srgb,var(--text) 10%,transparent)}}html.dark{--side-selected:var(--accent)}@supports (color:color-mix(in lab,red,red)){html.dark{--side-selected:color-mix(in srgb,var(--accent) 14%,transparent)}}html.dark{--side-input:var(--glass-bg-strong)}@supports (color:color-mix(in lab,red,red)){html.dark{--side-input:color-mix(in srgb,var(--glass-bg-strong) 60%,transparent)}}html.dark{--frame-glass:#1c1c1fad;--side-panel:var(--frame-glass);--popover-glass:#1c1c1fcc;--user-bg:#1e293b;--assistant-bg:#1a1a1a;--tool-bg:#1f2937;--bg-subtle:#ffffff0d;--app-bg-scrim:#0000000f;--board-card-glass:rgba(34,34,37,var(--bubble-alpha));--glass-bg:#1e1e21a6;--glass-bg-strong:#222225c7;--glass-saturate:140%;--glass-bg-input:#22222585;--panel-glass:#222225e0;--panel-glass-todo:#222225bf;--panel-glass-minimap:#222225bf;--glass-blur:8px;--glass-blur-heavy:12px;--steer-active:#d97706;--follow-active:#818cf8;--user-bg-rgb:30,58,95;--assistant-bg-rgb:36,36,39;--tool-bg-rgb:36,36,39;--bubble-alpha:.55;--user-bg-glass:rgba(var(--user-bg-rgb),var(--bubble-alpha));--user-border-glass:#60a5fa47;--assistant-card-glass:rgba(var(--assistant-bg-rgb),var(--bubble-alpha));--tool-bg-glass:rgba(var(--tool-bg-rgb),var(--bubble-alpha));--glass-blur-bubble:6px}.catppuccin-file-icon{background:50%/contain no-repeat var(--catppuccin-icon-light);flex-shrink:0;display:block}html.dark .catppuccin-file-icon{background-image:var(--catppuccin-icon-dark)}@supports ((-webkit-mask-image:url("mask.svg")) or (mask-image:url("mask.svg"))){.catppuccin-file-icon{background:var(--text-dim);mask:center/contain no-repeat var(--catppuccin-icon-light);-webkit-mask:center/contain no-repeat var(--catppuccin-icon-light)}html.dark .catppuccin-file-icon{background:var(--text-dim);mask-image:var(--catppuccin-icon-dark);-webkit-mask-image:var(--catppuccin-icon-dark)}}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2}*{box-sizing:border-box}body,html{width:100%;height:100dvh;height:var(--app-viewport-height,100dvh);background:var(--bg);color:var(--text);overscroll-behavior:none;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;overflow:hidden}body{background-color:var(--bg);background-image:linear-gradient(var(--app-bg-scrim),var(--app-bg-scrim)),var(--app-bg-image,none),var(--app-bg-fill,none);background-size:100% 100%,var(--app-bg-size,cover),100% 100%;background-position:50%,var(--app-bg-pos-x,center) center,50%;background-repeat:no-repeat,var(--app-bg-repeat,no-repeat),no-repeat;flex-direction:column;display:flex}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.glass-panel{background:var(--panel-glass);-webkit-backdrop-filter:blur(var(--glass-blur-panel)) saturate(var(--glass-saturate));transform:translateZ(0)}.glass-canvas{background-color:var(--frame-glass);background-image:linear-gradient(var(--frame-glass),var(--frame-glass)),var(--glass-bg-image-heavy,none);background-position:0 0,0 0;background-repeat:no-repeat,no-repeat;background-size:100% 100%,100% 100%;background-attachment:fixed}.glass-popover{background:var(--glass-bg-strong)}@supports (color:color-mix(in lab,red,red)){.glass-popover{background:color-mix(in srgb,var(--glass-bg-strong) 60%,transparent)}}.glass-popover{-webkit-backdrop-filter:blur(var(--glass-blur-popover)) saturate(var(--glass-saturate));transform:translateZ(0)}[data-glass-scope=board] .extension-status-shelf,[data-glass-scope=board] .glass-canvas{background-image:none}.glass-top-panel{background:var(--frame-glass);-webkit-backdrop-filter:blur(var(--glass-blur-heavy)) saturate(var(--glass-saturate));border:1px solid var(--border);transform:translateZ(0)}@supports (color:color-mix(in lab,red,red)){.glass-top-panel{border:1px solid color-mix(in srgb,var(--border) 60%,transparent)}}.glass-top-panel{border-top:none;border-radius:0 0 12px 12px;box-shadow:0 1px 2px #0f172a0a,0 4px 16px -8px #0f172a1a}.extension-status-shelf{border-top:1px solid var(--border);flex-wrap:nowrap;flex-shrink:0;align-items:stretch;min-width:0;display:flex;position:relative}@supports (color:color-mix(in lab,red,red)){.extension-status-shelf{border-top:1px solid color-mix(in srgb,var(--border) 60%,transparent)}}.extension-status-shelf{background-color:var(--frame-glass);background-image:linear-gradient(var(--frame-glass),var(--frame-glass)),var(--glass-bg-image-heavy,none);background-position:0 0,0 0;background-repeat:no-repeat,no-repeat;background-size:100% 100%,100% 100%;background-attachment:fixed}.extension-status-left{flex-wrap:wrap;flex:auto;align-items:stretch;min-width:0;display:flex}.extension-status-right{flex:0 auto;justify-content:center;align-items:stretch;min-width:0;display:flex}.extension-widget-panels{z-index:60;overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid var(--border);flex-direction:column;max-height:min(144px,18dvh);display:flex;position:absolute;bottom:100%;left:0;right:0;overflow:hidden auto}@supports (color:color-mix(in lab,red,red)){.extension-widget-panels{border:1px solid color-mix(in srgb,var(--border) 78%,transparent)}}.extension-widget-panels{background:var(--frame-glass);-webkit-backdrop-filter:blur(var(--glass-blur-heavy)) saturate(var(--glass-saturate));border-radius:8px 8px 0 0;box-shadow:0 -4px 16px #0000001a}.extension-widget-panel{background:0 0;flex-shrink:0;min-width:0;overflow:hidden}.extension-widget-panel-heading{height:26px;color:var(--text);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;padding:5px 12px 0;font-size:11px;font-weight:600;overflow:hidden}.extension-widget-triggers{overscroll-behavior-x:contain;scrollbar-width:none;flex:0 auto;align-items:stretch;min-width:0;height:35px;display:flex;overflow:auto hidden}.extension-widget-triggers::-webkit-scrollbar{display:none}.extension-status-shelf.has-widgets.has-status .extension-widget-triggers{border-right:1px solid var(--border)}@supports (color:color-mix(in lab,red,red)){.extension-status-shelf.has-widgets.has-status .extension-widget-triggers{border-right:1px solid color-mix(in srgb,var(--border) 78%,transparent)}}.extension-widget-trigger{border:0;border-right:1px solid var(--border);flex:0 0 108px;align-items:center;gap:5px;width:108px;height:35px;padding:0 7px;display:flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.extension-widget-trigger{border-right:1px solid color-mix(in srgb,var(--border) 78%,transparent)}}.extension-widget-trigger{color:var(--text-muted);font-family:var(--font-mono);text-align:left;background:0 0;font-size:11px}.extension-widget-update-pulse{z-index:0;opacity:0;pointer-events:none;transition:opacity .18s ease-out;position:absolute;inset:0}.extension-widget-update-pulse:before{background:var(--accent);content:"";opacity:.12;position:absolute;inset:0}.extension-widget-trigger.is-updating .extension-widget-update-pulse{opacity:1}.extension-widget-trigger.is-updating .extension-widget-update-pulse:before{animation:extension-widget-update-pulse .9s ease-in-out infinite alternate}@keyframes extension-widget-update-pulse{0%{opacity:.18}to{opacity:.06}}button.extension-widget-trigger{cursor:pointer;transition:background .12s,color .12s}.extension-widget-trigger.is-expanded,button.extension-widget-trigger:hover{background:var(--bg-hover);color:var(--text)}button.extension-widget-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.extension-widget-placement{z-index:1;width:10px;color:var(--text-dim);flex:0 0 10px;justify-content:center;align-items:center;display:flex;position:relative}.extension-widget-placement-icon{fill:currentColor;flex:0 0 8px;width:8px;height:6px;display:block}.extension-widget-key{z-index:1;min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;position:relative;overflow:hidden}.subagent-widget-card{cursor:pointer}.subagent-widget-card:hover{color:var(--text)}.subagent-widget-card.is-expanded{color:var(--text);background:var(--bg-selected);border-top:2px solid var(--accent)}.subagent-widget-card:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media (prefers-reduced-motion:reduce){.extension-widget-update-pulse{transition:none}.extension-widget-trigger.is-updating .extension-widget-update-pulse:before{opacity:.12;animation:none}}.extension-widget-content{color:var(--text-muted);font-family:var(--font-mono);overflow-wrap:anywhere;white-space:pre-wrap;margin:0;padding:3px 12px 8px;font-size:14px;line-height:1.45}.extension-status-line{flex:0 auto;align-items:center;min-width:0;height:35px;padding:0 12px;display:flex}.extension-status-text{min-width:0;color:var(--text-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}@media (max-width:640px){.extension-status-right:not(.has-tools){display:none}}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}:root{--font-mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"PingFang SC","Microsoft YaHei",monospace}.markdown-body,code,pre{font-family:var(--font-mono)}.markdown-body{min-width:0;max-width:100%;color:var(--text);word-break:break-word;font-size:14px;line-height:1.7;overflow-x:hidden}.markdown-body p{margin:0 0 8px}.markdown-body p:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{color:var(--text);letter-spacing:0;margin:10px 0 5px;font-weight:600;line-height:1.35}.markdown-body h1{font-size:1.16em}.markdown-body h2{font-size:1.08em}.markdown-body h3{color:var(--text);font-size:.98em}@supports (color:color-mix(in lab,red,red)){.markdown-body h3{color:color-mix(in srgb,var(--text) 88%,var(--text-muted))}}.markdown-body ul{padding-left:22px}.markdown-body ol,.markdown-body ul{margin:5px 0 8px;list-style-position:outside}.markdown-body ol{padding-left:30px}.markdown-body li{margin:3px 0;padding-left:2px}.markdown-body ul>li{list-style-type:disc}.markdown-body ol>li{list-style-type:decimal}.markdown-body li>p{margin:0}.markdown-body li::marker{color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.markdown-body li::marker{color:color-mix(in srgb,var(--accent) 72%,var(--text-muted))}}.markdown-body li::marker{font-weight:600}.markdown-body strong{color:var(--text)}@supports (color:color-mix(in lab,red,red)){.markdown-body strong{color:color-mix(in srgb,var(--text) 88%,var(--accent))}}.markdown-body strong{font-weight:700}.markdown-body em{color:var(--text-muted)}.markdown-body a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.markdown-body a{-webkit-text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent)}}.markdown-body a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.markdown-body img{border-radius:6px;max-width:100%;height:auto;margin:8px 0;display:block}.markdown-body .markdown-inline-code{background:var(--bg-subtle);color:var(--text);font-family:var(--font-mono);box-shadow:inset 0 0 0 1px var(--border);border-radius:5px;padding:1px 5px;font-size:.92em}@supports (color:color-mix(in lab,red,red)){.markdown-body .markdown-inline-code{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border) 70%,transparent)}}.markdown-body .contains-task-list{padding-left:0;list-style:none}.markdown-body .task-list-item{padding-left:25px;display:block;position:relative}.markdown-body .task-list-item::marker{content:""}.markdown-body .task-list-item>input[type=checkbox],.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child{appearance:none;border:1px solid var(--border);background:var(--bg);border-radius:4px;place-content:center;width:14px;height:14px;margin:0;display:inline-grid;position:absolute;top:.35em;left:0}.markdown-body .task-list-item>input[type=checkbox]:checked,.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child:checked{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.markdown-body .task-list-item>input[type=checkbox]:checked,.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child:checked{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}}.markdown-body .task-list-item>input[type=checkbox]:checked,.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child:checked{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.markdown-body .task-list-item>input[type=checkbox]:checked,.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child:checked{background:color-mix(in srgb,var(--accent) 10%,var(--bg))}}.markdown-body .task-list-item>input[type=checkbox]:checked:before,.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child:checked:before{content:"";border:solid var(--accent);border-width:0 1.5px 1.5px 0;width:4px;height:8px;transform:rotate(45deg)translateY(-1px)}.markdown-body blockquote{border-left:3px solid var(--border)}@supports (color:color-mix(in lab,red,red)){.markdown-body blockquote{border-left:3px solid color-mix(in srgb,var(--border) 75%,var(--text-muted))}}.markdown-body blockquote{background:var(--bg-subtle);color:var(--text-muted);border-radius:0 6px 6px 0;margin:6px 0;padding:6px 11px}.markdown-table-wrap{border:1px solid var(--border);border-radius:var(--bubble-inner-radius);width:100%;margin:8px 0;overflow:auto hidden}.markdown-body table{border-collapse:separate;border-spacing:0;min-width:100%;font-size:13px}.markdown-body td,.markdown-body th{border:0;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:6px 10px}.markdown-body tr:last-child td{border-bottom:0}.markdown-body th{background:var(--bubble-th-bg);color:var(--text)}@supports (color:color-mix(in lab,red,red)){.markdown-body th{color:color-mix(in srgb,var(--text) 88%,var(--text-muted))}}.markdown-body th{font-weight:650}.markdown-body tbody tr:nth-child(2n) td{background:var(--bg-subtle)}.markdown-body hr{background:linear-gradient(90deg,transparent,var(--border),transparent);border:none;height:1px;margin:12px 0}.markdown-body .katex-display{margin:.6em 0;padding:2px 0;overflow:auto hidden}.markdown-body .katex{font-size:1.05em}.markdown-user-message p{white-space:pre-wrap}.markdown-skill-body,.markdown-skill-body a,.markdown-skill-body h1,.markdown-skill-body h2,.markdown-skill-body h3,.markdown-skill-body h4,.markdown-skill-body h5,.markdown-skill-body h6{color:var(--text-muted)}.markdown-skill-body a{-webkit-text-decoration-color:var(--text-muted);text-decoration-color:var(--text-muted)}@supports (color:color-mix(in lab,red,red)){.markdown-skill-body a{-webkit-text-decoration-color:color-mix(in srgb,var(--text-muted) 40%,transparent);text-decoration-color:color-mix(in srgb,var(--text-muted) 40%,transparent)}}.markdown-skill-body a:hover{-webkit-text-decoration-color:var(--text-muted);text-decoration-color:var(--text-muted)}.markdown-skill-body code{color:var(--text-muted)}.markdown-custom-message{line-height:1.32}.markdown-custom-message p{margin:0}.markdown-custom-message h1,.markdown-custom-message h2,.markdown-custom-message h3,.markdown-custom-message h4,.markdown-custom-message h5,.markdown-custom-message h6{margin:4px 0 2px;line-height:1.18}.markdown-custom-message ol,.markdown-custom-message ul{margin:2px 0 3px}.markdown-custom-message li{margin:0}.markdown-custom-message blockquote{margin:3px 0;padding:4px 8px}.markdown-custom-message .markdown-code-block,.markdown-custom-message .markdown-table-wrap{margin:4px 0}.markdown-compaction-message{line-height:1.5}.markdown-compaction-message p{margin:0 0 7px}.markdown-compaction-message h1,.markdown-compaction-message h2,.markdown-compaction-message h3,.markdown-compaction-message h4,.markdown-compaction-message h5,.markdown-compaction-message h6{margin:8px 0 3px;line-height:1.25}.markdown-compaction-message ol,.markdown-compaction-message ul{margin:4px 0 8px}.markdown-compaction-message li{margin:2px 0}.markdown-compaction-message .markdown-code-block,.markdown-compaction-message .markdown-table-wrap{margin:6px 0}.compaction-file-details{border-top:1px solid var(--border);color:var(--text-muted);margin-top:10px;padding-top:8px;font-size:12px}.compaction-file-details summary{cursor:pointer;font-weight:600;line-height:1.4}.compaction-file-section{margin-top:8px}.compaction-file-title{color:var(--text);margin-bottom:4px;font-size:11px;font-weight:650}.compaction-file-list{border:1px solid var(--border);background:var(--bg-panel);max-height:180px;font-family:var(--font-mono);border-radius:6px;margin:0;padding:7px 8px;font-size:11px;line-height:1.45;list-style:none;overflow:auto}.compaction-file-list li{overflow-wrap:anywhere}.compaction-file-list li+li{margin-top:3px}.markdown-code-block{border:1px solid var(--border);border-radius:var(--bubble-inner-radius);background:var(--bubble-code-bg);width:100%;min-width:0;max-width:100%;box-shadow:0 1px 0 var(--border);margin:6px 0;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.markdown-code-block{box-shadow:0 1px 0 color-mix(in srgb,var(--border) 42%,transparent)}}.markdown-code-header{background:var(--bubble-th-bg);border-bottom:1px solid var(--border);color:var(--text-dim);justify-content:space-between;align-items:center;gap:8px;padding:5px 10px;font-size:11px;display:flex}.markdown-code-lang{color:var(--text-muted);font-family:var(--font-mono);font-weight:650}.markdown-code-actions{align-items:center;gap:6px;display:flex}.markdown-code-action{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;font:inherit;border-radius:5px;padding:2px 7px;font-size:11px;line-height:1.25}.markdown-code-action:hover:not(:disabled){color:var(--text);border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.markdown-code-action:hover:not(:disabled){border-color:color-mix(in srgb,var(--border) 70%,var(--text-muted))}}.markdown-code-action:disabled{color:var(--text-dim);cursor:not-allowed;opacity:.75}.markdown-code-action.is-active{background:var(--bg-selected);color:var(--text)}.mermaid-block{background:var(--bubble-code-bg);padding:12px;overflow-x:auto}.mermaid-block svg{max-width:none;display:block}.mermaid-block-loading{min-height:120px}.mermaid-block-error{color:var(--text-muted);font-family:var(--font-mono);font-size:12px}.mermaid-preview-button{width:100%;color:inherit;cursor:zoom-in;text-align:left;border:0}.mermaid-preview-button:hover{opacity:.85}.mermaid-preview-button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.image-preview-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));color:var(--text);background:0 0;border:0;margin:0;position:fixed;inset:0;overflow:hidden}.image-preview-dialog[open]{justify-content:center;align-items:center;display:flex}.image-preview-dialog::backdrop{background:#000000b8}.image-preview-image{object-fit:contain;border-radius:8px;max-width:100%;max-height:100%;display:block;box-shadow:0 20px 60px #0006}.image-preview-close{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:1;border:1px solid var(--border);background:var(--bg-panel);width:36px;height:36px;color:var(--text-muted);cursor:pointer;touch-action:manipulation;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:background-color .12s,color .12s;display:inline-flex;position:absolute;box-shadow:0 2px 10px #00000047}.image-preview-close:hover{background:var(--bg-hover);color:var(--text)}.image-preview-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (pointer:coarse){.image-preview-close{width:44px;height:44px}}.mermaid-zoom-dialog{background:var(--bg);width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--text);border:0;margin:0;padding:0}.mermaid-zoom-dialog::backdrop{background:#00000059}.mermaid-zoom-layout{grid-template-rows:auto minmax(0,1fr);height:100%;display:grid}.mermaid-zoom-toolbar{background:var(--bg-panel);border-bottom:1px solid var(--border);align-items:center;gap:10px;min-height:40px;padding:7px 10px;display:flex}.mermaid-zoom-title{min-width:0;color:var(--text-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.mermaid-zoom-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.mermaid-zoom-stepper{border:1px solid var(--border);background:var(--bg);border-radius:5px;align-items:center;height:24px;display:flex;overflow:hidden}.mermaid-zoom-icon-button,.mermaid-zoom-stepper button{width:24px;height:24px;color:var(--text-muted);cursor:pointer;touch-action:manipulation;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.mermaid-zoom-stepper button{height:22px}.mermaid-zoom-stepper button+.mermaid-zoom-value,.mermaid-zoom-value+button{border-left:1px solid var(--border)}.mermaid-zoom-icon-button{border:1px solid var(--border);border-radius:5px;flex:0 0 24px}.mermaid-zoom-icon-button:hover,.mermaid-zoom-stepper button:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.mermaid-zoom-stepper button:disabled{opacity:.35;cursor:default}.mermaid-zoom-icon-button:focus-visible,.mermaid-zoom-stepper button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.mermaid-zoom-value{min-width:48px;height:22px;color:var(--text-muted);font-family:var(--font-mono);text-align:center;-webkit-user-select:none;user-select:none;font-size:12px;line-height:22px}.mermaid-zoom-viewport{background:var(--bg);-webkit-overflow-scrolling:touch;min-width:0;min-height:0;padding:24px;overflow:auto}.mermaid-zoom-canvas{border:1px solid var(--border);background:var(--bg-panel);border-radius:7px;margin:0 auto;padding:12px;transition:width .15s}.mermaid-zoom-canvas svg{height:auto;display:block;width:100%!important;max-width:none!important}@media (max-width:480px){.mermaid-zoom-toolbar{padding-inline:8px}.mermaid-zoom-title{font-size:10px}.mermaid-zoom-viewport{padding:12px}}.file-viewer-toolbar{min-width:0;min-height:35px}.file-viewer-path{flex:auto;min-width:48px}.file-viewer-meta,.file-viewer-path{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-viewer-meta{flex:0 auto;min-width:0}.file-viewer-live-indicator{border-radius:50%;flex:0 0 7px;width:7px;height:7px}.file-viewer-controls{gap:6px}.file-viewer-actions,.file-viewer-controls{flex-shrink:0;align-items:center;display:flex}.file-viewer-actions{order:-1;gap:4px;height:24px}.file-viewer-mode-switch{border:1px solid var(--border);border-radius:5px;height:24px;display:flex;overflow:hidden}.file-viewer-mode-button{border:0;border-left:1px solid var(--border);height:22px;font:inherit;letter-spacing:0;cursor:pointer;white-space:nowrap;padding:0 8px;font-size:11px;font-weight:500}.file-viewer-mode-button:first-child{border-left:0}.file-viewer-mode-button:hover{filter:brightness(1.08)}.file-viewer-icon-button{box-sizing:border-box;border:1px solid var(--border);width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:5px;flex:0 0 24px;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.file-viewer-icon-button:hover{color:var(--text);background:var(--side-hover)!important}.file-viewer-icon-button:disabled{color:var(--text-dim);cursor:not-allowed;opacity:.55}.file-viewer-icon-button:disabled:hover{color:var(--text-dim);background:0 0!important}.file-viewer-icon-button:focus-visible,.file-viewer-mode-button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.directory-picker-path:focus-visible{box-shadow:0 0 0 3px var(--accent);border-color:var(--accent)!important}@supports (color:color-mix(in lab,red,red)){.directory-picker-path:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}}@media (max-width:640px){.file-viewer-meta{display:none}}@media (max-width:380px){.file-viewer-toolbar{gap:6px!important;padding-inline:8px!important}.file-viewer-mode-button{padding-inline:6px}}.markdown-file-preview h1{font-size:1.8em}.markdown-file-preview h2{font-size:1.4em}.markdown-file-preview h3{font-size:1.15em}.markdown-file-preview p{margin:0 0 12px}.markdown-file-preview pre{background:var(--bubble-code-bg);border:1px solid var(--border);font-family:var(--font-mono);border-radius:6px;margin:12px 0;padding:12px 16px;font-size:13px;overflow-x:auto}.markdown-file-preview code{font-family:var(--font-mono);background:var(--bg-subtle);border-radius:3px;padding:1px 5px;font-size:.9em}.markdown-file-preview pre code{background:0 0;padding:0}.markdown-frontmatter{border:1px solid var(--border);background:var(--bubble-code-bg);border-radius:8px;margin-bottom:20px;padding:14px 16px 12px}.markdown-frontmatter-title{color:var(--text);font-size:1.3em;font-weight:600;line-height:1.35}.markdown-frontmatter-tags{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.markdown-frontmatter-tag{color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:999px;padding:0 10px;font-size:12px;line-height:1.6}.markdown-frontmatter-rows{grid-template-columns:auto 1fr;gap:5px 14px;margin:10px 0 0;font-size:13px;line-height:1.55;display:grid}.markdown-frontmatter-row{display:contents}.markdown-frontmatter-row dt{color:var(--text-muted);font-family:var(--font-mono);white-space:nowrap;font-size:.92em}.markdown-frontmatter-row dd{color:var(--text);word-break:break-word;min-width:0;margin:0}.markdown-frontmatter-row dd a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.markdown-body span.linenumber,span.linenumber{color:var(--text-dim)!important;font-style:normal!important}span.token.table{display:inline}@keyframes drop-zone-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes drop-icon-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes drop-ring-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}@keyframes drop-ripple{0%{opacity:.6;transform:scale(0)}to{opacity:0;transform:scale(1)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(-6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes board-search-glow{0%{box-shadow:0 0 0 3px var(--accent),0 0 24px color-mix(in srgb,var(--accent) 45%,transparent)}to{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 0%,transparent),0 0 24px color-mix(in srgb,var(--accent) 0%,transparent)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes compaction-breathe{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 0%,transparent)}50%{box-shadow:0 0 16px 1px color-mix(in srgb,var(--accent) 22%,transparent)}}@keyframes compaction-dot-breathe{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.85)}}@keyframes notice-shelf-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes notice-shelf-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes notice-flash{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent)}40%{box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 0%,transparent);transform:scale(1.03)}60%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent);transform:scale(1)}to{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 0%,transparent);transform:scale(1)}}@keyframes notice-drawer-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.notice-shelf-item{animation-duration:.001ms!important}.notice-pill{animation:none!important}.notice-drawer,.notice-drawer-item{animation-duration:.001ms!important}.compaction-status,.compaction-status-dot{animation:none!important}}@keyframes saved-pop{0%{transform:scale(1);box-shadow:0 0 #4ade808c}40%{transform:scale(1.08);box-shadow:0 0 0 6px #4ade8040}to{transform:scale(1);box-shadow:0 0 #4ade8000}}@keyframes saved-check-draw{0%{stroke-dashoffset:18px;opacity:0}to{stroke-dashoffset:0;opacity:1}}.panel-resize-handle{z-index:220;cursor:col-resize;touch-action:none;outline:none;flex:0 0 12px;width:12px;margin:0 -6px;position:relative}.panel-resize-handle:after{content:"";pointer-events:none;background:0 0;width:2px;transition:background .12s;position:absolute;top:0;bottom:0;left:5px}.panel-resize-handle.is-resizing:after,.panel-resize-handle:focus-visible:after,.panel-resize-handle:hover:after{background:var(--text-muted)}@supports (color:color-mix(in lab,red,red)){.panel-resize-handle.is-resizing:after,.panel-resize-handle:focus-visible:after,.panel-resize-handle:hover:after{background:color-mix(in srgb,var(--text-muted) 70%,var(--border))}}.right-panel-overlay-backdrop{display:none}@media (min-width:641px){.sidebar-overlay-backdrop{display:none!important}.sidebar-container{transition:width .2s,min-width .2s;position:relative;overflow:hidden}.sidebar-container.sidebar-open{width:var(--sidebar-width,260px);min-width:var(--sidebar-width,260px)}.sidebar-container.sidebar-closed{width:0;min-width:0;border-right:none!important}.sidebar-container>*{width:var(--sidebar-width,260px);min-width:var(--sidebar-width,260px)}.sidebar-container.sidebar-resizing,.sidebar-container.sidebar-resizing>*{transition:none!important}}@media (min-width:960px){.right-panel-container{flex-shrink:0;transition:width .2s,min-width .2s;overflow:hidden}.right-panel-container.right-panel-open{width:var(--right-panel-width,clamp(360px,42vw,640px));min-width:300px}.right-panel-container.right-panel-closed{width:0;min-width:0;border-left:none!important}.right-panel-container>*{width:var(--right-panel-width,clamp(360px,42vw,640px));min-width:300px}.right-panel-container.right-panel-resizing,.right-panel-container.right-panel-resizing>*{transition:none!important}}@media (min-width:641px) and (max-width:959px){.right-panel-resize-handle{display:none}.right-panel-overlay-backdrop{z-index:240;opacity:0;pointer-events:none;background:#0000003d;transition:opacity .2s;display:block;position:fixed;inset:0}.right-panel-overlay-backdrop.is-open{opacity:1;pointer-events:auto}.right-panel-container{top:0;right:env(safe-area-inset-right);z-index:250;width:min(560px,100vw - 48px);min-width:300px;transition:transform .2s;position:fixed;bottom:0;overflow:hidden;box-shadow:-12px 0 32px #0000002e}.right-panel-container.right-panel-open{transform:translate(0)}.right-panel-container.right-panel-closed{pointer-events:none;transform:translate(100%)}.right-panel-container>*{width:100%;min-width:0}}@media (max-width:640px){.chat-stats-center{display:none!important}.sidebar-container{top:0;left:env(safe-area-inset-left);width:280px;max-width:85vw;height:var(--app-viewport-height,100dvh);transition:transform .25s,box-shadow .25s;bottom:0;position:fixed!important}.sidebar-container.sidebar-open{transform:translate(0);box-shadow:4px 0 20px #00000026}.sidebar-container.sidebar-closed{transform:translateX(calc(-100% - env(safe-area-inset-left)));box-shadow:none}.right-panel-container{inset:0 env(safe-area-inset-right) 0 env(safe-area-inset-left);height:var(--app-viewport-height,100dvh);z-index:250;transition:transform .2s;position:fixed;overflow:hidden}.right-panel-container.right-panel-open{width:auto;min-width:0}.right-panel-container.right-panel-closed{border-left:none!important;width:0!important;min-width:0!important;display:none!important}.right-panel-container>*{width:100%;min-width:0}.panel-resize-handle,.right-panel-overlay-backdrop{display:none}.directory-picker-action,.directory-picker-back,.directory-picker-entry{min-height:44px!important}.directory-picker-back{min-width:44px!important}.directory-picker-footer{flex-wrap:wrap;padding-bottom:max(10px,env(safe-area-inset-bottom))!important}input,select,textarea{font-size:16px!important}}@media (prefers-reduced-transparency:reduce){:root,html.dark{--app-bg-scrim:#fff;--glass-bg:var(--bg);--glass-bg-strong:var(--bg);--frame-glass:var(--bg);--side-panel:var(--frame-glass);--popover-glass:var(--bg);--panel-glass:var(--bg);--panel-glass-todo:var(--bg);--panel-glass-minimap:var(--bg);--glass-blur:0px;--glass-blur-heavy:0px;--glass-blur-panel:0px;--glass-blur-popover:0px;--glass-blur-bubble:0px}html.dark{--app-bg-scrim:#000}}@media (prefers-contrast:more){:root,html.dark{--glass-bg:var(--bg);--glass-bg-strong:var(--bg);--frame-glass:var(--bg);--side-panel:var(--frame-glass);--popover-glass:var(--bg);--panel-glass:var(--bg);--panel-glass-todo:var(--bg);--panel-glass-minimap:var(--bg);--glass-blur:0px;--glass-blur-heavy:0px;--glass-blur-panel:0px;--glass-blur-popover:0px;--glass-blur-bubble:0px}}@keyframes back-to-latest-in{0%{opacity:0;transform:translateY(4px)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}.terminal-panel{border:1px solid var(--border);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}@keyframes terminal-panel-in-top{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes terminal-panel-in-bottombar{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.terminal-panel-top{transform-origin:100% 0;animation:terminal-panel-in-top .15s ease-out both;border-top:none!important;border-radius:0 0 10px 10px!important}.terminal-panel-bottombar{transform-origin:100% 100%;animation:terminal-panel-in-bottombar .15s ease-out both;border-bottom:none!important;border-radius:10px 10px 0 0!important}.terminal-panel-dragged{border-top:1px solid var(--border)!important;border-bottom:1px solid var(--border)!important;border-radius:10px!important}.terminal-panel-hidden{display:none}.terminal-panel-mobile{animation:terminal-panel-in-bottombar .15s ease-out both;inset:10px;width:auto!important;height:auto!important}@media (prefers-reduced-motion:reduce){.terminal-panel-bottombar,.terminal-panel-mobile,.terminal-panel-top{animation:none}}.terminal-tabs{border-bottom:1px solid var(--text);flex-shrink:0;align-items:stretch;gap:2px;height:34px;padding-left:6px;display:flex}@supports (color:color-mix(in lab,red,red)){.terminal-tabs{border-bottom:1px solid color-mix(in srgb,var(--text) 8%,transparent)}}html.dark .terminal-tabs{border-bottom-color:var(--text)}@supports (color:color-mix(in lab,red,red)){html.dark .terminal-tabs{border-bottom-color:color-mix(in srgb,var(--text) 6%,transparent)}}.terminal-tab-scroll{scrollbar-width:none;flex:1;align-items:stretch;gap:10px;min-width:0;display:flex;overflow-x:auto}.terminal-tab-scroll::-webkit-scrollbar{display:none}.terminal-group{flex-shrink:0;align-items:stretch;gap:2px;display:flex}.terminal-group-label{letter-spacing:.07em;text-transform:uppercase;color:var(--text);align-items:center;font-size:10px;font-weight:600;display:flex}@supports (color:color-mix(in lab,red,red)){.terminal-group-label{color:color-mix(in srgb,var(--text) 45%,transparent)}}.terminal-group-label{white-space:nowrap}.terminal-chip{cursor:pointer;color:var(--text);border-radius:5px;align-items:center;gap:5px;margin:4px 0;padding:0 4px 0 8px;display:flex}@supports (color:color-mix(in lab,red,red)){.terminal-chip{color:color-mix(in srgb,var(--text) 75%,transparent)}}.terminal-chip{white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:11px;transition:background .1s}.terminal-chip:hover{background:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-chip:hover{background:color-mix(in srgb,var(--text) 8%,transparent)}}.terminal-chip.is-active{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.terminal-chip.is-active{background:color-mix(in srgb,var(--accent) 26%,transparent)}}.terminal-chip.is-active{color:var(--text)}.terminal-chip.is-dead{opacity:.55}.terminal-dot{background:#34d399;border-radius:50%;flex-shrink:0;width:6px;height:6px}.terminal-dot.is-dead{background:#6b7280}.terminal-dot.is-disconnected{background:#f59e0b;box-shadow:0 0 0 1px #f59e0b66}.terminal-chip-cwd{text-overflow:ellipsis;max-width:130px;overflow:hidden}.terminal-chip-close,.terminal-close,.terminal-new{color:var(--text);background:0 0;border:none;justify-content:center;align-items:center;display:flex}@supports (color:color-mix(in lab,red,red)){.terminal-chip-close,.terminal-close,.terminal-new{color:color-mix(in srgb,var(--text) 50%,transparent)}}.terminal-chip-close,.terminal-close,.terminal-new{cursor:pointer;border-radius:4px;flex-shrink:0;transition:color .1s,background .1s}.terminal-chip-close{width:16px;height:16px;margin-left:2px}.terminal-chip-close:hover,.terminal-close:hover{color:var(--text);background:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-chip-close:hover,.terminal-close:hover{background:color-mix(in srgb,var(--text) 12%,transparent)}}.terminal-close,.terminal-new{align-self:center;width:30px;height:24px;margin-right:2px}.terminal-new:hover{color:var(--text);background:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-new:hover{background:color-mix(in srgb,var(--text) 12%,transparent)}}.terminal-close{color:#f87171cc}.terminal-close:hover{color:#fff;background:#ef4444d9}.terminal-chip-close:hover{color:#fff;background:#ef4444cc}.terminal-chip.is-disconnected{opacity:.72}.terminal-cleanup{color:#f59e0bd9;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-self:center;align-items:center;width:30px;height:24px;margin-right:2px;transition:color .1s,background .1s;display:flex}.terminal-cleanup:hover{color:#f59e0b;background:#f59e0b24}.terminal-all-select{appearance:none;max-width:150px;height:24px;color:var(--text);color-scheme:light;background-color:var(--text);align-self:center;margin-right:2px;padding:0 22px 0 8px;font-family:inherit;font-size:11px}@supports (color:color-mix(in lab,red,red)){.terminal-all-select{background-color:color-mix(in srgb,var(--text) 7%,transparent)}}.terminal-all-select{border:1px solid var(--text);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 6px center;background-repeat:no-repeat;background-size:10px 10px}@supports (color:color-mix(in lab,red,red)){.terminal-all-select{border:1px solid color-mix(in srgb,var(--text) 12%,transparent)}}.terminal-all-select{cursor:pointer;border-radius:5px;outline:none;flex-shrink:0;transition:background-color .1s,border-color .1s}html.dark .terminal-all-select{color-scheme:dark;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23a1a1aa' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}.terminal-all-select:hover{background-color:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-all-select:hover{background-color:color-mix(in srgb,var(--text) 11%,transparent)}}.terminal-all-select:hover{border-color:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-all-select:hover{border-color:color-mix(in srgb,var(--text) 20%,transparent)}}.terminal-all-select:focus-visible{border-color:var(--accent)}.terminal-all-select optgroup,.terminal-all-select option{color:var(--text);background:var(--bg-panel)}.terminal-error{color:#f87171;border-bottom:1px solid var(--text);flex-shrink:0;padding:6px 12px;font-size:11px}@supports (color:color-mix(in lab,red,red)){.terminal-error{border-bottom:1px solid color-mix(in srgb,var(--text) 8%,transparent)}}.terminal-body{flex:1;min-height:0;padding:6px 8px 8px;position:relative}.terminal-body .xterm,.terminal-body .xterm-screen,.terminal-body .xterm-viewport{background:0 0!important}.terminal-body .xterm{height:100%}.terminal-body .xterm.terminal-attaching{opacity:0}.terminal-body .xterm-viewport{background-color:#0000!important}.terminal-placeholder{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.terminal-placeholder button{border:1px dashed var(--text);border-radius:7px;padding:7px 16px}@supports (color:color-mix(in lab,red,red)){.terminal-placeholder button{border:1px dashed color-mix(in srgb,var(--text) 25%,transparent)}}.terminal-placeholder button{background:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-placeholder button{background:color-mix(in srgb,var(--text) 5%,transparent)}}.terminal-placeholder button{color:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-placeholder button{color:color-mix(in srgb,var(--text) 85%,transparent)}}.terminal-placeholder button{cursor:pointer;font-size:12px}.terminal-placeholder button:hover{background:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-placeholder button:hover{background:color-mix(in srgb,var(--text) 10%,transparent)}}.terminal-tabs{cursor:default}.terminal-tabs:active{cursor:move}.terminal-resize-handle{z-index:3;cursor:nwse-resize;touch-action:none;width:18px;height:18px;position:absolute;bottom:0;right:0}.terminal-resize-handle:after{content:"";opacity:0;border-bottom:1.5px solid #0000;border-right:1.5px solid #0000;width:7px;height:7px;transition:opacity .12s,border-color .12s;position:absolute;bottom:3px;right:3px}.terminal-resize-handle:hover:after{opacity:1;border-color:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-resize-handle:hover:after{border-color:color-mix(in srgb,var(--text) 35%,transparent)}}.terminal-panel-hidden .terminal-resize-handle{display:none}.bottom-band{align-items:stretch;min-width:0;height:36px;display:flex}.bottom-band .extension-status-shelf{flex:auto;min-width:0}.extension-actions{border-top:1px solid var(--border);flex:none;justify-content:center;align-items:stretch;min-width:0;display:flex}@supports (color:color-mix(in lab,red,red)){.extension-actions{border-top:1px solid color-mix(in srgb,var(--border) 60%,transparent)}}.extension-actions{background:var(--frame-glass);-webkit-backdrop-filter:blur(var(--glass-blur-heavy)) saturate(var(--glass-saturate))}.board-workbench .bottom-band{height:36px;overflow:visible}.board-workbench .extension-status-left{flex-wrap:nowrap;min-width:0;overflow:visible}.board-workbench .extension-status-right{flex-shrink:0}.board-workbench .extension-status-right>div{padding:0 6px}.board-workbench .extension-status-line,.board-workbench .extension-widget-triggers{min-width:0;overflow:hidden}.board-workbench .terminal-bar-toggle{display:none}.terminal-bar-toggle{width:110px;color:var(--text-muted);white-space:nowrap;cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:11px;transition:color .1s,background .1s;display:flex}.terminal-bar-toggle:hover{color:var(--text);background:var(--bg-hover)}.terminal-bar-toggle.is-open{color:var(--accent);background:var(--bg-selected)}@media (prefers-reduced-transparency:reduce){.terminal-bar-toggle{background:var(--bg-panel)}}.tl-background,.tl-canvas,.tl-container{background:0 0!important}.tl-container .board-workbench,.tl-container .board-workbench *,.tl-container [data-testid^=sticky-note] .markdown-body,.tl-container [data-testid^=sticky-note] .markdown-body *{-webkit-user-select:text;user-select:text}@media (prefers-reduced-transparency:reduce){:root,html.dark{--board-card-glass:rgba(250,250,251,var(--bubble-alpha));--board-blur:12px}html.dark{--board-card-glass:rgba(34,34,37,var(--bubble-alpha))}}.sticky-note-input::placeholder{color:var(--text)}@supports (color:color-mix(in lab,red,red)){.sticky-note-input::placeholder{color:color-mix(in srgb,var(--text) 18%,transparent)}}html.dark .sticky-note-input::placeholder{color:var(--text)}@supports (color:color-mix(in lab,red,red)){html.dark .sticky-note-input::placeholder{color:color-mix(in srgb,var(--text) 28%,transparent)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
@@ -1,353 +0,0 @@
1
- // File: /home/wa/project/pi-web-sky/app/api/boards/[id]/canvas/route.ts
2
- import * as entry from '../../../../../../../app/api/boards/[id]/canvas/route.js'
3
- import type { NextRequest } from 'next/server.js'
4
-
5
- import type { InstantConfigForTypeCheckInternal, Prefetch } from 'next/dist/build/segment-config/app/app-segment-config.js'
6
-
7
- type TEntry = typeof import('../../../../../../../app/api/boards/[id]/canvas/route.js')
8
-
9
- type SegmentParams<T extends Object = any> = T extends Record<string, any>
10
- ? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
11
- : T
12
-
13
- // Check that the entry is a valid entry
14
- checkFields<Diff<{
15
- GET?: Function
16
- HEAD?: Function
17
- OPTIONS?: Function
18
- POST?: Function
19
- PUT?: Function
20
- DELETE?: Function
21
- PATCH?: Function
22
- config?: {}
23
- generateStaticParams?: Function
24
- instant?: InstantConfigForTypeCheckInternal
25
- prefetch?: Prefetch
26
- unstable_dynamicStaleTime?: number
27
- revalidate?: RevalidateRange<TEntry> | false
28
- dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
29
- dynamicParams?: boolean
30
- fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
31
- /** @deprecated The `preferredRegion` config is deprecated. Remove this export. */
32
- preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
33
- runtime?: 'nodejs' | 'experimental-edge' | 'edge'
34
- maxDuration?: number
35
-
36
- }, TEntry, ''>>()
37
-
38
- type RouteContext = { params: Promise<SegmentParams> }
39
- // Check the prop type of the entry function
40
- if ('GET' in entry) {
41
- checkFields<
42
- Diff<
43
- ParamCheck<Request | NextRequest>,
44
- {
45
- __tag__: 'GET'
46
- __param_position__: 'first'
47
- __param_type__: FirstArg<MaybeField<TEntry, 'GET'>>
48
- },
49
- 'GET'
50
- >
51
- >()
52
- checkFields<
53
- Diff<
54
- ParamCheck<RouteContext>,
55
- {
56
- __tag__: 'GET'
57
- __param_position__: 'second'
58
- __param_type__: SecondArg<MaybeField<TEntry, 'GET'>>
59
- },
60
- 'GET'
61
- >
62
- >()
63
-
64
- checkFields<
65
- Diff<
66
- {
67
- __tag__: 'GET',
68
- __return_type__: Response | void | never | Promise<Response | void | never>
69
- },
70
- {
71
- __tag__: 'GET',
72
- __return_type__: ReturnType<MaybeField<TEntry, 'GET'>>
73
- },
74
- 'GET'
75
- >
76
- >()
77
- }
78
- // Check the prop type of the entry function
79
- if ('HEAD' in entry) {
80
- checkFields<
81
- Diff<
82
- ParamCheck<Request | NextRequest>,
83
- {
84
- __tag__: 'HEAD'
85
- __param_position__: 'first'
86
- __param_type__: FirstArg<MaybeField<TEntry, 'HEAD'>>
87
- },
88
- 'HEAD'
89
- >
90
- >()
91
- checkFields<
92
- Diff<
93
- ParamCheck<RouteContext>,
94
- {
95
- __tag__: 'HEAD'
96
- __param_position__: 'second'
97
- __param_type__: SecondArg<MaybeField<TEntry, 'HEAD'>>
98
- },
99
- 'HEAD'
100
- >
101
- >()
102
-
103
- checkFields<
104
- Diff<
105
- {
106
- __tag__: 'HEAD',
107
- __return_type__: Response | void | never | Promise<Response | void | never>
108
- },
109
- {
110
- __tag__: 'HEAD',
111
- __return_type__: ReturnType<MaybeField<TEntry, 'HEAD'>>
112
- },
113
- 'HEAD'
114
- >
115
- >()
116
- }
117
- // Check the prop type of the entry function
118
- if ('OPTIONS' in entry) {
119
- checkFields<
120
- Diff<
121
- ParamCheck<Request | NextRequest>,
122
- {
123
- __tag__: 'OPTIONS'
124
- __param_position__: 'first'
125
- __param_type__: FirstArg<MaybeField<TEntry, 'OPTIONS'>>
126
- },
127
- 'OPTIONS'
128
- >
129
- >()
130
- checkFields<
131
- Diff<
132
- ParamCheck<RouteContext>,
133
- {
134
- __tag__: 'OPTIONS'
135
- __param_position__: 'second'
136
- __param_type__: SecondArg<MaybeField<TEntry, 'OPTIONS'>>
137
- },
138
- 'OPTIONS'
139
- >
140
- >()
141
-
142
- checkFields<
143
- Diff<
144
- {
145
- __tag__: 'OPTIONS',
146
- __return_type__: Response | void | never | Promise<Response | void | never>
147
- },
148
- {
149
- __tag__: 'OPTIONS',
150
- __return_type__: ReturnType<MaybeField<TEntry, 'OPTIONS'>>
151
- },
152
- 'OPTIONS'
153
- >
154
- >()
155
- }
156
- // Check the prop type of the entry function
157
- if ('POST' in entry) {
158
- checkFields<
159
- Diff<
160
- ParamCheck<Request | NextRequest>,
161
- {
162
- __tag__: 'POST'
163
- __param_position__: 'first'
164
- __param_type__: FirstArg<MaybeField<TEntry, 'POST'>>
165
- },
166
- 'POST'
167
- >
168
- >()
169
- checkFields<
170
- Diff<
171
- ParamCheck<RouteContext>,
172
- {
173
- __tag__: 'POST'
174
- __param_position__: 'second'
175
- __param_type__: SecondArg<MaybeField<TEntry, 'POST'>>
176
- },
177
- 'POST'
178
- >
179
- >()
180
-
181
- checkFields<
182
- Diff<
183
- {
184
- __tag__: 'POST',
185
- __return_type__: Response | void | never | Promise<Response | void | never>
186
- },
187
- {
188
- __tag__: 'POST',
189
- __return_type__: ReturnType<MaybeField<TEntry, 'POST'>>
190
- },
191
- 'POST'
192
- >
193
- >()
194
- }
195
- // Check the prop type of the entry function
196
- if ('PUT' in entry) {
197
- checkFields<
198
- Diff<
199
- ParamCheck<Request | NextRequest>,
200
- {
201
- __tag__: 'PUT'
202
- __param_position__: 'first'
203
- __param_type__: FirstArg<MaybeField<TEntry, 'PUT'>>
204
- },
205
- 'PUT'
206
- >
207
- >()
208
- checkFields<
209
- Diff<
210
- ParamCheck<RouteContext>,
211
- {
212
- __tag__: 'PUT'
213
- __param_position__: 'second'
214
- __param_type__: SecondArg<MaybeField<TEntry, 'PUT'>>
215
- },
216
- 'PUT'
217
- >
218
- >()
219
-
220
- checkFields<
221
- Diff<
222
- {
223
- __tag__: 'PUT',
224
- __return_type__: Response | void | never | Promise<Response | void | never>
225
- },
226
- {
227
- __tag__: 'PUT',
228
- __return_type__: ReturnType<MaybeField<TEntry, 'PUT'>>
229
- },
230
- 'PUT'
231
- >
232
- >()
233
- }
234
- // Check the prop type of the entry function
235
- if ('DELETE' in entry) {
236
- checkFields<
237
- Diff<
238
- ParamCheck<Request | NextRequest>,
239
- {
240
- __tag__: 'DELETE'
241
- __param_position__: 'first'
242
- __param_type__: FirstArg<MaybeField<TEntry, 'DELETE'>>
243
- },
244
- 'DELETE'
245
- >
246
- >()
247
- checkFields<
248
- Diff<
249
- ParamCheck<RouteContext>,
250
- {
251
- __tag__: 'DELETE'
252
- __param_position__: 'second'
253
- __param_type__: SecondArg<MaybeField<TEntry, 'DELETE'>>
254
- },
255
- 'DELETE'
256
- >
257
- >()
258
-
259
- checkFields<
260
- Diff<
261
- {
262
- __tag__: 'DELETE',
263
- __return_type__: Response | void | never | Promise<Response | void | never>
264
- },
265
- {
266
- __tag__: 'DELETE',
267
- __return_type__: ReturnType<MaybeField<TEntry, 'DELETE'>>
268
- },
269
- 'DELETE'
270
- >
271
- >()
272
- }
273
- // Check the prop type of the entry function
274
- if ('PATCH' in entry) {
275
- checkFields<
276
- Diff<
277
- ParamCheck<Request | NextRequest>,
278
- {
279
- __tag__: 'PATCH'
280
- __param_position__: 'first'
281
- __param_type__: FirstArg<MaybeField<TEntry, 'PATCH'>>
282
- },
283
- 'PATCH'
284
- >
285
- >()
286
- checkFields<
287
- Diff<
288
- ParamCheck<RouteContext>,
289
- {
290
- __tag__: 'PATCH'
291
- __param_position__: 'second'
292
- __param_type__: SecondArg<MaybeField<TEntry, 'PATCH'>>
293
- },
294
- 'PATCH'
295
- >
296
- >()
297
-
298
- checkFields<
299
- Diff<
300
- {
301
- __tag__: 'PATCH',
302
- __return_type__: Response | void | never | Promise<Response | void | never>
303
- },
304
- {
305
- __tag__: 'PATCH',
306
- __return_type__: ReturnType<MaybeField<TEntry, 'PATCH'>>
307
- },
308
- 'PATCH'
309
- >
310
- >()
311
- }
312
-
313
- // Check the arguments and return type of the generateStaticParams function
314
- if ('generateStaticParams' in entry) {
315
- checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
316
- checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
317
- }
318
-
319
- export interface PageProps {
320
- params?: Promise<SegmentParams>
321
- searchParams?: Promise<any>
322
- }
323
- export interface LayoutProps {
324
- children?: React.ReactNode
325
-
326
- params?: Promise<SegmentParams>
327
- }
328
-
329
- // =============
330
- // Utility types
331
- type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
332
-
333
- // If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
334
- type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
335
- type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
336
-
337
- type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
338
- type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
339
- type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
340
-
341
- type ParamCheck<T> = {
342
- __tag__: string
343
- __param_position__: string
344
- __param_type__: T
345
- }
346
-
347
- function checkFields<_ extends { [k in keyof any]: never }>() {}
348
-
349
- // https://github.com/sindresorhus/type-fest
350
- type Numeric = number | bigint
351
- type Zero = 0 | 0n
352
- type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
353
- type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'