@jetcrab/pi-desk 1.1.28-dev → 1.1.30-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 (362) hide show
  1. package/docs/plugins.md +2 -2
  2. package/package.json +1 -1
  3. package/src/app/api/work-sessions/search/route.ts +1 -0
  4. package/src/app/project-preview/page.tsx +1 -3
  5. package/src/client/l1_entry/pages/l1-error-page.tsx +1 -1
  6. package/src/client/l1_entry/providers/l1-app-providers.tsx +2 -0
  7. package/src/client/l2_biz/auth/l2-login.module.css +1 -1
  8. package/src/client/l2_biz/plugin-host/l2-plugin-composer-panel.tsx +1 -1
  9. package/src/client/l2_biz/plugin-host/l2-plugin-contribution-host.tsx +1 -1
  10. package/src/client/l2_biz/plugin-host/l2-plugin-session-header-layout.ts +6 -3
  11. package/src/client/l2_biz/plugin-host/l2-plugin-session-header.tsx +75 -18
  12. package/src/client/l2_biz/project-preview/hooks/l2-use-project-preview.ts +1 -14
  13. package/src/client/l2_biz/project-preview/l2-project-preview-dialog.tsx +2 -3
  14. package/src/client/l2_biz/project-preview/l2-project-preview-page.tsx +1 -2
  15. package/src/client/l2_biz/project-preview/l2-project-preview.tsx +1 -4
  16. package/src/client/l2_biz/project-preview/views/l2-project-branch-select.tsx +42 -3
  17. package/src/client/l2_biz/settings/l2-settings.tsx +1 -1
  18. package/src/client/l2_biz/settings/l2-skills-settings.tsx +1 -1
  19. package/src/client/l2_biz/task-center/l2-task-center.tsx +1 -1
  20. package/src/client/l2_biz/workbench/file-workspace/l2-plugin-standalone-file-preview.tsx +1 -1
  21. package/src/client/l2_biz/workbench/file-workspace/l2-work-session-file-preview.tsx +1 -1
  22. package/src/client/l2_biz/workbench/git-workspace/l2-git-workspace-runtime.ts +11 -10
  23. package/src/client/l2_biz/workbench/hooks/l2-work-session-search.ts +52 -0
  24. package/src/client/l2_biz/workbench/hooks/l2-workbench-branch-picker.ts +42 -7
  25. package/src/client/l2_biz/workbench/hooks/l2-workbench-session-history.ts +143 -131
  26. package/src/client/l2_biz/workbench/hooks/l2-workbench-session-search.ts +97 -0
  27. package/src/client/l2_biz/workbench/l2-work-session-columns.tsx +8 -0
  28. package/src/client/l2_biz/workbench/l2-work-session-sidebar.tsx +129 -10
  29. package/src/client/l2_biz/workbench/l2-workbench-biz.ts +20 -2
  30. package/src/client/l2_biz/workbench/l2-workbench-branch-filter-preferences.ts +34 -0
  31. package/src/client/l2_biz/workbench/l2-workbench-branch-picker.tsx +34 -71
  32. package/src/client/l2_biz/workbench/l2-workbench-chat-input-runtime.ts +38 -1
  33. package/src/client/l2_biz/workbench/l2-workbench-chat-view.tsx +11 -1
  34. package/src/client/l2_biz/workbench/l2-workbench-picker-dialog.tsx +55 -215
  35. package/src/client/l2_biz/workbench/l2-workbench.tsx +21 -39
  36. package/src/client/l2_biz/workbench/views/l2-workbench-session-search.tsx +123 -0
  37. package/src/client/l3_modules/conversation/l3-conversation-messages.tsx +43 -4
  38. package/src/client/l3_modules/project-files/l3-markdown-preview.module.css +1 -1
  39. package/src/client/l3_modules/project-files/l3-project-document-git.ts +13 -29
  40. package/src/client/l3_modules/project-files/l3-project-document-view.tsx +1 -4
  41. package/src/client/l3_modules/project-files/l3-project-file-browser.module.css +14 -18
  42. package/src/client/l3_modules/project-files/l3-project-file-browser.tsx +52 -95
  43. package/src/client/l3_modules/project-files/l3-project-file-runtime.ts +52 -21
  44. package/src/client/l3_modules/project-files/l3-project-file-tabs.tsx +41 -62
  45. package/src/client/l3_modules/project-files/l3-project-git-runtime.ts +5 -4
  46. package/src/client/l3_modules/project-files/l3-use-project-refresh.ts +36 -0
  47. package/src/client/l3_modules/project-files/views/l3-project-search-results.tsx +2 -2
  48. package/src/client/l3_modules/project-files/views/l3-project-tree-folder.tsx +86 -0
  49. package/src/client/l4_foundation/desktop-window/l4-desktop-titlebar.tsx +188 -0
  50. package/src/client/l4_foundation/desktop-window/l4-desktop-window.css +107 -0
  51. package/src/client/l4_foundation/desktop-window/l4-desktop-window.ts +20 -0
  52. package/src/client/l4_foundation/ui/file-icons/README.md +1 -1
  53. package/src/client/l4_foundation/ui/file-icons/l4-file-icon.tsx +49 -2
  54. package/src/client/l4_foundation/ui/l4-app-dialog.tsx +2 -2
  55. package/src/common/l2_biz/pi-session/l2-pi-session-contract.ts +11 -24
  56. package/src/common/l2_biz/project-preview/l2-project-preview-navigation.ts +5 -12
  57. package/src/common/l2_biz/work-session/l2-work-session-search-contract.ts +26 -0
  58. package/src/common/l2_biz/work-session/l2-work-session-tree-contract.ts +9 -1
  59. package/src/common/l2_biz/workbench/l2-workbench-locale-messages.ts +12 -0
  60. package/src/common/l2_biz/workbench/l2-workbench-picker-messages.ts +6 -2
  61. package/src/common/l3_modules/conversation/l3-conversation-locale-messages.ts +2 -0
  62. package/src/common/l3_modules/pi/l3-pi-session-search-contract.ts +26 -0
  63. package/src/common/l4_foundation/locale/l4-host-error-messages.ts +2 -0
  64. package/src/server/l1_entry/api/l1-work-session-branch-route.ts +21 -15
  65. package/src/server/l1_entry/api/l1-work-session-search-route.ts +38 -0
  66. package/src/server/l2_biz/work-session/l2-work-session-chat-runtime.ts +4 -2
  67. package/src/server/l2_biz/work-session/l2-work-session-manage.ts +46 -10
  68. package/src/server/l3_modules/work-session/l3-work-session.ts +11 -6
  69. package/src/server/l4_foundation/pi/l4-pi-chat-worker.ts +35 -2
  70. package/src/server/l4_foundation/pi/l4-pi-session-history-catalog.ts +62 -113
  71. package/src/server/l4_foundation/pi/l4-pi-session-search.ts +166 -0
  72. package/src/server/l4_foundation/pi/l4-pi-work-session-runtime.ts +66 -5
  73. package/temp/build/pi-desk/release/.next/BUILD_ID +1 -1
  74. package/temp/build/pi-desk/release/.next/app-path-routes-manifest.json +1 -0
  75. package/temp/build/pi-desk/release/.next/build-manifest.json +3 -3
  76. package/temp/build/pi-desk/release/.next/required-server-files.js +2 -2
  77. package/temp/build/pi-desk/release/.next/required-server-files.json +2 -2
  78. package/temp/build/pi-desk/release/.next/routes-manifest.json +6 -0
  79. package/temp/build/pi-desk/release/.next/server/app/_global-error/page.js +2 -2
  80. package/temp/build/pi-desk/release/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  81. package/temp/build/pi-desk/release/.next/server/app/_global-error.html +1 -1
  82. package/temp/build/pi-desk/release/.next/server/app/_global-error.rsc +3 -3
  83. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  84. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +3 -3
  85. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  86. package/temp/build/pi-desk/release/.next/server/app/_not-found/page.js +1 -1
  87. package/temp/build/pi-desk/release/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  88. package/temp/build/pi-desk/release/.next/server/app/api/auth/login/route.js +2 -2
  89. package/temp/build/pi-desk/release/.next/server/app/api/auth/logout/route.js +1 -1
  90. package/temp/build/pi-desk/release/.next/server/app/api/auth-settings/get/route.js +1 -1
  91. package/temp/build/pi-desk/release/.next/server/app/api/auth-settings/replace/route.js +1 -1
  92. package/temp/build/pi-desk/release/.next/server/app/api/capability-modes/get/route.js +1 -1
  93. package/temp/build/pi-desk/release/.next/server/app/api/capability-modes/replace/route.js +1 -1
  94. package/temp/build/pi-desk/release/.next/server/app/api/chat/context/get/route.js +1 -1
  95. package/temp/build/pi-desk/release/.next/server/app/api/chat/images/get/route.js +1 -1
  96. package/temp/build/pi-desk/release/.next/server/app/api/chat/messages/get/route.js +1 -1
  97. package/temp/build/pi-desk/release/.next/server/app/api/health/route.js +1 -1
  98. package/temp/build/pi-desk/release/.next/server/app/api/mcp-check/get/route.js +1 -1
  99. package/temp/build/pi-desk/release/.next/server/app/api/mcp-settings/del/route.js +1 -1
  100. package/temp/build/pi-desk/release/.next/server/app/api/mcp-settings/get/route.js +1 -1
  101. package/temp/build/pi-desk/release/.next/server/app/api/mcp-settings/replace/route.js +1 -1
  102. package/temp/build/pi-desk/release/.next/server/app/api/model-catalog/list/route.js +1 -1
  103. package/temp/build/pi-desk/release/.next/server/app/api/model-settings/get/route.js +1 -1
  104. package/temp/build/pi-desk/release/.next/server/app/api/model-settings/preview/route.js +1 -1
  105. package/temp/build/pi-desk/release/.next/server/app/api/model-settings/replace/route.js +1 -1
  106. package/temp/build/pi-desk/release/.next/server/app/api/pi/directories/list/route.js +1 -1
  107. package/temp/build/pi-desk/release/.next/server/app/api/pi/directory-entries/list/route.js +1 -1
  108. package/temp/build/pi-desk/release/.next/server/app/api/pi/directory-ignores/list/route.js +1 -1
  109. package/temp/build/pi-desk/release/.next/server/app/api/pi/directory-ignores/replace/route.js +1 -1
  110. package/temp/build/pi-desk/release/.next/server/app/api/pi/models/list/route.js +1 -1
  111. package/temp/build/pi-desk/release/.next/server/app/api/pi/session-user-messages/list/route.js +1 -1
  112. package/temp/build/pi-desk/release/.next/server/app/api/pi/sessions/list/route.js +1 -1
  113. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/get/route.js +1 -1
  114. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/search/route.js +1 -1
  115. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/settings-get/route.js +1 -1
  116. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/settings-replace/route.js +1 -1
  117. package/temp/build/pi-desk/release/.next/server/app/api/plugins/add/route.js +1 -1
  118. package/temp/build/pi-desk/release/.next/server/app/api/plugins/apply/route.js +1 -1
  119. package/temp/build/pi-desk/release/.next/server/app/api/plugins/batch/route.js +1 -1
  120. package/temp/build/pi-desk/release/.next/server/app/api/plugins/browser-resources/[resourceGroup]/[...resourcePath]/route.js +1 -1
  121. package/temp/build/pi-desk/release/.next/server/app/api/plugins/del/route.js +1 -1
  122. package/temp/build/pi-desk/release/.next/server/app/api/plugins/enabled-set/route.js +1 -1
  123. package/temp/build/pi-desk/release/.next/server/app/api/plugins/get/route.js +1 -1
  124. package/temp/build/pi-desk/release/.next/server/app/api/plugins/host-runtime/[runtimeVersion]/[...resourcePath]/route.js +1 -1
  125. package/temp/build/pi-desk/release/.next/server/app/api/plugins/list/route.js +1 -1
  126. package/temp/build/pi-desk/release/.next/server/app/api/plugins/reload/route.js +1 -1
  127. package/temp/build/pi-desk/release/.next/server/app/api/plugins/update/route.js +1 -1
  128. package/temp/build/pi-desk/release/.next/server/app/api/project-files/get/route.js +2 -2
  129. package/temp/build/pi-desk/release/.next/server/app/api/project-files/list/route.js +1 -1
  130. package/temp/build/pi-desk/release/.next/server/app/api/project-files/reveal/route.js +1 -1
  131. package/temp/build/pi-desk/release/.next/server/app/api/project-files/search/route.js +1 -1
  132. package/temp/build/pi-desk/release/.next/server/app/api/project-git/get/route.js +2 -2
  133. package/temp/build/pi-desk/release/.next/server/app/api/project-git-branches/list/route.js +2 -2
  134. package/temp/build/pi-desk/release/.next/server/app/api/project-git-changes/list/route.js +1 -1
  135. package/temp/build/pi-desk/release/.next/server/app/api/project-git-diff/get/route.js +2 -2
  136. package/temp/build/pi-desk/release/.next/server/app/api/project-git-heads/get/route.js +1 -1
  137. package/temp/build/pi-desk/release/.next/server/app/api/project-git-log/list/route.js +2 -2
  138. package/temp/build/pi-desk/release/.next/server/app/api/project-model-default/get/route.js +1 -1
  139. package/temp/build/pi-desk/release/.next/server/app/api/project-model-default/replace/route.js +1 -1
  140. package/temp/build/pi-desk/release/.next/server/app/api/skill-files/get/route.js +1 -1
  141. package/temp/build/pi-desk/release/.next/server/app/api/skill-files/list/route.js +1 -1
  142. package/temp/build/pi-desk/release/.next/server/app/api/skill-files/replace/route.js +1 -1
  143. package/temp/build/pi-desk/release/.next/server/app/api/skills/list/route.js +1 -1
  144. package/temp/build/pi-desk/release/.next/server/app/api/task-center/images/get/route.js +1 -1
  145. package/temp/build/pi-desk/release/.next/server/app/api/task-center/messages/get/route.js +1 -1
  146. package/temp/build/pi-desk/release/.next/server/app/api/work-session-git-branch/add/route.js +1 -1
  147. package/temp/build/pi-desk/release/.next/server/app/api/work-session-git-branch/replace/route.js +1 -1
  148. package/temp/build/pi-desk/release/.next/server/app/api/work-session-tree/get/route.js +1 -1
  149. package/temp/build/pi-desk/release/.next/server/app/api/work-session-tree-entry/get/route.js +1 -1
  150. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/add/route.js +1 -1
  151. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/branch/route.js +1 -1
  152. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/del/route.js +1 -1
  153. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/rename/route.js +1 -1
  154. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/replace/route.js +1 -1
  155. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/search/route.js +1 -0
  156. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/search/route_client-reference-manifest.js +1 -0
  157. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/sort/route.js +1 -1
  158. package/temp/build/pi-desk/release/.next/server/app/favicon.ico/route.js +1 -1
  159. package/temp/build/pi-desk/release/.next/server/app/login/page.js +1 -1
  160. package/temp/build/pi-desk/release/.next/server/app/login/page_client-reference-manifest.js +1 -1
  161. package/temp/build/pi-desk/release/.next/server/app/page.js +138 -138
  162. package/temp/build/pi-desk/release/.next/server/app/page_client-reference-manifest.js +1 -1
  163. package/temp/build/pi-desk/release/.next/server/app/project-preview/page.js +1 -1
  164. package/temp/build/pi-desk/release/.next/server/app/project-preview/page_client-reference-manifest.js +1 -1
  165. package/temp/build/pi-desk/release/.next/server/app-paths-manifest.json +1 -0
  166. package/temp/build/pi-desk/release/.next/server/chunks/23054.js +2 -2
  167. package/temp/build/pi-desk/release/.next/server/chunks/25406.js +8 -8
  168. package/temp/build/pi-desk/release/.next/server/chunks/27344.js +3 -3
  169. package/temp/build/pi-desk/release/.next/server/chunks/3108.js +3 -3
  170. package/temp/build/pi-desk/release/.next/server/chunks/35985.js +3 -3
  171. package/temp/build/pi-desk/release/.next/server/chunks/41856.js +1 -0
  172. package/temp/build/pi-desk/release/.next/server/chunks/62900.js +235 -0
  173. package/temp/build/pi-desk/release/.next/server/chunks/6917.js +1 -1
  174. package/temp/build/pi-desk/release/.next/server/chunks/81363.js +1 -1
  175. package/temp/build/pi-desk/release/.next/server/chunks/81912.js +3 -0
  176. package/temp/build/pi-desk/release/.next/server/chunks/92386.js +2 -2
  177. package/temp/build/pi-desk/release/.next/server/middleware-build-manifest.js +1 -1
  178. package/temp/build/pi-desk/release/.next/server/pages/500.html +1 -1
  179. package/temp/build/pi-desk/release/.next/static/ErYBfYXAir5b-6rlacGvL/_buildManifest.js +1 -0
  180. package/temp/build/pi-desk/release/.next/static/chunks/10043-9d6c3735418ccaf9.js +238 -0
  181. package/temp/build/pi-desk/release/.next/static/chunks/11937-ac71fb0f7cef482a.js +1 -0
  182. package/temp/build/pi-desk/release/.next/static/chunks/30669-ffa76d39e0e25194.js +1 -0
  183. package/temp/build/pi-desk/release/.next/static/chunks/36643-f60e98278740073c.js +3 -0
  184. package/temp/build/pi-desk/release/.next/static/chunks/65232-f5b71cec787a30ec.js +15 -0
  185. package/temp/build/pi-desk/release/.next/static/chunks/{51474-8dc714cb76b2e60a.js → 65350-23bb961d87addf14.js} +3 -3
  186. package/temp/build/pi-desk/release/.next/static/chunks/app/_global-error/page-295cb63da5f7262f.js +1 -0
  187. package/temp/build/pi-desk/release/.next/static/chunks/app/_not-found/page-295cb63da5f7262f.js +1 -0
  188. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth/login/route-295cb63da5f7262f.js +1 -0
  189. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth/logout/route-295cb63da5f7262f.js +1 -0
  190. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth-settings/get/route-295cb63da5f7262f.js +1 -0
  191. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth-settings/replace/route-295cb63da5f7262f.js +1 -0
  192. package/temp/build/pi-desk/release/.next/static/chunks/app/api/capability-modes/get/route-295cb63da5f7262f.js +1 -0
  193. package/temp/build/pi-desk/release/.next/static/chunks/app/api/capability-modes/replace/route-295cb63da5f7262f.js +1 -0
  194. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/context/get/route-295cb63da5f7262f.js +1 -0
  195. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/images/get/route-295cb63da5f7262f.js +1 -0
  196. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/messages/get/route-295cb63da5f7262f.js +1 -0
  197. package/temp/build/pi-desk/release/.next/static/chunks/app/api/health/route-295cb63da5f7262f.js +1 -0
  198. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-check/get/route-295cb63da5f7262f.js +1 -0
  199. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/del/route-295cb63da5f7262f.js +1 -0
  200. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/get/route-295cb63da5f7262f.js +1 -0
  201. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/replace/route-295cb63da5f7262f.js +1 -0
  202. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-catalog/list/route-295cb63da5f7262f.js +1 -0
  203. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/get/route-295cb63da5f7262f.js +1 -0
  204. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/preview/route-295cb63da5f7262f.js +1 -0
  205. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/replace/route-295cb63da5f7262f.js +1 -0
  206. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directories/list/route-295cb63da5f7262f.js +1 -0
  207. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-entries/list/route-295cb63da5f7262f.js +1 -0
  208. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-ignores/list/route-295cb63da5f7262f.js +1 -0
  209. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-ignores/replace/route-295cb63da5f7262f.js +1 -0
  210. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/models/list/route-295cb63da5f7262f.js +1 -0
  211. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/session-user-messages/list/route-295cb63da5f7262f.js +1 -0
  212. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/sessions/list/route-295cb63da5f7262f.js +1 -0
  213. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/get/route-295cb63da5f7262f.js +1 -0
  214. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/search/route-295cb63da5f7262f.js +1 -0
  215. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/settings-get/route-295cb63da5f7262f.js +1 -0
  216. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/settings-replace/route-295cb63da5f7262f.js +1 -0
  217. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/add/route-295cb63da5f7262f.js +1 -0
  218. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/apply/route-295cb63da5f7262f.js +1 -0
  219. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/batch/route-295cb63da5f7262f.js +1 -0
  220. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/browser-resources/[resourceGroup]/[...resourcePath]/route-295cb63da5f7262f.js +1 -0
  221. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/del/route-295cb63da5f7262f.js +1 -0
  222. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/enabled-set/route-295cb63da5f7262f.js +1 -0
  223. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/get/route-295cb63da5f7262f.js +1 -0
  224. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/host-runtime/[runtimeVersion]/[...resourcePath]/route-295cb63da5f7262f.js +1 -0
  225. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/list/route-295cb63da5f7262f.js +1 -0
  226. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/reload/route-295cb63da5f7262f.js +1 -0
  227. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/update/route-295cb63da5f7262f.js +1 -0
  228. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/get/route-295cb63da5f7262f.js +1 -0
  229. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/list/route-295cb63da5f7262f.js +1 -0
  230. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/reveal/route-295cb63da5f7262f.js +1 -0
  231. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/search/route-295cb63da5f7262f.js +1 -0
  232. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git/get/route-295cb63da5f7262f.js +1 -0
  233. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-branches/list/route-295cb63da5f7262f.js +1 -0
  234. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-changes/list/route-295cb63da5f7262f.js +1 -0
  235. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-diff/get/route-295cb63da5f7262f.js +1 -0
  236. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-heads/get/route-295cb63da5f7262f.js +1 -0
  237. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-log/list/route-295cb63da5f7262f.js +1 -0
  238. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-model-default/get/route-295cb63da5f7262f.js +1 -0
  239. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-model-default/replace/route-295cb63da5f7262f.js +1 -0
  240. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/get/route-295cb63da5f7262f.js +1 -0
  241. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/list/route-295cb63da5f7262f.js +1 -0
  242. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/replace/route-295cb63da5f7262f.js +1 -0
  243. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skills/list/route-295cb63da5f7262f.js +1 -0
  244. package/temp/build/pi-desk/release/.next/static/chunks/app/api/task-center/images/get/route-295cb63da5f7262f.js +1 -0
  245. package/temp/build/pi-desk/release/.next/static/chunks/app/api/task-center/messages/get/route-295cb63da5f7262f.js +1 -0
  246. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-git-branch/add/route-295cb63da5f7262f.js +1 -0
  247. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-git-branch/replace/route-295cb63da5f7262f.js +1 -0
  248. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-tree/get/route-295cb63da5f7262f.js +1 -0
  249. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-tree-entry/get/route-295cb63da5f7262f.js +1 -0
  250. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/add/route-295cb63da5f7262f.js +1 -0
  251. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/branch/route-295cb63da5f7262f.js +1 -0
  252. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/del/route-295cb63da5f7262f.js +1 -0
  253. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/rename/route-295cb63da5f7262f.js +1 -0
  254. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/replace/route-295cb63da5f7262f.js +1 -0
  255. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/search/route-295cb63da5f7262f.js +1 -0
  256. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/sort/route-295cb63da5f7262f.js +1 -0
  257. package/temp/build/pi-desk/release/.next/static/chunks/app/error-1ab62762c5f4144f.js +1 -0
  258. package/temp/build/pi-desk/release/.next/static/chunks/app/layout-ca5ef5994165eb2e.js +1 -0
  259. package/temp/build/pi-desk/release/.next/static/chunks/app/login/{page-0d3d4827802108e5.js → page-0df9df996aa68060.js} +1 -1
  260. package/temp/build/pi-desk/release/.next/static/chunks/app/not-found-b8b9b7ef5ccb7601.js +1 -0
  261. package/temp/build/pi-desk/release/.next/static/chunks/app/page-978906de76a8dcfe.js +158 -0
  262. package/temp/build/pi-desk/release/.next/static/chunks/app/project-preview/{page-038b6c14e03ed878.js → page-aaa845016a934245.js} +1 -1
  263. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/app-error-295cb63da5f7262f.js +1 -0
  264. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/forbidden-295cb63da5f7262f.js +1 -0
  265. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/unauthorized-295cb63da5f7262f.js +1 -0
  266. package/temp/build/pi-desk/release/.next/static/chunks/{webpack-c0b805df46fcf8b3.js → webpack-a84310d111797bef.js} +1 -1
  267. package/temp/build/pi-desk/release/.next/static/css/053a8d82c09326cd.css +1 -0
  268. package/temp/build/pi-desk/release/.next/static/css/1cc92eec583aa639.css +1 -0
  269. package/temp/build/pi-desk/release/.next/static/css/{1e780a4936aa6ba3.css → 2bb393927ba8f71d.css} +1 -1
  270. package/temp/build/pi-desk/release/.next/static/css/3a07dcc86ffdf88c.css +1 -0
  271. package/temp/build/pi-desk/release/.next/static/css/3c59ac068ae404da.css +1 -0
  272. package/temp/build/pi-desk/release/.next/trace-build +1 -1
  273. package/temp/build/pi-desk/release/.next/server/chunks/35348.js +0 -3
  274. package/temp/build/pi-desk/release/.next/server/chunks/56830.js +0 -235
  275. package/temp/build/pi-desk/release/.next/server/chunks/80780.js +0 -1
  276. package/temp/build/pi-desk/release/.next/static/bj2dB_Z10YB_CqK_VNhDx/_buildManifest.js +0 -1
  277. package/temp/build/pi-desk/release/.next/static/chunks/11937-1d0a9822f2c7995b.js +0 -1
  278. package/temp/build/pi-desk/release/.next/static/chunks/14197-3d3ddd426ac06c9c.js +0 -3
  279. package/temp/build/pi-desk/release/.next/static/chunks/37313-d5970e2d0c270d22.js +0 -238
  280. package/temp/build/pi-desk/release/.next/static/chunks/65232-ef4e5a4174f62faf.js +0 -15
  281. package/temp/build/pi-desk/release/.next/static/chunks/79267-7d21d7cdbd7cfca1.js +0 -1
  282. package/temp/build/pi-desk/release/.next/static/chunks/app/_global-error/page-9969fe0baa238786.js +0 -1
  283. package/temp/build/pi-desk/release/.next/static/chunks/app/_not-found/page-9969fe0baa238786.js +0 -1
  284. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth/login/route-9969fe0baa238786.js +0 -1
  285. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth/logout/route-9969fe0baa238786.js +0 -1
  286. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth-settings/get/route-9969fe0baa238786.js +0 -1
  287. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth-settings/replace/route-9969fe0baa238786.js +0 -1
  288. package/temp/build/pi-desk/release/.next/static/chunks/app/api/capability-modes/get/route-9969fe0baa238786.js +0 -1
  289. package/temp/build/pi-desk/release/.next/static/chunks/app/api/capability-modes/replace/route-9969fe0baa238786.js +0 -1
  290. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/context/get/route-9969fe0baa238786.js +0 -1
  291. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/images/get/route-9969fe0baa238786.js +0 -1
  292. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/messages/get/route-9969fe0baa238786.js +0 -1
  293. package/temp/build/pi-desk/release/.next/static/chunks/app/api/health/route-9969fe0baa238786.js +0 -1
  294. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-check/get/route-9969fe0baa238786.js +0 -1
  295. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/del/route-9969fe0baa238786.js +0 -1
  296. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/get/route-9969fe0baa238786.js +0 -1
  297. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/replace/route-9969fe0baa238786.js +0 -1
  298. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-catalog/list/route-9969fe0baa238786.js +0 -1
  299. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/get/route-9969fe0baa238786.js +0 -1
  300. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/preview/route-9969fe0baa238786.js +0 -1
  301. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/replace/route-9969fe0baa238786.js +0 -1
  302. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directories/list/route-9969fe0baa238786.js +0 -1
  303. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-entries/list/route-9969fe0baa238786.js +0 -1
  304. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-ignores/list/route-9969fe0baa238786.js +0 -1
  305. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-ignores/replace/route-9969fe0baa238786.js +0 -1
  306. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/models/list/route-9969fe0baa238786.js +0 -1
  307. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/session-user-messages/list/route-9969fe0baa238786.js +0 -1
  308. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/sessions/list/route-9969fe0baa238786.js +0 -1
  309. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/get/route-9969fe0baa238786.js +0 -1
  310. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/search/route-9969fe0baa238786.js +0 -1
  311. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/settings-get/route-9969fe0baa238786.js +0 -1
  312. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/settings-replace/route-9969fe0baa238786.js +0 -1
  313. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/add/route-9969fe0baa238786.js +0 -1
  314. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/apply/route-9969fe0baa238786.js +0 -1
  315. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/batch/route-9969fe0baa238786.js +0 -1
  316. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/browser-resources/[resourceGroup]/[...resourcePath]/route-9969fe0baa238786.js +0 -1
  317. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/del/route-9969fe0baa238786.js +0 -1
  318. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/enabled-set/route-9969fe0baa238786.js +0 -1
  319. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/get/route-9969fe0baa238786.js +0 -1
  320. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/host-runtime/[runtimeVersion]/[...resourcePath]/route-9969fe0baa238786.js +0 -1
  321. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/list/route-9969fe0baa238786.js +0 -1
  322. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/reload/route-9969fe0baa238786.js +0 -1
  323. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/update/route-9969fe0baa238786.js +0 -1
  324. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/get/route-9969fe0baa238786.js +0 -1
  325. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/list/route-9969fe0baa238786.js +0 -1
  326. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/reveal/route-9969fe0baa238786.js +0 -1
  327. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/search/route-9969fe0baa238786.js +0 -1
  328. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git/get/route-9969fe0baa238786.js +0 -1
  329. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-branches/list/route-9969fe0baa238786.js +0 -1
  330. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-changes/list/route-9969fe0baa238786.js +0 -1
  331. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-diff/get/route-9969fe0baa238786.js +0 -1
  332. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-heads/get/route-9969fe0baa238786.js +0 -1
  333. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-log/list/route-9969fe0baa238786.js +0 -1
  334. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-model-default/get/route-9969fe0baa238786.js +0 -1
  335. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-model-default/replace/route-9969fe0baa238786.js +0 -1
  336. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/get/route-9969fe0baa238786.js +0 -1
  337. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/list/route-9969fe0baa238786.js +0 -1
  338. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/replace/route-9969fe0baa238786.js +0 -1
  339. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skills/list/route-9969fe0baa238786.js +0 -1
  340. package/temp/build/pi-desk/release/.next/static/chunks/app/api/task-center/images/get/route-9969fe0baa238786.js +0 -1
  341. package/temp/build/pi-desk/release/.next/static/chunks/app/api/task-center/messages/get/route-9969fe0baa238786.js +0 -1
  342. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-git-branch/add/route-9969fe0baa238786.js +0 -1
  343. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-git-branch/replace/route-9969fe0baa238786.js +0 -1
  344. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-tree/get/route-9969fe0baa238786.js +0 -1
  345. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-tree-entry/get/route-9969fe0baa238786.js +0 -1
  346. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/add/route-9969fe0baa238786.js +0 -1
  347. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/branch/route-9969fe0baa238786.js +0 -1
  348. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/del/route-9969fe0baa238786.js +0 -1
  349. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/rename/route-9969fe0baa238786.js +0 -1
  350. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/replace/route-9969fe0baa238786.js +0 -1
  351. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/sort/route-9969fe0baa238786.js +0 -1
  352. package/temp/build/pi-desk/release/.next/static/chunks/app/error-216b14b5da089ed3.js +0 -1
  353. package/temp/build/pi-desk/release/.next/static/chunks/app/layout-20718f1503910291.js +0 -1
  354. package/temp/build/pi-desk/release/.next/static/chunks/app/not-found-720cdf6a606b821a.js +0 -1
  355. package/temp/build/pi-desk/release/.next/static/chunks/app/page-ce2ebf7d8ea7a330.js +0 -158
  356. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/app-error-9969fe0baa238786.js +0 -1
  357. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/forbidden-9969fe0baa238786.js +0 -1
  358. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/unauthorized-9969fe0baa238786.js +0 -1
  359. package/temp/build/pi-desk/release/.next/static/css/2bdcf40eca12b794.css +0 -1
  360. package/temp/build/pi-desk/release/.next/static/css/2c3b0c0ff1f49c68.css +0 -1
  361. package/temp/build/pi-desk/release/.next/static/css/c43b04c244a64fb4.css +0 -1
  362. /package/temp/build/pi-desk/release/.next/static/{bj2dB_Z10YB_CqK_VNhDx → ErYBfYXAir5b-6rlacGvL}/_ssgManifest.js +0 -0
