teleton 0.8.4 → 0.8.6

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.
Files changed (84) hide show
  1. package/README.md +40 -17
  2. package/dist/{bootstrap-NNEI3Z5H.js → bootstrap-PFBH6ALD.js} +11 -8
  3. package/dist/bridge-guards-HZTNH7IB.js +9 -0
  4. package/dist/{chunk-NH2CNRKJ.js → chunk-2UUGRY5B.js} +151 -159
  5. package/dist/{chunk-UMUONAD6.js → chunk-4MFN75ZK.js} +5941 -2716
  6. package/dist/{chunk-LC4TV3KL.js → chunk-4MG2AROG.js} +5 -7
  7. package/dist/{chunk-LZQOX6YY.js → chunk-6IFNQWIM.js} +7714 -8748
  8. package/dist/chunk-7KI25UJU.js +215 -0
  9. package/dist/chunk-AX5NBEHX.js +12 -0
  10. package/dist/{chunk-5LOHRZYY.js → chunk-BLUES3FJ.js} +80 -101
  11. package/dist/{chunk-CUE4UZXR.js → chunk-BT2I3ETV.js} +3 -3
  12. package/dist/chunk-CXTZPOTA.js +107 -0
  13. package/dist/{chunk-LVTKJQ7O.js → chunk-D3GT6YIY.js} +59 -7
  14. package/dist/chunk-EKCXKL5M.js +53 -0
  15. package/dist/{chunk-XDZDOKIF.js → chunk-F6S3L3OV.js} +3 -3
  16. package/dist/{chunk-C4NKJT2Z.js → chunk-J4WDJ7XS.js} +1 -1
  17. package/dist/{chunk-G7PCW63M.js → chunk-JYF2MM5I.js} +147 -113
  18. package/dist/{chunk-NVKBBTI6.js → chunk-K3QSIIMZ.js} +9 -6
  19. package/dist/{chunk-EYWNOHMJ.js → chunk-L653KKCR.js} +1 -0
  20. package/dist/chunk-OMQIAWEU.js +273 -0
  21. package/dist/chunk-PCT7GYBP.js +274 -0
  22. package/dist/chunk-QYZBWU2D.js +139 -0
  23. package/dist/{chunk-WTDAICGT.js → chunk-R6W4DJRK.js} +7 -7
  24. package/dist/{chunk-5SEMA47R.js → chunk-RILOEIK6.js} +1 -1
  25. package/dist/{chunk-6OOHHJ4N.js → chunk-TFTNZZDH.js} +20 -20
  26. package/dist/chunk-TTOZCZWE.js +96 -0
  27. package/dist/chunk-UJ54YT2T.js +12 -0
  28. package/dist/{chunk-GHMXWAXI.js → chunk-ULVL2W3D.js} +211 -445
  29. package/dist/{chunk-NQ6FZKCE.js → chunk-V3S3NXBQ.js} +3 -1
  30. package/dist/{chunk-H7MFXJZK.js → chunk-WSL4KIOI.js} +31 -26
  31. package/dist/{chunk-35MX4ZUI.js → chunk-Z5WY7BSB.js} +5 -5
  32. package/dist/{chunk-ALKAAG4O.js → chunk-ZGKE3OTA.js} +112 -49
  33. package/dist/{chunk-JROBTXWY.js → chunk-ZHRDETCX.js} +38 -4
  34. package/dist/cli/index.d.ts +2 -0
  35. package/dist/cli/index.js +272 -159
  36. package/dist/{client-5KD25NOP.js → client-S5UIK6OG.js} +10 -8
  37. package/dist/daily-logs-3WXGYAQF.js +25 -0
  38. package/dist/{get-my-gifts-Y7EN7RK4.js → get-my-gifts-3YSYM3LI.js} +3 -2
  39. package/dist/harden-permissions-PV5SGV5D.js +100 -0
  40. package/dist/index.d.ts +923 -0
  41. package/dist/index.js +29 -20
  42. package/dist/knowledge-RRWUIO3G.js +19 -0
  43. package/dist/{local-IHKJFQJS.js → local-MSZAXWUL.js} +3 -3
  44. package/dist/mcp-loader-OELDFR63.js +15 -0
  45. package/dist/{memory-QMJRM3XJ.js → memory-6U6HGRK2.js} +23 -12
  46. package/dist/memory-hook-T7Y235KY.js +19 -0
  47. package/dist/messages-KV5ADNJB.js +17 -0
  48. package/dist/{migrate-5VBAP52B.js → migrate-AX3HOKOO.js} +10 -7
  49. package/dist/{paths-XA2RJH4S.js → paths-WMVV7ZAJ.js} +1 -1
  50. package/dist/{server-WWGVDFPW.js → server-MFRYOGHR.js} +21 -23
  51. package/dist/{server-AJCOURH7.js → server-SFLCAZFR.js} +221 -27
  52. package/dist/{setup-server-VDY64CWW.js → setup-server-YWAPKZVE.js} +26 -26
  53. package/dist/{store-BY7S6IFN.js → store-PGHQASBC.js} +11 -8
  54. package/dist/{task-dependency-resolver-L6UUMTHK.js → task-dependency-resolver-YQKADDEU.js} +24 -10
  55. package/dist/{task-executor-XBNJLUCS.js → task-executor-LWAWD225.js} +4 -4
  56. package/dist/{tool-adapter-IVX2XQJE.js → tool-adapter-VKLUZSQS.js} +1 -1
  57. package/dist/{tool-index-FTERJSZK.js → tool-index-YEWDF5CK.js} +5 -5
  58. package/dist/{transcript-IM7G25OS.js → transcript-4Y3Z2BJ3.js} +3 -3
  59. package/dist/web/assets/Config-MNxA69ib.js +1 -0
  60. package/dist/web/assets/Conversations-Dk958paA.js +1 -0
  61. package/dist/web/assets/Dashboard-dM18fGOm.js +1 -0
  62. package/dist/web/assets/Hooks-D2griQnI.js +1 -0
  63. package/dist/web/assets/Mcp-CtWNzwsz.js +1 -0
  64. package/dist/web/assets/Memory-CfLwH45G.js +1 -0
  65. package/dist/web/assets/Plugins-3hoJprFo.js +1 -0
  66. package/dist/web/assets/SearchInput-CpcETdpE.js +1 -0
  67. package/dist/web/assets/Soul-BSxE73aK.js +1 -0
  68. package/dist/web/assets/Tasks-DkCkfu3A.js +1 -0
  69. package/dist/web/assets/TelegramSettingsPanel-BRzc5G6e.js +1 -0
  70. package/dist/web/assets/Tools-Du8B8Mb4.js +1 -0
  71. package/dist/web/assets/Wallet-BLILP2Gn.js +1 -0
  72. package/dist/web/assets/Workspace-qklcXpXV.js +1 -0
  73. package/dist/web/assets/index-BwEPTTKp.js +90 -0
  74. package/dist/web/assets/index-noejUsK7.css +1 -0
  75. package/dist/web/assets/{index.es-DitvF-9H.js → index.es-DdpKlnGb.js} +1 -1
  76. package/dist/web/assets/useToolManager-tdxkKn3H.js +1 -0
  77. package/dist/web/assets/utils-CnsbSMo4.js +1 -0
  78. package/dist/web/index.html +2 -2
  79. package/package.json +7 -12
  80. package/src/templates/HEARTBEAT.md +5 -0
  81. package/dist/memory-hook-VUNWZ3NY.js +0 -19
  82. package/dist/web/assets/index-BfYCdwLI.js +0 -80
  83. package/dist/web/assets/index-DmlyQVhR.css +0 -1
  84. package/dist/{chunk-WFTC3JJW.js → chunk-3NO7QU7W.js} +1 -1
