sliccy 6.154.1 → 6.154.2

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 (160) hide show
  1. package/dist/node-server/browser-shutdown.d.ts +6 -1
  2. package/dist/node-server/browser-shutdown.js +3 -3
  3. package/dist/node-server/chrome-launch.d.ts +3 -0
  4. package/dist/node-server/chrome-launch.js +2 -1
  5. package/dist/node-server/electron-controller.d.ts +63 -2
  6. package/dist/node-server/electron-controller.js +86 -48
  7. package/dist/node-server/electron-runtime.d.ts +15 -1
  8. package/dist/node-server/electron-runtime.js +10 -10
  9. package/dist/node-server/fetch-proxy-gzip.js +5 -7
  10. package/dist/node-server/hosted-bootstrap.d.ts +1 -0
  11. package/dist/node-server/hosted-bootstrap.js +12 -14
  12. package/dist/node-server/hostfs.d.ts +37 -1
  13. package/dist/node-server/hostfs.js +5 -5
  14. package/dist/node-server/install-cli.d.ts +1 -0
  15. package/dist/node-server/install-cli.js +1 -1
  16. package/dist/node-server/launch-url.js +2 -6
  17. package/dist/node-server/leader-restart.d.ts +9 -0
  18. package/dist/node-server/leader-restart.js +1 -1
  19. package/dist/node-server/publish-chrome-web-store-main.d.ts +1 -0
  20. package/dist/node-server/publish-chrome-web-store-main.js +13 -0
  21. package/dist/node-server/publish-chrome-web-store.d.ts +2 -0
  22. package/dist/node-server/publish-chrome-web-store.js +2 -15
  23. package/dist/node-server/release-package-main.d.ts +1 -0
  24. package/dist/node-server/release-package-main.js +17 -0
  25. package/dist/node-server/release-package.d.ts +38 -3
  26. package/dist/node-server/release-package.js +46 -50
  27. package/dist/node-server/routes/fetch-proxy.d.ts +40 -1
  28. package/dist/node-server/routes/fetch-proxy.js +20 -12
  29. package/dist/node-server/routes/secrets.d.ts +23 -1
  30. package/dist/node-server/routes/secrets.js +34 -30
  31. package/dist/node-server/secrets/proxy-manager.d.ts +2 -1
  32. package/dist/node-server/secrets/proxy-manager.js +27 -26
  33. package/dist/node-server/secrets/session-id-file.d.ts +5 -1
  34. package/dist/node-server/secrets/session-id-file.js +4 -4
  35. package/dist/node-server/secrets/sign-and-forward.d.ts +8 -0
  36. package/dist/node-server/secrets/sign-and-forward.js +1 -1
  37. package/dist/node-server/sudo/select.d.ts +2 -0
  38. package/dist/node-server/sudo/select.js +1 -1
  39. package/dist/node-server/sudo/tty-backend.d.ts +1 -0
  40. package/dist/node-server/sudo/tty-backend.js +1 -1
  41. package/dist/ui/.vite/manifest.json +171 -171
  42. package/dist/ui/assets/{account-store-BqdqUcgS.js → account-store-BSWxmlJm.js} +1 -1
  43. package/dist/ui/assets/{account-store-BgFuxoIt.js → account-store-BZdeVW0x.js} +1 -1
  44. package/dist/ui/assets/{adobe-BWEqvpfE.js → adobe-BKDJ9PXB.js} +1 -1
  45. package/dist/ui/assets/{adobe-De7VHe-t.js → adobe-Do7ppUu_.js} +1 -1
  46. package/dist/ui/assets/{agent-bridge-EXV0qNBB.js → agent-bridge-DKIVd0zM.js} +1 -1
  47. package/dist/ui/assets/{agent-panels-dcldnH3V.js → agent-panels-CERHjYbV.js} +1 -1
  48. package/dist/ui/assets/{apply-layout-DVgK-NlB.js → apply-layout-cMZU1oiO.js} +1 -1
  49. package/dist/ui/assets/{apps-BqrASr5C.js → apps-DBeGXxMQ.js} +1 -1
  50. package/dist/ui/assets/{azure-openai-vXGFZfPE.js → azure-openai-B7F3oYWt.js} +1 -1
  51. package/dist/ui/assets/{azure-openai-94kdulWT.js → azure-openai-CYw20Rb5.js} +1 -1
  52. package/dist/ui/assets/{budget-usage-source-BNEsxDHX.js → budget-usage-source-nJeiDJgA.js} +1 -1
  53. package/dist/ui/assets/{cdp-D0GOzfX9.js → cdp-C0EXef8t.js} +1 -1
  54. package/dist/ui/assets/{cerebras-v41u2mpJ.js → cerebras-B2Urbvva.js} +1 -1
  55. package/dist/ui/assets/{cerebras-eckgXNEU.js → cerebras-DmWJf3th.js} +1 -1
  56. package/dist/ui/assets/{composer-speech-ButVgF9_.js → composer-speech-BNHWaL3y.js} +1 -1
  57. package/dist/ui/assets/{connect-surface-C0WXwJHl.js → connect-surface-ig8ePsTv.js} +1 -1
  58. package/dist/ui/assets/{directed-approval-D1CLB6cG.js → directed-approval-B-TQlMYu.js} +1 -1
  59. package/dist/ui/assets/dist-BPPG9gF6.js +12 -0
  60. package/dist/ui/assets/dist-BnmWpUNI.js +18 -0
  61. package/dist/ui/assets/{dist-DCrgApJQ.js → dist-CFI3XeIO.js} +1 -1
  62. package/dist/ui/assets/{dist-UJah3hVh.js → dist-Ciikigd5.js} +1 -1
  63. package/dist/ui/assets/{fs-mC_RRTZZ.js → fs-CY5pwJnY.js} +1 -1
  64. package/dist/ui/assets/{fs-DK3k_wQh.js → fs-D5MhOzXY.js} +2 -2
  65. package/dist/ui/assets/{github-BLOM522m.js → github-B-Bd_nZ-.js} +2 -2
  66. package/dist/ui/assets/{github-CT-Oyj_0.js → github-C0Ge88be.js} +1 -1
  67. package/dist/ui/assets/{github-copilot-D2H-jvYu.js → github-copilot-CZaiYWHF.js} +1 -1
  68. package/dist/ui/assets/{github-copilot-CACLYChL.js → github-copilot-socdhqrE.js} +1 -1
  69. package/dist/ui/assets/{github-install-Bk-KTJD-.js → github-install-DuwYDOce.js} +1 -1
  70. package/dist/ui/assets/{github-zip-Dvb4zHOl.js → github-zip-CatJM_Hn.js} +1 -1
  71. package/dist/ui/assets/{hear-BXcOoxVl.js → hear-Ghdnf7n1.js} +1 -1
  72. package/dist/ui/assets/{help-BAqixBa0.js → help-hIoQhrvq.js} +1 -1
  73. package/dist/ui/assets/{js-realm-worker-CRY5Fv-C.js → js-realm-worker-DWUez8Bj.js} +1 -1
  74. package/dist/ui/assets/{kernel-worker-C1DLWYBM.js → kernel-worker-DOOSpFVG.js} +581 -581
  75. package/dist/ui/assets/{local-llm-Cv98D1SL.js → local-llm-Bi5_jnDv.js} +1 -1
  76. package/dist/ui/assets/{local-llm-D723hPLf.js → local-llm-DUeCZi0o.js} +1 -1
  77. package/dist/ui/assets/{main-C-pVQBFE.js → main-BBsnqT-n.js} +3 -3
  78. package/dist/ui/assets/{main-cherry-BdH-nz0p.js → main-cherry-Dx-6EGAA.js} +1 -1
  79. package/dist/ui/assets/{memory-curation-seam-eUVjWT6W.js → memory-curation-seam-6Ye5fb1z.js} +1 -1
  80. package/dist/ui/assets/{mount-3VFe3Pa7.js → mount-BJWo4gr-.js} +3 -3
  81. package/dist/ui/assets/{mount-Dh4tJ6XQ.js → mount-Dq_fD8nk.js} +1 -1
  82. package/dist/ui/assets/{mount-recovery-Cp7KYqTq.js → mount-recovery-2IXcFTPg.js} +1 -1
  83. package/dist/ui/assets/{new-session-hwwKqrO5.js → new-session-yJbhj5MZ.js} +2 -2
  84. package/dist/ui/assets/{oauth-bootstrap-BP7bAgwJ.js → oauth-bootstrap-B1nxEXuw.js} +2 -2
  85. package/dist/ui/assets/{onboarding-orchestrator-DOOTJ9OG.js → onboarding-orchestrator-Bzd3eyDB.js} +1 -1
  86. package/dist/ui/assets/{openai-codex--3foibzj.js → openai-codex-Blu70lOC.js} +1 -1
  87. package/dist/ui/assets/{openai-codex-vGpH6Ldz.js → openai-codex-CRux_5Io.js} +1 -1
  88. package/dist/ui/assets/{openrouter-B3v5OQPe.js → openrouter-BwyOovNP.js} +1 -1
  89. package/dist/ui/assets/{openrouter-D17vOiK5.js → openrouter-D5FrXcZn.js} +1 -1
  90. package/dist/ui/assets/{openrouter-free-Mha-ykI6.js → openrouter-free-73roMQJB.js} +1 -1
  91. package/dist/ui/assets/{openrouter-free-DndyeHH8.js → openrouter-free-C6PmJYd9.js} +1 -1
  92. package/dist/ui/assets/{openrouter-oauth-ov7dnUnh.js → openrouter-oauth-D6eTjtsZ.js} +1 -1
  93. package/dist/ui/assets/{openrouter-oauth-C4aGXNeF.js → openrouter-oauth-DWlKSVgT.js} +1 -1
  94. package/dist/ui/assets/{panel-rpc-handlers-CDsWA3s8.js → panel-rpc-handlers-3YsyA58r.js} +2 -2
  95. package/dist/ui/assets/{panelize-shell-CXpZWzgn.js → panelize-shell-DE_uUThR.js} +1 -1
  96. package/dist/ui/assets/{provider-BtT9_ZsY.js → provider-PKpn_LmL.js} +1 -1
  97. package/dist/ui/assets/{provider-2fDgJArv.js → provider-kiXfL_mq.js} +2 -2
  98. package/dist/ui/assets/provider-settings-DQML2w6d.js +1 -0
  99. package/dist/ui/assets/provider-store-access-BEmFKV-n.js +1 -0
  100. package/dist/ui/assets/provider-store-access-Cce46clP.js +1 -0
  101. package/dist/ui/assets/{providers-BWmPj6ob.js → providers-B7K9U_fm.js} +2 -2
  102. package/dist/ui/assets/{providers-D_mm-oKv.js → providers-e1sU7s6k.js} +1 -1
  103. package/dist/ui/assets/{quick-llm-Ch_X9AH9.js → quick-llm-fE1NE1pP.js} +1 -1
  104. package/dist/ui/assets/{recovery-screen-Ldb8xS5S.js → recovery-screen-yZ7MZWap.js} +1 -1
  105. package/dist/ui/assets/{run-DXUToOLa.js → run-CJHbh10K.js} +1 -1
  106. package/dist/ui/assets/{run-xG3-BOwR.js → run-Ce3yzmAj.js} +1 -1
  107. package/dist/ui/assets/{run-Bmb6g7U2.js → run-WYZqOFOH.js} +2 -2
  108. package/dist/ui/assets/{session-jsonl-DlNZajGM.js → session-jsonl-1Tumjx5q.js} +1 -1
  109. package/dist/ui/assets/{setup-feature-flags-remote-D-IPtvuE.js → setup-feature-flags-remote-Bjk9XIgB.js} +1 -1
  110. package/dist/ui/assets/sidecar-repair-D9Vw_sYj.js +1 -0
  111. package/dist/ui/assets/{silent-renew-backoff-BocHwLdw.js → silent-renew-backoff-Djz3wKFS.js} +1 -1
  112. package/dist/ui/assets/{skills-CTDnQTUW.js → skills-CyxZ_qdB.js} +1 -1
  113. package/dist/ui/assets/slicc-version-Be90TKG2.js +1 -0
  114. package/dist/ui/assets/{snapshot-BZ-_n6uU.js → snapshot-3Qf38DNo.js} +1 -1
  115. package/dist/ui/assets/{snapshot-features-BWzc1ERL.js → snapshot-features-BPOMdL3k.js} +1 -1
  116. package/dist/ui/assets/{soundscape-CowYlYSr.js → soundscape-B2mWrlHy.js} +1 -1
  117. package/dist/ui/assets/{speak-rCiisrK7.js → speak-CDJ0RzHm.js} +1 -1
  118. package/dist/ui/assets/{sprinkle-manager-DaVvW4Pl.js → sprinkle-manager-CpaUQQdp.js} +1 -1
  119. package/dist/ui/assets/{sprinkle-renderer-CDcbztf1.js → sprinkle-renderer-xqSZhBNo.js} +1 -1
  120. package/dist/ui/assets/{state-DHftNsPN.js → state-C-GUxpCw.js} +1 -1
  121. package/dist/ui/assets/{store-MZJeSOYF.js → store-BpCQUWkE.js} +1 -1
  122. package/dist/ui/assets/{store-CTM4679Z.js → store-DNbNsvQ5.js} +1 -1
  123. package/dist/ui/assets/{sudo-DLRz2gLx.js → sudo-HwABgE4V.js} +1 -1
  124. package/dist/ui/assets/{sync-dialog-BUFCYPxf.js → sync-dialog-BjaW5TBb.js} +1 -1
  125. package/dist/ui/assets/{transformers-env-BfjOXz9f.js → transformers-env-Xlg2tROb.js} +1 -1
  126. package/dist/ui/assets/{tray-sidecar-BP70hrzZ.js → tray-sidecar-KbAtqLcw.js} +1 -1
  127. package/dist/ui/assets/{upgrade-detection-Be8A7nY7.js → upgrade-detection-BWteE-0x.js} +1 -1
  128. package/dist/ui/assets/{voice-reply-BtqQr2DX.js → voice-reply-Bju5XMHK.js} +1 -1
  129. package/dist/ui/assets/{wc-attach-zW7DuRo7.js → wc-attach-Z0pwdH9M.js} +2 -2
  130. package/dist/ui/assets/{wc-extension-DGYx9jMG.js → wc-extension-_Hj1HhGf.js} +2 -2
  131. package/dist/ui/assets/{wc-follower-Bc6Mmmda.js → wc-follower-DVUdb9Um.js} +3 -3
  132. package/dist/ui/assets/{wc-follower-oauth-DOaUEVw8.js → wc-follower-oauth-BPx1gTgG.js} +1 -1
  133. package/dist/ui/assets/{wc-gelatiere-CdqOnO6V.js → wc-gelatiere-C0ySyH9N.js} +1 -1
  134. package/dist/ui/assets/{wc-live-BrKyGs-7.js → wc-live-DDos6Dzx.js} +5 -5
  135. package/dist/ui/assets/{wc-nav-dSAbBsA5.js → wc-nav-B2eDg6pO.js} +2 -2
  136. package/dist/ui/assets/{wc-onboarding-C1uyya9g.js → wc-onboarding-DboQnPWI.js} +2 -2
  137. package/dist/ui/assets/{wc-placeholder-Cw7uGVuJ.js → wc-placeholder-BjUEI-Mu.js} +3 -3
  138. package/dist/ui/assets/{wc-secret-request-CwA6DiWC.js → wc-secret-request-DceB-GYM.js} +1 -1
  139. package/dist/ui/assets/{wc-settings-DJEhDr23.js → wc-settings-DSED486Z.js} +3 -3
  140. package/dist/ui/assets/{wc-shell-C-DwVQCG.js → wc-shell-Dukh8kBp.js} +3 -3
  141. package/dist/ui/assets/{wc-shortcut-config-D9HBEfqv.js → wc-shortcut-config-BVLmA_4e.js} +1 -1
  142. package/dist/ui/assets/{wc-shortcuts-7i4KncH2.js → wc-shortcuts-DRoF52xJ.js} +1 -1
  143. package/dist/ui/assets/{wc-sprinkles-DsRJYYRI.js → wc-sprinkles-D-gTuKDK.js} +2 -2
  144. package/dist/ui/assets/{wc-transcript-export-Dq9HNkpA.js → wc-transcript-export-NX12cq80.js} +2 -2
  145. package/dist/ui/assets/{wc-tray-f6xi76Bq.js → wc-tray-CiypFS7u.js} +4 -4
  146. package/dist/ui/assets/welcome-detection-DS0NGHuw.js +1 -0
  147. package/dist/ui/assets/{whisper-session-B6knWfce.js → whisper-session-B2k89xAM.js} +2 -2
  148. package/dist/ui/assets/{xai-grok-BIfBT2BL.js → xai-grok-DMR1ZtnC.js} +1 -1
  149. package/dist/ui/assets/{xai-grok-B0KRInrx.js → xai-grok-cDPFunWd.js} +1 -1
  150. package/dist/ui/index.html +3 -3
  151. package/dist/ui/packages/webapp/index.html +3 -3
  152. package/package.json +3 -3
  153. package/dist/ui/assets/dist-B3W7EgGh.js +0 -12
  154. package/dist/ui/assets/dist-CmI2JIly.js +0 -18
  155. package/dist/ui/assets/provider-settings-D2AYwHOa.js +0 -1
  156. package/dist/ui/assets/provider-store-access-BdvWm9Kj.js +0 -1
  157. package/dist/ui/assets/provider-store-access-C5A5Se3D.js +0 -1
  158. package/dist/ui/assets/sidecar-repair-DRUvDMSe.js +0 -1
  159. package/dist/ui/assets/slicc-version-CWl4uhV3.js +0 -1
  160. package/dist/ui/assets/welcome-detection-DmqQ-hO4.js +0 -1