@@ -0,0 +1,166 @@
1
+ import 'server-only'
2
+
3
+ import type { SessionManager } from '@earendil-works/pi-coding-agent'
4
+
5
+ export type L4PiSessionSearchScope = 'title' | 'user' | 'assistant' | 'sessionId'
6
+
7
+ export interface L4PiSessionSearchMatch {
8
+ scope: L4PiSessionSearchScope
9
+ count: number
10
+ entryId: string | null
11
+ timestampMs: number | null
12
+ preview: string
13
+ }
14
+
15
+ export interface L4PiSessionSearchQuery {
16
+ query: string
17
+ searchIn: readonly L4PiSessionSearchScope[]
18
+ }
19
+
20
+ const MATCH_PREVIEW_MAX_LENGTH = 120
21
+ const MATCH_PREVIEW_PREFIX_LENGTH = 16
22
+
23
+ export interface L4PiSessionSearchMessage {
24
+ entryId: string
25
+ timestampMs: number
26
+ text: string
27
+ }
28
+
29
+ function isRecord(value: unknown): value is Record<string, unknown> {
30
+ return typeof value === 'object' && value !== null && !Array.isArray(value)
31
+ }
32
+
33
+ export function readL4PiSessionTimestamp(value: unknown): number | null {
34
+ if (typeof value === 'number' && Number.isSafeInteger(value) && value >= 0) return value
35
+ if (typeof value !== 'string') return null
36
+ const parsed = Date.parse(value)
37
+ return Number.isSafeInteger(parsed) && parsed >= 0 ? parsed : null
38
+ }
39
+
40
+ export function normalizeL4PiSessionSearch(value: string): string {
41
+ return value.trim().toLowerCase()
42
+ }
43
+
44
+ export function compactL4PiSessionPreview(text: string, maxLength: number): string {
45
+ const content = text.replace(/\s+/g, ' ').trim()
46
+ if (content.length <= maxLength) return content
47
+ return `${content.slice(0, maxLength - 1).trimEnd()}…`
48
+ }
49
+
50
+ export function readL4PiSessionMessageText(message: unknown): string {
51
+ if (!isRecord(message)) return ''
52
+ const content = message.content
53
+ if (typeof content === 'string') return content
54
+ if (!Array.isArray(content)) return ''
55
+ return content
56
+ .flatMap((part) => {
57
+ if (!isRecord(part) || part.type !== 'text' || typeof part.text !== 'string') return []
58
+ return [part.text]
59
+ })
60
+ .join('\n')
61
+ }
62
+
63
+ function previewForMatch(text: string, normalizedQuery: string): string {
64
+ const matchIndex = text.toLowerCase().indexOf(normalizedQuery)
65
+ if (matchIndex < 0) return ''
66
+ const start = Math.max(0, matchIndex - MATCH_PREVIEW_PREFIX_LENGTH)
67
+ const requiredEnd = matchIndex + normalizedQuery.length
68
+ const end = Math.min(text.length, Math.max(start + MATCH_PREVIEW_MAX_LENGTH, requiredEnd))
69
+ const content = text.slice(start, end).replace(/\s+/g, ' ').trim()
70
+ return `${start > 0 ? '…' : ''}${content}${end < text.length ? '…' : ''}`
71
+ }
72
+
73
+ function messageMatch(
74
+ scope: 'user' | 'assistant',
75
+ messages: Iterable<L4PiSessionSearchMessage>,
76
+ normalizedQuery: string
77
+ ): L4PiSessionSearchMatch | null {
78
+ let count = 0
79
+ let latest: L4PiSessionSearchMessage | undefined
80
+ for (const message of messages) {
81
+ if (!message.text.toLowerCase().includes(normalizedQuery)) continue
82
+ count += 1
83
+ latest = message
84
+ }
85
+ if (!latest) return null
86
+ return {
87
+ scope,
88
+ count,
89
+ entryId: latest.entryId,
90
+ timestampMs: latest.timestampMs,
91
+ preview: previewForMatch(latest.text, normalizedQuery)
92
+ }
93
+ }
94
+
95
+ export function matchL4PiSessionSearch(
96
+ session: {
97
+ sessionId: string
98
+ name: string | null
99
+ userMessages: Iterable<L4PiSessionSearchMessage>
100
+ assistantMessages: Iterable<L4PiSessionSearchMessage>
101
+ },
102
+ normalizedQuery: string,
103
+ searchIn: ReadonlySet<L4PiSessionSearchScope>
104
+ ): L4PiSessionSearchMatch[] {
105
+ if (!normalizedQuery) return []
106
+ const matches: L4PiSessionSearchMatch[] = []
107
+ if (searchIn.has('title') && session.name?.toLowerCase().includes(normalizedQuery)) {
108
+ matches.push({
109
+ scope: 'title',
110
+ count: 1,
111
+ entryId: null,
112
+ timestampMs: null,
113
+ preview: compactL4PiSessionPreview(session.name, 160)
114
+ })
115
+ }
116
+ if (searchIn.has('user')) {
117
+ const match = messageMatch('user', session.userMessages, normalizedQuery)
118
+ if (match) matches.push(match)
119
+ }
120
+ if (searchIn.has('assistant')) {
121
+ const match = messageMatch('assistant', session.assistantMessages, normalizedQuery)
122
+ if (match) matches.push(match)
123
+ }
124
+ if (searchIn.has('sessionId') && session.sessionId.toLowerCase().includes(normalizedQuery)) {
125
+ matches.push({
126
+ scope: 'sessionId',
127
+ count: 1,
128
+ entryId: null,
129
+ timestampMs: null,
130
+ preview: session.sessionId
131
+ })
132
+ }
133
+ return matches
134
+ }
135
+
136
+ export function searchL4PiSessionBranch(
137
+ sessionManager: SessionManager,
138
+ input: L4PiSessionSearchQuery
139
+ ): L4PiSessionSearchMatch[] {
140
+ const branch = sessionManager.getBranch()
141
+ function* messages(role: 'user' | 'assistant'): Generator<L4PiSessionSearchMessage> {
142
+ for (const entry of branch) {
143
+ if (entry.type !== 'message' || entry.message.role !== role) continue
144
+ const text = readL4PiSessionMessageText(entry.message)
145
+ if (!text.trim()) continue
146
+ yield {
147
+ entryId: entry.id,
148
+ timestampMs:
149
+ readL4PiSessionTimestamp(entry.timestamp) ??
150
+ readL4PiSessionTimestamp(entry.message.timestamp) ??
151
+ 0,
152
+ text
153
+ }
154
+ }
155
+ }
156
+ return matchL4PiSessionSearch(
157
+ {
158
+ sessionId: sessionManager.getSessionId(),
159
+ name: sessionManager.getSessionName()?.trim() || null,
160
+ userMessages: messages('user'),
161
+ assistantMessages: messages('assistant')
162
+ },
163
+ normalizeL4PiSessionSearch(input.query),
164
+ new Set(input.searchIn)
165
+ )
166
+ }
@@ -4,6 +4,11 @@ import { existsSync } from 'node:fs'
4
4
  import { resolve } from 'node:path'
