hive-am 1.1.0 → 1.2.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 +83 -1
- package/README.md +9 -1
- package/package.json +13 -2
- package/server/dist/api.js +42 -762
- package/server/dist/connections/channel-skill.js +13 -1
- package/server/dist/connections/files.js +45 -1
- package/server/dist/connections/manager.js +41 -3
- package/server/dist/connections/outbound.js +2 -1
- package/server/dist/connections/prompt.js +4 -0
- package/server/dist/connections/router.js +3 -2
- package/server/dist/connections/store.js +4 -43
- package/server/dist/connections/telegram.js +43 -3
- package/server/dist/cron.js +2 -1
- package/server/dist/db/json.js +16 -0
- package/server/dist/db/migrations.js +199 -0
- package/server/dist/db.js +98 -196
- package/server/dist/errors.js +11 -0
- package/server/dist/git/browse.js +99 -0
- package/server/dist/git/ops.js +136 -19
- package/server/dist/git/repo.js +2 -1
- package/server/dist/history/claude.js +21 -21
- package/server/dist/history/index.js +17 -9
- package/server/dist/history/kiro.js +17 -12
- package/server/dist/history/lines.js +12 -0
- package/server/dist/history/opencode.js +18 -1
- package/server/dist/http/body.js +46 -0
- package/server/dist/http/errors.js +21 -0
- package/server/dist/http/guards.js +44 -0
- package/server/dist/http/router.js +24 -0
- package/server/dist/http/routes/agents.js +103 -0
- package/server/dist/http/routes/channel.js +16 -0
- package/server/dist/http/routes/colonies.js +9 -0
- package/server/dist/http/routes/connections.js +36 -0
- package/server/dist/http/routes/fs.js +22 -0
- package/server/dist/http/routes/git.js +90 -0
- package/server/dist/http/routes/meta.js +11 -0
- package/server/dist/http/routes/notebook.js +34 -0
- package/server/dist/http/routes/orchestration.js +32 -0
- package/server/dist/http/routes/resources.js +68 -0
- package/server/dist/http/routes/schedules.js +40 -0
- package/server/dist/http/routes/skills.js +47 -0
- package/server/dist/http/routes/terminals.js +18 -0
- package/server/dist/http/routes/types.js +36 -0
- package/server/dist/http/validate.js +65 -0
- package/server/dist/index.js +67 -5
- package/server/dist/instructions.js +8 -2
- package/server/dist/objects/agent.js +49 -0
- package/server/dist/objects/database.js +451 -0
- package/server/dist/objects/db-history.js +79 -0
- package/server/dist/objects/docker-info.js +75 -0
- package/server/dist/objects/docker.js +285 -0
- package/server/dist/objects/driver-props.js +196 -0
- package/server/dist/objects/exec.js +16 -0
- package/server/dist/objects/http-history.js +44 -0
- package/server/dist/objects/http-script.js +644 -0
- package/server/dist/objects/http.js +735 -0
- package/server/dist/objects/index.js +445 -0
- package/server/dist/objects/model.js +250 -0
- package/server/dist/objects/runner.js +211 -0
- package/server/dist/objects/stats.js +106 -0
- package/server/dist/objects/store.js +115 -0
- package/server/dist/objects/supervisor.js +111 -0
- package/server/dist/objects/templates.js +67 -0
- package/server/dist/providers/claude.js +3 -13
- package/server/dist/providers/index.js +7 -1
- package/server/dist/providers/kiro.js +2 -5
- package/server/dist/providers/opencode.js +2 -5
- package/server/dist/providers/preamble.js +2 -0
- package/server/dist/providers/spawn.js +31 -3
- package/server/dist/runtime.js +8 -6
- package/server/dist/schedules.js +2 -21
- package/server/dist/seed.js +15 -11
- package/server/dist/services/agents.js +90 -0
- package/server/dist/services/colonies.js +38 -0
- package/server/dist/services/connections.js +76 -0
- package/server/dist/services/notebook.js +22 -0
- package/server/dist/services/providers.js +27 -0
- package/server/dist/services/schedules.js +18 -0
- package/server/dist/sessions-summary.js +51 -0
- package/server/dist/skills/defaults.js +37 -0
- package/server/dist/skills/notebook.js +3 -8
- package/server/dist/terminals.js +177 -0
- package/server/dist/wake.js +13 -16
- package/server/dist/watch.js +2 -8
- package/server/mcp/dispatch.mjs +70 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-build-manifest.json +150 -98
- package/web/.next/app-path-routes-manifest.json +7 -5
- package/web/.next/build-manifest.json +14 -14
- package/web/.next/prerender-manifest.json +67 -43
- package/web/.next/react-loadable-manifest.json +26 -1
- package/web/.next/required-server-files.json +13 -1
- package/web/.next/routes-manifest.json +26 -0
- package/web/.next/server/app/_not-found/page.js +2 -2
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_not-found.html +1 -1
- package/web/.next/server/app/_not-found.rsc +12 -11
- package/web/.next/server/app/agents/[id]/page.js +4 -4
- package/web/.next/server/app/agents/[id]/page.js.nft.json +1 -1
- package/web/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/agents/page.js +2 -2
- package/web/.next/server/app/agents/page.js.nft.json +1 -1
- package/web/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/agents.html +1 -1
- package/web/.next/server/app/agents.rsc +14 -13
- package/web/.next/server/app/connections/page.js +2 -2
- package/web/.next/server/app/connections/page.js.nft.json +1 -1
- package/web/.next/server/app/connections/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/connections.html +1 -1
- package/web/.next/server/app/connections.rsc +14 -13
- package/web/.next/server/app/index.html +1 -1
- package/web/.next/server/app/index.rsc +14 -13
- package/web/.next/server/app/page.js +2 -2
- package/web/.next/server/app/page.js.nft.json +1 -1
- package/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/relations/page.js +2 -2
- package/web/.next/server/app/relations/page.js.nft.json +1 -1
- package/web/.next/server/app/relations/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/relations.html +1 -1
- package/web/.next/server/app/relations.rsc +14 -13
- package/web/.next/server/app/resources/[id]/page.js +2 -0
- package/web/.next/server/app/resources/[id]/page.js.nft.json +1 -0
- package/web/.next/server/app/resources/[id]/page_client-reference-manifest.js +1 -0
- package/web/.next/server/app/resources/page.js +2 -0
- package/web/.next/server/app/resources/page.js.nft.json +1 -0
- package/web/.next/server/app/resources/page_client-reference-manifest.js +1 -0
- package/web/.next/server/app/resources.html +1 -0
- package/web/.next/server/app/resources.meta +15 -0
- package/web/.next/server/app/resources.rsc +25 -0
- package/web/.next/server/app/schedules/page.js +2 -2
- package/web/.next/server/app/schedules/page.js.nft.json +1 -1
- package/web/.next/server/app/schedules/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/schedules.html +1 -1
- package/web/.next/server/app/schedules.rsc +14 -13
- package/web/.next/server/app/sessions/page.js +2 -2
- package/web/.next/server/app/sessions/page.js.nft.json +1 -1
- package/web/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/sessions.html +1 -1
- package/web/.next/server/app/sessions.rsc +14 -13
- package/web/.next/server/app/skills/page.js +2 -2
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills.html +1 -1
- package/web/.next/server/app/skills.rsc +14 -13
- package/web/.next/server/app/types/page.js +2 -2
- package/web/.next/server/app/types/page.js.nft.json +1 -1
- package/web/.next/server/app/types/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/types.html +1 -1
- package/web/.next/server/app/types.rsc +14 -13
- package/web/.next/server/app-paths-manifest.json +7 -5
- package/web/.next/server/chunks/143.js +1 -1
- package/web/.next/server/chunks/274.js +1 -0
- package/web/.next/server/chunks/306.js +1 -0
- package/web/.next/server/chunks/423.js +1 -0
- package/web/.next/server/chunks/505.js +6 -0
- package/web/.next/server/chunks/555.js +1 -0
- package/web/.next/server/chunks/612.js +1 -0
- package/web/.next/server/chunks/638.js +1 -0
- package/web/.next/server/chunks/692.js +18 -0
- package/web/.next/server/chunks/716.js +2 -0
- package/web/.next/server/chunks/790.js +11 -0
- package/web/.next/server/chunks/802.js +1 -0
- package/web/.next/server/chunks/890.js +1 -1
- package/web/.next/server/chunks/919.js +1 -0
- package/web/.next/server/chunks/950.js +6 -0
- package/web/.next/server/middleware-build-manifest.js +1 -1
- package/web/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/web/.next/server/next-font-manifest.js +1 -1
- package/web/.next/server/next-font-manifest.json +1 -1
- package/web/.next/server/pages/404.html +1 -1
- package/web/.next/server/pages/500.html +1 -1
- package/web/.next/server/server-reference-manifest.json +1 -1
- package/web/.next/static/chunks/0937d497-114a2a3de515565e.js +1 -0
- package/web/.next/static/chunks/176-aeaf907a6ea5627d.js +1 -0
- package/web/.next/static/chunks/291-efae53ea5f7ee92d.js +1 -0
- package/web/.next/static/chunks/2b9ff8ee-969e65cc354b2150.js +1 -0
- package/web/.next/static/chunks/30-9adcbe92b15a6815.js +1 -0
- package/web/.next/static/chunks/316-26da9cc233ba7557.js +1 -0
- package/web/.next/static/chunks/350-56599dc3bf06066d.js +1 -0
- package/web/.next/static/chunks/486-13e08542f3a1cbac.js +1 -0
- package/web/.next/static/chunks/491-6b4e6201f5110dff.js +1 -0
- package/web/.next/static/chunks/517-ccaf8cc5c733cbd8.js +1 -0
- package/web/.next/static/chunks/545.bfbd92b7632c09de.js +1 -0
- package/web/.next/static/chunks/{805-d946ebedb7e85f73.js → 562-7c2e33d838e869bf.js} +1 -1
- package/web/.next/static/chunks/581-3ad5c4343dad3f50.js +1 -0
- package/web/.next/static/chunks/586-f7017d585a84738d.js +1 -0
- package/web/.next/static/chunks/657.b4c39e676c3e20dc.js +1 -0
- package/web/.next/static/chunks/701.6abcaf5e60463eef.js +6 -0
- package/web/.next/static/chunks/705-a16e1fe09be1ac7f.js +1 -0
- package/web/.next/static/chunks/706-fa2be0f10ffebe6a.js +1 -0
- package/web/.next/static/chunks/837-33c7480524f48577.js +1 -0
- package/web/.next/static/chunks/839-23c5508622fae942.js +1 -0
- package/web/.next/static/chunks/844-fe55292e0701f436.js +1 -0
- package/web/.next/static/chunks/89-b194fcffe5120c44.js +1 -0
- package/web/.next/static/chunks/97.594543c2196de524.js +1 -0
- package/web/.next/static/chunks/app/_not-found/page-238a7b80bda6b4ae.js +1 -0
- package/web/.next/static/chunks/app/agents/[id]/page-4af6c246c4ca7a97.js +1 -0
- package/web/.next/static/chunks/app/agents/page-f4c4c80f955f3967.js +1 -0
- package/web/.next/static/chunks/app/connections/page-0936beaf02d863c6.js +1 -0
- package/web/.next/static/chunks/app/layout-87ebb70bd9cb8443.js +1 -0
- package/web/.next/static/chunks/app/page-a7f292117b7d76bf.js +1 -0
- package/web/.next/static/chunks/app/relations/page-fba25393c8688714.js +1 -0
- package/web/.next/static/chunks/app/resources/[id]/page-d110d89bb8b5fca7.js +1 -0
- package/web/.next/static/chunks/app/resources/page-bbd0b450d3f3131d.js +1 -0
- package/web/.next/static/chunks/app/schedules/page-a1124397fc760413.js +1 -0
- package/web/.next/static/chunks/app/sessions/page-0e322811b0cde724.js +1 -0
- package/web/.next/static/chunks/app/skills/page-22ea0ef89d9f7a13.js +1 -0
- package/web/.next/static/chunks/app/types/page-18c4e1db2724d41d.js +1 -0
- package/web/.next/static/chunks/fcafe1ac.366e4950d3b0d4b7.js +18 -0
- package/web/.next/static/chunks/framework-bbac72adbbe2d328.js +1 -0
- package/web/.next/static/chunks/main-app-6086068e5fb5eacd.js +1 -0
- package/web/.next/static/chunks/main-c15f3fee674e0303.js +1 -0
- package/web/.next/static/chunks/pages/_app-d1670a2c6ce392fc.js +1 -0
- package/web/.next/static/chunks/pages/_error-95aac014d202fa7a.js +1 -0
- package/web/.next/static/chunks/webpack-ef515e41a83a16ac.js +1 -0
- package/web/.next/static/css/945795da867f5250.css +1 -0
- package/web/.next/static/css/dd4e32c285f75776.css +1 -0
- package/web/.next/static/p4S3i9kvO359GW91DQiHu/_buildManifest.js +1 -0
- package/web/.next/trace +29 -23
- package/web/.next/types/app/resources/[id]/page.ts +84 -0
- package/web/.next/types/app/resources/page.ts +84 -0
- package/web/.next/types/routes.d.ts +6 -2
- package/web/.next/types/validator.ts +18 -0
- package/web/next.config.mjs +4 -0
- package/web/.next/server/chunks/247.js +0 -1
- package/web/.next/server/chunks/484.js +0 -11
- package/web/.next/server/chunks/851.js +0 -1
- package/web/.next/server/chunks/932.js +0 -2
- package/web/.next/static/_z2hBOHhwiR5ytdI_8alh/_buildManifest.js +0 -1
- package/web/.next/static/chunks/0937d497-44abb0f9355ace92.js +0 -1
- package/web/.next/static/chunks/2b9ff8ee-c3b61ac1e608c57d.js +0 -1
- package/web/.next/static/chunks/463-6ae35cdefdc59169.js +0 -1
- package/web/.next/static/chunks/493-50d2adf9fd5ec680.js +0 -1
- package/web/.next/static/chunks/517-eb26c72f6059aa26.js +0 -1
- package/web/.next/static/chunks/589-8bf536f331de4269.js +0 -1
- package/web/.next/static/chunks/657.f1e03b7b65eba1d9.js +0 -1
- package/web/.next/static/chunks/687-3a4205f51be38602.js +0 -1
- package/web/.next/static/chunks/837-fd7623601dc78ed8.js +0 -1
- package/web/.next/static/chunks/850-318f32484989dd59.js +0 -1
- package/web/.next/static/chunks/89-ace2e1aa63babfdf.js +0 -1
- package/web/.next/static/chunks/951-e250b541b67da7ce.js +0 -1
- package/web/.next/static/chunks/app/_not-found/page-bbd54d7b9a55d7ae.js +0 -1
- package/web/.next/static/chunks/app/agents/[id]/page-a8b7a43d2c18483f.js +0 -1
- package/web/.next/static/chunks/app/agents/page-e9b17f1c3439ef98.js +0 -1
- package/web/.next/static/chunks/app/connections/page-477f36fcd5b13d78.js +0 -1
- package/web/.next/static/chunks/app/layout-a2d38e3de5911b1b.js +0 -1
- package/web/.next/static/chunks/app/page-6fc87fc5a128a204.js +0 -1
- package/web/.next/static/chunks/app/relations/page-0355a93a8eb67989.js +0 -1
- package/web/.next/static/chunks/app/schedules/page-39befd15b3b20586.js +0 -1
- package/web/.next/static/chunks/app/sessions/page-beae9a74a07d69e0.js +0 -1
- package/web/.next/static/chunks/app/skills/page-4f839ac913e26d32.js +0 -1
- package/web/.next/static/chunks/app/types/page-4f6b99af3232f861.js +0 -1
- package/web/.next/static/chunks/framework-0e68884e76d9a8d3.js +0 -1
- package/web/.next/static/chunks/main-app-d6f73ccd41f325c5.js +0 -1
- package/web/.next/static/chunks/main-cd22509db15764e2.js +0 -1
- package/web/.next/static/chunks/pages/_app-0f75d689c738a6fc.js +0 -1
- package/web/.next/static/chunks/pages/_error-d481f6d49fb4455d.js +0 -1
- package/web/.next/static/chunks/webpack-d40de72e52f65f79.js +0 -1
- package/web/.next/static/css/da22f0402b1c40ae.css +0 -1
- /package/web/.next/static/{_z2hBOHhwiR5ytdI_8alh → p4S3i9kvO359GW91DQiHu}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[493],{632:(e,t,o)=>{o.d(t,{$q:()=>N,CD:()=>q,D0:()=>E,P5:()=>b,PW:()=>w,YO:()=>T,_h:()=>k,_s:()=>S,aF:()=>A,dJ:()=>f,dR:()=>j,dj:()=>y,en:()=>_,kV:()=>P,l$:()=>v});var n=o(4799),a=o(4023),s=o(8228),i=o(4910),r=o(665),l=o(8311),c=o(4227),d=o(7756),h=o(3749),m=o(7890),u=o(9654),g=o(2397);let p=(0,a.createContext)(()=>void 0),y=()=>(0,a.useContext)(p);function v(e){let{children:t}=e,[o,s]=(0,a.useState)([]),i=(0,a.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ok",o=Date.now()+Math.random();s(n=>[...n,{id:o,msg:e,kind:t}]),setTimeout(()=>s(e=>e.filter(e=>e.id!==o)),"err"===t?6e3:3e3)},[]);return(0,n.jsxs)(p.Provider,{value:i,children:[t,(0,n.jsx)("div",{className:"toasts",role:"status","aria-live":"polite",children:o.map(e=>(0,n.jsx)("div",{className:"toast ".concat("err"===e.kind?"err":""),children:e.msg},e.id))})]})}function k(e){var t;let{agent:o,size:a,color:s,queen:i,label:r}=e,l=null!=i?i:(null==o?void 0:o.role)==="orchestrator",c=null!=s?s:o?m.xq[o.provider].color:void 0;return(0,n.jsx)("span",{className:"hex ".concat(null!=a?a:""," ").concat(l?"queen":""),style:c&&!l?{"--c":c}:void 0,"aria-hidden":!0,children:null!=r?r:(0,m.yC)(null!=(t=null==o?void 0:o.name)?t:"")})}function f(e){let{provider:t}=e;return(0,n.jsxs)("span",{className:"pbadge",style:{"--c":m.xq[t].color},children:[(0,n.jsx)("i",{}),m.xq[t].short]})}function b(e){let{status:t}=e,{t:o}=(0,u.s9)();return(0,n.jsxs)("span",{className:"chip",children:[(0,n.jsx)("i",{className:"dot ".concat({idle:"",running:"run",error:"err"}[t])}),o("status.".concat(t))]})}function w(e){let{role:t}=e,{t:o}=(0,u.s9)();return"orchestrator"===t?(0,n.jsx)("span",{className:"chip honey",children:o("role.orchestrator")}):(0,n.jsx)("span",{className:"chip",children:o("role.worker")})}let C="hive-am.drawerWidth",x=()=>Math.max(420,window.innerWidth-80);function S(e){let{title:t,subtitle:o,onClose:l,children:c,footer:d}=e,{t:h}=(0,u.s9)(),[m,g]=(0,a.useState)(560);(0,a.useEffect)(()=>{try{let e=Number(localStorage.getItem(C));e>=420&&g(Math.min(e,x()))}catch(e){}},[]);let p=e=>{try{localStorage.setItem(C,String(Math.round(e)))}catch(e){}},y=m>600,v=()=>{let e=y?560:Math.min(x(),1100);g(e),p(e)};return(0,a.useEffect)(()=>{let e=e=>"Escape"===e.key&&l();return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[l]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"scrim",onClick:l}),(0,n.jsxs)("aside",{className:"drawer",role:"dialog","aria-modal":!0,"aria-label":t,style:{width:"min(".concat(m,"px, 100vw)")},children:[(0,n.jsx)("div",{className:"drawer-grip",onPointerDown:e=>{e.preventDefault();let t=e.currentTarget;t.setPointerCapture(e.pointerId);let o=m,n=e=>{g(o=Math.min(x(),Math.max(420,window.innerWidth-e.clientX)))},a=()=>{t.removeEventListener("pointermove",n),t.removeEventListener("pointerup",a),p(o)};t.addEventListener("pointermove",n),t.addEventListener("pointerup",a)},onDoubleClick:v,role:"separator","aria-orientation":"vertical","aria-label":h("drawer.resize"),title:h("drawer.resize")}),(0,n.jsxs)("header",{children:[(0,n.jsxs)("div",{className:"grow",children:[(0,n.jsx)("h2",{children:t}),o&&(0,n.jsx)("p",{className:"muted small",style:{margin:"4px 0 0"},children:o})]}),(0,n.jsx)("button",{className:"btn ghost icon",onClick:v,"aria-label":h(y?"drawer.shrink":"drawer.expand"),title:h(y?"drawer.shrink":"drawer.expand"),children:y?(0,n.jsx)(s.A,{size:17}):(0,n.jsx)(i.A,{size:17})}),(0,n.jsx)("button",{className:"btn ghost icon",onClick:l,"aria-label":h("common.close"),children:(0,n.jsx)(r.A,{size:18})})]}),(0,n.jsx)("div",{className:"body",children:c}),d&&(0,n.jsx)("footer",{children:d})]})]})}function A(e){let{title:t,onClose:o,children:s}=e;return(0,a.useEffect)(()=>{let e=e=>"Escape"===e.key&&o();return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[o]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"scrim",onClick:o}),(0,n.jsxs)("div",{className:"modal",role:"dialog","aria-modal":!0,"aria-label":t,children:[(0,n.jsx)("h3",{style:{fontSize:20},children:t}),s]})]})}function E(e){let{label:t,hint:o,error:a,children:s}=e;return(0,n.jsxs)("div",{className:"field",children:[(0,n.jsx)("label",{children:t}),s,a?(0,n.jsx)("span",{className:"field-err",children:a}):o?(0,n.jsx)("span",{className:"hint",children:o}):null]})}function N(e){let{value:t,onChange:o,options:a}=e;return(0,n.jsx)("div",{className:"seg",role:"group",children:a.map(e=>(0,n.jsx)("button",{type:"button","aria-pressed":t===e.id,disabled:e.disabled,title:e.title,onClick:()=>o(e.id),children:e.label},e.id))})}function T(e){let{value:t,onChange:o,providers:a}=e,{t:s}=(0,u.s9)();return(0,n.jsx)("div",{className:"pcards",children:Object.keys(m.xq).map(e=>{let i=a.find(t=>t.id===e);return(0,n.jsxs)("button",{type:"button",className:"pcard","aria-pressed":t===e,style:{"--c":m.xq[e].color},onClick:()=>o(e),children:[(0,n.jsx)("b",{children:m.xq[e].label}),(0,n.jsx)("span",{children:(0,m.zX)(e)}),i&&(0,n.jsx)("span",{className:"tag",style:{color:i.installed?"var(--ok)":"var(--err)"},children:i.installed?s("provider.installed"):s("provider.notFound")})]},e)})})}function q(e){let{provider:t,value:o,onChange:s}=e,[i,r]=(0,a.useState)(null);(0,a.useEffect)(()=>{r(null),h.F.get("/providers/".concat(t,"/models")).then(r).catch(()=>r([]))},[t]);let{t:l}=(0,u.s9)(),c="models-".concat(t);return(0,n.jsxs)(E,{label:l("field.model"),hint:l(null===i?"model.loading":i.length?"model.pick":"model.none"),children:[(0,n.jsx)("input",{className:"input",list:c,value:o,onChange:e=>s(e.target.value),placeholder:l("model.cliDefault"),spellCheck:!1}),(0,n.jsx)("datalist",{id:c,children:null==i?void 0:i.map(e=>(0,n.jsx)("option",{value:e.id,children:e.label},e.id))})]})}function _(e){var t;let{value:o,onChange:a,locked:s=[]}=e,{t:i}=(0,u.s9)(),r=(0,m.P)();return(0,n.jsx)(E,{label:i("permission.title"),hint:null==(t=r.find(e=>e.id===o))?void 0:t.hint,children:(0,n.jsx)(N,{value:o,onChange:a,options:r.map(e=>({id:e.id,label:e.label,disabled:s.includes(e.id),title:s.includes(e.id)?i("permission.lockedByConnection"):void 0}))})})}function P(e){let{skills:t,value:o,loads:s,onChange:i}=e,{t:c}=(0,u.s9)(),[d,h]=(0,a.useState)(""),[m,p]=(0,a.useState)(!1),[y,v]=(0,a.useState)(0),k=e=>{var t;return null!=(t=s[e.id])?t:e.load},f=o.map(e=>t.find(t=>t.id===e)).filter(e=>!!e),b=f.reduce((e,t)=>e+(0,g.m9)({...t,load:k(t)}),0),w=d.trim().toLowerCase(),C=t.filter(e=>!o.includes(e.id)&&(!w||"".concat(e.name," ").concat(e.description).toLowerCase().includes(w))),x=m||!!w;(0,a.useEffect)(()=>{v(0)},[d]);let S=(0,a.useRef)(null);if((0,a.useEffect)(()=>{var e;x&&(null==(e=S.current)||e.scrollIntoView({block:"nearest"}))},[x,d]),!t.length)return(0,n.jsx)("p",{className:"hint",children:c("skillPicker.empty")});let A=(e,o)=>i(e,Object.fromEntries(e.map(e=>{var n,a,s;return[e,null!=(s=null!=(a=o[e])?a:null==(n=t.find(t=>t.id===e))?void 0:n.load)?s:"always"]}))),E=e=>{A([...o,e.id],{...s,[e.id]:e.load}),h("")},N=e=>A(o.filter(t=>t!==e),s);return(0,n.jsxs)("div",{className:"skillpick",children:[f.length>0&&(0,n.jsx)("div",{className:"skillpills",children:f.map(e=>{let t="on_demand"===k(e),a=(0,g.Aq)((0,g.NO)(e.content));return(0,n.jsxs)("span",{className:"skillpill",title:e.description||void 0,children:[e.name,(0,n.jsx)("button",{type:"button",className:"skillmode".concat(t?" lazy":""),onClick:()=>A(o,{...s,[e.id]:"always"===k(e)?"on_demand":"always"}),"aria-pressed":t,title:c(t?"skillPicker.mode.lazy.hint":"skillPicker.mode.always.hint",{tokens:a}),children:c(t?"skillPicker.mode.lazy":"skillPicker.mode.always")}),(0,n.jsx)("button",{type:"button",onClick:()=>N(e.id),"aria-label":c("skillPicker.remove",{name:e.name}),title:c("skillPicker.remove",{name:e.name}),children:(0,n.jsx)(r.A,{size:12})})]},e.id)})}),f.length>0&&(0,n.jsxs)("p",{className:"hint".concat(b>g.Ur?" warn":""),style:{margin:0},children:[c("skillPicker.weight",{always:(0,g.Aq)(b),onDemand:f.filter(e=>"on_demand"===k(e)).length}),b>g.Ur?" ".concat(c("skillPicker.heavy")):""]}),(0,n.jsxs)("div",{className:"search",children:[(0,n.jsx)(l.A,{size:15,"aria-hidden":!0}),(0,n.jsx)("input",{className:"input",value:d,onChange:e=>h(e.target.value),onFocus:()=>p(!0),onBlur:()=>p(!1),onKeyDown:e=>{"ArrowDown"===e.key?(e.preventDefault(),v(e=>Math.min(e+1,C.length-1))):"ArrowUp"===e.key?(e.preventDefault(),v(e=>Math.max(e-1,0))):"Enter"===e.key?(e.preventDefault(),C[y]&&E(C[y])):"Escape"===e.key?(h(""),e.currentTarget.blur()):"Backspace"===e.key&&!d&&f.length&&N(f[f.length-1].id)},placeholder:c("skillPicker.search"),"aria-label":c("skillPicker.search"),role:"combobox","aria-expanded":x,"aria-controls":"skill-options","aria-autocomplete":"list"})]}),x&&(0,n.jsx)("div",{className:"skillopts",id:"skill-options",role:"listbox",ref:S,children:0===C.length?(0,n.jsx)("p",{className:"hint",style:{margin:0,padding:"8px 10px"},children:w?c("skillPicker.noMatch",{query:d.trim()}):c("skillPicker.allAdded")}):C.map((e,t)=>(0,n.jsxs)("button",{type:"button",role:"option","aria-selected":t===y,className:"skillopt".concat(t===y?" on":""),onMouseDown:e=>e.preventDefault(),onMouseEnter:()=>v(t),onClick:()=>E(e),children:[(0,n.jsxs)("b",{children:[e.name," ",(0,n.jsxs)("span",{className:"skillopt-w",children:["~",(0,g.Aq)((0,g.NO)(e.content))," tokens"]})]}),(0,n.jsx)("span",{className:"hint",children:e.description||c("common.noDescription")})]},e.id))})]})}function j(e){let{value:t,onChange:o,error:s}=e,{t:i}=(0,u.s9)(),[r,l]=(0,a.useState)(!1),[m,g]=(0,a.useState)(null),p=(0,a.useCallback)(e=>h.F.get("/fs/dirs".concat(e?"?path=".concat(encodeURIComponent(e)):"")).then(g).catch(()=>void 0),[]);return(0,a.useEffect)(()=>{r&&p(t||void 0)},[r]),(0,n.jsxs)(E,{label:i("field.folder"),hint:i("folder.hint"),error:s,children:[(0,n.jsxs)("div",{className:"row gap-s",children:[(0,n.jsx)("input",{className:"input mono",value:t,onChange:e=>o(e.target.value),placeholder:i("folder.placeholder"),spellCheck:!1}),(0,n.jsxs)("button",{type:"button",className:"btn",onClick:()=>l(e=>!e),children:[(0,n.jsx)(c.A,{size:16}),i("folder.browse")]})]}),r&&m&&(0,n.jsxs)("div",{className:"picker",children:[(0,n.jsxs)("div",{className:"path",children:[(0,n.jsx)("button",{type:"button",className:"btn ghost icon sm",disabled:!m.parent,onClick:()=>m.parent&&p(m.parent),"aria-label":i("folder.up"),children:(0,n.jsx)(d.A,{size:14})}),(0,n.jsx)("span",{className:"grow",style:{overflow:"hidden",textOverflow:"ellipsis"},children:m.path}),(0,n.jsx)("button",{type:"button",className:"btn sm primary",onClick:()=>{o(m.path),l(!1)},children:i("folder.use")})]}),(0,n.jsx)("ul",{children:m.dirs.length?m.dirs.map(e=>(0,n.jsx)("li",{children:(0,n.jsxs)("button",{type:"button",onClick:()=>p(e.path),children:[(0,n.jsx)(c.A,{size:15,className:"muted"}),e.name]})},e.path)):(0,n.jsx)("li",{className:"hint",style:{padding:10},children:i("folder.empty")})})]})]})}},2397:(e,t,o)=>{o.d(t,{Aq:()=>a,NO:()=>n,Ur:()=>i,m9:()=>s});let n=e=>Math.ceil(e.length/4),a=e=>e>=1e3?"".concat((e/1e3).toFixed(e>=1e4?0:1),"k"):String(e),s=e=>"on_demand"===e.load?n("- **".concat(e.name,"**: ").concat(e.description)):n(e.content)+n(e.name)+n(e.description),i=3e3},3749:(e,t,o)=>{o.d(t,{F:()=>i});var n=o(8419);class a extends Error{}async function s(e,t,o){var s;let i=await fetch("/api".concat(t),{method:e,headers:o?{"content-type":"application/json"}:void 0,body:o?JSON.stringify(o):void 0}),r=await i.json().catch(()=>null);if(!i.ok)throw new a((0,n.YF)(null!=(s=null==r?void 0:r.error)?s:"Request failed (".concat(i.status,")")));return r}let i={get:e=>s("GET",e),post:(e,t)=>s("POST",e,null!=t?t:{}),patch:(e,t)=>s("PATCH",e,t),put:(e,t)=>s("PUT",e,t),del:e=>s("DELETE",e)}},6072:(e,t,o)=>{o.d(t,{F0:()=>i,RP:()=>l,_E:()=>a,nc:()=>r,qw:()=>d,v7:()=>h,yj:()=>s,zi:()=>c});var n=o(8419);let a=e=>e.toLocaleString((0,n.uE)()),s=e=>e>=1e6?"".concat((e/1e6).toFixed(2),"M"):e>=1e4?"".concat((e/1e3).toFixed(1),"k"):e>=1e3?"".concat((e/1e3).toFixed(2),"k"):String(Math.round(e)),i=e=>0===e?"$0":e<.01?"<$0.01":e<1?"$".concat(e.toFixed(3)):"$".concat(e.toFixed(2));function r(e){if(!e||e<0)return"0s";if(e<1e3)return"".concat(Math.round(e),"ms");let t=e/1e3;if(t<10)return"".concat(t.toFixed(1),"s");if(t<60)return"".concat(Math.round(t),"s");let o=Math.floor(t/60);return o<60?"".concat(o,"m ").concat(Math.round(t%60),"s"):"".concat(Math.floor(o/60),"h ").concat(o%60,"m")}let l=e=>e?e.input+e.output+e.cacheRead+e.cacheWrite:0;function c(e){return e<1024?"".concat(e," B"):e<1048576?"".concat((e/1024).toFixed(+(e<10240))," KB"):"".concat((e/1024/1024).toFixed(1)," MB")}let d=e=>new Date(e).toLocaleDateString((0,n.VR)(),{day:"2-digit",month:"2-digit",year:"numeric"}),h=e=>new Date(e).toLocaleString((0,n.VR)(),{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1})},7890:(e,t,o)=>{o.d(t,{Ck:()=>l,KN:()=>d,P:()=>c,_1:()=>h,xq:()=>s,yC:()=>m,zX:()=>i});var n=o(8419),a=o(6072);let s={claude:{label:"Claude Code",short:"Claude",color:"var(--p-claude)"},opencode:{label:"OpenCode",short:"OpenCode",color:"var(--p-opencode)"},kiro:{label:"Kiro",short:"Kiro",color:"var(--p-kiro)"}},i=e=>(0,n.Tl)("provider.".concat(e,".blurb")),r=["plan","acceptEdits","bypassPermissions"],l=e=>(0,n.Tl)("permission.".concat(e,".label")),c=()=>r.map(e=>({id:e,label:l(e),hint:(0,n.Tl)("permission.".concat(e,".hint"))}));function d(e){if(!e)return"—";let t=Math.max(1,Math.round((Date.now()-e)/1e3));if(t<60)return(0,n.Tl)("time.justNow");let o=Math.round(t/60);if(o<60)return(0,n.Tl)("time.minutesAgo",{count:o});let s=Math.round(o/60);if(s<24)return(0,n.Tl)("time.hoursAgo",{count:s});let i=Math.round(s/24);return i<30?(0,n.Tl)("time.daysAgo",{count:i}):(0,a.qw)(e)}let h=e=>e.replace(/^\/home\/[^/]+/,"~"),m=e=>e.split(/[\s_-]+/).filter(Boolean).slice(0,2).map(e=>e[0]).join("").toUpperCase()||"?"},8419:(e,t,o)=>{o.d(t,{YZ:()=>a,Nf:()=>s,VR:()=>d,ED:()=>m,uE:()=>c,Au:()=>l,Tl:()=>h,YF:()=>g});let n={"app.tagline":"agent colony manager","nav.main":"Main","nav.colony":"Colony","nav.agents":"Agents","nav.relations":"Relations","nav.library":"Library","nav.types":"Agent types","nav.skills":"Skills","nav.history":"History","nav.sessions":"Sessions","nav.connected":"Connected to server","nav.offline":"Server offline — retrying","nav.switchTheme":"Switch theme","lang.label":"Language","time.justNow":"just now","time.minutesAgo_one":"{count} min ago","time.minutesAgo_other":"{count} min ago","time.hoursAgo_one":"{count} h ago","time.hoursAgo_other":"{count} h ago","time.daysAgo_one":"{count} d ago","time.daysAgo_other":"{count} d ago","provider.claude.blurb":"Anthropic’s coding agent. Streams tokens, resumes by session id.","provider.opencode.blurb":"Open-source agent over any model provider you have configured.","provider.kiro.blurb":"AWS’s agentic CLI with spec-driven workflows.","provider.installed":"● installed","provider.notFound":"● not found","permission.plan.label":"Read-only","permission.plan.hint":"Plans and reads; never edits files or runs commands.","permission.acceptEdits.label":"Edit files","permission.acceptEdits.hint":"Edits files freely; other risky actions follow the CLI’s own rules.","permission.bypassPermissions.label":"Full access","permission.bypassPermissions.hint":"Runs anything without asking. Use in throwaway folders.","permission.title":"What can it do?","role.orchestrator":"Orchestrator","role.worker":"Worker","status.idle":"Idle","status.running":"Working","status.error":"Needs attention","server.invalidJson":"Request body is not valid JSON","server.nameRequired":"Name is required","server.unknownProvider":'Unknown provider "{name}"',"server.unknownProviderShort":"Unknown provider","server.pickProvider":"Pick a provider","server.badRole":"Role must be orchestrator or worker","server.folderMissing":"Folder does not exist: {path}","server.notFolder":"Not a folder","server.colonyGone":"That colony no longer exists","server.agentExists":'An agent named "{name}" already exists',"server.skillExists":'A skill named "{name}" already exists',"server.typeExists":'A type named "{name}" already exists',"server.colonyExists":'A colony named "{name}" already exists',"server.needFolderOrColony":"Choose a working folder, or put the agent in a colony that provides one.","server.needFolderOrInherit":"Choose a working folder, or keep inheriting the colony’s folder.","server.agentNotFound":"Agent not found","server.skillNotFound":"Skill not found","server.typeNotFound":"Type not found","server.colonyNotFound":"Colony not found","server.messageEmpty":"Message is empty","server.onlyOwnSessions":"Only the agent’s own conversations can be made current. Delegated sessions are read-only.","server.sessionNotOwned":"That session does not belong to this agent","server.onlyOrchestrators":"Only orchestrators can have subagents","server.dispatchFields":"from, agent and task are required","server.unknownOrchestrator":"Unknown orchestrator","server.noAgentNamed":'No agent named "{name}"',"server.notAssigned":'"{worker}" is not assigned to {orchestrator}',"server.unexpected":"Unexpected server error","server.noRoute":"No such route","server.notFound":"Not found","server.noWorkingFolder":"This agent has no working folder. Set one on the agent or on its colony.","server.agentGone":"Agent no longer exists","server.requestFailed":"Request failed ({status})","common.cancel":"Cancel","common.close":"Close","drawer.resize":"Drag to resize \xb7 double-click to expand","drawer.expand":"Expand panel","drawer.shrink":"Shrink panel","common.back":"Back","common.saving":"Saving…","common.delete":"Delete","common.edit":"Edit","common.discard":"Discard","common.hide":"Hide","common.dismiss":"Dismiss","common.noDescription":"No description","common.copy":"Copy","common.copied":"Copied","common.clearFilters":"Clear filters","common.all":"All","common.working":"Working","field.model":"Model","model.loading":"Loading the models this CLI offers…","model.pick":"Pick one, or type any model id. Leave empty to use the CLI’s default.","model.none":"Could not list models. Type a model id, or leave empty for the CLI’s default.","model.cliDefault":"CLI default","field.folder":"Working folder","folder.hint":"The agent runs here, and each folder keeps its own native sessions.","folder.placeholder":"/home/you/project","folder.browse":"Browse","folder.up":"Up one folder","folder.use":"Use this folder","folder.empty":"No subfolders here.","skillPicker.search":"Search skills to add…","skillPicker.noMatch":"No skill matches “{query}”.","skillPicker.allAdded":"You added every skill.","skillPicker.remove":"Remove {name}","skillPicker.weight":"Always in the prompt: ~{always} tokens \xb7 {onDemand} on demand.","skillPicker.heavy":"That is a lot: move the longest ones to “On demand”.","tool.skillRead":"Load skill","skillPicker.mode.always":"always","skillPicker.mode.lazy":"on demand","skillPicker.mode.always.hint":"Its text (~{tokens} tokens) goes into the instructions of every turn. Click to make it “on demand”.","skillPicker.mode.lazy.hint":"Only its name and description are listed; the agent reads the text (~{tokens} tokens) when it needs it. Click to make it “always”.","skillPicker.empty":"No skills yet. Create some in the Skills library, then attach them here.","common.noColony":"No colony","common.saveChanges":"Save changes","form.err.name":"Give the agent a name.","form.err.nameTaken":"Another agent already uses this name.","form.err.folder":"Choose the folder this agent works in.","form.name":"Name","form.name.hint":"Orchestrators address workers by this name, so keep it short and distinct.","form.name.placeholder":"e.g. api-builder","form.purpose":"What is it for?","form.purpose.hint":"One line. Orchestrators read this to decide who gets which task.","form.purpose.placeholder":"Implements backend endpoints and their tests","form.role":"Role","form.role.orchestratorHint":"Plans work and delegates it to the workers assigned to it.","form.role.workerHint":"Does the work it is given — directly from you or from an orchestrator.","form.basedOn":"Based on the “{name}” type. Changes here only affect this agent.","form.colony":"Colony","form.colony.hint":"Agents in a colony can follow its folder, permissions, skills and shared context. Provider and model are always set per agent.","form.provider":"Provider","form.ownPrompt":"Agent’s own system prompt","form.systemPrompt":"System prompt","form.promptHint_one":"{n} character. Added to the CLI’s own instructions on every turn.","form.promptHint_other":"{n} characters. Added to the CLI’s own instructions on every turn.","form.prompt.placeholder":"You are a careful backend engineer. Always run the tests before reporting back.","form.skills":"Skills","form.skills.hint":"Appended to the system prompt in the order shown.","form.team":"Team","form.team.hint":"Only these workers can receive tasks from this orchestrator.","form.team.empty":"No workers yet. Create a worker agent, then assign it here or on the Relations canvas.","inherit.permissions":"Permissions","inherit.context":"Shared context","inherit.context.note":"Placed before this agent’s own prompt.","inherit.skills":"Colony skills","inherit.skills.note":"Added on top of this agent’s own skills.","inherit.from":"from","inherit.following":"Following","inherit.own":"Own value","newAgent.title":"New agent","newAgent.pickType":"Start from a type to prefill provider, model, prompt and skills.","newAgent.typeFallback":"{role} on {provider}","newAgent.blank":"Blank agent","newAgent.blankHint":"Configure everything yourself.","newAgent.fromType":"From type “{name}”","newAgent.create":"Create agent","newAgent.creating":"Creating…","newAgent.created":"{name} created","newAgent.failed":"Could not create the agent","edit.title":"{name} settings","edit.subtitleRunning":"This agent is working — changes apply from its next turn.","edit.subtitleIdle":"Changes apply from its next message.","edit.fixFields":"Fix the highlighted fields first","edit.saved":"{name} saved","edit.saveFailed":"Could not save","colony.err.name":"Give the colony a name.","colony.err.nameTaken":"Another colony already uses this name.","colony.saved":"Colony saved","colony.created":"Colony created","colony.deleted":"Colony deleted","colony.editTitle":"Edit {name}","colony.newTitle":"New colony","colony.subtitle":"A group of agents drawn together on the comb, sharing defaults.","colony.save":"Save colony","colony.create":"Create colony","colony.name.placeholder":"e.g. Billing backend","colony.color":"Color","colony.colorOption":"Color {color}","colony.colorCustom":"Custom color","colony.colorHex":"Hex code","colony.err.color":"Enter a color as #rrggbb, e.g. #2f8f5b","colony.context.hint":"Instructions every member sees before its own prompt.","colony.context.placeholder":"All services use PostgreSQL 16. Never touch the migrations folder without asking.","colony.members":"Members","colony.members.hint":"An agent belongs to one colony. Picking one that’s elsewhere moves it here.","colony.members.empty":"No agents yet. Create some, then add them here.","colony.currentlyIn":"Currently in {name}","colony.deleteTitle":"Delete {name}?","colony.deleteBody_one":"Its {count} agent stays, but it stops following the colony’s folder, permissions, skills and context. Folders it inherited become its own only if you set them.","colony.deleteBody_other":"Its {count} agents stay, but they stop following the colony’s folder, permissions, skills and context. Folders they inherited become their own only if you set them.","colony.keep":"Keep colony","colony.delete":"Delete colony","inheritAsk.title":"What should its agents inherit?","inheritAsk.intro":"Members follow these by default. Any agent can still opt out for itself.","inheritAsk.field.cwd":"Working folder","inheritAsk.field.permission":"Permissions","inheritAsk.field.skills":"Skills","inheritAsk.field.prompt":"Shared context","inheritAsk.hint.cwd":"Agents run in the colony’s folder.","inheritAsk.hint.permission":"Agents get the colony’s access level.","inheritAsk.hint.skills":"Colony skills are added to each agent’s own.","inheritAsk.hint.prompt":"The colony prompt goes before each agent’s own prompt.","inheritAsk.empty.cwd":"Nothing set yet — add a folder to share it.","inheritAsk.empty.permission":"Nothing set yet — add permissions to share them.","inheritAsk.empty.skills":"Nothing set yet — add skills to share them.","inheritAsk.empty.prompt":"Nothing set yet — add shared context to share it.","inheritAsk.folderMoves_one":"{count} agent moves to this folder and starts a new conversation. Earlier ones stay in its Sessions tab.","inheritAsk.folderMoves_other":"{count} agents move to this folder and start a new conversation. Earlier ones stay in their Sessions tab.","activity.delegated":"Delegated task \xb7 ","activity.starting":"Starting…","activity.running":"Running {tool}","activity.ran":"Ran {tool}","activity.thinking":"Thinking…","activity.writing":"Writing a reply…","switcher.find":"Find an agent","switcher.noMatch":"No agents match “{query}”.","switcher.noDescription":"No description yet","switcher.collapse":"Collapse the agent list","switcher.expand":"Expand the agent list","queue.count_one":"{count} queued","queue.count_other":"{count} queued","common.yes":"yes","tool.delegate":"Delegate","tool.roster":"Team roster","tool.shell":"Shell","tool.read":"Read","tool.write":"Write","tool.edit":"Edit","tool.subagent":"Subagent","tool.plan":"Plan","tool.k.subagent":"Subagent","tool.k.task":"Task","tool.k.tool":"Tool","tool.k.workdir":"Working dir","tool.k.timeout":"Timeout","tool.k.background":"Background","tool.k.path":"Path","tool.k.offset":"Offset","tool.k.limit":"Limit","tool.k.replaceAll":"Replace all","tool.k.type":"Type","tool.k.description":"Description","tool.k.prompt":"Prompt","tool.command":"Command","tool.copyCommand":"Copy command","tool.copyOutput":"Copy output","tool.output":"Output","tool.noOutput":"(no output)","tool.truncated":"… (truncated)","tool.exit":"exit {code}","tool.failed":"failed","tool.lines_one":"{count} line","tool.lines_other":"{count} lines","tool.writeSummary_one":"{path} \xb7 {count} line","tool.writeSummary_other":"{path} \xb7 {count} lines","tool.editSummary_one":"{path} \xb7 {count} change","tool.editSummary_other":"{path} \xb7 {count} changes","tool.planSummary":"{done}/{total} done","stats.context":"context","stats.contextTitle":"Tokens in the latest request’s context","stats.tokens":"tokens","stats.credits":"credits","stats.costEstimated":"Estimated from public list prices","stats.costReported":"Reported by the CLI","stats.turns_one":"turn","stats.turns_other":"turns","stats.toolCalls_one":"tool call","stats.toolCalls_other":"tool calls","stats.failed_one":"{count} failed","stats.failed_other":"{count} failed","stats.working":"working","stats.mix":"Token mix","stats.cacheRead":"Cache read","stats.cacheWrite":"Cache write","stats.input":"Input","stats.output":"Output","stats.thinking":"{tokens} thinking","stats.models":"Models","stats.modelLine_one":"{count} msg \xb7 {out} out","stats.modelLine_other":"{count} msgs \xb7 {out} out","stats.toolsUsed":"Tools used","stats.totalTime":"{time} total","stats.noTools":"No tools called yet.","stats.toolTitle_one":"{count} call \xb7 {time} total","stats.toolTitle_other":"{count} calls \xb7 {time} total","stats.perTurn":"Tokens per turn","stats.promptFallback":"(prompt)","stats.turnLine":"{tokens} tokens \xb7 {tools} tools \xb7 {time}","chat.tokenDetail":"input {input} \xb7 output {output} \xb7 cache read {cacheRead} \xb7 cache write {cacheWrite}","chat.inOut":"{in} in \xb7 {out} out","chat.credits":"{value} credits","chat.tools_one":"{count} tool","chat.tools_other":"{count} tools","chat.contextPct":"context {pct}%","nav.connections":"Connections","nav.schedules":"Schedules","sched.subtitle":"What your agents set up to do later: one-time wake-ups and recurring schedules. They run in the place where they were asked (a chat thread or the web chat) and cost one model turn each time.","sched.empty.title":"Nothing scheduled","sched.empty.body":"When an agent has the Wake-ups skill you can ask it things like “every weekday at 9 check the QA logs and tell me” and it will show up here.","sched.kind.cron":"Cron","sched.kind.every":"Interval","sched.kind.once":"Once","sched.kind.watch":"Waiting for a process","sched.where.web":"Web chat","sched.next":"Next run","sched.until":"Waits until","sched.never":"never","sched.paused":"Paused","sched.last":"Last","sched.runs":"{count} runs","sched.pause":"Pause","sched.resume":"Resume","sched.history":"History","sched.hide":"Hide history","sched.noRuns":"It has not run yet.","sched.deleteTitle":"Delete this schedule?","sched.deleteBody":"It stops for good. The agent can create it again if you ask.","sched.in":"in {when}","sched.status.delivered":"Delivered","sched.status.failed":"Failed","sched.status.skipped_muted":"Skipped (muted)","sched.status.skipped_busy":"Skipped (agent busy)","sched.status.skipped_missed":"Skipped (missed)","sched.status.skipped_disabled":"Skipped (connection off)","sched.status.skipped_reassigned":"Paused (agent changed)","sched.minShort":"{count} min","sched.hourShort":"{count} h","sched.dayShort":"{count} d","conn.subtitle":"Let people talk to an agent from Telegram or Slack. Every thread and every person shares the agent’s one conversation, the same one you see in hive-am.","conn.new":"New connection","conn.create":"Create connection","conn.edit":"Edit connection","conn.save":"Save","conn.empty.title":"No connections yet","conn.empty.body":"Link an agent to a Telegram bot and chat with it from your phone. It answers in the same thread you write in.","conn.kind":"Platform","conn.kind.telegram":"Telegram","conn.kind.slack":"Slack","conn.kind.soon":"Slack \xb7 soon","conn.status.connected":"Connected","conn.status.connecting":"Connecting…","conn.status.error":"Problem","conn.status.stopped":"Off","conn.noAgent":"No agent linked","conn.threads_one":"{count} thread","conn.threads_other":"{count} threads","conn.lastEvent":"last message {when}","conn.name":"Name","conn.name.hint":"A label for you, e.g. “Ops bot”.","conn.name.placeholder":"Ops bot","conn.agent":"Agent that answers","conn.agent.hint":"It replies with its channel_reply tool; its normal text never reaches the chat.","conn.agent.pick":"Choose an agent…","conn.token":"Bot token","conn.token.hint":"Create a bot with @BotFather and paste its token. It is stored on this machine and never shown again.","conn.token.keep":"Leave empty to keep {hint}","conn.allowed":"Who can talk to it","conn.allowed.hint":"Only these Telegram ids get an answer. Anyone else is told their own id and nothing more.","conn.allowed.howto":"Don’t know your id? Save the connection and message the bot: it replies with your id.","conn.allowed.add":"Add person","conn.allowed.id":"Telegram id","conn.allowed.name":"Name (optional)","conn.allowed.admin":"Admin","conn.allowed.adminHint":"Can reset the shared conversation with /new","conn.allowed.remove":"Remove","conn.allowed.empty":"Nobody yet: the bot will not answer anyone.","conn.files":"Receive files","conn.files.hint":"Photos, documents and audio people send (up to 20 MB each). They are saved on this machine for 14 days and the agent opens them with its file tools; it cannot listen to audio or watch video.","conn.files.off":"No","conn.vision":"See images","conn.vision.agent":"With the agent’s model","conn.vision.other":"With another model","conn.vision.hint.agent":"Only works if the agent’s model accepts images (many don’t). Otherwise it will say it can’t see them.","conn.vision.hint.other":"Every incoming picture is described by this model (and its text transcribed), and the description travels with the message, so any agent can answer about it. The picture is sent to that provider. Pick a model that sees images, such as Claude Haiku.","conn.lang":"Bot language","conn.lang.es":"Spanish","conn.lang.en":"English","conn.silent":"If the agent finishes without replying","conn.silent.notice":"Tell the thread","conn.silent.send_text":"Send its plain text","conn.silent.ignore":"Do nothing","conn.effort":"Reasoning effort","conn.effort.hint":"Lower is faster and thinks less. Used by Claude and Kiro (`--effort`) and OpenCode (the model's `low`/`medium`/`high` variant). `low` saves about 0.5–1 s per reply; an OpenCode model without that variant fails the turn, so pick Agent default for it.","conn.effort.default":"Agent default","conn.effort.low":"Low","conn.effort.medium":"Medium","conn.effort.high":"High","conn.enabled":"Active","conn.enabled.hint":"Turn off to stop the bot without deleting it.","conn.test":"Send test","conn.test.ok":"Test sent \xb7 {detail}","conn.test.failed":"The test failed","conn.delete":"Delete connection","conn.deleted":"Connection deleted","conn.saved":"Connection saved","conn.created":"Connection created","conn.deleteTitle":"Delete “{name}”?","conn.deleteBody":"The bot stops answering and this connection’s threads are forgotten. The agent and its conversation stay untouched.","conn.perm.plan":"{name} is Read-only, and a read-only agent can’t reply through a channel.","conn.perm.fix":"Allow editing files","conn.perm.fixed":"{name} can now edit files","conn.perm.full":"{name} has Full access: anyone on the list can make it run anything on this machine.","conn.perm.opencode":"OpenCode ignores the permission setting, so this agent can edit files and run commands whatever it says.","conn.groups":"Groups","conn.groups.hint":"Choose how it takes part in Telegram groups and topics. In a private chat it always answers.","conn.mode":"When it speaks in a group","conn.mode.mention":"Only when called","conn.mode.open":"Listens and chimes in","conn.mode.mention.hint":"It answers when it is mentioned with @, someone replies to one of its messages, uses a command, or says its name.","conn.mode.open.hint":"It reads everything that is written and speaks only when it has something useful to add. If asked to be quiet it stops answering in that thread until someone calls it. Ask BotFather to turn privacy mode off (/setprivacy → Disable).","conn.chats":"Allowed groups","conn.chats.hint":"Any member of these groups can talk to it, without adding each person. The agent’s permissions apply to all of them.","conn.chats.empty":"No groups: only the people in the list can talk to it in groups.","conn.chats.add":"Add group","conn.chats.id":"Group id (e.g. -100123…)","conn.chats.name":"Name (optional)","conn.chats.remove":"Remove group","conn.chats.howto":"To find a group’s id, mention the bot there: it replies with the chat id.","conn.aliases":"Names it answers to","conn.aliases.hint":"Comma separated. If someone writes one of these names in a group it counts as a mention (e.g. “Morena”).","conn.aliases.placeholder":"Morena, queen","conn.threads.muted":"Muted","conn.threads.mute":"Mute","conn.threads.unmute":"Unmute","chat.channel.overheard":"listening","chat.channel.overheard.hint":"Nobody spoke to the agent: it read this and decides whether it has something to add","chat.channel.context":"{n} earlier messages it had not seen","tool.channelMute":"Go quiet in the thread","tool.channelUnmute":"Talk again in the thread","agent.tab.notebook":"Notebook","notebook.intro":"What the agent chooses to remember between conversations. It writes it by itself while it works; here you can read it, correct it or wipe it.","notebook.off":"This agent doesn’t have the “Notebook” skill, so it doesn’t use its notebook.","notebook.on":"Turn on","notebook.reload":"Reload","notebook.updated":"Updated by {who} {when}","notebook.never":"No notes yet","notebook.by.you":"you","notebook.by.agent":"the agent","notebook.placeholder":"## Preferences\n- Answer briefly and in English","notebook.save":"Save notebook","notebook.saved":"Notebook saved","notebook.clear":"Clear all","notebook.clear.title":"Clear the notebook?","notebook.clear.confirm":"The agent will forget everything it has written down. This can’t be undone.","conn.threads.title":"Threads","conn.threads.empty":"No messages yet.","conn.threads.last":"last: {user}","conn.shared":"All threads share this agent’s single conversation.","conn.err.agent":"Choose the agent that will answer.","conn.err.name":"Give it a name.","conn.err.token":"Paste the bot token.","form.connections":"Connections","form.connections.hint":"Linked to {names}. It needs at least “Edit files”: a read-only agent can’t reply through a channel.","permission.lockedByConnection":"Not available while the agent is linked to a connection.","tool.channelSendFile":"Send file to the channel","tool.k.caption":"Caption","tool.channelReply":"Reply in channel","chat.thought":"Thought process","chat.changedFiles":"Files changed ({count})","chat.fileWritten":"written","chat.readOnly":"You’re reading an older session. Make it current to continue it.","chat.queuePlaceholder":"Queue a follow-up…","chat.queuedBadge":"Queued: it will be sent when the current reply ends","chat.earlier":"Show earlier messages ({n} more)","chat.placeholder":"Message {name}","chat.messageLabel":"Message","chat.stop":"Stop","chat.send":"Send","chat.keys":"Enter to send \xb7 Shift+Enter for a new line","chat.collapseTools":"Collapse all tools","chat.expandTools":"Expand all tools","chat.sendFailed":"Could not send","chat.empty.title":"Say hello to {name}","chat.empty.orchestrator":"Describe a goal. It will break it down and dispatch the pieces to its team.","chat.empty.worker":"Give it a task. The conversation is stored by the CLI itself, so it survives restarts.","chat.delegatedFrom":"Delegated task from {name}","chat.anOrchestrator":"an orchestrator","chat.delegatedNote":"Runs in its own session — it won’t appear in this conversation. Find it under Settings → Sessions.","colony.removedAgent":"removed agent","colony.joined":"{name} joined {colony}","colony.left":"{name} left its colony","colony.moveFailed":"Could not move the agent","colony.page.subtitle":"Every agent you run, grouped into colonies and wired to the orchestrators that direct them.","stat.agents_one":"agent","stat.agents_other":"agents","stat.colonies_one":"colony","stat.colonies_other":"colonies","stat.orchestrators_one":"orchestrator","stat.orchestrators_other":"orchestrators","stat.working":"working now","stat.tasks":"tasks in flight","colony.empty.title":"Your colony is empty","colony.empty.body":"Create a colony to group agents that share a folder and rules, then add an orchestrator and a few workers.","colony.empty.createColony":"Create a colony","colony.empty.createAgent":"Create an agent","colony.editHover":"Edit colony \xb7 {path}","colony.editHoverShort":"Edit colony","colony.agentCount_one":"{count} agent","colony.agentCount_other":"{count} agents","colony.addTo":"Add agent to {name}","colony.addAgent":"Add agent","colony.delegatesTo_one":"Delegates to {count}","colony.delegatesTo_other":"Delegates to {count}","colony.connectedTo":"Connected to {names}","colony.settingsFor":"Settings for {name}","colony.agentSettings":"Agent settings","colony.folder":"Folder","colony.fromColony":"from colony","colony.session":"Session","colony.noSession":"none yet","colony.noWorkers":"No workers connected","colony.openChat":"Open chat","colony.howTitle":"How to read this","colony.howBody":"Each outlined area is a colony. Select a cell to inspect an agent. Honey lines and tags connect an orchestrator (↓ number of workers) to the workers it can delegate to (↑ its name) — only those directly connected. Hover an agent to highlight its connections; a moving line means a task is running.","colony.helpLabel":"Help: how to read this map","colony.recent":"Recent delegations","colony.recentEmpty":"When an orchestrator hands a task to a worker, it shows up here.","agents.subtitle":"Each agent is a pointer to a native CLI session. Close the browser or lose power — reopening an agent resumes its real conversation.","agents.searchPlaceholder":"Search by name, description or folder","agents.searchLabel":"Search agents","agents.filter.orchestrators":"Orchestrators","agents.filter.workers":"Workers","agents.filter.anyProvider":"Any provider","agents.empty.title":"No agents yet","agents.empty.body":"Pick a type to start fast, or configure one from scratch.","agents.noMatch.title":"Nothing matches","agents.noMatch.body":"Try a different search or clear the filters.","agents.col.agent":"Agent","agents.col.providerModel":"Provider \xb7 model","agents.col.status":"Status","agents.col.updated":"Updated","agents.orchestratorLine_one":"Orchestrator \xb7 {count} worker","agents.orchestratorLine_other":"Orchestrator \xb7 {count} workers","agents.colonyWord":"colony","agent.missing.title":"That agent doesn’t exist","agent.missing.body":"It may have been deleted.","agent.missing.back":"Back to agents","agent.resumed":"Conversation resumed","agent.backToColony":"Back to the colony","agent.makeCurrent":"Make this conversation current","agent.backToCurrent":"Back to current","agent.newConversation":"New conversation","agent.settings":"Settings","agent.unsaved":"Unsaved changes","agent.tab.config":"Configuration","agent.delete":"Delete agent","agent.unsavedChanges":"You have unsaved changes.","agent.allSaved":"All changes saved.","agent.appliesNextTurn":"They apply from the next turn.","agent.sessions.intro":"Native sessions in {path}. Reading one never changes the agent.","agent.sessions.conversations":"Conversations","agent.sessions.empty":"No conversations yet. The first message creates one.","agent.sessions.started":"Started {started} \xb7 last used {last}","agent.sessions.viewing":"Viewing","agent.sessions.read":"Read transcript","agent.sessions.resume":"Resume this one","agent.sessions.delegated":"Delegated tasks","agent.sessions.from":"From {name}","agent.deleteTitle":"Delete {name}?","agent.deleteBody":"The agent and its connections are removed. Its native session files stay on disk, untouched.","agent.keep":"Keep agent","agent.deleted":"Agent deleted","agent.newConvTitle":"Start a new conversation?","agent.newConvBody":"The agent starts with a fresh session. The current one stays in its Sessions tab and can be resumed anytime.","agent.newConvStarted":"New conversation started","agent.newConvStart":"Start new conversation","sessions.current":"Current","types.err.name":"Give the type a name.","types.updated":"Type updated","types.created":"Type created","types.deleted":"Type deleted","types.subtitle":"Reusable blueprints: provider, model, prompt, permissions and skills. Create an agent from a type in two clicks.","types.new":"New type","types.empty.title":"No types yet","types.empty.body":"Define a “Reviewer” or “Builder” once, then spin up as many agents from it as you need.","types.empty.create":"Create a type","types.noDescription":"No description.","types.defaultModel":"default model","types.skillsCount_one":"{count} skill","types.skillsCount_other":"{count} skills","types.usedBy_one":"{count} agent uses this","types.usedBy_other":"{count} agents use this","types.editTitle":"Edit {name}","types.typeWord":"type","types.newTitle":"New agent type","types.drawerSubtitle":"Agents created from this type start with these values. Existing agents are not changed.","types.save":"Save type","types.create":"Create type","types.name.placeholder":"e.g. Reviewer","types.description":"Description","types.description.hint":"Shown when picking a type.","types.chars_one":"{n} character","types.chars_other":"{n} characters","types.deleteTitle":"Delete {name}?","types.deleteBody":"Agents already created from it keep their settings and simply lose the link.","types.keep":"Keep type","types.delete":"Delete type","skills.err.name":"Give the skill a name.","skills.created":"Skill created","skills.saved":"Skill saved","skills.deleted":"Skill deleted","skills.subtitle":"Markdown instructions you attach to agents or types. They are appended to the system prompt, so write them as guidance the agent follows.","skills.new":"New skill","skills.empty.title":"No skills yet","skills.empty.body":"A skill is a reusable block of instructions — a review checklist, a commit style, how to run your tests.","skills.empty.create":"Write the first skill","skills.search":"Search skills","skills.unsaved":"Unsaved","skills.nAgents_one":"{count} agent","skills.nAgents_other":"{count} agents","skills.nTypes_one":"{count} type","skills.nTypes_other":"{count} types","skills.noMatch":"No skills match “{query}”.","skills.name.placeholder":"e.g. conventional-commits","skills.description.hint":"One line, shown in pickers.","skills.instructions":"Instructions","skills.preview":"Preview","skills.content.placeholder":"When writing commits:\n- Use the imperative mood\n- Keep the subject under 72 characters","skills.previewEmpty":"*Nothing to preview yet.*","skills.create":"Create skill","skills.save":"Save skill","skills.deleteTitle":"Delete {name}?","skills.deleteBody":"It will be detached from {agents} and {types}.","skills.keep":"Keep skill","skills.delete":"Delete skill","sessions.subtitle":"Every conversation your agents have had, read straight from Claude Code, OpenCode and Kiro. Other sessions on this machine are not shown.","sessions.searchPlaceholder":"Search by agent, folder or first message","sessions.searchLabel":"Search sessions","sessions.empty.title":"No sessions yet","sessions.empty.body":"Send a message to any agent and its session will appear here.","sessions.empty.go":"Go to agents","sessions.reading":"Reading sessions…","sessions.delegatedBy":"Delegated by {name}","sessions.emptySession":"Empty session","sessions.messages_one":"{count} message","sessions.messages_other":"{count} messages","sessions.noMatch":"No sessions match.","sessions.select":"Select a session to read its transcript.","sessions.openAgent":"Open agent","sessions.loading":"Loading transcript…","sessions.noMessages":"The CLI has no readable messages for this session.","rel.updateFailed":"Could not update the connection","rel.disconnected":"{worker} disconnected from {orchestrator}","rel.connected":"{worker} connected to {orchestrator}","rel.disconnectLabel":"Disconnect {worker} from {orchestrator}","rel.layoutReset":"Layout reset","rel.hud":"Who can delegate to whom. Each orchestrator has its own line colour. Hover or select an agent to see its connections; click the ✕ on a line to remove it, or drag from an orchestrator’s bottom dot to a worker to add one.","rel.autoArrange":"Auto-arrange","rel.empty.title":"Nothing to connect yet","rel.empty.body":"Create at least one orchestrator and one worker first.","rel.delegatesTo":"Delegates to \xb7 {count}","rel.noWorkers":"No workers yet.","rel.disconnect":"Disconnect","rel.connectWorker":"Connect a worker…","rel.directedBy":"Directed by","rel.noOrchestrators":"No orchestrator can delegate to this worker.","rel.connectOrchestrator":"Connect to an orchestrator…","git.tab.chat":"Chat","git.tab.changes":"Changes","git.tab.label":"View","git.loading":"Reading the repository…","git.error.title":"Couldn’t read the repository","git.refresh":"Refresh","git.notRepo.title":"This folder isn’t a git repository","git.notRepo.body":"Run git init in {path} to see file changes here.","git.noGit.title":"git isn’t available","git.noGit.body":"Install git and make sure it’s in the PATH of the hive-am server.","git.detached":"detached at","git.noCommitsBranch":"no commits yet","git.noCommits":"No commits yet","git.upstream":"Commits ahead ↑ / behind ↓ the upstream branch","git.clean":"No changes — the working tree is clean.","git.summary_one":"{count} file changed","git.summary_other":"{count} files changed","git.updated":"Updated {time}","git.scope":"Showing only {path}/ — the folder this agent works in.","git.filesLabel":"Files","git.filterPlaceholder":"Filter files…","git.filter.all":"All files","git.filter.changed":"Changed","git.noMatch":"No files match “{query}”.","git.noFiles":"No files here.","git.rowsCapped":"Showing the first {count} rows. Narrow the filter to see more.","git.treeTruncated":"This folder is large: only the first {count} files are listed.","git.dirChanged_one":"{count} changed file inside","git.dirChanged_other":"{count} changed files inside","git.status.modified":"Modified","git.status.added":"Added","git.status.deleted":"Deleted","git.status.renamed":"Renamed","git.status.untracked":"Untracked","git.status.conflict":"Conflict","git.status.typechange":"Type changed","git.staged":"Staged","git.unstaged":"Unstaged","git.select":"Select a file to preview it.","git.view.diff":"Diff","git.view.file":"File","git.view.preview":"Preview","git.view.source":"File","git.layout.unified":"Unified","git.layout.split":"Side by side","git.copyPath":"Copy path","git.renamedFrom":"Renamed from {path}","git.diff.binary":"Binary file — there is no text diff to show.","git.diff.empty":"No textual differences (for example, only the file mode changed).","git.diff.truncated":"The diff was too large and is shown only in part.","git.file.binary":"Binary file — it can’t be previewed.","git.file.empty":"Empty file.","git.file.deleted":"Deleted from the working tree — showing the version from the last commit.","git.file.truncated":"Large file — showing only the first part.","git.loadError":"Couldn’t load the preview.","git.info.toggle":"Show branch and last commit details","git.info.branch":"Branch","git.info.upstreamLabel":"Remote branch","git.info.noUpstream":"No remote branch configured","git.info.inSync":"In sync with the remote branch","git.info.upstreamStatus":"{ahead} ahead \xb7 {behind} behind the remote branch","git.info.commit":"Last commit","git.info.message":"Message","git.info.author":"Author","git.info.when":"When","git.info.copyBranch":"Copy branch name","git.info.copySha":"Copy commit hash","server.invalidPath":"Invalid path","server.pathOutside":"Path is outside the agent’s folder","server.fileNotFound":"File not found","server.notFile":"Not a file","server.notImage":"Not an image","server.imageTooLarge":"Image is too large to preview","server.pathRequired":"path is required","hover.noOrchestrator":"No orchestrator","hover.more_one":"+{count} more","hover.more_other":"+{count} more","md.toolbar":"Formatting","md.heading":"Heading","md.bold":"Bold","md.boldPh":"bold text","md.italic":"Italic","md.italicPh":"italic text","md.code":"Inline code","md.codeBlock":"Code block","md.bullets":"Bulleted list","md.numbered":"Numbered list","md.quote":"Quote","md.link":"Link","md.linkPh":"link text","md.rule":"Divider","md.view.write":"Write","md.view.split":"Split","md.view.preview":"Preview","md.stats":"{words} words \xb7 {chars} characters","md.tips":"Tab indents \xb7 Enter continues lists \xb7 Ctrl+B / I / K","git.act.group":"Git actions","git.act.fetch":"Fetch","git.act.fetch.hint":"Check the remote for new commits without changing your files","git.act.pull":"Pull","git.act.pull.hint":"Bring in the remote’s new commits (fast-forward only)","git.act.push":"Push","git.act.push.hint":"Send your commits to the remote","git.act.commit":"Commit","git.act.branches":"Branches","git.done.fetch":"Fetched","git.done.pull":"Pulled","git.done.push":"Pushed","git.done.commit":"Committed","git.done.switch":"Switched to {branch}","git.done.merge":"Merged {branch}","git.done.mergeAbort":"Merge aborted","git.notice.failed":"{action} failed","git.notice.diverged":"The branches have diverged. Choose how to combine them:","git.pull.merge":"Pull with merge","git.pull.rebase":"Pull with rebase","git.warn.running":"{name} is working — committing, pulling or switching branches now can collide with its edits.","git.br.search":"Find a branch","git.br.new":"New branch from {branch}","git.br.newPlaceholder":"new-branch-name","git.br.create":"Create","git.br.local":"Local","git.br.remote":"Remote","git.br.merge":"Merge into {branch}","git.br.mergeAsk":"Merge {from} into {into}?","git.br.mergeGo":"Merge","git.br.none":"No branches match","git.br.switchTo":"Switch to {branch}","git.commit.title":"Commit changes","git.commit.selected":"{n} of {total} selected","git.commit.all":"All","git.commit.none":"None","git.commit.message":"Message","git.commit.placeholder":"Summarize what changed and why","git.commit.go":"Commit","git.commit.goPush":"Commit & push","git.commit.committing":"Committing…","git.commit.hint":"Only the selected files are committed. Ctrl+Enter to commit.","git.commit.nothing":"Nothing to commit","git.tab.files":"Files","git.tab.history":"History","git.hist.empty":"No commits yet","git.hist.more":"Load more","git.hist.merge":"merge","git.hist.select":"Select a commit to see what it changed","git.hist.files_one":"{count} file changed","git.hist.files_other":"{count} files changed","git.hist.noFiles":"No file changes (empty or merge commit)","git.res.done":"Marked as resolved","git.res.restored":"Conflict restored","git.res.left_one":"{count} conflict left","git.res.left_other":"{count} conflicts left","git.res.none":"No conflict markers left","git.res.allMine":"Keep all mine","git.res.allMine.hint":"Take your side of the whole file and mark it resolved","git.res.allRemote":"Keep all remote","git.res.allRemote.hint":"Take the incoming side of the whole file and mark it resolved","git.res.noEdit":'This file is binary or too large to resolve here. Use "Keep all mine" or "Keep all remote".',"git.res.block":"Conflict {n} of {total}","git.res.line":"line {n}","git.res.mine":"Mine (current branch)","git.res.remote":"Remote (incoming)","git.res.empty":"(nothing)","git.res.keepMine":"Keep mine","git.res.keepRemote":"Keep remote","git.res.both":"Keep both","git.res.bothMine":"Mine first","git.res.bothRemote":"Remote first","git.res.result":"Result","git.res.editHint":"You can edit it freely before saving","git.res.restore":"Restore conflict","git.res.restore.hint":"Discard your choices and bring the conflict markers back","git.res.markResolved":"Mark as resolved","git.state.merge":"Merge in progress","git.state.rebase":"Rebase in progress","git.state.conflicts_one":"{count} file with conflicts","git.state.conflicts_other":"{count} files with conflicts","git.state.ready":"All conflicts are resolved.","git.state.finishMerge":"Finish merge (commit)","git.state.continueRebase":"Continue rebase","git.state.abortMerge":"Abort merge","git.state.abortRebase":"Abort rebase","git.done.rebaseContinue":"Rebase continued","git.set.title":"Code view settings","git.set.theme":"Theme","git.set.themeApp":"Hive (app)","git.set.whitespace":"Show whitespace","git.set.whitespace.hint":"Spaces as \xb7 and tabs as →, in the viewer, diffs and editor","git.set.tab":"Tab width","git.set.note":"Saved in this browser only.","git.blame":"Blame","git.blame.hint":"Show who last changed each line","git.blame.uncommitted":"Not committed","git.blame.truncated":"Blame shows the first {count} lines only.","git.discard":"Discard","git.discard.hint":"Throw away this file’s changes","git.discard.hunk":"Discard block","git.discard.hunk.hint":"Throw away just this block of changes","git.discard.all":"Discard all changes","git.discard.all.blocked":"Finish or abort the merge/rebase first","git.done.discard":"Changes discarded","git.discard.confirm.title":"Delete files completely?","git.discard.confirm.body_one":"This file is new (it is not in any commit), so discarding it deletes it completely. It cannot be recovered.","git.discard.confirm.body_other":"These {count} files are new (they are not in any commit), so discarding them deletes them completely. They cannot be recovered.","git.discard.confirm.go":"Delete files","git.discard.lines":"Select lines","git.discard.lines.hint":"Pick individual added/removed lines of this block to discard","git.discard.lines.all":"All","git.discard.lines.go_one":"Discard {count} line","git.discard.lines.go_other":"Discard {count} lines","git.discard.lines.pick":"Include this line","git.discard.all.title":"Discard all changes?","git.discard.all.restore_one":"{count} file with changes goes back to the last commit.","git.discard.all.restore_other":"{count} files with changes go back to the last commit.","git.discard.all.delete_one":"{count} new file (it is not in any commit) will be DELETED completely:","git.discard.all.delete_other":"{count} new files (they are not in any commit) will be DELETED completely:","git.discard.all.lines":"In total: +{add} −{del} lines of changes.","git.discard.all.warn":"All of this is lost for good. It cannot be undone.","git.discard.all.go":"Discard all changes","git.discard.file.title":"Discard this file’s changes?","git.discard.file.modified":"The file goes back to how it is in the last commit{lines}.","git.discard.file.deleted":"The deleted file will be restored from the last commit.","git.discard.file.renamed":"The rename is undone: the file goes back to its original name, {from}.","git.discard.file.go":"Discard file changes","git.pending.conflicts":"resolve the conflicts","git.tab.stashes":"Stashes","git.stash.save":"Save changes to stash","git.stash.nothing":"There are no changes to stash","git.stash.empty":"No stashes. A stash holds changes you set aside to bring back later.","git.stash.smart":"smart switch","git.stash.saved":"Changes stashed","git.stash.save.body":"Your uncommitted changes (including new files) are set aside and the working tree goes back to the last commit.","git.stash.save.placeholder":"Message (optional)","git.stash.apply":"Apply","git.stash.apply.hint":"Bring the changes back and keep the stash","git.stash.pop":"Apply and delete","git.stash.pop.hint":"Bring the changes back and delete the stash","git.stash.drop":"Delete","git.stash.drop.title":"Delete this stash?","git.stash.drop.body":"The changes saved in “{name}” will be deleted.","git.stash.applied":"Stash applied","git.stash.popped":"Stash applied and deleted","git.stash.dropped":"Stash deleted","git.sw.title":"Switch to {branch}?","git.sw.carried_one":"{count} uncommitted change comes with you from {from}.","git.sw.carried_other":"{count} uncommitted changes come with you from {from}.","git.sw.others_one":"{names} is working in this repository right now: switching branches changes the files it is editing.","git.sw.others_other":"{names} are working in this repository right now: switching branches changes the files they are editing.","git.sw.anyway":"Switch anyway","git.done.switchCarried":"Switched to {branch}; {count} changes came with you","git.state.stash":"Smart switch in progress","git.state.stash.hint":"{from} → {to}: your changes are being brought back","git.state.finishStash":"Finish","git.state.cancelStash":"Cancel smart switch","git.done.smartFinish":"Switch finished","git.done.smartCancel":"Switch cancelled","git.state.cancelStash.title":"Cancel the smart switch?","git.state.cancelStash.body":"You go back to {from} and your changes return exactly as they were. Anything you edited while resolving conflicts is lost.","git.state.cancelStash.go":"Cancel switch","git.res.mine.stash":"Mine (your saved changes)","git.res.remote.stash":"Other branch","git.sw.kept_one":"{names} already existed there: your version was kept (it shows as a change)","git.sw.kept_other":"{names} already existed there: your versions were kept (they show as changes)","git.peek.title":"Change block","git.peek.hint":"Click to see this change","git.peek.lines":"Change block \xb7 lines {from}–{to}","git.peek.line":"Change block \xb7 line {n}","git.peek.prev":"Previous change","git.peek.next":"Next change","git.peek.count":"{n} of {total}","git.set.ignored":"Show ignored files","git.set.ignored.hint":"What .gitignore hides (node_modules, build, .env…) appears dimmed; folders open one level at a time","git.ignored.hint":"Ignored by git","git.ignored.chip":"Ignored"},a=[{id:"en",short:"EN",name:"English"},{id:"es",short:"ES",name:"Espa\xf1ol"}],s="hive-locale",i={en:n,es:{"app.tagline":"administrador de colonias de agentes","nav.main":"Principal","nav.colony":"Colonia","nav.agents":"Agentes","nav.relations":"Relaciones","nav.library":"Biblioteca","nav.types":"Tipos de agente","nav.skills":"Skills","nav.history":"Historial","nav.sessions":"Sesiones","nav.connected":"Conectado al servidor","nav.offline":"Servidor sin conexi\xf3n — reintentando","nav.switchTheme":"Cambiar tema","lang.label":"Idioma","time.justNow":"justo ahora","time.minutesAgo_one":"hace {count} min","time.minutesAgo_other":"hace {count} min","time.hoursAgo_one":"hace {count} h","time.hoursAgo_other":"hace {count} h","time.daysAgo_one":"hace {count} d","time.daysAgo_other":"hace {count} d","provider.claude.blurb":"El agente de c\xf3digo de Anthropic. Transmite tokens y se reanuda por id de sesi\xf3n.","provider.opencode.blurb":"Agente de c\xf3digo abierto sobre cualquier proveedor de modelos que tengas configurado.","provider.kiro.blurb":"El CLI ag\xe9ntico de AWS con flujos guiados por especificaciones.","provider.installed":"● instalado","provider.notFound":"● no encontrado","permission.plan.label":"Solo lectura","permission.plan.hint":"Planifica y lee; nunca edita archivos ni ejecuta comandos.","permission.acceptEdits.label":"Editar archivos","permission.acceptEdits.hint":"Edita archivos libremente; las dem\xe1s acciones de riesgo siguen las reglas del propio CLI.","permission.bypassPermissions.label":"Acceso total","permission.bypassPermissions.hint":"Ejecuta cualquier cosa sin preguntar. \xdasalo en carpetas desechables.","permission.title":"\xbfQu\xe9 puede hacer?","role.orchestrator":"Orquestador","role.worker":"Worker","status.idle":"Inactivo","status.running":"Trabajando","status.error":"Requiere atenci\xf3n","server.invalidJson":"El cuerpo de la solicitud no es un JSON v\xe1lido","server.nameRequired":"El nombre es obligatorio","server.unknownProvider":'Proveedor desconocido "{name}"',"server.unknownProviderShort":"Proveedor desconocido","server.pickProvider":"Elige un proveedor","server.badRole":"El rol debe ser orquestador o worker","server.folderMissing":"La carpeta no existe: {path}","server.notFolder":"No es una carpeta","server.colonyGone":"Esa colonia ya no existe","server.agentExists":'Ya existe un agente llamado "{name}"',"server.skillExists":'Ya existe una skill llamada "{name}"',"server.typeExists":'Ya existe un tipo llamado "{name}"',"server.colonyExists":'Ya existe una colonia llamada "{name}"',"server.needFolderOrColony":"Elige una carpeta de trabajo o coloca al agente en una colonia que la aporte.","server.needFolderOrInherit":"Elige una carpeta de trabajo o sigue heredando la de la colonia.","server.agentNotFound":"Agente no encontrado","server.skillNotFound":"Skill no encontrada","server.typeNotFound":"Tipo no encontrado","server.colonyNotFound":"Colonia no encontrada","server.messageEmpty":"El mensaje est\xe1 vac\xedo","server.onlyOwnSessions":"Solo las conversaciones propias del agente pueden hacerse actuales. Las sesiones delegadas son de solo lectura.","server.sessionNotOwned":"Esa sesi\xf3n no pertenece a este agente","server.onlyOrchestrators":"Solo los orquestadores pueden tener subagentes","server.dispatchFields":"Se requieren from, agent y task","server.unknownOrchestrator":"Orquestador desconocido","server.noAgentNamed":'No hay ning\xfan agente llamado "{name}"',"server.notAssigned":'"{worker}" no est\xe1 asignado a {orchestrator}',"server.unexpected":"Error inesperado del servidor","server.noRoute":"Ruta inexistente","server.notFound":"No encontrado","server.noWorkingFolder":"Este agente no tiene carpeta de trabajo. Define una en el agente o en su colonia.","server.agentGone":"El agente ya no existe","server.requestFailed":"La solicitud fall\xf3 ({status})","common.cancel":"Cancelar","common.close":"Cerrar","drawer.resize":"Arrastra para ajustar el ancho \xb7 doble clic para ampliar","drawer.expand":"Ampliar panel","drawer.shrink":"Reducir panel","common.back":"Atr\xe1s","common.saving":"Guardando…","common.delete":"Eliminar","common.edit":"Editar","common.discard":"Descartar","common.hide":"Ocultar","common.dismiss":"Descartar","common.noDescription":"Sin descripci\xf3n","common.copy":"Copiar","common.copied":"Copiado","common.clearFilters":"Limpiar filtros","common.all":"Todos","common.working":"Trabajando","field.model":"Modelo","model.loading":"Cargando los modelos que ofrece este CLI…","model.pick":"Elige uno o escribe cualquier id de modelo. D\xe9jalo vac\xedo para usar el predeterminado del CLI.","model.none":"No se pudieron listar los modelos. Escribe un id de modelo o d\xe9jalo vac\xedo para usar el predeterminado del CLI.","model.cliDefault":"Predeterminado del CLI","field.folder":"Carpeta de trabajo","folder.hint":"El agente corre aqu\xed, y cada carpeta conserva sus propias sesiones nativas.","folder.placeholder":"/home/tu/proyecto","folder.browse":"Explorar","folder.up":"Subir una carpeta","folder.use":"Usar esta carpeta","folder.empty":"No hay subcarpetas aqu\xed.","skillPicker.search":"Buscar skills para a\xf1adir…","skillPicker.noMatch":"Ninguna skill coincide con \xab{query}\xbb.","skillPicker.allAdded":"Ya a\xf1adiste todas las skills.","skillPicker.remove":"Quitar {name}","skillPicker.weight":"Siempre en el prompt: ~{always} tokens \xb7 {onDemand} bajo demanda.","skillPicker.heavy":"Es bastante: pasa las m\xe1s largas a \xabBajo demanda\xbb.","tool.skillRead":"Cargar skill","skillPicker.mode.always":"siempre","skillPicker.mode.lazy":"a demanda","skillPicker.mode.always.hint":"Su texto (~{tokens} tokens) va en las instrucciones de cada turno. Clic para pasarla a \xaba demanda\xbb.","skillPicker.mode.lazy.hint":"Solo se lista su nombre y descripci\xf3n; el agente lee el texto (~{tokens} tokens) cuando lo necesita. Clic para pasarla a \xabsiempre\xbb.","skillPicker.empty":"A\xfan no hay skills. Crea algunas en la biblioteca de Skills y luego a\xf1\xe1delas aqu\xed.","common.noColony":"Sin colonia","common.saveChanges":"Guardar cambios","form.err.name":"Ponle un nombre al agente.","form.err.nameTaken":"Otro agente ya usa este nombre.","form.err.folder":"Elige la carpeta en la que trabaja este agente.","form.name":"Nombre","form.name.hint":"Los orquestadores se dirigen a los workers por este nombre, as\xed que mantenlo corto y distinto.","form.name.placeholder":"p. ej. api-builder","form.purpose":"\xbfPara qu\xe9 sirve?","form.purpose.hint":"Una l\xednea. Los orquestadores la leen para decidir qui\xe9n recibe cada tarea.","form.purpose.placeholder":"Implementa endpoints del backend y sus pruebas","form.role":"Rol","form.role.orchestratorHint":"Planifica el trabajo y lo delega a los workers que tiene asignados.","form.role.workerHint":"Hace el trabajo que recibe, directamente de ti o de un orquestador.","form.basedOn":"Basado en el tipo “{name}”. Los cambios aqu\xed solo afectan a este agente.","form.colony":"Colonia","form.colony.hint":"Los agentes de una colonia pueden seguir su carpeta, permisos, skills y contexto compartido. El proveedor y el modelo siempre se definen por agente.","form.provider":"Proveedor","form.ownPrompt":"System prompt propio del agente","form.systemPrompt":"System prompt","form.promptHint_one":"{n} car\xe1cter. Se a\xf1ade a las instrucciones propias del CLI en cada turno.","form.promptHint_other":"{n} caracteres. Se a\xf1aden a las instrucciones propias del CLI en cada turno.","form.prompt.placeholder":"Eres un ingeniero de backend cuidadoso. Ejecuta siempre las pruebas antes de reportar.","form.skills":"Skills","form.skills.hint":"Se a\xf1aden al system prompt en el orden mostrado.","form.team":"Equipo","form.team.hint":"Solo estos workers pueden recibir tareas de este orquestador.","form.team.empty":"A\xfan no hay workers. Crea un agente worker y as\xedgnalo aqu\xed o en el lienzo de Relaciones.","inherit.permissions":"Permisos","inherit.context":"Contexto compartido","inherit.context.note":"Se coloca antes del prompt propio de este agente.","inherit.skills":"Skills de la colonia","inherit.skills.note":"Se suman a las skills propias de este agente.","inherit.from":"de","inherit.following":"Siguiendo","inherit.own":"Valor propio","newAgent.title":"Nuevo agente","newAgent.pickType":"Empieza desde un tipo para rellenar proveedor, modelo, prompt y skills.","newAgent.typeFallback":"{role} en {provider}","newAgent.blank":"Agente en blanco","newAgent.blankHint":"Configura todo t\xfa mismo.","newAgent.fromType":"Desde el tipo “{name}”","newAgent.create":"Crear agente","newAgent.creating":"Creando…","newAgent.created":"{name} creado","newAgent.failed":"No se pudo crear el agente","edit.title":"Ajustes de {name}","edit.subtitleRunning":"Este agente est\xe1 trabajando: los cambios aplican desde su siguiente turno.","edit.subtitleIdle":"Los cambios aplican desde su siguiente mensaje.","edit.fixFields":"Corrige primero los campos marcados","edit.saved":"{name} guardado","edit.saveFailed":"No se pudo guardar","colony.err.name":"Ponle un nombre a la colonia.","colony.err.nameTaken":"Otra colonia ya usa este nombre.","colony.saved":"Colonia guardada","colony.created":"Colonia creada","colony.deleted":"Colonia eliminada","colony.editTitle":"Editar {name}","colony.newTitle":"Nueva colonia","colony.subtitle":"Un grupo de agentes dibujado junto en el panal, que comparte valores por defecto.","colony.save":"Guardar colonia","colony.create":"Crear colonia","colony.name.placeholder":"p. ej. Backend de facturaci\xf3n","colony.color":"Color","colony.colorOption":"Color {color}","colony.colorCustom":"Color personalizado","colony.colorHex":"C\xf3digo hex","colony.err.color":"Escribe el color como #rrggbb, p. ej. #2f8f5b","colony.context.hint":"Instrucciones que cada miembro ve antes de su propio prompt.","colony.context.placeholder":"Todos los servicios usan PostgreSQL 16. Nunca toques la carpeta de migraciones sin preguntar.","colony.members":"Miembros","colony.members.hint":"Un agente pertenece a una sola colonia. Elegir uno que est\xe1 en otra lo mueve aqu\xed.","colony.members.empty":"A\xfan no hay agentes. Crea algunos y luego agr\xe9galos aqu\xed.","colony.currentlyIn":"Actualmente en {name}","colony.deleteTitle":"\xbfEliminar {name}?","colony.deleteBody_one":"Su {count} agente se queda, pero deja de seguir la carpeta, los permisos, las skills y el contexto de la colonia. Las carpetas que hered\xf3 pasan a ser suyas solo si las defines.","colony.deleteBody_other":"Sus {count} agentes se quedan, pero dejan de seguir la carpeta, los permisos, las skills y el contexto de la colonia. Las carpetas que heredaron pasan a ser suyas solo si las defines.","colony.keep":"Conservar colonia","colony.delete":"Eliminar colonia","inheritAsk.title":"\xbfQu\xe9 deben heredar sus agentes?","inheritAsk.intro":"Los miembros las siguen por defecto. Cualquier agente puede excluirse por su cuenta.","inheritAsk.field.cwd":"Carpeta de trabajo","inheritAsk.field.permission":"Permisos","inheritAsk.field.skills":"Skills","inheritAsk.field.prompt":"Contexto compartido","inheritAsk.hint.cwd":"Los agentes corren en la carpeta de la colonia.","inheritAsk.hint.permission":"Los agentes reciben el nivel de acceso de la colonia.","inheritAsk.hint.skills":"Las skills de la colonia se suman a las propias de cada agente.","inheritAsk.hint.prompt":"El prompt de la colonia va antes del prompt propio de cada agente.","inheritAsk.empty.cwd":"A\xfan no hay nada definido: a\xf1ade una carpeta para compartirla.","inheritAsk.empty.permission":"A\xfan no hay nada definido: a\xf1ade permisos para compartirlos.","inheritAsk.empty.skills":"A\xfan no hay nada definido: a\xf1ade skills para compartirlas.","inheritAsk.empty.prompt":"A\xfan no hay nada definido: a\xf1ade contexto compartido para compartirlo.","inheritAsk.folderMoves_one":"{count} agente se mueve a esta carpeta y empieza una conversaci\xf3n nueva. Las anteriores quedan en su pesta\xf1a Sesiones.","inheritAsk.folderMoves_other":"{count} agentes se mueven a esta carpeta y empiezan una conversaci\xf3n nueva. Las anteriores quedan en su pesta\xf1a Sesiones.","activity.delegated":"Tarea delegada \xb7 ","activity.starting":"Iniciando…","activity.running":"Ejecutando {tool}","activity.ran":"Ejecut\xf3 {tool}","activity.thinking":"Pensando…","activity.writing":"Escribiendo una respuesta…","switcher.find":"Buscar un agente","switcher.noMatch":"Ning\xfan agente coincide con “{query}”.","switcher.noDescription":"A\xfan sin descripci\xf3n","switcher.collapse":"Contraer la lista de agentes","switcher.expand":"Expandir la lista de agentes","queue.count_one":"{count} en cola","queue.count_other":"{count} en cola","common.yes":"s\xed","tool.delegate":"Delegar","tool.roster":"Equipo","tool.shell":"Shell","tool.read":"Leer","tool.write":"Escribir","tool.edit":"Editar","tool.subagent":"Subagente","tool.plan":"Plan","tool.k.subagent":"Subagente","tool.k.task":"Tarea","tool.k.tool":"Herramienta","tool.k.workdir":"Directorio de trabajo","tool.k.timeout":"Tiempo l\xedmite","tool.k.background":"Segundo plano","tool.k.path":"Ruta","tool.k.offset":"Desplazamiento","tool.k.limit":"L\xedmite","tool.k.replaceAll":"Reemplazar todo","tool.k.type":"Tipo","tool.k.description":"Descripci\xf3n","tool.k.prompt":"Prompt","tool.command":"Comando","tool.copyCommand":"Copiar comando","tool.copyOutput":"Copiar salida","tool.output":"Salida","tool.noOutput":"(sin salida)","tool.truncated":"… (recortado)","tool.exit":"salida {code}","tool.failed":"fall\xf3","tool.lines_one":"{count} l\xednea","tool.lines_other":"{count} l\xedneas","tool.writeSummary_one":"{path} \xb7 {count} l\xednea","tool.writeSummary_other":"{path} \xb7 {count} l\xedneas","tool.editSummary_one":"{path} \xb7 {count} cambio","tool.editSummary_other":"{path} \xb7 {count} cambios","tool.planSummary":"{done}/{total} hechas","stats.context":"contexto","stats.contextTitle":"Tokens en el contexto de la \xfaltima solicitud","stats.tokens":"tokens","stats.credits":"cr\xe9ditos","stats.costEstimated":"Estimado con los precios p\xfablicos de lista","stats.costReported":"Informado por el CLI","stats.turns_one":"turno","stats.turns_other":"turnos","stats.toolCalls_one":"llamada a herramienta","stats.toolCalls_other":"llamadas a herramientas","stats.failed_one":"{count} fall\xf3","stats.failed_other":"{count} fallaron","stats.working":"trabajando","stats.mix":"Mezcla de tokens","stats.cacheRead":"Lectura de cach\xe9","stats.cacheWrite":"Escritura de cach\xe9","stats.input":"Entrada","stats.output":"Salida","stats.thinking":"{tokens} de razonamiento","stats.models":"Modelos","stats.modelLine_one":"{count} msj \xb7 {out} de salida","stats.modelLine_other":"{count} msjs \xb7 {out} de salida","stats.toolsUsed":"Herramientas usadas","stats.totalTime":"{time} en total","stats.noTools":"A\xfan no se llam\xf3 a ninguna herramienta.","stats.toolTitle_one":"{count} llamada \xb7 {time} en total","stats.toolTitle_other":"{count} llamadas \xb7 {time} en total","stats.perTurn":"Tokens por turno","stats.promptFallback":"(prompt)","stats.turnLine":"{tokens} tokens \xb7 {tools} herramientas \xb7 {time}","chat.tokenDetail":"entrada {input} \xb7 salida {output} \xb7 lectura de cach\xe9 {cacheRead} \xb7 escritura de cach\xe9 {cacheWrite}","chat.inOut":"{in} entrada \xb7 {out} salida","chat.credits":"{value} cr\xe9ditos","chat.tools_one":"{count} herramienta","chat.tools_other":"{count} herramientas","chat.contextPct":"contexto {pct}%","nav.connections":"Conexiones","nav.schedules":"Programados","sched.subtitle":"Lo que tus agentes dejaron para hacer m\xe1s tarde: avisos de una sola vez y programas recurrentes. Corren en el lugar donde se pidieron (un hilo de chat o el chat web) y cada vez cuestan un turno del modelo.","sched.empty.title":"Nada programado","sched.empty.body":"Cuando un agente tiene la skill Wake-ups puedes pedirle cosas como \xabcada d\xeda h\xe1bil a las 9 revisa los logs de QA y av\xedsame\xbb y aparecer\xe1 aqu\xed.","sched.kind.cron":"Cron","sched.kind.every":"Intervalo","sched.kind.once":"Una vez","sched.kind.watch":"Esperando un proceso","sched.where.web":"Chat web","sched.next":"Pr\xf3xima","sched.until":"Espera hasta","sched.never":"nunca","sched.paused":"En pausa","sched.last":"\xdaltima","sched.runs":"{count} ejecuciones","sched.pause":"Pausar","sched.resume":"Reanudar","sched.history":"Historial","sched.hide":"Ocultar historial","sched.noRuns":"Todav\xeda no se ha ejecutado.","sched.deleteTitle":"\xbfBorrar este programa?","sched.deleteBody":"Se detiene para siempre. El agente puede crearlo de nuevo si se lo pides.","sched.in":"en {when}","sched.status.delivered":"Entregado","sched.status.failed":"Fall\xf3","sched.status.skipped_muted":"Omitido (silenciado)","sched.status.skipped_busy":"Omitido (agente ocupado)","sched.status.skipped_missed":"Omitido (se perdi\xf3)","sched.status.skipped_disabled":"Omitido (conexi\xf3n apagada)","sched.status.skipped_reassigned":"En pausa (cambi\xf3 el agente)","sched.minShort":"{count} min","sched.hourShort":"{count} h","sched.dayShort":"{count} d","conn.subtitle":"Permite hablar con un agente desde Telegram o Slack. Cada hilo y cada persona comparte la \xfanica conversaci\xf3n del agente, la misma que ves en hive-am.","conn.new":"Nueva conexi\xf3n","conn.create":"Crear conexi\xf3n","conn.edit":"Editar conexi\xf3n","conn.save":"Guardar","conn.empty.title":"A\xfan no hay conexiones","conn.empty.body":"Vincula un agente a un bot de Telegram y conversa con \xe9l desde tu tel\xe9fono. Responde en el mismo hilo en el que escribes.","conn.kind":"Plataforma","conn.kind.telegram":"Telegram","conn.kind.slack":"Slack","conn.kind.soon":"Slack \xb7 pronto","conn.status.connected":"Conectada","conn.status.connecting":"Conectando…","conn.status.error":"Problema","conn.status.stopped":"Apagada","conn.noAgent":"Sin agente vinculado","conn.threads_one":"{count} hilo","conn.threads_other":"{count} hilos","conn.lastEvent":"\xfaltimo mensaje {when}","conn.name":"Nombre","conn.name.hint":"Una etiqueta para ti, p. ej. \xabBot de operaciones\xbb.","conn.name.placeholder":"Bot de operaciones","conn.agent":"Agente que responde","conn.agent.hint":"Responde con su herramienta channel_reply; su texto normal nunca llega al chat.","conn.agent.pick":"Elige un agente…","conn.token":"Token del bot","conn.token.hint":"Crea un bot con @BotFather y pega su token. Se guarda en esta m\xe1quina y no se vuelve a mostrar.","conn.token.keep":"D\xe9jalo vac\xedo para conservar {hint}","conn.allowed":"Qui\xe9n puede hablarle","conn.allowed.hint":"Solo estos ids de Telegram reciben respuesta. A cualquier otra persona solo se le dice su propio id.","conn.allowed.howto":"\xbfNo sabes tu id? Guarda la conexi\xf3n y escr\xedbele al bot: te responde con tu id.","conn.allowed.add":"A\xf1adir persona","conn.allowed.id":"Id de Telegram","conn.allowed.name":"Nombre (opcional)","conn.allowed.admin":"Admin","conn.allowed.adminHint":"Puede reiniciar la conversaci\xf3n compartida con /new","conn.allowed.remove":"Quitar","conn.allowed.empty":"Nadie todav\xeda: el bot no responder\xe1 a nadie.","conn.files":"Recibir archivos","conn.files.hint":"Fotos, documentos y audios que le env\xeden (hasta 20 MB cada uno). Se guardan en este equipo durante 14 d\xedas y el agente los abre con sus herramientas de archivos; no puede escuchar audio ni ver video.","conn.files.off":"No","conn.vision":"Ver im\xe1genes","conn.vision.agent":"Con el modelo del agente","conn.vision.other":"Con otro modelo","conn.vision.hint.agent":"Solo funciona si el modelo del agente acepta im\xe1genes (muchos no). Si no, dir\xe1 que no puede verlas.","conn.vision.hint.other":"Cada imagen que llegue la describe este modelo (y transcribe su texto) y la descripci\xf3n viaja con el mensaje, as\xed que cualquier agente puede responder sobre ella. La imagen se env\xeda a ese proveedor. Elige un modelo que vea im\xe1genes, como Claude Haiku.","conn.lang":"Idioma del bot","conn.lang.es":"Espa\xf1ol","conn.lang.en":"Ingl\xe9s","conn.silent":"Si el agente termina sin responder","conn.silent.notice":"Avisar en el hilo","conn.silent.send_text":"Enviar su texto normal","conn.silent.ignore":"No hacer nada","conn.effort":"Esfuerzo de razonamiento","conn.effort.hint":"Menos es m\xe1s r\xe1pido y piensa menos. Lo usan Claude y Kiro (`--effort`) y OpenCode (la variante `low`/`medium`/`high` del modelo). `Bajo` ahorra de 0.5 a 1 s por respuesta; un modelo de OpenCode sin esa variante hace fallar el turno, as\xed que para \xe9l deja \xabEl del agente\xbb.","conn.effort.default":"El del agente","conn.effort.low":"Bajo","conn.effort.medium":"Medio","conn.effort.high":"Alto","conn.enabled":"Activa","conn.enabled.hint":"Desact\xedvala para detener el bot sin borrarlo.","conn.test":"Enviar prueba","conn.test.ok":"Prueba enviada \xb7 {detail}","conn.test.failed":"Fall\xf3 la prueba","conn.delete":"Eliminar conexi\xf3n","conn.deleted":"Conexi\xf3n eliminada","conn.saved":"Conexi\xf3n guardada","conn.created":"Conexi\xf3n creada","conn.deleteTitle":"\xbfEliminar \xab{name}\xbb?","conn.deleteBody":"El bot deja de responder y se olvidan los hilos de esta conexi\xf3n. El agente y su conversaci\xf3n no se tocan.","conn.perm.plan":"{name} est\xe1 en Solo lectura, y un agente de solo lectura no puede responder por un canal.","conn.perm.fix":"Permitir editar archivos","conn.perm.fixed":"{name} ya puede editar archivos","conn.perm.full":"{name} tiene Acceso total: cualquiera de la lista puede hacer que ejecute lo que sea en esta m\xe1quina.","conn.perm.opencode":"OpenCode ignora el ajuste de permisos, as\xed que este agente puede editar archivos y ejecutar comandos diga lo que diga.","conn.groups":"Grupos","conn.groups.hint":"Elige c\xf3mo participa en grupos y temas de Telegram. En un chat privado siempre responde.","conn.mode":"Cu\xe1ndo habla en un grupo","conn.mode.mention":"Solo si lo llaman","conn.mode.open":"Escucha todo y opina","conn.mode.mention.hint":"Responde cuando lo mencionan con @, le responden a un mensaje suyo, usan un comando o dicen su nombre.","conn.mode.open.hint":"Lee todo lo que se escribe y habla solo cuando tiene algo \xfatil que aportar. Si le piden que se calle, deja de responder en ese hilo hasta que lo llamen. Pide a BotFather desactivar el privacy mode (/setprivacy → Disable).","conn.chats":"Grupos autorizados","conn.chats.hint":"Cualquier miembro de estos grupos puede hablarle, sin tener que a\xf1adirlo uno por uno. Los permisos del agente aplican a todos ellos.","conn.chats.empty":"Ning\xfan grupo: solo las personas de la lista pueden hablarle en grupos.","conn.chats.add":"A\xf1adir grupo","conn.chats.id":"Id del grupo (ej. -100123…)","conn.chats.name":"Nombre (opcional)","conn.chats.remove":"Quitar grupo","conn.chats.howto":"Para saber el id de un grupo, menciona al bot all\xed: responde con el id del chat.","conn.aliases":"Nombres con los que responde","conn.aliases.hint":"Separados por comas. Si alguien escribe uno de estos nombres en un grupo, cuenta como si lo mencionaran (ej. \xabMorena\xbb).","conn.aliases.placeholder":"Morena, queen","conn.threads.muted":"En silencio","conn.threads.mute":"Silenciar","conn.threads.unmute":"Reactivar","chat.channel.overheard":"escuchando","chat.channel.overheard.hint":"Nadie le habl\xf3 al agente: lo ley\xf3 y decide si aporta algo","chat.channel.context":"{n} mensajes anteriores que no hab\xeda visto","tool.channelMute":"Quedarse en silencio en el hilo","tool.channelUnmute":"Volver a hablar en el hilo","agent.tab.notebook":"Cuaderno","notebook.intro":"Lo que el agente decide recordar entre conversaciones. \xc9l lo escribe solo mientras trabaja; aqu\xed puedes leerlo, corregirlo o borrarlo.","notebook.off":"Este agente no tiene la skill \xabNotebook\xbb, as\xed que no usa su cuaderno.","notebook.on":"Activar","notebook.reload":"Recargar","notebook.updated":"Actualizado por {who} {when}","notebook.never":"A\xfan no hay notas","notebook.by.you":"ti","notebook.by.agent":"el agente","notebook.placeholder":"## Preferencias\n- Responde en espa\xf1ol y sin rodeos","notebook.save":"Guardar cuaderno","notebook.saved":"Cuaderno guardado","notebook.clear":"Borrar todo","notebook.clear.title":"\xbfBorrar el cuaderno?","notebook.clear.confirm":"El agente olvidar\xe1 todo lo que tiene anotado. No se puede deshacer.","conn.threads.title":"Hilos","conn.threads.empty":"A\xfan no hay mensajes.","conn.threads.last":"\xfaltimo: {user}","conn.shared":"Todos los hilos comparten la \xfanica conversaci\xf3n de este agente.","conn.err.agent":"Elige el agente que responder\xe1.","conn.err.name":"Ponle un nombre.","conn.err.token":"Pega el token del bot.","form.connections":"Conexiones","form.connections.hint":"Vinculado a {names}. Necesita al menos \xabEditar archivos\xbb: un agente de solo lectura no puede responder por un canal.","permission.lockedByConnection":"No disponible mientras el agente est\xe9 vinculado a una conexi\xf3n.","tool.channelSendFile":"Enviar archivo al canal","tool.k.caption":"Leyenda","tool.channelReply":"Responder en el canal","chat.thought":"Proceso de razonamiento","chat.changedFiles":"Archivos modificados ({count})","chat.fileWritten":"nuevo","chat.readOnly":"Est\xe1s leyendo una sesi\xf3n anterior. Hazla la actual para continuarla.","chat.queuePlaceholder":"Encola un mensaje de seguimiento…","chat.queuedBadge":"En cola: se enviar\xe1 cuando termine la respuesta actual","chat.earlier":"Mostrar mensajes anteriores ({n} m\xe1s)","chat.placeholder":"Escribe a {name}","chat.messageLabel":"Mensaje","chat.stop":"Detener","chat.send":"Enviar","chat.keys":"Enter para enviar \xb7 Shift+Enter para una nueva l\xednea","chat.collapseTools":"Contraer todas las herramientas","chat.expandTools":"Expandir todas las herramientas","chat.sendFailed":"No se pudo enviar","chat.empty.title":"Saluda a {name}","chat.empty.orchestrator":"Describe una meta. La dividir\xe1 y repartir\xe1 las partes entre su equipo.","chat.empty.worker":"Dale una tarea. La conversaci\xf3n la guarda el propio CLI, as\xed que sobrevive a los reinicios.","chat.delegatedFrom":"Tarea delegada por {name}","chat.anOrchestrator":"un orquestador","chat.delegatedNote":"Corre en su propia sesi\xf3n: no aparecer\xe1 en esta conversaci\xf3n. Encu\xe9ntrala en Ajustes → Sesiones.","colony.removedAgent":"agente eliminado","colony.joined":"{name} se uni\xf3 a {colony}","colony.left":"{name} sali\xf3 de su colonia","colony.moveFailed":"No se pudo mover al agente","colony.page.subtitle":"Todos los agentes que ejecutas, agrupados en colonias y conectados a los orquestadores que los dirigen.","stat.agents_one":"agente","stat.agents_other":"agentes","stat.colonies_one":"colonia","stat.colonies_other":"colonias","stat.orchestrators_one":"orquestador","stat.orchestrators_other":"orquestadores","stat.working":"trabajando ahora","stat.tasks":"tareas en curso","colony.empty.title":"Tu colonia est\xe1 vac\xeda","colony.empty.body":"Crea una colonia para agrupar agentes que comparten carpeta y reglas, y luego a\xf1ade un orquestador y algunos workers.","colony.empty.createColony":"Crear una colonia","colony.empty.createAgent":"Crear un agente","colony.editHover":"Editar colonia \xb7 {path}","colony.editHoverShort":"Editar colonia","colony.agentCount_one":"{count} agente","colony.agentCount_other":"{count} agentes","colony.addTo":"A\xf1adir agente a {name}","colony.addAgent":"A\xf1adir agente","colony.delegatesTo_one":"Delega a {count}","colony.delegatesTo_other":"Delega a {count}","colony.connectedTo":"Conectado a {names}","colony.settingsFor":"Ajustes de {name}","colony.agentSettings":"Ajustes del agente","colony.folder":"Carpeta","colony.fromColony":"de la colonia","colony.session":"Sesi\xf3n","colony.noSession":"a\xfan no hay","colony.noWorkers":"Sin workers conectados","colony.openChat":"Abrir chat","colony.howTitle":"C\xf3mo leer esto","colony.howBody":"Cada \xe1rea con contorno es una colonia. Selecciona una celda para inspeccionar a un agente. Las l\xedneas y etiquetas color miel conectan a un orquestador (↓ n\xfamero de workers) con los workers a los que puede delegar (↑ su nombre), solo los conectados directamente. Pasa el mouse sobre un agente para resaltar sus conexiones; una l\xednea en movimiento indica que hay una tarea en curso.","colony.helpLabel":"Ayuda: c\xf3mo leer este mapa","colony.recent":"Delegaciones recientes","colony.recentEmpty":"Cuando un orquestador le pasa una tarea a un worker, aparece aqu\xed.","agents.subtitle":"Cada agente es un puntero a una sesi\xf3n nativa del CLI. Cierra el navegador o pierde la luz: al reabrir un agente se reanuda su conversaci\xf3n real.","agents.searchPlaceholder":"Busca por nombre, descripci\xf3n o carpeta","agents.searchLabel":"Buscar agentes","agents.filter.orchestrators":"Orquestadores","agents.filter.workers":"Workers","agents.filter.anyProvider":"Cualquier proveedor","agents.empty.title":"A\xfan no hay agentes","agents.empty.body":"Elige un tipo para empezar r\xe1pido o configura uno desde cero.","agents.noMatch.title":"Nada coincide","agents.noMatch.body":"Prueba otra b\xfasqueda o limpia los filtros.","agents.col.agent":"Agente","agents.col.providerModel":"Proveedor \xb7 modelo","agents.col.status":"Estado","agents.col.updated":"Actualizado","agents.orchestratorLine_one":"Orquestador \xb7 {count} worker","agents.orchestratorLine_other":"Orquestador \xb7 {count} workers","agents.colonyWord":"colonia","agent.missing.title":"Ese agente no existe","agent.missing.body":"Puede que haya sido eliminado.","agent.missing.back":"Volver a agentes","agent.resumed":"Conversaci\xf3n reanudada","agent.backToColony":"Volver a la colonia","agent.makeCurrent":"Hacer actual esta conversaci\xf3n","agent.backToCurrent":"Volver a la actual","agent.newConversation":"Nueva conversaci\xf3n","agent.settings":"Ajustes","agent.unsaved":"Cambios sin guardar","agent.tab.config":"Configuraci\xf3n","agent.delete":"Eliminar agente","agent.unsavedChanges":"Tienes cambios sin guardar.","agent.allSaved":"Todos los cambios guardados.","agent.appliesNextTurn":"Aplican desde el siguiente turno.","agent.sessions.intro":"Sesiones nativas en {path}. Leer una nunca modifica al agente.","agent.sessions.conversations":"Conversaciones","agent.sessions.empty":"A\xfan no hay conversaciones. El primer mensaje crea una.","agent.sessions.started":"Iniciada {started} \xb7 \xfaltimo uso {last}","agent.sessions.viewing":"Viendo","agent.sessions.read":"Leer transcripci\xf3n","agent.sessions.resume":"Reanudar esta","agent.sessions.delegated":"Tareas delegadas","agent.sessions.from":"De {name}","agent.deleteTitle":"\xbfEliminar a {name}?","agent.deleteBody":"Se eliminan el agente y sus conexiones. Los archivos de sus sesiones nativas permanecen en disco, intactos.","agent.keep":"Conservar agente","agent.deleted":"Agente eliminado","agent.newConvTitle":"\xbfEmpezar una nueva conversaci\xf3n?","agent.newConvBody":"El agente empieza con una sesi\xf3n nueva. La actual queda en su pesta\xf1a Sesiones y se puede reanudar en cualquier momento.","agent.newConvStarted":"Nueva conversaci\xf3n iniciada","agent.newConvStart":"Empezar nueva conversaci\xf3n","sessions.current":"Actual","types.err.name":"Ponle un nombre al tipo.","types.updated":"Tipo actualizado","types.created":"Tipo creado","types.deleted":"Tipo eliminado","types.subtitle":"Plantillas reutilizables: proveedor, modelo, prompt, permisos y skills. Crea un agente desde un tipo en dos clics.","types.new":"Nuevo tipo","types.empty.title":"A\xfan no hay tipos","types.empty.body":"Define una vez un “Reviewer” o un “Builder” y crea desde \xe9l tantos agentes como necesites.","types.empty.create":"Crear un tipo","types.noDescription":"Sin descripci\xf3n.","types.defaultModel":"modelo predeterminado","types.skillsCount_one":"{count} skill","types.skillsCount_other":"{count} skills","types.usedBy_one":"{count} agente lo usa","types.usedBy_other":"{count} agentes lo usan","types.editTitle":"Editar {name}","types.typeWord":"tipo","types.newTitle":"Nuevo tipo de agente","types.drawerSubtitle":"Los agentes creados desde este tipo empiezan con estos valores. Los agentes existentes no cambian.","types.save":"Guardar tipo","types.create":"Crear tipo","types.name.placeholder":"p. ej. Reviewer","types.description":"Descripci\xf3n","types.description.hint":"Se muestra al elegir un tipo.","types.chars_one":"{n} car\xe1cter","types.chars_other":"{n} caracteres","types.deleteTitle":"\xbfEliminar {name}?","types.deleteBody":"Los agentes ya creados desde \xe9l conservan su configuraci\xf3n y solo pierden el v\xednculo.","types.keep":"Conservar tipo","types.delete":"Eliminar tipo","skills.err.name":"Ponle un nombre a la skill.","skills.created":"Skill creada","skills.saved":"Skill guardada","skills.deleted":"Skill eliminada","skills.subtitle":"Instrucciones en markdown que asocias a agentes o tipos. Se a\xf1aden al system prompt, as\xed que escr\xedbelas como gu\xeda que el agente sigue.","skills.new":"Nueva skill","skills.empty.title":"A\xfan no hay skills","skills.empty.body":"Una skill es un bloque reutilizable de instrucciones: una lista de revisi\xf3n, un estilo de commits, c\xf3mo correr tus pruebas.","skills.empty.create":"Escribe la primera skill","skills.search":"Buscar skills","skills.unsaved":"Sin guardar","skills.nAgents_one":"{count} agente","skills.nAgents_other":"{count} agentes","skills.nTypes_one":"{count} tipo","skills.nTypes_other":"{count} tipos","skills.noMatch":"Ninguna skill coincide con “{query}”.","skills.name.placeholder":"p. ej. conventional-commits","skills.description.hint":"Una l\xednea, se muestra en los selectores.","skills.instructions":"Instrucciones","skills.preview":"Vista previa","skills.content.placeholder":"Al escribir commits:\n- Usa el modo imperativo\n- Mant\xe9n el asunto en menos de 72 caracteres","skills.previewEmpty":"*A\xfan no hay nada que previsualizar.*","skills.create":"Crear skill","skills.save":"Guardar skill","skills.deleteTitle":"\xbfEliminar {name}?","skills.deleteBody":"Se desvincular\xe1 de {agents} y {types}.","skills.keep":"Conservar skill","skills.delete":"Eliminar skill","sessions.subtitle":"Todas las conversaciones que han tenido tus agentes, le\xeddas directamente de Claude Code, OpenCode y Kiro. No se muestran otras sesiones de esta m\xe1quina.","sessions.searchPlaceholder":"Busca por agente, carpeta o primer mensaje","sessions.searchLabel":"Buscar sesiones","sessions.empty.title":"A\xfan no hay sesiones","sessions.empty.body":"Env\xeda un mensaje a cualquier agente y su sesi\xf3n aparecer\xe1 aqu\xed.","sessions.empty.go":"Ir a agentes","sessions.reading":"Leyendo sesiones…","sessions.delegatedBy":"Delegada por {name}","sessions.emptySession":"Sesi\xf3n vac\xeda","sessions.messages_one":"{count} mensaje","sessions.messages_other":"{count} mensajes","sessions.noMatch":"Ninguna sesi\xf3n coincide.","sessions.select":"Selecciona una sesi\xf3n para leer su transcripci\xf3n.","sessions.openAgent":"Abrir agente","sessions.loading":"Cargando transcripci\xf3n…","sessions.noMessages":"El CLI no tiene mensajes legibles para esta sesi\xf3n.","rel.updateFailed":"No se pudo actualizar la conexi\xf3n","rel.disconnected":"{worker} desconectado de {orchestrator}","rel.connected":"{worker} conectado a {orchestrator}","rel.disconnectLabel":"Desconectar a {worker} de {orchestrator}","rel.layoutReset":"Disposici\xf3n restablecida","rel.hud":"Qui\xe9n puede delegar a qui\xe9n. Cada orquestador tiene su propio color de l\xednea. Pasa el mouse o selecciona un agente para ver sus conexiones; haz clic en la ✕ de una l\xednea para quitarla, o arrastra desde el punto inferior de un orquestador hasta un worker para a\xf1adir una.","rel.autoArrange":"Reordenar","rel.empty.title":"A\xfan no hay nada que conectar","rel.empty.body":"Crea primero al menos un orquestador y un worker.","rel.delegatesTo":"Delega a \xb7 {count}","rel.noWorkers":"A\xfan no hay workers.","rel.disconnect":"Desconectar","rel.connectWorker":"Conectar un worker…","rel.directedBy":"Dirigido por","rel.noOrchestrators":"Ning\xfan orquestador puede delegar a este worker.","rel.connectOrchestrator":"Conectar a un orquestador…","git.tab.chat":"Chat","git.tab.changes":"Cambios","git.tab.label":"Vista","git.loading":"Leyendo el repositorio…","git.error.title":"No se pudo leer el repositorio","git.refresh":"Actualizar","git.notRepo.title":"Esta carpeta no es un repositorio git","git.notRepo.body":"Ejecuta git init en {path} para ver aqu\xed los cambios de archivos.","git.noGit.title":"git no est\xe1 disponible","git.noGit.body":"Instala git y aseg\xfarate de que est\xe9 en el PATH del servidor de hive-am.","git.detached":"desacoplado en","git.noCommitsBranch":"sin commits a\xfan","git.noCommits":"A\xfan no hay commits","git.upstream":"Commits adelante ↑ / atr\xe1s ↓ de la rama remota","git.clean":"Sin cambios: el \xe1rbol de trabajo est\xe1 limpio.","git.summary_one":"{count} archivo cambiado","git.summary_other":"{count} archivos cambiados","git.updated":"Actualizado {time}","git.scope":"Mostrando solo {path}/, la carpeta en la que trabaja este agente.","git.filesLabel":"Archivos","git.filterPlaceholder":"Filtrar archivos…","git.filter.all":"Todos","git.filter.changed":"Con cambios","git.noMatch":"Ning\xfan archivo coincide con “{query}”.","git.noFiles":"No hay archivos aqu\xed.","git.rowsCapped":"Se muestran las primeras {count} filas. Afina el filtro para ver m\xe1s.","git.treeTruncated":"Esta carpeta es grande: solo se listan los primeros {count} archivos.","git.dirChanged_one":"{count} archivo con cambios dentro","git.dirChanged_other":"{count} archivos con cambios dentro","git.status.modified":"Modificado","git.status.added":"A\xf1adido","git.status.deleted":"Eliminado","git.status.renamed":"Renombrado","git.status.untracked":"Sin seguimiento","git.status.conflict":"Conflicto","git.status.typechange":"Tipo cambiado","git.staged":"En stage","git.unstaged":"Sin stage","git.select":"Selecciona un archivo para previsualizarlo.","git.view.diff":"Diferencias","git.view.file":"Archivo","git.view.preview":"Vista previa","git.view.source":"Archivo","git.layout.unified":"Unificada","git.layout.split":"Lado a lado","git.copyPath":"Copiar ruta","git.renamedFrom":"Renombrado desde {path}","git.diff.binary":"Archivo binario: no hay diferencias de texto que mostrar.","git.diff.empty":"Sin diferencias de texto (por ejemplo, solo cambi\xf3 el modo del archivo).","git.diff.truncated":"La diferencia era demasiado grande y se muestra solo en parte.","git.file.binary":"Archivo binario: no se puede previsualizar.","git.file.empty":"Archivo vac\xedo.","git.file.deleted":"Eliminado del \xe1rbol de trabajo: se muestra la versi\xf3n del \xfaltimo commit.","git.file.truncated":"Archivo grande: se muestra solo la primera parte.","git.loadError":"No se pudo cargar la vista previa.","git.info.toggle":"Mostrar detalles de la rama y del \xfaltimo commit","git.info.branch":"Rama","git.info.upstreamLabel":"Rama remota","git.info.noUpstream":"Sin rama remota configurada","git.info.inSync":"Al d\xeda con la rama remota","git.info.upstreamStatus":"{ahead} por delante \xb7 {behind} por detr\xe1s de la rama remota","git.info.commit":"\xdaltimo commit","git.info.message":"Mensaje","git.info.author":"Autor","git.info.when":"Cu\xe1ndo","git.info.copyBranch":"Copiar nombre de la rama","git.info.copySha":"Copiar hash del commit","server.invalidPath":"Ruta no v\xe1lida","server.pathOutside":"La ruta est\xe1 fuera de la carpeta del agente","server.fileNotFound":"Archivo no encontrado","server.notFile":"No es un archivo","server.notImage":"No es una imagen","server.imageTooLarge":"La imagen es demasiado grande para previsualizarla","server.pathRequired":"Se requiere path","hover.noOrchestrator":"Sin orquestador","hover.more_one":"+{count} m\xe1s","hover.more_other":"+{count} m\xe1s","md.toolbar":"Formato","md.heading":"T\xedtulo","md.bold":"Negrita","md.boldPh":"texto en negrita","md.italic":"Cursiva","md.italicPh":"texto en cursiva","md.code":"C\xf3digo en l\xednea","md.codeBlock":"Bloque de c\xf3digo","md.bullets":"Lista con vi\xf1etas","md.numbered":"Lista numerada","md.quote":"Cita","md.link":"Enlace","md.linkPh":"texto del enlace","md.rule":"Separador","md.view.write":"Escribir","md.view.split":"Dividido","md.view.preview":"Vista previa","md.stats":"{words} palabras \xb7 {chars} caracteres","md.tips":"Tab sangra \xb7 Enter contin\xfaa listas \xb7 Ctrl+B / I / K","git.act.group":"Acciones de git","git.act.fetch":"Fetch","git.act.fetch.hint":"Consulta el remoto en busca de commits nuevos sin cambiar tus archivos","git.act.pull":"Pull","git.act.pull.hint":"Trae los commits nuevos del remoto (solo avance r\xe1pido)","git.act.push":"Push","git.act.push.hint":"Env\xeda tus commits al remoto","git.act.commit":"Commit","git.act.branches":"Ramas","git.done.fetch":"Fetch listo","git.done.pull":"Pull listo","git.done.push":"Push listo","git.done.commit":"Commit creado","git.done.switch":"Ahora en {branch}","git.done.merge":"{branch} fusionada","git.done.mergeAbort":"Fusi\xf3n cancelada","git.notice.failed":"{action}: fall\xf3","git.notice.diverged":"Las ramas divergieron. Elige c\xf3mo combinarlas:","git.pull.merge":"Pull con merge","git.pull.rebase":"Pull con rebase","git.warn.running":"{name} est\xe1 trabajando: hacer commit, pull o cambiar de rama ahora puede chocar con sus ediciones.","git.br.search":"Buscar rama","git.br.new":"Nueva rama desde {branch}","git.br.newPlaceholder":"nombre-de-la-rama","git.br.create":"Crear","git.br.local":"Locales","git.br.remote":"Remotas","git.br.merge":"Fusionar en {branch}","git.br.mergeAsk":"\xbfFusionar {from} en {into}?","git.br.mergeGo":"Fusionar","git.br.none":"Ninguna rama coincide","git.br.switchTo":"Cambiar a {branch}","git.commit.title":"Hacer commit","git.commit.selected":"{n} de {total} seleccionados","git.commit.all":"Todos","git.commit.none":"Ninguno","git.commit.message":"Mensaje","git.commit.placeholder":"Resume qu\xe9 cambi\xf3 y por qu\xe9","git.commit.go":"Commit","git.commit.goPush":"Commit y push","git.commit.committing":"Haciendo commit…","git.commit.hint":"Solo se hace commit de los archivos seleccionados. Ctrl+Enter para confirmar.","git.commit.nothing":"No hay nada para commit","git.tab.files":"Archivos","git.tab.history":"Historial","git.hist.empty":"A\xfan no hay commits","git.hist.more":"Cargar m\xe1s","git.hist.merge":"merge","git.hist.select":"Elige un commit para ver qu\xe9 cambi\xf3","git.hist.files_one":"{count} archivo cambiado","git.hist.files_other":"{count} archivos cambiados","git.hist.noFiles":"Sin cambios de archivos (commit vac\xedo o de merge)","git.res.done":"Marcado como resuelto","git.res.restored":"Conflicto restaurado","git.res.left_one":"Queda {count} conflicto","git.res.left_other":"Quedan {count} conflictos","git.res.none":"Sin marcadores de conflicto","git.res.allMine":"Todo lo m\xedo","git.res.allMine.hint":"Se queda con tu lado de todo el archivo y lo marca como resuelto","git.res.allRemote":"Todo lo del remoto","git.res.allRemote.hint":"Se queda con el lado entrante de todo el archivo y lo marca como resuelto","git.res.noEdit":'Este archivo es binario o muy grande para resolverlo aqu\xed. Usa "Todo lo m\xedo" o "Todo lo del remoto".',"git.res.block":"Conflicto {n} de {total}","git.res.line":"l\xednea {n}","git.res.mine":"M\xedo (rama actual)","git.res.remote":"Remoto (lo que entra)","git.res.empty":"(nada)","git.res.keepMine":"Quedarme con lo m\xedo","git.res.keepRemote":"Quedarme con el remoto","git.res.both":"Quedarme con ambos","git.res.bothMine":"M\xedo primero","git.res.bothRemote":"Remoto primero","git.res.result":"Resultado","git.res.editHint":"Puedes editarlo libremente antes de guardar","git.res.restore":"Restaurar conflicto","git.res.restore.hint":"Descarta tus elecciones y vuelve a poner los marcadores del conflicto","git.res.markResolved":"Marcar como resuelto","git.state.merge":"Fusi\xf3n en curso","git.state.rebase":"Rebase en curso","git.state.conflicts_one":"{count} archivo con conflictos","git.state.conflicts_other":"{count} archivos con conflictos","git.state.ready":"Todos los conflictos est\xe1n resueltos.","git.state.finishMerge":"Concluir fusi\xf3n (commit)","git.state.continueRebase":"Continuar rebase","git.state.abortMerge":"Cancelar fusi\xf3n","git.state.abortRebase":"Cancelar rebase","git.done.rebaseContinue":"Rebase continuado","git.set.title":"Ajustes de la vista de c\xf3digo","git.set.theme":"Tema","git.set.themeApp":"Hive (app)","git.set.whitespace":"Mostrar espacios en blanco","git.set.whitespace.hint":"Espacios como \xb7 y tabuladores como →, en el visor, los diffs y el editor","git.set.tab":"Ancho del tabulador","git.set.note":"Se guarda solo en este navegador.","git.blame":"Blame","git.blame.hint":"Muestra qui\xe9n cambi\xf3 cada l\xednea por \xfaltima vez","git.blame.uncommitted":"Sin commit","git.blame.truncated":"El blame muestra solo las primeras {count} l\xedneas.","git.discard":"Descartar","git.discard.hint":"Descarta los cambios de este archivo","git.discard.hunk":"Descartar bloque","git.discard.hunk.hint":"Descarta solo este bloque de cambios","git.discard.all":"Descartar todos los cambios","git.discard.all.blocked":"Primero termina o cancela la fusi\xf3n/rebase","git.done.discard":"Cambios descartados","git.discard.confirm.title":"\xbfEliminar archivos por completo?","git.discard.confirm.body_one":"Este archivo es nuevo (no est\xe1 en ning\xfan commit), as\xed que descartarlo lo elimina por completo. No se puede recuperar.","git.discard.confirm.body_other":"Estos {count} archivos son nuevos (no est\xe1n en ning\xfan commit), as\xed que descartarlos los elimina por completo. No se pueden recuperar.","git.discard.confirm.go":"Eliminar archivos","git.discard.lines":"Elegir l\xedneas","git.discard.lines.hint":"Elige l\xedneas agregadas/quitadas de este bloque para descartarlas","git.discard.lines.all":"Todas","git.discard.lines.go_one":"Descartar {count} l\xednea","git.discard.lines.go_other":"Descartar {count} l\xedneas","git.discard.lines.pick":"Incluir esta l\xednea","git.discard.all.title":"\xbfDescartar todos los cambios?","git.discard.all.restore_one":"{count} archivo con cambios vuelve al \xfaltimo commit.","git.discard.all.restore_other":"{count} archivos con cambios vuelven al \xfaltimo commit.","git.discard.all.delete_one":"{count} archivo nuevo (no est\xe1 en ning\xfan commit) se ELIMINAR\xc1 por completo:","git.discard.all.delete_other":"{count} archivos nuevos (no est\xe1n en ning\xfan commit) se ELIMINAR\xc1N por completo:","git.discard.all.lines":"En total: +{add} −{del} l\xedneas de cambios.","git.discard.all.warn":"Todo esto se pierde de forma definitiva. No se puede deshacer.","git.discard.all.go":"Descartar todos los cambios","git.discard.file.title":"\xbfDescartar los cambios de este archivo?","git.discard.file.modified":"El archivo vuelve a como est\xe1 en el \xfaltimo commit{lines}.","git.discard.file.deleted":"El archivo borrado se restaurar\xe1 desde el \xfaltimo commit.","git.discard.file.renamed":"Se deshace el renombrado: el archivo vuelve a su nombre original, {from}.","git.discard.file.go":"Descartar cambios del archivo","git.pending.conflicts":"resuelve los conflictos","git.tab.stashes":"Stashes","git.stash.save":"Guardar cambios en un stash","git.stash.nothing":"No hay cambios que guardar","git.stash.empty":"No hay stashes. Un stash guarda cambios que apartas para recuperarlos despu\xe9s.","git.stash.smart":"cambio inteligente","git.stash.saved":"Cambios guardados","git.stash.save.body":"Tus cambios sin commit (incluidos los archivos nuevos) se apartan y el \xe1rbol de trabajo vuelve al \xfaltimo commit.","git.stash.save.placeholder":"Mensaje (opcional)","git.stash.apply":"Aplicar","git.stash.apply.hint":"Recupera los cambios y conserva el stash","git.stash.pop":"Aplicar y borrar","git.stash.pop.hint":"Recupera los cambios y borra el stash","git.stash.drop":"Borrar","git.stash.drop.title":"\xbfBorrar este stash?","git.stash.drop.body":"Se borrar\xe1n los cambios guardados en \xab{name}\xbb.","git.stash.applied":"Stash aplicado","git.stash.popped":"Stash aplicado y borrado","git.stash.dropped":"Stash borrado","git.sw.title":"\xbfCambiar a {branch}?","git.sw.carried_one":"{count} cambio sin commit viaja contigo desde {from}.","git.sw.carried_other":"{count} cambios sin commit viajan contigo desde {from}.","git.sw.others_one":"{names} est\xe1 trabajando ahora mismo en este repositorio: cambiar de rama modifica los archivos que est\xe1 editando.","git.sw.others_other":"{names} est\xe1n trabajando ahora mismo en este repositorio: cambiar de rama modifica los archivos que est\xe1n editando.","git.sw.anyway":"Cambiar de todos modos","git.done.switchCarried":"Ahora en {branch}; {count} cambios vinieron contigo","git.state.stash":"Cambio inteligente en curso","git.state.stash.hint":"{from} → {to}: se est\xe1n recuperando tus cambios","git.state.finishStash":"Terminar","git.state.cancelStash":"Cancelar cambio inteligente","git.done.smartFinish":"Cambio terminado","git.done.smartCancel":"Cambio cancelado","git.state.cancelStash.title":"\xbfCancelar el cambio inteligente?","git.state.cancelStash.body":"Vuelves a {from} y tus cambios regresan exactamente como estaban. Lo que editaste al resolver conflictos se pierde.","git.state.cancelStash.go":"Cancelar cambio","git.res.mine.stash":"M\xedo (tus cambios guardados)","git.res.remote.stash":"Rama destino","git.sw.kept_one":"{names} ya exist\xeda all\xed: se qued\xf3 tu versi\xf3n (aparece como un cambio)","git.sw.kept_other":"{names} ya exist\xedan all\xed: se quedaron tus versiones (aparecen como cambios)","git.peek.title":"Bloque de cambios","git.peek.hint":"Clic para ver este cambio","git.peek.lines":"Bloque de cambios \xb7 l\xedneas {from}–{to}","git.peek.line":"Bloque de cambios \xb7 l\xednea {n}","git.peek.prev":"Cambio anterior","git.peek.next":"Siguiente cambio","git.peek.count":"{n} de {total}","git.set.ignored":"Mostrar archivos ignorados","git.set.ignored.hint":"Lo que oculta .gitignore (node_modules, build, .env…) aparece atenuado; las carpetas se abren un nivel a la vez","git.ignored.hint":"Ignorado por git","git.ignored.chip":"Ignorado"}},r="en",l=e=>{r=e},c=()=>"es"===r?"es-MX":"en-US",d=()=>"es"===r?"es-MX":"en-GB";function h(e,t){var o,a,s;let l,d=i[r];if(t&&"number"==typeof t.count){let n="one"===new Intl.PluralRules(c()).select(t.count)?"one":"other";l=null!=(o=d["".concat(e,"_").concat(n)])?o:d["".concat(e,"_other")]}return null!=l||(l=null!=(s=null!=(a=d[e])?a:n[e])?s:e),t?l.replace(/\{(\w+)\}/g,(e,o)=>o in t?String(t[o]):e):l}function m(){var e;try{let e=localStorage.getItem(s);if("en"===e||"es"===e)return e}catch(e){}return"undefined"!=typeof navigator&&(null==(e=navigator.language)?void 0:e.toLowerCase().startsWith("es"))?"es":"en"}let u=[[/^Request body is not valid JSON$/,"server.invalidJson"],[/^Name is required$/,"server.nameRequired"],[/^Unknown provider "(.+)"$/,"server.unknownProvider",["name"]],[/^Unknown provider$/,"server.unknownProviderShort"],[/^Pick a provider$/,"server.pickProvider"],[/^Role must be orchestrator or worker$/,"server.badRole"],[/^Folder does not exist: (.+)$/,"server.folderMissing",["path"]],[/^Not a folder$/,"server.notFolder"],[/^That colony no longer exists$/,"server.colonyGone"],[/^An agent named "(.+)" already exists$/,"server.agentExists",["name"]],[/^A skill named "(.+)" already exists$/,"server.skillExists",["name"]],[/^A type named "(.+)" already exists$/,"server.typeExists",["name"]],[/^A colony named "(.+)" already exists$/,"server.colonyExists",["name"]],[/^Choose a working folder, or put the agent in a colony that provides one\.$/,"server.needFolderOrColony"],[/^Choose a working folder, or keep inheriting the colony’s folder\.$/,"server.needFolderOrInherit"],[/^Agent not found$/,"server.agentNotFound"],[/^Skill not found$/,"server.skillNotFound"],[/^Type not found$/,"server.typeNotFound"],[/^Colony not found$/,"server.colonyNotFound"],[/^Message is empty$/,"server.messageEmpty"],[/^Only the agent’s own conversations can be made current\. Delegated sessions are read-only\.$/,"server.onlyOwnSessions"],[/^That session does not belong to this agent$/,"server.sessionNotOwned"],[/^Only orchestrators can have subagents$/,"server.onlyOrchestrators"],[/^from, agent and task are required$/,"server.dispatchFields"],[/^Unknown orchestrator$/,"server.unknownOrchestrator"],[/^No agent named "(.+)"$/,"server.noAgentNamed",["name"]],[/^"(.+)" is not assigned to (.+)$/,"server.notAssigned",["worker","orchestrator"]],[/^Unexpected server error$/,"server.unexpected"],[/^No such route$/,"server.noRoute"],[/^Not found$/,"server.notFound"],[/^This agent has no working folder\. Set one on the agent or on its colony\.$/,"server.noWorkingFolder"],[/^Agent no longer exists$/,"server.agentGone"],[/^Request failed \((\d+)\)$/,"server.requestFailed",["status"]],[/^Invalid path$/,"server.invalidPath"],[/^Path is outside the agent’s folder$/,"server.pathOutside"],[/^File not found$/,"server.fileNotFound"],[/^Not a file$/,"server.notFile"],[/^Not an image$/,"server.notImage"],[/^Image is too large to preview$/,"server.imageTooLarge"],[/^path is required$/,"server.pathRequired"]];function g(e){for(let[t,o,n]of u){let a=t.exec(e);if(!a)continue;let s={};return(null!=n?n:[]).forEach((e,t)=>{s[String(e)]=a[t+1]}),h(o,s)}return e}},8538:(e,t,o)=>{o.d(t,{Of:()=>d,o0:()=>c});var n=o(4799),a=o(4023),s=o(3749),i=o(1636);function r(e,t){var o,n,a,s,i,r,l,c,d,h,m,u,g,p,y,v;switch(t.k){case"data":return{...e,...t.p};case"conn":return{...e,connected:t.v};case"turn_start":return{...e,live:{...e.live,[t.agentId]:{turnId:t.turnId,prompt:t.prompt,source:t.source,from:t.from,blocks:[],startedAt:Date.now()}}};case"event":{let v=e.live[t.agentId];if(!v||v.turnId!==t.turnId)return e;let k={...v,blocks:function(e,t){let o=e.slice(),n=o[o.length-1];if("text"===t.t||"thinking"===t.t){let e="text"===t.t?"text":"thinking";n&&n.type===e?o[o.length-1]={...n,text:n.text+t.delta}:o.push({type:e,text:t.delta})}else if("tool"===t.t)o.push({type:"tool",id:t.id,name:t.name,input:t.input,startedAt:Date.now()});else if("tool_result"===t.t){let e=o.findIndex(e=>"tool"===e.type&&e.id===t.id);if(e>=0){let n=o[e];o[e]={...n,output:t.output,error:t.error,durationMs:n.startedAt?Date.now()-n.startedAt:void 0}}}return o}(v.blocks,t.ev)};if("error"===t.ev.t&&(k.error=t.ev.message),"usage"===t.ev.t){let e=t.ev.usage,v=null!=(o=k.usage)?o:{};k.usage={input:(null!=(n=v.input)?n:0)+(null!=(a=e.input)?a:0),output:(null!=(s=v.output)?s:0)+(null!=(i=e.output)?i:0),cacheRead:(null!=(r=v.cacheRead)?r:0)+(null!=(l=e.cacheRead)?l:0),cacheWrite:(null!=(c=v.cacheWrite)?c:0)+(null!=(d=e.cacheWrite)?d:0),reasoning:(null!=(h=v.reasoning)?h:0)+(null!=(m=e.reasoning)?m:0),credits:null!=(u=e.credits)?u:v.credits,contextPct:null!=(g=e.contextPct)?g:v.contextPct},k.cost=null!=(p=t.ev.cost)?p:k.cost,k.model=null!=(y=t.ev.model)?y:k.model}return{...e,live:{...e.live,[t.agentId]:k}}}case"status":{let o=e.agents.map(e=>e.id===t.agentId?{...e,status:t.status,queued:t.queued}:e);if("running"===t.status)return{...e,agents:o};let n={...e.live},a=!!n[t.agentId];return"error"!==t.status&&delete n[t.agentId],{...e,agents:o,live:n,finished:a?{...e.finished,[t.agentId]:(null!=(v=e.finished[t.agentId])?v:0)+1}:e.finished}}}}let l=(0,a.createContext)(null),c=()=>{let e=(0,a.useContext)(l);if(!e)throw Error("HiveProvider missing");return e};function d(e){let{children:t}=e,[o,c]=(0,a.useReducer)(r,{ready:!1,connected:!1,agents:[],types:[],skills:[],colonies:[],connections:[],providers:[],live:{},finished:{}}),d=(0,a.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["agents","types","skills","colonies","connections"],t={};await Promise.all(e.map(async e=>{"agents"===e&&(t.agents=await s.F.get("/agents")),"types"===e&&(t.types=await s.F.get("/types")),"skills"===e&&(t.skills=await s.F.get("/skills")),"colonies"===e&&(t.colonies=await s.F.get("/colonies")),"connections"===e&&(t.connections=await s.F.get("/connections"))})).catch(()=>void 0),c({k:"data",p:t})},[]);(0,a.useEffect)(()=>{d().then(()=>c({k:"data",p:{ready:!0}})),s.F.get("/providers").then(e=>c({k:"data",p:{providers:e}})).catch(()=>void 0)},[d]);let h=(0,a.useRef)(0);(0,a.useEffect)(()=>{let e,t=null,o=!1,n=()=>{var a;(t=new WebSocket("ws://".concat(location.hostname,":").concat(null!=(a=i.env.NEXT_PUBLIC_HIVE_WS_PORT)?a:4400,"/ws"))).onopen=()=>{h.current=0,c({k:"conn",v:!0}),d(["agents"]),s.F.get("/agents").then(e=>e.filter(e=>e.live).forEach(e=>s.F.get("/agents/".concat(e.id,"/live")).then(t=>{t&&(c({k:"turn_start",agentId:e.id,turnId:t.turnId,prompt:t.prompt,source:t.source}),t.events.forEach(o=>c({k:"event",agentId:e.id,turnId:t.turnId,ev:o})))}))).catch(()=>void 0)},t.onmessage=e=>{let t=JSON.parse(e.data);"agents_changed"===t.kind?d(["agents","colonies","connections"]):"turn_start"===t.kind?c({k:"turn_start",agentId:t.agentId,turnId:t.turnId,prompt:t.prompt,source:t.source,from:t.from}):"event"===t.kind?c({k:"event",agentId:t.agentId,turnId:t.turnId,ev:t.event}):"status"===t.kind&&c({k:"status",agentId:t.agentId,status:"queued"===t.status?"running":t.status,queued:t.queued})},t.onclose=()=>{c({k:"conn",v:!1}),o||(e=setTimeout(n,Math.min(8e3,800*2**h.current++)))}};return n(),()=>{o=!0,clearTimeout(e),null==t||t.close()}},[d]);let m=(0,a.useMemo)(()=>({...o,refresh:d,agent:e=>o.agents.find(t=>t.id===e),clearLive:e=>c({k:"status",agentId:e,status:"idle",queued:0})}),[o,d]);return(0,n.jsx)(l.Provider,{value:m,children:t})}},9654:(e,t,o)=>{o.d(t,{CY:()=>r,Tl:()=>s.Tl,VR:()=>s.VR,YF:()=>s.YF,YZ:()=>s.YZ,s9:()=>l});var n=o(4799),a=o(4023),s=o(8419);let i=(0,a.createContext)(null);function r(e){let{children:t}=e,[o,r]=(0,a.useState)("en");(0,s.Au)(o),(0,a.useEffect)(()=>{let e=(0,s.ED)();(0,s.Au)(e),r(e),document.documentElement.lang=e},[]);let l=(0,a.useCallback)(e=>{(0,s.Au)(e),r(e),document.documentElement.lang=e;try{localStorage.setItem(s.Nf,e)}catch(e){}},[]),c=(0,a.useMemo)(()=>({locale:o,setLocale:l,t:s.Tl}),[o,l]);return(0,n.jsx)(i.Provider,{value:c,children:t})}function l(){let e=(0,a.useContext)(i);if(!e)throw Error("I18nProvider missing");return e}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[517],{1517:(e,l,n)=>{n.d(l,{b:()=>p});var s=n(4799),i=n(4023),t=n(3624),r=n(632),o=n(5300),a=n(8538),d=n(3749),c=n(7890),m=n(9654);function p(e){var l,n;let{onClose:p,onCreated:h,presetTypeId:u,presetColonyId:v}=e,{t:x}=(0,m.s9)(),{types:f,agents:g,refresh:j,colonies:y}=(0,a.o0)(),b=(0,r.dj)(),k=(0,t.useRouter)(),[w,_]=(0,i.useState)(u?"form":"type"),[N,C]=(0,i.useState)({...(0,o.WU)(f.find(e=>e.id===u)),colony_id:null!=v?v:null}),[A,S]=(0,i.useState)(!1),[D,z]=(0,i.useState)(!1),q=(0,o.tf)(N,g,void 0,y),F=async()=>{if(z(!0),!Object.keys(q).length){S(!0);try{let e=await d.F.post("/agents",N);await j(["agents","colonies"]),b(x("newAgent.created",{name:e.name})),null==h||h(e.id),p(),k.push("/agents/".concat(e.id))}catch(e){b(e instanceof Error?e.message:x("newAgent.failed"),"err"),S(!1)}}};return"type"===w?(0,s.jsx)(r._s,{title:x("newAgent.title"),subtitle:x("newAgent.pickType"),onClose:p,children:(0,s.jsxs)("div",{className:"col",style:{gap:10},children:[f.map(e=>(0,s.jsxs)("button",{className:"card card-pad row gap-l",style:{textAlign:"left"},onClick:()=>{C({...(0,o.WU)(e),colony_id:null!=v?v:null}),_("form")},children:[(0,s.jsx)(r._h,{color:c.xq[e.provider].color,queen:"orchestrator"===e.role,label:e.name.slice(0,2).toUpperCase()}),(0,s.jsxs)("div",{className:"grow",children:[(0,s.jsx)("b",{style:{fontFamily:"var(--font-display)",fontSize:16},children:e.name}),(0,s.jsx)("div",{className:"muted small",children:e.description||x("newAgent.typeFallback",{role:x("role.".concat(e.role)),provider:c.xq[e.provider].label})})]}),(0,s.jsx)("span",{className:"chip",children:c.xq[e.provider].short})]},e.id)),(0,s.jsxs)("button",{className:"card card-pad row gap-l",style:{textAlign:"left",borderStyle:"dashed"},onClick:()=>{C({...(0,o.WU)(),colony_id:null!=v?v:null}),_("form")},children:[(0,s.jsx)(r._h,{color:"var(--muted)",label:"+"}),(0,s.jsxs)("div",{className:"grow",children:[(0,s.jsx)("b",{style:{fontFamily:"var(--font-display)",fontSize:16},children:x("newAgent.blank")}),(0,s.jsx)("div",{className:"muted small",children:x("newAgent.blankHint")})]})]})]})}):(0,s.jsx)(r._s,{title:x("newAgent.title"),subtitle:N.type_id?x("newAgent.fromType",{name:null!=(n=null==(l=f.find(e=>e.id===N.type_id))?void 0:l.name)?n:""}):x("newAgent.blank"),onClose:p,footer:(0,s.jsxs)(s.Fragment,{children:[!u&&(0,s.jsx)("button",{className:"btn ghost",onClick:()=>_("type"),children:x("common.back")}),(0,s.jsx)("button",{className:"btn primary",disabled:A,onClick:F,children:A?x("newAgent.creating"):x("newAgent.create")})]}),children:(0,s.jsx)(o.SU,{draft:N,onChange:C,errors:D?q:{},focusName:!0})})}},2646:(e,l,n)=>{n.d(l,{n:()=>_});var s=n(4799),i=n(4023),t=n(6458),r=n(3983),o=n(3492),a=n(8148),d=n(9579),c=n(5838),m=n(8938),p=n(2263),h=n(555),u=n(1833),v=n(5712),x=n(1529),f=n(9654);function g(e,l,n,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:s,t=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"",r=e.slice(l,n)||t;return e.slice(l-s.length,l)===s&&e.slice(n,n+i.length)===i&&l!==n?{value:e.slice(0,l-s.length)+r+e.slice(n+i.length),start:l-s.length,end:n-s.length}:{value:e.slice(0,l)+s+r+i+e.slice(n),start:l+s.length,end:l+s.length+r.length}}function j(e,l,n,s,i){let t=e.lastIndexOf("\n",l-1)+1,r=e.indexOf("\n",n),o=-1===r?e.length:r,a=e.slice(t,o).split("\n"),d=a.every(e=>i.test(e)),c=a.map((e,l)=>d?e.replace(i,""):s(l)+e.replace(i,"")).join("\n");return{value:e.slice(0,t)+c+e.slice(o),start:t,end:t+c.length}}let y=/^\s*[-*+] (\[[ x]\] )?/,b=/^\s*\d+\. /,k=/^#{1,6} /,w=/^> ?/;function _(e){let{value:l,onChange:n,placeholder:_,defaultView:N="split",minHeight:C=340,fill:A=!1}=e,{t:S}=(0,f.s9)(),D=(0,i.useRef)(null),[z,q]=(0,i.useState)(N),F=e=>{let l=D.current;if(!l)return;let s=e(l.value,l.selectionStart,l.selectionEnd);n(s.value),requestAnimationFrame(()=>{l.focus(),l.setSelectionRange(s.start,s.end)})},E=[{id:"h",icon:(0,s.jsx)(o.A,{size:15}),label:S("md.heading"),run:()=>F((e,l,n)=>j(e,l,n,()=>"## ",k))},{id:"b",icon:(0,s.jsx)(a.A,{size:15}),label:S("md.bold"),keys:"B",run:()=>F((e,l,n)=>g(e,l,n,"**","**",S("md.boldPh")))},{id:"i",icon:(0,s.jsx)(d.A,{size:15}),label:S("md.italic"),keys:"I",run:()=>F((e,l,n)=>g(e,l,n,"*","*",S("md.italicPh")))},{id:"c",icon:(0,s.jsx)(c.A,{size:15}),label:S("md.code"),run:()=>F((e,l,n)=>g(e,l,n,"`","`","code"))},{id:"cb",icon:(0,s.jsx)(m.A,{size:15}),label:S("md.codeBlock"),run:()=>F((e,l,n)=>g(e,l,n,"\n```\n","\n```\n","code"))},{id:"ul",icon:(0,s.jsx)(p.A,{size:15}),label:S("md.bullets"),run:()=>F((e,l,n)=>j(e,l,n,()=>"- ",y))},{id:"ol",icon:(0,s.jsx)(h.A,{size:15}),label:S("md.numbered"),run:()=>F((e,l,n)=>j(e,l,n,e=>"".concat(e+1,". "),b))},{id:"q",icon:(0,s.jsx)(u.A,{size:15}),label:S("md.quote"),run:()=>F((e,l,n)=>j(e,l,n,()=>"> ",w))},{id:"l",icon:(0,s.jsx)(v.A,{size:15}),label:S("md.link"),keys:"K",run:()=>F((e,l,n)=>{let s=e.slice(l,n)||S("md.linkPh"),i="[".concat(s,"](https://)");return{value:e.slice(0,l)+i+e.slice(n),start:l+s.length+3,end:l+s.length+11}})},{id:"hr",icon:(0,s.jsx)(x.A,{size:15}),label:S("md.rule"),run:()=>F((e,l,n)=>({value:e.slice(0,l)+"\n\n---\n\n"+e.slice(n),start:l+7,end:l+7}))}],T=l.trim()?l.trim().split(/\s+/).length:0;return(0,s.jsxs)("div",{className:"mde".concat(A?" fill":""),children:[(0,s.jsxs)("div",{className:"mde-bar",role:"toolbar","aria-label":S("md.toolbar"),children:[E.map(e=>(0,s.jsx)("button",{type:"button",className:"mde-btn",title:e.keys?"".concat(e.label," (Ctrl+").concat(e.keys,")"):e.label,"aria-label":e.label,onMouseDown:e=>e.preventDefault(),onClick:e.run,disabled:"preview"===z,children:e.icon},e.id)),(0,s.jsx)("span",{className:"grow"}),(0,s.jsx)("div",{className:"mde-views",role:"group",children:["write","split","preview"].map(e=>(0,s.jsx)("button",{type:"button",className:z===e?"on":"","aria-pressed":z===e,onClick:()=>q(e),children:S("md.view.".concat(e))},e))})]}),(0,s.jsxs)("div",{className:"mde-body v-".concat(z),style:{minHeight:C},children:["preview"!==z&&(0,s.jsx)("textarea",{ref:D,className:"mde-text mono",style:{minHeight:C},value:l,onChange:e=>n(e.target.value),onKeyDown:e=>{let l=e.currentTarget;if(e.ctrlKey||e.metaKey){let l=E.find(l=>l.keys&&l.keys.toLowerCase()===e.key.toLowerCase());if(l){e.preventDefault(),l.run();return}}if("Tab"===e.key){e.preventDefault(),F((l,n,s)=>{if(n===s&&!e.shiftKey)return{value:l.slice(0,n)+" "+l.slice(s),start:n+2,end:n+2};let i=l.lastIndexOf("\n",n-1)+1,t=l.indexOf("\n",s),r=-1===t?l.length:t,o=l.slice(i,r).split("\n").map(l=>e.shiftKey?l.replace(/^ {1,2}/,""):" "+l).join("\n");return{value:l.slice(0,i)+o+l.slice(r),start:i,end:i+o.length}});return}if("Enter"===e.key&&!e.shiftKey&&l.selectionStart===l.selectionEnd){let s=l.value,i=l.selectionStart,t=s.lastIndexOf("\n",i-1)+1,r=s.slice(t,i),o=/^(\s*)([-*+] (?:\[[ x]\] )?|(\d+)\. )(.*)$/.exec(r);if(!o)return;if(e.preventDefault(),!o[4]){n(s.slice(0,t)+s.slice(i)),requestAnimationFrame(()=>l.setSelectionRange(t,t));return}let a=o[3]?"".concat(o[1]).concat(Number(o[3])+1,". "):o[1]+o[2].replace("[x]","[ ]");n(s.slice(0,i)+"\n"+a+s.slice(i)),requestAnimationFrame(()=>{let e=i+1+a.length;l.setSelectionRange(e,e)})}},placeholder:_,spellCheck:!1}),"write"!==z&&(0,s.jsx)("div",{className:"mde-prev md",children:(0,s.jsx)(t.oz,{remarkPlugins:[r.A],children:l||S("skills.previewEmpty")})})]}),(0,s.jsxs)("div",{className:"mde-foot muted",children:[S("md.stats",{words:T,chars:l.length})," \xb7 ",S("md.tips")]})]})}},5300:(e,l,n)=>{n.d(l,{SU:()=>x,TN:()=>h,WU:()=>p,tf:()=>v});var s=n(4799),i=n(4023),t=n(2646),r=n(2705),o=n(9654),a=n(6072),d=n(632),c=n(8538),m=n(7890);let p=e=>{var l,n,s,i,t,r,o,a,d;return{name:"",description:null!=(l=null==e?void 0:e.description)?l:"",role:null!=(n=null==e?void 0:e.role)?n:"worker",provider:null!=(s=null==e?void 0:e.provider)?s:"claude",model:null!=(i=null==e?void 0:e.model)?i:"",system_prompt:null!=(t=null==e?void 0:e.system_prompt)?t:"",permission:null!=(r=null==e?void 0:e.permission)?r:"acceptEdits",cwd:"",skill_ids:null!=(o=null==e?void 0:e.skill_ids)?o:[],skill_loads:null!=(a=null==e?void 0:e.skill_loads)?a:{},worker_ids:[],type_id:null!=(d=null==e?void 0:e.id)?d:null,colony_id:null,overrides:[]}},h=e=>({name:e.name,description:e.description,role:e.role,provider:e.provider,model:e.model,system_prompt:e.system_prompt,permission:e.permission,cwd:e.cwd,skill_ids:e.skill_ids,skill_loads:e.skill_loads,worker_ids:e.worker_ids,type_id:e.type_id,colony_id:e.colony_id,overrides:e.overrides}),u=(e,l,n)=>!!l&&l.inherit[n]&&!e.overrides.includes(n);function v(e,l,n){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],i={};e.name.trim()?l.some(l=>l.id!==n&&l.name.toLowerCase()===e.name.trim().toLowerCase())&&(i.name=(0,o.Tl)("form.err.nameTaken")):i.name=(0,o.Tl)("form.err.name");let t=s.find(l=>l.id===e.colony_id);return e.cwd.trim()||u(e,t,"cwd")&&(null==t?void 0:t.cwd)||(i.cwd=(0,o.Tl)("form.err.folder")),i}function x(e){var l;let{draft:n,onChange:p,errors:h,selfId:v,showType:x=!0,focusName:g=!1}=e,{t:j}=(0,o.s9)(),{skills:y,providers:b,agents:k,types:w,colonies:_,connections:N}=(0,c.o0)(),C=(0,i.useMemo)(()=>N.filter(e=>e.agent_id===v&&e.enabled),[N,v]),A=_.find(e=>e.id===n.colony_id),S=e=>u(n,A,e),D=(e,l)=>p({...n,overrides:l?n.overrides.filter(l=>l!==e):[...new Set([...n.overrides,e])]}),z=(e,l)=>p({...n,[e]:l}),q=(0,i.useMemo)(()=>k.filter(e=>e.id!==v&&"worker"===e.role),[k,v]),F=w.find(e=>e.id===n.type_id);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(d.D0,{label:j("form.name"),error:h.name,hint:j("form.name.hint"),children:(0,s.jsx)("input",{className:"input",value:n.name,onChange:e=>z("name",e.target.value),placeholder:j("form.name.placeholder"),autoFocus:g})}),(0,s.jsx)(d.D0,{label:j("form.purpose"),hint:j("form.purpose.hint"),children:(0,s.jsx)("input",{className:"input",value:n.description,onChange:e=>z("description",e.target.value),placeholder:j("form.purpose.placeholder")})}),(0,s.jsxs)(d.D0,{label:j("form.role"),children:[(0,s.jsx)(d.$q,{value:n.role,onChange:e=>z("role",e),options:[{id:"worker",label:j("role.worker")},{id:"orchestrator",label:j("role.orchestrator")}]}),(0,s.jsx)("span",{className:"hint",children:j("orchestrator"===n.role?"form.role.orchestratorHint":"form.role.workerHint")})]}),x&&F&&(0,s.jsx)("p",{className:"hint",style:{margin:0},children:j("form.basedOn",{name:F.name})}),(0,s.jsx)(d.D0,{label:j("form.colony"),hint:j("form.colony.hint"),children:(0,s.jsxs)("select",{className:"select",value:null!=(l=n.colony_id)?l:"",onChange:e=>p({...n,colony_id:e.target.value||null,overrides:[]}),children:[(0,s.jsx)("option",{value:"",children:j("common.noColony")}),_.map(e=>(0,s.jsx)("option",{value:e.id,children:e.name},e.id))]})}),(0,s.jsx)(d.D0,{label:j("form.provider"),children:(0,s.jsx)(d.YO,{value:n.provider,onChange:e=>p({...n,provider:e,model:""}),providers:b})}),(0,s.jsx)(d.CD,{provider:n.provider,value:n.model,onChange:e=>z("model",e)}),A&&A.inherit.permission&&(0,s.jsx)(f,{colony:A,on:S("permission"),onChange:e=>D("permission",e),label:j("inherit.permissions"),value:(0,m.Ck)(A.permission)}),!S("permission")&&(0,s.jsx)(d.en,{value:n.permission,onChange:e=>z("permission",e),locked:C.length?["plan"]:[]}),C.length>0&&(0,s.jsxs)("p",{className:"hint",style:{margin:0},children:[(0,s.jsxs)("b",{children:[j("form.connections"),":"]})," ",j("form.connections.hint",{names:C.map(e=>e.name).join(", ")})]}),A&&A.inherit.cwd&&A.cwd&&(0,s.jsx)(f,{colony:A,on:S("cwd"),onChange:e=>D("cwd",e),label:j("field.folder"),value:(0,m._1)(A.cwd),mono:!0}),!(S("cwd")&&(null==A?void 0:A.cwd))&&(0,s.jsx)(d.dR,{value:n.cwd,onChange:e=>z("cwd",e),error:h.cwd}),A&&A.inherit.prompt&&A.system_prompt.trim()&&(0,s.jsx)(f,{colony:A,on:S("prompt"),onChange:e=>D("prompt",e),label:j("inherit.context"),value:"".concat(A.system_prompt.trim().slice(0,90)).concat(A.system_prompt.trim().length>90?"…":""),note:j("inherit.context.note")}),(0,s.jsx)(d.D0,{label:j(S("prompt")||(null==A?void 0:A.system_prompt)?"form.ownPrompt":"form.systemPrompt"),hint:j("form.promptHint",{count:n.system_prompt.length,n:(0,a._E)(n.system_prompt.length)}),children:(0,s.jsx)(t.n,{value:n.system_prompt,onChange:e=>z("system_prompt",e),placeholder:j("form.prompt.placeholder"),defaultView:"write",minHeight:220})}),A&&A.inherit.skills&&A.skill_ids.length>0&&(0,s.jsx)(f,{colony:A,on:S("skills"),onChange:e=>D("skills",e),label:j("inherit.skills"),value:A.skill_ids.map(e=>{var l;return null==(l=y.find(l=>l.id===e))?void 0:l.name}).filter(Boolean).join(", "),note:j("inherit.skills.note")}),(0,s.jsx)(d.D0,{label:j("form.skills"),hint:j("form.skills.hint"),children:(0,s.jsx)(d.kV,{skills:y,value:n.skill_ids,loads:n.skill_loads,onChange:(e,l)=>p({...n,skill_ids:e,skill_loads:l})})}),"orchestrator"===n.role&&(0,s.jsx)(d.D0,{label:j("form.team"),hint:j("form.team.hint"),children:q.length?(0,s.jsx)("div",{className:"skillpick",children:q.map(e=>{let l=n.worker_ids.includes(e.id);return(0,s.jsxs)("button",{type:"button",className:"skillrow","aria-pressed":l,onClick:()=>z("worker_ids",l?n.worker_ids.filter(l=>l!==e.id):[...n.worker_ids,e.id]),children:[(0,s.jsx)("span",{className:"check",children:l&&(0,s.jsx)(r.A,{size:13,strokeWidth:3})}),(0,s.jsxs)("span",{children:[(0,s.jsx)("b",{style:{fontWeight:600},children:e.name}),(0,s.jsx)("span",{className:"hint",style:{display:"block"},children:e.description||e.provider})]})]},e.id)})}):(0,s.jsx)("p",{className:"hint",children:j("form.team.empty")})})]})}function f(e){let{colony:l,on:n,onChange:i,label:t,value:r,note:a,mono:d}=e,{t:c}=(0,o.s9)();return(0,s.jsxs)("label",{className:"inherit-row ".concat(n?"on":""),children:[(0,s.jsx)("input",{type:"checkbox",checked:n,onChange:e=>i(e.target.checked)}),(0,s.jsxs)("span",{className:"grow",children:[(0,s.jsxs)("b",{children:[t," ",(0,s.jsx)("span",{className:"muted",style:{fontWeight:500},children:c("inherit.from")})," ",(0,s.jsx)("i",{className:"cdot",style:{background:l.color||"var(--honey)"}}),l.name]}),(0,s.jsx)("span",{className:"inh-val ".concat(d?"mono":""),children:r||"—"}),a&&(0,s.jsx)("span",{className:"hint",children:a})]}),(0,s.jsx)("span",{className:"inh-state",children:c(n?"inherit.following":"inherit.own")})]})}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[589],{216:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("GitCommitHorizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]])},306:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]])},352:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("Timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]])},703:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]])},776:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]])},991:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]])},999:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("PackagePlus",[["path",{d:"M16 16h6",key:"100bgy"}],["path",{d:"M19 13v6",key:"85cyf1"}],["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}]])},2349:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},2480:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])},2582:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("Undo2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]])},3249:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("FileImage",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"10",cy:"12",r:"2",key:"737tya"}],["path",{d:"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",key:"wt3hpn"}]])},3745:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("FileCode",[["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}]])},3974:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("PanelLeftOpen",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]])},4214:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("Layers",[["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"}]])},4328:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("ArchiveRestore",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h2",key:"tvwodi"}],["path",{d:"M20 8v11a2 2 0 0 1-2 2h-2",key:"1gkqxj"}],["path",{d:"m9 15 3-3 3 3",key:"1pd0qc"}],["path",{d:"M12 12v9",key:"192myk"}]])},4611:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("Coins",[["circle",{cx:"8",cy:"8",r:"6",key:"3yglwk"}],["path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18",key:"t5s6rm"}],["path",{d:"M7 6h1v4",key:"1obek4"}],["path",{d:"m16.71 13.88.7.71-2.82 2.82",key:"1rbuyh"}]])},4738:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]])},5014:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]])},5406:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]])},5661:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("File",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]])},6325:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]])},6534:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},6819:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("CloudDownload",[["path",{d:"M12 13v8l-4-4",key:"1f5nwf"}],["path",{d:"m12 21 4-4",key:"1lfcce"}],["path",{d:"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284",key:"ui1hmy"}]])},7384:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("GitMerge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]])},7697:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]])},8089:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("Hammer",[["path",{d:"m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9",key:"eefl8a"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"b7pghm"}]])},8180:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},8330:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("PanelLeftClose",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]])},8449:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]])},8853:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("Ear",[["path",{d:"M6 8.5a6.5 6.5 0 1 1 13 0c0 6-6 6-6 10a3.5 3.5 0 1 1-7 0",key:"1dfaln"}],["path",{d:"M15 8.5a2.5 2.5 0 0 0-5 0v1a2 2 0 1 1 0 4",key:"1qnva7"}]])},9075:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]])},9718:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]])},9731:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},9959:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(4955).A)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(()=>{var e={2657:(e,t,s)=>{"use strict";var r=s(8094),a=s(1243),p=s(5306),l=s(3690),i=s(2670),n=s(6788),c=s(9322),o=s(1059),f=s(4644),h=s(6517),u=s(4922),m=s(5894),v=s(3807),d=s(3908),g=s(9793),y=s(4628),A=s(176),x=s(399),j=s(8451),k=s(9597),b=s(1131),O=s(9129),w=s(1811),_=s(2484),P=s(5502),C=s(3362),L=s(6206);for(let[e,t]of Object.entries({bash:a.A,c:p.A,cpp:l.A,csharp:i.A,css:n.A,diff:c.A,dockerfile:o.A,go:f.A,ini:h.A,java:u.A,javascript:m.A,json:v.A,kotlin:d.A,makefile:g.A,markdown:y.A,perl:A.A,php:x.A,python:j.A,ruby:k.A,rust:b.A,scss:O.A,sql:w.A,swift:_.A,typescript:P.A,xml:C.A,yaml:L.A}))r.A.registerLanguage(e,t);let q={js:"javascript",mjs:"javascript",cjs:"javascript",jsx:"javascript",ts:"typescript",tsx:"typescript",json:"json",css:"css",scss:"scss",html:"xml",htm:"xml",xml:"xml",svg:"xml",vue:"xml",svelte:"xml",md:"markdown",mdx:"markdown",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",kt:"kotlin",swift:"swift",c:"c",h:"c",cpp:"cpp",cc:"cpp",hpp:"cpp",cs:"csharp",php:"php",pl:"perl",pm:"perl",sh:"bash",bash:"bash",zsh:"bash",yml:"yaml",yaml:"yaml",toml:"ini",ini:"ini",conf:"ini",cfg:"ini",sql:"sql",diff:"diff",patch:"diff",mk:"makefile"},E=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),I=self;I.onmessage=e=>{let{id:t,code:s,path:a}=e.data;I.postMessage({id:t,lines:function(e,t){let s,a,p=function(e){var t;let s=e.slice(e.lastIndexOf("/")+1).toLowerCase();return"dockerfile"===s?"dockerfile":"makefile"===s?"makefile":null!=(t=q[s.includes(".")?s.slice(s.lastIndexOf(".")+1):""])?t:null}(t);if(!p||e.length>12e5)s=E(e);else try{s=r.A.highlight(e,{language:p,ignoreIllegals:!0}).value}catch(t){s=E(e)}let l=[],i=[],n="",c=/<span [^>]*>|<\/span>|\n|[^<\n]+/g;for(;a=c.exec(s);){let e=a[0];"\n"===e?(l.push(n+"</span>".repeat(i.length)),n=i.join("")):(e.startsWith("<span")?i.push(e):"</span>"===e&&i.pop(),n+=e)}return l.push(n+"</span>".repeat(i.length)),l}(s,a)})}}},t={};function s(r){var a=t[r];if(void 0!==a)return a.exports;var p=t[r]={exports:{}},l=!0;try{e[r](p,p.exports,s),l=!1}finally{l&&delete t[r]}return p.exports}s.m=e,s.x=()=>{var e=s.O(void 0,[837],()=>s(2657));return s.O(e)},(()=>{var e=[];s.O=(t,r,a,p)=>{if(r){p=p||0;for(var l=e.length;l>0&&e[l-1][2]>p;l--)e[l]=e[l-1];e[l]=[r,a,p];return}for(var i=1/0,l=0;l<e.length;l++){for(var[r,a,p]=e[l],n=!0,c=0;c<r.length;c++)(!1&p||i>=p)&&Object.keys(s.O).every(e=>s.O[e](r[c]))?r.splice(c--,1):(n=!1,p<i&&(i=p));if(n){e.splice(l--,1);var o=a();void 0!==o&&(t=o)}}return t}})(),s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,r)=>(s.f[r](e,t),t),[])),s.u=e=>"static/chunks/"+e+"-fd7623601dc78ed8.js",s.miniCssF=e=>{},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e;s.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),s.tu=e=>s.tt().createScriptURL(e),s.p="/_next/",(()=>{var e={657:1};s.f.i=(t,r)=>{e[t]||importScripts(s.tu(s.p+s.u(t)))};var t=self.webpackChunk_N_E=self.webpackChunk_N_E||[],r=t.push.bind(t);t.push=t=>{var[a,p,l]=t;for(var i in p)s.o(p,i)&&(s.m[i]=p[i]);for(l&&l(s);a.length;)e[a.pop()]=1;r(t)}})(),(()=>{var e=s.x;s.x=()=>s.e(837).then(e)})(),_N_E=s.x()})();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[687],{124:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("FilePlus",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]])},494:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},555:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("ListOrdered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]])},1529:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]])},1833:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Quote",[["path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"rib7q0"}],["path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"1ymkrd"}]])},2098:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]])},2219:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("FilePen",[["path",{d:"M12.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v9.5",key:"1couwa"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1y4qbx"}]])},2263:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("List",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]])},2687:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]])},2705:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},2716:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]])},2720:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("VolumeX",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["line",{x1:"22",x2:"16",y1:"9",y2:"15",key:"1ewh16"}],["line",{x1:"16",x2:"22",y1:"9",y2:"15",key:"5ykzw1"}]])},2947:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},3492:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Heading2",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1",key:"9jr5yi"}]])},3624:(e,y,a)=>{var t=a(6024);a.o(t,"usePathname")&&a.d(y,{usePathname:function(){return t.usePathname}}),a.o(t,"useRouter")&&a.d(y,{useRouter:function(){return t.useRouter}})},4616:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]])},4713:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Paperclip",[["path",{d:"M13.234 20.252 21 12.3",key:"1cbrk9"}],["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 0 2.828 2 2 0 0 0 2.828 0l8.414-8.586a4 4 0 0 0 0-5.656 4 4 0 0 0-5.656 0l-8.415 8.585a6 6 0 1 0 8.486 8.486",key:"1pkts6"}]])},5267:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("ListChecks",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]])},5712:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Link2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]])},5838:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]])},6477:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]])},7356:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Trash2",[["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"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]])},7454:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]])},7541:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Waypoints",[["circle",{cx:"12",cy:"4.5",r:"2.5",key:"r5ysbb"}],["path",{d:"m10.2 6.3-3.9 3.9",key:"1nzqf6"}],["circle",{cx:"4.5",cy:"12",r:"2.5",key:"jydg6v"}],["path",{d:"M7 12h10",key:"b7w52i"}],["circle",{cx:"19.5",cy:"12",r:"2.5",key:"1piiel"}],["path",{d:"m13.8 17.7 3.9-3.9",key:"1wyg1y"}],["circle",{cx:"12",cy:"19.5",r:"2.5",key:"13o1pw"}]])},7841:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Settings2",[["path",{d:"M20 7h-9",key:"3s1dr2"}],["path",{d:"M14 17H5",key:"gfn3mx"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]])},8148:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Bold",[["path",{d:"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8",key:"mg9rjx"}]])},8938:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("CodeXml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]])},8950:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Volume2",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]])},9141:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},9278:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]])},9431:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]])},9579:(e,y,a)=>{a.d(y,{A:()=>t});let t=(0,a(4955).A)("Italic",[["line",{x1:"19",x2:"10",y1:"4",y2:"4",key:"15jd3p"}],["line",{x1:"14",x2:"5",y1:"20",y2:"20",key:"bu0au3"}],["line",{x1:"15",x2:"9",y1:"4",y2:"20",key:"uljnxc"}]])}}]);
|