@researai/deepscientist 1.5.15 → 1.5.17
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/README.md +385 -104
- package/bin/ds.js +1241 -110
- package/docs/en/00_QUICK_START.md +100 -19
- package/docs/en/01_SETTINGS_REFERENCE.md +34 -1
- package/docs/en/02_START_RESEARCH_GUIDE.md +7 -0
- package/docs/en/05_TUI_GUIDE.md +6 -0
- package/docs/en/06_RUNTIME_AND_CANVAS.md +4 -3
- package/docs/en/09_DOCTOR.md +25 -8
- package/docs/en/14_PROMPT_SKILLS_AND_MCP_GUIDE.md +63 -13
- package/docs/en/15_CODEX_PROVIDER_SETUP.md +37 -11
- package/docs/en/19_EXTERNAL_CONTROLLER_GUIDE.md +226 -0
- package/docs/en/19_LOCAL_BROWSER_AUTH.md +70 -0
- package/docs/en/20_WORKSPACE_MODES_GUIDE.md +250 -0
- package/docs/en/21_LOCAL_MODEL_BACKENDS_GUIDE.md +283 -0
- package/docs/en/91_DEVELOPMENT.md +237 -0
- package/docs/en/README.md +24 -2
- package/docs/zh/00_QUICK_START.md +89 -19
- package/docs/zh/01_SETTINGS_REFERENCE.md +34 -1
- package/docs/zh/02_START_RESEARCH_GUIDE.md +7 -0
- package/docs/zh/05_TUI_GUIDE.md +6 -0
- package/docs/zh/09_DOCTOR.md +26 -9
- package/docs/zh/14_PROMPT_SKILLS_AND_MCP_GUIDE.md +63 -13
- package/docs/zh/15_CODEX_PROVIDER_SETUP.md +37 -11
- package/docs/zh/19_EXTERNAL_CONTROLLER_GUIDE.md +226 -0
- package/docs/zh/19_LOCAL_BROWSER_AUTH.md +68 -0
- package/docs/zh/20_WORKSPACE_MODES_GUIDE.md +251 -0
- package/docs/zh/21_LOCAL_MODEL_BACKENDS_GUIDE.md +281 -0
- package/docs/zh/README.md +24 -2
- package/install.sh +46 -4
- package/package.json +2 -1
- package/pyproject.toml +1 -1
- package/src/deepscientist/__init__.py +1 -1
- package/src/deepscientist/acp/envelope.py +6 -0
- package/src/deepscientist/artifact/service.py +647 -22
- package/src/deepscientist/bash_exec/service.py +234 -9
- package/src/deepscientist/bridges/connectors.py +8 -2
- package/src/deepscientist/cli.py +115 -19
- package/src/deepscientist/codex_cli_compat.py +367 -22
- package/src/deepscientist/config/models.py +2 -1
- package/src/deepscientist/config/service.py +183 -13
- package/src/deepscientist/daemon/api/handlers.py +255 -31
- package/src/deepscientist/daemon/api/router.py +9 -0
- package/src/deepscientist/daemon/app.py +1146 -105
- package/src/deepscientist/diagnostics/__init__.py +6 -0
- package/src/deepscientist/diagnostics/runner_failures.py +130 -0
- package/src/deepscientist/doctor.py +207 -3
- package/src/deepscientist/gitops/__init__.py +10 -1
- package/src/deepscientist/gitops/diff.py +129 -0
- package/src/deepscientist/gitops/service.py +4 -1
- package/src/deepscientist/mcp/server.py +39 -0
- package/src/deepscientist/prompts/builder.py +275 -34
- package/src/deepscientist/quest/layout.py +15 -2
- package/src/deepscientist/quest/service.py +707 -55
- package/src/deepscientist/quest/stage_views.py +6 -1
- package/src/deepscientist/runners/codex.py +143 -43
- package/src/deepscientist/shared.py +19 -0
- package/src/deepscientist/skills/__init__.py +2 -2
- package/src/deepscientist/skills/installer.py +196 -5
- package/src/deepscientist/skills/registry.py +66 -0
- package/src/prompts/connectors/qq.md +18 -8
- package/src/prompts/connectors/weixin.md +16 -6
- package/src/prompts/contracts/shared_interaction.md +14 -2
- package/src/prompts/system.md +23 -5
- package/src/prompts/system_copilot.md +56 -0
- package/src/skills/analysis-campaign/SKILL.md +1 -0
- package/src/skills/baseline/SKILL.md +8 -0
- package/src/skills/decision/SKILL.md +8 -0
- package/src/skills/experiment/SKILL.md +8 -0
- package/src/skills/figure-polish/SKILL.md +1 -0
- package/src/skills/finalize/SKILL.md +1 -0
- package/src/skills/idea/SKILL.md +1 -0
- package/src/skills/intake-audit/SKILL.md +8 -0
- package/src/skills/mentor/SKILL.md +217 -0
- package/src/skills/mentor/references/correction-rules.md +210 -0
- package/src/skills/mentor/references/knowledge-profile.md +91 -0
- package/src/skills/mentor/references/persona-profile.md +138 -0
- package/src/skills/mentor/references/taste-profile.md +128 -0
- package/src/skills/mentor/references/thought-style-profile.md +138 -0
- package/src/skills/mentor/references/work-profile.md +289 -0
- package/src/skills/mentor/references/workflow-profile.md +240 -0
- package/src/skills/optimize/SKILL.md +1 -0
- package/src/skills/rebuttal/SKILL.md +1 -0
- package/src/skills/review/SKILL.md +1 -0
- package/src/skills/scout/SKILL.md +8 -0
- package/src/skills/write/SKILL.md +1 -0
- package/src/tui/dist/app/AppContainer.js +19 -11
- package/src/tui/dist/index.js +4 -1
- package/src/tui/dist/lib/api.js +33 -3
- package/src/tui/package.json +1 -1
- package/src/ui/dist/assets/AiManusChatView-Bv-Z8YpU.js +204 -0
- package/src/ui/dist/assets/AnalysisPlugin-BCKAfjba.js +1 -0
- package/src/ui/dist/assets/CliPlugin-BCKcpc35.js +109 -0
- package/src/ui/dist/assets/CodeEditorPlugin-DbOfSJ8K.js +2 -0
- package/src/ui/dist/assets/CodeViewerPlugin-CbaFRrUU.js +270 -0
- package/src/ui/dist/assets/DocViewerPlugin-DAjLVeQD.js +7 -0
- package/src/ui/dist/assets/GitCommitViewerPlugin-CIUqbUDO.js +1 -0
- package/src/ui/dist/assets/GitDiffViewerPlugin-CQACjoAA.js +6 -0
- package/src/ui/dist/assets/GitSnapshotViewer-0r4nLPke.js +30 -0
- package/src/ui/dist/assets/ImageViewerPlugin-nBOmI2v_.js +26 -0
- package/src/ui/dist/assets/LabCopilotPanel-BHxOxF4z.js +14 -0
- package/src/ui/dist/assets/LabPlugin-BKoZGs95.js +22 -0
- package/src/ui/dist/assets/LatexPlugin-ZwtV8pIp.js +25 -0
- package/src/ui/dist/assets/MarkdownViewerPlugin-DKqVfKyW.js +128 -0
- package/src/ui/dist/assets/MarketplacePlugin-BwxStZ9D.js +13 -0
- package/src/ui/dist/assets/NotebookEditor-BEQhaQbt.js +81 -0
- package/src/ui/dist/assets/{NotebookEditor-CccQYZjX.css → NotebookEditor-BHH8rdGj.css} +1 -1
- package/src/ui/dist/assets/NotebookEditor-BOr3x3Ej.css +1 -0
- package/src/ui/dist/assets/NotebookEditor-DB9N_T9q.js +361 -0
- package/src/ui/dist/assets/PdfLoader-Cy5jtWrr.css +1 -0
- package/src/ui/dist/assets/PdfLoader-eWBONbQP.js +16 -0
- package/src/ui/dist/assets/PdfMarkdownPlugin-D22YOZL3.js +1 -0
- package/src/ui/dist/assets/PdfViewerPlugin-c-RK9DLM.js +17 -0
- package/src/ui/dist/assets/PdfViewerPlugin-nwwE-fjJ.css +1 -0
- package/src/ui/dist/assets/SearchPlugin-CxF9ytAx.js +16 -0
- package/src/ui/dist/assets/SearchPlugin-DA4en4hK.css +1 -0
- package/src/ui/dist/assets/TextViewerPlugin-C5xqeeUH.js +54 -0
- package/src/ui/dist/assets/VNCViewer-BoLGLnHz.js +11 -0
- package/src/ui/dist/assets/bot-DREQOxzP.js +6 -0
- package/src/ui/dist/assets/browser-CTB2jwNe.js +8 -0
- package/src/ui/dist/assets/chevron-up-C9Qpx4DE.js +6 -0
- package/src/ui/dist/assets/code-WlFHE7z_.js +6 -0
- package/src/ui/dist/assets/file-content-BZMz3RYp.js +1 -0
- package/src/ui/dist/assets/file-diff-panel-CQhw0jS2.js +1 -0
- package/src/ui/dist/assets/file-jump-queue-DA-SdG__.js +1 -0
- package/src/ui/dist/assets/file-socket-CfQPKQKj.js +1 -0
- package/src/ui/dist/assets/git-commit-horizontal-DxZ8DCZh.js +6 -0
- package/src/ui/dist/assets/image-Bgl4VIyx.js +6 -0
- package/src/ui/dist/assets/index-BpV6lusQ.css +33 -0
- package/src/ui/dist/assets/index-CBNVuWcP.js +2496 -0
- package/src/ui/dist/assets/index-CwNu1aH4.js +11 -0
- package/src/ui/dist/assets/index-DrUnlf6K.js +1 -0
- package/src/ui/dist/assets/index-NW-h8VzN.js +1 -0
- package/src/ui/dist/assets/monaco-CiHMMNH_.js +1 -0
- package/src/ui/dist/assets/pdf-effect-queue-J8OnM0jE.js +6 -0
- package/src/ui/dist/assets/plugin-monaco-C8UgLomw.js +19 -0
- package/src/ui/dist/assets/plugin-notebook-HbW2K-1c.js +169 -0
- package/src/ui/dist/assets/plugin-pdf-CR8hgQBV.js +357 -0
- package/src/ui/dist/assets/plugin-terminal-MXFIPun8.js +227 -0
- package/src/ui/dist/assets/popover-CLc0pPP8.js +1 -0
- package/src/ui/dist/assets/project-sync-C9IdzdZW.js +1 -0
- package/src/ui/dist/assets/select-Cs2PmzwL.js +11 -0
- package/src/ui/dist/assets/sigma-ClKcHAXm.js +6 -0
- package/src/ui/dist/assets/trash-DwpbFr3w.js +11 -0
- package/src/ui/dist/assets/useCliAccess-NQ8m0Let.js +1 -0
- package/src/ui/dist/assets/useFileDiffOverlay-FuhcnKiw.js +1 -0
- package/src/ui/dist/assets/wrap-text-BC-Hltpd.js +11 -0
- package/src/ui/dist/assets/zoom-out-E_gaeAxL.js +11 -0
- package/src/ui/dist/index.html +5 -2
- package/src/ui/dist/assets/AiManusChatView-DDjbFnbt.js +0 -26597
- package/src/ui/dist/assets/AnalysisPlugin-Yb5IdmaU.js +0 -123
- package/src/ui/dist/assets/CliPlugin-e64sreyu.js +0 -31037
- package/src/ui/dist/assets/CodeEditorPlugin-C4D2TIkU.js +0 -427
- package/src/ui/dist/assets/CodeViewerPlugin-BVoNZIvC.js +0 -905
- package/src/ui/dist/assets/DocViewerPlugin-CLChbllo.js +0 -278
- package/src/ui/dist/assets/GitDiffViewerPlugin-C4xeFyFQ.js +0 -2661
- package/src/ui/dist/assets/ImageViewerPlugin-OiMUAcLi.js +0 -500
- package/src/ui/dist/assets/LabCopilotPanel-BjD2ThQF.js +0 -4104
- package/src/ui/dist/assets/LabPlugin-DQPg-NrB.js +0 -2677
- package/src/ui/dist/assets/LatexPlugin-CI05XAV9.js +0 -1792
- package/src/ui/dist/assets/MarkdownViewerPlugin-DpeBLYZf.js +0 -308
- package/src/ui/dist/assets/MarketplacePlugin-DolE58Q2.js +0 -413
- package/src/ui/dist/assets/NotebookEditor-7Qm2rSWD.js +0 -4214
- package/src/ui/dist/assets/NotebookEditor-C1kWaxKi.js +0 -84873
- package/src/ui/dist/assets/NotebookEditor-C3VQ7ylN.css +0 -1405
- package/src/ui/dist/assets/PdfLoader-BfOHw8Zw.js +0 -25468
- package/src/ui/dist/assets/PdfLoader-C-Y707R3.css +0 -49
- package/src/ui/dist/assets/PdfMarkdownPlugin-BulDREv1.js +0 -409
- package/src/ui/dist/assets/PdfViewerPlugin-C-daaOaL.js +0 -3095
- package/src/ui/dist/assets/PdfViewerPlugin-DQ11QcSf.css +0 -3627
- package/src/ui/dist/assets/SearchPlugin-CjpaiJ3A.js +0 -741
- package/src/ui/dist/assets/SearchPlugin-DDMrGDkh.css +0 -379
- package/src/ui/dist/assets/TextViewerPlugin-BxIyqPQC.js +0 -472
- package/src/ui/dist/assets/VNCViewer-HAg9mF7M.js +0 -18821
- package/src/ui/dist/assets/awareness-C0NPR2Dj.js +0 -292
- package/src/ui/dist/assets/bot-0DYntytV.js +0 -21
- package/src/ui/dist/assets/browser-BAcuE0Xj.js +0 -2895
- package/src/ui/dist/assets/code-B20Slj_w.js +0 -17
- package/src/ui/dist/assets/file-content-DT24KFma.js +0 -377
- package/src/ui/dist/assets/file-diff-panel-DK13YPql.js +0 -92
- package/src/ui/dist/assets/file-jump-queue-r5XKgJEV.js +0 -16
- package/src/ui/dist/assets/file-socket-B4T2o4nR.js +0 -58
- package/src/ui/dist/assets/function-B5QZkkHC.js +0 -1895
- package/src/ui/dist/assets/image-DSeR_sDS.js +0 -18
- package/src/ui/dist/assets/index-BrFje2Uk.js +0 -120
- package/src/ui/dist/assets/index-BwRJaoTl.js +0 -25
- package/src/ui/dist/assets/index-D_E4281X.js +0 -221322
- package/src/ui/dist/assets/index-DnYB3xb1.js +0 -159
- package/src/ui/dist/assets/index-G7AcWcMu.css +0 -12594
- package/src/ui/dist/assets/monaco-LExaAN3Y.js +0 -623
- package/src/ui/dist/assets/pdf-effect-queue-BJk5okWJ.js +0 -47
- package/src/ui/dist/assets/pdf_viewer-e0g1is2C.js +0 -8206
- package/src/ui/dist/assets/popover-D3Gg_FoV.js +0 -476
- package/src/ui/dist/assets/project-sync-C_ygLlVU.js +0 -297
- package/src/ui/dist/assets/select-CpAK6uWm.js +0 -1690
- package/src/ui/dist/assets/sigma-DEccaSgk.js +0 -22
- package/src/ui/dist/assets/square-check-big-uUfyVsbD.js +0 -17
- package/src/ui/dist/assets/trash-CXvwwSe8.js +0 -32
- package/src/ui/dist/assets/useCliAccess-Bnop4mgR.js +0 -957
- package/src/ui/dist/assets/useFileDiffOverlay-B8eUAX0I.js +0 -53
- package/src/ui/dist/assets/wrap-text-9vbOBpkW.js +0 -35
- package/src/ui/dist/assets/yjs-DncrqiZ8.js +0 -11243
- package/src/ui/dist/assets/zoom-out-BgVMmOW4.js +0 -34
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as l,ay as W,az as z,aA as B,aB as G,aC as _,aD as C,aE as y,aF as A,aG as E,aH as K,aI as Z,aJ as J,aK as U,aL as q,aM as Q,aN as X,aO as Y,b as ee}from"./index-CBNVuWcP.js";import{r as a}from"./plugin-monaco-C8UgLomw.js";import"./plugin-notebook-HbW2K-1c.js";function oe(e,t=[]){let r=[];function n(s,c){const i=a.createContext(c),p=r.length;r=[...r,c];const u=d=>{const{scope:f,children:m,...h}=d,L=f?.[e]?.[p]||i,V=a.useMemo(()=>h,Object.values(h));return l.jsx(L.Provider,{value:V,children:m})};u.displayName=s+"Provider";function v(d,f){const m=f?.[e]?.[p]||i,h=a.useContext(m);if(h)return h;if(c!==void 0)return c;throw new Error(`\`${d}\` must be used within \`${s}\``)}return[u,v]}const o=()=>{const s=r.map(c=>a.createContext(c));return function(i){const p=i?.[e]||s;return a.useMemo(()=>({[`__scope${e}`]:{...i,[e]:p}}),[i,p])}};return o.scopeName=e,[n,te(o,...t)]}function te(...e){const t=e[0];if(e.length===1)return t;const r=()=>{const n=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(s){const c=n.reduce((i,{useScope:p,scopeName:u})=>{const d=p(s)[`__scope${u}`];return{...i,...d}},{});return a.useMemo(()=>({[`__scope${t.scopeName}`]:c}),[c])}};return r.scopeName=t.scopeName,r}function S(e){const t=re(e),r=a.forwardRef((n,o)=>{const{children:s,...c}=n,i=a.Children.toArray(s),p=i.find(se);if(p){const u=p.props.children,v=i.map(d=>d===p?a.Children.count(u)>1?a.Children.only(null):a.isValidElement(u)?u.props.children:null:d);return l.jsx(t,{...c,ref:o,children:a.isValidElement(u)?a.cloneElement(u,void 0,v):null})}return l.jsx(t,{...c,ref:o,children:s})});return r.displayName=`${e}.Slot`,r}function re(e){const t=a.forwardRef((r,n)=>{const{children:o,...s}=r;if(a.isValidElement(o)){const c=ce(o),i=ae(s,o.props);return o.type!==a.Fragment&&(i.ref=n?W(n,c):c),a.cloneElement(o,i)}return a.Children.count(o)>1?a.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var ne=Symbol("radix.slottable");function se(e){return a.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ne}function ae(e,t){const r={...t};for(const n in t){const o=e[n],s=t[n];/^on[A-Z]/.test(n)?o&&s?r[n]=(...i)=>{const p=s(...i);return o(...i),p}:o&&(r[n]=o):n==="style"?r[n]={...o,...s}:n==="className"&&(r[n]=[o,s].filter(Boolean).join(" "))}return{...e,...r}}function ce(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var ie=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],b=ie.reduce((e,t)=>{const r=S(`Primitive.${t}`),n=a.forwardRef((o,s)=>{const{asChild:c,...i}=o,p=c?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),l.jsx(p,{...i,ref:s})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{}),R="Popover",[w]=oe(R,[A]),x=A(),[le,P]=w(R),j=e=>{const{__scopePopover:t,children:r,open:n,defaultOpen:o,onOpenChange:s,modal:c=!1}=e,i=x(t),p=a.useRef(null),[u,v]=a.useState(!1),[d,f]=z({prop:n,defaultProp:o??!1,onChange:s,caller:R});return l.jsx(B,{...i,children:l.jsx(le,{scope:t,contentId:G(),triggerRef:p,open:d,onOpenChange:f,onOpenToggle:a.useCallback(()=>f(m=>!m),[f]),hasCustomAnchor:u,onCustomAnchorAdd:a.useCallback(()=>v(!0),[]),onCustomAnchorRemove:a.useCallback(()=>v(!1),[]),modal:c,children:r})})};j.displayName=R;var N="PopoverAnchor",pe=a.forwardRef((e,t)=>{const{__scopePopover:r,...n}=e,o=P(N,r),s=x(r),{onCustomAnchorAdd:c,onCustomAnchorRemove:i}=o;return a.useEffect(()=>(c(),()=>i()),[c,i]),l.jsx(y,{...s,...n,ref:t})});pe.displayName=N;var F="PopoverTrigger",D=a.forwardRef((e,t)=>{const{__scopePopover:r,...n}=e,o=P(F,r),s=x(r),c=_(t,o.triggerRef),i=l.jsx(b.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":k(o.open),...n,ref:c,onClick:C(e.onClick,o.onOpenToggle)});return o.hasCustomAnchor?i:l.jsx(y,{asChild:!0,...s,children:i})});D.displayName=F;var O="PopoverPortal",[ue,de]=w(O,{forceMount:void 0}),I=e=>{const{__scopePopover:t,forceMount:r,children:n,container:o}=e,s=P(O,t);return l.jsx(ue,{scope:t,forceMount:r,children:l.jsx(E,{present:r||s.open,children:l.jsx(K,{asChild:!0,container:o,children:n})})})};I.displayName=O;var g="PopoverContent",M=a.forwardRef((e,t)=>{const r=de(g,e.__scopePopover),{forceMount:n=r.forceMount,...o}=e,s=P(g,e.__scopePopover);return l.jsx(E,{present:n||s.open,children:s.modal?l.jsx(ve,{...o,ref:t}):l.jsx(Pe,{...o,ref:t})})});M.displayName=g;var fe=S("PopoverContent.RemoveScroll"),ve=a.forwardRef((e,t)=>{const r=P(g,e.__scopePopover),n=a.useRef(null),o=_(t,n),s=a.useRef(!1);return a.useEffect(()=>{const c=n.current;if(c)return Z(c)},[]),l.jsx(J,{as:fe,allowPinchZoom:!0,children:l.jsx(T,{...e,ref:o,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:C(e.onCloseAutoFocus,c=>{c.preventDefault(),s.current||r.triggerRef.current?.focus()}),onPointerDownOutside:C(e.onPointerDownOutside,c=>{const i=c.detail.originalEvent,p=i.button===0&&i.ctrlKey===!0,u=i.button===2||p;s.current=u},{checkForDefaultPrevented:!1}),onFocusOutside:C(e.onFocusOutside,c=>c.preventDefault(),{checkForDefaultPrevented:!1})})})}),Pe=a.forwardRef((e,t)=>{const r=P(g,e.__scopePopover),n=a.useRef(!1),o=a.useRef(!1);return l.jsx(T,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(n.current||r.triggerRef.current?.focus(),s.preventDefault()),n.current=!1,o.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(n.current=!0,s.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const c=s.target;r.triggerRef.current?.contains(c)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&o.current&&s.preventDefault()}})}),T=a.forwardRef((e,t)=>{const{__scopePopover:r,trapFocus:n,onOpenAutoFocus:o,onCloseAutoFocus:s,disableOutsidePointerEvents:c,onEscapeKeyDown:i,onPointerDownOutside:p,onFocusOutside:u,onInteractOutside:v,...d}=e,f=P(g,r),m=x(r);return U(),l.jsx(q,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:o,onUnmountAutoFocus:s,children:l.jsx(Q,{asChild:!0,disableOutsidePointerEvents:c,onInteractOutside:v,onEscapeKeyDown:i,onPointerDownOutside:p,onFocusOutside:u,onDismiss:()=>f.onOpenChange(!1),children:l.jsx(X,{"data-state":k(f.open),role:"dialog",id:f.contentId,...m,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),$="PopoverClose",me=a.forwardRef((e,t)=>{const{__scopePopover:r,...n}=e,o=P($,r);return l.jsx(b.button,{type:"button",...n,ref:t,onClick:C(e.onClick,()=>o.onOpenChange(!1))})});me.displayName=$;var ge="PopoverArrow",he=a.forwardRef((e,t)=>{const{__scopePopover:r,...n}=e,o=x(r);return l.jsx(Y,{...o,...n,ref:t})});he.displayName=ge;function k(e){return e?"open":"closed"}var Ce=j,xe=D,Re=I,H=M;const Ee=Ce,Se=xe,Oe=a.forwardRef(({className:e,align:t="center",sideOffset:r=4,...n},o)=>l.jsx(Re,{children:l.jsx(H,{ref:o,align:t,sideOffset:r,className:ee("z-[10002] w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n})}));Oe.displayName=H.displayName;export{Ee as P,Se as a,Oe as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z as k,D as u,G as p}from"./index-CBNVuWcP.js";function y(r){if(r instanceof Error)return r.message;if(typeof r=="string")return r;try{return JSON.stringify(r)}catch{return String(r)}}class j{spaceType="workspace";projectId;authMode;docKind;socket;releaseSocket;joined=!1;joinedDocs=new Set;constructor(e,s={}){this.projectId=e,this.authMode=s.authMode??"user",this.docKind=s.docKind;const{socket:t,release:o}=k({authMode:this.authMode});this.socket=t,this.releaseSocket=o}async waitForConnected(e){this.socket.connected||await new Promise((s,t)=>{const o=window.setTimeout(()=>{a(),t(new Error("WebSocket connection timeout"))},e),c=()=>{a(),s()},i=n=>{a(),t(new Error(y(n)||"WebSocket connection error"))},a=()=>{window.clearTimeout(o),this.socket.off("connect",c),this.socket.off("connect_error",i),this.socket.off?.("error",i)},h=(n,w)=>{const d=this.socket;if(typeof d.once=="function"){d.once(n,w);return}const f=(...m)=>{typeof d.off=="function"&&d.off(n,f),w(...m)};d.on?.(n,f)};h("connect",c),h("connect_error",i),h("error",i)})}async emitWithAck(e,s,t=1e4){await this.waitForConnected(t);try{const o=this.socket;return typeof o.timeout=="function"&&typeof o.emitWithAck=="function"?await o.timeout(t).emitWithAck(e,s):await new Promise(c=>{const i=window.setTimeout(()=>{c({error:{name:"SOCKET_TIMEOUT",message:`Ack timeout for ${e}`}})},t);this.socket.emit(e,s,a=>{window.clearTimeout(i),c(a)})})}catch(o){return{error:{name:"SOCKET_ERROR",message:y(o)}}}}async connect(){if(this.joined)return;const e=await this.emitWithAck("space:join",{spaceType:this.spaceType,spaceId:this.projectId,clientVersion:"1.0.0"},12e3);if("error"in e)throw new Error(e.error.message);if(!e.data.success)throw new Error("Failed to join space");this.joined=!0}async joinDoc(e){if(!e||(this.joined||await this.connect(),this.joinedDocs.has(e)))return;const s=await this.emitWithAck("space:join-doc",{spaceType:this.spaceType,spaceId:this.projectId,docId:e,docKind:this.docKind},12e3);if("error"in s)throw new Error(s.error.message);if(!s.data.success)throw new Error("Failed to join doc");this.joinedDocs.add(e)}leaveDoc(e){e&&this.joinedDocs.has(e)&&(this.socket.emit("space:leave-doc",{spaceType:this.spaceType,spaceId:this.projectId,docId:e,docKind:this.docKind}),this.joinedDocs.delete(e))}disconnect(){try{if(this.joined){for(const e of Array.from(this.joinedDocs))this.leaveDoc(e);this.socket.emit("space:leave",{spaceType:this.spaceType,spaceId:this.projectId})}}finally{this.joined=!1,this.releaseSocket()}}onDocUpdate(e){const s=t=>{t?.spaceId===this.projectId&&e({docId:String(t.docId),update:p(String(t.update)),timestamp:Number(t.timestamp),editor:t.editor?String(t.editor):void 0})};return this.socket.on("space:broadcast-doc-update",s),()=>this.socket.off("space:broadcast-doc-update",s)}onDocReset(e){const s=t=>{t?.spaceId===this.projectId&&e({docId:String(t.docId),timestamp:Number(t.timestamp),reason:t?.reason?String(t.reason):void 0,actorUserId:t?.actorUserId!=null?String(t.actorUserId):null})};return this.socket.on("space:doc-reset",s),()=>this.socket.off("space:doc-reset",s)}async loadDoc(e,s){await this.joinDoc(e);const t=await this.emitWithAck("space:load-doc",{spaceType:this.spaceType,spaceId:this.projectId,docId:e,docKind:this.docKind,stateVector:s?await u(s):void 0},15e3);if("error"in t){if(t.error.name==="DOC_NOT_FOUND"||t.error.name==="NOT_FOUND")return null;throw new Error(t.error.message)}return{missing:p(t.data.missing),state:p(t.data.state),timestamp:Number(t.data.timestamp)}}async pushDocUpdate(e,s){await this.joinDoc(e);const t=await this.emitWithAck("space:push-doc-update",{spaceType:this.spaceType,spaceId:this.projectId,docId:e,docKind:this.docKind,update:await u(s)},15e3);if("error"in t)throw new Error(t.error.message);return Number(t.data.timestamp)}async joinAwareness(e){const s=await this.emitWithAck("space:join-awareness",{spaceType:this.spaceType,spaceId:this.projectId,docId:e,docKind:this.docKind,clientVersion:"1.0.0"},12e3);if("error"in s)throw new Error(s.error.message);if(!s.data.success)throw new Error("Failed to join awareness")}leaveAwareness(e){this.socket.emit("space:leave-awareness",{spaceType:this.spaceType,spaceId:this.projectId,docId:e,docKind:this.docKind})}onAwarenessCollect(e,s){const t=o=>{o?.spaceId===this.projectId&&String(o?.docId)===e&&s()};return this.socket.on("space:collect-awareness",t),()=>this.socket.off("space:collect-awareness",t)}onAwarenessUpdate(e,s){const t=o=>{o?.spaceId===this.projectId&&String(o?.docId)===e&&s(p(String(o.awarenessUpdate)))};return this.socket.on("space:broadcast-awareness-update",t),()=>this.socket.off("space:broadcast-awareness-update",t)}async broadcastAwareness(e,s){this.socket.emit("space:update-awareness",{spaceType:this.spaceType,spaceId:this.projectId,docId:e,docKind:this.docKind,awarenessUpdate:await u(s)})}requestAwarenesses(e){this.socket.emit("space:load-awarenesses",{spaceType:this.spaceType,spaceId:this.projectId,docId:e,docKind:this.docKind})}}export{j as P};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{y as Ee,j as d,ay as Pe,bK as xt,az as Ne,aA as St,aB as be,aF as Re,bL as wt,aC as L,aE as yt,aD as E,aH as Ct,bM as z,bN as bt,aI as It,aK as Nt,aJ as Tt,aL as Et,aM as Pt,aN as Rt,aO as _t,l as _e,b as G,d as jt}from"./index-CBNVuWcP.js";import{r as n}from"./plugin-monaco-C8UgLomw.js";import{r as je}from"./plugin-notebook-HbW2K-1c.js";import{C as Mt}from"./chevron-up-C9Qpx4DE.js";/**
|
|
2
|
+
* @license lucide-react v0.511.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const At=[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]],Bo=Ee("layers",At);/**
|
|
7
|
+
* @license lucide-react v0.511.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/const Ot=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],Ho=Ee("server",Ot);function $o(e){if(e==null||Number.isNaN(e))return"n/a";if(e<1024)return`${e} B`;const o=e/1024;if(o<1024)return`${o.toFixed(1)} KB`;const t=o/1024;return t<1024?`${t.toFixed(1)} MB`:`${(t/1024).toFixed(1)} GB`}function Me(e){if(!e)return"/";const o=e.replace(/\\/g,"/");let t=o.startsWith("/")?o:`/${o}`;return t=t.replace(/\/{2,}/g,"/"),t.length>1&&t.endsWith("/")&&(t=t.replace(/\/+$/,"")),t}function Wo(e){const o=Me(e);return o==="/"?[]:o.split("/").filter(Boolean)}function Fo(e){return e.length===0?"/":`/${e.join("/")}`}const Uo=1024*1024,Ko=50*1024*1024,Dt=["/.env","/.env.","/.ssh/","/credentials.json","/secrets.yaml","/secrets.yml","/id_rsa","/id_ed25519","/.aws/credentials","/.docker/config.json","/etc/passwd","/etc/shadow","/etc/gshadow","/proc/","/sys/kernel/","/dev/mem","/dev/kmem"];function zo(e){const o=Me(e).toLowerCase();for(const t of Dt)if(o.includes(t))return t;return null}function Te(e,[o,t]){return Math.min(t,Math.max(o,e))}function Lt(e,o=[]){let t=[];function s(c,a){const l=n.createContext(a),i=t.length;t=[...t,a];const u=h=>{const{scope:I,children:C,...S}=h,p=I?.[e]?.[i]||l,v=n.useMemo(()=>S,Object.values(S));return d.jsx(p.Provider,{value:v,children:C})};u.displayName=c+"Provider";function g(h,I){const C=I?.[e]?.[i]||l,S=n.useContext(C);if(S)return S;if(a!==void 0)return a;throw new Error(`\`${h}\` must be used within \`${c}\``)}return[u,g]}const r=()=>{const c=t.map(a=>n.createContext(a));return function(l){const i=l?.[e]||c;return n.useMemo(()=>({[`__scope${e}`]:{...l,[e]:i}}),[l,i])}};return r.scopeName=e,[s,kt(r,...o)]}function kt(...e){const o=e[0];if(e.length===1)return o;const t=()=>{const s=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(c){const a=s.reduce((l,{useScope:i,scopeName:u})=>{const h=i(c)[`__scope${u}`];return{...l,...h}},{});return n.useMemo(()=>({[`__scope${o.scopeName}`]:a}),[a])}};return t.scopeName=o.scopeName,t}function Ae(e){const o=Vt(e),t=n.forwardRef((s,r)=>{const{children:c,...a}=s,l=n.Children.toArray(c),i=l.find(Ht);if(i){const u=i.props.children,g=l.map(h=>h===i?n.Children.count(u)>1?n.Children.only(null):n.isValidElement(u)?u.props.children:null:h);return d.jsx(o,{...a,ref:r,children:n.isValidElement(u)?n.cloneElement(u,void 0,g):null})}return d.jsx(o,{...a,ref:r,children:c})});return t.displayName=`${e}.Slot`,t}function Vt(e){const o=n.forwardRef((t,s)=>{const{children:r,...c}=t;if(n.isValidElement(r)){const a=Wt(r),l=$t(c,r.props);return r.type!==n.Fragment&&(l.ref=s?Pe(s,a):a),n.cloneElement(r,l)}return n.Children.count(r)>1?n.Children.only(null):null});return o.displayName=`${e}.SlotClone`,o}var Bt=Symbol("radix.slottable");function Ht(e){return n.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Bt}function $t(e,o){const t={...o};for(const s in o){const r=e[s],c=o[s];/^on[A-Z]/.test(s)?r&&c?t[s]=(...l)=>{const i=c(...l);return r(...l),i}:r&&(t[s]=r):s==="style"?t[s]={...r,...c}:s==="className"&&(t[s]=[r,c].filter(Boolean).join(" "))}return{...e,...t}}function Wt(e){let o=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=o&&"isReactWarning"in o&&o.isReactWarning;return t?e.ref:(o=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=o&&"isReactWarning"in o&&o.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}var Ft=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],j=Ft.reduce((e,o)=>{const t=Ae(`Primitive.${o}`),s=n.forwardRef((r,c)=>{const{asChild:a,...l}=r,i=a?t:o;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),d.jsx(i,{...l,ref:c})});return s.displayName=`Primitive.${o}`,{...e,[o]:s}},{});function Ut(e){const o=n.useRef({value:e,previous:e});return n.useMemo(()=>(o.current.value!==e&&(o.current.previous=o.current.value,o.current.value=e),o.current.previous),[e])}function Kt(e){const o=zt(e),t=n.forwardRef((s,r)=>{const{children:c,...a}=s,l=n.Children.toArray(c),i=l.find(Yt);if(i){const u=i.props.children,g=l.map(h=>h===i?n.Children.count(u)>1?n.Children.only(null):n.isValidElement(u)?u.props.children:null:h);return d.jsx(o,{...a,ref:r,children:n.isValidElement(u)?n.cloneElement(u,void 0,g):null})}return d.jsx(o,{...a,ref:r,children:c})});return t.displayName=`${e}.Slot`,t}function zt(e){const o=n.forwardRef((t,s)=>{const{children:r,...c}=t;if(n.isValidElement(r)){const a=Xt(r),l=qt(c,r.props);return r.type!==n.Fragment&&(l.ref=s?Pe(s,a):a),n.cloneElement(r,l)}return n.Children.count(r)>1?n.Children.only(null):null});return o.displayName=`${e}.SlotClone`,o}var Gt=Symbol("radix.slottable");function Yt(e){return n.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Gt}function qt(e,o){const t={...o};for(const s in o){const r=e[s],c=o[s];/^on[A-Z]/.test(s)?r&&c?t[s]=(...l)=>{const i=c(...l);return r(...l),i}:r&&(t[s]=r):s==="style"?t[s]={...r,...c}:s==="className"&&(t[s]=[r,c].filter(Boolean).join(" "))}return{...e,...t}}function Xt(e){let o=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=o&&"isReactWarning"in o&&o.isReactWarning;return t?e.ref:(o=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=o&&"isReactWarning"in o&&o.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}var Zt=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Jt=Zt.reduce((e,o)=>{const t=Kt(`Primitive.${o}`),s=n.forwardRef((r,c)=>{const{asChild:a,...l}=r,i=a?t:o;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),d.jsx(i,{...l,ref:c})});return s.displayName=`Primitive.${o}`,{...e,[o]:s}},{}),Oe=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),Qt="VisuallyHidden",eo=n.forwardRef((e,o)=>d.jsx(Jt.span,{...e,ref:o,style:{...Oe,...e.style}}));eo.displayName=Qt;var to=[" ","Enter","ArrowUp","ArrowDown"],oo=[" ","Enter"],Q="Select",[ce,de,no]=wt(Q),[oe]=Lt(Q,[no,Re]),ue=Re(),[ro,Y]=oe(Q),[so,ao]=oe(Q),De=e=>{const{__scopeSelect:o,children:t,open:s,defaultOpen:r,onOpenChange:c,value:a,defaultValue:l,onValueChange:i,dir:u,name:g,autoComplete:h,disabled:I,required:C,form:S}=e,p=ue(o),[v,w]=n.useState(null),[m,x]=n.useState(null),[W,M]=n.useState(!1),ne=xt(u),[P,O]=Ne({prop:s,defaultProp:r??!1,onChange:c,caller:Q}),[F,X]=Ne({prop:a,defaultProp:l,onChange:i,caller:Q}),k=n.useRef(null),V=v?S||!!v.closest("form"):!0,[U,B]=n.useState(new Set),H=Array.from(U).map(R=>R.props.value).join(";");return d.jsx(St,{...p,children:d.jsxs(ro,{required:C,scope:o,trigger:v,onTriggerChange:w,valueNode:m,onValueNodeChange:x,valueNodeHasChildren:W,onValueNodeHasChildrenChange:M,contentId:be(),value:F,onValueChange:X,open:P,onOpenChange:O,dir:ne,triggerPointerDownPosRef:k,disabled:I,children:[d.jsx(ce.Provider,{scope:o,children:d.jsx(so,{scope:e.__scopeSelect,onNativeOptionAdd:n.useCallback(R=>{B(D=>new Set(D).add(R))},[]),onNativeOptionRemove:n.useCallback(R=>{B(D=>{const $=new Set(D);return $.delete(R),$})},[]),children:t})}),V?d.jsxs(st,{"aria-hidden":!0,required:C,tabIndex:-1,name:g,autoComplete:h,value:F,onChange:R=>X(R.target.value),disabled:I,form:S,children:[F===void 0?d.jsx("option",{value:""}):null,Array.from(U)]},H):null]})})};De.displayName=Q;var Le="SelectTrigger",ke=n.forwardRef((e,o)=>{const{__scopeSelect:t,disabled:s=!1,...r}=e,c=ue(t),a=Y(Le,t),l=a.disabled||s,i=L(o,a.onTriggerChange),u=de(t),g=n.useRef("touch"),[h,I,C]=lt(p=>{const v=u().filter(x=>!x.disabled),w=v.find(x=>x.value===a.value),m=it(v,p,w);m!==void 0&&a.onValueChange(m.value)}),S=p=>{l||(a.onOpenChange(!0),C()),p&&(a.triggerPointerDownPosRef.current={x:Math.round(p.pageX),y:Math.round(p.pageY)})};return d.jsx(yt,{asChild:!0,...c,children:d.jsx(j.button,{type:"button",role:"combobox","aria-controls":a.contentId,"aria-expanded":a.open,"aria-required":a.required,"aria-autocomplete":"none",dir:a.dir,"data-state":a.open?"open":"closed",disabled:l,"data-disabled":l?"":void 0,"data-placeholder":at(a.value)?"":void 0,...r,ref:i,onClick:E(r.onClick,p=>{p.currentTarget.focus(),g.current!=="mouse"&&S(p)}),onPointerDown:E(r.onPointerDown,p=>{g.current=p.pointerType;const v=p.target;v.hasPointerCapture(p.pointerId)&&v.releasePointerCapture(p.pointerId),p.button===0&&p.ctrlKey===!1&&p.pointerType==="mouse"&&(S(p),p.preventDefault())}),onKeyDown:E(r.onKeyDown,p=>{const v=h.current!=="";!(p.ctrlKey||p.altKey||p.metaKey)&&p.key.length===1&&I(p.key),!(v&&p.key===" ")&&to.includes(p.key)&&(S(),p.preventDefault())})})})});ke.displayName=Le;var Ve="SelectValue",Be=n.forwardRef((e,o)=>{const{__scopeSelect:t,className:s,style:r,children:c,placeholder:a="",...l}=e,i=Y(Ve,t),{onValueNodeHasChildrenChange:u}=i,g=c!==void 0,h=L(o,i.onValueNodeChange);return z(()=>{u(g)},[u,g]),d.jsx(j.span,{...l,ref:h,style:{pointerEvents:"none"},children:at(i.value)?d.jsx(d.Fragment,{children:a}):c})});Be.displayName=Ve;var lo="SelectIcon",He=n.forwardRef((e,o)=>{const{__scopeSelect:t,children:s,...r}=e;return d.jsx(j.span,{"aria-hidden":!0,...r,ref:o,children:s||"▼"})});He.displayName=lo;var io="SelectPortal",$e=e=>d.jsx(Ct,{asChild:!0,...e});$e.displayName=io;var ee="SelectContent",We=n.forwardRef((e,o)=>{const t=Y(ee,e.__scopeSelect),[s,r]=n.useState();if(z(()=>{r(new DocumentFragment)},[]),!t.open){const c=s;return c?je.createPortal(d.jsx(Fe,{scope:e.__scopeSelect,children:d.jsx(ce.Slot,{scope:e.__scopeSelect,children:d.jsx("div",{children:e.children})})}),c):null}return d.jsx(Ue,{...e,ref:o})});We.displayName=ee;var A=10,[Fe,q]=oe(ee),co="SelectContentImpl",uo=Ae("SelectContent.RemoveScroll"),Ue=n.forwardRef((e,o)=>{const{__scopeSelect:t,position:s="item-aligned",onCloseAutoFocus:r,onEscapeKeyDown:c,onPointerDownOutside:a,side:l,sideOffset:i,align:u,alignOffset:g,arrowPadding:h,collisionBoundary:I,collisionPadding:C,sticky:S,hideWhenDetached:p,avoidCollisions:v,...w}=e,m=Y(ee,t),[x,W]=n.useState(null),[M,ne]=n.useState(null),P=L(o,f=>W(f)),[O,F]=n.useState(null),[X,k]=n.useState(null),V=de(t),[U,B]=n.useState(!1),H=n.useRef(!1);n.useEffect(()=>{if(x)return It(x)},[x]),Nt();const R=n.useCallback(f=>{const[N,..._]=V().map(T=>T.ref.current),[y]=_.slice(-1),b=document.activeElement;for(const T of f)if(T===b||(T?.scrollIntoView({block:"nearest"}),T===N&&M&&(M.scrollTop=0),T===y&&M&&(M.scrollTop=M.scrollHeight),T?.focus(),document.activeElement!==b))return},[V,M]),D=n.useCallback(()=>R([O,x]),[R,O,x]);n.useEffect(()=>{U&&D()},[U,D]);const{onOpenChange:$,triggerPointerDownPosRef:K}=m;n.useEffect(()=>{if(x){let f={x:0,y:0};const N=y=>{f={x:Math.abs(Math.round(y.pageX)-(K.current?.x??0)),y:Math.abs(Math.round(y.pageY)-(K.current?.y??0))}},_=y=>{f.x<=10&&f.y<=10?y.preventDefault():x.contains(y.target)||$(!1),document.removeEventListener("pointermove",N),K.current=null};return K.current!==null&&(document.addEventListener("pointermove",N),document.addEventListener("pointerup",_,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",_,{capture:!0})}}},[x,$,K]),n.useEffect(()=>{const f=()=>$(!1);return window.addEventListener("blur",f),window.addEventListener("resize",f),()=>{window.removeEventListener("blur",f),window.removeEventListener("resize",f)}},[$]);const[pe,ae]=lt(f=>{const N=V().filter(b=>!b.disabled),_=N.find(b=>b.ref.current===document.activeElement),y=it(N,f,_);y&&setTimeout(()=>y.ref.current.focus())}),fe=n.useCallback((f,N,_)=>{const y=!H.current&&!_;(m.value!==void 0&&m.value===N||y)&&(F(f),y&&(H.current=!0))},[m.value]),me=n.useCallback(()=>x?.focus(),[x]),te=n.useCallback((f,N,_)=>{const y=!H.current&&!_;(m.value!==void 0&&m.value===N||y)&&k(f)},[m.value]),le=s==="popper"?xe:Ke,re=le===xe?{side:l,sideOffset:i,align:u,alignOffset:g,arrowPadding:h,collisionBoundary:I,collisionPadding:C,sticky:S,hideWhenDetached:p,avoidCollisions:v}:{};return d.jsx(Fe,{scope:t,content:x,viewport:M,onViewportChange:ne,itemRefCallback:fe,selectedItem:O,onItemLeave:me,itemTextRefCallback:te,focusSelectedItem:D,selectedItemText:X,position:s,isPositioned:U,searchRef:pe,children:d.jsx(Tt,{as:uo,allowPinchZoom:!0,children:d.jsx(Et,{asChild:!0,trapped:m.open,onMountAutoFocus:f=>{f.preventDefault()},onUnmountAutoFocus:E(r,f=>{m.trigger?.focus({preventScroll:!0}),f.preventDefault()}),children:d.jsx(Pt,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:c,onPointerDownOutside:a,onFocusOutside:f=>f.preventDefault(),onDismiss:()=>m.onOpenChange(!1),children:d.jsx(le,{role:"listbox",id:m.contentId,"data-state":m.open?"open":"closed",dir:m.dir,onContextMenu:f=>f.preventDefault(),...w,...re,onPlaced:()=>B(!0),ref:P,style:{display:"flex",flexDirection:"column",outline:"none",...w.style},onKeyDown:E(w.onKeyDown,f=>{const N=f.ctrlKey||f.altKey||f.metaKey;if(f.key==="Tab"&&f.preventDefault(),!N&&f.key.length===1&&ae(f.key),["ArrowUp","ArrowDown","Home","End"].includes(f.key)){let y=V().filter(b=>!b.disabled).map(b=>b.ref.current);if(["ArrowUp","End"].includes(f.key)&&(y=y.slice().reverse()),["ArrowUp","ArrowDown"].includes(f.key)){const b=f.target,T=y.indexOf(b);y=y.slice(T+1)}setTimeout(()=>R(y)),f.preventDefault()}})})})})})})});Ue.displayName=co;var po="SelectItemAlignedPosition",Ke=n.forwardRef((e,o)=>{const{__scopeSelect:t,onPlaced:s,...r}=e,c=Y(ee,t),a=q(ee,t),[l,i]=n.useState(null),[u,g]=n.useState(null),h=L(o,P=>g(P)),I=de(t),C=n.useRef(!1),S=n.useRef(!0),{viewport:p,selectedItem:v,selectedItemText:w,focusSelectedItem:m}=a,x=n.useCallback(()=>{if(c.trigger&&c.valueNode&&l&&u&&p&&v&&w){const P=c.trigger.getBoundingClientRect(),O=u.getBoundingClientRect(),F=c.valueNode.getBoundingClientRect(),X=w.getBoundingClientRect();if(c.dir!=="rtl"){const b=X.left-O.left,T=F.left-b,Z=P.left-T,J=P.width+Z,he=Math.max(J,O.width),ve=window.innerWidth-A,ge=Te(T,[A,Math.max(A,ve-he)]);l.style.minWidth=J+"px",l.style.left=ge+"px"}else{const b=O.right-X.right,T=window.innerWidth-F.right-b,Z=window.innerWidth-P.right-T,J=P.width+Z,he=Math.max(J,O.width),ve=window.innerWidth-A,ge=Te(T,[A,Math.max(A,ve-he)]);l.style.minWidth=J+"px",l.style.right=ge+"px"}const k=I(),V=window.innerHeight-A*2,U=p.scrollHeight,B=window.getComputedStyle(u),H=parseInt(B.borderTopWidth,10),R=parseInt(B.paddingTop,10),D=parseInt(B.borderBottomWidth,10),$=parseInt(B.paddingBottom,10),K=H+R+U+$+D,pe=Math.min(v.offsetHeight*5,K),ae=window.getComputedStyle(p),fe=parseInt(ae.paddingTop,10),me=parseInt(ae.paddingBottom,10),te=P.top+P.height/2-A,le=V-te,re=v.offsetHeight/2,f=v.offsetTop+re,N=H+R+f,_=K-N;if(N<=te){const b=k.length>0&&v===k[k.length-1].ref.current;l.style.bottom="0px";const T=u.clientHeight-p.offsetTop-p.offsetHeight,Z=Math.max(le,re+(b?me:0)+T+D),J=N+Z;l.style.height=J+"px"}else{const b=k.length>0&&v===k[0].ref.current;l.style.top="0px";const Z=Math.max(te,H+p.offsetTop+(b?fe:0)+re)+_;l.style.height=Z+"px",p.scrollTop=N-te+p.offsetTop}l.style.margin=`${A}px 0`,l.style.minHeight=pe+"px",l.style.maxHeight=V+"px",s?.(),requestAnimationFrame(()=>C.current=!0)}},[I,c.trigger,c.valueNode,l,u,p,v,w,c.dir,s]);z(()=>x(),[x]);const[W,M]=n.useState();z(()=>{u&&M(window.getComputedStyle(u).zIndex)},[u]);const ne=n.useCallback(P=>{P&&S.current===!0&&(x(),m?.(),S.current=!1)},[x,m]);return d.jsx(mo,{scope:t,contentWrapper:l,shouldExpandOnScrollRef:C,onScrollButtonChange:ne,children:d.jsx("div",{ref:i,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:W},children:d.jsx(j.div,{...r,ref:h,style:{boxSizing:"border-box",maxHeight:"100%",...r.style}})})})});Ke.displayName=po;var fo="SelectPopperPosition",xe=n.forwardRef((e,o)=>{const{__scopeSelect:t,align:s="start",collisionPadding:r=A,...c}=e,a=ue(t);return d.jsx(Rt,{...a,...c,ref:o,align:s,collisionPadding:r,style:{boxSizing:"border-box",...c.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});xe.displayName=fo;var[mo,Ie]=oe(ee,{}),Se="SelectViewport",ze=n.forwardRef((e,o)=>{const{__scopeSelect:t,nonce:s,...r}=e,c=q(Se,t),a=Ie(Se,t),l=L(o,c.onViewportChange),i=n.useRef(0);return d.jsxs(d.Fragment,{children:[d.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:s}),d.jsx(ce.Slot,{scope:t,children:d.jsx(j.div,{"data-radix-select-viewport":"",role:"presentation",...r,ref:l,style:{position:"relative",flex:1,overflow:"hidden auto",...r.style},onScroll:E(r.onScroll,u=>{const g=u.currentTarget,{contentWrapper:h,shouldExpandOnScrollRef:I}=a;if(I?.current&&h){const C=Math.abs(i.current-g.scrollTop);if(C>0){const S=window.innerHeight-A*2,p=parseFloat(h.style.minHeight),v=parseFloat(h.style.height),w=Math.max(p,v);if(w<S){const m=w+C,x=Math.min(S,m),W=m-x;h.style.height=x+"px",h.style.bottom==="0px"&&(g.scrollTop=W>0?W:0,h.style.justifyContent="flex-end")}}}i.current=g.scrollTop})})})]})});ze.displayName=Se;var Ge="SelectGroup",[ho,vo]=oe(Ge),go=n.forwardRef((e,o)=>{const{__scopeSelect:t,...s}=e,r=be();return d.jsx(ho,{scope:t,id:r,children:d.jsx(j.div,{role:"group","aria-labelledby":r,...s,ref:o})})});go.displayName=Ge;var Ye="SelectLabel",qe=n.forwardRef((e,o)=>{const{__scopeSelect:t,...s}=e,r=vo(Ye,t);return d.jsx(j.div,{id:r.id,...s,ref:o})});qe.displayName=Ye;var ie="SelectItem",[xo,Xe]=oe(ie),Ze=n.forwardRef((e,o)=>{const{__scopeSelect:t,value:s,disabled:r=!1,textValue:c,...a}=e,l=Y(ie,t),i=q(ie,t),u=l.value===s,[g,h]=n.useState(c??""),[I,C]=n.useState(!1),S=L(o,m=>i.itemRefCallback?.(m,s,r)),p=be(),v=n.useRef("touch"),w=()=>{r||(l.onValueChange(s),l.onOpenChange(!1))};if(s==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return d.jsx(xo,{scope:t,value:s,disabled:r,textId:p,isSelected:u,onItemTextChange:n.useCallback(m=>{h(x=>x||(m?.textContent??"").trim())},[]),children:d.jsx(ce.ItemSlot,{scope:t,value:s,disabled:r,textValue:g,children:d.jsx(j.div,{role:"option","aria-labelledby":p,"data-highlighted":I?"":void 0,"aria-selected":u&&I,"data-state":u?"checked":"unchecked","aria-disabled":r||void 0,"data-disabled":r?"":void 0,tabIndex:r?void 0:-1,...a,ref:S,onFocus:E(a.onFocus,()=>C(!0)),onBlur:E(a.onBlur,()=>C(!1)),onClick:E(a.onClick,()=>{v.current!=="mouse"&&w()}),onPointerUp:E(a.onPointerUp,()=>{v.current==="mouse"&&w()}),onPointerDown:E(a.onPointerDown,m=>{v.current=m.pointerType}),onPointerMove:E(a.onPointerMove,m=>{v.current=m.pointerType,r?i.onItemLeave?.():v.current==="mouse"&&m.currentTarget.focus({preventScroll:!0})}),onPointerLeave:E(a.onPointerLeave,m=>{m.currentTarget===document.activeElement&&i.onItemLeave?.()}),onKeyDown:E(a.onKeyDown,m=>{i.searchRef?.current!==""&&m.key===" "||(oo.includes(m.key)&&w(),m.key===" "&&m.preventDefault())})})})})});Ze.displayName=ie;var se="SelectItemText",Je=n.forwardRef((e,o)=>{const{__scopeSelect:t,className:s,style:r,...c}=e,a=Y(se,t),l=q(se,t),i=Xe(se,t),u=ao(se,t),[g,h]=n.useState(null),I=L(o,w=>h(w),i.onItemTextChange,w=>l.itemTextRefCallback?.(w,i.value,i.disabled)),C=g?.textContent,S=n.useMemo(()=>d.jsx("option",{value:i.value,disabled:i.disabled,children:C},i.value),[i.disabled,i.value,C]),{onNativeOptionAdd:p,onNativeOptionRemove:v}=u;return z(()=>(p(S),()=>v(S)),[p,v,S]),d.jsxs(d.Fragment,{children:[d.jsx(j.span,{id:i.textId,...c,ref:I}),i.isSelected&&a.valueNode&&!a.valueNodeHasChildren?je.createPortal(c.children,a.valueNode):null]})});Je.displayName=se;var Qe="SelectItemIndicator",et=n.forwardRef((e,o)=>{const{__scopeSelect:t,...s}=e;return Xe(Qe,t).isSelected?d.jsx(j.span,{"aria-hidden":!0,...s,ref:o}):null});et.displayName=Qe;var we="SelectScrollUpButton",tt=n.forwardRef((e,o)=>{const t=q(we,e.__scopeSelect),s=Ie(we,e.__scopeSelect),[r,c]=n.useState(!1),a=L(o,s.onScrollButtonChange);return z(()=>{if(t.viewport&&t.isPositioned){let l=function(){const u=i.scrollTop>0;c(u)};const i=t.viewport;return l(),i.addEventListener("scroll",l),()=>i.removeEventListener("scroll",l)}},[t.viewport,t.isPositioned]),r?d.jsx(nt,{...e,ref:a,onAutoScroll:()=>{const{viewport:l,selectedItem:i}=t;l&&i&&(l.scrollTop=l.scrollTop-i.offsetHeight)}}):null});tt.displayName=we;var ye="SelectScrollDownButton",ot=n.forwardRef((e,o)=>{const t=q(ye,e.__scopeSelect),s=Ie(ye,e.__scopeSelect),[r,c]=n.useState(!1),a=L(o,s.onScrollButtonChange);return z(()=>{if(t.viewport&&t.isPositioned){let l=function(){const u=i.scrollHeight-i.clientHeight,g=Math.ceil(i.scrollTop)<u;c(g)};const i=t.viewport;return l(),i.addEventListener("scroll",l),()=>i.removeEventListener("scroll",l)}},[t.viewport,t.isPositioned]),r?d.jsx(nt,{...e,ref:a,onAutoScroll:()=>{const{viewport:l,selectedItem:i}=t;l&&i&&(l.scrollTop=l.scrollTop+i.offsetHeight)}}):null});ot.displayName=ye;var nt=n.forwardRef((e,o)=>{const{__scopeSelect:t,onAutoScroll:s,...r}=e,c=q("SelectScrollButton",t),a=n.useRef(null),l=de(t),i=n.useCallback(()=>{a.current!==null&&(window.clearInterval(a.current),a.current=null)},[]);return n.useEffect(()=>()=>i(),[i]),z(()=>{l().find(g=>g.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[l]),d.jsx(j.div,{"aria-hidden":!0,...r,ref:o,style:{flexShrink:0,...r.style},onPointerDown:E(r.onPointerDown,()=>{a.current===null&&(a.current=window.setInterval(s,50))}),onPointerMove:E(r.onPointerMove,()=>{c.onItemLeave?.(),a.current===null&&(a.current=window.setInterval(s,50))}),onPointerLeave:E(r.onPointerLeave,()=>{i()})})}),So="SelectSeparator",rt=n.forwardRef((e,o)=>{const{__scopeSelect:t,...s}=e;return d.jsx(j.div,{"aria-hidden":!0,...s,ref:o})});rt.displayName=So;var Ce="SelectArrow",wo=n.forwardRef((e,o)=>{const{__scopeSelect:t,...s}=e,r=ue(t),c=Y(Ce,t),a=q(Ce,t);return c.open&&a.position==="popper"?d.jsx(_t,{...r,...s,ref:o}):null});wo.displayName=Ce;var yo="SelectBubbleInput",st=n.forwardRef(({__scopeSelect:e,value:o,...t},s)=>{const r=n.useRef(null),c=L(s,r),a=Ut(o);return n.useEffect(()=>{const l=r.current;if(!l)return;const i=window.HTMLSelectElement.prototype,g=Object.getOwnPropertyDescriptor(i,"value").set;if(a!==o&&g){const h=new Event("change",{bubbles:!0});g.call(l,o),l.dispatchEvent(h)}},[a,o]),d.jsx(j.select,{...t,style:{...Oe,...t.style},ref:c,defaultValue:o})});st.displayName=yo;function at(e){return e===""||e===void 0}function lt(e){const o=bt(e),t=n.useRef(""),s=n.useRef(0),r=n.useCallback(a=>{const l=t.current+a;o(l),function i(u){t.current=u,window.clearTimeout(s.current),u!==""&&(s.current=window.setTimeout(()=>i(""),1e3))}(l)},[o]),c=n.useCallback(()=>{t.current="",window.clearTimeout(s.current)},[]);return n.useEffect(()=>()=>window.clearTimeout(s.current),[]),[t,r,c]}function it(e,o,t){const r=o.length>1&&Array.from(o).every(u=>u===o[0])?o[0]:o,c=t?e.indexOf(t):-1;let a=Co(e,Math.max(c,0));r.length===1&&(a=a.filter(u=>u!==t));const i=a.find(u=>u.textValue.toLowerCase().startsWith(r.toLowerCase()));return i!==t?i:void 0}function Co(e,o){return e.map((t,s)=>e[(o+s)%e.length])}var bo=De,ct=ke,Io=Be,No=He,To=$e,dt=We,Eo=ze,ut=qe,pt=Ze,Po=Je,Ro=et,ft=tt,mt=ot,ht=rt;const Go=bo,Yo=Io,_o=n.forwardRef(({className:e,children:o,...t},s)=>d.jsxs(ct,{ref:s,className:G("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background","placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...t,children:[o,d.jsx(No,{asChild:!0,children:d.jsx(_e,{className:"h-4 w-4 opacity-50"})})]}));_o.displayName=ct.displayName;const vt=n.forwardRef(({className:e,...o},t)=>d.jsx(ft,{ref:t,className:G("flex cursor-default items-center justify-center py-1",e),...o,children:d.jsx(Mt,{className:"h-4 w-4"})}));vt.displayName=ft.displayName;const gt=n.forwardRef(({className:e,...o},t)=>d.jsx(mt,{ref:t,className:G("flex cursor-default items-center justify-center py-1",e),...o,children:d.jsx(_e,{className:"h-4 w-4"})}));gt.displayName=mt.displayName;const jo=n.forwardRef(({className:e,children:o,position:t="popper",...s},r)=>d.jsx(To,{children:d.jsxs(dt,{ref:r,className:G("relative z-[10002] max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:t,...s,children:[d.jsx(vt,{}),d.jsx(Eo,{className:G("p-1",t==="popper"&&"w-full min-w-[var(--radix-select-trigger-width)] max-h-[var(--radix-select-content-available-height)]"),children:o}),d.jsx(gt,{})]})}));jo.displayName=dt.displayName;const Mo=n.forwardRef(({className:e,...o},t)=>d.jsx(ut,{ref:t,className:G("py-1.5 pl-8 pr-2 text-sm font-semibold",e),...o}));Mo.displayName=ut.displayName;const Ao=n.forwardRef(({className:e,children:o,...t},s)=>d.jsxs(pt,{ref:s,className:G("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-accent focus:text-accent-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...t,children:[d.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:d.jsx(Ro,{children:d.jsx(jt,{className:"h-4 w-4"})})}),d.jsx(Po,{children:o})]}));Ao.displayName=pt.displayName;const Oo=n.forwardRef(({className:e,...o},t)=>d.jsx(ht,{ref:t,className:G("-mx-1 my-1 h-px bg-muted",e),...o}));Oo.displayName=ht.displayName;export{Ko as D,Bo as L,Go as S,Uo as T,_o as a,Yo as b,jo as c,Ao as d,Ho as e,$o as f,zo as g,Fo as j,Me as n,Wo as s};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{y as a}from"./index-CBNVuWcP.js";/**
|
|
2
|
+
* @license lucide-react v0.511.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const o=[["path",{d:"M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2",key:"wuwx1p"}]],e=a("sigma",o);export{e as S};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{y as o}from"./index-CBNVuWcP.js";/**
|
|
2
|
+
* @license lucide-react v0.511.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const e=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],c=o("arrow-down",e);/**
|
|
7
|
+
* @license lucide-react v0.511.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/const t=[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}]],d=o("trash",t);export{c as A,d as T};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as a}from"./plugin-monaco-C8UgLomw.js";import{t as ue,w as le,v as fe,x as de,P as c,V as he}from"./index-CBNVuWcP.js";const L=new Map,ee="ds_cli_client_id";let F=null;function Ce(){const t={connected:!1,connect:()=>t,disconnect:()=>t,on:()=>t,off:()=>t,emit:()=>!0};return t}function re(){if(F)return F;let t="";if(typeof window<"u")try{t=window.localStorage.getItem(ee)||""}catch{t=""}if(!t){try{t=crypto.randomUUID()}catch{t=`cli-${Date.now()}-${Math.random().toString(16).slice(2,10)}`}if(typeof window<"u")try{window.localStorage.setItem(ee,t)}catch{}}return F=t,t}function me(t={}){if(!ue())return{socket:Ce(),release:()=>{}};const e=le(),s=`${e}::user`;let r=L.get(s);return r||(r={socket:fe(`${e}/cli`,{path:"/ws/socket.io",autoConnect:!1,transports:["websocket","polling"],auth:f=>{const h=re(),y="cli.v1",N=de.getState().accessToken||(typeof window<"u"?window.localStorage.getItem("ds_access_token"):null);f({token:N||null,client_id:h,protocol_version:y})}}),refCount:0},L.set(s,r)),r.refCount+=1,r.socket.connected||r.socket.connect(),{socket:r.socket,release:()=>{const l=L.get(s);l&&(l.refCount-=1,l.refCount<=0&&(l.socket.disconnect(),L.delete(s)))}}}function Ee(t){return t&&typeof t=="object"&&"payload"in t?t.payload:t}let te=0;function ve(){return te+=1,te}function ne(t,e={}){return{protocol_version:"cli.v1",ts:new Date().toISOString(),payload:t,...e}}const se={[c.DISCONNECTED]:{CONNECT:c.CONNECTING},[c.CONNECTING]:{AUTH_SUCCESS:c.AUTHENTICATING,DISCONNECT:c.DISCONNECTED,CONNECTION_LOST:c.RECONNECTING},[c.AUTHENTICATING]:{AUTH_SUCCESS:c.CONNECTED,AUTH_FAILURE:c.FAILED,CONNECTION_LOST:c.RECONNECTING},[c.CONNECTED]:{DISCONNECT:c.DISCONNECTED,CONNECTION_LOST:c.RECONNECTING,SUSPEND:c.SUSPENDED},[c.RECONNECTING]:{RECONNECT_SUCCESS:c.CONNECTED,MAX_RETRIES_EXCEEDED:c.FAILED,DISCONNECT:c.DISCONNECTED},[c.SUSPENDED]:{RESUME:c.CONNECTING,DISCONNECT:c.DISCONNECTED},[c.FAILED]:{CONNECT:c.CONNECTING,DISCONNECT:c.DISCONNECTED}};class pe{state=c.DISCONNECTED;listeners=new Set;getState(){return this.state}sendEvent(e){const s=se[this.state]?.[e.type];if(!s)return console.warn(`Invalid connection transition: ${this.state} -> ${e.type}`),!1;const r=this.state;return this.state=s,this.notifyListeners(s,e),r!==s&&console.debug(`[CLI] Connection state: ${r} -> ${s} (${e.type})`),!0}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}canSendEvent(e){return!!se[this.state]?.[e]}reset(){this.state=c.DISCONNECTED}notifyListeners(e,s){this.listeners.forEach(r=>r(e,s))}}class Se{metrics={totalConnections:0,successfulConnections:0,failedConnections:0,reconnectionAttempts:0,averageReconnectTime:0,messagesBuffered:0,messagesDropped:0};recordConnection(){this.metrics.totalConnections+=1}recordConnectionSuccess(){this.metrics.successfulConnections+=1}recordConnectionFailure(){this.metrics.failedConnections+=1}recordReconnectionAttempt(e){this.metrics.reconnectionAttempts+=1;const s=this.metrics.reconnectionAttempts;this.metrics.averageReconnectTime=(this.metrics.averageReconnectTime*(s-1)+e)/s}recordMessageBuffered(e=1){this.metrics.messagesBuffered+=e}recordMessageDropped(e=1){this.metrics.messagesDropped+=e}getMetrics(){return{...this.metrics}}}class Ne{buffer=[];maxSize;onOverflow;constructor(e={}){this.maxSize=e.maxSize??1e3,this.onOverflow=e.onOverflow??"drop_oldest"}enqueue(e){if(this.pruneExpired(),this.buffer.length>=this.maxSize)switch(this.onOverflow){case"drop_oldest":{this.buffer.sort((r,l)=>{const f={high:0,normal:1,low:2};return f[l.priority]-f[r.priority]||r.timestamp-l.timestamp}),this.buffer.pop();break}case"drop_newest":return!1;case"reject":throw new Error("Message buffer overflow")}const s={...e,id:crypto.randomUUID(),timestamp:Date.now()};return this.buffer.push(s),!0}flush(){this.pruneExpired();const e=[...this.buffer].sort((s,r)=>{const l={high:0,normal:1,low:2},f=l[s.priority]-l[r.priority];return f!==0?f:s.timestamp-r.timestamp});return this.buffer=[],e}getStatus(){return{size:this.buffer.length,maxSize:this.maxSize,oldestTimestamp:this.buffer.length>0?Math.min(...this.buffer.map(e=>e.timestamp)):null}}clear(){this.buffer=[]}countByPriority(e){return this.buffer.filter(s=>s.priority===e).length}pruneExpired(){const e=Date.now();this.buffer=this.buffer.filter(s=>s.maxAge?e-s.timestamp<s.maxAge:!0)}}const ge={initialDelay:1e3,maxDelay:3e5,maxRetries:30,backoffMultiplier:1.5,jitterFactor:.2};class we{config;retryCount=0;currentTimeout=null;listeners=new Set;constructor(e={}){this.config={...ge,...e}}calculateDelay(){const e=Math.min(this.config.initialDelay*Math.pow(this.config.backoffMultiplier,this.retryCount),this.config.maxDelay),s=e*this.config.jitterFactor*(Math.random()*2-1);return Math.max(0,Math.floor(e+s))}scheduleReconnect(e){if(this.retryCount>=this.config.maxRetries){this.notifyListeners({status:"failed",message:`Max retries reached (${this.config.maxRetries})`});return}const s=this.calculateDelay();this.retryCount+=1,this.notifyListeners({status:"waiting",retryCount:this.retryCount,maxRetries:this.config.maxRetries,nextRetryIn:s}),this.currentTimeout=setTimeout(async()=>{this.notifyListeners({status:"reconnecting",retryCount:this.retryCount});try{if(await e()){this.reset(),this.notifyListeners({status:"connected"});return}}catch(r){console.error("[CLI] Reconnect failed:",r)}this.scheduleReconnect(e)},s)}reset(){this.retryCount=0,this.currentTimeout&&(clearTimeout(this.currentTimeout),this.currentTimeout=null)}cancel(){this.reset(),this.notifyListeners({status:"cancelled"})}retryNow(e){this.cancel(),this.retryCount=0,this.scheduleReconnect(e)}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}getRetryCount(){return this.retryCount}notifyListeners(e){this.listeners.forEach(s=>s(e))}}const ye="CLI server offline. Please ensure the CLI is running.",Te=t=>{const e=t.toLowerCase();return e.includes("cli server")&&(e.includes("not connected")||e.includes("offline"))||e.includes("cli_server_not_connected")||e.includes("cli_server_offline")?ye:t};function ke(t){const{projectId:e,serverId:s,handlers:r}=t,l=a.useRef(re()),f=a.useRef(new we),h=a.useRef(!1),y=a.useRef(new Ne),N=a.useRef(new pe),E=a.useRef(new Se),I=a.useRef(null),_=a.useRef(!1),O=a.useRef(null),b=a.useRef(()=>{}),[P,p]=a.useState(()=>({state:N.current.getState(),bufferedMessages:0,metrics:E.current.getMetrics()})),{socket:n,release:B}=a.useMemo(()=>me(),[]),w=a.useCallback(()=>{p(i=>({...i,metrics:E.current.getMetrics()}))},[]),A=a.useCallback(()=>{const i=y.current.getStatus();p(C=>({...C,bufferedMessages:i.size,metrics:E.current.getMetrics()}))},[]),R=a.useCallback((i,C,S={},u)=>{if(!e||!s)return;const d=ne(C,{project_id:e,server_id:s,client_id:l.current,...S});if(!n.connected){try{y.current.enqueue({type:i,payload:d,priority:u?.priority??"normal",maxAge:u?.maxAge})?E.current.recordMessageBuffered():(E.current.recordMessageDropped(),w(),r?.onError?.("Message buffer full; dropping newest message"))}catch(g){E.current.recordMessageDropped(),w(),r?.onError?.(g instanceof Error?g.message:"Message buffer error")}A();return}n.emit(i,d)},[e,s,n,r,A,w]),M=a.useCallback(()=>{if(!n.connected)return;y.current.flush().forEach(C=>n.emit(C.type,C.payload)),A()},[n,A]),v=a.useCallback(async()=>{if(!e||!s)return!1;if(O.current)return O.current;const i=Date.now(),C=ne({},{project_id:e,server_id:s,client_id:l.current});E.current.recordConnection(),w();const S=new Promise(u=>{n.timeout(3e3).emit("cli:subscribe",C,d=>{if(O.current=null,d){_.current=!1,E.current.recordConnectionFailure(),w();const T=N.current.getState();T===c.AUTHENTICATING&&N.current.canSendEvent("AUTH_FAILURE")&&N.current.sendEvent({type:"AUTH_FAILURE",error:d.message}),T===c.RECONNECTING&&b.current(),p(U=>({...U,lastError:d.message})),u(!1);return}const g=Date.now()-i,m=N.current.getState();m===c.RECONNECTING?N.current.sendEvent({type:"RECONNECT_SUCCESS"}):m===c.AUTHENTICATING&&N.current.sendEvent({type:"AUTH_SUCCESS"}),_.current=!0,E.current.recordConnectionSuccess(),w(),f.current.reset(),h.current=!1,p(T=>({...T,latencyMs:g,lastConnectedAt:Date.now()})),u(!0)})});return O.current=S,S},[e,s,n,w]),H=a.useCallback(async()=>{if(n.connected&&_.current)return!0;if(!n.connected&&!await new Promise(S=>{let u=!1;const d=window.setTimeout(()=>{u||(u=!0,T(),S(!1))},4e3),g=()=>{u||(u=!0,T(),S(!0))},m=()=>{u||(u=!0,T(),S(!1))},T=()=>{window.clearTimeout(d),n.off("connect",g),n.off("connect_error",m)};n.once("connect",g),n.once("connect_error",m),n.connect()}))return!1;const i=await v();return i&&M(),i},[n,v,M]),k=a.useCallback(()=>{h.current||(h.current=!0,f.current.scheduleReconnect(H))},[H]);b.current=k,a.useEffect(()=>{const i=N.current,C=i.subscribe((u,d)=>{p(g=>({...g,state:u,lastError:d.type==="AUTH_FAILURE"?d.error:g.lastError}))}),S=f.current.subscribe(u=>{if(u.status==="waiting"){I.current=null,p(d=>({...d,reconnectAttempts:u.retryCount,nextRetryIn:u.nextRetryIn}));return}if(u.status==="reconnecting"){I.current||(I.current=Date.now()),p(d=>({...d,reconnectAttempts:u.retryCount,nextRetryIn:void 0}));return}if(u.status==="failed"){h.current=!1,E.current.recordConnectionFailure(),w(),i.canSendEvent("MAX_RETRIES_EXCEEDED")&&i.sendEvent({type:"MAX_RETRIES_EXCEEDED"}),p(d=>({...d,lastError:u.message}));return}if(u.status==="connected"){h.current=!1,I.current&&(E.current.recordReconnectionAttempt(Date.now()-I.current),w(),I.current=null),p(d=>({...d,reconnectAttempts:0,nextRetryIn:void 0}));return}u.status==="cancelled"&&(h.current=!1,I.current=null,p(d=>({...d,reconnectAttempts:0,nextRetryIn:void 0})))});return()=>{C(),S()}},[w]),a.useEffect(()=>{if(!e||!s)return;const i=N.current;i.canSendEvent("CONNECT")&&i.sendEvent({type:"CONNECT"});const C=async()=>{const o=i.getState();o===c.CONNECTING&&i.canSendEvent("AUTH_SUCCESS")&&i.sendEvent({type:"AUTH_SUCCESS"}),o!==c.RECONNECTING&&await v()&&M()},S=o=>{_.current=!1,i.canSendEvent("CONNECTION_LOST")&&i.sendEvent({type:"CONNECTION_LOST"}),o&&p(D=>({...D,lastError:`Disconnected: ${o}`})),k()},u=o=>{_.current=!1;const D=o instanceof Error?o.message:"Connection error";p(x=>({...x,lastError:D})),r?.onError?.(D),E.current.recordConnectionFailure(),w(),i.canSendEvent("CONNECTION_LOST")&&i.sendEvent({type:"CONNECTION_LOST"}),k()},d=o=>{r?.onTerminalOutput?.(o)},g=o=>{r?.onStatusUpdate?.(o)},m=o=>{r?.onFileResponse?.(o)},T=o=>{r?.onConfirmRequired?.(o)},U=o=>{r?.onBlocked?.(o)},j=o=>{r?.onSessionCreated?.(o)},z=o=>{r?.onSessionAttached?.(o)},q=o=>{r?.onSessionDetached?.(o)},X=o=>{r?.onSessionClosed?.(o)},V=o=>{r?.onSessionError?.(o)},K=o=>{r?.onMethodStatus?.(o)},Y=o=>{r?.onMethodDone?.(o)},J=o=>{r?.onMethodError?.(o)},Q=o=>{r?.onMethodListResponse?.(o)},W=o=>{r?.onMethodGetResponse?.(o)},Z=o=>{const D=typeof o?.message=="string"&&o.message?o.message:"CLI server error",x=typeof o?.event=="string"&&o.event?` (${o.event})`:"",ae=Te(D);r?.onError?.(`${ae}${x}`)};return n.on("connect",C),n.on("disconnect",S),n.on("connect_error",u),n.on("cli:terminal:output",d),n.on("cli:status:update",g),n.on("cli:file:list:response",m),n.on("cli:file:content:response",m),n.on("cli:file:download:response",m),n.on("cli:file:write:response",m),n.on("cli:file:delete:response",m),n.on("cli:terminal:confirm_required",T),n.on("cli:terminal:blocked",U),n.on("cli:session:created",j),n.on("cli:session:attached",z),n.on("cli:session:detached",q),n.on("cli:session:closed",X),n.on("cli:session:error",V),n.on("cli:method:status",K),n.on("cli:method:done",Y),n.on("cli:method:error",J),n.on("cli:method:list:response",Q),n.on("cli:method:get:response",W),n.on("cli:error",Z),n.connected||n.connect(),()=>{n.off("connect",C),n.off("disconnect",S),n.off("connect_error",u),n.off("cli:terminal:output",d),n.off("cli:status:update",g),n.off("cli:file:list:response",m),n.off("cli:file:content:response",m),n.off("cli:file:download:response",m),n.off("cli:file:write:response",m),n.off("cli:file:delete:response",m),n.off("cli:terminal:confirm_required",T),n.off("cli:terminal:blocked",U),n.off("cli:session:created",j),n.off("cli:session:attached",z),n.off("cli:session:detached",q),n.off("cli:session:closed",X),n.off("cli:session:error",V),n.off("cli:method:status",K),n.off("cli:method:done",Y),n.off("cli:method:error",J),n.off("cli:method:list:response",Q),n.off("cli:method:get:response",W),n.off("cli:error",Z),f.current.cancel(),B()}},[e,s,n,B,v,M,r,k,w]);const oe=a.useCallback(i=>{const C={data:i.data,confirmed:i.confirmed};i.mode&&(C.mode=i.mode),R("cli:terminal:input",C,{session_id:i.sessionId,seq:i.seq,operation_id:i.operationId},{priority:"high"})},[R]),ie=a.useCallback(i=>{R("cli:terminal:resize",{cols:i.cols,rows:i.rows},{session_id:i.sessionId},{priority:"low",maxAge:2e3})},[R]),ce=a.useCallback((i,C,S)=>{R(i,C,S)},[R]);return{socket:n,status:P,emitEnvelope:R,sendTerminalInput:oe,sendTerminalResize:ie,sendFileRequest:ce,unwrapPayload:Ee}}const Ie="6f07d9a4-0e31-4f69-9ad4-b6295b6e4d2e";function _e(t){const e=t.replace(/-/g,""),s=new Uint8Array(16);for(let r=0;r<16;r+=1)s[r]=Number.parseInt(e.slice(r*2,r*2+2),16);return s}function be(t){const e=Array.from(t).map(s=>s.toString(16).padStart(2,"0")).join("");return`${e.slice(0,8)}-${e.slice(8,12)}-${e.slice(12,16)}-${e.slice(16,20)}-${e.slice(20,32)}`}function $(t,e){let s=2166136261^e;for(let r=0;r<t.length;r+=1)s^=t.charCodeAt(r),s=Math.imul(s,16777619);return s>>>0}function Re(t){const e=$(t,1).toString(16).padStart(8,"0"),s=$(t,2).toString(16).padStart(8,"0"),r=$(t,3).toString(16).padStart(8,"0"),l=$(t,4).toString(16).padStart(8,"0"),f=`${e}${s}${r}${l}`.slice(0,32);return`${f.slice(0,8)}-${f.slice(8,12)}-5${f.slice(13,16)}-a${f.slice(17,20)}-${f.slice(20,32)}`}async function G(t,e=Ie){const s=_e(e),r=new TextEncoder().encode(t),l=new Uint8Array(s.length+r.length);if(l.set(s,0),l.set(r,s.length),typeof crypto<"u"&&crypto.subtle?.digest){const h=new Uint8Array(await crypto.subtle.digest("SHA-1",l)).slice(0,16);return h[6]=h[6]&15|80,h[8]=h[8]&63|128,be(h)}return Re(`${e}:${t}`)}async function Ue(t,e){return G(`${t}:${e}:default`)}async function Le(t,e,s){return G(`${t}:${e}:${s}`)}async function $e(t,e,s){return G(`${t}:${e}:${s}`)}function De(t){return t?t==="owner"?"owner":t==="admin"?"admin":t==="editor"?"edit":t==="viewer"?"view":"none":"none"}function Oe(t,e){const s=e?.allowTerminalInput??!0,r=e?.allowFileEdit??!0;return{...{view_server_status:t!=="none",view_terminal_output:t!=="none",view_operation_logs:t!=="none",view_files:t!=="none",view_tasks:t!=="none",view_findings:t!=="none"},...{terminal_input:t!=="none"&&t!=="view"&&s,file_upload:t!=="none"&&t!=="view"&&r,file_download:t==="admin"||t==="owner"||t==="edit"&&r,file_edit:t!=="none"&&t!=="view"&&r,file_delete:t!=="none"&&t!=="view"&&r},...{manage_sessions:t==="admin"||t==="owner",manage_permissions:t==="admin"||t==="owner",disconnect_server:t==="admin"||t==="owner",view_all_user_logs:t==="admin"||t==="owner",delete_server:t==="owner"}}}function xe(t){const{projectId:e,serverId:s,readOnly:r}=t,[l,f]=a.useState("none"),[h,y]=a.useState(null),[N,E]=a.useState(!1),[I,_]=a.useState(null);a.useEffect(()=>{if(!e||!s){f("none"),y(null);return}if(r){f("view"),y(null);return}let b=!1;return E(!0),_(null),(async()=>{try{const p=await he(e);if(b)return;const n=De(p?.role);f(n),y(null)}catch{if(b)return;f("none"),y(null),_("Failed to resolve CLI permissions")}finally{b||E(!1)}})(),()=>{b=!0}},[e,r,s]);const O=a.useMemo(()=>Oe(l,h),[l,h]);return{permission:l,granularity:h,capabilities:O,isLoading:N,error:I}}export{ke as a,$e as b,me as c,Ee as d,Ue as e,Le as f,re as g,ve as n,xe as u,ne as w};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as t}from"./plugin-monaco-C8UgLomw.js";function s(e,f){return!(f.projectId&&e.projectId&&f.projectId!==e.projectId||f.fileId&&e.fileId&&f.fileId!==e.fileId||f.filePath&&e.filePath&&f.filePath!==e.filePath)}function a({fileId:e,filePath:f,projectId:l,ttlMs:d=6e3}){const[r,i]=t.useState(null);return t.useEffect(()=>{const n=u=>{const o=u.detail;o?.diff&&s(o,{fileId:e||void 0,filePath:f||void 0,projectId:l||void 0})&&i({...o})};return window.addEventListener("ds:file:diff",n),()=>window.removeEventListener("ds:file:diff",n)},[e,f,l]),t.useEffect(()=>{const n=()=>{r&&i(null)};return window.addEventListener("ds:tool:call",n),()=>window.removeEventListener("ds:tool:call",n)},[r]),t.useEffect(()=>{if(!r)return;const n=window.setTimeout(()=>i(null),d);return()=>window.clearTimeout(n)},[r,d]),{diffEvent:r,clearDiff:()=>i(null)}}export{a as u};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{y as e}from"./index-CBNVuWcP.js";/**
|
|
2
|
+
* @license lucide-react v0.511.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const y=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],c=e("hash",y);/**
|
|
7
|
+
* @license lucide-react v0.511.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/const t=[["path",{d:"m16 16-2 2 2 2",key:"kkc6pm"}],["path",{d:"M3 12h15a3 3 0 1 1 0 6h-4",key:"1cl7v7"}],["path",{d:"M3 18h7",key:"sq21v6"}],["path",{d:"M3 6h18",key:"d0wm0j"}]],o=e("wrap-text",t);export{c as H,o as W};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{y as e}from"./index-CBNVuWcP.js";/**
|
|
2
|
+
* @license lucide-react v0.511.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const y=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],n=e("zoom-in",y);/**
|
|
7
|
+
* @license lucide-react v0.511.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/const o=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],x=e("zoom-out",o);export{x as Z,n as a};
|
package/src/ui/dist/index.html
CHANGED
|
@@ -12,8 +12,11 @@
|
|
|
12
12
|
<link rel="shortcut icon" href="/ui/logo-small.png" />
|
|
13
13
|
<link rel="apple-touch-icon" href="/ui/logo-small.png" />
|
|
14
14
|
<link rel="stylesheet" href="/ui/assets/fonts/ds-fonts.css" />
|
|
15
|
-
<script type="module" crossorigin src="/ui/assets/index-
|
|
16
|
-
<link rel="
|
|
15
|
+
<script type="module" crossorigin src="/ui/assets/index-CBNVuWcP.js"></script>
|
|
16
|
+
<link rel="modulepreload" crossorigin href="/ui/assets/plugin-terminal-MXFIPun8.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/ui/assets/plugin-monaco-C8UgLomw.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/ui/assets/plugin-notebook-HbW2K-1c.js">
|
|
19
|
+
<link rel="stylesheet" crossorigin href="/ui/assets/index-BpV6lusQ.css">
|
|
17
20
|
</head>
|
|
18
21
|
<body>
|
|
19
22
|
<noscript>DeepScientist Copilot requires JavaScript.</noscript>
|