tide-commander 1.211.0 → 1.213.0
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/CHANGELOG.md +19 -0
- package/dist/assets/{AudioPlayer-BkW6rbHa.js → AudioPlayer-0XoYDzY7.js} +1 -1
- package/dist/assets/{BossLogsModal-CWJfLRLA.js → BossLogsModal-Bod63t3S.js} +1 -1
- package/dist/assets/{BossSpawnModal-DMxCXROC.js → BossSpawnModal-CBAbxdbF.js} +1 -1
- package/dist/assets/{ControlsModal-BaSSGPXP.js → ControlsModal-ClQA01Ds.js} +1 -1
- package/dist/assets/{DockerLogsModal-C_Nb5L_a.js → DockerLogsModal-XYgD5MGG.js} +1 -1
- package/dist/assets/{EmbeddedEditor-CG0ULJUZ.js → EmbeddedEditor-BoI_2YQu.js} +1 -1
- package/dist/assets/{FcStdViewer-BgEgrxaw.js → FcStdViewer-CHyQKC6X.js} +1 -1
- package/dist/assets/{GcodeViewer-CTlX7eA7.js → GcodeViewer-DiQHpS1l.js} +1 -1
- package/dist/assets/{GlbViewer-CKaX8cFI.js → GlbViewer-DGul3n90.js} +1 -1
- package/dist/assets/{GmailOAuthSetup-1AhXjBRc.js → GmailOAuthSetup-DX-d12Ru.js} +1 -1
- package/dist/assets/{GoogleOAuthSetup-DqPgZjOY.js → GoogleOAuthSetup-Co5P70hM.js} +1 -1
- package/dist/assets/{IframeModal-ClN_kGcP.js → IframeModal-DHZGNCTd.js} +1 -1
- package/dist/assets/{IntegrationsPanel-ckrmRwYi.js → IntegrationsPanel-BPclkyML.js} +2 -2
- package/dist/assets/{LogViewerModal-D_eGItAQ.js → LogViewerModal-ByjB2seT.js} +1 -1
- package/dist/assets/{MonitoringModal-BrsQN8tD.js → MonitoringModal-gUhUFyfc.js} +1 -1
- package/dist/assets/{PM2LogsModal-CKfdmFqw.js → PM2LogsModal-C-k2vE9y.js} +1 -1
- package/dist/assets/{PluginsPanel-Bfqcnrsb.js → PluginsPanel-B5_HFZE2.js} +1 -1
- package/dist/assets/{RestoreArchivedAreaModal-oZSTlXhf.js → RestoreArchivedAreaModal-ChCA7e1o.js} +1 -1
- package/dist/assets/{Scene2DCanvas-B2oTAqlK.js → Scene2DCanvas-CUIwcRFS.js} +1 -1
- package/dist/assets/{SceneManager-pnDsJdS-.js → SceneManager-Cv9nvN7Y.js} +1 -1
- package/dist/assets/{SkillsPanel-AQimvs-1.js → SkillsPanel-CKZjcpyA.js} +1 -1
- package/dist/assets/{SlackMultiInstanceSetup-U4d0XsWJ.js → SlackMultiInstanceSetup-DkaFYIT4.js} +1 -1
- package/dist/assets/{SpawnModal-DgKO0K6L.js → SpawnModal-Bk5wz6qM.js} +1 -1
- package/dist/assets/{StatisticsModal-DDC8OYen.js → StatisticsModal-CSI4I5dD.js} +1 -1
- package/dist/assets/{StlViewer-DJZ7Qgp0.js → StlViewer-C50PVmER.js} +1 -1
- package/dist/assets/{SubordinateAssignmentModal-DCM6PpB_.js → SubordinateAssignmentModal-B6HBv3jI.js} +1 -1
- package/dist/assets/{ThreeAreaSelector-CjEcL3Kh.js → ThreeAreaSelector-BH6Jl_wy.js} +1 -1
- package/dist/assets/{ThreeViewShortcuts-UakjRD8w.js → ThreeViewShortcuts-DWI1rRyg.js} +1 -1
- package/dist/assets/{TriggerManagerPanel-C42VLQu6.js → TriggerManagerPanel-CIM3fekd.js} +1 -1
- package/dist/assets/{VideoPlayer-UW43AiLH.js → VideoPlayer-BqXneIFS.js} +1 -1
- package/dist/assets/{WorkflowEditorPanel-DUvf5X0c.js → WorkflowEditorPanel-Dnc8JUGC.js} +1 -1
- package/dist/assets/{abnfDiagram-VRR7QNED-KDmvD_Gi.js → abnfDiagram-VRR7QNED--d8igfFs.js} +1 -1
- package/dist/assets/{arc-D8Dnwz7O.js → arc-CQZ9HaPq.js} +1 -1
- package/dist/assets/{architectureDiagram-ZJ3FMSHR-DzHUfCXK.js → architectureDiagram-ZJ3FMSHR-BzkW_z4S.js} +1 -1
- package/dist/assets/{area-logos-JqUib9Ux.js → area-logos-C_Dt4sR6.js} +1 -1
- package/dist/assets/{blockDiagram-677ZJIJ3-CwOc3I3e.js → blockDiagram-677ZJIJ3-Dv97cSYA.js} +1 -1
- package/dist/assets/{c4Diagram-LMCZKHZV-ByDTz6Pi.js → c4Diagram-LMCZKHZV-C06G-yIj.js} +1 -1
- package/dist/assets/channel-D3YwkWcG.js +1 -0
- package/dist/assets/{chunk-2Q5K7J3B-CJ-5lUjr.js → chunk-2Q5K7J3B-BsyNFa-J.js} +1 -1
- package/dist/assets/{chunk-32BRIVSS-ClxbX6JR.js → chunk-32BRIVSS-CgRk3-tJ.js} +1 -1
- package/dist/assets/{chunk-5VM5RSS4-D-B4g6BP.js → chunk-5VM5RSS4-CMnRwv4f.js} +1 -1
- package/dist/assets/{chunk-EX3LRPZG-DE_ym6tm.js → chunk-EX3LRPZG-_QBKsKXW.js} +1 -1
- package/dist/assets/{chunk-JWPE2WC7-DbFNU_Ef.js → chunk-JWPE2WC7-k9YbHD_j.js} +1 -1
- package/dist/assets/{chunk-MOJQB5TN-BonkkykU.js → chunk-MOJQB5TN-CKXUL6Fi.js} +1 -1
- package/dist/assets/{chunk-RYQCIY6F-CqaRznBG.js → chunk-RYQCIY6F-BIAhlmfk.js} +1 -1
- package/dist/assets/{chunk-V7JOEXUC-DI5OpSJo.js → chunk-V7JOEXUC-DcYniTD8.js} +1 -1
- package/dist/assets/{chunk-VR4S4FIN-DzHJs5bu.js → chunk-VR4S4FIN-D-bNt12a.js} +1 -1
- package/dist/assets/{chunk-XXDRQBXY-x9Zsg6mD.js → chunk-XXDRQBXY-DobHwO4_.js} +1 -1
- package/dist/assets/classDiagram-OUVF2IWQ-DocPV6XK.js +1 -0
- package/dist/assets/classDiagram-v2-EOCWNBFH-DocPV6XK.js +1 -0
- package/dist/assets/{cose-bilkent-JH36ORCC-B4Gh0RgK.js → cose-bilkent-JH36ORCC-Ba_C8Q81.js} +1 -1
- package/dist/assets/{cynefin-VYW2F7L2-1rocbocI.js → cynefin-VYW2F7L2-Hb-1zR6k.js} +1 -1
- package/dist/assets/{cynefinDiagram-TSTJHNR4-BCbOrdTH.js → cynefinDiagram-TSTJHNR4-amXmiyQW.js} +1 -1
- package/dist/assets/{dagre-VKFMJZFB-CquTDGCQ.js → dagre-VKFMJZFB-BNUucpZJ.js} +1 -1
- package/dist/assets/{diagram-FQU43EPY-CtRps2DK.js → diagram-FQU43EPY-CuYw58Um.js} +1 -1
- package/dist/assets/{diagram-G47NLZAW-C8uHzoun.js → diagram-G47NLZAW-Dg9fCLeP.js} +1 -1
- package/dist/assets/{diagram-NH7WQ7WH-BzGxTXmO.js → diagram-NH7WQ7WH-qeg5sjuS.js} +1 -1
- package/dist/assets/{diagram-OA4YK3LP-BoUlY6He.js → diagram-OA4YK3LP-DOwtG87b.js} +1 -1
- package/dist/assets/{diagram-WEI45ONY-EewNkn4I.js → diagram-WEI45ONY-BM33pC3i.js} +1 -1
- package/dist/assets/{ebnfDiagram-CCIWWBDH-DAp0_rYI.js → ebnfDiagram-CCIWWBDH-hJnMt_nO.js} +1 -1
- package/dist/assets/{erDiagram-Q63AITRT-CIDiaIv_.js → erDiagram-Q63AITRT-Dv4DTadC.js} +1 -1
- package/dist/assets/{flowDiagram-23GEKE2U-ZQudeco2.js → flowDiagram-23GEKE2U-8DDRTZ5q.js} +1 -1
- package/dist/assets/{ganttDiagram-NO4QXBWP-DDa9u7Kj.js → ganttDiagram-NO4QXBWP-IWVSonaN.js} +1 -1
- package/dist/assets/{gitGraphDiagram-IHSO6WYX-D0LPqp_M.js → gitGraphDiagram-IHSO6WYX-B8SRF6Rm.js} +1 -1
- package/dist/assets/{index-CmZ79Am7.js → index-B99LPOqY.js} +1 -1
- package/dist/assets/{index-BuW-OFAQ.js → index-BIXZ5ma2.js} +1 -1
- package/dist/assets/{index-CM0wRsAP.js → index-C8sTxLSh.js} +1 -1
- package/dist/assets/{index-tU947Zt1.js → index-CPxwxV3y.js} +1 -1
- package/dist/assets/{index-CgtrBMsu.js → index-CfzJePLs.js} +1 -1
- package/dist/assets/{index-D0O_xUmt.js → index-CoQeR3M4.js} +1 -1
- package/dist/assets/{index-BMILmzZt.js → index-DZXJouwG.js} +3 -3
- package/dist/assets/{index-DjZWtEFJ.js → index-H2kZgwuS.js} +1 -1
- package/dist/assets/{index-CbjaD3wY.js → index-iox2Avj1.js} +2 -2
- package/dist/assets/{infoDiagram-FWYZ7A6U-CD4Ws76i.js → infoDiagram-FWYZ7A6U-DiW8Da6O.js} +1 -1
- package/dist/assets/{ishikawaDiagram-FXEZZL3T-DSEmTd2f.js → ishikawaDiagram-FXEZZL3T-BX9Iv2Bx.js} +1 -1
- package/dist/assets/{journeyDiagram-5HDEW3XC-3_c5LjHs.js → journeyDiagram-5HDEW3XC-DxOx3HNu.js} +1 -1
- package/dist/assets/{kanban-definition-HUTT4EX6-24lijuGn.js → kanban-definition-HUTT4EX6-CXU91xhp.js} +1 -1
- package/dist/assets/{linear-B_K6Qcv3.js → linear-BN1q8PcL.js} +1 -1
- package/dist/assets/{main-D0r07JA_.js → main-DAjvgfMx.js} +13 -13
- package/dist/assets/{mermaid.core-B6sgvfs-.js → mermaid.core-DDz9Iaty.js} +4 -4
- package/dist/assets/{mindmap-definition-LN4V7U3C-BsAOrAHj.js → mindmap-definition-LN4V7U3C-DpJ8aYp2.js} +1 -1
- package/dist/assets/{pegDiagram-2B236MQR-DdfupKz5.js → pegDiagram-2B236MQR-DNWtKvhp.js} +1 -1
- package/dist/assets/{pieDiagram-ENE6RG2P-D1YBZYdK.js → pieDiagram-ENE6RG2P-B5qvWe8-.js} +1 -1
- package/dist/assets/{quadrantDiagram-ABIIQ3AL-Bw-hoDGQ.js → quadrantDiagram-ABIIQ3AL-DcxOc9Jk.js} +1 -1
- package/dist/assets/{railroadDiagram-RFXS5EU6-CkmO-Wgv.js → railroadDiagram-RFXS5EU6-CHK9rRAr.js} +1 -1
- package/dist/assets/{requirementDiagram-TGXJPOKE-CSI19yqY.js → requirementDiagram-TGXJPOKE-B1q3f28r.js} +1 -1
- package/dist/assets/{sankeyDiagram-HTMAVEWB-BvLYUk8J.js → sankeyDiagram-HTMAVEWB-SDg0XTUl.js} +1 -1
- package/dist/assets/{sequenceDiagram-DBY2YBRQ-DSQLX4Eb.js → sequenceDiagram-DBY2YBRQ-C5zqmKlJ.js} +1 -1
- package/dist/assets/{sizeCapture-X5ZJPWSS-DfyzoJ-u.js → sizeCapture-X5ZJPWSS-B1w0ijos.js} +1 -1
- package/dist/assets/{stateDiagram-2N3HPSRC-G3bxzIPH.js → stateDiagram-2N3HPSRC-Dx17zSPT.js} +1 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-CoNQS9IV.js +1 -0
- package/dist/assets/{swimlanes-5IMT3BWC-CDZGonhF.js → swimlanes-5IMT3BWC-C49X991f.js} +2 -2
- package/dist/assets/swimlanesDiagram-G3AALYLV-Yyot49f1.js +8 -0
- package/dist/assets/{timeline-definition-FHXFAJF6-C5QDZq49.js → timeline-definition-FHXFAJF6-DpOqNBNt.js} +1 -1
- package/dist/assets/{vennDiagram-L72KCM5P-0a1v0gi5.js → vennDiagram-L72KCM5P-CkMpg3xS.js} +1 -1
- package/dist/assets/{wardleyDiagram-EHGQE667-DArhtjvR.js → wardleyDiagram-EHGQE667-zJk9PTKN.js} +1 -1
- package/dist/assets/{web-BgCc_AGi.js → web-3dLaLyVf.js} +1 -1
- package/dist/assets/{web-BU7b4YVF.js → web-BL_6uaSX.js} +1 -1
- package/dist/assets/{web-BiQ9JdSl.js → web-DI0lko8Q.js} +1 -1
- package/dist/assets/{xychartDiagram-FW5EYKEG-BIZcXzGL.js → xychartDiagram-FW5EYKEG-DqYA8n2Y.js} +1 -1
- package/dist/build-info.json +1 -1
- package/dist/index.html +1 -1
- package/dist/src/packages/server/integrations/google-calendar/calendar-client.js +11 -4
- package/dist/src/packages/server/integrations/google-calendar/calendar-routes.js +3 -1
- package/dist/src/packages/server/integrations/google-calendar/calendar-skill.js +9 -1
- package/dist/src/packages/server/integrations/google-drive/drive-client.js +189 -19
- package/dist/src/packages/server/integrations/google-drive/drive-routes.js +48 -0
- package/dist/src/packages/server/integrations/google-drive/drive-skill.js +29 -1
- package/package.json +1 -1
- package/dist/assets/channel-C9DXs2xS.js +0 -1
- package/dist/assets/classDiagram-OUVF2IWQ-apBPMHmB.js +0 -1
- package/dist/assets/classDiagram-v2-EOCWNBFH-apBPMHmB.js +0 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-DCUADcVF.js +0 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-Ddwy1JnL.js +0 -8
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r,aa as K,j as e,I as l,c as C,d as S,ab as O,ac as F,ad as J,ae as Y,Z as G,af as W}from"./main-
|
|
1
|
+
import{r,aa as K,j as e,I as l,c as C,d as S,ab as O,ac as F,ad as J,ae as Y,Z as G,af as W}from"./main-DAjvgfMx.js";import{IntegrationsPanel as Z}from"./IntegrationsPanel-BPclkyML.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DYBBrXTx.js";const $={name:"/",summary:"",script:"",cwd:"",runAsSudo:!1,pty:!0,enabled:!0};function A(o,j){return o&&typeof o=="object"&&typeof o.error=="string"?o.error:j}function q(){const[o,j]=r.useState([]),[p,_]=r.useState(null),[a,d]=r.useState($),[z,w]=r.useState(!0),[u,m]=r.useState(!1),[v,i]=r.useState(null),g=r.useCallback(async()=>{w(!0);try{j(await K()),i(null)}catch(s){i(s instanceof Error?s.message:String(s))}finally{w(!1)}},[]);r.useEffect(()=>{g()},[g]);const k=()=>{_("__new__"),d({...$}),i(null)},P=s=>{_(s.id),d({name:s.name,summary:s.summary,script:s.script,cwd:s.cwd??"",runAsSudo:s.runAsSudo,pty:s.pty,enabled:s.enabled}),i(null)},b=async()=>{if(p){m(!0),i(null);try{const s=p==="__new__",n=await C(S(s?"/api/plugins/shell-commands":`/api/plugins/shell-commands/${encodeURIComponent(p)}`),{method:s?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),t=await n.json().catch(()=>null);if(!n.ok)throw new Error(A(t,"Unable to save command script"));_(null),d({...$}),await g()}catch(s){i(s instanceof Error?s.message:String(s))}finally{m(!1)}}},I=async s=>{if(window.confirm(`Delete ${s.name}?`)){m(!0),i(null);try{const n=await C(S(`/api/plugins/shell-commands/${encodeURIComponent(s.id)}`),{method:"DELETE"}),t=await n.json().catch(()=>null);if(!n.ok)throw new Error(A(t,"Unable to delete command script"));await g()}catch(n){i(n instanceof Error?n.message:String(n))}finally{m(!1)}}},N=async s=>{m(!0),i(null);try{const n=await C(S(`/api/plugins/shell-commands/${encodeURIComponent(s.id)}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...s,enabled:!s.enabled})}),t=await n.json().catch(()=>null);if(!n.ok)throw new Error(A(t,"Unable to update command script"));await g()}catch(n){i(n instanceof Error?n.message:String(n))}finally{m(!1)}};return e.jsxs("section",{className:"shell-commands-settings",children:[e.jsxs("header",{className:"shell-commands-settings__header",children:[e.jsxs("div",{children:[e.jsxs("span",{className:"shell-commands-settings__eyebrow",children:[e.jsx(l,{name:"terminal",size:11})," Streamed exec"]}),e.jsx("h3",{children:"Slash command scripts"}),e.jsx("p",{children:"Register trusted Bash scripts that run locally without invoking an LLM."})]}),e.jsxs("button",{type:"button",onClick:k,disabled:!!p||u,children:[e.jsx(l,{name:"plus",size:12})," Add command"]})]}),v&&e.jsxs("div",{className:"shell-commands-settings__error",children:[e.jsx(l,{name:"warn",size:12})," ",v]}),p&&e.jsxs("div",{className:"shell-command-editor",children:[e.jsxs("div",{className:"shell-command-editor__grid",children:[e.jsxs("label",{children:[e.jsx("span",{children:"Slash command"}),e.jsx("input",{value:a.name,onChange:s=>d({...a,name:s.target.value}),placeholder:"/deploy",autoComplete:"off",spellCheck:!1})]}),e.jsxs("label",{children:[e.jsx("span",{children:"Description"}),e.jsx("input",{value:a.summary,onChange:s=>d({...a,summary:s.target.value}),placeholder:"Deploy the current project",autoComplete:"off"})]})]}),e.jsxs("label",{children:[e.jsxs("span",{children:["Working directory ",e.jsx("em",{children:"optional · defaults to the active agent workspace"})]}),e.jsx("input",{value:a.cwd??"",onChange:s=>d({...a,cwd:s.target.value}),placeholder:"/home/user/project",autoComplete:"off",spellCheck:!1})]}),e.jsxs("label",{children:[e.jsxs("span",{children:["Bash script ",e.jsx("em",{children:"slash arguments are available as $1, $2, …"})]}),e.jsx("textarea",{value:a.script,onChange:s=>d({...a,script:s.target.value}),placeholder:`set -euo pipefail
|
|
2
2
|
echo "Deploying $1"`,rows:7,spellCheck:!1})]}),e.jsxs("div",{className:"shell-command-editor__options",children:[e.jsxs("label",{children:[e.jsx("input",{type:"checkbox",checked:a.runAsSudo===!0,onChange:s=>d({...a,runAsSudo:s.target.checked})}),e.jsxs("span",{children:[e.jsx("strong",{children:"Allow sudo"}),e.jsx("small",{children:"Ask once; only sudo lines run as root"})]})]}),e.jsxs("label",{children:[e.jsx("input",{type:"checkbox",checked:a.pty!==!1,onChange:s=>d({...a,pty:s.target.checked})}),e.jsxs("span",{children:[e.jsx("strong",{children:"PTY output"}),e.jsx("small",{children:"Stream interactive progress and colors"})]})]}),e.jsxs("label",{children:[e.jsx("input",{type:"checkbox",checked:a.enabled!==!1,onChange:s=>d({...a,enabled:s.target.checked})}),e.jsxs("span",{children:[e.jsx("strong",{children:"Enabled"}),e.jsx("small",{children:"Show in slash command results"})]})]})]}),a.runAsSudo&&e.jsxs("div",{className:"shell-command-editor__sudo-note",children:[e.jsx(l,{name:"lock",size:11})," Tide passes the password to nested sudo calls over a private per-run channel. The script itself keeps running as the normal user."]}),e.jsxs("footer",{children:[e.jsx("button",{type:"button",onClick:()=>_(null),disabled:u,children:"Cancel"}),e.jsxs("button",{type:"button",className:"is-primary",onClick:()=>void b(),disabled:u||!a.name.trim()||!a.summary.trim()||!a.script.trim(),children:[e.jsx(l,{name:"save",size:11})," ",u?"Saving…":"Save command"]})]})]}),e.jsx("div",{className:"shell-command-list",children:z&&o.length===0?e.jsx("div",{className:"shell-command-list__empty",children:"Loading command scripts…"}):o.length===0?e.jsxs("div",{className:"shell-command-list__empty",children:[e.jsx(l,{name:"terminal",size:18}),e.jsx("strong",{children:"No command scripts registered"}),e.jsx("span",{children:"Add one to expose it in Spotlight and the Commander terminal."})]}):o.map(s=>e.jsxs("article",{className:s.enabled?"is-enabled":"is-disabled",children:[e.jsxs("div",{className:"shell-command-list__identity",children:[e.jsx("code",{children:s.name}),e.jsxs("div",{children:[e.jsx("strong",{children:s.summary}),e.jsx("span",{children:s.cwd||"Active agent workspace"})]})]}),e.jsxs("div",{className:"shell-command-list__badges",children:[s.runAsSudo&&e.jsxs("em",{className:"is-sudo",children:[e.jsx(l,{name:"lock",size:9})," sudo"]}),e.jsxs("em",{children:[e.jsx(l,{name:"bolt",size:9})," streamed"]})]}),e.jsxs("div",{className:"shell-command-list__actions",children:[e.jsx("button",{type:"button",onClick:()=>P(s),disabled:u||!!p,"aria-label":`Edit ${s.name}`,children:e.jsx(l,{name:"edit",size:11})}),e.jsx("button",{type:"button",onClick:()=>void I(s),disabled:u,"aria-label":`Delete ${s.name}`,children:e.jsx(l,{name:"trash",size:11})}),e.jsxs("label",{title:s.enabled?"Disable command":"Enable command",children:[e.jsx("input",{type:"checkbox",checked:s.enabled,disabled:u,onChange:()=>void N(s)}),e.jsx("span",{})]})]})]},s.id))})]})}function ee({isOpen:o,onClose:j}){const[p,_]=r.useState([]),[a,d]=r.useState(""),[z,w]=r.useState(!1),[u,m]=r.useState(null),[v,i]=r.useState(null),[g,k]=r.useState(null),P=O(),b=r.useCallback(async()=>{w(!0);try{_(await F())}catch(s){i({kind:"error",text:s instanceof Error?s.message:String(s)})}finally{w(!1)}},[]);r.useEffect(()=>{o?b():k(null)},[o,b]),r.useEffect(()=>{if(!o)return;const s=n=>{n.key==="Escape"&&j()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[o,j]);const I=async(s,n)=>{m(s.id),i(null);try{const t=await C(S(`/api/plugins/${encodeURIComponent(s.id)}/${n?"enable":"disable"}`),{method:"POST"}),y=await t.json().catch(()=>({}));if(!t.ok)throw new Error(y.error||`Failed to ${n?"enable":"disable"} plugin`);await b()}catch(t){i({kind:"error",text:t instanceof Error?t.message:String(t)})}finally{m(null)}},N=async()=>{var n;const s=a.trim();if(s){m("__install__"),i(null);try{const t=await C(S("/api/plugins/install"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sourcePath:s})}),y=await t.json().catch(()=>({}));if(!t.ok)throw new Error(y.error||"Plugin install failed");d(""),i({kind:"success",text:`${((n=y.plugin)==null?void 0:n.name)||"Plugin"} installed`}),await b()}catch(t){i({kind:"error",text:t instanceof Error?t.message:String(t)})}finally{m(null)}}};return o?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"modal-overlay visible plugins-panel-overlay",onMouseDown:s=>{s.target===s.currentTarget&&j()},children:e.jsxs("section",{className:"modal plugins-panel",role:"dialog","aria-modal":"true","aria-label":"Plugins",children:[e.jsxs("header",{className:"plugins-panel__header",children:[e.jsxs("div",{children:[e.jsxs("h2",{children:[e.jsx(l,{name:"plug",size:18})," Plugins"]}),e.jsx("p",{children:"Trusted local extensions for Tide Commander"})]}),e.jsx("button",{type:"button",onClick:j,"aria-label":"Close",children:e.jsx(l,{name:"close",size:16})})]}),e.jsxs("div",{className:"plugins-panel__install",children:[e.jsxs("div",{className:"plugins-panel__install-heading",children:[e.jsx("span",{className:"plugins-panel__install-icon",children:e.jsx(l,{name:"folder",size:16})}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"plugin-source-path",children:"Install from a local folder"}),e.jsx("p",{children:"Enter the absolute path to a Tide plugin directory."})]})]}),e.jsxs("div",{className:"plugins-panel__path-row",children:[e.jsx("span",{className:"plugins-panel__path-prefix","aria-hidden":"true",children:e.jsx(l,{name:"terminal",size:13})}),e.jsx("input",{id:"plugin-source-path",value:a,onChange:s=>d(s.target.value),placeholder:"/path/to/tide-plugin",autoComplete:"off",spellCheck:!1,onKeyDown:s=>{s.key==="Enter"&&N()}}),e.jsxs("button",{type:"button",onClick:()=>void N(),disabled:!a.trim()||u==="__install__",children:[e.jsx(l,{name:"plug",size:13}),e.jsx("span",{children:u==="__install__"?"Installing…":"Install plugin"})]})]}),e.jsxs("div",{className:"plugins-panel__trust-note",children:[e.jsx(l,{name:"lock",size:12}),e.jsxs("span",{children:[e.jsx("strong",{children:"Trusted local code."})," Plugins run with Tide Commander permissions, so install only code you trust."]})]})]}),v&&e.jsx("div",{className:`plugins-panel__message is-${v.kind}`,children:v.text}),e.jsxs("div",{className:"plugins-panel__list",children:[e.jsx(q,{}),z&&p.length===0?e.jsx("div",{className:"plugins-panel__empty",children:"Loading plugins…"}):p.length===0?e.jsx("div",{className:"plugins-panel__empty",children:"No plugins installed"}):p.map(s=>{var n,t,y,D,U,L,M,B,R;return e.jsxs("article",{className:`plugin-list-item${s.enabled?" is-enabled":""}`,children:[e.jsx("div",{className:"plugin-list-item__icon",children:e.jsx(l,{name:"plug",size:16})}),e.jsxs("div",{className:"plugin-list-item__info",children:[e.jsxs("div",{className:"plugin-list-item__title",children:[e.jsx("strong",{children:s.name}),e.jsxs("span",{children:["v",s.version]}),s.builtin||s.source==="builtin"?e.jsx("em",{children:"built-in"}):null]}),e.jsx("p",{children:s.description||s.id}),(((n=s.contributes)==null?void 0:n.settings)||((y=(t=s.manifest)==null?void 0:t.contributes)==null?void 0:y.settings)||[]).map(c=>{var x,E;const h=c;return h.type!=="integration"?null:e.jsxs("section",{className:"plugin-list-item__settings",children:[e.jsxs("div",{className:"plugin-list-item__settings-heading",children:[e.jsxs("span",{children:[e.jsx(l,{name:"gear",size:12})," Configuración"]}),e.jsxs("button",{type:"button",onClick:()=>k(h.integrationId),children:[e.jsx(l,{name:"key",size:11})," Configurar"]})]}),e.jsx("strong",{children:h.title}),h.description&&e.jsx("p",{children:h.description}),(x=h.instructions)!=null&&x.length?e.jsx("ol",{children:h.instructions.map((f,T)=>e.jsx("li",{children:f},`${h.id}-${T}`))}):null,(E=h.secrets)!=null&&E.length?e.jsxs("div",{className:"plugin-list-item__secrets",children:[e.jsxs("span",{children:[e.jsx(l,{name:"lock",size:10})," Secretos administrados de forma segura"]}),e.jsx("div",{children:h.secrets.map(f=>e.jsx("code",{children:f},f))})]}):null]},h.id)}),(((D=s.contributes)==null?void 0:D.slashCommands)||((L=(U=s.manifest)==null?void 0:U.contributes)==null?void 0:L.slashCommands)||[]).length>0&&e.jsxs("div",{className:"plugin-list-item__commands",children:[e.jsxs("div",{className:"plugin-list-item__commands-title",children:[e.jsx(l,{name:"keyboard",size:11})," Global command shortcuts"]}),(((M=s.contributes)==null?void 0:M.slashCommands)||((R=(B=s.manifest)==null?void 0:B.contributes)==null?void 0:R.slashCommands)||[]).map(c=>{var f;const h=J(s.id,c.name),x=Y(P[h]),E={id:`plugin-command:${s.id}:${c.name}`,name:c.name,description:c.summary,key:(x==null?void 0:x.key)||"",modifiers:(x==null?void 0:x.modifiers)||{},enabled:!0,context:"global"};return e.jsxs("div",{className:"plugin-command-shortcut",children:[e.jsxs("div",{className:"plugin-command-shortcut__info",children:[e.jsx("code",{children:c.name}),e.jsx("span",{children:c.summary}),(f=c.aliases)!=null&&f.length?e.jsxs("em",{children:["Aliases: ",c.aliases.join(", ")]}):null]}),e.jsx(G,{shortcut:E,onUpdate:T=>W(s.id,c.name,T)})]},c.name)})]}),s.error&&e.jsx("div",{className:"plugin-list-item__error",children:s.error})]}),e.jsxs("label",{className:"plugin-list-item__toggle",title:s.enabled?"Disable plugin":"Enable plugin",children:[e.jsx("input",{type:"checkbox",checked:s.enabled,disabled:u===s.id,onChange:c=>void I(s,c.target.checked)}),e.jsx("span",{})]})]},s.id)})]})]})}),g&&e.jsx(Z,{isOpen:!0,initialTab:g,zIndex:10030,onClose:()=>{k(null),b()}})]}):null}export{ee as PluginsPanel};
|
package/dist/assets/{RestoreArchivedAreaModal-oZSTlXhf.js → RestoreArchivedAreaModal-ChCA7e1o.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as m,a1 as f,j as e,I as N,s as d}from"./main-
|
|
1
|
+
import{u as m,a1 as f,j as e,I as N,s as d}from"./main-DAjvgfMx.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DYBBrXTx.js";function g(r){const t=Date.now()-r,i=Math.floor(t/1e3),a=Math.floor(i/60),c=Math.floor(a/60),n=Math.floor(c/24);return n>0?`${n} day${n>1?"s":""} ago`:c>0?`${c} hour${c>1?"s":""} ago`:a>0?`${a} min${a>1?"s":""} ago`:"just now"}function k({isOpen:r,restorePosition:l,onClose:t,onRestored:i}){const{t:a}=m(["terminal","common"]),c=f(),n=Array.from(c.values()).filter(s=>s.archived===!0),o=(s,j)=>{const x=j?void 0:l||void 0;d.restoreArchivedArea(s,x),i==null||i(),t()},h=()=>{for(const s of n)d.restoreArchivedArea(s.id);i==null||i(),t()},v=s=>{s.target===s.currentTarget&&t()},u=s=>{s.key==="Escape"&&t()};return r?e.jsx("div",{className:`modal-overlay ${r?"visible":""}`,onClick:v,onKeyDown:u,children:e.jsxs("div",{className:"modal restore-archived-modal",children:[e.jsxs("div",{className:"modal-header",children:[e.jsx("span",{className:"header-icon",children:e.jsx(N,{name:"package",size:16})}),a("terminal:areas.restoreArchivedZone")]}),e.jsx("div",{className:"modal-body restore-archived-body",children:n.length===0?e.jsx("div",{className:"archived-empty",children:a("terminal:areas.noArchivedZones")}):e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"restore-info",children:a("terminal:areas.restoreInfo")}),e.jsx("div",{className:"archived-list",children:n.map(s=>e.jsx(p,{area:s,onRestoreHere:()=>o(s.id,!1),onRestoreOriginal:()=>o(s.id,!0),hasRestorePosition:!!l},s.id))}),n.length>1&&e.jsx("div",{className:"restore-all-section",children:e.jsx("button",{className:"btn btn-secondary",onClick:h,children:a("terminal:areas.restoreAllOriginal")})})]})}),e.jsx("div",{className:"modal-footer",children:e.jsx("button",{className:"btn btn-secondary",onClick:t,children:a("common:buttons.cancel")})})]})}):null}function p({area:r,onRestoreHere:l,onRestoreOriginal:t,hasRestorePosition:i}){const{t:a}=m(["terminal","common"]),c=r.assignedAgentIds.length,n=r.directories.length;return e.jsxs("div",{className:"archived-item",children:[e.jsx("div",{className:"archived-item-color",style:{backgroundColor:r.color}}),e.jsxs("div",{className:"archived-item-info",children:[e.jsx("div",{className:"archived-item-name",children:r.name}),e.jsxs("div",{className:"archived-item-meta",children:[e.jsx("span",{className:"archived-item-type",children:r.type}),c>0&&e.jsx("span",{className:"archived-item-agents",children:a("terminal:areas.agentCount",{count:c})}),n>0&&e.jsx("span",{className:"archived-item-dirs",children:a("terminal:areas.folderCount",{count:n})}),r.archivedAt&&e.jsx("span",{className:"archived-item-time",children:g(r.archivedAt)})]})]}),e.jsxs("div",{className:"archived-item-actions",children:[i&&e.jsx("button",{className:"btn btn-small btn-primary",onClick:l,title:a("terminal:areas.placeAtClickedPosition"),children:a("terminal:areas.restoreHere")}),e.jsx("button",{className:"btn btn-small",onClick:t,title:a("terminal:areas.restoreToOriginal"),children:a(i?"terminal:areas.original":"terminal:areas.restore")})]})]})}export{k as RestoreArchivedAreaModal};
|