@baique/pi-web-sky 0.1.55 → 0.1.57

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 (396) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +8 -4
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +2 -2
  5. package/.next/react-loadable-manifest.json +2 -2
  6. package/.next/required-server-files.js +3 -2
  7. package/.next/required-server-files.json +3 -2
  8. package/.next/routes-manifest.json +28 -0
  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 +4 -3
  20. package/.next/server/app/_not-found.segments/_full.segment.rsc +4 -3
  21. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -3
  22. package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -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]/events/route.js.nft.json +1 -1
  26. package/.next/server/app/api/agent/[id]/route.js +1 -1
  27. package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
  28. package/.next/server/app/api/agent/new/route.js +1 -1
  29. package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
  30. package/.next/server/app/api/agent/running/route.js +1 -1
  31. package/.next/server/app/api/agent/running/route.js.nft.json +1 -1
  32. package/.next/server/app/api/app-update/route.js +1 -1
  33. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  34. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  35. package/.next/server/app/api/auth/login/[provider]/route.js +1 -1
  36. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  37. package/.next/server/app/api/auth/providers/route.js +1 -1
  38. package/.next/server/app/api/board-assets/[...path]/route.js +2 -2
  39. package/.next/server/app/api/board-assets/route.js +2 -2
  40. package/.next/server/app/api/boards/[id]/add-session/route.js +1 -0
  41. package/.next/server/app/api/boards/[id]/add-session/route.js.nft.json +1 -0
  42. package/.next/server/app/api/boards/[id]/add-session/route_client-reference-manifest.js +1 -0
  43. package/.next/server/app/api/boards/[id]/reconcile/route.js +1 -1
  44. package/.next/server/app/api/boards/[id]/route.js +1 -1
  45. package/.next/server/app/api/boards/reorder/route.js +2 -2
  46. package/.next/server/app/api/boards/route.js +1 -1
  47. package/.next/server/app/api/cwd/browse/route.js +1 -1
  48. package/.next/server/app/api/cwd/validate/route.js +2 -2
  49. package/.next/server/app/api/default-cwd/route.js +2 -2
  50. package/.next/server/app/api/file-index/route.js +2 -2
  51. package/.next/server/app/api/files/[...path]/route.js +3 -3
  52. package/.next/server/app/api/git/diff/route.js +1 -1
  53. package/.next/server/app/api/git/status/route.js +1 -1
  54. package/.next/server/app/api/home/route.js +1 -1
  55. package/.next/server/app/api/mcp/route.js +2 -2
  56. package/.next/server/app/api/models/route.js +2 -2
  57. package/.next/server/app/api/models-config/catalog/route.js +1 -1
  58. package/.next/server/app/api/models-config/discover/route.js +1 -1
  59. package/.next/server/app/api/models-config/route.js +1 -1
  60. package/.next/server/app/api/models-config/test/route.js +1 -1
  61. package/.next/server/app/api/plugins/route.js +2 -2
  62. package/.next/server/app/api/project-trust/route.js +1 -1
  63. package/.next/server/app/api/project-trust/route.js.nft.json +1 -1
  64. package/.next/server/app/api/quota/route.js +1 -1
  65. package/.next/server/app/api/search/route.js +3 -3
  66. package/.next/server/app/api/sessions/[id]/auto-name/route.js +2 -2
  67. package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -1
  68. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  69. package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
  70. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +2 -2
  71. package/.next/server/app/api/sessions/[id]/export/route.js +2 -2
  72. package/.next/server/app/api/sessions/[id]/minimap/route.js +1 -1
  73. package/.next/server/app/api/sessions/[id]/minimap/route.js.nft.json +1 -1
  74. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  75. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  76. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  77. package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -1
  78. package/.next/server/app/api/sessions/[id]/todos/route.js +1 -1
  79. package/.next/server/app/api/sessions/[id]/todos/route.js.nft.json +1 -1
  80. package/.next/server/app/api/sessions/route.js +1 -1
  81. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  82. package/.next/server/app/api/sessions/summary/route.js +2 -2
  83. package/.next/server/app/api/skills/check/route.js +1 -1
  84. package/.next/server/app/api/skills/install/route.js +2 -2
  85. package/.next/server/app/api/skills/route.js +1 -1
  86. package/.next/server/app/api/skills/search/route.js +1 -1
  87. package/.next/server/app/api/skills/update/route.js +1 -1
  88. package/.next/server/app/api/subagents/[id]/route.js +1 -0
  89. package/.next/server/app/api/subagents/[id]/route.js.nft.json +1 -0
  90. package/.next/server/app/api/subagents/[id]/route_client-reference-manifest.js +1 -0
  91. package/.next/server/app/api/subagents/profiles/route.js +30 -0
  92. package/.next/server/app/api/subagents/profiles/route.js.nft.json +1 -0
  93. package/.next/server/app/api/subagents/profiles/route_client-reference-manifest.js +1 -0
  94. package/.next/server/app/api/subagents/settings/route.js +1 -0
  95. package/.next/server/app/api/subagents/settings/route.js.nft.json +1 -0
  96. package/.next/server/app/api/subagents/settings/route_client-reference-manifest.js +1 -0
  97. package/.next/server/app/api/task-card-questions/[id]/answer/route.js +2 -2
  98. package/.next/server/app/api/task-card-questions/route.js +2 -2
  99. package/.next/server/app/api/task-cards/[id]/route.js +1 -1
  100. package/.next/server/app/api/task-cards/route.js +1 -1
  101. package/.next/server/app/api/task-cards/unbind/route.js +3 -3
  102. package/.next/server/app/api/task-scheduler/status/route.js +1 -1
  103. package/.next/server/app/api/task-scheduler/status/route.js.nft.json +1 -1
  104. package/.next/server/app/api/tasks/[id]/assign-session/route.js +2 -12
  105. package/.next/server/app/api/tasks/[id]/board/route.js +1 -1
  106. package/.next/server/app/api/tasks/[id]/route.js +1 -1
  107. package/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  108. package/.next/server/app/api/tasks/reorder/route.js +2 -12
  109. package/.next/server/app/api/tasks/route.js +2 -12
  110. package/.next/server/app/api/terminal/[id]/events/route.js +2 -2
  111. package/.next/server/app/api/terminal/[id]/route.js +2 -2
  112. package/.next/server/app/api/terminal/route.js +2 -2
  113. package/.next/server/app/api/worktrees/route.js +2 -2
  114. package/.next/server/app/api/yjs-version/route.js +1 -1
  115. package/.next/server/app/favicon.ico/route.js +1 -1
  116. package/.next/server/app/index.html +1 -1
  117. package/.next/server/app/index.rsc +6 -5
  118. package/.next/server/app/index.segments/__PAGE__.segment.rsc +6 -5
  119. package/.next/server/app/index.segments/_full.segment.rsc +6 -5
  120. package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
  121. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  122. package/.next/server/app/page.js +175 -8
  123. package/.next/server/app/page_client-reference-manifest.js +1 -1
  124. package/.next/server/app-paths-manifest.json +8 -4
  125. package/.next/server/chunks/1937.js +14 -13
  126. package/.next/server/chunks/2524.js +2 -2
  127. package/.next/server/chunks/3379.js +1 -1
  128. package/.next/server/chunks/3500.js +1 -1
  129. package/.next/server/chunks/402.js +28 -7
  130. package/.next/server/chunks/426.js +14 -0
  131. package/.next/server/chunks/4367.js +1 -1
  132. package/.next/server/chunks/4457.js +3 -13
  133. package/.next/server/chunks/4980.js +1 -1
  134. package/.next/server/chunks/542.js +23 -4
  135. package/.next/server/chunks/5794.js +2 -2
  136. package/.next/server/chunks/5940.js +1 -1
  137. package/.next/server/chunks/6337.js +1 -1
  138. package/.next/server/chunks/6429.js +15 -2
  139. package/.next/server/chunks/6525.js +25 -4
  140. package/.next/server/chunks/6583.js +12 -11
  141. package/.next/server/chunks/7048.js +6 -0
  142. package/.next/server/instrumentation.js +1 -1
  143. package/.next/server/middleware-build-manifest.js +1 -1
  144. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  145. package/.next/server/middleware.js +3 -3
  146. package/.next/server/pages/404.html +1 -1
  147. package/.next/server/pages/500.html +1 -1
  148. package/.next/static/MPBMmQqmDG8zo8tM_bkDy/_buildManifest.js +1 -0
  149. package/.next/static/chunks/752.bafff304e6b00987.js +1 -0
  150. package/.next/static/chunks/8088.39866dc5f1d15868.js +1 -0
  151. package/.next/static/chunks/app/_global-error/page-ad6e695deb9de65c.js +1 -0
  152. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-ad6e695deb9de65c.js +1 -0
  153. package/.next/static/chunks/app/api/agent/[id]/events/route-ad6e695deb9de65c.js +1 -0
  154. package/.next/static/chunks/app/api/agent/[id]/route-ad6e695deb9de65c.js +1 -0
  155. package/.next/static/chunks/app/api/agent/new/route-ad6e695deb9de65c.js +1 -0
  156. package/.next/static/chunks/app/api/agent/running/route-ad6e695deb9de65c.js +1 -0
  157. package/.next/static/chunks/app/api/app-update/route-ad6e695deb9de65c.js +1 -0
  158. package/.next/static/chunks/app/api/auth/all-providers/route-ad6e695deb9de65c.js +1 -0
  159. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-ad6e695deb9de65c.js +1 -0
  160. package/.next/static/chunks/app/api/auth/login/[provider]/route-ad6e695deb9de65c.js +1 -0
  161. package/.next/static/chunks/app/api/auth/logout/[provider]/route-ad6e695deb9de65c.js +1 -0
  162. package/.next/static/chunks/app/api/auth/providers/route-ad6e695deb9de65c.js +1 -0
  163. package/.next/static/chunks/app/api/board-assets/[...path]/route-ad6e695deb9de65c.js +1 -0
  164. package/.next/static/chunks/app/api/board-assets/route-ad6e695deb9de65c.js +1 -0
  165. package/.next/static/chunks/app/api/boards/[id]/add-session/route-ad6e695deb9de65c.js +1 -0
  166. package/.next/static/chunks/app/api/boards/[id]/reconcile/route-ad6e695deb9de65c.js +1 -0
  167. package/.next/static/chunks/app/api/boards/[id]/route-ad6e695deb9de65c.js +1 -0
  168. package/.next/static/chunks/app/api/boards/reorder/route-ad6e695deb9de65c.js +1 -0
  169. package/.next/static/chunks/app/api/boards/route-ad6e695deb9de65c.js +1 -0
  170. package/.next/static/chunks/app/api/cwd/browse/route-ad6e695deb9de65c.js +1 -0
  171. package/.next/static/chunks/app/api/cwd/validate/route-ad6e695deb9de65c.js +1 -0
  172. package/.next/static/chunks/app/api/default-cwd/route-ad6e695deb9de65c.js +1 -0
  173. package/.next/static/chunks/app/api/file-index/route-ad6e695deb9de65c.js +1 -0
  174. package/.next/static/chunks/app/api/files/[...path]/route-ad6e695deb9de65c.js +1 -0
  175. package/.next/static/chunks/app/api/git/diff/route-ad6e695deb9de65c.js +1 -0
  176. package/.next/static/chunks/app/api/git/status/route-ad6e695deb9de65c.js +1 -0
  177. package/.next/static/chunks/app/api/home/route-ad6e695deb9de65c.js +1 -0
  178. package/.next/static/chunks/app/api/mcp/route-ad6e695deb9de65c.js +1 -0
  179. package/.next/static/chunks/app/api/models/route-ad6e695deb9de65c.js +1 -0
  180. package/.next/static/chunks/app/api/models-config/catalog/route-ad6e695deb9de65c.js +1 -0
  181. package/.next/static/chunks/app/api/models-config/discover/route-ad6e695deb9de65c.js +1 -0
  182. package/.next/static/chunks/app/api/models-config/route-ad6e695deb9de65c.js +1 -0
  183. package/.next/static/chunks/app/api/models-config/test/route-ad6e695deb9de65c.js +1 -0
  184. package/.next/static/chunks/app/api/plugins/route-ad6e695deb9de65c.js +1 -0
  185. package/.next/static/chunks/app/api/project-trust/route-ad6e695deb9de65c.js +1 -0
  186. package/.next/static/chunks/app/api/quota/route-ad6e695deb9de65c.js +1 -0
  187. package/.next/static/chunks/app/api/search/route-ad6e695deb9de65c.js +1 -0
  188. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-ad6e695deb9de65c.js +1 -0
  189. package/.next/static/chunks/app/api/sessions/[id]/context/route-ad6e695deb9de65c.js +1 -0
  190. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-ad6e695deb9de65c.js +1 -0
  191. package/.next/static/chunks/app/api/sessions/[id]/export/route-ad6e695deb9de65c.js +1 -0
  192. package/.next/static/chunks/app/api/sessions/[id]/minimap/route-ad6e695deb9de65c.js +1 -0
  193. package/.next/static/chunks/app/api/sessions/[id]/route-ad6e695deb9de65c.js +1 -0
  194. package/.next/static/chunks/app/api/sessions/[id]/state/route-ad6e695deb9de65c.js +1 -0
  195. package/.next/static/chunks/app/api/sessions/[id]/todos/route-ad6e695deb9de65c.js +1 -0
  196. package/.next/static/chunks/app/api/sessions/route-ad6e695deb9de65c.js +1 -0
  197. package/.next/static/chunks/app/api/sessions/summary/route-ad6e695deb9de65c.js +1 -0
  198. package/.next/static/chunks/app/api/skills/check/route-ad6e695deb9de65c.js +1 -0
  199. package/.next/static/chunks/app/api/skills/install/route-ad6e695deb9de65c.js +1 -0
  200. package/.next/static/chunks/app/api/skills/route-ad6e695deb9de65c.js +1 -0
  201. package/.next/static/chunks/app/api/skills/search/route-ad6e695deb9de65c.js +1 -0
  202. package/.next/static/chunks/app/api/skills/update/route-ad6e695deb9de65c.js +1 -0
  203. package/.next/static/chunks/app/api/subagents/[id]/route-ad6e695deb9de65c.js +1 -0
  204. package/.next/static/chunks/app/api/subagents/profiles/route-ad6e695deb9de65c.js +1 -0
  205. package/.next/static/chunks/app/api/subagents/settings/route-ad6e695deb9de65c.js +1 -0
  206. package/.next/static/chunks/app/api/task-card-questions/[id]/answer/route-ad6e695deb9de65c.js +1 -0
  207. package/.next/static/chunks/app/api/task-card-questions/route-ad6e695deb9de65c.js +1 -0
  208. package/.next/static/chunks/app/api/task-cards/[id]/route-ad6e695deb9de65c.js +1 -0
  209. package/.next/static/chunks/app/api/task-cards/route-ad6e695deb9de65c.js +1 -0
  210. package/.next/static/chunks/app/api/task-cards/unbind/route-ad6e695deb9de65c.js +1 -0
  211. package/.next/static/chunks/app/api/task-scheduler/status/route-ad6e695deb9de65c.js +1 -0
  212. package/.next/static/chunks/app/api/tasks/[id]/assign-session/route-ad6e695deb9de65c.js +1 -0
  213. package/.next/static/chunks/app/api/tasks/[id]/board/route-ad6e695deb9de65c.js +1 -0
  214. package/.next/static/chunks/app/api/tasks/[id]/route-ad6e695deb9de65c.js +1 -0
  215. package/.next/static/chunks/app/api/tasks/reorder/route-ad6e695deb9de65c.js +1 -0
  216. package/.next/static/chunks/app/api/tasks/route-ad6e695deb9de65c.js +1 -0
  217. package/.next/static/chunks/app/api/terminal/[id]/events/route-ad6e695deb9de65c.js +1 -0
  218. package/.next/static/chunks/app/api/terminal/[id]/route-ad6e695deb9de65c.js +1 -0
  219. package/.next/static/chunks/app/api/terminal/route-ad6e695deb9de65c.js +1 -0
  220. package/.next/static/chunks/app/api/worktrees/route-ad6e695deb9de65c.js +1 -0
  221. package/.next/static/chunks/app/api/yjs-version/route-ad6e695deb9de65c.js +1 -0
  222. package/.next/static/chunks/app/layout-fae2b226b3c78448.js +1 -0
  223. package/.next/static/chunks/app/manifest.webmanifest/route-ad6e695deb9de65c.js +1 -0
  224. package/.next/static/chunks/app/page-d5af3bd535589daf.js +256 -0
  225. package/.next/static/chunks/next/dist/client/components/builtin/app-error-ad6e695deb9de65c.js +1 -0
  226. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-ad6e695deb9de65c.js +1 -0
  227. package/.next/static/chunks/next/dist/client/components/builtin/not-found-ad6e695deb9de65c.js +1 -0
  228. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ad6e695deb9de65c.js +1 -0
  229. package/.next/static/chunks/{webpack-b0effde51c1651b8.js → webpack-1ce35e1249cfd931.js} +1 -1
  230. package/.next/static/css/bb9361c7f832a89d.css +1 -0
  231. package/.next/static/css/c7d127e07b1a786c.css +1 -0
  232. package/.next/trace +8 -7
  233. package/.next/trace-build +1 -1
  234. package/.next/types/app/api/boards/[id]/add-session/route.ts +353 -0
  235. package/.next/types/app/api/subagents/[id]/route.ts +353 -0
  236. package/.next/types/app/api/subagents/profiles/route.ts +353 -0
  237. package/.next/types/app/api/subagents/settings/route.ts +353 -0
  238. package/.next/types/routes.d.ts +5 -1
  239. package/.next/types/validator.ts +36 -0
  240. package/lib/api-types.ts +10 -0
  241. package/lib/board-reconcile.test.mjs +46 -8
  242. package/lib/board-reconcile.ts +57 -1
  243. package/lib/board-store.test.mjs +2 -2
  244. package/lib/chat-lazy-load.test.mjs +0 -62
  245. package/lib/chat-lazy-load.ts +0 -13
  246. package/lib/chat-only.ts +23 -0
  247. package/lib/draft-stash.ts +4 -5
  248. package/lib/file-types.ts +16 -1
  249. package/lib/i18n/messages/en.ts +91 -0
  250. package/lib/i18n/messages/zh-CN.ts +91 -0
  251. package/lib/id.test.mjs +38 -0
  252. package/lib/id.ts +17 -0
  253. package/lib/ime-guard.test.mjs +52 -0
  254. package/lib/ime-guard.ts +54 -0
  255. package/lib/message-text.ts +24 -0
  256. package/lib/models-cache.ts +1 -1
  257. package/lib/pi-types.ts +19 -1
  258. package/lib/pin-store.ts +85 -0
  259. package/lib/powershell-settings.ts +106 -0
  260. package/lib/quoted-selection.ts +4 -0
  261. package/lib/rpc-manager.activity.test.mjs +223 -0
  262. package/lib/rpc-manager.test.mjs +22 -0
  263. package/lib/rpc-manager.title.test.mjs +152 -0
  264. package/lib/rpc-manager.ts +301 -28
  265. package/lib/session-activity.test.mjs +123 -0
  266. package/lib/session-activity.ts +77 -0
  267. package/lib/session-delete.test.mjs +45 -41
  268. package/lib/session-delete.ts +8 -34
  269. package/lib/session-family.test.mjs +49 -0
  270. package/lib/session-family.ts +80 -0
  271. package/lib/session-index-scanner.test.mjs +364 -2
  272. package/lib/session-index-scanner.ts +199 -55
  273. package/lib/session-reader.noscan.test.mjs +371 -0
  274. package/lib/session-reader.project.test.mjs +30 -52
  275. package/lib/session-reader.test.mjs +2 -65
  276. package/lib/session-reader.ts +177 -213
  277. package/lib/session-scanner.test.mjs +151 -38
  278. package/lib/session-scanner.ts +140 -61
  279. package/lib/session-search.ts +6 -5
  280. package/lib/session-time-group.test.mjs +38 -0
  281. package/lib/session-time-group.ts +55 -0
  282. package/lib/settings-navigation.ts +124 -0
  283. package/lib/sqlite-db.test.mjs +26 -0
  284. package/lib/sqlite-db.ts +10 -1
  285. package/lib/subagent-extension.test.mjs +424 -0
  286. package/lib/subagent-extension.ts +309 -0
  287. package/lib/subagent-input.test.mjs +63 -0
  288. package/lib/subagent-input.ts +71 -0
  289. package/lib/subagent-profile-precedence.ts +20 -0
  290. package/lib/subagent-prompt.test.mjs +64 -0
  291. package/lib/subagent-prompt.ts +31 -0
  292. package/lib/subagent-queue.test.mjs +35 -0
  293. package/lib/subagent-queue.ts +74 -0
  294. package/lib/subagent-runtime.test.mjs +150 -0
  295. package/lib/subagent-runtime.ts +629 -0
  296. package/lib/subagent-session-title.test.mjs +120 -0
  297. package/lib/subagent-settings.test.mjs +50 -0
  298. package/lib/subagent-settings.ts +93 -0
  299. package/lib/subagents.test.mjs +601 -0
  300. package/lib/subagents.ts +602 -0
  301. package/lib/task-scheduler.test.mjs +27 -0
  302. package/lib/task-scheduler.ts +8 -1
  303. package/lib/task-store.activity.test.mjs +141 -0
  304. package/lib/task-store.meta-row.test.mjs +25 -5
  305. package/lib/task-store.partial-row.test.mjs +198 -0
  306. package/lib/task-store.subtree.test.mjs +172 -0
  307. package/lib/task-store.test.mjs +46 -20
  308. package/lib/task-store.ts +344 -68
  309. package/lib/tool-presets.ts +4 -0
  310. package/lib/types.ts +19 -0
  311. package/lib/worktree-isolation.test.mjs +51 -0
  312. package/next.config.ts +3 -1
  313. package/package.json +1 -1
  314. package/.next/static/bsW3fla0-BlBHVMKtAM5I/_buildManifest.js +0 -1
  315. package/.next/static/chunks/752.0ad92735d5f38143.js +0 -1
  316. package/.next/static/chunks/8088.53d9cdaf15634d4b.js +0 -1
  317. package/.next/static/chunks/app/_global-error/page-2d5f6296c7e693c6.js +0 -1
  318. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-2d5f6296c7e693c6.js +0 -1
  319. package/.next/static/chunks/app/api/agent/[id]/events/route-2d5f6296c7e693c6.js +0 -1
  320. package/.next/static/chunks/app/api/agent/[id]/route-2d5f6296c7e693c6.js +0 -1
  321. package/.next/static/chunks/app/api/agent/new/route-2d5f6296c7e693c6.js +0 -1
  322. package/.next/static/chunks/app/api/agent/running/route-2d5f6296c7e693c6.js +0 -1
  323. package/.next/static/chunks/app/api/app-update/route-2d5f6296c7e693c6.js +0 -1
  324. package/.next/static/chunks/app/api/auth/all-providers/route-2d5f6296c7e693c6.js +0 -1
  325. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-2d5f6296c7e693c6.js +0 -1
  326. package/.next/static/chunks/app/api/auth/login/[provider]/route-2d5f6296c7e693c6.js +0 -1
  327. package/.next/static/chunks/app/api/auth/logout/[provider]/route-2d5f6296c7e693c6.js +0 -1
  328. package/.next/static/chunks/app/api/auth/providers/route-2d5f6296c7e693c6.js +0 -1
  329. package/.next/static/chunks/app/api/board-assets/[...path]/route-2d5f6296c7e693c6.js +0 -1
  330. package/.next/static/chunks/app/api/board-assets/route-2d5f6296c7e693c6.js +0 -1
  331. package/.next/static/chunks/app/api/boards/[id]/reconcile/route-2d5f6296c7e693c6.js +0 -1
  332. package/.next/static/chunks/app/api/boards/[id]/route-2d5f6296c7e693c6.js +0 -1
  333. package/.next/static/chunks/app/api/boards/reorder/route-2d5f6296c7e693c6.js +0 -1
  334. package/.next/static/chunks/app/api/boards/route-2d5f6296c7e693c6.js +0 -1
  335. package/.next/static/chunks/app/api/cwd/browse/route-2d5f6296c7e693c6.js +0 -1
  336. package/.next/static/chunks/app/api/cwd/validate/route-2d5f6296c7e693c6.js +0 -1
  337. package/.next/static/chunks/app/api/default-cwd/route-2d5f6296c7e693c6.js +0 -1
  338. package/.next/static/chunks/app/api/file-index/route-2d5f6296c7e693c6.js +0 -1
  339. package/.next/static/chunks/app/api/files/[...path]/route-2d5f6296c7e693c6.js +0 -1
  340. package/.next/static/chunks/app/api/git/diff/route-2d5f6296c7e693c6.js +0 -1
  341. package/.next/static/chunks/app/api/git/status/route-2d5f6296c7e693c6.js +0 -1
  342. package/.next/static/chunks/app/api/home/route-2d5f6296c7e693c6.js +0 -1
  343. package/.next/static/chunks/app/api/mcp/route-2d5f6296c7e693c6.js +0 -1
  344. package/.next/static/chunks/app/api/models/route-2d5f6296c7e693c6.js +0 -1
  345. package/.next/static/chunks/app/api/models-config/catalog/route-2d5f6296c7e693c6.js +0 -1
  346. package/.next/static/chunks/app/api/models-config/discover/route-2d5f6296c7e693c6.js +0 -1
  347. package/.next/static/chunks/app/api/models-config/route-2d5f6296c7e693c6.js +0 -1
  348. package/.next/static/chunks/app/api/models-config/test/route-2d5f6296c7e693c6.js +0 -1
  349. package/.next/static/chunks/app/api/plugins/route-2d5f6296c7e693c6.js +0 -1
  350. package/.next/static/chunks/app/api/project-trust/route-2d5f6296c7e693c6.js +0 -1
  351. package/.next/static/chunks/app/api/quota/route-2d5f6296c7e693c6.js +0 -1
  352. package/.next/static/chunks/app/api/search/route-2d5f6296c7e693c6.js +0 -1
  353. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-2d5f6296c7e693c6.js +0 -1
  354. package/.next/static/chunks/app/api/sessions/[id]/context/route-2d5f6296c7e693c6.js +0 -1
  355. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-2d5f6296c7e693c6.js +0 -1
  356. package/.next/static/chunks/app/api/sessions/[id]/export/route-2d5f6296c7e693c6.js +0 -1
  357. package/.next/static/chunks/app/api/sessions/[id]/minimap/route-2d5f6296c7e693c6.js +0 -1
  358. package/.next/static/chunks/app/api/sessions/[id]/route-2d5f6296c7e693c6.js +0 -1
  359. package/.next/static/chunks/app/api/sessions/[id]/state/route-2d5f6296c7e693c6.js +0 -1
  360. package/.next/static/chunks/app/api/sessions/[id]/todos/route-2d5f6296c7e693c6.js +0 -1
  361. package/.next/static/chunks/app/api/sessions/route-2d5f6296c7e693c6.js +0 -1
  362. package/.next/static/chunks/app/api/sessions/summary/route-2d5f6296c7e693c6.js +0 -1
  363. package/.next/static/chunks/app/api/skills/check/route-2d5f6296c7e693c6.js +0 -1
  364. package/.next/static/chunks/app/api/skills/install/route-2d5f6296c7e693c6.js +0 -1
  365. package/.next/static/chunks/app/api/skills/route-2d5f6296c7e693c6.js +0 -1
  366. package/.next/static/chunks/app/api/skills/search/route-2d5f6296c7e693c6.js +0 -1
  367. package/.next/static/chunks/app/api/skills/update/route-2d5f6296c7e693c6.js +0 -1
  368. package/.next/static/chunks/app/api/task-card-questions/[id]/answer/route-2d5f6296c7e693c6.js +0 -1
  369. package/.next/static/chunks/app/api/task-card-questions/route-2d5f6296c7e693c6.js +0 -1
  370. package/.next/static/chunks/app/api/task-cards/[id]/route-2d5f6296c7e693c6.js +0 -1
  371. package/.next/static/chunks/app/api/task-cards/route-2d5f6296c7e693c6.js +0 -1
  372. package/.next/static/chunks/app/api/task-cards/unbind/route-2d5f6296c7e693c6.js +0 -1
  373. package/.next/static/chunks/app/api/task-scheduler/status/route-2d5f6296c7e693c6.js +0 -1
  374. package/.next/static/chunks/app/api/tasks/[id]/assign-session/route-2d5f6296c7e693c6.js +0 -1
  375. package/.next/static/chunks/app/api/tasks/[id]/board/route-2d5f6296c7e693c6.js +0 -1
  376. package/.next/static/chunks/app/api/tasks/[id]/route-2d5f6296c7e693c6.js +0 -1
  377. package/.next/static/chunks/app/api/tasks/reorder/route-2d5f6296c7e693c6.js +0 -1
  378. package/.next/static/chunks/app/api/tasks/route-2d5f6296c7e693c6.js +0 -1
  379. package/.next/static/chunks/app/api/terminal/[id]/events/route-2d5f6296c7e693c6.js +0 -1
  380. package/.next/static/chunks/app/api/terminal/[id]/route-2d5f6296c7e693c6.js +0 -1
  381. package/.next/static/chunks/app/api/terminal/route-2d5f6296c7e693c6.js +0 -1
  382. package/.next/static/chunks/app/api/worktrees/route-2d5f6296c7e693c6.js +0 -1
  383. package/.next/static/chunks/app/api/yjs-version/route-2d5f6296c7e693c6.js +0 -1
  384. package/.next/static/chunks/app/layout-dace09825b2d3857.js +0 -1
  385. package/.next/static/chunks/app/manifest.webmanifest/route-2d5f6296c7e693c6.js +0 -1
  386. package/.next/static/chunks/app/page-64b9f4b3567a2f73.js +0 -89
  387. package/.next/static/chunks/next/dist/client/components/builtin/app-error-2d5f6296c7e693c6.js +0 -1
  388. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-2d5f6296c7e693c6.js +0 -1
  389. package/.next/static/chunks/next/dist/client/components/builtin/not-found-2d5f6296c7e693c6.js +0 -1
  390. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-2d5f6296c7e693c6.js +0 -1
  391. package/.next/static/css/fd25673802257262.css +0 -1
  392. package/lib/extension-command.test.mjs +0 -63
  393. package/lib/extension-command.ts +0 -81
  394. package/lib/subagent-widget.test.mjs +0 -87
  395. package/lib/subagent-widget.ts +0 -109
  396. /package/.next/static/{bsW3fla0-BlBHVMKtAM5I → MPBMmQqmDG8zo8tM_bkDy}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"25069":{"*":{"id":"95693","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"55100","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"57788":{"*":{"id":"19102","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/baique/work/pi-web-sky/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/components/PwaRegistration.tsx":{"id":57788,"name":"*","chunks":["7177","static/chunks/app/layout-dace09825b2d3857.js"],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Noto_Sans_Mono\",\"arguments\":[{\"subsets\":[\"latin\",\"cyrillic\"],\"variable\":\"--font-noto-mono\",\"display\":\"swap\"}],\"variableName\":\"notoSansMono\"}":{"id":83683,"name":"*","chunks":["7177","static/chunks/app/layout-dace09825b2d3857.js"],"async":false},"/Users/baique/work/pi-web-sky/node_modules/katex/dist/katex.min.css":{"id":84559,"name":"*","chunks":["7177","static/chunks/app/layout-dace09825b2d3857.js"],"async":false},"/Users/baique/work/pi-web-sky/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-dace09825b2d3857.js"],"async":false},"/Users/baique/work/pi-web-sky/components/AppShell.tsx":{"id":25069,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","5362","static/chunks/5362-7d57fb3b2e15c9a1.js","8974","static/chunks/app/page-64b9f4b3567a2f73.js"],"async":false},"/Users/baique/work/pi-web-sky/hooks/useI18n.tsx":{"id":39247,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","5362","static/chunks/5362-7d57fb3b2e15c9a1.js","8974","static/chunks/app/page-64b9f4b3567a2f73.js"],"async":false}},"entryCSSFiles":{"/Users/baique/work/pi-web-sky/":[],"/Users/baique/work/pi-web-sky/app/layout":[{"inlined":false,"path":"static/css/88714c00e109ce28.css"},{"inlined":false,"path":"static/css/fd25673802257262.css"}],"/Users/baique/work/pi-web-sky/app/page":[{"inlined":false,"path":"static/css/46396d55066d14af.css"}]},"rscModuleMapping":{"25069":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"73884","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"57788":{"*":{"id":"81276","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"84559":{"*":{"id":"25319","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"55100","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"57788":{"*":{"id":"19102","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"97290":{"*":{"id":"28229","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/baique/work/pi-web-sky/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/baique/work/pi-web-sky/components/PwaRegistration.tsx":{"id":57788,"name":"*","chunks":["7177","static/chunks/app/layout-fae2b226b3c78448.js"],"async":false},"/Users/baique/work/pi-web-sky/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Noto_Sans_Mono\",\"arguments\":[{\"subsets\":[\"latin\",\"cyrillic\"],\"variable\":\"--font-noto-mono\",\"display\":\"swap\"}],\"variableName\":\"notoSansMono\"}":{"id":83683,"name":"*","chunks":["7177","static/chunks/app/layout-fae2b226b3c78448.js"],"async":false},"/Users/baique/work/pi-web-sky/node_modules/katex/dist/katex.min.css":{"id":84559,"name":"*","chunks":["7177","static/chunks/app/layout-fae2b226b3c78448.js"],"async":false},"/Users/baique/work/pi-web-sky/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-fae2b226b3c78448.js"],"async":false},"/Users/baique/work/pi-web-sky/app/settings.css":{"id":39979,"name":"*","chunks":["7177","static/chunks/app/layout-fae2b226b3c78448.js"],"async":false},"/Users/baique/work/pi-web-sky/components/AppShell.tsx":{"id":97290,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","5362","static/chunks/5362-7d57fb3b2e15c9a1.js","8974","static/chunks/app/page-d5af3bd535589daf.js"],"async":false},"/Users/baique/work/pi-web-sky/hooks/useI18n.tsx":{"id":39247,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","5362","static/chunks/5362-7d57fb3b2e15c9a1.js","8974","static/chunks/app/page-d5af3bd535589daf.js"],"async":false}},"entryCSSFiles":{"/Users/baique/work/pi-web-sky/":[],"/Users/baique/work/pi-web-sky/app/layout":[{"inlined":false,"path":"static/css/88714c00e109ce28.css"},{"inlined":false,"path":"static/css/c7d127e07b1a786c.css"},{"inlined":false,"path":"static/css/bb9361c7f832a89d.css"}],"/Users/baique/work/pi-web-sky/app/page":[{"inlined":false,"path":"static/css/46396d55066d14af.css"}]},"rscModuleMapping":{"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"73884","name":"*","chunks":[],"async":false}},"39979":{"*":{"id":"77261","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"57788":{"*":{"id":"81276","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"84559":{"*":{"id":"25319","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"97290":{"*":{"id":"35790","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -27,13 +27,14 @@
27
27
  "/api/auth/all-providers/route": "app/api/auth/all-providers/route.js",
28
28
  "/api/agent/[id]/events/route": "app/api/agent/[id]/events/route.js",
29
29
  "/api/app-update/route": "app/api/app-update/route.js",
30
- "/api/agent/new/route": "app/api/agent/new/route.js",
31
30
  "/api/auth/api-key/[provider]/route": "app/api/auth/api-key/[provider]/route.js",
31
+ "/api/agent/new/route": "app/api/agent/new/route.js",
32
32
  "/api/auth/logout/[provider]/route": "app/api/auth/logout/[provider]/route.js",
33
33
  "/api/auth/providers/route": "app/api/auth/providers/route.js",
34
34
  "/api/auth/login/[provider]/route": "app/api/auth/login/[provider]/route.js",
35
35
  "/api/board-assets/[...path]/route": "app/api/board-assets/[...path]/route.js",
36
36
  "/api/board-assets/route": "app/api/board-assets/route.js",
37
+ "/api/boards/[id]/add-session/route": "app/api/boards/[id]/add-session/route.js",
37
38
  "/api/boards/[id]/reconcile/route": "app/api/boards/[id]/reconcile/route.js",
38
39
  "/api/boards/[id]/route": "app/api/boards/[id]/route.js",
39
40
  "/api/boards/reorder/route": "app/api/boards/reorder/route.js",
@@ -50,18 +51,21 @@
50
51
  "/api/sessions/[id]/export/route": "app/api/sessions/[id]/export/route.js",
51
52
  "/api/sessions/route": "app/api/sessions/route.js",
52
53
  "/api/sessions/summary/route": "app/api/sessions/summary/route.js",
54
+ "/api/quota/route": "app/api/quota/route.js",
53
55
  "/api/skills/check/route": "app/api/skills/check/route.js",
54
56
  "/api/skills/install/route": "app/api/skills/install/route.js",
55
57
  "/api/skills/route": "app/api/skills/route.js",
56
- "/api/quota/route": "app/api/quota/route.js",
57
58
  "/api/skills/update/route": "app/api/skills/update/route.js",
58
- "/api/task-card-questions/[id]/answer/route": "app/api/task-card-questions/[id]/answer/route.js",
59
59
  "/api/skills/search/route": "app/api/skills/search/route.js",
60
+ "/api/subagents/[id]/route": "app/api/subagents/[id]/route.js",
61
+ "/api/subagents/profiles/route": "app/api/subagents/profiles/route.js",
62
+ "/api/subagents/settings/route": "app/api/subagents/settings/route.js",
63
+ "/api/task-card-questions/[id]/answer/route": "app/api/task-card-questions/[id]/answer/route.js",
60
64
  "/api/task-card-questions/route": "app/api/task-card-questions/route.js",
61
65
  "/api/task-cards/unbind/route": "app/api/task-cards/unbind/route.js",
62
66
  "/api/task-scheduler/status/route": "app/api/task-scheduler/status/route.js",
63
- "/api/task-cards/route": "app/api/task-cards/route.js",
64
67
  "/api/task-cards/[id]/route": "app/api/task-cards/[id]/route.js",
68
+ "/api/task-cards/route": "app/api/task-cards/route.js",
65
69
  "/api/tasks/[id]/board/route": "app/api/tasks/[id]/board/route.js",
66
70
  "/api/tasks/reorder/route": "app/api/tasks/reorder/route.js",
67
71
  "/api/tasks/route": "app/api/tasks/route.js",
@@ -1,7 +1,7 @@
1
- "use strict";exports.id=1937,exports.ids=[1937],exports.modules={47128:(a,b,c)=>{c.d(b,{BC:()=>k,dA:()=>i});var d=c(75384),e=c(65562),f=c(48817),g=c(90596);let h=new Map;async function i(a,b=!1){var c,g;let k,l,m=(0,d.v$)(a);if(!m)return;let n=(c=m.taskId??null,JSON.stringify([c,(k=(0,f.gN)(a)).map(a=>[a.id,a.sessionId??""]),c?(0,e.listTaskSessionIds)(c):[],c?j(c).map(a=>[a.sessionId,a.parentId]):[],k.flatMap(a=>(0,f.QA)(a.id).map(b=>[a.id,b.targetCardId,b.kind]))]));if(!b&&h.get(a)===n)return;let o=!!m.taskId,p=(0,f.gN)(a),q=new Set;if(o)for(let a of(0,e.listTaskSessionIds)(m.taskId))q.add(a);for(let a of p)a.sessionId&&q.add(a.sessionId);let r=new Map;if(o)for(let{sessionId:a,parentId:b}of j(m.taskId))q.add(a),r.set(a,b);await (g=a=>{let b=a.nodes,c=a.edges,d=Array.from(b.values()),e=new Set(p.map(a=>a.id)),g=[];for(let a of d){if(a?.type!=="task-card")continue;let b=a.data?.cardId;"string"==typeof b&&b&&(e.has(b)||g.push(a.id))}for(let a of g)for(let d of(b.delete(a),Array.from(c.values())))(d.source===a||d.target===a)&&c.delete(d.id);let h=new Set,i=new Map;for(let a of d){if(a?.type!=="session-card")continue;let b=a.data?.sessionId;b&&(h.add(b),!function(a){let b=a?.data?.cwd;return!!(a&&"string"==typeof b&&b.length>0)}(a)&&i.set(b,a))}let j=[];if(o)for(let[a,b]of i)q.has(a)||j.push(b.id);for(let a of j)for(let d of(b.delete(a),Array.from(c.values())))(d.source===a||d.target===a)&&c.delete(d.id);{let a=Array.from(b.values()),c=new Map(p.filter(a=>a.sessionId).map(a=>[a.sessionId,a]));for(let d of q){if(h.has(d))continue;let e=`session-${d}`,f=c.get(d),g=r.get(d),i=g?a.find(a=>a?.id===`session-${g}`):f?a.find(a=>a?.id===`task-${f.id}`):void 0,j=function(a,b){if(b?.position){let c=b.style?.width??380,d=b.position.x+c+24,e=b.position.y;if(!a.filter(a=>a?.type==="session-card").map(a=>({x:a.position?.x??0,y:a.position?.y??0,w:a.style?.width??340,h:a.style?.height??160})).some(a=>d<a.x+a.w+24&&d+340+24>a.x&&e<a.y+a.h+24&&e+160+24>a.y))return{x:d,y:e}}return function(a,b=340,c=160){let d=a.filter(a=>a?.type==="session-card").map(a=>({x:a.position?.x??0,y:a.position?.y??0,w:a.style?.width??b,h:a.style?.height??c})),e=(a,e)=>d.some(d=>a<d.x+d.w+24&&a+b+24>d.x&&e<d.y+d.h+24&&e+c+24>d.y),f=60,g=0;for(;g<2e3;){for(let a=0;a<4;a+=1){let c=60+a*(b+24);if(!e(c,f))return{x:c,y:f}}f+=c+24,g+=1}return{x:60,y:60}}(a,340,160)}(a,i);b.set(e,{id:e,type:"session-card",position:{x:j.x,y:j.y},style:{width:340,height:160},data:{sessionId:d,title:"",emoji:"\uD83D\uDCAC",projectName:"",messageCount:0,lastReply:"",phase:"idle",runningMs:0,endedAt:0,lastActivityAt:0,stale:!1,expanded:!1,cwd:"",taskId:"",w:340,h:160,expandedW:0,expandedH:0,collapsedW:0,collapsedH:0}}),a.push(b.get(e))}}let k=new Map;for(let a of Array.from(b.values()))a?.type==="task-card"&&a.data?.cardId&&k.set(a.data.cardId,a);let l=new Map;for(let a of Array.from(b.values()))a?.type==="session-card"&&a.data?.sessionId&&l.set(a.data.sessionId,a);let m=new Map;for(let a of Array.from(c.values())){if(!a.data?.execLink)continue;let b=a.source,c=m.get(b)??[];c.push({to:a.target,edgeId:a.id}),m.set(b,c)}for(let a of p){let b=k.get(a.id);if(!b)continue;let d=a.sessionId?l.get(a.sessionId):null,e=m.get(b.id)??[];for(let a of e)a.to!==(d?.id??null)&&c.delete(a.edgeId);if(!d||e.some(a=>a.to===d.id))continue;let f=`exec-${a.id}-${a.sessionId}`;c.set(f,{id:f,source:b.id,target:d.id,type:"default",data:{execLink:!0,cardId:a.id,sessionId:a.sessionId},markerEnd:{type:"arrowclosed"},style:{strokeWidth:1.5,stroke:"#3184f8",strokeDasharray:"6 4"}})}let n=new Map;for(let a of Array.from(c.values()))a.data?.forkLink&&a.source&&a.target&&n.set(`${a.source}->${a.target}`,a.id);let s=new Set;for(let[a,b]of r){let d=`session-${b}`,e=`session-${a}`;if(!l.has(b)||!l.has(a))continue;let f=`${d}->${e}`;s.add(f),n.has(f)||c.set(`fork-${b}-${a}`,{id:`fork-${b}-${a}`,source:d,target:e,type:"default",data:{forkLink:!0,parentId:b,sessionId:a},markerEnd:{type:"arrowclosed"},style:{strokeWidth:1.5,stroke:"#3184f8",strokeDasharray:"6 4"}})}for(let[a,b]of n)s.has(a)||c.delete(b);let t=new Map;for(let a of Array.from(c.values())){if(!a.data?.taskLink)continue;let b=a.source,c=a.target,d=a.data.taskLink;b&&c&&d&&t.set(`${b}->${c}:${d}`,a.id)}let u=new Set;for(let a of p){let b=k.get(a.id);if(b)for(let d of(0,f.QA)(a.id)){let a=k.get(d.targetCardId);if(!a)continue;let e=`${b.id}->${a.id}:${d.kind}`;if(u.add(e),!t.has(e)){let e=`link-${b.id}-${a.id}-${d.kind}`;c.set(e,{id:e,source:b.id,target:a.id,type:"default",data:{taskLink:d.kind},markerEnd:{type:"arrowclosed"},style:{strokeWidth:1.5,stroke:"#f59e0b"}})}}}for(let[a,b]of t)u.has(a)||c.delete(b)},!(l=globalThis.__yjsBoard)?Promise.resolve():l.mutateBoard(a,g)),h.set(a,n)}function j(a){return(0,g.Lf)().prepare(`SELECT f.session_id AS sessionId, f.parent_id AS parentId
1
+ "use strict";exports.id=1937,exports.ids=[1937],exports.modules={47128:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BC:()=>l,dA:()=>j});var e=c(75384),f=c(65562),g=c(48817),h=c(90596),i=a([f]);f=(i.then?(await i)():i)[0];let m=new Map;async function j(a,b=!1){var c,d;let h,i,l=(0,e.v$)(a);if(!l)return;let n=(c=l.taskId??null,h=(0,g.gN)(a),JSON.stringify([c,h.map(a=>[a.id,a.sessionId??""]),c?(0,f.gQ)(c):[],c?k(c).map(a=>[a.sessionId,a.parentId]):[],h.flatMap(a=>(0,g.QA)(a.id).map(b=>[a.id,b.targetCardId,b.kind]))]));if(!b&&m.get(a)===n)return;let o=!!l.taskId,p=(0,g.gN)(a),q=new Set;if(o)for(let a of(0,f.gQ)(l.taskId))q.add(a);for(let a of p)a.sessionId&&q.add(a.sessionId);let r=new Map;if(o)for(let{sessionId:a,parentId:b}of k(l.taskId))q.add(a),r.set(a,b);await (d=a=>{let b=a.nodes,c=a.edges,d=Array.from(b.values()),e=new Set(p.map(a=>a.id)),f=[];for(let a of d){if(a?.type!=="task-card")continue;let b=a.data?.cardId;"string"==typeof b&&b&&(e.has(b)||f.push(a.id))}for(let a of f)for(let d of(b.delete(a),Array.from(c.values())))(d.source===a||d.target===a)&&c.delete(d.id);let h=new Set,i=new Map;for(let a of d){if(a?.type!=="session-card")continue;let b=a.data?.sessionId;b&&(h.add(b),!function(a){let b=a?.data?.cwd;return!!(a&&"string"==typeof b&&b.length>0)}(a)&&i.set(b,a))}let j=[];if(o)for(let[a,b]of i)q.has(a)||j.push(b.id);for(let a of j)for(let d of(b.delete(a),Array.from(c.values())))(d.source===a||d.target===a)&&c.delete(d.id);{let a=Array.from(b.values()),c=new Map(p.filter(a=>a.sessionId).map(a=>[a.sessionId,a]));for(let d of q){if(h.has(d))continue;let e=`session-${d}`,f=c.get(d),g=r.get(d),i=g?a.find(a=>a?.id===`session-${g}`):f?a.find(a=>a?.id===`task-${f.id}`):void 0,j=function(a,b){if(b?.position){let c=b.style?.width??380,d=b.position.x+c+24,e=b.position.y;if(!a.filter(a=>a?.type==="session-card").map(a=>({x:a.position?.x??0,y:a.position?.y??0,w:a.style?.width??340,h:a.style?.height??160})).some(a=>d<a.x+a.w+24&&d+340+24>a.x&&e<a.y+a.h+24&&e+160+24>a.y))return{x:d,y:e}}return function(a,b=340,c=160){let d=a.filter(a=>a?.type==="session-card").map(a=>({x:a.position?.x??0,y:a.position?.y??0,w:a.style?.width??b,h:a.style?.height??c})),e=(a,e)=>d.some(d=>a<d.x+d.w+24&&a+b+24>d.x&&e<d.y+d.h+24&&e+c+24>d.y),f=60,g=0;for(;g<2e3;){for(let a=0;a<4;a+=1){let c=60+a*(b+24);if(!e(c,f))return{x:c,y:f}}f+=c+24,g+=1}return{x:60,y:60}}(a,340,160)}(a,i);b.set(e,{id:e,type:"session-card",position:{x:j.x,y:j.y},style:{width:340,height:160},data:{sessionId:d,title:"",emoji:"\uD83D\uDCAC",projectName:"",messageCount:0,lastReply:"",phase:"idle",runningMs:0,endedAt:0,lastActivityAt:0,stale:!1,expanded:!1,cwd:"",taskId:"",w:340,h:160,expandedW:0,expandedH:0,collapsedW:0,collapsedH:0}}),a.push(b.get(e))}}let k=new Map;for(let a of Array.from(b.values()))a?.type==="task-card"&&a.data?.cardId&&k.set(a.data.cardId,a);let l=new Map;for(let a of Array.from(b.values()))a?.type==="session-card"&&a.data?.sessionId&&l.set(a.data.sessionId,a);let m=new Map;for(let a of Array.from(c.values())){if(!a.data?.execLink)continue;let b=a.source,c=m.get(b)??[];c.push({to:a.target,edgeId:a.id}),m.set(b,c)}for(let a of p){let b=k.get(a.id);if(!b)continue;let d=a.sessionId?l.get(a.sessionId):null,e=m.get(b.id)??[];for(let a of e)a.to!==(d?.id??null)&&c.delete(a.edgeId);if(!d||e.some(a=>a.to===d.id))continue;let f=`exec-${a.id}-${a.sessionId}`;c.set(f,{id:f,source:b.id,target:d.id,type:"default",data:{execLink:!0,cardId:a.id,sessionId:a.sessionId},markerEnd:{type:"arrowclosed"},style:{strokeWidth:1.5,stroke:"#3184f8",strokeDasharray:"6 4"}})}let n=new Map;for(let a of Array.from(c.values()))a.data?.forkLink&&a.source&&a.target&&n.set(`${a.source}->${a.target}`,a.id);let s=new Set;for(let[a,b]of r){let d=`session-${b}`,e=`session-${a}`;if(!l.has(b)||!l.has(a))continue;let f=`${d}->${e}`;s.add(f),n.has(f)||c.set(`fork-${b}-${a}`,{id:`fork-${b}-${a}`,source:d,target:e,type:"default",data:{forkLink:!0,parentId:b,sessionId:a},markerEnd:{type:"arrowclosed"},style:{strokeWidth:1.5,stroke:"#3184f8",strokeDasharray:"6 4"}})}for(let[a,b]of n)s.has(a)||c.delete(b);let t=new Map;for(let a of Array.from(c.values())){if(!a.data?.taskLink)continue;let b=a.source,c=a.target,d=a.data.taskLink;b&&c&&d&&t.set(`${b}->${c}:${d}`,a.id)}let u=new Set;for(let a of p){let b=k.get(a.id);if(b)for(let d of(0,g.QA)(a.id)){let a=k.get(d.targetCardId);if(!a)continue;let e=`${b.id}->${a.id}:${d.kind}`;if(u.add(e),!t.has(e)){let e=`link-${b.id}-${a.id}-${d.kind}`;c.set(e,{id:e,source:b.id,target:a.id,type:"default",data:{taskLink:d.kind},markerEnd:{type:"arrowclosed"},style:{strokeWidth:1.5,stroke:"#f59e0b"}})}}}for(let[a,b]of t)u.has(a)||c.delete(b)},!(i=globalThis.__yjsBoard)?Promise.resolve():i.mutateBoard(a,d)),m.set(a,n)}function k(a){return(0,h.Lf)().prepare(`SELECT f.session_id AS sessionId, f.parent_id AS parentId
2
2
  FROM session_meta f
3
3
  JOIN session_meta s ON s.session_id = f.parent_id
4
- WHERE f.parent_id IS NOT NULL AND s.task_id = ?`).all(a)}async function k(a){let b=(0,g.Lf)().prepare("SELECT task_id AS taskId FROM session_meta WHERE session_id = ? AND task_id IS NOT NULL").get(a);if(!b?.taskId)return;let c=(0,g.Lf)().prepare("SELECT id FROM boards WHERE task_id = ?").get(b.taskId);c?.id&&await i(c.id)}},48817:(a,b,c)=>{c.d(b,{$j:()=>r,BH:()=>t,CU:()=>s,Im:()=>q,Kg:()=>x,O7:()=>u,QA:()=>n,XJ:()=>k,gN:()=>l,hG:()=>w,uZ:()=>p,w0:()=>m});var d=c(55511),e=c(90596);let f=new Set(["draft","todo"]),g=new Set(["not_started","running","review","done","failed","abandoned","waiting_reply"]);function h(a){return{...a,useWorktree:1===a.useWorktree,attachments:JSON.parse(a.attachments)}}let i="id, board_id AS boardId, project_key AS projectKey, number, name, description, ready_status AS readyStatus, exec_status AS execStatus, priority, due, attachments, cwd, use_worktree AS useWorktree, max_retries AS maxRetries, retry_count AS retryCount, session_id AS sessionId, dispatch_token AS dispatchToken, created, updated";function j(a){return(0,e.Lf)().prepare(`SELECT ${i} FROM task_cards WHERE id = ?`).get(a)}function k(a){let b=j(a);return b?h(b):void 0}function l(a){return(0,e.Lf)().prepare(`SELECT ${i} FROM task_cards WHERE board_id = ? ORDER BY number`).all(a).map(h)}function m(a,b){let c=(0,e.Lf)(),d=j(a);if(!d)return null;let i=[],k=[],l=(a,b)=>{i.push(`${a} = ?`),k.push(b)};if(void 0!==b.name){let a=b.name.trim();if(!a)throw Error("name must not be empty");l("name",a)}if(void 0!==b.description&&l("description",b.description),void 0!==b.readyStatus){var m=b.readyStatus;if(void 0!==m&&!f.has(m))throw Error(`invalid readyStatus: ${String(m)}`);l("ready_status",b.readyStatus)}if(void 0!==b.execStatus){var n=b.execStatus;if(void 0!==n&&!g.has(n))throw Error(`invalid execStatus: ${String(n)}`);l("exec_status",b.execStatus)}return(void 0!==b.priority&&l("priority",b.priority),void 0!==b.due&&l("due",b.due),void 0!==b.attachments&&l("attachments",JSON.stringify(b.attachments)),void 0!==b.cwd&&l("cwd",b.cwd),void 0!==b.useWorktree&&l("use_worktree",+!!b.useWorktree),void 0!==b.maxRetries&&l("max_retries",b.maxRetries),void 0!==b.sessionId&&l("session_id",b.sessionId),void 0!==b.retryCount&&l("retry_count",b.retryCount),0===i.length)?h(d):(l("updated",Date.now()),c.prepare(`UPDATE task_cards SET ${i.join(", ")} WHERE id = ?`).run(...k,a),h(j(a)))}function n(a){return(0,e.Lf)().prepare("SELECT id, card_id AS cardId, target_card_id AS targetCardId, kind, created FROM task_card_links WHERE card_id = ? ORDER BY created, rowid").all(a)}function o(a){for(let b of n(a.id)){if("prerequisite"!==b.kind)continue;let a=k(b.targetCardId);if(a&&"done"!==a.execStatus)return!1}return!0}function p(){return(0,e.Lf)().prepare(`SELECT ${i} FROM task_cards
4
+ WHERE f.parent_id IS NOT NULL AND s.task_id = ?`).all(a)}async function l(a){let b=(0,h.Lf)().prepare("SELECT task_id AS taskId FROM session_meta WHERE session_id = ? AND task_id IS NOT NULL").get(a);if(!b?.taskId)return;let c=(0,h.Lf)().prepare("SELECT id FROM boards WHERE task_id = ?").get(b.taskId);c?.id&&await j(c.id)}d()}catch(a){d(a)}})},48817:(a,b,c)=>{c.d(b,{$j:()=>r,BH:()=>t,CU:()=>s,Im:()=>q,Kg:()=>x,O7:()=>u,QA:()=>n,XJ:()=>k,gN:()=>l,hG:()=>w,uZ:()=>p,w0:()=>m});var d=c(55511),e=c(90596);let f=new Set(["draft","todo"]),g=new Set(["not_started","running","review","done","failed","abandoned","waiting_reply"]);function h(a){return{...a,useWorktree:1===a.useWorktree,attachments:JSON.parse(a.attachments)}}let i="id, board_id AS boardId, project_key AS projectKey, number, name, description, ready_status AS readyStatus, exec_status AS execStatus, priority, due, attachments, cwd, use_worktree AS useWorktree, max_retries AS maxRetries, retry_count AS retryCount, session_id AS sessionId, dispatch_token AS dispatchToken, created, updated";function j(a){return(0,e.Lf)().prepare(`SELECT ${i} FROM task_cards WHERE id = ?`).get(a)}function k(a){let b=j(a);return b?h(b):void 0}function l(a){return(0,e.Lf)().prepare(`SELECT ${i} FROM task_cards WHERE board_id = ? ORDER BY number`).all(a).map(h)}function m(a,b){let c=(0,e.Lf)(),d=j(a);if(!d)return null;let i=[],k=[],l=(a,b)=>{i.push(`${a} = ?`),k.push(b)};if(void 0!==b.name){let a=b.name.trim();if(!a)throw Error("name must not be empty");l("name",a)}if(void 0!==b.description&&l("description",b.description),void 0!==b.readyStatus){var m=b.readyStatus;if(void 0!==m&&!f.has(m))throw Error(`invalid readyStatus: ${String(m)}`);l("ready_status",b.readyStatus)}if(void 0!==b.execStatus){var n=b.execStatus;if(void 0!==n&&!g.has(n))throw Error(`invalid execStatus: ${String(n)}`);l("exec_status",b.execStatus)}return(void 0!==b.priority&&l("priority",b.priority),void 0!==b.due&&l("due",b.due),void 0!==b.attachments&&l("attachments",JSON.stringify(b.attachments)),void 0!==b.cwd&&l("cwd",b.cwd),void 0!==b.useWorktree&&l("use_worktree",+!!b.useWorktree),void 0!==b.maxRetries&&l("max_retries",b.maxRetries),void 0!==b.sessionId&&l("session_id",b.sessionId),void 0!==b.retryCount&&l("retry_count",b.retryCount),0===i.length)?h(d):(l("updated",Date.now()),c.prepare(`UPDATE task_cards SET ${i.join(", ")} WHERE id = ?`).run(...k,a),h(j(a)))}function n(a){return(0,e.Lf)().prepare("SELECT id, card_id AS cardId, target_card_id AS targetCardId, kind, created FROM task_card_links WHERE card_id = ? ORDER BY created, rowid").all(a)}function o(a){for(let b of n(a.id)){if("prerequisite"!==b.kind)continue;let a=k(b.targetCardId);if(a&&"done"!==a.execStatus)return!1}return!0}function p(){return(0,e.Lf)().prepare(`SELECT ${i} FROM task_cards
5
5
  WHERE ready_status = 'todo' AND (exec_status = 'not_started' OR (exec_status = 'failed' AND retry_count < max_retries))
6
6
  AND dispatch_token IS NULL
7
7
  ORDER BY priority DESC, number`).all().map(h).filter(o)}function q(a,b){return Number((0,e.Lf)().prepare(`UPDATE task_cards SET dispatch_token = ?1, updated = ?2
@@ -13,14 +13,15 @@
13
13
  JOIN task_cards c ON c.id = q.card_id
14
14
  WHERE q.status = 'answered' AND c.exec_status = 'waiting_reply'
15
15
  AND q.id = (SELECT q2.id FROM task_card_questions q2 WHERE q2.card_id = q.card_id AND q2.status='answered' ORDER BY q2.answered DESC, q2.created DESC LIMIT 1)
16
- ORDER BY q.answered`).all().map(v)}},65562:(a,b,c)=>{c.d(b,{YH:()=>h,listPinnedTaskSessionIds:()=>g,listTaskSessionIds:()=>f,mE:()=>i}),c(55511);var d=c(90596);function e(){try{c(69453).mD()}catch{}}function f(a){return(0,d.Lf)().prepare("SELECT session_id FROM session_meta WHERE task_id = ? ORDER BY pinned DESC, updated DESC, rowid DESC").all(a).map(a=>a.session_id)}function g(a){return(0,d.Lf)().prepare("SELECT session_id FROM session_meta WHERE task_id = ? AND pinned = 1").all(a).map(a=>a.session_id)}function h(a,b){(0,d.Lf)().prepare(`INSERT INTO session_meta
17
- (session_id, task_id, updated, pinned, path, cwd, project_key, title, first_message, parent_id, created, modified)
18
- VALUES (?, NULL, ?, 0, ?, ?, ?, ?, ?, ?, ?, ?)
19
- ON CONFLICT(session_id) DO UPDATE SET
20
- path = excluded.path,
21
- cwd = excluded.cwd,
22
- project_key = excluded.project_key,
23
- first_message = excluded.first_message,
24
- parent_id = excluded.parent_id,
25
- created = excluded.created,
26
- modified = excluded.modified`).run(a,Date.now(),b.path,b.cwd,b.projectKey,b.title??null,b.firstMessage??null,b.parentId??null,Date.now(),Date.now()),e()}function i(a,b){let c=(0,d.Lf)();if(!(0,d.Lf)().prepare("SELECT id, project_key AS projectKey, name, created, updated, pinned, sort_order AS sortOrder FROM tasks WHERE id = ?").get(b))return!1;let f=Date.now();c.exec("BEGIN");try{c.prepare("INSERT INTO session_meta (session_id, task_id, updated) VALUES (?, ?, ?) ON CONFLICT(session_id) DO UPDATE SET task_id = excluded.task_id, updated = excluded.updated").run(a,b,f),c.prepare("UPDATE tasks SET updated = ? WHERE id = ?").run(f,b),c.exec("COMMIT")}catch(a){throw c.exec("ROLLBACK"),a}return e(),!0}c(75384)},69453:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{O8:()=>w,mD:()=>s,os:()=>v});var e=c(75430),f=c(29021),g=c(79748),h=c(33873),i=c(90596),j=c(7535),k=c(7561),l=c(62391),m=c(9210),n=c(16525),o=a([e,m,n]);async function p(a){let b=[...new Set(a.map(a=>a.cwd).filter(Boolean))],c=new Map;await Promise.all(b.map(async a=>{c.set(a,await (0,l.KI)(a))}));let d=new Set;try{let a=(0,i.Lf)().prepare("SELECT session_id FROM session_meta WHERE pinned = 1").all();d=new Set(a.map(a=>a.session_id))}catch{}return a.map(a=>{let b=a.cwd?c.get(a.cwd):void 0,e=b?.projectRoot??a.cwd;return{...a,projectRoot:e,projectKey:(0,j.z)(e),...b?.branch?{branch:b.branch}:{},...b?.isWorktree?{isWorktree:!0}:{},...b?.isWorktree&&b.branch?{worktreeBranch:b.branch}:{},...d.has(a.id)?{pinned:!0}:{}}})}async function q(){let a=await m.X_.scan(),b=new Map;for(let c of a)b.set((0,k.$)(c.path),c.id);let c=a.map(a=>(w(a.id,a.path),{path:a.path,id:a.id,cwd:a.cwd,name:a.name,created:a.created.toISOString(),modified:a.modified.toISOString(),messageCount:0,firstMessage:a.firstMessage||"(no messages)",lastReply:a.lastReply||"",parentSessionId:a.parentSessionPath?b.get((0,k.$)(a.parentSessionPath)):void 0,transient:!1}));return p(c)}async function r(a={}){a.force&&s();let b=globalThis.__piSessionListGeneration??0;if(globalThis.__piSessionListCache&&Date.now()-globalThis.__piSessionListCache.ts<x)return globalThis.__piSessionListCache.data;if(globalThis.__piSessionListPromise&&globalThis.__piSessionListPromiseGeneration===b)return globalThis.__piSessionListPromise;let c=q().then(a=>(globalThis.__piSessionListGeneration??0)!==b?r():(globalThis.__piSessionListCache={data:a,ts:Date.now()},a)).finally(()=>{globalThis.__piSessionListPromise===c&&(globalThis.__piSessionListPromise=void 0,globalThis.__piSessionListPromiseGeneration=void 0)});return globalThis.__piSessionListPromise=c,globalThis.__piSessionListPromiseGeneration=b,c}[e,m,n]=o.then?(await o)():o;let x=3e5;function s(){globalThis.__piSessionListGeneration=(globalThis.__piSessionListGeneration??0)+1,globalThis.__piSessionListCache=void 0}function t(){return globalThis.__piSessionPathCache||(globalThis.__piSessionPathCache=new Map),globalThis.__piSessionPathCache}async function u(a){let b,c=(0,h.join)((0,e.getAgentDir)(),"sessions");if(!a||!(0,f.existsSync)(c))return null;let d=`_${a}.jsonl`;try{b=await (0,g.readdir)(c,{withFileTypes:!0})}catch{return null}for(let e of b){let b;if(!e.isDirectory()&&!e.isSymbolicLink())continue;let i=(0,h.join)(c,e.name);try{b=await (0,g.readdir)(i)}catch{continue}let j=b.find(a=>a.endsWith(d));if(!j)continue;let k=(0,h.join)(i,j);try{if(function(a){let b=(0,f.openSync)(a,"r");try{let a=[],c=0,d=!1;for(;c<65536&&!d;){let e=Buffer.allocUnsafe(Math.min(4096,65536-c)),g=(0,f.readSync)(b,e,0,e.length,c);if(0===g)break;let h=e.subarray(0,g),i=h.indexOf(10);a.push(-1===i?h:h.subarray(0,i)),c+=g,d=-1!==i}if(!d&&c>=65536)return null;let e=Buffer.concat(a).toString("utf8").trimEnd();if(!e)return null;try{let a=JSON.parse(e);return"session"===a.type?a:null}catch{return null}}finally{(0,f.closeSync)(b)}}(k)?.id===a)return k}catch{}}return null}async function v(a){let b=t().get(a);if(b)return b;let c=await u(a);return c?(w(a,c),c):(await r(),t().get(a)??null)}function w(a,b){let c=(0,h.normalize)(b),d=(0,k.$)(c),e=t(),f=(globalThis.__piPathToSessionIdCache||(globalThis.__piPathToSessionIdCache=new Map),globalThis.__piPathToSessionIdCache),g=e.get(a),i=g?(0,k.$)(g):void 0,j=f.get(d),l=j?e.get(j):void 0;i&&i!==d&&f.get(i)===a&&f.delete(i),j&&j!==a&&l&&(0,k.$)(l)===d&&e.delete(j),e.set(a,c),f.set(d,a)}d()}catch(a){d(a)}})},75384:(a,b,c)=>{c.d(b,{v$:()=>f}),c(55511);var d=c(90596);let e="__running__";function f(a){if(a===e)return{id:e,projectKey:"",name:"running",isSystem:!0,taskId:null,sortOrder:0,created:0,updated:0};let b=(0,d.Lf)().prepare("SELECT id, project_key AS projectKey, name, is_system AS isSystem, task_id AS taskId, sort_order AS sortOrder, created, updated FROM boards WHERE id = ?").get(a);return b?{id:b.id,projectKey:b.projectKey,name:b.name,isSystem:1===b.isSystem,taskId:b.taskId,sortOrder:b.sortOrder,created:b.created,updated:b.updated}:void 0}c(48817)},85158:(a,b,c)=>{c.d(b,{U4:()=>j,dp:()=>f,oT:()=>k,zZ:()=>g});var d=c(55511),e=c(90596);let f=3e4;function g(){return globalThis.__piWebInstanceId||(globalThis.__piWebInstanceId=(0,d.randomUUID)()),globalThis.__piWebInstanceId}function h(){return Date.now()}function i(){return(0,e.Lf)().prepare("SELECT id, instance_id, registered_at, heartbeat FROM scheduler_leader WHERE id = 1").get()}function j(a){let b=(0,e.Lf)(),c=h(),d=i();return d?d.instance_id===a?Number(b.prepare("UPDATE scheduler_leader SET heartbeat = ? WHERE id = 1 AND instance_id = ?").run(c,a).changes)>0:!(h()-d.heartbeat<f)&&Number(b.prepare("UPDATE scheduler_leader SET instance_id = ?, registered_at = ?, heartbeat = ? WHERE id = 1 AND instance_id = ? AND heartbeat = ?").run(a,c,c,d.instance_id,d.heartbeat).changes)>0:Number(b.prepare("INSERT INTO scheduler_leader (id, instance_id, registered_at, heartbeat) VALUES (1, ?, ?, ?)").run(a,c,c).changes)>0}function k(){let a=i();return!!a&&a.instance_id===g()&&h()-a.heartbeat<f}}};
16
+ ORDER BY q.answered`).all().map(v)}},65562:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bm:()=>q,HO:()=>t,YH:()=>n,YZ:()=>s,gQ:()=>k,l6:()=>m,listPinnedTaskSessionIds:()=>l,mE:()=>p,xE:()=>r}),c(55511);var e=c(90596);c(75384);var f=c(7535),g=c(9210),h=c(88002),i=a([g]);function j(){try{c(69453).mD()}catch{}}function k(a){return(0,e.Lf)().prepare("SELECT session_id FROM session_meta WHERE task_id = ? ORDER BY pinned DESC, updated DESC, rowid DESC").all(a).map(a=>a.session_id)}function l(a){return(0,e.Lf)().prepare("SELECT session_id FROM session_meta WHERE task_id = ? AND pinned = 1").all(a).map(a=>a.session_id)}function m(a){let b=(0,e.Lf)().prepare("SELECT task_id FROM session_meta WHERE session_id = ?").get(a);return b?.task_id??null}function n(a,b){(0,e.Lf)().prepare(`INSERT INTO session_meta
17
+ (session_id, task_id, updated, pinned, path, cwd, project_key, title, first_message, parent_id, created, modified, last_reply)
18
+ VALUES (?, ?, ?, 0, ?, ?, ?, ?, ?, ?, ?, ?, NULL)
19
+ ON CONFLICT(session_id) DO UPDATE SET
20
+ path = excluded.path,
21
+ cwd = excluded.cwd,
22
+ project_key = excluded.project_key,
23
+ -- first_message 只补空:调用方不传(undefined)时不再把已有的首条消息擦成 NULL。
24
+ first_message = COALESCE(session_meta.first_message, excluded.first_message),
25
+ parent_id = excluded.parent_id,
26
+ created = excluded.created,
27
+ modified = excluded.modified`).run(a,b.taskId??null,Date.now(),b.path,b.cwd,b.projectKey,b.title??null,b.firstMessage??null,b.parentId??null,Date.now(),Date.now()),j()}async function o(a){if((0,e.Lf)().prepare("SELECT 1 FROM session_meta WHERE session_id = ?").get(a))return!0;let{resolveSessionPath:b,resolveSessionIdByPath:d}=await Promise.resolve().then(c.bind(c,69453)),i=await b(a);if(!i)return console.error(`[pi-web] 会话行补建失败:找不到会话文件 session=${a}`),!1;let j=(0,g.GL)(i);if(!j)return console.error(`[pi-web] 会话行补建失败:会话文件无有效 header session=${a} path=${i}`),!1;let k=await (0,h.KI)(j.cwd),l=j.parentSessionPath?await d(j.parentSessionPath)??void 0:void 0;return n(a,{path:i,cwd:j.cwd,projectKey:(0,f.z)(k?.projectRoot??j.cwd),parentId:l,firstMessage:j.firstMessage||void 0}),!0}async function p(a,b){let c=(0,e.Lf)();if(!(0,e.Lf)().prepare("SELECT id, project_key AS projectKey, name, created, updated, pinned, sort_order AS sortOrder FROM tasks WHERE id = ?").get(b)||!await o(a))return!1;if(function(a,b){let c=new Map,d=new Map;for(let a of(0,e.Lf)().prepare("SELECT session_id, parent_id, task_id FROM session_meta").all())c.set(a.session_id,a.parent_id),d.set(a.session_id,a.task_id);let f=new Set([a]),g=c.get(a)??null;for(;g&&!f.has(g);){f.add(g);let a=d.get(g)??null;if(null!==a&&a!==b)return!0;g=c.get(g)??null}return!1}(a,b))return console.error(`[pi-web] 归属被拒绝:祖先属于其它任务 session=${a} task=${b}`),!1;let d=Date.now();c.exec("BEGIN");try{c.prepare("UPDATE session_meta SET task_id = ?, updated = ? WHERE session_id = ?").run(b,d,a),c.prepare("UPDATE tasks SET updated = ? WHERE id = ?").run(d,b),c.exec("COMMIT")}catch(a){throw c.exec("ROLLBACK"),a}return j(),!0}async function q(a,b){await o(a)&&((0,e.Lf)().prepare("UPDATE session_meta SET title = ?, updated = ? WHERE session_id = ?").run(b,Date.now(),a),j())}function r(a,b=Date.now()){(0,e.Lf)().prepare("UPDATE session_meta SET modified = ? WHERE session_id = ?").run(b,a),j()}function s(a,b){let c=b.lastReply.trim();if(!c)return void r(a,b.at);let d=c.length>4e3?c.slice(0,4e3):c;(0,e.Lf)().prepare("UPDATE session_meta SET last_reply = ?, modified = ? WHERE session_id = ?").run(d,b.at,a),j()}function t(a,b){let c=b.trim();c&&((0,e.Lf)().prepare("UPDATE session_meta SET first_message = ? WHERE session_id = ? AND (first_message IS NULL OR first_message = '')").run(c,a),j())}g=(i.then?(await i)():i)[0],d()}catch(a){d(a)}})},69453:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{O8:()=>t,mD:()=>n,resolveSessionIdByPath:()=>s,resolveSessionPath:()=>r});var e=c(75430),f=c(29021),g=c(79748),h=c(33873),i=c(90596);c(7535);var j=c(7561);c(88002);var k=c(9210),l=c(16525),m=a([e,k,l]);function n(){globalThis.__piSessionListGeneration=(globalThis.__piSessionListGeneration??0)+1}function o(){return globalThis.__piSessionPathCache||(globalThis.__piSessionPathCache=new Map),globalThis.__piSessionPathCache}function p(){return globalThis.__piPathToSessionIdCache||(globalThis.__piPathToSessionIdCache=new Map),globalThis.__piPathToSessionIdCache}async function q(a){let b,c=(0,h.join)((0,e.getAgentDir)(),"sessions");if(!a||!(0,f.existsSync)(c))return null;let d=`_${a}.jsonl`;try{b=await (0,g.readdir)(c,{withFileTypes:!0})}catch{return null}for(let e of b){let b;if(!e.isDirectory()&&!e.isSymbolicLink())continue;let i=(0,h.join)(c,e.name);try{b=await (0,g.readdir)(i)}catch{continue}let j=b.find(a=>a.endsWith(d));if(!j)continue;let k=(0,h.join)(i,j);try{if(function(a){let b=(0,f.openSync)(a,"r");try{let a=[],c=0,d=!1;for(;c<65536&&!d;){let e=Buffer.allocUnsafe(Math.min(4096,65536-c)),g=(0,f.readSync)(b,e,0,e.length,c);if(0===g)break;let h=e.subarray(0,g),i=h.indexOf(10);a.push(-1===i?h:h.subarray(0,i)),c+=g,d=-1!==i}if(!d&&c>=65536)return null;let e=Buffer.concat(a).toString("utf8").trimEnd();if(!e)return null;try{let a=JSON.parse(e);return"session"===a.type?a:null}catch{return null}}finally{(0,f.closeSync)(b)}}(k)?.id===a)return k}catch{}}return null}async function r(a){let b=o().get(a);if(b)return b;try{let b=(0,i.Lf)().prepare("SELECT path FROM session_meta WHERE session_id = ?").get(a);if(b?.path&&(0,f.existsSync)(b.path))return t(a,b.path),b.path}catch{}let c=await q(a);return c?(t(a,c),c):null}async function s(a){let b=(0,j.$)(a),c=p().get(b);if(c)return c;try{let c=(0,i.Lf)(),d=c.prepare("SELECT session_id, path FROM session_meta WHERE path = ?").get(a);if(d?.path)return t(d.session_id,d.path),d.session_id;let e=(0,h.basename)(a);if(e){for(let a of c.prepare("SELECT session_id, path FROM session_meta WHERE path LIKE ?").all(`%${e}`))if(a.path&&(0,j.$)(a.path)===b)return t(a.session_id,a.path),a.session_id}}catch{}}function t(a,b){let c=(0,h.normalize)(b),d=(0,j.$)(c),e=o(),f=p(),g=e.get(a),i=g?(0,j.$)(g):void 0,k=f.get(d),l=k?e.get(k):void 0;i&&i!==d&&f.get(i)===a&&f.delete(i),k&&k!==a&&l&&(0,j.$)(l)===d&&e.delete(k),e.set(a,c),f.set(d,a)}[e,k,l]=m.then?(await m)():m,d()}catch(a){d(a)}})},75384:(a,b,c)=>{c.d(b,{v$:()=>f}),c(55511);var d=c(90596);let e="__running__";function f(a){if(a===e)return{id:e,projectKey:"",name:"running",isSystem:!0,taskId:null,sortOrder:0,created:0,updated:0};let b=(0,d.Lf)().prepare("SELECT id, project_key AS projectKey, name, is_system AS isSystem, task_id AS taskId, sort_order AS sortOrder, created, updated FROM boards WHERE id = ?").get(a);return b?{id:b.id,projectKey:b.projectKey,name:b.name,isSystem:1===b.isSystem,taskId:b.taskId,sortOrder:b.sortOrder,created:b.created,updated:b.updated}:void 0}c(48817)},85158:(a,b,c)=>{c.d(b,{U4:()=>j,dp:()=>f,oT:()=>k,zZ:()=>g});var d=c(55511),e=c(90596);let f=3e4;function g(){return globalThis.__piWebInstanceId||(globalThis.__piWebInstanceId=(0,d.randomUUID)()),globalThis.__piWebInstanceId}function h(){return Date.now()}function i(){return(0,e.Lf)().prepare("SELECT id, instance_id, registered_at, heartbeat FROM scheduler_leader WHERE id = 1").get()}function j(a){let b=(0,e.Lf)(),c=h(),d=i();return d?d.instance_id===a?Number(b.prepare("UPDATE scheduler_leader SET heartbeat = ? WHERE id = 1 AND instance_id = ?").run(c,a).changes)>0:!(h()-d.heartbeat<f)&&Number(b.prepare("UPDATE scheduler_leader SET instance_id = ?, registered_at = ?, heartbeat = ? WHERE id = 1 AND instance_id = ? AND heartbeat = ?").run(a,c,c,d.instance_id,d.heartbeat).changes)>0:Number(b.prepare("INSERT INTO scheduler_leader (id, instance_id, registered_at, heartbeat) VALUES (1, ?, ?, ?)").run(a,c,c).changes)>0}function k(){let a=i();return!!a&&a.instance_id===g()&&h()-a.heartbeat<f}}};
@@ -1,3 +1,3 @@
1
- "use strict";exports.id=2524,exports.ids=[2524],exports.modules={42524:(a,b,c)=>{c.d(b,{startBoardReconcileScheduler:()=>h});var d=c(90596),e=c(85158),f=c(47128);async function g(){if(!(0,e.oT)())return;let a=(0,d.Lf)().prepare(`SELECT id FROM boards WHERE task_id IS NOT NULL
1
+ "use strict";exports.id=2524,exports.ids=[2524],exports.modules={42524:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{startBoardReconcileScheduler:()=>j});var e=c(90596),f=c(85158),g=c(47128),h=a([g]);async function i(){if(!(0,f.oT)())return;let a=(0,e.Lf)().prepare(`SELECT id FROM boards WHERE task_id IS NOT NULL
2
2
  UNION
3
- SELECT DISTINCT board_id FROM task_cards`).all().map(a=>a.id);await Promise.all(a.map(a=>(0,f.dA)(a).catch(b=>{console.warn(`[board-reconcile] ${a} 异常:`,b?.message??b)})))}function h(){if(globalThis.__piBoardReconcileScheduler)return;let a=!1,b=setInterval(()=>{a||(a=!0,g().catch(a=>console.error("[board-reconcile] tick error:",a?.message??a)).finally(()=>{a=!1}))},1e4);b.unref?.(),globalThis.__piBoardReconcileScheduler={timer:b,startedAt:Date.now()},console.log("[pi-web] board reconcile scheduler started (interval 10000ms)")}}};
3
+ SELECT DISTINCT board_id FROM task_cards`).all().map(a=>a.id);await Promise.all(a.map(a=>(0,g.dA)(a).catch(b=>{console.warn(`[board-reconcile] ${a} 异常:`,b?.message??b)})))}function j(){if(globalThis.__piBoardReconcileScheduler)return;let a=!1,b=setInterval(()=>{a||(a=!0,i().catch(a=>console.error("[board-reconcile] tick error:",a?.message??a)).finally(()=>{a=!1}))},1e4);b.unref?.(),globalThis.__piBoardReconcileScheduler={timer:b,startedAt:Date.now()},console.log("[pi-web] board reconcile scheduler started (interval 10000ms)")}g=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})}};