@vellumai/web 0.11.2-staging.2 → 0.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{Combination-CWTYp834.js → Combination-TPH8qx8I.js} +1 -1
- package/dist/assets/{access-CVnesk0m.js → access-PKx6h0AJ.js} +1 -1
- package/dist/assets/{account-page-mMG1nL1O.js → account-page-DucijMvM.js} +1 -1
- package/dist/assets/{account-shell-BmH96-Ie.js → account-shell-BBDh-DzD.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-SN6NIuW5.js → acp-run-detail-panel-DJ6moBbf.js} +1 -1
- package/dist/assets/{activity-steps-panel-bduSS8_d.js → activity-steps-panel-C95hN_fd.js} +1 -1
- package/dist/assets/{add-credential-modal-4zzd0MPK.js → add-credential-modal-BbvTHJmF.js} +1 -1
- package/dist/assets/{add-credits-modal-DNYP2NMD.js → add-credits-modal-C5d63VSi.js} +1 -1
- package/dist/assets/{ai-page-BMqECtJX.js → ai-page-CbNTYziv.js} +1 -1
- package/dist/assets/{api-key-screen-tqtaQUVf.js → api-key-screen-B5zgGiwa.js} +1 -1
- package/dist/assets/{app-card-BJigGog3.js → app-card-CxO44OqN.js} +1 -1
- package/dist/assets/{assistant-feature-flag-store-BvLDPeej.js → assistant-feature-flag-store-BojuHxUH.js} +1 -1
- package/dist/assets/{assistant-status-panel-DyjhJvK6.js → assistant-status-panel-ZdWgKADH.js} +1 -1
- package/dist/assets/{background-task-detail-panel-DCtBOnvF.js → background-task-detail-panel-BvgkgKs6.js} +1 -1
- package/dist/assets/{billing-page-TF_LgX6K.js → billing-page-CSxWbmCW.js} +2 -2
- package/dist/assets/{bookmarks-page-Brvj5Jf6.js → bookmarks-page-hFDlAWts.js} +1 -1
- package/dist/assets/{button-Dy5001j6.js → button-BwFudwM5.js} +1 -1
- package/dist/assets/{channels-page-route-8vJJE2LN.js → channels-page-route-Cxn_zS-J.js} +1 -1
- package/dist/assets/{chat-markdown-message-B7qvlO44.js → chat-markdown-message-BZZsrGyj.js} +1 -1
- package/dist/assets/{checkbox-PU47Djxg.js → checkbox-fzrjTRTI.js} +1 -1
- package/dist/assets/{checkout-page-MpIPAAgf.js → checkout-page-lDrK4V11.js} +1 -1
- package/dist/assets/{command-palette-Bd1GTwZQ.js → command-palette-Bzsl-t3p.js} +1 -1
- package/dist/assets/{command-palette-window-page-CoweYsZl.js → command-palette-window-page-DjfAe-7N.js} +1 -1
- package/dist/assets/{community-page-BWMwSeEZ.js → community-page-CktLEQl7.js} +1 -1
- package/dist/assets/{confirm-dialog-j9o2h3xs.js → confirm-dialog-B7WBNDbT.js} +1 -1
- package/dist/assets/{connect-page-BxSNhZ8N.js → connect-page-hrIJuX_v.js} +1 -1
- package/dist/assets/{consent-controls-Bs63UL5k.js → consent-controls-HYcVhQZ2.js} +1 -1
- package/dist/assets/{contacts-page-route-BOpVOsYK.js → contacts-page-route-CX57wU3L.js} +1 -1
- package/dist/assets/{conversation-navigation-Bf3cDRKh.js → conversation-navigation-CIHBMx2t.js} +1 -1
- package/dist/assets/{copy-to-clipboard-DgY-nZpm.js → copy-to-clipboard-Y0mxY68V.js} +1 -1
- package/dist/assets/{credential-entry-page-CreYYbwf.js → credential-entry-page-DQOv-Jyx.js} +1 -1
- package/dist/assets/credentials-page-C0eeGia5.js +1 -0
- package/dist/assets/{csv-preview-cEf_PW-P.js → csv-preview-C4T5JLx3.js} +1 -1
- package/dist/assets/{debug-page-DfPZPo6D.js → debug-page-DzXHo3zM.js} +2 -2
- package/dist/assets/{deploy-dialogs-CuaO05wL.js → deploy-dialogs-DQGwptOi.js} +1 -1
- package/dist/assets/{deploy-store-BDIOP-i9.js → deploy-store-BJh0AR_u.js} +1 -1
- package/dist/assets/{detail-card-BElAV1cp.js → detail-card-Br_T-73R.js} +1 -1
- package/dist/assets/{detail-drawer-Cd_EQJkJ.js → detail-drawer-Cbj_q7o7.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-Bhew_kym.js → detail-panel-stop-button-DN2NrxEh.js} +1 -1
- package/dist/assets/{detail-shell-BjqibXNX.js → detail-shell-BuJMM-9z.js} +1 -1
- package/dist/assets/{developer-page-DwBmhm09.js → developer-page-Cj9JWAsX.js} +1 -1
- package/dist/assets/{dist-EanpjdWC.js → dist-B5IUaBWa.js} +1 -1
- package/dist/assets/{dist-C68qFSny.js → dist-BrrL0-_M.js} +1 -1
- package/dist/assets/dist-DWcXIgDR.js +1 -0
- package/dist/assets/{document-viewer-container-iB63ww7P.js → document-viewer-container-CPc9KTln.js} +2 -2
- package/dist/assets/{document-viewer-page-CA1ParJ6.js → document-viewer-page-BqJvQQmH.js} +1 -1
- package/dist/assets/{dropdown-B3FHWc_n.js → dropdown-CJVkL1Yp.js} +1 -1
- package/dist/assets/{emails-page-Bo0Bwem2.js → emails-page-DwQ-FnOD.js} +1 -1
- package/dist/assets/{file-editor-BfJR0ScX.js → file-editor-BigdI9HF.js} +1 -1
- package/dist/assets/{file-markdown-DnVLY_b_.js → file-markdown-eU8RUJQZ.js} +1 -1
- package/dist/assets/{first-run-scope-CPJpXaWU.js → first-run-scope-DqdWmMO-.js} +1 -1
- package/dist/assets/{general-page-BXeIQDGi.js → general-page-uFG7UTqR.js} +1 -1
- package/dist/assets/hatching-screen-CWZvcZVI.js +1 -0
- package/dist/assets/{home-page-route-BPht0PNp.js → home-page-route-zQaUf7gb.js} +1 -1
- package/dist/assets/{hosting-screen-DxtyBx0I.js → hosting-screen-lGuLVQVG.js} +1 -1
- package/dist/assets/{identity-page-route-DgmrXhhV.js → identity-page-route-C64OsL5_.js} +1 -1
- package/dist/assets/index-Cn_k9u0x.css +2 -0
- package/dist/assets/{index-CPeIfypI.js → index-D-1mlWsA.js} +1 -1
- package/dist/assets/{input-tXUFa7Eo.js → input-CgGeKtja.js} +1 -1
- package/dist/assets/{inspect-page-C8aLJOd6.js → inspect-page-DdXP831Q.js} +1 -1
- package/dist/assets/integrations-page-DmQCd8GV.js +1 -0
- package/dist/assets/{intelligence-layout-BRC0qkZ7.js → intelligence-layout-IptAIgHy.js} +1 -1
- package/dist/assets/{library-detail-page-gC4yIWnV.js → library-detail-page-Ddel5wXb.js} +1 -1
- package/dist/assets/{library-page-B10gnbXU.js → library-page-B4k0PNa8.js} +1 -1
- package/dist/assets/{login-page-CbWRbJDE.js → login-page-CRIed3qa.js} +1 -1
- package/dist/assets/{logout-page-DCyzi0V6.js → logout-page-Ne05SAbm.js} +1 -1
- package/dist/assets/{logs-layout-CYkqau4S.js → logs-layout-BN5HA58-.js} +1 -1
- package/dist/assets/{memory-page-route-j_3602nh.js → memory-page-route-Mz8GlpcX.js} +1 -1
- package/dist/assets/{memory-router-playground-page-x5X662qi.js → memory-router-playground-page-CeIkpuOW.js} +1 -1
- package/dist/assets/{menu-wESJw6y3.js → menu-Cfi4A3sw.js} +1 -1
- package/dist/assets/{message-files-panel-C8JokH6e.js → message-files-panel-C8sWLQ58.js} +1 -1
- package/dist/assets/{messages-Dyp1xUqz.js → messages-BTSYvzWZ.js} +1 -1
- package/dist/assets/{metric-card-DpZFp8-q.js → metric-card-CczTqF_s.js} +1 -1
- package/dist/assets/{mobile-sidebar-drawer-BwCIAm23.js → mobile-sidebar-drawer-CSAugzxJ.js} +1 -1
- package/dist/assets/{modal-xr_vw1ZO.js → modal-DagTZ8xj.js} +1 -1
- package/dist/assets/mutation-error-Cp0Jaqnt.js +1 -0
- package/dist/assets/{not-found-Bh7ZsdAo.js → not-found-C1zvwDkh.js} +1 -1
- package/dist/assets/{notifications-page-BA2BW5y6.js → notifications-page-BzoWNM1e.js} +1 -1
- package/dist/assets/{onboarding-layout-iPzXbZk1.js → onboarding-layout-CNKJRWfe.js} +1 -1
- package/dist/assets/{open-workspace-file-CivxJWcw.js → open-workspace-file-DAlt8chN.js} +2 -2
- package/dist/assets/{page-shell-ZNQR4ZTn.js → page-shell-Dx-efyAO.js} +1 -1
- package/dist/assets/pairing-page-BqjYohpZ.js +1 -0
- package/dist/assets/{panel-item-CJh95P_q.js → panel-item-5YQ3jbso.js} +1 -1
- package/dist/assets/{personality-page-Bz_rNBSs.js → personality-page-CB98MeIQ.js} +1 -1
- package/dist/assets/{plans-page-BfyCgy38.js → plans-page-BcR_kjJL.js} +1 -1
- package/dist/assets/{platform-login-notice-DFmjUE9q.js → platform-login-notice-DvWjpI2S.js} +1 -1
- package/dist/assets/popover-CBYgK7Wt.js +1 -0
- package/dist/assets/{preview-error-BrLE2D3A.js → preview-error-DzUxX6Jy.js} +1 -1
- package/dist/assets/{privacy-page-BhEGh78C.js → privacy-page-B9zfD9a-.js} +1 -1
- package/dist/assets/{privacy-screen-CWVCI_KU.js → privacy-screen-Btqk8OjG.js} +1 -1
- package/dist/assets/{provider-callback-page-DP5cKqPE.js → provider-callback-page-Jul4gNdZ.js} +1 -1
- package/dist/assets/provider-key-BZOwvE14.js +1 -0
- package/dist/assets/{provider-signup-page-BjiiJWS_.js → provider-signup-page-C47ij2Um.js} +1 -1
- package/dist/assets/{research-mock-page-CGkqkXHp.js → research-mock-page-DthnGXhi.js} +1 -1
- package/dist/assets/{research-onboarding-route-DZF-B2Rk.js → research-onboarding-route-Cql_2-1F.js} +1 -1
- package/dist/assets/{research-results-view-BFZFPpev.js → research-results-view-BYpW36E0.js} +1 -1
- package/dist/assets/{retire-confirm-dialog-8xlq4bkx.js → retire-confirm-dialog-PvFzzHrQ.js} +1 -1
- package/dist/assets/{review-terms-screen-C5BAI3Rx.js → review-terms-screen-BpE_z8HY.js} +1 -1
- package/dist/assets/routes-DRAnvlxS.js +23 -0
- package/dist/assets/{runtime-upgrade-banner-DjFuJawk.js → runtime-upgrade-banner-Blp8EyfL.js} +1 -1
- package/dist/assets/{schedules-page-3ZE1nR6I.js → schedules-page-D6KPJIUP.js} +1 -1
- package/dist/assets/{select-assistant-screen-D4WHHv61.js → select-assistant-screen-DH6QRKdk.js} +1 -1
- package/dist/assets/{settings-divider-BkLQFMlW.js → settings-divider-COV4-sHz.js} +1 -1
- package/dist/assets/{settings-layout-BmOglXDq.js → settings-layout-CyMD8Ey7.js} +1 -1
- package/dist/assets/{share-feedback-modal-Rwuho_1S.js → share-feedback-modal-NfuDPoEg.js} +1 -1
- package/dist/assets/{sidebar-tree-Dxx5qLMQ.js → sidebar-tree-DTcPYrOG.js} +1 -1
- package/dist/assets/{site-favicon-CDH0mg6Q.js → site-favicon-DkjZF9mC.js} +1 -1
- package/dist/assets/{skill-detail-page-DswXTTyb.js → skill-detail-page-CzCcXCkp.js} +1 -1
- package/dist/assets/{skill-detail-panel-DhQFBAFF.js → skill-detail-panel-B1Kxa3zf.js} +1 -1
- package/dist/assets/{skills-CbF2uKXV.js → skills-CrZ3GlyK.js} +1 -1
- package/dist/assets/{slack-setup-wizard-DPzdheN0.js → slack-setup-wizard-CeBY_rKV.js} +1 -1
- package/dist/assets/src-CwGlaCIx.js +293 -0
- package/dist/assets/{start-screen-CSxaBn88.js → start-screen-wyemTUjV.js} +1 -1
- package/dist/assets/{subagent-detail-panel-CidisBCf.js → subagent-detail-panel-C3II8umu.js} +1 -1
- package/dist/assets/{superpowers-page-BouZK3P4.js → superpowers-page-DmIZ_ed4.js} +1 -1
- package/dist/assets/{system-events-page-BrvTNeiN.js → system-events-page-DAbap4FJ.js} +1 -1
- package/dist/assets/{tag-gOOX7fbA.js → tag-G0ELn_cq.js} +1 -1
- package/dist/assets/{text-preview-DwgKh8PW.js → text-preview-DLiOtb-y.js} +1 -1
- package/dist/assets/{theme-stage-page-LIhQbqRQ.js → theme-stage-page-Dt0ShS5G.js} +1 -1
- package/dist/assets/{tiptap-document-editor-BvGaiGeN.js → tiptap-document-editor-LwU6S_hn.js} +2 -2
- package/dist/assets/{toast-BtFgiPe3.js → toast-BHjG1kP8.js} +1 -1
- package/dist/assets/{tool-detail-panel-B2CIRZkB.js → tool-detail-panel-tFQRRPbP.js} +1 -1
- package/dist/assets/{transcript-message-body-shared-BfKwS5qD.js → transcript-message-body-shared-DdXeU1D-.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-DjeqfvTa.js → upgrade-cancel-page-isK2Rvv6.js} +1 -1
- package/dist/assets/{upgrade-success-page-B4TCn340.js → upgrade-success-page-B7ZaoDsy.js} +1 -1
- package/dist/assets/{use-assistant-identity-details-D-7oN9gr.js → use-assistant-identity-details-BLHiMTpS.js} +1 -1
- package/dist/assets/{use-attachment-preview-CQjpDfsc.js → use-attachment-preview-TAzqhvwh.js} +1 -1
- package/dist/assets/{use-attachment-squares-8Hx-p8ls.js → use-attachment-squares-Cnn6a6er.js} +1 -1
- package/dist/assets/{use-bookmarks-DO9wmU-2.js → use-bookmarks-BKYsQrf9.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-CV_H4uEB.js → use-checkout-dismiss-refresh-ChquCG4n.js} +1 -1
- package/dist/assets/{use-edit-app-Bd1eXXFq.js → use-edit-app-LCywIVb9.js} +1 -1
- package/dist/assets/{use-invite-link-dialog-TNGI1l4g.js → use-invite-link-dialog-CnOeFYBH.js} +1 -1
- package/dist/assets/{use-ios-app-nudge-CadXZRJC.js → use-ios-app-nudge-9Qqz96FD.js} +1 -1
- package/dist/assets/{use-skill-actions-B_tz3CI7.js → use-skill-actions-Ik0rj4or.js} +1 -1
- package/dist/assets/{use-sticky-profiles-D5TVHOgw.js → use-sticky-profiles-BwaZUy6p.js} +1 -1
- package/dist/assets/{use-subagent-card-data-bjGydvhR.js → use-subagent-card-data-1nEhEj8_.js} +1 -1
- package/dist/assets/{use-transcript-message-by-id-BgyP3Ki5.js → use-transcript-message-by-id-RhDDYgbY.js} +1 -1
- package/dist/assets/{use-transcript-messages-C2uwkjKL.js → use-transcript-messages-C5t358ZW.js} +1 -1
- package/dist/assets/{utils-3IBGVjNS.js → utils-B6xfBCpN.js} +1 -1
- package/dist/assets/{viewer-store-DbIS4l8d.js → viewer-store-DxLOGAkL.js} +1 -1
- package/dist/assets/{voice-list-D26Lzbpv.js → voice-list-DP4_zhJe.js} +1 -1
- package/dist/assets/{voice-page-CQ2Vp8p4.js → voice-page-Bn0QH4eT.js} +1 -1
- package/dist/assets/{voice-providers-note-Ck7hNTfp.js → voice-providers-note-F4pLO3zK.js} +1 -1
- package/dist/assets/{welcome-screen-CdsjDVfi.js → welcome-screen-B6BjQt9n.js} +1 -1
- package/dist/assets/{workflow-detail-panel-CsRhUrbM.js → workflow-detail-panel-H3N7Md_X.js} +1 -1
- package/dist/assets/{workspace-page-CFuSxp5s.js → workspace-page-B4sn6pzo.js} +1 -1
- package/dist/index.html +55 -55
- package/package.json +1 -1
- package/dist/assets/credentials-page-DBLT8nUI.js +0 -1
- package/dist/assets/dist-BDdp8zqz.js +0 -1
- package/dist/assets/hatching-screen-BUpSlvBy.js +0 -1
- package/dist/assets/index-C7_04HXM.css +0 -2
- package/dist/assets/integrations-page-Bp2Q81Qt.js +0 -1
- package/dist/assets/mutation-error-YLfUU5XL.js +0 -1
- package/dist/assets/pairing-page-P5ghxF0M.js +0 -1
- package/dist/assets/popover-B-3isZCV.js +0 -1
- package/dist/assets/provider-key-CgC-RLmR.js +0 -1
- package/dist/assets/routes-uGHUgv4F.js +0 -23
- package/dist/assets/src-Da9g8qsW.js +0 -293
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./button-Dy5001j6.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-DEI9Ra9z.js";import{C as a,S as o,T as s,o as c,s as l,w as u}from"./message-content-B6_GZQl9.js";import{t as d}from"./brain-CN4zzNgU.js";import{t as f}from"./check-Dt2rQhdg.js";import{t as p}from"./circle-check-DvrCdroD.js";import{t as m}from"./code-D6SOwRrI.js";import"./src-Da9g8qsW.js";import{t as h}from"./file-text-CwGsMgaa.js";import{t as g}from"./globe-CdLn4IX7.js";import{t as _}from"./monitor-RX4oi4Nj.js";import{t as v}from"./sparkles-DfEFn3Bh.js";import{t as ee}from"./user-plus-DjxxnQ8G.js";import{t as y}from"./popover-B-3isZCV.js";import{D as b,O as te}from"./chat-Dy2BC2i1.js";import{t as x}from"./misc-BBsGq1IU.js";import{t as ne}from"./proxy-DrtKRLtr.js";import{t as re}from"./AnimatePresence-CHo6D7IH.js";import{t as S}from"./use-reduced-motion-fR0m_opJ.js";import{t as C}from"./three-dot-indicator-CeTxs9-J.js";var w=e(t(),1),T=r();function E(e){let t=e.trimStart();if(!t.startsWith(`**`))return e;let n=t.indexOf(`**`,2);if(n===-1)return t.slice(2).trimStart();let r=t.slice(2,n).trim();return r.length>0?r:e}var ie=/^https?:\/\/\S+/,ae=/^URL:\s*(https?:\/\/\S+)/i,oe=/^\[\d+\]\s*(https?:\/\/\S+)/;function D(e){try{return new URL(e).hostname.replace(/^www\./,``)}catch{return``}}function se(e){let t=e.trim();return ae.exec(t)?.[1]??oe.exec(t)?.[1]??t}function ce(e){return e.trim().replace(/^\d+\.\s+/,``)}function le(e){let t=e.split(/\r?\n/),n=[],r=new Set,i=``;for(let e of t){let t=e.trim();if(!t){i=``;continue}let a=se(t);if(ie.test(a)){r.has(a)||(r.add(a),n.push({title:i,url:a})),i=``;continue}/^Web search results for /i.test(t)||/^Sources:?$/i.test(t)||(i=ce(t))}return n}function O(e){return!e||!e.trim()?[]:le(e).map((e,t)=>{let n=D(e.url);return{rank:t+1,title:e.title,url:e.url,domain:n}})}var ue=5,de=new Set([`web_search`,`web_fetch`]);function k(e){if(!Number.isFinite(e)||e<1e3)return`<1s`;let t=Math.round(e/1e3);if(t<60)return`${t}s`;let n=Math.round(t/60);return n<60?`${n}m`:`${Math.round(n/60)}h`}function A(e){return de.has(e.name)}function j(e){return e?`Searched the web`:`Searching the web`}function M(e){return{visible:e.slice(0,ue),overflowResults:e.slice(ue)}}function fe(e,t){let{visible:n,overflowResults:r}=M(e.results);return{kind:`web_search`,title:j(t),durationLabel:k(e.durationMs),linkCount:e.resultCount,results:n,overflowResults:r}}function pe(e){let t=e.title??e.domain;return{kind:`thinking`,durationLabel:k(e.durationMs),text:`Reading ${t}`}}function me(){return{kind:`web_search`,title:`Searching the web`,durationLabel:``,linkCount:0,results:[]}}function he(){return{kind:`thinking`,durationLabel:``,text:`Reading…`}}function ge(e){let t=O(e);if(t.length===0)return null;let{visible:n,overflowResults:r}=M(t);return{kind:`web_search`,title:j(!0),durationLabel:``,linkCount:t.length,results:n,overflowResults:r}}function _e(e){return{kind:`web_search_error`,title:`Web search failed`,durationLabel:k(e.durationMs),errorMessage:e.errorMessage??`Search is having trouble right now. You can try again in a moment, continue without web search, or paste the relevant details here and I'll use those.`}}function N(){return{kind:`web_search`,title:j(!0),durationLabel:``,linkCount:0,results:[]}}function P(e,t){return t[e.id]??e.activityMetadata}function F(e){return!b(e)}function I(e,t){return e.results.length>0?!1:!!e.errorMessage||!!t.isError}function L(e){return e.confirmationDecision===`denied`||e.confirmationDecision===`timed_out`?`denied`:e.isError?`error`:b(e)?`running`:`completed`}function R(e,t){return e==null||t==null?null:Math.max(0,t-e)}function z(e,t){let n=R(e,t);return n==null?``:k(n)}function B(e){return z(e.startedAt??void 0,e.completedAt??void 0)}function ve(e){return!c(e)&&b(e)}function ye(e,t){if(e.kind===`thinking`)return e.text?e.completedAt==null?e.startedAt!=null&&t!=null?Math.max(0,t-e.startedAt):null:R(e.startedAt,e.completedAt):null;let n=e.toolCall;if(c(n))return null;let r=te(n);return n.completedAt==null?b(n)&&r!=null&&t!=null?Math.max(0,t-r):null:R(r,n.completedAt)}function be(e){return e.some(e=>e.kind===`thinking`?!!e.text&&e.startedAt!=null&&e.completedAt==null:ve(e.toolCall))}function xe(e,t){let n=0,r=!1;for(let i of e){let e=ye(i,t);e!=null&&(r=!0,n+=e)}return r?k(n):``}function Se(e){let{title:t,activity:n}=l(e);return{toolCallId:e.id,toolName:e.name,title:t,activity:n,input:e.input??{},result:e.result,streamedOutput:e.streamedOutput,status:L(e),riskLevel:e.riskLevel,riskReason:e.riskReason,durationLabel:B(e)}}function Ce(e){let{title:t,info:n,activity:r,iconName:i}=l(e);return{kind:`tool`,durationLabel:B(e),startedAt:e.startedAt??void 0,title:t,info:n,activity:r,riskLevel:e.riskLevel,iconName:i,toolCallId:e.id,status:L(e)}}function we(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(A(r)){let e=P(r,t),n=F(r);if(e?.webSearch&&I(e.webSearch,r))return`Web search failed`;if(r.name===`web_search`)return j(n);if(r.name===`web_fetch`)return`Thinking`}else return l(r).title}return``}function Te(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(!A(r)){let{info:e,activity:t}=l(r);return t||e}let i=P(r,t),a=F(r);if(i?.webSearch){let e=i.webSearch;if(I(e,r))return e.errorMessage??`Search is having trouble right now. You can try again in a moment, continue without web search, or paste the relevant details here and I'll use those.`;if(e.results.length>0)return e.results[e.results.length-1].title;if(!a&&e.query)return`Searching ${e.query}`}if(i?.webFetch){let e=i.webFetch;return a?e.title??e.domain:`Reading ${e.domain}`}if(r.name===`web_search`){if(!a){let e=typeof r.input?.query==`string`?r.input.query.trim():``;return e?`Searching ${e}`:``}if(typeof r.result==`string`){let e=O(r.result);if(e.length>0){let t=e[e.length-1].title;if(t)return t}}}if(r.name===`web_fetch`){let e=typeof r.input?.url==`string`?r.input.url:``,t=e?D(e):``;if(t)return a?t:`Reading ${t}`}}return``}function Ee(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.name!==`web_search`)continue;let i=P(r,t)?.webSearch?.results;if(i&&i.length>0)return i}return[]}function De(e){return e.includes(`denied`)?`denied`:e.includes(`loading`)?`loading`:e.includes(`error`)?`error`:`complete`}function Oe(e){return De(e.map(e=>e.confirmationDecision===`denied`||e.confirmationDecision===`timed_out`?`denied`:b(e)?`loading`:e.isError?`error`:`complete`))}function ke(e,t){if(c(e))return null;if(!A(e))return Ce(e);let n=P(e,t),r=F(e);if(n?.webSearch){let t=n.webSearch;return I(t,e)?_e(t):fe(t,r)}return n?.webFetch?pe(n.webFetch):r?e.name===`web_search`&&typeof e.result==`string`?ge(e.result)??N():N():e.name===`web_search`?me():he()}function Ae(e,t,n){let r=e.filter(e=>e.kind===`toolCall`).map(e=>e.toolCall).filter(e=>!c(e)),i=[],a=null,o=0;for(let n of e){if(n.kind===`thinking`){n.text&&(i.push({kind:`thinking`,durationLabel:z(n.startedAt,n.completedAt),text:n.text,startedAt:n.startedAt,completedAt:n.completedAt,thinkingItemIndex:o++}),a=n.text);continue}let e=ke(n.toolCall,t);e&&(i.push(e),a=null)}let s=Oe(r),l,u,d;a===null?(l=we(r,t),u=Te(r,t),d=`tool`):(l=`Thinking`,u=E(a),d=`thinking`);let f=Ee(r,t),p=`${i.length} step${i.length===1?``:`s`}`,m=xe(e,n);return{currentStepTitle:l,currentStepInfo:u,currentStepKind:d,stepCount:p,totalDurationLabel:m,steps:i,state:s,carouselItems:f}}var je=.44;function Me(e,t){let n=[...e].sort((e,t)=>e.position-t.position),r=n[0]?.color??`white`,i=n[n.length-1]?.color??`white`,a=n.map(e=>{let t=(e.position-.5)*2*je;return`${e.color} calc(50% + var(--gs-spread-mid) * ${t.toFixed(4)})`}).join(`, `);return[`linear-gradient(${t}deg`,`var(--gs-base) calc(50% - var(--gs-spread))`,`color-mix(in oklab, var(--gs-base) 42%, ${r}) calc(50% - var(--gs-spread-mid))`,a,`color-mix(in oklab, var(--gs-base) 42%, ${i}) calc(50% + var(--gs-spread-mid))`,`var(--gs-base) calc(50% + var(--gs-spread)))`].join(`, `)}function Ne(e){let t=`color-mix(in srgb, ${e} 40%, white)`;return[{position:0,color:t},{position:.5,color:e},{position:1,color:t}]}var Pe=`var(--avatar-accent, var(--content-emphasised))`,Fe=`color-mix(in srgb, currentColor 45%, transparent)`,Ie=1500,Le=106,V=6,H=48,U=.72,W=14,Re=96;function ze(){return typeof CSS>`u`||typeof CSS.supports!=`function`?!1:CSS.supports(`background-clip`,`text`)||CSS.supports(`-webkit-background-clip`,`text`)}function G({children:e,colorHex:t,className:n,"data-testid":r}){let i=(0,w.useRef)(null),a=S(),o=t??Pe,s=(0,w.useMemo)(()=>Me(Ne(o),Le),[o]);(0,w.useLayoutEffect)(()=>{let t=i.current;if(!t)return;if(!ze()){t.style.removeProperty(`background-image`),t.style.removeProperty(`background-color`),t.style.removeProperty(`-webkit-text-fill-color`);return}if(a||typeof t.animate!=`function`)return;let n=null,r=()=>{let r=t.getBoundingClientRect().width||Re,i=(Number.parseFloat(getComputedStyle(t).fontSize)||W)/W,a=Math.min(e.length*V*i,H*i),o=Math.max(1,r+a*2);t.style.setProperty(`--gs-spread`,`${a}px`),t.style.setProperty(`--gs-spread-mid`,`${a*U}px`),t.style.backgroundSize=`${o}px 100%`,n?.cancel(),n=t.animate([{backgroundPosition:`0px center`},{backgroundPosition:`${o}px center`}],{duration:Ie,easing:`linear`,iterations:1/0}),n.startTime=0};r();let o=typeof ResizeObserver>`u`?void 0:new ResizeObserver(r);return o?.observe(t),()=>{o?.disconnect(),n?.cancel()}},[e,a]);let c=Math.min(e.length*V,H);return(0,T.jsx)(`span`,{ref:i,className:n,style:{position:`relative`,display:`inline-block`,backgroundImage:s,backgroundRepeat:`repeat-x`,backgroundSize:`100% 100%`,backgroundColor:`var(--gs-base)`,WebkitBackgroundClip:`text`,backgroundClip:`text`,WebkitTextFillColor:`transparent`,"--gs-base":Fe,"--gs-spread":`${c}px`,"--gs-spread-mid":`${c*U}px`},"data-testid":r,children:e})}var Be=400;function Ve(e,t,n){let[r,i]=(0,w.useState)(e),a=(0,w.useRef)(null),o=(0,w.useRef)(null),s=(0,w.useRef)(null);return(0,w.useEffect)(()=>{if(Object.is(r,e)){o.current=null;return}if(n){s.current&&=(clearTimeout(s.current),null),o.current=null,i(e),a.current=Date.now();return}o.current=e;let c=Date.now();a.current===null&&(a.current=c);let l=c-a.current,u=Math.max(0,t-l);return s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{o.current!==null&&(i(o.current),a.current=Date.now(),o.current=null),s.current=null},u),()=>{s.current&&=(clearTimeout(s.current),null)}},[e,r,t,n]),r}function He({currentStepTitle:e,currentStepInfo:t,bypassDwell:n=!1,animationKey:r,shimmer:a=!1,inline:o=!1}){let s=S(),c=Ve((0,w.useMemo)(()=>({title:e,info:t}),[e,t]),Be,n),l=s?{duration:0}:{duration:.25,ease:[.16,1,.3,1]},u=s?{opacity:0}:{y:-16,opacity:0},d=s?{opacity:1}:{y:0,opacity:1},f=s?{opacity:0}:{y:16,opacity:0},p=typeof c.info==`string`||typeof c.info==`number`,m=p?String(c.info):c.info==null?``:`node`,h=r??`${c.title}::${m}`,g=p?c.info!==``:c.info!=null,_=c.title.trim()!==``,v=g?`block min-w-0`:`block min-w-0 flex-1`;return(0,T.jsx)(re,{initial:!1,mode:`popLayout`,children:(0,T.jsxs)(ne.span,{initial:u,animate:d,exit:f,transition:l,className:`flex min-w-0 flex-1 items-center gap-1`,children:[_?o?(0,T.jsx)(`span`,{className:`${v} truncate text-left text-[13px] font-medium leading-[16px] text-[var(--content-secondary)]`,children:a?(0,T.jsx)(G,{children:c.title}):c.title}):(0,T.jsx)(i,{variant:`body-medium-default`,className:`ml-1 ${v} truncate text-left text-[var(--content-emphasised)]`,children:a?(0,T.jsx)(G,{children:c.title}):c.title}):null,g?(0,T.jsxs)(T.Fragment,{children:[_?(0,T.jsx)(`span`,{"aria-hidden":`true`,className:`ml-1 h-3.5 w-px shrink-0 bg-[var(--border-element)]`}):null,p?o&&!_?(0,T.jsx)(`span`,{className:`block min-w-0 flex-1 truncate text-left text-[13px] font-medium leading-[16px] text-[var(--content-secondary)]`,children:a&&typeof c.info==`string`?(0,T.jsx)(G,{children:c.info}):c.info}):(0,T.jsx)(i,{variant:_?`body-small-default`:`body-medium-default`,className:`ml-1 block min-w-0 flex-1 truncate text-left leading-[16px] ${_?`text-[var(--content-tertiary)]`:`text-[var(--content-emphasised)]`}`,children:a&&!_&&typeof c.info==`string`?(0,T.jsx)(G,{children:c.info}):c.info}):(0,T.jsx)(`span`,{className:`ml-1 block min-w-0 flex-1`,children:c.info})]}):null]},h)})}var K={code:m,terminal:o,file:h,globe:g,pen:u,monitor:_,plug:a,sparkle:v,"user-plus":ee,bolt:s,brain:d};function Ue(e){if(e.kind===`thinking`)return`Thinking`;if(e.kind===`web_search`||e.kind===`web_search_error`)return`Searching the web`;if(e.kind===`tool_error`)return`Error`;let t=e.title;return t.startsWith(`Working`)?t:t===`Reading`||t===`Editing`||t.startsWith(`Running`)?`Working`:t===`Using a skill`?`Using a skill`:(t.startsWith(`Using `),t)}function We(e){if(!e||e===`<1s`)return 0;let t=/^(\d+)(s|m|h)$/.exec(e);if(!t)return 0;let n=Number(t[1]);switch(t[2]){case`h`:return n*36e5;case`m`:return n*6e4;default:return n*1e3}}function Ge(e){let t=null;for(let n of e)(n.kind===`tool`||n.kind===`thinking`)&&n.startedAt!=null&&(t=t==null?n.startedAt:Math.min(t,n.startedAt));return t}function Ke(e){return new Date(e).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`,second:`2-digit`})}function qe({durationLabel:e,startedAt:t}){let r=(0,T.jsx)(i,{variant:`label-medium-default`,className:`text-[var(--content-tertiary)]`,children:e});return t==null?r:(0,T.jsx)(n,{content:`Started at ${Ke(t)}`,side:`top`,align:`end`,children:(0,T.jsx)(`span`,{className:`cursor-default`,children:r})})}function q(e){let t=0,n=!1;for(let r of e)r&&(n=!0,t+=We(r));return n?k(t):``}function J(e){if(e.length===0)return`running`;for(let t of e){if(t.kind===`tool`){if(t.status===`running`)return`running`;continue}if(t.kind===`web_search`&&t.title===`Searching the web`)return`running`}return`completed`}function Y(e){let t=[];for(let n of e){let e=Ue(n),r=t[t.length-1];r&&r.label===e?r.steps.push(n):t.push({label:e,steps:[n]})}return t}function Je({steps:e,renderStep:t,timeline:n=!1}){if(e.length===0)return null;let r=Y(e),i=[],a=0;for(let e of r)i.push(a),a+=e.steps.length;let o=(e,n)=>e.steps.map((e,r)=>{let i=$e(e,n+r);return(0,T.jsx)(w.Fragment,{children:t?t(e):(0,T.jsx)(tt,{step:e})},i)});return n?(0,T.jsx)(`div`,{className:`flex w-full flex-col`,children:r.map((e,t)=>(0,T.jsx)(Ye,{section:e,baseIndex:i[t],isLast:t===r.length-1,renderSectionSteps:o},`${e.label}-${t}`))}):(0,T.jsx)(`div`,{className:`flex w-full flex-col gap-3`,children:r.map((e,t)=>{let n=q(e.steps.map(e=>`durationLabel`in e?e.durationLabel:``)),r=J(e.steps),a=i[t];return(0,T.jsxs)(`div`,{"data-testid":`phase-section`,"data-phase-label":e.label,className:`flex flex-col gap-1`,children:[(0,T.jsx)(et,{label:e.label,durationLabel:n,status:r}),(0,T.jsx)(`div`,{className:`flex min-w-0 flex-col items-start gap-1 pl-[24px]`,children:o(e,a)})]},`${e.label}-${t}`)})})}function Ye({section:e,baseIndex:t,isLast:n,renderSectionSteps:r}){let a=q(e.steps.map(e=>`durationLabel`in e?e.durationLabel:``)),o=J(e.steps),s=e.steps[0]?.kind===`thinking`;return(0,T.jsxs)(`div`,{"data-testid":`phase-section`,"data-phase-label":e.label,className:`relative flex flex-col gap-2`,children:[!n&&(0,T.jsx)(Xe,{}),(0,T.jsxs)(`div`,{"data-testid":`phase-header`,className:`flex items-center justify-between gap-2 py-[2px]`,children:[(0,T.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,T.jsx)(Ze,{status:o,isThinking:s}),(0,T.jsx)(i,{variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:e.label})]}),a?(0,T.jsx)(qe,{durationLabel:a,startedAt:Ge(e.steps)}):null]}),(0,T.jsx)(`div`,{className:x(`flex min-w-0 flex-col items-start gap-1 pl-[22px]`,!n&&`pb-3`),children:r(e,t)})]})}function Xe({className:e}){return(0,T.jsx)(`div`,{"aria-hidden":!0,className:x(`absolute bottom-0 left-[6.5px] top-6 w-px bg-[var(--border-subtle)]`,e)})}function Ze({status:e,isThinking:t}){return t?(0,T.jsx)(d,{"aria-hidden":`true`,"data-testid":`phase-header-status-icon`,"data-status":`thinking`,className:`h-[14px] w-[14px] shrink-0 text-[var(--content-secondary)]`}):(0,T.jsx)(Qe,{status:e,testId:`phase-header-status-icon`})}function Qe({status:e,testId:t}){return e===`completed`?(0,T.jsx)(p,{"aria-hidden":`true`,"data-testid":t,"data-status":`completed`,className:`h-[14px] w-[14px] shrink-0 text-[var(--system-positive-strong)]`}):(0,T.jsx)(C,{"data-testid":t,className:`shrink-0`})}function $e(e,t){return e.kind===`tool`&&e.toolCallId?e.toolCallId:`${e.kind}-${t}`}function et({label:e,durationLabel:t,status:n}){return(0,T.jsxs)(`div`,{"data-testid":`phase-header`,className:`flex items-center justify-between py-[2px]`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-1`,children:[n===`completed`?(0,T.jsx)(f,{"aria-hidden":`true`,"data-testid":`phase-header-status-icon`,"data-status":`completed`,className:`h-[14px] w-[14px] text-[var(--system-positive-strong)]`}):(0,T.jsx)(C,{"data-testid":`phase-header-status-icon`,className:`shrink-0`}),(0,T.jsx)(i,{variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:e})]}),t?(0,T.jsx)(i,{variant:`label-medium-default`,className:`text-[var(--content-tertiary)]`,children:t}):null]})}function X(e){switch(e.kind){case`thinking`:return!0;case`tool`:return e.info.length>0;case`tool_error`:case`web_search_error`:case`web_search`:return!0}}function tt({step:e}){if(e.kind===`thinking`)return(0,T.jsx)(Q,{children:(0,T.jsx)(Z,{children:E(e.text)})});if(e.kind===`tool`){let t=K[e.iconName]??s;return X(e)?(0,T.jsxs)(Q,{children:[(0,T.jsx)(t,{"aria-hidden":`true`,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-secondary)]`}),(0,T.jsx)(Z,{children:e.info})]}):null}return e.kind===`tool_error`?(0,T.jsx)(Q,{children:(0,T.jsx)(Z,{children:e.message})}):e.kind===`web_search_error`?(0,T.jsx)(Q,{children:(0,T.jsx)(Z,{children:e.errorMessage})}):(0,T.jsx)(Q,{children:(0,T.jsx)(Z,{children:e.title})})}function Z({children:e}){return(0,T.jsx)(i,{variant:`body-small-default`,className:`min-w-0 truncate text-inherit`,children:e})}function Q({children:e}){return(0,T.jsx)(`div`,{"data-testid":`phase-step-pill`,className:`inline-flex min-w-0 max-w-full items-center gap-1 self-start rounded-full border border-[var(--border-element)] bg-transparent px-2 py-1 text-[var(--content-default)]`,children:e})}var $=`inline-flex min-w-0 items-center gap-1 self-start rounded-full px-2 py-1 text-left leading-normal`,nt=`transition-colors cursor-pointer focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,rt=`bg-[var(--surface-overlay)] text-[var(--content-default)]`;function it({faviconUrl:e,domain:t,label:n}){let[r,i]=(0,w.useState)(!1),a=!!e&&!r,o=(t&&t.length>0?t:n).charAt(0).toUpperCase();return(0,T.jsx)(`span`,{"aria-hidden":`true`,className:`inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center overflow-hidden rounded-[var(--radius-sm)]`,children:a?(0,T.jsx)(`img`,{src:e,alt:``,loading:`lazy`,referrerPolicy:`no-referrer`,className:`h-full w-full object-contain`,onError:()=>i(!0)}):(0,T.jsx)(`span`,{className:`text-[10px] font-medium leading-none text-[var(--content-tertiary)]`,children:o})})}function at({label:e,url:t,faviconUrl:n,domain:r,ariaLabel:a}){return(0,T.jsxs)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,"data-testid":`tool-step-pill`,"data-variant":`web`,"aria-label":a??`Open ${e}`,className:`${$} ${nt} max-w-[240px] no-underline hover:bg-[var(--surface-active)] ${rt}`,children:[(0,T.jsx)(it,{faviconUrl:n,domain:r,label:e}),(0,T.jsx)(i,{variant:`body-small-default`,className:`min-w-0 truncate text-inherit leading-normal`,children:e})]})}function ot(e){if(e.variant===`web`)return(0,T.jsx)(at,{...e});let{iconName:t,label:n,onClick:r,active:a=!1,ariaLabel:o}=e,c=a?`bg-[var(--surface-active)] text-[var(--content-default)]`:rt,l=(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(K[t]??s,{"aria-hidden":`true`,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,T.jsx)(i,{variant:`body-small-default`,className:`min-w-0 truncate text-inherit leading-normal`,children:n})]});return r?(0,T.jsx)(`button`,{type:`button`,"data-testid":`tool-step-pill`,"data-active":a?``:void 0,"aria-pressed":a,"aria-label":o??`View details: ${n}`,onClick:r,className:`${$} ${nt} max-w-full hover:bg-[var(--surface-active)] ${c}`,children:l}):(0,T.jsx)(`span`,{"data-testid":`tool-step-pill`,className:`${$} max-w-full ${c}`,children:l})}function st(e){let t=(e.domain&&e.domain.length>0?e.domain:e.title).charAt(0);return t?t.toUpperCase():``}function ct({item:e}){let[t,n]=(0,w.useState)(!1),r=!!e.faviconUrl&&!t;return(0,T.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-2 rounded-[var(--radius-md)] px-2 py-1.5 hover:bg-[var(--surface-hover)]`,children:[(0,T.jsx)(`span`,{"aria-hidden":`true`,className:`inline-flex h-[14px] w-[14px] shrink-0 items-center justify-center overflow-hidden rounded-[var(--radius-sm)] bg-[var(--surface-overlay)]`,children:r?(0,T.jsx)(`img`,{src:e.faviconUrl,alt:``,loading:`lazy`,referrerPolicy:`no-referrer`,className:`h-full w-full object-contain`,onError:()=>n(!0)}):(0,T.jsx)(`span`,{className:`text-[10px] font-medium leading-none text-[var(--content-default)]`,children:st(e)})}),(0,T.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,T.jsx)(i,{variant:`body-small-default`,className:`truncate text-[var(--content-default)]`,children:e.title}),(0,T.jsx)(i,{variant:`body-small-default`,className:`truncate text-[var(--content-secondary)]`,children:e.domain})]})]})}function lt({results:e}){return(0,T.jsxs)(y.Root,{children:[(0,T.jsx)(y.Trigger,{asChild:!0,children:(0,T.jsx)(`button`,{type:`button`,"data-testid":`web-search-overflow-chip`,className:`inline-flex min-h-[26px] cursor-pointer items-center rounded-[var(--radius-pill)] bg-[var(--surface-base)] px-[10px] py-[6px] outline-none hover:bg-[var(--surface-hover)] focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:(0,T.jsxs)(i,{variant:`body-small-default`,className:`text-[var(--content-default)]`,children:[`+`,e.length,` more`]})})}),(0,T.jsx)(y.Content,{align:`start`,side:`bottom`,className:`flex max-h-[260px] w-[280px] flex-col gap-0.5 overflow-y-auto`,children:e.map(e=>(0,T.jsx)(ct,{item:e},e.rank))})]})}function ut({message:e}){return(0,T.jsx)(`div`,{"data-testid":`web-search-error-chip`,className:`inline-flex items-center gap-1 rounded-[var(--radius-pill)] border border-[var(--border-element)] bg-transparent px-[10px] py-[6px]`,children:(0,T.jsx)(i,{variant:`body-small-default`,className:`text-[var(--content-default)]`,children:e})})}function dt({step:e}){let t=e.overflowResults??[];return(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[(e.results??[]).map(e=>(0,T.jsx)(ot,{variant:`web`,url:e.url,faviconUrl:e.faviconUrl,domain:e.domain,label:e.title},e.rank)),t.length>0?(0,T.jsx)(lt,{results:t}):null]})}function ft({step:e}){return(0,T.jsx)(ut,{message:e.errorMessage})}function pt({faviconUrl:e,domain:t,title:n,className:r}){let[i,a]=(0,w.useState)(!1);(0,w.useEffect)(()=>{a(!1)},[e]);let o=!!e&&!i,s=(t&&t.length>0?t:n).charAt(0).toUpperCase();return(0,T.jsx)(`span`,{"aria-hidden":`true`,"data-testid":`site-favicon`,className:x(`inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center overflow-hidden rounded-[var(--radius-sm)]`,r),children:o?(0,T.jsx)(`img`,{src:e,alt:``,loading:`lazy`,referrerPolicy:`no-referrer`,className:`h-full w-full object-contain`,onError:()=>a(!0)}):(0,T.jsx)(`span`,{className:`text-[10px] font-medium leading-none text-[var(--content-tertiary)]`,children:s})})}export{O as C,D as S,de as _,tt as a,be as b,Xe as c,J as d,$e as f,G as g,He as h,ot as i,Ze as l,q as m,ft as n,K as o,X as p,dt as r,Je as s,pt as t,Y as u,Ae as v,E as w,Se as x,k as y};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./button-BwFudwM5.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-DEI9Ra9z.js";import{C as a,S as o,T as s,o as c,s as l,w as u}from"./message-content-B6_GZQl9.js";import{t as d}from"./brain-CN4zzNgU.js";import{t as f}from"./check-Dt2rQhdg.js";import{t as p}from"./circle-check-DvrCdroD.js";import{t as m}from"./code-D6SOwRrI.js";import"./src-CwGlaCIx.js";import{t as h}from"./file-text-CwGsMgaa.js";import{t as g}from"./globe-CdLn4IX7.js";import{t as _}from"./monitor-RX4oi4Nj.js";import{t as v}from"./sparkles-DfEFn3Bh.js";import{t as ee}from"./user-plus-DjxxnQ8G.js";import{t as y}from"./popover-CBYgK7Wt.js";import{D as b,O as te}from"./chat-Dy2BC2i1.js";import{t as x}from"./misc-BBsGq1IU.js";import{t as ne}from"./proxy-DrtKRLtr.js";import{t as re}from"./AnimatePresence-CHo6D7IH.js";import{t as S}from"./use-reduced-motion-fR0m_opJ.js";import{t as C}from"./three-dot-indicator-CeTxs9-J.js";var w=e(t(),1),T=r();function E(e){let t=e.trimStart();if(!t.startsWith(`**`))return e;let n=t.indexOf(`**`,2);if(n===-1)return t.slice(2).trimStart();let r=t.slice(2,n).trim();return r.length>0?r:e}var ie=/^https?:\/\/\S+/,ae=/^URL:\s*(https?:\/\/\S+)/i,oe=/^\[\d+\]\s*(https?:\/\/\S+)/;function D(e){try{return new URL(e).hostname.replace(/^www\./,``)}catch{return``}}function se(e){let t=e.trim();return ae.exec(t)?.[1]??oe.exec(t)?.[1]??t}function ce(e){return e.trim().replace(/^\d+\.\s+/,``)}function le(e){let t=e.split(/\r?\n/),n=[],r=new Set,i=``;for(let e of t){let t=e.trim();if(!t){i=``;continue}let a=se(t);if(ie.test(a)){r.has(a)||(r.add(a),n.push({title:i,url:a})),i=``;continue}/^Web search results for /i.test(t)||/^Sources:?$/i.test(t)||(i=ce(t))}return n}function O(e){return!e||!e.trim()?[]:le(e).map((e,t)=>{let n=D(e.url);return{rank:t+1,title:e.title,url:e.url,domain:n}})}var ue=5,de=new Set([`web_search`,`web_fetch`]);function k(e){if(!Number.isFinite(e)||e<1e3)return`<1s`;let t=Math.round(e/1e3);if(t<60)return`${t}s`;let n=Math.round(t/60);return n<60?`${n}m`:`${Math.round(n/60)}h`}function A(e){return de.has(e.name)}function j(e){return e?`Searched the web`:`Searching the web`}function M(e){return{visible:e.slice(0,ue),overflowResults:e.slice(ue)}}function fe(e,t){let{visible:n,overflowResults:r}=M(e.results);return{kind:`web_search`,title:j(t),durationLabel:k(e.durationMs),linkCount:e.resultCount,results:n,overflowResults:r}}function pe(e){let t=e.title??e.domain;return{kind:`thinking`,durationLabel:k(e.durationMs),text:`Reading ${t}`}}function me(){return{kind:`web_search`,title:`Searching the web`,durationLabel:``,linkCount:0,results:[]}}function he(){return{kind:`thinking`,durationLabel:``,text:`Reading…`}}function ge(e){let t=O(e);if(t.length===0)return null;let{visible:n,overflowResults:r}=M(t);return{kind:`web_search`,title:j(!0),durationLabel:``,linkCount:t.length,results:n,overflowResults:r}}function _e(e){return{kind:`web_search_error`,title:`Web search failed`,durationLabel:k(e.durationMs),errorMessage:e.errorMessage??`Search is having trouble right now. You can try again in a moment, continue without web search, or paste the relevant details here and I'll use those.`}}function N(){return{kind:`web_search`,title:j(!0),durationLabel:``,linkCount:0,results:[]}}function P(e,t){return t[e.id]??e.activityMetadata}function F(e){return!b(e)}function I(e,t){return e.results.length>0?!1:!!e.errorMessage||!!t.isError}function L(e){return e.confirmationDecision===`denied`||e.confirmationDecision===`timed_out`?`denied`:e.isError?`error`:b(e)?`running`:`completed`}function R(e,t){return e==null||t==null?null:Math.max(0,t-e)}function z(e,t){let n=R(e,t);return n==null?``:k(n)}function B(e){return z(e.startedAt??void 0,e.completedAt??void 0)}function ve(e){return!c(e)&&b(e)}function ye(e,t){if(e.kind===`thinking`)return e.text?e.completedAt==null?e.startedAt!=null&&t!=null?Math.max(0,t-e.startedAt):null:R(e.startedAt,e.completedAt):null;let n=e.toolCall;if(c(n))return null;let r=te(n);return n.completedAt==null?b(n)&&r!=null&&t!=null?Math.max(0,t-r):null:R(r,n.completedAt)}function be(e){return e.some(e=>e.kind===`thinking`?!!e.text&&e.startedAt!=null&&e.completedAt==null:ve(e.toolCall))}function xe(e,t){let n=0,r=!1;for(let i of e){let e=ye(i,t);e!=null&&(r=!0,n+=e)}return r?k(n):``}function Se(e){let{title:t,activity:n}=l(e);return{toolCallId:e.id,toolName:e.name,title:t,activity:n,input:e.input??{},result:e.result,streamedOutput:e.streamedOutput,status:L(e),riskLevel:e.riskLevel,riskReason:e.riskReason,durationLabel:B(e)}}function Ce(e){let{title:t,info:n,activity:r,iconName:i}=l(e);return{kind:`tool`,durationLabel:B(e),startedAt:e.startedAt??void 0,title:t,info:n,activity:r,riskLevel:e.riskLevel,iconName:i,toolCallId:e.id,status:L(e)}}function we(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(A(r)){let e=P(r,t),n=F(r);if(e?.webSearch&&I(e.webSearch,r))return`Web search failed`;if(r.name===`web_search`)return j(n);if(r.name===`web_fetch`)return`Thinking`}else return l(r).title}return``}function Te(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(!A(r)){let{info:e,activity:t}=l(r);return t||e}let i=P(r,t),a=F(r);if(i?.webSearch){let e=i.webSearch;if(I(e,r))return e.errorMessage??`Search is having trouble right now. You can try again in a moment, continue without web search, or paste the relevant details here and I'll use those.`;if(e.results.length>0)return e.results[e.results.length-1].title;if(!a&&e.query)return`Searching ${e.query}`}if(i?.webFetch){let e=i.webFetch;return a?e.title??e.domain:`Reading ${e.domain}`}if(r.name===`web_search`){if(!a){let e=typeof r.input?.query==`string`?r.input.query.trim():``;return e?`Searching ${e}`:``}if(typeof r.result==`string`){let e=O(r.result);if(e.length>0){let t=e[e.length-1].title;if(t)return t}}}if(r.name===`web_fetch`){let e=typeof r.input?.url==`string`?r.input.url:``,t=e?D(e):``;if(t)return a?t:`Reading ${t}`}}return``}function Ee(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.name!==`web_search`)continue;let i=P(r,t)?.webSearch?.results;if(i&&i.length>0)return i}return[]}function De(e){return e.includes(`denied`)?`denied`:e.includes(`loading`)?`loading`:e.includes(`error`)?`error`:`complete`}function Oe(e){return De(e.map(e=>e.confirmationDecision===`denied`||e.confirmationDecision===`timed_out`?`denied`:b(e)?`loading`:e.isError?`error`:`complete`))}function ke(e,t){if(c(e))return null;if(!A(e))return Ce(e);let n=P(e,t),r=F(e);if(n?.webSearch){let t=n.webSearch;return I(t,e)?_e(t):fe(t,r)}return n?.webFetch?pe(n.webFetch):r?e.name===`web_search`&&typeof e.result==`string`?ge(e.result)??N():N():e.name===`web_search`?me():he()}function Ae(e,t,n){let r=e.filter(e=>e.kind===`toolCall`).map(e=>e.toolCall).filter(e=>!c(e)),i=[],a=null,o=0;for(let n of e){if(n.kind===`thinking`){n.text&&(i.push({kind:`thinking`,durationLabel:z(n.startedAt,n.completedAt),text:n.text,startedAt:n.startedAt,completedAt:n.completedAt,thinkingItemIndex:o++}),a=n.text);continue}let e=ke(n.toolCall,t);e&&(i.push(e),a=null)}let s=Oe(r),l,u,d;a===null?(l=we(r,t),u=Te(r,t),d=`tool`):(l=`Thinking`,u=E(a),d=`thinking`);let f=Ee(r,t),p=`${i.length} step${i.length===1?``:`s`}`,m=xe(e,n);return{currentStepTitle:l,currentStepInfo:u,currentStepKind:d,stepCount:p,totalDurationLabel:m,steps:i,state:s,carouselItems:f}}var je=.44;function Me(e,t){let n=[...e].sort((e,t)=>e.position-t.position),r=n[0]?.color??`white`,i=n[n.length-1]?.color??`white`,a=n.map(e=>{let t=(e.position-.5)*2*je;return`${e.color} calc(50% + var(--gs-spread-mid) * ${t.toFixed(4)})`}).join(`, `);return[`linear-gradient(${t}deg`,`var(--gs-base) calc(50% - var(--gs-spread))`,`color-mix(in oklab, var(--gs-base) 42%, ${r}) calc(50% - var(--gs-spread-mid))`,a,`color-mix(in oklab, var(--gs-base) 42%, ${i}) calc(50% + var(--gs-spread-mid))`,`var(--gs-base) calc(50% + var(--gs-spread)))`].join(`, `)}function Ne(e){let t=`color-mix(in srgb, ${e} 40%, white)`;return[{position:0,color:t},{position:.5,color:e},{position:1,color:t}]}var Pe=`var(--avatar-accent, var(--content-emphasised))`,Fe=`color-mix(in srgb, currentColor 45%, transparent)`,Ie=1500,Le=106,V=6,H=48,U=.72,W=14,Re=96;function ze(){return typeof CSS>`u`||typeof CSS.supports!=`function`?!1:CSS.supports(`background-clip`,`text`)||CSS.supports(`-webkit-background-clip`,`text`)}function G({children:e,colorHex:t,className:n,"data-testid":r}){let i=(0,w.useRef)(null),a=S(),o=t??Pe,s=(0,w.useMemo)(()=>Me(Ne(o),Le),[o]);(0,w.useLayoutEffect)(()=>{let t=i.current;if(!t)return;if(!ze()){t.style.removeProperty(`background-image`),t.style.removeProperty(`background-color`),t.style.removeProperty(`-webkit-text-fill-color`);return}if(a||typeof t.animate!=`function`)return;let n=null,r=()=>{let r=t.getBoundingClientRect().width||Re,i=(Number.parseFloat(getComputedStyle(t).fontSize)||W)/W,a=Math.min(e.length*V*i,H*i),o=Math.max(1,r+a*2);t.style.setProperty(`--gs-spread`,`${a}px`),t.style.setProperty(`--gs-spread-mid`,`${a*U}px`),t.style.backgroundSize=`${o}px 100%`,n?.cancel(),n=t.animate([{backgroundPosition:`0px center`},{backgroundPosition:`${o}px center`}],{duration:Ie,easing:`linear`,iterations:1/0}),n.startTime=0};r();let o=typeof ResizeObserver>`u`?void 0:new ResizeObserver(r);return o?.observe(t),()=>{o?.disconnect(),n?.cancel()}},[e,a]);let c=Math.min(e.length*V,H);return(0,T.jsx)(`span`,{ref:i,className:n,style:{position:`relative`,display:`inline-block`,backgroundImage:s,backgroundRepeat:`repeat-x`,backgroundSize:`100% 100%`,backgroundColor:`var(--gs-base)`,WebkitBackgroundClip:`text`,backgroundClip:`text`,WebkitTextFillColor:`transparent`,"--gs-base":Fe,"--gs-spread":`${c}px`,"--gs-spread-mid":`${c*U}px`},"data-testid":r,children:e})}var Be=400;function Ve(e,t,n){let[r,i]=(0,w.useState)(e),a=(0,w.useRef)(null),o=(0,w.useRef)(null),s=(0,w.useRef)(null);return(0,w.useEffect)(()=>{if(Object.is(r,e)){o.current=null;return}if(n){s.current&&=(clearTimeout(s.current),null),o.current=null,i(e),a.current=Date.now();return}o.current=e;let c=Date.now();a.current===null&&(a.current=c);let l=c-a.current,u=Math.max(0,t-l);return s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{o.current!==null&&(i(o.current),a.current=Date.now(),o.current=null),s.current=null},u),()=>{s.current&&=(clearTimeout(s.current),null)}},[e,r,t,n]),r}function He({currentStepTitle:e,currentStepInfo:t,bypassDwell:n=!1,animationKey:r,shimmer:a=!1,inline:o=!1}){let s=S(),c=Ve((0,w.useMemo)(()=>({title:e,info:t}),[e,t]),Be,n),l=s?{duration:0}:{duration:.25,ease:[.16,1,.3,1]},u=s?{opacity:0}:{y:-16,opacity:0},d=s?{opacity:1}:{y:0,opacity:1},f=s?{opacity:0}:{y:16,opacity:0},p=typeof c.info==`string`||typeof c.info==`number`,m=p?String(c.info):c.info==null?``:`node`,h=r??`${c.title}::${m}`,g=p?c.info!==``:c.info!=null,_=c.title.trim()!==``,v=g?`block min-w-0`:`block min-w-0 flex-1`;return(0,T.jsx)(re,{initial:!1,mode:`popLayout`,children:(0,T.jsxs)(ne.span,{initial:u,animate:d,exit:f,transition:l,className:`flex min-w-0 flex-1 items-center gap-1`,children:[_?o?(0,T.jsx)(`span`,{className:`${v} truncate text-left text-[13px] font-medium leading-[16px] text-[var(--content-secondary)]`,children:a?(0,T.jsx)(G,{children:c.title}):c.title}):(0,T.jsx)(i,{variant:`body-medium-default`,className:`ml-1 ${v} truncate text-left text-[var(--content-emphasised)]`,children:a?(0,T.jsx)(G,{children:c.title}):c.title}):null,g?(0,T.jsxs)(T.Fragment,{children:[_?(0,T.jsx)(`span`,{"aria-hidden":`true`,className:`ml-1 h-3.5 w-px shrink-0 bg-[var(--border-element)]`}):null,p?o&&!_?(0,T.jsx)(`span`,{className:`block min-w-0 flex-1 truncate text-left text-[13px] font-medium leading-[16px] text-[var(--content-secondary)]`,children:a&&typeof c.info==`string`?(0,T.jsx)(G,{children:c.info}):c.info}):(0,T.jsx)(i,{variant:_?`body-small-default`:`body-medium-default`,className:`ml-1 block min-w-0 flex-1 truncate text-left leading-[16px] ${_?`text-[var(--content-tertiary)]`:`text-[var(--content-emphasised)]`}`,children:a&&!_&&typeof c.info==`string`?(0,T.jsx)(G,{children:c.info}):c.info}):(0,T.jsx)(`span`,{className:`ml-1 block min-w-0 flex-1`,children:c.info})]}):null]},h)})}var K={code:m,terminal:o,file:h,globe:g,pen:u,monitor:_,plug:a,sparkle:v,"user-plus":ee,bolt:s,brain:d};function Ue(e){if(e.kind===`thinking`)return`Thinking`;if(e.kind===`web_search`||e.kind===`web_search_error`)return`Searching the web`;if(e.kind===`tool_error`)return`Error`;let t=e.title;return t.startsWith(`Working`)?t:t===`Reading`||t===`Editing`||t.startsWith(`Running`)?`Working`:t===`Using a skill`?`Using a skill`:(t.startsWith(`Using `),t)}function We(e){if(!e||e===`<1s`)return 0;let t=/^(\d+)(s|m|h)$/.exec(e);if(!t)return 0;let n=Number(t[1]);switch(t[2]){case`h`:return n*36e5;case`m`:return n*6e4;default:return n*1e3}}function Ge(e){let t=null;for(let n of e)(n.kind===`tool`||n.kind===`thinking`)&&n.startedAt!=null&&(t=t==null?n.startedAt:Math.min(t,n.startedAt));return t}function Ke(e){return new Date(e).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`,second:`2-digit`})}function qe({durationLabel:e,startedAt:t}){let r=(0,T.jsx)(i,{variant:`label-medium-default`,className:`text-[var(--content-tertiary)]`,children:e});return t==null?r:(0,T.jsx)(n,{content:`Started at ${Ke(t)}`,side:`top`,align:`end`,children:(0,T.jsx)(`span`,{className:`cursor-default`,children:r})})}function q(e){let t=0,n=!1;for(let r of e)r&&(n=!0,t+=We(r));return n?k(t):``}function J(e){if(e.length===0)return`running`;for(let t of e){if(t.kind===`tool`){if(t.status===`running`)return`running`;continue}if(t.kind===`web_search`&&t.title===`Searching the web`)return`running`}return`completed`}function Y(e){let t=[];for(let n of e){let e=Ue(n),r=t[t.length-1];r&&r.label===e?r.steps.push(n):t.push({label:e,steps:[n]})}return t}function Je({steps:e,renderStep:t,timeline:n=!1}){if(e.length===0)return null;let r=Y(e),i=[],a=0;for(let e of r)i.push(a),a+=e.steps.length;let o=(e,n)=>e.steps.map((e,r)=>{let i=$e(e,n+r);return(0,T.jsx)(w.Fragment,{children:t?t(e):(0,T.jsx)(tt,{step:e})},i)});return n?(0,T.jsx)(`div`,{className:`flex w-full flex-col`,children:r.map((e,t)=>(0,T.jsx)(Ye,{section:e,baseIndex:i[t],isLast:t===r.length-1,renderSectionSteps:o},`${e.label}-${t}`))}):(0,T.jsx)(`div`,{className:`flex w-full flex-col gap-3`,children:r.map((e,t)=>{let n=q(e.steps.map(e=>`durationLabel`in e?e.durationLabel:``)),r=J(e.steps),a=i[t];return(0,T.jsxs)(`div`,{"data-testid":`phase-section`,"data-phase-label":e.label,className:`flex flex-col gap-1`,children:[(0,T.jsx)(et,{label:e.label,durationLabel:n,status:r}),(0,T.jsx)(`div`,{className:`flex min-w-0 flex-col items-start gap-1 pl-[24px]`,children:o(e,a)})]},`${e.label}-${t}`)})})}function Ye({section:e,baseIndex:t,isLast:n,renderSectionSteps:r}){let a=q(e.steps.map(e=>`durationLabel`in e?e.durationLabel:``)),o=J(e.steps),s=e.steps[0]?.kind===`thinking`;return(0,T.jsxs)(`div`,{"data-testid":`phase-section`,"data-phase-label":e.label,className:`relative flex flex-col gap-2`,children:[!n&&(0,T.jsx)(Xe,{}),(0,T.jsxs)(`div`,{"data-testid":`phase-header`,className:`flex items-center justify-between gap-2 py-[2px]`,children:[(0,T.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,T.jsx)(Ze,{status:o,isThinking:s}),(0,T.jsx)(i,{variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:e.label})]}),a?(0,T.jsx)(qe,{durationLabel:a,startedAt:Ge(e.steps)}):null]}),(0,T.jsx)(`div`,{className:x(`flex min-w-0 flex-col items-start gap-1 pl-[22px]`,!n&&`pb-3`),children:r(e,t)})]})}function Xe({className:e}){return(0,T.jsx)(`div`,{"aria-hidden":!0,className:x(`absolute bottom-0 left-[6.5px] top-6 w-px bg-[var(--border-subtle)]`,e)})}function Ze({status:e,isThinking:t}){return t?(0,T.jsx)(d,{"aria-hidden":`true`,"data-testid":`phase-header-status-icon`,"data-status":`thinking`,className:`h-[14px] w-[14px] shrink-0 text-[var(--content-secondary)]`}):(0,T.jsx)(Qe,{status:e,testId:`phase-header-status-icon`})}function Qe({status:e,testId:t}){return e===`completed`?(0,T.jsx)(p,{"aria-hidden":`true`,"data-testid":t,"data-status":`completed`,className:`h-[14px] w-[14px] shrink-0 text-[var(--system-positive-strong)]`}):(0,T.jsx)(C,{"data-testid":t,className:`shrink-0`})}function $e(e,t){return e.kind===`tool`&&e.toolCallId?e.toolCallId:`${e.kind}-${t}`}function et({label:e,durationLabel:t,status:n}){return(0,T.jsxs)(`div`,{"data-testid":`phase-header`,className:`flex items-center justify-between py-[2px]`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-1`,children:[n===`completed`?(0,T.jsx)(f,{"aria-hidden":`true`,"data-testid":`phase-header-status-icon`,"data-status":`completed`,className:`h-[14px] w-[14px] text-[var(--system-positive-strong)]`}):(0,T.jsx)(C,{"data-testid":`phase-header-status-icon`,className:`shrink-0`}),(0,T.jsx)(i,{variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:e})]}),t?(0,T.jsx)(i,{variant:`label-medium-default`,className:`text-[var(--content-tertiary)]`,children:t}):null]})}function X(e){switch(e.kind){case`thinking`:return!0;case`tool`:return e.info.length>0;case`tool_error`:case`web_search_error`:case`web_search`:return!0}}function tt({step:e}){if(e.kind===`thinking`)return(0,T.jsx)(Q,{children:(0,T.jsx)(Z,{children:E(e.text)})});if(e.kind===`tool`){let t=K[e.iconName]??s;return X(e)?(0,T.jsxs)(Q,{children:[(0,T.jsx)(t,{"aria-hidden":`true`,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-secondary)]`}),(0,T.jsx)(Z,{children:e.info})]}):null}return e.kind===`tool_error`?(0,T.jsx)(Q,{children:(0,T.jsx)(Z,{children:e.message})}):e.kind===`web_search_error`?(0,T.jsx)(Q,{children:(0,T.jsx)(Z,{children:e.errorMessage})}):(0,T.jsx)(Q,{children:(0,T.jsx)(Z,{children:e.title})})}function Z({children:e}){return(0,T.jsx)(i,{variant:`body-small-default`,className:`min-w-0 truncate text-inherit`,children:e})}function Q({children:e}){return(0,T.jsx)(`div`,{"data-testid":`phase-step-pill`,className:`inline-flex min-w-0 max-w-full items-center gap-1 self-start rounded-full border border-[var(--border-element)] bg-transparent px-2 py-1 text-[var(--content-default)]`,children:e})}var $=`inline-flex min-w-0 items-center gap-1 self-start rounded-full px-2 py-1 text-left leading-normal`,nt=`transition-colors cursor-pointer focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,rt=`bg-[var(--surface-overlay)] text-[var(--content-default)]`;function it({faviconUrl:e,domain:t,label:n}){let[r,i]=(0,w.useState)(!1),a=!!e&&!r,o=(t&&t.length>0?t:n).charAt(0).toUpperCase();return(0,T.jsx)(`span`,{"aria-hidden":`true`,className:`inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center overflow-hidden rounded-[var(--radius-sm)]`,children:a?(0,T.jsx)(`img`,{src:e,alt:``,loading:`lazy`,referrerPolicy:`no-referrer`,className:`h-full w-full object-contain`,onError:()=>i(!0)}):(0,T.jsx)(`span`,{className:`text-[10px] font-medium leading-none text-[var(--content-tertiary)]`,children:o})})}function at({label:e,url:t,faviconUrl:n,domain:r,ariaLabel:a}){return(0,T.jsxs)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,"data-testid":`tool-step-pill`,"data-variant":`web`,"aria-label":a??`Open ${e}`,className:`${$} ${nt} max-w-[240px] no-underline hover:bg-[var(--surface-active)] ${rt}`,children:[(0,T.jsx)(it,{faviconUrl:n,domain:r,label:e}),(0,T.jsx)(i,{variant:`body-small-default`,className:`min-w-0 truncate text-inherit leading-normal`,children:e})]})}function ot(e){if(e.variant===`web`)return(0,T.jsx)(at,{...e});let{iconName:t,label:n,onClick:r,active:a=!1,ariaLabel:o}=e,c=a?`bg-[var(--surface-active)] text-[var(--content-default)]`:rt,l=(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(K[t]??s,{"aria-hidden":`true`,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,T.jsx)(i,{variant:`body-small-default`,className:`min-w-0 truncate text-inherit leading-normal`,children:n})]});return r?(0,T.jsx)(`button`,{type:`button`,"data-testid":`tool-step-pill`,"data-active":a?``:void 0,"aria-pressed":a,"aria-label":o??`View details: ${n}`,onClick:r,className:`${$} ${nt} max-w-full hover:bg-[var(--surface-active)] ${c}`,children:l}):(0,T.jsx)(`span`,{"data-testid":`tool-step-pill`,className:`${$} max-w-full ${c}`,children:l})}function st(e){let t=(e.domain&&e.domain.length>0?e.domain:e.title).charAt(0);return t?t.toUpperCase():``}function ct({item:e}){let[t,n]=(0,w.useState)(!1),r=!!e.faviconUrl&&!t;return(0,T.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-2 rounded-[var(--radius-md)] px-2 py-1.5 hover:bg-[var(--surface-hover)]`,children:[(0,T.jsx)(`span`,{"aria-hidden":`true`,className:`inline-flex h-[14px] w-[14px] shrink-0 items-center justify-center overflow-hidden rounded-[var(--radius-sm)] bg-[var(--surface-overlay)]`,children:r?(0,T.jsx)(`img`,{src:e.faviconUrl,alt:``,loading:`lazy`,referrerPolicy:`no-referrer`,className:`h-full w-full object-contain`,onError:()=>n(!0)}):(0,T.jsx)(`span`,{className:`text-[10px] font-medium leading-none text-[var(--content-default)]`,children:st(e)})}),(0,T.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,T.jsx)(i,{variant:`body-small-default`,className:`truncate text-[var(--content-default)]`,children:e.title}),(0,T.jsx)(i,{variant:`body-small-default`,className:`truncate text-[var(--content-secondary)]`,children:e.domain})]})]})}function lt({results:e}){return(0,T.jsxs)(y.Root,{children:[(0,T.jsx)(y.Trigger,{asChild:!0,children:(0,T.jsx)(`button`,{type:`button`,"data-testid":`web-search-overflow-chip`,className:`inline-flex min-h-[26px] cursor-pointer items-center rounded-[var(--radius-pill)] bg-[var(--surface-base)] px-[10px] py-[6px] outline-none hover:bg-[var(--surface-hover)] focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:(0,T.jsxs)(i,{variant:`body-small-default`,className:`text-[var(--content-default)]`,children:[`+`,e.length,` more`]})})}),(0,T.jsx)(y.Content,{align:`start`,side:`bottom`,className:`flex max-h-[260px] w-[280px] flex-col gap-0.5 overflow-y-auto`,children:e.map(e=>(0,T.jsx)(ct,{item:e},e.rank))})]})}function ut({message:e}){return(0,T.jsx)(`div`,{"data-testid":`web-search-error-chip`,className:`inline-flex items-center gap-1 rounded-[var(--radius-pill)] border border-[var(--border-element)] bg-transparent px-[10px] py-[6px]`,children:(0,T.jsx)(i,{variant:`body-small-default`,className:`text-[var(--content-default)]`,children:e})})}function dt({step:e}){let t=e.overflowResults??[];return(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[(e.results??[]).map(e=>(0,T.jsx)(ot,{variant:`web`,url:e.url,faviconUrl:e.faviconUrl,domain:e.domain,label:e.title},e.rank)),t.length>0?(0,T.jsx)(lt,{results:t}):null]})}function ft({step:e}){return(0,T.jsx)(ut,{message:e.errorMessage})}function pt({faviconUrl:e,domain:t,title:n,className:r}){let[i,a]=(0,w.useState)(!1);(0,w.useEffect)(()=>{a(!1)},[e]);let o=!!e&&!i,s=(t&&t.length>0?t:n).charAt(0).toUpperCase();return(0,T.jsx)(`span`,{"aria-hidden":`true`,"data-testid":`site-favicon`,className:x(`inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center overflow-hidden rounded-[var(--radius-sm)]`,r),children:o?(0,T.jsx)(`img`,{src:e,alt:``,loading:`lazy`,referrerPolicy:`no-referrer`,className:`h-full w-full object-contain`,onError:()=>a(!0)}):(0,T.jsx)(`span`,{className:`text-[10px] font-medium leading-none text-[var(--content-tertiary)]`,children:s})})}export{O as C,D as S,de as _,tt as a,be as b,Xe as c,J as d,$e as f,G as g,He as h,ot as i,Ze as l,q as m,ft as n,K as o,X as p,dt as r,Je as s,pt as t,Y as u,Ae as v,E as w,Se as x,k as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-CqtAGHQu.js";import{t as n}from"./react-BFJW0bSv.js";import{F as r,t as i}from"./button-Dy5001j6.js";import{f as a,l as o,n as s,u as c}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as l}from"./QueryClientProvider-CMu7CkQU.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{t as d}from"./jsx-runtime-D3ZM-ToX.js";import{t as f}from"./card-DRIctGVs.js";import{t as p}from"./createLucideIcon-CAM1RhH8.js";import{t as m}from"./arrow-down-to-line-DMGjBlMw.js";import{t as h}from"./arrow-left-W84B6oJL.js";import{a as g,n as _,o as v,r as y,t as b}from"./use-skill-actions-B_tz3CI7.js";import{t as x}from"./chevron-down-BNidRDh1.js";import{t as S}from"./menu-wESJw6y3.js";import{t as C}from"./code-D6SOwRrI.js";import{P as w}from"./src-Da9g8qsW.js";import{t as T}from"./external-link-GPGZ1LGU.js";import{t as E}from"./eye-B_jBDDRn.js";import{t as D}from"./file-text-CwGsMgaa.js";import{t as O}from"./folder-_l8GIyQp.js";import{t as k}from"./loader-circle-DWWXcfTQ.js";import{t as A}from"./trash-2-DfVRfykB.js";import{t as j}from"./triangle-alert-D6bAGtMw.js";import{n as M,t as N}from"./file-markdown-DnVLY_b_.js";import{d as P}from"./routes-DrfnNoYS.js";import{St as F,un as I,wt as L}from"./react-query.gen-C7om930f.js";import{t as R}from"./open-workspace-file-CivxJWcw.js";import{n as ee}from"./use-is-mobile-MmHo-OM6.js";import{t as z}from"./use-active-assistant-id-JLsAfn3e.js";import{n as B,t as V}from"./use-skill-detail-files-DdWFIu5-.js";import{n as H,r as te,t as ne}from"./skills-CbF2uKXV.js";import{t as U}from"./use-edge-swipe-back-Dk2xXjh4.js";import{i as W,n as G,r as K,t as q}from"./file-editor-BfJR0ScX.js";var J=p(`search-x`,[[`path`,{d:`m13.5 8.5-5 5`,key:`1cs55j`}],[`path`,{d:`m8.5 8.5 5 5`,key:`a8mexj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`path`,{d:`m21 21-4.3-4.3`,key:`1qie3q`}]]),Y=e(n(),1),X=d();function re({assistantId:e,skill:t,onBack:n,onInstall:r,onRemove:a,isInstalling:o=!1,isRemoving:s=!1,sourceConversationId:c}){let l=y(t),u=H(t),{fileEntries:d,setSelectedPath:p,activePath:_,activeFile:b,isFilesLoading:x,fileContent:S,isBinary:C,isContentLoading:w}=V(e,t.id);return(0,X.jsxs)(`div`,{className:`flex h-[calc(100vh-14rem)] flex-col`,children:[(0,X.jsxs)(`div`,{className:`mb-4 flex items-start gap-3`,children:[(0,X.jsx)(i,{type:`button`,variant:`ghost`,iconOnly:(0,X.jsx)(h,{"aria-hidden":!0}),"aria-label":`Back to skills`,onClick:n}),(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,X.jsx)(v,{skill:t,className:`h-8 w-8 text-3xl`}),(0,X.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,X.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:t.name}),(0,X.jsx)(g,{origin:t.origin})]}),(0,X.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:t.description}),(0,X.jsx)(B,{skill:{origin:t.origin,sourceConversationId:c},className:`mt-1`})]})]}),l?o?(0,X.jsx)(`div`,{className:`flex h-9 items-center px-3`,children:(0,X.jsx)(k,{className:`h-4 w-4 animate-spin`,style:{color:`var(--content-tertiary)`}})}):(0,X.jsx)(i,{type:`button`,onClick:r,disabled:!r,leftIcon:(0,X.jsx)(m,{"aria-hidden":!0}),children:`Install`}):(0,X.jsx)(i,{type:`button`,variant:u?`dangerOutline`:`outlined`,onClick:a,disabled:!u||s||!a,leftIcon:s?(0,X.jsx)(k,{className:`animate-spin`,"aria-hidden":!0}):(0,X.jsx)(A,{"aria-hidden":!0}),children:`Remove`})]})]}),(0,X.jsx)(f.Root,{asChild:!0,noPadding:!0,children:(0,X.jsxs)(`div`,{className:`flex flex-1 flex-col overflow-hidden sm:grid`,style:{gridTemplateColumns:`240px 1fr`},children:[(0,X.jsx)(`div`,{className:`max-h-40 shrink-0 overflow-y-auto border-b p-2 sm:max-h-none sm:border-b-0 sm:border-r`,style:{borderColor:`var(--border-base)`},children:x?(0,X.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,X.jsx)(k,{className:`h-4 w-4 animate-spin`,style:{color:`var(--content-tertiary)`}})}):d.length===0?(0,X.jsx)(`p`,{className:`px-3 py-4 text-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No files available.`}):d.map(e=>{let t=_===e.path,n=(e.mimeType??``).endsWith(`/directory`);return(0,X.jsxs)(`button`,{type:`button`,onClick:()=>p(e.path),className:`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{color:t?`var(--primary-base)`:`var(--content-default)`,backgroundColor:t?`color-mix(in oklab, var(--primary-base) 10%, transparent)`:void 0},children:[n?(0,X.jsx)(O,{className:`h-4 w-4 shrink-0`,style:{color:`var(--system-mid-strong)`}}):(0,X.jsx)(D,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,X.jsx)(`span`,{className:`truncate`,children:e.name})]},e.path)})}),(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:w?(0,X.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,X.jsx)(k,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):b?(0,X.jsx)(ie,{assistantId:e,skillId:t.id,fileName:b.name,filePath:b.path,content:S,isBinary:C,editable:t.kind===`installed`},`${t.id}/${b.path}`):(0,X.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view its contents.`})})]})})]})}function ie({assistantId:e,skillId:n,fileName:r,filePath:a,content:o,isBinary:s,editable:c}){let u=l(),[d,f]=(0,Y.useState)(!1),[p,m]=(0,Y.useState)(``),h=`skills/${n}/${a}`,g=I({onSuccess:()=>{f(!1),m(``),u.invalidateQueries({queryKey:[{_id:`skillsByIdFilesContentGet`}]}),u.invalidateQueries({queryKey:[{_id:`skillsByIdFilesGet`}]}),a===`SKILL.md`&&ne(u,e)},onError:e=>{t(e,{context:`skill-file-save`,bestEffort:!0})}}),_=d&&p!==(o??``),v=(0,Y.useCallback)(()=>{!_||g.isPending||g.mutate({path:{assistant_id:e},body:{path:h,content:p,encoding:`utf8`}})},[_,g,e,h,p]),y=(0,Y.useCallback)(()=>{f(!0),m(o??``),g.reset()},[o,g]),b=(0,Y.useCallback)(()=>{f(!1),m(``),g.reset()},[g]);if(s)return(0,X.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Binary file — no preview available.`});if(o===null)return(0,X.jsxs)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[`No preview available for `,r,`.`]});let x=c?(0,X.jsx)(i,{variant:`ghost`,size:`regular`,iconOnly:(0,X.jsx)(T,{"aria-hidden":!0}),onClick:()=>void R(h),"aria-label":`Open in Workspace`,className:`hover:bg-[var(--surface-base)]`}):void 0;return M(r,void 0)&&!d?(0,X.jsx)(`div`,{className:`relative flex h-full flex-col`,children:(0,X.jsxs)(`div`,{className:`relative flex-1 overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:[(0,X.jsx)(q,{content:o,fileName:r,showEdit:c,isEditing:!1,onToggleEdit:y,extraActions:x}),(0,X.jsx)(N,{content:o})]})}):(0,X.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,X.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,X.jsx)(q,{content:d?p:o,fileName:r,showEdit:c,isEditing:d,onToggleEdit:()=>d?b():y(),extraActions:x}),d?(0,X.jsx)(K,{value:p,onChange:m,onSave:v}):(0,X.jsx)(W,{content:o,readOnly:!c,onStartEdit:y})]}),d&&(0,X.jsx)(G,{isDirty:_,isSaving:g.isPending,error:g.isError?`Save failed`:null,onSave:v,onDiscard:b})]})}var ae=e(r(),1);function oe({fileName:e,content:t,isBinary:n,viewMode:r=`preview`}){return n?(0,X.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Binary file — no preview available.`}):t===null?(0,X.jsxs)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[`No preview available for `,e,`.`]}):M(e,void 0)&&r===`preview`?(0,X.jsx)(`div`,{className:`h-full overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:(0,X.jsx)(N,{content:t})}):(0,X.jsx)(`pre`,{className:`h-full overflow-y-auto whitespace-pre-wrap break-words p-4 font-mono text-body-small-default`,style:{color:`var(--content-default)`},children:t})}function se({assistantId:e,skill:t,onBack:n,onInstall:r,onRemove:a,isInstalling:o=!1,isRemoving:s=!1,swipeContainerRef:c,sourceConversationId:l}){let u=y(t),d=H(t),{fileEntries:p,setSelectedPath:m,activePath:_,activeFile:b,isFilesLoading:x,fileContent:S,isBinary:T,isContentLoading:D}=V(e,t.id),[O,A]=(0,Y.useState)(`preview`);(0,Y.useEffect)(()=>{A(`preview`)},[_]);let[j,N]=(0,Y.useState)(null);(0,Y.useEffect)(()=>{N(document.getElementById(`viewport-overlays`))},[]);let P=b?M(b.name,void 0):!1,F=P?O:`raw`,I=(0,X.jsxs)(`div`,{ref:c,className:`fixed inset-0 z-40 flex flex-col overflow-hidden bg-[var(--surface-overlay)]`,style:{paddingTop:`calc(8px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px)))`,paddingBottom:`calc(8px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)))`,paddingLeft:`calc(12px + var(--safe-area-inset-left, env(safe-area-inset-left, 0px)))`,paddingRight:`calc(12px + var(--safe-area-inset-right, env(safe-area-inset-right, 0px)))`},children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,X.jsx)(i,{variant:`ghost`,iconOnly:(0,X.jsx)(h,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Back to skills`,onClick:n,className:`max-md:bg-[var(--surface-active)]`}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate px-2 text-center text-body-medium-default`,style:{color:`var(--content-secondary)`},children:t.name}),(0,X.jsx)(Z,{available:u,removable:d,isInstalling:o,isRemoving:s,onInstall:r,onRemove:a})]}),(0,X.jsxs)(`div`,{className:`mt-4 flex flex-col gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,X.jsx)(v,{skill:t,className:`h-6 w-6 shrink-0 text-[22px] leading-none`}),(0,X.jsx)(`h2`,{className:`min-w-0 truncate text-title-medium`,style:{color:`var(--content-emphasised)`},children:t.name})]}),(0,X.jsx)(g,{origin:t.origin})]}),(0,X.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.description}),(0,X.jsx)(B,{skill:{origin:t.origin,sourceConversationId:l}})]}),(0,X.jsx)(f.Root,{asChild:!0,noPadding:!0,children:(0,X.jsxs)(`div`,{className:`mt-6 flex min-h-0 flex-1 flex-col overflow-hidden rounded-2xl border bg-[var(--surface-lift)]`,style:{borderColor:`var(--border-hover)`},children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b px-3 py-2`,style:{borderColor:`var(--border-hover)`},children:[(0,X.jsx)(le,{fileEntries:p,activePath:_,activeName:b?.name??null,onSelect:m}),(0,X.jsx)(w,{iconOnly:!0,ariaLabel:`File view mode`,value:F,onChange:A,items:[{value:`preview`,label:`Preview`,icon:(0,X.jsx)(E,{"aria-hidden":!0}),disabled:!P},{value:`raw`,label:`Source`,icon:(0,X.jsx)(C,{"aria-hidden":!0})}]})]}),(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:x||D?(0,X.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,X.jsx)(k,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):b?(0,X.jsx)(oe,{fileName:b.name,content:S,isBinary:T,viewMode:F}):(0,X.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view its contents.`})})]})})]});return j?(0,ae.createPortal)(I,j):I}function Z({available:e,removable:t,isInstalling:n,isRemoving:r,onInstall:a,onRemove:o}){return n||r?(0,X.jsx)(i,{variant:`ghost`,iconOnly:(0,X.jsx)(k,{className:`animate-spin`,"aria-hidden":!0}),expandOnMobile:!0,disabled:!0,"aria-label":`Pending`,className:`max-md:bg-[var(--surface-active)]`}):e?(0,X.jsx)(i,{variant:`ghost`,iconOnly:(0,X.jsx)(m,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Install skill`,onClick:a,disabled:!a,className:`max-md:bg-[var(--surface-active)]`}):t?(0,X.jsx)(i,{variant:`dangerGhost`,iconOnly:(0,X.jsx)(A,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Remove skill`,onClick:o,disabled:!o,className:`max-md:rounded-full max-md:bg-[var(--system-negative-weak)]`}):(0,X.jsx)(i,{variant:`dangerGhost`,iconOnly:(0,X.jsx)(A,{"aria-hidden":!0}),expandOnMobile:!0,disabled:!0,title:`Bundled skills cannot be removed`,"aria-label":`Bundled skill cannot be removed`,className:`max-md:rounded-full max-md:bg-[var(--system-negative-weak)]`})}function ce(e){return(e??``).endsWith(`/directory`)}function le({fileEntries:e,activePath:t,activeName:n,onSelect:r}){let i=n??`Select a file`;return e.length===0?(0,X.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2 text-body-medium-default`,style:{color:`var(--content-emphasised)`},children:[(0,X.jsx)(Q,{}),(0,X.jsx)(`span`,{className:`truncate`,children:i})]}):(0,X.jsxs)(S.Root,{children:[(0,X.jsx)(S.Trigger,{children:(0,X.jsxs)(`button`,{type:`button`,className:`flex min-w-0 items-center gap-2 rounded-md text-body-medium-default`,style:{color:`var(--content-emphasised)`},children:[(0,X.jsx)(Q,{}),(0,X.jsx)(`span`,{className:`truncate`,children:i}),(0,X.jsx)(x,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0})]})}),(0,X.jsx)(S.Content,{align:`start`,children:e.map(e=>{let n=ce(e.mimeType);return(0,X.jsx)(S.Item,{onSelect:()=>r(e.path),leftIcon:n?(0,X.jsx)(O,{}):(0,X.jsx)(D,{}),"aria-current":e.path===t?`true`:void 0,children:e.name},e.path)})})]})}function Q(){return(0,X.jsx)(`span`,{className:`flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-[var(--surface-base)]`,"aria-hidden":!0,children:(0,X.jsx)(D,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})})}function ue(){return(0,X.jsx)(_,{icon:j,iconColor:`var(--system-danger)`,title:`Failed to load skills`,subtitle:`Something went wrong. Try refreshing the page.`})}function $(){return(0,X.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,X.jsx)(k,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})})}function de(){let e=z(),{skillId:t}=a(),n=c(),r=o(),{pathname:l}=r,d=ee(),f=(0,Y.useRef)(null),p=r.state,m=typeof p?.listSearch==`string`?p.listSearch:``,g=u({...L({path:{assistant_id:e},query:{include:`catalog`}}),select:e=>e.skills,refetchOnMount:`always`}),v=(0,Y.useCallback)(()=>{n(`${P.superpowers}${m}`,{replace:!0})},[n,m]);U({containerRef:f,onBack:v,enabled:d,navKey:l});let{handleInstall:y,handleRemove:x,isInstallingSkill:S,isRemovingSkill:C,skillPendingRemoval:w,confirmRemove:T,cancelRemove:E}=b(e,{onRemoved:v}),D=g.data,O=(0,Y.useMemo)(()=>D?.find(e=>e.id===t)??null,[D,t]),k=u({...F({path:{assistant_id:e,id:t??``}}),enabled:!!t&&O?.origin===`assistant-memory`,select:e=>e.skill.origin===`assistant-memory`?e.skill.sourceConversationId??null:null});if(!t)return(0,X.jsx)(s,{to:P.superpowers,replace:!0});if(g.isLoading)return(0,X.jsx)($,{});if(g.isError&&!O)return(0,X.jsx)(ue,{});if(!O&&g.isFetching)return(0,X.jsx)($,{});if(!O)return(0,X.jsx)(_,{icon:J,title:`Skill not found`,subtitle:`This skill may have been removed, or the link is out of date.`,children:(0,X.jsx)(i,{type:`button`,variant:`outlined`,className:`mt-4`,leftIcon:(0,X.jsx)(h,{"aria-hidden":!0}),onClick:v,children:`Back to My Superpowers`})});let A={assistantId:e,skill:O,onBack:v,onInstall:()=>y(O),onRemove:()=>x(O),isInstalling:S(O),isRemoving:C(O),sourceConversationId:k.data??void 0};return(0,X.jsxs)(X.Fragment,{children:[d?(0,X.jsx)(se,{...A,swipeContainerRef:f}):(0,X.jsx)(re,{...A}),(0,X.jsx)(te,{skillName:w?.name??null,onConfirm:T,onCancel:E})]})}export{de as SkillDetailPage};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-CqtAGHQu.js";import{t as n}from"./react-BFJW0bSv.js";import{W as r,t as i}from"./button-BwFudwM5.js";import{f as a,l as o,n as s,u as c}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as l}from"./QueryClientProvider-CMu7CkQU.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{t as d}from"./jsx-runtime-D3ZM-ToX.js";import{t as f}from"./card-DRIctGVs.js";import{t as p}from"./createLucideIcon-CAM1RhH8.js";import{t as m}from"./arrow-down-to-line-DMGjBlMw.js";import{t as h}from"./arrow-left-W84B6oJL.js";import{a as g,n as _,o as v,r as y,t as b}from"./use-skill-actions-Ik0rj4or.js";import{t as x}from"./chevron-down-BNidRDh1.js";import{t as S}from"./menu-Cfi4A3sw.js";import{t as C}from"./code-D6SOwRrI.js";import{F as w}from"./src-CwGlaCIx.js";import{t as T}from"./external-link-GPGZ1LGU.js";import{t as E}from"./eye-B_jBDDRn.js";import{t as D}from"./file-text-CwGsMgaa.js";import{t as O}from"./folder-_l8GIyQp.js";import{t as k}from"./loader-circle-DWWXcfTQ.js";import{t as A}from"./trash-2-DfVRfykB.js";import{t as j}from"./triangle-alert-D6bAGtMw.js";import{n as M,t as N}from"./file-markdown-eU8RUJQZ.js";import{d as P}from"./routes-DrfnNoYS.js";import{St as F,un as I,wt as L}from"./react-query.gen-C7om930f.js";import{t as R}from"./open-workspace-file-DAlt8chN.js";import{n as ee}from"./use-is-mobile-MmHo-OM6.js";import{t as z}from"./use-active-assistant-id-JLsAfn3e.js";import{n as B,t as V}from"./use-skill-detail-files-DdWFIu5-.js";import{n as H,r as te,t as ne}from"./skills-CrZ3GlyK.js";import{t as U}from"./use-edge-swipe-back-Dk2xXjh4.js";import{i as W,n as G,r as K,t as q}from"./file-editor-BigdI9HF.js";var J=p(`search-x`,[[`path`,{d:`m13.5 8.5-5 5`,key:`1cs55j`}],[`path`,{d:`m8.5 8.5 5 5`,key:`a8mexj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`path`,{d:`m21 21-4.3-4.3`,key:`1qie3q`}]]),Y=e(n(),1),X=d();function re({assistantId:e,skill:t,onBack:n,onInstall:r,onRemove:a,isInstalling:o=!1,isRemoving:s=!1,sourceConversationId:c}){let l=y(t),u=H(t),{fileEntries:d,setSelectedPath:p,activePath:_,activeFile:b,isFilesLoading:x,fileContent:S,isBinary:C,isContentLoading:w}=V(e,t.id);return(0,X.jsxs)(`div`,{className:`flex h-[calc(100vh-14rem)] flex-col`,children:[(0,X.jsxs)(`div`,{className:`mb-4 flex items-start gap-3`,children:[(0,X.jsx)(i,{type:`button`,variant:`ghost`,iconOnly:(0,X.jsx)(h,{"aria-hidden":!0}),"aria-label":`Back to skills`,onClick:n}),(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,X.jsx)(v,{skill:t,className:`h-8 w-8 text-3xl`}),(0,X.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,X.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:t.name}),(0,X.jsx)(g,{origin:t.origin})]}),(0,X.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:t.description}),(0,X.jsx)(B,{skill:{origin:t.origin,sourceConversationId:c},className:`mt-1`})]})]}),l?o?(0,X.jsx)(`div`,{className:`flex h-9 items-center px-3`,children:(0,X.jsx)(k,{className:`h-4 w-4 animate-spin`,style:{color:`var(--content-tertiary)`}})}):(0,X.jsx)(i,{type:`button`,onClick:r,disabled:!r,leftIcon:(0,X.jsx)(m,{"aria-hidden":!0}),children:`Install`}):(0,X.jsx)(i,{type:`button`,variant:u?`dangerOutline`:`outlined`,onClick:a,disabled:!u||s||!a,leftIcon:s?(0,X.jsx)(k,{className:`animate-spin`,"aria-hidden":!0}):(0,X.jsx)(A,{"aria-hidden":!0}),children:`Remove`})]})]}),(0,X.jsx)(f.Root,{asChild:!0,noPadding:!0,children:(0,X.jsxs)(`div`,{className:`flex flex-1 flex-col overflow-hidden sm:grid`,style:{gridTemplateColumns:`240px 1fr`},children:[(0,X.jsx)(`div`,{className:`max-h-40 shrink-0 overflow-y-auto border-b p-2 sm:max-h-none sm:border-b-0 sm:border-r`,style:{borderColor:`var(--border-base)`},children:x?(0,X.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,X.jsx)(k,{className:`h-4 w-4 animate-spin`,style:{color:`var(--content-tertiary)`}})}):d.length===0?(0,X.jsx)(`p`,{className:`px-3 py-4 text-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No files available.`}):d.map(e=>{let t=_===e.path,n=(e.mimeType??``).endsWith(`/directory`);return(0,X.jsxs)(`button`,{type:`button`,onClick:()=>p(e.path),className:`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{color:t?`var(--primary-base)`:`var(--content-default)`,backgroundColor:t?`color-mix(in oklab, var(--primary-base) 10%, transparent)`:void 0},children:[n?(0,X.jsx)(O,{className:`h-4 w-4 shrink-0`,style:{color:`var(--system-mid-strong)`}}):(0,X.jsx)(D,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,X.jsx)(`span`,{className:`truncate`,children:e.name})]},e.path)})}),(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:w?(0,X.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,X.jsx)(k,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):b?(0,X.jsx)(ie,{assistantId:e,skillId:t.id,fileName:b.name,filePath:b.path,content:S,isBinary:C,editable:t.kind===`installed`},`${t.id}/${b.path}`):(0,X.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view its contents.`})})]})})]})}function ie({assistantId:e,skillId:n,fileName:r,filePath:a,content:o,isBinary:s,editable:c}){let u=l(),[d,f]=(0,Y.useState)(!1),[p,m]=(0,Y.useState)(``),h=`skills/${n}/${a}`,g=I({onSuccess:()=>{f(!1),m(``),u.invalidateQueries({queryKey:[{_id:`skillsByIdFilesContentGet`}]}),u.invalidateQueries({queryKey:[{_id:`skillsByIdFilesGet`}]}),a===`SKILL.md`&&ne(u,e)},onError:e=>{t(e,{context:`skill-file-save`,bestEffort:!0})}}),_=d&&p!==(o??``),v=(0,Y.useCallback)(()=>{!_||g.isPending||g.mutate({path:{assistant_id:e},body:{path:h,content:p,encoding:`utf8`}})},[_,g,e,h,p]),y=(0,Y.useCallback)(()=>{f(!0),m(o??``),g.reset()},[o,g]),b=(0,Y.useCallback)(()=>{f(!1),m(``),g.reset()},[g]);if(s)return(0,X.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Binary file — no preview available.`});if(o===null)return(0,X.jsxs)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[`No preview available for `,r,`.`]});let x=c?(0,X.jsx)(i,{variant:`ghost`,size:`regular`,iconOnly:(0,X.jsx)(T,{"aria-hidden":!0}),onClick:()=>void R(h),"aria-label":`Open in Workspace`,className:`hover:bg-[var(--surface-base)]`}):void 0;return M(r,void 0)&&!d?(0,X.jsx)(`div`,{className:`relative flex h-full flex-col`,children:(0,X.jsxs)(`div`,{className:`relative flex-1 overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:[(0,X.jsx)(q,{content:o,fileName:r,showEdit:c,isEditing:!1,onToggleEdit:y,extraActions:x}),(0,X.jsx)(N,{content:o})]})}):(0,X.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,X.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,X.jsx)(q,{content:d?p:o,fileName:r,showEdit:c,isEditing:d,onToggleEdit:()=>d?b():y(),extraActions:x}),d?(0,X.jsx)(K,{value:p,onChange:m,onSave:v}):(0,X.jsx)(W,{content:o,readOnly:!c,onStartEdit:y})]}),d&&(0,X.jsx)(G,{isDirty:_,isSaving:g.isPending,error:g.isError?`Save failed`:null,onSave:v,onDiscard:b})]})}var ae=e(r(),1);function oe({fileName:e,content:t,isBinary:n,viewMode:r=`preview`}){return n?(0,X.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Binary file — no preview available.`}):t===null?(0,X.jsxs)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[`No preview available for `,e,`.`]}):M(e,void 0)&&r===`preview`?(0,X.jsx)(`div`,{className:`h-full overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:(0,X.jsx)(N,{content:t})}):(0,X.jsx)(`pre`,{className:`h-full overflow-y-auto whitespace-pre-wrap break-words p-4 font-mono text-body-small-default`,style:{color:`var(--content-default)`},children:t})}function se({assistantId:e,skill:t,onBack:n,onInstall:r,onRemove:a,isInstalling:o=!1,isRemoving:s=!1,swipeContainerRef:c,sourceConversationId:l}){let u=y(t),d=H(t),{fileEntries:p,setSelectedPath:m,activePath:_,activeFile:b,isFilesLoading:x,fileContent:S,isBinary:T,isContentLoading:D}=V(e,t.id),[O,A]=(0,Y.useState)(`preview`);(0,Y.useEffect)(()=>{A(`preview`)},[_]);let[j,N]=(0,Y.useState)(null);(0,Y.useEffect)(()=>{N(document.getElementById(`viewport-overlays`))},[]);let P=b?M(b.name,void 0):!1,F=P?O:`raw`,I=(0,X.jsxs)(`div`,{ref:c,className:`fixed inset-0 z-40 flex flex-col overflow-hidden bg-[var(--surface-overlay)]`,style:{paddingTop:`calc(8px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px)))`,paddingBottom:`calc(8px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)))`,paddingLeft:`calc(12px + var(--safe-area-inset-left, env(safe-area-inset-left, 0px)))`,paddingRight:`calc(12px + var(--safe-area-inset-right, env(safe-area-inset-right, 0px)))`},children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,X.jsx)(i,{variant:`ghost`,iconOnly:(0,X.jsx)(h,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Back to skills`,onClick:n,className:`max-md:bg-[var(--surface-active)]`}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate px-2 text-center text-body-medium-default`,style:{color:`var(--content-secondary)`},children:t.name}),(0,X.jsx)(Z,{available:u,removable:d,isInstalling:o,isRemoving:s,onInstall:r,onRemove:a})]}),(0,X.jsxs)(`div`,{className:`mt-4 flex flex-col gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,X.jsx)(v,{skill:t,className:`h-6 w-6 shrink-0 text-[22px] leading-none`}),(0,X.jsx)(`h2`,{className:`min-w-0 truncate text-title-medium`,style:{color:`var(--content-emphasised)`},children:t.name})]}),(0,X.jsx)(g,{origin:t.origin})]}),(0,X.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.description}),(0,X.jsx)(B,{skill:{origin:t.origin,sourceConversationId:l}})]}),(0,X.jsx)(f.Root,{asChild:!0,noPadding:!0,children:(0,X.jsxs)(`div`,{className:`mt-6 flex min-h-0 flex-1 flex-col overflow-hidden rounded-2xl border bg-[var(--surface-lift)]`,style:{borderColor:`var(--border-hover)`},children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b px-3 py-2`,style:{borderColor:`var(--border-hover)`},children:[(0,X.jsx)(le,{fileEntries:p,activePath:_,activeName:b?.name??null,onSelect:m}),(0,X.jsx)(w,{iconOnly:!0,ariaLabel:`File view mode`,value:F,onChange:A,items:[{value:`preview`,label:`Preview`,icon:(0,X.jsx)(E,{"aria-hidden":!0}),disabled:!P},{value:`raw`,label:`Source`,icon:(0,X.jsx)(C,{"aria-hidden":!0})}]})]}),(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:x||D?(0,X.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,X.jsx)(k,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):b?(0,X.jsx)(oe,{fileName:b.name,content:S,isBinary:T,viewMode:F}):(0,X.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view its contents.`})})]})})]});return j?(0,ae.createPortal)(I,j):I}function Z({available:e,removable:t,isInstalling:n,isRemoving:r,onInstall:a,onRemove:o}){return n||r?(0,X.jsx)(i,{variant:`ghost`,iconOnly:(0,X.jsx)(k,{className:`animate-spin`,"aria-hidden":!0}),expandOnMobile:!0,disabled:!0,"aria-label":`Pending`,className:`max-md:bg-[var(--surface-active)]`}):e?(0,X.jsx)(i,{variant:`ghost`,iconOnly:(0,X.jsx)(m,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Install skill`,onClick:a,disabled:!a,className:`max-md:bg-[var(--surface-active)]`}):t?(0,X.jsx)(i,{variant:`dangerGhost`,iconOnly:(0,X.jsx)(A,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Remove skill`,onClick:o,disabled:!o,className:`max-md:rounded-full max-md:bg-[var(--system-negative-weak)]`}):(0,X.jsx)(i,{variant:`dangerGhost`,iconOnly:(0,X.jsx)(A,{"aria-hidden":!0}),expandOnMobile:!0,disabled:!0,title:`Bundled skills cannot be removed`,"aria-label":`Bundled skill cannot be removed`,className:`max-md:rounded-full max-md:bg-[var(--system-negative-weak)]`})}function ce(e){return(e??``).endsWith(`/directory`)}function le({fileEntries:e,activePath:t,activeName:n,onSelect:r}){let i=n??`Select a file`;return e.length===0?(0,X.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2 text-body-medium-default`,style:{color:`var(--content-emphasised)`},children:[(0,X.jsx)(Q,{}),(0,X.jsx)(`span`,{className:`truncate`,children:i})]}):(0,X.jsxs)(S.Root,{children:[(0,X.jsx)(S.Trigger,{children:(0,X.jsxs)(`button`,{type:`button`,className:`flex min-w-0 items-center gap-2 rounded-md text-body-medium-default`,style:{color:`var(--content-emphasised)`},children:[(0,X.jsx)(Q,{}),(0,X.jsx)(`span`,{className:`truncate`,children:i}),(0,X.jsx)(x,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0})]})}),(0,X.jsx)(S.Content,{align:`start`,children:e.map(e=>{let n=ce(e.mimeType);return(0,X.jsx)(S.Item,{onSelect:()=>r(e.path),leftIcon:n?(0,X.jsx)(O,{}):(0,X.jsx)(D,{}),"aria-current":e.path===t?`true`:void 0,children:e.name},e.path)})})]})}function Q(){return(0,X.jsx)(`span`,{className:`flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-[var(--surface-base)]`,"aria-hidden":!0,children:(0,X.jsx)(D,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})})}function ue(){return(0,X.jsx)(_,{icon:j,iconColor:`var(--system-danger)`,title:`Failed to load skills`,subtitle:`Something went wrong. Try refreshing the page.`})}function $(){return(0,X.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,X.jsx)(k,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})})}function de(){let e=z(),{skillId:t}=a(),n=c(),r=o(),{pathname:l}=r,d=ee(),f=(0,Y.useRef)(null),p=r.state,m=typeof p?.listSearch==`string`?p.listSearch:``,g=u({...L({path:{assistant_id:e},query:{include:`catalog`}}),select:e=>e.skills,refetchOnMount:`always`}),v=(0,Y.useCallback)(()=>{n(`${P.superpowers}${m}`,{replace:!0})},[n,m]);U({containerRef:f,onBack:v,enabled:d,navKey:l});let{handleInstall:y,handleRemove:x,isInstallingSkill:S,isRemovingSkill:C,skillPendingRemoval:w,confirmRemove:T,cancelRemove:E}=b(e,{onRemoved:v}),D=g.data,O=(0,Y.useMemo)(()=>D?.find(e=>e.id===t)??null,[D,t]),k=u({...F({path:{assistant_id:e,id:t??``}}),enabled:!!t&&O?.origin===`assistant-memory`,select:e=>e.skill.origin===`assistant-memory`?e.skill.sourceConversationId??null:null});if(!t)return(0,X.jsx)(s,{to:P.superpowers,replace:!0});if(g.isLoading)return(0,X.jsx)($,{});if(g.isError&&!O)return(0,X.jsx)(ue,{});if(!O&&g.isFetching)return(0,X.jsx)($,{});if(!O)return(0,X.jsx)(_,{icon:J,title:`Skill not found`,subtitle:`This skill may have been removed, or the link is out of date.`,children:(0,X.jsx)(i,{type:`button`,variant:`outlined`,className:`mt-4`,leftIcon:(0,X.jsx)(h,{"aria-hidden":!0}),onClick:v,children:`Back to My Superpowers`})});let A={assistantId:e,skill:O,onBack:v,onInstall:()=>y(O),onRemove:()=>x(O),isInstalling:S(O),isRemoving:C(O),sourceConversationId:k.data??void 0};return(0,X.jsxs)(X.Fragment,{children:[d?(0,X.jsx)(se,{...A,swipeContainerRef:f}):(0,X.jsx)(re,{...A}),(0,X.jsx)(te,{skillName:w?.name??null,onConfirm:T,onCancel:E})]})}export{de as SkillDetailPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-CqtAGHQu.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-CqtAGHQu.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-BwFudwM5.js";import{u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as a}from"./QueryClientProvider-CMu7CkQU.js";import{t as o}from"./useQuery-Bz-fbQ-m.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-DEI9Ra9z.js";import{t as l}from"./brain-CN4zzNgU.js";import{t as u}from"./menu-Cfi4A3sw.js";import"./src-CwGlaCIx.js";import{t as d}from"./ellipsis-C5fQnusC.js";import{t as f}from"./loader-circle-DWWXcfTQ.js";import{t as p}from"./trash-2-DfVRfykB.js";import{t as m}from"./file-markdown-eU8RUJQZ.js";import{n as h}from"./resolved-assistants-store-C6oDdTxB.js";import{d as g}from"./routes-DrfnNoYS.js";import{St as _,ln as v}from"./react-query.gen-C7om930f.js";import{t as y}from"./detail-shell-BuJMM-9z.js";import{n as b,t as x}from"./use-skill-detail-files-DdWFIu5-.js";import{n as S,r as C,t as w}from"./skills-CrZ3GlyK.js";var T=e(n(),1),E=s();function D({skillId:e,onClose:n}){let s=i(),D=a(),O=h.use.activeAssistantId(),[k,A]=(0,T.useState)(!1),j=o({..._({path:{assistant_id:O??``,id:e}}),select:e=>e.skill,enabled:!!O}),M=j.data,{skillMd:N,fileContent:P,isFilesPending:F,isContentPending:I}=x(O,e),L=v({onSuccess:()=>{O&&w(D,O),n()},onError:e=>{t(e,{context:`skill-detail-panel-remove`})}}),R=()=>{O&&(L.mutate({path:{assistant_id:O,id:e}}),A(!1))},z=j.isPending||F||N!=null&&I,B=M!=null&&S(M);return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(y,{icon:M?.emoji?(0,E.jsx)(`span`,{className:`text-xl leading-none`,"aria-hidden":!0,children:M.emoji}):void 0,Glyph:l,title:M?.name??`Skill`,closeLabel:`Close skill details`,onClose:n,headerActions:B?(0,E.jsxs)(u.Root,{children:[(0,E.jsx)(u.Trigger,{asChild:!0,children:(0,E.jsx)(r,{variant:`ghost`,iconOnly:(0,E.jsx)(d,{}),"aria-label":`Skill actions`,className:`shrink-0`})}),(0,E.jsx)(u.Content,{side:`bottom`,align:`end`,children:(0,E.jsx)(u.Item,{leftIcon:(0,E.jsx)(p,{size:14}),onSelect:()=>A(!0),children:`Remove skill`})})]}):void 0,footer:(0,E.jsx)(r,{fullWidth:!0,onClick:()=>s(g.skills.detail(e)),children:`Go to Skill`}),children:j.isError&&!M?(0,E.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`py-8 text-center text-[var(--content-tertiary)]`,children:`This skill could not be loaded. It may have been removed.`}):z?(0,E.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,E.jsx)(f,{className:`h-5 w-5 animate-spin text-[var(--content-tertiary)]`})}):(0,E.jsxs)(E.Fragment,{children:[M?.description&&(0,E.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`mb-4 text-[var(--content-secondary)]`,children:M.description}),M&&(0,E.jsx)(b,{skill:M,className:`mb-4`,onNavigate:n}),P&&(0,E.jsx)(m,{content:P})]})}),(0,E.jsx)(C,{skillName:k&&M?M.name:null,onConfirm:R,onCancel:()=>A(!1)})]})}export{D as SkillDetailPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import"./src-
|
|
1
|
+
import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import"./src-CwGlaCIx.js";import{t}from"./confirm-dialog-B7WBNDbT.js";import{Tt as n}from"./react-query.gen-C7om930f.js";var r=e();function i({skillName:e,onConfirm:n,onCancel:i}){return(0,r.jsx)(t,{open:e!==null,title:`Remove skill`,message:e?`Remove "${e}" from this assistant?`:``,confirmLabel:`Remove`,destructive:!0,onConfirm:n,onCancel:i})}function a(e){return e.kind===`installed`}function o(e,t){e.invalidateQueries({queryKey:n({path:{assistant_id:t}})})}export{a as n,i as r,o as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BwFudwM5.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-DEI9Ra9z.js";import{t as a}from"./check-Dt2rQhdg.js";import{t as o}from"./clipboard-copy-BYpgEh2O.js";import"./src-CwGlaCIx.js";import{t as s}from"./external-link-GPGZ1LGU.js";import{t as c}from"./input-CgGeKtja.js";import{t as l}from"./use-copy-to-clipboard-RUBxQIiE.js";var u=e(t(),1),d=[`app_mentions:read`,`assistant:write`,`channels:history`,`channels:join`,`channels:read`,`chat:write`,`files:read`,`files:write`,`groups:history`,`groups:read`,`im:history`,`im:read`,`im:write`,`mpim:history`,`mpim:read`,`reactions:read`,`reactions:write`,`users:read`],f=[`channels:join`,`files:read`,`files:write`,`reactions:read`,`reactions:write`],p=[`channels:history`,`channels:read`,`groups:history`,`groups:read`,`im:history`,`im:read`,`mpim:history`,`mpim:read`,`reactions:read`,`search:read`,`users:read`],m=[`reactions:read`,`search:read`],h=35,g=140,_=300;function v(e,t=``){let n=e.trim().slice(0,h)||`My Assistant`;return{display_information:{name:n,...t?{description:t.slice(0,g)}:{},background_color:`#1a1a2e`},features:{app_home:{home_tab_enabled:!1,messages_tab_enabled:!0,messages_tab_read_only_enabled:!1},bot_user:{display_name:n,always_online:!0},agent_view:{agent_description:(t||n).slice(0,_),suggested_prompts:[]}},oauth_config:{scopes:{bot:[...d],bot_optional:[...f],user:[...p],user_optional:[...m]}},settings:{event_subscriptions:{bot_events:[`app_mention`,`app_context_changed`,`message.channels`,`message.groups`,`message.im`,`message.mpim`,`reaction_added`]},interactivity:{is_enabled:!0},org_deploy_enabled:!1,socket_mode_enabled:!0,token_rotation_enabled:!1}}}var y=r(),b=`https://api.slack.com/apps?new_app=1`,x=`xoxb-`,S=`xapp-`,C=20;function w(e,t,n){let r=e.trim();return r?r.startsWith(t)?r.length<C?`${n} looks truncated — copy the whole value from Slack.`:null:`${n} should start with "${t}".`:null}function T({assistantName:e,onSave:t,saveStatus:r=`idle`,saveError:d=null}){let[f,p]=(0,u.useState)(e),[m,h]=(0,u.useState)(``),g=(0,u.useRef)(!1);(0,u.useEffect)(()=>{g.current||p(e)},[e]);let[_,C]=(0,u.useState)(``),[T,E]=(0,u.useState)(``),{copy:D,copied:O}=l(),k=(0,u.useMemo)(()=>JSON.stringify(v(f,m),null,2),[f,m]),A=f.trim().length>0,j=w(_,x,`Bot token`),M=w(T,S,`App token`),N=_.trim().length>0&&T.trim().length>0&&!j&&!M&&r!==`pending`,P=(0,u.useCallback)(()=>{D(k)},[D,k]),F=(0,u.useCallback)(()=>{window.open(b,`_blank`,`noopener,noreferrer`)},[]),I=(0,u.useCallback)(()=>{N&&t?.(_.trim(),T.trim())},[N,t,_,T]);return(0,y.jsx)(`div`,{"data-slot":`slack-setup-wizard`,children:(0,y.jsxs)(`div`,{className:`flex flex-col gap-5 rounded-lg bg-[var(--surface-sunken)] p-4`,children:[(0,y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,y.jsx)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:`Name your Slack app, copy its manifest, then create it in Slack. All permissions and settings come pre-configured.`}),(0,y.jsx)(c,{label:`App Name`,value:f,onChange:e=>{g.current=!0,p(e.target.value.slice(0,35))},placeholder:`My Assistant`,fullWidth:!0}),(0,y.jsx)(c,{label:`Description (optional)`,value:m,onChange:e=>h(e.target.value.slice(0,140)),placeholder:`What this assistant helps with`,helperText:`Shown on the app's Slack profile.`,fullWidth:!0})]}),(0,y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,y.jsx)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:`In Slack:`}),(0,y.jsxs)(`ol`,{className:`list-decimal list-inside space-y-1 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,y.jsxs)(`li`,{children:[`Under `,(0,y.jsx)(`strong`,{children:`Or start your own way`}),`, pick`,` `,(0,y.jsx)(`strong`,{children:`From a manifest`}),`, then `,(0,y.jsx)(`strong`,{children:`Continue`})]}),(0,y.jsx)(`li`,{children:`Choose your workspace and give it the manifest you copied`}),(0,y.jsxs)(`li`,{children:[`Review the permissions, then click`,` `,(0,y.jsx)(`strong`,{children:`Create and Install`})]}),(0,y.jsxs)(`li`,{children:[`Expand `,(0,y.jsx)(`strong`,{children:`Your app credentials`}),` and copy both the`,` `,(0,y.jsx)(`strong`,{children:`Bot token`}),` and `,(0,y.jsx)(`strong`,{children:`App token`})]})]}),(0,y.jsxs)(i,{as:`p`,variant:`body-small-default`,className:`text-[color:var(--content-faint)]`,children:[`Slack's last screen also offers a command-line walkthrough and a `,(0,y.jsx)(`strong`,{children:`Download app files`}),` button. Skip both — they set up a separate local app, and this assistant needs only the two tokens.`]}),(0,y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,y.jsx)(n,{type:`button`,variant:`outlined`,disabled:!A,onClick:P,leftIcon:O?(0,y.jsx)(a,{"aria-hidden":!0,className:`size-4`}):(0,y.jsx)(o,{"aria-hidden":!0,className:`size-4`}),children:O?`Copied!`:`Copy manifest JSON`}),(0,y.jsx)(n,{type:`button`,disabled:!A,onClick:F,rightIcon:(0,y.jsx)(s,{"aria-hidden":!0,className:`size-4`}),children:`Open Slack`})]}),(0,y.jsxs)(i,{as:`p`,variant:`body-small-default`,className:`text-[color:var(--content-faint)]`,children:[`If Slack shows “Request approval” instead of`,` `,(0,y.jsx)(`strong`,{children:`Install`}),`, a workspace admin needs to approve the app first.`]})]}),(0,y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,y.jsxs)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:[`Paste both tokens from Slack's`,` `,(0,y.jsx)(`strong`,{children:`Your app credentials`}),` panel:`]}),(0,y.jsx)(c,{label:`Bot Token`,type:`password`,value:_,onChange:e=>C(e.target.value),placeholder:`${x}...`,errorText:j??void 0,fullWidth:!0}),(0,y.jsx)(c,{label:`App Token`,type:`password`,value:T,onChange:e=>E(e.target.value),placeholder:`${S}...`,errorText:M??void 0,fullWidth:!0}),(0,y.jsx)(`div`,{className:`flex items-center gap-3`,children:(0,y.jsx)(n,{type:`button`,variant:`primary`,onClick:I,disabled:!N,children:r===`pending`?`Connecting…`:`Connect Slack`})}),r===`success`&&(0,y.jsx)(i,{as:`p`,variant:`body-small-default`,className:`text-[color:var(--content-positive)]`,children:`Credentials saved.`}),r===`error`&&d&&(0,y.jsx)(i,{as:`p`,variant:`body-small-default`,className:`text-[color:var(--system-negative-strong)]`,children:d})]})]})})}export{T as t};
|