pisper 0.6.18 → 0.6.19

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 (119) hide show
  1. package/package.json +5 -5
  2. package/web/.vite/manifest.json +566 -562
  3. package/web/assets/{AppDialog-BhRRstHP.js → AppDialog-Bq_kuweh.js} +1 -1
  4. package/web/assets/{AppOverlays-DYb88MMF.js → AppOverlays-C6-uz2I7.js} +1 -1
  5. package/web/assets/{AssetsPage-jmEL7H4K.js → AssetsPage-nWK-SI9U.js} +1 -1
  6. package/web/assets/{BoardPage-Cq1A97SF.js → BoardPage-BdI3hfz8.js} +3 -3
  7. package/web/assets/{ChannelsPage-C6Ep15_G.js → ChannelsPage-CP8J3G-V.js} +1 -1
  8. package/web/assets/{ChatAppearancePage-D9mtbLrb.js → ChatAppearancePage-Cr8N98HJ.js} +1 -1
  9. package/web/assets/{ChatHistoryPage-Bb2dxbsW.js → ChatHistoryPage-9AWN-55B.js} +1 -1
  10. package/web/assets/{ChatPage-B19Ofy-n.js → ChatPage-Bl94kmVS.js} +4 -4
  11. package/web/assets/ConfigPage-CU_oPhEG.js +5 -0
  12. package/web/assets/{DesktopWindowControls-B0tf8G6E.js → DesktopWindowControls-CoqP7BM1.js} +1 -1
  13. package/web/assets/{FeaturePage-C6p1tTYM.js → FeaturePage-C6kLKix5.js} +1 -1
  14. package/web/assets/{FileAttachmentPreview-Goie7m39.js → FileAttachmentPreview-C4qvBJGC.js} +1 -1
  15. package/web/assets/{FloatingWidgets-BkJUNE2R.js → FloatingWidgets-DSbRqMGT.js} +1 -1
  16. package/web/assets/{FocusRuntimeControls-DDhn5O0c.js → FocusRuntimeControls-DlBh7Vqg.js} +1 -1
  17. package/web/assets/{GitDiffViewer-lLjb8Z6c.js → GitDiffViewer-DGkjG02b.js} +1 -1
  18. package/web/assets/{ManageProjectsDialog-BcL3O5JH.js → ManageProjectsDialog-BFiDAKW5.js} +1 -1
  19. package/web/assets/{MarkdownMessage-IIGDT1-_.js → MarkdownMessage-BiGbYY8R.js} +1 -1
  20. package/web/assets/{McpPage-Om-chXna.js → McpPage-myrbtgSi.js} +1 -1
  21. package/web/assets/{MemoryPage-DKVTRhDw.js → MemoryPage-BhKLCAgT.js} +1 -1
  22. package/web/assets/{MobileNavigation-Bg8R2cAv.js → MobileNavigation-BrLK8gc5.js} +1 -1
  23. package/web/assets/{MorePage-BBtrzGN0.js → MorePage-B6UzpykD.js} +1 -1
  24. package/web/assets/{NewFolderDialog-Ck4pp3Fu.js → NewFolderDialog-CdALMU5C.js} +1 -1
  25. package/web/assets/{PageHeader-Cyw_6Kw4.js → PageHeader-CpubVScP.js} +1 -1
  26. package/web/assets/{PhoneDrawer-CDhCPbxZ.js → PhoneDrawer-BapKZhl9.js} +1 -1
  27. package/web/assets/{PhoneMenuButton-B16JL5aU.js → PhoneMenuButton-WhIGM1zy.js} +1 -1
  28. package/web/assets/{PhoneTopBar-DU84Aa4w.js → PhoneTopBar-CjMeneXU.js} +1 -1
  29. package/web/assets/{PluginsPage-DjW7wlaR.js → PluginsPage-BEpVVSAC.js} +1 -1
  30. package/web/assets/{SafeModePrompt-CaBwfnSU.js → SafeModePrompt-HogcxEdk.js} +1 -1
  31. package/web/assets/{SchedulesPage-DGWSRJUO.js → SchedulesPage-ML5Sl4S4.js} +1 -1
  32. package/web/assets/{SessionBrowserPane-DUf0kx2D.js → SessionBrowserPane-DOmbqdHK.js} +2 -2
  33. package/web/assets/{SessionContextPanel-isXy-27d.js → SessionContextPanel-guilbPz7.js} +2 -2
  34. package/web/assets/{SessionHome-2PhdOYt0.js → SessionHome-BLhLJsZO.js} +1 -1
  35. package/web/assets/{SessionInspector-Cj6sDpI6.js → SessionInspector-DewgkKy9.js} +1 -1
  36. package/web/assets/{SessionShell-rjmSVZ_E.js → SessionShell-CMGzYCcG.js} +1 -1
  37. package/web/assets/{SettingsSidebar-h5Sax-cP.js → SettingsSidebar-BKdrNAvp.js} +1 -1
  38. package/web/assets/{ShortcutHelpDialog-D7ev01fF.js → ShortcutHelpDialog-DgQKobJy.js} +1 -1
  39. package/web/assets/{ShortcutKeys-DZsAbYeO.js → ShortcutKeys-B1HCKuqe.js} +1 -1
  40. package/web/assets/{SidebarUpdateStatus-B_NGjvl5.js → SidebarUpdateStatus-DtpsclSa.js} +1 -1
  41. package/web/assets/{SkillsPage-C2DnxWvu.js → SkillsPage-JwfOUart.js} +1 -1
  42. package/web/assets/{TaskProcessesPane-C2PtU4pC.js → TaskProcessesPane-CUUFhziU.js} +1 -1
  43. package/web/assets/{TaskTerminalView-D2TmMooE.js → TaskTerminalView-BgxdaUIZ.js} +1 -1
  44. package/web/assets/{TerminalPanel-CYY36HpY.js → TerminalPanel-B4VMm8q_.js} +1 -1
  45. package/web/assets/{WebDesktopPet-BlJybmd5.js → WebDesktopPet-C10BvWBl.js} +1 -1
  46. package/web/assets/{WorkflowsPage-Dvy-QIJo.js → WorkflowsPage-iqO_9OJO.js} +1 -1
  47. package/web/assets/{WorkspacePicker-D7djHk7o.js → WorkspacePicker-C0t_ekAf.js} +1 -1
  48. package/web/assets/{api-DHnp1y9B.js → api-Dg-aNpVe.js} +1 -1
  49. package/web/assets/app-update-8hmqlQl6.js +34 -0
  50. package/web/assets/{approval-confirm-D1i--K6V.js → approval-confirm-77ZLTNZI.js} +1 -1
  51. package/web/assets/{board-projects-BRJ_-tj0.js → board-projects-CnDn05fw.js} +1 -1
  52. package/web/assets/bots-store-DE76fA7-.js +1 -0
  53. package/web/assets/{chat-api-BdMPDpVE.js → chat-api-Dy5Hkicx.js} +1 -1
  54. package/web/assets/{client-store-DpQBjfeA.js → client-store-DF9a8Ka9.js} +1 -1
  55. package/web/assets/{config-search-DLn9UUQp.js → config-search-BA9qWX5h.js} +1 -1
  56. package/web/assets/{dialog-CVn9vhfy.js → dialog-CtFjznlx.js} +1 -1
  57. package/web/assets/{events-BphhtnIg.js → events-D0dbOYFR.js} +1 -1
  58. package/web/assets/{folder-paths-DDMQoUvb.js → folder-paths-DEFkIxr2.js} +1 -1
  59. package/web/assets/{hosts-D-ceNbyz.js → hosts-BBCDdN-M.js} +1 -1
  60. package/web/assets/i18n-CyyEaQdX.js +1 -0
  61. package/web/assets/index-DsXdZRdL.js +2 -0
  62. package/web/assets/{mobile-remote-fallback-DG_urwIg.js → mobile-remote-fallback-C2Q0wAa6.js} +1 -1
  63. package/web/assets/mount-app-BDzqFalE.js +9 -0
  64. package/web/assets/{permission-rules-api-DUCXhUyb.js → permission-rules-api-CPImVuda.js} +1 -1
  65. package/web/assets/{pick-system-directory-DzwXQwyO.js → pick-system-directory-B1clvHS6.js} +1 -1
  66. package/web/assets/{placements-C0pW79Hw.js → placements-DNdBLaY4.js} +2 -2
  67. package/web/assets/{popover-BiEbUPyI.js → popover-DN1mndHQ.js} +1 -1
  68. package/web/assets/{public-CkPP4ohL.js → public-CNoWpIiC.js} +1 -1
  69. package/web/assets/public-CUO7iS84.js +3 -0
  70. package/web/assets/{public-B9twcm-g.js → public-Cec32eBv.js} +2 -2
  71. package/web/assets/{public-components-CH3p1KVx.js → public-components-BpHOXPbD.js} +1 -1
  72. package/web/assets/public-diff-A9crjZfM.js +1 -0
  73. package/web/assets/public-events-iJAi2TnD.js +1 -0
  74. package/web/assets/{public-flags-Dr1Hy9R7.js → public-flags-BYEBqRMd.js} +1 -1
  75. package/web/assets/public-session-DM4y_qrY.js +1 -0
  76. package/web/assets/{public-sidebar-BGyKRJQ1.js → public-sidebar-Ce5o13yN.js} +1 -1
  77. package/web/assets/{runtime-capabilities-store-CHtOHvCw.js → runtime-capabilities-store-B5Bam7pC.js} +1 -1
  78. package/web/assets/{safe-mode-instance-DofnjrC0.js → safe-mode-instance-CJE36ukZ.js} +1 -1
  79. package/web/assets/safe-mode-sentinel-AmgPcPSa.js +1 -0
  80. package/web/assets/{session-change-summary-api-yVYBTolj.js → session-change-summary-api-CTAw_Fpq.js} +1 -1
  81. package/web/assets/{session-home-YfyPoMc5.js → session-home-BrU5Pj9S.js} +1 -1
  82. package/web/assets/{session-organization-api-BVv-S3ZA.js → session-organization-api-I4CSVACP.js} +1 -1
  83. package/web/assets/{session-scope-Cm9JGWmN.js → session-scope-7eIXCeDX.js} +1 -1
  84. package/web/assets/{session-tree-actions-BDCY5Rx_.js → session-tree-actions-CnUc7KFV.js} +1 -1
  85. package/web/assets/{session-tree-summary-C9jUUk8v.js → session-tree-summary-C224W_G6.js} +1 -1
  86. package/web/assets/{shortcuts-DDYN6uA3.js → shortcuts-LBxOVau1.js} +1 -1
  87. package/web/assets/{side-chat-context-BydqtUQh.js → side-chat-context-hRj7FqXK.js} +4 -4
  88. package/web/assets/sidebar-rMS3pmrQ.js +1 -0
  89. package/web/assets/{sidebar-store-C9_zt4qH.js → sidebar-store-BGW5sD2q.js} +1 -1
  90. package/web/assets/{speech-session-hLbzKBi7.js → speech-session-DTzw8niM.js} +1 -1
  91. package/web/assets/{startup-queries-Xtw8990R.js → startup-queries-qM8tclDJ.js} +1 -1
  92. package/web/assets/{storage-DH3bQdy6.js → storage-8QW6lXuT.js} +1 -1
  93. package/web/assets/{use-i18n-vlX9sewC.js → use-i18n-BuN5i-jP.js} +1 -1
  94. package/web/assets/use-open-bot-J8_CcQDt.js +1 -0
  95. package/web/assets/{use-studio-actions-Ddn1B4ZD.js → use-studio-actions-kEfc-Vr2.js} +1 -1
  96. package/web/assets/{useCatalogProjects-CKn9xBk7.js → useCatalogProjects-MO_MVlJu.js} +1 -1
  97. package/web/assets/{useNewProjectPicker-Dw_8vCGy.js → useNewProjectPicker-B5OQ8T-2.js} +2 -2
  98. package/web/assets/{useNow-Bk2SSqyl.js → useNow-ChT5op7P.js} +1 -1
  99. package/web/assets/{usePhoneShell-B1bMHq-t.js → usePhoneShell-Bkus67DO.js} +1 -1
  100. package/web/assets/{useSessionListQuery-Cmk9SaUf.js → useSessionListQuery-DdFrJGiI.js} +1 -1
  101. package/web/assets/{useSessionRowActions-DTh4fGVy.js → useSessionRowActions-CTYVP4el.js} +1 -1
  102. package/web/assets/{useSidebarModel-BFdUhpkM.js → useSidebarModel-BdWaL9Nn.js} +1 -1
  103. package/web/assets/{web-preview-C1xJDZhi.js → web-preview-DUIdcsL2.js} +1 -1
  104. package/web/assets/{web-preview-events-ottFBnUt.js → web-preview-events-4X_JU_UG.js} +1 -1
  105. package/web/assets/{workspace-order-store-_L6d1CWV.js → workspace-order-store-DlMf7MI6.js} +1 -1
  106. package/web/index.html +1 -1
  107. package/web/assets/ConfigPage-BZ90fSaF.js +0 -5
  108. package/web/assets/app-update-DPLsLaqu.js +0 -34
  109. package/web/assets/bots-store-BKZ5Va82.js +0 -1
  110. package/web/assets/i18n-D9cWCJjW.js +0 -1
  111. package/web/assets/index-DyGV2tpp.js +0 -2
  112. package/web/assets/mount-app-BJQPFzwJ.js +0 -9
  113. package/web/assets/public-D2ntc_xA.js +0 -3
  114. package/web/assets/public-diff-XnD8EDdH.js +0 -1
  115. package/web/assets/public-events-DmOklOQk.js +0 -1
  116. package/web/assets/public-session-CciAMmQg.js +0 -1
  117. package/web/assets/safe-mode-sentinel-CbERYZVc.js +0 -1
  118. package/web/assets/sidebar-BI_BMhyF.js +0 -1
  119. package/web/assets/use-open-bot-wY6Uo4E-.js +0 -1