@@ -0,0 +1 @@
1
+ import{r as a,j as e,S as B,a as D}from"./index-BwEPTTKp.js";import{u as R,T as W}from"./useToolManager-tdxkKn3H.js";import{S as P}from"./SearchInput-CpcETdpE.js";function $(){const[S,C]=a.useState([]),[w,d]=a.useState(!0),[N,x]=a.useState(null),[h,k]=a.useState(""),r=()=>(d(!0),D.getTools().then(s=>{C(s.data),d(!1)}).catch(s=>{g.setError(s instanceof Error?s.message:String(s)),d(!1)})),g=R(r),{updating:y,error:m,setError:u,toggleEnabled:E,updateScope:T,bulkToggle:A,bulkScope:I}=g;if(a.useEffect(()=>{r()},[]),w)return e.jsx("div",{className:"loading",children:"Loading..."});const l=S.filter(s=>!s.isPlugin),j=l.reduce((s,n)=>s+n.toolCount,0),b=l.reduce((s,n)=>s+n.tools.filter(i=>i.enabled).length,0),o=h.trim().toLowerCase(),c=o?l.filter(s=>s.name.toLowerCase().includes(o)||s.tools.some(n=>n.name.toLowerCase().includes(o)||n.description.toLowerCase().includes(o))):l;return e.jsxs("div",{children:[e.jsxs("div",{className:"header",children:[e.jsx("h1",{children:"Tools"}),e.jsxs("p",{children:[j," built-in tools across ",l.length," modules"]})]}),m&&e.jsxs("div",{className:"alert error",style:{marginBottom:"14px",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[e.jsx("span",{children:m}),e.jsxs("div",{style:{display:"flex",gap:"6px"},children:[e.jsx("button",{className:"btn-ghost btn-sm",onClick:()=>u(null),children:"Dismiss"}),e.jsx("button",{className:"btn-sm",onClick:()=>{u(null),r()},children:"Retry"})]})]}),e.jsxs("div",{className:"card",style:{padding:"10px 14px",marginBottom:"14px",display:"flex",gap:"16px",alignItems:"center",flexWrap:"wrap",overflow:"visible",position:"relative",zIndex:2,borderRadius:"var(--radius-pill)"},children:[e.jsxs("span",{style:{fontSize:"13px",color:"var(--text-secondary)"},children:[e.jsx("span",{style:{color:"var(--green)",fontWeight:600},children:b})," enabled"]}),e.jsxs("span",{style:{fontSize:"13px",color:"var(--text-secondary)"},children:[e.jsx("span",{style:{color:"var(--text-primary)",fontWeight:600},children:j-b})," disabled"]}),e.jsxs("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:"8px"},children:[e.jsx(P,{value:h,onChange:k,placeholder:"Search tools..."}),o&&e.jsxs("span",{style:{fontSize:"11px",color:"var(--text-secondary)",whiteSpace:"nowrap"},children:[c.length," of ",l.length," modules"]}),e.jsx("button",{className:"btn-ghost btn-sm",onClick:r,children:"Refresh"})]})]}),e.jsx("div",{className:"card",style:{padding:0},children:c.length===0?e.jsx("div",{style:{padding:"20px",textAlign:"center",color:"var(--text-secondary)"},children:o?"No modules match your search":"No modules found"}):e.jsxs("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:"13px"},children:[e.jsx("thead",{children:e.jsxs("tr",{style:{borderBottom:"1px solid var(--border)",color:"var(--text-secondary)",fontSize:"11px",textTransform:"uppercase"},children:[e.jsx("th",{style:{textAlign:"left",padding:"8px 14px"},children:"Module"}),e.jsx("th",{style:{textAlign:"center",padding:"8px 10px",width:60},children:"Tools"}),e.jsx("th",{style:{textAlign:"center",padding:"8px 10px",width:70},children:"Enabled"}),e.jsx("th",{style:{textAlign:"right",padding:"8px 14px",width:200},children:"Controls"})]})}),e.jsx("tbody",{children:c.map(s=>{const n=N===s.name,i=s.tools.some(t=>t.enabled),z=s.tools.every(t=>!t.enabled),p=s.tools.filter(t=>t.enabled).length,f=new Set(s.tools.map(t=>t.scope)),v=f.size>1,M=v?"":f.values().next().value??"always",L=y===s.name;return e.jsxs(e.Fragment,{children:[e.jsxs("tr",{onClick:()=>x(n?null:s.name),onKeyDown:t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),x(n?null:s.name))},tabIndex:0,role:"button",style:{cursor:"pointer",borderBottom:n?"none":"1px solid var(--border)",backgroundColor:n?"var(--glass-micro)":void 0},className:"file-row",children:[e.jsx("td",{style:{padding:"10px 14px"},children:e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[e.jsx("span",{style:{display:"inline-block",width:"14px",fontSize:"10px",color:"var(--text-secondary)"},children:n?"▼":"▶"}),e.jsx("span",{style:{fontWeight:600},children:s.name}),z&&e.jsx("span",{className:"badge warn",children:"Disabled"})]})}),e.jsx("td",{style:{textAlign:"center",padding:"8px 10px"},children:e.jsx("span",{className:"badge count",children:s.toolCount})}),e.jsx("td",{style:{textAlign:"center",padding:"8px 10px"},children:e.jsxs("span",{style:{fontSize:"12px",color:p===s.toolCount?"var(--green)":p===0?"var(--text-secondary)":"var(--text-primary)"},children:[p,"/",s.toolCount]})}),e.jsx("td",{style:{textAlign:"right",padding:"8px 14px"},onClick:t=>t.stopPropagation(),children:e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:"8px"},children:[e.jsx(B,{value:M,options:["","open","dm-only","group-only","admin-only","allowlist","disabled"],labels:[v?"Mixed":"Scope","All","DM only","Group only","Admin only","Allowlist","Disabled"],onChange:t=>t&&I(s,t),style:{minWidth:"100px"}}),e.jsxs("label",{className:"toggle",children:[e.jsx("input",{type:"checkbox",checked:i,onChange:()=>A(s,!i),disabled:L}),e.jsx("span",{className:"toggle-track"}),e.jsx("span",{className:"toggle-thumb"})]})]})})]},s.name),n&&e.jsx("tr",{style:{backgroundColor:"var(--glass-micro)",borderBottom:"1px solid var(--border)"},children:e.jsx("td",{colSpan:4,style:{padding:"0 14px 14px 14px"},children:e.jsx("div",{style:{display:"grid",gap:"6px",paddingTop:"6px"},children:s.tools.map(t=>e.jsx(W,{tool:t,updating:y,onToggle:E,onScope:T},t.name))})})},`${s.name}-detail`)]})})})]})})]})}export{$ as Tools};
@@ -0,0 +1 @@
1
+ import{r as s,a as u,j as e,R as N}from"./index-BwEPTTKp.js";import{f as W}from"./utils-CnsbSMo4.js";function j(r){return r.length<=14?r:`${r.slice(0,6)}…${r.slice(-6)}`}function E(r){return r.length<=16?r:`${r.slice(0,8)}…${r.slice(-8)}`}function F(){const[r,v]=s.useState(null),[x,b]=s.useState([]),[S,p]=s.useState(!0),[a,y]=s.useState(!0),[h,o]=s.useState(null),[C,g]=s.useState(!1),[f,w]=s.useState(null),l=s.useCallback(async()=>{p(!0),o(null);try{const t=await u.getWallet();v(t.data??null)}catch(t){o(t instanceof Error?t.message:String(t))}finally{p(!1)}},[]),i=s.useCallback(async()=>{y(!0);try{const t=await u.getWalletTransactions();b(t.data??[])}catch(t){o(t instanceof Error?t.message:String(t))}finally{y(!1)}},[]);s.useEffect(()=>{l(),i()},[l,i]);const z=()=>{l(),i()},T=async()=>{if(r!=null&&r.address)try{await navigator.clipboard.writeText(r.address),g(!0),setTimeout(()=>g(!1),2e3)}catch{}},m=t=>{w(f===t?null:t)},A=t=>t.includes("received")||t==="gas_refund"?"in":t.includes("sent")?"out":"other";return e.jsxs("div",{children:[e.jsxs("div",{className:"header",children:[e.jsx("h1",{children:"Wallet"}),e.jsx("p",{children:"TON blockchain wallet"})]}),h&&e.jsxs("div",{className:"alert error",style:{marginBottom:"12px"},children:[h,e.jsx("button",{onClick:()=>o(null),style:{marginLeft:"10px",padding:"2px 8px",fontSize:"12px"},children:"Dismiss"})]}),e.jsx("div",{className:"card",style:{marginBottom:"16px",padding:"16px 20px"},children:S?e.jsx("div",{style:{textAlign:"center",color:"var(--text-secondary)",fontSize:"13px"},children:"Loading wallet..."}):r!=null&&r.address?e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",flexWrap:"wrap",gap:"12px"},children:[e.jsxs("div",{children:[e.jsx("div",{style:{fontSize:"11px",color:"var(--text-secondary)",textTransform:"uppercase",marginBottom:"4px"},children:"Address"}),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[e.jsx("code",{style:{fontSize:"13px",color:"var(--text-primary)",fontFamily:"monospace"},children:j(r.address)}),e.jsx("button",{onClick:T,className:"btn-ghost btn-sm",style:{padding:"2px 6px",fontSize:"11px"},children:C?"Copied!":"Copy"})]})]}),e.jsxs("div",{style:{textAlign:"right"},children:[e.jsx("div",{style:{fontSize:"11px",color:"var(--text-secondary)",textTransform:"uppercase",marginBottom:"4px"},children:"Balance"}),e.jsxs("div",{style:{fontSize:"20px",fontWeight:600,color:"var(--text-primary)"},children:[r.balance," TON"]})]})]}):e.jsx("div",{style:{textAlign:"center",color:"var(--text-secondary)",fontSize:"13px"},children:"No wallet configured"})}),e.jsxs("div",{className:"card",style:{padding:0},children:[e.jsxs("div",{style:{display:"flex",gap:"8px",alignItems:"center",padding:"12px 14px",borderBottom:"1px solid var(--border)"},children:[e.jsx("span",{style:{flex:1,fontSize:"13px",fontWeight:500,color:"var(--text-primary)"},children:"Recent Transactions"}),e.jsx("button",{onClick:z,disabled:a,className:"btn-ghost btn-sm",children:a?"Loading...":"Refresh"})]}),a?e.jsx("div",{style:{padding:"20px",textAlign:"center"},children:"Loading..."}):x.length===0?e.jsx("div",{style:{padding:"20px",textAlign:"center",color:"var(--text-secondary)",fontSize:"13px"},children:"No transactions yet"}):e.jsxs("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:"13px"},children:[e.jsx("thead",{children:e.jsxs("tr",{style:{borderBottom:"1px solid var(--border)",color:"var(--text-secondary)",fontSize:"11px",textTransform:"uppercase"},children:[e.jsx("th",{style:{textAlign:"left",padding:"8px 14px",width:"40px"}}),e.jsx("th",{style:{textAlign:"left",padding:"8px 14px"},children:"Type"}),e.jsx("th",{style:{textAlign:"right",padding:"8px 14px",width:"120px"},children:"Amount"}),e.jsx("th",{style:{textAlign:"left",padding:"8px 14px"},children:"Address"}),e.jsx("th",{style:{textAlign:"right",padding:"8px 14px",width:"140px"},children:"Date"})]})}),e.jsx("tbody",{children:x.map(t=>{const n=A(t.type),d=f===t.hash,k=t.from||t.to||t.jettonWallet||"—";return e.jsxs(N.Fragment,{children:[e.jsxs("tr",{onClick:()=>m(t.hash),onKeyDown:c=>{(c.key==="Enter"||c.key===" ")&&(c.preventDefault(),m(t.hash))},tabIndex:0,role:"button",style:{cursor:"pointer",borderBottom:d?"none":"1px solid var(--border)",backgroundColor:d?"var(--glass-micro)":void 0},className:"file-row",children:[e.jsx("td",{style:{padding:"6px 14px",fontSize:"16px"},children:e.jsx("span",{style:{color:n==="in"?"var(--green)":n==="out"?"var(--red)":"var(--text-secondary)"},children:n==="in"?"↓":n==="out"?"↑":"•"})}),e.jsx("td",{style:{padding:"6px 14px"},children:e.jsx("span",{style:{display:"inline-block",padding:"1px 6px",fontSize:"11px",borderRadius:"3px",backgroundColor:n==="in"?"var(--green-dim)":n==="out"?"var(--red-dim)":"var(--bg-muted)",color:n==="in"?"var(--green)":n==="out"?"var(--red)":"var(--text-secondary)"},children:t.type.replace(/_/g," ")})}),e.jsx("td",{style:{textAlign:"right",padding:"6px 14px",fontWeight:500,color:n==="in"?"var(--green)":"var(--text-primary)"},children:t.amount?`${n==="in"?"+":n==="out"?"-":""}${t.amount}`:"—"}),e.jsx("td",{style:{padding:"6px 14px",color:"var(--text-secondary)",fontFamily:"monospace",fontSize:"12px"},children:j(k)}),e.jsx("td",{style:{textAlign:"right",padding:"6px 14px",color:"var(--text-secondary)"},children:W(t.date)})]}),d&&e.jsx("tr",{style:{backgroundColor:"var(--glass-micro)",borderBottom:"1px solid var(--border)"},children:e.jsx("td",{colSpan:5,style:{padding:"0 14px 14px 14px"},children:e.jsx("div",{style:{padding:"10px 12px",border:"1px solid var(--border)",borderRadius:"4px",backgroundColor:"var(--bg-glass)",marginTop:"8px"},children:e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"6px",fontSize:"12px"},children:[e.jsxs("div",{style:{display:"flex",justifyContent:"space-between"},children:[e.jsx("span",{style:{color:"var(--text-secondary)"},children:"Hash"}),e.jsx("code",{style:{color:"var(--text-primary)",fontFamily:"monospace"},children:E(t.hash)})]}),t.from&&e.jsxs("div",{style:{display:"flex",justifyContent:"space-between"},children:[e.jsx("span",{style:{color:"var(--text-secondary)"},children:"From"}),e.jsx("code",{style:{color:"var(--text-primary)",fontFamily:"monospace",fontSize:"11px"},children:t.from})]}),t.to&&e.jsxs("div",{style:{display:"flex",justifyContent:"space-between"},children:[e.jsx("span",{style:{color:"var(--text-secondary)"},children:"To"}),e.jsx("code",{style:{color:"var(--text-primary)",fontFamily:"monospace",fontSize:"11px"},children:t.to})]}),t.comment&&e.jsxs("div",{style:{display:"flex",justifyContent:"space-between"},children:[e.jsx("span",{style:{color:"var(--text-secondary)"},children:"Comment"}),e.jsx("span",{style:{color:"var(--text-primary)"},children:t.comment})]}),e.jsxs("div",{style:{display:"flex",justifyContent:"space-between"},children:[e.jsx("span",{style:{color:"var(--text-secondary)"},children:"Explorer"}),e.jsx("a",{href:t.explorer,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",fontSize:"12px"},children:"View on TonViewer"})]})]})})})})]},t.hash)})})]})]})]})}export{F as Wallet};
@@ -0,0 +1 @@
1
+ import{r,a as o,j as t,R as O}from"./index-BwEPTTKp.js";import{f as X}from"./utils-CnsbSMo4.js";function W(s){return s===0?"-":s<1024?`${s} B`:s<1024*1024?`${(s/1024).toFixed(1)} KB`:`${(s/(1024*1024)).toFixed(1)} MB`}const Y=new Set(["png","jpg","jpeg","gif","webp","svg","bmp","ico"]),_=new Set(["zip","tar","gz","bin","exe","dll","so","db","sqlite","wasm","pdf"]);function $(s){var v,u;return((u=(v=s.split("/").pop())==null?void 0:v.split(".").pop())==null?void 0:u.toLowerCase())??""}function q(s){return Y.has($(s))}function G(s){return _.has($(s))}function Q(){const[s,v]=r.useState(""),[u,K]=r.useState([]),[C,M]=r.useState(null),[P,D]=r.useState(!0),[F,c]=r.useState(null),[a,x]=r.useState(null),[z,p]=r.useState(""),[y,d]=r.useState(!1),[N,I]=r.useState(!1),[g,w]=r.useState("text"),[l,m]=r.useState(null),[R,j]=r.useState(""),f=r.useCallback(async e=>{var i;D(!0),c(null);try{const n=await o.workspaceList(e);K(((i=n.data)==null?void 0:i.entries)??[]),v(e)}catch(n){c(n instanceof Error?n.message:String(n))}finally{D(!1)}},[]),b=r.useCallback(async()=>{try{const e=await o.workspaceInfo();M(e.data??null)}catch{}},[]);r.useEffect(()=>{f(""),b()},[f,b]),r.useEffect(()=>{if(!y)return;const e=i=>{i.preventDefault()};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[y]);const h=e=>{S()&&f(e)},E=s?s.split("/"):[],T=async e=>{var i;try{if(c(null),q(e))x(e),w("image"),p(""),d(!1);else if(G(e))x(e),w("binary"),p(""),d(!1);else{const n=await o.workspaceRead(e);x(e),w("text"),p(((i=n.data)==null?void 0:i.content)??""),d(!1)}}catch(n){c(n instanceof Error?n.message:String(n))}},S=()=>g==="text"&&y&&!confirm("You have unsaved changes. Discard?")?!1:(x(null),p(""),d(!1),w("text"),!0),B=e=>{if(a===e)S();else{if(!S())return;T(e)}},A=async()=>{if(a){I(!0);try{await o.workspaceWrite(a,z),d(!1),f(s)}catch(e){c(e instanceof Error?e.message:String(e))}finally{I(!1)}}},H=async e=>{const i=e.isDirectory?"directory":"file";if(confirm(`Delete ${i} "${e.name}"?`))try{await o.workspaceDelete(e.path,e.isDirectory),a===e.path&&(x(null),p(""),d(!1)),f(s),b()}catch(n){c(n instanceof Error?n.message:String(n))}},L=async()=>{const e=R.trim();if(!e||!l)return;const i=s?`${s}/${e}`:e;try{if(l.type==="newFile")await o.workspaceWrite(i,"");else if(l.type==="newFolder")await o.workspaceMkdir(i);else if(l.type==="rename"&&l.target){const n=s?`${s}/${e}`:e;await o.workspaceRename(l.target,n),a===l.target&&(x(null),p(""),d(!1))}m(null),j(""),f(s),b()}catch(n){c(n instanceof Error?n.message:String(n))}};return t.jsxs("div",{children:[t.jsxs("div",{className:"header",children:[t.jsx("h1",{children:"Workspace"}),t.jsxs("p",{children:["Browse and manage agent workspace files",C&&t.jsxs("span",{style:{marginLeft:"12px",fontSize:"12px",color:"var(--text-secondary)"},children:[C.totalFiles," files · ",W(C.totalSize)]})]})]}),F&&t.jsxs("div",{className:"alert error",style:{marginBottom:"14px"},children:[F,t.jsx("button",{onClick:()=>c(null),style:{marginLeft:"10px",padding:"2px 8px",fontSize:"12px"},children:"Dismiss"})]}),t.jsxs("div",{className:"card",style:{padding:"8px 14px",marginBottom:"14px",display:"flex",alignItems:"center",gap:"4px",flexWrap:"wrap"},children:[t.jsx("span",{onClick:()=>h(""),style:{cursor:"pointer",fontWeight:s?"normal":"bold",color:"var(--accent)"},children:"workspace"}),E.map((e,i)=>{const n=E.slice(0,i+1).join("/"),k=i===E.length-1;return t.jsxs("span",{children:[t.jsx("span",{style:{color:"var(--text-secondary)",margin:"0 2px"},children:"/"}),t.jsx("span",{onClick:()=>!k&&h(n),style:{cursor:k?"default":"pointer",fontWeight:k?"bold":"normal",color:k?"var(--text-primary)":"var(--accent)"},children:e})]},n)}),t.jsxs("div",{style:{marginLeft:"auto",display:"flex",gap:"6px"},children:[t.jsx("button",{className:"btn-ghost btn-sm",onClick:()=>{m({type:"newFile"}),j("")},children:"+ File"}),t.jsx("button",{className:"btn-ghost btn-sm",onClick:()=>{m({type:"newFolder"}),j("")},children:"+ Folder"})]})]}),l&&t.jsxs("div",{className:"card",style:{padding:"10px 14px",marginBottom:"14px",display:"flex",gap:"8px",alignItems:"center",borderRadius:"var(--radius-pill)"},children:[t.jsx("span",{style:{fontSize:"13px",whiteSpace:"nowrap"},children:l.type==="newFile"?"New file:":l.type==="newFolder"?"New folder:":"Rename to:"}),t.jsx("input",{type:"text",value:R,onChange:e=>j(e.target.value),onKeyDown:e=>e.key==="Enter"&&L(),placeholder:"name...",autoFocus:!0,style:{flex:1,padding:"4px 8px",fontSize:"13px"}}),t.jsx("button",{style:{padding:"4px 10px",fontSize:"12px"},onClick:L,children:"OK"}),t.jsx("button",{style:{padding:"4px 10px",fontSize:"12px",opacity:.7},onClick:()=>m(null),children:"Cancel"})]}),t.jsx("div",{className:"card",style:{padding:0},children:P?t.jsx("div",{style:{padding:"20px",textAlign:"center"},children:"Loading..."}):u.length===0?t.jsx("div",{style:{padding:"20px",textAlign:"center",color:"var(--text-secondary)"},children:"Empty directory"}):t.jsxs("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:"13px"},children:[t.jsx("thead",{children:t.jsxs("tr",{style:{borderBottom:"1px solid var(--border)",color:"var(--text-secondary)",fontSize:"11px",textTransform:"uppercase"},children:[t.jsx("th",{style:{textAlign:"left",padding:"8px 14px"},children:"Name"}),t.jsx("th",{style:{textAlign:"right",padding:"8px 14px",width:"80px"},children:"Size"}),t.jsx("th",{style:{textAlign:"right",padding:"8px 14px",width:"140px"},children:"Modified"}),t.jsx("th",{style:{textAlign:"right",padding:"8px 14px",width:"70px"}})]})}),t.jsxs("tbody",{children:[s&&t.jsxs("tr",{onClick:()=>{const e=s.split("/");e.pop(),h(e.join("/"))},onKeyDown:e=>{if(e.key==="Enter"||e.key===" "){e.preventDefault();const i=s.split("/");i.pop(),h(i.join("/"))}},tabIndex:0,role:"button",style:{cursor:"pointer",borderBottom:"1px solid var(--border)"},className:"file-row",children:[t.jsxs("td",{style:{padding:"6px 14px"},children:[t.jsx("span",{style:{marginRight:"8px"},children:"📂"}),".."]}),t.jsx("td",{}),t.jsx("td",{}),t.jsx("td",{})]}),u.map(e=>{const i=!e.isDirectory&&a===e.path;return t.jsxs(O.Fragment,{children:[t.jsxs("tr",{onClick:()=>e.isDirectory?h(e.path):B(e.path),onKeyDown:n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),e.isDirectory?h(e.path):B(e.path))},tabIndex:0,role:"button",style:{cursor:"pointer",borderBottom:i?"none":"1px solid var(--border)",backgroundColor:i?"var(--glass-micro)":void 0},className:"file-row",children:[t.jsxs("td",{style:{padding:"6px 14px"},children:[e.isDirectory?t.jsx("span",{style:{marginRight:"8px"},children:"📂"}):t.jsx("span",{style:{display:"inline-block",width:"14px",fontSize:"10px",color:"var(--text-secondary)",marginRight:"8px"},children:i?"▼":"▶"}),e.name]}),t.jsx("td",{style:{textAlign:"right",padding:"6px 14px",color:"var(--text-secondary)"},children:e.isDirectory?"":W(e.size)}),t.jsx("td",{style:{textAlign:"right",padding:"6px 14px",color:"var(--text-secondary)"},children:X(e.mtime)}),t.jsxs("td",{style:{textAlign:"right",padding:"6px 14px",whiteSpace:"nowrap"},onClick:n=>n.stopPropagation(),children:[t.jsx("button",{className:"icon-button",onClick:()=>{m({type:"rename",target:e.path}),j(e.name)},title:"Rename",children:"✎"}),t.jsx("button",{className:"icon-button",onClick:()=>H(e),title:"Delete",children:"🗑"})]})]}),i&&t.jsx("tr",{style:{backgroundColor:"var(--glass-micro)",borderBottom:"1px solid var(--border)"},children:t.jsxs("td",{colSpan:4,style:{padding:"0 14px 14px 14px"},children:[t.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"10px 0"},children:[t.jsxs("span",{style:{fontSize:"13px",fontWeight:600},children:[a,g==="text"&&y&&t.jsx("span",{style:{color:"var(--accent)",marginLeft:"6px"},children:"*"})]}),t.jsxs("div",{style:{display:"flex",gap:"6px"},children:[g==="text"&&t.jsx("button",{style:{padding:"4px 12px",fontSize:"12px"},onClick:A,disabled:N||!y,children:N?"Saving...":"Save"}),t.jsx("button",{style:{padding:"4px 12px",fontSize:"12px",opacity:.7},onClick:()=>S(),children:"Close"})]})]}),g==="text"&&t.jsx("textarea",{value:z,onChange:n=>{p(n.target.value),d(!0)},onKeyDown:n=>{(n.ctrlKey||n.metaKey)&&n.key==="s"&&(n.preventDefault(),A())},style:{width:"100%",minHeight:"300px",maxHeight:"500px",fontFamily:"monospace",fontSize:"13px",padding:"10px",border:"1px solid var(--border)",borderRadius:"4px",backgroundColor:"var(--bg-glass)",color:"var(--text-primary)",resize:"vertical",tabSize:2},spellCheck:!1}),g==="image"&&a&&t.jsx("div",{style:{display:"flex",justifyContent:"center",padding:"20px 0"},children:t.jsx("img",{src:o.workspaceRawUrl(a),alt:a,style:{maxWidth:"100%",maxHeight:"60vh",objectFit:"contain",borderRadius:"8px"},onError:n=>{n.target.alt="Failed to load image"}})}),g==="binary"&&t.jsx("div",{style:{padding:"20px 0",textAlign:"center",color:"var(--text-secondary)",fontSize:"13px"},children:"Binary file - preview not available"})]})})]},e.path)})]})]})})]})}export{Q as Workspace};