@jetcrab/pi-desk 1.1.28-dev → 1.1.29-dev

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 (337) hide show
  1. package/package.json +1 -1
  2. package/src/app/api/work-sessions/search/route.ts +1 -0
  3. package/src/app/project-preview/page.tsx +1 -3
  4. package/src/client/l2_biz/project-preview/hooks/l2-use-project-preview.ts +1 -14
  5. package/src/client/l2_biz/project-preview/l2-project-preview-dialog.tsx +0 -1
  6. package/src/client/l2_biz/project-preview/l2-project-preview-page.tsx +0 -1
  7. package/src/client/l2_biz/project-preview/l2-project-preview.tsx +1 -4
  8. package/src/client/l2_biz/project-preview/views/l2-project-branch-select.tsx +42 -3
  9. package/src/client/l2_biz/workbench/git-workspace/l2-git-workspace-runtime.ts +11 -10
  10. package/src/client/l2_biz/workbench/hooks/l2-work-session-search.ts +52 -0
  11. package/src/client/l2_biz/workbench/hooks/l2-workbench-branch-picker.ts +42 -7
  12. package/src/client/l2_biz/workbench/hooks/l2-workbench-session-history.ts +143 -131
  13. package/src/client/l2_biz/workbench/hooks/l2-workbench-session-search.ts +97 -0
  14. package/src/client/l2_biz/workbench/l2-work-session-columns.tsx +8 -0
  15. package/src/client/l2_biz/workbench/l2-work-session-sidebar.tsx +129 -10
  16. package/src/client/l2_biz/workbench/l2-workbench-biz.ts +20 -2
  17. package/src/client/l2_biz/workbench/l2-workbench-branch-filter-preferences.ts +34 -0
  18. package/src/client/l2_biz/workbench/l2-workbench-branch-picker.tsx +34 -71
  19. package/src/client/l2_biz/workbench/l2-workbench-chat-input-runtime.ts +38 -1
  20. package/src/client/l2_biz/workbench/l2-workbench-chat-view.tsx +11 -1
  21. package/src/client/l2_biz/workbench/l2-workbench-picker-dialog.tsx +55 -215
  22. package/src/client/l2_biz/workbench/l2-workbench.tsx +20 -38
  23. package/src/client/l2_biz/workbench/views/l2-workbench-session-search.tsx +123 -0
  24. package/src/client/l3_modules/conversation/l3-conversation-messages.tsx +43 -4
  25. package/src/client/l3_modules/project-files/l3-markdown-preview.module.css +1 -1
  26. package/src/client/l3_modules/project-files/l3-project-document-git.ts +13 -29
  27. package/src/client/l3_modules/project-files/l3-project-document-view.tsx +1 -4
  28. package/src/client/l3_modules/project-files/l3-project-file-browser.module.css +14 -18
  29. package/src/client/l3_modules/project-files/l3-project-file-browser.tsx +52 -95
  30. package/src/client/l3_modules/project-files/l3-project-file-runtime.ts +52 -21
  31. package/src/client/l3_modules/project-files/l3-project-file-tabs.tsx +41 -62
  32. package/src/client/l3_modules/project-files/l3-project-git-runtime.ts +5 -4
  33. package/src/client/l3_modules/project-files/l3-use-project-refresh.ts +36 -0
  34. package/src/client/l3_modules/project-files/views/l3-project-search-results.tsx +2 -2
  35. package/src/client/l3_modules/project-files/views/l3-project-tree-folder.tsx +86 -0
  36. package/src/client/l4_foundation/ui/file-icons/README.md +1 -1
  37. package/src/client/l4_foundation/ui/file-icons/l4-file-icon.tsx +49 -2
  38. package/src/common/l2_biz/pi-session/l2-pi-session-contract.ts +11 -24
  39. package/src/common/l2_biz/project-preview/l2-project-preview-navigation.ts +5 -12
  40. package/src/common/l2_biz/work-session/l2-work-session-search-contract.ts +26 -0
  41. package/src/common/l2_biz/work-session/l2-work-session-tree-contract.ts +9 -1
  42. package/src/common/l2_biz/workbench/l2-workbench-locale-messages.ts +12 -0
  43. package/src/common/l2_biz/workbench/l2-workbench-picker-messages.ts +6 -2
  44. package/src/common/l3_modules/conversation/l3-conversation-locale-messages.ts +2 -0
  45. package/src/common/l3_modules/pi/l3-pi-session-search-contract.ts +26 -0
  46. package/src/common/l4_foundation/locale/l4-host-error-messages.ts +2 -0
  47. package/src/server/l1_entry/api/l1-work-session-branch-route.ts +21 -15
  48. package/src/server/l1_entry/api/l1-work-session-search-route.ts +38 -0
  49. package/src/server/l2_biz/work-session/l2-work-session-chat-runtime.ts +4 -2
  50. package/src/server/l2_biz/work-session/l2-work-session-manage.ts +46 -10
  51. package/src/server/l3_modules/work-session/l3-work-session.ts +11 -6
  52. package/src/server/l4_foundation/pi/l4-pi-chat-worker.ts +35 -2
  53. package/src/server/l4_foundation/pi/l4-pi-session-history-catalog.ts +62 -113
  54. package/src/server/l4_foundation/pi/l4-pi-session-search.ts +166 -0
  55. package/src/server/l4_foundation/pi/l4-pi-work-session-runtime.ts +66 -5
  56. package/temp/build/pi-desk/release/.next/BUILD_ID +1 -1
  57. package/temp/build/pi-desk/release/.next/app-path-routes-manifest.json +1 -0
  58. package/temp/build/pi-desk/release/.next/build-manifest.json +2 -2
  59. package/temp/build/pi-desk/release/.next/required-server-files.js +2 -2
  60. package/temp/build/pi-desk/release/.next/required-server-files.json +2 -2
  61. package/temp/build/pi-desk/release/.next/routes-manifest.json +6 -0
  62. package/temp/build/pi-desk/release/.next/server/app/_global-error/page.js +1 -1
  63. package/temp/build/pi-desk/release/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  64. package/temp/build/pi-desk/release/.next/server/app/_global-error.html +1 -1
  65. package/temp/build/pi-desk/release/.next/server/app/_global-error.rsc +1 -1
  66. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  67. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  68. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  69. package/temp/build/pi-desk/release/.next/server/app/_not-found/page.js +1 -1
  70. package/temp/build/pi-desk/release/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  71. package/temp/build/pi-desk/release/.next/server/app/api/auth/login/route.js +2 -2
  72. package/temp/build/pi-desk/release/.next/server/app/api/auth/logout/route.js +1 -1
  73. package/temp/build/pi-desk/release/.next/server/app/api/auth-settings/get/route.js +1 -1
  74. package/temp/build/pi-desk/release/.next/server/app/api/auth-settings/replace/route.js +1 -1
  75. package/temp/build/pi-desk/release/.next/server/app/api/capability-modes/get/route.js +1 -1
  76. package/temp/build/pi-desk/release/.next/server/app/api/capability-modes/replace/route.js +1 -1
  77. package/temp/build/pi-desk/release/.next/server/app/api/chat/context/get/route.js +1 -1
  78. package/temp/build/pi-desk/release/.next/server/app/api/chat/images/get/route.js +1 -1
  79. package/temp/build/pi-desk/release/.next/server/app/api/chat/messages/get/route.js +1 -1
  80. package/temp/build/pi-desk/release/.next/server/app/api/health/route.js +1 -1
  81. package/temp/build/pi-desk/release/.next/server/app/api/mcp-check/get/route.js +1 -1
  82. package/temp/build/pi-desk/release/.next/server/app/api/mcp-settings/del/route.js +1 -1
  83. package/temp/build/pi-desk/release/.next/server/app/api/mcp-settings/get/route.js +1 -1
  84. package/temp/build/pi-desk/release/.next/server/app/api/mcp-settings/replace/route.js +1 -1
  85. package/temp/build/pi-desk/release/.next/server/app/api/model-catalog/list/route.js +1 -1
  86. package/temp/build/pi-desk/release/.next/server/app/api/model-settings/get/route.js +1 -1
  87. package/temp/build/pi-desk/release/.next/server/app/api/model-settings/preview/route.js +1 -1
  88. package/temp/build/pi-desk/release/.next/server/app/api/model-settings/replace/route.js +1 -1
  89. package/temp/build/pi-desk/release/.next/server/app/api/pi/directories/list/route.js +1 -1
  90. package/temp/build/pi-desk/release/.next/server/app/api/pi/directory-entries/list/route.js +1 -1
  91. package/temp/build/pi-desk/release/.next/server/app/api/pi/directory-ignores/list/route.js +1 -1
  92. package/temp/build/pi-desk/release/.next/server/app/api/pi/directory-ignores/replace/route.js +1 -1
  93. package/temp/build/pi-desk/release/.next/server/app/api/pi/models/list/route.js +1 -1
  94. package/temp/build/pi-desk/release/.next/server/app/api/pi/session-user-messages/list/route.js +1 -1
  95. package/temp/build/pi-desk/release/.next/server/app/api/pi/sessions/list/route.js +1 -1
  96. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/get/route.js +1 -1
  97. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/search/route.js +1 -1
  98. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/settings-get/route.js +1 -1
  99. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/settings-replace/route.js +1 -1
  100. package/temp/build/pi-desk/release/.next/server/app/api/plugins/add/route.js +1 -1
  101. package/temp/build/pi-desk/release/.next/server/app/api/plugins/apply/route.js +1 -1
  102. package/temp/build/pi-desk/release/.next/server/app/api/plugins/batch/route.js +1 -1
  103. package/temp/build/pi-desk/release/.next/server/app/api/plugins/browser-resources/[resourceGroup]/[...resourcePath]/route.js +1 -1
  104. package/temp/build/pi-desk/release/.next/server/app/api/plugins/del/route.js +1 -1
  105. package/temp/build/pi-desk/release/.next/server/app/api/plugins/enabled-set/route.js +1 -1
  106. package/temp/build/pi-desk/release/.next/server/app/api/plugins/get/route.js +1 -1
  107. package/temp/build/pi-desk/release/.next/server/app/api/plugins/host-runtime/[runtimeVersion]/[...resourcePath]/route.js +1 -1
  108. package/temp/build/pi-desk/release/.next/server/app/api/plugins/list/route.js +1 -1
  109. package/temp/build/pi-desk/release/.next/server/app/api/plugins/reload/route.js +1 -1
  110. package/temp/build/pi-desk/release/.next/server/app/api/plugins/update/route.js +1 -1
  111. package/temp/build/pi-desk/release/.next/server/app/api/project-files/get/route.js +2 -2
  112. package/temp/build/pi-desk/release/.next/server/app/api/project-files/list/route.js +1 -1
  113. package/temp/build/pi-desk/release/.next/server/app/api/project-files/reveal/route.js +1 -1
  114. package/temp/build/pi-desk/release/.next/server/app/api/project-files/search/route.js +1 -1
  115. package/temp/build/pi-desk/release/.next/server/app/api/project-git/get/route.js +2 -2
  116. package/temp/build/pi-desk/release/.next/server/app/api/project-git-branches/list/route.js +2 -2
  117. package/temp/build/pi-desk/release/.next/server/app/api/project-git-changes/list/route.js +1 -1
  118. package/temp/build/pi-desk/release/.next/server/app/api/project-git-diff/get/route.js +2 -2
  119. package/temp/build/pi-desk/release/.next/server/app/api/project-git-heads/get/route.js +1 -1
  120. package/temp/build/pi-desk/release/.next/server/app/api/project-git-log/list/route.js +2 -2
  121. package/temp/build/pi-desk/release/.next/server/app/api/project-model-default/get/route.js +1 -1
  122. package/temp/build/pi-desk/release/.next/server/app/api/project-model-default/replace/route.js +1 -1
  123. package/temp/build/pi-desk/release/.next/server/app/api/skill-files/get/route.js +1 -1
  124. package/temp/build/pi-desk/release/.next/server/app/api/skill-files/list/route.js +1 -1
  125. package/temp/build/pi-desk/release/.next/server/app/api/skill-files/replace/route.js +1 -1
  126. package/temp/build/pi-desk/release/.next/server/app/api/skills/list/route.js +1 -1
  127. package/temp/build/pi-desk/release/.next/server/app/api/task-center/images/get/route.js +1 -1
  128. package/temp/build/pi-desk/release/.next/server/app/api/task-center/messages/get/route.js +1 -1
  129. package/temp/build/pi-desk/release/.next/server/app/api/work-session-git-branch/add/route.js +1 -1
  130. package/temp/build/pi-desk/release/.next/server/app/api/work-session-git-branch/replace/route.js +1 -1
  131. package/temp/build/pi-desk/release/.next/server/app/api/work-session-tree/get/route.js +1 -1
  132. package/temp/build/pi-desk/release/.next/server/app/api/work-session-tree-entry/get/route.js +1 -1
  133. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/add/route.js +1 -1
  134. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/branch/route.js +1 -1
  135. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/del/route.js +1 -1
  136. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/rename/route.js +1 -1
  137. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/replace/route.js +1 -1
  138. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/search/route.js +1 -0
  139. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/search/route_client-reference-manifest.js +1 -0
  140. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/sort/route.js +1 -1
  141. package/temp/build/pi-desk/release/.next/server/app/favicon.ico/route.js +1 -1
  142. package/temp/build/pi-desk/release/.next/server/app/login/page.js +1 -1
  143. package/temp/build/pi-desk/release/.next/server/app/login/page_client-reference-manifest.js +1 -1
  144. package/temp/build/pi-desk/release/.next/server/app/page.js +138 -138
  145. package/temp/build/pi-desk/release/.next/server/app/page_client-reference-manifest.js +1 -1
  146. package/temp/build/pi-desk/release/.next/server/app/project-preview/page.js +1 -1
  147. package/temp/build/pi-desk/release/.next/server/app/project-preview/page_client-reference-manifest.js +1 -1
  148. package/temp/build/pi-desk/release/.next/server/app-paths-manifest.json +1 -0
  149. package/temp/build/pi-desk/release/.next/server/chunks/23054.js +2 -2
  150. package/temp/build/pi-desk/release/.next/server/chunks/25406.js +8 -8
  151. package/temp/build/pi-desk/release/.next/server/chunks/27344.js +3 -3
  152. package/temp/build/pi-desk/release/.next/server/chunks/3108.js +3 -3
  153. package/temp/build/pi-desk/release/.next/server/chunks/35985.js +2 -2
  154. package/temp/build/pi-desk/release/.next/server/chunks/41856.js +1 -0
  155. package/temp/build/pi-desk/release/.next/server/chunks/62900.js +235 -0
  156. package/temp/build/pi-desk/release/.next/server/chunks/6917.js +1 -1
  157. package/temp/build/pi-desk/release/.next/server/chunks/81363.js +1 -1
  158. package/temp/build/pi-desk/release/.next/server/chunks/81912.js +3 -0
  159. package/temp/build/pi-desk/release/.next/server/chunks/92386.js +2 -2
  160. package/temp/build/pi-desk/release/.next/server/middleware-build-manifest.js +1 -1
  161. package/temp/build/pi-desk/release/.next/server/pages/500.html +1 -1
  162. package/temp/build/pi-desk/release/.next/static/Yyfg-r17aYmEzlYYlIwDo/_buildManifest.js +1 -0
  163. package/temp/build/pi-desk/release/.next/static/chunks/10043-9d6c3735418ccaf9.js +238 -0
  164. package/temp/build/pi-desk/release/.next/static/chunks/11937-ac71fb0f7cef482a.js +1 -0
  165. package/temp/build/pi-desk/release/.next/static/chunks/30669-ffa76d39e0e25194.js +1 -0
  166. package/temp/build/pi-desk/release/.next/static/chunks/36643-f60e98278740073c.js +3 -0
  167. package/temp/build/pi-desk/release/.next/static/chunks/65232-a8571f78020eede2.js +15 -0
  168. package/temp/build/pi-desk/release/.next/static/chunks/{51474-8dc714cb76b2e60a.js → 65350-23bb961d87addf14.js} +3 -3
  169. package/temp/build/pi-desk/release/.next/static/chunks/app/_global-error/page-295cb63da5f7262f.js +1 -0
  170. package/temp/build/pi-desk/release/.next/static/chunks/app/_not-found/page-295cb63da5f7262f.js +1 -0
  171. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth/login/route-295cb63da5f7262f.js +1 -0
  172. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth/logout/route-295cb63da5f7262f.js +1 -0
  173. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth-settings/get/route-295cb63da5f7262f.js +1 -0
  174. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth-settings/replace/route-295cb63da5f7262f.js +1 -0
  175. package/temp/build/pi-desk/release/.next/static/chunks/app/api/capability-modes/get/route-295cb63da5f7262f.js +1 -0
  176. package/temp/build/pi-desk/release/.next/static/chunks/app/api/capability-modes/replace/route-295cb63da5f7262f.js +1 -0
  177. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/context/get/route-295cb63da5f7262f.js +1 -0
  178. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/images/get/route-295cb63da5f7262f.js +1 -0
  179. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/messages/get/route-295cb63da5f7262f.js +1 -0
  180. package/temp/build/pi-desk/release/.next/static/chunks/app/api/health/route-295cb63da5f7262f.js +1 -0
  181. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-check/get/route-295cb63da5f7262f.js +1 -0
  182. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/del/route-295cb63da5f7262f.js +1 -0
  183. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/get/route-295cb63da5f7262f.js +1 -0
  184. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/replace/route-295cb63da5f7262f.js +1 -0
  185. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-catalog/list/route-295cb63da5f7262f.js +1 -0
  186. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/get/route-295cb63da5f7262f.js +1 -0
  187. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/preview/route-295cb63da5f7262f.js +1 -0
  188. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/replace/route-295cb63da5f7262f.js +1 -0
  189. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directories/list/route-295cb63da5f7262f.js +1 -0
  190. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-entries/list/route-295cb63da5f7262f.js +1 -0
  191. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-ignores/list/route-295cb63da5f7262f.js +1 -0
  192. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-ignores/replace/route-295cb63da5f7262f.js +1 -0
  193. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/models/list/route-295cb63da5f7262f.js +1 -0
  194. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/session-user-messages/list/route-295cb63da5f7262f.js +1 -0
  195. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/sessions/list/route-295cb63da5f7262f.js +1 -0
  196. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/get/route-295cb63da5f7262f.js +1 -0
  197. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/search/route-295cb63da5f7262f.js +1 -0
  198. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/settings-get/route-295cb63da5f7262f.js +1 -0
  199. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/settings-replace/route-295cb63da5f7262f.js +1 -0
  200. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/add/route-295cb63da5f7262f.js +1 -0
  201. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/apply/route-295cb63da5f7262f.js +1 -0
  202. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/batch/route-295cb63da5f7262f.js +1 -0
  203. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/browser-resources/[resourceGroup]/[...resourcePath]/route-295cb63da5f7262f.js +1 -0
  204. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/del/route-295cb63da5f7262f.js +1 -0
  205. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/enabled-set/route-295cb63da5f7262f.js +1 -0
  206. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/get/route-295cb63da5f7262f.js +1 -0
  207. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/host-runtime/[runtimeVersion]/[...resourcePath]/route-295cb63da5f7262f.js +1 -0
  208. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/list/route-295cb63da5f7262f.js +1 -0
  209. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/reload/route-295cb63da5f7262f.js +1 -0
  210. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/update/route-295cb63da5f7262f.js +1 -0
  211. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/get/route-295cb63da5f7262f.js +1 -0
  212. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/list/route-295cb63da5f7262f.js +1 -0
  213. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/reveal/route-295cb63da5f7262f.js +1 -0
  214. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/search/route-295cb63da5f7262f.js +1 -0
  215. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git/get/route-295cb63da5f7262f.js +1 -0
  216. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-branches/list/route-295cb63da5f7262f.js +1 -0
  217. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-changes/list/route-295cb63da5f7262f.js +1 -0
  218. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-diff/get/route-295cb63da5f7262f.js +1 -0
  219. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-heads/get/route-295cb63da5f7262f.js +1 -0
  220. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-log/list/route-295cb63da5f7262f.js +1 -0
  221. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-model-default/get/route-295cb63da5f7262f.js +1 -0
  222. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-model-default/replace/route-295cb63da5f7262f.js +1 -0
  223. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/get/route-295cb63da5f7262f.js +1 -0
  224. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/list/route-295cb63da5f7262f.js +1 -0
  225. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/replace/route-295cb63da5f7262f.js +1 -0
  226. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skills/list/route-295cb63da5f7262f.js +1 -0
  227. package/temp/build/pi-desk/release/.next/static/chunks/app/api/task-center/images/get/route-295cb63da5f7262f.js +1 -0
  228. package/temp/build/pi-desk/release/.next/static/chunks/app/api/task-center/messages/get/route-295cb63da5f7262f.js +1 -0
  229. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-git-branch/add/route-295cb63da5f7262f.js +1 -0
  230. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-git-branch/replace/route-295cb63da5f7262f.js +1 -0
  231. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-tree/get/route-295cb63da5f7262f.js +1 -0
  232. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-tree-entry/get/route-295cb63da5f7262f.js +1 -0
  233. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/add/route-295cb63da5f7262f.js +1 -0
  234. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/branch/route-295cb63da5f7262f.js +1 -0
  235. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/del/route-295cb63da5f7262f.js +1 -0
  236. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/rename/route-295cb63da5f7262f.js +1 -0
  237. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/replace/route-295cb63da5f7262f.js +1 -0
  238. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/search/route-295cb63da5f7262f.js +1 -0
  239. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/sort/route-295cb63da5f7262f.js +1 -0
  240. package/temp/build/pi-desk/release/.next/static/chunks/app/layout-2c6a573d3004516e.js +1 -0
  241. package/temp/build/pi-desk/release/.next/static/chunks/app/login/{page-0d3d4827802108e5.js → page-0df9df996aa68060.js} +1 -1
  242. package/temp/build/pi-desk/release/.next/static/chunks/app/page-f78be007d97f0d95.js +158 -0
  243. package/temp/build/pi-desk/release/.next/static/chunks/app/project-preview/{page-038b6c14e03ed878.js → page-e1dbfcfc0f333e01.js} +1 -1
  244. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/app-error-295cb63da5f7262f.js +1 -0
  245. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/forbidden-295cb63da5f7262f.js +1 -0
  246. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/unauthorized-295cb63da5f7262f.js +1 -0
  247. package/temp/build/pi-desk/release/.next/static/css/{1e780a4936aa6ba3.css → 2bb393927ba8f71d.css} +1 -1
  248. package/temp/build/pi-desk/release/.next/static/css/3a07dcc86ffdf88c.css +1 -0
  249. package/temp/build/pi-desk/release/.next/static/css/a677e7fbf6e2173e.css +1 -0
  250. package/temp/build/pi-desk/release/.next/trace-build +1 -1
  251. package/temp/build/pi-desk/release/.next/server/chunks/35348.js +0 -3
  252. package/temp/build/pi-desk/release/.next/server/chunks/56830.js +0 -235
  253. package/temp/build/pi-desk/release/.next/server/chunks/80780.js +0 -1
  254. package/temp/build/pi-desk/release/.next/static/bj2dB_Z10YB_CqK_VNhDx/_buildManifest.js +0 -1
  255. package/temp/build/pi-desk/release/.next/static/chunks/11937-1d0a9822f2c7995b.js +0 -1
  256. package/temp/build/pi-desk/release/.next/static/chunks/14197-3d3ddd426ac06c9c.js +0 -3
  257. package/temp/build/pi-desk/release/.next/static/chunks/37313-d5970e2d0c270d22.js +0 -238
  258. package/temp/build/pi-desk/release/.next/static/chunks/65232-ef4e5a4174f62faf.js +0 -15
  259. package/temp/build/pi-desk/release/.next/static/chunks/79267-7d21d7cdbd7cfca1.js +0 -1
  260. package/temp/build/pi-desk/release/.next/static/chunks/app/_global-error/page-9969fe0baa238786.js +0 -1
  261. package/temp/build/pi-desk/release/.next/static/chunks/app/_not-found/page-9969fe0baa238786.js +0 -1
  262. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth/login/route-9969fe0baa238786.js +0 -1
  263. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth/logout/route-9969fe0baa238786.js +0 -1
  264. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth-settings/get/route-9969fe0baa238786.js +0 -1
  265. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth-settings/replace/route-9969fe0baa238786.js +0 -1
  266. package/temp/build/pi-desk/release/.next/static/chunks/app/api/capability-modes/get/route-9969fe0baa238786.js +0 -1
  267. package/temp/build/pi-desk/release/.next/static/chunks/app/api/capability-modes/replace/route-9969fe0baa238786.js +0 -1
  268. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/context/get/route-9969fe0baa238786.js +0 -1
  269. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/images/get/route-9969fe0baa238786.js +0 -1
  270. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/messages/get/route-9969fe0baa238786.js +0 -1
  271. package/temp/build/pi-desk/release/.next/static/chunks/app/api/health/route-9969fe0baa238786.js +0 -1
  272. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-check/get/route-9969fe0baa238786.js +0 -1
  273. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/del/route-9969fe0baa238786.js +0 -1
  274. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/get/route-9969fe0baa238786.js +0 -1
  275. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/replace/route-9969fe0baa238786.js +0 -1
  276. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-catalog/list/route-9969fe0baa238786.js +0 -1
  277. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/get/route-9969fe0baa238786.js +0 -1
  278. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/preview/route-9969fe0baa238786.js +0 -1
  279. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/replace/route-9969fe0baa238786.js +0 -1
  280. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directories/list/route-9969fe0baa238786.js +0 -1
  281. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-entries/list/route-9969fe0baa238786.js +0 -1
  282. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-ignores/list/route-9969fe0baa238786.js +0 -1
  283. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-ignores/replace/route-9969fe0baa238786.js +0 -1
  284. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/models/list/route-9969fe0baa238786.js +0 -1
  285. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/session-user-messages/list/route-9969fe0baa238786.js +0 -1
  286. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/sessions/list/route-9969fe0baa238786.js +0 -1
  287. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/get/route-9969fe0baa238786.js +0 -1
  288. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/search/route-9969fe0baa238786.js +0 -1
  289. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/settings-get/route-9969fe0baa238786.js +0 -1
  290. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/settings-replace/route-9969fe0baa238786.js +0 -1
  291. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/add/route-9969fe0baa238786.js +0 -1
  292. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/apply/route-9969fe0baa238786.js +0 -1
  293. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/batch/route-9969fe0baa238786.js +0 -1
  294. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/browser-resources/[resourceGroup]/[...resourcePath]/route-9969fe0baa238786.js +0 -1
  295. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/del/route-9969fe0baa238786.js +0 -1
  296. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/enabled-set/route-9969fe0baa238786.js +0 -1
  297. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/get/route-9969fe0baa238786.js +0 -1
  298. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/host-runtime/[runtimeVersion]/[...resourcePath]/route-9969fe0baa238786.js +0 -1
  299. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/list/route-9969fe0baa238786.js +0 -1
  300. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/reload/route-9969fe0baa238786.js +0 -1
  301. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/update/route-9969fe0baa238786.js +0 -1
  302. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/get/route-9969fe0baa238786.js +0 -1
  303. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/list/route-9969fe0baa238786.js +0 -1
  304. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/reveal/route-9969fe0baa238786.js +0 -1
  305. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/search/route-9969fe0baa238786.js +0 -1
  306. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git/get/route-9969fe0baa238786.js +0 -1
  307. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-branches/list/route-9969fe0baa238786.js +0 -1
  308. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-changes/list/route-9969fe0baa238786.js +0 -1
  309. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-diff/get/route-9969fe0baa238786.js +0 -1
  310. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-heads/get/route-9969fe0baa238786.js +0 -1
  311. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-log/list/route-9969fe0baa238786.js +0 -1
  312. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-model-default/get/route-9969fe0baa238786.js +0 -1
  313. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-model-default/replace/route-9969fe0baa238786.js +0 -1
  314. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/get/route-9969fe0baa238786.js +0 -1
  315. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/list/route-9969fe0baa238786.js +0 -1
  316. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/replace/route-9969fe0baa238786.js +0 -1
  317. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skills/list/route-9969fe0baa238786.js +0 -1
  318. package/temp/build/pi-desk/release/.next/static/chunks/app/api/task-center/images/get/route-9969fe0baa238786.js +0 -1
  319. package/temp/build/pi-desk/release/.next/static/chunks/app/api/task-center/messages/get/route-9969fe0baa238786.js +0 -1
  320. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-git-branch/add/route-9969fe0baa238786.js +0 -1
  321. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-git-branch/replace/route-9969fe0baa238786.js +0 -1
  322. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-tree/get/route-9969fe0baa238786.js +0 -1
  323. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-tree-entry/get/route-9969fe0baa238786.js +0 -1
  324. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/add/route-9969fe0baa238786.js +0 -1
  325. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/branch/route-9969fe0baa238786.js +0 -1
  326. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/del/route-9969fe0baa238786.js +0 -1
  327. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/rename/route-9969fe0baa238786.js +0 -1
  328. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/replace/route-9969fe0baa238786.js +0 -1
  329. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/sort/route-9969fe0baa238786.js +0 -1
  330. package/temp/build/pi-desk/release/.next/static/chunks/app/layout-20718f1503910291.js +0 -1
  331. package/temp/build/pi-desk/release/.next/static/chunks/app/page-ce2ebf7d8ea7a330.js +0 -158
  332. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/app-error-9969fe0baa238786.js +0 -1
  333. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/forbidden-9969fe0baa238786.js +0 -1
  334. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/unauthorized-9969fe0baa238786.js +0 -1
  335. package/temp/build/pi-desk/release/.next/static/css/2c3b0c0ff1f49c68.css +0 -1
  336. package/temp/build/pi-desk/release/.next/static/css/c43b04c244a64fb4.css +0 -1
  337. /package/temp/build/pi-desk/release/.next/static/{bj2dB_Z10YB_CqK_VNhDx → Yyfg-r17aYmEzlYYlIwDo}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"14405":{"*":{"id":"27297","name":"*","chunks":[],"async":false}},"20094":{"*":{"id":"71152","name":"*","chunks":[],"async":false}},"21358":{"*":{"id":"41051","name":"*","chunks":[],"async":false}},"22432":{"*":{"id":"1480","name":"*","chunks":[],"async":false}},"23367":{"*":{"id":"49453","name":"*","chunks":[],"async":false}},"33948":{"*":{"id":"79460","name":"*","chunks":[],"async":false}},"44478":{"*":{"id":"97016","name":"*","chunks":[],"async":false}},"49230":{"*":{"id":"99920","name":"*","chunks":[],"async":false}},"66999":{"*":{"id":"4527","name":"*","chunks":[],"async":false}},"69173":{"*":{"id":"7005","name":"*","chunks":[],"async":false}},"71713":{"*":{"id":"21147","name":"*","chunks":[],"async":false}},"84845":{"*":{"id":"43305","name":"*","chunks":[],"async":false}},"88219":{"*":{"id":"23579","name":"*","chunks":[],"async":false}},"90184":{"*":{"id":"88476","name":"*","chunks":[],"async":false}},"97457":{"*":{"id":"28317","name":"*","chunks":[],"async":false}},"97876":{"*":{"id":"58044","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/client-page.js":{"id":69173,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/client-page.js":{"id":69173,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/client-segment.js":{"id":23367,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/client-segment.js":{"id":23367,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":33948,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":33948,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/layout-router.js":{"id":90184,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/layout-router.js":{"id":90184,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/render-from-template-context.js":{"id":44478,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":44478,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/lib/framework/boundary-components.js":{"id":14405,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":14405,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":22432,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":22432,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/pages/l1-error-page.tsx":{"id":66999,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","22092","static/chunks/22092-6d1bfbefa825ec03.js","24345","static/chunks/app/not-found-720cdf6a606b821a.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/script.js":{"id":97876,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-1d0a9822f2c7995b.js","7177","static/chunks/app/layout-20718f1503910291.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/script.js":{"id":97876,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-1d0a9822f2c7995b.js","7177","static/chunks/app/layout-20718f1503910291.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/providers/l1-app-providers.tsx":{"id":88219,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-1d0a9822f2c7995b.js","7177","static/chunks/app/layout-20718f1503910291.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l4_foundation/styles/l4-globals.css":{"id":84178,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-1d0a9822f2c7995b.js","7177","static/chunks/app/layout-20718f1503910291.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/app/error.tsx":{"id":84845,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","22092","static/chunks/22092-6d1bfbefa825ec03.js","18039","static/chunks/app/error-216b14b5da089ed3.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/app/global-error.tsx":{"id":71713,"name":"*","chunks":["34219","static/chunks/app/global-error-6f5fc4928fd1966c.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/pages/l1-project-preview-page.tsx":{"id":97457,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l2_biz/auth/l2-login.tsx":{"id":21358,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/pages/l1-home-page.tsx":{"id":20094,"name":"*","chunks":["85959","static/chunks/287c71e3-32bb21af66f1f035.js","26717","static/chunks/6c0b963a-c492581a5b6359f7.js","94287","static/chunks/cdfede43-b007dd93b1fdb122.js","57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","79267","static/chunks/79267-7d21d7cdbd7cfca1.js","46270","static/chunks/46270-3e42514685626190.js","37313","static/chunks/37313-d5970e2d0c270d22.js","14197","static/chunks/14197-3d3ddd426ac06c9c.js","51474","static/chunks/51474-8dc714cb76b2e60a.js","15302","static/chunks/15302-6e070e13fa65c863.js","65232","static/chunks/65232-ef4e5a4174f62faf.js","11937","static/chunks/11937-1d0a9822f2c7995b.js","58974","static/chunks/app/page-ce2ebf7d8ea7a330.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/providers/l1-app-runtime-provider.tsx":{"id":49230,"name":"*","chunks":["85959","static/chunks/287c71e3-32bb21af66f1f035.js","26717","static/chunks/6c0b963a-c492581a5b6359f7.js","94287","static/chunks/cdfede43-b007dd93b1fdb122.js","57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","79267","static/chunks/79267-7d21d7cdbd7cfca1.js","46270","static/chunks/46270-3e42514685626190.js","37313","static/chunks/37313-d5970e2d0c270d22.js","14197","static/chunks/14197-3d3ddd426ac06c9c.js","51474","static/chunks/51474-8dc714cb76b2e60a.js","15302","static/chunks/15302-6e070e13fa65c863.js","65232","static/chunks/65232-ef4e5a4174f62faf.js","11937","static/chunks/11937-1d0a9822f2c7995b.js","58974","static/chunks/app/page-ce2ebf7d8ea7a330.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/pi-desk/pi-desk/src/":[],"/home/runner/work/pi-desk/pi-desk/src/app/not-found":[],"/home/runner/work/pi-desk/pi-desk/src/app/layout":[{"inlined":false,"path":"static/css/c43b04c244a64fb4.css"}],"/home/runner/work/pi-desk/pi-desk/src/app/error":[],"/home/runner/work/pi-desk/pi-desk/src/app/global-error":[],"/home/runner/work/pi-desk/pi-desk/src/app/page":[{"inlined":false,"path":"static/css/1e780a4936aa6ba3.css"},{"inlined":false,"path":"static/css/2c3b0c0ff1f49c68.css"}]},"rscModuleMapping":{"14405":{"*":{"id":"52047","name":"*","chunks":[],"async":false}},"20094":{"*":{"id":"11568","name":"*","chunks":[],"async":false}},"21358":{"*":{"id":"69079","name":"*","chunks":[],"async":false}},"22432":{"*":{"id":"7770","name":"*","chunks":[],"async":false}},"23367":{"*":{"id":"39159","name":"*","chunks":[],"async":false}},"33948":{"*":{"id":"52442","name":"*","chunks":[],"async":false}},"44478":{"*":{"id":"47594","name":"*","chunks":[],"async":false}},"49230":{"*":{"id":"66757","name":"*","chunks":[],"async":false}},"66999":{"*":{"id":"88893","name":"*","chunks":[],"async":false}},"69173":{"*":{"id":"17179","name":"*","chunks":[],"async":false}},"71713":{"*":{"id":"70961","name":"*","chunks":[],"async":false}},"84178":{"*":{"id":"12707","name":"*","chunks":[],"async":false}},"84845":{"*":{"id":"56951","name":"*","chunks":[],"async":false}},"88219":{"*":{"id":"64669","name":"*","chunks":[],"async":false}},"90184":{"*":{"id":"270","name":"*","chunks":[],"async":false}},"97457":{"*":{"id":"40571","name":"*","chunks":[],"async":false}},"97876":{"*":{"id":"29190","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"11070":{"*":{"id":"26080","name":"*","chunks":[],"async":false}},"14405":{"*":{"id":"27297","name":"*","chunks":[],"async":false}},"21358":{"*":{"id":"41051","name":"*","chunks":[],"async":false}},"22432":{"*":{"id":"1480","name":"*","chunks":[],"async":false}},"23367":{"*":{"id":"49453","name":"*","chunks":[],"async":false}},"33948":{"*":{"id":"79460","name":"*","chunks":[],"async":false}},"44478":{"*":{"id":"97016","name":"*","chunks":[],"async":false}},"49230":{"*":{"id":"99920","name":"*","chunks":[],"async":false}},"66999":{"*":{"id":"4527","name":"*","chunks":[],"async":false}},"69173":{"*":{"id":"7005","name":"*","chunks":[],"async":false}},"71713":{"*":{"id":"21147","name":"*","chunks":[],"async":false}},"84845":{"*":{"id":"43305","name":"*","chunks":[],"async":false}},"88219":{"*":{"id":"23579","name":"*","chunks":[],"async":false}},"90184":{"*":{"id":"88476","name":"*","chunks":[],"async":false}},"97457":{"*":{"id":"28317","name":"*","chunks":[],"async":false}},"97876":{"*":{"id":"58044","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/client-page.js":{"id":69173,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/client-page.js":{"id":69173,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/client-segment.js":{"id":23367,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/client-segment.js":{"id":23367,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":33948,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":33948,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/layout-router.js":{"id":90184,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/layout-router.js":{"id":90184,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/render-from-template-context.js":{"id":44478,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":44478,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/lib/framework/boundary-components.js":{"id":14405,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":14405,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":22432,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":22432,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/pages/l1-error-page.tsx":{"id":66999,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","22092","static/chunks/22092-6d1bfbefa825ec03.js","24345","static/chunks/app/not-found-720cdf6a606b821a.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/script.js":{"id":97876,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-ac71fb0f7cef482a.js","7177","static/chunks/app/layout-2c6a573d3004516e.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/script.js":{"id":97876,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-ac71fb0f7cef482a.js","7177","static/chunks/app/layout-2c6a573d3004516e.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/providers/l1-app-providers.tsx":{"id":88219,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-ac71fb0f7cef482a.js","7177","static/chunks/app/layout-2c6a573d3004516e.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l4_foundation/styles/l4-globals.css":{"id":84178,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-ac71fb0f7cef482a.js","7177","static/chunks/app/layout-2c6a573d3004516e.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/app/error.tsx":{"id":84845,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","22092","static/chunks/22092-6d1bfbefa825ec03.js","18039","static/chunks/app/error-216b14b5da089ed3.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/app/global-error.tsx":{"id":71713,"name":"*","chunks":["34219","static/chunks/app/global-error-6f5fc4928fd1966c.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/pages/l1-project-preview-page.tsx":{"id":97457,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l2_biz/auth/l2-login.tsx":{"id":21358,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/pages/l1-home-page.tsx":{"id":11070,"name":"*","chunks":["85959","static/chunks/287c71e3-32bb21af66f1f035.js","26717","static/chunks/6c0b963a-c492581a5b6359f7.js","94287","static/chunks/cdfede43-b007dd93b1fdb122.js","57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","36643","static/chunks/36643-f60e98278740073c.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","46270","static/chunks/46270-3e42514685626190.js","10043","static/chunks/10043-9d6c3735418ccaf9.js","30669","static/chunks/30669-ffa76d39e0e25194.js","65350","static/chunks/65350-23bb961d87addf14.js","15302","static/chunks/15302-6e070e13fa65c863.js","65232","static/chunks/65232-a8571f78020eede2.js","11937","static/chunks/11937-ac71fb0f7cef482a.js","58974","static/chunks/app/page-f78be007d97f0d95.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/providers/l1-app-runtime-provider.tsx":{"id":49230,"name":"*","chunks":["85959","static/chunks/287c71e3-32bb21af66f1f035.js","26717","static/chunks/6c0b963a-c492581a5b6359f7.js","94287","static/chunks/cdfede43-b007dd93b1fdb122.js","57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","36643","static/chunks/36643-f60e98278740073c.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","46270","static/chunks/46270-3e42514685626190.js","10043","static/chunks/10043-9d6c3735418ccaf9.js","30669","static/chunks/30669-ffa76d39e0e25194.js","65350","static/chunks/65350-23bb961d87addf14.js","15302","static/chunks/15302-6e070e13fa65c863.js","65232","static/chunks/65232-a8571f78020eede2.js","11937","static/chunks/11937-ac71fb0f7cef482a.js","58974","static/chunks/app/page-f78be007d97f0d95.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/pi-desk/pi-desk/src/":[],"/home/runner/work/pi-desk/pi-desk/src/app/not-found":[],"/home/runner/work/pi-desk/pi-desk/src/app/layout":[{"inlined":false,"path":"static/css/a677e7fbf6e2173e.css"}],"/home/runner/work/pi-desk/pi-desk/src/app/error":[],"/home/runner/work/pi-desk/pi-desk/src/app/global-error":[],"/home/runner/work/pi-desk/pi-desk/src/app/page":[{"inlined":false,"path":"static/css/2bb393927ba8f71d.css"},{"inlined":false,"path":"static/css/3a07dcc86ffdf88c.css"}]},"rscModuleMapping":{"11070":{"*":{"id":"11568","name":"*","chunks":[],"async":false}},"14405":{"*":{"id":"52047","name":"*","chunks":[],"async":false}},"21358":{"*":{"id":"69079","name":"*","chunks":[],"async":false}},"22432":{"*":{"id":"7770","name":"*","chunks":[],"async":false}},"23367":{"*":{"id":"39159","name":"*","chunks":[],"async":false}},"33948":{"*":{"id":"52442","name":"*","chunks":[],"async":false}},"44478":{"*":{"id":"47594","name":"*","chunks":[],"async":false}},"49230":{"*":{"id":"66757","name":"*","chunks":[],"async":false}},"66999":{"*":{"id":"88893","name":"*","chunks":[],"async":false}},"69173":{"*":{"id":"17179","name":"*","chunks":[],"async":false}},"71713":{"*":{"id":"70961","name":"*","chunks":[],"async":false}},"84178":{"*":{"id":"12707","name":"*","chunks":[],"async":false}},"84845":{"*":{"id":"56951","name":"*","chunks":[],"async":false}},"88219":{"*":{"id":"64669","name":"*","chunks":[],"async":false}},"90184":{"*":{"id":"270","name":"*","chunks":[],"async":false}},"97457":{"*":{"id":"40571","name":"*","chunks":[],"async":false}},"97876":{"*":{"id":"29190","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- (()=>{var a={};a.id=78161,a.ids=[78161],a.modules={1708:a=>{"use strict";a.exports=require("node:process")},2771:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>r,handler:()=>t,routeModule:()=>s});var d=c(85426),e=c(3372),f=c(2629),g=c(86804),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,19623))),j=(0,d.p)(()=>Promise.resolve().then(c.bind(c,56951))),k=(0,d.p)(()=>Promise.resolve().then(c.bind(c,70961))),l=(0,d.p)(()=>Promise.resolve().then(c.bind(c,82117))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,10719,23))),n=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,58434,23))),o=(0,d.p)(()=>Promise.resolve().then(c.bind(c,70961))),p={children:["",{children:["project-preview",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,58563))),"/home/runner/work/pi-desk/pi-desk/src/app/project-preview/page.tsx"]}]},{"global-error":[o,"/home/runner/work/pi-desk/pi-desk/src/app/global-error.tsx"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,5057)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}},[]]},{layout:[i,"/home/runner/work/pi-desk/pi-desk/src/app/layout.tsx"],error:[j,"/home/runner/work/pi-desk/pi-desk/src/app/error.tsx"],"global-error":[k,"/home/runner/work/pi-desk/pi-desk/src/app/global-error.tsx"],"not-found":[l,"/home/runner/work/pi-desk/pi-desk/src/app/not-found.tsx"],forbidden:[m,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[n,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,5057)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}},[]]}.children,q=(0,e.H)({tree:p,page:"/project-preview/page",pathname:"/project-preview",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),r=q.__next_app__,s=q.routeModule,t=q.handler},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},28317:(a,b,c)=>{"use strict";c.d(b,{L1ProjectPreviewPage:()=>x});var d=c(52834),e=c(49147),f=c(57880),g=c(35021),h=c(55579),i=c(96298),j=c(9365),k=c(57850),l=c(5319),m=c(84386),n=c(95186),o=c(68341),p=c(90814),q=c(79739),r=c(75152),s=c(37496),t=c(11071);function u({picker:a,onSelect:b}){let{t:c}=(0,k.Bd)("projectHistory"),[f,g]=(0,e.useState)(""),h="browser"===a.target.view;return(0,d.jsxs)("section",{className:"mx-auto flex w-full max-w-3xl flex-col gap-6 px-4 py-8 sm:px-6 sm:py-12","data-testid":"project-picker",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-xl font-semibold",children:c("chooseProject")}),(0,d.jsx)("p",{className:"mt-2 text-sm text-muted-foreground",children:c("serverDirectoryHint")})]}),(0,d.jsxs)("form",{onSubmit:a=>{let c;a.preventDefault(),(c=f.trim().replace(/^(["'])(.*)\1$/,"$2").trim())&&b(c)},className:"space-y-2",children:[(0,d.jsx)("label",{htmlFor:"project-directory",className:"text-sm font-medium",children:c("directoryPath")}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(t.p,{id:"project-directory",value:f,onChange:a=>g(a.target.value),placeholder:c("directoryPlaceholder"),autoComplete:"off",className:"min-w-0 flex-1 font-mono",onKeyDown:a=>{"Enter"===a.key&&a.nativeEvent.isComposing&&a.preventDefault()}}),(0,d.jsx)(l.$,{type:"submit",disabled:!f.trim(),children:c("openProject")})]})]}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[(0,d.jsx)(l.$,{variant:h?"ghost":"secondary",onClick:a.showProjects,disabled:a.loading,children:c("recentProjects")}),(0,d.jsxs)(l.$,{variant:h?"secondary":"ghost",onClick:()=>a.browse(null),disabled:a.loading,children:[(0,d.jsx)(j.A,{className:"size-4"}),c("browseDirectories")]})]}),a.error?(0,d.jsxs)("div",{role:"alert",className:"space-y-3 rounded-lg border p-4",children:[(0,d.jsx)("p",{className:"break-words text-sm text-destructive",children:a.error}),(0,d.jsx)(l.$,{variant:"outline",onClick:a.retry,children:c("retry")})]}):a.loading?(0,d.jsxs)("div",{role:"status",className:"flex items-center gap-2 py-6 text-sm text-muted-foreground",children:[(0,d.jsx)(p.A,{className:"size-4 animate-spin"}),c("loadingDirectories")]}):h&&a.browser?(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,d.jsx)(l.$,{size:"icon-sm",variant:"ghost","aria-label":c("parentDirectory"),disabled:null===a.browser.cwd,onClick:()=>a.browse(a.browser?.parentCwd??null),children:(0,d.jsx)(q.A,{className:"size-4"})}),(0,d.jsx)("span",{className:"min-w-0 flex-1 break-all font-mono text-sm",children:a.browser.cwd??c("directoryRoots")}),a.browser.cwd?(0,d.jsx)(l.$,{size:"sm",onClick:()=>b(a.browser.cwd),children:c("openThisDirectory")}):null]}),(0,d.jsxs)("div",{className:"divide-y rounded-lg border",children:[a.browser.directories.map(b=>(0,d.jsxs)("button",{type:"button",className:"flex min-h-10 w-full items-center gap-2 px-3 py-2 text-left hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",onClick:()=>a.browse(b.cwd),children:[(0,d.jsx)(r.A,{className:"size-4 shrink-0 text-muted-foreground"}),(0,d.jsx)("span",{className:"min-w-0 flex-1 break-all text-sm",children:b.name}),(0,d.jsx)(s.A,{className:"size-4 shrink-0"})]},b.cwd)),a.browser.directories.length?null:(0,d.jsx)("p",{className:"p-4 text-sm text-muted-foreground",children:c("noSubdirectories")})]})]}):(0,d.jsxs)("div",{className:"divide-y rounded-lg border",children:[a.projects.map(a=>(0,d.jsxs)("button",{type:"button",className:"flex min-h-14 w-full items-center gap-3 px-3 py-2 text-left hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",onClick:()=>b(a.cwd),children:[(0,d.jsx)(r.A,{className:"size-4 shrink-0 text-muted-foreground"}),(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,d.jsx)("span",{className:"block truncate text-sm font-medium",children:a.cwd.replaceAll("\\","/").split("/").filter(Boolean).at(-1)??a.cwd}),(0,d.jsx)("span",{className:"block break-all font-mono text-xs text-muted-foreground",children:a.cwd})]}),(0,d.jsx)(s.A,{className:"size-4 shrink-0"})]},a.cwd)),a.projects.length?null:(0,d.jsx)("p",{className:"p-4 text-sm text-muted-foreground",children:c("noRecentProjects")})]})]})]})}function v({clientId:a,onSelect:b,onUnauthorized:c}){let f=function(a,b){let[c,d]=(0,e.useState)({target:{view:"projects"},projects:[],browser:null,loading:!0,error:null}),f=(0,e.useRef)(null),g=(0,e.useCallback)(c=>{f.current?.abort();let e=new AbortController;f.current=e,d(a=>({...a,target:c,loading:!0,error:null})),(async()=>{try{if("projects"===c.view){let b=await (0,o.Tk)(a,e.signal);e.signal.aborted||d(a=>({...a,projects:b.directories,loading:!1}))}else{let b=await (0,o.Cp)(a,c.cwd,e.signal);e.signal.aborted||d(a=>({...a,browser:b,loading:!1}))}}catch(a){if(e.signal.aborted)return;a instanceof n.aw&&401===a.status&&b(),d(b=>({...b,loading:!1,error:a instanceof Error?a.message:String(a)}))}})()},[a,b]);return{...c,showProjects:()=>g({view:"projects"}),browse:a=>g({view:"browser",cwd:a}),retry:()=>g(c.target)}}(a,c);return(0,d.jsx)(u,{picker:f,onSelect:b})}function w({clientId:a,cwd:b,onSelect:c,onUnauthorized:e}){let{t:f}=(0,k.Bd)("projectHistory");return(0,d.jsx)("main",{className:"flex h-dvh min-w-0 flex-col overflow-hidden bg-background text-foreground","data-testid":"project-preview-page",children:b?(0,d.jsx)(m.q,{clientId:a,cwd:b,refreshOnFocus:!1,onUnauthorized:e,actions:(0,d.jsxs)(l.$,{size:"sm",variant:"ghost",onClick:()=>c(null),children:[(0,d.jsx)(j.A,{className:"size-4"}),(0,d.jsx)("span",{children:f("switchProject")})]})},b):(0,d.jsx)("div",{className:"min-h-0 flex-1 overflow-auto",children:(0,d.jsx)(v,{clientId:a,onSelect:c,onUnauthorized:e})})})}function x(){let a=(0,i.A)(),b=(0,f.useSearchParams)(),c=(0,f.useRouter)(),j=b.get("cwd")?.trim()||null,k=(0,e.useRef)(!1),l=(0,e.useCallback)(()=>{k.current||(k.current=!0,window.location.assign((0,g.R)(window.location.pathname+window.location.search)))},[]);return(0,d.jsx)(w,{clientId:a,cwd:j,onUnauthorized:l,onSelect:a=>c.push((0,h.Fj)(a))})}},28354:a=>{"use strict";a.exports=require("util")},29146:(a,b,c)=>{Promise.resolve().then(c.bind(c,40571))},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},35021:(a,b,c)=>{"use strict";function d(a){return Array.from(a).some(a=>{let b=a.charCodeAt(0);return b<=31||b>=127&&b<=159})}function e(a){let b;if("string"!=typeof a||!a.startsWith("/")||a.startsWith("//")||a.includes("\\")||d(a))return"/";try{if(b=decodeURIComponent(a.split(/[?#]/,1)[0]),d(decodeURIComponent(a)))return"/"}catch{return"/"}if(b.startsWith("//")||b.includes("\\"))return"/";let c=[];for(let a of b.split("/"))".."===a?c.pop():""!==a&&"."!==a&&c.push(a);return"login"===c.join("/").toLowerCase()?"/":a}function f(a){let b=e(a);return"/"===b?"/login":`/login?returnTo=${encodeURIComponent(b)}`}c.d(b,{R:()=>f,S:()=>e})},38522:a=>{"use strict";a.exports=require("node:zlib")},40571:(a,b,c)=>{"use strict";c.d(b,{L1ProjectPreviewPage:()=>d});let d=(0,c(68032).registerClientReference)(function(){throw Error("Attempted to call L1ProjectPreviewPage() from the server but L1ProjectPreviewPage is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/pages/l1-project-preview-page.tsx","L1ProjectPreviewPage")},40911:(a,b,c)=>{"use strict";c.d(b,{Ax:()=>e});let d={en:{previewTitle:"Project preview",chooseProject:"Open a project",switchProject:"Switch project",directoryPath:"Directory path",directoryPlaceholder:"Enter an absolute directory path",serverDirectoryHint:"Browse directories on the connected server.",openProject:"Open",recentProjects:"Project history",browseDirectories:"Browse directories",loadingDirectories:"Loading directories…",parentDirectory:"Parent directory",directoryRoots:"Directories",openThisDirectory:"Open this directory",noSubdirectories:"No subdirectories",noRecentProjects:"No project history. Enter a path or browse directories.",currentHead:"Current HEAD",localBranch:"Local branch",remoteBranch:"Remote branch \xb7 local record",retry:"Retry",compareDirect:"Compare directly",loadingCommits:"Loading commits…",commitList:"Git commits",noCommitMessage:"(no commit message)",noMatchingCommits:"No matching commits",noCommits:"No commits",scanLimit:"History scan limit reached. Choose a more specific branch or commit.",loadedLimit:"2,000 commits loaded. Narrow your search.",noMoreCommits:"All commits loaded",backCommits:"Back to commits",commitChanges:"Commit changes",cumulativeChanges:"Cumulative changes",loadedFiles:"{{count}} files loaded",backCumulative:"Back to cumulative changes",loadingChanges:"Loading changes…",noDiff:"No file differences",loadMoreFiles:"Load more files",changesLimit:"Change file display limit reached.",commitDetails:"Commit details",copySha:"Copy commit SHA",compareParent:"Compare parent commit",parentCommit:"Parent {{count}} \xb7 {{oid}}",mergeBaseToTarget:"Common ancestor → target commit",baseToTarget:"Base commit → target commit",emptyRevision:"Empty revision",selectCommit:"Select a commit to view its details",historyAndCompare:"Git history and comparison",viewMode:"Git view mode",historyMode:"Commit history",compareMode:"Compare branches",selectRepository:"Select repository",viewBranch:"View branch",baseBranch:"Base branch",chooseBase:"Choose base branch",targetBranch:"Target branch",comparison:"Comparison method",introducedChanges:"Changes introduced by this branch",directComparison:"Compare two versions directly",filterAuthor:"Filter by author",author:"Commit author",searchCommits:"Search commit message or SHA",refreshGit:"Refresh Git history",localRecord:"Local record",refUnavailable:"Reference unavailable",aheadBehind:"{{ahead}} ahead \xb7 {{behind}} behind",chooseBaseBranch:"Choose a base branch",restoreGit:"Restore Git panel",maximizeGit:"Maximize Git panel",collapseGit:"Collapse Git panel",copyFailed:"Could not copy",findingGit:"Detecting Git repositories…",noGit:"No Git repository found",collapseDirectory:"Collapse folder tree",expandDirectory:"Expand folder tree",previewDescription:"Read-only preview of project files and Git history",gitRecords:"Git history",refreshPreview:"Refresh project preview",restoreWindow:"Restore preview window",maximizeWindow:"Maximize preview window",closePreview:"Close project preview",previewArea:"Project preview area",files:"Files",code:"Code",changeFiles:"Files changed in commit",viewDiff:"View diff",gitStatus:"Git status {{status}}",viewDiffPath:"View diff: {{path}}",historyDiffAncestor:"Common ancestor {{left}} ↔ {{target}}",historyDiffDirect:"{{left}} ↔ {{target}}",historyReadFailed:"Could not read Git history"},"zh-CN":{previewTitle:"项目预览",chooseProject:"打开项目",switchProject:"切换项目",directoryPath:"目录路径",directoryPlaceholder:"输入完整目录路径",serverDirectoryHint:"选择所连接服务上的目录。",openProject:"打开",recentProjects:"历史项目",browseDirectories:"浏览目录",loadingDirectories:"正在读取目录…",parentDirectory:"上级目录",directoryRoots:"目录",openThisDirectory:"打开此目录",noSubdirectories:"没有子目录",noRecentProjects:"没有历史项目,可输入路径或浏览目录。",currentHead:"当前 HEAD",localBranch:"本地分支",remoteBranch:"远程分支 \xb7 本地记录",retry:"重试",compareDirect:"直接比较",loadingCommits:"读取提交…",commitList:"Git 提交列表",noCommitMessage:"(无提交说明)",noMatchingCommits:"没有匹配的提交",noCommits:"没有提交记录",scanLimit:"历史扫描达到上限,请选择更具体的分支或提交。",loadedLimit:"已加载 2000 条,请缩小查询范围。",noMoreCommits:"已加载全部提交",backCommits:"返回提交列表",commitChanges:"提交变更",cumulativeChanges:"累计变更",loadedFiles:"已加载 {{count}} 个文件",backCumulative:"返回累计变更",loadingChanges:"读取变更…",noDiff:"没有文件差异",loadMoreFiles:"加载更多文件",changesLimit:"变更文件超过显示上限。",commitDetails:"提交详情",copySha:"复制提交SHA",compareParent:"比较父提交",parentCommit:"父提交 {{count}} \xb7 {{oid}}",mergeBaseToTarget:"共同祖先 → 目标提交",baseToTarget:"基准提交 → 目标提交",emptyRevision:"空版本",selectCommit:"选择提交查看详情",historyAndCompare:"Git 历史与比较",viewMode:"Git 查看方式",historyMode:"提交记录",compareMode:"分支比较",selectRepository:"查看仓库",viewBranch:"查看分支",baseBranch:"基准分支",chooseBase:"选择基准分支",targetBranch:"目标分支",comparison:"比较方式",introducedChanges:"本分支引入的变更",directComparison:"两个版本直接比较",filterAuthor:"按提交用户筛选",author:"提交用户",searchCommits:"搜索提交说明或 SHA",refreshGit:"刷新Git记录",localRecord:"本地记录",refUnavailable:"引用不可用",aheadBehind:"领先 {{ahead}} \xb7 落后 {{behind}}",chooseBaseBranch:"选择基准分支",restoreGit:"还原Git区域",maximizeGit:"最大化Git区域",collapseGit:"收起Git区域",copyFailed:"复制失败",findingGit:"正在识别 Git 仓库…",noGit:"未发现 Git 仓库",collapseDirectory:"收起目录",expandDirectory:"展开目录",previewDescription:"只读项目文件和 Git 历史预览",gitRecords:"Git 记录",refreshPreview:"刷新项目预览",restoreWindow:"还原预览窗口",maximizeWindow:"最大化预览窗口",closePreview:"关闭项目预览",previewArea:"项目预览区域",files:"文件",code:"代码",changeFiles:"提交变更文件",viewDiff:"查看差异",gitStatus:"Git 状态 {{status}}",viewDiffPath:"查看差异 {{path}}",historyDiffAncestor:"共同祖先 {{left}} ↔ {{target}}",historyDiffDirect:"{{left}} ↔ {{target}}",historyReadFailed:"读取 Git 历史失败"}};function e(a,b){let c=a?.trim()||null;return[c?.replaceAll("\\","/").split("/").filter(Boolean).at(-1)??c,d[b].previewTitle,"Pi Desk"].filter(Boolean).join(" \xb7 ")}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},58563:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>l,generateMetadata:()=>k});var e=c(89564),f=c(76549),g=c(40571),h=c(40911),i=c(61035),j=a([i]);async function k({searchParams:a}){let{cwd:b}=await a,{region:c}=(0,i.J)().getSnapshot();return{title:(0,h.Ax)(Array.isArray(b)?b[0]:b,c.locale)}}function l(){return(0,e.jsx)(f.Suspense,{children:(0,e.jsx)(g.L1ProjectPreviewPage,{})})}i=(j.then?(await j)():j)[0],d()}catch(a){d(a)}})},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63426:(a,b,c)=>{Promise.resolve().then(c.bind(c,28317))},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,9874,79686,80780,56830,35985,27344],()=>b(b.s=2771));module.exports=c})();
1
+ (()=>{var a={};a.id=78161,a.ids=[78161],a.modules={1708:a=>{"use strict";a.exports=require("node:process")},2811:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>r,handler:()=>t,routeModule:()=>s});var d=c(85426),e=c(3372),f=c(2629),g=c(86804),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,19623))),j=(0,d.p)(()=>Promise.resolve().then(c.bind(c,56951))),k=(0,d.p)(()=>Promise.resolve().then(c.bind(c,70961))),l=(0,d.p)(()=>Promise.resolve().then(c.bind(c,82117))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,10719,23))),n=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,58434,23))),o=(0,d.p)(()=>Promise.resolve().then(c.bind(c,70961))),p={children:["",{children:["project-preview",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,31350))),"/home/runner/work/pi-desk/pi-desk/src/app/project-preview/page.tsx"]}]},{"global-error":[o,"/home/runner/work/pi-desk/pi-desk/src/app/global-error.tsx"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,5057)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}},[]]},{layout:[i,"/home/runner/work/pi-desk/pi-desk/src/app/layout.tsx"],error:[j,"/home/runner/work/pi-desk/pi-desk/src/app/error.tsx"],"global-error":[k,"/home/runner/work/pi-desk/pi-desk/src/app/global-error.tsx"],"not-found":[l,"/home/runner/work/pi-desk/pi-desk/src/app/not-found.tsx"],forbidden:[m,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[n,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,5057)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}},[]]}.children,q=(0,e.H)({tree:p,page:"/project-preview/page",pathname:"/project-preview",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),r=q.__next_app__,s=q.routeModule,t=q.handler},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},28317:(a,b,c)=>{"use strict";c.d(b,{L1ProjectPreviewPage:()=>x});var d=c(52834),e=c(49147),f=c(57880),g=c(35021),h=c(55579),i=c(96298),j=c(9365),k=c(57850),l=c(5319),m=c(84386),n=c(95186),o=c(68341),p=c(90814),q=c(79739),r=c(75152),s=c(37496),t=c(11071);function u({picker:a,onSelect:b}){let{t:c}=(0,k.Bd)("projectHistory"),[f,g]=(0,e.useState)(""),h="browser"===a.target.view;return(0,d.jsxs)("section",{className:"mx-auto flex w-full max-w-3xl flex-col gap-6 px-4 py-8 sm:px-6 sm:py-12","data-testid":"project-picker",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-xl font-semibold",children:c("chooseProject")}),(0,d.jsx)("p",{className:"mt-2 text-sm text-muted-foreground",children:c("serverDirectoryHint")})]}),(0,d.jsxs)("form",{onSubmit:a=>{let c;a.preventDefault(),(c=f.trim().replace(/^(["'])(.*)\1$/,"$2").trim())&&b(c)},className:"space-y-2",children:[(0,d.jsx)("label",{htmlFor:"project-directory",className:"text-sm font-medium",children:c("directoryPath")}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(t.p,{id:"project-directory",value:f,onChange:a=>g(a.target.value),placeholder:c("directoryPlaceholder"),autoComplete:"off",className:"min-w-0 flex-1 font-mono",onKeyDown:a=>{"Enter"===a.key&&a.nativeEvent.isComposing&&a.preventDefault()}}),(0,d.jsx)(l.$,{type:"submit",disabled:!f.trim(),children:c("openProject")})]})]}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[(0,d.jsx)(l.$,{variant:h?"ghost":"secondary",onClick:a.showProjects,disabled:a.loading,children:c("recentProjects")}),(0,d.jsxs)(l.$,{variant:h?"secondary":"ghost",onClick:()=>a.browse(null),disabled:a.loading,children:[(0,d.jsx)(j.A,{className:"size-4"}),c("browseDirectories")]})]}),a.error?(0,d.jsxs)("div",{role:"alert",className:"space-y-3 rounded-lg border p-4",children:[(0,d.jsx)("p",{className:"break-words text-sm text-destructive",children:a.error}),(0,d.jsx)(l.$,{variant:"outline",onClick:a.retry,children:c("retry")})]}):a.loading?(0,d.jsxs)("div",{role:"status",className:"flex items-center gap-2 py-6 text-sm text-muted-foreground",children:[(0,d.jsx)(p.A,{className:"size-4 animate-spin"}),c("loadingDirectories")]}):h&&a.browser?(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,d.jsx)(l.$,{size:"icon-sm",variant:"ghost","aria-label":c("parentDirectory"),disabled:null===a.browser.cwd,onClick:()=>a.browse(a.browser?.parentCwd??null),children:(0,d.jsx)(q.A,{className:"size-4"})}),(0,d.jsx)("span",{className:"min-w-0 flex-1 break-all font-mono text-sm",children:a.browser.cwd??c("directoryRoots")}),a.browser.cwd?(0,d.jsx)(l.$,{size:"sm",onClick:()=>b(a.browser.cwd),children:c("openThisDirectory")}):null]}),(0,d.jsxs)("div",{className:"divide-y rounded-lg border",children:[a.browser.directories.map(b=>(0,d.jsxs)("button",{type:"button",className:"flex min-h-10 w-full items-center gap-2 px-3 py-2 text-left hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",onClick:()=>a.browse(b.cwd),children:[(0,d.jsx)(r.A,{className:"size-4 shrink-0 text-muted-foreground"}),(0,d.jsx)("span",{className:"min-w-0 flex-1 break-all text-sm",children:b.name}),(0,d.jsx)(s.A,{className:"size-4 shrink-0"})]},b.cwd)),a.browser.directories.length?null:(0,d.jsx)("p",{className:"p-4 text-sm text-muted-foreground",children:c("noSubdirectories")})]})]}):(0,d.jsxs)("div",{className:"divide-y rounded-lg border",children:[a.projects.map(a=>(0,d.jsxs)("button",{type:"button",className:"flex min-h-14 w-full items-center gap-3 px-3 py-2 text-left hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",onClick:()=>b(a.cwd),children:[(0,d.jsx)(r.A,{className:"size-4 shrink-0 text-muted-foreground"}),(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,d.jsx)("span",{className:"block truncate text-sm font-medium",children:a.cwd.replaceAll("\\","/").split("/").filter(Boolean).at(-1)??a.cwd}),(0,d.jsx)("span",{className:"block break-all font-mono text-xs text-muted-foreground",children:a.cwd})]}),(0,d.jsx)(s.A,{className:"size-4 shrink-0"})]},a.cwd)),a.projects.length?null:(0,d.jsx)("p",{className:"p-4 text-sm text-muted-foreground",children:c("noRecentProjects")})]})]})]})}function v({clientId:a,onSelect:b,onUnauthorized:c}){let f=function(a,b){let[c,d]=(0,e.useState)({target:{view:"projects"},projects:[],browser:null,loading:!0,error:null}),f=(0,e.useRef)(null),g=(0,e.useCallback)(c=>{f.current?.abort();let e=new AbortController;f.current=e,d(a=>({...a,target:c,loading:!0,error:null})),(async()=>{try{if("projects"===c.view){let b=await (0,o.Tk)(a,e.signal);e.signal.aborted||d(a=>({...a,projects:b.directories,loading:!1}))}else{let b=await (0,o.Cp)(a,c.cwd,e.signal);e.signal.aborted||d(a=>({...a,browser:b,loading:!1}))}}catch(a){if(e.signal.aborted)return;a instanceof n.aw&&401===a.status&&b(),d(b=>({...b,loading:!1,error:a instanceof Error?a.message:String(a)}))}})()},[a,b]);return{...c,showProjects:()=>g({view:"projects"}),browse:a=>g({view:"browser",cwd:a}),retry:()=>g(c.target)}}(a,c);return(0,d.jsx)(u,{picker:f,onSelect:b})}function w({clientId:a,cwd:b,onSelect:c,onUnauthorized:e}){let{t:f}=(0,k.Bd)("projectHistory");return(0,d.jsx)("main",{className:"flex h-dvh min-w-0 flex-col overflow-hidden bg-background text-foreground","data-testid":"project-preview-page",children:b?(0,d.jsx)(m.q,{clientId:a,cwd:b,onUnauthorized:e,actions:(0,d.jsxs)(l.$,{size:"sm",variant:"ghost",onClick:()=>c(null),children:[(0,d.jsx)(j.A,{className:"size-4"}),(0,d.jsx)("span",{children:f("switchProject")})]})},b):(0,d.jsx)("div",{className:"min-h-0 flex-1 overflow-auto",children:(0,d.jsx)(v,{clientId:a,onSelect:c,onUnauthorized:e})})})}function x(){let a=(0,i.A)(),b=(0,f.useSearchParams)(),c=(0,f.useRouter)(),j=b.get("cwd")?.trim()||null,k=(0,e.useRef)(!1),l=(0,e.useCallback)(()=>{k.current||(k.current=!0,window.location.assign((0,g.R)(window.location.pathname+window.location.search)))},[]);return(0,d.jsx)(w,{clientId:a,cwd:j,onUnauthorized:l,onSelect:a=>c.push((0,h.Fj)(a))})}},28354:a=>{"use strict";a.exports=require("util")},29146:(a,b,c)=>{Promise.resolve().then(c.bind(c,40571))},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31350:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h,generateMetadata:()=>g});var d=c(89564),e=c(76549),f=c(40571);async function g({searchParams:a}){let{cwd:b}=await a;return{title:function(a){let b=a?.trim();if(!b)return"Pi Desk";let c=b.replaceAll("\\","/").split("/").filter(Boolean).at(-1)??b;return c===b?b:`${c} – ${b}`}(Array.isArray(b)?b[0]:b)}}function h(){return(0,d.jsx)(e.Suspense,{children:(0,d.jsx)(f.L1ProjectPreviewPage,{})})}},33873:a=>{"use strict";a.exports=require("path")},35021:(a,b,c)=>{"use strict";function d(a){return Array.from(a).some(a=>{let b=a.charCodeAt(0);return b<=31||b>=127&&b<=159})}function e(a){let b;if("string"!=typeof a||!a.startsWith("/")||a.startsWith("//")||a.includes("\\")||d(a))return"/";try{if(b=decodeURIComponent(a.split(/[?#]/,1)[0]),d(decodeURIComponent(a)))return"/"}catch{return"/"}if(b.startsWith("//")||b.includes("\\"))return"/";let c=[];for(let a of b.split("/"))".."===a?c.pop():""!==a&&"."!==a&&c.push(a);return"login"===c.join("/").toLowerCase()?"/":a}function f(a){let b=e(a);return"/"===b?"/login":`/login?returnTo=${encodeURIComponent(b)}`}c.d(b,{R:()=>f,S:()=>e})},38522:a=>{"use strict";a.exports=require("node:zlib")},40571:(a,b,c)=>{"use strict";c.d(b,{L1ProjectPreviewPage:()=>d});let d=(0,c(68032).registerClientReference)(function(){throw Error("Attempted to call L1ProjectPreviewPage() from the server but L1ProjectPreviewPage is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/pages/l1-project-preview-page.tsx","L1ProjectPreviewPage")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63426:(a,b,c)=>{Promise.resolve().then(c.bind(c,28317))},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,9874,79686,81912,62900,35985,27344],()=>b(b.s=2811));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/project-preview/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"14405":{"*":{"id":"27297","name":"*","chunks":[],"async":false}},"20094":{"*":{"id":"71152","name":"*","chunks":[],"async":false}},"21358":{"*":{"id":"41051","name":"*","chunks":[],"async":false}},"22432":{"*":{"id":"1480","name":"*","chunks":[],"async":false}},"23367":{"*":{"id":"49453","name":"*","chunks":[],"async":false}},"33948":{"*":{"id":"79460","name":"*","chunks":[],"async":false}},"44478":{"*":{"id":"97016","name":"*","chunks":[],"async":false}},"49230":{"*":{"id":"99920","name":"*","chunks":[],"async":false}},"66999":{"*":{"id":"4527","name":"*","chunks":[],"async":false}},"69173":{"*":{"id":"7005","name":"*","chunks":[],"async":false}},"71713":{"*":{"id":"21147","name":"*","chunks":[],"async":false}},"84845":{"*":{"id":"43305","name":"*","chunks":[],"async":false}},"88219":{"*":{"id":"23579","name":"*","chunks":[],"async":false}},"90184":{"*":{"id":"88476","name":"*","chunks":[],"async":false}},"97457":{"*":{"id":"28317","name":"*","chunks":[],"async":false}},"97876":{"*":{"id":"58044","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/client-page.js":{"id":69173,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/client-page.js":{"id":69173,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/client-segment.js":{"id":23367,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/client-segment.js":{"id":23367,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":33948,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":33948,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/layout-router.js":{"id":90184,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/layout-router.js":{"id":90184,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/render-from-template-context.js":{"id":44478,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":44478,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/lib/framework/boundary-components.js":{"id":14405,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":14405,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":22432,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":22432,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/pages/l1-error-page.tsx":{"id":66999,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","22092","static/chunks/22092-6d1bfbefa825ec03.js","24345","static/chunks/app/not-found-720cdf6a606b821a.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/script.js":{"id":97876,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-1d0a9822f2c7995b.js","7177","static/chunks/app/layout-20718f1503910291.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/script.js":{"id":97876,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-1d0a9822f2c7995b.js","7177","static/chunks/app/layout-20718f1503910291.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/providers/l1-app-providers.tsx":{"id":88219,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-1d0a9822f2c7995b.js","7177","static/chunks/app/layout-20718f1503910291.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l4_foundation/styles/l4-globals.css":{"id":84178,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-1d0a9822f2c7995b.js","7177","static/chunks/app/layout-20718f1503910291.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/app/error.tsx":{"id":84845,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","22092","static/chunks/22092-6d1bfbefa825ec03.js","18039","static/chunks/app/error-216b14b5da089ed3.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/app/global-error.tsx":{"id":71713,"name":"*","chunks":["34219","static/chunks/app/global-error-6f5fc4928fd1966c.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/pages/l1-project-preview-page.tsx":{"id":97457,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","79267","static/chunks/79267-7d21d7cdbd7cfca1.js","46270","static/chunks/46270-3e42514685626190.js","37313","static/chunks/37313-d5970e2d0c270d22.js","15302","static/chunks/15302-6e070e13fa65c863.js","65232","static/chunks/65232-ef4e5a4174f62faf.js","78161","static/chunks/app/project-preview/page-038b6c14e03ed878.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l2_biz/auth/l2-login.tsx":{"id":21358,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/pages/l1-home-page.tsx":{"id":20094,"name":"*","chunks":["85959","static/chunks/287c71e3-32bb21af66f1f035.js","26717","static/chunks/6c0b963a-c492581a5b6359f7.js","94287","static/chunks/cdfede43-b007dd93b1fdb122.js","57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","79267","static/chunks/79267-7d21d7cdbd7cfca1.js","46270","static/chunks/46270-3e42514685626190.js","37313","static/chunks/37313-d5970e2d0c270d22.js","14197","static/chunks/14197-3d3ddd426ac06c9c.js","51474","static/chunks/51474-8dc714cb76b2e60a.js","15302","static/chunks/15302-6e070e13fa65c863.js","65232","static/chunks/65232-ef4e5a4174f62faf.js","11937","static/chunks/11937-1d0a9822f2c7995b.js","58974","static/chunks/app/page-ce2ebf7d8ea7a330.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/providers/l1-app-runtime-provider.tsx":{"id":49230,"name":"*","chunks":["85959","static/chunks/287c71e3-32bb21af66f1f035.js","26717","static/chunks/6c0b963a-c492581a5b6359f7.js","94287","static/chunks/cdfede43-b007dd93b1fdb122.js","57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","79267","static/chunks/79267-7d21d7cdbd7cfca1.js","46270","static/chunks/46270-3e42514685626190.js","37313","static/chunks/37313-d5970e2d0c270d22.js","14197","static/chunks/14197-3d3ddd426ac06c9c.js","51474","static/chunks/51474-8dc714cb76b2e60a.js","15302","static/chunks/15302-6e070e13fa65c863.js","65232","static/chunks/65232-ef4e5a4174f62faf.js","11937","static/chunks/11937-1d0a9822f2c7995b.js","58974","static/chunks/app/page-ce2ebf7d8ea7a330.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/pi-desk/pi-desk/src/":[],"/home/runner/work/pi-desk/pi-desk/src/app/not-found":[],"/home/runner/work/pi-desk/pi-desk/src/app/layout":[{"inlined":false,"path":"static/css/c43b04c244a64fb4.css"}],"/home/runner/work/pi-desk/pi-desk/src/app/error":[],"/home/runner/work/pi-desk/pi-desk/src/app/global-error":[],"/home/runner/work/pi-desk/pi-desk/src/app/page":[{"inlined":false,"path":"static/css/1e780a4936aa6ba3.css"},{"inlined":false,"path":"static/css/2c3b0c0ff1f49c68.css"}],"/home/runner/work/pi-desk/pi-desk/src/app/project-preview/page":[{"inlined":false,"path":"static/css/2c3b0c0ff1f49c68.css"},{"inlined":false,"path":"static/css/1e780a4936aa6ba3.css"}]},"rscModuleMapping":{"14405":{"*":{"id":"52047","name":"*","chunks":[],"async":false}},"20094":{"*":{"id":"11568","name":"*","chunks":[],"async":false}},"21358":{"*":{"id":"69079","name":"*","chunks":[],"async":false}},"22432":{"*":{"id":"7770","name":"*","chunks":[],"async":false}},"23367":{"*":{"id":"39159","name":"*","chunks":[],"async":false}},"33948":{"*":{"id":"52442","name":"*","chunks":[],"async":false}},"44478":{"*":{"id":"47594","name":"*","chunks":[],"async":false}},"49230":{"*":{"id":"66757","name":"*","chunks":[],"async":false}},"66999":{"*":{"id":"88893","name":"*","chunks":[],"async":false}},"69173":{"*":{"id":"17179","name":"*","chunks":[],"async":false}},"71713":{"*":{"id":"70961","name":"*","chunks":[],"async":false}},"84178":{"*":{"id":"12707","name":"*","chunks":[],"async":false}},"84845":{"*":{"id":"56951","name":"*","chunks":[],"async":false}},"88219":{"*":{"id":"64669","name":"*","chunks":[],"async":false}},"90184":{"*":{"id":"270","name":"*","chunks":[],"async":false}},"97457":{"*":{"id":"40571","name":"*","chunks":[],"async":false}},"97876":{"*":{"id":"29190","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/project-preview/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"11070":{"*":{"id":"26080","name":"*","chunks":[],"async":false}},"14405":{"*":{"id":"27297","name":"*","chunks":[],"async":false}},"21358":{"*":{"id":"41051","name":"*","chunks":[],"async":false}},"22432":{"*":{"id":"1480","name":"*","chunks":[],"async":false}},"23367":{"*":{"id":"49453","name":"*","chunks":[],"async":false}},"33948":{"*":{"id":"79460","name":"*","chunks":[],"async":false}},"44478":{"*":{"id":"97016","name":"*","chunks":[],"async":false}},"49230":{"*":{"id":"99920","name":"*","chunks":[],"async":false}},"66999":{"*":{"id":"4527","name":"*","chunks":[],"async":false}},"69173":{"*":{"id":"7005","name":"*","chunks":[],"async":false}},"71713":{"*":{"id":"21147","name":"*","chunks":[],"async":false}},"84845":{"*":{"id":"43305","name":"*","chunks":[],"async":false}},"88219":{"*":{"id":"23579","name":"*","chunks":[],"async":false}},"90184":{"*":{"id":"88476","name":"*","chunks":[],"async":false}},"97457":{"*":{"id":"28317","name":"*","chunks":[],"async":false}},"97876":{"*":{"id":"58044","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/client-page.js":{"id":69173,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/client-page.js":{"id":69173,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/client-segment.js":{"id":23367,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/client-segment.js":{"id":23367,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":33948,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":33948,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/layout-router.js":{"id":90184,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/layout-router.js":{"id":90184,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/components/render-from-template-context.js":{"id":44478,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":44478,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/lib/framework/boundary-components.js":{"id":14405,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":14405,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":22432,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":22432,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/pages/l1-error-page.tsx":{"id":66999,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","22092","static/chunks/22092-6d1bfbefa825ec03.js","24345","static/chunks/app/not-found-720cdf6a606b821a.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/script.js":{"id":97876,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-ac71fb0f7cef482a.js","7177","static/chunks/app/layout-2c6a573d3004516e.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/node_modules/.pnpm/next@16.3.1_@babel+core@7.29.7_@opentelemetry+api@1.9.0_@types+node@20.19.43_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/esm/client/script.js":{"id":97876,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-ac71fb0f7cef482a.js","7177","static/chunks/app/layout-2c6a573d3004516e.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/providers/l1-app-providers.tsx":{"id":88219,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-ac71fb0f7cef482a.js","7177","static/chunks/app/layout-2c6a573d3004516e.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l4_foundation/styles/l4-globals.css":{"id":84178,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","15302","static/chunks/15302-6e070e13fa65c863.js","11937","static/chunks/11937-ac71fb0f7cef482a.js","7177","static/chunks/app/layout-2c6a573d3004516e.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/app/error.tsx":{"id":84845,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","22092","static/chunks/22092-6d1bfbefa825ec03.js","18039","static/chunks/app/error-216b14b5da089ed3.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/app/global-error.tsx":{"id":71713,"name":"*","chunks":["34219","static/chunks/app/global-error-6f5fc4928fd1966c.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/pages/l1-project-preview-page.tsx":{"id":97457,"name":"*","chunks":["57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","36643","static/chunks/36643-f60e98278740073c.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","46270","static/chunks/46270-3e42514685626190.js","10043","static/chunks/10043-9d6c3735418ccaf9.js","15302","static/chunks/15302-6e070e13fa65c863.js","65232","static/chunks/65232-a8571f78020eede2.js","78161","static/chunks/app/project-preview/page-e1dbfcfc0f333e01.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l2_biz/auth/l2-login.tsx":{"id":21358,"name":"*","chunks":[],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/pages/l1-home-page.tsx":{"id":11070,"name":"*","chunks":["85959","static/chunks/287c71e3-32bb21af66f1f035.js","26717","static/chunks/6c0b963a-c492581a5b6359f7.js","94287","static/chunks/cdfede43-b007dd93b1fdb122.js","57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","36643","static/chunks/36643-f60e98278740073c.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","46270","static/chunks/46270-3e42514685626190.js","10043","static/chunks/10043-9d6c3735418ccaf9.js","30669","static/chunks/30669-ffa76d39e0e25194.js","65350","static/chunks/65350-23bb961d87addf14.js","15302","static/chunks/15302-6e070e13fa65c863.js","65232","static/chunks/65232-a8571f78020eede2.js","11937","static/chunks/11937-ac71fb0f7cef482a.js","58974","static/chunks/app/page-f78be007d97f0d95.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/providers/l1-app-runtime-provider.tsx":{"id":49230,"name":"*","chunks":["85959","static/chunks/287c71e3-32bb21af66f1f035.js","26717","static/chunks/6c0b963a-c492581a5b6359f7.js","94287","static/chunks/cdfede43-b007dd93b1fdb122.js","57235","static/chunks/57235-03ba1044f22b6c84.js","14825","static/chunks/14825-5579aed34a631ad7.js","36643","static/chunks/36643-f60e98278740073c.js","82371","static/chunks/82371-f7ba4a07a5dbcf34.js","46270","static/chunks/46270-3e42514685626190.js","10043","static/chunks/10043-9d6c3735418ccaf9.js","30669","static/chunks/30669-ffa76d39e0e25194.js","65350","static/chunks/65350-23bb961d87addf14.js","15302","static/chunks/15302-6e070e13fa65c863.js","65232","static/chunks/65232-a8571f78020eede2.js","11937","static/chunks/11937-ac71fb0f7cef482a.js","58974","static/chunks/app/page-f78be007d97f0d95.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/pi-desk/pi-desk/src/":[],"/home/runner/work/pi-desk/pi-desk/src/app/not-found":[],"/home/runner/work/pi-desk/pi-desk/src/app/layout":[{"inlined":false,"path":"static/css/a677e7fbf6e2173e.css"}],"/home/runner/work/pi-desk/pi-desk/src/app/error":[],"/home/runner/work/pi-desk/pi-desk/src/app/global-error":[],"/home/runner/work/pi-desk/pi-desk/src/app/page":[{"inlined":false,"path":"static/css/2bb393927ba8f71d.css"},{"inlined":false,"path":"static/css/3a07dcc86ffdf88c.css"}],"/home/runner/work/pi-desk/pi-desk/src/app/project-preview/page":[{"inlined":false,"path":"static/css/3a07dcc86ffdf88c.css"},{"inlined":false,"path":"static/css/2bb393927ba8f71d.css"}]},"rscModuleMapping":{"11070":{"*":{"id":"11568","name":"*","chunks":[],"async":false}},"14405":{"*":{"id":"52047","name":"*","chunks":[],"async":false}},"21358":{"*":{"id":"69079","name":"*","chunks":[],"async":false}},"22432":{"*":{"id":"7770","name":"*","chunks":[],"async":false}},"23367":{"*":{"id":"39159","name":"*","chunks":[],"async":false}},"33948":{"*":{"id":"52442","name":"*","chunks":[],"async":false}},"44478":{"*":{"id":"47594","name":"*","chunks":[],"async":false}},"49230":{"*":{"id":"66757","name":"*","chunks":[],"async":false}},"66999":{"*":{"id":"88893","name":"*","chunks":[],"async":false}},"69173":{"*":{"id":"17179","name":"*","chunks":[],"async":false}},"71713":{"*":{"id":"70961","name":"*","chunks":[],"async":false}},"84178":{"*":{"id":"12707","name":"*","chunks":[],"async":false}},"84845":{"*":{"id":"56951","name":"*","chunks":[],"async":false}},"88219":{"*":{"id":"64669","name":"*","chunks":[],"async":false}},"90184":{"*":{"id":"270","name":"*","chunks":[],"async":false}},"97457":{"*":{"id":"40571","name":"*","chunks":[],"async":false}},"97876":{"*":{"id":"29190","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -68,6 +68,7 @@
68
68
  "/api/work-sessions/del/route": "app/api/work-sessions/del/route.js",
69
69
  "/api/work-sessions/rename/route": "app/api/work-sessions/rename/route.js",
70
70
  "/api/work-sessions/replace/route": "app/api/work-sessions/replace/route.js",
71
+ "/api/work-sessions/search/route": "app/api/work-sessions/search/route.js",
71
72
  "/api/work-sessions/sort/route": "app/api/work-sessions/sort/route.js",
72
73
  "/favicon.ico/route": "app/favicon.ico/route.js",
73
74
  "/project-preview/page": "app/project-preview/page.js",
@@ -1,2 +1,2 @@
1
- "use strict";exports.id=23054,exports.ids=[23054],exports.modules={18477:(a,b,c)=>{c.d(b,{KE:()=>l,ds:()=>n,kM:()=>o});var d=c(59473),e=c(54733),f=c(58311),g=c(2364),h=c(2002);let i=d.Ik({}).strict(),j=d.Ik({workId:e.eW}).strict(),k=d.Ik({workId:e.eW}).strict(),l=d.Ik({cwd:e.ik.optional(),sessionId:e.Kx.optional(),branchId:d.Yj().min(1).optional(),projectName:d.Yj().trim().min(1).optional(),sessionTitle:d.Yj().trim().min(1).nullable().optional(),status:e.jw.optional(),messageCounts:e.AA.optional(),lastMessageUpdatedAt:g.k.nullable().optional()}).strict().refine(a=>Object.keys(a).length>0,{message:"work session changes cannot be empty"}),m=d.Ik({workSessions:d.YO(e.MY),pinnedCount:e.MT,appRuntime:f.GR}).strict().refine(a=>a.pinnedCount<=a.workSessions.length,{message:"pinnedCount cannot exceed work session count",path:["pinnedCount"]}),n=d.gM("type",[d.Ik({type:d.eu("snapshot"),workSessions:d.YO(e.MY),pinnedCount:e.MT}).strict().refine(a=>a.pinnedCount<=a.workSessions.length,{message:"pinnedCount cannot exceed work session count",path:["pinnedCount"]}),d.Ik({type:d.eu("update"),workId:e.eW,changes:l}).strict(),d.Ik({type:d.eu("delete"),workId:e.eW}).strict()]),o=Object.freeze({list:(0,h.Vc)({path:"work-sessions/list",inputSchema:i,outputSchema:m}),acknowledgeCompleted:(0,h.Vc)({path:"work-sessions/ack-completed",inputSchema:j,outputSchema:k}),update:(0,h._G)({path:"work-sessions/update",bodySchema:n})})},23024:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{E:()=>g});var e=c(72498),f=a([e]);e=(f.then?(await f)():f)[0];class g{constructor(a,b){this.workId=a,this.runtime=b}static async create(a,b,c){let d=c?await e.vC.open(b,c):e.vC.create(b);return new g(a,d)}get cwd(){return this.runtime.cwd}get sessionId(){return this.runtime.sessionId}get branchId(){return this.runtime.branchId}async branch(a){let b=await this.runtime.branch(a);return{changed:b.changed,editorText:b.editorText}}async createBranchedSession(a,b){let c=this.runtime.createBranchedSession(b);return{workSession:new g(a,c.runtime),editorText:c.editorText}}async send(a){return this.runtime.send(a)}async interrupt(){await this.runtime.interrupt()}async restoreQueuedMessages(){return this.runtime.restoreQueuedMessages()}async setTitle(a){await this.runtime.setTitle(a)}async setModel(a){await this.runtime.setModel(a)}}d()}catch(a){d(a)}})},23054:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{HK:()=>F,JJ:()=>y,Jl:()=>I,Jv:()=>G,Ki:()=>C,VH:()=>D,XM:()=>B,if:()=>H,k1:()=>A,qm:()=>x});var e=c(71473),f=c(77598),g=c(73024),h=c(76760),i=c(59473),j=c(25084),k=c(40529),l=c(77394),m=c(54733),n=c(18477),o=c(33270),p=c(23024),q=c(52913),r=c(65129),s=c(65209),t=c(72498),u=c(46524),v=c(47574),w=a([e,p,r,s,t,v]);[e,p,r,s,t,v]=w.then?(await w)():w;let z=i.Ik({workSessions:m.TO,pinnedCount:m.MT}).strict().refine(a=>a.pinnedCount<=a.workSessions.length,{message:"pinnedCount cannot exceed persisted work session count",path:["pinnedCount"]});class A extends Error{constructor(){super("WorkSession order does not match the current collection"),this.name="WorkSessionOrderConflictError"}}class B extends Error{constructor(a){super(`WorkSession not found: ${a}`),this.name="WorkSessionNotFoundError"}}class C extends Error{constructor(a,b){super(`Pi session ${a} is already bound to work session ${b}`),this.name="WorkSessionSessionConflictError"}}class D extends Error{constructor(a,b){super(`Pi session ${b} was not found in ${a}`),this.name="WorkSessionHistoryNotFoundError"}}class E extends Error{constructor(a,b,c){super(`WorkSession project changed: ${a} (${b} -> ${c})`),this.name="WorkSessionProjectChangedError"}}class F extends Error{constructor(a,b,c){super(`WorkSession binding changed: ${a} (${b} -> ${c})`),this.name="WorkSessionBindingChangedError"}}class G extends Error{constructor(a){super(`WorkSession branch entry was not found: ${a}`),this.name="WorkSessionBranchEntryNotFoundError"}}class H extends Error{constructor(a){super(a),this.name="WorkSessionBranchBlockedError"}}class I extends Error{constructor(a,b){super(b),this.kind=a,this.name="WorkSessionBranchInvalidError"}}class J extends Error{constructor(a){super(`WorkSession project directory is invalid: ${a}`),this.name="WorkSessionDirectoryInvalidError"}}function x(a){return a instanceof Error&&"WorkSessionDirectoryInvalidError"===a.name}class K{constructor(a=(0,h.join)((0,e.M)(),"work-sessions.json")){this.storePath=a,this.workSessionsById=new Map,this.updateListeners=new Set,this.chat=new v.yO,this.hydrated=!1,this.operationTail=Promise.resolve();const b=this.readPersistedState();this.restoredRecords=b.workSessions,this.pinnedCount=b.pinnedCount,this.rewriteLegacyStore=b.rewriteLegacyStore,this.chat.subscribeRecordChanges((a,b,c)=>this.publishChatRecordChange(a,b,c))}initialize(){return this.runExclusive(()=>this.ensureHydrated())}listWorkSessions(){return this.runExclusive(async()=>(await this.ensureHydrated(),this.createSnapshot()))}runPluginRestart(a){return this.runExclusive(async()=>{await this.ensureHydrated();let b=await this.chat.pauseForProcessRestart();try{let b=await a();return console.info("[Pi Desk][WorkSessionManage] 全部工作会话已冻结,等待插件重载"),b}catch(a){throw b(),a}})}subscribeUpdates(a){return this.updateListeners.add(a),()=>this.updateListeners.delete(a)}subscribeMessageEvents(a){return this.chat.subscribe(a)}subscribePluginPushEvents(a){return this.chat.subscribePluginPush(a)}async prepareChatSourceSyncs(a){await this.initialize();let b=a.find(a=>!this.chat.isCurrentSource(a.source));if(b)throw new v.dM(b.source);return await Promise.all(a.map(a=>this.chat.prepareSource(a.source).catch(b=>{if(this.chat.isCurrentSource(a.source))throw b}))),a.filter(a=>this.chat.isCurrentSource(a.source)).map(a=>{let b=this.chat.createSync(a.source,a.cursor);return{source:a.source,event:b.event,watermark:b.watermark}})}async getChatMessageDetail(a){return await this.initialize(),this.chat.getMessageDetail(a)}async getChatModelContext(a){return await this.initialize(),this.chat.getModelContext(a)}async getChatImage(a){return await this.initialize(),this.chat.getImage(a)}async sendChat(a){return await this.initialize(),this.chat.send(a)}async interruptChat(a){await this.initialize(),await this.chat.interrupt(a)}async compactChat(a){await this.initialize(),await this.chat.compact(a)}async reloadChat(a,b){await this.initialize(),await this.chat.reload(a,b)}async setChatPresentation(a,b){await this.initialize(),await this.chat.setPresentation(a,b)}async restoreChatQueue(a){return await this.initialize(),this.chat.restoreQueuedMessages(a)}async setChatModel(a){await this.initialize(),await this.chat.setModel(a)}async setChatCapabilityMode(a){await this.initialize(),await this.chat.setCapabilityMode(a)}getNativeUi(a){if(!this.chat.isCurrentSource(a))throw new v.dM(a);return(0,t.ls)(a.sessionId).nativeUi}async invokeSessionPluginMethod(a){return await this.initialize(),this.chat.invokePluginMethod(a)}async listNativeCommands(a){return await this.initialize(),j.WF.parse({commands:await this.chat.listNativeCommands(a.source)})}async executeNativeCommand(a){await this.initialize(),await this.chat.executeNativeCommand(a.source,a.command,a.args??"")}async listNativeTools(a){return await this.initialize(),j.RH.parse({tools:await this.chat.listNativeTools(a.source)})}async executeDirectBash(a){return await this.initialize(),j.uU.parse(await this.chat.executeDirectBash(a.source,{command:a.command,excludeFromContext:a.excludeFromContext}))}async abortDirectBash(a){await this.initialize(),await this.chat.abortDirectBash(a.source)}async listModels(a){let b=m.eW.parse(a);await this.initialize();let c=this.workSessionsById.get(b);if(!c)throw new B(b);return k.IM.parse(await (0,t.ls)(c.sessionId).listModels())}async acknowledgeCompleted(a){let b=m.eW.parse(a);if(await this.initialize(),!this.workSessionsById.has(b))throw new B(b);return this.chat.acknowledgeCompleted(b)}setWorkSessionArrangement(a,b){let c=a.map(a=>m.eW.parse(a)),d=m.MT.parse(b);return this.runExclusive(async()=>{await this.ensureHydrated();let a=Array.from(this.workSessionsById.keys());if(c.length!==a.length||d>c.length||new Set(c).size!==c.length||c.some(a=>!this.workSessionsById.has(a)))throw new A;if(c.every((b,c)=>b===a[c])&&d===this.pinnedCount)return this.createSnapshot();let b=c.map(a=>this.workSessionsById.get(a));for(let a of(this.workSessionsById.clear(),b))this.workSessionsById.set(a.workId,a);this.pinnedCount=d,this.persist();let e=this.createSnapshot();return this.publishUpdate({type:"snapshot",...e}),console.info("[Pi Desk][WorkSessionManage] 已更新工作会话排列",{workIds:c,pinnedCount:d}),e})}getWorkSession(a){let b=m.eW.parse(a);return this.runExclusive(async()=>(await this.ensureHydrated(),this.workSessionsById.get(b)??null))}getProjectPreviewContext(a,b){return this.workSessionsById.get(a.workId)!==a?null:this.chat.getProjectPreviewContext(a,b)}async replaceProjectGitBranch(a){let b=l.Yh.parse(a),c=await this.authorizeProjectFiles(b.workId,b.cwd),d=await (0,q.Ak)(c,b.repositoryRoot,b.target);return console.info("[Pi Desk][WorkSessionManage] 已切换 Git 分支",{workId:b.workId,cwd:c,repositoryRoot:b.repositoryRoot,targetType:b.target.type,targetName:b.target.name}),l.hr.parse({repository:d})}async addProjectGitBranch(a){let b=l.XV.parse(a),c=await this.authorizeProjectFiles(b.workId,b.cwd),d=await (0,q.bV)(c,b.repositoryRoot,b.name,b.startPoint);return console.info("[Pi Desk][WorkSessionManage] 已新建并切换 Git 分支",{workId:b.workId,cwd:c,repositoryRoot:b.repositoryRoot,branchName:b.name,startPointType:b.startPoint?.type??null,startPointName:b.startPoint?.name??null}),l.hr.parse({repository:d})}createWorkSession(a,b){let c,d=m.ik.parse(a),e=void 0===b?void 0:m.Kx.parse(b);try{c=(0,r.G2)(d)}catch{throw new J(d)}return this.runExclusive(async()=>{if(await this.ensureHydrated(),e){let a=this.findBoundWorkId(e);if(a)throw new C(e,a);if(!await (0,s.vg)(c,e))throw new D(c,e)}let a=await p.E.create((0,f.randomUUID)(),c,e);this.chat.addWorkSession(a),this.insertUnpinnedWorkSession(a),this.persist();let b=this.toListItem(a),d=this.createSnapshot();return this.publishUpdate({type:"snapshot",...d}),console.info("[Pi Desk][WorkSessionManage] 已创建工作会话",{workId:a.workId,cwd:a.cwd,sessionId:a.sessionId,creationType:e?"history":"empty"}),b})}renameWorkSession(a){let b=m.qL.parse(a);return this.runExclusive(async()=>{await this.ensureHydrated();let a=this.workSessionsById.get(b.workId);if(!a)throw new B(b.workId);this.assertSessionBinding(a,b.sessionId),await this.chat.setTitle(a,b.title)})}replaceWorkSession(a,b){let c=m.eW.parse(a),d=b?{cwd:m.ik.parse(b.cwd),sessionId:m.Kx.parse(b.sessionId)}:null;return this.runExclusive(async()=>{let a;await this.ensureHydrated();let b=this.workSessionsById.get(c);if(!b)throw new B(c);if(d&&b.cwd===d.cwd&&b.sessionId===d.sessionId)return this.createSnapshot();if(d){let a=this.findBoundWorkId(d.sessionId);if(a&&a!==c)throw new C(d.sessionId,a)}let e=this.toListItem(b);await this.chat.pauseWorkSession(c);try{a=await p.E.create(c,d?.cwd??b.cwd,d?.sessionId),await this.chat.replaceWorkSession(b,a)}catch(a){throw this.chat.resumeWorkSession(c),a}this.workSessionsById.set(c,a),this.persist();let f=this.toListItem(a),g=this.createSnapshot(),h=this.toChanges(e,f);return h&&this.publishUpdate({type:"update",workId:c,changes:h}),console.info("[Pi Desk][WorkSessionManage] 已替换 Pi 会话",{workId:c,replacementType:d?"history":"empty",previousCwd:b.cwd,previousSessionId:b.sessionId,cwd:a.cwd,sessionId:a.sessionId,branchId:a.branchId}),g})}getWorkSessionTree(a){let b=o.i0.parse(a);return this.runExclusive(async()=>{await this.ensureHydrated();let a=this.workSessionsById.get(b.workId);if(!a)throw new B(b.workId);return this.assertSessionBinding(a,b.sessionId),o.u1.parse(await (0,t.ls)(a.sessionId).readSessionTree())})}getWorkSessionTreeEntry(a){let b=o.iW.parse(a);return this.runExclusive(async()=>{await this.ensureHydrated();let a=this.workSessionsById.get(b.workId);if(!a)throw new B(b.workId);this.assertSessionBinding(a,b.sessionId);try{return o.Cn.parse(await (0,t.ls)(a.sessionId).readSessionTreeEntryDetail(b.entryId))}catch(a){if(a instanceof u.Ns)throw new G(b.entryId);throw a}})}branchWorkSession(a){let b=o.g$.parse(a);return this.runExclusive(async()=>{let a;await this.ensureHydrated();let c=this.workSessionsById.get(b.workId);if(!c)throw new B(b.workId);if(this.assertSessionBinding(c,b.sessionId),"tree"===b.action){let a,d=this.toListItem(c);await this.chat.pauseWorkSession(c.workId);try{(a=await c.branch(b.entryId)).changed?await this.chat.refreshWorkSession(c):this.chat.resumeWorkSession(c.workId)}catch(a){if(c.branchId!==d.branchId){await this.chat.refreshWorkSession(c);let a=this.toChanges(d,this.toListItem(c));a&&this.publishUpdate({type:"update",workId:c.workId,changes:a})}else this.chat.resumeWorkSession(c.workId);this.throwBranchError(a,b.entryId)}let e=this.toListItem(c),f=this.toChanges(d,e);f&&this.publishUpdate({type:"update",workId:c.workId,changes:f});let g=this.createSnapshot();return console.info("[Pi Desk][WorkSessionManage] 已切换当前 JSONL 分支",{workId:c.workId,cwd:c.cwd,sessionId:c.sessionId,entryId:b.entryId,branchId:c.branchId,changed:a.changed}),o.WJ.parse({...g,targetWorkId:c.workId,editorText:a.editorText})}"clone"===b.action&&await this.chat.pauseWorkSession(c.workId);try{a=await c.createBranchedSession((0,f.randomUUID)(),"fork"===b.action?{position:"before",entryId:b.entryId}:{position:"at"}),this.chat.addWorkSession(a.workSession)}catch(a){this.throwBranchError(a,"entryId"in b?b.entryId:null)}finally{"clone"===b.action&&this.chat.resumeWorkSession(c.workId)}let d=a.workSession;this.insertUnpinnedWorkSession(d),this.persist();let e=this.createSnapshot();return this.publishUpdate({type:"snapshot",...e}),console.info("[Pi Desk][WorkSessionManage] 已创建分支 WorkSession",{action:b.action,sourceWorkId:c.workId,sourceSessionId:c.sessionId,workId:d.workId,cwd:d.cwd,entryId:"entryId"in b?b.entryId:null,sessionId:d.sessionId,branchId:d.branchId}),o.WJ.parse({...e,targetWorkId:d.workId,editorText:a.editorText})})}removeWorkSession(a){let b=m.eW.parse(a);return this.runExclusive(async()=>{await this.ensureHydrated();let a=this.workSessionsById.get(b);if(!a)return!1;let c=Array.from(this.workSessionsById.keys()).indexOf(b);return await this.chat.pauseWorkSession(b),await this.chat.removeWorkSession(a),this.workSessionsById.delete(b),c<this.pinnedCount&&(this.pinnedCount-=1),this.persist(),this.publishUpdate({type:"delete",workId:b}),console.info("[Pi Desk][WorkSessionManage] 已删除工作会话",{workId:b,pinnedCount:this.pinnedCount}),!0})}async ensureHydrated(){if(this.hydrated)return;let a=performance.now();console.info("[Pi Desk][WorkSessionManage] 开始恢复工作会话",{workSessionCount:this.restoredRecords.length});let b=await Promise.all(this.restoredRecords.map(a=>p.E.create(a.workId,a.cwd,a.sessionId))),c=performance.now();await this.chat.initialize(b);let d=performance.now();for(let e of(console.info("[Pi Desk][WorkSessionManage] 工作会话恢复完成",{workSessionCount:b.length,durationMs:Math.round(d-a),sessionOpenMs:Math.round(c-a),messageProjectionMs:Math.round(d-c)}),b))this.workSessionsById.set(e.workId,e);this.hydrated=!0,this.rewriteLegacyStore&&(this.persist(),this.rewriteLegacyStore=!1,console.info("[Pi Desk][WorkSessionManage] 已升级工作会话持久化格式",{workSessionCount:b.length,pinnedCount:this.pinnedCount}))}async authorizeProjectFiles(a,b){await this.initialize();let c=this.workSessionsById.get(a);if(!c)throw new B(a);if(c.cwd!==b)throw new E(a,b,c.cwd);return c.cwd}findBoundWorkId(a){for(let b of this.workSessionsById.values())if(b.sessionId===a)return b.workId}insertUnpinnedWorkSession(a){let b=this.orderedWorkSessions();for(let c of(b.splice(this.pinnedCount,0,a),this.workSessionsById.clear(),b))this.workSessionsById.set(c.workId,c)}assertSessionBinding(a,b){if(a.sessionId!==b)throw new F(a.workId,b,a.sessionId)}throwBranchError(a,b){if(a instanceof u.Ns)throw new G(b??"");if(a instanceof u.dX)throw new I("fork-target","只有用户消息可以 Fork");if(a instanceof t.er)throw new I("clone-empty","当前会话还没有可克隆的消息");if(a instanceof t.Wo)throw new H(a.message);throw a}orderedWorkSessions(){return Array.from(this.workSessionsById.values())}createSnapshot(){return m.kg.parse({workSessions:this.orderedWorkSessions().map(a=>this.toListItem(a)),pinnedCount:this.pinnedCount})}toRecord(a){return m.ER.parse({workId:a.workId,cwd:a.cwd,sessionId:a.sessionId})}toListItem(a){let b=this.chat.metadataFor(a);return m.MY.parse({...this.toRecord(a),branchId:a.branchId,projectName:(0,h.basename)(a.cwd)||a.cwd,sessionTitle:b.sessionTitle,status:this.chat.statusFor(a),messageCounts:b.messageCounts,lastMessageUpdatedAt:b.lastMessageUpdatedAt})}toChanges(a,b){let c={};return a.cwd!==b.cwd&&(c.cwd=b.cwd),a.sessionId!==b.sessionId&&(c.sessionId=b.sessionId),a.branchId!==b.branchId&&(c.branchId=b.branchId),a.projectName!==b.projectName&&(c.projectName=b.projectName),a.sessionTitle!==b.sessionTitle&&(c.sessionTitle=b.sessionTitle),a.status!==b.status&&(c.status=b.status),(a.messageCounts.user!==b.messageCounts.user||a.messageCounts.total!==b.messageCounts.total)&&(c.messageCounts=b.messageCounts),a.lastMessageUpdatedAt!==b.lastMessageUpdatedAt&&(c.lastMessageUpdatedAt=b.lastMessageUpdatedAt),0===Object.keys(c).length?null:n.KE.parse(c)}publishChatRecordChange(a,b,c){if(!this.hydrated)return;let d=this.workSessionsById.get(a);if(!d)return;let e=this.toListItem(d),f=this.toChanges({...e,...b,status:c},e);f&&this.publishUpdate({type:"update",workId:a,changes:f})}publishUpdate(a){let b=n.ds.parse(a);for(let a of[...this.updateListeners])try{a(b)}catch(a){console.error("[Pi Desk][WorkSessionManage] 推送工作会话变化失败",{updateType:b.type,errorName:a instanceof Error?a.name:"UnknownError"})}}readPersistedState(){if(!(0,g.existsSync)(this.storePath))return{workSessions:[],pinnedCount:0,rewriteLegacyStore:!1};let a=JSON.parse((0,g.readFileSync)(this.storePath,"utf8")),b=Array.isArray(a),c=b?z.parse({workSessions:m.TO.parse(a),pinnedCount:0}):z.parse(a),d=new Set,e=new Set;for(let a of c.workSessions){if(d.has(a.workId))throw Error(`Duplicate persisted workId: ${a.workId}`);if(e.has(a.sessionId))throw Error(`Duplicate persisted sessionId binding: ${a.sessionId}`);d.add(a.workId),e.add(a.sessionId)}return{...c,rewriteLegacyStore:b}}persist(){let a=z.parse({workSessions:this.orderedWorkSessions().map(a=>this.toRecord(a)),pinnedCount:this.pinnedCount});(0,g.mkdirSync)((0,h.dirname)(this.storePath),{recursive:!0});let b=`${this.storePath}.${process.pid}.${(0,f.randomUUID)()}.tmp`;try{(0,g.writeFileSync)(b,`${JSON.stringify(a,null,2)}
2
- `,"utf8"),(0,g.renameSync)(b,this.storePath)}finally{(0,g.existsSync)(b)&&(0,g.unlinkSync)(b)}}runExclusive(a){let b=this.operationTail.then(a,a);return this.operationTail=b.then(()=>void 0,()=>void 0),b}}function y(){return globalThis.__piDeskWorkSessionManage||(globalThis.__piDeskWorkSessionManage=new K),globalThis.__piDeskWorkSessionManage}d()}catch(a){d(a)}})},25084:(a,b,c)=>{c.d(b,{QV:()=>u,RH:()=>p,WF:()=>k,uU:()=>r});var d=c(59473),e=c(96089),f=c(2002),g=c(24187);let h=d.k5(["extension","prompt","skill"]),i=d.Ik({name:d.Yj().trim().min(1).max(128),description:d.Yj().max(500).nullable(),source:h}).strict(),j=d.Ik({source:e.R}).strict(),k=d.Ik({commands:d.YO(i)}).strict(),l=d.Ik({source:e.R,command:d.Yj().trim().min(1).max(128),args:d.Yj().max(32768).optional()}).strict(),m=d.Ik({}).strict(),n=d.Ik({name:d.Yj().trim().min(1).max(128),description:d.Yj(),parameters:g.Dz,active:d.zM(),exposure:d.k5(["direct","model-only","codemode","deferred","hidden"]),source:d.Yj().nullable(),blockedByMode:d.zM()}).strict(),o=d.Ik({source:e.R}).strict(),p=d.Ik({tools:d.YO(n)}).strict(),q=d.Ik({source:e.R,command:d.Yj().min(1).max(32768),excludeFromContext:d.zM()}).strict(),r=d.Ik({output:d.Yj(),exitCode:d.ai().int().nullable(),cancelled:d.zM(),truncated:d.zM(),fullOutputPath:d.Yj().nullable()}).strict(),s=d.Ik({source:e.R}).strict(),t=d.Ik({}).strict(),u=Object.freeze({commandsList:(0,f.Vc)({path:"pi/commands/list",inputSchema:j,outputSchema:k}),commandExecute:(0,f.Vc)({path:"pi/commands/execute",inputSchema:l,outputSchema:m,timeoutMs:3e5}),toolsList:(0,f.Vc)({path:"pi/tools/list",inputSchema:o,outputSchema:p}),bashExecute:(0,f.Vc)({path:"pi/bash/execute",inputSchema:q,outputSchema:r,timeoutMs:12e4}),bashAbort:(0,f.Vc)({path:"pi/bash/abort",inputSchema:s,outputSchema:t})})},33270:(a,b,c)=>{c.d(b,{Cn:()=>l,WJ:()=>n,g$:()=>m,i0:()=>i,iW:()=>k,u1:()=>j});var d=c(59473),e=c(2364),f=c(54733);let g=d.k5(["user","assistant","tool","bash","custom_message","compaction","branch_summary","custom","model_change","thinking_level_change","session_info","label"]),h=d.Ik({entryId:f.C3,parentEntryId:f.C3.nullable(),timestampMs:e.k,kind:g,preview:d.Yj(),label:d.Yj().trim().min(1).nullable()}).strict(),i=d.Ik({workId:f.eW,sessionId:f.Kx}).strict(),j=d.Ik({sessionId:f.Kx,leafEntryId:f.C3.nullable(),nodes:d.YO(h)}).strict().superRefine((a,b)=>{let c=new Set;for(let[d,e]of a.nodes.entries())c.has(e.entryId)&&b.addIssue({code:"custom",message:"work session tree entryId values must be unique",path:["nodes",d,"entryId"]}),c.add(e.entryId);null===a.leafEntryId||c.has(a.leafEntryId)||b.addIssue({code:"custom",message:"work session tree leafEntryId must reference a node",path:["leafEntryId"]})}),k=d.Ik({workId:f.eW,sessionId:f.Kx,entryId:f.C3}).strict(),l=d.Ik({entryId:f.C3,kind:g,content:d.Yj(),truncated:d.zM()}).strict();d.k5(["tree","fork","clone"]);let m=d.gM("action",[d.Ik({action:d.eu("tree"),workId:f.eW,sessionId:f.Kx,entryId:f.C3}).strict(),d.Ik({action:d.eu("fork"),workId:f.eW,sessionId:f.Kx,entryId:f.C3}).strict(),d.Ik({action:d.eu("clone"),workId:f.eW,sessionId:f.Kx}).strict()]),n=d.Ik({workSessions:d.YO(f.MY),pinnedCount:f.MT,targetWorkId:f.eW,editorText:d.Yj().nullable()}).strict().superRefine((a,b)=>{a.pinnedCount>a.workSessions.length&&b.addIssue({code:"custom",message:"pinnedCount cannot exceed work session count",path:["pinnedCount"]}),a.workSessions.some(b=>b.workId===a.targetWorkId)||b.addIssue({code:"custom",message:"targetWorkId must reference a returned work session",path:["targetWorkId"]})})},40529:(a,b,c)=>{c.d(b,{IM:()=>l,kJ:()=>k});var d=c(59473),e=c(54733),f=c(62977);let g=d.Yj().trim().min(1),h=d.Yj().trim().min(1),i=d.Ik({provider:g,modelId:h,name:d.Yj().trim().min(1),input:d.YO(d.k5(["text","image"])).min(1),kind:d.k5(["physical","virtual"]),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).nullable(),thinkingLevels:d.YO(f.$).min(1)}).strict(),j=d.Ik({provider:g,modelId:h,thinkingLevel:f.$,color:d.Yj().trim().min(1).nullable()}).strict(),k=d.Ik({workId:e.eW}).strict(),l=d.Ik({models:d.YO(i),presets:d.YO(j)}).strict()},58311:(a,b,c)=>{c.d(b,{$C:()=>A,A8:()=>E,GR:()=>q,MQ:()=>D,Pq:()=>B,UH:()=>j,Wh:()=>r,Xo:()=>o,YT:()=>z});var d=c(59473),e=c(41904),f=c(20369),g=c(24187),h=c(2364);let i=d.Yj().uuid(),j=d.Yj().trim().min(1).max(256),k=d.k5(["info","success","warning","error"]),l=d.Yj().trim().min(1).max(120),m=d.Yj().trim().max(320).nullable(),n=d.Ik({type:d.eu("plugin"),pluginName:g.tv,name:g.f7,data:g.Dz}).strict(),o=d.Ik({notificationId:i,level:k,title:l,description:m,createdAt:h.k,event:n.nullable()}).strict(),p=d.g1(g.tv,g.Dz),q=d.Ik({mode:d.k5(["normal","basic"]).default("normal"),notifications:d.YO(o),plugins:p,capabilityModes:f.Wu,settings:e.J.default({region:{locale:"en",timeZone:"UTC"}})}).strict(),r=d.Ik({level:k.optional(),title:l.optional(),description:m.optional(),event:n.nullable().optional()}).strict().refine(a=>Object.keys(a).length>0,{message:"notification changes cannot be empty"}),s=d.Ik({type:d.eu("add"),notification:o}).strict(),t=d.Ik({type:d.eu("update"),notificationId:i,changes:r}).strict(),u=d.Ik({type:d.eu("delete"),notificationId:i}).strict(),v=d.gM("type",[s,t,u]),w=d.Ik({pluginName:g.tv,state:g.Dz.nullable()}).strict(),x=d.Ik({key:d.eu("capabilityModes"),update:f.Wu}).strict(),y=d.Ik({key:d.eu("settings"),update:e.J}).strict();d.gM("key",[y,x,d.Ik({key:d.eu("notifications"),update:v}).strict(),d.Ik({key:d.eu("plugins"),update:w}).strict()]);let z=d.KC([y.extend({type:d.eu("update")}),x.extend({type:d.eu("update")}),d.Ik({type:d.eu("replace"),runtime:q}).strict(),d.Ik({type:d.eu("update"),key:d.eu("notifications"),update:v}).strict(),d.Ik({type:d.eu("update"),key:d.eu("plugins"),update:w}).strict()]),A=d.gM("key",[d.Ik({key:d.eu("notifications"),update:u}).strict(),d.Ik({key:d.eu("settings"),update:d.Ik({region:e.a.unwrap().partial().strict().refine(a=>Object.keys(a).length>0,"地区更新不能为空")}).strict()}).strict()]),B=d.Ik({}).strict(),C=d.Ik({name:g.f7,data:g.Dz}).strict(),D=d.Ik({key:j.optional(),level:k,title:l,description:d.Yj().trim().max(320).optional(),event:C.optional()}).strict(),E=d.Ik({level:k.optional(),title:l.optional(),description:m.optional()}).strict().refine(a=>Object.keys(a).length>0,{message:"plugin notification changes cannot be empty"})},65129:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{G2:()=>l,W1:()=>j,XO:()=>o,pm:()=>k});var e=c(51455),f=c(73024),g=c(76760),h=c(7499),i=a([h]);h=(i.then?(await i)():i)[0];class p extends Error{constructor(a){super(`Pi project directory is invalid: ${a}`),this.name="L4PiDirectoryInvalidError"}}class q extends Error{constructor(a){super(`Pi project directory cannot be read: ${a}`),this.name="L4PiDirectoryReadError"}}function j(a){return a instanceof Error&&"L4PiDirectoryInvalidError"===a.name}function k(a){return a instanceof Error&&"L4PiDirectoryReadError"===a.name}function l(a){let b=(0,g.resolve)(a);try{if(!(0,f.statSync)(b).isDirectory())throw new p(b)}catch(a){if(a instanceof p)throw a;throw new p(b)}return b}function m(){return new Set((0,h.Us)().map(h.sC))}async function n(a,b,c,d){if(c)return!0;if(!d)return!1;try{return(await (0,e.stat)((0,g.join)(a,b))).isDirectory()}catch{return!1}}async function o(a){let b;if(null===a){let a,b,c;return a=(0,g.parse)(process.cwd()).root,b="win32"===process.platform?function(){let a=[];for(let b=65;b<=90;b+=1){let c=`${String.fromCharCode(b)}:\\`;try{(0,f.statSync)(c).isDirectory()&&a.push({cwd:c,name:c})}catch{}}return a}():[{cwd:a,name:a}],c=m(),{cwd:null,parentCwd:null,directories:b.filter(a=>!c.has((0,h.sC)(a.cwd)))}}let c=l(a);try{b=await (0,e.readdir)(c,{withFileTypes:!0})}catch{throw new q(c)}let d=m(),i=(await Promise.all(b.map(async a=>{if(!await n(c,a.name,a.isDirectory(),a.isSymbolicLink()))return null;let b=(0,g.resolve)(c,a.name);return d.has((0,h.sC)(b))?null:{cwd:b,name:a.name}}))).filter(a=>null!==a).sort((a,b)=>a.name.localeCompare(b.name,void 0,{numeric:!0,sensitivity:"base"})),j=(0,g.parse)(c).root;return{cwd:c,parentCwd:(0,h.sC)(c)===(0,h.sC)(j)?null:(0,g.dirname)(c),directories:i}}d()}catch(a){d(a)}})},77394:(a,b,c)=>{c.d(b,{XV:()=>p,Yh:()=>o,hr:()=>q});var d=c(59473),e=c(66951),f=c(63719),g=c(54733);let h=e.y2,i=d.Ik({workId:g.eW,cwd:g.ik}).strict(),j=e.Ww,k=e.cP,l=e.zp,m=e.u2;d.Ik({repositories:d.YO(m).max(h)}).strict(),i.extend({repositoryRoot:j}).strict();let n=e.zt,o=i.extend({repositoryRoot:j,target:n}).strict(),p=i.extend({repositoryRoot:j,name:k,startPoint:n.nullable()}).strict(),q=d.Ik({repository:l}).strict();i.extend({repositoryRoot:j,path:f._g}).strict()}};
1
+ "use strict";exports.id=23054,exports.ids=[23054],exports.modules={9711:(a,b,c)=>{c.d(b,{Gm:()=>i,Jk:()=>h});var d=c(59473),e=c(83905),f=c(2364);let g=d.k5(["title","user","assistant","sessionId"]),h=d.Ik({scope:g,count:d.ai().int().positive(),entryId:e.Rv.nullable(),timestampMs:f.k.nullable(),preview:d.Yj().min(1).max(160)}).strict(),i=d.Ik({query:d.Yj().trim().max(120).default(""),searchIn:d.YO(g).min(1).max(4).default(["title","user"])}).strict()},18477:(a,b,c)=>{c.d(b,{KE:()=>l,ds:()=>n,kM:()=>o});var d=c(59473),e=c(54733),f=c(58311),g=c(2364),h=c(2002);let i=d.Ik({}).strict(),j=d.Ik({workId:e.eW}).strict(),k=d.Ik({workId:e.eW}).strict(),l=d.Ik({cwd:e.ik.optional(),sessionId:e.Kx.optional(),branchId:d.Yj().min(1).optional(),projectName:d.Yj().trim().min(1).optional(),sessionTitle:d.Yj().trim().min(1).nullable().optional(),status:e.jw.optional(),messageCounts:e.AA.optional(),lastMessageUpdatedAt:g.k.nullable().optional()}).strict().refine(a=>Object.keys(a).length>0,{message:"work session changes cannot be empty"}),m=d.Ik({workSessions:d.YO(e.MY),pinnedCount:e.MT,appRuntime:f.GR}).strict().refine(a=>a.pinnedCount<=a.workSessions.length,{message:"pinnedCount cannot exceed work session count",path:["pinnedCount"]}),n=d.gM("type",[d.Ik({type:d.eu("snapshot"),workSessions:d.YO(e.MY),pinnedCount:e.MT}).strict().refine(a=>a.pinnedCount<=a.workSessions.length,{message:"pinnedCount cannot exceed work session count",path:["pinnedCount"]}),d.Ik({type:d.eu("update"),workId:e.eW,changes:l}).strict(),d.Ik({type:d.eu("delete"),workId:e.eW}).strict()]),o=Object.freeze({list:(0,h.Vc)({path:"work-sessions/list",inputSchema:i,outputSchema:m}),acknowledgeCompleted:(0,h.Vc)({path:"work-sessions/ack-completed",inputSchema:j,outputSchema:k}),update:(0,h._G)({path:"work-sessions/update",bodySchema:n})})},23024:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{E:()=>g});var e=c(72498),f=a([e]);e=(f.then?(await f)():f)[0];class g{constructor(a,b){this.workId=a,this.runtime=b}static async create(a,b,c){let d=c?await e.vC.open(b,c):e.vC.create(b);return new g(a,d)}get cwd(){return this.runtime.cwd}get sessionId(){return this.runtime.sessionId}get branchId(){return this.runtime.branchId}async branch(a){let b=await this.runtime.branch(a);return{changed:b.changed,editorText:b.editorText}}async createBranchedSession(a,b){let c=this.runtime.createBranchedSession(b);return{workSession:new g(a,c.runtime),editorText:c.editorText}}async send(a){return this.runtime.send(a)}async interrupt(){await this.runtime.interrupt()}async restoreQueuedMessages(){return this.runtime.restoreQueuedMessages()}async setTitle(a){await this.runtime.setTitle(a)}async setModel(a){await this.runtime.setModel(a)}}d()}catch(a){d(a)}})},23054:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{HK:()=>G,JJ:()=>z,Jv:()=>H,Ki:()=>D,VH:()=>E,XM:()=>C,k1:()=>B,qm:()=>y});var e=c(71473),f=c(77598),g=c(73024),h=c(76760),i=c(59473),j=c(25084),k=c(40529),l=c(77394),m=c(54733),n=c(94106),o=c(18477),p=c(33270),q=c(23024),r=c(52913),s=c(65129),t=c(65209),u=c(72498),v=c(46524),w=c(47574),x=a([e,q,s,t,u,w]);[e,q,s,t,u,w]=x.then?(await x)():x;let A=i.Ik({workSessions:m.TO,pinnedCount:m.MT}).strict().refine(a=>a.pinnedCount<=a.workSessions.length,{message:"pinnedCount cannot exceed persisted work session count",path:["pinnedCount"]});class B extends Error{constructor(){super("WorkSession order does not match the current collection"),this.name="WorkSessionOrderConflictError"}}class C extends Error{constructor(a){super(`WorkSession not found: ${a}`),this.name="WorkSessionNotFoundError"}}class D extends Error{constructor(a,b){super(`Pi session ${a} is already bound to work session ${b}`),this.name="WorkSessionSessionConflictError"}}class E extends Error{constructor(a,b){super(`Pi session ${b} was not found in ${a}`),this.name="WorkSessionHistoryNotFoundError"}}class F extends Error{constructor(a,b,c){super(`WorkSession project changed: ${a} (${b} -> ${c})`),this.name="WorkSessionProjectChangedError"}}class G extends Error{constructor(a,b,c){super(`WorkSession binding changed: ${a} (${b} -> ${c})`),this.name="WorkSessionBindingChangedError"}}class H extends Error{constructor(a){super(`WorkSession branch entry was not found: ${a}`),this.name="WorkSessionBranchEntryNotFoundError"}}class I extends Error{constructor(a){super(a),this.name="WorkSessionBranchBlockedError"}}class J extends Error{constructor(a,b){super(b),this.kind=a,this.name="WorkSessionBranchInvalidError"}}class K extends Error{constructor(a){super(`WorkSession project directory is invalid: ${a}`),this.name="WorkSessionDirectoryInvalidError"}}function y(a){return a instanceof Error&&"WorkSessionDirectoryInvalidError"===a.name}class L{constructor(a=(0,h.join)((0,e.M)(),"work-sessions.json")){this.storePath=a,this.workSessionsById=new Map,this.updateListeners=new Set,this.chat=new w.yO,this.hydrated=!1,this.operationTail=Promise.resolve();const b=this.readPersistedState();this.restoredRecords=b.workSessions,this.pinnedCount=b.pinnedCount,this.rewriteLegacyStore=b.rewriteLegacyStore,this.chat.subscribeRecordChanges((a,b,c)=>this.publishChatRecordChange(a,b,c))}initialize(){return this.runExclusive(()=>this.ensureHydrated())}listWorkSessions(){return this.runExclusive(async()=>(await this.ensureHydrated(),this.createSnapshot()))}searchWorkSessions(a){let b=n.A.parse(a);return this.runExclusive(async()=>(await this.ensureHydrated(),n.I.parse({sessions:this.orderedWorkSessions().flatMap(a=>{let c=(0,u.ls)(a.sessionId).search(b);return c.length>0?[{workId:a.workId,matches:c}]:[]})})))}runPluginRestart(a){return this.runExclusive(async()=>{await this.ensureHydrated();let b=await this.chat.pauseForProcessRestart();try{let b=await a();return console.info("[Pi Desk][WorkSessionManage] 全部工作会话已冻结,等待插件重载"),b}catch(a){throw b(),a}})}subscribeUpdates(a){return this.updateListeners.add(a),()=>this.updateListeners.delete(a)}subscribeMessageEvents(a){return this.chat.subscribe(a)}subscribePluginPushEvents(a){return this.chat.subscribePluginPush(a)}async prepareChatSourceSyncs(a){await this.initialize();let b=a.find(a=>!this.chat.isCurrentSource(a.source));if(b)throw new w.dM(b.source);return await Promise.all(a.map(a=>this.chat.prepareSource(a.source).catch(b=>{if(this.chat.isCurrentSource(a.source))throw b}))),a.filter(a=>this.chat.isCurrentSource(a.source)).map(a=>{let b=this.chat.createSync(a.source,a.cursor);return{source:a.source,event:b.event,watermark:b.watermark}})}async getChatMessageDetail(a){return await this.initialize(),this.chat.getMessageDetail(a)}async getChatModelContext(a){return await this.initialize(),this.chat.getModelContext(a)}async getChatImage(a){return await this.initialize(),this.chat.getImage(a)}async sendChat(a){return await this.initialize(),this.chat.send(a)}async interruptChat(a){await this.initialize(),await this.chat.interrupt(a)}async compactChat(a){await this.initialize(),await this.chat.compact(a)}async reloadChat(a,b){await this.initialize(),await this.chat.reload(a,b)}async setChatPresentation(a,b){await this.initialize(),await this.chat.setPresentation(a,b)}async restoreChatQueue(a){return await this.initialize(),this.chat.restoreQueuedMessages(a)}async setChatModel(a){await this.initialize(),await this.chat.setModel(a)}async setChatCapabilityMode(a){await this.initialize(),await this.chat.setCapabilityMode(a)}getNativeUi(a){if(!this.chat.isCurrentSource(a))throw new w.dM(a);return(0,u.ls)(a.sessionId).nativeUi}async invokeSessionPluginMethod(a){return await this.initialize(),this.chat.invokePluginMethod(a)}async listNativeCommands(a){return await this.initialize(),j.WF.parse({commands:await this.chat.listNativeCommands(a.source)})}async executeNativeCommand(a){await this.initialize(),await this.chat.executeNativeCommand(a.source,a.command,a.args??"")}async listNativeTools(a){return await this.initialize(),j.RH.parse({tools:await this.chat.listNativeTools(a.source)})}async executeDirectBash(a){return await this.initialize(),j.uU.parse(await this.chat.executeDirectBash(a.source,{command:a.command,excludeFromContext:a.excludeFromContext}))}async abortDirectBash(a){await this.initialize(),await this.chat.abortDirectBash(a.source)}async listModels(a){let b=m.eW.parse(a);await this.initialize();let c=this.workSessionsById.get(b);if(!c)throw new C(b);return k.IM.parse(await (0,u.ls)(c.sessionId).listModels())}async acknowledgeCompleted(a){let b=m.eW.parse(a);if(await this.initialize(),!this.workSessionsById.has(b))throw new C(b);return this.chat.acknowledgeCompleted(b)}setWorkSessionArrangement(a,b){let c=a.map(a=>m.eW.parse(a)),d=m.MT.parse(b);return this.runExclusive(async()=>{await this.ensureHydrated();let a=Array.from(this.workSessionsById.keys());if(c.length!==a.length||d>c.length||new Set(c).size!==c.length||c.some(a=>!this.workSessionsById.has(a)))throw new B;if(c.every((b,c)=>b===a[c])&&d===this.pinnedCount)return this.createSnapshot();let b=c.map(a=>this.workSessionsById.get(a));for(let a of(this.workSessionsById.clear(),b))this.workSessionsById.set(a.workId,a);this.pinnedCount=d,this.persist();let e=this.createSnapshot();return this.publishUpdate({type:"snapshot",...e}),console.info("[Pi Desk][WorkSessionManage] 已更新工作会话排列",{workIds:c,pinnedCount:d}),e})}getWorkSession(a){let b=m.eW.parse(a);return this.runExclusive(async()=>(await this.ensureHydrated(),this.workSessionsById.get(b)??null))}getProjectPreviewContext(a,b){return this.workSessionsById.get(a.workId)!==a?null:this.chat.getProjectPreviewContext(a,b)}async replaceProjectGitBranch(a){let b=l.Yh.parse(a),c=await this.authorizeProjectFiles(b.workId,b.cwd),d=await (0,r.Ak)(c,b.repositoryRoot,b.target);return console.info("[Pi Desk][WorkSessionManage] 已切换 Git 分支",{workId:b.workId,cwd:c,repositoryRoot:b.repositoryRoot,targetType:b.target.type,targetName:b.target.name}),l.hr.parse({repository:d})}async addProjectGitBranch(a){let b=l.XV.parse(a),c=await this.authorizeProjectFiles(b.workId,b.cwd),d=await (0,r.bV)(c,b.repositoryRoot,b.name,b.startPoint);return console.info("[Pi Desk][WorkSessionManage] 已新建并切换 Git 分支",{workId:b.workId,cwd:c,repositoryRoot:b.repositoryRoot,branchName:b.name,startPointType:b.startPoint?.type??null,startPointName:b.startPoint?.name??null}),l.hr.parse({repository:d})}createWorkSession(a,b){let c,d=m.ik.parse(a),e=void 0===b?void 0:m.Kx.parse(b);try{c=(0,s.G2)(d)}catch{throw new K(d)}return this.runExclusive(async()=>{if(await this.ensureHydrated(),e){let a=this.findBoundWorkId(e);if(a)throw new D(e,a);if(!await (0,t.vg)(c,e))throw new E(c,e)}let a=await q.E.create((0,f.randomUUID)(),c,e);this.chat.addWorkSession(a),this.insertUnpinnedWorkSession(a),this.persist();let b=this.toListItem(a),d=this.createSnapshot();return this.publishUpdate({type:"snapshot",...d}),console.info("[Pi Desk][WorkSessionManage] 已创建工作会话",{workId:a.workId,cwd:a.cwd,sessionId:a.sessionId,creationType:e?"history":"empty"}),b})}renameWorkSession(a){let b=m.qL.parse(a);return this.runExclusive(async()=>{await this.ensureHydrated();let a=this.workSessionsById.get(b.workId);if(!a)throw new C(b.workId);this.assertSessionBinding(a,b.sessionId),await this.chat.setTitle(a,b.title)})}replaceWorkSession(a,b){let c=m.eW.parse(a),d=b?{cwd:m.ik.parse(b.cwd),sessionId:m.Kx.parse(b.sessionId)}:null;return this.runExclusive(async()=>{let a;await this.ensureHydrated();let b=this.workSessionsById.get(c);if(!b)throw new C(c);if(d&&b.cwd===d.cwd&&b.sessionId===d.sessionId)return this.createSnapshot();if(d){let a=this.findBoundWorkId(d.sessionId);if(a&&a!==c)throw new D(d.sessionId,a)}let e=this.toListItem(b);await this.chat.pauseWorkSession(c);try{a=await q.E.create(c,d?.cwd??b.cwd,d?.sessionId),await this.chat.replaceWorkSession(b,a)}catch(a){throw this.chat.resumeWorkSession(c),a}this.workSessionsById.set(c,a),this.persist();let f=this.toListItem(a),g=this.createSnapshot(),h=this.toChanges(e,f);return h&&this.publishUpdate({type:"update",workId:c,changes:h}),console.info("[Pi Desk][WorkSessionManage] 已替换 Pi 会话",{workId:c,replacementType:d?"history":"empty",previousCwd:b.cwd,previousSessionId:b.sessionId,cwd:a.cwd,sessionId:a.sessionId,branchId:a.branchId}),g})}getWorkSessionTree(a){let b=p.i0.parse(a);return this.runExclusive(async()=>{await this.ensureHydrated();let a=this.workSessionsById.get(b.workId);if(!a)throw new C(b.workId);return this.assertSessionBinding(a,b.sessionId),p.u1.parse(await (0,u.ls)(a.sessionId).readSessionTree())})}getWorkSessionTreeEntry(a){let b=p.iW.parse(a);return this.runExclusive(async()=>{await this.ensureHydrated();let a=this.workSessionsById.get(b.workId);if(!a)throw new C(b.workId);this.assertSessionBinding(a,b.sessionId);try{return p.Cn.parse(await (0,u.ls)(a.sessionId).readSessionTreeEntryDetail(b.entryId))}catch(a){if(a instanceof v.Ns)throw new H(b.entryId);throw a}})}branchWorkSession(a){let b=p.g$.parse(a);return this.runExclusive(async()=>{let a;await this.ensureHydrated();let c=this.workSessionsById.get(b.workId);if(!c)throw new C(b.workId);if(this.assertSessionBinding(c,b.sessionId),"tree"===b.action||"resend"===b.action){let a,d=this.toListItem(c);await this.chat.pauseWorkSession(c.workId);let e=!1;try{"resend"===b.action?(await c.send({mode:"resend",entryId:b.entryId,onBranchChanged:async()=>{await this.chat.refreshWorkSession(c,!1),e=!0}}),a={changed:!0,editorText:null}):(a=await c.branch(b.entryId)).changed&&await this.chat.refreshWorkSession(c)}catch(a){if(c.branchId!==d.branchId||e){e||await this.chat.refreshWorkSession(c,!1);let a=this.toChanges(d,this.toListItem(c));a&&this.publishUpdate({type:"update",workId:c.workId,changes:a})}this.throwBranchError(a,b.entryId)}finally{this.chat.resumeWorkSession(c.workId)}let f=this.toListItem(c),g=this.toChanges(d,f);g&&this.publishUpdate({type:"update",workId:c.workId,changes:g});let h=this.createSnapshot();return console.info("[Pi Desk][WorkSessionManage] 已切换当前 JSONL 分支",{workId:c.workId,cwd:c.cwd,sessionId:c.sessionId,entryId:b.entryId,branchId:c.branchId,action:b.action,changed:a.changed}),p.WJ.parse({...h,targetWorkId:c.workId,editorText:a.editorText})}"clone"===b.action&&await this.chat.pauseWorkSession(c.workId);try{a=await c.createBranchedSession((0,f.randomUUID)(),"fork"===b.action?{position:"before",entryId:b.entryId}:{position:"at"}),this.chat.addWorkSession(a.workSession)}catch(a){this.throwBranchError(a,"entryId"in b?b.entryId:null)}finally{"clone"===b.action&&this.chat.resumeWorkSession(c.workId)}let d=a.workSession;this.insertUnpinnedWorkSession(d),this.persist();let e=this.createSnapshot();return this.publishUpdate({type:"snapshot",...e}),console.info("[Pi Desk][WorkSessionManage] 已创建分支 WorkSession",{action:b.action,sourceWorkId:c.workId,sourceSessionId:c.sessionId,workId:d.workId,cwd:d.cwd,entryId:"entryId"in b?b.entryId:null,sessionId:d.sessionId,branchId:d.branchId}),p.WJ.parse({...e,targetWorkId:d.workId,editorText:a.editorText})})}removeWorkSession(a){let b=m.eW.parse(a);return this.runExclusive(async()=>{await this.ensureHydrated();let a=this.workSessionsById.get(b);if(!a)return!1;let c=Array.from(this.workSessionsById.keys()).indexOf(b);return await this.chat.pauseWorkSession(b),await this.chat.removeWorkSession(a),this.workSessionsById.delete(b),c<this.pinnedCount&&(this.pinnedCount-=1),this.persist(),this.publishUpdate({type:"delete",workId:b}),console.info("[Pi Desk][WorkSessionManage] 已删除工作会话",{workId:b,pinnedCount:this.pinnedCount}),!0})}async ensureHydrated(){if(this.hydrated)return;let a=performance.now();console.info("[Pi Desk][WorkSessionManage] 开始恢复工作会话",{workSessionCount:this.restoredRecords.length});let b=await Promise.all(this.restoredRecords.map(a=>q.E.create(a.workId,a.cwd,a.sessionId))),c=performance.now();await this.chat.initialize(b);let d=performance.now();for(let e of(console.info("[Pi Desk][WorkSessionManage] 工作会话恢复完成",{workSessionCount:b.length,durationMs:Math.round(d-a),sessionOpenMs:Math.round(c-a),messageProjectionMs:Math.round(d-c)}),b))this.workSessionsById.set(e.workId,e);this.hydrated=!0,this.rewriteLegacyStore&&(this.persist(),this.rewriteLegacyStore=!1,console.info("[Pi Desk][WorkSessionManage] 已升级工作会话持久化格式",{workSessionCount:b.length,pinnedCount:this.pinnedCount}))}async authorizeProjectFiles(a,b){await this.initialize();let c=this.workSessionsById.get(a);if(!c)throw new C(a);if(c.cwd!==b)throw new F(a,b,c.cwd);return c.cwd}findBoundWorkId(a){for(let b of this.workSessionsById.values())if(b.sessionId===a)return b.workId}insertUnpinnedWorkSession(a){let b=this.orderedWorkSessions();for(let c of(b.splice(this.pinnedCount,0,a),this.workSessionsById.clear(),b))this.workSessionsById.set(c.workId,c)}assertSessionBinding(a,b){if(a.sessionId!==b)throw new G(a.workId,b,a.sessionId)}throwBranchError(a,b){if(a instanceof v.Ns)throw new H(b??"");if(a instanceof v.dX)throw new J("fork-target","只有用户消息可以 Fork");if(a instanceof u.M2)throw new J("resend-target","只有用户消息可以重发");if(a instanceof u.er)throw new J("clone-empty","当前会话还没有可克隆的消息");if(a instanceof u.Wo)throw new I(a.message);throw a}orderedWorkSessions(){return Array.from(this.workSessionsById.values())}createSnapshot(){return m.kg.parse({workSessions:this.orderedWorkSessions().map(a=>this.toListItem(a)),pinnedCount:this.pinnedCount})}toRecord(a){return m.ER.parse({workId:a.workId,cwd:a.cwd,sessionId:a.sessionId})}toListItem(a){let b=this.chat.metadataFor(a);return m.MY.parse({...this.toRecord(a),branchId:a.branchId,projectName:(0,h.basename)(a.cwd)||a.cwd,sessionTitle:b.sessionTitle,status:this.chat.statusFor(a),messageCounts:b.messageCounts,lastMessageUpdatedAt:b.lastMessageUpdatedAt})}toChanges(a,b){let c={};return a.cwd!==b.cwd&&(c.cwd=b.cwd),a.sessionId!==b.sessionId&&(c.sessionId=b.sessionId),a.branchId!==b.branchId&&(c.branchId=b.branchId),a.projectName!==b.projectName&&(c.projectName=b.projectName),a.sessionTitle!==b.sessionTitle&&(c.sessionTitle=b.sessionTitle),a.status!==b.status&&(c.status=b.status),(a.messageCounts.user!==b.messageCounts.user||a.messageCounts.total!==b.messageCounts.total)&&(c.messageCounts=b.messageCounts),a.lastMessageUpdatedAt!==b.lastMessageUpdatedAt&&(c.lastMessageUpdatedAt=b.lastMessageUpdatedAt),0===Object.keys(c).length?null:o.KE.parse(c)}publishChatRecordChange(a,b,c){if(!this.hydrated)return;let d=this.workSessionsById.get(a);if(!d)return;let e=this.toListItem(d),f=this.toChanges({...e,...b,status:c},e);f&&this.publishUpdate({type:"update",workId:a,changes:f})}publishUpdate(a){let b=o.ds.parse(a);for(let a of[...this.updateListeners])try{a(b)}catch(a){console.error("[Pi Desk][WorkSessionManage] 推送工作会话变化失败",{updateType:b.type,errorName:a instanceof Error?a.name:"UnknownError"})}}readPersistedState(){if(!(0,g.existsSync)(this.storePath))return{workSessions:[],pinnedCount:0,rewriteLegacyStore:!1};let a=JSON.parse((0,g.readFileSync)(this.storePath,"utf8")),b=Array.isArray(a),c=b?A.parse({workSessions:m.TO.parse(a),pinnedCount:0}):A.parse(a),d=new Set,e=new Set;for(let a of c.workSessions){if(d.has(a.workId))throw Error(`Duplicate persisted workId: ${a.workId}`);if(e.has(a.sessionId))throw Error(`Duplicate persisted sessionId binding: ${a.sessionId}`);d.add(a.workId),e.add(a.sessionId)}return{...c,rewriteLegacyStore:b}}persist(){let a=A.parse({workSessions:this.orderedWorkSessions().map(a=>this.toRecord(a)),pinnedCount:this.pinnedCount});(0,g.mkdirSync)((0,h.dirname)(this.storePath),{recursive:!0});let b=`${this.storePath}.${process.pid}.${(0,f.randomUUID)()}.tmp`;try{(0,g.writeFileSync)(b,`${JSON.stringify(a,null,2)}
2
+ `,"utf8"),(0,g.renameSync)(b,this.storePath)}finally{(0,g.existsSync)(b)&&(0,g.unlinkSync)(b)}}runExclusive(a){let b=this.operationTail.then(a,a);return this.operationTail=b.then(()=>void 0,()=>void 0),b}}function z(){return globalThis.__piDeskWorkSessionManage||(globalThis.__piDeskWorkSessionManage=new L),globalThis.__piDeskWorkSessionManage}d()}catch(a){d(a)}})},25084:(a,b,c)=>{c.d(b,{QV:()=>u,RH:()=>p,WF:()=>k,uU:()=>r});var d=c(59473),e=c(96089),f=c(2002),g=c(24187);let h=d.k5(["extension","prompt","skill"]),i=d.Ik({name:d.Yj().trim().min(1).max(128),description:d.Yj().max(500).nullable(),source:h}).strict(),j=d.Ik({source:e.R}).strict(),k=d.Ik({commands:d.YO(i)}).strict(),l=d.Ik({source:e.R,command:d.Yj().trim().min(1).max(128),args:d.Yj().max(32768).optional()}).strict(),m=d.Ik({}).strict(),n=d.Ik({name:d.Yj().trim().min(1).max(128),description:d.Yj(),parameters:g.Dz,active:d.zM(),exposure:d.k5(["direct","model-only","codemode","deferred","hidden"]),source:d.Yj().nullable(),blockedByMode:d.zM()}).strict(),o=d.Ik({source:e.R}).strict(),p=d.Ik({tools:d.YO(n)}).strict(),q=d.Ik({source:e.R,command:d.Yj().min(1).max(32768),excludeFromContext:d.zM()}).strict(),r=d.Ik({output:d.Yj(),exitCode:d.ai().int().nullable(),cancelled:d.zM(),truncated:d.zM(),fullOutputPath:d.Yj().nullable()}).strict(),s=d.Ik({source:e.R}).strict(),t=d.Ik({}).strict(),u=Object.freeze({commandsList:(0,f.Vc)({path:"pi/commands/list",inputSchema:j,outputSchema:k}),commandExecute:(0,f.Vc)({path:"pi/commands/execute",inputSchema:l,outputSchema:m,timeoutMs:3e5}),toolsList:(0,f.Vc)({path:"pi/tools/list",inputSchema:o,outputSchema:p}),bashExecute:(0,f.Vc)({path:"pi/bash/execute",inputSchema:q,outputSchema:r,timeoutMs:12e4}),bashAbort:(0,f.Vc)({path:"pi/bash/abort",inputSchema:s,outputSchema:t})})},33270:(a,b,c)=>{c.d(b,{Cn:()=>l,WJ:()=>n,g$:()=>m,i0:()=>i,iW:()=>k,u1:()=>j});var d=c(59473),e=c(2364),f=c(54733);let g=d.k5(["user","assistant","tool","bash","custom_message","compaction","branch_summary","custom","model_change","thinking_level_change","session_info","label"]),h=d.Ik({entryId:f.C3,parentEntryId:f.C3.nullable(),timestampMs:e.k,kind:g,preview:d.Yj(),label:d.Yj().trim().min(1).nullable()}).strict(),i=d.Ik({workId:f.eW,sessionId:f.Kx}).strict(),j=d.Ik({sessionId:f.Kx,leafEntryId:f.C3.nullable(),nodes:d.YO(h)}).strict().superRefine((a,b)=>{let c=new Set;for(let[d,e]of a.nodes.entries())c.has(e.entryId)&&b.addIssue({code:"custom",message:"work session tree entryId values must be unique",path:["nodes",d,"entryId"]}),c.add(e.entryId);null===a.leafEntryId||c.has(a.leafEntryId)||b.addIssue({code:"custom",message:"work session tree leafEntryId must reference a node",path:["leafEntryId"]})}),k=d.Ik({workId:f.eW,sessionId:f.Kx,entryId:f.C3}).strict(),l=d.Ik({entryId:f.C3,kind:g,content:d.Yj(),truncated:d.zM()}).strict();d.k5(["tree","fork","clone","resend"]);let m=d.gM("action",[d.Ik({action:d.eu("tree"),workId:f.eW,sessionId:f.Kx,entryId:f.C3}).strict(),d.Ik({action:d.eu("resend"),workId:f.eW,sessionId:f.Kx,entryId:f.C3}).strict(),d.Ik({action:d.eu("fork"),workId:f.eW,sessionId:f.Kx,entryId:f.C3}).strict(),d.Ik({action:d.eu("clone"),workId:f.eW,sessionId:f.Kx}).strict()]),n=d.Ik({workSessions:d.YO(f.MY),pinnedCount:f.MT,targetWorkId:f.eW,editorText:d.Yj().nullable()}).strict().superRefine((a,b)=>{a.pinnedCount>a.workSessions.length&&b.addIssue({code:"custom",message:"pinnedCount cannot exceed work session count",path:["pinnedCount"]}),a.workSessions.some(b=>b.workId===a.targetWorkId)||b.addIssue({code:"custom",message:"targetWorkId must reference a returned work session",path:["targetWorkId"]})})},40529:(a,b,c)=>{c.d(b,{IM:()=>l,kJ:()=>k});var d=c(59473),e=c(54733),f=c(62977);let g=d.Yj().trim().min(1),h=d.Yj().trim().min(1),i=d.Ik({provider:g,modelId:h,name:d.Yj().trim().min(1),input:d.YO(d.k5(["text","image"])).min(1),kind:d.k5(["physical","virtual"]),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).nullable(),thinkingLevels:d.YO(f.$).min(1)}).strict(),j=d.Ik({provider:g,modelId:h,thinkingLevel:f.$,color:d.Yj().trim().min(1).nullable()}).strict(),k=d.Ik({workId:e.eW}).strict(),l=d.Ik({models:d.YO(i),presets:d.YO(j)}).strict()},58311:(a,b,c)=>{c.d(b,{$C:()=>A,A8:()=>E,GR:()=>q,MQ:()=>D,Pq:()=>B,UH:()=>j,Wh:()=>r,Xo:()=>o,YT:()=>z});var d=c(59473),e=c(41904),f=c(20369),g=c(24187),h=c(2364);let i=d.Yj().uuid(),j=d.Yj().trim().min(1).max(256),k=d.k5(["info","success","warning","error"]),l=d.Yj().trim().min(1).max(120),m=d.Yj().trim().max(320).nullable(),n=d.Ik({type:d.eu("plugin"),pluginName:g.tv,name:g.f7,data:g.Dz}).strict(),o=d.Ik({notificationId:i,level:k,title:l,description:m,createdAt:h.k,event:n.nullable()}).strict(),p=d.g1(g.tv,g.Dz),q=d.Ik({mode:d.k5(["normal","basic"]).default("normal"),notifications:d.YO(o),plugins:p,capabilityModes:f.Wu,settings:e.J.default({region:{locale:"en",timeZone:"UTC"}})}).strict(),r=d.Ik({level:k.optional(),title:l.optional(),description:m.optional(),event:n.nullable().optional()}).strict().refine(a=>Object.keys(a).length>0,{message:"notification changes cannot be empty"}),s=d.Ik({type:d.eu("add"),notification:o}).strict(),t=d.Ik({type:d.eu("update"),notificationId:i,changes:r}).strict(),u=d.Ik({type:d.eu("delete"),notificationId:i}).strict(),v=d.gM("type",[s,t,u]),w=d.Ik({pluginName:g.tv,state:g.Dz.nullable()}).strict(),x=d.Ik({key:d.eu("capabilityModes"),update:f.Wu}).strict(),y=d.Ik({key:d.eu("settings"),update:e.J}).strict();d.gM("key",[y,x,d.Ik({key:d.eu("notifications"),update:v}).strict(),d.Ik({key:d.eu("plugins"),update:w}).strict()]);let z=d.KC([y.extend({type:d.eu("update")}),x.extend({type:d.eu("update")}),d.Ik({type:d.eu("replace"),runtime:q}).strict(),d.Ik({type:d.eu("update"),key:d.eu("notifications"),update:v}).strict(),d.Ik({type:d.eu("update"),key:d.eu("plugins"),update:w}).strict()]),A=d.gM("key",[d.Ik({key:d.eu("notifications"),update:u}).strict(),d.Ik({key:d.eu("settings"),update:d.Ik({region:e.a.unwrap().partial().strict().refine(a=>Object.keys(a).length>0,"地区更新不能为空")}).strict()}).strict()]),B=d.Ik({}).strict(),C=d.Ik({name:g.f7,data:g.Dz}).strict(),D=d.Ik({key:j.optional(),level:k,title:l,description:d.Yj().trim().max(320).optional(),event:C.optional()}).strict(),E=d.Ik({level:k.optional(),title:l.optional(),description:m.optional()}).strict().refine(a=>Object.keys(a).length>0,{message:"plugin notification changes cannot be empty"})},65129:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{G2:()=>l,W1:()=>j,XO:()=>o,pm:()=>k});var e=c(51455),f=c(73024),g=c(76760),h=c(7499),i=a([h]);h=(i.then?(await i)():i)[0];class p extends Error{constructor(a){super(`Pi project directory is invalid: ${a}`),this.name="L4PiDirectoryInvalidError"}}class q extends Error{constructor(a){super(`Pi project directory cannot be read: ${a}`),this.name="L4PiDirectoryReadError"}}function j(a){return a instanceof Error&&"L4PiDirectoryInvalidError"===a.name}function k(a){return a instanceof Error&&"L4PiDirectoryReadError"===a.name}function l(a){let b=(0,g.resolve)(a);try{if(!(0,f.statSync)(b).isDirectory())throw new p(b)}catch(a){if(a instanceof p)throw a;throw new p(b)}return b}function m(){return new Set((0,h.Us)().map(h.sC))}async function n(a,b,c,d){if(c)return!0;if(!d)return!1;try{return(await (0,e.stat)((0,g.join)(a,b))).isDirectory()}catch{return!1}}async function o(a){let b;if(null===a){let a,b,c;return a=(0,g.parse)(process.cwd()).root,b="win32"===process.platform?function(){let a=[];for(let b=65;b<=90;b+=1){let c=`${String.fromCharCode(b)}:\\`;try{(0,f.statSync)(c).isDirectory()&&a.push({cwd:c,name:c})}catch{}}return a}():[{cwd:a,name:a}],c=m(),{cwd:null,parentCwd:null,directories:b.filter(a=>!c.has((0,h.sC)(a.cwd)))}}let c=l(a);try{b=await (0,e.readdir)(c,{withFileTypes:!0})}catch{throw new q(c)}let d=m(),i=(await Promise.all(b.map(async a=>{if(!await n(c,a.name,a.isDirectory(),a.isSymbolicLink()))return null;let b=(0,g.resolve)(c,a.name);return d.has((0,h.sC)(b))?null:{cwd:b,name:a.name}}))).filter(a=>null!==a).sort((a,b)=>a.name.localeCompare(b.name,void 0,{numeric:!0,sensitivity:"base"})),j=(0,g.parse)(c).root;return{cwd:c,parentCwd:(0,h.sC)(c)===(0,h.sC)(j)?null:(0,g.dirname)(c),directories:i}}d()}catch(a){d(a)}})},77394:(a,b,c)=>{c.d(b,{XV:()=>p,Yh:()=>o,hr:()=>q});var d=c(59473),e=c(66951),f=c(63719),g=c(54733);let h=e.y2,i=d.Ik({workId:g.eW,cwd:g.ik}).strict(),j=e.Ww,k=e.cP,l=e.zp,m=e.u2;d.Ik({repositories:d.YO(m).max(h)}).strict(),i.extend({repositoryRoot:j}).strict();let n=e.zt,o=i.extend({repositoryRoot:j,target:n}).strict(),p=i.extend({repositoryRoot:j,name:k,startPoint:n.nullable()}).strict(),q=d.Ik({repository:l}).strict();i.extend({repositoryRoot:j,path:f._g}).strict()},94106:(a,b,c)=>{c.d(b,{A:()=>g,I:()=>h});var d=c(59473),e=c(9711),f=c(54733);let g=e.Gm.extend({query:d.Yj().trim().min(1).max(120)}),h=d.Ik({sessions:d.YO(d.Ik({workId:f.eW,matches:d.YO(e.Jk).min(1).max(4)}).strict())}).strict()}};