@@ -1 +1 @@
1
- import{a as e,o as t,u as n}from"./api-DHnp1y9B.js";import{o as r}from"./session-board-status-D2lpFPiI.js";var i={all:[`custom-ui`],catalog:()=>[`custom-ui`,`catalog`],instances:()=>[`custom-ui`,`instances`],describe:e=>[`custom-ui`,`describe`,e],errors:e=>[`custom-ui`,`errors`,e],versions:e=>[`custom-ui`,`versions`,e],usage:e=>[`custom-ui`,`usage`,e],trash:()=>[`custom-ui`,`trash`],staged:e=>[`custom-ui`,`staged`,e]};function a(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var o=[`overview-card`,`session-panel`,`feature-page`,`floating`],s=[`S`,`M`],c=/^[a-z0-9][a-z0-9._-]{0,63}$/,l=/^[a-f0-9]{24}$/,u=/^[a-zA-Z0-9][a-zA-Z0-9._:-]{0,79}$/,d=/^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$/,f=/^[a-f0-9]{16}$/,p=[`network`,`notify`,`sessions.read`,`sessions.open`,`storage`,`provider.request`];function m(e,t=4e3){return typeof e==`string`?e.slice(0,t):``}function h(e){if(typeof e!=`string`||!e||e.length>512)return!1;let t=e.split(`/`);return t.length<=3&&t.every(e=>d.test(e))}function g(e,t=200){let n={};if(!a(e))return n;for(let[r,i]of Object.entries(e).slice(0,t))typeof i==`string`&&(n[r]=i);return n}function _(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(0,200)){if(!a(n)||typeof n.code!=`string`||!n.code)continue;let e={path:m(n.path,512),code:m(n.code,128)};if(a(n.params)){let t={};for(let[e,r]of Object.entries(n.params))(typeof r==`string`||typeof r==`number`&&Number.isFinite(r))&&(t[e]=r);e.params=t}t.push(e)}return t}function v(e){let t={};if(!a(e))return t;for(let n of[`zh-CN`,`en-US`]){let r=e[n];a(r)&&(t[n]={...typeof r.name==`string`?{name:r.name}:{},...typeof r.description==`string`?{description:r.description}:{},strings:g(r.strings,500)})}return t}function y(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!a(n)||!o.includes(n.surface))continue;let e=n.surface;if(t.some(t=>t.surface===e))continue;let r={surface:e};if(Array.isArray(n.sizes)){let e=s.filter(e=>n.sizes.includes(e));e.length&&(r.sizes=e)}a(n.size)&&typeof n.size.w==`number`&&typeof n.size.h==`number`&&Number.isFinite(n.size.w)&&Number.isFinite(n.size.h)&&n.size.w>0&&n.size.h>0&&(r.size={w:n.size.w,h:n.size.h}),t.push(r)}return t}function b(e){let t={};if(!a(e))return t;let n=e=>m(e.reason,500);for(let r of[`notify`,`sessions.read`,`sessions.open`]){let i=e[r];a(i)&&(t[r]={reason:n(i)})}let r=e[`provider.request`];a(r)&&Array.isArray(r.paths)&&Array.isArray(r.methods)&&(t[`provider.request`]={reason:n(r),paths:r.paths.filter(e=>typeof e==`string`),methods:r.methods.filter(e=>typeof e==`string`)});let i=e.network;a(i)&&Array.isArray(i.hosts)&&(t.network={reason:n(i),hosts:i.hosts.filter(e=>typeof e==`string`).slice(0,32),...Array.isArray(i.privateOrigins)&&{privateOrigins:i.privateOrigins.filter(e=>typeof e==`string`).slice(0,32)}});let o=e.storage;return a(o)&&(t.storage={reason:n(o),quotaKb:typeof o.quotaKb==`number`&&Number.isFinite(o.quotaKb)?o.quotaKb:256}),t}function x(e,t){if(!a(t)||t.runtime!==`native`||t.id!==e||!h(t.entry))return null;let n=a(t.props)?t.props:null;if(!n||n.type!==`object`||!a(n.properties))return null;let r=Array.isArray(t.styles)?t.styles:[];return r.every(h)?{runtime:`native`,id:e,name:m(t.name,120)||e,version:m(t.version,64),description:m(t.description,500),entry:t.entry,styles:r.slice(0,8),icon:m(t.icon,48),i18n:v(t.i18n),props:{type:`object`,properties:n.properties,required:Array.isArray(n.required)?n.required.filter(e=>typeof e==`string`):[]},placements:y(t.placements),capabilities:b(t.capabilities),sdk:typeof t.sdk==`number`?t.sdk:1,minHostVersion:m(t.minHostVersion,64)}:null}function S(e){return e===`agent`||e===`template`||e===`import`?e:`local`}function C(e){return Array.isArray(e)?p.filter(t=>e.includes(t)):[]}function w(e){return!a(e)||typeof e.stageId!=`string`||!f.test(e.stageId)||typeof e.id!=`string`||!c.test(e.id)?null:{stageId:e.stageId,id:e.id,name:m(e.name,120)||e.id,version:m(e.version,64),fileName:m(e.fileName,200)||`${e.id}.zip`,bytes:typeof e.bytes==`number`&&Number.isFinite(e.bytes)?e.bytes:0,sha256:/^[a-f0-9]{64}$/.test(String(e.sha256))?String(e.sha256):``,createdAt:m(e.createdAt,64),replaces:e.replaces===`native`||e.replaces===`legacy`||e.replaces===`broken`?e.replaces:null}}function T(e){if(!a(e)||typeof e.id!=`string`||!c.test(e.id))return null;let t=e.id,n={id:t,name:m(e.name,120)||t,version:m(e.version,64),description:m(e.description,500),directory:m(e.directory,4096),updatedAt:m(e.updatedAt,64),revoked:C(e.revoked)};if(e.kind!==`native`&&e.kind!==`broken`)return{...n,kind:`legacy`,status:`unsupported`,enabled:!1,source:S(e.source),entry:``,errors:_(e.errors)};if(e.kind===`broken`)return{...n,kind:`broken`,status:`invalid`,enabled:!1,source:S(e.source),entry:``,errors:_(e.errors)};let r=_(e.errors),i={...n,kind:`native`,status:e.status===`ready`?`ready`:`invalid`,enabled:e.enabled===!0,source:S(e.source),entry:m(e.entry,512),errors:r};if(e.manifest!==void 0){let n=x(t,e.manifest);n&&(i.manifest=n)}return i.status===`ready`&&(typeof e.rev==`string`&&l.test(e.rev)&&i.manifest?i.rev=e.rev:(i.status=`invalid`,i.errors=[...r,{path:``,code:`component_response_invalid`}])),i}function E(e){if(!a(e)||typeof e.root!=`string`||!Array.isArray(e.components))throw Error(`Invalid custom UI component response`);let t=a(e.features)?e.features:null,n=[],r=new Set;for(let t of e.components){let e=T(t);!e||r.has(e.id)||(r.add(e.id),n.push(e))}let i=[];for(let t of Array.isArray(e.staged)?e.staged.slice(0,50):[]){let e=w(t);e&&!i.some(t=>t.stageId===e.stageId)&&i.push(e)}return{root:e.root,features:{import:t?.import===!0,versions:t?.versions===!0,export:t?.export===!0,trash:t?.trash===`move`?`move`:`none`,trashRestore:t?.trashRestore===!0,usage:t?.usage===!0,revoke:t?.revoke===!0},components:n,staged:i,legacyShape:!t}}function D(e){return a(e)?e.type===`all`?{type:`all`}:e.type===`project`&&typeof e.cwd==`string`&&e.cwd?{type:`project`,cwd:e.cwd}:null:null}function O(e){if(!a(e)||typeof e.instanceId!=`string`||!u.test(e.instanceId)||typeof e.componentId!=`string`||!c.test(e.componentId)||!o.includes(e.surface))return null;let t=e.surface;return{instanceId:e.instanceId,componentId:e.componentId,surface:t,size:t===`overview-card`?s.includes(e.size)?e.size:`S`:null,scope:t===`session-panel`?D(e.scope)??{type:`all`}:null,title:m(e.title,80),props:a(e.props)?e.props:{},enabled:e.enabled!==!1,order:typeof e.order==`number`&&Number.isFinite(e.order)?e.order:0,createdAt:m(e.createdAt,64),updatedAt:m(e.updatedAt,64)}}function k(e){if(!a(e)||typeof e.revision!=`number`||!Number.isSafeInteger(e.revision)||!Array.isArray(e.instances))throw Error(`Invalid custom UI instances response`);let t=[],n=new Set;for(let r of e.instances){let e=O(r);!e||n.has(e.instanceId)||(n.add(e.instanceId),t.push(e))}return t.sort((e,t)=>e.order-t.order),{revision:e.revision,instances:t}}function A(e){let t=a(e)?O(e.instance):null;if(!t||!a(e)||typeof e.revision!=`number`)throw Error(`Invalid custom UI instance response`);return{revision:e.revision,instance:t}}function j(e){if(!a(e)||!Array.isArray(e.entries))throw Error(`Invalid custom UI errors response`);let t=[];for(let n of e.entries.slice(-200))!a(n)||typeof n.message!=`string`||t.push({at:m(n.at,64),kind:m(n.kind,32),level:m(n.level,16),message:m(n.message,500),...typeof n.stack==`string`?{stack:m(n.stack,4e3)}:{},...typeof n.instanceId==`string`?{instanceId:m(n.instanceId,80)}:{},...typeof n.surface==`string`?{surface:m(n.surface,32)}:{}});let n=a(e.network)?e.network:{},r={};if(a(n.hosts))for(let[e,t]of Object.entries(n.hosts).slice(0,64))typeof t==`number`&&Number.isFinite(t)&&(r[e]=t);return{entries:t,dropped:typeof e.dropped==`number`&&Number.isFinite(e.dropped)?e.dropped:0,network:{count:typeof n.count==`number`&&Number.isFinite(n.count)?n.count:0,lastAt:typeof n.lastAt==`string`?n.lastAt:null,hosts:r}}}function M(e){return typeof e==`number`&&Number.isFinite(e)&&e>=0?e:0}function N(e){if(!a(e)||e.status!==`ok`)return{status:`unsupported`};let t=a(e.summary)?e.summary:{},n=[`danger`,`warn`,`info`];return{status:`ok`,hosts:(Array.isArray(e.hosts)?e.hosts.slice(0,50):[]).flatMap(e=>a(e)&&typeof e.host==`string`?[{host:m(e.host,253),declared:e.declared===!0,file:m(e.file,512),line:M(e.line)}]:[]),findings:(Array.isArray(e.findings)?e.findings.slice(0,200):[]).flatMap(e=>a(e)&&typeof e.rule==`string`&&n.includes(e.severity)?[{rule:m(e.rule,32),severity:e.severity,file:m(e.file,512),line:M(e.line),excerpt:m(e.excerpt,200)}]:[]),summary:{danger:M(t.danger),warn:M(t.warn),info:M(t.info),undeclaredHosts:M(t.undeclaredHosts)},truncated:e.truncated===!0}}function P(e){return Array.isArray(e)?e.filter(e=>a(e)&&typeof e.path==`string`&&typeof e.size==`number`&&typeof e.type==`string`).slice(0,256).map(e=>({path:e.path,size:e.size,type:e.type})):[]}function F(e){let t=a(e)?T(e.component):null;if(!t||!a(e)||!Array.isArray(e.files))throw Error(`Invalid custom UI describe response`);return{component:t,files:P(e.files),errors:_(e.errors),scan:N(e.scan)}}function I(e){if(!a(e)||typeof e.status!=`number`||typeof e.body!=`string`||e.bodyEncoding!==`utf8`&&e.bodyEncoding!==`base64`)throw Error(`Invalid custom UI fetch response`);return{status:e.status,statusText:m(e.statusText,200),headers:g(e.headers,64),body:e.body,bodyEncoding:e.bodyEncoding,url:m(e.url,2048),redirected:e.redirected===!0}}function L(e){if(!(e instanceof n)||!e.data)return null;let t=e.data.code??e.data.error;return typeof t==`string`&&/^[a-z0-9_]{1,64}$/.test(t)?t:null}function R(e){return!(e instanceof n)||!e.data?[]:_(e.data.errors)}var z=e=>`/api/custom-ui/components/${encodeURIComponent(e)}`;function B(e,t,n){if(!c.test(e)||!l.test(t)||!h(n))throw Error(`Invalid component module path`);return`${z(e)}/r/${t}/${n.split(`/`).map(e=>encodeURIComponent(e)).join(`/`)}`}function V(e,n,r,i){return t(B(e,n,r),{signal:i})}function H(t){return e(`/api/custom-ui/components`,{signal:t,parse:E})}function U(t,n){return e(`${z(t)}/describe`,{signal:n,parse:F})}function ee(t){return e(`/api/custom-ui/components`,{method:`POST`,body:t,parse:e=>{let t=a(e)?T(e.component):null;if(!t)throw Error(`Invalid custom UI component response`);return t}})}function W(t,n){return e(z(t),{method:`PATCH`,body:{enabled:n},parse:e=>{let t=a(e)?T(e.component):null;if(!t)throw Error(`Invalid custom UI component response`);return t}})}function G(t){return e(z(t),{method:`DELETE`,parse:e=>({trashedAs:a(e)?m(e.trashedAs,256):``})})}function K(t){return e(`/api/custom-ui/instances`,{signal:t,parse:k})}function q(t){return e(`/api/custom-ui/instances`,{method:`POST`,body:t,parse:A})}function J(t,n){return e(`/api/custom-ui/instances/${encodeURIComponent(t)}`,{method:`PATCH`,body:n,parse:A})}function Y(t){return e(`/api/custom-ui/instances/${encodeURIComponent(t)}`,{method:`DELETE`,parse:e=>({revision:a(e)&&typeof e.revision==`number`?e.revision:0})})}function X(t,n){return e(`${z(t)}/errors`,{signal:n,parse:j})}function Z(t,n){return e(`${z(t)}/errors`,{method:`POST`,body:n,keepalive:!0,parse:()=>void 0})}function Q(t,n){return e(`${z(t)}/usage`,{method:`POST`,body:{entries:n},keepalive:!0,parse:()=>void 0})}function $(t,n,r){return e(`${z(t)}/storage/${encodeURIComponent(n)}`,{signal:r,parse:e=>{if(!a(e)||!Object.hasOwn(e,`value`))throw Error(`Invalid custom UI storage response`);return{value:e.value}}})}function te(t,n,r){return e(`${z(t)}/storage/${encodeURIComponent(n)}`,{method:`PUT`,body:{value:r},parse:()=>void 0})}function ne(t,n){return e(`${z(t)}/storage/${encodeURIComponent(n)}`,{method:`DELETE`,parse:()=>void 0})}async function re(t,n,r,i){return await e(`/api/custom-ui/provider-session`,{method:`PUT`,body:{sessionId:n},signal:i,timeout:15e3,parse:()=>void 0}),e(`${z(t)}/provider-request`,{method:`POST`,body:{sessionId:n,request:r},signal:i,timeout:15e3,parse:I})}function ie(t,n,r){return e(`${z(t)}/fetch`,{method:`POST`,body:n,signal:r,timeout:15e3,parse:I})}var ae=/^[A-Za-z0-9._:-]{1,128}$/,oe=/^\/skill:[a-z0-9][a-z0-9-]{0,63}$/;function se(e){if(!a(e)||typeof e.sessionId!=`string`||!ae.test(e.sessionId))throw Error(`Invalid custom UI session response`);let t=typeof e.command==`string`&&oe.test(e.command)?e.command:``,n=a(e.session)&&e.session.id===e.sessionId?e.session:null;return{sessionId:e.sessionId,created:e.created===!0,command:t,session:n}}function ce(t){return e(`${z(t)}/session`,{method:`POST`,body:{},parse:se})}function le(e=!0){return{queryKey:i.catalog(),queryFn:({signal:e})=>H(e),enabled:e,staleTime:3e4,retry:!1,refetchOnWindowFocus:!1}}function ue(e=!0){return{queryKey:i.instances(),queryFn:({signal:e})=>K(e),enabled:e,staleTime:3e4,retry:!1,refetchOnWindowFocus:!1}}function de(e,t){if(!e||e.type===`all`)return!0;let n=r(t);return n!==``&&r(e.cwd)===n}export{J as A,x as C,Q as D,Z as E,ce as O,_ as S,V as T,H as _,ie as a,T as b,re as c,te as d,ee as f,U as g,Y as h,L as i,i as j,W as k,$ as l,G as m,le as n,R as o,q as p,ue as r,B as s,de as t,ne as u,X as v,w,N as x,P as y};
1
+ import{a as e,o as t,u as n}from"./api-Dg-aNpVe.js";import{o as r}from"./session-board-status-D2lpFPiI.js";var i={all:[`custom-ui`],catalog:()=>[`custom-ui`,`catalog`],instances:()=>[`custom-ui`,`instances`],describe:e=>[`custom-ui`,`describe`,e],errors:e=>[`custom-ui`,`errors`,e],versions:e=>[`custom-ui`,`versions`,e],usage:e=>[`custom-ui`,`usage`,e],trash:()=>[`custom-ui`,`trash`],staged:e=>[`custom-ui`,`staged`,e]};function a(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var o=[`overview-card`,`session-panel`,`feature-page`,`floating`],s=[`S`,`M`],c=/^[a-z0-9][a-z0-9._-]{0,63}$/,l=/^[a-f0-9]{24}$/,u=/^[a-zA-Z0-9][a-zA-Z0-9._:-]{0,79}$/,d=/^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$/,f=/^[a-f0-9]{16}$/,p=[`network`,`notify`,`sessions.read`,`sessions.open`,`storage`,`provider.request`];function m(e,t=4e3){return typeof e==`string`?e.slice(0,t):``}function h(e){if(typeof e!=`string`||!e||e.length>512)return!1;let t=e.split(`/`);return t.length<=3&&t.every(e=>d.test(e))}function g(e,t=200){let n={};if(!a(e))return n;for(let[r,i]of Object.entries(e).slice(0,t))typeof i==`string`&&(n[r]=i);return n}function _(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(0,200)){if(!a(n)||typeof n.code!=`string`||!n.code)continue;let e={path:m(n.path,512),code:m(n.code,128)};if(a(n.params)){let t={};for(let[e,r]of Object.entries(n.params))(typeof r==`string`||typeof r==`number`&&Number.isFinite(r))&&(t[e]=r);e.params=t}t.push(e)}return t}function v(e){let t={};if(!a(e))return t;for(let n of[`zh-CN`,`en-US`]){let r=e[n];a(r)&&(t[n]={...typeof r.name==`string`?{name:r.name}:{},...typeof r.description==`string`?{description:r.description}:{},strings:g(r.strings,500)})}return t}function y(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!a(n)||!o.includes(n.surface))continue;let e=n.surface;if(t.some(t=>t.surface===e))continue;let r={surface:e};if(Array.isArray(n.sizes)){let e=s.filter(e=>n.sizes.includes(e));e.length&&(r.sizes=e)}a(n.size)&&typeof n.size.w==`number`&&typeof n.size.h==`number`&&Number.isFinite(n.size.w)&&Number.isFinite(n.size.h)&&n.size.w>0&&n.size.h>0&&(r.size={w:n.size.w,h:n.size.h}),t.push(r)}return t}function b(e){let t={};if(!a(e))return t;let n=e=>m(e.reason,500);for(let r of[`notify`,`sessions.read`,`sessions.open`]){let i=e[r];a(i)&&(t[r]={reason:n(i)})}let r=e[`provider.request`];a(r)&&Array.isArray(r.paths)&&Array.isArray(r.methods)&&(t[`provider.request`]={reason:n(r),paths:r.paths.filter(e=>typeof e==`string`),methods:r.methods.filter(e=>typeof e==`string`)});let i=e.network;a(i)&&Array.isArray(i.hosts)&&(t.network={reason:n(i),hosts:i.hosts.filter(e=>typeof e==`string`).slice(0,32),...Array.isArray(i.privateOrigins)&&{privateOrigins:i.privateOrigins.filter(e=>typeof e==`string`).slice(0,32)}});let o=e.storage;return a(o)&&(t.storage={reason:n(o),quotaKb:typeof o.quotaKb==`number`&&Number.isFinite(o.quotaKb)?o.quotaKb:256}),t}function x(e,t){if(!a(t)||t.runtime!==`native`||t.id!==e||!h(t.entry))return null;let n=a(t.props)?t.props:null;if(!n||n.type!==`object`||!a(n.properties))return null;let r=Array.isArray(t.styles)?t.styles:[];return r.every(h)?{runtime:`native`,id:e,name:m(t.name,120)||e,version:m(t.version,64),description:m(t.description,500),entry:t.entry,styles:r.slice(0,8),icon:m(t.icon,48),i18n:v(t.i18n),props:{type:`object`,properties:n.properties,required:Array.isArray(n.required)?n.required.filter(e=>typeof e==`string`):[]},placements:y(t.placements),capabilities:b(t.capabilities),sdk:typeof t.sdk==`number`?t.sdk:1,minHostVersion:m(t.minHostVersion,64)}:null}function S(e){return e===`agent`||e===`template`||e===`import`?e:`local`}function C(e){return Array.isArray(e)?p.filter(t=>e.includes(t)):[]}function w(e){return!a(e)||typeof e.stageId!=`string`||!f.test(e.stageId)||typeof e.id!=`string`||!c.test(e.id)?null:{stageId:e.stageId,id:e.id,name:m(e.name,120)||e.id,version:m(e.version,64),fileName:m(e.fileName,200)||`${e.id}.zip`,bytes:typeof e.bytes==`number`&&Number.isFinite(e.bytes)?e.bytes:0,sha256:/^[a-f0-9]{64}$/.test(String(e.sha256))?String(e.sha256):``,createdAt:m(e.createdAt,64),replaces:e.replaces===`native`||e.replaces===`legacy`||e.replaces===`broken`?e.replaces:null}}function T(e){if(!a(e)||typeof e.id!=`string`||!c.test(e.id))return null;let t=e.id,n={id:t,name:m(e.name,120)||t,version:m(e.version,64),description:m(e.description,500),directory:m(e.directory,4096),updatedAt:m(e.updatedAt,64),revoked:C(e.revoked)};if(e.kind!==`native`&&e.kind!==`broken`)return{...n,kind:`legacy`,status:`unsupported`,enabled:!1,source:S(e.source),entry:``,errors:_(e.errors)};if(e.kind===`broken`)return{...n,kind:`broken`,status:`invalid`,enabled:!1,source:S(e.source),entry:``,errors:_(e.errors)};let r=_(e.errors),i={...n,kind:`native`,status:e.status===`ready`?`ready`:`invalid`,enabled:e.enabled===!0,source:S(e.source),entry:m(e.entry,512),errors:r};if(e.manifest!==void 0){let n=x(t,e.manifest);n&&(i.manifest=n)}return i.status===`ready`&&(typeof e.rev==`string`&&l.test(e.rev)&&i.manifest?i.rev=e.rev:(i.status=`invalid`,i.errors=[...r,{path:``,code:`component_response_invalid`}])),i}function E(e){if(!a(e)||typeof e.root!=`string`||!Array.isArray(e.components))throw Error(`Invalid custom UI component response`);let t=a(e.features)?e.features:null,n=[],r=new Set;for(let t of e.components){let e=T(t);!e||r.has(e.id)||(r.add(e.id),n.push(e))}let i=[];for(let t of Array.isArray(e.staged)?e.staged.slice(0,50):[]){let e=w(t);e&&!i.some(t=>t.stageId===e.stageId)&&i.push(e)}return{root:e.root,features:{import:t?.import===!0,versions:t?.versions===!0,export:t?.export===!0,trash:t?.trash===`move`?`move`:`none`,trashRestore:t?.trashRestore===!0,usage:t?.usage===!0,revoke:t?.revoke===!0},components:n,staged:i,legacyShape:!t}}function D(e){return a(e)?e.type===`all`?{type:`all`}:e.type===`project`&&typeof e.cwd==`string`&&e.cwd?{type:`project`,cwd:e.cwd}:null:null}function O(e){if(!a(e)||typeof e.instanceId!=`string`||!u.test(e.instanceId)||typeof e.componentId!=`string`||!c.test(e.componentId)||!o.includes(e.surface))return null;let t=e.surface;return{instanceId:e.instanceId,componentId:e.componentId,surface:t,size:t===`overview-card`?s.includes(e.size)?e.size:`S`:null,scope:t===`session-panel`?D(e.scope)??{type:`all`}:null,title:m(e.title,80),props:a(e.props)?e.props:{},enabled:e.enabled!==!1,order:typeof e.order==`number`&&Number.isFinite(e.order)?e.order:0,createdAt:m(e.createdAt,64),updatedAt:m(e.updatedAt,64)}}function k(e){if(!a(e)||typeof e.revision!=`number`||!Number.isSafeInteger(e.revision)||!Array.isArray(e.instances))throw Error(`Invalid custom UI instances response`);let t=[],n=new Set;for(let r of e.instances){let e=O(r);!e||n.has(e.instanceId)||(n.add(e.instanceId),t.push(e))}return t.sort((e,t)=>e.order-t.order),{revision:e.revision,instances:t}}function A(e){let t=a(e)?O(e.instance):null;if(!t||!a(e)||typeof e.revision!=`number`)throw Error(`Invalid custom UI instance response`);return{revision:e.revision,instance:t}}function j(e){if(!a(e)||!Array.isArray(e.entries))throw Error(`Invalid custom UI errors response`);let t=[];for(let n of e.entries.slice(-200))!a(n)||typeof n.message!=`string`||t.push({at:m(n.at,64),kind:m(n.kind,32),level:m(n.level,16),message:m(n.message,500),...typeof n.stack==`string`?{stack:m(n.stack,4e3)}:{},...typeof n.instanceId==`string`?{instanceId:m(n.instanceId,80)}:{},...typeof n.surface==`string`?{surface:m(n.surface,32)}:{}});let n=a(e.network)?e.network:{},r={};if(a(n.hosts))for(let[e,t]of Object.entries(n.hosts).slice(0,64))typeof t==`number`&&Number.isFinite(t)&&(r[e]=t);return{entries:t,dropped:typeof e.dropped==`number`&&Number.isFinite(e.dropped)?e.dropped:0,network:{count:typeof n.count==`number`&&Number.isFinite(n.count)?n.count:0,lastAt:typeof n.lastAt==`string`?n.lastAt:null,hosts:r}}}function M(e){return typeof e==`number`&&Number.isFinite(e)&&e>=0?e:0}function N(e){if(!a(e)||e.status!==`ok`)return{status:`unsupported`};let t=a(e.summary)?e.summary:{},n=[`danger`,`warn`,`info`];return{status:`ok`,hosts:(Array.isArray(e.hosts)?e.hosts.slice(0,50):[]).flatMap(e=>a(e)&&typeof e.host==`string`?[{host:m(e.host,253),declared:e.declared===!0,file:m(e.file,512),line:M(e.line)}]:[]),findings:(Array.isArray(e.findings)?e.findings.slice(0,200):[]).flatMap(e=>a(e)&&typeof e.rule==`string`&&n.includes(e.severity)?[{rule:m(e.rule,32),severity:e.severity,file:m(e.file,512),line:M(e.line),excerpt:m(e.excerpt,200)}]:[]),summary:{danger:M(t.danger),warn:M(t.warn),info:M(t.info),undeclaredHosts:M(t.undeclaredHosts)},truncated:e.truncated===!0}}function P(e){return Array.isArray(e)?e.filter(e=>a(e)&&typeof e.path==`string`&&typeof e.size==`number`&&typeof e.type==`string`).slice(0,256).map(e=>({path:e.path,size:e.size,type:e.type})):[]}function F(e){let t=a(e)?T(e.component):null;if(!t||!a(e)||!Array.isArray(e.files))throw Error(`Invalid custom UI describe response`);return{component:t,files:P(e.files),errors:_(e.errors),scan:N(e.scan)}}function I(e){if(!a(e)||typeof e.status!=`number`||typeof e.body!=`string`||e.bodyEncoding!==`utf8`&&e.bodyEncoding!==`base64`)throw Error(`Invalid custom UI fetch response`);return{status:e.status,statusText:m(e.statusText,200),headers:g(e.headers,64),body:e.body,bodyEncoding:e.bodyEncoding,url:m(e.url,2048),redirected:e.redirected===!0}}function L(e){if(!(e instanceof n)||!e.data)return null;let t=e.data.code??e.data.error;return typeof t==`string`&&/^[a-z0-9_]{1,64}$/.test(t)?t:null}function R(e){return!(e instanceof n)||!e.data?[]:_(e.data.errors)}var z=e=>`/api/custom-ui/components/${encodeURIComponent(e)}`;function B(e,t,n){if(!c.test(e)||!l.test(t)||!h(n))throw Error(`Invalid component module path`);return`${z(e)}/r/${t}/${n.split(`/`).map(e=>encodeURIComponent(e)).join(`/`)}`}function V(e,n,r,i){return t(B(e,n,r),{signal:i})}function H(t){return e(`/api/custom-ui/components`,{signal:t,parse:E})}function U(t,n){return e(`${z(t)}/describe`,{signal:n,parse:F})}function ee(t){return e(`/api/custom-ui/components`,{method:`POST`,body:t,parse:e=>{let t=a(e)?T(e.component):null;if(!t)throw Error(`Invalid custom UI component response`);return t}})}function W(t,n){return e(z(t),{method:`PATCH`,body:{enabled:n},parse:e=>{let t=a(e)?T(e.component):null;if(!t)throw Error(`Invalid custom UI component response`);return t}})}function G(t){return e(z(t),{method:`DELETE`,parse:e=>({trashedAs:a(e)?m(e.trashedAs,256):``})})}function K(t){return e(`/api/custom-ui/instances`,{signal:t,parse:k})}function q(t){return e(`/api/custom-ui/instances`,{method:`POST`,body:t,parse:A})}function J(t,n){return e(`/api/custom-ui/instances/${encodeURIComponent(t)}`,{method:`PATCH`,body:n,parse:A})}function Y(t){return e(`/api/custom-ui/instances/${encodeURIComponent(t)}`,{method:`DELETE`,parse:e=>({revision:a(e)&&typeof e.revision==`number`?e.revision:0})})}function X(t,n){return e(`${z(t)}/errors`,{signal:n,parse:j})}function Z(t,n){return e(`${z(t)}/errors`,{method:`POST`,body:n,keepalive:!0,parse:()=>void 0})}function Q(t,n){return e(`${z(t)}/usage`,{method:`POST`,body:{entries:n},keepalive:!0,parse:()=>void 0})}function $(t,n,r){return e(`${z(t)}/storage/${encodeURIComponent(n)}`,{signal:r,parse:e=>{if(!a(e)||!Object.hasOwn(e,`value`))throw Error(`Invalid custom UI storage response`);return{value:e.value}}})}function te(t,n,r){return e(`${z(t)}/storage/${encodeURIComponent(n)}`,{method:`PUT`,body:{value:r},parse:()=>void 0})}function ne(t,n){return e(`${z(t)}/storage/${encodeURIComponent(n)}`,{method:`DELETE`,parse:()=>void 0})}async function re(t,n,r,i){return await e(`/api/custom-ui/provider-session`,{method:`PUT`,body:{sessionId:n},signal:i,timeout:15e3,parse:()=>void 0}),e(`${z(t)}/provider-request`,{method:`POST`,body:{sessionId:n,request:r},signal:i,timeout:15e3,parse:I})}function ie(t,n,r){return e(`${z(t)}/fetch`,{method:`POST`,body:n,signal:r,timeout:15e3,parse:I})}var ae=/^[A-Za-z0-9._:-]{1,128}$/,oe=/^\/skill:[a-z0-9][a-z0-9-]{0,63}$/;function se(e){if(!a(e)||typeof e.sessionId!=`string`||!ae.test(e.sessionId))throw Error(`Invalid custom UI session response`);let t=typeof e.command==`string`&&oe.test(e.command)?e.command:``,n=a(e.session)&&e.session.id===e.sessionId?e.session:null;return{sessionId:e.sessionId,created:e.created===!0,command:t,session:n}}function ce(t){return e(`${z(t)}/session`,{method:`POST`,body:{},parse:se})}function le(e=!0){return{queryKey:i.catalog(),queryFn:({signal:e})=>H(e),enabled:e,staleTime:3e4,retry:!1,refetchOnWindowFocus:!1}}function ue(e=!0){return{queryKey:i.instances(),queryFn:({signal:e})=>K(e),enabled:e,staleTime:3e4,retry:!1,refetchOnWindowFocus:!1}}function de(e,t){if(!e||e.type===`all`)return!0;let n=r(t);return n!==``&&r(e.cwd)===n}export{J as A,x as C,Q as D,Z as E,ce as O,_ as S,V as T,H as _,ie as a,T as b,re as c,te as d,ee as f,U as g,Y as h,L as i,i as j,W as k,$ as l,G as m,le as n,R as o,q as p,ue as r,B as s,de as t,ne as u,X as v,w,N as x,P as y};
@@ -1,2 +1,2 @@
1
- import{l as e}from"./events-BphhtnIg.js";import{t}from"./chat-api-BdMPDpVE.js";import{n,o as r,t as i}from"./session-tree-summary-C9jUUk8v.js";function a(e){if(typeof e!=`string`)return``;let t=e.trim();return t&&t.length<=200?t:``}async function o(n,a,{notify:o,t:s}){try{let r=await t.navigateSessionTree(n,a,!1);return i(n,r),e(n),o(s(`chat:sessionTree.undone`)),!0}catch(e){return o(r(e),`error`),!1}}function s(e,t,n,r){let i=a(t?.restoreEntryId);r.notify(n,`success`,i?{action:{label:r.t(`chat:sessionTree.undo`),onAction:()=>void o(e,i,r)}}:void 0)}function c(e){return{title:e(`chat:sessionTree.otherBranchTitle`),message:e(`chat:sessionTree.otherBranchMessage`),confirmLabel:e(`chat:sessionTree.switchBranch`),tone:`primary`}}async function l({sessionId:e,entryId:r,confirm:i,open:a,notify:o,t:l}){if(!await i(c(l)))return!1;let u=await t.navigateSessionTreeTarget(e,r);return!u.cancelled&&(n(e),a(e,r),s(e,u,l(`chat:sessionTree.switchedBranch`),{notify:o,t:l}),!0)}var u=8;function d(e,t){let n=e.files.filter(e=>e.action!==`unavailable`),r=e.files.filter(e=>e.action===`unavailable`),i=[];if(n.length){i.push(t(`chat:fileRewind.summary`,{count:n.length,restore:n.filter(e=>e.action===`restore`).length,remove:n.filter(e=>e.action===`delete`).length}));for(let e of n.slice(0,u))i.push(e.action===`delete`?t(`chat:fileRewind.deleteItem`,{path:e.path}):t(`chat:fileRewind.restoreItem`,{path:e.path}));n.length>u&&i.push(t(`chat:fileRewind.more`,{count:n.length-u}))}else i.push(t(`chat:fileRewind.nothing`));return r.length&&i.push(t(`chat:fileRewind.unavailable`,{count:r.length,paths:r.slice(0,u).map(e=>e.path).join(`, `)})),e.incomplete&&i.push(t(`chat:fileRewind.incomplete`)),i.push(t(`chat:fileRewind.scope`)),{title:t(`chat:fileRewind.title`),message:i.join(`
1
+ import{l as e}from"./events-D0dbOYFR.js";import{t}from"./chat-api-Dy5Hkicx.js";import{n,o as r,t as i}from"./session-tree-summary-C224W_G6.js";function a(e){if(typeof e!=`string`)return``;let t=e.trim();return t&&t.length<=200?t:``}async function o(n,a,{notify:o,t:s}){try{let r=await t.navigateSessionTree(n,a,!1);return i(n,r),e(n),o(s(`chat:sessionTree.undone`)),!0}catch(e){return o(r(e),`error`),!1}}function s(e,t,n,r){let i=a(t?.restoreEntryId);r.notify(n,`success`,i?{action:{label:r.t(`chat:sessionTree.undo`),onAction:()=>void o(e,i,r)}}:void 0)}function c(e){return{title:e(`chat:sessionTree.otherBranchTitle`),message:e(`chat:sessionTree.otherBranchMessage`),confirmLabel:e(`chat:sessionTree.switchBranch`),tone:`primary`}}async function l({sessionId:e,entryId:r,confirm:i,open:a,notify:o,t:l}){if(!await i(c(l)))return!1;let u=await t.navigateSessionTreeTarget(e,r);return!u.cancelled&&(n(e),a(e,r),s(e,u,l(`chat:sessionTree.switchedBranch`),{notify:o,t:l}),!0)}var u=8;function d(e,t){let n=e.files.filter(e=>e.action!==`unavailable`),r=e.files.filter(e=>e.action===`unavailable`),i=[];if(n.length){i.push(t(`chat:fileRewind.summary`,{count:n.length,restore:n.filter(e=>e.action===`restore`).length,remove:n.filter(e=>e.action===`delete`).length}));for(let e of n.slice(0,u))i.push(e.action===`delete`?t(`chat:fileRewind.deleteItem`,{path:e.path}):t(`chat:fileRewind.restoreItem`,{path:e.path}));n.length>u&&i.push(t(`chat:fileRewind.more`,{count:n.length-u}))}else i.push(t(`chat:fileRewind.nothing`));return r.length&&i.push(t(`chat:fileRewind.unavailable`,{count:r.length,paths:r.slice(0,u).map(e=>e.path).join(`, `)})),e.incomplete&&i.push(t(`chat:fileRewind.incomplete`)),i.push(t(`chat:fileRewind.scope`)),{title:t(`chat:fileRewind.title`),message:i.join(`
2
2
  `),confirmLabel:n.length?t(`chat:fileRewind.confirm`):t(`chat:fileRewind.confirmChatOnly`),tone:n.length?`danger`:`primary`}}function f(e,t){let n=e.restored.length+e.deleted.length,r=n?t(`chat:fileRewind.done`,{count:n}):t(`chat:fileRewind.doneChatOnly`);return e.unavailable.length?`${r} ${t(`chat:fileRewind.doneUnavailable`,{count:e.unavailable.length})}`:r}export{d as fileRewindConfirmOptions,f as fileRewindNotice,s as notifyTreeNavigation,l as switchToTurnOnOtherBranch};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-DwNgTV1j.js";import{t as n}from"./useQuery-DdcpUQhO.js";import{a as r}from"./startup-queries-Xtw8990R.js";import{t as i}from"./chat-api-BdMPDpVE.js";function a(e){return e instanceof Error?e.message:String(e)}function o(e){return/(?:当前会话已经结束运行|session .*?(?:ended|finished|no longer running))/i.test(a(e))}var s=e(t(),1),c=Object.freeze({});function l(e){return[`session-tree-summary`,e]}function u(e){let t=e&&typeof e==`object`?e:{},n=Number(t.branchCount),r={};for(let e of Array.isArray(t.nodes)?t.nodes:[]){if(!e||typeof e.id!=`string`||typeof e.label!=`string`)continue;let t=e.label.trim();t&&(r[e.id]=t.slice(0,80))}return{branchCount:Number.isFinite(n)&&n>0?Math.floor(n):0,labels:Object.keys(r).length?r:c}}async function d(e){return u(await i.getSessionTree(e))}function f(e,t){if(!e)return;let n=t;n&&Array.isArray(n.nodes)?r.setQueryData(l(e),u(n)):m(e)}function p(e){return r.fetchQuery({queryKey:l(e),queryFn:()=>d(e),staleTime:1/0})}function m(e){return r.invalidateQueries({queryKey:l(e)})}function h(e,{enabled:t,streaming:i,revision:a=0}){let o=t&&!i&&!!e,c=n({queryKey:l(e),queryFn:()=>d(e),enabled:o,staleTime:1/0},r),u=(0,s.useRef)({sessionId:e,streaming:i,revision:a});return(0,s.useEffect)(()=>{let t=u.current;u.current={sessionId:e,streaming:i,revision:a},!(!o||t.sessionId!==e)&&(t.streaming!==i||t.revision!==a)&&m(e)},[o,a,e,i]),c.data??null}function g(e,t){let i=n({queryKey:l(e),queryFn:()=>d(e),enabled:!1,staleTime:1/0,select:e=>t&&e.labels[t]||``},r);return t&&i.data||``}export{g as a,h as i,m as n,a as o,p as r,o as s,f as t};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-DwNgTV1j.js";import{t as n}from"./useQuery-DdcpUQhO.js";import{a as r}from"./startup-queries-qM8tclDJ.js";import{t as i}from"./chat-api-Dy5Hkicx.js";function a(e){return e instanceof Error?e.message:String(e)}function o(e){return/(?:当前会话已经结束运行|session .*?(?:ended|finished|no longer running))/i.test(a(e))}var s=e(t(),1),c=Object.freeze({});function l(e){return[`session-tree-summary`,e]}function u(e){let t=e&&typeof e==`object`?e:{},n=Number(t.branchCount),r={};for(let e of Array.isArray(t.nodes)?t.nodes:[]){if(!e||typeof e.id!=`string`||typeof e.label!=`string`)continue;let t=e.label.trim();t&&(r[e.id]=t.slice(0,80))}return{branchCount:Number.isFinite(n)&&n>0?Math.floor(n):0,labels:Object.keys(r).length?r:c}}async function d(e){return u(await i.getSessionTree(e))}function f(e,t){if(!e)return;let n=t;n&&Array.isArray(n.nodes)?r.setQueryData(l(e),u(n)):m(e)}function p(e){return r.fetchQuery({queryKey:l(e),queryFn:()=>d(e),staleTime:1/0})}function m(e){return r.invalidateQueries({queryKey:l(e)})}function h(e,{enabled:t,streaming:i,revision:a=0}){let o=t&&!i&&!!e,c=n({queryKey:l(e),queryFn:()=>d(e),enabled:o,staleTime:1/0},r),u=(0,s.useRef)({sessionId:e,streaming:i,revision:a});return(0,s.useEffect)(()=>{let t=u.current;u.current={sessionId:e,streaming:i,revision:a},!(!o||t.sessionId!==e)&&(t.streaming!==i||t.revision!==a)&&m(e)},[o,a,e,i]),c.data??null}function g(e,t){let i=n({queryKey:l(e),queryFn:()=>d(e),enabled:!1,staleTime:1/0,select:e=>t&&e.labels[t]||``},r);return t&&i.data||``}export{g as a,h as i,m as n,a as o,p as r,o as s,f as t};
@@ -1 +1 @@
1
- import{t as e}from"./index-DyGV2tpp.js";import{o as t}from"./vendor-state-GkUciC5H.js";import{t as n}from"./storage-DH3bQdy6.js";var r=Object.freeze([`commandPalette`,`primaryAction`,`focusSearch`,`toggleSidebar`,`toggleTerminal`,`openSettings`,`focusComposer`,`sendMessage`,`voiceInput`,`openBoard`,`openComponents`,`openMore`,`jumpToAttention`,`agentPanel`,`toggleInspector`,`previousAgent`,`nextAgent`,`steerMessage`,`shortcutHelp`,`openSession`,`sessionTree`,`sideChat`,`cycleFocusRegion`]),i=Object.freeze({commandPalette:`Mod+KeyK`,primaryAction:`Mod+KeyN`,focusSearch:`Slash`,toggleSidebar:`Mod+KeyB`,toggleTerminal:`Mod+Backquote`,openSettings:`Mod+Comma`,focusComposer:`Mod+Shift+KeyL`,sendMessage:`Enter`,voiceInput:`F8`,openBoard:`Mod+Digit1`,openComponents:null,openMore:`Mod+Digit2`,jumpToAttention:`Alt+KeyA`,agentPanel:`Mod+KeyJ`,toggleInspector:`Mod+KeyI`,previousAgent:`Alt+ArrowUp`,nextAgent:`Alt+ArrowDown`,steerMessage:`Alt+Enter`,shortcutHelp:`Mod+Slash`,openSession:null,sessionTree:`Mod+Shift+KeyB`,sideChat:null,cycleFocusRegion:`F6`}),a=[`Mod`,`Ctrl`,`Meta`,`Alt`,`Shift`],o=new Set([`Space`,`Backquote`,`Minus`,`Equal`,`BracketLeft`,`BracketRight`,`Backslash`,`Semicolon`,`Quote`,`Comma`,`Period`,`Slash`,`IntlBackslash`,`IntlRo`,`IntlYen`,`NumpadAdd`,`NumpadSubtract`,`NumpadMultiply`,`NumpadDivide`,`NumpadDecimal`]),s=new Set([`KeyA`,`KeyC`,`KeyF`,`KeyL`,`KeyO`,`KeyP`,`KeyQ`,`KeyR`,`KeyS`,`KeyT`,`KeyV`,`KeyW`,`KeyX`,`KeyY`,`KeyZ`]),c=new Map([[` `,`Space`],[`Spacebar`,`Space`],["`",`Backquote`],[`~`,`Backquote`],[`-`,`Minus`],[`_`,`Minus`],[`=`,`Equal`],[`+`,`Equal`],[`[`,`BracketLeft`],[`{`,`BracketLeft`],[`]`,`BracketRight`],[`}`,`BracketRight`],[`\\`,`Backslash`],[`|`,`Backslash`],[`;`,`Semicolon`],[`:`,`Semicolon`],[`'`,`Quote`],[`"`,`Quote`],[`,`,`Comma`],[`<`,`Comma`],[`.`,`Period`],[`>`,`Period`],[`/`,`Slash`],[`?`,`Slash`],...[...`)!@#$%^&*(`].map((e,t)=>[e,`Digit${t}`])]),l=class extends Error{constructor(e,t=`invalid`,n=null,r=null){super(e),this.name=`ShortcutValidationError`,this.code=t,this.action=n,this.conflictingAction=r}};function u(e){if(typeof e!=`string`||!e)return null;let t=e.split(`+`),n=t.pop();if(!/^(Key[A-Z]|Digit[0-9]|Numpad[0-9]|F([1-9]|1[0-2])|Enter|Arrow(Up|Down))$/.test(n)&&!o.has(n))return null;let r=-1;for(let e of t){let t=a.indexOf(e);if(t<=r)return null;r=t}return t.filter(e=>[`Mod`,`Ctrl`,`Meta`].includes(e)).length>1?null:{code:n,primary:t.find(e=>[`Mod`,`Ctrl`,`Meta`].includes(e))||null,alt:t.includes(`Alt`),shift:t.includes(`Shift`)}}function d(e,t=null){let{code:n,primary:r,alt:i,shift:a}=e;return n.startsWith(`Arrow`)?i&&!r&&!a:n===`Enter`&&a&&!r&&!i||i&&(n===`F4`||n===`Space`)||r&&n===`F4`||(r===`Mod`||r===`Meta`)&&n===`Space`&&!a||r&&s.has(n)&&!(n===`KeyL`&&a)?!1:/^F\d+$/.test(n)||r||i?!0:a?!1:n===`Enter`&&(!t||t===`sendMessage`)||n===`Slash`&&(!t||t===`focusSearch`)}function f(e,t){return{ctrl:e.primary===`Ctrl`||e.primary===`Mod`&&!t,meta:e.primary===`Meta`||e.primary===`Mod`&&t,alt:e.alt,shift:e.shift}}function p(e,t,n){let r=f(e,n),i=f(t,n);return e.code===t.code&&r.ctrl===i.ctrl&&r.meta===i.meta&&r.alt===i.alt&&r.shift===i.shift}function m(e,t,n){let i=u(n);if(!i)return null;for(let n of r){if(n===t)continue;let r=u(e?.[n]);if(r&&(p(i,r,!1)||p(i,r,!0)))return n}return null}function h(e){if(!e||typeof e!=`object`||Array.isArray(e)||![Object.prototype,null].includes(Object.getPrototypeOf(e))||Reflect.ownKeys(e).length!==r.length||!r.every(t=>Object.hasOwn(e,t)))throw new l(`Expected a complete shortcut map with only known actions`);let t={};for(let n of r){let r=e[n];if(r!==null){let e=u(r);if(!e||!d(e,n))throw new l(`Invalid or reserved shortcut for ${n}`,`invalid`,n)}t[n]=r}for(let e of r){let n=m(t,e,t[e]);if(n)throw new l(`Shortcut conflict between ${e} and ${n}`,`conflict`,e,n)}return t}var g=Object.freeze({openBoard:`Mod+Digit1`,openComponents:`Mod+Digit2`,openMore:`Mod+Digit3`}),_=Object.freeze({openSession:`Mod+Digit1`,openBoard:`Mod+Digit2`,openComponents:`Mod+Digit3`,openMore:`Mod+Digit4`}),v=Object.freeze([`openMore`,`openComponents`,`openBoard`,`openSession`]),y=Object.freeze({openSession:null,openBoard:`Mod+Digit1`,openComponents:null,openMore:`Mod+Digit2`});function b(e){for(let[t,n]of Object.entries(g))if(e[t]!==n)return;for(let t of v){let n=_[t];m(e,t,n)||(e[t]=n)}}function x(e){for(let[t,n]of Object.entries(_))if(e[t]!==n)return;Object.assign(e,y)}function S(e){if(!e||typeof e!=`object`||Array.isArray(e)||![Object.prototype,null].includes(Object.getPrototypeOf(e)))return e;let t=r.filter(t=>Object.hasOwn(e,t));if(t.length===r.length&&Reflect.ownKeys(e).length===t.length)return e;let n={};for(let r of t)n[r]=e[r];Object.hasOwn(n,`sessionTree`)||(Object.hasOwn(n,`openSession`)||b(n),x(n));for(let e of r){if(Object.hasOwn(n,e))continue;let t=i[e];n[e]=m(n,e,t)?null:t}return n}function C(e){try{let t=h(S(e));return t.voiceInput===`Mod+Shift+Space`&&!m(t,`voiceInput`,`F8`)&&(t.voiceInput=`F8`),t}catch{return{...i}}}function w(e){if(e.code)return e.code;let t=e.key;return typeof t==`string`?/^[a-z]$/i.test(t)?`Key${t.toUpperCase()}`:/^[0-9]$/.test(t)?`Digit${t}`:/^(Enter|Arrow(Up|Down)|F([1-9]|1[0-2]))$/.test(t)?t:c.get(t)||null:null}function T(e){return!e||e.defaultPrevented||e.repeat||e.isComposing||e.keyCode===229||[`Dead`,`Process`,`Unidentified`,`AltGraph`].includes(e.key)||e.getModifierState?.(`AltGraph`)}function E(e,t=!1){if(T(e)||e.ctrlKey&&e.metaKey)return null;let n=w(e);if(!n)return null;let r=[];(t?e.metaKey:e.ctrlKey)?r.push(`Mod`):e.ctrlKey?r.push(`Ctrl`):e.metaKey&&r.push(`Meta`),e.altKey&&r.push(`Alt`),e.shiftKey&&r.push(`Shift`),r.push(n);let i=r.join(`+`),a=u(i);return a&&d(a)?i:null}function D(e,t,n=!1){if(T(e))return!1;let r=u(t);if(!r||!d(r)||w(e)!==r.code)return!1;let i=f(r,n);return!!e.ctrlKey===i.ctrl&&!!e.metaKey===i.meta&&!!e.altKey===i.alt&&!!e.shiftKey===i.shift}function O(e,t=!1){let n=u(e);if(!n)return``;let r=[];n.primary&&r.push(n.primary===`Mod`?t?`Cmd`:`Ctrl`:n.primary===`Meta`?`Cmd`:`Ctrl`),n.alt&&r.push(`Alt`),n.shift&&r.push(`Shift`);let i={Backquote:"`",Minus:`-`,Equal:`=`,BracketLeft:`[`,BracketRight:`]`,Backslash:`\\`,Semicolon:`;`,Quote:`'`,Comma:`,`,Period:`.`,Slash:`/`,IntlBackslash:`\\`,IntlRo:`\\`,IntlYen:`Yen`,NumpadAdd:`Num +`,NumpadSubtract:`Num -`,NumpadMultiply:`Num *`,NumpadDivide:`Num /`,NumpadDecimal:`Num .`,ArrowUp:`↑`,ArrowDown:`↓`},a=n.code;return r.push(i[a]||a.replace(/^Key|^Digit/,``).replace(/^Numpad/,`Num `)),r.join(` + `)}var k=Object.freeze([`boardNext`,`boardPrevious`,`boardApprove`,`boardDeny`,`boardRetry`,`boardTriage`,`boardToggleGrouping`]),A=Object.freeze({boardNext:`KeyJ`,boardPrevious:`KeyK`,boardApprove:`KeyA`,boardDeny:`KeyD`,boardRetry:`KeyR`,boardTriage:`KeyT`,boardToggleGrouping:`KeyG`}),j=/^Key[A-Z]$/;function M(e,t,n){return typeof n!=`string`||!j.test(n)?null:k.find(r=>r!==t&&e?.[r]===n)||null}function N(e){if(!e||typeof e!=`object`||Array.isArray(e)||![Object.prototype,null].includes(Object.getPrototypeOf(e))||Reflect.ownKeys(e).length!==k.length||!k.every(t=>Object.hasOwn(e,t)))throw new l(`Expected a complete board shortcut map`);let t={};for(let n of k){let r=e[n];if(r!==null&&(typeof r!=`string`||!j.test(r)))throw new l(`Invalid board shortcut for ${n}`,`invalid`,n);t[n]=r}for(let e of k){let n=M(t,e,t[e]);if(n)throw new l(`Board shortcut conflict between ${e} and ${n}`,`conflict`,e,n)}return t}function P(e){try{let t=e&&typeof e==`object`&&!Array.isArray(e)?e:Object.create(null),n={};for(let e of k)Object.hasOwn(t,e)&&(n[e]=t[e]);for(let e of k){if(Object.hasOwn(n,e))continue;let t=A[e];n[e]=M(n,e,t)?null:t}return N(n)}catch{return{...A}}}function F(e){return!!(e?.ctrlKey||e?.metaKey||e?.altKey||e?.shiftKey)}function I(e){if(T(e)||F(e))return null;let t=w(e);return t&&j.test(t)?t:null}function L(e,t){return typeof t!=`string`||!j.test(t)?!1:I(e)===t}function R(){try{return C(JSON.parse(e.getItem(n.shortcuts)||`null`))}catch{return{...i}}}function z(){try{return P(JSON.parse(e.getItem(n.boardShortcuts)||`null`))}catch{return{...A}}}var B=t((t,r)=>{let a=r=>{e.setItem(n.shortcuts,JSON.stringify(r)),t({bindings:r})},o=r=>{e.setItem(n.boardShortcuts,JSON.stringify(r)),t({boardBindings:r})};return{bindings:R(),boardBindings:z(),setBinding:(e,t)=>a(h({...r().bindings,[e]:t})),setBoardBinding:(e,t)=>o(N({...r().boardBindings,[e]:t})),resetBindings:()=>{a({...i}),o({...A})}}});typeof window<`u`&&window.addEventListener(`storage`,e=>{(e.key===n.shortcuts||e.key===null)&&B.setState({bindings:R()}),(e.key===n.boardShortcuts||e.key===null)&&B.setState({boardBindings:z()})});var V=/Mac|iPhone|iPad/.test(globalThis.navigator?.platform||``);function H(e,t=V){return O(e,t)}function U(e,t,n=V){return D(e,t,n)}function W(e,t=V){return E(e,t)}function G(e){return H(B(t=>t.bindings[e]))}function K(e){return e instanceof HTMLElement&&!!e.closest(`input, textarea, select, [contenteditable]:not([contenteditable="false"]), [role="textbox"]`)}function q(e,t=V){return t&&e.altKey&&!e.ctrlKey&&!e.metaKey&&K(e.target)}function J(e){return e.defaultPrevented||e.isComposing||e.keyCode===229||e.repeat||document.visibilityState===`hidden`||!!document.querySelector(`[role="dialog"], [role="alertdialog"], dialog[open]`)||e.target instanceof HTMLElement&&!!e.target.closest(`[data-shortcut-recorder], .terminal-panel, [role="menu"], [role="listbox"]`)}export{h as _,J as a,B as c,i as d,r as f,L as g,m as h,q as i,k as l,M as m,K as n,W as o,I as p,U as r,G as s,H as t,A as u};
1
+ import{t as e}from"./index-DsXdZRdL.js";import{o as t}from"./vendor-state-GkUciC5H.js";import{t as n}from"./storage-8QW6lXuT.js";var r=Object.freeze([`commandPalette`,`primaryAction`,`focusSearch`,`toggleSidebar`,`toggleTerminal`,`openSettings`,`focusComposer`,`sendMessage`,`voiceInput`,`openBoard`,`openComponents`,`openMore`,`jumpToAttention`,`agentPanel`,`toggleInspector`,`previousAgent`,`nextAgent`,`steerMessage`,`shortcutHelp`,`openSession`,`sessionTree`,`sideChat`,`cycleFocusRegion`]),i=Object.freeze({commandPalette:`Mod+KeyK`,primaryAction:`Mod+KeyN`,focusSearch:`Slash`,toggleSidebar:`Mod+KeyB`,toggleTerminal:`Mod+Backquote`,openSettings:`Mod+Comma`,focusComposer:`Mod+Shift+KeyL`,sendMessage:`Enter`,voiceInput:`F8`,openBoard:`Mod+Digit1`,openComponents:null,openMore:`Mod+Digit2`,jumpToAttention:`Alt+KeyA`,agentPanel:`Mod+KeyJ`,toggleInspector:`Mod+KeyI`,previousAgent:`Alt+ArrowUp`,nextAgent:`Alt+ArrowDown`,steerMessage:`Alt+Enter`,shortcutHelp:`Mod+Slash`,openSession:null,sessionTree:`Mod+Shift+KeyB`,sideChat:null,cycleFocusRegion:`F6`}),a=[`Mod`,`Ctrl`,`Meta`,`Alt`,`Shift`],o=new Set([`Space`,`Backquote`,`Minus`,`Equal`,`BracketLeft`,`BracketRight`,`Backslash`,`Semicolon`,`Quote`,`Comma`,`Period`,`Slash`,`IntlBackslash`,`IntlRo`,`IntlYen`,`NumpadAdd`,`NumpadSubtract`,`NumpadMultiply`,`NumpadDivide`,`NumpadDecimal`]),s=new Set([`KeyA`,`KeyC`,`KeyF`,`KeyL`,`KeyO`,`KeyP`,`KeyQ`,`KeyR`,`KeyS`,`KeyT`,`KeyV`,`KeyW`,`KeyX`,`KeyY`,`KeyZ`]),c=new Map([[` `,`Space`],[`Spacebar`,`Space`],["`",`Backquote`],[`~`,`Backquote`],[`-`,`Minus`],[`_`,`Minus`],[`=`,`Equal`],[`+`,`Equal`],[`[`,`BracketLeft`],[`{`,`BracketLeft`],[`]`,`BracketRight`],[`}`,`BracketRight`],[`\\`,`Backslash`],[`|`,`Backslash`],[`;`,`Semicolon`],[`:`,`Semicolon`],[`'`,`Quote`],[`"`,`Quote`],[`,`,`Comma`],[`<`,`Comma`],[`.`,`Period`],[`>`,`Period`],[`/`,`Slash`],[`?`,`Slash`],...[...`)!@#$%^&*(`].map((e,t)=>[e,`Digit${t}`])]),l=class extends Error{constructor(e,t=`invalid`,n=null,r=null){super(e),this.name=`ShortcutValidationError`,this.code=t,this.action=n,this.conflictingAction=r}};function u(e){if(typeof e!=`string`||!e)return null;let t=e.split(`+`),n=t.pop();if(!/^(Key[A-Z]|Digit[0-9]|Numpad[0-9]|F([1-9]|1[0-2])|Enter|Arrow(Up|Down))$/.test(n)&&!o.has(n))return null;let r=-1;for(let e of t){let t=a.indexOf(e);if(t<=r)return null;r=t}return t.filter(e=>[`Mod`,`Ctrl`,`Meta`].includes(e)).length>1?null:{code:n,primary:t.find(e=>[`Mod`,`Ctrl`,`Meta`].includes(e))||null,alt:t.includes(`Alt`),shift:t.includes(`Shift`)}}function d(e,t=null){let{code:n,primary:r,alt:i,shift:a}=e;return n.startsWith(`Arrow`)?i&&!r&&!a:n===`Enter`&&a&&!r&&!i||i&&(n===`F4`||n===`Space`)||r&&n===`F4`||(r===`Mod`||r===`Meta`)&&n===`Space`&&!a||r&&s.has(n)&&!(n===`KeyL`&&a)?!1:/^F\d+$/.test(n)||r||i?!0:a?!1:n===`Enter`&&(!t||t===`sendMessage`)||n===`Slash`&&(!t||t===`focusSearch`)}function f(e,t){return{ctrl:e.primary===`Ctrl`||e.primary===`Mod`&&!t,meta:e.primary===`Meta`||e.primary===`Mod`&&t,alt:e.alt,shift:e.shift}}function p(e,t,n){let r=f(e,n),i=f(t,n);return e.code===t.code&&r.ctrl===i.ctrl&&r.meta===i.meta&&r.alt===i.alt&&r.shift===i.shift}function m(e,t,n){let i=u(n);if(!i)return null;for(let n of r){if(n===t)continue;let r=u(e?.[n]);if(r&&(p(i,r,!1)||p(i,r,!0)))return n}return null}function h(e){if(!e||typeof e!=`object`||Array.isArray(e)||![Object.prototype,null].includes(Object.getPrototypeOf(e))||Reflect.ownKeys(e).length!==r.length||!r.every(t=>Object.hasOwn(e,t)))throw new l(`Expected a complete shortcut map with only known actions`);let t={};for(let n of r){let r=e[n];if(r!==null){let e=u(r);if(!e||!d(e,n))throw new l(`Invalid or reserved shortcut for ${n}`,`invalid`,n)}t[n]=r}for(let e of r){let n=m(t,e,t[e]);if(n)throw new l(`Shortcut conflict between ${e} and ${n}`,`conflict`,e,n)}return t}var g=Object.freeze({openBoard:`Mod+Digit1`,openComponents:`Mod+Digit2`,openMore:`Mod+Digit3`}),_=Object.freeze({openSession:`Mod+Digit1`,openBoard:`Mod+Digit2`,openComponents:`Mod+Digit3`,openMore:`Mod+Digit4`}),v=Object.freeze([`openMore`,`openComponents`,`openBoard`,`openSession`]),y=Object.freeze({openSession:null,openBoard:`Mod+Digit1`,openComponents:null,openMore:`Mod+Digit2`});function b(e){for(let[t,n]of Object.entries(g))if(e[t]!==n)return;for(let t of v){let n=_[t];m(e,t,n)||(e[t]=n)}}function x(e){for(let[t,n]of Object.entries(_))if(e[t]!==n)return;Object.assign(e,y)}function S(e){if(!e||typeof e!=`object`||Array.isArray(e)||![Object.prototype,null].includes(Object.getPrototypeOf(e)))return e;let t=r.filter(t=>Object.hasOwn(e,t));if(t.length===r.length&&Reflect.ownKeys(e).length===t.length)return e;let n={};for(let r of t)n[r]=e[r];Object.hasOwn(n,`sessionTree`)||(Object.hasOwn(n,`openSession`)||b(n),x(n));for(let e of r){if(Object.hasOwn(n,e))continue;let t=i[e];n[e]=m(n,e,t)?null:t}return n}function C(e){try{let t=h(S(e));return t.voiceInput===`Mod+Shift+Space`&&!m(t,`voiceInput`,`F8`)&&(t.voiceInput=`F8`),t}catch{return{...i}}}function w(e){if(e.code)return e.code;let t=e.key;return typeof t==`string`?/^[a-z]$/i.test(t)?`Key${t.toUpperCase()}`:/^[0-9]$/.test(t)?`Digit${t}`:/^(Enter|Arrow(Up|Down)|F([1-9]|1[0-2]))$/.test(t)?t:c.get(t)||null:null}function T(e){return!e||e.defaultPrevented||e.repeat||e.isComposing||e.keyCode===229||[`Dead`,`Process`,`Unidentified`,`AltGraph`].includes(e.key)||e.getModifierState?.(`AltGraph`)}function E(e,t=!1){if(T(e)||e.ctrlKey&&e.metaKey)return null;let n=w(e);if(!n)return null;let r=[];(t?e.metaKey:e.ctrlKey)?r.push(`Mod`):e.ctrlKey?r.push(`Ctrl`):e.metaKey&&r.push(`Meta`),e.altKey&&r.push(`Alt`),e.shiftKey&&r.push(`Shift`),r.push(n);let i=r.join(`+`),a=u(i);return a&&d(a)?i:null}function D(e,t,n=!1){if(T(e))return!1;let r=u(t);if(!r||!d(r)||w(e)!==r.code)return!1;let i=f(r,n);return!!e.ctrlKey===i.ctrl&&!!e.metaKey===i.meta&&!!e.altKey===i.alt&&!!e.shiftKey===i.shift}function O(e,t=!1){let n=u(e);if(!n)return``;let r=[];n.primary&&r.push(n.primary===`Mod`?t?`Cmd`:`Ctrl`:n.primary===`Meta`?`Cmd`:`Ctrl`),n.alt&&r.push(`Alt`),n.shift&&r.push(`Shift`);let i={Backquote:"`",Minus:`-`,Equal:`=`,BracketLeft:`[`,BracketRight:`]`,Backslash:`\\`,Semicolon:`;`,Quote:`'`,Comma:`,`,Period:`.`,Slash:`/`,IntlBackslash:`\\`,IntlRo:`\\`,IntlYen:`Yen`,NumpadAdd:`Num +`,NumpadSubtract:`Num -`,NumpadMultiply:`Num *`,NumpadDivide:`Num /`,NumpadDecimal:`Num .`,ArrowUp:`↑`,ArrowDown:`↓`},a=n.code;return r.push(i[a]||a.replace(/^Key|^Digit/,``).replace(/^Numpad/,`Num `)),r.join(` + `)}var k=Object.freeze([`boardNext`,`boardPrevious`,`boardApprove`,`boardDeny`,`boardRetry`,`boardTriage`,`boardToggleGrouping`]),A=Object.freeze({boardNext:`KeyJ`,boardPrevious:`KeyK`,boardApprove:`KeyA`,boardDeny:`KeyD`,boardRetry:`KeyR`,boardTriage:`KeyT`,boardToggleGrouping:`KeyG`}),j=/^Key[A-Z]$/;function M(e,t,n){return typeof n!=`string`||!j.test(n)?null:k.find(r=>r!==t&&e?.[r]===n)||null}function N(e){if(!e||typeof e!=`object`||Array.isArray(e)||![Object.prototype,null].includes(Object.getPrototypeOf(e))||Reflect.ownKeys(e).length!==k.length||!k.every(t=>Object.hasOwn(e,t)))throw new l(`Expected a complete board shortcut map`);let t={};for(let n of k){let r=e[n];if(r!==null&&(typeof r!=`string`||!j.test(r)))throw new l(`Invalid board shortcut for ${n}`,`invalid`,n);t[n]=r}for(let e of k){let n=M(t,e,t[e]);if(n)throw new l(`Board shortcut conflict between ${e} and ${n}`,`conflict`,e,n)}return t}function P(e){try{let t=e&&typeof e==`object`&&!Array.isArray(e)?e:Object.create(null),n={};for(let e of k)Object.hasOwn(t,e)&&(n[e]=t[e]);for(let e of k){if(Object.hasOwn(n,e))continue;let t=A[e];n[e]=M(n,e,t)?null:t}return N(n)}catch{return{...A}}}function F(e){return!!(e?.ctrlKey||e?.metaKey||e?.altKey||e?.shiftKey)}function I(e){if(T(e)||F(e))return null;let t=w(e);return t&&j.test(t)?t:null}function L(e,t){return typeof t!=`string`||!j.test(t)?!1:I(e)===t}function R(){try{return C(JSON.parse(e.getItem(n.shortcuts)||`null`))}catch{return{...i}}}function z(){try{return P(JSON.parse(e.getItem(n.boardShortcuts)||`null`))}catch{return{...A}}}var B=t((t,r)=>{let a=r=>{e.setItem(n.shortcuts,JSON.stringify(r)),t({bindings:r})},o=r=>{e.setItem(n.boardShortcuts,JSON.stringify(r)),t({boardBindings:r})};return{bindings:R(),boardBindings:z(),setBinding:(e,t)=>a(h({...r().bindings,[e]:t})),setBoardBinding:(e,t)=>o(N({...r().boardBindings,[e]:t})),resetBindings:()=>{a({...i}),o({...A})}}});typeof window<`u`&&window.addEventListener(`storage`,e=>{(e.key===n.shortcuts||e.key===null)&&B.setState({bindings:R()}),(e.key===n.boardShortcuts||e.key===null)&&B.setState({boardBindings:z()})});var V=/Mac|iPhone|iPad/.test(globalThis.navigator?.platform||``);function H(e,t=V){return O(e,t)}function U(e,t,n=V){return D(e,t,n)}function W(e,t=V){return E(e,t)}function G(e){return H(B(t=>t.bindings[e]))}function K(e){return e instanceof HTMLElement&&!!e.closest(`input, textarea, select, [contenteditable]:not([contenteditable="false"]), [role="textbox"]`)}function q(e,t=V){return t&&e.altKey&&!e.ctrlKey&&!e.metaKey&&K(e.target)}function J(e){return e.defaultPrevented||e.isComposing||e.keyCode===229||e.repeat||document.visibilityState===`hidden`||!!document.querySelector(`[role="dialog"], [role="alertdialog"], dialog[open]`)||e.target instanceof HTMLElement&&!!e.target.closest(`[data-shortcut-recorder], .terminal-panel, [role="menu"], [role="listbox"]`)}export{h as _,J as a,B as c,i as d,r as f,L as g,m as h,q as i,k as l,M as m,K as n,W as o,I as p,U as r,G as s,H as t,A as u};