5
5
  import { ModelRuntime, SessionManager, type SessionEntry } from '@earendil-works/pi-coding-agent'
6
6
  import type { PluginJsonObject, SessionPluginSource } from '@jetcrab/pi-desk-sdk'
7
+ import {
8
+ searchL4PiSessionBranch,
9
+ type L4PiSessionSearchMatch,
10
+ type L4PiSessionSearchQuery
11
+ } from './l4-pi-session-search'
7
12
  import { getL4CapabilityModesStore } from '@server/l4_foundation/capability-modes/l4-capability-modes-store'
8
13
  import {
9
14
  L4PiChatWorker,
@@ -17,7 +22,7 @@ import {
17
22
  type L4PiNativeCommandInfo,
18
23
  type L4PiNativeToolInfo
19
24
  } from './l4-pi-chat-worker'
20
- import type { L4PiInputImage } from './l4-pi-image'
25
+ import { decodeL4PiImage, type L4PiInputImage } from './l4-pi-image'
21
26
  import type { L4PiModelCatalog } from './l4-pi-model-catalog'
22
27
  import { L4PiSessionBranchIndex, type L4PendingBranchAppend } from './l4-pi-session-branch'
23
28
  import {
@@ -48,6 +53,19 @@ export class L4PiSessionBranchBlockedError extends Error {
48
53
  }
49
54
  }
50
55
 
56
+ export class L4PiSessionResendTargetError extends Error {
57
+ constructor(entryId: string) {
58
+ super(`Pi session resend target is not a user message: ${entryId}`)
59
+ this.name = 'L4PiSessionResendTargetError'
60
+ }
61
+ }
62
+
63
+ export interface L4PiResendInput {
64
+ mode: 'resend'
65
+ entryId: string
66
+ onBranchChanged: () => Promise<void>
67
+ }
68
+
51
69
  export class L4PiSessionCloneEmptyError extends Error {
52
70
  constructor() {
53
71
  super('Pi session has no durable entry to clone')
@@ -166,6 +184,11 @@ export class L4PiWorkSessionRuntime {
166
184
  return projectL4PiChatSnapshot(this.sessionManager)
167
185
  }
168
186
 
187
+ search(input: L4PiSessionSearchQuery): L4PiSessionSearchMatch[] {
188
+ this.assertActive()
189
+ return searchL4PiSessionBranch(this.sessionManager, input)
190
+ }
191
+
169
192
  async readSessionTree(): Promise<L4PiSessionTree> {
170
193
  this.assertActive()
171
194
  const models = this.sessionManager.getEntries().some((entry) => entry.type === 'model_change')
@@ -290,9 +313,35 @@ export class L4PiWorkSessionRuntime {
290
313
  await this.chatWorker.abortDirectBash()
291
314
  }
292
315
 
293
- async send(input: L4PiChatSendInput): Promise<{ tempId: string }> {
316
+ async send(input: L4PiChatSendInput | L4PiResendInput): Promise<{ tempId: string }> {
294
317
  this.assertActive()
295
- return this.chatWorker.send(input)
318
+ if (input.mode !== 'resend') return this.chatWorker.send(input)
319
+
320
+ const entry = this.sessionManager.getEntry(input.entryId)
321
+ if (!entry) throw new L4PiSessionEntryNotFoundError(input.entryId)
322
+ if (entry.type !== 'message' || entry.message.role !== 'user') {
323
+ throw new L4PiSessionResendTargetError(input.entryId)
324
+ }
325
+ const content = entry.message.content
326
+ const text =
327
+ typeof content === 'string'
328
+ ? content
329
+ : content.flatMap((part) => (part.type === 'text' ? [part.text] : [])).join('')
330
+ const images =
331
+ typeof content === 'string'
332
+ ? []
333
+ : content.flatMap((part) =>
334
+ part.type === 'image'
335
+ ? [{ ...decodeL4PiImage(part.data).metadata, data: part.data }]
336
+ : []
337
+ )
338
+ const blockReason = this.chatWorker.readPluginReloadBlockReason()
339
+ if (blockReason) throw new L4PiSessionBranchBlockedError(blockReason)
340
+ const selection = await this.navigateBranch(input.entryId, true, input.onBranchChanged)
341
+ if (!selection.changed) {
342
+ throw new L4PiSessionBranchBlockedError('分支切换已取消,未重发消息')
343
+ }
344
+ return this.chatWorker.send({ mode: 'auto', text, images })
296
345
  }
297
346
 
298
347
  async interrupt(): Promise<void> {
@@ -375,10 +424,20 @@ export class L4PiWorkSessionRuntime {
375
424
  }
376
425
 
377
426
  async branch(entryId: string): Promise<L4PiBranchSelection> {
427
+ return this.navigateBranch(entryId)
428
+ }
429
+
430
+ private async navigateBranch(
431
+ entryId: string,
432
+ beforeUserMessage = false,
433
+ onBranchChanged?: () => Promise<void>
434
+ ): Promise<L4PiBranchSelection> {
378
435
  this.assertActive()
379
436
  this.assertBranchable()
380
437
  this.syncBranchIndex()
381
- const selection = resolveL4PiBranchSelection(this.sessionManager, entryId)
438
+ const selection: L4PiBranchSelection = beforeUserMessage
439
+ ? { ...resolveL4PiForkSelection(this.sessionManager, entryId), changed: true }
440
+ : resolveL4PiBranchSelection(this.sessionManager, entryId)
382
441
  if (!selection.changed) return selection
383
442
 
384
443
  const previousLeaf = this.sessionManager.getLeafId()
@@ -387,7 +446,7 @@ export class L4PiWorkSessionRuntime {
387
446
  this.pendingBranchAppend = null
388
447
  let changed = false
389
448
  try {
390
- changed = await this.chatWorker.navigateTree(selection.selectedEntryId)
449
+ changed = await this.chatWorker.navigateTree(selection.selectedEntryId, beforeUserMessage)
391
450
  return changed
392
451
  ? selection
393
452
  : {
@@ -402,6 +461,8 @@ export class L4PiWorkSessionRuntime {
402
461
  if (changed || leaf !== previousLeaf) {
403
462
  this.pendingBranchAppend = this.branchIndex.predictAppend(leaf)
404
463
  this.branchIdValue = this.pendingBranchAppend.branchId
464
+ // 包括后置钩子抛错的已提交导航;刷新后再恢复消息,不能丢失临时消息。
465
+ await onBranchChanged?.()
405
466
  } else {
406
467
  this.pendingBranchAppend = previousPending
407
468
  }
@@ -1 +1 @@
1
- bj2dB_Z10YB_CqK_VNhDx
1
+ ErYBfYXAir5b-6rlacGvL
@@ -68,6 +68,7 @@
68
68
  "/api/work-sessions/del/route": "/api/work-sessions/del",
69
69
  "/api/work-sessions/rename/route": "/api/work-sessions/rename",
70
70
  "/api/work-sessions/replace/route": "/api/work-sessions/replace",
71
+ "/api/work-sessions/search/route": "/api/work-sessions/search",
71
72
  "/api/work-sessions/sort/route": "/api/work-sessions/sort",
72
73
  "/favicon.ico/route": "/favicon.ico",
73
74
  "/project-preview/page": "/project-preview",
@@ -4,11 +4,11 @@
4
4
  ],
5
5
  "devFiles": [],
6
6
  "lowPriorityFiles": [
7
- "static/bj2dB_Z10YB_CqK_VNhDx/_buildManifest.js",
8
- "static/bj2dB_Z10YB_CqK_VNhDx/_ssgManifest.js"
7
+ "static/ErYBfYXAir5b-6rlacGvL/_buildManifest.js",
8
+ "static/ErYBfYXAir5b-6rlacGvL/_ssgManifest.js"
9
9
  ],
10
10
  "rootMainFiles": [
11
- "static/chunks/webpack-c0b805df46fcf8b3.js",
11
+ "static/chunks/webpack-a84310d111797bef.js",
12
12
  "static/chunks/e388c842-1ca92f1ea0dfe8ee.js",
13
13
  "static/chunks/64444-3e955f910569274d.js",
14
14
  "static/chunks/main-app-6230945a5a062fce.js"
@@ -2,8 +2,8 @@ self.__SERVER_FILES_MANIFEST={
2
2
  "version": 1,
3
3
  "config": {
4
4
  "env": {
5
- "PI_DESK_APP_VERSION": "1.1.28-dev",
6
- "PI_DESK_VERSION_UPDATED_AT": "2026-10-28T01:13:51+08:00"
5
+ "PI_DESK_APP_VERSION": "1.1.30-dev",
6
+ "PI_DESK_VERSION_UPDATED_AT": "2026-10-28T23:14:15+08:00"
7
7
  },
8
8
  "webpack": null,
9
9
  "typescript": {
@@ -2,8 +2,8 @@
2
2
  "version": 1,
3
3
  "config": {
4
4
  "env": {
5
- "PI_DESK_APP_VERSION": "1.1.28-dev",
6
- "PI_DESK_VERSION_UPDATED_AT": "2026-10-28T01:13:51+08:00"
5
+ "PI_DESK_APP_VERSION": "1.1.30-dev",
6
+ "PI_DESK_VERSION_UPDATED_AT": "2026-10-28T23:14:15+08:00"
7
7
  },
8
8
  "webpack": null,
9
9
  "typescript": {
@@ -450,6 +450,12 @@
450
450
  "routeKeys": {},
451
451
  "namedRegex": "^/api/work\\-sessions/replace(?:/)?$"
452
452
  },
453
+ {
454
+ "page": "/api/work-sessions/search",
455
+ "regex": "^/api/work\\-sessions/search(?:/)?$",
456
+ "routeKeys": {},
457
+ "namedRegex": "^/api/work\\-sessions/search(?:/)?$"
458
+ },
453
459
  {
454
460
  "page": "/api/work-sessions/sort",
455
461
  "regex": "^/api/work\\-sessions/sort(?:/)?$",
@@ -1,4 +1,4 @@
1
- (()=>{var a={};a.id=94896,a.ids=[94896],a.modules={3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4527:(a,b,c)=>{"use strict";c.d(b,{L1ErrorPage:()=>i});var d=c(52834),e=c(35137),f=c.n(e),g=c(57850),h=c(5319);function i({retry:a,notFound:b=!1}){let{t:c}=(0,g.Bd)("common");return(0,d.jsx)("main",{className:"flex min-h-dvh items-center justify-center bg-background p-4 text-foreground",children:(0,d.jsxs)("div",{className:"w-full max-w-md space-y-4 text-center",children:[(0,d.jsx)("h1",{className:"text-xl font-semibold",children:c(b?"notFound":"pageError")}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[a?(0,d.jsx)(h.$,{type:"button",onClick:a,children:c("recover")}):null,(0,d.jsx)(h.$,{variant:"outline",render:(0,d.jsx)(f(),{href:"/"}),children:c("backHome")})]})]})})}},5319:(a,b,c)=>{"use strict";c.d(b,{$:()=>i,r:()=>h});var d=c(52834),e=c(97299),f=c(80546),g=c(15620);let h=(0,f.F)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap cursor-pointer transition-colors duration-150 ease-out outline-none select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-solid focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 aria-pressed:bg-accent aria-pressed:text-accent-foreground aria-pressed:hover:bg-[color-mix(in_oklab,var(--accent),var(--foreground)_5%)] aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-[color-mix(in_oklab,var(--primary),var(--primary-foreground)_8%)] active:bg-[color-mix(in_oklab,var(--primary),var(--primary-foreground)_14%)]",outline:"border-border bg-card text-card-foreground hover:bg-accent active:bg-[color-mix(in_oklab,var(--accent),var(--foreground)_6%)] aria-expanded:bg-accent aria-expanded:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklab,var(--secondary),var(--foreground)_8%)] active:bg-[color-mix(in_oklab,var(--secondary),var(--foreground)_14%)] aria-expanded:bg-accent aria-expanded:text-accent-foreground",ghost:"hover:bg-foreground/8 hover:text-foreground active:bg-foreground/14 aria-expanded:bg-accent aria-expanded:text-accent-foreground",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-foreground underline underline-offset-4 hover:text-muted-foreground"},size:{default:"min-h-8 gap-2 px-2 py-1",xs:"min-h-7 gap-2 rounded-md px-2 py-0.5 text-sm",sm:"min-h-7 gap-2 rounded-md px-2 py-0.5 text-sm",lg:"min-h-10 gap-2 px-3 py-2",icon:"size-8","icon-xs":"size-7 rounded-md","icon-sm":"size-7 rounded-md","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function i({className:a,variant:b="default",size:c="default",...f}){return(0,d.jsx)(e.$,{"data-slot":"button",className:(0,g.cn)(h({variant:b,size:c,className:a})),...f})}},5459:(a,b,c)=>{Promise.resolve().then(c.bind(c,88893))},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},9812:(a,b,c)=>{"use strict";function d(a){return a&&a.__esModule?a:{default:a}}c.r(b),c.d(b,{_:()=>d})},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},15620:(a,b,c)=>{"use strict";c.d(b,{cn:()=>f});var d=c(68122),e=c(68134);function f(...a){return(0,e.QP)((0,d.$)(a))}},17862:()=>{},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21147:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(52834);function e({error:a,reset:b}){return(0,d.jsx)("html",{lang:"en",children:(0,d.jsxs)("body",{style:{margin:0,padding:"15vh 1rem",fontFamily:"system-ui, sans-serif",textAlign:"center"},children:[(0,d.jsx)("h1",{children:"Page unavailable / 页面暂时无法加载"}),(0,d.jsx)("button",{type:"button",onClick:b,style:{padding:"0.5rem 1rem",cursor:"pointer"},children:"Try again / 重试"})]})})}c(49147)},21169:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,7005,23)),Promise.resolve().then(c.t.bind(c,49453,23)),Promise.resolve().then(c.t.bind(c,79460,23)),Promise.resolve().then(c.t.bind(c,88476,23)),Promise.resolve().then(c.t.bind(c,97016,23)),Promise.resolve().then(c.t.bind(c,27297,23)),Promise.resolve().then(c.bind(c,1480))},26011:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={WarningIcon:function(){return i},errorStyles:function(){return g},errorThemeCss:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});c(9812);let f=c(89564);c(76549);let g={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},h=`
1
+ (()=>{var a={};a.id=94896,a.ids=[94896],a.modules={3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4527:(a,b,c)=>{"use strict";c.d(b,{L1ErrorPage:()=>i});var d=c(52834),e=c(35137),f=c.n(e),g=c(57850),h=c(5319);function i({retry:a,notFound:b=!1}){let{t:c}=(0,g.Bd)("common");return(0,d.jsx)("main",{className:"flex min-h-[var(--pi-desk-content-height)] items-center justify-center bg-background p-4 text-foreground",children:(0,d.jsxs)("div",{className:"w-full max-w-md space-y-4 text-center",children:[(0,d.jsx)("h1",{className:"text-xl font-semibold",children:c(b?"notFound":"pageError")}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[a?(0,d.jsx)(h.$,{type:"button",onClick:a,children:c("recover")}):null,(0,d.jsx)(h.$,{variant:"outline",render:(0,d.jsx)(f(),{href:"/"}),children:c("backHome")})]})]})})}},5319:(a,b,c)=>{"use strict";c.d(b,{$:()=>i,r:()=>h});var d=c(52834),e=c(97299),f=c(80546),g=c(15620);let h=(0,f.F)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap cursor-pointer transition-colors duration-150 ease-out outline-none select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-solid focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 aria-pressed:bg-accent aria-pressed:text-accent-foreground aria-pressed:hover:bg-[color-mix(in_oklab,var(--accent),var(--foreground)_5%)] aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-[color-mix(in_oklab,var(--primary),var(--primary-foreground)_8%)] active:bg-[color-mix(in_oklab,var(--primary),var(--primary-foreground)_14%)]",outline:"border-border bg-card text-card-foreground hover:bg-accent active:bg-[color-mix(in_oklab,var(--accent),var(--foreground)_6%)] aria-expanded:bg-accent aria-expanded:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklab,var(--secondary),var(--foreground)_8%)] active:bg-[color-mix(in_oklab,var(--secondary),var(--foreground)_14%)] aria-expanded:bg-accent aria-expanded:text-accent-foreground",ghost:"hover:bg-foreground/8 hover:text-foreground active:bg-foreground/14 aria-expanded:bg-accent aria-expanded:text-accent-foreground",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-foreground underline underline-offset-4 hover:text-muted-foreground"},size:{default:"min-h-8 gap-2 px-2 py-1",xs:"min-h-7 gap-2 rounded-md px-2 py-0.5 text-sm",sm:"min-h-7 gap-2 rounded-md px-2 py-0.5 text-sm",lg:"min-h-10 gap-2 px-3 py-2",icon:"size-8","icon-xs":"size-7 rounded-md","icon-sm":"size-7 rounded-md","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function i({className:a,variant:b="default",size:c="default",...f}){return(0,d.jsx)(e.$,{"data-slot":"button",className:(0,g.cn)(h({variant:b,size:c,className:a})),...f})}},5459:(a,b,c)=>{Promise.resolve().then(c.bind(c,88893))},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},9812:(a,b,c)=>{"use strict";function d(a){return a&&a.__esModule?a:{default:a}}c.r(b),c.d(b,{_:()=>d})},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},15620:(a,b,c)=>{"use strict";c.d(b,{cn:()=>f});var d=c(68122),e=c(68134);function f(...a){return(0,e.QP)((0,d.$)(a))}},17862:()=>{},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21147:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(52834);function e({error:a,reset:b}){return(0,d.jsx)("html",{lang:"en",children:(0,d.jsxs)("body",{style:{margin:0,padding:"15vh 1rem",fontFamily:"system-ui, sans-serif",textAlign:"center"},children:[(0,d.jsx)("h1",{children:"Page unavailable / 页面暂时无法加载"}),(0,d.jsx)("button",{type:"button",onClick:b,style:{padding:"0.5rem 1rem",cursor:"pointer"},children:"Try again / 重试"})]})})}c(49147)},21169:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,7005,23)),Promise.resolve().then(c.t.bind(c,49453,23)),Promise.resolve().then(c.t.bind(c,79460,23)),Promise.resolve().then(c.t.bind(c,88476,23)),Promise.resolve().then(c.t.bind(c,97016,23)),Promise.resolve().then(c.t.bind(c,27297,23)),Promise.resolve().then(c.bind(c,1480))},26011:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={WarningIcon:function(){return i},errorStyles:function(){return g},errorThemeCss:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});c(9812);let f=c(89564);c(76549);let g={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},h=`
2
2
  :root {
3
3
  --next-error-bg: #fff;
4
4
  --next-error-text: #171717;
@@ -28,4 +28,4 @@
28
28
  }
29
29
  }
30
30
  body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }
31
- `.replace(/\n\s*/g,"");function i(){return(0,f.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:g.icon,children:(0,f.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30897:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,17179,23)),Promise.resolve().then(c.t.bind(c,39159,23)),Promise.resolve().then(c.t.bind(c,52442,23)),Promise.resolve().then(c.t.bind(c,270,23)),Promise.resolve().then(c.t.bind(c,47594,23)),Promise.resolve().then(c.t.bind(c,52047,23)),Promise.resolve().then(c.t.bind(c,7770,23))},31326:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return f}}),c(9812);let d=c(89564);c(76549);let e=c(26011),f=function(){return(0,d.jsxs)("html",{id:"__next_error__",children:[(0,d.jsxs)("head",{children:[(0,d.jsx)("title",{children:"500: This page couldn’t load"}),(0,d.jsx)("style",{dangerouslySetInnerHTML:{__html:e.errorThemeCss}})]}),(0,d.jsx)("body",{children:(0,d.jsx)("div",{style:e.errorStyles.container,children:(0,d.jsxs)("div",{style:e.errorStyles.card,children:[(0,d.jsx)(e.WarningIcon,{}),(0,d.jsx)("h1",{style:e.errorStyles.title,children:"This page couldn’t load"}),(0,d.jsx)("p",{style:e.errorStyles.message,children:"A server error occurred. Reload to try again."}),(0,d.jsx)("form",{style:e.errorStyles.form,children:(0,d.jsx)("button",{type:"submit",style:e.errorStyles.button,children:"Reload"})})]})})})]})};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},33873:a=>{"use strict";a.exports=require("path")},35166:()=>{},37957:(a,b,c)=>{Promise.resolve().then(c.bind(c,56951))},38522:a=>{"use strict";a.exports=require("node:zlib")},40217:(a,b,c)=>{Promise.resolve().then(c.bind(c,70961))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43305:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(52834);c(49147);var e=c(4527);function f({error:a,reset:b}){return(0,d.jsx)(e.L1ErrorPage,{retry:b})}},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},56951:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(68032).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/pi-desk/pi-desk/src/app/error.tsx\" from the server, but it's 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/app/error.tsx","default")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70961:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(68032).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/pi-desk/pi-desk/src/app/global-error.tsx\" from the server, but it's 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/app/global-error.tsx","default")},74405:(a,b,c)=>{Promise.resolve().then(c.bind(c,43305))},76665:(a,b,c)=>{Promise.resolve().then(c.bind(c,21147))},82117:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(89564),e=c(88893);function f(){return(0,d.jsx)(e.L1ErrorPage,{notFound:!0})}},88893:(a,b,c)=>{"use strict";c.d(b,{L1ErrorPage:()=>d});let d=(0,c(68032).registerClientReference)(function(){throw Error("Attempted to call L1ErrorPage() from the server but L1ErrorPage 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-error-page.tsx","L1ErrorPage")},93822:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>k,handler:()=>m,routeModule:()=>l});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={children:["",{children:["_global-error",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,31326,23))),"next/dist/client/components/builtin/app-error.js"]}]},{}]},{error:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,56951))),"/home/runner/work/pi-desk/pi-desk/src/app/error.tsx"],"global-error":[(0,d.p)(()=>Promise.resolve().then(c.bind(c,70961))),"/home/runner/work/pi-desk/pi-desk/src/app/global-error.tsx"],"not-found":[(0,d.p)(()=>Promise.resolve().then(c.bind(c,82117))),"/home/runner/work/pi-desk/pi-desk/src/app/not-found.tsx"],forbidden:[(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,10719,23))),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,58434,23))),"next/dist/client/components/builtin/unauthorized.js"]},[]]}.children,j=(0,e.H)({tree:i,page:"/_global-error/page",pathname:"/_global-error",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),k=j.__next_app__,l=j.routeModule,m=j.handler},99883:(a,b,c)=>{Promise.resolve().then(c.bind(c,4527))}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,9874],()=>b(b.s=93822));module.exports=c})();
31
+ `.replace(/\n\s*/g,"");function i(){return(0,f.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:g.icon,children:(0,f.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30897:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,17179,23)),Promise.resolve().then(c.t.bind(c,39159,23)),Promise.resolve().then(c.t.bind(c,52442,23)),Promise.resolve().then(c.t.bind(c,270,23)),Promise.resolve().then(c.t.bind(c,47594,23)),Promise.resolve().then(c.t.bind(c,52047,23)),Promise.resolve().then(c.t.bind(c,7770,23))},31326:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return f}}),c(9812);let d=c(89564);c(76549);let e=c(26011),f=function(){return(0,d.jsxs)("html",{id:"__next_error__",children:[(0,d.jsxs)("head",{children:[(0,d.jsx)("title",{children:"500: This page couldn’t load"}),(0,d.jsx)("style",{dangerouslySetInnerHTML:{__html:e.errorThemeCss}})]}),(0,d.jsx)("body",{children:(0,d.jsx)("div",{style:e.errorStyles.container,children:(0,d.jsxs)("div",{style:e.errorStyles.card,children:[(0,d.jsx)(e.WarningIcon,{}),(0,d.jsx)("h1",{style:e.errorStyles.title,children:"This page couldn’t load"}),(0,d.jsx)("p",{style:e.errorStyles.message,children:"A server error occurred. Reload to try again."}),(0,d.jsx)("form",{style:e.errorStyles.form,children:(0,d.jsx)("button",{type:"submit",style:e.errorStyles.button,children:"Reload"})})]})})})]})};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},33873:a=>{"use strict";a.exports=require("path")},35166:()=>{},37957:(a,b,c)=>{Promise.resolve().then(c.bind(c,56951))},38522:a=>{"use strict";a.exports=require("node:zlib")},40217:(a,b,c)=>{Promise.resolve().then(c.bind(c,70961))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},42658:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>k,handler:()=>m,routeModule:()=>l});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={children:["",{children:["_global-error",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,31326,23))),"next/dist/client/components/builtin/app-error.js"]}]},{}]},{error:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,56951))),"/home/runner/work/pi-desk/pi-desk/src/app/error.tsx"],"global-error":[(0,d.p)(()=>Promise.resolve().then(c.bind(c,70961))),"/home/runner/work/pi-desk/pi-desk/src/app/global-error.tsx"],"not-found":[(0,d.p)(()=>Promise.resolve().then(c.bind(c,82117))),"/home/runner/work/pi-desk/pi-desk/src/app/not-found.tsx"],forbidden:[(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,10719,23))),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,58434,23))),"next/dist/client/components/builtin/unauthorized.js"]},[]]}.children,j=(0,e.H)({tree:i,page:"/_global-error/page",pathname:"/_global-error",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),k=j.__next_app__,l=j.routeModule,m=j.handler},43305:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(52834);c(49147);var e=c(4527);function f({error:a,reset:b}){return(0,d.jsx)(e.L1ErrorPage,{retry:b})}},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},56951:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(68032).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/pi-desk/pi-desk/src/app/error.tsx\" from the server, but it's 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/app/error.tsx","default")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70961:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(68032).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/pi-desk/pi-desk/src/app/global-error.tsx\" from the server, but it's 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/app/global-error.tsx","default")},74405:(a,b,c)=>{Promise.resolve().then(c.bind(c,43305))},76665:(a,b,c)=>{Promise.resolve().then(c.bind(c,21147))},82117:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(89564),e=c(88893);function f(){return(0,d.jsx)(e.L1ErrorPage,{notFound:!0})}},88893:(a,b,c)=>{"use strict";c.d(b,{L1ErrorPage:()=>d});let d=(0,c(68032).registerClientReference)(function(){throw Error("Attempted to call L1ErrorPage() from the server but L1ErrorPage 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-error-page.tsx","L1ErrorPage")},99883:(a,b,c)=>{Promise.resolve().then(c.bind(c,4527))}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,9874],()=>b(b.s=42658));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_global-error/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"}],"/home/runner/work/pi-desk/pi-desk/src/app/_global-error/page":[]},"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["/_global-error/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}},"38734":{"*":{"id":"34311","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}},"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-b8b9b7ef5ccb7601.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-ca5ef5994165eb2e.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-ca5ef5994165eb2e.js"],"async":false},"/home/runner/work/pi-desk/pi-desk/src/client/l1_entry/providers/l1-app-providers.tsx":{"id":38734,"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-ca5ef5994165eb2e.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-ca5ef5994165eb2e.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-1ab62762c5f4144f.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-f5b71cec787a30ec.js","11937","static/chunks/11937-ac71fb0f7cef482a.js","58974","static/chunks/app/page-978906de76a8dcfe.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-f5b71cec787a30ec.js","11937","static/chunks/11937-ac71fb0f7cef482a.js","58974","static/chunks/app/page-978906de76a8dcfe.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/3c59ac068ae404da.css"},{"inlined":false,"path":"static/css/053a8d82c09326cd.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/_global-error/page":[]},"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}},"38734":{"*":{"id":"64669","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}},"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
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-c0b805df46fcf8b3.js"/><script src="/_next/static/chunks/e388c842-1ca92f1ea0dfe8ee.js" async=""></script><script src="/_next/static/chunks/64444-3e955f910569274d.js" async=""></script><script src="/_next/static/chunks/main-app-6230945a5a062fce.js" async=""></script><script src="/_next/static/chunks/57235-03ba1044f22b6c84.js" async=""></script><script src="/_next/static/chunks/22092-6d1bfbefa825ec03.js" async=""></script><script src="/_next/static/chunks/app/error-216b14b5da089ed3.js" async=""></script><script src="/_next/static/chunks/app/not-found-720cdf6a606b821a.js" async=""></script><script src="/_next/static/chunks/app/global-error-6f5fc4928fd1966c.js" async=""></script><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-c0b805df46fcf8b3.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[90184,[],\"\"]\n3:I[84845,[\"57235\",\"static/chunks/57235-03ba1044f22b6c84.js\",\"22092\",\"static/chunks/22092-6d1bfbefa825ec03.js\",\"18039\",\"static/chunks/app/error-216b14b5da089ed3.js\"],\"default\"]\n4:I[44478,[],\"\"]\n5:I[66999,[\"57235\",\"static/chunks/57235-03ba1044f22b6c84.js\",\"22092\",\"static/chunks/22092-6d1bfbefa825ec03.js\",\"24345\",\"static/chunks/app/not-found-720cdf6a606b821a.js\"],\"L1ErrorPage\"]\n6:I[14405,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[14405,[],\"ViewportBoundary\"]\nc:I[14405,[],\"MetadataBoundary\"]\ne:I[71713,[\"34219\",\"static/chunks/app/global-error-6f5fc4928fd1966c.js\"],\"default\"]\n9:X\n0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$3\",\"errorStyles\":[],\"errorScripts\":null,\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L5\",null,{\"notFound\":true}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$9\"]},null,false,\"$9\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"bj2dB_Z10YB_CqK_VNhDx\"}\n9:C\nb:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n8:null\nd:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a84310d111797bef.js"/><script src="/_next/static/chunks/e388c842-1ca92f1ea0dfe8ee.js" async=""></script><script src="/_next/static/chunks/64444-3e955f910569274d.js" async=""></script><script src="/_next/static/chunks/main-app-6230945a5a062fce.js" async=""></script><script src="/_next/static/chunks/57235-03ba1044f22b6c84.js" async=""></script><script src="/_next/static/chunks/22092-6d1bfbefa825ec03.js" async=""></script><script src="/_next/static/chunks/app/error-1ab62762c5f4144f.js" async=""></script><script src="/_next/static/chunks/app/not-found-b8b9b7ef5ccb7601.js" async=""></script><script src="/_next/static/chunks/app/global-error-6f5fc4928fd1966c.js" async=""></script><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-a84310d111797bef.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[90184,[],\"\"]\n3:I[84845,[\"57235\",\"static/chunks/57235-03ba1044f22b6c84.js\",\"22092\",\"static/chunks/22092-6d1bfbefa825ec03.js\",\"18039\",\"static/chunks/app/error-1ab62762c5f4144f.js\"],\"default\"]\n4:I[44478,[],\"\"]\n5:I[66999,[\"57235\",\"static/chunks/57235-03ba1044f22b6c84.js\",\"22092\",\"static/chunks/22092-6d1bfbefa825ec03.js\",\"24345\",\"static/chunks/app/not-found-b8b9b7ef5ccb7601.js\"],\"L1ErrorPage\"]\n6:I[14405,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[14405,[],\"ViewportBoundary\"]\nc:I[14405,[],\"MetadataBoundary\"]\ne:I[71713,[\"34219\",\"static/chunks/app/global-error-6f5fc4928fd1966c.js\"],\"default\"]\n9:X\n0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$3\",\"errorStyles\":[],\"errorScripts\":null,\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L5\",null,{\"notFound\":true}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$9\"]},null,false,\"$9\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"ErYBfYXAir5b-6rlacGvL\"}\n9:C\nb:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n8:null\nd:[]\n"])</script></body></html>