hive-am 1.4.0 → 1.6.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 +52 -1
- package/README.md +6 -9
- package/bin/hive-am.mjs +242 -31
- package/bin/run.mjs +135 -0
- package/package.json +1 -1
- package/server/dist/connections/format.js +26 -0
- package/server/dist/connections/index.js +2 -0
- package/server/dist/connections/manager.js +18 -6
- package/server/dist/connections/router.js +43 -13
- package/server/dist/connections/secrets.js +9 -1
- package/server/dist/connections/slack.js +488 -0
- package/server/dist/connections/store.js +2 -0
- package/server/dist/db/migrations.js +80 -0
- package/server/dist/db.js +26 -13
- package/server/dist/dispatches.js +126 -0
- package/server/dist/efforts.js +105 -0
- package/server/dist/http/routes/agents.js +4 -3
- package/server/dist/http/routes/meta.js +12 -0
- package/server/dist/http/routes/notebook.js +10 -2
- package/server/dist/http/routes/orchestration.js +13 -2
- package/server/dist/http/routes/resources.js +3 -0
- package/server/dist/http/routes/types.js +18 -1
- package/server/dist/http/validate.js +27 -4
- package/server/dist/index.js +6 -1
- package/server/dist/instructions.js +11 -3
- package/server/dist/objects/agent-db.js +258 -0
- package/server/dist/objects/database.js +496 -34
- package/server/dist/objects/index.js +16 -8
- package/server/dist/providers/kiro.js +7 -1
- package/server/dist/providers/opencode-server.js +11 -1
- package/server/dist/providers/opencode.js +4 -3
- package/server/dist/providers/spawn.js +38 -4
- package/server/dist/retention.js +52 -0
- package/server/dist/runtime.js +69 -27
- package/server/dist/services/agents.js +53 -1
- package/server/dist/services/connections.js +18 -3
- package/server/dist/services/notebook.js +7 -3
- package/server/dist/skills/defaults.js +41 -5
- package/server/dist/skills/notebook.js +57 -13
- package/server/dist/watch.js +1 -1
- package/server/mcp/dispatch.mjs +116 -5
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-build-manifest.json +98 -82
- package/web/.next/app-path-routes-manifest.json +7 -7
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +51 -51
- 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 +3 -3
- 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 +21 -18
- package/web/.next/server/app/chat/page.js +2 -2
- package/web/.next/server/app/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/chat.html +1 -1
- package/web/.next/server/app/chat.rsc +4 -4
- 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 +4 -4
- package/web/.next/server/app/index.html +1 -1
- package/web/.next/server/app/index.rsc +4 -4
- 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 +4 -4
- package/web/.next/server/app/resources/[id]/page.js +2 -2
- package/web/.next/server/app/resources/[id]/page.js.nft.json +1 -1
- package/web/.next/server/app/resources/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/resources/page.js +2 -2
- package/web/.next/server/app/resources/page.js.nft.json +1 -1
- package/web/.next/server/app/resources/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/resources.html +1 -1
- package/web/.next/server/app/resources.rsc +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +4 -4
- package/web/.next/server/app-paths-manifest.json +7 -7
- package/web/.next/server/chunks/{505.js → 111.js} +1 -1
- package/web/.next/server/chunks/143.js +1 -1
- package/web/.next/server/chunks/213.js +1 -1
- package/web/.next/server/chunks/368.js +1 -1
- package/web/.next/server/chunks/403.js +1 -1
- package/web/.next/server/chunks/612.js +1 -1
- package/web/.next/server/chunks/741.js +2 -0
- package/web/.next/server/chunks/837.js +1 -0
- package/web/.next/server/chunks/{435.js → 939.js} +3 -3
- 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/162-68ba190086f5ad39.js +1 -0
- package/web/.next/static/chunks/214-35b88db02113ae02.js +1 -0
- package/web/.next/static/chunks/281-4506bc98b7111729.js +1 -0
- package/web/.next/static/chunks/491-196bcb3dd11bb460.js +1 -0
- package/web/.next/static/chunks/517-8f2db464d10a4624.js +1 -0
- package/web/.next/static/chunks/{586-f7017d585a84738d.js → 586-4f67b823df060b46.js} +1 -1
- package/web/.next/static/chunks/587-3c53d91a1c4f99d6.js +1 -0
- package/web/.next/static/chunks/606-14fb5aaa4d0ff22d.js +1 -0
- package/web/.next/static/chunks/642-dc874c8caf203ee1.js +1 -0
- package/web/.next/static/chunks/{705-f81face97b1bb1af.js → 705-ce86175dea00e6a9.js} +1 -1
- package/web/.next/static/chunks/757-03361e7a97a605a2.js +1 -0
- package/web/.next/static/chunks/771-db19da9b1a24820c.js +1 -0
- package/web/.next/static/chunks/app/agents/[id]/page-803d53aedd10c8e5.js +1 -0
- package/web/.next/static/chunks/app/agents/layout-71dd98d696935e29.js +1 -0
- package/web/.next/static/chunks/app/agents/page-9da499db6d22731f.js +1 -0
- package/web/.next/static/chunks/app/chat/{page-5261b12b7d50f5d1.js → page-383bc24e72dab7fa.js} +1 -1
- package/web/.next/static/chunks/app/connections/page-b0ea2eae62cef74e.js +1 -0
- package/web/.next/static/chunks/app/layout-cb5af29b0742c513.js +1 -0
- package/web/.next/static/chunks/app/page-5e547e87de23d9fa.js +1 -0
- package/web/.next/static/chunks/app/relations/page-02710fe1f8a670a9.js +1 -0
- package/web/.next/static/chunks/app/resources/[id]/page-1e2afddcb1f04884.js +1 -0
- package/web/.next/static/chunks/app/resources/{page-61cccd8fdcc2f6c8.js → page-195b0af83b8ace0d.js} +1 -1
- package/web/.next/static/chunks/app/sessions/page-85638705fdc18174.js +1 -0
- package/web/.next/static/chunks/app/types/page-c4c2b2217c4667e8.js +1 -0
- package/web/.next/static/css/c7faf690373117bb.css +1 -0
- package/web/.next/trace +30 -30
- package/web/.next/types/routes.d.ts +2 -1
- package/web/.next/types/validator.ts +9 -0
- package/web/.next/server/chunks/274.js +0 -1
- package/web/.next/static/chunks/281-113274e705940a55.js +0 -1
- package/web/.next/static/chunks/316-26da9cc233ba7557.js +0 -1
- package/web/.next/static/chunks/391-18768499e741112e.js +0 -1
- package/web/.next/static/chunks/517-373a80c8ba432bdc.js +0 -1
- package/web/.next/static/chunks/562-7c2e33d838e869bf.js +0 -1
- package/web/.next/static/chunks/587-8e4d2be01ba7d48f.js +0 -1
- package/web/.next/static/chunks/606-c9a19918b02a98d0.js +0 -1
- package/web/.next/static/chunks/656-f537149fe28f79aa.js +0 -1
- package/web/.next/static/chunks/app/agents/[id]/page-6ed6edb3e74b0ebe.js +0 -1
- package/web/.next/static/chunks/app/agents/page-9bb8cba69776c719.js +0 -1
- package/web/.next/static/chunks/app/connections/page-eb11cfb1ffeab3ca.js +0 -1
- package/web/.next/static/chunks/app/layout-fad968a635f9a4b3.js +0 -1
- package/web/.next/static/chunks/app/page-99e0351e6ccaa384.js +0 -1
- package/web/.next/static/chunks/app/relations/page-a44fd515a3b0525e.js +0 -1
- package/web/.next/static/chunks/app/resources/[id]/page-fc494e85b01e8cb7.js +0 -1
- package/web/.next/static/chunks/app/sessions/page-a7534ebd90e982d6.js +0 -1
- package/web/.next/static/chunks/app/types/page-ebd37e220f77c1f3.js +0 -1
- package/web/.next/static/css/582723fcea1f9887.css +0 -1
- /package/web/.next/static/{YT6HM6qmegMJaBMX5QvuP → tdnUXVa01m25EjOobxVd1}/_buildManifest.js +0 -0
- /package/web/.next/static/{YT6HM6qmegMJaBMX5QvuP → tdnUXVa01m25EjOobxVd1}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[587],{9217:(e,l,t)=>{t.d(l,{Zp:()=>N,Bh:()=>C,Mr:()=>y,QJ:()=>g,qP:()=>k,Te:()=>S});var s=t(94799),a=t(52974),n=t(34023),r=t(89075),o=t(79141),i=t(10804),d=t(3749),c=t(84561),m=t(69654);let h=null;function u(e){let{template:l,values:t,onPick:a,onValue:r}=e,{t:o}=(0,m.s9)(),c=function(){let[e,l]=(0,n.useState)(h);return(0,n.useEffect)(()=>{h||d.FH.get("/object-templates").then(e=>{h=e,l(e)}).catch(()=>l([]))},[]),e}(),u=null==c?void 0:c.find(e=>e.id===l);return c?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"tpls",children:c.map(e=>(0,s.jsxs)("button",{type:"button",className:"tpl","aria-pressed":l===e.id,onClick:()=>a(e),children:[(0,s.jsx)("b",{children:e.name}),(0,s.jsx)("small",{children:e.description})]},e.id))}),u&&u.fields.map(e=>{var l;return(0,s.jsx)(i.D0,{label:e.label,children:(0,s.jsx)("input",{className:"input ".concat("text"===e.kind&&"version"!==e.key?"":"mono"),value:null!=(l=t[e.key])?l:"",onChange:l=>r(e.key,l.target.value),placeholder:e.default,inputMode:"port"===e.kind?"numeric":void 0})},"".concat(u.id,"-").concat(e.key))}),u&&(0,s.jsx)("p",{className:"muted small",style:{margin:0},children:o("tpl.note")})]}):(0,s.jsx)("p",{className:"muted small",style:{margin:0},children:o("git.loading")})}var p=t(48538),b=t(74988),j=t(13460),v=t(67056);let x=e=>void 0===e?"":String(e),g=(e,l,t)=>{var s,a,n,r,o,i,d,c,m,h,u,p,j,v,g,f,k,y,N,w,C,S,D,T,R,F,q,M,P,E,z,O,A,I,_,L,H,K,U,$;let B=(null==e?void 0:e.kind)==="server"?e.config:{},Q=(null==e?void 0:e.kind)==="docker"?e.config:{},V=(null==e?void 0:e.kind)==="http"?e.config:{},Z=(null==e?void 0:e.kind)==="cluster"?e.config:{},W=(null==e?void 0:e.kind)==="database"?e.config:{};return{manager:null!=(d=null==e?void 0:e.manager_id)?d:"",name:null!=(c=null==e?void 0:e.name)?c:"",colony_id:null!=(h=null!=(m=null==e?void 0:e.colony_id)?m:l)?h:"",kind:null!=(p=null!=(u=null==e?void 0:e.kind)?u:t)?p:"server",cwd:null!=(j=B.cwd)?j:"",start:null!=(v=B.start)?v:"",stop:null!=(g=B.stop)?g:"",port:x(B.port),env:(0,b.M6)((null==e?void 0:e.kind)==="server"?B.env:Q.env),restart:null!=(f=B.restart)?f:"no",maxRestarts:x(B.maxRestarts),healthKind:null!=(k=null==(s=B.health)?void 0:s.kind)?k:"",healthTarget:null!=(y=null==(a=B.health)?void 0:a.target)?y:"",healthInterval:x(null==(n=B.health)?void 0:n.intervalSec),healthTimeout:x(null==(r=B.health)?void 0:r.timeoutSec),healthRetries:x(null==(o=B.health)?void 0:o.retries),healthRestart:!!(null==(i=B.health)?void 0:i.restartWhenUnhealthy),stopTimeout:x((null==e?void 0:e.kind)==="server"?B.stopTimeoutSec:Q.stopTimeoutSec),logMax:x((null==e?void 0:e.kind)==="server"?B.logMaxMb:Q.logMaxMb),folder:null!=(N=V.folder)?N:"",defEnv:null!=(w=V.env)?w:"",variables:null!=(C=V.variables)?C:{},members:null!=(S=Z.members)?S:[],template:"",tplValues:{},mode:null!=(D=Q.mode)?D:e?"container":"template",image:null!=(T=Q.image)?T:"",ports:(null!=(R=Q.ports)?R:[]).join("\n"),volumes:(null!=(F=Q.volumes)?F:[]).join("\n"),dockerRestart:null!=(q=Q.restart)?q:"no",command:null!=(M=Q.command)?M:"",file:null!=(P=Q.file)?P:"",project:null!=(E=Q.project)?E:"",services:(null!=(z=Q.services)?z:[]).join(", "),container:null!=(O=Q.container)?O:"",memory:null!=(A=Q.memory)?A:"",cpus:x(Q.cpus),network:null!=(I=Q.network)?I:"",engine:null!=(_=W.engine)?_:"postgresql",dbHost:null!=(L=W.host)?L:"",dbPort:x(W.port),dbUser:null!=(H=W.user)?H:"",dbPassword:"",dbPasswordSet:!!W.passwordSet,dbName:null!=(K=W.database)?K:"",dbFile:null!=(U=W.file)?U:"",dbSsl:!!W.ssl,dbTrust:!!W.trustCert,dbReadOnly:!1!==W.readOnly,dbTimeout:x(W.timeoutSec),dbMaxRows:x(W.maxRows),dbProps:{...null!=($=W.props)?$:{}}}},f=e=>""===e.trim()?void 0:Number(e);function k(e){return"database"===e.kind?y(e):"http"===e.kind?{folder:e.folder.trim(),env:e.defEnv.trim()||void 0,variables:Object.keys(e.variables).length?e.variables:void 0}:"cluster"===e.kind?{members:e.members}:"server"===e.kind?{cwd:e.cwd.trim(),start:e.start.trim(),stop:e.stop.trim()||void 0,port:f(e.port),env:(0,b.y$)(e.env),restart:"no"===e.restart?void 0:e.restart,maxRestarts:f(e.maxRestarts),stopTimeoutSec:f(e.stopTimeout),logMaxMb:f(e.logMax),health:e.healthKind&&e.healthTarget.trim()?{kind:e.healthKind,target:e.healthTarget.trim(),intervalSec:f(e.healthInterval),timeoutSec:f(e.healthTimeout),retries:f(e.healthRetries),restartWhenUnhealthy:e.healthRestart||void 0}:void 0}:"template"===e.mode?{mode:"compose"}:"existing"===e.mode?{mode:"existing",container:e.container.trim(),stopTimeoutSec:f(e.stopTimeout)}:"compose"===e.mode?{mode:"compose",file:e.file.trim(),project:e.project.trim()||void 0,services:e.services.split(",").map(e=>e.trim()).filter(Boolean),stopTimeoutSec:f(e.stopTimeout)}:{mode:"container",image:e.image.trim(),ports:(0,b.Mn)(e.ports),volumes:(0,b.Mn)(e.volumes),env:(0,b.y$)(e.env),restart:e.dockerRestart||"no",command:e.command.trim()||void 0,memory:e.memory.trim()||void 0,cpus:f(e.cpus),network:e.network.trim()||void 0,stopTimeoutSec:f(e.stopTimeout),logMaxMb:f(e.logMax)}}let y=e=>{let l=Object.entries(e.dbProps).filter(l=>{let[t,s]=l;return""!==s.trim()&&(e.dbSsl||!t.startsWith("ssl."))}),t=l.length?Object.fromEntries(l):void 0;return"sqlite"===e.engine?{engine:"sqlite",file:e.dbFile.trim(),props:t,readOnly:e.dbReadOnly,timeoutSec:f(e.dbTimeout),maxRows:f(e.dbMaxRows)}:{engine:e.engine,host:e.dbHost.trim()||void 0,port:f(e.dbPort),user:e.dbUser.trim()||void 0,password:e.dbPassword,database:e.dbName.trim()||void 0,ssl:e.dbSsl||void 0,trustCert:!!e.dbSsl&&!!e.dbTrust||void 0,props:t,readOnly:e.dbReadOnly,timeoutSec:f(e.dbTimeout),maxRows:f(e.dbMaxRows)}},N=e=>{let{title:l,hint:t,wide:a=!1,children:n}=e;return(0,s.jsxs)("section",{className:"of-card ".concat(a?"wide":""),id:"of-".concat(l.toLowerCase().normalize("NFD").replace(/[^a-z0-9]+/g,"-")),"data-title":l,children:[(0,s.jsxs)("header",{children:[(0,s.jsx)("h4",{children:l}),t&&(0,s.jsx)("p",{className:"muted small",children:t})]}),n]})};function w(e){let{file:l,project:t,services:a,onServices:r,onProject:o}=e,{t:c}=(0,m.s9)(),{info:h,err:u,loading:p}=function(e){let[l,t]=(0,n.useState)(null),[s,a]=(0,n.useState)(""),[r,o]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{if(a(""),!/^\/.+\.ya?ml$/i.test(e))return void t(null);let l=!1;o(!0);let s=setTimeout(()=>d.FH.get("/docker/compose-services?file=".concat(encodeURIComponent(e))).then(e=>!l&&t(e)).catch(e=>{l||(t(null),a(e instanceof Error?e.message:""))}).finally(()=>!l&&o(!1)),300);return()=>{l=!0,clearTimeout(s)}},[e]),{info:l,err:s,loading:r}}(l),b=new Set(a.split(",").map(e=>e.trim()).filter(Boolean));return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.D0,{label:c("obj.f.services"),hint:c("dk.services.hint"),children:l?p?(0,s.jsx)("p",{className:"muted small res-m0",children:c("dk.services.loading")}):u?(0,s.jsx)("p",{className:"gx-note err res-m0",children:u}):h&&0===h.services.length?(0,s.jsx)("p",{className:"muted small res-m0",children:c("dk.services.none")}):h?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"chips",children:h.services.map(e=>(0,s.jsx)("button",{type:"button",className:"chip-pick ".concat(b.has(e)?"on":""),"aria-pressed":b.has(e),onClick:()=>(e=>{let l=new Set(b);l.has(e)?l.delete(e):l.add(e),r([...l].join(", "))})(e),children:e},e))}),"file"===h.source&&(0,s.jsx)("p",{className:"muted small res-mt6",children:c("dk.services.file")})]}):null:(0,s.jsx)("p",{className:"muted small res-m0",children:c("dk.services.pickFile")})}),(0,s.jsx)(i.D0,{label:c("obj.f.project"),hint:c("dk.project.hint"),children:(0,s.jsxs)("div",{className:"row gap-s",children:[(0,s.jsx)("input",{className:"input mono",value:t,onChange:e=>o(e.target.value),placeholder:null==h?void 0:h.project}),h&&!t&&(0,s.jsx)("button",{type:"button",className:"btn sm",onClick:()=>o(h.project),children:c("dk.project.use",{name:h.project})})]})})]})}function C(e){var l,t,h;let{d:x,set:g,setD:f,scan:k,showKind:y=!1,error:C,objectId:S}=e,{t:D}=(0,m.s9)(),{colonies:T,objects:R}=(0,p.o0)(),F=function(e){let[l,t]=(0,n.useState)(null),[s,a]=(0,n.useState)(null),[r,o]=(0,n.useState)(""),[i,c]=(0,n.useState)(0);return(0,n.useEffect)(()=>{if(!e)return;let l=!1;return d.FH.get("/docker/containers").then(e=>{var s;l||(t(e.containers),o(e.available?"":null!=(s=e.error)?s:"unavailable"))}).catch(()=>!l&&o("unavailable")),d.FH.get("/docker/images").then(e=>!l&&a(e.images)).catch(()=>void 0),()=>{l=!0}},[e,i]),{containers:l,images:s,error:r,reload:(0,n.useCallback)(()=>c(e=>e+1),[])}}("docker"===x.kind&&("existing"===x.mode||"container"===x.mode)),q=function(e){let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,s.jsx)("input",{className:"input ".concat(l.mono?"mono":""),type:l.type,value:x[e],placeholder:l.placeholder,onChange:l=>g(e,l.target.value)})},M=F.error?(0,s.jsx)("p",{className:"muted small res-mt4",children:D("dk.unavailable",{error:F.error})}):null,P=(0,s.jsx)("button",{type:"button",className:"btn ghost icon sm",onClick:F.reload,"aria-label":D("dk.refresh"),title:D("dk.refresh"),children:(0,s.jsx)(r.A,{size:14})}),E=k?Object.keys(k.fileVars).filter(e=>"$shared"!==e):void 0,z=(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.dR,{value:x.folder,onChange:e=>g("folder",e),label:D("obj.f.httpFolder"),hint:D("obj.f.httpFolder.hint")}),(0,s.jsx)(i.D0,{label:D("obj.f.defaultEnv"),hint:D("obj.f.defaultEnv.hint"),children:(0,s.jsx)(c.b,{value:x.defEnv,onChange:e=>g("defEnv",e),mono:!0,placeholder:"dev",options:[...new Set([...null!=(l=null==k?void 0:k.environments)?l:[],...Object.keys(x.variables).filter(e=>"$shared"!==e)])].map(e=>({value:e}))})})]});return(0,s.jsxs)("div",{className:"of",children:[y&&(0,s.jsx)(N,{title:D("obj.kind.pick"),wide:!0,children:(0,s.jsx)("div",{className:"okinds",children:["server","docker","http","database","cluster"].map(e=>{let{icon:l,color:t}=b.Nd[e];return(0,s.jsxs)("button",{type:"button",className:"okind","aria-pressed":x.kind===e,style:{"--c":t},onClick:()=>g("kind",e),children:[(0,s.jsx)(l,{size:20}),(0,s.jsx)("b",{children:D("obj.kind.".concat(e))}),(0,s.jsx)("small",{children:D("obj.kind.".concat(e,".hint"))})]},e)})})}),(0,s.jsxs)(N,{title:D("of.general"),children:[(0,s.jsx)(i.D0,{label:D("obj.f.name"),error:C,children:q("name",{placeholder:"database"===x.kind?(0,v.I5)(x):void 0})}),(0,s.jsx)(i.D0,{label:D("obj.colony"),children:(0,s.jsxs)("select",{className:"select",value:x.colony_id,onChange:e=>f(l=>({...l,colony_id:e.target.value,members:[]})),children:[(0,s.jsx)("option",{value:"",children:D("obj.noColony")}),T.map(e=>(0,s.jsx)("option",{value:e.id,children:e.name},e.id))]})}),a.Gn.includes(x.kind)&&(0,s.jsx)(a.ID,{kind:x.kind,value:x.manager,onChange:e=>g("manager",e)}),"http"===x.kind&&!y&&z]}),"http"===x.kind?(0,s.jsxs)(s.Fragment,{children:[y&&(0,s.jsx)(N,{title:D("of.files"),children:z}),y&&(0,s.jsx)(N,{title:D("of.vars"),wide:!0,children:(0,s.jsx)(j.W,{value:x.variables,onChange:e=>g("variables",e),fileEnvs:E,fileVars:null==k?void 0:k.fileVars,used:null==k?void 0:k.used,fileDefined:null==k?void 0:k.fileDefined,setBy:null==k?void 0:k.setBy})})]}):"database"===x.kind?(0,s.jsx)(v.dN,{d:x,set:g,setD:f,objectId:S,creating:y}):"cluster"===x.kind?(0,s.jsx)(N,{title:D("of.members"),hint:D("obj.f.members.hint"),children:(()=>{let e=R.filter(e=>{var l;return("server"===e.kind||"docker"===e.kind)&&(null!=(l=e.colony_id)?l:"")===x.colony_id});return e.length?(0,s.jsx)("div",{className:"omembers",children:e.map(e=>{let{icon:l,color:t}=b.Nd[e.kind],a=x.members.indexOf(e.id);return(0,s.jsxs)("label",{className:"omember",children:[(0,s.jsx)("input",{type:"checkbox",checked:a>=0,onChange:()=>{let l;return l=e.id,g("members",x.members.includes(l)?x.members.filter(e=>e!==l):[...x.members,l])}}),(0,s.jsx)(l,{size:15,style:{color:t}}),(0,s.jsx)("span",{className:"nm",children:e.name}),a>=0&&(0,s.jsx)("span",{className:"ord",children:a+1})]},e.id)})}):(0,s.jsx)("p",{className:"muted small res-m0",children:D("obj.f.members.none")})})()}):"server"===x.kind?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(N,{title:D("of.run"),children:[(0,s.jsx)(i.dR,{value:x.cwd,onChange:e=>g("cwd",e),label:D("obj.f.folder"),hint:D("obj.f.folder.hint")}),(0,s.jsx)(i.D0,{label:D("obj.f.start"),hint:D("obj.f.start.hint"),children:q("start",{placeholder:"npm run dev",mono:!0})}),(0,s.jsx)(i.D0,{label:D("obj.f.stop"),hint:D("obj.f.stop.hint"),children:q("stop",{mono:!0})}),(0,s.jsx)(i.D0,{label:D("obj.f.port"),hint:D("obj.f.port.hint"),children:q("port",{placeholder:"3000"})})]}),(0,s.jsx)(N,{title:D("of.env"),children:(0,s.jsx)(i.D0,{label:D("obj.f.env"),hint:D("obj.f.env.hint"),children:(0,s.jsx)("textarea",{className:"textarea mono",rows:5,value:x.env,onChange:e=>g("env",e.target.value)})})}),(0,s.jsxs)(N,{title:D("obj.sup.crash"),hint:D("obj.sup.note"),children:[(0,s.jsx)(i.D0,{label:D("obj.sup.restart"),hint:D("obj.sup.restart.hint"),children:(0,s.jsxs)("div",{className:"row gap-s",children:[(0,s.jsxs)("select",{className:"select",value:x.restart,onChange:e=>g("restart",e.target.value),children:[(0,s.jsx)("option",{value:"no",children:D("obj.sup.restart.no")}),(0,s.jsx)("option",{value:"on-failure",children:D("obj.sup.restart.fail")}),(0,s.jsx)("option",{value:"always",children:D("obj.sup.restart.always")})]}),("no"!==x.restart||x.healthRestart)&&(0,s.jsx)("input",{className:"input res-mw130",value:x.maxRestarts,placeholder:D("obj.sup.max"),onChange:e=>g("maxRestarts",e.target.value),title:D("obj.sup.max.hint"),"aria-label":D("obj.sup.max")})]})}),(0,s.jsxs)("details",{className:"fold of-fold",children:[(0,s.jsxs)("summary",{children:[D("obj.sup.more"),(0,s.jsx)(o.A,{size:15,className:"chev","aria-hidden":!0})]}),(0,s.jsxs)("div",{className:"of-grid2",children:[(0,s.jsx)(i.D0,{label:D("obj.sup.stopTimeout"),hint:D("obj.sup.stopTimeout.hint"),children:q("stopTimeout",{placeholder:"8"})}),(0,s.jsx)(i.D0,{label:D("obj.sup.logMax"),hint:D("obj.sup.logMax.hint"),children:q("logMax",{placeholder:"5"})})]})]})]}),(0,s.jsxs)(N,{title:D("obj.sup.health"),hint:D("obj.sup.health.hint"),children:[(0,s.jsx)(i.D0,{label:D("obj.sup.health.how"),children:(0,s.jsxs)("div",{className:"row gap-s",children:[(0,s.jsxs)("select",{className:"select res-mw170",value:x.healthKind,onChange:e=>g("healthKind",e.target.value),children:[(0,s.jsx)("option",{value:"",children:D("obj.sup.health.none")}),(0,s.jsx)("option",{value:"http",children:"HTTP"}),(0,s.jsx)("option",{value:"tcp",children:D("obj.sup.health.tcp")}),(0,s.jsx)("option",{value:"command",children:D("obj.sup.health.command")})]}),x.healthKind&&(0,s.jsx)("input",{className:"input mono grow",value:x.healthTarget,onChange:e=>g("healthTarget",e.target.value),placeholder:"http"===x.healthKind?"http://127.0.0.1:3000/health":"tcp"===x.healthKind?"3000":"curl -fs localhost:3000","aria-label":D("obj.sup.health")})]})}),x.healthKind&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.Tl,{checked:x.healthRestart,onChange:e=>g("healthRestart",e),label:D("obj.sup.healthRestart")}),(0,s.jsx)("p",{className:"hint hint-block",children:(()=>{let e=Number(x.healthInterval)||15,l=Number(x.healthRetries)||3,t=Number(x.maxRestarts)||5;return D(x.healthRestart?"obj.sup.health.sumRestart":"obj.sup.health.sum",{a1:String(e),a2:String(l),a3:String(e*l),a4:String(t)})})()}),(0,s.jsxs)("details",{className:"fold of-fold",children:[(0,s.jsxs)("summary",{children:[D("obj.sup.timing"),(0,s.jsx)(o.A,{size:15,className:"chev","aria-hidden":!0})]}),(0,s.jsxs)("div",{className:"of-grid3",children:[(0,s.jsx)(i.D0,{label:D("obj.sup.interval"),hint:D("obj.sup.interval.hint"),children:q("healthInterval",{placeholder:"15"})}),(0,s.jsx)(i.D0,{label:D("obj.sup.timeout"),hint:D("obj.sup.timeout.hint"),children:q("healthTimeout",{placeholder:"5"})}),(0,s.jsx)(i.D0,{label:D("obj.sup.retries"),hint:D("obj.sup.retries.hint"),children:q("healthRetries",{placeholder:"3"})})]})]})]})]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(N,{title:D("obj.f.mode"),children:(0,s.jsx)(i.$q,{value:x.mode,onChange:e=>g("mode",e),options:[...y?[{id:"template",label:D("obj.mode.template")}]:[],{id:"container",label:D("obj.mode.container")},{id:"compose",label:D("obj.mode.compose")},{id:"existing",label:D("obj.mode.existing")}]})}),"template"===x.mode&&(0,s.jsx)(N,{title:D("obj.mode.template"),hint:D("tpl.hint"),children:(0,s.jsx)(u,{template:x.template,values:x.tplValues,onPick:e=>f(l=>({...l,template:e.id,tplValues:Object.fromEntries(e.fields.map(e=>[e.key,e.default])),name:l.name.trim()?l.name:e.name})),onValue:(e,l)=>f(t=>({...t,tplValues:{...t.tplValues,[e]:l}}))})}),"container"===x.mode&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(N,{title:D("of.image"),children:[(0,s.jsxs)(i.D0,{label:D("obj.f.image"),children:[(0,s.jsxs)("div",{className:"row gap-s",children:[(0,s.jsx)("div",{className:"grow",children:(0,s.jsx)(c.b,{value:x.image,onChange:e=>g("image",e),mono:!0,placeholder:D("dk.pickImage"),ariaLabel:D("obj.f.image"),options:(null!=(t=F.images)?t:[]).map(e=>({value:e.ref,hint:"".concat(e.size).concat(e.created?" \xb7 ".concat(e.created):"")}))})}),P]}),M]}),(0,s.jsx)(i.D0,{label:D("obj.f.ports"),hint:D("obj.f.ports.hint"),children:(0,s.jsx)("textarea",{className:"textarea mono",rows:2,value:x.ports,onChange:e=>g("ports",e.target.value),placeholder:"8080:80"})}),(0,s.jsxs)(i.D0,{label:D("obj.f.volumes"),hint:D("obj.f.volumes.hint"),children:[(0,s.jsx)("textarea",{className:"textarea mono",rows:2,value:x.volumes,onChange:e=>g("volumes",e.target.value)}),(0,s.jsx)(i.yQ,{bare:!0,value:"",buttonLabel:D("obj.f.volumes.add"),onChange:e=>g("volumes","".concat(x.volumes.trimEnd()).concat(x.volumes.trim()?"\n":"").concat(e,":/data"))})]})]}),(0,s.jsxs)(N,{title:D("of.env"),children:[(0,s.jsx)(i.D0,{label:D("obj.f.env"),hint:D("obj.f.env.hint"),children:(0,s.jsx)("textarea",{className:"textarea mono",rows:4,value:x.env,onChange:e=>g("env",e.target.value)})}),(0,s.jsx)(i.D0,{label:D("obj.f.restart"),children:(0,s.jsx)("select",{className:"select",value:x.dockerRestart,onChange:e=>g("dockerRestart",e.target.value),children:["no","always","unless-stopped","on-failure"].map(e=>(0,s.jsx)("option",{value:e,children:e},e))})}),(0,s.jsx)(i.D0,{label:D("obj.f.command"),children:q("command",{mono:!0})})]}),(0,s.jsx)(N,{title:D("of.limits"),hint:D("obj.dk.limits.hint"),children:(0,s.jsxs)("div",{className:"of-grid2",children:[(0,s.jsx)(i.D0,{label:D("obj.dk.memory"),children:q("memory",{placeholder:"512m"})}),(0,s.jsx)(i.D0,{label:D("obj.dk.cpus"),children:q("cpus",{placeholder:"1.5"})}),(0,s.jsx)(i.D0,{label:D("obj.dk.network"),children:q("network",{placeholder:"bridge"})}),(0,s.jsx)(i.D0,{label:D("obj.sup.stopTimeout"),children:q("stopTimeout",{placeholder:"10"})}),(0,s.jsx)(i.D0,{label:D("obj.sup.logMax"),children:q("logMax",{placeholder:"10"})})]})})]}),"compose"===x.mode&&(0,s.jsxs)(N,{title:D("obj.mode.compose"),children:[(0,s.jsx)(i.yQ,{mode:"file",exts:["yml","yaml"],value:x.file,onChange:e=>g("file",e),label:D("obj.f.file"),hint:D("obj.f.file.hint"),placeholder:"/home/you/app/docker-compose.yml"}),(0,s.jsx)(w,{file:x.file,project:x.project,services:x.services,onServices:e=>g("services",e),onProject:e=>g("project",e)}),(0,s.jsx)(i.D0,{label:D("obj.sup.stopTimeout"),hint:D("obj.sup.stopTimeout.hint"),children:q("stopTimeout",{placeholder:"10"})})]}),"existing"===x.mode&&(0,s.jsxs)(N,{title:D("obj.mode.existing"),children:[(0,s.jsxs)(i.D0,{label:D("obj.f.container"),hint:D("obj.f.container.hint"),children:[(0,s.jsxs)("div",{className:"row gap-s",children:[(0,s.jsx)("div",{className:"grow",children:(0,s.jsx)(c.b,{value:x.container,onChange:e=>g("container",e),mono:!0,placeholder:D("dk.pickContainer"),ariaLabel:D("obj.f.container"),options:(null!=(h=F.containers)?h:[]).map(e=>({value:e.name,hint:"".concat(e.image," \xb7 ").concat(e.state).concat(e.managed?" \xb7 ".concat(D("dk.managed")):"")}))})}),P]}),M]}),(0,s.jsx)(i.D0,{label:D("obj.sup.stopTimeout"),hint:D("obj.sup.stopTimeout.hint"),children:q("stopTimeout",{placeholder:"10"})})]})]})]})}function S(e){let[l,t]=(0,n.useState)(e);return{d:l,setD:t,set:(e,l)=>t(t=>({...t,[e]:l}))}}},13460:(e,l,t)=>{t.d(l,{W:()=>b});var s=t(94799),a=t(34023),n=t(92947),r=t(2432),o=t(58960),i=t(7168),d=t(97356),c=t(70665),m=t(42366),h=t(69654),u=t(84561);let p="$shared";function b(e){var l,t,b;let{value:j,onChange:v,fileEnvs:x=[],fileVars:g={},used:f=[],fileDefined:k=[],setBy:y={}}=e,{t:N}=(0,h.s9)(),w=[p,...[...new Set([...Object.keys(j),...x])].filter(e=>e!==p).sort()],[C,S]=(0,a.useState)(()=>{var e;return null!=(e=w.find(e=>{var l;return e!==p&&Object.keys(null!=(l=j[e])?l:{}).length>0}))?e:w[0]}),[D,T]=(0,a.useState)(""),[R,F]=(0,a.useState)({}),q=null!=(l=j[C])?l:{},M=new Set([...C!==p&&null!=(t=g[p])?t:[],...null!=(b=g[C])?b:[]]),P=f.filter(e=>!(e.name in q)).map(e=>({value:e.name,hint:N("vars.used.count",{count:e.count})})),E=(e,l,t)=>{if(void 0!==t&&t!==e&&t in q)return;let s=Object.entries(q).map(s=>{let[a,n]=s;return a===e?[null!=t?t:a,{...n,...l}]:[a,n]});v({...j,[C]:Object.fromEntries(s)})},z=()=>{let e=D.trim();!/^[\w.$-]{1,60}$/.test(e)||e in j||e===p||(v({...j,[e]:{}}),S(e),T(""))};return(0,s.jsxs)("div",{className:"vars",children:[(0,s.jsxs)("div",{className:"row gap-s",children:[(0,s.jsx)("b",{children:N("ow.tab.vars")}),(0,s.jsxs)(m.B,{size:"sm",label:N("common.help"),title:N("vars.how.title"),children:[(0,s.jsx)("p",{children:N("vars.hint")}),(0,s.jsx)("p",{children:N("vars.how.1")}),(0,s.jsx)("p",{children:N("vars.how.2")}),(0,s.jsx)("p",{children:N("vars.note")})]})]}),(0,s.jsxs)("div",{className:"vars-envs",role:"tablist",children:[w.map(e=>(0,s.jsxs)("button",{type:"button",role:"tab","aria-selected":C===e,className:"vars-env ".concat(C===e?"on":""),onClick:()=>S(e),title:e===p?N("vars.all.hint"):void 0,children:[e===p?N("vars.all"):e,x.includes(e)&&(0,s.jsx)("i",{className:"vars-file",title:N("vars.fromFile"),children:"\xb7"})]},e)),(0,s.jsxs)("span",{className:"vars-add",children:[(0,s.jsx)("input",{className:"input",placeholder:N("vars.newEnv"),value:D,onChange:e=>T(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),z())},"aria-label":N("vars.newEnv")}),(0,s.jsx)("button",{type:"button",className:"btn ghost icon sm",onClick:z,disabled:!D.trim(),"aria-label":N("vars.newEnv"),children:(0,s.jsx)(n.A,{size:14})})]})]}),(0,s.jsx)("p",{className:"muted small vars-scope",children:C===p?N("vars.scope.all"):N("vars.scope.env",{env:C})}),(0,s.jsxs)("div",{className:"vars-table",children:[0===Object.keys(q).length&&(0,s.jsx)("p",{className:"muted small",style:{margin:"4px 2px"},children:N("vars.empty")}),Object.entries(q).map((e,l)=>{let[t,a]=e,n="".concat(C,"/").concat(l),c=a.secret&&!R[n];return(0,s.jsxs)("div",{className:"vars-row",children:[(0,s.jsx)(u.b,{value:t,onChange:e=>E(t,{},e.trim()),options:P,mono:!0,placeholder:N("vars.name"),ariaLabel:N("vars.name")}),(0,s.jsx)("input",{className:"input mono",type:c?"password":"text",value:a.value,onChange:e=>E(t,{value:e.target.value}),"aria-label":N("vars.value"),placeholder:a.secret&&a.set&&!a.value?N("vars.saved"):N("vars.value"),autoComplete:"off"}),(0,s.jsx)("button",{type:"button",className:"btn ghost icon sm ".concat(a.secret?"on":""),"aria-pressed":!!a.secret,onClick:()=>E(t,{secret:!a.secret}),"aria-label":N("vars.secret"),title:N("vars.secret.hint"),children:(0,s.jsx)(r.A,{size:14})}),a.secret?(0,s.jsx)("button",{type:"button",className:"btn ghost icon sm",onClick:()=>F(e=>({...e,[n]:!e[n]})),"aria-label":N("vars.show"),title:N("vars.show"),children:R[n]?(0,s.jsx)(o.A,{size:14}):(0,s.jsx)(i.A,{size:14})}):(0,s.jsx)("span",{}),(0,s.jsx)("button",{type:"button",className:"btn ghost icon sm",onClick:()=>(e=>{let l={...q};delete l[e],v({...j,[C]:l})})(t),"aria-label":N("common.delete"),children:(0,s.jsx)(d.A,{size:14})}),M.has(t)&&(0,s.jsx)("span",{className:"vars-note",children:N("vars.overridden")})]},"".concat(C,":").concat(l))})]}),(0,s.jsxs)("div",{className:"row gap-s",children:[(0,s.jsxs)("button",{type:"button",className:"btn sm",onClick:()=>(e=>{let l=null!=e?e:"name",t=1;for(;l in q;)l="".concat(null!=e?e:"name").concat(++t);v({...j,[C]:{...q,[l]:{value:""}}})})(),children:[(0,s.jsx)(n.A,{size:14}),N("vars.add")]}),C!==p&&!x.includes(C)&&(0,s.jsxs)("button",{type:"button",className:"btn ghost sm",onClick:()=>{let e={...j};delete e[C],v(e),S(p)},children:[(0,s.jsx)(c.A,{size:14}),N("vars.delEnv")]})]})]})}},42366:(e,l,t)=>{t.d(l,{B:()=>o});var s=t(94799),a=t(34023),n=t(34265),r=t(21018);function o(e){let{label:l,title:t,children:o,size:i="md",align:d="start"}=e,[c,m]=(0,a.useState)(!1),h=(0,a.useRef)(null),u=(0,a.useRef)(null),p=(0,a.useId)();return(0,r.s)(c,h,()=>m(!1),()=>{var e;return null==(e=u.current)?void 0:e.focus()}),(0,s.jsxs)("span",{className:"help ".concat("sm"===i?"sm":""," ").concat("end"===d?"end":""),ref:h,children:[(0,s.jsx)("button",{ref:u,type:"button",className:"help-btn","aria-label":l,title:l,"aria-haspopup":"dialog","aria-expanded":c,"aria-controls":c?p:void 0,onClick:()=>m(e=>!e),children:(0,s.jsx)(n.A,{size:"sm"===i?15:18})}),c&&(0,s.jsxs)("div",{id:p,role:"dialog","aria-label":t,className:"help-pop",children:[(0,s.jsx)("div",{className:"eyebrow",children:t}),(0,s.jsx)("div",{className:"muted small help-body",children:o})]})]})}},67056:(e,l,t)=>{t.d(l,{dN:()=>q,I5:()=>F});var s=t(94799),a=t(66843),n=t(34023),r=t(59959),o=t(73885),i=t(3414),d=t(94726),c=t(66826),m=t(55712),h=t(79141),u=t(3749),p=t(10804),b=t(69654);let j=null;function v(){let[e,l]=(0,n.useState)(null);return(0,n.useEffect)(()=>{let e=!0;return null!=j||(j=u.FH.get("/object-db/props").catch(e=>{throw j=null,e})),j.then(t=>{e&&l(t)}).catch(()=>void 0),()=>{e=!1}},[]),e}var x=t(9217),g=t(70665),f=t(92947);let k=["session","network","ssl","advanced"];function y(e){let{def:l,value:t,onChange:a}=e;return"boolean"===l.type?(0,s.jsxs)("select",{className:"select",value:t,onChange:e=>a(e.target.value),"aria-label":l.name,children:[(0,s.jsx)("option",{value:"true",children:"true"}),(0,s.jsx)("option",{value:"false",children:"false"})]}):"choice"===l.type?(0,s.jsxs)("select",{className:"select",value:t,onChange:e=>a(e.target.value),"aria-label":l.name,children:[!t&&(0,s.jsx)("option",{value:""}),l.choices.map(e=>(0,s.jsx)("option",{value:e,children:e},e))]}):(0,s.jsx)("input",{className:"input mono",type:"number"===l.type?"number":"text",min:l.min,max:l.max,value:t,placeholder:l.placeholder,autoComplete:"off",onChange:e=>a(e.target.value),"aria-label":l.name})}function N(e){let{engine:l,value:t,onChange:a,groups:n=k,exclude:r=[],quiet:o=!1}=e,{t:i,locale:d}=(0,b.s9)(),c=v();if(!c)return(0,s.jsx)("p",{className:"muted small",style:{margin:0},children:i("dp.loading")});let m=c[l].filter(e=>n.includes(e.group)&&!r.includes(e.name)),h=m.filter(e=>e.name in t),u=m.filter(e=>!(e.name in t));return(0,s.jsxs)("div",{className:"dprops",children:[0===h.length&&!o&&(0,s.jsx)("p",{className:"muted small",style:{margin:0},children:i("dp.none")}),h.map(e=>(0,s.jsxs)("div",{className:"dprop",children:[(0,s.jsxs)("div",{className:"dprop-row",children:[(0,s.jsx)("code",{className:"dprop-name",children:e.name}),(0,s.jsx)("div",{className:"dprop-val",children:(0,s.jsx)(y,{def:e,value:t[e.name],onChange:l=>a({...t,[e.name]:l})})}),(0,s.jsx)("button",{type:"button",className:"btn ghost icon sm",onClick:()=>{let{[e.name]:l,...s}=t;a(s)},"aria-label":i("dp.remove",{name:e.name}),title:i("dp.remove",{name:e.name}),children:(0,s.jsx)(g.A,{size:14})})]}),(0,s.jsx)("p",{className:"muted small dprop-desc",children:"es"===d?e.es:e.desc})]},e.name)),u.length>0&&(0,s.jsxs)("div",{className:"dprop-add",children:[(0,s.jsx)(f.A,{size:14,className:"muted"}),(0,s.jsxs)("select",{className:"select",value:"","aria-label":i("dp.add"),onChange:e=>{let l=m.find(l=>l.name===e.target.value);l&&a({...t,[l.name]:"boolean"===l.type?"true":"choice"===l.type?l.choices[0]:""})},children:[(0,s.jsx)("option",{value:"",children:i("dp.add")}),k.filter(e=>u.some(l=>l.group===e)).map(e=>(0,s.jsx)("optgroup",{label:i("dp.group.".concat(e)),children:u.filter(l=>l.group===e).map(e=>(0,s.jsx)("option",{value:e.name,children:e.name},e.name))},e))]})]})]})}let w={postgres:"postgresql",postgresql:"postgresql",mysql:"mysql",mariadb:"mysql",mssql:"mssql",sqlserver:"mssql",sqlite:"sqlite",file:"sqlite"};function C(e){let l,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],s=e.trim(),a=/^(?:jdbc:)?([a-z][a-z0-9+.-]*):/i.exec(s),n=a?w[a[1].toLowerCase()]:void 0;if(!n)return null;let r={engine:n,host:"",port:"",user:"",password:"",database:"",file:"",ssl:!1,trust:!1,props:{}};if("sqlite"===n){let e=s.replace(/^(?:jdbc:)?(?:sqlite|file):(?:\/\/)?/i,"").split("?")[0],l=decodeURIComponent(e.startsWith("/")?e:"/".concat(e));return l.length>1?{...r,file:l}:null}try{l=new URL(s.replace(/^jdbc:/i,"").replace(/^[a-z][a-z0-9+.-]*:/i,"http:"))}catch(e){return null}r.host=l.hostname,r.port=l.port,r.user=decodeURIComponent(l.username),r.password=decodeURIComponent(l.password),r.database=decodeURIComponent(l.pathname.replace(/^\//,""));let o=new Map(t.map(e=>[e.name.toLowerCase(),e]));return l.searchParams.forEach((e,l)=>{let t=l.toLowerCase(),s=e.toLowerCase();if("sslmode"===t||"ssl"===t||"encrypt"===t||"tls"===t)r.ssl=!["disable","disabled","false","no","0","allow","prefer"].includes(s)&&""!==s,r.trust=r.ssl&&["require","required","preferred"].includes(s);else if("trustservercertificate"===t)r.trust="true"===s;else{let l=o.get(t);l&&!l.name.startsWith("ssl.")&&(r.props[l.name]=e)}}),r}let S={mysql:{label:"MySQL / MariaDB",port:3306,color:"#00758f",sample:"mysql://user:password@localhost:3306/app"},postgresql:{label:"PostgreSQL",port:5432,color:"#4a7fb5",sample:"postgresql://user:password@localhost:5432/app?sslmode=require"},sqlite:{label:"SQLite",port:0,color:"#0f80cc",sample:"sqlite:///home/you/app/data.db"},mssql:{label:"SQL Server",port:1433,color:"#cc2927",sample:"mssql://sa:password@localhost:1433/master"}},D=Object.keys(S),T=["ssl.ca","ssl.cert","ssl.key"],R={"ssl.ca":"db.ssl.ca","ssl.cert":"db.ssl.cert","ssl.key":"db.ssl.key"};function F(e){var l;let t="sqlite"===e.engine?null==(l=e.dbFile.split("/").pop())?void 0:l.replace(/\.[^.]+$/,""):e.dbName.trim()||e.dbHost.trim();return t?"".concat(t," \xb7 ").concat(S[e.engine].label.split(" ")[0]):""}function q(e){let{d:l,set:t,setD:j,objectId:g,creating:f=!1}=e,{t:k,locale:y}=(0,b.s9)(),w=v(),[F,q]=(0,n.useState)({state:"idle"}),[M,P]=(0,n.useState)(""),[E,z]=(0,n.useState)(""),O="sqlite"===l.engine,A=function(e){var a;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,s.jsx)("input",{className:"input ".concat(n.mono?"mono":""),type:n.type,value:l[e],placeholder:n.placeholder,autoComplete:null!=(a=n.auto)?a:"off",onChange:l=>t(e,l.target.value)})},I=e=>{e!==l.engine&&(j(l=>({...l,engine:e,dbProps:{},dbSsl:!1,dbTrust:!1})),q({state:"idle"}))},_=async()=>{q({state:"busy"});try{let e=await u.FH.post("/object-db/test",{id:g,config:(0,x.Mr)(l)});q({state:"ok",text:"".concat(e.version," \xb7 ").concat(e.ms," ms")})}catch(e){q({state:"err",text:e instanceof Error?e.message:""})}},L=()=>{var e,t;let s=C(M,null==w?void 0:w[null!=(t=null==(e=C(M))?void 0:e.engine)?t:l.engine]);if(!s)return void z(k("db.url.bad"));z(""),q({state:"idle"}),j(e=>({...e,engine:s.engine,dbHost:s.host,dbPort:s.port,dbUser:s.user,dbPassword:s.password,dbName:s.database,dbFile:s.file,dbSsl:s.ssl,dbTrust:s.trust,dbProps:s.props})),P("")},H=(0,s.jsxs)(s.Fragment,{children:[O?(0,s.jsx)(p.yQ,{mode:"file",exts:["db","sqlite","sqlite3","db3"],value:l.dbFile,onChange:e=>t("dbFile",e),label:k("db.file"),hint:k("db.file.hint"),placeholder:"/home/you/app/data.db"}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"of-grid2",children:[(0,s.jsx)(p.D0,{label:k("db.host"),children:A("dbHost",{placeholder:"127.0.0.1",mono:!0})}),(0,s.jsx)(p.D0,{label:k("db.port"),children:A("dbPort",{placeholder:String(S[l.engine].port)})}),(0,s.jsx)(p.D0,{label:k("db.user"),children:A("dbUser",{mono:!0})}),(0,s.jsx)(p.D0,{label:k("db.password"),hint:l.dbPasswordSet&&!l.dbPassword?k("db.password.saved"):void 0,children:(0,s.jsx)(a.y,{value:l.dbPassword,autoComplete:"new-password",placeholder:l.dbPasswordSet?"••••••••":"",onChange:e=>t("dbPassword",e.target.value)})})]}),(0,s.jsx)(p.D0,{label:k("db.database"),hint:k("db.database.hint"),children:A("dbName",{mono:!0})})]}),(0,s.jsxs)("div",{className:"row gap-s wrap db-test",children:[(0,s.jsxs)("button",{type:"button",className:"btn sm",onClick:()=>void _(),disabled:"busy"===F.state||!!O&&!l.dbFile.trim(),children:["busy"===F.state?(0,s.jsx)(r.A,{size:14,className:"spin"}):(0,s.jsx)(o.A,{size:14}),k("db.test")]}),"ok"===F.state&&(0,s.jsxs)("span",{className:"db-ok small",children:[(0,s.jsx)(i.A,{size:14}),k("db.test.ok")," \xb7 ",F.text]}),"err"===F.state&&(0,s.jsxs)("span",{className:"db-bad small",children:[(0,s.jsx)(d.A,{size:14}),F.text]})]})]}),K=O?null:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(p.Tl,{checked:l.dbSsl,onChange:e=>t("dbSsl",e),label:k("db.ssl")}),l.dbSsl&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(p.Tl,{checked:l.dbTrust,onChange:e=>t("dbTrust",e),label:k("db.trust"),hint:l.dbTrust?k("db.trust.on"):k("db.trust.off")}),T.filter(e=>null==w?void 0:w[l.engine].some(l=>l.name===e)).map(e=>{var a;let n=w[l.engine].find(l=>l.name===e);return(0,s.jsx)(p.yQ,{mode:"file",exts:["pem","crt","cer","key"],value:null!=(a=l.dbProps[e])?a:"",onChange:s=>t("dbProps",{...l.dbProps,[e]:s}),label:k(R[e]),hint:"es"===y?n.es:n.desc,placeholder:n.placeholder},e)}),(0,s.jsx)(N,{engine:l.engine,value:l.dbProps,onChange:e=>t("dbProps",e),groups:["ssl"],exclude:[...T],quiet:!0})]})]}),U=(0,s.jsx)(N,{engine:l.engine,value:l.dbProps,onChange:e=>t("dbProps",e),groups:["session","network","advanced"]}),$=(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(p.Tl,{checked:l.dbReadOnly,onChange:e=>t("dbReadOnly",e),label:k("db.readonly"),hint:l.dbReadOnly?k("db.readonly.on"):k("db.readonly.off")}),(0,s.jsxs)("div",{className:"of-grid2",children:[(0,s.jsx)(p.D0,{label:k("db.timeout"),hint:k("db.timeout.hint"),children:A("dbTimeout",{placeholder:"30"})}),(0,s.jsx)(p.D0,{label:k("db.maxRows"),hint:k("db.maxRows.hint"),children:A("dbMaxRows",{placeholder:"1000"})})]})]}),B=(0,s.jsx)("div",{className:"dbengines",role:"group","aria-label":k("db.engine"),children:D.map(e=>(0,s.jsxs)("button",{type:"button",className:"dbengine","aria-pressed":l.engine===e,style:{"--c":S[e].color},onClick:()=>I(e),children:[(0,s.jsx)(c.A,{size:18}),(0,s.jsx)("b",{children:S[e].label}),(0,s.jsx)("small",{children:"sqlite"===e?k("db.engine.file"):k("db.engine.port",{port:S[e].port})})]},e))});return f?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(x.Zp,{title:k("db.engine"),hint:k("db.engine.hint"),children:B}),(0,s.jsxs)(x.Zp,{title:k("db.conn"),hint:k("db.conn.hint"),children:[(0,s.jsx)(p.D0,{label:k("db.url"),error:E,hint:E?void 0:k("db.url.hint"),children:(0,s.jsxs)("div",{className:"row gap-s",children:[(0,s.jsx)("input",{className:"input mono grow",value:M,placeholder:S[l.engine].sample,autoComplete:"off",spellCheck:!1,onChange:e=>{P(e.target.value),z("")},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),L())}}),(0,s.jsxs)("button",{type:"button",className:"btn sm",disabled:!M.trim(),onClick:L,children:[(0,s.jsx)(m.A,{size:14}),k("db.url.use")]})]})}),H]}),(0,s.jsx)(x.Zp,{title:k("db.safety"),hint:k("db.safety.hint"),children:$}),(0,s.jsxs)("details",{className:"of-adv",children:[(0,s.jsxs)("summary",{children:[(0,s.jsx)(h.A,{size:15}),k("db.advanced"),(0,s.jsx)("span",{className:"muted small",children:k("db.advanced.hint")})]}),!O&&(0,s.jsx)(x.Zp,{title:k("db.sslTitle"),hint:k("db.sslTitle.hint"),children:K}),(0,s.jsx)(x.Zp,{title:k("dp.title"),hint:k("dp.hint"),children:U})]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(x.Zp,{title:k("db.conn"),hint:k("db.conn.hint"),children:[(0,s.jsx)(p.D0,{label:k("db.engine"),children:(0,s.jsx)(p.$q,{value:l.engine,onChange:I,options:D.map(e=>({id:e,label:S[e].label}))})}),H]}),!O&&(0,s.jsx)(x.Zp,{title:k("db.sslTitle"),hint:k("db.sslTitle.hint"),children:K}),(0,s.jsx)(x.Zp,{title:k("dp.title"),hint:k("dp.hint"),children:U}),(0,s.jsx)(x.Zp,{title:k("db.safety"),hint:k("db.safety.hint"),children:$})]})}},84561:(e,l,t)=>{t.d(l,{b:()=>o});var s=t(94799),a=t(34023),n=t(21018),r=t(10804);function o(e){let{value:l,onChange:t,options:o,placeholder:i,mono:d=!1,ariaLabel:c,onOpen:m,empty:h}=e,[u,p]=(0,a.useState)(!1),[b,j]=(0,a.useState)(0),v=(0,a.useRef)(null);(0,n.s)(u,v,()=>p(!1));let x=(0,a.useMemo)(()=>{let e=l.trim().toLowerCase();return(e?o.filter(l=>{var t,s;return"".concat(l.value," ").concat(null!=(t=l.label)?t:""," ").concat(null!=(s=l.hint)?s:"").toLowerCase().includes(e)}):o).slice(0,60)},[o,l]);(0,a.useEffect)(()=>{j(0)},[l,u]);let g=(0,r.Bp)(u&&(x.length>0||!!h),b,x.length),f=e=>{t(e.value),p(!1)};return(0,s.jsxs)("div",{className:"sg",ref:v,children:[(0,s.jsx)("input",{className:"input ".concat(d?"mono":""),value:l,placeholder:i,"aria-label":c,autoComplete:"off",spellCheck:!1,...g.input,onFocus:()=>{u||(p(!0),null==m||m())},onClick:()=>p(!0),onChange:e=>{t(e.target.value),p(!0)},onKeyDown:e=>{"ArrowDown"===e.key?(e.preventDefault(),p(!0),j(e=>Math.min(x.length-1,e+1))):"ArrowUp"===e.key?(e.preventDefault(),j(e=>Math.max(0,e-1))):"Enter"===e.key&&u&&x[b]?(e.preventDefault(),f(x[b])):"Escape"===e.key&&u&&(e.stopPropagation(),p(!1))}}),u&&(x.length>0||h)&&(0,s.jsxs)("ul",{className:"sg-list",...g.listProps,children:[0===x.length&&(0,s.jsx)("li",{className:"sg-empty",role:"presentation",children:h}),x.map((e,l)=>{var t;return(0,s.jsx)("li",{...g.optionProps(l),children:(0,s.jsxs)("button",{type:"button",tabIndex:-1,className:"sg-opt ".concat(l===b?"hi":""),onMouseDown:e=>e.preventDefault(),onMouseEnter:()=>j(l),onClick:()=>f(e),children:[(0,s.jsx)("span",{className:"nm ".concat(d?"mono":""),children:null!=(t=e.label)?t:e.value}),e.hint&&(0,s.jsx)("span",{className:"hint",children:e.hint})]})},e.value)})]})]})}},95587:(e,l,t)=>{t.d(l,{X:()=>h});var s=t(94799),a=t(34023),n=t(3749),r=t(69654),o=t(48538),i=t(10804),d=t(9217),c=t(52974),m=t(67056);function h(e){let{presetColonyId:l,presetKind:t,onClose:h,onSaved:u}=e,{t:p}=(0,r.s9)(),{refresh:b}=(0,o.o0)(),j=(0,i.dj)(),{d:v,set:x,setD:g}=(0,d.Te)(()=>(0,d.QJ)(void 0,l,t)),[f,k]=(0,a.useState)(""),[y,N]=(0,a.useState)(!1),w=async()=>{let e=v.name.trim()||("database"===v.kind?(0,m.I5)(v):"");if(!e)return void k(p("obj.err.name"));N(!0),k("");try{if("docker"===v.kind&&"template"===v.mode&&!v.template){k(p("tpl.pick")),N(!1);return}let l="docker"===v.kind&&"template"===v.mode?await n.FH.post("/objects/from-template",{name:e,colony_id:v.colony_id||null,template:v.template,values:v.tplValues}):await n.FH.post("/objects",{name:e,colony_id:v.colony_id||null,kind:v.kind,config:(0,d.qP)(v)});v.manager&&c.Gn.includes(v.kind)&&await n.FH.put("/objects/".concat(l.id,"/manager"),{agent_id:v.manager}).catch(e=>j(e instanceof Error?e.message:"","err")),await b(["objects","agents"]),j(p("obj.created")),null==u||u(l.id),h()}catch(e){k(e instanceof Error?e.message:p("edit.saveFailed")),N(!1)}};return(0,s.jsx)(i._s,{title:p("obj.newTitle"),subtitle:p("obj.subtitle"),onClose:h,footer:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{className:"btn ghost",onClick:h,children:p("common.cancel")}),(0,s.jsx)("button",{className:"btn primary",disabled:y,onClick:()=>void w(),children:p("obj.create")})]}),children:(0,s.jsx)(d.Bh,{d:v,set:x,setD:g,showKind:!0,error:f})})}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[606],{5372:(e,n,t)=>{t.d(n,{kh:()=>g,rs:()=>j,z6:()=>m});var s=t(94799),a=t(34023),r=t(56742),l=t(48538),i=t(69654),c=t(47890),o=t(72942),d=t(10804),u=t(15426);function m(){let[e,n]=(0,a.useState)(null),t=(0,a.useRef)(void 0),l=(0,a.useRef)(!1);l.current=!!e;let i=(0,a.useCallback)((e,s,a)=>{clearTimeout(t.current);let r=()=>n({id:e,rect:s.getBoundingClientRect()});a||l.current?r():t.current=setTimeout(r,280)},[]),c=(0,a.useCallback)(()=>{clearTimeout(t.current),n(null)},[]);return(0,a.useEffect)(()=>{if(!e)return;let n=e=>{"Escape"===e.key&&c()};return window.addEventListener("keydown",n),window.addEventListener("scroll",c,!0),window.addEventListener("resize",c),()=>{window.removeEventListener("keydown",n),window.removeEventListener("scroll",c,!0),window.removeEventListener("resize",c)}},[e,c]),(0,a.useEffect)(()=>()=>clearTimeout(t.current),[]),{bind:(0,a.useCallback)(e=>({onMouseEnter:n=>i(e,n.currentTarget,!1),onMouseLeave:c,onFocus:n=>{n.currentTarget.matches(":focus-visible")&&i(e,n.currentTarget,!0)},onBlur:c,onClick:c}),[i,c]),node:e&&"undefined"!=typeof document?(0,r.createPortal)((0,s.jsx)(p,{anchor:e}),document.body):null}}function h(e){let{label:n,children:t}=e;return(0,s.jsxs)("div",{className:"ap-row",children:[(0,s.jsx)("dt",{children:n}),(0,s.jsx)("dd",{children:t})]})}function g(e){let{agent:n,hideColony:t=!1}=e,{t:a}=(0,i.s9)(),r=(0,l.Tu)(e=>e.agents),m=(0,l.Tu)(e=>e.colonies).find(e=>e.id===n.colony_id),g=(0,o.E)((0,l.M_)(n.id)),j=n.worker_ids.map(e=>{var n;return null==(n=r.find(n=>n.id===e))?void 0:n.name}).filter(Boolean),p=r.filter(e=>"orchestrator"===e.role&&e.worker_ids.includes(n.id)).map(e=>e.name),f=e=>e.length>4?"".concat(e.slice(0,4).join(", ")," ").concat(a("hover.more",{count:e.length-4})):e.join(", ");return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"ap-head",children:[(0,s.jsx)(d._h,{agent:n}),(0,s.jsxs)("div",{className:"grow",children:[(0,s.jsx)("b",{className:"ap-name",children:n.name}),(0,s.jsxs)("div",{className:"row gap-s wrap mt-s",children:[(0,s.jsx)(d.PW,{role:n.role}),(0,s.jsx)(d.P5,{status:n.status}),(0,s.jsx)(u.IX,{agent:n}),(0,s.jsx)(u.R4,{agent:n})]})]})]}),(0,s.jsx)("p",{className:"ap-desc ".concat(n.description?"":"muted"),children:n.description||a("switcher.noDescription")}),g&&(0,s.jsxs)("div",{className:"ap-now",children:[(0,s.jsx)("i",{className:"dot run"}),g]}),(0,s.jsxs)("dl",{className:"ap-rows",children:[(0,s.jsxs)(h,{label:a("form.provider"),children:[c.xq[n.provider].label,n.model?" \xb7 ".concat(n.model):" \xb7 ".concat(a("model.cliDefault"))]}),(0,s.jsx)(h,{label:a("inherit.permissions"),children:(0,c.Ck)(n.effective.permission)}),(0,s.jsxs)(h,{label:a("colony.folder"),children:[(0,s.jsx)("span",{className:"mono",children:(0,c._1)(n.effective.cwd)}),n.effective.inherited.includes("cwd")&&(0,s.jsxs)("span",{className:"muted",children:[" \xb7 ",a("colony.fromColony")]})]}),!t&&(0,s.jsx)(h,{label:a("form.colony"),children:m?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("i",{className:"cdot",style:{background:m.color||"var(--honey)"}}),m.name]}):(0,s.jsx)("span",{className:"muted",children:a("common.noColony")})}),"orchestrator"===n.role?(0,s.jsx)(h,{label:a("form.team"),children:j.length?f(j):(0,s.jsx)("span",{className:"muted",children:a("colony.noWorkers")})}):(0,s.jsx)(h,{label:a("rel.directedBy"),children:p.length?f(p):(0,s.jsx)("span",{className:"muted",children:a("hover.noOrchestrator")})}),(0,s.jsx)(h,{label:a("colony.session"),children:(0,s.jsx)("span",{className:"mono",children:n.session_id?"".concat(n.session_id.slice(0,12),"…"):a("colony.noSession")})}),(0,s.jsxs)(h,{label:a("agents.col.updated"),children:[(0,c.KN)(n.updated_at),!!n.queued&&n.queued>0&&(0,s.jsxs)("span",{className:"muted",children:[" \xb7 ",a("queue.count",{count:n.queued})]})]})]})]})}function j(e){var n,t,l;let{target:i,width:c=310,pinned:o=!1,onClose:d,children:u,label:m}=e,h=(0,a.useRef)(null),[g,j]=(0,a.useState)(null),p=(0,a.useCallback)(()=>{var e,n;if(!i)return;let t=null!=(n=null==(e=h.current)?void 0:e.offsetHeight)?n:0,s=i instanceof DOMRect?i:i.getBoundingClientRect(),a=s.right+12+c+8<=window.innerWidth?"right":"left",r="right"===a?s.right+12:Math.max(8,s.left-12-c),l=Math.min(Math.max(8,s.top+s.height/2-t/2),Math.max(8,window.innerHeight-t-8));j(e=>e&&e.left===r&&e.top===l&&e.side===a?e:{left:r,top:l,side:a})},[i,c]);return((0,a.useLayoutEffect)(p),(0,a.useEffect)(()=>{if(!o)return;window.addEventListener("scroll",p,!0),window.addEventListener("resize",p);let e="undefined"!=typeof ResizeObserver&&h.current?new ResizeObserver(p):null;e&&h.current&&e.observe(h.current);let n=e=>{var n;let t=e.target;(null==(n=h.current)?void 0:n.contains(t))||t.closest('.cell, [role="dialog"], .modal, .drawer, .scrim, .menu-pop')||null==d||d()};return document.addEventListener("pointerdown",n),()=>{window.removeEventListener("scroll",p,!0),window.removeEventListener("resize",p),null==e||e.disconnect(),document.removeEventListener("pointerdown",n)}},[o,p,d]),i&&"undefined"!=typeof document)?(0,r.createPortal)((0,s.jsx)("div",{ref:h,className:"ap-card ".concat(o?"pinned":""," ").concat(null!=(n=null==g?void 0:g.side)?n:"right"),role:o?"complementary":"tooltip","aria-label":m,style:{left:null!=(t=null==g?void 0:g.left)?t:-9999,top:null!=(l=null==g?void 0:g.top)?l:-9999,width:c,visibility:g?"visible":"hidden"},children:u}),document.body):null}function p(e){let{anchor:n}=e,t=(0,l.fJ)(n.id);return t?(0,s.jsx)(j,{target:n.rect,children:(0,s.jsx)(g,{agent:t})}):null}},15426:(e,n,t)=>{t.d(n,{IX:()=>u,R4:()=>m});var s=t(94799),a=t(41463),r=t.n(a),l=t(34023),i=t(494),c=t(48538),o=t(69654);function d(e){let n=(0,c.Tu)(e=>e.agents);return(0,l.useMemo)(()=>({of:e.cloned_from?n.find(n=>n.id===e.cloned_from):void 0,clones:n.filter(n=>n.cloned_from===e.id)}),[n,e.id,e.cloned_from])}function u(e){let{agent:n,link:t=!1,className:a=""}=e,{t:l}=(0,o.s9)(),{of:c}=d(n);if(!c)return null;let u=(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.A,{size:11,"aria-hidden":!0}),c.name]}),m=l("agent.cloneOf",{name:c.name});return t?(0,s.jsx)(r(),{className:"chip clone ".concat(a),href:"/agents/".concat(c.id),title:m,onClick:e=>e.stopPropagation(),children:u}):(0,s.jsx)("span",{className:"chip clone ".concat(a),title:m,children:u})}function m(e){let{agent:n}=e,{t}=(0,o.s9)(),{clones:a}=d(n);return a.length?(0,s.jsxs)("span",{className:"chip clone",title:t("agent.clonesList",{names:a.map(e=>e.name).join(", ")}),children:[(0,s.jsx)(i.A,{size:11,"aria-hidden":!0}),t("agent.clones.count",{count:a.length})]}):null}},20422:(e,n,t)=>{t.d(n,{N:()=>i});var s=t(94799),a=t(70283),r=t(42162),l=t(69654);function i(e){let{spec:n,label:t,title:i}=e,{t:c}=(0,l.s9)(),o=(0,r.n)();return(0,s.jsxs)("button",{className:"btn sm",onClick:()=>void o.openTerminal(n),title:i,children:[(0,s.jsx)(a.A,{size:14}),null!=t?t:c("dock.nav")]})}},31606:(e,n,t)=>{t.d(n,{md:()=>M,wl:()=>R});var s=t(94799),a=t(20422),r=t(34023),l=t(41463),i=t.n(l),c=t(66654),o=t(70665),d=t(7991),u=t(66826),m=t(2432),h=t(32335),g=t(59959),j=t(73885),p=t(47405),f=t(83372),b=t(6673),x=t(19431),v=t(33691),y=t(26701),k=t(5372),w=t(3749),N=t(69654),E=t(47890),C=t(10804),_=t(28941),A=t(48538),z=t(42162),S=t(1517),$=t(74988),L=t(75010);let T={mysql:"MySQL / MariaDB",postgresql:"PostgreSQL",sqlite:"SQLite",mssql:"SQL Server"};function M(e){let{status:n,className:t=""}=e;return(0,s.jsx)("i",{className:"odot ".concat($.Wy[n]," ").concat(t),"aria-hidden":!0})}function H(e){var n,t,s,a;if("server"===e.kind)return e.config.start;if("http"===e.kind)return(0,E._1)(e.config.folder);if("database"===e.kind){let t=e.config;return"sqlite"===t.engine?(0,E._1)(null!=(n=t.file)?n:""):"".concat(t.host||"127.0.0.1").concat(t.port?":".concat(t.port):"").concat(t.database?"/".concat(t.database):"")}if("cluster"===e.kind)return"".concat(e.config.members.length);let r=e.config;return"container"===r.mode?null!=(t=r.image)?t:"":"compose"===r.mode?(0,E._1)(null!=(s=r.file)?s:""):null!=(a=r.container)?a:""}function R(e){let{object:n,target:t,onClose:l,onCreateManager:R}=e,{t:q}=(0,N.s9)(),{agents:F,objects:P,colonies:O}=(0,A.o0)(),I=(0,z.n)(),B="server"===n.kind||"docker"===n.kind&&"compose"!==n.config.mode,W=n.manager_id?F.filter(e=>e.id===n.manager_id):F.filter(e=>{var t,s;return e.skill_ids.includes("database"===n.kind?S.pU:S.tJ)&&(null!=(t=e.colony_id)?t:null)===(null!=(s=n.colony_id)?s:null)}),[D,K]=(0,r.useState)(!1),{refresh:J}=(0,A.o0)(),Q=async e=>{try{await w.FH.put("/objects/".concat(n.id,"/manager"),{agent_id:e}),await J(["objects","agents"]),K(!1)}catch(e){U(e instanceof Error?e.message:"","err")}},U=(0,C.dj)(),[X,G]=(0,r.useState)(null),{icon:V,color:Y}=$.Nd[n.kind],Z=n.state.status,ee=async e=>{G(e);try{await w.FH.post("/objects/".concat(n.id,"/action"),{action:e})}catch(n){U("".concat(q("obj.act.failed",{action:q("obj.act.".concat(e))}),": ").concat(n instanceof Error?n.message:""),"err")}finally{G(null)}},en="running"===Z||"starting"===Z,et=async()=>{G("test");try{let e=await w.FH.post("/object-db/test",{id:n.id,config:n.config});U("".concat(q("db.test.ok")," \xb7 ").concat(e.version," \xb7 ").concat(e.ms," ms"))}catch(e){U(e instanceof Error?e.message:"","err")}finally{G(null)}},es="cluster"===n.kind?n.config.members.map(e=>P.find(n=>n.id===e)).filter(e=>!!e):[];return(0,s.jsx)(k.rs,{target:t,pinned:!0,width:380,label:n.name,onClose:l,children:(0,s.jsxs)("div",{className:"col obj-panel res-gap12",children:[(0,s.jsxs)("div",{className:"ap-corner row gap-s",children:[(0,s.jsx)(i(),{className:"btn ghost icon sm",href:"/resources/".concat(n.id,"?tab=config"),"aria-label":q("obj.act.edit"),title:q("obj.act.edit"),children:(0,s.jsx)(c.A,{size:15})}),(0,s.jsx)("button",{className:"btn ghost icon sm",onClick:l,"aria-label":q("common.close"),title:"".concat(q("common.close")," (Esc)"),children:(0,s.jsx)(o.A,{size:16})})]}),(0,s.jsxs)("div",{className:"row gap-l res-pr70",children:[(0,s.jsx)("span",{className:"obj-ico",style:{"--c":Y},children:(0,s.jsx)(V,{size:22})}),(0,s.jsxs)("div",{className:"grow res-minw0",children:[(0,s.jsx)("h2",{className:"res-h2",children:n.name}),(0,s.jsxs)("div",{className:"row gap-s wrap res-mt4",children:[(0,s.jsxs)("span",{className:"ostatus ".concat($.Wy[Z]),children:[(0,s.jsx)(M,{status:Z}),q("obj.status.".concat(Z))]}),(0,s.jsx)("span",{className:"muted small",children:q("obj.kind.".concat(n.kind))})]})]})]}),(n.state.detail||n.state.since)&&(0,s.jsx)("p",{className:"muted small res-m0",children:[(0,$.HS)(q,n.state.detail),n.state.since&&en?q("obj.since",{time:(0,E.KN)(n.state.since)}):"",n.state.pid?q("obj.pid",{pid:n.state.pid}):""].filter(Boolean).join(" \xb7 ")}),(0,s.jsxs)(i(),{className:"btn primary",href:"/resources/".concat(n.id),children:[(0,s.jsx)(d.A,{size:15}),q("obj.open")]}),"cluster"!==n.kind&&(0,s.jsx)("div",{className:"mono small obj-cmd",title:H(n),children:H(n)}),"database"===n.kind&&(0,s.jsxs)("div",{className:"row gap-s wrap",children:[(0,s.jsxs)("span",{className:"db-badge",children:[(0,s.jsx)(u.A,{size:12}),T[n.config.engine]]}),!1!==n.config.readOnly?(0,s.jsxs)("span",{className:"db-badge ro",children:[(0,s.jsx)(m.A,{size:12}),q("db.readonly.badge")]}):(0,s.jsxs)("span",{className:"db-badge rw",children:[(0,s.jsx)(h.A,{size:12}),q("db.write.badge")]}),(0,s.jsxs)("button",{className:"btn sm",disabled:!!X,onClick:()=>void et(),children:["test"===X?(0,s.jsx)(g.A,{size:14,className:"spin"}):(0,s.jsx)(j.A,{size:14}),q("db.test")]})]}),"http"===n.kind||"database"===n.kind?null:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"row gap-s wrap",children:[(0,s.jsxs)("button",{className:"btn primary sm",disabled:!!X||("cluster"===n.kind?"running"===Z:en),onClick:()=>void ee("start"),children:[(0,s.jsx)(p.A,{size:14}),q("cluster"===n.kind?"obj.act.startAll":"obj.act.start")]}),(0,s.jsxs)("button",{className:"btn sm",disabled:!!X||!en&&"error"!==Z&&!("cluster"===n.kind&&es.some(e=>"running"===e.state.status)),onClick:()=>void ee("stop"),children:[(0,s.jsx)(f.A,{size:14}),q("cluster"===n.kind?"obj.act.stopAll":"obj.act.stop")]}),(0,s.jsxs)("button",{className:"btn sm",disabled:!!X,onClick:()=>void ee("restart"),children:[(0,s.jsx)(b.A,{size:14}),q("cluster"===n.kind?"obj.act.restartAll":"obj.act.restart")]})]}),"cluster"===n.kind&&(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"eyebrow res-mb6",children:q("obj.members")}),es.length?(0,s.jsx)("div",{className:"col res-gap4",children:es.map((e,n)=>(0,s.jsxs)("div",{className:"row gap-s small",children:[(0,s.jsx)("span",{className:"ord",children:n+1}),(0,s.jsx)(M,{status:e.state.status}),(0,s.jsx)("b",{className:"grow ellipsis",children:e.name}),(0,s.jsx)("span",{className:"muted",children:q("obj.status.".concat(e.state.status))})]},e.id))}):(0,s.jsx)("p",{className:"muted small res-m0",children:q("obj.members.empty")})]}),(0,s.jsxs)("div",{className:"row gap-s wrap",children:[B&&(0,s.jsx)(a.N,{spec:{objectId:n.id},label:"server"===n.kind?q("dock.here"):q("dock.shell")}),(0,s.jsxs)("button",{className:"btn sm",onClick:()=>I.openLogs(n.id,n.name),children:[(0,s.jsx)(x.A,{size:14}),q("dock.logs")]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"eyebrow res-mb6",children:q("obj.logs")}),(0,s.jsx)(L.I,{id:n.id})]})]}),"http"!==n.kind&&(0,s.jsxs)("div",{className:"obj-managers",children:[(0,s.jsx)("div",{className:"eyebrow res-mb6",children:q("obj.managers")}),W.length?(0,s.jsx)("div",{className:"row gap-s wrap",children:W.map(e=>(0,s.jsxs)("span",{className:"chip ps-chip",children:[(0,s.jsxs)(i(),{href:"/agents/".concat(e.id),title:"plan"===e.permission?q("database"===n.kind?"obj.managers.readonly.db":"obj.managers.readonly"):void 0,children:[e.name,"plan"===e.permission?" \xb7 ".concat(q("obj.managers.ro")):""]}),n.manager_id===e.id&&(0,s.jsx)("button",{type:"button",onClick:()=>void Q(null),"aria-label":q("obj.managers.remove"),title:q("obj.managers.remove"),children:(0,s.jsx)(o.A,{size:12})})]},e.id))}):(0,s.jsx)("p",{className:"muted small res-m0",children:q("obj.managers.none")}),n.manager_id&&(0,s.jsx)("p",{className:"muted small res-mt6",children:q("obj.managers.only")}),(0,s.jsxs)("div",{className:"row gap-s wrap res-mt8",children:[(0,s.jsxs)("button",{className:"btn sm",onClick:R,children:[(0,s.jsx)(v.A,{size:14}),q("obj.managers.create")]}),(0,s.jsxs)("button",{className:"btn sm","aria-pressed":D,onClick:()=>K(e=>!e),children:[(0,s.jsx)(y.A,{size:14}),q("obj.managers.add")]})]}),D&&(0,s.jsx)("div",{className:"res-mt8",children:(0,s.jsx)(_.c,{inline:!0,autoFocus:!0,options:F.filter(e=>e.id!==n.manager_id).map(e=>{var n,t;return{id:e.id,label:e.name,hint:null!=(t=null==(n=O.find(n=>n.id===e.colony_id))?void 0:n.name)?t:q("common.noColony")}}),value:[],onChange:e=>e[0]&&void Q(e[0]),placeholder:q("obj.manager.placeholder"),empty:q("obj.manager.empty"),ariaLabel:q("obj.managers.add")})})]})]})})}},42162:(e,n,t)=>{t.d(n,{$:()=>u,n:()=>c});var s=t(94799),a=t(34023),r=t(3749),l=t(69654);let i=(0,a.createContext)(null),c=()=>{let e=(0,a.useContext)(i);if(!e)throw Error("DockProvider missing");return e},o="hive-am.dock",d=e=>Math.max(140,Math.min(e,Math.round(.8*window.innerHeight)));function u(e){let{children:n}=e,{t}=(0,l.s9)(),[c,u]=(0,a.useState)(!1),[m,h]=(0,a.useState)(320),[g,j]=(0,a.useState)([]),[p,f]=(0,a.useState)(null),[b,x]=(0,a.useState)(!0),[v,y]=(0,a.useState)(""),k=(0,a.useRef)(!1);(0,a.useEffect)(()=>{try{var e;let n=JSON.parse(null!=(e=localStorage.getItem(o))?e:"{}");"number"==typeof n.height&&h(d(n.height)),n.open&&u(!0),"string"==typeof n.active&&f(n.active)}catch(e){}r.FH.get("/terminals").then(e=>{x(e.enabled),j(n=>[...e.terminals.map(e=>({key:"t:".concat(e.id),kind:"term",id:e.id,title:e.title,cwd:e.cwd,ended:e.alive?void 0:e.exitCode})),...n.filter(e=>"logs"===e.kind)]),f(n=>n&&e.terminals.some(e=>"t:".concat(e.id)===n)?n:e.terminals[0]?"t:".concat(e.terminals[0].id):n)}).catch(()=>void 0).finally(()=>{k.current=!0})},[]),(0,a.useEffect)(()=>{if(k.current)try{localStorage.setItem(o,JSON.stringify({open:c,height:m,active:p}))}catch(e){}},[c,m,p]),(0,a.useEffect)(()=>{document.documentElement.style.setProperty("--app-h",c?"calc(100vh - ".concat(m,"px)"):"100vh")},[c,m]);let w=(0,a.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};y("");try{let n=await r.FH.post("/terminals",e),t={key:"t:".concat(n.id),kind:"term",id:n.id,title:n.title,cwd:n.cwd};j(e=>[...e,t]),f(t.key),u(!0)}catch(e){y(e instanceof Error?e.message:t("dock.failed")),u(!0)}},[t]),N=(0,a.useCallback)((e,n)=>{let t="l:".concat(e);j(s=>s.some(e=>e.key===t)?s:[...s,{key:t,kind:"logs",objectId:e,title:n}]),f(t),u(!0)},[]),E=(0,a.useCallback)(e=>{j(n=>{let t=n.find(n=>n.key===e);(null==t?void 0:t.kind)==="term"&&r.FH.del("/terminals/".concat(t.id)).catch(()=>void 0);let s=n.filter(n=>n.key!==e);return f(n=>{var t,a;return n===e?null!=(a=null==(t=s[s.length-1])?void 0:t.key)?a:null:n}),s})},[]),C=(0,a.useCallback)((e,n)=>j(t=>t.map(t=>t.key===e&&"term"===t.kind?{...t,ended:null!=n?n:0}:t)),[]),_=(0,a.useCallback)(()=>{if(c)return void u(!1);u(!0),!g.length&&b&&w()},[c,g.length,b,w]);(0,a.useEffect)(()=>{let e=e=>{!e.ctrlKey||e.altKey||e.metaKey||"`"!==e.key&&"Backquote"!==e.code||(e.preventDefault(),e.stopPropagation(),_())};return window.addEventListener("keydown",e,!0),()=>window.removeEventListener("keydown",e,!0)},[_]);let A=(0,a.useMemo)(()=>({open:c,height:m,tabs:g,active:p,enabled:b,error:v,toggle:_,setOpen:u,setHeight:e=>h(d(e)),setActive:f,openTerminal:w,openLogs:N,closeTab:E,markEnded:C}),[c,m,g,p,b,v,_,w,N,E,C]);return(0,s.jsx)(i.Provider,{value:A,children:n})}},72942:(e,n,t)=>{t.d(n,{E:()=>r});var s=t(68419),a=t(10969);function r(e){if(!e)return null;let n=e.blocks[e.blocks.length-1],t="dispatch"===e.source?(0,s.Tl)("activity.delegated"):"";if(!n)return"".concat(t).concat((0,s.Tl)("activity.starting"));if("tool"===n.type){let e=(0,a.q0)(n),r="".concat(e.label).concat(e.summary?" ".concat(e.summary):"");return"".concat(t).concat(void 0===n.output?(0,s.Tl)("activity.running",{tool:r}):(0,s.Tl)("activity.ran",{tool:r}))}return"".concat(t).concat("thinking"===n.type?(0,s.Tl)("activity.thinking"):(0,s.Tl)("activity.writing"))}},74988:(e,n,t)=>{t.d(n,{HS:()=>j,M6:()=>u,Mn:()=>h,Nd:()=>o,Wy:()=>d,y$:()=>m});var s=t(29416),a=t(34978),r=t(84616),l=t(66826),i=t(73784),c=t(47890);let o={server:{color:"#0f8f9e",icon:s.A},docker:{color:"#2496ed",icon:a.A},http:{color:"#7a4de0",icon:r.A},database:{color:"#d9822b",icon:l.A},cluster:{color:c.Ng,icon:i.A}},d={running:"ok",ready:"ok",starting:"warn",error:"err",stopped:"off",unknown:"off"},u=e=>Object.entries(null!=e?e:{}).map(e=>{let[n,t]=e;return"".concat(n,"=").concat(t)}).join("\n");function m(e){let n={};for(let t of e.split("\n")){let e=t.trim();if(!e||e.startsWith("#"))continue;let s=e.indexOf("=");if(s<=0)throw Error('"'.concat(e,'" is not NAME=value'));n[e.slice(0,s).trim()]=e.slice(s+1)}return n}let h=e=>e.split("\n").map(e=>e.trim()).filter(Boolean),g=[[/^(\d+) requests in (\d+) files$/,"d.requests"],[/^(\d+)\/(\d+) running$/,"d.running"],[/^no members$/,"d.noMembers"],[/^only (\d+)\/(\d+) running · stopped: (.+)$/,"d.onlySome"],[/^(.+) failed · (\d+)\/(\d+) running$/,"d.failed"],[/^waiting for port (\d+)$/,"d.waitPort"],[/^running, but nothing listens on port (\d+)$/,"d.noPort"],[/^exited with code (\d+)$/,"d.exited"],[/^ended by (\w+)$/,"d.signal"],[/^restarted \((\d+)\/(\d+)\)$/,"d.restarted"],[/^was unhealthy: restarting \((\d+)\/(\d+)\)$/,"d.unhealthyRestart"],[/^health check pending$/,"d.healthPending"],[/^restarting$/,"d.restarting"],[/^container not found$/,"d.noContainer"],[/^the compose file is missing$/,"d.noCompose"],[/^(\d+) of (\d+) running$/,"d.running2"],[/^(\d+) services?$/,"d.services"],[/^a service exited with an error$/,"d.serviceFailed"],[/^checking…$/,"d.checking"],[/^unhealthy$/,"d.unhealthy"]];function j(e,n){return n?n.split(" \xb7 ").map(n=>{for(let[t,s]of g){let a=t.exec(n);if(a)return e(s,Object.fromEntries(a.slice(1).map((e,n)=>["a".concat(n+1),e])))}let t=/^(.*)restarting in (\d+) s \((\d+)\/(\d+)\)$/.exec(n);if(t)return e("d.restartIn",{a1:t[2],a2:t[3],a3:t[4]});let s=/^gave up after (\d+) restarts$/.exec(n);if(s)return e("d.gaveUp",{a1:s[1]});let a=/^unhealthy: (.+)$/.exec(n);return a?"".concat(e("d.unhealthy"),": ").concat(a[1]):n}).join(" \xb7 "):""}},75010:(e,n,t)=>{t.d(n,{I:()=>d});var s=t(94799),a=t(34023),r=t(98392),l=t(64883),i=t(3749),c=t(69654);let o=/\u001b\[[0-9;?]*[ -/]*[@-~]/g;function d(e){let{id:n,height:t=220}=e,{t:d}=(0,c.s9)(),[u,m]=(0,a.useState)(null),h=(0,a.useRef)(""),g=(0,a.useRef)(null),j=(0,a.useRef)(!0),[p,f]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=!1,t;m(null),h.current="",j.current=!0,f(!1);let s=async()=>{try{let t=h.current?"after=".concat(encodeURIComponent(h.current)):"tail=300",s=await i.FH.get("/objects/".concat(n,"/logs?").concat(t));if(e)return;h.current=s.cursor||h.current;let a=s.text.replace(o,"");m(e=>{let n=s.reset?"":null!=e?e:"";if(!a)return null!=e?e:"";let t=!n||n.endsWith("\n")||a.startsWith("\n")?n+a:"".concat(n,"\n").concat(a);return t.length>2e5?t.slice(t.length-2e5):t})}catch(e){}e||(t=setTimeout(s,1200))};return s(),()=>{e=!0,clearTimeout(t)}},[n]),(0,a.useEffect)(()=>{let e=g.current;e&&j.current&&(e.scrollTop=e.scrollHeight)},[u]),(0,s.jsxs)("div",{className:"logv",children:[(0,s.jsx)("pre",{ref:g,className:"logv-body mono",style:{height:t},onScroll:()=>{let e=g.current;if(!e)return;let n=e.scrollHeight-e.scrollTop-e.clientHeight<24;j.current=n,f(!n)},tabIndex:0,children:null===u?d("git.loading"):u.trim()?u:d("obj.logs.empty")}),(0,s.jsxs)("div",{className:"logv-tools",children:[p&&(0,s.jsxs)("button",{className:"btn sm",onClick:()=>{let e=g.current;e&&(e.scrollTop=e.scrollHeight,j.current=!0,f(!1))},children:[(0,s.jsx)(r.A,{size:14}),d("obj.logs.bottom")]}),(0,s.jsx)("button",{className:"btn ghost icon sm",onClick:()=>m(""),"aria-label":d("obj.logs.clear"),title:d("obj.logs.clear"),children:(0,s.jsx)(l.A,{size:14})})]})]})}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[642],{494:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},3492:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},4713:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},5503:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).A)("MousePointerClick",[["path",{d:"M14 4.1 12 6",key:"ita8i4"}],["path",{d:"m5.1 8-2.9-.8",key:"1go3kf"}],["path",{d:"m6 12-1.9 2",key:"mnht97"}],["path",{d:"M7.2 2.2 8 5.1",key:"1cfko1"}],["path",{d:"M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z",key:"s0h3yz"}]])},19431:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},20555:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},32219:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},38950:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},52263:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},52687:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).A)("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]])},55267:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},55712:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},55838:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).A)("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]])},62716:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},66477:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},71529:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).A)("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]])},79141:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).A)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},79278:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},84616:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},87454:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},90124:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},91833:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},92720:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},92947:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).A)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},97541:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},98148:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},98938:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])},99579:(e,a,h)=>{h.d(a,{A:()=>t});let t=(0,h(74955).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"}]])}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[705],{51705:(e,t,s)=>{s.d(t,{ry:()=>K,BZ:()=>O});var a=s(94799),n=s(34023),l=s(6458),r=s(53983),i=s(14214),c=s(84611),o=s(8089),d=s(50352),u=s(46325),h=s(79141),m=s(4713),p=s(70665),x=s(83372),g=s(75014),j=s(97541),f=s(50703),v=s(3749),b=s(48538),y=s(77021),N=s(47890),k=s(10804),z=s(10969),A=s(49731),w=s(7697),C=s(18853);let F=/^\[hive:channel\] (.+?) · Place: (.+?) · Thread: (.+?) · From: (.+?)((?: · (?:Addressed|Muted): \w+| · To: [^·\n]+)*)(?: · Now: [^\n]*)?\nMessage:\n([\s\S]*)$/,R="\n\n[hive:context]\n",T="\n\n[hive:files]\n";var E=s(69654);function D(e){let{text:t,badge:s,agentId:n}=e,{t:l}=(0,E.s9)(),r=function(e){let t=F.exec(e);if(!t)return null;let[s,...a]=t[6].split(R),[n,...l]=s.split(T),r=l.join(T).split("\n").flatMap(e=>{let t=/^- (.+) \(([^()]*)\)$/.exec(e);return t?[{path:t[1],name:t[1].replace(/^.*[\\/]/,"").replace(/^\d+-\d+-/,""),detail:t[2]}]:[]});return{platform:t[1],place:t[2],thread:t[3],from:t[4],body:n,files:r,overheard:/Addressed: no/.test(t[5]),muted:/Muted: yes/.test(t[5]),context:a.join(R)}}(t),i=r?null:function(e){let t=e.indexOf(T);if(t<0)return null;let s=e.slice(t+T.length).split("\n").flatMap(e=>{let t=/^- (.+) \(([^()]*)\)$/.exec(e);return t?[{path:t[1],name:t[1].replace(/^.*[\\/]/,"").replace(/^web-\d+-\d+-/,""),detail:t[2]}]:[]});return s.length?{body:e.slice(0,t),files:s}:null}(t);return i?(0,a.jsxs)("div",{className:"msg user".concat(s?" queued":""),children:[(0,a.jsxs)("div",{className:"bubble",children:[i.body.trim()&&"(no text)"!==i.body.trim()&&(0,a.jsx)("div",{children:i.body.trim()}),(0,a.jsx)("div",{className:"bubble-imgs",children:i.files.map(e=>{let t=n?"/api/agents/".concat(n,"/inbox?path=").concat(encodeURIComponent(e.path)):void 0;return n&&/\.(png|jpe?g|gif|webp)$/i.test(e.path)?(0,a.jsx)("a",{href:t,target:"_blank",rel:"noreferrer",title:e.name,children:(0,a.jsx)("img",{src:t,alt:e.name,loading:"lazy"})},e.path):(0,a.jsxs)("a",{className:"chfile",href:t,download:e.name,title:e.path,children:[(0,a.jsx)(m.A,{size:11,"aria-hidden":!0}),e.name,(0,a.jsx)("i",{children:e.detail.split(", ").pop()})]},e.path)})})]}),s&&(0,a.jsxs)("span",{className:"queued-tag",children:[(0,a.jsx)(A.A,{size:11,"aria-hidden":!0}),s]})]}):r?(0,a.jsx)("div",{className:"msg user",children:(0,a.jsxs)("div",{className:"bubble channel",children:[(0,a.jsxs)("div",{className:"chhead",children:[(0,a.jsx)(w.A,{size:12,"aria-hidden":!0}),(0,a.jsx)("b",{children:r.platform}),(0,a.jsx)("span",{children:r.place}),r.overheard&&(0,a.jsxs)("span",{className:"chtag",title:l("chat.channel.overheard.hint"),children:[(0,a.jsx)(C.A,{size:11,"aria-hidden":!0}),l("chat.channel.overheard")]}),(0,a.jsx)("span",{className:"chfrom",children:r.from.replace(/\s*\(.*\)$/,"")})]}),(0,a.jsx)("div",{className:"chbody",children:r.body}),r.files.length>0&&(0,a.jsx)("div",{className:"chfiles",children:r.files.map(e=>(0,a.jsxs)("span",{className:"chfile",title:e.path,children:[(0,a.jsx)(m.A,{size:11,"aria-hidden":!0}),e.name,(0,a.jsx)("i",{children:e.detail.split(", ").pop()})]},e.path))}),r.context&&(0,a.jsxs)("details",{className:"chctx",children:[(0,a.jsx)("summary",{children:l("chat.channel.context",{n:r.context.split("\n").filter(e=>e.startsWith("- ")).length})}),(0,a.jsx)("pre",{children:r.context.replace(/^[^\n]*\n/,"")})]})]})}):(0,a.jsxs)("div",{className:"msg user".concat(s?" queued":""),children:[(0,a.jsx)("div",{className:"bubble",children:t}),s&&(0,a.jsxs)("span",{className:"queued-tag",children:[(0,a.jsx)(A.A,{size:11,"aria-hidden":!0}),s]})]})}var M=s(56072);function S(e){var t,s,n;let{m:l}=e,{t:r}=(0,E.s9)(),u=null==(t=l.meta)?void 0:t.usage,h=l.blocks.filter(e=>"tool"===e.type).length;if(!u&&!l.durationMs&&!h)return null;let m=(0,M.RP)(u);return(0,a.jsxs)("div",{className:"replymeta",children:[(null==(s=l.meta)?void 0:s.model)&&(0,a.jsx)("span",{className:"mono",children:l.meta.model.replace(/^claude-/,"").replace(/-\d{8}$/,"")}),m>0&&(0,a.jsxs)("span",{title:u?r("chat.tokenDetail",{input:u.input,output:u.output,cacheRead:u.cacheRead,cacheWrite:u.cacheWrite}):"",children:[(0,a.jsx)(i.A,{size:12}),r("chat.inOut",{in:(0,M.yj)(u.input+u.cacheRead+u.cacheWrite),out:(0,M.yj)(u.output)})]}),(null==u?void 0:u.credits)?(0,a.jsxs)("span",{children:[(0,a.jsx)(c.A,{size:12}),r("chat.credits",{value:u.credits.toFixed(2)})]}):null,(null==(n=l.meta)?void 0:n.cost)!==void 0&&(0,a.jsxs)("span",{title:r(l.meta.costEstimated?"stats.costEstimated":"stats.costReported"),children:[(0,a.jsx)(c.A,{size:12}),l.meta.costEstimated?"≈ ":"",(0,M.F0)(l.meta.cost)]}),h>0&&(0,a.jsxs)("span",{children:[(0,a.jsx)(o.A,{size:12}),r("chat.tools",{count:h})]}),l.durationMs?(0,a.jsxs)("span",{children:[(0,a.jsx)(d.A,{size:12}),(0,M.nc)(l.durationMs)]}):null]})}let P=/usage limit|quota|insufficient|rate.?limit|too many requests|credits/i;function H(e){let{agent:t,error:s,onDone:l}=e,{t:r}=(0,E.s9)(),i=(0,k.dj)(),[c,o]=(0,n.useState)(!1),[d,u]=(0,n.useState)(!1);(0,n.useEffect)(()=>{if("opencode"!==t.provider)return;let e=!0;return v.FH.get("/agents/".concat(t.id,"/compact")).then(t=>{e&&o(t.supported)}).catch(()=>{}),()=>{e=!1}},[t.id,t.provider]);let h=async()=>{u(!0);try{await v.FH.post("/agents/".concat(t.id,"/compact")),i(r("chat.compacted"),"ok"),l()}catch(e){i(r("chat.compactFailed",{reason:e instanceof Error?e.message:String(e)}),"err")}finally{u(!1)}},m=P.test(s);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("br",{}),(0,a.jsx)("span",{className:"muted",children:r(m?"chat.failedHintLimit":c?"chat.failedHintCompact":"chat.failedHint")}),c&&!m&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("br",{}),(0,a.jsx)("button",{type:"button",className:"btn sm",disabled:d,onClick:()=>void h(),children:d?r("chat.compacting"):r("chat.compact")})]})]})}function q(e){var t,s,l,r,c;let{turn:u}=e,{t:h}=(0,E.s9)(),[,m]=(0,n.useState)(0),p=!!u.error;(0,n.useEffect)(()=>{if(p)return;let e=setInterval(()=>m(e=>e+1),500);return()=>clearInterval(e)},[p]);let x=(0,n.useRef)(0);p&&!x.current&&(x.current=Date.now());let g=u.usage,j=u.blocks.filter(e=>"tool"===e.type).length;return(0,a.jsxs)("div",{className:"replymeta live",children:[(0,a.jsxs)("span",{children:[(0,a.jsx)(d.A,{size:12}),(0,M.nc)((p?x.current:Date.now())-u.startedAt)]}),j>0&&(0,a.jsxs)("span",{children:[(0,a.jsx)(o.A,{size:12}),h("chat.tools",{count:j})]}),g&&(null!=(t=g.output)?t:0)>0&&(0,a.jsxs)("span",{children:[(0,a.jsx)(i.A,{size:12}),h("chat.inOut",{in:(0,M.yj)((null!=(s=g.input)?s:0)+(null!=(l=g.cacheRead)?l:0)+(null!=(r=g.cacheWrite)?r:0)),out:(0,M.yj)(null!=(c=g.output)?c:0)})]}),(null==g?void 0:g.contextPct)!==void 0&&(0,a.jsx)("span",{children:h("chat.contextPct",{pct:g.contextPct.toFixed(1)})})]})}let _=(0,n.memo)(function(e){let{text:t}=e;return(0,a.jsx)("div",{className:"md",children:(0,a.jsx)(l.oz,{remarkPlugins:[r.A],children:t})})}),I=(0,n.memo)(function(e){let{blocks:t,streaming:s}=e,{t:n}=(0,E.s9)();return(0,a.jsxs)(a.Fragment,{children:[t.map((e,l)=>"text"===e.type?(0,a.jsx)(_,{text:e.text},l):"thinking"===e.type?(0,a.jsxs)("details",{className:"fold think",children:[(0,a.jsxs)("summary",{children:[(0,a.jsx)(u.A,{size:14}),s&&l===t.length-1?n("activity.thinking"):n("chat.thought"),(0,a.jsx)(h.A,{size:14,className:"chev"})]}),(0,a.jsx)("pre",{children:e.text})]},l):(0,a.jsx)(z.Dm,{tool:e,streaming:s},l)),(0,a.jsx)(z.Kt,{blocks:t})]})}),O=(0,n.memo)(function(e){let{msgs:t,agent:s}=e,{t:l}=(0,E.s9)(),r=(0,n.useMemo)(()=>(function(e){let t=[],s=null;for(let n of e){var a;let e;if("user"===n.role){s=n.ts,t.push(n);continue}if(n.compact){t.push(n);continue}let l=t[t.length-1],r=(e,t)=>{var s,a,n,l,r,i,c;if(!e)return t;if(!t)return e;let o=e.usage,d=t.usage;return{model:null!=(s=t.model)?s:e.model,endTs:null!=(a=t.endTs)?a:e.endTs,cost:void 0!==e.cost||void 0!==t.cost?(null!=(n=e.cost)?n:0)+(null!=(l=t.cost)?l:0):void 0,costEstimated:e.costEstimated||t.costEstimated,usage:o&&d?{input:o.input+d.input,output:o.output+d.output,cacheRead:o.cacheRead+d.cacheRead,cacheWrite:o.cacheWrite+d.cacheWrite,reasoning:o.reasoning+d.reasoning,credits:(null!=(r=o.credits)?r:0)+(null!=(i=d.credits)?i:0)||void 0,contextPct:null!=(c=d.contextPct)?c:o.contextPct}:null!=o?o:d}};(null==l?void 0:l.role)!=="assistant"||l.compact?(e={...n},t.push(e)):(e={...l,blocks:[...l.blocks,...n.blocks],meta:r(l.meta,n.meta)},t[t.length-1]=e);let i=null==(a=e.meta)?void 0:a.endTs;e.durationMs=s&&i?Math.max(0,i-s):void 0}return t})(t),[t]);return(0,a.jsx)(a.Fragment,{children:r.map(e=>e.compact?(0,a.jsx)("div",{className:"compact-mark",role:"separator",children:(0,a.jsx)("span",{children:l("chat.compactMark",{pre:(0,M.yj)(e.compact.pre),post:(0,M.yj)(e.compact.post)})})},e.id):"user"===e.role?(0,a.jsx)(D,{agentId:s.id,text:e.blocks.map(e=>"text"===e.type?e.text:"").join("")},e.id):(0,a.jsxs)("div",{className:"msg assistant",children:[(0,a.jsxs)("div",{className:"who",children:[(0,a.jsx)(k._h,{agent:s,size:"sm"}),s.name,(0,a.jsx)("span",{className:"stamp",children:e.ts?(0,N.KN)(e.ts):""})]}),(0,a.jsx)(I,{blocks:e.blocks}),(0,a.jsx)(S,{m:e})]},e.id))})},(e,t)=>e.msgs===t.msgs&&e.agent.id===t.agent.id&&e.agent.name===t.agent.name&&e.agent.provider===t.agent.provider&&e.agent.role===t.agent.role),W=(0,n.memo)(function(e){let{agentId:t,name:s,running:l,queued:r,readOnly:i,onSend:c,onStop:o,toolsOpen:d,onToggleTools:u}=e,{t:h}=(0,E.s9)(),[j,f]=(0,y.ud)("hive-am.draft.".concat(t),""),[v,b]=(0,n.useState)([]),[N,z]=(0,n.useState)(!1),A=(0,k.dj)(),w=(0,n.useRef)(null),C=(0,n.useRef)(null),F=()=>{let e=w.current;e&&(e.style.height="auto",e.style.height=Math.min(e.scrollHeight,200)+"px")},R=async e=>{let t=e.slice(0,Math.max(0,5-v.length));t.length<e.length&&A(h("chat.img.max",{n:5}),"err");let s=t.filter(e=>e.size<=0x1400000&&e.size>0);s.length<t.length&&A(h("chat.img.big",{mb:20}),"err");let a=await Promise.all(s.map((e,t)=>new Promise((s,a)=>{let n=new FileReader;n.onload=()=>s({id:"".concat(Date.now(),"-").concat(t),name:e.name&&"image.png"!==e.name?e.name:"pasted-".concat(t+1,".png"),data:String(n.result),type:e.type,size:e.size}),n.onerror=()=>a(n.error),n.readAsDataURL(e)})));b(e=>[...e,...a])},T=async()=>{let e=j.trim();(e||v.length)&&(f(""),b([]),requestAnimationFrame(F),await c(e,v.map(e=>{let{name:t,data:s,type:a}=e;return{name:t,data:s,type:a}}))||(f(e),b(v),requestAnimationFrame(F)))};return(0,a.jsxs)("div",{className:"composer",children:[i?(0,a.jsx)("div",{className:"composer-box chat-readonly",children:(0,a.jsx)("span",{className:"muted",children:h("chat.readOnly")})}):(0,a.jsxs)("div",{className:"composer-box ".concat(N?"over":""),onDragOver:e=>{[...e.dataTransfer.types].includes("Files")&&(e.preventDefault(),z(!0))},onDragLeave:()=>z(!1),onDrop:e=>{z(!1);let t=[...e.dataTransfer.files];t.length&&(e.preventDefault(),R(t))},children:[v.length>0&&(0,a.jsx)("div",{className:"cmp-imgs",children:v.map(e=>{let t;return(0,a.jsxs)("span",{className:"cmp-img".concat(e.type.startsWith("image/")?"":" file"),title:e.name,children:[e.type.startsWith("image/")?(0,a.jsx)("img",{src:e.data,alt:e.name}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(m.A,{size:14,"aria-hidden":!0}),(0,a.jsx)("b",{children:e.name}),(0,a.jsx)("i",{children:(t=e.size)<1024?"".concat(t," B"):t<1048576?"".concat(Math.round(t/1024)," KB"):"".concat((t/1024/1024).toFixed(1)," MB")})]}),(0,a.jsx)("button",{type:"button",onClick:()=>b(t=>t.filter(t=>t.id!==e.id)),"aria-label":h("chat.img.remove",{name:e.name}),title:h("chat.img.remove",{name:e.name}),children:(0,a.jsx)(p.A,{size:12})})]},e.id)})}),(0,a.jsx)("input",{ref:C,type:"file",multiple:!0,hidden:!0,onChange:e=>{var t;R([...null!=(t=e.target.files)?t:[]]),e.target.value=""}}),(0,a.jsx)("button",{type:"button",className:"btn ghost icon",onClick:()=>{var e;return null==(e=C.current)?void 0:e.click()},"aria-label":h("chat.img.attach"),title:h("chat.img.attach"),children:(0,a.jsx)(m.A,{size:18})}),(0,a.jsx)("textarea",{ref:w,rows:1,onPaste:e=>{let t=[...e.clipboardData.files];!t.length||e.clipboardData.getData("text/plain").trim()||(e.preventDefault(),R(t))},value:j,placeholder:l?h("chat.queuePlaceholder"):h("chat.placeholder",{name:s}),"aria-label":h("chat.messageLabel"),onChange:e=>{f(e.target.value),F()},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),T())}}),l&&(0,a.jsxs)("button",{className:"btn",onClick:o,"aria-label":h("chat.stop"),children:[(0,a.jsx)(x.A,{size:14,fill:"currentColor"}),h("chat.stop")]}),(0,a.jsx)("button",{className:"btn primary icon",onClick:()=>void T(),disabled:!j.trim()&&!v.length,"aria-label":h("chat.send"),children:(0,a.jsx)(g.A,{size:18})})]}),(0,a.jsxs)("div",{className:"composer-meta",children:[(0,a.jsx)("span",{children:h("chat.keys")}),(0,a.jsx)("button",{type:"button",className:"linkbtn",onClick:u,children:d?h("chat.collapseTools"):h("chat.expandTools")}),r>0&&(0,a.jsx)("span",{children:h("queue.count",{count:r})})]})]})});function K(e){var t,s,l,r;let{agent:i,sessionOverride:c}=e,{t:o}=(0,E.s9)(),{agents:d}=(0,b.q5)(),{clearLive:u}=(0,b.zd)(),h=(0,k.dj)(),[m,p]=(0,n.useState)([]),[x,g]=(0,n.useState)(!1),[y,N]=(0,n.useState)(60),[A,w]=(0,n.useState)(0),C=(0,n.useRef)(null),[F,R]=(0,n.useState)([]),[T,M]=(0,n.useState)(null),S=(0,n.useRef)(null),P=(0,n.useRef)(!0),_=(0,n.useRef)(0),K=(0,n.useRef)(0),L=(0,n.useCallback)(()=>{K.current=performance.now()},[]),[$,B]=(0,n.useState)(!1),U=(0,n.useCallback)(()=>{P.current=!1,B(!0)},[]),Y=(0,n.useCallback)(()=>{let e=S.current;P.current=!0,B(!1),e&&(e.scrollTop=e.scrollHeight)},[]),Z=(0,b.M_)(i.id),Q="running"===i.status||!!Z&&!Z.error,V=void 0!==c&&c!==i.session_id,G=(0,n.useCallback)(()=>{let e=V?c:i.session_id;return e?v.FH.get("/agents/".concat(i.id,"/history?session=").concat(encodeURIComponent(e),"&limit=").concat(y)).then(e=>{var t;p(e.messages),w(null!=(t=e.total)?t:e.messages.length),g(!0)}).catch(e=>{h(e.message,"err"),g(!0)}):(p([]),w(0),g(!0),Promise.resolve())},[i.id,i.session_id,V,c,h,y]);(0,n.useEffect)(()=>{g(!1),N(60)},[i.id,i.session_id,c]),(0,n.useEffect)(()=>{G()},[G]),(0,n.useLayoutEffect)(()=>{let e=S.current;e&&null!==C.current&&(e.scrollTop+=e.scrollHeight-C.current,C.current=null)},[m]);let J=(0,n.useCallback)(()=>{var e,t;C.current=null!=(t=null==(e=S.current)?void 0:e.scrollHeight)?t:null,U(),N(e=>e+120)},[U]),X=(0,b.SV)(i.id),ee=(0,n.useRef)(!0);ee.current=!Z&&"running"!==i.status&&!(null!=(s=i.queued)?s:0),(0,n.useEffect)(()=>{X&&G().then(()=>{ee.current&&R(e=>e.length?[]:e)})},[X]),(0,n.useEffect)(()=>{R(e=>{let t=e.filter(e=>!m.some(t=>"user"===t.role&&t.blocks.some(t=>"text"===t.type&&t.text.trim()===e.trim())));return t.length===e.length?e:t})},[m]),(0,n.useEffect)(()=>{let e=S.current,t=null==e?void 0:e.firstElementChild;if(!e||!t)return;let s=()=>{P.current&&(e.scrollTop=e.scrollHeight)},a=new ResizeObserver(s);return a.observe(t),s(),()=>a.disconnect()},[x,i.id]);let et=(0,n.useCallback)(async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(V)return!1;R(t=>[...t,e]),Y();try{let s=await v.FH.post("/agents/".concat(i.id,"/messages"),{prompt:e,...t.length?{files:t}:{}});return s.prompt&&s.prompt!==e&&R(t=>{let a=t.lastIndexOf(e);return a<0?t:t.map((e,t)=>t===a?s.prompt:e)}),!0}catch(t){return R(t=>{let s=t.lastIndexOf(e);return s<0?t:t.filter((e,t)=>t!==s)}),h(t instanceof Error?t.message:o("chat.sendFailed"),"err"),!1}},[i.id,V,h,o,Y]),es=(0,n.useCallback)(()=>{v.FH.post("/agents/".concat(i.id,"/stop")).catch(()=>void 0)},[i.id]),ea=(0,n.useCallback)(()=>M(e=>!e),[]),en=F.filter((e,t)=>!(Z&&t===F.findIndex(e=>e.trim()===Z.prompt.trim()))),el=x&&!m.length&&!Z&&!F.length;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(z.Qh.Provider,{value:T,children:(0,a.jsxs)("div",{className:"thread-wrap",children:[(0,a.jsx)("div",{className:"thread",ref:S,role:"log","aria-label":o("fa.chat.log",{name:i.name}),"aria-live":Z?"off":"polite","aria-relevant":"additions",tabIndex:-1,onWheel:e=>{e.deltaY<0&&U()},onTouchStart:L,onTouchMove:L,onPointerDown:L,onPointerMove:e=>{e.buttons&&L()},onKeyDown:e=>{!["PageUp","ArrowUp","Home"].includes(e.key)||e.target instanceof HTMLTextAreaElement||U()},onScroll:e=>{let t=e.currentTarget;t.scrollHeight-t.scrollTop-t.clientHeight<40?(P.current=!0,B(!1)):t.scrollTop<_.current-1&&performance.now()-K.current<700&&U(),_.current=t.scrollTop},children:(0,a.jsxs)("div",{className:"thread-inner ".concat(x?"in":""),children:[el&&(0,a.jsx)("div",{className:"mt-l",children:(0,a.jsx)(k.pp,{icon:(0,a.jsx)(k._h,{agent:i,size:"lg"}),title:o("chat.empty.title",{name:i.name}),body:"orchestrator"===i.role?o("chat.empty.orchestrator"):o("chat.empty.worker")})}),A>m.length&&(0,a.jsx)("button",{type:"button",className:"btn sm chat-earlier",onClick:J,children:o("chat.earlier",{n:A-m.length})}),(0,a.jsx)(O,{msgs:m,agent:i}),Z&&(0,a.jsxs)(a.Fragment,{children:["dispatch"===Z.source?(0,a.jsxs)("div",{className:"delegation-card",children:[(0,a.jsxs)("div",{className:"head",children:[(0,a.jsx)(j.A,{size:14}),o("chat.delegatedFrom",{name:null!=(l=null==(t=d.find(e=>e.id===Z.from))?void 0:t.name)?l:o("chat.anOrchestrator")})]}),(0,a.jsx)("p",{children:Z.prompt}),(0,a.jsx)("span",{className:"hint",children:o("chat.delegatedNote")})]}):!m.some(e=>"user"===e.role&&e.blocks.some(e=>"text"===e.type&&e.text.trim()===Z.prompt.trim()))&&(0,a.jsx)(D,{text:Z.prompt,agentId:i.id}),(0,a.jsxs)("div",{className:"msg assistant",children:[(0,a.jsxs)("div",{className:"who",children:[(0,a.jsx)(k._h,{agent:i,size:"sm"}),i.name]}),(0,a.jsx)(I,{blocks:Z.blocks,streaming:!0}),!Z.error&&(0,a.jsxs)("span",{className:"typing","aria-label":o("common.working"),children:[(0,a.jsx)("i",{}),(0,a.jsx)("i",{}),(0,a.jsx)("i",{})]}),(0,a.jsx)(q,{turn:Z}),Z.error&&(0,a.jsxs)(k.lZ,{kind:"err",onDismiss:()=>u(i.id),children:[(0,E.YF)(Z.error),(0,a.jsx)(H,{agent:i,error:Z.error,onDone:()=>u(i.id)})]})]})]}),en.map((e,t)=>(0,a.jsx)(D,{agentId:i.id,text:e,badge:Z?o("chat.queuedBadge"):void 0},"".concat(t,":").concat(e)))]})}),$&&(0,a.jsxs)("button",{type:"button",className:"btn sm chat-jump",onClick:Y,children:[(0,a.jsx)(f.A,{size:14,"aria-hidden":!0}),o("fa.chat.jump")]})]})}),(0,a.jsx)("span",{className:"chat-sr",role:"status",children:Z?o("fa.chat.working",{name:i.name}):X?o("fa.chat.done",{name:i.name}):""}),(0,a.jsx)(W,{agentId:i.id,name:i.name,running:Q,queued:null!=(r=i.queued)?r:0,readOnly:V,onSend:et,onStop:es,toolsOpen:T,onToggleTools:ea})]})}}}]);
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[705],{51705:(e,t,s)=>{s.d(t,{ry:()=>K,BZ:()=>O});var a=s(94799),n=s(34023),l=s(6458),r=s(53983),c=s(14214),i=s(84611),o=s(8089),d=s(50352),u=s(46325),h=s(79141),m=s(4713),p=s(70665),x=s(83372),g=s(75014),j=s(97541),f=s(50703),v=s(3749),b=s(48538),y=s(77021),N=s(47890),k=s(10804),z=s(10969),A=s(49731),w=s(7697),C=s(18853);let F=/^\[hive:channel\] (.+?) · Place: (.+?) · Thread: (.+?) · From: (.+?)((?: · (?:Addressed|Muted): \w+| · To: [^·\n]+)*)(?: · Now: [^\n]*)?\nMessage:\n([\s\S]*)$/,R="\n\n[hive:context]\n",T="\n\n[hive:files]\n";var E=s(69654);function D(e){let{text:t,badge:s,agentId:n}=e,{t:l}=(0,E.s9)(),r=function(e){let t=F.exec(e);if(!t)return null;let[s,...a]=t[6].split(R),[n,...l]=s.split(T),r=l.join(T).split("\n").flatMap(e=>{let t=/^- (.+) \(([^()]*)\)$/.exec(e);return t?[{path:t[1],name:t[1].replace(/^.*[\\/]/,"").replace(/^\d+-\d+-/,""),detail:t[2]}]:[]});return{platform:t[1],place:t[2],thread:t[3],from:t[4],body:n,files:r,overheard:/Addressed: no/.test(t[5]),muted:/Muted: yes/.test(t[5]),context:a.join(R)}}(t),c=r?null:function(e){let t=e.indexOf(T);if(t<0)return null;let s=e.slice(t+T.length).split("\n").flatMap(e=>{let t=/^- (.+) \(([^()]*)\)$/.exec(e);return t?[{path:t[1],name:t[1].replace(/^.*[\\/]/,"").replace(/^web-\d+-\d+-/,""),detail:t[2]}]:[]});return s.length?{body:e.slice(0,t),files:s}:null}(t);return c?(0,a.jsxs)("div",{className:"msg user".concat(s?" queued":""),children:[(0,a.jsxs)("div",{className:"bubble",children:[c.body.trim()&&"(no text)"!==c.body.trim()&&(0,a.jsx)("div",{children:c.body.trim()}),(0,a.jsx)("div",{className:"bubble-imgs",children:c.files.map(e=>{let t=n?"/api/agents/".concat(n,"/inbox?path=").concat(encodeURIComponent(e.path)):void 0;return n&&/\.(png|jpe?g|gif|webp)$/i.test(e.path)?(0,a.jsx)("a",{href:t,target:"_blank",rel:"noreferrer",title:e.name,children:(0,a.jsx)("img",{src:t,alt:e.name,loading:"lazy"})},e.path):(0,a.jsxs)("a",{className:"chfile",href:t,download:e.name,title:e.path,children:[(0,a.jsx)(m.A,{size:11,"aria-hidden":!0}),e.name,(0,a.jsx)("i",{children:e.detail.split(", ").pop()})]},e.path)})})]}),s&&(0,a.jsxs)("span",{className:"queued-tag",children:[(0,a.jsx)(A.A,{size:11,"aria-hidden":!0}),s]})]}):r?(0,a.jsx)("div",{className:"msg user",children:(0,a.jsxs)("div",{className:"bubble channel",children:[(0,a.jsxs)("div",{className:"chhead",children:[(0,a.jsx)(w.A,{size:12,"aria-hidden":!0}),(0,a.jsx)("b",{children:r.platform}),(0,a.jsx)("span",{children:r.place}),r.overheard&&(0,a.jsxs)("span",{className:"chtag",title:l("chat.channel.overheard.hint"),children:[(0,a.jsx)(C.A,{size:11,"aria-hidden":!0}),l("chat.channel.overheard")]}),(0,a.jsx)("span",{className:"chfrom",children:r.from.replace(/\s*\(.*\)$/,"")})]}),(0,a.jsx)("div",{className:"chbody",children:r.body}),r.files.length>0&&(0,a.jsx)("div",{className:"chfiles",children:r.files.map(e=>(0,a.jsxs)("span",{className:"chfile",title:e.path,children:[(0,a.jsx)(m.A,{size:11,"aria-hidden":!0}),e.name,(0,a.jsx)("i",{children:e.detail.split(", ").pop()})]},e.path))}),r.context&&(0,a.jsxs)("details",{className:"chctx",children:[(0,a.jsx)("summary",{children:l("chat.channel.context",{n:r.context.split("\n").filter(e=>e.startsWith("- ")).length})}),(0,a.jsx)("pre",{children:r.context.replace(/^[^\n]*\n/,"")})]})]})}):(0,a.jsxs)("div",{className:"msg user".concat(s?" queued":""),children:[(0,a.jsx)("div",{className:"bubble",children:t}),s&&(0,a.jsxs)("span",{className:"queued-tag",children:[(0,a.jsx)(A.A,{size:11,"aria-hidden":!0}),s]})]})}var M=s(56072);function S(e){var t,s,n;let{m:l}=e,{t:r}=(0,E.s9)(),u=null==(t=l.meta)?void 0:t.usage,h=l.blocks.filter(e=>"tool"===e.type).length;if(!u&&!l.durationMs&&!h)return null;let m=(0,M.RP)(u);return(0,a.jsxs)("div",{className:"replymeta",children:[(null==(s=l.meta)?void 0:s.model)&&(0,a.jsx)("span",{className:"mono",children:l.meta.model.replace(/^claude-/,"").replace(/-\d{8}$/,"")}),m>0&&(0,a.jsxs)("span",{title:u?r("chat.tokenDetail",{input:u.input,output:u.output,cacheRead:u.cacheRead,cacheWrite:u.cacheWrite}):"",children:[(0,a.jsx)(c.A,{size:12}),r("chat.inOut",{in:(0,M.yj)(u.input+u.cacheRead+u.cacheWrite),out:(0,M.yj)(u.output)})]}),(null==u?void 0:u.credits)?(0,a.jsxs)("span",{children:[(0,a.jsx)(i.A,{size:12}),r("chat.credits",{value:u.credits.toFixed(2)})]}):null,(null==(n=l.meta)?void 0:n.cost)!==void 0&&(0,a.jsxs)("span",{title:r(l.meta.costEstimated?"stats.costEstimated":"stats.costReported"),children:[(0,a.jsx)(i.A,{size:12}),l.meta.costEstimated?"≈ ":"",(0,M.F0)(l.meta.cost)]}),h>0&&(0,a.jsxs)("span",{children:[(0,a.jsx)(o.A,{size:12}),r("chat.tools",{count:h})]}),l.durationMs?(0,a.jsxs)("span",{children:[(0,a.jsx)(d.A,{size:12}),(0,M.nc)(l.durationMs)]}):null]})}let H=/usage limit|quota|insufficient|rate.?limit|too many requests|credits/i;function P(e){let{agent:t,error:s,onDone:l}=e,{t:r}=(0,E.s9)(),c=(0,k.dj)(),[i,o]=(0,n.useState)(!1),[d,u]=(0,n.useState)(!1);(0,n.useEffect)(()=>{if("opencode"!==t.provider)return;let e=!0;return v.FH.get("/agents/".concat(t.id,"/compact")).then(t=>{e&&o(t.supported)}).catch(()=>{}),()=>{e=!1}},[t.id,t.provider]);let h=async()=>{u(!0);try{await v.FH.post("/agents/".concat(t.id,"/compact")),c(r("chat.compacted"),"ok"),l()}catch(e){c(r("chat.compactFailed",{reason:e instanceof Error?e.message:String(e)}),"err")}finally{u(!1)}},m=H.test(s);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("br",{}),(0,a.jsx)("span",{className:"muted",children:r(m?"chat.failedHintLimit":i?"chat.failedHintCompact":"chat.failedHint")}),i&&!m&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("br",{}),(0,a.jsx)("button",{type:"button",className:"btn sm",disabled:d,onClick:()=>void h(),children:d?r("chat.compacting"):r("chat.compact")})]})]})}function q(e){var t,s,l,r,i;let{turn:u}=e,{t:h}=(0,E.s9)(),[,m]=(0,n.useState)(0),p=!!u.error;(0,n.useEffect)(()=>{if(p)return;let e=setInterval(()=>m(e=>e+1),500);return()=>clearInterval(e)},[p]);let x=(0,n.useRef)(0);p&&!x.current&&(x.current=Date.now());let g=u.usage,j=u.blocks.filter(e=>"tool"===e.type).length;return(0,a.jsxs)("div",{className:"replymeta live",children:[(0,a.jsxs)("span",{children:[(0,a.jsx)(d.A,{size:12}),(0,M.nc)((p?x.current:Date.now())-u.startedAt)]}),j>0&&(0,a.jsxs)("span",{children:[(0,a.jsx)(o.A,{size:12}),h("chat.tools",{count:j})]}),g&&(null!=(t=g.output)?t:0)>0&&(0,a.jsxs)("span",{children:[(0,a.jsx)(c.A,{size:12}),h("chat.inOut",{in:(0,M.yj)((null!=(s=g.input)?s:0)+(null!=(l=g.cacheRead)?l:0)+(null!=(r=g.cacheWrite)?r:0)),out:(0,M.yj)(null!=(i=g.output)?i:0)})]}),(null==g?void 0:g.contextPct)!==void 0&&(0,a.jsx)("span",{children:h("chat.contextPct",{pct:g.contextPct.toFixed(1)})})]})}let _=(0,n.memo)(function(e){let{text:t}=e;return(0,a.jsx)("div",{className:"md",children:(0,a.jsx)(l.oz,{remarkPlugins:[r.A],children:t})})}),I=(0,n.memo)(function(e){let{blocks:t,streaming:s}=e,{t:n}=(0,E.s9)();return(0,a.jsxs)(a.Fragment,{children:[t.map((e,l)=>"text"===e.type?(0,a.jsx)(_,{text:e.text},l):"thinking"===e.type?(0,a.jsxs)("details",{className:"fold think",children:[(0,a.jsxs)("summary",{children:[(0,a.jsx)(u.A,{size:14}),s&&l===t.length-1?n("activity.thinking"):n("chat.thought"),(0,a.jsx)(h.A,{size:14,className:"chev"})]}),(0,a.jsx)("pre",{children:e.text})]},l):(0,a.jsx)(z.Dm,{tool:e,streaming:s},l)),(0,a.jsx)(z.Kt,{blocks:t})]})}),O=(0,n.memo)(function(e){let{msgs:t,agent:s}=e,{t:l}=(0,E.s9)(),r=(0,n.useMemo)(()=>(function(e){let t=[],s=null;for(let n of e){var a;let e;if("user"===n.role){s=n.ts,t.push(n);continue}if(n.compact){t.push(n);continue}let l=t[t.length-1],r=(e,t)=>{var s,a,n,l,r,c,i;if(!e)return t;if(!t)return e;let o=e.usage,d=t.usage;return{model:null!=(s=t.model)?s:e.model,endTs:null!=(a=t.endTs)?a:e.endTs,cost:void 0!==e.cost||void 0!==t.cost?(null!=(n=e.cost)?n:0)+(null!=(l=t.cost)?l:0):void 0,costEstimated:e.costEstimated||t.costEstimated,usage:o&&d?{input:o.input+d.input,output:o.output+d.output,cacheRead:o.cacheRead+d.cacheRead,cacheWrite:o.cacheWrite+d.cacheWrite,reasoning:o.reasoning+d.reasoning,credits:(null!=(r=o.credits)?r:0)+(null!=(c=d.credits)?c:0)||void 0,contextPct:null!=(i=d.contextPct)?i:o.contextPct}:null!=o?o:d}};(null==l?void 0:l.role)!=="assistant"||l.compact?(e={...n},t.push(e)):(e={...l,blocks:[...l.blocks,...n.blocks],meta:r(l.meta,n.meta)},t[t.length-1]=e);let c=null==(a=e.meta)?void 0:a.endTs;e.durationMs=s&&c?Math.max(0,c-s):void 0}return t})(t),[t]);return(0,a.jsx)(a.Fragment,{children:r.map(e=>e.compact?(0,a.jsx)("div",{className:"compact-mark",role:"separator",children:(0,a.jsx)("span",{children:l("chat.compactMark",{pre:(0,M.yj)(e.compact.pre),post:(0,M.yj)(e.compact.post)})})},e.id):"user"===e.role?(0,a.jsx)(D,{agentId:s.id,text:e.blocks.map(e=>"text"===e.type?e.text:"").join("")},e.id):(0,a.jsxs)("div",{className:"msg assistant",children:[(0,a.jsxs)("div",{className:"who",children:[(0,a.jsx)(k._h,{agent:s,size:"sm"}),s.name,(0,a.jsx)("span",{className:"stamp",children:e.ts?(0,N.KN)(e.ts):""})]}),(0,a.jsx)(I,{blocks:e.blocks}),(0,a.jsx)(S,{m:e})]},e.id))})},(e,t)=>e.msgs===t.msgs&&e.agent.id===t.agent.id&&e.agent.name===t.agent.name&&e.agent.provider===t.agent.provider&&e.agent.role===t.agent.role),W=(0,n.memo)(function(e){let{agentId:t,name:s,running:l,queued:r,readOnly:c,onSend:i,onStop:o,toolsOpen:d,onToggleTools:u}=e,{t:h}=(0,E.s9)(),[j,f]=(0,y.ud)("hive-am.draft.".concat(t),""),[v,b]=(0,n.useState)([]),[N,z]=(0,n.useState)(!1),A=(0,k.dj)(),w=(0,n.useRef)(null),C=(0,n.useRef)(null),F=()=>{let e=w.current;e&&(e.style.height="auto",e.style.height=Math.min(e.scrollHeight,200)+"px")},R=async e=>{let t=e.slice(0,Math.max(0,5-v.length));t.length<e.length&&A(h("chat.img.max",{n:5}),"err");let s=t.filter(e=>e.size<=0x1400000&&e.size>0);s.length<t.length&&A(h("chat.img.big",{mb:20}),"err");let a=await Promise.all(s.map((e,t)=>new Promise((s,a)=>{let n=new FileReader;n.onload=()=>s({id:"".concat(Date.now(),"-").concat(t),name:e.name&&"image.png"!==e.name?e.name:"pasted-".concat(t+1,".png"),data:String(n.result),type:e.type,size:e.size}),n.onerror=()=>a(n.error),n.readAsDataURL(e)})));b(e=>[...e,...a])},T=async()=>{let e=j.trim();(e||v.length)&&(f(""),b([]),requestAnimationFrame(F),await i(e,v.map(e=>{let{name:t,data:s,type:a}=e;return{name:t,data:s,type:a}}))||(f(e),b(v),requestAnimationFrame(F)))};return(0,a.jsxs)("div",{className:"composer",children:[c?(0,a.jsx)("div",{className:"composer-box chat-readonly",children:(0,a.jsx)("span",{className:"muted",children:h("chat.readOnly")})}):(0,a.jsxs)("div",{className:"composer-box ".concat(N?"over":""),onDragOver:e=>{[...e.dataTransfer.types].includes("Files")&&(e.preventDefault(),z(!0))},onDragLeave:()=>z(!1),onDrop:e=>{z(!1);let t=[...e.dataTransfer.files];t.length&&(e.preventDefault(),R(t))},children:[v.length>0&&(0,a.jsx)("div",{className:"cmp-imgs",children:v.map(e=>{let t;return(0,a.jsxs)("span",{className:"cmp-img".concat(e.type.startsWith("image/")?"":" file"),title:e.name,children:[e.type.startsWith("image/")?(0,a.jsx)("img",{src:e.data,alt:e.name}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(m.A,{size:14,"aria-hidden":!0}),(0,a.jsx)("b",{children:e.name}),(0,a.jsx)("i",{children:(t=e.size)<1024?"".concat(t," B"):t<1048576?"".concat(Math.round(t/1024)," KB"):"".concat((t/1024/1024).toFixed(1)," MB")})]}),(0,a.jsx)("button",{type:"button",onClick:()=>b(t=>t.filter(t=>t.id!==e.id)),"aria-label":h("chat.img.remove",{name:e.name}),title:h("chat.img.remove",{name:e.name}),children:(0,a.jsx)(p.A,{size:12})})]},e.id)})}),(0,a.jsx)("input",{ref:C,type:"file",multiple:!0,hidden:!0,onChange:e=>{var t;R([...null!=(t=e.target.files)?t:[]]),e.target.value=""}}),(0,a.jsx)("button",{type:"button",className:"btn ghost icon",onClick:()=>{var e;return null==(e=C.current)?void 0:e.click()},"aria-label":h("chat.img.attach"),title:h("chat.img.attach"),children:(0,a.jsx)(m.A,{size:18})}),(0,a.jsx)("textarea",{ref:w,rows:1,onPaste:e=>{let t=[...e.clipboardData.files];!t.length||e.clipboardData.getData("text/plain").trim()||(e.preventDefault(),R(t))},value:j,placeholder:l?h("chat.queuePlaceholder"):h("chat.placeholder",{name:s}),"aria-label":h("chat.messageLabel"),onChange:e=>{f(e.target.value),F()},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),T())}}),l&&(0,a.jsxs)("button",{className:"btn",onClick:o,"aria-label":h("chat.stop"),children:[(0,a.jsx)(x.A,{size:14,fill:"currentColor"}),h("chat.stop")]}),(0,a.jsx)("button",{className:"btn primary icon",onClick:()=>void T(),disabled:!j.trim()&&!v.length,"aria-label":h("chat.send"),children:(0,a.jsx)(g.A,{size:18})})]}),(0,a.jsxs)("div",{className:"composer-meta",children:[(0,a.jsx)("span",{children:h("chat.keys")}),(0,a.jsx)("button",{type:"button",className:"linkbtn",onClick:u,children:d?h("chat.collapseTools"):h("chat.expandTools")}),r>0&&(0,a.jsx)("span",{children:h("queue.count",{count:r})})]})]})});function K(e){var t,s,l,r;let{agent:c,sessionOverride:i}=e,{t:o}=(0,E.s9)(),{agents:d}=(0,b.q5)(),{clearLive:u}=(0,b.zd)(),h=(0,k.dj)(),[m,p]=(0,n.useState)([]),[x,g]=(0,n.useState)(!1),[y,N]=(0,n.useState)(60),[A,w]=(0,n.useState)(0),C=(0,n.useRef)(null),[F,R]=(0,n.useState)([]),[T,M]=(0,n.useState)(null),S=(0,n.useRef)(null),H=(0,n.useRef)(!0),_=(0,n.useRef)(0),K=(0,n.useRef)(0),L=(0,n.useCallback)(()=>{K.current=performance.now()},[]),[$,B]=(0,n.useState)(!1),U=(0,n.useCallback)(()=>{let e=S.current;return e?e.scrollHeight-e.scrollTop-e.clientHeight:0},[]),Y=(0,n.useCallback)(()=>B(!H.current&&U()>=8),[U]),Z=(0,n.useCallback)(()=>{H.current=!1,Y()},[Y]),Q=(0,n.useCallback)(()=>{let e=S.current;H.current=!0,B(!1),e&&(e.scrollTop=e.scrollHeight)},[]),V=(0,n.useCallback)(()=>{let e=S.current;return!!e&&e.scrollHeight>e.clientHeight},[]),G=(0,b.M_)(c.id),J="running"===c.status||!!G&&!G.error,X=void 0!==i&&i!==c.session_id,ee=(0,n.useCallback)(()=>{let e=X?i:c.session_id;return e?v.FH.get("/agents/".concat(c.id,"/history?session=").concat(encodeURIComponent(e),"&limit=").concat(y)).then(e=>{var t;p(e.messages),w(null!=(t=e.total)?t:e.messages.length),g(!0)}).catch(e=>{h(e.message,"err"),g(!0)}):(p([]),w(0),g(!0),Promise.resolve())},[c.id,c.session_id,X,i,h,y]);(0,n.useEffect)(()=>{g(!1),N(60)},[c.id,c.session_id,i]),(0,n.useEffect)(()=>{ee()},[ee]),(0,n.useLayoutEffect)(()=>{let e=S.current;e&&null!==C.current&&(e.scrollTop+=e.scrollHeight-C.current,C.current=null)},[m]);let et=(0,n.useCallback)(()=>{var e,t;C.current=null!=(t=null==(e=S.current)?void 0:e.scrollHeight)?t:null,Z(),N(e=>e+120)},[Z]),es=(0,b.SV)(c.id),ea=(0,n.useRef)(!0);ea.current=!G&&"running"!==c.status&&!(null!=(s=c.queued)?s:0),(0,n.useEffect)(()=>{es&&ee().then(()=>{ea.current&&R(e=>e.length?[]:e)})},[es]),(0,n.useEffect)(()=>{R(e=>{let t=e.filter(e=>!m.some(t=>"user"===t.role&&t.blocks.some(t=>"text"===t.type&&t.text.trim()===e.trim())));return t.length===e.length?e:t})},[m]),(0,n.useEffect)(()=>{let e=S.current,t=null==e?void 0:e.firstElementChild;if(!e||!t)return;let s=()=>{H.current&&(e.scrollTop=e.scrollHeight),Y()},a=new ResizeObserver(s);return a.observe(t),a.observe(e),s(),()=>a.disconnect()},[x,c.id,Y]);let en=(0,n.useCallback)(async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(X)return!1;R(t=>[...t,e]),Q();try{let s=await v.FH.post("/agents/".concat(c.id,"/messages"),{prompt:e,...t.length?{files:t}:{}});return s.prompt&&s.prompt!==e&&R(t=>{let a=t.lastIndexOf(e);return a<0?t:t.map((e,t)=>t===a?s.prompt:e)}),!0}catch(t){return R(t=>{let s=t.lastIndexOf(e);return s<0?t:t.filter((e,t)=>t!==s)}),h(t instanceof Error?t.message:o("chat.sendFailed"),"err"),!1}},[c.id,X,h,o,Q]),el=(0,n.useCallback)(()=>{v.FH.post("/agents/".concat(c.id,"/stop")).catch(()=>void 0)},[c.id]),er=(0,n.useCallback)(()=>M(e=>!e),[]),ec=F.filter((e,t)=>!(G&&t===F.findIndex(e=>e.trim()===G.prompt.trim()))),ei=x&&!m.length&&!G&&!F.length;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(z.Qh.Provider,{value:T,children:(0,a.jsxs)("div",{className:"thread-wrap",children:[(0,a.jsx)("div",{className:"thread",ref:S,role:"log","aria-label":o("fa.chat.log",{name:c.name}),"aria-live":G?"off":"polite","aria-relevant":"additions",tabIndex:-1,onWheel:e=>{e.deltaY<0&&V()&&Z()},onTouchStart:L,onTouchMove:L,onPointerDown:L,onPointerMove:e=>{e.buttons&&L()},onKeyDown:e=>{["PageUp","ArrowUp","Home"].includes(e.key)&&!(e.target instanceof HTMLTextAreaElement)&&V()&&Z()},onScroll:e=>{let t=e.currentTarget;2>=U()?H.current=!0:t.scrollTop<_.current-1&&performance.now()-K.current<700&&(H.current=!1),Y(),_.current=t.scrollTop},children:(0,a.jsxs)("div",{className:"thread-inner ".concat(x?"in":""),children:[ei&&(0,a.jsx)("div",{className:"mt-l",children:(0,a.jsx)(k.pp,{icon:(0,a.jsx)(k._h,{agent:c,size:"lg"}),title:o("chat.empty.title",{name:c.name}),body:"orchestrator"===c.role?o("chat.empty.orchestrator"):o("chat.empty.worker")})}),A>m.length&&(0,a.jsx)("button",{type:"button",className:"btn sm chat-earlier",onClick:et,children:o("chat.earlier",{n:A-m.length})}),(0,a.jsx)(O,{msgs:m,agent:c}),G&&(0,a.jsxs)(a.Fragment,{children:["dispatch"===G.source?(0,a.jsxs)("div",{className:"delegation-card",children:[(0,a.jsxs)("div",{className:"head",children:[(0,a.jsx)(j.A,{size:14}),o("chat.delegatedFrom",{name:null!=(l=null==(t=d.find(e=>e.id===G.from))?void 0:t.name)?l:o("chat.anOrchestrator")})]}),(0,a.jsx)("p",{children:G.prompt}),(0,a.jsx)("span",{className:"hint",children:o("chat.delegatedNote")})]}):!m.some(e=>"user"===e.role&&e.blocks.some(e=>"text"===e.type&&e.text.trim()===G.prompt.trim()))&&(0,a.jsx)(D,{text:G.prompt,agentId:c.id}),(0,a.jsxs)("div",{className:"msg assistant",children:[(0,a.jsxs)("div",{className:"who",children:[(0,a.jsx)(k._h,{agent:c,size:"sm"}),c.name]}),(0,a.jsx)(I,{blocks:G.blocks,streaming:!0}),!G.error&&(0,a.jsxs)("span",{className:"typing","aria-label":o("common.working"),children:[(0,a.jsx)("i",{}),(0,a.jsx)("i",{}),(0,a.jsx)("i",{})]}),(0,a.jsx)(q,{turn:G}),G.error&&(0,a.jsxs)(k.lZ,{kind:"err",onDismiss:()=>u(c.id),children:[(0,E.YF)(G.error),(0,a.jsx)(P,{agent:c,error:G.error,onDone:()=>u(c.id)})]})]})]}),ec.map((e,t)=>(0,a.jsx)(D,{agentId:c.id,text:e,badge:G?o("chat.queuedBadge"):void 0},"".concat(t,":").concat(e)))]})}),$&&(0,a.jsxs)("button",{type:"button",className:"btn sm chat-jump",onClick:Q,children:[(0,a.jsx)(f.A,{size:14,"aria-hidden":!0}),o("fa.chat.jump")]})]})}),(0,a.jsx)("span",{className:"chat-sr",role:"status",children:G?o("fa.chat.working",{name:c.name}):es?o("fa.chat.done",{name:c.name}):""}),(0,a.jsx)(W,{agentId:c.id,name:c.name,running:J,queued:null!=(r=c.queued)?r:0,readOnly:X,onSend:en,onStop:el,toolsOpen:T,onToggleTools:er})]})}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[757],{494:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});let r=(0,n(74955).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"}]])},10964:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});let r=(0,n(74955).A)("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]])},15334:(t,e,n)=>{"use strict";n.d(e,{Do:()=>u,WZ:()=>i,TG:()=>l,ny:()=>o,yX:()=>s,xN:()=>c,Qc:()=>a,I$:()=>rf,aQ:()=>rm,di:()=>rv,kO:()=>r$,rN:()=>nW,bi:()=>rn,_s:()=>nA,_7:()=>no,aE:()=>e7,kr:()=>ng,Hm:()=>n8,tM:()=>eG,tn:()=>eQ,xc:()=>eU,us:()=>n$,IO:()=>e9,e_:()=>nD,Fp:()=>nV,Mi:()=>nh,HF:()=>nT,Eo:()=>nP,b5:()=>n1,Tq:()=>nt,qX:()=>nY,q1:()=>nC,M_:()=>n5,oj:()=>nH,aZ:()=>e8,aW:()=>n4,uD:()=>nE,Jo:()=>e4,U$:()=>e6,X6:()=>nd,oN:()=>nJ,ah:()=>nU,R4:()=>n_,WQ:()=>nS,r8:()=>ro,ZO:()=>eZ,bK:()=>eJ,b$:()=>e1,uj:()=>nF,v5:()=>nL,Ue:()=>nb,Er:()=>nO,oB:()=>e2,kf:()=>ny,mW:()=>np,Q6:()=>nN,QE:()=>nk,kM:()=>ns,No:()=>ru,Ff:()=>nv,zj:()=>nx,s_:()=>nm,vS:()=>rt,qn:()=>rs,uL:()=>ra,YN:()=>nz});var r,i,o,a,u,l,s,c,h={value:()=>{}};function f(){for(var t,e=0,n=arguments.length,r={};e<n;++e){if(!(t=arguments[e]+"")||t in r||/[\s.]/.test(t))throw Error("illegal type: "+t);r[t]=[]}return new d(r)}function d(t){this._=t}function p(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=h,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=n&&t.push({name:e,value:n}),t}function y(){}function g(t){return null==t?y:function(){return this.querySelector(t)}}function m(){return[]}function v(t){return null==t?m:function(){return this.querySelectorAll(t)}}function x(t){return function(){return this.matches(t)}}function w(t){return function(e){return e.matches(t)}}d.prototype=f.prototype={constructor:d,on:function(t,e){var n,r=this._,i=(t+"").trim().split(/^|\s+/).map(function(t){var e="",n=t.indexOf(".");if(n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),t&&!r.hasOwnProperty(t))throw Error("unknown type: "+t);return{type:t,name:e}}),o=-1,a=i.length;if(arguments.length<2){for(;++o<a;)if((n=(t=i[o]).type)&&(n=function(t,e){for(var n,r=0,i=t.length;r<i;++r)if((n=t[r]).name===e)return n.value}(r[n],t.name)))return n;return}if(null!=e&&"function"!=typeof e)throw Error("invalid callback: "+e);for(;++o<a;)if(n=(t=i[o]).type)r[n]=p(r[n],t.name,e);else if(null==e)for(n in r)r[n]=p(r[n],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new d(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,r,i=Array(n),o=0;o<n;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(r=this._[t],o=0,n=r.length;o<n;++o)r[o].value.apply(e,i)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(e,n)}};var _=Array.prototype.find;function b(){return this.firstElementChild}var M=Array.prototype.filter;function E(){return Array.from(this.children)}function k(t){return Array(t.length)}function $(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function A(t,e,n,r,i,o){for(var a,u=0,l=e.length,s=o.length;u<s;++u)(a=e[u])?(a.__data__=o[u],r[u]=a):n[u]=new $(t,o[u]);for(;u<l;++u)(a=e[u])&&(i[u]=a)}function z(t,e,n,r,i,o,a){var u,l,s,c=new Map,h=e.length,f=o.length,d=Array(h);for(u=0;u<h;++u)(l=e[u])&&(d[u]=s=a.call(l,l.__data__,u,e)+"",c.has(s)?i[u]=l:c.set(s,l));for(u=0;u<f;++u)s=a.call(t,o[u],u,o)+"",(l=c.get(s))?(r[u]=l,l.__data__=o[u],c.delete(s)):n[u]=new $(t,o[u]);for(u=0;u<h;++u)(l=e[u])&&c.get(d[u])===l&&(i[u]=l)}function N(t){return t.__data__}function S(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}$.prototype={constructor:$,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var T="http://www.w3.org/1999/xhtml";let I={svg:"http://www.w3.org/2000/svg",xhtml:T,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function P(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),I.hasOwnProperty(e)?{space:I[e],local:t}:t}function H(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function B(t,e){return t.style.getPropertyValue(e)||H(t).getComputedStyle(t,null).getPropertyValue(e)}function L(t){return t.trim().split(/^|\s+/)}function O(t){return t.classList||new C(t)}function C(t){this._node=t,this._names=L(t.getAttribute("class")||"")}function j(t,e){for(var n=O(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function D(t,e){for(var n=O(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function R(){this.textContent=""}function X(){this.innerHTML=""}function V(){this.nextSibling&&this.parentNode.appendChild(this)}function q(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Y(t){var e=P(t);return(e.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===T&&e.documentElement.namespaceURI===T?e.createElement(t):e.createElementNS(n,t)}})(e)}function F(){return null}function K(){var t=this.parentNode;t&&t.removeChild(this)}function W(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function U(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Z(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,o=e.length;r<o;++r)(n=e[r],t.type&&n.type!==t.type||n.name!==t.name)?e[++i]=n:this.removeEventListener(n.type,n.listener,n.options);++i?e.length=i:delete this.__on}}}function Q(t,e,n){return function(){var r,i=this.__on,o=function(t){e.call(this,t,this.__data__)};if(i){for(var a=0,u=i.length;a<u;++a)if((r=i[a]).type===t.type&&r.name===t.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=n),r.value=e;return}}this.addEventListener(t.type,o,n),r={type:t.type,name:t.name,value:e,listener:o,options:n},i?i.push(r):this.__on=[r]}}function G(t,e,n){var r=H(t),i=r.CustomEvent;"function"==typeof i?i=new i(e,n):(i=r.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}C.prototype={add:function(t){0>this._names.indexOf(t)&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var J=[null];function tt(t,e){this._groups=t,this._parents=e}function te(){return new tt([[document.documentElement]],J)}function tn(t){return"string"==typeof t?new tt([[document.querySelector(t)]],[document.documentElement]):new tt([[t]],J)}function tr(t,e){if(t=function(t){let e;for(;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(e.getScreenCTM().inverse())).x,r.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}tt.prototype=te.prototype={constructor:tt,select:function(t){"function"!=typeof t&&(t=g(t));for(var e=this._groups,n=e.length,r=Array(n),i=0;i<n;++i)for(var o,a,u=e[i],l=u.length,s=r[i]=Array(l),c=0;c<l;++c)(o=u[c])&&(a=t.call(o,o.__data__,c,u))&&("__data__"in o&&(a.__data__=o.__data__),s[c]=a);return new tt(r,this._parents)},selectAll:function(t){if("function"==typeof t){var e;e=t,t=function(){var t;return t=e.apply(this,arguments),null==t?[]:Array.isArray(t)?t:Array.from(t)}}else t=v(t);for(var n=this._groups,r=n.length,i=[],o=[],a=0;a<r;++a)for(var u,l=n[a],s=l.length,c=0;c<s;++c)(u=l[c])&&(i.push(t.call(u,u.__data__,c,l)),o.push(u));return new tt(i,o)},selectChild:function(t){var e;return this.select(null==t?b:(e="function"==typeof t?t:w(t),function(){return _.call(this.children,e)}))},selectChildren:function(t){var e;return this.selectAll(null==t?E:(e="function"==typeof t?t:w(t),function(){return M.call(this.children,e)}))},filter:function(t){"function"!=typeof t&&(t=x(t));for(var e=this._groups,n=e.length,r=Array(n),i=0;i<n;++i)for(var o,a=e[i],u=a.length,l=r[i]=[],s=0;s<u;++s)(o=a[s])&&t.call(o,o.__data__,s,a)&&l.push(o);return new tt(r,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,N);var n=e?z:A,r=this._parents,i=this._groups;"function"!=typeof t&&(v=t,t=function(){return v});for(var o=i.length,a=Array(o),u=Array(o),l=Array(o),s=0;s<o;++s){var c=r[s],h=i[s],f=h.length,d="object"==typeof(m=t.call(c,c&&c.__data__,s,r))&&"length"in m?m:Array.from(m),p=d.length,y=u[s]=Array(p),g=a[s]=Array(p);n(c,h,y,g,l[s]=Array(f),d,e);for(var m,v,x,w,_=0,b=0;_<p;++_)if(x=y[_]){for(_>=b&&(b=_+1);!(w=g[b])&&++b<p;);x._next=w||null}}return(a=new tt(a,r))._enter=u,a._exit=l,a},enter:function(){return new tt(this._enter||this._groups.map(k),this._parents)},exit:function(){return new tt(this._exit||this._groups.map(k),this._parents)},join:function(t,e,n){var r=this.enter(),i=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=e&&(i=e(i))&&(i=i.selection()),null==n?o.remove():n(o),r&&i?r.merge(i).order():i},merge:function(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,i=n.length,o=r.length,a=Math.min(i,o),u=Array(i),l=0;l<a;++l)for(var s,c=n[l],h=r[l],f=c.length,d=u[l]=Array(f),p=0;p<f;++p)(s=c[p]||h[p])&&(d[p]=s);for(;l<i;++l)u[l]=n[l];return new tt(u,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r,i=t[e],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=S);for(var n=this._groups,r=n.length,i=Array(r),o=0;o<r;++o){for(var a,u=n[o],l=u.length,s=i[o]=Array(l),c=0;c<l;++c)(a=u[c])&&(s[c]=a);s.sort(e)}return new tt(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){let t=0;for(let e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i,o=e[n],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,e){var n=P(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==e?n.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof e?n.local?function(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}:function(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}:n.local?function(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}:function(t,e){return function(){this.setAttribute(t,e)}})(n,e))},style:function(t,e,n){return arguments.length>1?this.each((null==e?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof e?function(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}:function(t,e,n){return function(){this.style.setProperty(t,e,n)}})(t,e,null==n?"":n)):B(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?function(t){return function(){delete this[t]}}:"function"==typeof e?function(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}:function(t,e){return function(){this[t]=e}})(t,e)):this.node()[t]},classed:function(t,e){var n=L(t+"");if(arguments.length<2){for(var r=O(this.node()),i=-1,o=n.length;++i<o;)if(!r.contains(n[i]))return!1;return!0}return this.each(("function"==typeof e?function(t,e){return function(){(e.apply(this,arguments)?j:D)(this,t)}}:e?function(t){return function(){j(this,t)}}:function(t){return function(){D(this,t)}})(n,e))},text:function(t){return arguments.length?this.each(null==t?R:("function"==typeof t?function(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?X:("function"==typeof t?function(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(V)},lower:function(){return this.each(q)},append:function(t){var e="function"==typeof t?t:Y(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})},insert:function(t,e){var n="function"==typeof t?t:Y(t),r=null==e?F:"function"==typeof e?e:g(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(K)},clone:function(t){return this.select(t?U:W)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var r,i,o=(t+"").trim().split(/^|\s+/).map(function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}),a=o.length;if(arguments.length<2){var u=this.node().__on;if(u){for(var l,s=0,c=u.length;s<c;++s)for(r=0,l=u[s];r<a;++r)if((i=o[r]).type===l.type&&i.name===l.name)return l.value}return}for(r=0,u=e?Q:Z;r<a;++r)this.each(u(o[r],e,n));return this},dispatch:function(t,e){return this.each(("function"==typeof e?function(t,e){return function(){return G(this,t,e.apply(this,arguments))}}:function(t,e){return function(){return G(this,t,e)}})(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r,i=t[e],o=0,a=i.length;o<a;++o)(r=i[o])&&(yield r)}};let ti={passive:!1},to={capture:!0,passive:!1};function ta(t){t.stopImmediatePropagation()}function tu(t){t.preventDefault(),t.stopImmediatePropagation()}function tl(t){var e=t.document.documentElement,n=tn(t).on("dragstart.drag",tu,to);"onselectstart"in e?n.on("selectstart.drag",tu,to):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function ts(t,e){var n=t.document.documentElement,r=tn(t).on("dragstart.drag",null);e&&(r.on("click.drag",tu,to),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}let tc=t=>()=>t;function th(t,{sourceEvent:e,subject:n,target:r,identifier:i,active:o,x:a,y:u,dx:l,dy:s,dispatch:c}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:s,enumerable:!0,configurable:!0},_:{value:c}})}function tf(t){return!t.ctrlKey&&!t.button}function td(){return this.parentNode}function tp(t,e){return null==e?{x:t.x,y:t.y}:e}function ty(){return navigator.maxTouchPoints||"ontouchstart"in this}function tg(t){return((t=Math.exp(t))+1/t)/2}th.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};let tm=function t(e,n,r){function i(t,i){var o,a,u=t[0],l=t[1],s=t[2],c=i[0],h=i[1],f=i[2],d=c-u,p=h-l,y=d*d+p*p;if(y<1e-12)a=Math.log(f/s)/e,o=function(t){return[u+t*d,l+t*p,s*Math.exp(e*t*a)]};else{var g=Math.sqrt(y),m=(f*f-s*s+r*y)/(2*s*n*g),v=(f*f-s*s-r*y)/(2*f*n*g),x=Math.log(Math.sqrt(m*m+1)-m);a=(Math.log(Math.sqrt(v*v+1)-v)-x)/e,o=function(t){var r,i,o=t*a,c=tg(x),h=s/(n*g)*(c*(((r=Math.exp(2*(r=e*o+x)))-1)/(r+1))-((i=Math.exp(i=x))-1/i)/2);return[u+h*d,l+h*p,s*c/tg(e*o+x)]}}return o.duration=1e3*a*e/Math.SQRT2,o}return i.rho=function(e){var n=Math.max(.001,+e),r=n*n;return t(n,r,r*r)},i}(Math.SQRT2,2,4);var tv,tx,tw=0,t_=0,tb=0,tM=0,tE=0,tk=0,t$="object"==typeof performance&&performance.now?performance:Date,tA="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function tz(){return tE||(tA(tN),tE=t$.now()+tk)}function tN(){tE=0}function tS(){this._call=this._time=this._next=null}function tT(t,e,n){var r=new tS;return r.restart(t,e,n),r}function tI(){tE=(tM=t$.now())+tk,tw=t_=0;try{tz(),++tw;for(var t,e=tv;e;)(t=tE-e._time)>=0&&e._call.call(void 0,t),e=e._next;--tw}finally{tw=0,function(){for(var t,e,n=tv,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:tv=e);tx=t,tH(r)}(),tE=0}}function tP(){var t=t$.now(),e=t-tM;e>1e3&&(tk-=e,tM=t)}function tH(t){!tw&&(t_&&(t_=clearTimeout(t_)),t-tE>24?(t<1/0&&(t_=setTimeout(tI,t-t$.now()-tk)),tb&&(tb=clearInterval(tb))):(tb||(tM=t$.now(),tb=setInterval(tP,1e3)),tw=1,tA(tI)))}function tB(t,e,n){var r=new tS;return e=null==e?0:+e,r.restart(n=>{r.stop(),t(n+e)},e,n),r}tS.prototype=tT.prototype={constructor:tS,restart:function(t,e,n){if("function"!=typeof t)throw TypeError("callback is not a function");n=(null==n?tz():+n)+(null==e?0:+e),this._next||tx===this||(tx?tx._next=this:tv=this,tx=this),this._call=t,this._time=n,tH()},stop:function(){this._call&&(this._call=null,this._time=1/0,tH())}};var tL=f("start","end","cancel","interrupt"),tO=[];function tC(t,e,n,r,i,o){var a=t.__transition;if(a){if(n in a)return}else t.__transition={};!function(t,e,n){var r,i=t.__transition;function o(l){var s,c,h,f;if(1!==n.state)return u();for(s in i)if((f=i[s]).name===n.name){if(3===f.state)return tB(o);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",t,t.__data__,f.index,f.group),delete i[s]):+s<e&&(f.state=6,f.timer.stop(),f.on.call("cancel",t,t.__data__,f.index,f.group),delete i[s])}if(tB(function(){3===n.state&&(n.state=4,n.timer.restart(a,n.delay,n.time),a(l))}),n.state=2,n.on.call("start",t,t.__data__,n.index,n.group),2===n.state){for(s=0,n.state=3,r=Array(h=n.tween.length),c=-1;s<h;++s)(f=n.tween[s].value.call(t,t.__data__,n.index,n.group))&&(r[++c]=f);r.length=c+1}}function a(e){for(var i=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(u),n.state=5,1),o=-1,a=r.length;++o<a;)r[o].call(t,i);5===n.state&&(n.on.call("end",t,t.__data__,n.index,n.group),u())}function u(){for(var r in n.state=6,n.timer.stop(),delete i[e],i)return;delete t.__transition}i[e]=n,n.timer=tT(function(t){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=t&&o(t-n.delay)},0,n.time)}(t,n,{name:e,index:r,group:i,on:tL,tween:tO,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function tj(t,e){var n=tR(t,e);if(n.state>0)throw Error("too late; already scheduled");return n}function tD(t,e){var n=tR(t,e);if(n.state>3)throw Error("too late; already running");return n}function tR(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw Error("transition not found");return n}function tX(t,e){var n,r,i,o=t.__transition,a=!0;if(o){for(i in e=null==e?null:e+"",o){if((n=o[i]).name!==e){a=!1;continue}r=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete o[i]}a&&delete t.__transition}}function tV(t,e){return t*=1,e*=1,function(n){return t*(1-n)+e*n}}var tq=180/Math.PI,tY={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function tF(t,e,n,r,i,o){var a,u,l;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(l=t*n+e*r)&&(n-=t*l,r-=e*l),(u=Math.sqrt(n*n+r*r))&&(n/=u,r/=u,l/=u),t*r<e*n&&(t=-t,e=-e,l=-l,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(e,t)*tq,skewX:Math.atan(l)*tq,scaleX:a,scaleY:u}}function tK(t,e,n,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var u,l,s,c,h=[],f=[];return o=t(o),a=t(a),!function(t,r,i,o,a,u){if(t!==i||r!==o){var l=a.push("translate(",null,e,null,n);u.push({i:l-4,x:tV(t,i)},{i:l-2,x:tV(r,o)})}else(i||o)&&a.push("translate("+i+e+o+n)}(o.translateX,o.translateY,a.translateX,a.translateY,h,f),u=o.rotate,l=a.rotate,u!==l?(u-l>180?l+=360:l-u>180&&(u+=360),f.push({i:h.push(i(h)+"rotate(",null,r)-2,x:tV(u,l)})):l&&h.push(i(h)+"rotate("+l+r),s=o.skewX,c=a.skewX,s!==c?f.push({i:h.push(i(h)+"skewX(",null,r)-2,x:tV(s,c)}):c&&h.push(i(h)+"skewX("+c+r),!function(t,e,n,r,o,a){if(t!==n||e!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:tV(t,n)},{i:u-2,x:tV(e,r)})}else(1!==n||1!==r)&&o.push(i(o)+"scale("+n+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,h,f),o=a=null,function(t){for(var e,n=-1,r=f.length;++n<r;)h[(e=f[n]).i]=e.x(t);return h.join("")}}}var tW=tK(function(t){let e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?tY:tF(e.a,e.b,e.c,e.d,e.e,e.f)},"px, ","px)","deg)"),tU=tK(function(t){return null==t?tY:(r||(r=document.createElementNS("http://www.w3.org/2000/svg","g")),r.setAttribute("transform",t),t=r.transform.baseVal.consolidate())?tF((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):tY},", ",")",")");function tZ(t,e,n){var r=t._id;return t.each(function(){var t=tD(this,r);(t.value||(t.value={}))[e]=n.apply(this,arguments)}),function(t){return tR(t,r).value[e]}}function tQ(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function tG(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function tJ(){}var t0="\\s*([+-]?\\d+)\\s*",t1="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",t2="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",t5=/^#([0-9a-f]{3,8})$/,t3=RegExp(`^rgb\\(${t0},${t0},${t0}\\)$`),t4=RegExp(`^rgb\\(${t2},${t2},${t2}\\)$`),t8=RegExp(`^rgba\\(${t0},${t0},${t0},${t1}\\)$`),t6=RegExp(`^rgba\\(${t2},${t2},${t2},${t1}\\)$`),t9=RegExp(`^hsl\\(${t1},${t2},${t2}\\)$`),t7=RegExp(`^hsla\\(${t1},${t2},${t2},${t1}\\)$`),et={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function ee(){return this.rgb().formatHex()}function en(){return this.rgb().formatRgb()}function er(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=t5.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?ei(e):3===n?new eu(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?eo(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?eo(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=t3.exec(t))?new eu(e[1],e[2],e[3],1):(e=t4.exec(t))?new eu(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=t8.exec(t))?eo(e[1],e[2],e[3],e[4]):(e=t6.exec(t))?eo(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=t9.exec(t))?ed(e[1],e[2]/100,e[3]/100,1):(e=t7.exec(t))?ed(e[1],e[2]/100,e[3]/100,e[4]):et.hasOwnProperty(t)?ei(et[t]):"transparent"===t?new eu(NaN,NaN,NaN,0):null}function ei(t){return new eu(t>>16&255,t>>8&255,255&t,1)}function eo(t,e,n,r){return r<=0&&(t=e=n=NaN),new eu(t,e,n,r)}function ea(t,e,n,r){var i;return 1==arguments.length?((i=t)instanceof tJ||(i=er(i)),i)?new eu((i=i.rgb()).r,i.g,i.b,i.opacity):new eu:new eu(t,e,n,null==r?1:r)}function eu(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function el(){return`#${ef(this.r)}${ef(this.g)}${ef(this.b)}`}function es(){let t=ec(this.opacity);return`${1===t?"rgb(":"rgba("}${eh(this.r)}, ${eh(this.g)}, ${eh(this.b)}${1===t?")":`, ${t})`}`}function ec(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function eh(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ef(t){return((t=eh(t))<16?"0":"")+t.toString(16)}function ed(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new ey(t,e,n,r)}function ep(t){if(t instanceof ey)return new ey(t.h,t.s,t.l,t.opacity);if(t instanceof tJ||(t=er(t)),!t)return new ey;if(t instanceof ey)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),o=Math.max(e,n,r),a=NaN,u=o-i,l=(o+i)/2;return u?(a=e===o?(n-r)/u+(n<r)*6:n===o?(r-e)/u+2:(e-n)/u+4,u/=l<.5?o+i:2-o-i,a*=60):u=l>0&&l<1?0:a,new ey(a,u,l,t.opacity)}function ey(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function eg(t){return(t=(t||0)%360)<0?t+360:t}function em(t){return Math.max(0,Math.min(1,t||0))}function ev(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}function ex(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}tQ(tJ,er,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:ee,formatHex:ee,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return ep(this).formatHsl()},formatRgb:en,toString:en}),tQ(eu,ea,tG(tJ,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new eu(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new eu(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new eu(eh(this.r),eh(this.g),eh(this.b),ec(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:el,formatHex:el,formatHex8:function(){return`#${ef(this.r)}${ef(this.g)}${ef(this.b)}${ef((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:es,toString:es})),tQ(ey,function(t,e,n,r){return 1==arguments.length?ep(t):new ey(t,e,n,null==r?1:r)},tG(tJ,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new ey(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new ey(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new eu(ev(t>=240?t-240:t+120,i,r),ev(t,i,r),ev(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new ey(eg(this.h),em(this.s),em(this.l),ec(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=ec(this.opacity);return`${1===t?"hsl(":"hsla("}${eg(this.h)}, ${100*em(this.s)}%, ${100*em(this.l)}%${1===t?")":`, ${t})`}`}}));let ew=t=>()=>t;function e_(t,e){var n=e-t;return n?function(e){return t+e*n}:ew(isNaN(t)?e:t)}let eb=function t(e){var n,r=1==(n=+e)?e_:function(t,e){var r,i,o;return e-t?(r=t,i=e,r=Math.pow(r,o=n),i=Math.pow(i,o)-r,o=1/o,function(t){return Math.pow(r+t*i,o)}):ew(isNaN(t)?e:t)};function i(t,e){var n=r((t=ea(t)).r,(e=ea(e)).r),i=r(t.g,e.g),o=r(t.b,e.b),a=e_(t.opacity,e.opacity);return function(e){return t.r=n(e),t.g=i(e),t.b=o(e),t.opacity=a(e),t+""}}return i.gamma=t,i}(1);function eM(t){return function(e){var n,r,i=e.length,o=Array(i),a=Array(i),u=Array(i);for(n=0;n<i;++n)r=ea(e[n]),o[n]=r.r||0,a[n]=r.g||0,u[n]=r.b||0;return o=t(o),a=t(a),u=t(u),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=u(t),r+""}}}eM(function(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r<e-1?t[r+2]:2*o-i;return ex((n-r/e)*e,a,i,o,u)}}),eM(function(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],u=t[(r+2)%e];return ex((n-r/e)*e,i,o,a,u)}});var eE=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ek=RegExp(eE.source,"g");function e$(t,e){var n,r,i,o,a,u=eE.lastIndex=ek.lastIndex=0,l=-1,s=[],c=[];for(t+="",e+="";(i=eE.exec(t))&&(o=ek.exec(e));)(a=o.index)>u&&(a=e.slice(u,a),s[l]?s[l]+=a:s[++l]=a),(i=i[0])===(o=o[0])?s[l]?s[l]+=o:s[++l]=o:(s[++l]=null,c.push({i:l,x:tV(i,o)})),u=ek.lastIndex;return u<e.length&&(a=e.slice(u),s[l]?s[l]+=a:s[++l]=a),s.length<2?c[0]?(n=c[0].x,function(t){return n(t)+""}):(r=e,function(){return r}):(e=c.length,function(t){for(var n,r=0;r<e;++r)s[(n=c[r]).i]=n.x(t);return s.join("")})}function eA(t,e){var n;return("number"==typeof e?tV:e instanceof er?eb:(n=er(e))?(e=n,eb):e$)(t,e)}var ez=te.prototype.constructor;function eN(t){return function(){this.style.removeProperty(t)}}var eS=0;function eT(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}var eI=te.prototype;eT.prototype=(function(t){return te().transition(t)}).prototype={constructor:eT,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=g(t));for(var r=this._groups,i=r.length,o=Array(i),a=0;a<i;++a)for(var u,l,s=r[a],c=s.length,h=o[a]=Array(c),f=0;f<c;++f)(u=s[f])&&(l=t.call(u,u.__data__,f,s))&&("__data__"in u&&(l.__data__=u.__data__),h[f]=l,tC(h[f],e,n,f,h,tR(u,n)));return new eT(o,this._parents,e,n)},selectAll:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=v(t));for(var r=this._groups,i=r.length,o=[],a=[],u=0;u<i;++u)for(var l,s=r[u],c=s.length,h=0;h<c;++h)if(l=s[h]){for(var f,d=t.call(l,l.__data__,h,s),p=tR(l,n),y=0,g=d.length;y<g;++y)(f=d[y])&&tC(f,e,n,y,d,p);o.push(d),a.push(l)}return new eT(o,a,e,n)},selectChild:eI.selectChild,selectChildren:eI.selectChildren,filter:function(t){"function"!=typeof t&&(t=x(t));for(var e=this._groups,n=e.length,r=Array(n),i=0;i<n;++i)for(var o,a=e[i],u=a.length,l=r[i]=[],s=0;s<u;++s)(o=a[s])&&t.call(o,o.__data__,s,a)&&l.push(o);return new eT(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw Error();for(var e=this._groups,n=t._groups,r=e.length,i=n.length,o=Math.min(r,i),a=Array(r),u=0;u<o;++u)for(var l,s=e[u],c=n[u],h=s.length,f=a[u]=Array(h),d=0;d<h;++d)(l=s[d]||c[d])&&(f[d]=l);for(;u<r;++u)a[u]=e[u];return new eT(a,this._parents,this._name,this._id)},selection:function(){return new ez(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,n=++eS,r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],l=u.length,s=0;s<l;++s)if(a=u[s]){var c=tR(a,e);tC(a,t,n,s,u,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new eT(r,this._parents,t,n)},call:eI.call,nodes:eI.nodes,node:eI.node,size:eI.size,empty:eI.empty,each:eI.each,on:function(t,e){var n,r,i,o,a,u,l=this._id;return arguments.length<2?tR(this.node(),l).on.on(t):this.each((n=l,r=t,i=e,u=(r+"").trim().split(/^|\s+/).every(function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t})?tj:tD,function(){var t=u(this,n),e=t.on;e!==o&&(a=(o=e).copy()).on(r,i),t.on=a}))},attr:function(t,e){var n=P(t),r="transform"===n?tU:eA;return this.attrTween(t,"function"==typeof e?(n.local?function(t,e,n){var r,i,o;return function(){var a,u,l=n(this);return null==l?void this.removeAttributeNS(t.space,t.local):(a=this.getAttributeNS(t.space,t.local))===(u=l+"")?null:a===r&&u===i?o:(i=u,o=e(r=a,l))}}:function(t,e,n){var r,i,o;return function(){var a,u,l=n(this);return null==l?void this.removeAttribute(t):(a=this.getAttribute(t))===(u=l+"")?null:a===r&&u===i?o:(i=u,o=e(r=a,l))}})(n,r,tZ(this,"attr."+t,e)):null==e?(n.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(n):(n.local?function(t,e,n){var r,i,o=n+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?i:i=e(r=a,n)}}:function(t,e,n){var r,i,o=n+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?i:i=e(r=a,n)}})(n,r,e))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw Error();var r=P(t);return this.tween(n,(r.local?function(t,e){var n,r;function i(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&function(e){this.setAttributeNS(t.space,t.local,i.call(this,e))}),n}return i._value=e,i}:function(t,e){var n,r;function i(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&function(e){this.setAttribute(t,i.call(this,e))}),n}return i._value=e,i})(r,e))},style:function(t,e,n){var r,i,o,a,u,l,s,c,h,f,d,p,y,g,m,v,x,w,_,b,M,E="transform"==(t+="")?tW:eA;return null==e?this.styleTween(t,(r=t,function(){var t=B(this,r),e=(this.style.removeProperty(r),B(this,r));return t===e?null:t===i&&e===o?a:a=E(i=t,o=e)})).on("end.style."+t,eN(t)):"function"==typeof e?this.styleTween(t,(u=t,l=tZ(this,"style."+t,e),function(){var t=B(this,u),e=l(this),n=e+"";return null==e&&(this.style.removeProperty(u),n=e=B(this,u)),t===n?null:t===s&&n===c?h:(c=n,h=E(s=t,e))})).each((f=this._id,x="end."+(v="style."+(d=t)),function(){var t=tD(this,f),e=t.on,n=null==t.value[v]?m||(m=eN(d)):void 0;(e!==p||g!==n)&&(y=(p=e).copy()).on(x,g=n),t.on=y})):this.styleTween(t,(w=t,M=e+"",function(){var t=B(this,w);return t===M?null:t===_?b:b=E(_=t,e)}),n).on("end.style."+t,null)},styleTween:function(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw Error();return this.tween(r,function(t,e,n){var r,i;function o(){var o=e.apply(this,arguments);return o!==i&&(r=(i=o)&&function(e){this.style.setProperty(t,o.call(this,e),n)}),r}return o._value=e,o}(t,e,null==n?"":n))},text:function(t){var e,n;return this.tween("text","function"==typeof t?(e=tZ(this,"text",t),function(){var t=e(this);this.textContent=null==t?"":t}):(n=null==t?"":t+"",function(){this.textContent=n}))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw Error();return this.tween(e,function(t){var e,n;function r(){var r=t.apply(this,arguments);return r!==n&&(e=(n=r)&&function(t){this.textContent=r.call(this,t)}),e}return r._value=t,r}(t))},remove:function(){var t;return this.on("end.remove",(t=this._id,function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}))},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r,i=tR(this.node(),n).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==e?function(t,e){var n,r;return function(){var i=tD(this,t),o=i.tween;if(o!==n){r=n=o;for(var a=0,u=r.length;a<u;++a)if(r[a].name===e){(r=r.slice()).splice(a,1);break}}i.tween=r}}:function(t,e,n){var r,i;if("function"!=typeof n)throw Error();return function(){var o=tD(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:e,value:n},l=0,s=i.length;l<s;++l)if(i[l].name===e){i[l]=u;break}l===s&&i.push(u)}o.tween=i}})(n,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?function(t,e){return function(){tj(this,t).delay=+e.apply(this,arguments)}}:function(t,e){return e*=1,function(){tj(this,t).delay=e}})(e,t)):tR(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?function(t,e){return function(){tD(this,t).duration=+e.apply(this,arguments)}}:function(t,e){return e*=1,function(){tD(this,t).duration=e}})(e,t)):tR(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(function(t,e){if("function"!=typeof e)throw Error();return function(){tD(this,t).ease=e}}(e,t)):tR(this.node(),e).ease},easeVarying:function(t){var e;if("function"!=typeof t)throw Error();return this.each((e=this._id,function(){var n=t.apply(this,arguments);if("function"!=typeof n)throw Error();tD(this,e).ease=n}))},end:function(){var t,e,n=this,r=n._id,i=n.size();return new Promise(function(o,a){var u={value:a},l={value:function(){0==--i&&o()}};n.each(function(){var n=tD(this,r),i=n.on;i!==t&&((e=(t=i).copy())._.cancel.push(u),e._.interrupt.push(u),e._.end.push(l)),n.on=e}),0===i&&o()})},[Symbol.iterator]:eI[Symbol.iterator]};var eP={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};te.prototype.interrupt=function(t){return this.each(function(){tX(this,t)})},te.prototype.transition=function(t){var e,n;t instanceof eT?(e=t._id,t=t._name):(e=++eS,(n=eP).time=tz(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],l=u.length,s=0;s<l;++s)(a=u[s])&&tC(a,t,e,s,u,n||function(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw Error(`transition ${e} not found`);return n}(a,e));return new eT(r,this._parents,t,e)};let eH=t=>()=>t;function eB(t,{sourceEvent:e,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function eL(t,e,n){this.k=t,this.x=e,this.y=n}eL.prototype={constructor:eL,scale:function(t){return 1===t?this:new eL(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new eL(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var eO=new eL(1,0,0);function eC(t){for(;!t.__zoom;)if(!(t=t.parentNode))return eO;return t.__zoom}function ej(t){t.stopImmediatePropagation()}function eD(t){t.preventDefault(),t.stopImmediatePropagation()}function eR(t){return(!t.ctrlKey||"wheel"===t.type)&&!t.button}function eX(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function eV(){return this.__zoom||eO}function eq(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function eY(){return navigator.maxTouchPoints||"ontouchstart"in this}function eF(t,e,n){var r=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],o=t.invertY(e[0][1])-n[0][1],a=t.invertY(e[1][1])-n[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function eK(){var t,e,n,r=eR,i=eX,o=eF,a=eq,u=eY,l=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],c=250,h=tm,d=f("start","zoom","end"),p=0,y=10;function g(t){t.property("__zoom",eV).on("wheel.zoom",M,{passive:!1}).on("mousedown.zoom",E).on("dblclick.zoom",k).filter(u).on("touchstart.zoom",$).on("touchmove.zoom",A).on("touchend.zoom touchcancel.zoom",z).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m(t,e){return(e=Math.max(l[0],Math.min(l[1],e)))===t.k?t:new eL(e,t.x,t.y)}function v(t,e,n){var r=e[0]-n[0]*t.k,i=e[1]-n[1]*t.k;return r===t.x&&i===t.y?t:new eL(t.k,r,i)}function x(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function w(t,e,n,r){t.on("start.zoom",function(){_(this,arguments).event(r).start()}).on("interrupt.zoom end.zoom",function(){_(this,arguments).event(r).end()}).tween("zoom",function(){var t=arguments,o=_(this,t).event(r),a=i.apply(this,t),u=null==n?x(a):"function"==typeof n?n.apply(this,t):n,l=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),s=this.__zoom,c="function"==typeof e?e.apply(this,t):e,f=h(s.invert(u).concat(l/s.k),c.invert(u).concat(l/c.k));return function(t){if(1===t)t=c;else{var e=f(t),n=l/e[2];t=new eL(n,u[0]-e[0]*n,u[1]-e[1]*n)}o.zoom(null,t)}})}function _(t,e,n){return!n&&t.__zooming||new b(t,e)}function b(t,e){this.that=t,this.args=e,this.active=0,this.sourceEvent=null,this.extent=i.apply(t,e),this.taps=0}function M(t,...e){if(r.apply(this,arguments)){var n=_(this,e).event(t),i=this.__zoom,u=Math.max(l[0],Math.min(l[1],i.k*Math.pow(2,a.apply(this,arguments)))),c=tr(t);if(n.wheel)(n.mouse[0][0]!==c[0]||n.mouse[0][1]!==c[1])&&(n.mouse[1]=i.invert(n.mouse[0]=c)),clearTimeout(n.wheel);else{if(i.k===u)return;n.mouse=[c,i.invert(c)],tX(this),n.start()}eD(t),n.wheel=setTimeout(function(){n.wheel=null,n.end()},150),n.zoom("mouse",o(v(m(i,u),n.mouse[0],n.mouse[1]),n.extent,s))}}function E(t,...e){if(!n&&r.apply(this,arguments)){var i=t.currentTarget,a=_(this,e,!0).event(t),u=tn(t.view).on("mousemove.zoom",function(t){if(eD(t),!a.moved){var e=t.clientX-c,n=t.clientY-h;a.moved=e*e+n*n>p}a.event(t).zoom("mouse",o(v(a.that.__zoom,a.mouse[0]=tr(t,i),a.mouse[1]),a.extent,s))},!0).on("mouseup.zoom",function(t){u.on("mousemove.zoom mouseup.zoom",null),ts(t.view,a.moved),eD(t),a.event(t).end()},!0),l=tr(t,i),c=t.clientX,h=t.clientY;tl(t.view),ej(t),a.mouse=[l,this.__zoom.invert(l)],tX(this),a.start()}}function k(t,...e){if(r.apply(this,arguments)){var n=this.__zoom,a=tr(t.changedTouches?t.changedTouches[0]:t,this),u=n.invert(a),l=n.k*(t.shiftKey?.5:2),h=o(v(m(n,l),a,u),i.apply(this,e),s);eD(t),c>0?tn(this).transition().duration(c).call(w,h,a,t):tn(this).call(g.transform,h,a,t)}}function $(n,...i){if(r.apply(this,arguments)){var o,a,u,l,s=n.touches,c=s.length,h=_(this,i,n.changedTouches.length===c).event(n);for(ej(n),a=0;a<c;++a)l=[l=tr(u=s[a],this),this.__zoom.invert(l),u.identifier],h.touch0?h.touch1||h.touch0[2]===l[2]||(h.touch1=l,h.taps=0):(h.touch0=l,o=!0,h.taps=1+!!t);t&&(t=clearTimeout(t)),o&&(h.taps<2&&(e=l[0],t=setTimeout(function(){t=null},500)),tX(this),h.start())}}function A(t,...e){if(this.__zooming){var n,r,i,a,u=_(this,e).event(t),l=t.changedTouches,c=l.length;for(eD(t),n=0;n<c;++n)i=tr(r=l[n],this),u.touch0&&u.touch0[2]===r.identifier?u.touch0[0]=i:u.touch1&&u.touch1[2]===r.identifier&&(u.touch1[0]=i);if(r=u.that.__zoom,u.touch1){var h=u.touch0[0],f=u.touch0[1],d=u.touch1[0],p=u.touch1[1],y=(y=d[0]-h[0])*y+(y=d[1]-h[1])*y,g=(g=p[0]-f[0])*g+(g=p[1]-f[1])*g;r=m(r,Math.sqrt(y/g)),i=[(h[0]+d[0])/2,(h[1]+d[1])/2],a=[(f[0]+p[0])/2,(f[1]+p[1])/2]}else{if(!u.touch0)return;i=u.touch0[0],a=u.touch0[1]}u.zoom("touch",o(v(r,i,a),u.extent,s))}}function z(t,...r){if(this.__zooming){var i,o,a=_(this,r).event(t),u=t.changedTouches,l=u.length;for(ej(t),n&&clearTimeout(n),n=setTimeout(function(){n=null},500),i=0;i<l;++i)o=u[i],a.touch0&&a.touch0[2]===o.identifier?delete a.touch0:a.touch1&&a.touch1[2]===o.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(o=tr(o,this),Math.hypot(e[0]-o[0],e[1]-o[1])<y)){var s=tn(this).on("dblclick.zoom");s&&s.apply(this,arguments)}}}return g.transform=function(t,e,n,r){var i=t.selection?t.selection():t;i.property("__zoom",eV),t!==i?w(t,e,n,r):i.interrupt().each(function(){_(this,arguments).event(r).start().zoom(null,"function"==typeof e?e.apply(this,arguments):e).end()})},g.scaleBy=function(t,e,n,r){g.scaleTo(t,function(){var t=this.__zoom.k,n="function"==typeof e?e.apply(this,arguments):e;return t*n},n,r)},g.scaleTo=function(t,e,n,r){g.transform(t,function(){var t=i.apply(this,arguments),r=this.__zoom,a=null==n?x(t):"function"==typeof n?n.apply(this,arguments):n,u=r.invert(a),l="function"==typeof e?e.apply(this,arguments):e;return o(v(m(r,l),a,u),t,s)},n,r)},g.translateBy=function(t,e,n,r){g.transform(t,function(){return o(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof n?n.apply(this,arguments):n),i.apply(this,arguments),s)},null,r)},g.translateTo=function(t,e,n,r,a){g.transform(t,function(){var t=i.apply(this,arguments),a=this.__zoom,u=null==r?x(t):"function"==typeof r?r.apply(this,arguments):r;return o(eO.translate(u[0],u[1]).scale(a.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof n?-n.apply(this,arguments):-n),t,s)},r,a)},b.prototype={event:function(t){return t&&(this.sourceEvent=t),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(t,e){return this.mouse&&"mouse"!==t&&(this.mouse[1]=e.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=e.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=e.invert(this.touch1[0])),this.that.__zoom=e,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){var e=tn(this.that).datum();d.call(t,this.that,new eB(t,{sourceEvent:this.sourceEvent,target:g,type:t,transform:this.that.__zoom,dispatch:d}),e)}},g.wheelDelta=function(t){return arguments.length?(a="function"==typeof t?t:eH(+t),g):a},g.filter=function(t){return arguments.length?(r="function"==typeof t?t:eH(!!t),g):r},g.touchable=function(t){return arguments.length?(u="function"==typeof t?t:eH(!!t),g):u},g.extent=function(t){return arguments.length?(i="function"==typeof t?t:eH([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),g):i},g.scaleExtent=function(t){return arguments.length?(l[0]=+t[0],l[1]=+t[1],g):[l[0],l[1]]},g.translateExtent=function(t){return arguments.length?(s[0][0]=+t[0][0],s[1][0]=+t[1][0],s[0][1]=+t[0][1],s[1][1]=+t[1][1],g):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},g.constrain=function(t){return arguments.length?(o=t,g):o},g.duration=function(t){return arguments.length?(c=+t,g):c},g.interpolate=function(t){return arguments.length?(h=t,g):h},g.on=function(){var t=d.on.apply(d,arguments);return t===d?g:t},g.clickDistance=function(t){return arguments.length?(p=(t*=1)*t,g):Math.sqrt(p)},g.tapDistance=function(t){return arguments.length?(y=+t,g):y},g}function eW(t,e){var n,r,i=typeof e;return null==e||"boolean"===i?ew(e):("number"===i?tV:"string"===i?(r=er(e))?(e=r,eb):e$:e instanceof er?eb:e instanceof Date?function(t,e){var n=new Date;return t*=1,e*=1,function(r){return n.setTime(t*(1-r)+e*r),n}}:!ArrayBuffer.isView(n=e)||n instanceof DataView?Array.isArray(e)?function(t,e){var n,r=e?e.length:0,i=t?Math.min(r,t.length):0,o=Array(i),a=Array(r);for(n=0;n<i;++n)o[n]=eW(t[n],e[n]);for(;n<r;++n)a[n]=e[n];return function(t){for(n=0;n<i;++n)a[n]=o[n](t);return a}}:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?function(t,e){var n,r={},i={};for(n in(null===t||"object"!=typeof t)&&(t={}),(null===e||"object"!=typeof e)&&(e={}),e)n in t?r[n]=eW(t[n],e[n]):i[n]=e[n];return function(t){for(n in r)i[n]=r[n](t);return i}}:tV:function(t,e){e||(e=[]);var n,r=t?Math.min(e.length,t.length):0,i=e.slice();return function(o){for(n=0;n<r;++n)i[n]=t[n]*(1-o)+e[n]*o;return i}})(t,e)}eC.prototype=eL.prototype;let eU={error001:(t="react")=>`Seems like you have not used ${"svelte"===t?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${t}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:t=>`Node type "${t}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:t=>`The old edge with id=${t} does not exist.`,error009:t=>`Marker type "${t}" doesn't exist.`,error008:(t,{id:e,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${t} handle id: "${"source"===t?n:r}", edge id: ${e}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:t=>`Edge type "${t}" not found. Using fallback type "default".`,error012:t=>`Node with id "${t}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(t="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${t}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:t=>`Edge with id "${t}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},eZ=[[-1/0,-1/0],[1/0,1/0]],eQ=["Enter"," ","Escape"],eG={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:t,x:e,y:n})=>`Moved selected node ${t}. New position, x: ${e}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};!function(t){t.Strict="strict",t.Loose="loose"}(i||(i={})),function(t){t.Free="free",t.Vertical="vertical",t.Horizontal="horizontal"}(o||(o={})),function(t){t.Partial="partial",t.Full="full"}(a||(a={}));let eJ={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};!function(t){t.Bezier="default",t.Straight="straight",t.Step="step",t.SmoothStep="smoothstep",t.SimpleBezier="simplebezier"}(u||(u={})),function(t){t.Arrow="arrow",t.ArrowClosed="arrowclosed"}(l||(l={})),function(t){t.Left="left",t.Top="top",t.Right="right",t.Bottom="bottom"}(s||(s={}));let e0={[s.Left]:s.Right,[s.Right]:s.Left,[s.Top]:s.Bottom,[s.Bottom]:s.Top},e1=t=>!!t&&"object"==typeof t&&"id"in t&&"source"in t&&"target"in t,e2=t=>!!t&&"object"==typeof t&&"id"in t&&"position"in t&&!("source"in t)&&!("target"in t),e5=t=>!!t&&"object"==typeof t&&"id"in t&&"internals"in t&&!("source"in t)&&!("target"in t),e3=(t,e=[0,0])=>{let{width:n,height:r}=nE(t),i=t.origin??e,o=n*i[0],a=r*i[1];return{x:t.position.x-o,y:t.position.y-a}},e4=(t,e={nodeOrigin:[0,0]})=>{if(0===t.length)return{x:0,y:0,width:0,height:0};let n=!1,r=t.reduce((t,r)=>{let i="string"==typeof r,o=e.nodeLookup||i?void 0:r;return(e.nodeLookup&&(o=i?e.nodeLookup.get(r):e5(r)?r:e.nodeLookup.get(r.id)),o)?(n=!0,na(t,nc(o,e.nodeOrigin))):t},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?nl(r):{x:0,y:0,width:0,height:0}},e8=(t,e={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return t.forEach(t=>{(void 0===e.filter||e.filter(t))&&(n=na(n,nc(t)),r=!0)}),r?nl(n):{x:0,y:0,width:0,height:0}},e6=(t,e,[n,r,i]=[0,0,1],o=!1,a=!1)=>{let u=(e.x-n)/i,l=(e.y-r)/i,s=e.width/i,c=e.height/i,h=[];for(let e of t.values()){let{measured:t,selectable:n=!0,hidden:r=!1}=e;if(a&&!n||r)continue;let i=t.width??e.width??e.initialWidth??0,f=t.height??e.height??e.initialHeight??0,{x:d,y:p}=e.internals.positionAbsolute,y=nf(u,l,s,c,d,p,i,f),g=i*f,m=o&&y>0;(!e.internals.handleBounds||m||y>=g||e.dragging)&&h.push(e)}return h};async function e9({nodes:t,width:e,height:n,panZoom:r,minZoom:i,maxZoom:o},a){if(0===t.size)return!0;let u=n_(e8(function(t,e){let n=new Map,r=e?.nodes?new Set(e.nodes.map(t=>t.id)):null;return t.forEach(t=>{let i;if(e?.includeHiddenNodes){let{width:e,height:n}=nE(t);i=e>0&&n>0}else i=!!(t.measured.width&&t.measured.height&&!t.hidden);i&&(!r||r.has(t.id))&&n.set(t.id,t)}),n}(t,a)),e,n,a?.minZoom??i,a?.maxZoom??o,a?.padding??.1);return await r.setViewport(u,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),!0}function e7({nodeId:t,nextPosition:e,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:o}){let a=n.get(t),u=a.parentId?n.get(a.parentId):void 0,{x:l,y:s}=u?u.internals.positionAbsolute:{x:0,y:0},c=a.origin??r,h=a.extent||i;if("parent"!==a.extent||a.expandParent)u&&nM(a.extent)&&(h=[[a.extent[0][0]+l,a.extent[0][1]+s],[a.extent[1][0]+l,a.extent[1][1]+s]]);else if(u){let{width:t,height:e}=nE(u);t&&e&&(h=[[l,s],[l+t,s+e]])}else o?.("005",eU.error005());let f=nM(h)?nn(e,h,a.measured):e;return(void 0===a.measured.width||void 0===a.measured.height)&&o?.("015",eU.error015()),{position:{x:f.x-l+(a.measured.width??0)*c[0],y:f.y-s+(a.measured.height??0)*c[1]},positionAbsolute:f}}async function nt({nodesToRemove:t=[],edgesToRemove:e=[],nodes:n,edges:r,onBeforeDelete:i}){let o=new Set(t.map(t=>t.id)),a=[];for(let t of n){if(!1===t.deletable)continue;let e=o.has(t.id),n=!e&&t.parentId&&a.find(e=>e.id===t.parentId);(e||n)&&a.push(t)}let u=new Set(e.map(t=>t.id)),l=r.filter(t=>!1!==t.deletable),s=((t,e)=>{let n=new Set;return t.forEach(t=>{n.add(t.id)}),e.filter(t=>n.has(t.source)||n.has(t.target))})(a,l);for(let t of l)u.has(t.id)&&!s.find(e=>e.id===t.id)&&s.push(t);if(!i)return{edges:s,nodes:a};let c=await i({nodes:a,edges:s});return"boolean"==typeof c?c?{edges:s,nodes:a}:{edges:[],nodes:[]}:c}let ne=(t,e=0,n=1)=>Math.min(Math.max(t,e),n),nn=(t={x:0,y:0},e,n)=>({x:ne(t.x,e[0][0],e[1][0]-(n?.width??0)),y:ne(t.y,e[0][1],e[1][1]-(n?.height??0))});function nr(t,e,n){let{width:r,height:i}=nE(n),{x:o,y:a}=n.internals.positionAbsolute;return nn(t,[[o,a],[o+r,a+i]],e)}let ni=(t,e,n)=>t<e?ne(Math.abs(t-e),1,e)/e:t>n?-ne(Math.abs(t-n),1,e)/e:0,no=(t,e,n=15,r=40)=>[ni(t.x,r,e.width-r)*n,ni(t.y,r,e.height-r)*n],na=(t,e)=>({x:Math.min(t.x,e.x),y:Math.min(t.y,e.y),x2:Math.max(t.x2,e.x2),y2:Math.max(t.y2,e.y2)}),nu=({x:t,y:e,width:n,height:r})=>({x:t,y:e,x2:t+n,y2:e+r}),nl=({x:t,y:e,x2:n,y2:r})=>({x:t,y:e,width:n-t,height:r-e}),ns=(t,e=[0,0])=>{let{x:n,y:r}=e5(t)?t.internals.positionAbsolute:e3(t,e);return{x:n,y:r,width:t.measured?.width??t.width??t.initialWidth??0,height:t.measured?.height??t.height??t.initialHeight??0}},nc=(t,e=[0,0])=>{let{x:n,y:r}=e5(t)?t.internals.positionAbsolute:e3(t,e);return{x:n,y:r,x2:n+(t.measured?.width??t.width??t.initialWidth??0),y2:r+(t.measured?.height??t.height??t.initialHeight??0)}},nh=(t,e)=>nl(na(nu(t),nu(e))),nf=(t,e,n,r,i,o,a,u)=>Math.ceil(Math.max(0,Math.min(t+n,i+a)-Math.max(t,i))*Math.max(0,Math.min(e+r,o+u)-Math.max(e,o))),nd=(t,e)=>nf(t.x,t.y,t.width,t.height,e.x,e.y,e.width,e.height),np=t=>ny(t.width)&&ny(t.height)&&ny(t.x)&&ny(t.y),ny=t=>!isNaN(t)&&isFinite(t),ng=(t,e)=>(t,e)=>{},nm=(t,e=[1,1])=>({x:e[0]*Math.round(t.x/e[0]),y:e[1]*Math.round(t.y/e[1])}),nv=({x:t,y:e},[n,r,i],o=!1,a=[1,1])=>{let u={x:(t-n)/i,y:(e-r)/i};return o?nm(u,a):u},nx=({x:t,y:e},[n,r,i])=>({x:t*i+n,y:e*i+r});function nw(t,e){if("number"==typeof t)return Math.floor((e-e/(1+t))*.5);if("string"==typeof t&&t.endsWith("px")){let e=parseFloat(t);if(!Number.isNaN(e))return Math.floor(e)}if("string"==typeof t&&t.endsWith("%")){let n=parseFloat(t);if(!Number.isNaN(n))return Math.floor(e*n*.01)}return console.error(`The padding value "${t}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}let n_=(t,e,n,r,i,o)=>{let a=function(t,e,n){if("string"==typeof t||"number"==typeof t){let r=nw(t,n),i=nw(t,e);return{top:r,right:i,bottom:r,left:i,x:2*i,y:2*r}}if("object"==typeof t){let r=nw(t.top??t.y??0,n),i=nw(t.bottom??t.y??0,n),o=nw(t.left??t.x??0,e),a=nw(t.right??t.x??0,e);return{top:r,right:a,bottom:i,left:o,x:o+a,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}(o,e,n),u=ne(Math.min((e-a.x)/t.width,(n-a.y)/t.height),r,i),l=t.x+t.width/2,s=t.y+t.height/2,c=e/2-l*u,h=n/2-s*u,f=function(t,e,n,r,i,o){let{x:a,y:u}=nx(t,[e,n,r]),{x:l,y:s}=nx({x:t.x+t.width,y:t.y+t.height},[e,n,r]);return{left:Math.floor(a),top:Math.floor(u),right:Math.floor(i-l),bottom:Math.floor(o-s)}}(t,c,h,u,e,n),d={left:Math.min(f.left-a.left,0),top:Math.min(f.top-a.top,0),right:Math.min(f.right-a.right,0),bottom:Math.min(f.bottom-a.bottom,0)};return{x:c-d.left+d.right,y:h-d.top+d.bottom,zoom:u}},nb=()=>"undefined"!=typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0;function nM(t){return null!=t&&"parent"!==t}function nE(t){return{width:t.measured?.width??t.width??t.initialWidth??0,height:t.measured?.height??t.height??t.initialHeight??0}}function nk(t){return(t.measured?.width??t.width??t.initialWidth)!==void 0&&(t.measured?.height??t.height??t.initialHeight)!==void 0}function n$(t,e={width:0,height:0},n,r,i){let o={...t},a=r.get(n);if(a){let t=a.origin||i;o.x+=a.internals.positionAbsolute.x-(e.width??0)*t[0],o.y+=a.internals.positionAbsolute.y-(e.height??0)*t[1]}return o}function nA(t,e){if(t.size!==e.size)return!1;for(let n of t)if(!e.has(n))return!1;return!0}function nz(){let t,e;return{promise:new Promise((n,r)=>{t=n,e=r}),resolve:t,reject:e}}function nN(t){return{...eG,...t||{}}}function nS(t){}function nT(t){return null===t?null:t?"valid":"invalid"}function nI(t,{snapGrid:e=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:o,y:a}=nC(t),u=nv({x:o-(i?.left??0),y:a-(i?.top??0)},r),{x:l,y:s}=n?nm(u,e):u;return{xSnapped:l,ySnapped:s,...u}}let nP=t=>({width:t.offsetWidth,height:t.offsetHeight}),nH=t=>t?.getRootNode?.()||window?.document,nB=["INPUT","SELECT","TEXTAREA"];function nL(t){let e=t.composedPath?.()?.[0]||t.target;return e?.nodeType===1&&(nB.includes(e.nodeName)||e.hasAttribute("contenteditable")||!!e.closest(".nokey"))}let nO=t=>"clientX"in t,nC=(t,e)=>{let n=nO(t),r=n?t.clientX:t.touches?.[0].clientX,i=n?t.clientY:t.touches?.[0].clientY;return{x:r-(e?.left??0),y:i-(e?.top??0)}},nj=(t,e,n,r,i)=>{let o=e.querySelectorAll(`.${t}`);return o&&o.length?Array.from(o).map(e=>{let o=e.getBoundingClientRect();return{id:e.getAttribute("data-handleid"),type:t,nodeId:i,position:e.getAttribute("data-handlepos"),x:(o.left-n.left)/r,y:(o.top-n.top)/r,...nP(e)}}):null};function nD({sourceX:t,sourceY:e,targetX:n,targetY:r,sourceControlX:i,sourceControlY:o,targetControlX:a,targetControlY:u}){let l=.125*t+.375*i+.375*a+.125*n,s=.125*e+.375*o+.375*u+.125*r,c=Math.abs(l-t),h=Math.abs(s-e);return[l,s,c,h]}function nR(t,e){return t>=0?.5*t:25*e*Math.sqrt(-t)}function nX({pos:t,x1:e,y1:n,x2:r,y2:i,c:o}){switch(t){case s.Left:return[e-nR(e-r,o),n];case s.Right:return[e+nR(r-e,o),n];case s.Top:return[e,n-nR(n-i,o)];case s.Bottom:return[e,n+nR(i-n,o)]}}function nV({sourceX:t,sourceY:e,sourcePosition:n=s.Bottom,targetX:r,targetY:i,targetPosition:o=s.Top,curvature:a=.25}){let[u,l]=nX({pos:n,x1:t,y1:e,x2:r,y2:i,c:a}),[c,h]=nX({pos:o,x1:r,y1:i,x2:t,y2:e,c:a}),[f,d,p,y]=nD({sourceX:t,sourceY:e,targetX:r,targetY:i,sourceControlX:u,sourceControlY:l,targetControlX:c,targetControlY:h});return[`M${t},${e} C${u},${l} ${c},${h} ${r},${i}`,f,d,p,y]}function nq({sourceX:t,sourceY:e,targetX:n,targetY:r}){let i=Math.abs(n-t)/2,o=Math.abs(r-e)/2;return[n<t?n+i:n-i,r<e?r+o:r-o,i,o]}function nY({sourceNode:t,targetNode:e,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:o="basic"}){if("manual"===o)return r;let a=Math.max(t.parentId||i&&t.selected?t.internals.z:0,e.parentId||i&&e.selected?e.internals.z:0);return(i&&n?r+1e3:r)+a}function nF({sourceNode:t,targetNode:e,width:n,height:r,transform:i}){let o=na(nc(t),nc(e));return o.x===o.x2&&(o.x2+=1),o.y===o.y2&&(o.y2+=1),nd({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},nl(o))>0}let nK=({source:t,sourceHandle:e,target:n,targetHandle:r})=>`xy-edge__${t}${e||""}-${n}${r||""}`,nW=(t,e,n={})=>{let r;if(!t.source||!t.target)return n.onError?.("006",eU.error006()),e;let i=n.getEdgeId||nK;return((t,e)=>e.some(e=>e.source===t.source&&e.target===t.target&&(e.sourceHandle===t.sourceHandle||!e.sourceHandle&&!t.sourceHandle)&&(e.targetHandle===t.targetHandle||!e.targetHandle&&!t.targetHandle)))(r=e1(t)?{...t}:{...t,id:i(t)},e)?e:(null===r.sourceHandle&&delete r.sourceHandle,null===r.targetHandle&&delete r.targetHandle,e.concat(r))};function nU({sourceX:t,sourceY:e,targetX:n,targetY:r}){let[i,o,a,u]=nq({sourceX:t,sourceY:e,targetX:n,targetY:r});return[`M ${t},${e}L ${n},${r}`,i,o,a,u]}let nZ={[s.Left]:{x:-1,y:0},[s.Right]:{x:1,y:0},[s.Top]:{x:0,y:-1},[s.Bottom]:{x:0,y:1}},nQ=({source:t,sourcePosition:e=s.Bottom,target:n})=>e===s.Left||e===s.Right?t.x<n.x?{x:1,y:0}:{x:-1,y:0}:t.y<n.y?{x:0,y:1}:{x:0,y:-1},nG=(t,e)=>Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2));function nJ({sourceX:t,sourceY:e,sourcePosition:n=s.Bottom,targetX:r,targetY:i,targetPosition:o=s.Top,borderRadius:a=5,centerX:u,centerY:l,offset:c=20,stepPosition:h=.5}){let[f,d,p,y,g]=function({source:t,sourcePosition:e=s.Bottom,target:n,targetPosition:r=s.Top,center:i,offset:o,stepPosition:a}){let u,l,c=nZ[e],h=nZ[r],f={x:t.x+c.x*o,y:t.y+c.y*o},d={x:n.x+h.x*o,y:n.y+h.y*o},p=nQ({source:f,sourcePosition:e,target:d}),y=0!==p.x?"x":"y",g=p[y],m=[],v={x:0,y:0},x={x:0,y:0},[,,w,_]=nq({sourceX:t.x,sourceY:t.y,targetX:n.x,targetY:n.y});if(c[y]*h[y]==-1){"x"===y?(u=i.x??f.x+(d.x-f.x)*a,l=i.y??(f.y+d.y)/2):(u=i.x??(f.x+d.x)/2,l=i.y??f.y+(d.y-f.y)*a);let t=[{x:u,y:f.y},{x:u,y:d.y}],e=[{x:f.x,y:l},{x:d.x,y:l}];m=c[y]===g?"x"===y?t:e:"x"===y?e:t}else{let i=[{x:f.x,y:d.y}],a=[{x:d.x,y:f.y}];if(m="x"===y?c.x===g?a:i:c.y===g?i:a,e===r){let e=Math.abs(t[y]-n[y]);if(e<=o){let r=Math.min(o-1,o-e);c[y]===g?v[y]=(f[y]>t[y]?-1:1)*r:x[y]=(d[y]>n[y]?-1:1)*r}}if(e!==r){let t="x"===y?"y":"x",e=c[y]===h[t],n=f[t]>d[t],r=f[t]<d[t];(1===c[y]&&(!e&&n||e&&r)||1!==c[y]&&(!e&&r||e&&n))&&(m="x"===y?i:a)}let s={x:f.x+v.x,y:f.y+v.y},p={x:d.x+x.x,y:d.y+x.y};Math.max(Math.abs(s.x-m[0].x),Math.abs(p.x-m[0].x))>=Math.max(Math.abs(s.y-m[0].y),Math.abs(p.y-m[0].y))?(u=(s.x+p.x)/2,l=m[0].y):(u=m[0].x,l=(s.y+p.y)/2)}let b={x:f.x+v.x,y:f.y+v.y},M={x:d.x+x.x,y:d.y+x.y};return[[t,...b.x!==m[0].x||b.y!==m[0].y?[b]:[],...m,...M.x!==m[m.length-1].x||M.y!==m[m.length-1].y?[M]:[],n],u,l,w,_]}({source:{x:t,y:e},sourcePosition:n,target:{x:r,y:i},targetPosition:o,center:{x:u,y:l},offset:c,stepPosition:h}),m=`M${f[0].x} ${f[0].y}`;for(let t=1;t<f.length-1;t++)m+=function(t,e,n,r){let i=Math.min(nG(t,e)/2,nG(e,n)/2,r),{x:o,y:a}=e;if(t.x===o&&o===n.x||t.y===a&&a===n.y)return`L${o} ${a}`;if(t.y===a){let e=t.x<n.x?-1:1,r=t.y<n.y?1:-1;return`L ${o+i*e},${a}Q ${o},${a} ${o},${a+i*r}`}let u=t.x<n.x?1:-1,l=t.y<n.y?-1:1;return`L ${o},${a+i*l}Q ${o},${a} ${o+i*u},${a}`}(f[t-1],f[t],f[t+1],a);return[m+=`L${f[f.length-1].x} ${f[f.length-1].y}`,d,p,y,g]}function n0(t){return t&&!!(t.internals.handleBounds||t.handles?.length)&&!!(t.measured.width||t.width||t.initialWidth)}function n1(t){let{sourceNode:e,targetNode:n}=t;if(!n0(e)||!n0(n))return null;let r=e.internals.handleBounds||n2(e.handles),o=n.internals.handleBounds||n2(n.handles),a=n3(r?.source??[],t.sourceHandle),u=n3(t.connectionMode===i.Strict?o?.target??[]:(o?.target??[]).concat(o?.source??[]),t.targetHandle);if(!a||!u)return t.onError?.("008",eU.error008(!a?"source":"target",{id:t.id,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle})),null;let l=a?.position||s.Bottom,c=u?.position||s.Top,h=n5(e,a,l),f=n5(n,u,c);return{sourceX:h.x,sourceY:h.y,targetX:f.x,targetY:f.y,sourcePosition:l,targetPosition:c}}function n2(t){if(!t)return null;let e=[],n=[];for(let r of t)r.width=r.width??1,r.height=r.height??1,"source"===r.type?e.push(r):"target"===r.type&&n.push(r);return{source:e,target:n}}function n5(t,e,n=s.Left,r=!1){let i=(e?.x??0)+t.internals.positionAbsolute.x,o=(e?.y??0)+t.internals.positionAbsolute.y,{width:a,height:u}=e??nE(t);if(r)return{x:i+a/2,y:o+u/2};switch(e?.position??n){case s.Top:return{x:i+a/2,y:o};case s.Right:return{x:i+a,y:o+u/2};case s.Bottom:return{x:i+a/2,y:o+u};case s.Left:return{x:i,y:o+u/2}}}function n3(t,e){return t&&(e?t.find(t=>t.id===e):t[0])||null}function n4(t,e){if(!t)return"";if("string"==typeof t)return t;let n=e?`${e}__`:"";return`${n}${Object.keys(t).sort().map(e=>`${e}=${t[e]}`).join("&")}`}function n8(t,{id:e,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let o=new Set;return t.reduce((t,a)=>([a.markerStart||r,a.markerEnd||i].forEach(r=>{if(r&&"object"==typeof r){let i=n4(r,e);o.has(i)||(t.push({id:i,color:r.color||n,...r}),o.add(i))}}),t),[]).sort((t,e)=>t.id.localeCompare(e.id))}let n6={nodeOrigin:[0,0],nodeExtent:eZ,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},n9={...n6,checkEquality:!0};function n7(t,e){let n={...t};for(let t in e)void 0!==e[t]&&(n[t]=e[t]);return n}function rt(t,e,n){let r=n7(n6,n);for(let n of t.values())if(n.parentId)rr(n,t,e,r);else{let t=nn(e3(n,r.nodeOrigin),nM(n.extent)?n.extent:r.nodeExtent,nE(n));n.internals.positionAbsolute=t}}function re(t){return"manual"===t}function rn(t,e,n,r={}){let i=n7(n9,r),o={i:0},a=new Map(e),u=i?.elevateNodesOnSelect&&!re(i.zIndexMode)?1e3:0,l=t.length>0,s=!1;for(let c of(e.clear(),n.clear(),t)){let t=a.get(c.id);if(i.checkEquality&&c===t?.internals.userNode)e.set(c.id,t);else{let n=nn(e3(c,i.nodeOrigin),nM(c.extent)?c.extent:i.nodeExtent,nE(c));t={...i.defaults,...c,measured:{width:c.measured?.width,height:c.measured?.height},internals:{positionAbsolute:n,handleBounds:function(t,e){if(!t.handles)return t.measured?e?.internals.handleBounds:void 0;let n=[],r=[];for(let e of t.handles){let i={id:e.id,width:e.width??1,height:e.height??1,nodeId:t.id,x:e.x,y:e.y,position:e.position,type:e.type};"source"===e.type?n.push(i):"target"===e.type&&r.push(i)}return{source:n,target:r}}(c,t),z:ri(c,u,i.zIndexMode),userNode:c}},e.set(c.id,t)}void 0!==t.measured&&void 0!==t.measured.width&&void 0!==t.measured.height||t.hidden||(l=!1),c.parentId&&rr(t,e,n,r,o),s||=c.selected??!1}return{nodesInitialized:l,hasSelectedNodes:s}}function rr(t,e,n,r,i){let{elevateNodesOnSelect:o,nodeOrigin:a,nodeExtent:u,zIndexMode:l}=n7(n6,r),s=t.parentId,c=e.get(s);if(!c)return void console.warn(`Parent node ${s} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);!function(t,e){if(!t.parentId)return;let n=e.get(t.parentId);n?n.set(t.id,t):e.set(t.parentId,new Map([[t.id,t]]))}(t,n),i&&!c.parentId&&void 0===c.internals.rootParentIndex&&"auto"===l&&(c.internals.rootParentIndex=++i.i,c.internals.z=c.internals.z+10*i.i),i&&void 0!==c.internals.rootParentIndex&&(i.i=c.internals.rootParentIndex);let{x:h,y:f,z:d}=function(t,e,n,r,i,o){let{x:a,y:u}=e.internals.positionAbsolute,l=nE(t),s=e3(t,n),c=nM(t.extent)?nn(s,t.extent,l):s,h=nn({x:a+c.x,y:u+c.y},r,l);"parent"===t.extent&&(h=nr(h,l,e));let f=ri(t,i,o),d=e.internals.z??0;return{x:h.x,y:h.y,z:d>=f?d+1:f}}(t,c,a,u,o&&!re(l)?1e3:0,l),{positionAbsolute:p}=t.internals,y=h!==p.x||f!==p.y;(y||d!==t.internals.z)&&e.set(t.id,{...t,internals:{...t.internals,positionAbsolute:y?{x:h,y:f}:p,z:d}})}function ri(t,e,n){let r=ny(t.zIndex)?t.zIndex:0;return re(n)?r:r+(t.selected?e:0)}function ro(t,e,n,r=[0,0]){let i=[],o=new Map;for(let n of t){let t=e.get(n.parentId);if(!t)continue;let r=nh(o.get(n.parentId)?.expandedRect??ns(t),n.rect);o.set(n.parentId,{expandedRect:r,parent:t})}return o.size>0&&o.forEach(({expandedRect:e,parent:o},a)=>{let u=o.internals.positionAbsolute,l=nE(o),s=o.origin??r,c=e.x<u.x?Math.round(Math.abs(u.x-e.x)):0,h=e.y<u.y?Math.round(Math.abs(u.y-e.y)):0,f=Math.max(l.width,Math.round(e.width)),d=Math.max(l.height,Math.round(e.height)),p=(f-l.width)*s[0],y=(d-l.height)*s[1];(c>0||h>0||p||y)&&(i.push({id:a,type:"position",position:{x:o.position.x-c+p,y:o.position.y-h+y}}),n.get(a)?.forEach(e=>{t.some(t=>t.id===e.id)||i.push({id:e.id,type:"position",position:{x:e.position.x+c,y:e.position.y+h}})})),(l.width<e.width||l.height<e.height||c||h)&&i.push({id:a,type:"dimensions",setAttributes:!0,dimensions:{width:f+(c?s[0]*c-p:0),height:d+(h?s[1]*h-y:0)}})}),i}function ra(t,e,n,r,i,o,a){let u=r?.querySelector(".xyflow__viewport"),l=!1;if(!u)return{changes:[],updatedInternals:l};let s=[],c=window.getComputedStyle(u),{m22:h}=new window.DOMMatrixReadOnly(c.transform),f=[];for(let r of t.values()){let t=e.get(r.id);if(!t)continue;if(t.hidden){e.set(t.id,{...t,internals:{...t.internals,handleBounds:void 0}}),l=!0;continue}let u=nP(r.nodeElement),c=t.measured.width!==u.width||t.measured.height!==u.height;if(u.width&&u.height&&(c||!t.internals.handleBounds||r.force)){let d=r.nodeElement.getBoundingClientRect(),p=nM(t.extent)?t.extent:o,{positionAbsolute:y}=t.internals;if(t.parentId&&"parent"===t.extent){let n=e.get(t.parentId);n&&(y=nr(y,u,n))}else p&&(y=nn(y,p,u));let g={...t,measured:u,internals:{...t.internals,positionAbsolute:y,handleBounds:{source:nj("source",r.nodeElement,d,h,t.id),target:nj("target",r.nodeElement,d,h,t.id)}}};e.set(t.id,g),t.parentId&&rr(g,e,n,{nodeOrigin:i,zIndexMode:a}),l=!0,c&&(s.push({id:t.id,type:"dimensions",dimensions:u}),t.expandParent&&t.parentId&&f.push({id:t.id,parentId:t.parentId,rect:ns(g,i)}))}}if(f.length>0){let t=ro(f,e,n,i);s.push(...t)}return{changes:s,updatedInternals:l}}async function ru({delta:t,panZoom:e,transform:n,translateExtent:r,width:i,height:o}){if(!e||!t.x&&!t.y)return!1;let a=await e.setViewportConstrained({x:n[0]+t.x,y:n[1]+t.y,zoom:n[2]},[[0,0],[i,o]],r);return!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2])}function rl(t,e,n,r,i,o){let a=i,u=r.get(a)||new Map;r.set(a,u.set(n,e)),a=`${i}-${t}`;let l=r.get(a)||new Map;if(r.set(a,l.set(n,e)),o){a=`${i}-${t}-${o}`;let u=r.get(a)||new Map;r.set(a,u.set(n,e))}}function rs(t,e,n){for(let r of(t.clear(),e.clear(),n)){let{source:n,target:i,sourceHandle:o=null,targetHandle:a=null}=r,u={edgeId:r.id,source:n,target:i,sourceHandle:o,targetHandle:a},l=`${n}-${o}--${i}-${a}`;rl("source",u,`${i}-${a}--${n}-${o}`,t,n,o),rl("target",u,l,t,i,a),e.set(r.id,r)}}function rc(t,e,n){let r=t;do{if(r?.matches?.(e))return!0;if(r===n)break;r=r?.parentElement}while(r);return!1}function rh({nodeId:t,dragItems:e,nodeLookup:n,dragging:r=!0}){let i=[];for(let[t,o]of e){let e=n.get(t)?.internals.userNode;e&&i.push({...e,position:o.position,dragging:r})}if(!t)return[i[0],i];let o=n.get(t)?.internals.userNode;return[o?{...o,position:e.get(t)?.position||o.position,dragging:r}:i[0],i]}function rf({onNodeMouseDown:t,getStoreItems:e,onDragStart:n,onDrag:r,onDragStop:i}){let o={x:null,y:null},a=0,u=new Map,l=!1,s={x:0,y:0},c=null,h=!1,d=null,p=!1,y=!1,g=null;return{update:function({noDragClassName:m,handleSelector:v,domNode:x,isSelectable:w,nodeId:_,nodeClickDistance:b=0}){function M({x:t,y:n}){let{nodeLookup:i,nodeExtent:a,snapGrid:l,snapToGrid:s,nodeOrigin:c,onNodeDrag:h,onSelectionDrag:f,onError:d,updateNodePositions:p}=e();o={x:t,y:n};let m=!1,v=u.size>1,x=v&&a?nu(e8(u)):null,w=v&&s?function({dragItems:t,snapGrid:e,x:n,y:r}){let i=t.values().next().value;if(!i)return null;let o={x:n-i.distance.x,y:r-i.distance.y},a=nm(o,e);return{x:a.x-o.x,y:a.y-o.y}}({dragItems:u,snapGrid:l,x:t,y:n}):null;for(let[e,r]of u){if(!i.has(e))continue;let o={x:t-r.distance.x,y:n-r.distance.y};s&&(o=w?{x:Math.round(o.x+w.x),y:Math.round(o.y+w.y)}:nm(o,l));let u=null;if(v&&a&&!r.extent&&x){let{positionAbsolute:t}=r.internals,e=t.x-x.x+a[0][0],n=t.x+r.measured.width-x.x2+a[1][0];u=[[e,t.y-x.y+a[0][1]],[n,t.y+r.measured.height-x.y2+a[1][1]]]}let{position:h,positionAbsolute:f}=e7({nodeId:e,nextPosition:o,nodeLookup:i,nodeExtent:u||a,nodeOrigin:c,onError:d});m=m||r.position.x!==h.x||r.position.y!==h.y,r.position=h,r.internals.positionAbsolute=f}if(y=y||m,m&&(p(u,!0),g&&(r||h||!_&&f))){let[t,e]=rh({nodeId:_,dragItems:u,nodeLookup:i});r?.(g,u,t,e),h?.(g,t,e),_||f?.(g,e)}}async function E(){if(!c)return;let{transform:t,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=e();if(!i){l=!1,cancelAnimationFrame(a);return}let[u,h]=no(s,c,r);(0!==u||0!==h)&&(o.x=(o.x??0)-u/t[2],o.y=(o.y??0)-h/t[2],await n({x:u,y:h})&&M(o)),a=requestAnimationFrame(E)}function k(r){let{nodeLookup:i,multiSelectionActive:a,nodesDraggable:l,transform:s,snapGrid:f,snapToGrid:d,selectNodesOnDrag:p,onNodeDragStart:y,onSelectionDragStart:g,unselectNodesAndEdges:m}=e();h=!0,p&&w||a||!_||i.get(_)?.selected||m(),w&&p&&_&&t?.(_);let v=nI(r.sourceEvent,{transform:s,snapGrid:f,snapToGrid:d,containerBounds:c});if(o=v,(u=function(t,e,n,r){let i=new Map;for(let[o,a]of t)if((a.selected||a.id===r)&&(!a.parentId||!function t(e,n){if(!e.parentId)return!1;let r=n.get(e.parentId);return!!r&&(!!r.selected||t(r,n))}(a,t))&&(a.draggable||e&&void 0===a.draggable)){let e=t.get(o);e&&i.set(o,{id:o,position:e.position||{x:0,y:0},distance:{x:n.x-e.internals.positionAbsolute.x,y:n.y-e.internals.positionAbsolute.y},extent:e.extent,parentId:e.parentId,origin:e.origin,expandParent:e.expandParent,internals:{positionAbsolute:e.internals.positionAbsolute||{x:0,y:0}},measured:{width:e.measured.width??0,height:e.measured.height??0}})}return i}(i,l,v,_)).size>0&&(n||y||!_&&g)){let[t,e]=rh({nodeId:_,dragItems:u,nodeLookup:i});n?.(r.sourceEvent,u,t,e),y?.(r.sourceEvent,t,e),_||g?.(r.sourceEvent,e)}}d=tn(x);let $=(function(){var t,e,n,r,i=tf,o=td,a=tp,u=ty,l={},s=f("start","drag","end"),c=0,h=0;function d(t){t.on("mousedown.drag",p).filter(u).on("touchstart.drag",m).on("touchmove.drag",v,ti).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(a,u){if(!r&&i.call(this,a,u)){var l=w(this,o.call(this,a,u),a,u,"mouse");l&&(tn(a.view).on("mousemove.drag",y,to).on("mouseup.drag",g,to),tl(a.view),ta(a),n=!1,t=a.clientX,e=a.clientY,l("start",a))}}function y(r){if(tu(r),!n){var i=r.clientX-t,o=r.clientY-e;n=i*i+o*o>h}l.mouse("drag",r)}function g(t){tn(t.view).on("mousemove.drag mouseup.drag",null),ts(t.view,n),tu(t),l.mouse("end",t)}function m(t,e){if(i.call(this,t,e)){var n,r,a=t.changedTouches,u=o.call(this,t,e),l=a.length;for(n=0;n<l;++n)(r=w(this,u,t,e,a[n].identifier,a[n]))&&(ta(t),r("start",t,a[n]))}}function v(t){var e,n,r=t.changedTouches,i=r.length;for(e=0;e<i;++e)(n=l[r[e].identifier])&&(tu(t),n("drag",t,r[e]))}function x(t){var e,n,i=t.changedTouches,o=i.length;for(r&&clearTimeout(r),r=setTimeout(function(){r=null},500),e=0;e<o;++e)(n=l[i[e].identifier])&&(ta(t),n("end",t,i[e]))}function w(t,e,n,r,i,o){var u,h,f,p=s.copy(),y=tr(o||n,e);if(null!=(f=a.call(t,new th("beforestart",{sourceEvent:n,target:d,identifier:i,active:c,x:y[0],y:y[1],dx:0,dy:0,dispatch:p}),r)))return u=f.x-y[0]||0,h=f.y-y[1]||0,function n(o,a,s){var g,m=y;switch(o){case"start":l[i]=n,g=c++;break;case"end":delete l[i],--c;case"drag":y=tr(s||a,e),g=c}p.call(o,t,new th(o,{sourceEvent:a,subject:f,target:d,identifier:i,active:g,x:y[0]+u,y:y[1]+h,dx:y[0]-m[0],dy:y[1]-m[1],dispatch:p}),r)}}return d.filter=function(t){return arguments.length?(i="function"==typeof t?t:tc(!!t),d):i},d.container=function(t){return arguments.length?(o="function"==typeof t?t:tc(t),d):o},d.subject=function(t){return arguments.length?(a="function"==typeof t?t:tc(t),d):a},d.touchable=function(t){return arguments.length?(u="function"==typeof t?t:tc(!!t),d):u},d.on=function(){var t=s.on.apply(s,arguments);return t===s?d:t},d.clickDistance=function(t){return arguments.length?(h=(t*=1)*t,d):Math.sqrt(h)},d})().clickDistance(b).on("start",t=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:a,snapToGrid:u}=e();c=n?.getBoundingClientRect()||null,p=!1,y=!1,g=t.sourceEvent,0===r&&k(t),o=nI(t.sourceEvent,{transform:i,snapGrid:a,snapToGrid:u,containerBounds:c}),s=nC(t.sourceEvent,c)}).on("drag",t=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:a,nodeDragThreshold:f,nodeLookup:d}=e(),y=nI(t.sourceEvent,{transform:r,snapGrid:i,snapToGrid:a,containerBounds:c});if(g=t.sourceEvent,("touchmove"===t.sourceEvent.type&&t.sourceEvent.touches.length>1||_&&!d.has(_))&&(p=!0),!p){if(!l&&n&&h&&(l=!0,E()),!h){let e=nC(t.sourceEvent,c),n=e.x-s.x,r=e.y-s.y;Math.sqrt(n*n+r*r)>f&&k(t)}(o.x!==y.xSnapped||o.y!==y.ySnapped)&&u&&h&&(s=nC(t.sourceEvent,c),M(y))}}).on("end",t=>{if(!h||p){p&&u.size>0&&e().updateNodePositions(u,!1);return}if(l=!1,h=!1,cancelAnimationFrame(a),u.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:o,onSelectionDragStop:a}=e();if(y&&(r(u,!1),y=!1),i||o||!_&&a){let[e,r]=rh({nodeId:_,dragItems:u,nodeLookup:n,dragging:!1});i?.(t.sourceEvent,u,e,r),o?.(t.sourceEvent,e,r),_||a?.(t.sourceEvent,r)}}}).filter(t=>{let e=t.target;return!t.button&&(!m||!rc(e,`.${m}`,x))&&(!v||rc(e,v,x))});d.call($)},destroy:function(){d?.on(".drag",null)}}}function rd(t,e,n,r,i,o=!1){let a=r.get(t);if(!a)return null;let u="strict"===i?a.internals.handleBounds?.[e]:[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]],l=(n?u?.find(t=>t.id===n):u?.[0])??null;return l&&o?{...l,...n5(a,l,l.position,!0)}:l}function rp(t,e){return t?t:e?.classList.contains("target")?"target":e?.classList.contains("source")?"source":null}let ry=()=>!0;function rg(t,{handle:e,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:a,doc:u,lib:l,flowId:s,isValidConnection:c=ry,nodeLookup:h}){let f="target"===a,d=e?u.querySelector(`.${l}-flow__handle[data-id="${s}-${e?.nodeId}-${e?.id}-${e?.type}"]`):null,{x:p,y}=nC(t),g=u.elementFromPoint(p,y),m=g?.classList.contains(`${l}-flow__handle`)?g:d,v={handleDomNode:m,isValid:!1,connection:null,toHandle:null};if(m){let t=rp(void 0,m),e=m.getAttribute("data-nodeid"),a=m.getAttribute("data-handleid"),u=m.classList.contains("connectable"),l=m.classList.contains("connectableend");if(!e||!t)return v;let s={source:f?e:r,sourceHandle:f?a:o,target:f?r:e,targetHandle:f?o:a};v.connection=s,v.isValid=u&&l&&(n===i.Strict?f&&"source"===t||!f&&"target"===t:e!==r||a!==o)&&c(s),v.toHandle=rd(e,t,a,h,n,!0)}return v}let rm={onPointerDown:function(t,{connectionMode:e,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:o,isTarget:a,domNode:u,nodeLookup:l,lib:c,autoPanOnConnect:h,flowId:f,panBy:d,cancelConnection:p,onConnectStart:y,onConnect:g,onConnectEnd:m,isValidConnection:v=ry,onReconnectEnd:x,updateConnection:w,getTransform:_,getFromHandle:b,autoPanSpeed:M,dragThreshold:E=1,handleDomNode:k}){let $,A=nH(t.target),z=0,{x:N,y:S}=nC(t),T=rp(o,k),I=u?.getBoundingClientRect(),P=!1;if(!I||!T)return;let H=rd(i,T,r,l,e);if(!H)return;let B=nC(t,I),L=!1,O=null,C=!1,j=null,D={...H,nodeId:i,type:T,position:H.position},R=l.get(i),X={inProgress:!0,isValid:null,from:n5(R,D,s.Left,!0),fromHandle:D,fromPosition:D.position,fromNode:R,to:B,toHandle:null,toPosition:e0[D.position],toNode:null,pointer:B};function V(){P=!0,w(X),y?.(t,{nodeId:i,handleId:r,handleType:T})}function q(t){var o,u;let p;if(!P){let{x:e,y:n}=nC(t),r=e-N,i=n-S;if(!(r*r+i*i>E*E))return;V()}if(!b()||!D)return void Y(t);let y=_();$=function(t,e,n,r){let i=[],o=1/0;for(let a of function(t,e,n){let r=[],i={x:t.x-n,y:t.y-n,width:2*n,height:2*n};for(let t of e.values())nd(i,ns(t))>0&&r.push(t);return r}(t,n,e+250))for(let n of[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]]){if(r.nodeId===n.nodeId&&r.type===n.type&&r.id===n.id)continue;let{x:u,y:l}=n5(a,n,n.position,!0),s=Math.sqrt(Math.pow(u-t.x,2)+Math.pow(l-t.y,2));s>e||(s<o?(i=[{...n,x:u,y:l}],o=s):s===o&&i.push({...n,x:u,y:l}))}if(!i.length)return null;if(i.length>1){let t="source"===r.type?"target":"source";return i.find(e=>e.type===t)??i[0]}return i[0]}(nv(B=nC(t,I),y,!1,[1,1]),n,l,D),L||(!function t(){if(!h||!I)return;let[e,n]=no(B,I,M);d({x:e,y:n}),z=requestAnimationFrame(t)}(),L=!0);let g=rg(t,{handle:$,connectionMode:e,fromNodeId:i,fromHandleId:r,fromType:a?"target":"source",isValidConnection:v,doc:A,lib:c,flowId:f,nodeLookup:l});j=g.handleDomNode,O=g.connection,o=!!$,u=g.isValid,p=null,u?p=!0:o&&!u&&(p=!1),C=p;let m=l.get(i),x=m?n5(m,D,s.Left,!0):X.from,k={...X,from:x,isValid:C,to:g.toHandle&&C?nx({x:g.toHandle.x,y:g.toHandle.y},y):B,toHandle:g.toHandle,toPosition:C&&g.toHandle?g.toHandle.position:e0[D.position],toNode:g.toHandle?l.get(g.toHandle.nodeId):null,pointer:B};w(k),X=k}function Y(t){if(!("touches"in t)||!(t.touches.length>0)){if(P){($||j)&&O&&C&&g?.(O);let{inProgress:e,...n}=X,r={...n,toPosition:X.toHandle?X.toPosition:null};m?.(t,r),o&&x?.(t,r)}p(),cancelAnimationFrame(z),L=!1,C=!1,O=null,j=null,A.removeEventListener("mousemove",q),A.removeEventListener("mouseup",Y),A.removeEventListener("touchmove",q),A.removeEventListener("touchend",Y)}}0===E&&V(),A.addEventListener("mousemove",q),A.addEventListener("mouseup",Y),A.addEventListener("touchmove",q),A.addEventListener("touchend",Y)},isValid:rg};function rv({domNode:t,panZoom:e,getTransform:n,getViewScale:r}){let i=tn(t);return{update:function({translateExtent:t,width:o,height:a,zoomStep:u=1,pannable:l=!0,zoomable:s=!0,inversePan:c=!1}){let h=[0,0],f=eK().on("start",t=>{("mousedown"===t.sourceEvent.type||"touchstart"===t.sourceEvent.type)&&(h=[t.sourceEvent.clientX??t.sourceEvent.touches[0].clientX,t.sourceEvent.clientY??t.sourceEvent.touches[0].clientY])}).on("zoom",l?i=>{let u=n();if("mousemove"!==i.sourceEvent.type&&"touchmove"!==i.sourceEvent.type||!e)return;let l=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],s=[l[0]-h[0],l[1]-h[1]];h=l;let f=r()*Math.max(u[2],Math.log(u[2]))*(c?-1:1),d={x:u[0]-s[0]*f,y:u[1]-s[1]*f};e.setViewportConstrained({x:d.x,y:d.y,zoom:u[2]},[[0,0],[o,a]],t)}:null).on("zoom.wheel",s?t=>{if("wheel"!==t.sourceEvent.type||!e)return;let r=n(),i=t.sourceEvent.ctrlKey&&nb()?10:1,o=-t.sourceEvent.deltaY*(1===t.sourceEvent.deltaMode?.05:t.sourceEvent.deltaMode?1:.002)*u,a=r[2]*Math.pow(2,o*i);e.scaleTo(a)}:null);i.call(f,{})},destroy:function(){i.on("zoom",null)},pointer:tr}}let rx=t=>({x:t.x,y:t.y,zoom:t.k}),rw=({x:t,y:e,zoom:n})=>eO.translate(t,e).scale(n),r_=(t,e)=>t.target.closest(`.${e}`),rb=(t,e)=>2===e&&Array.isArray(t)&&t.includes(2),rM=t=>((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2,rE=(t,e=0,n=rM,r=()=>{})=>{let i="number"==typeof e&&e>0;return i||r(),i?t.transition().duration(e).ease(n).on("end",r):t},rk=t=>{let e=t.ctrlKey&&nb()?10:1;return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*e};function r$({domNode:t,minZoom:e,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:u,onPanZoomEnd:l,onDraggingChange:s}){let c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},h=t.getBoundingClientRect(),f=[[0,0],[h.width,h.height]],d="undefined"!=typeof ResizeObserver?new ResizeObserver(t=>{let e=t[0];e&&(f=[[0,0],[e.contentRect.width,e.contentRect.height]])}):null;d?.observe(t);let p=eK().extent(()=>f).scaleExtent([e,n]).translateExtent(r),y=tn(t).call(p);w({x:i.x,y:i.y,zoom:ne(i.zoom,e,n)},[[0,0],[h.width,h.height]],r);let g=y.on("wheel.zoom"),m=y.on("dblclick.zoom");async function v(t,e){return!!y&&new Promise(n=>{p?.interpolate(e?.interpolate==="linear"?eW:tm).transform(rE(y,e?.duration,e?.ease,()=>n(!0)),t)})}function x(){p.on("zoom",null)}async function w(t,e,n){let r=rw(t),i=p?.constrain()(r,e,n);return i&&await v(i),i}return p.wheelDelta(rk),{update:function({noWheelClassName:t,noPanClassName:e,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:h,panOnScrollMode:f,panOnScrollSpeed:d,preventScrolling:v,zoomOnPinch:w,zoomOnScroll:_,zoomOnDoubleClick:b,panActivationKeyPressed:M=!1,zoomActivationKeyPressed:E,lib:k,onTransformChange:$,connectionInProgress:A,paneClickDistance:z,selectionOnDrag:N}){r&&!c.isZoomingOrPanning&&x();let S=i&&!E&&!r;p.clickDistance(N?1/0:!ny(z)||z<0?0:z);let T=S?function({zoomPanValues:t,noWheelClassName:e,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:u,onPanZoomStart:l,onPanZoom:s,onPanZoomEnd:c}){return h=>{if(r_(h,e))return h.ctrlKey&&h.preventDefault(),!1;h.preventDefault(),h.stopImmediatePropagation();let f=n.property("__zoom").k||1;if(h.ctrlKey&&u){let t=tr(h),e=f*Math.pow(2,rk(h));r.scaleTo(n,e,t,h);return}let d=1===h.deltaMode?20:1,p=i===o.Vertical?0:h.deltaX*d,y=i===o.Horizontal?0:h.deltaY*d;!nb()&&h.shiftKey&&i!==o.Vertical&&(p=h.deltaY*d,y=0),r.translateBy(n,-(p/f)*a,-(y/f)*a,{internal:!0});let g=rx(n.property("__zoom"));clearTimeout(t.panScrollTimeout),t.isPanScrolling?s?.(h,g):(t.isPanScrolling=!0,l?.(h,g)),t.panScrollTimeout=setTimeout(()=>{c?.(h,g),t.isPanScrolling=!1},150)}}({zoomPanValues:c,noWheelClassName:t,d3Selection:y,d3Zoom:p,panOnScrollMode:f,panOnScrollSpeed:d,zoomOnPinch:w,onPanZoomStart:u,onPanZoom:a,onPanZoomEnd:l}):function({noWheelClassName:t,preventScrolling:e,d3ZoomHandler:n}){return function(r,i){let o="wheel"===r.type,a=!e&&o&&!r.ctrlKey,u=r_(r,t);if(r.ctrlKey&&o&&u&&r.preventDefault(),a||u)return null;r.preventDefault(),n.call(this,r,i)}}({noWheelClassName:t,preventScrolling:v,d3ZoomHandler:g});y.on("wheel.zoom",T,{passive:!1});let I=function({zoomPanValues:t,onDraggingChange:e,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=rx(r.transform);t.mouseButton=r.sourceEvent?.button||0,t.isZoomingOrPanning=!0,t.prevViewport=i,r.sourceEvent?.type==="mousedown"&&e(!0),n&&n?.(r.sourceEvent,i)}}({zoomPanValues:c,onDraggingChange:s,onPanZoomStart:u});p.on("start",I);let P=function({zoomPanValues:t,panOnDrag:e,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return o=>{t.usedRightMouseButton=!!(n&&rb(e,t.mouseButton??0)),o.sourceEvent?.sync||r([o.transform.x,o.transform.y,o.transform.k]),i&&!o.sourceEvent?.internal&&i?.(o.sourceEvent,rx(o.transform))}}({zoomPanValues:c,panOnDrag:h,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:$});p.on("zoom",P);let H=function({zoomPanValues:t,panOnDrag:e,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:o}){return a=>{if(!a.sourceEvent?.internal&&(t.isZoomingOrPanning=!1,o&&rb(e,t.mouseButton??0)&&!t.usedRightMouseButton&&a.sourceEvent&&o(a.sourceEvent),t.usedRightMouseButton=!1,r(!1),i)){let e=rx(a.transform);t.prevViewport=e,clearTimeout(t.timerId),t.timerId=setTimeout(()=>{i?.(a.sourceEvent,e)},150*!!n)}}}({zoomPanValues:c,panOnDrag:h,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:l,onDraggingChange:s});p.on("end",H);let B=function({panActivationKeyPressed:t,zoomActivationKeyPressed:e,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:i,panOnScroll:o,zoomOnDoubleClick:a,userSelectionActive:u,noWheelClassName:l,noPanClassName:s,lib:c,connectionInProgress:h}){return f=>{let d=e||n,p=r&&f.ctrlKey,y="wheel"===f.type;if(1===f.button&&"mousedown"===f.type&&(r_(f,`${c}-flow__node`)||r_(f,`${c}-flow__edge`)||r_(f,`${c}-flow__selection`)||r_(f,`${c}-flow__nodesselection`)))return!0;if(!i&&!d&&!o&&!a&&!r||u||h&&!y||r_(f,l)&&y||r_(f,s)&&(!y||o&&y&&!e)||!r&&f.ctrlKey&&y)return!1;if(!r&&"touchstart"===f.type&&f.touches?.length>1)return f.preventDefault(),!1;if(!d&&!o&&!p&&y||!i&&("mousedown"===f.type||"touchstart"===f.type)||Array.isArray(i)&&!i.includes(f.button)&&"mousedown"===f.type)return!1;let g=Array.isArray(i)&&i.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||y||t)&&g}}({panActivationKeyPressed:M,zoomActivationKeyPressed:E,panOnDrag:h,zoomOnScroll:_,panOnScroll:i,zoomOnDoubleClick:b,zoomOnPinch:w,userSelectionActive:r,noPanClassName:e,noWheelClassName:t,lib:k,connectionInProgress:A});p.filter(B),b?y.on("dblclick.zoom",m):y.on("dblclick.zoom",null)},destroy:x,setViewport:async function t(t,e){let n=rw(t);return await v(n,e),n},setViewportConstrained:w,getViewport:function(){let t=y?eC(y.node()):{x:0,y:0,k:1};return{x:t.x,y:t.y,zoom:t.k}},scaleTo:async function t(t,e){return!!y&&new Promise(n=>{p?.interpolate(e?.interpolate==="linear"?eW:tm).scaleTo(rE(y,e?.duration,e?.ease,()=>n(!0)),t)})},scaleBy:async function t(t,e){return!!y&&new Promise(n=>{p?.interpolate(e?.interpolate==="linear"?eW:tm).scaleBy(rE(y,e?.duration,e?.ease,()=>n(!0)),t)})},setScaleExtent:function(t){p?.scaleExtent(t)},setTranslateExtent:function(t){p?.translateExtent(t)},syncViewport:function(t){if(y){let e=rw(t),n=y.property("__zoom");(n.k!==t.zoom||n.x!==t.x||n.y!==t.y)&&p?.transform(y,e,null,{sync:!0})}},setClickDistance:function(t){let e=!ny(t)||t<0?0:t;p?.clickDistance(e)}}}!function(t){t.Line="line",t.Handle="handle"}(c||(c={}))},18809:(t,e,n)=>{"use strict";var r=n(34023),i="function"==typeof Object.is?Object.is:function(t,e){return t===e&&(0!==t||1/t==1/e)||t!=t&&e!=e},o=r.useState,a=r.useEffect,u=r.useLayoutEffect,l=r.useDebugValue;function s(t){var e=t.getSnapshot;t=t.value;try{var n=e();return!i(t,n)}catch(t){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(t,e){return e()}:function(t,e){var n=e(),r=o({inst:{value:n,getSnapshot:e}}),i=r[0].inst,c=r[1];return u(function(){i.value=n,i.getSnapshot=e,s(i)&&c({inst:i})},[t,n,e]),a(function(){return s(i)&&c({inst:i}),t(function(){s(i)&&c({inst:i})})},[t]),l(n),n};e.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},23232:(t,e,n)=>{"use strict";t.exports=n(31146)},31146:(t,e,n)=>{"use strict";var r=n(34023),i=n(62306),o="function"==typeof Object.is?Object.is:function(t,e){return t===e&&(0!==t||1/t==1/e)||t!=t&&e!=e},a=i.useSyncExternalStore,u=r.useRef,l=r.useEffect,s=r.useMemo,c=r.useDebugValue;e.useSyncExternalStoreWithSelector=function(t,e,n,r,i){var h=u(null);if(null===h.current){var f={hasValue:!1,value:null};h.current=f}else f=h.current;var d=a(t,(h=s(function(){function t(t){if(!l){if(l=!0,a=t,t=r(t),void 0!==i&&f.hasValue){var e=f.value;if(i(e,t))return u=e}return u=t}if(e=u,o(a,t))return e;var n=r(t);return void 0!==i&&i(e,n)?(a=t,e):(a=t,u=n)}var a,u,l=!1,s=void 0===n?null:n;return[function(){return t(e())},null===s?void 0:function(){return t(s())}]},[e,n,r,i]))[0],h[1]);return l(function(){f.hasValue=!0,f.value=d},[d]),c(d),d}},37807:(t,e,n)=>{"use strict";function r(t,e){if(Object.is(t,e))return!0;if("object"!=typeof t||null===t||"object"!=typeof e||null===e)return!1;if(t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(let[n,r]of t)if(!Object.is(r,e.get(n)))return!1;return!0}if(t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(let n of t)if(!e.has(n))return!1;return!0}let n=Object.keys(t);if(n.length!==Object.keys(e).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(e,r)||!Object.is(t[r],e[r]))return!1;return!0}n.d(e,{x:()=>r})},40117:()=>{},54338:(t,e,n)=>{"use strict";n.d(e,{h:()=>h,n:()=>s});var r=n(34023),i=n(23232);let o=t=>{let e,n=new Set,r=(t,r)=>{let i="function"==typeof t?t(e):t;if(!Object.is(i,e)){let t=e;e=(null!=r?r:"object"!=typeof i||null===i)?i:Object.assign({},e,i),n.forEach(n=>n(e,t))}},i=()=>e,o={setState:r,getState:i,getInitialState:()=>a,subscribe:t=>(n.add(t),()=>n.delete(t)),destroy:()=>{console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},a=e=t(r,i,o);return o},{useDebugValue:a}=r,{useSyncExternalStoreWithSelector:u}=i,l=t=>t;function s(t,e=l,n){let r=u(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,n);return a(r),r}let c=(t,e)=>{let n=(t=>t?o(t):o)(t),r=(t,r=e)=>s(n,t,r);return Object.assign(r,n),r},h=(t,e)=>t?c(t,e):c},62306:(t,e,n)=>{"use strict";t.exports=n(18809)},78809:(t,e,n)=>{"use strict";n.d(e,{A:()=>function t(e){if("string"==typeof e||"number"==typeof e)return""+e;let n="";if(Array.isArray(e))for(let r=0,i;r<e.length;r++)""!==(i=t(e[r]))&&(n+=(n&&" ")+i);else for(let t in e)e[t]&&(n+=(n&&" ")+t);return n}})}}]);
|