sliccy 6.99.7 → 6.99.8
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.
- package/dist/ui/.vite/manifest.json +389 -614
- package/dist/ui/assets/__vite-browser-external-CyeY5rFA.js +1 -0
- package/dist/ui/assets/{account-store-y43KgcoW.js → account-store-BHr78r-q.js} +3 -3
- package/dist/ui/assets/{account-store-llwJaGRg.js → account-store-DhN2-vXh.js} +5 -5
- package/dist/ui/assets/adobe-BgNEArvI.js +2 -0
- package/dist/ui/assets/{adobe-C30ITWqR.js → adobe-C-61Gw8p.js} +1 -1
- package/dist/ui/assets/agent-panels-DwH4FR7k.js +1 -0
- package/dist/ui/assets/{anthropic-messages-DbPJ2ji9.js → anthropic-messages-B7p0objs.js} +1 -1
- package/dist/ui/assets/{anthropic-messages-CpSojOI8.js → anthropic-messages-JQYJ-RUq.js} +1 -1
- package/dist/ui/assets/{apply-layout-CyFMgsCH.js → apply-layout-DWTxIKYs.js} +1 -1
- package/dist/ui/assets/{apps-BaBqMpf9.js → apps-CDrFK--r.js} +1 -1
- package/dist/ui/assets/azure-openai-BCHBeybM.js +18 -0
- package/dist/ui/assets/azure-openai-C1aiXjjQ.js +18 -0
- package/dist/ui/assets/{azure-openai-responses-DUMDrZ29.js → azure-openai-responses-BNbgkULn.js} +1 -1
- package/dist/ui/assets/{azure-openai-responses-BcoOaRCx.js → azure-openai-responses-BULcSJeo.js} +1 -1
- package/dist/ui/assets/{bedrock-camp-LeceEQbU.js → bedrock-camp-9Mg_YE1C.js} +1 -1
- package/dist/ui/assets/{bedrock-camp-BcJEC3Pg.js → bedrock-camp-DP3Gfbz7.js} +1 -1
- package/dist/ui/assets/{browser-DdY1FBRp.js → browser-DGwroBSO.js} +3 -3
- package/dist/ui/assets/{bsh-watchdog-GrjFkpDG.js → bsh-watchdog--Df_ThJG.js} +1 -1
- package/dist/ui/assets/{cdp-ByIHQG_1.js → cdp-BzUC7d2h.js} +1 -1
- package/dist/ui/assets/{cerebras-DCOB1GIn.js → cerebras-BWY_xN7G.js} +1 -1
- package/dist/ui/assets/{cerebras-Oyxkgl8K.js → cerebras-X5XOc6kT.js} +1 -1
- package/dist/ui/assets/{claude-model-version-Csn7RPVg.js → claude-model-version-BXR93nLt.js} +1 -1
- package/dist/ui/assets/claude-model-version-D6lCh6G7.js +2 -0
- package/dist/ui/assets/{composer-speech-Bqp4MnUW.js → composer-speech-Byuwd2QJ.js} +1 -1
- package/dist/ui/assets/{connect-surface-N7OhnOjG.js → connect-surface-BqfnkTNQ.js} +1 -1
- package/dist/ui/assets/{cost-command-BQWpaecs.js → cost-command-CwOkolbd.js} +57 -57
- package/dist/ui/assets/{dist-_7dnux20.js → dist-BmTb9jmr.js} +1 -1
- package/dist/ui/assets/{dist-D7yTTAcb.js → dist-BnDrtqYs.js} +1 -1
- package/dist/ui/assets/dist-CMD3ZuiV.js +1 -0
- package/dist/ui/assets/{dist-DTAqvnM4.js → dist-CV-6KpFS.js} +1 -1
- package/dist/ui/assets/dist-CWHNqkcj.js +1 -0
- package/dist/ui/assets/dist-CrVgSn_b.js +6 -0
- package/dist/ui/assets/dist-DkG8wgj1.js +23 -0
- package/dist/ui/assets/dist-N1MMHRNk.js +18 -0
- package/dist/ui/assets/dist-RekgwRC0.js +12 -0
- package/dist/ui/assets/{dist-B4LJzMVB.js → dist-kBT87Ea7.js} +11 -11
- package/dist/ui/assets/{ensure-speech-assets-CO3wuKjp.js → ensure-speech-assets-Hv5Jwof_.js} +1 -1
- package/dist/ui/assets/{es-BDNIRkLU.js → es-BLFevQz4.js} +5 -5
- package/dist/ui/assets/{esbuild-wasm-DUOZmSly.js → esbuild-wasm-Dl3vgXvq.js} +2 -2
- package/dist/ui/assets/esp8266-1y0C3qJ1.js +1 -0
- package/dist/ui/assets/esptool-operations-CiccBbBW.js +12 -0
- package/dist/ui/assets/esptool-operations-lUvXx3gs.js +13 -0
- package/dist/ui/assets/{follower-navigate-watcher-Dd46El3D.js → follower-navigate-watcher-DRFF6ll0.js} +1 -1
- package/dist/ui/assets/fs-qMMHgiDM.js +2 -0
- package/dist/ui/assets/{fs-BNz_JyUR.js → fs-tsCmhLpU.js} +1 -1
- package/dist/ui/assets/github-CLAenO0m.js +2 -0
- package/dist/ui/assets/github-TenSKQL4.js +1 -0
- package/dist/ui/assets/{github-copilot-DiPxhMir.js → github-copilot-B-pJOojX.js} +1 -1
- package/dist/ui/assets/github-copilot-CvxZKmtr.js +2 -0
- package/dist/ui/assets/{github-install-CZSoNGFR.js → github-install-CSrLhUFy.js} +1 -1
- package/dist/ui/assets/{github-zip-CrdkhxjH.js → github-zip-KaxQyKKS.js} +1 -1
- package/dist/ui/assets/{google-generative-ai-Rjh7hNBV.js → google-generative-ai-DEMR2Ygt.js} +1 -1
- package/dist/ui/assets/{google-generative-ai-Dxo91M3n.js → google-generative-ai-ZQ9beFyW.js} +1 -1
- package/dist/ui/assets/{google-shared-DQJPCU3d.js → google-shared-B7H0ZrH8.js} +6 -6
- package/dist/ui/assets/google-shared-REamLvEm.js +11 -0
- package/dist/ui/assets/{google-vertex-DEwkNZJm.js → google-vertex-0C6GT5h4.js} +1 -1
- package/dist/ui/assets/{google-vertex-61Jj0dk6.js → google-vertex-DsErHx7o.js} +1 -1
- package/dist/ui/assets/handoff-link-BObMRgsx.js +1 -0
- package/dist/ui/assets/{hear-Co4TqejW.js → hear-zfLnACrB.js} +1 -1
- package/dist/ui/assets/{installer-CufDPCfO.js → installer-VcJEC2uC.js} +1 -1
- package/dist/ui/assets/{isomorphic-git-BAj-fLD-.js → isomorphic-git-WdgG3efW.js} +6 -6
- package/dist/ui/assets/js-realm-worker-CXQhPnY0.js +40 -0
- package/dist/ui/assets/{kernel-worker-DyoLnIZO.js → kernel-worker-BpjE-7BD.js} +421 -428
- package/dist/ui/assets/kokoro-BkJ3NLgd.js +4 -0
- package/dist/ui/assets/{legacy-api-aliases-oJPAvhVV.js → legacy-api-aliases-BYDhiWyY.js} +1 -1
- package/dist/ui/assets/{legacy-api-aliases-BnRqMAef.js → legacy-api-aliases-Dh4ciP2O.js} +1 -1
- package/dist/ui/assets/{libesm-BI4UHVqp.js → libesm-BypnjKEL.js} +1 -1
- package/dist/ui/assets/{libesm-zfj8k-QN.js → libesm-CSMdpGMF.js} +1 -1
- package/dist/ui/assets/lick-manager-CYlek4qq.js +2 -0
- package/dist/ui/assets/{lick-ws-bridge-yklVm5en.js → lick-ws-bridge-CdCpPLQn.js} +1 -1
- package/dist/ui/assets/{local-llm-DNFbzXTw.js → local-llm-D5B7umV1.js} +1 -1
- package/dist/ui/assets/{local-llm-DOnsCe6c.js → local-llm-onyoDvHB.js} +1 -1
- package/dist/ui/assets/magick-wasm-266b8ntc.js +43 -0
- package/dist/ui/assets/main-DjAHuk3R.js +22 -0
- package/dist/ui/assets/{main-cherry-3UVAQhqV.js → main-cherry-C6fqCnLL.js} +1 -1
- package/dist/ui/assets/{mount-DhhlMZMN.js → mount-BcopcDTf.js} +1 -1
- package/dist/ui/assets/mount-Cr-j5Qvu.js +2 -0
- package/dist/ui/assets/{mount-recovery-Dbd9EVjz.js → mount-recovery-DnWemQVb.js} +1 -1
- package/dist/ui/assets/{navigation-watcher-OPbGCby9.js → navigation-watcher-DrWMx-B4.js} +1 -1
- package/dist/ui/assets/new-session-DagG-ZZy.js +2 -0
- package/dist/ui/assets/oauth-bootstrap-CDgbPc25.js +2 -0
- package/dist/ui/assets/onboarding-orchestrator-DwBmySbw.js +1 -0
- package/dist/ui/assets/openai-BKEGagiR.js +17 -0
- package/dist/ui/assets/openai-Bgt_f1Dp.js +17 -0
- package/dist/ui/assets/{openai-codex-BI5-lt7L.js → openai-codex-B8nK05u1.js} +1 -1
- package/dist/ui/assets/openai-codex-CFHJKZXk.js +1 -0
- package/dist/ui/assets/{openai-codex-responses-CPOJeFUY.js → openai-codex-responses-C-nzMgox.js} +1 -1
- package/dist/ui/assets/{openai-codex-responses-jQR19NyX.js → openai-codex-responses-CG4v_H6T.js} +1 -1
- package/dist/ui/assets/{openai-completions-DGOcowq8.js → openai-completions-CIRx7G9l.js} +2 -2
- package/dist/ui/assets/{openai-completions-DGZFJo5D.js → openai-completions-ojba8VM0.js} +2 -2
- package/dist/ui/assets/{openai-responses-CDTdSIhv.js → openai-responses-BDRcKCF5.js} +1 -1
- package/dist/ui/assets/{openai-responses-bnETPgx9.js → openai-responses-DzwaJ-X-.js} +1 -1
- package/dist/ui/assets/openai-responses-shared-BjAQ1eIE.js +10 -0
- package/dist/ui/assets/openai-responses-shared-Dg_yfxea.js +10 -0
- package/dist/ui/assets/{openrouter-DZhpGJA4.js → openrouter-BQXiRTOg.js} +1 -1
- package/dist/ui/assets/openrouter-brhW7dHW.js +1 -0
- package/dist/ui/assets/{openrouter-images-C93KT7V_.js → openrouter-images-BAtqv3Im.js} +1 -1
- package/dist/ui/assets/{openrouter-images-CiM-JPBO.js → openrouter-images-Du3tMEQa.js} +1 -1
- package/dist/ui/assets/openrouter-oauth-DQ7iHoUX.js +1 -0
- package/dist/ui/assets/{openrouter-oauth-iFmYGgcr.js → openrouter-oauth-DuIS_qNZ.js} +1 -1
- package/dist/ui/assets/panel-rpc-handlers-BBgO_HM3.js +2 -0
- package/dist/ui/assets/panelize-shell-DpfBeau6.js +4 -0
- package/dist/ui/assets/pdfjs-DAWky37A.js +100 -0
- package/dist/ui/assets/{provider-CauMmJra.js → provider-D1IQTDOu.js} +1 -1
- package/dist/ui/assets/provider-VbLD3Pa_.js +2 -0
- package/dist/ui/assets/{provider-settings-CDR9tmFe.js → provider-settings-D24NB2-U.js} +1 -1
- package/dist/ui/assets/provider-store-access-CFkv-yrf.js +1 -0
- package/dist/ui/assets/provider-store-access-Dh0tBZso.js +1 -0
- package/dist/ui/assets/providers-CZ_sFfrt.js +2 -0
- package/dist/ui/assets/{providers-DS7U7ou8.js → providers-PfyMAay1.js} +1 -1
- package/dist/ui/assets/{py-realm-worker-B2OTI7Xc.js → py-realm-worker-D1gqcTkl.js} +2 -2
- package/dist/ui/assets/{pyodide-CkJHMMSo.js → pyodide-D43YUXvd.js} +2 -2
- package/dist/ui/assets/{quick-llm-DSQHsD_0.js → quick-llm-drlxgkUg.js} +1 -1
- package/dist/ui/assets/{recovery-screen-dGlemlkP.js → recovery-screen-BccxAWe7.js} +1 -1
- package/dist/ui/assets/{redirect-uri-BOpxbXbd.js → redirect-uri-AfF6uLvV.js} +1 -1
- package/dist/ui/assets/remote-cdp-transport-DeDqT7I4.js +1 -0
- package/dist/ui/assets/remote-sprinkle-vfs-CawR6gXx.js +1 -0
- package/dist/ui/assets/{remote-terminal-view-BNWZWMBC.js → remote-terminal-view-D2bRNJcS.js} +2 -2
- package/dist/ui/assets/{run-Cll4MnAK.js → run-BIKu737n.js} +1 -1
- package/dist/ui/assets/safe-buffer-OLJ0qaLt.js +12 -0
- package/dist/ui/assets/safe-buffer-iah92gQe.js +1 -0
- package/dist/ui/assets/{setup-feature-flags-remote-rcKrPHk7.js → setup-feature-flags-remote-Dxg6pIkQ.js} +1 -1
- package/dist/ui/assets/shared-B9N4MZd0.js +1 -0
- package/dist/ui/assets/shared-CPVZc-MN.js +4 -0
- package/dist/ui/assets/sidecar-repair-DCvPqdWE.js +1 -0
- package/dist/ui/assets/{skills-0Do2e7wj.js → skills-Cc4T1Cfp.js} +1 -1
- package/dist/ui/assets/{slicc-diff-DhGIKKqP.js → slicc-diff-DRjxoBYz.js} +1 -1
- package/dist/ui/assets/slicc-editor-D-eO_pjd.js +23 -0
- package/dist/ui/assets/slicc-editor-Sdfe-_x_.js +1 -0
- package/dist/ui/assets/slicc-version-CzfOvAya.js +1 -0
- package/dist/ui/assets/speak-BsVaFA0Z.js +3 -0
- package/dist/ui/assets/{sprinkle-bridge-C4qw-DTw.js → sprinkle-bridge-e00Na2NA.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-B5T2quSt.js → sprinkle-manager-BqdBktzt.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-D64E-W2o.js → sprinkle-renderer-C9L5ZRvl.js} +2 -2
- package/dist/ui/assets/{sql-wasm-DO685FZu.js → sql-wasm-B7K7OCuB.js} +1 -1
- package/dist/ui/assets/{state-BrCP8Eff.js → state-B8PB53C0.js} +1 -1
- package/dist/ui/assets/{store-bEWnkux0.js → store-BsTL1Wgg.js} +1 -1
- package/dist/ui/assets/{store-C2gM1M-9.js → store-SXMbC-35.js} +1 -1
- package/dist/ui/assets/{sudo-D0ZG1KJr.js → sudo-Blo41kLx.js} +1 -1
- package/dist/ui/assets/sync-dialog-yRY0wRJj.js +1 -0
- package/dist/ui/assets/{temperature-support-B4x2xaWY.js → temperature-support-BVrwHxWv.js} +1 -1
- package/dist/ui/assets/{temperature-support-Cpml9LfI.js → temperature-support-LrmsX3ix.js} +1 -1
- package/dist/ui/assets/{transformers-env-HIDS8utb.js → transformers-env-_JNZLFlo.js} +1 -1
- package/dist/ui/assets/transformers.web-B0gi9Hor.js +39 -0
- package/dist/ui/assets/tray-leader-Mq6HIneb.js +1 -0
- package/dist/ui/assets/{upgrade-detection-Ckesn3Ns.js → upgrade-detection-DqD1aedt.js} +1 -1
- package/dist/ui/assets/voice-reply-B-I-XncI.js +1 -0
- package/dist/ui/assets/wc-attach-DgJVZRem.js +13 -0
- package/dist/ui/assets/wc-extension-b7ONOPn6.js +2 -0
- package/dist/ui/assets/wc-float-label-d3I12c8W.js +1 -0
- package/dist/ui/assets/{wc-floatbar-online-tsTifrU7.js → wc-floatbar-online-CFeU9jju.js} +1 -1
- package/dist/ui/assets/wc-follower-BU7l80Bf.js +17 -0
- package/dist/ui/assets/wc-follower-oauth-DIH7qpbt.js +5 -0
- package/dist/ui/assets/wc-live-DL5TcdQ7.js +399 -0
- package/dist/ui/assets/wc-nav-DjOpEDo-.js +2 -0
- package/dist/ui/assets/wc-onboarding-BeunqMQZ.js +2 -0
- package/dist/ui/assets/{wc-permissions-CEmFmdBe.js → wc-permissions-WjSZrbPa.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-C1LDJQR7.js → wc-placeholder-mYgmrH75.js} +3 -3
- package/dist/ui/assets/{wc-settings-PtFpnkee.js → wc-settings-JfsyJgL9.js} +3 -3
- package/dist/ui/assets/{src-B-encLtu.js → wc-shell-B7yZ6nn6.js} +304 -161
- package/dist/ui/assets/{wc-shortcut-config-w6fJ0bVB.js → wc-shortcut-config-CRticSXA.js} +2 -2
- package/dist/ui/assets/{wc-sprinkles-CeAUkWME.js → wc-sprinkles-D-DWMPsX.js} +2 -2
- package/dist/ui/assets/wc-transcript-export-DVjtNvuR.js +2 -0
- package/dist/ui/assets/wc-tray-D6joGkUe.js +2 -0
- package/dist/ui/assets/welcome-detection-CEmFgOCI.js +1 -0
- package/dist/ui/assets/{whisper-session-DzV9Jmfi.js → whisper-session-Ba-J0yyJ.js} +2 -2
- package/dist/ui/assets/{xai-grok-DRbKtbML.js → xai-grok-DHRw8xLj.js} +1 -1
- package/dist/ui/assets/xai-grok-DIhtpBYR.js +1 -0
- package/dist/ui/assets/xterm-B5LH8GIb.css +1 -0
- package/dist/ui/assets/xterm-C3BHN0de.js +16 -0
- package/dist/ui/index.html +8 -11
- package/dist/ui/packages/webapp/index.html +8 -11
- package/dist/ui/slicc-diff.js +1 -1
- package/dist/ui/slicc-editor.js +1 -1
- package/package.json +2 -2
- package/dist/ui/assets/__vite-browser-external-CwfFUl-x.js +0 -1
- package/dist/ui/assets/adobe-DeM_oCMe.js +0 -2
- package/dist/ui/assets/agent-message-to-chat-_cvF5A5g.js +0 -1
- package/dist/ui/assets/agent-panels-B92KQapO.js +0 -1
- package/dist/ui/assets/azure-openai-B2VLKBwJ.js +0 -18
- package/dist/ui/assets/azure-openai-tc52REpx.js +0 -18
- package/dist/ui/assets/backend-local-1YuE96fx.js +0 -1
- package/dist/ui/assets/chat-session-store-pWb1-jNp.js +0 -1
- package/dist/ui/assets/claude-model-version-DoVrYsKi.js +0 -2
- package/dist/ui/assets/db-cKsBsMMN.js +0 -1
- package/dist/ui/assets/dictation-priming-CNllGgNq.js +0 -1
- package/dist/ui/assets/dip-rCM_6Bc6.js +0 -233
- package/dist/ui/assets/dist-B6HZAA0r.js +0 -1
- package/dist/ui/assets/dist-BHvDPTv0.js +0 -1
- package/dist/ui/assets/dist-C56QxoYU.js +0 -18
- package/dist/ui/assets/dist-COLaZOxM.js +0 -23
- package/dist/ui/assets/dist-CPNmKU6m.js +0 -12
- package/dist/ui/assets/dist-Cew647MY.js +0 -12
- package/dist/ui/assets/dist-mxmkfALf.js +0 -6
- package/dist/ui/assets/esptool-operations-BmdosN6N.js +0 -13
- package/dist/ui/assets/esptool-operations-CbgLIJzi.js +0 -12
- package/dist/ui/assets/export-provider-BEHTjSYw.js +0 -1
- package/dist/ui/assets/follower-presentation-DqBw0YiV.js +0 -1
- package/dist/ui/assets/fs-C6heN6Io.js +0 -2
- package/dist/ui/assets/github-BES17MG4.js +0 -2
- package/dist/ui/assets/github-BnrwrtRn.js +0 -1
- package/dist/ui/assets/github-copilot-CzZSdNg_.js +0 -2
- package/dist/ui/assets/google-shared-CzJgTu-P.js +0 -11
- package/dist/ui/assets/handoff-link-BM4ctkE8.js +0 -1
- package/dist/ui/assets/host-command-zx0pt9Np.js +0 -1
- package/dist/ui/assets/js-realm-worker-D_8dhTFA.js +0 -40
- package/dist/ui/assets/kokoro-Bs5vU5OU.js +0 -4
- package/dist/ui/assets/layout-schema-m9_VAwOw.js +0 -1
- package/dist/ui/assets/leader-session-events-Iq9N1w56.js +0 -1
- package/dist/ui/assets/lick-manager-DFmMezV-.js +0 -2
- package/dist/ui/assets/magick-wasm-BpzBj-21.js +0 -43
- package/dist/ui/assets/main-CPLi98yu.js +0 -22
- package/dist/ui/assets/mount-CvVyowQ-.js +0 -2
- package/dist/ui/assets/new-session-BUxTN19q.js +0 -2
- package/dist/ui/assets/oauth-bootstrap-BnctKs3I.js +0 -2
- package/dist/ui/assets/onboarding-orchestrator-BF4m_3Ig.js +0 -1
- package/dist/ui/assets/openai-CjBvzZcB.js +0 -17
- package/dist/ui/assets/openai-ZcrxEOGB.js +0 -17
- package/dist/ui/assets/openai-codex-ad3likLF.js +0 -1
- package/dist/ui/assets/openai-responses-shared-ChgvRZ74.js +0 -10
- package/dist/ui/assets/openai-responses-shared-DqJbHrek.js +0 -10
- package/dist/ui/assets/openrouter-BfwBtJ0a.js +0 -1
- package/dist/ui/assets/openrouter-oauth-D1ocgCDw.js +0 -1
- package/dist/ui/assets/panel-registry-CJdOibpf.js +0 -1
- package/dist/ui/assets/panel-rpc-handlers-Dj-UnwwI.js +0 -2
- package/dist/ui/assets/panelize-shell-Dfx0Qk97.js +0 -4
- package/dist/ui/assets/pdfjs-BspLIDsM.js +0 -100
- package/dist/ui/assets/provider-3zYFx7pL.js +0 -2
- package/dist/ui/assets/provider-settings-CZ97KB3C.js +0 -2
- package/dist/ui/assets/provider-store-access-DvHfXiAa.js +0 -2
- package/dist/ui/assets/provider-store-access-escWLliN.js +0 -1
- package/dist/ui/assets/providers-DJA67z1N.js +0 -2
- package/dist/ui/assets/remote-cdp-transport-CgOXLjZ8.js +0 -1
- package/dist/ui/assets/remote-sprinkle-vfs-e81pZJKo.js +0 -1
- package/dist/ui/assets/safe-buffer-B2wnAhUx.js +0 -12
- package/dist/ui/assets/safe-buffer-BwTVRVVo.js +0 -1
- package/dist/ui/assets/session-freezer-BgO7tLUp.js +0 -162
- package/dist/ui/assets/setup-standalone-prelude-50scBzpK.js +0 -2
- package/dist/ui/assets/setup-sudo-Ce_APR8D.js +0 -2
- package/dist/ui/assets/shared-6HJLEwgI.js +0 -1
- package/dist/ui/assets/shared-BzvvjAZt.js +0 -4
- package/dist/ui/assets/sidecar-repair-431vRT2V.js +0 -1
- package/dist/ui/assets/slicc-editor-CVftccS9.js +0 -1
- package/dist/ui/assets/slicc-editor-DsHp_in-.js +0 -12
- package/dist/ui/assets/slicc-version-qJjMq-6R.js +0 -1
- package/dist/ui/assets/speak-KEFd3n_I.js +0 -3
- package/dist/ui/assets/sync-dialog-ACgl0n-p.js +0 -1
- package/dist/ui/assets/timestamp-preference-sKwBl5I8.js +0 -2
- package/dist/ui/assets/transformers.web-Cg_-cFJu.js +0 -39
- package/dist/ui/assets/tray-leader-iVJTGwuf.js +0 -1
- package/dist/ui/assets/tray-sync-protocol-BZ5yhJH9.js +0 -1
- package/dist/ui/assets/tray-sync-protocol-DV_QG_Ey.js +0 -1
- package/dist/ui/assets/trusted-layer-ghPA1ENf.js +0 -1
- package/dist/ui/assets/voice-reply-DaVk8H0o.js +0 -1
- package/dist/ui/assets/wc-attach-3I9pOCPA.js +0 -13
- package/dist/ui/assets/wc-extension-D1gzObu-.js +0 -2
- package/dist/ui/assets/wc-float-label-CCMo81Ds.js +0 -1
- package/dist/ui/assets/wc-follower-DrCJN-aK.js +0 -17
- package/dist/ui/assets/wc-follower-oauth-Dw0qOLsI.js +0 -5
- package/dist/ui/assets/wc-live-qc9mrCs3.js +0 -8
- package/dist/ui/assets/wc-nav-CysORJLz.js +0 -2
- package/dist/ui/assets/wc-onboarding-COhEMI0E.js +0 -2
- package/dist/ui/assets/wc-scoop-color-ShF3p7L9.js +0 -1
- package/dist/ui/assets/wc-shell-lFwQe30J.js +0 -119
- package/dist/ui/assets/wc-shortcuts-GiPteshM.js +0 -26
- package/dist/ui/assets/wc-transcript-export-DKIleW7-.js +0 -2
- package/dist/ui/assets/wc-tray-_dof-pAl.js +0 -2
- package/dist/ui/assets/welcome-detection-iVN_xL76.js +0 -1
- package/dist/ui/assets/xai-grok-BnSpWJjV.js +0 -1
- package/dist/ui/assets/xterm-BSL5rRqA.js +0 -18
- package/dist/ui/assets/xterm-BmfB5bmM.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./panel-rpc-BPwAqRch.js";import{$ as t,H as n,d as r,y as i}from"./account-store-llwJaGRg.js";import{a}from"./diagnostics-DN_idNHx.js";import{c as o,i as s,l as c,n as l,r as u,u as d}from"./claude-model-version-Csn7RPVg.js";import{a as f,r as p,s as m,t as h}from"./legacy-api-aliases-oJPAvhVV.js";import{n as g}from"./llm-session-id-BZyXP_j2.js";import{n as _,t as v}from"./silent-renew-backoff-C_Iv54ZG.js";import{getOAuthPageOrigin as ee}from"./oauth-service-CTntqv0R.js";import{n as y}from"./temperature-support-B4x2xaWY.js";import"./provider-settings-CDR9tmFe.js";var te={proxyEndpoint:`https://adobe-llm-proxy.paolo-moz.workers.dev`,redirectUri:`https://www.sliccy.ai/auth/callback`,extensionRedirectUri:`https://akjjllgokmbgpbdbmafpiefnhidlmbgf.chromiumapp.org/adobe`};function ne(e,t){return l(e,t)}function b(e,t,n){return e!==`xhigh`||!t?e:s(t,n)?`xhigh`:u(t,n)?`max`:`high`}function re(e,t){let n=e?t?.thinkingLevelMap?.[e]:void 0;return b((()=>{if(typeof n==`string`)return n;switch(e){case`minimal`:case`low`:return`low`;case`medium`:return`medium`;case`xhigh`:return`xhigh`;default:return`high`}})(),t?.id,t?.name)}function ie(e,t){return async(n,r)=>{let i=t?await t(n,r)??n:n,a=i.thinking;return a&&a.type===`enabled`&&(i.thinking={type:`adaptive`,...a.display===void 0?{}:{display:a.display}},i.output_config={...i.output_config??{},effort:e}),i}}function x(e,t){if(!ne(e.id,e.name))return t;let n=t,r=b(n.effort??re(n.reasoning,e),e.id,e.name);return{...t,onPayload:ie(r,n.onPayload)}}function ae(e,t){let n={id:e.id,name:e.name??e.id},r=t?.api??e.api,i=t?.context_window??e.context_window,a=t?.max_tokens??e.max_tokens,o=t?.reasoning??e.reasoning,s=t?.input??e.input;r&&(n.api=r),i!==void 0&&(n.context_window=i),a!==void 0&&(n.max_tokens=a),o!==void 0&&(n.reasoning=o),s&&(n.input=s);let c=t?.cost??e.cost;return c&&(n.cost=c),/haiku/i.test(e.id)&&(n.compat={supportsEagerToolInputStreaming:!1}),/sonnet-5\b/i.test(e.id)&&!n.thinkingLevelMap&&(n.thinkingLevelMap={xhigh:`xhigh`}),n}const S=Object.assign({"/packages/webapp/providers/adobe-config.json":te})[`/packages/webapp/providers/adobe-config.json`]??{clientId:``,proxyEndpoint:``,scopes:`openid,profile,email`};function C(){let e=i(`adobe`);if(e)return e.replace(/\/$/,``);if(S.proxyEndpoint)return S.proxyEndpoint.replace(/\/$/,``);throw Error(`Adobe proxy endpoint not configured — set it in Settings or adobe-config.json`)}const w=new Map,T=new Map,E=`slicc-adobe-models`;function D(e){try{localStorage.setItem(E,JSON.stringify(e))}catch{}}async function O(e){let t=w.get(e);if(t)return t;try{let t=await fetch(`${e}/v1/config`,{headers:{[W]:`6.99.7`}});if(t.ok){let n=await t.json();return w.set(e,n),n}console.warn(`[adobe] Proxy /v1/config returned ${t.status}, falling back to build-time config`)}catch(e){console.warn(`[adobe] Failed to fetch proxy config:`,e instanceof Error?e.message:String(e))}return{}}function k(e){let t=e.clientId||S.clientId;if(!t)throw Error(`Could not determine IMS client ID — proxy /v1/config did not return one and adobe-config.json is empty`);return t}function A(e){return e.scopes||S.scopes}function j(e){return e.imsEnvironment||S.imsEnvironment||`prod`}const M={prod:`https://ims-na1.adobelogin.com`,stg1:`https://ims-na1-stg1.adobelogin.com`};function N(e){return M[e??S.imsEnvironment??`prod`]??M.prod}const P=typeof chrome<`u`&&!!chrome?.runtime?.id;function F(){return r().find(e=>e.providerId===`adobe`)}async function oe(e,t){try{let n=await fetch(`${N(t)}/ims/userinfo/v2`,{headers:{Authorization:`Bearer ${e}`}});if(n.ok){let e=await n.json();return{name:e.displayName||e.name||e.email,avatar:e.picture||e.avatar_url}}console.warn(`[adobe] User profile fetch returned ${n.status}, account will have no display name`)}catch(e){console.warn(`[adobe] Failed to fetch user profile:`,e instanceof Error?e.message:String(e))}return{}}function I(e){let t=e.indexOf(`#`);if(t<0)return null;let n=new URLSearchParams(e.slice(t+1)),r=n.get(`access_token`);return r?{accessToken:r,expiresIn:parseInt(n.get(`expires_in`)??`86400`,10),scope:n.get(`scope`)??void 0}:null}const L={id:`adobe`,name:`Adobe`,description:`Claude via Adobe — login with your Adobe ID`,requiresApiKey:!1,requiresBaseUrl:!S.proxyEndpoint,baseUrlPlaceholder:`https://your-proxy.example.com`,baseUrlDescription:`Anthropic-compatible proxy endpoint`,isOAuth:!0,defaultModelId:`sonnet`,oauthTokenDomains:[`ims-na1.adobelogin.com`,`ims-na1-stg1.adobelogin.com`,`*.adobelogin.com`,`*.adobe.io`,`firefall.adobe.io`,`admin.hlx.page`,`admin.hlx.live`,`admin.aem.page`,`admin.aem.live`],getModelIds:()=>{let e=e=>ae(e,T.get(e.id));for(let t of Q.values())if(t.length){let n=t.map(t=>e({id:t.id,name:t.name??t.id,reasoning:t.reasoning,input:t.input,cost:t.cost}));return D(n),n}for(let t of w.values())if(t.models?.length)return t.models.map(t=>e(t));try{let e=localStorage.getItem(E);if(e){let t=JSON.parse(e);if(t.length)return t}}catch{}return[{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6`}]},onOAuthLogin:async(e,t,r)=>{let i=C(),a=await O(i),o=k(a),s=A(a),c=j(a),l=P?null:await ee(),u=P?null:_({pageHref:l.href,pageOrigin:l.origin,configuredRedirectUri:S.redirectUri},()=>crypto.randomUUID()),d=P?S.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:u.redirectUri,f=u?.oauthState,p=u?.expectedNonce??null,m=new URLSearchParams({client_id:o,scope:s,response_type:`token`,redirect_uri:d});f&&m.set(`state`,f),r?.forceReauth&&m.set(`prompt`,`login`);let h=await e(`${N(c)}/ims/authorize/v2?${m}`);if(!h)return;if(p&&h)try{if(new URL(h).searchParams.get(`nonce`)!==p){console.error(`[adobe] OAuth nonce mismatch — possible CSRF`);return}}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let g=I(h);if(!g){console.error(`[adobe] Could not extract token from redirect URL`);return}let v=await oe(g.accessToken,c);await n({providerId:`adobe`,accessToken:g.accessToken,tokenExpiresAt:Date.now()+g.expiresIn*1e3,userName:v.name,userAvatar:v.avatar,scopes:g.scope,baseUrl:S.proxyEndpoint?void 0:i}),await $().catch(e=>console.warn(`[adobe] Failed to fetch models after login:`,e instanceof Error?e.message:String(e))),t()},onOAuthLogout:async()=>{let e=F();if(e?.accessToken)try{let t=w.values().next().value??{},n=t.clientId||S.clientId,r=j(t);if(n){let t=await fetch(`${N(r)}/ims/revoke`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:new URLSearchParams({token:e.accessToken,token_type_hint:`access_token`,client_id:n})});t.ok||console.warn(`[adobe] Token revocation returned ${t.status}, token may still be valid server-side`)}}catch(e){console.warn(`[adobe] Failed to revoke token:`,e instanceof Error?e.message:String(e))}await n({providerId:`adobe`,accessToken:``})},onSilentRenew:async()=>F()?.accessToken?B():null,refreshModels:async e=>{await $(e);let t=L.getModelIds?.();t?.length&&D(t)}};let R=null;const se=v();async function z(){let e=F();if(!e?.accessToken)throw Error(`Not logged in to Adobe — please log in first`);if((e.tokenExpiresAt??0)-Date.now()>6e4)return e.accessToken;console.log(`[adobe] Token expired or expiring soon, attempting silent renewal...`);let t=await se.run(()=>B());if(t)return t;let n=F();if((n?.tokenExpiresAt??0)-Date.now()>0&&n?.accessToken)return n.accessToken;throw Error(`Adobe session expired — please log in again`)}function ce(){let e=F();return!e?.tokenExpiresAt||Date.now()>e.tokenExpiresAt-6e4}async function B(){if(typeof window>`u`){let t=e();if(!t)return null;try{let{accessToken:e}=await t.call(`silent-renew`,{providerId:`adobe`},{timeoutMs:13e4});return e}catch(e){return console.warn(`[adobe] worker→page silent-renew bridge failed:`,e instanceof Error?e.message:String(e)),null}}return R||(R=U().finally(()=>{R=null}),R)}function le(e,t){let n=k(t),r=A(t),i=j(t),a=P?null:_({pageHref:window.location.href,pageOrigin:window.location.origin,configuredRedirectUri:S.redirectUri},()=>crypto.randomUUID()),o=P?S.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:a.redirectUri,s=a?.oauthState,c=a?.expectedNonce??null,l=new URLSearchParams({client_id:n,scope:r,response_type:`token`,redirect_uri:o,prompt:`none`});return s&&l.set(`state`,s),{authorizeUrl:`${N(i)}/ims/authorize/v2?${l}`,expectedNonce:c,proxyEndpoint:e}}function V(e,t){if(!t)return!0;try{if(new URL(e).searchParams.get(`nonce`)!==t)return console.error(`[adobe] OAuth nonce mismatch — possible CSRF`),!1}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}return!0}async function H(e,t){let r=F();await n({providerId:`adobe`,accessToken:e.accessToken,tokenExpiresAt:Date.now()+e.expiresIn*1e3,userName:r?.userName,userAvatar:r?.userAvatar,scopes:e.scope,baseUrl:S.proxyEndpoint?void 0:t})}async function U(){try{let e=C(),{authorizeUrl:t,expectedNonce:n}=le(e,await O(e)),{createOAuthLauncher:r}=await import(`./oauth-service-CTntqv0R.js`),i=await r()(t,{interactive:!1});if(!i||!V(i,n))return null;let a=I(i);return a?(await H(a,e),console.log(`[adobe] Token renewed silently`),await $().catch(e=>console.warn(`[adobe] Failed to refresh models after silent renewal:`,e instanceof Error?e.message:String(e))),a.accessToken):null}catch(e){return console.warn(`[adobe] Silent renewal error:`,e instanceof Error?e.message:String(e)),null}}const W=`X-Slicc-Version`;function G(e){let t={};if(e.headers)for(let[n,r]of Object.entries(e.headers))n.toLowerCase()!==`x-slicc-version`&&(t[n]=r);return t[W]=`6.99.7`,{...e,headers:t}}const K=new Set;function q(e,t){if(e.headers){for(let[t,n]of Object.entries(e.headers))if(t.toLowerCase()===`x-session-id`&&n!=null)return e}return K.has(t)||(K.add(t),console.warn(`[adobe] Missing X-Session-Id from ${t} — using daily fallback. Attach an X-Session-Id header at the call site (see scoop-context.ts streamWithSessionId or docs/pitfalls.md).`)),{...e,headers:{...e.headers??{},"X-Session-Id":g(`adobe-provider-fallback`)}}}function ue(){K.clear()}function J(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:`adobe-anthropic`,provider:`adobe`,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()}}}const Y=(e,t,n={})=>{let r=a();return(async()=>{try{let i=await z();if(String(e.api).includes(`openai`)){let a={...e,baseUrl:`${C()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},o=p(a,t,G(q({...n,apiKey:i},`streamAdobe[openai]`)));for await(let e of o)r.push(e)}else{let a={...e,baseUrl:C(),api:`anthropic-messages`},o=h(a,t,G(q(x(e,y(e.id,e.name,{...n,apiKey:i})),`streamAdobe[anthropic]`)));for await(let e of o)r.push(e)}r.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),r.push(J(e,t)),r.end()}})(),r},X=(e,t,n)=>{let r=a();return(async()=>{try{let i=await z();if(String(e.api).includes(`openai`)){let a={...e,baseUrl:`${C()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},o=m(a,t,G(q({...n,apiKey:i},`streamSimpleAdobe[openai]`)));for await(let e of o)r.push(e)}else{let a={...e,baseUrl:C(),api:`anthropic-messages`},o=f(a,t,G(q(x(e,y(e.id,e.name,{...n,apiKey:i})),`streamSimpleAdobe[anthropic]`)));for await(let e of o)r.push(e)}r.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),r.push(J(e,t)),r.end()}})(),r};function de(e){let t={id:e.id,name:e.name};return e.api!==void 0&&(t.api=e.api),e.context_window!==void 0&&(t.context_window=e.context_window),e.max_tokens!==void 0&&(t.max_tokens=e.max_tokens),e.reasoning!==void 0&&(t.reasoning=e.reasoning),e.input!==void 0&&(t.input=e.input),t}function Z(){let e=new Map;for(let t of c())try{for(let n of o(t))e.set(n.id,n)}catch{}return e}function fe(e,n,r){let i=`adobe-${e.api===`openai`?`openai`:`anthropic`}`,a=r.get(e.id);if(a)return{...a,provider:`adobe`,api:i};let o=t(e.id,r);return{id:e.id,name:e.name??e.id,provider:`adobe`,api:i,baseUrl:n,contextWindow:2e5,maxTokens:16384,input:[`text`,`image`],cost:o,inputCost:o.input,outputCost:o.output,cacheReadCost:o.cacheRead,cacheWriteCost:o.cacheWrite,reasoning:!0}}function pe(e,t){for(let t of e)T.set(t.id,de(t));let n=Z();return e.map(e=>fe(e,t,n))}async function me(e){try{let t=e??await z(),n=C(),r=await fetch(`${n}/v1/models`,{headers:{Authorization:`Bearer ${t}`,[W]:`6.99.7`}});if(!r.ok)console.warn(`[adobe] Proxy /v1/models returned ${r.status}, falling back to Anthropic models`);else{let e=await r.json();if(e.data?.length)return pe(e.data,n)}}catch(e){console.warn(`[adobe] Failed to fetch proxy models:`,e instanceof Error?e.message:String(e))}return null}const Q=new Map;function he(){return o(`anthropic`).map(e=>({...e,provider:`adobe`,api:`adobe-anthropic`}))}async function $(e){let t=C(),n=Q.get(t);if(n)return n;let r=await me(e);return r?(Q.set(t,r),r):he()}function ge(){d({api:`adobe-anthropic`,stream:Y,streamSimple:X}),d({api:`adobe-openai`,stream:Y,streamSimple:X})}export{ue as __resetAdobeSessionIdWarningCacheForTests,L as config,I as extractTokenFromUrl,$ as getAdobeModels,z as getValidAccessToken,ce as isTokenExpired,ge as register};
|
|
1
|
+
import{n as e}from"./panel-rpc-BPwAqRch.js";import{$ as t,H as n,d as r,y as i}from"./account-store-DhN2-vXh.js";import{a}from"./diagnostics-DN_idNHx.js";import{c as o,i as s,l as c,n as l,r as u,u as d}from"./claude-model-version-BXR93nLt.js";import{a as f,r as p,s as m,t as h}from"./legacy-api-aliases-BYDhiWyY.js";import{n as g}from"./llm-session-id-BZyXP_j2.js";import{n as _,t as v}from"./silent-renew-backoff-C_Iv54ZG.js";import{getOAuthPageOrigin as ee}from"./oauth-service-CTntqv0R.js";import{n as y}from"./temperature-support-BVrwHxWv.js";import"./provider-settings-D24NB2-U.js";var te={proxyEndpoint:`https://adobe-llm-proxy.paolo-moz.workers.dev`,redirectUri:`https://www.sliccy.ai/auth/callback`,extensionRedirectUri:`https://akjjllgokmbgpbdbmafpiefnhidlmbgf.chromiumapp.org/adobe`};function ne(e,t){return l(e,t)}function b(e,t,n){return e!==`xhigh`||!t?e:s(t,n)?`xhigh`:u(t,n)?`max`:`high`}function re(e,t){let n=e?t?.thinkingLevelMap?.[e]:void 0;return b((()=>{if(typeof n==`string`)return n;switch(e){case`minimal`:case`low`:return`low`;case`medium`:return`medium`;case`xhigh`:return`xhigh`;default:return`high`}})(),t?.id,t?.name)}function ie(e,t){return async(n,r)=>{let i=t?await t(n,r)??n:n,a=i.thinking;return a&&a.type===`enabled`&&(i.thinking={type:`adaptive`,...a.display===void 0?{}:{display:a.display}},i.output_config={...i.output_config??{},effort:e}),i}}function x(e,t){if(!ne(e.id,e.name))return t;let n=t,r=b(n.effort??re(n.reasoning,e),e.id,e.name);return{...t,onPayload:ie(r,n.onPayload)}}function ae(e,t){let n={id:e.id,name:e.name??e.id},r=t?.api??e.api,i=t?.context_window??e.context_window,a=t?.max_tokens??e.max_tokens,o=t?.reasoning??e.reasoning,s=t?.input??e.input;r&&(n.api=r),i!==void 0&&(n.context_window=i),a!==void 0&&(n.max_tokens=a),o!==void 0&&(n.reasoning=o),s&&(n.input=s);let c=t?.cost??e.cost;return c&&(n.cost=c),/haiku/i.test(e.id)&&(n.compat={supportsEagerToolInputStreaming:!1}),/sonnet-5\b/i.test(e.id)&&!n.thinkingLevelMap&&(n.thinkingLevelMap={xhigh:`xhigh`}),n}const S=Object.assign({"/packages/webapp/providers/adobe-config.json":te})[`/packages/webapp/providers/adobe-config.json`]??{clientId:``,proxyEndpoint:``,scopes:`openid,profile,email`};function C(){let e=i(`adobe`);if(e)return e.replace(/\/$/,``);if(S.proxyEndpoint)return S.proxyEndpoint.replace(/\/$/,``);throw Error(`Adobe proxy endpoint not configured — set it in Settings or adobe-config.json`)}const w=new Map,T=new Map,E=`slicc-adobe-models`;function D(e){try{localStorage.setItem(E,JSON.stringify(e))}catch{}}async function O(e){let t=w.get(e);if(t)return t;try{let t=await fetch(`${e}/v1/config`,{headers:{[W]:`6.99.8`}});if(t.ok){let n=await t.json();return w.set(e,n),n}console.warn(`[adobe] Proxy /v1/config returned ${t.status}, falling back to build-time config`)}catch(e){console.warn(`[adobe] Failed to fetch proxy config:`,e instanceof Error?e.message:String(e))}return{}}function k(e){let t=e.clientId||S.clientId;if(!t)throw Error(`Could not determine IMS client ID — proxy /v1/config did not return one and adobe-config.json is empty`);return t}function A(e){return e.scopes||S.scopes}function j(e){return e.imsEnvironment||S.imsEnvironment||`prod`}const M={prod:`https://ims-na1.adobelogin.com`,stg1:`https://ims-na1-stg1.adobelogin.com`};function N(e){return M[e??S.imsEnvironment??`prod`]??M.prod}const P=typeof chrome<`u`&&!!chrome?.runtime?.id;function F(){return r().find(e=>e.providerId===`adobe`)}async function oe(e,t){try{let n=await fetch(`${N(t)}/ims/userinfo/v2`,{headers:{Authorization:`Bearer ${e}`}});if(n.ok){let e=await n.json();return{name:e.displayName||e.name||e.email,avatar:e.picture||e.avatar_url}}console.warn(`[adobe] User profile fetch returned ${n.status}, account will have no display name`)}catch(e){console.warn(`[adobe] Failed to fetch user profile:`,e instanceof Error?e.message:String(e))}return{}}function I(e){let t=e.indexOf(`#`);if(t<0)return null;let n=new URLSearchParams(e.slice(t+1)),r=n.get(`access_token`);return r?{accessToken:r,expiresIn:parseInt(n.get(`expires_in`)??`86400`,10),scope:n.get(`scope`)??void 0}:null}const L={id:`adobe`,name:`Adobe`,description:`Claude via Adobe — login with your Adobe ID`,requiresApiKey:!1,requiresBaseUrl:!S.proxyEndpoint,baseUrlPlaceholder:`https://your-proxy.example.com`,baseUrlDescription:`Anthropic-compatible proxy endpoint`,isOAuth:!0,defaultModelId:`sonnet`,oauthTokenDomains:[`ims-na1.adobelogin.com`,`ims-na1-stg1.adobelogin.com`,`*.adobelogin.com`,`*.adobe.io`,`firefall.adobe.io`,`admin.hlx.page`,`admin.hlx.live`,`admin.aem.page`,`admin.aem.live`],getModelIds:()=>{let e=e=>ae(e,T.get(e.id));for(let t of Q.values())if(t.length){let n=t.map(t=>e({id:t.id,name:t.name??t.id,reasoning:t.reasoning,input:t.input,cost:t.cost}));return D(n),n}for(let t of w.values())if(t.models?.length)return t.models.map(t=>e(t));try{let e=localStorage.getItem(E);if(e){let t=JSON.parse(e);if(t.length)return t}}catch{}return[{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6`}]},onOAuthLogin:async(e,t,r)=>{let i=C(),a=await O(i),o=k(a),s=A(a),c=j(a),l=P?null:await ee(),u=P?null:_({pageHref:l.href,pageOrigin:l.origin,configuredRedirectUri:S.redirectUri},()=>crypto.randomUUID()),d=P?S.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:u.redirectUri,f=u?.oauthState,p=u?.expectedNonce??null,m=new URLSearchParams({client_id:o,scope:s,response_type:`token`,redirect_uri:d});f&&m.set(`state`,f),r?.forceReauth&&m.set(`prompt`,`login`);let h=await e(`${N(c)}/ims/authorize/v2?${m}`);if(!h)return;if(p&&h)try{if(new URL(h).searchParams.get(`nonce`)!==p){console.error(`[adobe] OAuth nonce mismatch — possible CSRF`);return}}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let g=I(h);if(!g){console.error(`[adobe] Could not extract token from redirect URL`);return}let v=await oe(g.accessToken,c);await n({providerId:`adobe`,accessToken:g.accessToken,tokenExpiresAt:Date.now()+g.expiresIn*1e3,userName:v.name,userAvatar:v.avatar,scopes:g.scope,baseUrl:S.proxyEndpoint?void 0:i}),await $().catch(e=>console.warn(`[adobe] Failed to fetch models after login:`,e instanceof Error?e.message:String(e))),t()},onOAuthLogout:async()=>{let e=F();if(e?.accessToken)try{let t=w.values().next().value??{},n=t.clientId||S.clientId,r=j(t);if(n){let t=await fetch(`${N(r)}/ims/revoke`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:new URLSearchParams({token:e.accessToken,token_type_hint:`access_token`,client_id:n})});t.ok||console.warn(`[adobe] Token revocation returned ${t.status}, token may still be valid server-side`)}}catch(e){console.warn(`[adobe] Failed to revoke token:`,e instanceof Error?e.message:String(e))}await n({providerId:`adobe`,accessToken:``})},onSilentRenew:async()=>F()?.accessToken?B():null,refreshModels:async e=>{await $(e);let t=L.getModelIds?.();t?.length&&D(t)}};let R=null;const se=v();async function z(){let e=F();if(!e?.accessToken)throw Error(`Not logged in to Adobe — please log in first`);if((e.tokenExpiresAt??0)-Date.now()>6e4)return e.accessToken;console.log(`[adobe] Token expired or expiring soon, attempting silent renewal...`);let t=await se.run(()=>B());if(t)return t;let n=F();if((n?.tokenExpiresAt??0)-Date.now()>0&&n?.accessToken)return n.accessToken;throw Error(`Adobe session expired — please log in again`)}function ce(){let e=F();return!e?.tokenExpiresAt||Date.now()>e.tokenExpiresAt-6e4}async function B(){if(typeof window>`u`){let t=e();if(!t)return null;try{let{accessToken:e}=await t.call(`silent-renew`,{providerId:`adobe`},{timeoutMs:13e4});return e}catch(e){return console.warn(`[adobe] worker→page silent-renew bridge failed:`,e instanceof Error?e.message:String(e)),null}}return R||(R=U().finally(()=>{R=null}),R)}function le(e,t){let n=k(t),r=A(t),i=j(t),a=P?null:_({pageHref:window.location.href,pageOrigin:window.location.origin,configuredRedirectUri:S.redirectUri},()=>crypto.randomUUID()),o=P?S.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:a.redirectUri,s=a?.oauthState,c=a?.expectedNonce??null,l=new URLSearchParams({client_id:n,scope:r,response_type:`token`,redirect_uri:o,prompt:`none`});return s&&l.set(`state`,s),{authorizeUrl:`${N(i)}/ims/authorize/v2?${l}`,expectedNonce:c,proxyEndpoint:e}}function V(e,t){if(!t)return!0;try{if(new URL(e).searchParams.get(`nonce`)!==t)return console.error(`[adobe] OAuth nonce mismatch — possible CSRF`),!1}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}return!0}async function H(e,t){let r=F();await n({providerId:`adobe`,accessToken:e.accessToken,tokenExpiresAt:Date.now()+e.expiresIn*1e3,userName:r?.userName,userAvatar:r?.userAvatar,scopes:e.scope,baseUrl:S.proxyEndpoint?void 0:t})}async function U(){try{let e=C(),{authorizeUrl:t,expectedNonce:n}=le(e,await O(e)),{createOAuthLauncher:r}=await import(`./oauth-service-CTntqv0R.js`),i=await r()(t,{interactive:!1});if(!i||!V(i,n))return null;let a=I(i);return a?(await H(a,e),console.log(`[adobe] Token renewed silently`),await $().catch(e=>console.warn(`[adobe] Failed to refresh models after silent renewal:`,e instanceof Error?e.message:String(e))),a.accessToken):null}catch(e){return console.warn(`[adobe] Silent renewal error:`,e instanceof Error?e.message:String(e)),null}}const W=`X-Slicc-Version`;function G(e){let t={};if(e.headers)for(let[n,r]of Object.entries(e.headers))n.toLowerCase()!==`x-slicc-version`&&(t[n]=r);return t[W]=`6.99.8`,{...e,headers:t}}const K=new Set;function q(e,t){if(e.headers){for(let[t,n]of Object.entries(e.headers))if(t.toLowerCase()===`x-session-id`&&n!=null)return e}return K.has(t)||(K.add(t),console.warn(`[adobe] Missing X-Session-Id from ${t} — using daily fallback. Attach an X-Session-Id header at the call site (see scoop-context.ts streamWithSessionId or docs/pitfalls.md).`)),{...e,headers:{...e.headers??{},"X-Session-Id":g(`adobe-provider-fallback`)}}}function ue(){K.clear()}function J(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:`adobe-anthropic`,provider:`adobe`,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()}}}const Y=(e,t,n={})=>{let r=a();return(async()=>{try{let i=await z();if(String(e.api).includes(`openai`)){let a={...e,baseUrl:`${C()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},o=p(a,t,G(q({...n,apiKey:i},`streamAdobe[openai]`)));for await(let e of o)r.push(e)}else{let a={...e,baseUrl:C(),api:`anthropic-messages`},o=h(a,t,G(q(x(e,y(e.id,e.name,{...n,apiKey:i})),`streamAdobe[anthropic]`)));for await(let e of o)r.push(e)}r.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),r.push(J(e,t)),r.end()}})(),r},X=(e,t,n)=>{let r=a();return(async()=>{try{let i=await z();if(String(e.api).includes(`openai`)){let a={...e,baseUrl:`${C()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},o=m(a,t,G(q({...n,apiKey:i},`streamSimpleAdobe[openai]`)));for await(let e of o)r.push(e)}else{let a={...e,baseUrl:C(),api:`anthropic-messages`},o=f(a,t,G(q(x(e,y(e.id,e.name,{...n,apiKey:i})),`streamSimpleAdobe[anthropic]`)));for await(let e of o)r.push(e)}r.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),r.push(J(e,t)),r.end()}})(),r};function de(e){let t={id:e.id,name:e.name};return e.api!==void 0&&(t.api=e.api),e.context_window!==void 0&&(t.context_window=e.context_window),e.max_tokens!==void 0&&(t.max_tokens=e.max_tokens),e.reasoning!==void 0&&(t.reasoning=e.reasoning),e.input!==void 0&&(t.input=e.input),t}function Z(){let e=new Map;for(let t of c())try{for(let n of o(t))e.set(n.id,n)}catch{}return e}function fe(e,n,r){let i=`adobe-${e.api===`openai`?`openai`:`anthropic`}`,a=r.get(e.id);if(a)return{...a,provider:`adobe`,api:i};let o=t(e.id,r);return{id:e.id,name:e.name??e.id,provider:`adobe`,api:i,baseUrl:n,contextWindow:2e5,maxTokens:16384,input:[`text`,`image`],cost:o,inputCost:o.input,outputCost:o.output,cacheReadCost:o.cacheRead,cacheWriteCost:o.cacheWrite,reasoning:!0}}function pe(e,t){for(let t of e)T.set(t.id,de(t));let n=Z();return e.map(e=>fe(e,t,n))}async function me(e){try{let t=e??await z(),n=C(),r=await fetch(`${n}/v1/models`,{headers:{Authorization:`Bearer ${t}`,[W]:`6.99.8`}});if(!r.ok)console.warn(`[adobe] Proxy /v1/models returned ${r.status}, falling back to Anthropic models`);else{let e=await r.json();if(e.data?.length)return pe(e.data,n)}}catch(e){console.warn(`[adobe] Failed to fetch proxy models:`,e instanceof Error?e.message:String(e))}return null}const Q=new Map;function he(){return o(`anthropic`).map(e=>({...e,provider:`adobe`,api:`adobe-anthropic`}))}async function $(e){let t=C(),n=Q.get(t);if(n)return n;let r=await me(e);return r?(Q.set(t,r),r):he()}function ge(){d({api:`adobe-anthropic`,stream:Y,streamSimple:X}),d({api:`adobe-openai`,stream:Y,streamSimple:X})}export{ue as __resetAdobeSessionIdWarningCacheForTests,L as config,I as extractTokenFromUrl,$ as getAdobeModels,z as getValidAccessToken,ce as isTokenExpired,ge as register};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./logger-DDBAeTLF.js";import{R as t}from"./wc-shell-B7yZ6nn6.js";var n=e(`agent-panels`),r=`/workspace/panels`,i=`panel.json`;function a(e,t){if(!e||typeof e!=`object`)return n.warn(`panel manifest is not an object`,{dir:t}),null;let r=e;return typeof r.id!=`string`||r.id.trim()===``?(n.warn(`panel manifest needs a non-empty id`,{dir:t}),null):typeof r.title!=`string`||r.title.trim()===``?(n.warn(`panel manifest needs a non-empty title`,{dir:t,id:r.id}),null):{id:r.id,title:r.title,icon:typeof r.icon==`string`?r.icon:void 0,minWidth:typeof r.minWidth==`number`?r.minWidth:void 0,minHeight:typeof r.minHeight==`number`?r.minHeight:void 0,preferredSize:typeof r.preferredSize==`string`||typeof r.preferredSize==`number`?r.preferredSize:void 0,presentation:r.presentation===`floating`?`floating`:void 0,anchor:r.anchor,realm:r.realm===`main`?`main`:`sandboxed`}}async function o(e){let t=[];try{if(!await e.exists(`/workspace/panels`))return t;let o=await e.readDir(r);for(let s of o){if(s.type!==`directory`)continue;let o=`${r}/${s.name}`,c=`${o}/${i}`;if(!await e.exists(c))continue;let l;try{let t=await e.readFile(c);l=JSON.parse(typeof t==`string`?t:String(t))}catch(e){n.warn(`unreadable panel manifest`,{manifestPath:c,error:e});continue}let u=a(l,o);if(!u)continue;let d=l.entry,f=typeof d==`string`&&d.length>0?`${o}/${d}`:null;t.push({meta:u,dir:o,entry:f})}}catch(e){n.warn(`agent panel discovery failed`,{error:e})}return t}async function s(e){let r=await o(e);for(let e of r)t({meta:e.meta,source:{kind:`sandboxed`,entry:e.entry??`${e.dir}/panel.shtml`},origin:`agent`});return r.length>0&&n.info(`registered agent panels`,{count:r.length}),r}export{s as registerAgentPanels};
|
|
@@ -36,4 +36,4 @@ new Anthropic({ apiKey, dangerouslyAllowBrowser: true });
|
|
|
36
36
|
`));let t=e.map(e=>e.type===`text`?{type:`text`,text:l(e.text)}:{type:`image`,source:{type:`base64`,media_type:e.mimeType,data:e.data}});return t.some(e=>e.type===`text`)||t.unshift({type:`text`,text:`(see attached image)`}),t}function Nr(e){return{supportsEagerToolInputStreaming:e.compat?.supportsEagerToolInputStreaming??!0,supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0,sendSessionAffinityHeaders:e.compat?.sendSessionAffinityHeaders??!1,supportsCacheControlOnTools:e.compat?.supportsCacheControlOnTools??!0,supportsTemperature:e.compat?.supportsTemperature??!0,allowEmptySignature:e.compat?.allowEmptySignature??!1,supportsStrictTools:e.compat?.supportsStrictTools??!1,supportsToolReferences:e.compat?.supportsToolReferences??Pr(e)}}function Pr(e){if(e.provider!==`anthropic`||e.id.includes(`haiku`))return!1;let t=e.id.match(/^claude-(?:opus|sonnet|fable)-(\d+)(?:-(\d+))?(?:-|$)/);if(!t)return!1;let n=Number(t[1]),r=t[2]&&t[2].length<8?Number(t[2]):0;return n>4||n===4&&r>=5}function Fr(...e){let t={};for(let n of e)n&&Object.assign(t,n);return t}function Ir(e,...t){let n=Fr(...t);if(e.provider===`kimi-coding`){for(let e of Object.keys(n))e.toLowerCase()===`user-agent`&&delete n[e];n[`User-Agent`]=s()}return n}function Lr(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function Rr(e,t,n){if(!t&&!(Lr(n,`authorization`)||Lr(n,`x-api-key`)||Lr(n,`cf-aig-authorization`)))throw Error(`No API key for provider: ${e}`)}const zr=new Set([`message_start`,`message_delta`,`message_stop`,`content_block_start`,`content_block_delta`,`content_block_stop`]);function Br(e){if(!e.event&&e.data.length===0)return null;let t={event:e.event,data:e.data.join(`
|
|
37
37
|
`),raw:[...e.raw]};return e.event=null,e.data=[],e.raw=[],t}function Vr(e,t){if(e===``)return Br(t);if(t.raw.push(e),e.startsWith(`:`))return null;let n=e.indexOf(`:`),r=n===-1?e:e.slice(0,n),i=n===-1?``:e.slice(n+1);return i.startsWith(` `)&&(i=i.slice(1)),r===`event`?t.event=i:r===`data`&&t.data.push(i),null}function Hr(e){let t=e.indexOf(`\r`),n=e.indexOf(`
|
|
38
38
|
`);return t===-1?n:n===-1?t:Math.min(t,n)}function Ur(e){let t=Hr(e);if(t===-1)return null;let n=t+1;return e[t]===`\r`&&e[n]===`
|
|
39
|
-
`&&(n+=1),{line:e.slice(0,t),rest:e.slice(n)}}async function*Wr(e,t){let n=e.getReader(),r=new TextDecoder,i={event:null,data:[],raw:[]},a=``;try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{value:e,done:o}=await n.read();if(o)break;a+=r.decode(e,{stream:!0});let s=Ur(a);for(;s;){a=s.rest;let e=Vr(s.line,i);e&&(yield e),s=Ur(a)}}a+=r.decode();let e=Ur(a);for(;e;){a=e.rest;let t=Vr(e.line,i);t&&(yield t),e=Ur(a)}if(a.length>0){let e=Vr(a,i);e&&(yield e)}let o=Br(i);o&&(yield o)}finally{n.releaseLock()}}async function*Gr(e,t){if(!e.body)throw Error(`Attempted to iterate over an Anthropic response with no body`);let n=!1,i=!1;for await(let a of Wr(e.body,t)){if(a.event===`error`)throw Error(a.data);if(zr.has(a.event??``))try{let e=r(a.data);e.type===`message_start`?n=!0:e.type===`message_stop`&&(i=!0),yield e}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Could not parse Anthropic SSE event ${a.event}: ${t}; data=${a.data}; raw=${a.raw.join(`\\n`)}`)}}if(n&&!i)throw Error(`Anthropic stream ended before message_stop`)}const Kr=(r,i,a)=>{let s=new e;return(async()=>{let e={role:`assistant`,content:[],api:r.api,provider:r.provider,model:r.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let l,u;if(a?.client)l=a.client,u=!1;else{let e=a?.apiKey;Rr(r.provider,e,a?.headers);let t;if(r.provider===`github-copilot`){let e=f(i.messages);t=p({messages:i.messages,hasImages:e})}let n=Dr(a?.cacheRetention,a?.env)===`none`?void 0:a?.sessionId,o=Xr(r,e,a?.interleavedThinking??!0,ti(r,i),a?.headers,a?.fetch,t,n);l=o.client,u=o.isOAuthToken}let d=Zr(r,i,u,a),m=await a?.onPayload?.(d,r);m!==void 0&&(d=m);let ee={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},maxRetries:0},te=await c(()=>l.messages.create({...d,stream:!0},ee).asResponse(),{maxRetries:a?.maxRetries,maxRetryDelayMs:a?.maxRetryDelayMs,signal:a?.signal});await a?.onResponse?.({status:te.status,headers:o(te.headers)},r),s.push({type:`start`,partial:e});let h=e.content;for await(let o of Gr(te,a?.signal))if(o.type===`message_start`)e.responseId=o.message.id,e.usage.input=o.message.usage.input_tokens||0,e.usage.output=o.message.usage.output_tokens||0,e.usage.cacheRead=o.message.usage.cache_read_input_tokens||0,e.usage.cacheWrite=o.message.usage.cache_creation_input_tokens||0,e.usage.cacheWrite1h=o.message.usage.cache_creation?.ephemeral_1h_input_tokens||0,e.usage.totalTokens=e.usage.input+e.usage.output+e.usage.cacheRead+e.usage.cacheWrite,t(r,e.usage);else if(o.type===`content_block_start`){if(o.content_block.type===`text`){let t={type:`text`,text:o.content_block.text??``,index:o.index};e.content.push(t),s.push({type:`text_start`,contentIndex:e.content.length-1,partial:e})}else if(o.content_block.type===`thinking`){let t={type:`thinking`,thinking:o.content_block.thinking??``,thinkingSignature:o.content_block.signature??``,index:o.index};e.content.push(t),s.push({type:`thinking_start`,contentIndex:e.content.length-1,partial:e})}else if(o.content_block.type===`redacted_thinking`){let t={type:`thinking`,thinking:`[Reasoning redacted]`,thinkingSignature:o.content_block.data,redacted:!0,index:o.index};e.content.push(t),s.push({type:`thinking_start`,contentIndex:e.content.length-1,partial:e})}else if(o.content_block.type===`tool_use`){let t={type:`toolCall`,id:o.content_block.id,name:u?jr(o.content_block.name,i.tools):o.content_block.name,arguments:o.content_block.input??{},partialJson:``,index:o.index};e.content.push(t),s.push({type:`toolcall_start`,contentIndex:e.content.length-1,partial:e})}}else if(o.type===`content_block_delta`){if(o.delta.type===`text_delta`){let t=h.findIndex(e=>e.index===o.index),n=h[t];n&&n.type===`text`&&(n.text+=o.delta.text,s.push({type:`text_delta`,contentIndex:t,delta:o.delta.text,partial:e}))}else if(o.delta.type===`thinking_delta`){let t=h.findIndex(e=>e.index===o.index),n=h[t];n&&n.type===`thinking`&&(n.thinking+=o.delta.thinking,s.push({type:`thinking_delta`,contentIndex:t,delta:o.delta.thinking,partial:e}))}else if(o.delta.type===`input_json_delta`){let t=h.findIndex(e=>e.index===o.index),r=h[t];r&&r.type===`toolCall`&&(r.partialJson+=o.delta.partial_json,r.arguments=n(r.partialJson),s.push({type:`toolcall_delta`,contentIndex:t,delta:o.delta.partial_json,partial:e}))}else if(o.delta.type===`signature_delta`){let e=h[h.findIndex(e=>e.index===o.index)];e&&e.type===`thinking`&&(e.thinkingSignature=e.thinkingSignature||``,e.thinkingSignature+=o.delta.signature)}}else if(o.type===`content_block_stop`){let t=h.findIndex(e=>e.index===o.index),r=h[t];r&&(delete r.index,r.type===`text`?s.push({type:`text_end`,contentIndex:t,content:r.text,partial:e}):r.type===`thinking`?s.push({type:`thinking_end`,contentIndex:t,content:r.thinking,partial:e}):r.type===`toolCall`&&(r.arguments=n(r.partialJson),delete r.partialJson,s.push({type:`toolcall_end`,contentIndex:t,toolCall:r,partial:e})))}else if(o.type===`message_delta`){if(o.delta.stop_reason){e.rawStopReason=o.delta.stop_reason;let t=ri(o.delta.stop_reason,o.delta.stop_details);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage)}if(o.usage){o.usage.input_tokens!=null&&(e.usage.input=o.usage.input_tokens),o.usage.output_tokens!=null&&(e.usage.output=o.usage.output_tokens),o.usage.cache_read_input_tokens!=null&&(e.usage.cacheRead=o.usage.cache_read_input_tokens),o.usage.cache_creation_input_tokens!=null&&(e.usage.cacheWrite=o.usage.cache_creation_input_tokens);let t=o.usage.output_tokens_details?.thinking_tokens;t!=null&&(e.usage.reasoning=t)}e.usage.totalTokens=e.usage.input+e.usage.output+e.usage.cacheRead+e.usage.cacheWrite,t(r,e.usage)}if(a?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`Anthropic stream ended without a stop reason`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(e.errorMessage||`An unknown error occurred`);s.push({type:`done`,reason:e.stopReason,message:e}),s.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson;e.stopReason=a?.signal?.aborted?`aborted`:`error`,e.errorMessage=t instanceof Error?t.message:JSON.stringify(t),s.push({type:`error`,reason:e.stopReason,error:e}),s.end()}})(),s};function qr(e,t){let n=t?e.thinkingLevelMap?.[t]:void 0;if(typeof n==`string`)return n;switch(t){case`minimal`:case`low`:return`low`;case`medium`:return`medium`;case`high`:return`high`;default:return`high`}}const Jr=(e,t,n)=>{Rr(e.provider,n?.apiKey,n?.headers);let r=ee(e,t,n,n?.apiKey);if(!n?.reasoning)return Kr(e,t,{...r,thinkingEnabled:!1});if(e.compat?.forceAdaptiveThinking===!0){let i=qr(e,n.reasoning);return Kr(e,t,{...r,thinkingEnabled:!0,effort:i})}let i=te(r.maxTokens,e.maxTokens,n.reasoning,n.thinkingBudgets),a=m(e,t,i.maxTokens);return Kr(e,t,{...r,maxTokens:a,thinkingEnabled:!0,thinkingBudgetTokens:Math.min(i.thinkingBudget,Math.max(0,a-1024))})};function Yr(e){return e.includes(`sk-ant-oat`)}function Xr(e,t,n,r,i,a,o,s){let c=n&&e.compat?.forceAdaptiveThinking!==!0,l=[];if(r&&l.push(`fine-grained-tool-streaming-2025-05-14`),c&&l.push(`interleaved-thinking-2025-05-14`),e.provider===`github-copilot`)return{client:new $({apiKey:null,authToken:t??null,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:a,defaultHeaders:Ir(e,{accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,...l.length>0?{"anthropic-beta":l.join(`,`)}:{}},e.headers,o,i)}),isOAuthToken:!1};if(t&&Yr(t))return{client:new $({apiKey:null,authToken:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:a,defaultHeaders:Ir(e,{accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,"anthropic-beta":[`claude-code-20250219`,`oauth-2025-04-20`,...l].join(`,`),"user-agent":`claude-cli/2.1.75`,"x-app":`cli`},e.headers,i)}),isOAuthToken:!0};let u=s&&Nr(e).sendSessionAffinityHeaders?{"x-session-affinity":s}:{},d=Ir(e,{accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,...l.length>0?{"anthropic-beta":l.join(`,`)}:{}},u,e.headers,i);return{client:new $({apiKey:t??null,authToken:null,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:a,defaultHeaders:d}),isOAuthToken:!1}}function Zr(e,t,n,r){let{cacheControl:i}=Or(e,r?.cacheRetention,r?.env),o=Nr(e),s=h(t.messages,e,Qr),c=n?Ar:e=>e,u=a({...t,messages:s},o.supportsToolReferences,c),d=u.immediate,f=[...u.deferred.values()];d.length===0&&f.length>0&&(d=f,f=[]);let p=new Set(f.map(e=>c(e.name))),m={model:e.id,messages:ei(s,n,i,o.allowEmptySignature,p,c),max_tokens:r?.maxTokens??e.maxTokens,stream:!0};if(n?(m.system=[{type:`text`,text:`You are Claude Code, Anthropic's official CLI for Claude.`,...i?{cache_control:i}:{}}],t.systemPrompt&&m.system.push({type:`text`,text:l(t.systemPrompt),...i?{cache_control:i}:{}})):t.systemPrompt&&(m.system=[{type:`text`,text:l(t.systemPrompt),...i?{cache_control:i}:{}}]),r?.temperature!==void 0&&!r?.thinkingEnabled&&o.supportsTemperature&&(m.temperature=r.temperature),(d.length>0||f.length>0)&&(m.tools=[...ni(d,n,o.supportsEagerToolInputStreaming,o.supportsStrictTools,o.supportsCacheControlOnTools?i:void 0),...ni(f,n,o.supportsEagerToolInputStreaming,o.supportsStrictTools,void 0,!0)]),e.reasoning)if(r?.thinkingEnabled){let t=r.thinkingDisplay??`summarized`;e.compat?.forceAdaptiveThinking===!0?(m.thinking={type:`adaptive`,display:t},r.effort&&(m.output_config=(r.effort,{effort:r.effort}))):m.thinking={type:`enabled`,budget_tokens:r.thinkingBudgetTokens||1024,display:t}}else r?.thinkingEnabled===!1&&e.thinkingLevelMap?.off!==null&&(m.thinking={type:`disabled`});if(r?.metadata){let e=r.metadata.user_id;typeof e==`string`&&(m.metadata={user_id:e})}return r?.toolChoice&&(m.tool_choice=typeof r.toolChoice==`string`?{type:r.toolChoice}:r.toolChoice),m}function Qr(e){return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,64)}function $r(e,t,n,r,i){let a=[];for(let o of e.addedToolNames??[]){let e=i(o);!n.has(e)||r.has(e)||(r.add(e),a.push({type:`tool_reference`,tool_name:t?Ar(o):o}))}let o=Mr(e.content);return{toolResult:{type:`tool_result`,tool_use_id:e.toolCallId,content:a.length>0?a:o,is_error:e.isError},siblingContent:a.length===0?[]:typeof o==`string`?[{type:`text`,text:o}]:o}}function ei(e,t,n,r=!1,i=new Set,a=e=>e){let o=[],s=new Set;for(let n=0;n<e.length;n++){let c=e[n];if(c.role===`user`)if(typeof c.content==`string`)c.content.trim().length>0&&o.push({role:`user`,content:l(c.content)});else{let e=c.content.map(e=>e.type===`text`?{type:`text`,text:l(e.text)}:{type:`image`,source:{type:`base64`,media_type:e.mimeType,data:e.data}}).filter(e=>e.type!==`text`||e.text.trim().length>0);if(e.length===0)continue;o.push({role:`user`,content:e})}else if(c.role===`assistant`){let e=[];for(let n of c.content)if(n.type===`text`){if(n.text.trim().length===0)continue;e.push({type:`text`,text:l(n.text)})}else if(n.type===`thinking`){if(n.redacted){e.push({type:`redacted_thinking`,data:n.thinkingSignature});continue}let t=n.thinkingSignature,i=!!t&&t.trim().length>0;if(n.thinking.trim().length===0&&!i)continue;i?e.push({type:`thinking`,thinking:l(n.thinking),signature:t}):e.push(r?{type:`thinking`,thinking:l(n.thinking),signature:``}:{type:`text`,text:l(n.thinking)})}else n.type===`toolCall`&&e.push({type:`tool_use`,id:n.id,name:t?Ar(n.name):n.name,input:n.arguments??{}});if(e.length===0)continue;o.push({role:`assistant`,content:e})}else if(c.role===`toolResult`){let r=[],c=[],l=n;for(;l<e.length&&e[l].role===`toolResult`;){let n=$r(e[l],t,i,s,a);r.push(n.toolResult),c.push(...n.siblingContent),l++}n=l-1,o.push({role:`user`,content:[...r,...c]})}}if(n&&o.length>0){let e=o[o.length-1];if(e.role===`user`)if(Array.isArray(e.content)){let t=e.content[e.content.length-1];t&&(t.type===`text`||t.type===`image`||t.type===`tool_result`)&&(t.cache_control=n)}else typeof e.content==`string`&&(e.content=[{type:`text`,text:e.content,cache_control:n}])}return o}function ti(e,t){return!!t.tools?.length&&!Nr(e).supportsEagerToolInputStreaming}function ni(e,t,n,r,i,a=!1){return e?e.map((o,s)=>{let c=d(o,r),l=u(o,c),f=l,p={type:`object`,properties:f.properties??{},required:f.required??[]},m=c===!0?{...l,...p}:p;return{name:t?Ar(o.name):o.name,description:o.description,...n?{eager_input_streaming:!0}:{},...c===!0?{strict:!0}:{},input_schema:m,...a?{defer_loading:!0}:{},...i&&s===e.length-1?{cache_control:i}:{}}}):[]}function ri(e,t){switch(e){case`end_turn`:return{stopReason:`stop`};case`max_tokens`:return{stopReason:`length`};case`tool_use`:return{stopReason:`toolUse`};case`refusal`:return{stopReason:`error`,errorMessage:t?.explanation||`The model refused to complete the request`};case`pause_turn`:return{stopReason:`stop`};case`stop_sequence`:return{stopReason:`stop`};case`sensitive`:return{stopReason:`error`,errorMessage:`Provider stopped with: sensitive`};default:throw Error(`Unhandled stop reason: ${e}`)}}export{Kr as stream,Jr as streamSimple};
|
|
39
|
+
`&&(n+=1),{line:e.slice(0,t),rest:e.slice(n)}}async function*Wr(e,t){let n=e.getReader(),r=new TextDecoder,i={event:null,data:[],raw:[]},a=``;try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{value:e,done:o}=await n.read();if(o)break;a+=r.decode(e,{stream:!0});let s=Ur(a);for(;s;){a=s.rest;let e=Vr(s.line,i);e&&(yield e),s=Ur(a)}}a+=r.decode();let e=Ur(a);for(;e;){a=e.rest;let t=Vr(e.line,i);t&&(yield t),e=Ur(a)}if(a.length>0){let e=Vr(a,i);e&&(yield e)}let o=Br(i);o&&(yield o)}finally{n.releaseLock()}}async function*Gr(e,t){if(!e.body)throw Error(`Attempted to iterate over an Anthropic response with no body`);let n=!1,i=!1;for await(let a of Wr(e.body,t)){if(a.event===`error`)throw Error(a.data);if(zr.has(a.event??``))try{let e=r(a.data);e.type===`message_start`?n=!0:e.type===`message_stop`&&(i=!0),yield e}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Could not parse Anthropic SSE event ${a.event}: ${t}; data=${a.data}; raw=${a.raw.join(`\\n`)}`)}}if(n&&!i)throw Error(`Anthropic stream ended before message_stop`)}const Kr=(r,i,a)=>{let s=new e;return(async()=>{let e={role:`assistant`,content:[],api:r.api,provider:r.provider,model:r.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let l,u;if(a?.client)l=a.client,u=!1;else{let e=a?.apiKey;Rr(r.provider,e,a?.headers);let t;if(r.provider===`github-copilot`){let e=f(i.messages);t=p({messages:i.messages,hasImages:e})}let n=Dr(a?.cacheRetention,a?.env)===`none`?void 0:a?.sessionId,o=Xr(r,e,a?.interleavedThinking??!0,ti(r,i),a?.headers,a?.fetch,t,n);l=o.client,u=o.isOAuthToken}let d=Zr(r,i,u,a),m=await a?.onPayload?.(d,r);m!==void 0&&(d=m);let ee={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},maxRetries:0},te=await c(()=>l.messages.create({...d,stream:!0},ee).asResponse(),{maxRetries:a?.maxRetries,maxRetryDelayMs:a?.maxRetryDelayMs,signal:a?.signal});await a?.onResponse?.({status:te.status,headers:o(te.headers)},r),s.push({type:`start`,partial:e});let h=e.content;for await(let o of Gr(te,a?.signal))if(o.type===`message_start`)e.responseId=o.message.id,e.usage.input=o.message.usage.input_tokens||0,e.usage.output=o.message.usage.output_tokens||0,e.usage.cacheRead=o.message.usage.cache_read_input_tokens||0,e.usage.cacheWrite=o.message.usage.cache_creation_input_tokens||0,e.usage.cacheWrite1h=o.message.usage.cache_creation?.ephemeral_1h_input_tokens||0,e.usage.totalTokens=e.usage.input+e.usage.output+e.usage.cacheRead+e.usage.cacheWrite,t(r,e.usage);else if(o.type===`content_block_start`){if(o.content_block.type===`text`){let t={type:`text`,text:o.content_block.text??``,index:o.index};e.content.push(t),s.push({type:`text_start`,contentIndex:e.content.length-1,partial:e})}else if(o.content_block.type===`thinking`){let t={type:`thinking`,thinking:o.content_block.thinking??``,thinkingSignature:o.content_block.signature??``,index:o.index};e.content.push(t),s.push({type:`thinking_start`,contentIndex:e.content.length-1,partial:e})}else if(o.content_block.type===`redacted_thinking`){let t={type:`thinking`,thinking:`[Reasoning redacted]`,thinkingSignature:o.content_block.data,redacted:!0,index:o.index};e.content.push(t),s.push({type:`thinking_start`,contentIndex:e.content.length-1,partial:e})}else if(o.content_block.type===`tool_use`){let t={type:`toolCall`,id:o.content_block.id,name:u?jr(o.content_block.name,i.tools):o.content_block.name,arguments:o.content_block.input??{},partialJson:``,index:o.index};e.content.push(t),s.push({type:`toolcall_start`,contentIndex:e.content.length-1,partial:e})}}else if(o.type===`content_block_delta`){if(o.delta.type===`text_delta`){let t=h.findIndex(e=>e.index===o.index),n=h[t];n&&n.type===`text`&&(n.text+=o.delta.text,s.push({type:`text_delta`,contentIndex:t,delta:o.delta.text,partial:e}))}else if(o.delta.type===`thinking_delta`){let t=h.findIndex(e=>e.index===o.index),n=h[t];n&&n.type===`thinking`&&(n.thinking+=o.delta.thinking,s.push({type:`thinking_delta`,contentIndex:t,delta:o.delta.thinking,partial:e}))}else if(o.delta.type===`input_json_delta`){let t=h.findIndex(e=>e.index===o.index),r=h[t];r&&r.type===`toolCall`&&(r.partialJson+=o.delta.partial_json,r.arguments=n(r.partialJson),s.push({type:`toolcall_delta`,contentIndex:t,delta:o.delta.partial_json,partial:e}))}else if(o.delta.type===`signature_delta`){let e=h[h.findIndex(e=>e.index===o.index)];e&&e.type===`thinking`&&(e.thinkingSignature=e.thinkingSignature||``,e.thinkingSignature+=o.delta.signature)}}else if(o.type===`content_block_stop`){let t=h.findIndex(e=>e.index===o.index),r=h[t];r&&(delete r.index,r.type===`text`?s.push({type:`text_end`,contentIndex:t,content:r.text,partial:e}):r.type===`thinking`?s.push({type:`thinking_end`,contentIndex:t,content:r.thinking,partial:e}):r.type===`toolCall`&&(r.arguments=n(r.partialJson),delete r.partialJson,s.push({type:`toolcall_end`,contentIndex:t,toolCall:r,partial:e})))}else if(o.type===`message_delta`){if(o.delta.stop_reason){e.rawStopReason=o.delta.stop_reason;let t=ri(o.delta.stop_reason,o.delta.stop_details);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage)}if(o.usage){o.usage.input_tokens!=null&&(e.usage.input=o.usage.input_tokens),o.usage.output_tokens!=null&&(e.usage.output=o.usage.output_tokens),o.usage.cache_read_input_tokens!=null&&(e.usage.cacheRead=o.usage.cache_read_input_tokens),o.usage.cache_creation_input_tokens!=null&&(e.usage.cacheWrite=o.usage.cache_creation_input_tokens);let t=o.usage.output_tokens_details?.thinking_tokens;t!=null&&(e.usage.reasoning=t)}e.usage.totalTokens=e.usage.input+e.usage.output+e.usage.cacheRead+e.usage.cacheWrite,t(r,e.usage)}if(a?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`Anthropic stream ended without a stop reason`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(e.errorMessage||`An unknown error occurred`);s.push({type:`done`,reason:e.stopReason,message:e}),s.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson;e.stopReason=a?.signal?.aborted?`aborted`:`error`,e.errorMessage=t instanceof Error?t.message:JSON.stringify(t),s.push({type:`error`,reason:e.stopReason,error:e}),s.end()}})(),s};function qr(e,t){let n=t?e.thinkingLevelMap?.[t]:void 0;if(typeof n==`string`)return n;switch(t){case`minimal`:case`low`:return`low`;case`medium`:return`medium`;case`high`:return`high`;default:return`high`}}const Jr=(e,t,n)=>{Rr(e.provider,n?.apiKey,n?.headers);let r=ee(e,t,n,n?.apiKey);if(!n?.reasoning)return Kr(e,t,{...r,thinkingEnabled:!1});if(e.compat?.forceAdaptiveThinking===!0){let i=qr(e,n.reasoning);return Kr(e,t,{...r,thinkingEnabled:!0,effort:i})}let i=te(r.maxTokens,e.maxTokens,n.reasoning,n.thinkingBudgets),a=m(e,t,i.maxTokens);return Kr(e,t,{...r,maxTokens:a,thinkingEnabled:!0,thinkingBudgetTokens:Math.min(i.thinkingBudget,Math.max(0,a-1024))})};function Yr(e){return e.includes(`sk-ant-oat`)}function Xr(e,t,n,r,i,a,o,s){let c=n&&e.compat?.forceAdaptiveThinking!==!0,l=[];if(r&&l.push(`fine-grained-tool-streaming-2025-05-14`),c&&l.push(`interleaved-thinking-2025-05-14`),e.provider===`github-copilot`)return{client:new $({apiKey:null,authToken:t??null,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:a,defaultHeaders:Ir(e,{accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,...l.length>0?{"anthropic-beta":l.join(`,`)}:{}},e.headers,o,i)}),isOAuthToken:!1};if(t&&Yr(t))return{client:new $({apiKey:null,authToken:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:a,defaultHeaders:Ir(e,{accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,"anthropic-beta":[`claude-code-20250219`,`oauth-2025-04-20`,...l].join(`,`),"user-agent":`claude-cli/2.1.75`,"x-app":`cli`},e.headers,i)}),isOAuthToken:!0};let u=s&&Nr(e).sendSessionAffinityHeaders?{"x-session-affinity":s}:{},d=Ir(e,{accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,...l.length>0?{"anthropic-beta":l.join(`,`)}:{}},u,e.headers,i);return{client:new $({apiKey:t??null,authToken:null,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:a,defaultHeaders:d}),isOAuthToken:!1}}function Zr(e,t,n,r){let{cacheControl:i}=Or(e,r?.cacheRetention,r?.env),o=Nr(e),s=h(t.messages,e,Qr),c=n?Ar:e=>e,u=a({...t,messages:s},o.supportsToolReferences,c),d=u.immediate,f=[...u.deferred.values()];d.length===0&&f.length>0&&(d=f,f=[]);let p=new Set(f.map(e=>c(e.name))),m={model:e.id,messages:ei(s,n,i,o.allowEmptySignature,p,c),max_tokens:r?.maxTokens??e.maxTokens,stream:!0};if(n?(m.system=[{type:`text`,text:`You are Claude Code, Anthropic's official CLI for Claude.`,...i?{cache_control:i}:{}}],t.systemPrompt&&m.system.push({type:`text`,text:l(t.systemPrompt),...i?{cache_control:i}:{}})):t.systemPrompt&&(m.system=[{type:`text`,text:l(t.systemPrompt),...i?{cache_control:i}:{}}]),r?.temperature!==void 0&&!r?.thinkingEnabled&&o.supportsTemperature&&(m.temperature=r.temperature),(d.length>0||f.length>0)&&(m.tools=[...ni(d,n,o.supportsEagerToolInputStreaming,o.supportsStrictTools,o.supportsCacheControlOnTools?i:void 0),...ni(f,n,o.supportsEagerToolInputStreaming,o.supportsStrictTools,void 0,!0)]),e.reasoning){if(r?.thinkingEnabled){let t=r.thinkingDisplay??`summarized`;e.compat?.forceAdaptiveThinking===!0?(m.thinking={type:`adaptive`,display:t},r.effort&&(m.output_config=(r.effort,{effort:r.effort}))):m.thinking={type:`enabled`,budget_tokens:r.thinkingBudgetTokens||1024,display:t}}else r?.thinkingEnabled===!1&&e.thinkingLevelMap?.off!==null&&(m.thinking={type:`disabled`})}if(r?.metadata){let e=r.metadata.user_id;typeof e==`string`&&(m.metadata={user_id:e})}return r?.toolChoice&&(m.tool_choice=typeof r.toolChoice==`string`?{type:r.toolChoice}:r.toolChoice),m}function Qr(e){return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,64)}function $r(e,t,n,r,i){let a=[];for(let o of e.addedToolNames??[]){let e=i(o);!n.has(e)||r.has(e)||(r.add(e),a.push({type:`tool_reference`,tool_name:t?Ar(o):o}))}let o=Mr(e.content);return{toolResult:{type:`tool_result`,tool_use_id:e.toolCallId,content:a.length>0?a:o,is_error:e.isError},siblingContent:a.length===0?[]:typeof o==`string`?[{type:`text`,text:o}]:o}}function ei(e,t,n,r=!1,i=new Set,a=e=>e){let o=[],s=new Set;for(let n=0;n<e.length;n++){let c=e[n];if(c.role===`user`){if(typeof c.content==`string`)c.content.trim().length>0&&o.push({role:`user`,content:l(c.content)});else{let e=c.content.map(e=>e.type===`text`?{type:`text`,text:l(e.text)}:{type:`image`,source:{type:`base64`,media_type:e.mimeType,data:e.data}}).filter(e=>e.type!==`text`||e.text.trim().length>0);if(e.length===0)continue;o.push({role:`user`,content:e})}}else if(c.role===`assistant`){let e=[];for(let n of c.content)if(n.type===`text`){if(n.text.trim().length===0)continue;e.push({type:`text`,text:l(n.text)})}else if(n.type===`thinking`){if(n.redacted){e.push({type:`redacted_thinking`,data:n.thinkingSignature});continue}let t=n.thinkingSignature,i=!!t&&t.trim().length>0;if(n.thinking.trim().length===0&&!i)continue;i?e.push({type:`thinking`,thinking:l(n.thinking),signature:t}):e.push(r?{type:`thinking`,thinking:l(n.thinking),signature:``}:{type:`text`,text:l(n.thinking)})}else n.type===`toolCall`&&e.push({type:`tool_use`,id:n.id,name:t?Ar(n.name):n.name,input:n.arguments??{}});if(e.length===0)continue;o.push({role:`assistant`,content:e})}else if(c.role===`toolResult`){let r=[],c=[],l=n;for(;l<e.length&&e[l].role===`toolResult`;){let n=$r(e[l],t,i,s,a);r.push(n.toolResult),c.push(...n.siblingContent),l++}n=l-1,o.push({role:`user`,content:[...r,...c]})}}if(n&&o.length>0){let e=o[o.length-1];if(e.role===`user`){if(Array.isArray(e.content)){let t=e.content[e.content.length-1];t&&(t.type===`text`||t.type===`image`||t.type===`tool_result`)&&(t.cache_control=n)}else typeof e.content==`string`&&(e.content=[{type:`text`,text:e.content,cache_control:n}])}}return o}function ti(e,t){return!!t.tools?.length&&!Nr(e).supportsEagerToolInputStreaming}function ni(e,t,n,r,i,a=!1){return e?e.map((o,s)=>{let c=d(o,r),l=u(o,c),f=l,p={type:`object`,properties:f.properties??{},required:f.required??[]},m=c===!0?{...l,...p}:p;return{name:t?Ar(o.name):o.name,description:o.description,...n?{eager_input_streaming:!0}:{},...c===!0?{strict:!0}:{},input_schema:m,...a?{defer_loading:!0}:{},...i&&s===e.length-1?{cache_control:i}:{}}}):[]}function ri(e,t){switch(e){case`end_turn`:return{stopReason:`stop`};case`max_tokens`:return{stopReason:`length`};case`tool_use`:return{stopReason:`toolUse`};case`refusal`:return{stopReason:`error`,errorMessage:t?.explanation||`The model refused to complete the request`};case`pause_turn`:return{stopReason:`stop`};case`stop_sequence`:return{stopReason:`stop`};case`sensitive`:return{stopReason:`error`,errorMessage:`Provider stopped with: sensitive`};default:throw Error(`Unhandled stop reason: ${e}`)}}export{Kr as stream,Jr as streamSimple};
|
|
@@ -36,4 +36,4 @@ new Anthropic({ apiKey, dangerouslyAllowBrowser: true });
|
|
|
36
36
|
`));let t=e.map(e=>e.type===`text`?{type:`text`,text:l(e.text)}:{type:`image`,source:{type:`base64`,media_type:e.mimeType,data:e.data}});return t.some(e=>e.type===`text`)||t.unshift({type:`text`,text:`(see attached image)`}),t}var Lr=`fine-grained-tool-streaming-2025-05-14`,Rr=`interleaved-thinking-2025-05-14`;function zr(e){return{supportsEagerToolInputStreaming:e.compat?.supportsEagerToolInputStreaming??!0,supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0,sendSessionAffinityHeaders:e.compat?.sendSessionAffinityHeaders??!1,supportsCacheControlOnTools:e.compat?.supportsCacheControlOnTools??!0,supportsTemperature:e.compat?.supportsTemperature??!0,allowEmptySignature:e.compat?.allowEmptySignature??!1,supportsStrictTools:e.compat?.supportsStrictTools??!1,supportsToolReferences:e.compat?.supportsToolReferences??Br(e)}}function Br(e){if(e.provider!==`anthropic`||e.id.includes(`haiku`))return!1;let t=e.id.match(/^claude-(?:opus|sonnet|fable)-(\d+)(?:-(\d+))?(?:-|$)/);if(!t)return!1;let n=Number(t[1]),r=t[2]&&t[2].length<8?Number(t[2]):0;return n>4||n===4&&r>=5}function Vr(...e){let t={};for(let n of e)n&&Object.assign(t,n);return t}function Hr(e,...t){let n=Vr(...t);if(e.provider===`kimi-coding`){for(let e of Object.keys(n))e.toLowerCase()===`user-agent`&&delete n[e];n[`User-Agent`]=s()}return n}function Ur(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function Wr(e,t,n){if(!t&&!(Ur(n,`authorization`)||Ur(n,`x-api-key`)||Ur(n,`cf-aig-authorization`)))throw Error(`No API key for provider: ${e}`)}var Gr=new Set([`message_start`,`message_delta`,`message_stop`,`content_block_start`,`content_block_delta`,`content_block_stop`]);function Kr(e){if(!e.event&&e.data.length===0)return null;let t={event:e.event,data:e.data.join(`
|
|
37
37
|
`),raw:[...e.raw]};return e.event=null,e.data=[],e.raw=[],t}function qr(e,t){if(e===``)return Kr(t);if(t.raw.push(e),e.startsWith(`:`))return null;let n=e.indexOf(`:`),r=n===-1?e:e.slice(0,n),i=n===-1?``:e.slice(n+1);return i.startsWith(` `)&&(i=i.slice(1)),r===`event`?t.event=i:r===`data`&&t.data.push(i),null}function Jr(e){let t=e.indexOf(`\r`),n=e.indexOf(`
|
|
38
38
|
`);return t===-1?n:n===-1?t:Math.min(t,n)}function Yr(e){let t=Jr(e);if(t===-1)return null;let n=t+1;return e[t]===`\r`&&e[n]===`
|
|
39
|
-
`&&(n+=1),{line:e.slice(0,t),rest:e.slice(n)}}async function*Xr(e,t){let n=e.getReader(),r=new TextDecoder,i={event:null,data:[],raw:[]},a=``;try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{value:e,done:o}=await n.read();if(o)break;a+=r.decode(e,{stream:!0});let s=Yr(a);for(;s;){a=s.rest;let e=qr(s.line,i);e&&(yield e),s=Yr(a)}}a+=r.decode();let e=Yr(a);for(;e;){a=e.rest;let t=qr(e.line,i);t&&(yield t),e=Yr(a)}if(a.length>0){let e=qr(a,i);e&&(yield e)}let o=Kr(i);o&&(yield o)}finally{n.releaseLock()}}async function*Zr(e,t){if(!e.body)throw Error(`Attempted to iterate over an Anthropic response with no body`);let n=!1,i=!1;for await(let a of Xr(e.body,t)){if(a.event===`error`)throw Error(a.data);if(Gr.has(a.event??``))try{let e=r(a.data);e.type===`message_start`?n=!0:e.type===`message_stop`&&(i=!0),yield e}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Could not parse Anthropic SSE event ${a.event}: ${t}; data=${a.data}; raw=${a.raw.join(`\\n`)}`)}}if(n&&!i)throw Error(`Anthropic stream ended before message_stop`)}var Qr=(r,i,a)=>{let s=new e;return(async()=>{let e={role:`assistant`,content:[],api:r.api,provider:r.provider,model:r.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let l,u;if(a?.client)l=a.client,u=!1;else{let e=a?.apiKey;Wr(r.provider,e,a?.headers);let t;if(r.provider===`github-copilot`){let e=f(i.messages);t=p({messages:i.messages,hasImages:e})}let n=Ar(a?.cacheRetention,a?.env)===`none`?void 0:a?.sessionId,o=ni(r,e,a?.interleavedThinking??!0,si(r,i),a?.headers,a?.fetch,t,n);l=o.client,u=o.isOAuthToken}let d=ri(r,i,u,a),m=await a?.onPayload?.(d,r);m!==void 0&&(d=m);let ee={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},maxRetries:0},te=await c(()=>l.messages.create({...d,stream:!0},ee).asResponse(),{maxRetries:a?.maxRetries,maxRetryDelayMs:a?.maxRetryDelayMs,signal:a?.signal});await a?.onResponse?.({status:te.status,headers:o(te.headers)},r),s.push({type:`start`,partial:e});let h=e.content;for await(let o of Zr(te,a?.signal))if(o.type===`message_start`)e.responseId=o.message.id,e.usage.input=o.message.usage.input_tokens||0,e.usage.output=o.message.usage.output_tokens||0,e.usage.cacheRead=o.message.usage.cache_read_input_tokens||0,e.usage.cacheWrite=o.message.usage.cache_creation_input_tokens||0,e.usage.cacheWrite1h=o.message.usage.cache_creation?.ephemeral_1h_input_tokens||0,e.usage.totalTokens=e.usage.input+e.usage.output+e.usage.cacheRead+e.usage.cacheWrite,t(r,e.usage);else if(o.type===`content_block_start`){if(o.content_block.type===`text`){let t={type:`text`,text:o.content_block.text??``,index:o.index};e.content.push(t),s.push({type:`text_start`,contentIndex:e.content.length-1,partial:e})}else if(o.content_block.type===`thinking`){let t={type:`thinking`,thinking:o.content_block.thinking??``,thinkingSignature:o.content_block.signature??``,index:o.index};e.content.push(t),s.push({type:`thinking_start`,contentIndex:e.content.length-1,partial:e})}else if(o.content_block.type===`redacted_thinking`){let t={type:`thinking`,thinking:`[Reasoning redacted]`,thinkingSignature:o.content_block.data,redacted:!0,index:o.index};e.content.push(t),s.push({type:`thinking_start`,contentIndex:e.content.length-1,partial:e})}else if(o.content_block.type===`tool_use`){let t={type:`toolCall`,id:o.content_block.id,name:u?Fr(o.content_block.name,i.tools):o.content_block.name,arguments:o.content_block.input??{},partialJson:``,index:o.index};e.content.push(t),s.push({type:`toolcall_start`,contentIndex:e.content.length-1,partial:e})}}else if(o.type===`content_block_delta`){if(o.delta.type===`text_delta`){let t=h.findIndex(e=>e.index===o.index),n=h[t];n&&n.type===`text`&&(n.text+=o.delta.text,s.push({type:`text_delta`,contentIndex:t,delta:o.delta.text,partial:e}))}else if(o.delta.type===`thinking_delta`){let t=h.findIndex(e=>e.index===o.index),n=h[t];n&&n.type===`thinking`&&(n.thinking+=o.delta.thinking,s.push({type:`thinking_delta`,contentIndex:t,delta:o.delta.thinking,partial:e}))}else if(o.delta.type===`input_json_delta`){let t=h.findIndex(e=>e.index===o.index),r=h[t];r&&r.type===`toolCall`&&(r.partialJson+=o.delta.partial_json,r.arguments=n(r.partialJson),s.push({type:`toolcall_delta`,contentIndex:t,delta:o.delta.partial_json,partial:e}))}else if(o.delta.type===`signature_delta`){let e=h[h.findIndex(e=>e.index===o.index)];e&&e.type===`thinking`&&(e.thinkingSignature=e.thinkingSignature||``,e.thinkingSignature+=o.delta.signature)}}else if(o.type===`content_block_stop`){let t=h.findIndex(e=>e.index===o.index),r=h[t];r&&(delete r.index,r.type===`text`?s.push({type:`text_end`,contentIndex:t,content:r.text,partial:e}):r.type===`thinking`?s.push({type:`thinking_end`,contentIndex:t,content:r.thinking,partial:e}):r.type===`toolCall`&&(r.arguments=n(r.partialJson),delete r.partialJson,s.push({type:`toolcall_end`,contentIndex:t,toolCall:r,partial:e})))}else if(o.type===`message_delta`){if(o.delta.stop_reason){e.rawStopReason=o.delta.stop_reason;let t=li(o.delta.stop_reason,o.delta.stop_details);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage)}if(o.usage){o.usage.input_tokens!=null&&(e.usage.input=o.usage.input_tokens),o.usage.output_tokens!=null&&(e.usage.output=o.usage.output_tokens),o.usage.cache_read_input_tokens!=null&&(e.usage.cacheRead=o.usage.cache_read_input_tokens),o.usage.cache_creation_input_tokens!=null&&(e.usage.cacheWrite=o.usage.cache_creation_input_tokens);let t=o.usage.output_tokens_details?.thinking_tokens;t!=null&&(e.usage.reasoning=t)}e.usage.totalTokens=e.usage.input+e.usage.output+e.usage.cacheRead+e.usage.cacheWrite,t(r,e.usage)}if(a?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`Anthropic stream ended without a stop reason`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(e.errorMessage||`An unknown error occurred`);s.push({type:`done`,reason:e.stopReason,message:e}),s.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson;e.stopReason=a?.signal?.aborted?`aborted`:`error`,e.errorMessage=t instanceof Error?t.message:JSON.stringify(t),s.push({type:`error`,reason:e.stopReason,error:e}),s.end()}})(),s};function $r(e,t){let n=t?e.thinkingLevelMap?.[t]:void 0;if(typeof n==`string`)return n;switch(t){case`minimal`:case`low`:return`low`;case`medium`:return`medium`;case`high`:return`high`;default:return`high`}}var ei=(e,t,n)=>{Wr(e.provider,n?.apiKey,n?.headers);let r=ee(e,t,n,n?.apiKey);if(!n?.reasoning)return Qr(e,t,{...r,thinkingEnabled:!1});if(e.compat?.forceAdaptiveThinking===!0){let i=$r(e,n.reasoning);return Qr(e,t,{...r,thinkingEnabled:!0,effort:i})}let i=te(r.maxTokens,e.maxTokens,n.reasoning,n.thinkingBudgets),a=m(e,t,i.maxTokens);return Qr(e,t,{...r,maxTokens:a,thinkingEnabled:!0,thinkingBudgetTokens:Math.min(i.thinkingBudget,Math.max(0,a-1024))})};function ti(e){return e.includes(`sk-ant-oat`)}function ni(e,t,n,r,i,a,o,s){let c=n&&e.compat?.forceAdaptiveThinking!==!0,l=[];if(r&&l.push(Lr),c&&l.push(Rr),e.provider===`github-copilot`)return{client:new $({apiKey:null,authToken:t??null,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:a,defaultHeaders:Hr(e,{accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,...l.length>0?{"anthropic-beta":l.join(`,`)}:{}},e.headers,o,i)}),isOAuthToken:!1};if(t&&ti(t))return{client:new $({apiKey:null,authToken:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:a,defaultHeaders:Hr(e,{accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,"anthropic-beta":[`claude-code-20250219`,`oauth-2025-04-20`,...l].join(`,`),"user-agent":`claude-cli/${Mr}`,"x-app":`cli`},e.headers,i)}),isOAuthToken:!0};let u=s&&zr(e).sendSessionAffinityHeaders?{"x-session-affinity":s}:{},d=Hr(e,{accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,...l.length>0?{"anthropic-beta":l.join(`,`)}:{}},u,e.headers,i);return{client:new $({apiKey:t??null,authToken:null,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:a,defaultHeaders:d}),isOAuthToken:!1}}function ri(e,t,n,r){let{cacheControl:i}=jr(e,r?.cacheRetention,r?.env),o=zr(e),s=h(t.messages,e,ii),c=n?Pr:e=>e,u=a({...t,messages:s},o.supportsToolReferences,c),d=u.immediate,f=[...u.deferred.values()];d.length===0&&f.length>0&&(d=f,f=[]);let p=new Set(f.map(e=>c(e.name))),m={model:e.id,messages:oi(s,n,i,o.allowEmptySignature,p,c),max_tokens:r?.maxTokens??e.maxTokens,stream:!0};if(n?(m.system=[{type:`text`,text:`You are Claude Code, Anthropic's official CLI for Claude.`,...i?{cache_control:i}:{}}],t.systemPrompt&&m.system.push({type:`text`,text:l(t.systemPrompt),...i?{cache_control:i}:{}})):t.systemPrompt&&(m.system=[{type:`text`,text:l(t.systemPrompt),...i?{cache_control:i}:{}}]),r?.temperature!==void 0&&!r?.thinkingEnabled&&o.supportsTemperature&&(m.temperature=r.temperature),(d.length>0||f.length>0)&&(m.tools=[...ci(d,n,o.supportsEagerToolInputStreaming,o.supportsStrictTools,o.supportsCacheControlOnTools?i:void 0),...ci(f,n,o.supportsEagerToolInputStreaming,o.supportsStrictTools,void 0,!0)]),e.reasoning)if(r?.thinkingEnabled){let t=r.thinkingDisplay??`summarized`;e.compat?.forceAdaptiveThinking===!0?(m.thinking={type:`adaptive`,display:t},r.effort&&(m.output_config=(r.effort,{effort:r.effort}))):m.thinking={type:`enabled`,budget_tokens:r.thinkingBudgetTokens||1024,display:t}}else r?.thinkingEnabled===!1&&e.thinkingLevelMap?.off!==null&&(m.thinking={type:`disabled`});if(r?.metadata){let e=r.metadata.user_id;typeof e==`string`&&(m.metadata={user_id:e})}return r?.toolChoice&&(m.tool_choice=typeof r.toolChoice==`string`?{type:r.toolChoice}:r.toolChoice),m}function ii(e){return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,64)}function ai(e,t,n,r,i){let a=[];for(let o of e.addedToolNames??[]){let e=i(o);!n.has(e)||r.has(e)||(r.add(e),a.push({type:`tool_reference`,tool_name:t?Pr(o):o}))}let o=Ir(e.content);return{toolResult:{type:`tool_result`,tool_use_id:e.toolCallId,content:a.length>0?a:o,is_error:e.isError},siblingContent:a.length===0?[]:typeof o==`string`?[{type:`text`,text:o}]:o}}function oi(e,t,n,r=!1,i=new Set,a=e=>e){let o=[],s=new Set;for(let n=0;n<e.length;n++){let c=e[n];if(c.role===`user`)if(typeof c.content==`string`)c.content.trim().length>0&&o.push({role:`user`,content:l(c.content)});else{let e=c.content.map(e=>e.type===`text`?{type:`text`,text:l(e.text)}:{type:`image`,source:{type:`base64`,media_type:e.mimeType,data:e.data}}).filter(e=>e.type!==`text`||e.text.trim().length>0);if(e.length===0)continue;o.push({role:`user`,content:e})}else if(c.role===`assistant`){let e=[];for(let n of c.content)if(n.type===`text`){if(n.text.trim().length===0)continue;e.push({type:`text`,text:l(n.text)})}else if(n.type===`thinking`){if(n.redacted){e.push({type:`redacted_thinking`,data:n.thinkingSignature});continue}let t=n.thinkingSignature,i=!!t&&t.trim().length>0;if(n.thinking.trim().length===0&&!i)continue;i?e.push({type:`thinking`,thinking:l(n.thinking),signature:t}):e.push(r?{type:`thinking`,thinking:l(n.thinking),signature:``}:{type:`text`,text:l(n.thinking)})}else n.type===`toolCall`&&e.push({type:`tool_use`,id:n.id,name:t?Pr(n.name):n.name,input:n.arguments??{}});if(e.length===0)continue;o.push({role:`assistant`,content:e})}else if(c.role===`toolResult`){let r=[],c=[],l=n;for(;l<e.length&&e[l].role===`toolResult`;){let n=ai(e[l],t,i,s,a);r.push(n.toolResult),c.push(...n.siblingContent),l++}n=l-1,o.push({role:`user`,content:[...r,...c]})}}if(n&&o.length>0){let e=o[o.length-1];if(e.role===`user`)if(Array.isArray(e.content)){let t=e.content[e.content.length-1];t&&(t.type===`text`||t.type===`image`||t.type===`tool_result`)&&(t.cache_control=n)}else typeof e.content==`string`&&(e.content=[{type:`text`,text:e.content,cache_control:n}])}return o}function si(e,t){return!!t.tools?.length&&!zr(e).supportsEagerToolInputStreaming}function ci(e,t,n,r,i,a=!1){return e?e.map((o,s)=>{let c=d(o,r),l=u(o,c),f=l,p={type:`object`,properties:f.properties??{},required:f.required??[]},m=c===!0?{...l,...p}:p;return{name:t?Pr(o.name):o.name,description:o.description,...n?{eager_input_streaming:!0}:{},...c===!0?{strict:!0}:{},input_schema:m,...a?{defer_loading:!0}:{},...i&&s===e.length-1?{cache_control:i}:{}}}):[]}function li(e,t){switch(e){case`end_turn`:return{stopReason:`stop`};case`max_tokens`:return{stopReason:`length`};case`tool_use`:return{stopReason:`toolUse`};case`refusal`:return{stopReason:`error`,errorMessage:t?.explanation||`The model refused to complete the request`};case`pause_turn`:return{stopReason:`stop`};case`stop_sequence`:return{stopReason:`stop`};case`sensitive`:return{stopReason:`error`,errorMessage:`Provider stopped with: sensitive`};default:throw Error(`Unhandled stop reason: ${e}`)}}export{Qr as stream,ei as streamSimple};
|
|
39
|
+
`&&(n+=1),{line:e.slice(0,t),rest:e.slice(n)}}async function*Xr(e,t){let n=e.getReader(),r=new TextDecoder,i={event:null,data:[],raw:[]},a=``;try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{value:e,done:o}=await n.read();if(o)break;a+=r.decode(e,{stream:!0});let s=Yr(a);for(;s;){a=s.rest;let e=qr(s.line,i);e&&(yield e),s=Yr(a)}}a+=r.decode();let e=Yr(a);for(;e;){a=e.rest;let t=qr(e.line,i);t&&(yield t),e=Yr(a)}if(a.length>0){let e=qr(a,i);e&&(yield e)}let o=Kr(i);o&&(yield o)}finally{n.releaseLock()}}async function*Zr(e,t){if(!e.body)throw Error(`Attempted to iterate over an Anthropic response with no body`);let n=!1,i=!1;for await(let a of Xr(e.body,t)){if(a.event===`error`)throw Error(a.data);if(Gr.has(a.event??``))try{let e=r(a.data);e.type===`message_start`?n=!0:e.type===`message_stop`&&(i=!0),yield e}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Could not parse Anthropic SSE event ${a.event}: ${t}; data=${a.data}; raw=${a.raw.join(`\\n`)}`)}}if(n&&!i)throw Error(`Anthropic stream ended before message_stop`)}var Qr=(r,i,a)=>{let s=new e;return(async()=>{let e={role:`assistant`,content:[],api:r.api,provider:r.provider,model:r.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let l,u;if(a?.client)l=a.client,u=!1;else{let e=a?.apiKey;Wr(r.provider,e,a?.headers);let t;if(r.provider===`github-copilot`){let e=f(i.messages);t=p({messages:i.messages,hasImages:e})}let n=Ar(a?.cacheRetention,a?.env)===`none`?void 0:a?.sessionId,o=ni(r,e,a?.interleavedThinking??!0,si(r,i),a?.headers,a?.fetch,t,n);l=o.client,u=o.isOAuthToken}let d=ri(r,i,u,a),m=await a?.onPayload?.(d,r);m!==void 0&&(d=m);let ee={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},maxRetries:0},te=await c(()=>l.messages.create({...d,stream:!0},ee).asResponse(),{maxRetries:a?.maxRetries,maxRetryDelayMs:a?.maxRetryDelayMs,signal:a?.signal});await a?.onResponse?.({status:te.status,headers:o(te.headers)},r),s.push({type:`start`,partial:e});let h=e.content;for await(let o of Zr(te,a?.signal))if(o.type===`message_start`)e.responseId=o.message.id,e.usage.input=o.message.usage.input_tokens||0,e.usage.output=o.message.usage.output_tokens||0,e.usage.cacheRead=o.message.usage.cache_read_input_tokens||0,e.usage.cacheWrite=o.message.usage.cache_creation_input_tokens||0,e.usage.cacheWrite1h=o.message.usage.cache_creation?.ephemeral_1h_input_tokens||0,e.usage.totalTokens=e.usage.input+e.usage.output+e.usage.cacheRead+e.usage.cacheWrite,t(r,e.usage);else if(o.type===`content_block_start`){if(o.content_block.type===`text`){let t={type:`text`,text:o.content_block.text??``,index:o.index};e.content.push(t),s.push({type:`text_start`,contentIndex:e.content.length-1,partial:e})}else if(o.content_block.type===`thinking`){let t={type:`thinking`,thinking:o.content_block.thinking??``,thinkingSignature:o.content_block.signature??``,index:o.index};e.content.push(t),s.push({type:`thinking_start`,contentIndex:e.content.length-1,partial:e})}else if(o.content_block.type===`redacted_thinking`){let t={type:`thinking`,thinking:`[Reasoning redacted]`,thinkingSignature:o.content_block.data,redacted:!0,index:o.index};e.content.push(t),s.push({type:`thinking_start`,contentIndex:e.content.length-1,partial:e})}else if(o.content_block.type===`tool_use`){let t={type:`toolCall`,id:o.content_block.id,name:u?Fr(o.content_block.name,i.tools):o.content_block.name,arguments:o.content_block.input??{},partialJson:``,index:o.index};e.content.push(t),s.push({type:`toolcall_start`,contentIndex:e.content.length-1,partial:e})}}else if(o.type===`content_block_delta`){if(o.delta.type===`text_delta`){let t=h.findIndex(e=>e.index===o.index),n=h[t];n&&n.type===`text`&&(n.text+=o.delta.text,s.push({type:`text_delta`,contentIndex:t,delta:o.delta.text,partial:e}))}else if(o.delta.type===`thinking_delta`){let t=h.findIndex(e=>e.index===o.index),n=h[t];n&&n.type===`thinking`&&(n.thinking+=o.delta.thinking,s.push({type:`thinking_delta`,contentIndex:t,delta:o.delta.thinking,partial:e}))}else if(o.delta.type===`input_json_delta`){let t=h.findIndex(e=>e.index===o.index),r=h[t];r&&r.type===`toolCall`&&(r.partialJson+=o.delta.partial_json,r.arguments=n(r.partialJson),s.push({type:`toolcall_delta`,contentIndex:t,delta:o.delta.partial_json,partial:e}))}else if(o.delta.type===`signature_delta`){let e=h[h.findIndex(e=>e.index===o.index)];e&&e.type===`thinking`&&(e.thinkingSignature=e.thinkingSignature||``,e.thinkingSignature+=o.delta.signature)}}else if(o.type===`content_block_stop`){let t=h.findIndex(e=>e.index===o.index),r=h[t];r&&(delete r.index,r.type===`text`?s.push({type:`text_end`,contentIndex:t,content:r.text,partial:e}):r.type===`thinking`?s.push({type:`thinking_end`,contentIndex:t,content:r.thinking,partial:e}):r.type===`toolCall`&&(r.arguments=n(r.partialJson),delete r.partialJson,s.push({type:`toolcall_end`,contentIndex:t,toolCall:r,partial:e})))}else if(o.type===`message_delta`){if(o.delta.stop_reason){e.rawStopReason=o.delta.stop_reason;let t=li(o.delta.stop_reason,o.delta.stop_details);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage)}if(o.usage){o.usage.input_tokens!=null&&(e.usage.input=o.usage.input_tokens),o.usage.output_tokens!=null&&(e.usage.output=o.usage.output_tokens),o.usage.cache_read_input_tokens!=null&&(e.usage.cacheRead=o.usage.cache_read_input_tokens),o.usage.cache_creation_input_tokens!=null&&(e.usage.cacheWrite=o.usage.cache_creation_input_tokens);let t=o.usage.output_tokens_details?.thinking_tokens;t!=null&&(e.usage.reasoning=t)}e.usage.totalTokens=e.usage.input+e.usage.output+e.usage.cacheRead+e.usage.cacheWrite,t(r,e.usage)}if(a?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`Anthropic stream ended without a stop reason`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(e.errorMessage||`An unknown error occurred`);s.push({type:`done`,reason:e.stopReason,message:e}),s.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson;e.stopReason=a?.signal?.aborted?`aborted`:`error`,e.errorMessage=t instanceof Error?t.message:JSON.stringify(t),s.push({type:`error`,reason:e.stopReason,error:e}),s.end()}})(),s};function $r(e,t){let n=t?e.thinkingLevelMap?.[t]:void 0;if(typeof n==`string`)return n;switch(t){case`minimal`:case`low`:return`low`;case`medium`:return`medium`;case`high`:return`high`;default:return`high`}}var ei=(e,t,n)=>{Wr(e.provider,n?.apiKey,n?.headers);let r=ee(e,t,n,n?.apiKey);if(!n?.reasoning)return Qr(e,t,{...r,thinkingEnabled:!1});if(e.compat?.forceAdaptiveThinking===!0){let i=$r(e,n.reasoning);return Qr(e,t,{...r,thinkingEnabled:!0,effort:i})}let i=te(r.maxTokens,e.maxTokens,n.reasoning,n.thinkingBudgets),a=m(e,t,i.maxTokens);return Qr(e,t,{...r,maxTokens:a,thinkingEnabled:!0,thinkingBudgetTokens:Math.min(i.thinkingBudget,Math.max(0,a-1024))})};function ti(e){return e.includes(`sk-ant-oat`)}function ni(e,t,n,r,i,a,o,s){let c=n&&e.compat?.forceAdaptiveThinking!==!0,l=[];if(r&&l.push(Lr),c&&l.push(Rr),e.provider===`github-copilot`)return{client:new $({apiKey:null,authToken:t??null,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:a,defaultHeaders:Hr(e,{accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,...l.length>0?{"anthropic-beta":l.join(`,`)}:{}},e.headers,o,i)}),isOAuthToken:!1};if(t&&ti(t))return{client:new $({apiKey:null,authToken:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:a,defaultHeaders:Hr(e,{accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,"anthropic-beta":[`claude-code-20250219`,`oauth-2025-04-20`,...l].join(`,`),"user-agent":`claude-cli/${Mr}`,"x-app":`cli`},e.headers,i)}),isOAuthToken:!0};let u=s&&zr(e).sendSessionAffinityHeaders?{"x-session-affinity":s}:{},d=Hr(e,{accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,...l.length>0?{"anthropic-beta":l.join(`,`)}:{}},u,e.headers,i);return{client:new $({apiKey:t??null,authToken:null,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:a,defaultHeaders:d}),isOAuthToken:!1}}function ri(e,t,n,r){let{cacheControl:i}=jr(e,r?.cacheRetention,r?.env),o=zr(e),s=h(t.messages,e,ii),c=n?Pr:e=>e,u=a({...t,messages:s},o.supportsToolReferences,c),d=u.immediate,f=[...u.deferred.values()];d.length===0&&f.length>0&&(d=f,f=[]);let p=new Set(f.map(e=>c(e.name))),m={model:e.id,messages:oi(s,n,i,o.allowEmptySignature,p,c),max_tokens:r?.maxTokens??e.maxTokens,stream:!0};if(n?(m.system=[{type:`text`,text:`You are Claude Code, Anthropic's official CLI for Claude.`,...i?{cache_control:i}:{}}],t.systemPrompt&&m.system.push({type:`text`,text:l(t.systemPrompt),...i?{cache_control:i}:{}})):t.systemPrompt&&(m.system=[{type:`text`,text:l(t.systemPrompt),...i?{cache_control:i}:{}}]),r?.temperature!==void 0&&!r?.thinkingEnabled&&o.supportsTemperature&&(m.temperature=r.temperature),(d.length>0||f.length>0)&&(m.tools=[...ci(d,n,o.supportsEagerToolInputStreaming,o.supportsStrictTools,o.supportsCacheControlOnTools?i:void 0),...ci(f,n,o.supportsEagerToolInputStreaming,o.supportsStrictTools,void 0,!0)]),e.reasoning){if(r?.thinkingEnabled){let t=r.thinkingDisplay??`summarized`;e.compat?.forceAdaptiveThinking===!0?(m.thinking={type:`adaptive`,display:t},r.effort&&(m.output_config=(r.effort,{effort:r.effort}))):m.thinking={type:`enabled`,budget_tokens:r.thinkingBudgetTokens||1024,display:t}}else r?.thinkingEnabled===!1&&e.thinkingLevelMap?.off!==null&&(m.thinking={type:`disabled`})}if(r?.metadata){let e=r.metadata.user_id;typeof e==`string`&&(m.metadata={user_id:e})}return r?.toolChoice&&(m.tool_choice=typeof r.toolChoice==`string`?{type:r.toolChoice}:r.toolChoice),m}function ii(e){return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,64)}function ai(e,t,n,r,i){let a=[];for(let o of e.addedToolNames??[]){let e=i(o);!n.has(e)||r.has(e)||(r.add(e),a.push({type:`tool_reference`,tool_name:t?Pr(o):o}))}let o=Ir(e.content);return{toolResult:{type:`tool_result`,tool_use_id:e.toolCallId,content:a.length>0?a:o,is_error:e.isError},siblingContent:a.length===0?[]:typeof o==`string`?[{type:`text`,text:o}]:o}}function oi(e,t,n,r=!1,i=new Set,a=e=>e){let o=[],s=new Set;for(let n=0;n<e.length;n++){let c=e[n];if(c.role===`user`){if(typeof c.content==`string`)c.content.trim().length>0&&o.push({role:`user`,content:l(c.content)});else{let e=c.content.map(e=>e.type===`text`?{type:`text`,text:l(e.text)}:{type:`image`,source:{type:`base64`,media_type:e.mimeType,data:e.data}}).filter(e=>e.type!==`text`||e.text.trim().length>0);if(e.length===0)continue;o.push({role:`user`,content:e})}}else if(c.role===`assistant`){let e=[];for(let n of c.content)if(n.type===`text`){if(n.text.trim().length===0)continue;e.push({type:`text`,text:l(n.text)})}else if(n.type===`thinking`){if(n.redacted){e.push({type:`redacted_thinking`,data:n.thinkingSignature});continue}let t=n.thinkingSignature,i=!!t&&t.trim().length>0;if(n.thinking.trim().length===0&&!i)continue;i?e.push({type:`thinking`,thinking:l(n.thinking),signature:t}):e.push(r?{type:`thinking`,thinking:l(n.thinking),signature:``}:{type:`text`,text:l(n.thinking)})}else n.type===`toolCall`&&e.push({type:`tool_use`,id:n.id,name:t?Pr(n.name):n.name,input:n.arguments??{}});if(e.length===0)continue;o.push({role:`assistant`,content:e})}else if(c.role===`toolResult`){let r=[],c=[],l=n;for(;l<e.length&&e[l].role===`toolResult`;){let n=ai(e[l],t,i,s,a);r.push(n.toolResult),c.push(...n.siblingContent),l++}n=l-1,o.push({role:`user`,content:[...r,...c]})}}if(n&&o.length>0){let e=o[o.length-1];if(e.role===`user`){if(Array.isArray(e.content)){let t=e.content[e.content.length-1];t&&(t.type===`text`||t.type===`image`||t.type===`tool_result`)&&(t.cache_control=n)}else typeof e.content==`string`&&(e.content=[{type:`text`,text:e.content,cache_control:n}])}}return o}function si(e,t){return!!t.tools?.length&&!zr(e).supportsEagerToolInputStreaming}function ci(e,t,n,r,i,a=!1){return e?e.map((o,s)=>{let c=d(o,r),l=u(o,c),f=l,p={type:`object`,properties:f.properties??{},required:f.required??[]},m=c===!0?{...l,...p}:p;return{name:t?Pr(o.name):o.name,description:o.description,...n?{eager_input_streaming:!0}:{},...c===!0?{strict:!0}:{},input_schema:m,...a?{defer_loading:!0}:{},...i&&s===e.length-1?{cache_control:i}:{}}}):[]}function li(e,t){switch(e){case`end_turn`:return{stopReason:`stop`};case`max_tokens`:return{stopReason:`length`};case`tool_use`:return{stopReason:`toolUse`};case`refusal`:return{stopReason:`error`,errorMessage:t?.explanation||`The model refused to complete the request`};case`pause_turn`:return{stopReason:`stop`};case`stop_sequence`:return{stopReason:`stop`};case`sensitive`:return{stopReason:`error`,errorMessage:`Provider stopped with: sensitive`};default:throw Error(`Unhandled stop reason: ${e}`)}}export{Qr as stream,ei as streamSimple};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{CHAT_SURFACE_ID as e}from"./wc-sprinkles-
|
|
1
|
+
import{CHAT_SURFACE_ID as e}from"./wc-sprinkles-D-DWMPsX.js";var t=`focus`,n={type:`leaf`,surfaceId:`chat`};function r(e,t={},n={}){return{zones:{top:null,left:null,middle:null,right:null,bottom:null,...e},rowFr:{top:1,center:1,bottom:1,...n},colFr:{left:1,middle:1,right:1,...t}}}var i={focus:{name:`focus`,tree:r({left:n},{left:3,middle:1})}};function a(e){return i[e]??null}function o(n,r){switch(r.kind){case`set`:n.applyLayout(r.tree);break;case`reset`:{let e=a(t);e&&n.applyLayout(e.tree);break}case`chat`:n.moveSurfaceToZone(e,r.zone);break;case`open`:n.placeSurface(r.zone,r.surfaceId);break;case`close`:n.removeSurface(r.surfaceId);break;case`move`:n.moveSurfaceToZone(r.surfaceId,r.zone);break;case`size`:n.setSurfaceSize(r.surfaceId,r.size)}}export{o as applyLayout};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import{t}from"./html-B_Hg2WOy.js";import{t as n}from"./types-idfTVsM8.js";import{t as r}from"./global-db-DJXlpNui.js";const i=e(`mcp-apps`),a=`/workspace/.mcp/sprinkles`;async function o(e){if(e)return e;let{VirtualFS:t}=await import(`./fs-
|
|
1
|
+
import{t as e}from"./logger-LESFN7Hj.js";import{t}from"./html-B_Hg2WOy.js";import{t as n}from"./types-idfTVsM8.js";import{t as r}from"./global-db-DJXlpNui.js";const i=e(`mcp-apps`),a=`/workspace/.mcp/sprinkles`;async function o(e){if(e)return e;let{VirtualFS:t}=await import(`./fs-tsCmhLpU.js`).then(e=>e.t);return await t.create({dbName:r})}function s(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,64)||`app`}function c(e,n){let r=t(n.title??n.name),i=n.description?t(n.description):``,a=t(n.templateUri??`about:blank`),o=JSON.stringify(e),s=JSON.stringify(n.name);return`<div class="mcp-app" data-sprinkle-title="${r}" style="display:flex;flex-direction:column;height:100%;min-height:0;">
|
|
2
2
|
<header class="mcp-app__header" style="padding:8px 12px;border-bottom:1px solid var(--s2-border-subtle,#3a3a3a);">
|
|
3
3
|
<h2 style="font-size:14px;font-weight:600;margin:0;">${r}</h2>${i?`\n <p style="font-size:12px;margin:4px 0 0;color:var(--s2-content-secondary,#a0a0a0);">${i}</p>`:``}
|
|
4
4
|
</header>
|