@@ -1 +1 @@
1
- import{_ as e}from"./account-store-BgFuxoIt.js";import{a as t}from"./diagnostics-DN_idNHx.js";import{d as n}from"./claude-model-version-CSATLzrT.js";import{r,s as i}from"./legacy-api-aliases-bAJ0Klzq.js";var a=`cerebras`,o=`https://api.cerebras.ai/v1`,s=`openai-completions`,c=`${a}-openai`,l=`slicc-cerebras-models`,u=[],d=[{id:`gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai`,reasoning:!0,input:[`text`],context_window:131072,max_tokens:40960},{id:`gemma-4-31b`,name:`Gemma 4 31B`,api:`openai`,reasoning:!1,input:[`text`,`image`],context_window:131072,max_tokens:40960},{id:`zai-glm-4.7`,name:`Z.AI GLM-4.7`,api:`openai`,reasoning:!1,input:[`text`],context_window:131072,max_tokens:40960}];function f(e){try{localStorage.setItem(l,JSON.stringify(e))}catch{}}function p(){try{let e=localStorage.getItem(l);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)&&t.length>0?t:[]}catch{return[]}}function m(e){let t=e.id??``,n=d.find(e=>e.id===t);return{id:t,name:e.name??n?.name??t,api:`openai`,reasoning:e.capabilities?.reasoning??n?.reasoning??!1,input:e.capabilities?.vision?[`text`,`image`]:n?.input??[`text`],context_window:e.limits?.max_context_length??n?.context_window??8192,max_tokens:e.limits?.max_completion_tokens??n?.max_tokens??4096}}async function h(e){let t=await fetch(`${o}/models`,{headers:{Authorization:`Bearer ${e}`}});if(!t.ok)throw Error(`GET /v1/models → ${t.status} ${t.statusText}`);let n=((await t.json()).data??[]).map(m).filter(e=>e.id.length>0);n.length>0&&(u=n,f(n))}function g(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:c,provider:a,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function _(e){console.error(`[cerebras] Stream error:`,e instanceof Error?e.message:String(e))}var v=(e,n,r={})=>{let i=t();return y(i,e,n,r).catch(_),i};async function y(e,t,n,i){try{let a={...t,baseUrl:o,api:s},c=r(a,n,i);for await(let t of c)e.push(t);e.end()}catch(n){_(n),e.push(g(t,n)),e.end()}}var b=(e,n,r)=>{let i=t();return x(i,e,n,r).catch(_),i};async function x(e,t,n,r){try{let a={...t,baseUrl:o,api:s},c=i(a,n,r);for await(let t of c)e.push(t);e.end()}catch(n){_(n),e.push(g(t,n)),e.end()}}var S={id:a,name:`Cerebras`,description:`Ultra-fast inference on Cerebras hardware. Get an API key at cloud.cerebras.ai.`,requiresApiKey:!0,requiresBaseUrl:!1,getModelIds:()=>{if(u.length>0)return u;let e=p();return e.length>0?e:d},refreshModels:async t=>{let n=t??e(a)??``;if(n)try{await h(n)}catch(e){console.warn(`[cerebras] Failed to refresh model list:`,e instanceof Error?e.message:String(e))}}};function C(){n({api:c,stream:v,streamSimple:b})}export{S as config,C as register};
1
+ import{_ as e}from"./account-store-BZdeVW0x.js";import{a as t}from"./diagnostics-DN_idNHx.js";import{d as n}from"./claude-model-version-CSATLzrT.js";import{r,s as i}from"./legacy-api-aliases-bAJ0Klzq.js";var a=`cerebras`,o=`https://api.cerebras.ai/v1`,s=`openai-completions`,c=`${a}-openai`,l=`slicc-cerebras-models`,u=[],d=[{id:`gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai`,reasoning:!0,input:[`text`],context_window:131072,max_tokens:40960},{id:`gemma-4-31b`,name:`Gemma 4 31B`,api:`openai`,reasoning:!1,input:[`text`,`image`],context_window:131072,max_tokens:40960},{id:`zai-glm-4.7`,name:`Z.AI GLM-4.7`,api:`openai`,reasoning:!1,input:[`text`],context_window:131072,max_tokens:40960}];function f(e){try{localStorage.setItem(l,JSON.stringify(e))}catch{}}function p(){try{let e=localStorage.getItem(l);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)&&t.length>0?t:[]}catch{return[]}}function m(e){let t=e.id??``,n=d.find(e=>e.id===t);return{id:t,name:e.name??n?.name??t,api:`openai`,reasoning:e.capabilities?.reasoning??n?.reasoning??!1,input:e.capabilities?.vision?[`text`,`image`]:n?.input??[`text`],context_window:e.limits?.max_context_length??n?.context_window??8192,max_tokens:e.limits?.max_completion_tokens??n?.max_tokens??4096}}async function h(e){let t=await fetch(`${o}/models`,{headers:{Authorization:`Bearer ${e}`}});if(!t.ok)throw Error(`GET /v1/models → ${t.status} ${t.statusText}`);let n=((await t.json()).data??[]).map(m).filter(e=>e.id.length>0);n.length>0&&(u=n,f(n))}function g(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:c,provider:a,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function _(e){console.error(`[cerebras] Stream error:`,e instanceof Error?e.message:String(e))}var v=(e,n,r={})=>{let i=t();return y(i,e,n,r).catch(_),i};async function y(e,t,n,i){try{let a={...t,baseUrl:o,api:s},c=r(a,n,i);for await(let t of c)e.push(t);e.end()}catch(n){_(n),e.push(g(t,n)),e.end()}}var b=(e,n,r)=>{let i=t();return x(i,e,n,r).catch(_),i};async function x(e,t,n,r){try{let a={...t,baseUrl:o,api:s},c=i(a,n,r);for await(let t of c)e.push(t);e.end()}catch(n){_(n),e.push(g(t,n)),e.end()}}var S={id:a,name:`Cerebras`,description:`Ultra-fast inference on Cerebras hardware. Get an API key at cloud.cerebras.ai.`,requiresApiKey:!0,requiresBaseUrl:!1,getModelIds:()=>{if(u.length>0)return u;let e=p();return e.length>0?e:d},refreshModels:async t=>{let n=t??e(a)??``;if(n)try{await h(n)}catch(e){console.warn(`[cerebras] Failed to refresh model list:`,e instanceof Error?e.message:String(e))}}};function C(){n({api:c,stream:v,streamSimple:b})}export{S as config,C as register};
@@ -1 +1 @@
1
- import{a as e}from"./account-store-BqdqUcgS.js";import{a as t}from"./diagnostics-DN_idNHx.js";import{a as n}from"./compat-uEPf6-XW.js";import{r,s as i}from"./legacy-api-aliases-jKEvBgOL.js";const a=`cerebras`,o=`https://api.cerebras.ai/v1`,s=`openai-completions`,c=`${a}-openai`,l=`slicc-cerebras-models`;let u=[];const d=[{id:`gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai`,reasoning:!0,input:[`text`],context_window:131072,max_tokens:40960},{id:`gemma-4-31b`,name:`Gemma 4 31B`,api:`openai`,reasoning:!1,input:[`text`,`image`],context_window:131072,max_tokens:40960},{id:`zai-glm-4.7`,name:`Z.AI GLM-4.7`,api:`openai`,reasoning:!1,input:[`text`],context_window:131072,max_tokens:40960}];function f(e){try{localStorage.setItem(l,JSON.stringify(e))}catch{}}function p(){try{let e=localStorage.getItem(l);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)&&t.length>0?t:[]}catch{return[]}}function m(e){let t=e.id??``,n=d.find(e=>e.id===t);return{id:t,name:e.name??n?.name??t,api:`openai`,reasoning:e.capabilities?.reasoning??n?.reasoning??!1,input:e.capabilities?.vision?[`text`,`image`]:n?.input??[`text`],context_window:e.limits?.max_context_length??n?.context_window??8192,max_tokens:e.limits?.max_completion_tokens??n?.max_tokens??4096}}async function h(e){let t=await fetch(`${o}/models`,{headers:{Authorization:`Bearer ${e}`}});if(!t.ok)throw Error(`GET /v1/models → ${t.status} ${t.statusText}`);let n=((await t.json()).data??[]).map(m).filter(e=>e.id.length>0);n.length>0&&(u=n,f(n))}function g(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:c,provider:a,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function _(e){console.error(`[cerebras] Stream error:`,e instanceof Error?e.message:String(e))}const v=(e,n,r={})=>{let i=t();return y(i,e,n,r).catch(_),i};async function y(e,t,n,i){try{let a={...t,baseUrl:o,api:s},c=r(a,n,i);for await(let t of c)e.push(t);e.end()}catch(n){_(n),e.push(g(t,n)),e.end()}}const b=(e,n,r)=>{let i=t();return x(i,e,n,r).catch(_),i};async function x(e,t,n,r){try{let a={...t,baseUrl:o,api:s},c=i(a,n,r);for await(let t of c)e.push(t);e.end()}catch(n){_(n),e.push(g(t,n)),e.end()}}const S={id:a,name:`Cerebras`,description:`Ultra-fast inference on Cerebras hardware. Get an API key at cloud.cerebras.ai.`,requiresApiKey:!0,requiresBaseUrl:!1,getModelIds:()=>{if(u.length>0)return u;let e=p();return e.length>0?e:d},refreshModels:async t=>{let n=t??e(a)??``;if(n)try{await h(n)}catch(e){console.warn(`[cerebras] Failed to refresh model list:`,e instanceof Error?e.message:String(e))}}};function C(){n({api:c,stream:v,streamSimple:b})}export{S as config,C as register};
1
+ import{a as e}from"./account-store-BSWxmlJm.js";import{a as t}from"./diagnostics-DN_idNHx.js";import{a as n}from"./compat-uEPf6-XW.js";import{r,s as i}from"./legacy-api-aliases-jKEvBgOL.js";const a=`cerebras`,o=`https://api.cerebras.ai/v1`,s=`openai-completions`,c=`${a}-openai`,l=`slicc-cerebras-models`;let u=[];const d=[{id:`gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai`,reasoning:!0,input:[`text`],context_window:131072,max_tokens:40960},{id:`gemma-4-31b`,name:`Gemma 4 31B`,api:`openai`,reasoning:!1,input:[`text`,`image`],context_window:131072,max_tokens:40960},{id:`zai-glm-4.7`,name:`Z.AI GLM-4.7`,api:`openai`,reasoning:!1,input:[`text`],context_window:131072,max_tokens:40960}];function f(e){try{localStorage.setItem(l,JSON.stringify(e))}catch{}}function p(){try{let e=localStorage.getItem(l);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)&&t.length>0?t:[]}catch{return[]}}function m(e){let t=e.id??``,n=d.find(e=>e.id===t);return{id:t,name:e.name??n?.name??t,api:`openai`,reasoning:e.capabilities?.reasoning??n?.reasoning??!1,input:e.capabilities?.vision?[`text`,`image`]:n?.input??[`text`],context_window:e.limits?.max_context_length??n?.context_window??8192,max_tokens:e.limits?.max_completion_tokens??n?.max_tokens??4096}}async function h(e){let t=await fetch(`${o}/models`,{headers:{Authorization:`Bearer ${e}`}});if(!t.ok)throw Error(`GET /v1/models → ${t.status} ${t.statusText}`);let n=((await t.json()).data??[]).map(m).filter(e=>e.id.length>0);n.length>0&&(u=n,f(n))}function g(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:c,provider:a,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function _(e){console.error(`[cerebras] Stream error:`,e instanceof Error?e.message:String(e))}const v=(e,n,r={})=>{let i=t();return y(i,e,n,r).catch(_),i};async function y(e,t,n,i){try{let a={...t,baseUrl:o,api:s},c=r(a,n,i);for await(let t of c)e.push(t);e.end()}catch(n){_(n),e.push(g(t,n)),e.end()}}const b=(e,n,r)=>{let i=t();return x(i,e,n,r).catch(_),i};async function x(e,t,n,r){try{let a={...t,baseUrl:o,api:s},c=i(a,n,r);for await(let t of c)e.push(t);e.end()}catch(n){_(n),e.push(g(t,n)),e.end()}}const S={id:a,name:`Cerebras`,description:`Ultra-fast inference on Cerebras hardware. Get an API key at cloud.cerebras.ai.`,requiresApiKey:!0,requiresBaseUrl:!1,getModelIds:()=>{if(u.length>0)return u;let e=p();return e.length>0?e:d},refreshModels:async t=>{let n=t??e(a)??``;if(n)try{await h(n)}catch(e){console.warn(`[cerebras] Failed to refresh model list:`,e instanceof Error?e.message:String(e))}}};function C(){n({api:c,stream:v,streamSimple:b})}export{S as config,C as register};
@@ -1 +1 @@
1
- import{t as e}from"./logger-DDBAeTLF.js";import{q as t}from"./wc-shortcuts-7i4KncH2.js";import{n}from"./runtime-env-Dlaokqg1.js";import{t as r}from"./permissions-surface-registry-CilCRwhh.js";import{t as i}from"./speech-assets-bridge-CFYafE89.js";import{o as a}from"./transformers-env-BfjOXz9f.js";import{i as o,t as s}from"./whisper-session-B6knWfce.js";var c=e(`speech:composer`),l=5e3,u=(e,t,n)=>new Promise((r,i)=>{let a=setTimeout(()=>i(Error(`${n} timed out after ${t}ms`)),t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})}),d=class{#e;#t;#n;#r;#i;#a=null;#o=!1;#s={engine:`builtin`,state:`idle`};#c=a();#l=new Set;#u=null;constructor(e={}){this.#e=e.builtin??t(),this.#t=e.loadWhisper??o,this.#n=e.startSession??s,this.#r=e.getPermissionSurface??f,this.#i=e.ensureAssets??v}permission(){return this.#e.permission()}async requestPermission(){let e=this.#r();if(e)try{let t=await e.request(`microphone`);return t?(this.#p(t.stream),!0):!1}catch(e){return c.warn(`permission surface microphone request failed`,e),!1}return this.#e.requestPermission()}microphones(){return this.#e.microphones()}status(){return this.#s}onStatus(e){return this.#l.add(e),e(this.#s),()=>this.#l.delete(e)}warmup(){this.#o||(this.#o=!0,this.#c=a(),this.#_({engine:`builtin`,state:`downloading`}),this.#d().then(e=>{this.#a=e,this.#_({engine:`enhanced`,state:`ready`})},e=>{this.#o=!1,this.#_({engine:`builtin`,state:`unavailable`,message:m(e)}),c.warn(`enhanced speech engine unavailable`,e)}))}async#d(){let e=null;try{await this.#i(e=>this.#h(e))}catch(t){e=t,c.warn(`speech asset staging failed; trying already-present assets`,t)}try{return await this.#t(e=>this.#g(e))}catch(t){throw e??t}}async start(e){let t=this.#a;if(t){let n=null;try{return n=await this.#f(e.deviceId),await this.#n(t,{deviceId:e.deviceId,lang:e.lang,onPartial:e.onPartial,onError:e.onError,stream:n??void 0})}catch(e){if(n)for(let e of n.getTracks())e.stop();c.warn(`whisper session failed to start; falling back to builtin`,e)}}return this.#e.start(e)}async#f(e){let t=e&&e!=="default"?e:void 0,n=this.#m();if(n){if(!t&&p(n))return n;for(let e of n.getTracks())e.stop()}let r=this.#r();if(!r)return null;let i={audio:!t||{deviceId:{exact:t}}},a=await u(r.request(`microphone`,{constraints:i}),l,`microphone capture`);if(!a)throw Error(`microphone permission denied`);return a.stream}#p(e){if(this.#u&&this.#u!==e)for(let e of this.#u.getTracks())e.stop();this.#u=e}#m(){let e=this.#u;return this.#u=null,e}get enhancedReady(){return this.#a!==null}#h(e){if(this.#s.state!==`downloading`)return;(e.bytesTotal!=null||e.bytesLoaded!=null)&&this.#c.update(e.asset,e.bytesLoaded??0,e.bytesTotal??0);let t=this.#c.snapshot();t.total<=0||this.#_({engine:`builtin`,state:`downloading`,download:{loaded:t.loaded,total:t.total,etaSeconds:t.etaSeconds}})}#g(e){this.#s.state===`downloading`&&this.#_({engine:`builtin`,state:`downloading`,download:{loaded:e.loaded,total:e.total,etaSeconds:e.etaSeconds}})}#_(e){this.#s=e;for(let t of this.#l)t(e)}};function f(){let e=r();return e?{async request(t,n){let r=await e.request(t,n);return r?.kind===`microphone`?{kind:`microphone`,stream:r.stream}:null}}:null}function p(e){let t=e.getTracks();return t.length>0&&t.some(e=>e.readyState!==`ended`)}function m(e){return`Enhanced speech unavailable: ${e instanceof Error?e.message:String(e)}`}var h=n,g;function _(e){g=e}function v(e){return h()?Promise.resolve():i({instanceId:g,onProgress:e})}var y=null;function b(){return y??=new d,y}export{b as getComposerSpeech,_ as setComposerSpeechInstanceId};
1
+ import{t as e}from"./logger-DDBAeTLF.js";import{q as t}from"./wc-shortcuts-DRoF52xJ.js";import{n}from"./runtime-env-Dlaokqg1.js";import{t as r}from"./permissions-surface-registry-CilCRwhh.js";import{t as i}from"./speech-assets-bridge-CFYafE89.js";import{o as a}from"./transformers-env-Xlg2tROb.js";import{i as o,t as s}from"./whisper-session-B2k89xAM.js";var c=e(`speech:composer`),l=5e3,u=(e,t,n)=>new Promise((r,i)=>{let a=setTimeout(()=>i(Error(`${n} timed out after ${t}ms`)),t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})}),d=class{#e;#t;#n;#r;#i;#a=null;#o=!1;#s={engine:`builtin`,state:`idle`};#c=a();#l=new Set;#u=null;constructor(e={}){this.#e=e.builtin??t(),this.#t=e.loadWhisper??o,this.#n=e.startSession??s,this.#r=e.getPermissionSurface??f,this.#i=e.ensureAssets??v}permission(){return this.#e.permission()}async requestPermission(){let e=this.#r();if(e)try{let t=await e.request(`microphone`);return t?(this.#p(t.stream),!0):!1}catch(e){return c.warn(`permission surface microphone request failed`,e),!1}return this.#e.requestPermission()}microphones(){return this.#e.microphones()}status(){return this.#s}onStatus(e){return this.#l.add(e),e(this.#s),()=>this.#l.delete(e)}warmup(){this.#o||(this.#o=!0,this.#c=a(),this.#_({engine:`builtin`,state:`downloading`}),this.#d().then(e=>{this.#a=e,this.#_({engine:`enhanced`,state:`ready`})},e=>{this.#o=!1,this.#_({engine:`builtin`,state:`unavailable`,message:m(e)}),c.warn(`enhanced speech engine unavailable`,e)}))}async#d(){let e=null;try{await this.#i(e=>this.#h(e))}catch(t){e=t,c.warn(`speech asset staging failed; trying already-present assets`,t)}try{return await this.#t(e=>this.#g(e))}catch(t){throw e??t}}async start(e){let t=this.#a;if(t){let n=null;try{return n=await this.#f(e.deviceId),await this.#n(t,{deviceId:e.deviceId,lang:e.lang,onPartial:e.onPartial,onError:e.onError,stream:n??void 0})}catch(e){if(n)for(let e of n.getTracks())e.stop();c.warn(`whisper session failed to start; falling back to builtin`,e)}}return this.#e.start(e)}async#f(e){let t=e&&e!=="default"?e:void 0,n=this.#m();if(n){if(!t&&p(n))return n;for(let e of n.getTracks())e.stop()}let r=this.#r();if(!r)return null;let i={audio:!t||{deviceId:{exact:t}}},a=await u(r.request(`microphone`,{constraints:i}),l,`microphone capture`);if(!a)throw Error(`microphone permission denied`);return a.stream}#p(e){if(this.#u&&this.#u!==e)for(let e of this.#u.getTracks())e.stop();this.#u=e}#m(){let e=this.#u;return this.#u=null,e}get enhancedReady(){return this.#a!==null}#h(e){if(this.#s.state!==`downloading`)return;(e.bytesTotal!=null||e.bytesLoaded!=null)&&this.#c.update(e.asset,e.bytesLoaded??0,e.bytesTotal??0);let t=this.#c.snapshot();t.total<=0||this.#_({engine:`builtin`,state:`downloading`,download:{loaded:t.loaded,total:t.total,etaSeconds:t.etaSeconds}})}#g(e){this.#s.state===`downloading`&&this.#_({engine:`builtin`,state:`downloading`,download:{loaded:e.loaded,total:e.total,etaSeconds:e.etaSeconds}})}#_(e){this.#s=e;for(let t of this.#l)t(e)}};function f(){let e=r();return e?{async request(t,n){let r=await e.request(t,n);return r?.kind===`microphone`?{kind:`microphone`,stream:r.stream}:null}}:null}function p(e){let t=e.getTracks();return t.length>0&&t.some(e=>e.readyState!==`ended`)}function m(e){return`Enhanced speech unavailable: ${e instanceof Error?e.message:String(e)}`}var h=n,g;function _(e){g=e}function v(e){return h()?Promise.resolve():i({instanceId:g,onProgress:e})}var y=null;function b(){return y??=new d,y}export{b as getComposerSpeech,_ as setComposerSpeechInstanceId};
@@ -1,4 +1,4 @@
1
- import{T as e,f as t,p as n,z as r}from"./account-store-BgFuxoIt.js";import{n as i}from"./main-C-pVQBFE.js";var a=`slicc_cloud_model_catalog`,o=`adobe`;function s(t){if(t===o)return!1;let n=e(t);return!(n.hidden||n.onOAuthLoginIntercepted)}function c(){try{let e=n().map(e=>({providerId:e.providerId,providerName:e.providerName,models:e.models.map(e=>({id:e.id,name:e.name}))}));localStorage.setItem(a,JSON.stringify(e))}catch{}}async function l(n){for(;n.firstChild;)n.removeChild(n.firstChild);n.className=`connect-surface`;let a=document.createElement(`h1`);a.className=`connect-surface__title`,a.textContent=`Connect providers`,n.appendChild(a);let l=document.createElement(`p`);l.className=`connect-surface__desc`,l.textContent=`Log in or add API keys for the providers your cone should use, then click Done to return to the dashboard.`,n.appendChild(l);let u=document.createElement(`div`);u.className=`connect-surface__accounts`,n.appendChild(u);function d(){for(;u.firstChild;)u.removeChild(u.firstChild);let n=t().filter(e=>e.providerId!==o);if(n.length===0){let e=document.createElement(`div`);e.className=`connect-surface__empty`,e.textContent=`No providers connected yet.`,u.appendChild(e)}else{let t=document.createElement(`div`);t.className=`connect-surface__accounts-list`;for(let i of n){let n=e(i.providerId),a=document.createElement(`div`);a.className=`connect-surface__account-row`;let o=document.createElement(`div`);o.className=`connect-surface__account-info`;let s=document.createElement(`div`);s.className=`connect-surface__account-name`,s.textContent=n.name,o.appendChild(s);let l=document.createElement(`div`);l.className=`connect-surface__account-detail`,l.textContent=i.userName?i.userName:i.accessToken?`Logged in`:i.apiKey?`API key set`:`No credentials`,o.appendChild(l),a.appendChild(o);let u=document.createElement(`button`);u.className=`connect-surface__remove-btn`,u.textContent=`Remove`,u.onclick=async()=>{await r(i.providerId),c(),d()},a.appendChild(u),t.appendChild(a)}u.appendChild(t)}let a=document.createElement(`button`);a.className=`connect-surface__add-btn`,a.textContent=n.length===0?`Add provider`:`Manage providers`,a.onclick=async()=>{await i({startInAddAccount:!0,providerFilter:s})&&(c(),d())},u.appendChild(a)}d(),c();let f=document.createElement(`div`);f.className=`connect-surface__footer`;let p=document.createElement(`button`);if(p.className=`connect-surface__done-btn`,p.textContent=`Done — return to dashboard`,p.onclick=()=>{c(),window.close()},f.appendChild(p),n.appendChild(f),!document.getElementById(`connect-surface-style`)){let e=document.createElement(`style`);e.id=`connect-surface-style`,e.textContent=`
1
+ import{T as e,f as t,p as n,z as r}from"./account-store-BZdeVW0x.js";import{n as i}from"./main-BBsnqT-n.js";var a=`slicc_cloud_model_catalog`,o=`adobe`;function s(t){if(t===o)return!1;let n=e(t);return!(n.hidden||n.onOAuthLoginIntercepted)}function c(){try{let e=n().map(e=>({providerId:e.providerId,providerName:e.providerName,models:e.models.map(e=>({id:e.id,name:e.name}))}));localStorage.setItem(a,JSON.stringify(e))}catch{}}async function l(n){for(;n.firstChild;)n.removeChild(n.firstChild);n.className=`connect-surface`;let a=document.createElement(`h1`);a.className=`connect-surface__title`,a.textContent=`Connect providers`,n.appendChild(a);let l=document.createElement(`p`);l.className=`connect-surface__desc`,l.textContent=`Log in or add API keys for the providers your cone should use, then click Done to return to the dashboard.`,n.appendChild(l);let u=document.createElement(`div`);u.className=`connect-surface__accounts`,n.appendChild(u);function d(){for(;u.firstChild;)u.removeChild(u.firstChild);let n=t().filter(e=>e.providerId!==o);if(n.length===0){let e=document.createElement(`div`);e.className=`connect-surface__empty`,e.textContent=`No providers connected yet.`,u.appendChild(e)}else{let t=document.createElement(`div`);t.className=`connect-surface__accounts-list`;for(let i of n){let n=e(i.providerId),a=document.createElement(`div`);a.className=`connect-surface__account-row`;let o=document.createElement(`div`);o.className=`connect-surface__account-info`;let s=document.createElement(`div`);s.className=`connect-surface__account-name`,s.textContent=n.name,o.appendChild(s);let l=document.createElement(`div`);l.className=`connect-surface__account-detail`,l.textContent=i.userName?i.userName:i.accessToken?`Logged in`:i.apiKey?`API key set`:`No credentials`,o.appendChild(l),a.appendChild(o);let u=document.createElement(`button`);u.className=`connect-surface__remove-btn`,u.textContent=`Remove`,u.onclick=async()=>{await r(i.providerId),c(),d()},a.appendChild(u),t.appendChild(a)}u.appendChild(t)}let a=document.createElement(`button`);a.className=`connect-surface__add-btn`,a.textContent=n.length===0?`Add provider`:`Manage providers`,a.onclick=async()=>{await i({startInAddAccount:!0,providerFilter:s})&&(c(),d())},u.appendChild(a)}d(),c();let f=document.createElement(`div`);f.className=`connect-surface__footer`;let p=document.createElement(`button`);if(p.className=`connect-surface__done-btn`,p.textContent=`Done — return to dashboard`,p.onclick=()=>{c(),window.close()},f.appendChild(p),n.appendChild(f),!document.getElementById(`connect-surface-style`)){let e=document.createElement(`style`);e.id=`connect-surface-style`,e.textContent=`
2
2
  .connect-surface {
3
3
  padding: 2rem;
4
4
  max-width: 560px;
@@ -1 +1 @@
1
- import{t as e}from"./logger-LESFN7Hj.js";import{t}from"./agent-bridge-EXV0qNBB.js";import{S as n}from"./record-YqlVEfh_.js";const r=e(`directed-approval`);function i(e,t){if(e.kind===`user`)return a(`the user tier is not a directed approval`);if(e.kind===`agent`)return a(`agent approvals are not enqueued to a unit`);let r=e.unitJid;if(!t.scoops.has(r))return a(`the requesting unit is not registered`);let i=t.ownerRootOf(r);if(!i)return a(`no owning cone for the requesting unit`);let o=e.kind===`cone`?i:[...t.scoops.values()].find(t=>t.parentJid===i.jid&&(t.name===e.scoopName||t.folder===e.scoopName));return o?n(o).canResolveApprovals?{ok:!0,requesterJid:r,approver:o}:a(`the named approver cannot resolve approvals`):a(`delegated approver not found under this cone`)}function a(e){return r.warn(`Directed approval failing closed`,{reason:e}),{ok:!1,reason:e}}const o={decision:`deny`};async function s(e,n){let a=e.approver;if(a?.kind===`agent`){let i=globalThis[t];if(!i)return r.warn(`No agent bridge available for an approver agent — denying`),o;let{approverRunnerFor:s}=await import(`./approver-agent-BA3dC9Lg.js`),c=n.getSharedFs(),l=await s({spawn:e=>i.spawn(e),readSharedFile:async e=>{if(!c)return null;try{let t=await c.readFile(e,{encoding:`utf-8`});return typeof t==`string`?t:null}catch{return null}},findUnit:e=>{let t=n.scoops.get(e);return t?{workspace:n.workspaceFor(t),folder:t.folder}:void 0}})({kind:e.kind===`guest-tool`?`guest-tool`:`guest-message`,requester:e.requester??`an unidentified requester`,detail:e.detail},a.unitJid);return r.info(`Approver agent verdict`,{decision:l.decision,reason:l.reason}),l.decision===`allow`?{decision:`allow`}:o}if(a&&a.kind!==`user`){let t=i(a,n);return t.ok?n.enqueue(t.requesterJid,e,{approver:t.approver}):o}return n.approveAsUser(e)}export{s as runDirectedApproval};
1
+ import{t as e}from"./logger-LESFN7Hj.js";import{t}from"./agent-bridge-DKIVd0zM.js";import{S as n}from"./record-YqlVEfh_.js";const r=e(`directed-approval`);function i(e,t){if(e.kind===`user`)return a(`the user tier is not a directed approval`);if(e.kind===`agent`)return a(`agent approvals are not enqueued to a unit`);let r=e.unitJid;if(!t.scoops.has(r))return a(`the requesting unit is not registered`);let i=t.ownerRootOf(r);if(!i)return a(`no owning cone for the requesting unit`);let o=e.kind===`cone`?i:[...t.scoops.values()].find(t=>t.parentJid===i.jid&&(t.name===e.scoopName||t.folder===e.scoopName));return o?n(o).canResolveApprovals?{ok:!0,requesterJid:r,approver:o}:a(`the named approver cannot resolve approvals`):a(`delegated approver not found under this cone`)}function a(e){return r.warn(`Directed approval failing closed`,{reason:e}),{ok:!1,reason:e}}const o={decision:`deny`};async function s(e,n){let a=e.approver;if(a?.kind===`agent`){let i=globalThis[t];if(!i)return r.warn(`No agent bridge available for an approver agent — denying`),o;let{approverRunnerFor:s}=await import(`./approver-agent-BA3dC9Lg.js`),c=n.getSharedFs(),l=await s({spawn:e=>i.spawn(e),readSharedFile:async e=>{if(!c)return null;try{let t=await c.readFile(e,{encoding:`utf-8`});return typeof t==`string`?t:null}catch{return null}},findUnit:e=>{let t=n.scoops.get(e);return t?{workspace:n.workspaceFor(t),folder:t.folder}:void 0}})({kind:e.kind===`guest-tool`?`guest-tool`:`guest-message`,requester:e.requester??`an unidentified requester`,detail:e.detail},a.unitJid);return r.info(`Approver agent verdict`,{decision:l.decision,reason:l.reason}),l.decision===`allow`?{decision:`allow`}:o}if(a&&a.kind!==`user`){let t=i(a,n);return t.ok?n.enqueue(t.requesterJid,e,{approver:t.approver}):o}return n.approveAsUser(e)}export{s as runDirectedApproval};