@openagt/dashboard 0.26.0 → 0.28.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/dist/daemon-runtime.d.ts +4 -1
- package/dist/daemon-runtime.d.ts.map +1 -1
- package/dist/daemon-runtime.js +13 -1
- package/dist/daemon-runtime.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +7 -2
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/copy-logins.d.ts +48 -0
- package/dist/dashboard/copy-logins.d.ts.map +1 -0
- package/dist/dashboard/copy-logins.js +113 -0
- package/dist/dashboard/copy-logins.js.map +1 -0
- package/dist/dashboard/machine-logins.d.ts +58 -0
- package/dist/dashboard/machine-logins.d.ts.map +1 -0
- package/dist/dashboard/machine-logins.js +60 -0
- package/dist/dashboard/machine-logins.js.map +1 -0
- package/dist/dashboard/person.d.ts +12 -0
- package/dist/dashboard/person.d.ts.map +1 -1
- package/dist/dashboard/person.js +21 -0
- package/dist/dashboard/person.js.map +1 -1
- package/dist/dashboard/relay-endpoints.d.ts +15 -0
- package/dist/dashboard/relay-endpoints.d.ts.map +1 -1
- package/dist/dashboard/relay-endpoints.js +36 -0
- package/dist/dashboard/relay-endpoints.js.map +1 -1
- package/dist/dashboard/remote-run.d.ts +75 -0
- package/dist/dashboard/remote-run.d.ts.map +1 -1
- package/dist/dashboard/remote-run.js +125 -1
- package/dist/dashboard/remote-run.js.map +1 -1
- package/dist/dashboard/rpc-serve.d.ts.map +1 -1
- package/dist/dashboard/rpc-serve.js +2 -1
- package/dist/dashboard/rpc-serve.js.map +1 -1
- package/dist/dashboard/server.d.ts +2 -0
- package/dist/dashboard/server.d.ts.map +1 -1
- package/dist/dashboard/server.js +1 -1
- package/dist/dashboard/server.js.map +1 -1
- package/dist/dashboard-bundle/assets/main-BenA3DC-.js +145 -0
- package/dist/dashboard-bundle/assets/main-KUO4ZuZ3.css +2 -0
- package/dist/dashboard-bundle/assets/module-CZzF8pLL.js +14 -0
- package/dist/dashboard-bundle/host/module.js +1 -1
- package/dist/dashboard-bundle/index.html +3 -3
- package/dist/dashboard-rpc/index.d.ts +2 -2
- package/dist/dashboard-rpc/index.d.ts.map +1 -1
- package/dist/dashboard-rpc/index.js +2 -2
- package/dist/dashboard-rpc/index.js.map +1 -1
- package/dist/dashboard-rpc/machines.d.ts +91 -1
- package/dist/dashboard-rpc/machines.d.ts.map +1 -1
- package/dist/dashboard-rpc/machines.js +131 -8
- package/dist/dashboard-rpc/machines.js.map +1 -1
- package/dist/dashboard-rpc/modules.d.ts +14 -2
- package/dist/dashboard-rpc/modules.d.ts.map +1 -1
- package/dist/dashboard-rpc/modules.js +29 -4
- package/dist/dashboard-rpc/modules.js.map +1 -1
- package/dist/dashboard-rpc/person.d.ts +1 -1
- package/dist/dashboard-rpc/person.d.ts.map +1 -1
- package/dist/dashboard-rpc/person.js +3 -3
- package/dist/dashboard-rpc/person.js.map +1 -1
- package/dist/module-types/dashboard/components/InviteDialog.d.ts +25 -3
- package/dist/module-types/dashboard/lib/machines.d.ts +4 -0
- package/dist/module-types/dashboard/module/index.d.ts +54 -2
- package/dist/module-types/dashboard/rpc/machines.d.ts +9 -1
- package/dist/module-types/dashboard/rpc/modules.d.ts +2 -1
- package/dist/module-types/src/dashboard/machine-logins.d.ts +57 -0
- package/dist/module-types/src/dashboard/person.d.ts +12 -0
- package/dist/module-types/src/dashboard/remote-run.d.ts +75 -0
- package/dist/module-types/src/dashboard-rpc/index.d.ts +2 -2
- package/dist/module-types/src/dashboard-rpc/machines.d.ts +91 -1
- package/dist/module-types/src/dashboard-rpc/modules.d.ts +14 -2
- package/dist/module-types/src/dashboard-rpc/person.d.ts +1 -1
- package/dist/module-types/src/package-services.d.ts +6 -0
- package/dist/module-types/src/project-modules.d.ts +3 -1
- package/dist/module-types/src/registry.d.ts +13 -0
- package/dist/package-services.d.ts +6 -0
- package/dist/package-services.d.ts.map +1 -1
- package/dist/package-services.js +12 -1
- package/dist/package-services.js.map +1 -1
- package/dist/project-modules.d.ts +3 -1
- package/dist/project-modules.d.ts.map +1 -1
- package/dist/project-modules.js +4 -2
- package/dist/project-modules.js.map +1 -1
- package/dist/registry.d.ts +13 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +20 -2
- package/dist/registry.js.map +1 -1
- package/package.json +14 -14
- package/dist/dashboard-bundle/assets/main-CTqah6if.js +0 -145
- package/dist/dashboard-bundle/assets/main-iqtcpdTX.css +0 -2
- package/dist/dashboard-bundle/assets/module-Dy8zK3Qd.js +0 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,$t as t,A as n,B as r,Bt as i,E as a,F as o,Ft as s,G as c,Gt as l,H as u,
|
|
1
|
+
import{$ as e,$t as t,A as n,B as r,Bt as i,E as a,F as o,Ft as s,G as c,Gt as l,H as u,Hn as d,I as f,In as p,It as m,J as h,Jt as g,K as _,Kt as v,L as y,Ln as b,M as x,N as S,Nt as C,O as w,P as T,Pt as E,Q as D,Qt as O,R as k,Rn as A,Rt as j,St as M,T as N,Tt as P,U as F,Ut as I,V as L,Vt as R,W as z,Wn as B,X as V,Xt as H,Y as U,Yt as W,Z as G,Zt as K,a as q,bt as J,c as Y,d as X,f as Z,g as Q,h as $,i as ee,in as te,it as ne,j as re,k as ie,l as ae,ln as oe,m as se,mt as ce,n as le,nn as ue,nt as de,o as fe,on as pe,p as me,q as he,qt as ge,r as _e,rn as ve,rt as ye,s as be,st as xe,t as Se,tn as Ce,u as we,vt as Te,w as Ee,wt as De,yt as Oe,z as ke,zt as Ae}from"../assets/module-CZzF8pLL.js";export{Te as AddMachineDialog,de as Badge,p as Button,U as Card,V as CardContent,G as CardHeader,D as CardTitle,e as CardTitleLink,ye as Checkbox,ne as ConfirmDialog,ie as ContextMenu,n as ContextMenuTrigger,Oe as Dialog,re as DiffStat,Ae as DropdownMenu,i as DropdownMenuCheckboxItem,R as DropdownMenuContent,I as DropdownMenuItem,l as DropdownMenuSeparator,v as DropdownMenuSub,ge as DropdownMenuSubContent,g as DropdownMenuSubTrigger,W as DropdownMenuTrigger,N as FileIcon,Ce as Input,X as InviteDialog,L as Label,Q as LinkActions,B as MAX_SPEND_OFFSET,xe as Markdown,Se as ModuleHostContext,a as PaneActions,w as PaneTitle,Y as Pieces,S as Popover,T as PopoverContent,o as PopoverTrigger,Z as QrCode,K as RadioGroup,O as RadioGroupItem,t as RadioGroupOption,x as RangeSlider,H as ScrollArea,f as Select,y as SelectContent,k as SelectItem,ke as SelectTrigger,r as SelectValue,E as Separator,me as SettingsRow,se as SettingsSection,$ as SettingsSelectRow,C as Skeleton,Ee as StartAgentButton,h as Switch,u as Table,F as TableBody,z as TableCell,c as TableHead,_ as TableHeader,he as TableRow,J as Textarea,s as Tooltip,m as TooltipContent,j as TooltipTrigger,b as buttonVariants,A as cn,le as defineModule,M as forgetRemembered,ve as formatAge,te as formatDateTime,pe as formatDuration,oe as formatRelative,_e as moduleHost,q as pathsIn,d as reachedByLine,ue as useAction,ce as useCodingAgents,fe as useFileNames,ae as useHighlighted,De as useLoaded,ee as useModuleHost,we as useNarrow,P as usePolled,be as useSchedule};
|
|
@@ -27,14 +27,14 @@
|
|
|
27
27
|
"@openagt/dashboard/module": "/host/module.js"
|
|
28
28
|
}
|
|
29
29
|
}</script>
|
|
30
|
-
<script type="module" crossorigin src="/assets/main-
|
|
30
|
+
<script type="module" crossorigin src="/assets/main-BenA3DC-.js"></script>
|
|
31
31
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-QTnfLwEv.js">
|
|
32
32
|
<link rel="modulepreload" crossorigin href="/assets/react-CZI7_Jkm.js">
|
|
33
33
|
<link rel="modulepreload" crossorigin href="/assets/react-dom-cJyBB_A4.js">
|
|
34
34
|
<link rel="modulepreload" crossorigin href="/assets/client-CbBRB9m4.js">
|
|
35
35
|
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-By8HlURe.js">
|
|
36
|
-
<link rel="modulepreload" crossorigin href="/assets/module-
|
|
37
|
-
<link rel="stylesheet" crossorigin href="/assets/main-
|
|
36
|
+
<link rel="modulepreload" crossorigin href="/assets/module-CZzF8pLL.js">
|
|
37
|
+
<link rel="stylesheet" crossorigin href="/assets/main-KUO4ZuZ3.css">
|
|
38
38
|
</head>
|
|
39
39
|
<body>
|
|
40
40
|
<div id="root"></div>
|
|
@@ -6,8 +6,8 @@ export { onPreferences, savePreferences, patchPreferences, onProjectPresets, sav
|
|
|
6
6
|
export { type EditorInfo } from '../dashboard/open-in-app.js';
|
|
7
7
|
export { onQuota } from './quota.js';
|
|
8
8
|
export { onModels } from './models.js';
|
|
9
|
-
export { onMachines, sendAddMachine, sendRemoveMachine, onMachinesReachable, onMachineVersions, sendProjectToMachine, onProjectOnMachine, type Machine, type AddMachineResult, type MachineVersions, type ProjectOnMachine } from './machines.js';
|
|
10
|
-
export { onModules, runModuleCommand, runComputerCommand, readModule, type DashboardModule, type ModuleCommandResult, type ModuleReadResult } from './modules.js';
|
|
9
|
+
export { onMachines, sendAddMachine, sendRemoveMachine, onMachinesReachable, onMachineVersions, sendProjectToMachine, onProjectOnMachine, onComputersThrough, sendAddComputerThrough, onMachinePerson, sendRemoveMachineDevice, sendMachineLineLink, sendMachineTold, onMachineLogins, sendMachineLogins, type Machine, type MachineLoginsResult, type AddMachineResult, type MachineVersions, type ProjectOnMachine, type ComputersThrough, type MachinePerson } from './machines.js';
|
|
10
|
+
export { onModules, runModuleCommand, runComputerCommand, runComputerCommandOn, readModule, type DashboardModule, type ModuleCommandResult, type ModuleReadResult } from './modules.js';
|
|
11
11
|
export { onProjectSkills, sendChangeSkills, sendProjectSkills, type ProjectSkills, type ProjectSkill, type ChangeSkillsResult } from './skills.js';
|
|
12
12
|
export { onPerson, type Person } from './person.js';
|
|
13
13
|
import { streamAgentEvents } from './events.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5X,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC7Q,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACzG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AACnQ,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,KAAK,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5X,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC7Q,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACzG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AACnQ,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,eAAe,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,KAAK,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AACtd,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACvL,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAClJ,OAAO,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAYnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C,oGAAoG;AACpG,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAA;AAEtD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAOnD,CAAA;AAED,8FAA8F;AAC9F,eAAO,MAAM,gBAAgB,0BAAoB,CAAA"}
|
|
@@ -9,8 +9,8 @@ export { onProjects, sendAddProject, sendStartedAgain, onCloneTarget, sendAddPro
|
|
|
9
9
|
export { onPreferences, savePreferences, patchPreferences, onProjectPresets, saveProjectPresets, onEditors, } from './preferences.js';
|
|
10
10
|
export { onQuota } from './quota.js';
|
|
11
11
|
export { onModels } from './models.js';
|
|
12
|
-
export { onMachines, sendAddMachine, sendRemoveMachine, onMachinesReachable, onMachineVersions, sendProjectToMachine, onProjectOnMachine } from './machines.js';
|
|
13
|
-
export { onModules, runModuleCommand, runComputerCommand, readModule } from './modules.js';
|
|
12
|
+
export { onMachines, sendAddMachine, sendRemoveMachine, onMachinesReachable, onMachineVersions, sendProjectToMachine, onProjectOnMachine, onComputersThrough, sendAddComputerThrough, onMachinePerson, sendRemoveMachineDevice, sendMachineLineLink, sendMachineTold, onMachineLogins, sendMachineLogins } from './machines.js';
|
|
13
|
+
export { onModules, runModuleCommand, runComputerCommand, runComputerCommandOn, readModule } from './modules.js';
|
|
14
14
|
export { onProjectSkills, sendChangeSkills, sendProjectSkills } from './skills.js';
|
|
15
15
|
export { onPerson } from './person.js';
|
|
16
16
|
import * as reads from './reads.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard-rpc/index.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,oDAAoD;AACpD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5X,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC7Q,OAAO,EAAE,iBAAiB,EAA4D,MAAM,aAAa,CAAA;AACzG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAwB,MAAM,eAAe,CAAA;AACnQ,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,GAGV,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard-rpc/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import { type MachineLogins } from '../dashboard/machine-logins.js';
|
|
1
2
|
/** A saved machine as the browser sees it: no key. */
|
|
2
3
|
export interface Machine {
|
|
3
4
|
id: string;
|
|
4
5
|
label: string;
|
|
5
6
|
url: string;
|
|
7
|
+
/** Whose computer it is, when it is another person's: a run there uses this person's own logins, copied there. */
|
|
8
|
+
owner?: string;
|
|
9
|
+
/** The person was told so, once. */
|
|
10
|
+
told?: true;
|
|
6
11
|
}
|
|
7
12
|
export type AddMachineResult = {
|
|
8
13
|
ok: true;
|
|
@@ -18,8 +23,11 @@ export declare function onMachines(): Promise<Machine[]>;
|
|
|
18
23
|
* computer is let in there with the link's code, once, and keeps the key it is answered. Adding
|
|
19
24
|
* a machine again, with a new link, replaces its name and the key, and the key it had there
|
|
20
25
|
* before is taken out.
|
|
26
|
+
*
|
|
27
|
+
* `owner` is said for a computer of another person's that keeps a line to this server for
|
|
28
|
+
* everyone: the door says whose it is when it tells this OpenAgent of it.
|
|
21
29
|
*/
|
|
22
|
-
export declare function sendAddMachine(pasted: string, label?: string): Promise<AddMachineResult>;
|
|
30
|
+
export declare function sendAddMachine(pasted: string, label?: string, owner?: string): Promise<AddMachineResult>;
|
|
23
31
|
export type RemoveMachineResult = {
|
|
24
32
|
ok: true;
|
|
25
33
|
} | {
|
|
@@ -33,6 +41,88 @@ export type RemoveMachineResult = {
|
|
|
33
41
|
* removed there, among its devices.
|
|
34
42
|
*/
|
|
35
43
|
export declare function sendRemoveMachine(id: string): Promise<RemoveMachineResult>;
|
|
44
|
+
/** A computer that keeps a line open to a saved server, and whether it is saved here, through that server. */
|
|
45
|
+
export interface ComputerThrough {
|
|
46
|
+
id: string;
|
|
47
|
+
name: string;
|
|
48
|
+
online: boolean;
|
|
49
|
+
added: boolean;
|
|
50
|
+
/** Whose computer it is, when it is another person's that keeps its line there for everyone. */
|
|
51
|
+
owner?: string;
|
|
52
|
+
}
|
|
53
|
+
export type ComputersThrough = {
|
|
54
|
+
ok: true;
|
|
55
|
+
computers: ComputerThrough[];
|
|
56
|
+
} | {
|
|
57
|
+
ok: false;
|
|
58
|
+
error: string;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* The computers that keep a line open to a saved server: computers at home that a run can be
|
|
62
|
+
* sent to through the server, from here, as the server's own page does. None for a machine that
|
|
63
|
+
* is no server, and for one saved through a server.
|
|
64
|
+
*/
|
|
65
|
+
export declare function onComputersThrough(machineId: string): Promise<ComputersThrough>;
|
|
66
|
+
/**
|
|
67
|
+
* Save a computer that keeps a line open to a saved server, as a machine of its own: reached
|
|
68
|
+
* through the server, with this computer's key there. Nothing is entered anywhere: the server
|
|
69
|
+
* already lets this computer in, and passes its calls down the computer's line.
|
|
70
|
+
*/
|
|
71
|
+
export declare function sendAddComputerThrough(machineId: string, computerId: string): Promise<AddMachineResult>;
|
|
72
|
+
/** Write down that the person was told their logins are copied to a saved machine of another person's: the page says it once. */
|
|
73
|
+
export declare function sendMachineTold(machineId: string): Promise<{
|
|
74
|
+
ok: boolean;
|
|
75
|
+
}>;
|
|
76
|
+
export type MachineLoginsResult = {
|
|
77
|
+
ok: true;
|
|
78
|
+
logins: MachineLogins;
|
|
79
|
+
} | {
|
|
80
|
+
ok: false;
|
|
81
|
+
error: string;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* This person's logins on a saved machine of another person's, as that machine says: copied from
|
|
85
|
+
* a server, or made there. Read through the server when the machine is reached through one.
|
|
86
|
+
*/
|
|
87
|
+
export declare function onMachineLogins(machineId: string): Promise<MachineLoginsResult>;
|
|
88
|
+
/**
|
|
89
|
+
* Hand this person's own logins to a saved machine of another person's: the person made them for
|
|
90
|
+
* it, here, so they are no copies, and no server's copy takes their place later.
|
|
91
|
+
*/
|
|
92
|
+
export declare function sendMachineLogins(machineId: string, given: {
|
|
93
|
+
github?: unknown;
|
|
94
|
+
claude?: unknown;
|
|
95
|
+
}): Promise<MachineLoginsResult>;
|
|
96
|
+
/**
|
|
97
|
+
* What a saved machine's door says of the person this computer is in as there: their GitHub
|
|
98
|
+
* account, whether they are that computer's owner, and their devices, as the door lists them. A
|
|
99
|
+
* computer several people use answers it; `unknown` is a machine that does not say (one from
|
|
100
|
+
* before persons, or reached through a server). What it said is another computer's data: the page
|
|
101
|
+
* reads it as such.
|
|
102
|
+
*/
|
|
103
|
+
export type MachinePerson = {
|
|
104
|
+
ok: true;
|
|
105
|
+
said: unknown;
|
|
106
|
+
} | {
|
|
107
|
+
ok: false;
|
|
108
|
+
error: string;
|
|
109
|
+
unknown?: true;
|
|
110
|
+
};
|
|
111
|
+
export declare function onMachinePerson(machineId: string): Promise<MachinePerson>;
|
|
112
|
+
/** Take one of this person's devices out at a saved machine, by its id there; answers what {@link onMachinePerson} does, as it is after. */
|
|
113
|
+
export declare function sendRemoveMachineDevice(machineId: string, deviceId: string): Promise<MachinePerson>;
|
|
114
|
+
/**
|
|
115
|
+
* A link that lets this computer's line in at a saved machine, as this person's: what keeping a
|
|
116
|
+
* line open to a computer several people use starts from, for a person who cannot ask for one
|
|
117
|
+
* over SSH. The link works once, and only for a line.
|
|
118
|
+
*/
|
|
119
|
+
export declare function sendMachineLineLink(machineId: string): Promise<{
|
|
120
|
+
ok: true;
|
|
121
|
+
url: string;
|
|
122
|
+
} | {
|
|
123
|
+
ok: false;
|
|
124
|
+
error: string;
|
|
125
|
+
}>;
|
|
36
126
|
/** Whether each saved machine answers right now, by id: one short call to each, with this computer's key. */
|
|
37
127
|
export declare function onMachinesReachable(): Promise<Record<string, boolean>>;
|
|
38
128
|
/** This computer's OpenAgent, and the one each saved machine runs. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"machines.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/machines.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"machines.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/machines.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
import { hostname } from 'node:os';
|
|
2
2
|
import { basename } from 'node:path';
|
|
3
3
|
import { readSharing } from '@openagt/agent-data';
|
|
4
|
-
import { deviceIdOf, enterRemote, leaveRemote, pingRemote, remoteProject, remoteVersion } from '../dashboard/remote-run.js';
|
|
4
|
+
import { THROUGH_PATH, deviceIdOf, enterRemote, giveRemoteLogins, leaveRemote, pingRemote, remoteComputers, remoteDoor, remoteLogins, remoteProject, remoteVersion } from '../dashboard/remote-run.js';
|
|
5
|
+
import { isLoginWord } from '../dashboard/machine-logins.js';
|
|
5
6
|
import { errorMessage } from '../error-message.js';
|
|
6
7
|
import { repositoryAddress, repositorySpelling } from '../repository-address.js';
|
|
7
8
|
import { contextRemote, resolveProjectPath } from './context.js';
|
|
8
|
-
import { addMachine, listMachines, removeMachine } from '../registry.js';
|
|
9
|
+
import { addMachine, isAccount, listMachines, removeMachine, tellMachine } from '../registry.js';
|
|
9
10
|
import { parseMachineLink } from '../machine-link.js';
|
|
10
11
|
import { openagentVersion } from '../version.js';
|
|
12
|
+
/** A saved machine as the browser is handed it. */
|
|
13
|
+
function shown({ id, label, url, owner, told }) {
|
|
14
|
+
return { id, label, url, ...(owner !== undefined ? { owner } : {}), ...(told ? { told } : {}) };
|
|
15
|
+
}
|
|
11
16
|
/** The saved machines, newest first. */
|
|
12
17
|
export async function onMachines() {
|
|
13
|
-
return (await listMachines()).map(
|
|
18
|
+
return (await listMachines()).map(shown);
|
|
19
|
+
}
|
|
20
|
+
/** The machines saved through a server: computers at home it keeps a line to, reached at its address with this computer's key there. */
|
|
21
|
+
function throughOf(server, saved) {
|
|
22
|
+
return saved.filter(machine => machine.url.startsWith(`${server.url}${THROUGH_PATH}`));
|
|
14
23
|
}
|
|
15
24
|
/** This computer's name as the other machine lists it, among the devices that are in there. */
|
|
16
25
|
function ownName() {
|
|
@@ -21,8 +30,11 @@ function ownName() {
|
|
|
21
30
|
* computer is let in there with the link's code, once, and keeps the key it is answered. Adding
|
|
22
31
|
* a machine again, with a new link, replaces its name and the key, and the key it had there
|
|
23
32
|
* before is taken out.
|
|
33
|
+
*
|
|
34
|
+
* `owner` is said for a computer of another person's that keeps a line to this server for
|
|
35
|
+
* everyone: the door says whose it is when it tells this OpenAgent of it.
|
|
24
36
|
*/
|
|
25
|
-
export async function sendAddMachine(pasted, label) {
|
|
37
|
+
export async function sendAddMachine(pasted, label, owner) {
|
|
26
38
|
const link = typeof pasted === 'string' ? parseMachineLink(pasted) : null;
|
|
27
39
|
if (!link)
|
|
28
40
|
return { ok: false, error: 'That is not a link another OpenAgent gives: on the other machine, open Settings, find Devices, and press Add device.' };
|
|
@@ -36,7 +48,7 @@ export async function sendAddMachine(pasted, label) {
|
|
|
36
48
|
const access = { url: link.url, key: entered.key, door: link.door, ...(link.pin ? { pin: link.pin } : {}) };
|
|
37
49
|
let added;
|
|
38
50
|
try {
|
|
39
|
-
added = await addMachine({ ...access, ...(typeof label === 'string' ? { label } : {}) });
|
|
51
|
+
added = await addMachine({ ...access, ...(typeof label === 'string' ? { label } : {}), ...(isAccount(owner) ? { owner } : {}) });
|
|
40
52
|
}
|
|
41
53
|
catch (err) {
|
|
42
54
|
// A key nobody holds is not left on the machine.
|
|
@@ -45,10 +57,14 @@ export async function sendAddMachine(pasted, label) {
|
|
|
45
57
|
}
|
|
46
58
|
// The runs that ended there before go on being read, with the new key; the old keys are of no use any more.
|
|
47
59
|
contextRemote().rekey(link.url, entered.key, link.pin);
|
|
60
|
+
// The computers saved through this server are reached with its key: they take the new one too.
|
|
61
|
+
for (const through of throughOf(added.record, await listMachines())) {
|
|
62
|
+
await addMachine({ url: through.url, key: entered.key, door: through.door, label: through.label, ...(link.pin ? { pin: link.pin } : {}) });
|
|
63
|
+
contextRemote().rekey(through.url, entered.key, link.pin);
|
|
64
|
+
}
|
|
48
65
|
for (const old of added.displaced)
|
|
49
66
|
void leaveRemote(old);
|
|
50
|
-
|
|
51
|
-
return { ok: true, machine: { id, label: name, url } };
|
|
67
|
+
return { ok: true, machine: shown(added.record) };
|
|
52
68
|
}
|
|
53
69
|
/**
|
|
54
70
|
* Take a saved machine off the list, and this computer out of the machine: its key there stops
|
|
@@ -60,11 +76,118 @@ export async function sendRemoveMachine(id) {
|
|
|
60
76
|
const saved = (await listMachines()).find(machine => machine.id === id);
|
|
61
77
|
if (saved && contextRemote().working(saved.url))
|
|
62
78
|
return { ok: false, error: `An agent is working on ${saved.label}. Stop it, or wait until it ends, then remove the machine.` };
|
|
79
|
+
// The computers saved through it go with it: they are reached with its key, which is taken out there.
|
|
80
|
+
const through = saved ? throughOf(saved, await listMachines()) : [];
|
|
81
|
+
const busy = through.find(machine => contextRemote().working(machine.url));
|
|
82
|
+
if (busy)
|
|
83
|
+
return { ok: false, error: `An agent is working on ${busy.label}, through ${saved.label}. Stop it, or wait until it ends, then remove the machine.` };
|
|
84
|
+
for (const machine of through)
|
|
85
|
+
await removeMachine(machine.id);
|
|
63
86
|
const removed = await removeMachine(id);
|
|
64
87
|
if (removed)
|
|
65
88
|
void leaveRemote(removed);
|
|
66
89
|
return { ok: true };
|
|
67
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* The computers that keep a line open to a saved server: computers at home that a run can be
|
|
93
|
+
* sent to through the server, from here, as the server's own page does. None for a machine that
|
|
94
|
+
* is no server, and for one saved through a server.
|
|
95
|
+
*/
|
|
96
|
+
export async function onComputersThrough(machineId) {
|
|
97
|
+
const saved = await listMachines();
|
|
98
|
+
const server = saved.find(machine => machine.id === machineId);
|
|
99
|
+
if (!server)
|
|
100
|
+
return { ok: false, error: 'That machine is no longer saved.' };
|
|
101
|
+
if (server.url.includes(THROUGH_PATH))
|
|
102
|
+
return { ok: true, computers: [] };
|
|
103
|
+
const asked = await remoteComputers(server);
|
|
104
|
+
if (!asked.ok)
|
|
105
|
+
return asked;
|
|
106
|
+
const through = new Set(throughOf(server, saved).map(machine => machine.url));
|
|
107
|
+
return { ok: true, computers: asked.computers.map(computer => ({ ...computer, added: through.has(`${server.url}${THROUGH_PATH}${computer.id}`) })) };
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Save a computer that keeps a line open to a saved server, as a machine of its own: reached
|
|
111
|
+
* through the server, with this computer's key there. Nothing is entered anywhere: the server
|
|
112
|
+
* already lets this computer in, and passes its calls down the computer's line.
|
|
113
|
+
*/
|
|
114
|
+
export async function sendAddComputerThrough(machineId, computerId) {
|
|
115
|
+
const server = (await listMachines()).find(machine => machine.id === machineId);
|
|
116
|
+
if (!server || server.url.includes(THROUGH_PATH))
|
|
117
|
+
return { ok: false, error: 'That server is no longer saved.' };
|
|
118
|
+
const asked = await remoteComputers(server);
|
|
119
|
+
if (!asked.ok)
|
|
120
|
+
return { ok: false, error: `${server.label} could not be asked for its computers: ${asked.error}` };
|
|
121
|
+
const computer = asked.computers.find(candidate => candidate.id === computerId);
|
|
122
|
+
if (!computer)
|
|
123
|
+
return { ok: false, error: `${server.label} has no such computer on a line now.` };
|
|
124
|
+
const url = `${server.url}${THROUGH_PATH}${computer.id}`;
|
|
125
|
+
const { record } = await addMachine({ url, key: server.key, door: `${url}/_remote-access/enter`, label: `${computer.name} (through ${server.label})`, ...(server.pin ? { pin: server.pin } : {}), ...(computer.owner !== undefined ? { owner: computer.owner } : {}) });
|
|
126
|
+
return { ok: true, machine: shown(record) };
|
|
127
|
+
}
|
|
128
|
+
/** Write down that the person was told their logins are copied to a saved machine of another person's: the page says it once. */
|
|
129
|
+
export async function sendMachineTold(machineId) {
|
|
130
|
+
return { ok: typeof machineId === 'string' && (await tellMachine(machineId)) };
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* This person's logins on a saved machine of another person's, as that machine says: copied from
|
|
134
|
+
* a server, or made there. Read through the server when the machine is reached through one.
|
|
135
|
+
*/
|
|
136
|
+
export async function onMachineLogins(machineId) {
|
|
137
|
+
const machine = (await listMachines()).find(saved => saved.id === machineId);
|
|
138
|
+
if (!machine)
|
|
139
|
+
return { ok: false, error: 'That machine is no longer saved.' };
|
|
140
|
+
if (machine.owner === undefined)
|
|
141
|
+
return { ok: false, error: 'That machine is no other person\'s computer.' };
|
|
142
|
+
return remoteLogins(machine);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Hand this person's own logins to a saved machine of another person's: the person made them for
|
|
146
|
+
* it, here, so they are no copies, and no server's copy takes their place later.
|
|
147
|
+
*/
|
|
148
|
+
export async function sendMachineLogins(machineId, given) {
|
|
149
|
+
const machine = (await listMachines()).find(saved => saved.id === machineId);
|
|
150
|
+
if (!machine)
|
|
151
|
+
return { ok: false, error: 'That machine is no longer saved.' };
|
|
152
|
+
if (machine.owner === undefined)
|
|
153
|
+
return { ok: false, error: 'That machine is no other person\'s computer.' };
|
|
154
|
+
const { github, claude } = given && typeof given === 'object' ? given : {};
|
|
155
|
+
if ((github !== undefined && !isLoginWord(github)) || (claude !== undefined && !isLoginWord(claude)) || (github === undefined && claude === undefined))
|
|
156
|
+
return { ok: false, error: 'That is no login.' };
|
|
157
|
+
return giveRemoteLogins(machine, { ...(github !== undefined ? { github } : {}), ...(claude !== undefined ? { claude } : {}) });
|
|
158
|
+
}
|
|
159
|
+
export async function onMachinePerson(machineId) {
|
|
160
|
+
const machine = (await listMachines()).find(saved => saved.id === machineId);
|
|
161
|
+
if (!machine)
|
|
162
|
+
return { ok: false, error: 'That machine is no longer saved.' };
|
|
163
|
+
if (machine.url.includes(THROUGH_PATH))
|
|
164
|
+
return { ok: false, error: 'A computer reached through a server says nothing of persons.', unknown: true };
|
|
165
|
+
return remoteDoor(machine, { what: 'me' });
|
|
166
|
+
}
|
|
167
|
+
/** Take one of this person's devices out at a saved machine, by its id there; answers what {@link onMachinePerson} does, as it is after. */
|
|
168
|
+
export async function sendRemoveMachineDevice(machineId, deviceId) {
|
|
169
|
+
const machine = (await listMachines()).find(saved => saved.id === machineId);
|
|
170
|
+
if (!machine || machine.url.includes(THROUGH_PATH))
|
|
171
|
+
return { ok: false, error: 'That machine is no longer saved.' };
|
|
172
|
+
if (typeof deviceId !== 'string' || !/^[a-z0-9]{6,32}$/.test(deviceId))
|
|
173
|
+
return { ok: false, error: 'That is no device id.' };
|
|
174
|
+
return remoteDoor(machine, { what: 'remove', id: deviceId });
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* A link that lets this computer's line in at a saved machine, as this person's: what keeping a
|
|
178
|
+
* line open to a computer several people use starts from, for a person who cannot ask for one
|
|
179
|
+
* over SSH. The link works once, and only for a line.
|
|
180
|
+
*/
|
|
181
|
+
export async function sendMachineLineLink(machineId) {
|
|
182
|
+
const machine = (await listMachines()).find(saved => saved.id === machineId);
|
|
183
|
+
if (!machine || machine.url.includes(THROUGH_PATH))
|
|
184
|
+
return { ok: false, error: 'That machine is no longer saved.' };
|
|
185
|
+
const asked = await remoteDoor(machine, { what: 'line' });
|
|
186
|
+
if (!asked.ok)
|
|
187
|
+
return asked;
|
|
188
|
+
const url = asked.said?.url;
|
|
189
|
+
return typeof url === 'string' && url.startsWith('https://') ? { ok: true, url } : { ok: false, error: 'The machine gave no link.' };
|
|
190
|
+
}
|
|
68
191
|
/** Whether each saved machine answers right now, by id: one short call to each, with this computer's key. */
|
|
69
192
|
export async function onMachinesReachable() {
|
|
70
193
|
const machines = await listMachines();
|
|
@@ -81,7 +204,7 @@ export async function onMachineVersions() {
|
|
|
81
204
|
const machines = await Promise.all((await listMachines()).map(async (machine) => {
|
|
82
205
|
const version = await remoteVersion(machine);
|
|
83
206
|
const device = deviceIdOf(machine.key);
|
|
84
|
-
return {
|
|
207
|
+
return { ...shown(machine), ...(version !== undefined ? { version } : {}), ...(device !== undefined ? { device } : {}) };
|
|
85
208
|
}));
|
|
86
209
|
return { version: openagentVersion(), machines };
|
|
87
210
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"machines.js","sourceRoot":"","sources":["../../src/dashboard-rpc/machines.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"machines.js","sourceRoot":"","sources":["../../src/dashboard-rpc/machines.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,9 +41,21 @@ export declare function runModuleCommand(projectId: string, pkg: string, args: s
|
|
|
41
41
|
* Run one of the commands of a package that is this computer's, in no project, and answer its
|
|
42
42
|
* JSON output: how the door's page and the servers' page read and change what they keep, which is
|
|
43
43
|
* in the person's home folder, where the command runs. Refused for any other package: a project's
|
|
44
|
-
* module runs its commands in its project ({@link runModuleCommand}).
|
|
44
|
+
* module runs its commands in its project ({@link runModuleCommand}). `input` is what the command
|
|
45
|
+
* reads on standard input: a login handed over there is on no command line.
|
|
46
|
+
*
|
|
47
|
+
* The command is told which computer this is and where this OpenAgent answers: what it sets up on
|
|
48
|
+
* another machine is listed there as this computer's, and what it asks of a saved machine it asks
|
|
49
|
+
* through this OpenAgent, which holds the keys.
|
|
50
|
+
*/
|
|
51
|
+
export declare function runComputerCommand(pkg: string, args: string[], command?: string | null, input?: string | null): Promise<ModuleCommandResult>;
|
|
52
|
+
/**
|
|
53
|
+
* Run one of the commands of a package that is this computer's on a saved machine, where the
|
|
54
|
+
* same package is that machine's: a module reads and changes what it keeps over there, with this
|
|
55
|
+
* computer's key there, as the machine's own page would. Not for a computer reached through a
|
|
56
|
+
* server: what comes down a line is a machine's calls, not its page's.
|
|
45
57
|
*/
|
|
46
|
-
export declare function
|
|
58
|
+
export declare function runComputerCommandOn(pkg: string, machineId: string, args: string[], command?: string | null, input?: string | null): Promise<ModuleCommandResult>;
|
|
47
59
|
/**
|
|
48
60
|
* Call read `name` of a module's server part in one project: how a module's browser part reads
|
|
49
61
|
* what a command cannot answer fast enough. Refused for an unknown project, a package that is not
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/modules.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkH,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAGhL,OAAO,EAA8B,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/modules.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkH,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAGhL,OAAO,EAA8B,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAQ/F,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,6FAA6F;AAC7F,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,wIAAwI;IACxI,GAAG,EAAE,MAAM,CAAA;IACX,oJAAoJ;IACpJ,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,qHAAqH;IACrH,QAAQ,CAAC,EAAE,IAAI,CAAA;CAChB;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAc5D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAUnJ;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,CASlJ;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAMvK;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAUxH"}
|
|
@@ -5,8 +5,10 @@ import { computerModuleUrl, moduleUrl } from '../dashboard/module-serve.js';
|
|
|
5
5
|
import { providedDataChanged } from '../store/provided.js';
|
|
6
6
|
import { callModuleRead, serverHost } from '../dashboard/module-host.js';
|
|
7
7
|
import { relayOr } from './relay-agent.js';
|
|
8
|
-
import { COMPUTER_ENV } from '../package-services.js';
|
|
8
|
+
import { COMPUTER_ENV, URL_ENV, ownUrlSaid } from '../package-services.js';
|
|
9
9
|
import { computerSaid } from '../dashboard/machine-call.js';
|
|
10
|
+
import { THROUGH_PATH, remoteComputerCommand } from '../dashboard/remote-run.js';
|
|
11
|
+
import { listMachines } from '../registry.js';
|
|
10
12
|
import { DATA_BRANCH, pullFileBranch } from '@openagt/agent-data';
|
|
11
13
|
/**
|
|
12
14
|
* Every module the dashboard loads (#1774), one per package. First the computer's, which are
|
|
@@ -66,9 +68,14 @@ export async function runModuleCommand(projectId, pkg, args, command, acts = fal
|
|
|
66
68
|
* Run one of the commands of a package that is this computer's, in no project, and answer its
|
|
67
69
|
* JSON output: how the door's page and the servers' page read and change what they keep, which is
|
|
68
70
|
* in the person's home folder, where the command runs. Refused for any other package: a project's
|
|
69
|
-
* module runs its commands in its project ({@link runModuleCommand}).
|
|
71
|
+
* module runs its commands in its project ({@link runModuleCommand}). `input` is what the command
|
|
72
|
+
* reads on standard input: a login handed over there is on no command line.
|
|
73
|
+
*
|
|
74
|
+
* The command is told which computer this is and where this OpenAgent answers: what it sets up on
|
|
75
|
+
* another machine is listed there as this computer's, and what it asks of a saved machine it asks
|
|
76
|
+
* through this OpenAgent, which holds the keys.
|
|
70
77
|
*/
|
|
71
|
-
export async function runComputerCommand(pkg, args, command) {
|
|
78
|
+
export async function runComputerCommand(pkg, args, command, input) {
|
|
72
79
|
if (!Array.isArray(args))
|
|
73
80
|
return { ok: false, error: 'arguments must be a list' };
|
|
74
81
|
const module = await findComputerModule(pkg);
|
|
@@ -76,7 +83,25 @@ export async function runComputerCommand(pkg, args, command) {
|
|
|
76
83
|
return { ok: false, error: `${pkg} is not this computer's` };
|
|
77
84
|
// Told which computer this is, in the word OpenAgent's own calls are made from: what such a command sets up on another machine is listed there as this computer's.
|
|
78
85
|
const computer = computerSaid();
|
|
79
|
-
|
|
86
|
+
const url = ownUrlSaid();
|
|
87
|
+
const more = { ...(computer !== undefined ? { [COMPUTER_ENV]: computer } : {}), ...(url !== undefined ? { [URL_ENV]: url } : {}) };
|
|
88
|
+
return runCommand(homedir(), module, args, typeof command === 'string' ? command : undefined, more, typeof input === 'string' ? input : undefined);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Run one of the commands of a package that is this computer's on a saved machine, where the
|
|
92
|
+
* same package is that machine's: a module reads and changes what it keeps over there, with this
|
|
93
|
+
* computer's key there, as the machine's own page would. Not for a computer reached through a
|
|
94
|
+
* server: what comes down a line is a machine's calls, not its page's.
|
|
95
|
+
*/
|
|
96
|
+
export async function runComputerCommandOn(pkg, machineId, args, command, input) {
|
|
97
|
+
if (!Array.isArray(args) || args.some(arg => typeof arg !== 'string'))
|
|
98
|
+
return { ok: false, error: 'arguments must be a list of words' };
|
|
99
|
+
if (!(await findComputerModule(pkg)))
|
|
100
|
+
return { ok: false, error: `${pkg} is not this computer's` };
|
|
101
|
+
const machine = (await listMachines()).find(saved => saved.id === machineId);
|
|
102
|
+
if (!machine || machine.url.includes(THROUGH_PATH))
|
|
103
|
+
return { ok: false, error: 'That machine is no longer saved.' };
|
|
104
|
+
return remoteComputerCommand(machine, pkg, args, typeof command === 'string' ? command : undefined, typeof input === 'string' ? input : undefined);
|
|
80
105
|
}
|
|
81
106
|
/**
|
|
82
107
|
* Call read `name` of a module's server part in one project: how a module's browser part reads
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules.js","sourceRoot":"","sources":["../../src/dashboard-rpc/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,gBAAgB,IAAI,UAAU,EAA4B,MAAM,uBAAuB,CAAA;AAChL,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAyB,MAAM,6BAA6B,CAAA;AAC/F,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"modules.js","sourceRoot":"","sources":["../../src/dashboard-rpc/modules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Person } from '../dashboard/person.js';
|
|
2
2
|
export type { Person } from '../dashboard/person.js';
|
|
3
|
-
/** The person at this dashboard, for the foot of its sidebar (`readPerson`). */
|
|
3
|
+
/** The person at this dashboard, for the foot of its sidebar (`readPerson`): another person's, for a page their device opened. */
|
|
4
4
|
export declare function onPerson(): Promise<Person>;
|
|
5
5
|
//# sourceMappingURL=person.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"person.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/person.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"person.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/person.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAG9E,YAAY,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAOpD,kIAAkI;AAClI,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAGhD"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { readPerson } from '../dashboard/person.js';
|
|
1
|
+
import { personAtPage, readPerson } from '../dashboard/person.js';
|
|
2
2
|
import { contextProjects } from './context.js';
|
|
3
3
|
/** How long the person is kept: neither the name nor the picture changes while the dashboard is open, and the git host's answer is a network call. */
|
|
4
4
|
const KEEP_MS = 60 * 60_000;
|
|
5
5
|
let kept;
|
|
6
|
-
/** The person at this dashboard, for the foot of its sidebar (`readPerson`). */
|
|
6
|
+
/** The person at this dashboard, for the foot of its sidebar (`readPerson`): another person's, for a page their device opened. */
|
|
7
7
|
export async function onPerson() {
|
|
8
8
|
if (!kept || Date.now() - kept.at >= KEEP_MS)
|
|
9
9
|
kept = { at: Date.now(), person: readPerson({ projects: async () => (await contextProjects().list().catch(() => [])).map(project => project.path) }) };
|
|
10
|
-
return kept.person;
|
|
10
|
+
return personAtPage(await kept.person);
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=person.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"person.js","sourceRoot":"","sources":["../../src/dashboard-rpc/person.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAe,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"person.js","sourceRoot":"","sources":["../../src/dashboard-rpc/person.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAe,MAAM,wBAAwB,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAI9C,sJAAsJ;AACtJ,MAAM,OAAO,GAAG,EAAE,GAAG,MAAM,CAAA;AAE3B,IAAI,IAAyD,CAAA;AAE7D,kIAAkI;AAClI,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,OAAO;QAAE,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAA;IACpM,OAAO,YAAY,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAA;AACxC,CAAC"}
|