tide-commander 1.216.0 → 1.217.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 +18 -0
- package/dist/assets/{AudioPlayer-Chu8I0tg.js → AudioPlayer-wYzUPbI7.js} +1 -1
- package/dist/assets/{BossLogsModal-DR0ejza7.js → BossLogsModal-CmZNDIpu.js} +1 -1
- package/dist/assets/{BossSpawnModal-LqXBwD2F.js → BossSpawnModal-DtVfSG5G.js} +1 -1
- package/dist/assets/{ControlsModal-BItvxY7x.js → ControlsModal-C0tQf4xy.js} +1 -1
- package/dist/assets/{DockerLogsModal-DfR1XadQ.js → DockerLogsModal-DL_eRO-m.js} +1 -1
- package/dist/assets/{EmbeddedEditor-dMOVrrnl.js → EmbeddedEditor-DAr7_QUH.js} +1 -1
- package/dist/assets/{FcStdViewer-CXDb_hmK.js → FcStdViewer-MDGJiz2T.js} +1 -1
- package/dist/assets/{GcodeViewer-BJGaDLF8.js → GcodeViewer-BHVydtrp.js} +1 -1
- package/dist/assets/{GlbViewer-CrLi0LWd.js → GlbViewer-Bwr_Tayz.js} +1 -1
- package/dist/assets/{GmailOAuthSetup-CzinZ6aZ.js → GmailOAuthSetup-D_uF2cyB.js} +1 -1
- package/dist/assets/{GoogleOAuthSetup-DhVaIj11.js → GoogleOAuthSetup-BCmzQl5e.js} +1 -1
- package/dist/assets/{IframeModal-NJJxvrBg.js → IframeModal-CQmCu_P4.js} +1 -1
- package/dist/assets/{IntegrationsPanel-DDht5-zS.js → IntegrationsPanel-BmRLC7dz.js} +2 -2
- package/dist/assets/{LogViewerModal-DobAgsRk.js → LogViewerModal-CrnaI78u.js} +1 -1
- package/dist/assets/{MonitoringModal-ugppuuGW.js → MonitoringModal-C6J4g3Jf.js} +1 -1
- package/dist/assets/{PM2LogsModal-C28LrhXo.js → PM2LogsModal-Ds3dRnuE.js} +1 -1
- package/dist/assets/{PluginsPanel-BrllpLPF.js → PluginsPanel-BWG2NKdJ.js} +1 -1
- package/dist/assets/{RestoreArchivedAreaModal-DUjvqOIA.js → RestoreArchivedAreaModal-BNccBE4Z.js} +1 -1
- package/dist/assets/{Scene2DCanvas-IHlXkbK5.js → Scene2DCanvas-CPvMvm9m.js} +1 -1
- package/dist/assets/{SceneManager-BzRqBmgj.js → SceneManager-lb8uiOCO.js} +1 -1
- package/dist/assets/{SkillsPanel-B7ePWL4w.js → SkillsPanel-BTO2Ow7t.js} +1 -1
- package/dist/assets/{SlackMultiInstanceSetup-bpmQ5yCA.js → SlackMultiInstanceSetup-Da_GWe5W.js} +1 -1
- package/dist/assets/{SpawnModal-Bu7udoPb.js → SpawnModal-JbFRYxZa.js} +1 -1
- package/dist/assets/{StatisticsModal-teyupFGW.js → StatisticsModal-ChSnL5yu.js} +1 -1
- package/dist/assets/{StlViewer-DTuw4IoN.js → StlViewer-BFr-I14v.js} +1 -1
- package/dist/assets/{SubordinateAssignmentModal-De7mzS6q.js → SubordinateAssignmentModal-DchdwFLE.js} +1 -1
- package/dist/assets/{ThreeAreaSelector-B4FdXGTQ.js → ThreeAreaSelector-D18G4udc.js} +1 -1
- package/dist/assets/{ThreeViewShortcuts-C50gwWcg.js → ThreeViewShortcuts-vNiMNFPJ.js} +1 -1
- package/dist/assets/{TriggerManagerPanel-NhdLnKIE.js → TriggerManagerPanel-DjpLl7cf.js} +1 -1
- package/dist/assets/{VideoPlayer-DR13OKH9.js → VideoPlayer-Drj9r9Dx.js} +1 -1
- package/dist/assets/{WorkflowEditorPanel-HR2fDtcS.js → WorkflowEditorPanel-DLwkYQ8M.js} +1 -1
- package/dist/assets/{abnfDiagram-VRR7QNED-Q73b9mfz.js → abnfDiagram-VRR7QNED-BVuUyMTx.js} +1 -1
- package/dist/assets/{arc-CVKFmkgP.js → arc-_phD079o.js} +1 -1
- package/dist/assets/{architectureDiagram-ZJ3FMSHR-Bbf_Qcjn.js → architectureDiagram-ZJ3FMSHR-B7fAK4WF.js} +1 -1
- package/dist/assets/{area-logos-gYv8s8T3.js → area-logos-RCA-q_Vf.js} +1 -1
- package/dist/assets/{blockDiagram-677ZJIJ3-DaheCa8j.js → blockDiagram-677ZJIJ3-C-OlY0-3.js} +1 -1
- package/dist/assets/{c4Diagram-LMCZKHZV-UZ1L_YBs.js → c4Diagram-LMCZKHZV-DrwXTZgK.js} +1 -1
- package/dist/assets/channel-BWg1ErwG.js +1 -0
- package/dist/assets/{chunk-2Q5K7J3B-D8YOZZA-.js → chunk-2Q5K7J3B-DCcJNg3d.js} +1 -1
- package/dist/assets/{chunk-32BRIVSS-BQmKdeF2.js → chunk-32BRIVSS-CZZkOSIs.js} +1 -1
- package/dist/assets/{chunk-5VM5RSS4-CT5m9OBR.js → chunk-5VM5RSS4-BCFrP-q5.js} +1 -1
- package/dist/assets/{chunk-EX3LRPZG-BwQ_dYOl.js → chunk-EX3LRPZG-Bjnq5732.js} +1 -1
- package/dist/assets/{chunk-JWPE2WC7-DVPlE4Zc.js → chunk-JWPE2WC7-CPjRN_WZ.js} +1 -1
- package/dist/assets/{chunk-MOJQB5TN-DGrSLKap.js → chunk-MOJQB5TN-B6jVWpSe.js} +1 -1
- package/dist/assets/{chunk-RYQCIY6F-BGpC2Lvw.js → chunk-RYQCIY6F-0QrHhHTV.js} +1 -1
- package/dist/assets/{chunk-V7JOEXUC-T5kHrm0m.js → chunk-V7JOEXUC-DwLSEIop.js} +1 -1
- package/dist/assets/{chunk-VR4S4FIN-DsjgCLci.js → chunk-VR4S4FIN-R-sa6MjG.js} +1 -1
- package/dist/assets/{chunk-XXDRQBXY-CeisNHDz.js → chunk-XXDRQBXY-FuYmcHPd.js} +1 -1
- package/dist/assets/classDiagram-OUVF2IWQ-Cdy8Clus.js +1 -0
- package/dist/assets/classDiagram-v2-EOCWNBFH-Cdy8Clus.js +1 -0
- package/dist/assets/{cose-bilkent-JH36ORCC-DGc7pmnL.js → cose-bilkent-JH36ORCC-CvD5NdQ_.js} +1 -1
- package/dist/assets/{cynefin-VYW2F7L2-B4WOzgxr.js → cynefin-VYW2F7L2-C8_VnooS.js} +1 -1
- package/dist/assets/{cynefinDiagram-TSTJHNR4-C_DBldqW.js → cynefinDiagram-TSTJHNR4-SD_F8ul6.js} +1 -1
- package/dist/assets/{dagre-VKFMJZFB-CLbdjSVi.js → dagre-VKFMJZFB-Cpeo3cpw.js} +1 -1
- package/dist/assets/{diagram-FQU43EPY-rFdDLhQC.js → diagram-FQU43EPY-DsBnlRvM.js} +1 -1
- package/dist/assets/{diagram-G47NLZAW-B7IY4xJj.js → diagram-G47NLZAW-BHMRe5db.js} +1 -1
- package/dist/assets/{diagram-NH7WQ7WH-Dffo88fG.js → diagram-NH7WQ7WH-D8Rm6qlg.js} +1 -1
- package/dist/assets/{diagram-OA4YK3LP-CI24r0oP.js → diagram-OA4YK3LP-C4Svb0Zw.js} +1 -1
- package/dist/assets/{diagram-WEI45ONY-CpYaSMOz.js → diagram-WEI45ONY-BbFXrI2b.js} +1 -1
- package/dist/assets/{ebnfDiagram-CCIWWBDH-CVE6IpE1.js → ebnfDiagram-CCIWWBDH-CCBonTYH.js} +1 -1
- package/dist/assets/{erDiagram-Q63AITRT-BfedFNid.js → erDiagram-Q63AITRT-CGGw9uIx.js} +1 -1
- package/dist/assets/{flowDiagram-23GEKE2U-BMSNxq_P.js → flowDiagram-23GEKE2U-DWxHXzyo.js} +1 -1
- package/dist/assets/{ganttDiagram-NO4QXBWP-CFmNsZuP.js → ganttDiagram-NO4QXBWP-D74TSIvX.js} +1 -1
- package/dist/assets/{gitGraphDiagram-IHSO6WYX-BPZCZyak.js → gitGraphDiagram-IHSO6WYX-Cwv5rBxw.js} +1 -1
- package/dist/assets/{index-CE74eZqz.js → index-6lLWOBQK.js} +1 -1
- package/dist/assets/{index-DAKI-8ry.js → index-B9rURqfo.js} +1 -1
- package/dist/assets/{index-DYtuoGp_.js → index-BMXP1Yd8.js} +3 -3
- package/dist/assets/{index-DbOvHwxP.js → index-BZztJf0b.js} +1 -1
- package/dist/assets/{index-BZPSXTAd.js → index-D-5PhYjN.js} +1 -1
- package/dist/assets/{index-CHl4bmrT.js → index-DOcVAWbZ.js} +1 -1
- package/dist/assets/{index-DjYjfA28.js → index-DW1gJ5Cs.js} +1 -1
- package/dist/assets/{index-DKoidOEn.js → index-DrIXfMcD.js} +1 -1
- package/dist/assets/{index-BRdYSHCt.js → index-s33Ke8oj.js} +2 -2
- package/dist/assets/{infoDiagram-FWYZ7A6U-i4zJwolP.js → infoDiagram-FWYZ7A6U-VSfMHDx9.js} +1 -1
- package/dist/assets/{ishikawaDiagram-FXEZZL3T-Mx_Omxks.js → ishikawaDiagram-FXEZZL3T-CgWr16Qr.js} +1 -1
- package/dist/assets/{journeyDiagram-5HDEW3XC-3Rokfnmf.js → journeyDiagram-5HDEW3XC-Bv4ioJyG.js} +1 -1
- package/dist/assets/{kanban-definition-HUTT4EX6-CEPx7BrA.js → kanban-definition-HUTT4EX6-DsUoZOQz.js} +1 -1
- package/dist/assets/{linear-DNXvsxYb.js → linear-_3oDVafz.js} +1 -1
- package/dist/assets/{main-BBvM-_Ia.js → main-BKRg0DBA.js} +160 -160
- package/dist/assets/{mermaid.core-0qDPsI0T.js → mermaid.core-spKo10MG.js} +4 -4
- package/dist/assets/{mindmap-definition-LN4V7U3C-DwCHykip.js → mindmap-definition-LN4V7U3C-C6uCJ4IN.js} +1 -1
- package/dist/assets/{pegDiagram-2B236MQR-DO7OR5bN.js → pegDiagram-2B236MQR-BTIBB-Uw.js} +1 -1
- package/dist/assets/{pieDiagram-ENE6RG2P--1xKfxMr.js → pieDiagram-ENE6RG2P-D7oP-ve7.js} +1 -1
- package/dist/assets/{quadrantDiagram-ABIIQ3AL-rBNhtAik.js → quadrantDiagram-ABIIQ3AL-BfmcdARc.js} +1 -1
- package/dist/assets/{railroadDiagram-RFXS5EU6-Bh0AsgK_.js → railroadDiagram-RFXS5EU6-CplgjUu4.js} +1 -1
- package/dist/assets/{requirementDiagram-TGXJPOKE-2oc4ih2c.js → requirementDiagram-TGXJPOKE-BiRTuy5B.js} +1 -1
- package/dist/assets/{sankeyDiagram-HTMAVEWB-B-ysEqL4.js → sankeyDiagram-HTMAVEWB-C81HtBjy.js} +1 -1
- package/dist/assets/{sequenceDiagram-DBY2YBRQ-6kNR0UNq.js → sequenceDiagram-DBY2YBRQ-DFhPtqpN.js} +1 -1
- package/dist/assets/{sizeCapture-X5ZJPWSS-C6PbumMD.js → sizeCapture-X5ZJPWSS-BkT4qJkY.js} +1 -1
- package/dist/assets/{stateDiagram-2N3HPSRC-CvLiUbMc.js → stateDiagram-2N3HPSRC-CKvn1pfo.js} +1 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-blzdlH4v.js +1 -0
- package/dist/assets/{swimlanes-5IMT3BWC-dAgZbHOX.js → swimlanes-5IMT3BWC-D5WhCwkM.js} +2 -2
- package/dist/assets/swimlanesDiagram-G3AALYLV-BiOWb3s9.js +8 -0
- package/dist/assets/{timeline-definition-FHXFAJF6-B4uBF1kH.js → timeline-definition-FHXFAJF6-B-UTX_B8.js} +1 -1
- package/dist/assets/{vennDiagram-L72KCM5P-DmICWssw.js → vennDiagram-L72KCM5P-DelObiCK.js} +1 -1
- package/dist/assets/{wardleyDiagram-EHGQE667-CmKrH6Q5.js → wardleyDiagram-EHGQE667-DCWJdXij.js} +1 -1
- package/dist/assets/{web-DC2SNPaM.js → web-BOFBvPGv.js} +1 -1
- package/dist/assets/{web-eQSHkDHy.js → web-C2DocoQz.js} +1 -1
- package/dist/assets/{web-CnrzUv_G.js → web-qtcj3i0F.js} +1 -1
- package/dist/assets/{xychartDiagram-FW5EYKEG-B9wmI4CY.js → xychartDiagram-FW5EYKEG-CzbE79ZQ.js} +1 -1
- package/dist/build-info.json +1 -1
- package/dist/index.html +1 -1
- package/dist/src/packages/server/data/builtin-skills/image-generation.js +64 -0
- package/dist/src/packages/server/data/builtin-skills/index.js +2 -0
- package/dist/src/packages/server/integrations/slack/slack-client.js +3 -0
- package/dist/src/packages/server/integrations/slack/slack-instance.js +12 -0
- package/dist/src/packages/server/integrations/slack/slack-routes.js +19 -0
- package/dist/src/packages/server/integrations/slack/slack-skill.js +13 -1
- package/dist/src/packages/server/routes/files.js +4 -0
- package/dist/src/packages/server/routes/images.js +53 -0
- package/dist/src/packages/server/routes/index.js +2 -0
- package/dist/src/packages/server/services/image-service.js +364 -0
- package/dist/src/packages/server/services/index.js +1 -0
- package/dist/src/packages/shared/image-types.js +11 -0
- package/dist/src/packages/shared/types.js +1 -0
- package/package.json +1 -1
- package/dist/assets/channel-BgIK1LRk.js +0 -1
- package/dist/assets/classDiagram-OUVF2IWQ-DqGhAOej.js +0 -1
- package/dist/assets/classDiagram-v2-EOCWNBFH-DqGhAOej.js +0 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-Ds464XsG.js +0 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-B1Qwmr49.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-BKRg0DBA.js";import{IntegrationsPanel as Z}from"./IntegrationsPanel-BmRLC7dz.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DSCAlQQW.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-DUjvqOIA.js → RestoreArchivedAreaModal-BNccBE4Z.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-BKRg0DBA.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DSCAlQQW.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};
|