@openagt/dashboard 0.40.0 → 0.42.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/built-in.d.ts +5 -0
- package/dist/built-in.d.ts.map +1 -1
- package/dist/built-in.js +7 -0
- package/dist/built-in.js.map +1 -1
- package/dist/clone-project.d.ts +11 -0
- package/dist/clone-project.d.ts.map +1 -1
- package/dist/clone-project.js +38 -12
- package/dist/clone-project.js.map +1 -1
- package/dist/daemon-runtime.d.ts.map +1 -1
- package/dist/daemon-runtime.js +216 -63
- package/dist/daemon-runtime.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +6 -2
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/activity.d.ts +2 -2
- package/dist/dashboard/activity.d.ts.map +1 -1
- package/dist/dashboard/activity.js +2 -2
- package/dist/dashboard/activity.js.map +1 -1
- package/dist/dashboard/computers-sync.d.ts +104 -0
- package/dist/dashboard/computers-sync.d.ts.map +1 -0
- package/dist/dashboard/computers-sync.js +179 -0
- package/dist/dashboard/computers-sync.js.map +1 -0
- package/dist/dashboard/elsewhere.d.ts +92 -0
- package/dist/dashboard/elsewhere.d.ts.map +1 -0
- package/dist/dashboard/elsewhere.js +155 -0
- package/dist/dashboard/elsewhere.js.map +1 -0
- package/dist/dashboard/interventions.d.ts +6 -0
- package/dist/dashboard/interventions.d.ts.map +1 -1
- package/dist/dashboard/interventions.js.map +1 -1
- package/dist/dashboard/machine-interventions.d.ts +52 -0
- package/dist/dashboard/machine-interventions.d.ts.map +1 -0
- package/dist/dashboard/machine-interventions.js +117 -0
- package/dist/dashboard/machine-interventions.js.map +1 -0
- package/dist/dashboard/models.d.ts +2 -1
- package/dist/dashboard/models.d.ts.map +1 -1
- package/dist/dashboard/models.js +1 -1
- package/dist/dashboard/models.js.map +1 -1
- package/dist/dashboard/module-serve.d.ts +6 -0
- package/dist/dashboard/module-serve.d.ts.map +1 -1
- package/dist/dashboard/module-serve.js +11 -1
- package/dist/dashboard/module-serve.js.map +1 -1
- package/dist/dashboard/overview.d.ts +20 -5
- package/dist/dashboard/overview.d.ts.map +1 -1
- package/dist/dashboard/overview.js +28 -8
- package/dist/dashboard/overview.js.map +1 -1
- package/dist/dashboard/projects.d.ts +11 -2
- package/dist/dashboard/projects.d.ts.map +1 -1
- package/dist/dashboard/projects.js +3 -2
- package/dist/dashboard/projects.js.map +1 -1
- package/dist/dashboard/relay-endpoints.d.ts +2 -0
- package/dist/dashboard/relay-endpoints.d.ts.map +1 -1
- package/dist/dashboard/relay-endpoints.js +4 -2
- package/dist/dashboard/relay-endpoints.js.map +1 -1
- package/dist/dashboard/rpc-serve.d.ts +21 -1
- package/dist/dashboard/rpc-serve.d.ts.map +1 -1
- package/dist/dashboard/rpc-serve.js +9 -3
- 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 +6 -4
- package/dist/dashboard/server.js.map +1 -1
- package/dist/dashboard/types.d.ts +3 -1
- package/dist/dashboard/types.d.ts.map +1 -1
- package/dist/dashboard-bundle/assets/host/module-BWXIkXv5.js +1 -0
- package/dist/dashboard-bundle/assets/main-CA55XzlS.js +148 -0
- package/dist/dashboard-bundle/assets/main-Ca6eaXat.css +2 -0
- package/dist/dashboard-bundle/assets/{module-C8GDq0nb.js → module-CXKv8UKd.js} +5 -5
- package/dist/dashboard-bundle/index.html +4 -4
- package/dist/dashboard-rpc/computers.d.ts +27 -0
- package/dist/dashboard-rpc/computers.d.ts.map +1 -0
- package/dist/dashboard-rpc/computers.js +90 -0
- package/dist/dashboard-rpc/computers.js.map +1 -0
- package/dist/dashboard-rpc/context.js +1 -1
- package/dist/dashboard-rpc/context.js.map +1 -1
- package/dist/dashboard-rpc/index.d.ts +1 -1
- package/dist/dashboard-rpc/index.d.ts.map +1 -1
- package/dist/dashboard-rpc/index.js +1 -1
- package/dist/dashboard-rpc/index.js.map +1 -1
- package/dist/dashboard-rpc/machines.d.ts +22 -3
- package/dist/dashboard-rpc/machines.d.ts.map +1 -1
- package/dist/dashboard-rpc/machines.js +102 -22
- package/dist/dashboard-rpc/machines.js.map +1 -1
- package/dist/dashboard-rpc/modules.d.ts.map +1 -1
- package/dist/dashboard-rpc/modules.js +19 -3
- package/dist/dashboard-rpc/modules.js.map +1 -1
- package/dist/dashboard-rpc/projects.d.ts +14 -0
- package/dist/dashboard-rpc/projects.d.ts.map +1 -1
- package/dist/dashboard-rpc/projects.js +48 -5
- package/dist/dashboard-rpc/projects.js.map +1 -1
- package/dist/dashboard-rpc/reads.d.ts +6 -0
- package/dist/dashboard-rpc/reads.d.ts.map +1 -1
- package/dist/dashboard-rpc/reads.js +48 -14
- package/dist/dashboard-rpc/reads.js.map +1 -1
- package/dist/dashboard-rpc/relay-dispatch.d.ts +12 -0
- package/dist/dashboard-rpc/relay-dispatch.d.ts.map +1 -1
- package/dist/dashboard-rpc/relay-dispatch.js +44 -8
- package/dist/dashboard-rpc/relay-dispatch.js.map +1 -1
- package/dist/dashboard-rpc/runs-changed.d.ts.map +1 -1
- package/dist/dashboard-rpc/runs-changed.js +14 -6
- package/dist/dashboard-rpc/runs-changed.js.map +1 -1
- package/dist/dashboard-rpc/test-context.d.ts +3 -1
- package/dist/dashboard-rpc/test-context.d.ts.map +1 -1
- package/dist/dashboard-rpc/test-context.js +13 -1
- package/dist/dashboard-rpc/test-context.js.map +1 -1
- package/dist/module-types/dashboard/components/MachineMark.d.ts +14 -0
- package/dist/module-types/dashboard/lib/models.d.ts +11 -1
- package/dist/module-types/dashboard/rpc/machines.d.ts +35 -0
- package/dist/module-types/src/built-in.d.ts +5 -0
- package/dist/module-types/src/clone-project.d.ts +11 -0
- package/dist/module-types/src/dashboard/activity.d.ts +2 -2
- package/dist/module-types/src/dashboard/computers-sync.d.ts +103 -0
- package/dist/module-types/src/dashboard/elsewhere.d.ts +91 -0
- package/dist/module-types/src/dashboard/interventions.d.ts +6 -0
- package/dist/module-types/src/dashboard/machine-interventions.d.ts +51 -0
- package/dist/module-types/src/dashboard/models.d.ts +2 -1
- package/dist/module-types/src/dashboard/module-serve.d.ts +6 -0
- package/dist/module-types/src/dashboard/overview.d.ts +20 -5
- package/dist/module-types/src/dashboard/projects.d.ts +11 -2
- package/dist/module-types/src/dashboard/rpc-serve.d.ts +21 -1
- package/dist/module-types/src/dashboard/types.d.ts +3 -1
- package/dist/module-types/src/dashboard-rpc/computers.d.ts +26 -0
- package/dist/module-types/src/dashboard-rpc/index.d.ts +1 -1
- package/dist/module-types/src/dashboard-rpc/machines.d.ts +22 -3
- package/dist/module-types/src/dashboard-rpc/projects.d.ts +14 -0
- package/dist/module-types/src/dashboard-rpc/reads.d.ts +6 -0
- package/dist/module-types/src/dashboard-rpc/relay-dispatch.d.ts +28 -0
- package/dist/module-types/src/project-modules.d.ts +19 -0
- package/dist/module-types/src/registry.d.ts +28 -0
- package/dist/module-types/src/repository-address.d.ts +6 -0
- package/dist/project-modules.d.ts +19 -0
- package/dist/project-modules.d.ts.map +1 -1
- package/dist/project-modules.js +42 -2
- package/dist/project-modules.js.map +1 -1
- package/dist/registry.d.ts +28 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +60 -4
- package/dist/registry.js.map +1 -1
- package/dist/repository-address.d.ts +6 -0
- package/dist/repository-address.d.ts.map +1 -1
- package/dist/repository-address.js +9 -0
- package/dist/repository-address.js.map +1 -1
- package/package.json +20 -20
- package/dist/dashboard-bundle/assets/host/module-JRfd42hf.js +0 -1
- package/dist/dashboard-bundle/assets/main-BhC5aJ1h.css +0 -2
- package/dist/dashboard-bundle/assets/main-Bo8Pao9A.js +0 -148
package/dist/built-in.d.ts
CHANGED
|
@@ -39,6 +39,11 @@ export declare function builtInPackages(): Promise<ProjectPackage[]>;
|
|
|
39
39
|
export declare function builtInPackagesOf(root: string): Promise<ProjectPackage[]>;
|
|
40
40
|
/** The project's own installed packages, less the names OpenAgent brings itself. */
|
|
41
41
|
export declare function ownPackages(root: string): Promise<ProjectPackage[]>;
|
|
42
|
+
/**
|
|
43
|
+
* Every package OpenAgent brings to projects, the picked ones too, whatever a project holds: the
|
|
44
|
+
* copy a module's page is served from on a computer where no project of its own has the module.
|
|
45
|
+
*/
|
|
46
|
+
export declare function broughtToProjects(): Promise<ProjectPackage[]>;
|
|
42
47
|
/** The packages that are this computer's: see {@link COMPUTER_PACKAGES}. */
|
|
43
48
|
export declare function computerPackages(): Promise<ProjectPackage[]>;
|
|
44
49
|
/**
|
package/dist/built-in.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"built-in.d.ts","sourceRoot":"","sources":["../src/built-in.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAA4H,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAErO;;;;;;;;GAQG;AAEH,4GAA4G;AAC5G,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAA+I,CAAA;AAE9L;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAyB,CAAA;AAExE;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA6I,CAAA;AAE1L,0CAA0C;AAC1C,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAqE,CAAA;AAYpH,iHAAiH;AACjH,wBAAgB,eAAe,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAE3D;AAsBD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAQ/E;AA2BD,oFAAoF;AACpF,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAEzE;AAED,4EAA4E;AAC5E,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAElE;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAElE;AAED,0IAA0I;AAC1I,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAMxD;AAED,wIAAwI;AACxI,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAE/F;AAED,gFAAgF;AAChF,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAEtG;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAE3D;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQpE;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAkBtE"}
|
|
1
|
+
{"version":3,"file":"built-in.d.ts","sourceRoot":"","sources":["../src/built-in.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAA4H,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAErO;;;;;;;;GAQG;AAEH,4GAA4G;AAC5G,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAA+I,CAAA;AAE9L;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAyB,CAAA;AAExE;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA6I,CAAA;AAE1L,0CAA0C;AAC1C,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAqE,CAAA;AAYpH,iHAAiH;AACjH,wBAAgB,eAAe,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAE3D;AAsBD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAQ/E;AA2BD,oFAAoF;AACpF,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAEzE;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAEnE;AAED,4EAA4E;AAC5E,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAElE;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAElE;AAED,0IAA0I;AAC1I,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAMxD;AAED,wIAAwI;AACxI,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAE/F;AAED,gFAAgF;AAChF,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAEtG;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAE3D;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQpE;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAkBtE"}
|
package/dist/built-in.js
CHANGED
|
@@ -102,6 +102,13 @@ async function holdsSkill(root, name) {
|
|
|
102
102
|
export async function ownPackages(root) {
|
|
103
103
|
return projectPackages(root, OWN_PACKAGE_NAMES);
|
|
104
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Every package OpenAgent brings to projects, the picked ones too, whatever a project holds: the
|
|
107
|
+
* copy a module's page is served from on a computer where no project of its own has the module.
|
|
108
|
+
*/
|
|
109
|
+
export async function broughtToProjects() {
|
|
110
|
+
return (await (resolved ??= resolveOwn())).filter(pkg => pkg.of !== 'the computer');
|
|
111
|
+
}
|
|
105
112
|
/** The packages that are this computer's: see {@link COMPUTER_PACKAGES}. */
|
|
106
113
|
export async function computerPackages() {
|
|
107
114
|
return (await (resolved ??= resolveOwn())).filter(pkg => pkg.of === 'the computer');
|
package/dist/built-in.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"built-in.js","sourceRoot":"","sources":["../src/built-in.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"built-in.js","sourceRoot":"","sources":["../src/built-in.ts"],"names":[],"mappings":"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"}
|
package/dist/clone-project.d.ts
CHANGED
|
@@ -66,4 +66,15 @@ export interface CloneOptions {
|
|
|
66
66
|
* folder a second ask could take for the project.
|
|
67
67
|
*/
|
|
68
68
|
export declare function cloneProject(typed: string, opts?: CloneOptions): Promise<Cloned>;
|
|
69
|
+
/**
|
|
70
|
+
* Whether this computer's logins read the repository at the address, asked of its host without
|
|
71
|
+
* cloning anything: what a run of a project cloned here first would hit before it starts. The
|
|
72
|
+
* answer is the clone's own words when they cannot.
|
|
73
|
+
*/
|
|
74
|
+
export declare function canRead(typed: string, opts?: CloneOptions, subject?: string): Promise<{
|
|
75
|
+
ok: true;
|
|
76
|
+
} | {
|
|
77
|
+
ok: false;
|
|
78
|
+
error: string;
|
|
79
|
+
}>;
|
|
69
80
|
//# sourceMappingURL=clone-project.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clone-project.d.ts","sourceRoot":"","sources":["../src/clone-project.ts"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AAEH,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC1B,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAA;IACf,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAA;CACb;AAMD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,GAAG,WAAW,GAAG,SAAS,CAkB5F;AAED,0GAA0G;AAC1G,MAAM,MAAM,MAAM,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/F,4EAA4E;AAC5E,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"clone-project.d.ts","sourceRoot":"","sources":["../src/clone-project.ts"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AAEH,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC1B,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAA;IACf,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAA;CACb;AAMD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,GAAG,WAAW,GAAG,SAAS,CAkB5F;AAED,0GAA0G;AAC1G,MAAM,MAAM,MAAM,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/F,4EAA4E;AAC5E,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AA8BxK,oHAAoH;AACpH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAGtI;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mGAAmG;IACnG,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;CACrE;AAKD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CASpF;AA2BD;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,EAAE,OAAO,SAAkB,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAOrJ"}
|
package/dist/clone-project.js
CHANGED
|
@@ -49,6 +49,8 @@ const nodeCloneRunner = (args, env, timeoutMs) => new Promise(done => {
|
|
|
49
49
|
const ownSshCommand = (env) => new Promise(done => execFile('git', ['config', '--get', 'core.sshCommand'], { env, cwd: homedir(), timeout: 10_000 }, (error, stdout) => done(error ? undefined : String(stdout).trim() || undefined)));
|
|
50
50
|
/** How long a clone may take: a large repository over a slow line, not a hang. */
|
|
51
51
|
const CLONE_TIMEOUT_MS = 15 * 60_000;
|
|
52
|
+
/** How long asking a repository's host whether it is readable may take. */
|
|
53
|
+
const READ_TIMEOUT_MS = 30_000;
|
|
52
54
|
/** What git says when it has no login that can read a repository, over the web and over SSH. */
|
|
53
55
|
const NO_LOGIN = /could not read Username|Authentication failed|terminal prompts disabled|Permission denied \(publickey|Repository not found/i;
|
|
54
56
|
/** What SSH says of a host this computer has never met: it would ask a person, and nobody is there to answer. */
|
|
@@ -97,13 +99,7 @@ async function cloneTo({ url, address, path }, opts) {
|
|
|
97
99
|
await mkdir(projects, { recursive: true });
|
|
98
100
|
// A name no repository has: one starts with a letter, a digit or an underscore.
|
|
99
101
|
const making = await mkdtemp(join(projects, `.${basename(path)}.cloning-`));
|
|
100
|
-
const
|
|
101
|
-
const ssh = env.GIT_SSH_COMMAND ?? (await (opts.sshCommand ?? ownSshCommand)(env)) ?? 'ssh';
|
|
102
|
-
const said = await (opts.run ?? nodeCloneRunner)(
|
|
103
|
-
// Only the two ways in a repository's address names: a clone never runs a program an address could name.
|
|
104
|
-
['-c', 'protocol.allow=never', '-c', 'protocol.https.allow=always', '-c', 'protocol.ssh.allow=always', 'clone', '--', url, making],
|
|
105
|
-
// Never a question to a person, in a terminal or in a window: nobody is there to answer one. The person's own way to SSH is kept, and told the same.
|
|
106
|
-
{ ...env, GIT_TERMINAL_PROMPT: '0', GIT_ASKPASS: '', GIT_SSH_COMMAND: `${ssh} -oBatchMode=yes` }, opts.timeoutMs ?? CLONE_TIMEOUT_MS);
|
|
102
|
+
const said = await askGit(['clone', '--', url, making], opts, CLONE_TIMEOUT_MS);
|
|
107
103
|
if (said.ok) {
|
|
108
104
|
// Moved only where nothing is: a folder that came to be there meanwhile is not written over.
|
|
109
105
|
const landed = (await there()) ?? (await rename(making, path).then(() => undefined, (err) => (err instanceof Error ? err.message : String(err))));
|
|
@@ -115,10 +111,40 @@ async function cloneTo({ url, address, path }, opts) {
|
|
|
115
111
|
await rm(making, { recursive: true, force: true });
|
|
116
112
|
if (said.timedOut)
|
|
117
113
|
return { ok: false, error: `Cloning ${address} took too long, and was stopped.` };
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
114
|
+
return { ok: false, error: gitRefusal(said.said, address, 'git could not clone it.') };
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Whether this computer's logins read the repository at the address, asked of its host without
|
|
118
|
+
* cloning anything: what a run of a project cloned here first would hit before it starts. The
|
|
119
|
+
* answer is the clone's own words when they cannot.
|
|
120
|
+
*/
|
|
121
|
+
export async function canRead(typed, opts = {}, subject = 'This computer') {
|
|
122
|
+
const target = cloneTarget(typed, opts.home);
|
|
123
|
+
if (!target)
|
|
124
|
+
return { ok: false, error: `"${typed.trim().slice(0, 80)}" ${NOT_AN_ADDRESS}` };
|
|
125
|
+
const said = await askGit(['ls-remote', '--heads', '--', target.url], opts, READ_TIMEOUT_MS);
|
|
126
|
+
if (said.ok)
|
|
127
|
+
return { ok: true };
|
|
128
|
+
if (said.timedOut)
|
|
129
|
+
return { ok: false, error: `${target.address} did not answer in time.` };
|
|
130
|
+
return { ok: false, error: gitRefusal(said.said, target.address, 'git could not read it.', subject) };
|
|
131
|
+
}
|
|
132
|
+
/** Run git about a repository the way a clone does: only the ways in an address, never a question to a person. */
|
|
133
|
+
async function askGit(args, opts, timeoutMs) {
|
|
134
|
+
const env = opts.env ?? process.env;
|
|
135
|
+
const ssh = env.GIT_SSH_COMMAND ?? (await (opts.sshCommand ?? ownSshCommand)(env)) ?? 'ssh';
|
|
136
|
+
return (opts.run ?? nodeCloneRunner)(
|
|
137
|
+
// Only the two ways in a repository's address names: git never runs a program an address could name.
|
|
138
|
+
['-c', 'protocol.allow=never', '-c', 'protocol.https.allow=always', '-c', 'protocol.ssh.allow=always', ...args],
|
|
139
|
+
// Never a question to a person, in a terminal or in a window: nobody is there to answer one. The person's own way to SSH is kept, and told the same.
|
|
140
|
+
{ ...env, GIT_TERMINAL_PROMPT: '0', GIT_ASKPASS: '', GIT_SSH_COMMAND: `${ssh} -oBatchMode=yes` }, opts.timeoutMs ?? timeoutMs);
|
|
141
|
+
}
|
|
142
|
+
/** What git said when it could not reach the repository, in a person's words, of the computer it ran on. */
|
|
143
|
+
function gitRefusal(said, address, otherwise, subject = 'This computer') {
|
|
144
|
+
const lines = said.split('\n').map(line => line.trim().replace(/^(fatal|error): /i, '')).filter(line => line && !SAID_EVERY_TIME.test(line));
|
|
145
|
+
const words = lines.slice(-2).join(' ') || otherwise;
|
|
146
|
+
if (NOT_MET.test(said))
|
|
147
|
+
return `${subject} has never met ${address.split('/')[0]} over SSH, so it does not know it is the real one. Use the address that starts with https://, or connect to it once in a terminal. git said: ${words}`;
|
|
148
|
+
return NO_LOGIN.test(said) ? `${subject} has no login that can read ${address}, or there is no such repository: a private one needs a login. git said: ${words}` : words;
|
|
123
149
|
}
|
|
124
150
|
//# sourceMappingURL=clone-project.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clone-project.js","sourceRoot":"","sources":["../src/clone-project.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"clone-project.js","sourceRoot":"","sources":["../src/clone-project.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-runtime.d.ts","sourceRoot":"","sources":["../src/daemon-runtime.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACvI,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAgB,MAAM,0BAA0B,CAAA;AACxF,OAAO,
|
|
1
|
+
{"version":3,"file":"daemon-runtime.d.ts","sourceRoot":"","sources":["../src/daemon-runtime.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACvI,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAgB,MAAM,0BAA0B,CAAA;AACxF,OAAO,EAAuE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAqB,MAAM,2BAA2B,CAAA;AAOxK,OAAO,EAAE,YAAY,EAAe,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAA;AA4DpG,8CAA8C;AAC9C,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAA;IACX,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;IACtB,oFAAoF;IACpF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;IAC5D,2HAA2H;IAC3H,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;CACxD;AAED,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC7G,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACzE;;;;;OAKG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IACzD,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACrF;uGACmG;IACnG,kBAAkB,EAAE,YAAY,CAAA;IAChC;qEACiE;IACjE,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAC3D;;;;OAIG;IACH,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9E;2EACuE;IACvE,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,KAAK,MAAM,IAAI,CAAA;IAC7G;iGAC6F;IAC7F,YAAY,EAAE,YAAY,CAAA;IAC1B;0FACsF;IACtF,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAChF;sEACkE;IAClE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAC7E,qCAAqC;IACrC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAoB,EAAE,MAAkB,EAAE,EAAE,qBAAqB,GAAG,cAAc,CAgjBlI"}
|
package/dist/daemon-runtime.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { join, resolve, sep } from 'node:path';
|
|
2
2
|
import { hostname } from 'node:os';
|
|
3
3
|
import { stat } from 'node:fs/promises';
|
|
4
4
|
import { findAgent, findCheckout, fromDiaryLine, isPidAlive, isRunId, projectBranches, readLiveMetas, resolveAgentDiary } from './store/index.js';
|
|
5
5
|
import { OPENAGENT_DIR } from './openagent-dir.js';
|
|
6
|
-
import { RelayedAgents, relayRpc, remoteFacts, startRemoteAgent } from './dashboard/remote-run.js';
|
|
6
|
+
import { RelayedAgents, machineCall, relayRpc, remoteFacts, startRemoteAgent } from './dashboard/remote-run.js';
|
|
7
|
+
import { OwnProjectsAsked, elsewhereHomes, elsewhereId, elsewhereSummary, homeOf as elsewhereHomeOf, idInLineName, isElsewhereId, lineNameOf } from './dashboard/elsewhere.js';
|
|
8
|
+
import { AnswersKept, interventionsOf, namedHere } from './dashboard/machine-interventions.js';
|
|
7
9
|
import { MachineRunsKept, RUNS_WAIT_MS } from './dashboard/machine-runs.js';
|
|
8
10
|
import { ownRunsWatch } from './dashboard/runs-watch.js';
|
|
9
11
|
import { cloneProject, cloneTarget } from './clone-project.js';
|
|
@@ -12,8 +14,8 @@ import { screenInDiary } from './dashboard/screen.js';
|
|
|
12
14
|
import { dispatchRelayRpc } from './dashboard-rpc/relay-dispatch.js';
|
|
13
15
|
import { asRecorded, onMachine } from './dashboard-rpc/reads.js';
|
|
14
16
|
import { tailAgentEvents } from './dashboard-rpc/events-tail.js';
|
|
15
|
-
import { addProject, isHostName, listMachines, listProjects, nameMachine, noteSeen, projectId, readPreferences, removeProject } from './registry.js';
|
|
16
|
-
import { repositoryAddress } from './repository-address.js';
|
|
17
|
+
import { addProject, isHostName, listMachines, listProjects, nameMachine, noteProjects, noteSeen, projectId, readPreferences, removeProject } from './registry.js';
|
|
18
|
+
import { projectNameOf, repositoryAddress } from './repository-address.js';
|
|
17
19
|
import { writeHookLines } from './built-in.js';
|
|
18
20
|
import { fileBranchRepo, installProject, writeSharing } from '@openagt/agent-data';
|
|
19
21
|
import { removeProjectFiles } from './remove-files.js';
|
|
@@ -24,6 +26,8 @@ import { hasRemote } from './has-remote.js';
|
|
|
24
26
|
import { projectGitHost } from './store/git-host.js';
|
|
25
27
|
import { providedDataChanged } from './store/provided.js';
|
|
26
28
|
import { projectAddresses } from './project-address.js';
|
|
29
|
+
import { callerAtPage } from './dashboard/person.js';
|
|
30
|
+
import { machineKind, machineName } from './reached-by-line.js';
|
|
27
31
|
/**
|
|
28
32
|
* What the daemon does for a project (#393): start a run, add a project, and relay a run to and
|
|
29
33
|
* from a saved machine. Split from daemon.ts so that file reads as the daemon's lifecycle
|
|
@@ -48,6 +52,10 @@ const MAX_HOMES = 5_000;
|
|
|
48
52
|
const RUNS_ASKED_MS = 8_000;
|
|
49
53
|
/** How often the machines' runs of a project someone listens to are asked for again, to keep them followed (machine-runs.ts follows them a minute). */
|
|
50
54
|
const RUNS_FOLLOWED_MS = 30_000;
|
|
55
|
+
/** How long one of the person's computers gets to say its projects: a list does not wait on it past the first time (elsewhere.ts). */
|
|
56
|
+
const PROJECTS_ASKED_MS = 8_000;
|
|
57
|
+
/** How long one of the person's computers gets to say its Human Queue: its PRs are asked of the git host (machine-interventions.ts). */
|
|
58
|
+
const QUEUE_ASKED_MS = 15_000;
|
|
51
59
|
/** How many projects this computer clones at once for other machines; one more is told to ask again. */
|
|
52
60
|
const MAX_COMING = 3;
|
|
53
61
|
/** How many clones are remembered at once, on their way or failed. */
|
|
@@ -117,24 +125,33 @@ export function createProjectRuntime({ cwd, env, clone = cloneProject, logins =
|
|
|
117
125
|
if (saved)
|
|
118
126
|
void noteSeen(saved, at, undefined, env).catch(() => { });
|
|
119
127
|
});
|
|
120
|
-
|
|
128
|
+
// The machines' runs of the project they name `address` (`#<id>` for one of a machine's own with no address), of the
|
|
129
|
+
// ones `only` keeps: every saved machine for a project of this computer's, the one it is on for another computer's.
|
|
130
|
+
const runsAt = async (address, only = () => true) => {
|
|
121
131
|
await machineNames();
|
|
122
|
-
const address = await addressOf(path);
|
|
123
|
-
if (address === undefined)
|
|
124
|
-
return [];
|
|
125
132
|
// A machine that has not said its computer's name, or says one another machine says too, has no runs to say.
|
|
126
|
-
const asked = machines.flatMap(machine => (machine.host !== undefined && machineOf(machine.host) === machine ? [{ url: machine.url, host: machine.host, ...(machine.seenAt !== undefined ? { seenAt: machine.seenAt } : {}) }] : []));
|
|
133
|
+
const asked = machines.flatMap(machine => (only(machine) && machine.host !== undefined && machineOf(machine.host) === machine ? [{ url: machine.url, host: machine.host, ...(machine.seenAt !== undefined ? { seenAt: machine.seenAt } : {}) }] : []));
|
|
127
134
|
return asked.length > 0 ? machineRunsKept.of(asked, address) : [];
|
|
128
135
|
};
|
|
136
|
+
const machineRuns = async (path) => {
|
|
137
|
+
const address = await addressOf(path);
|
|
138
|
+
return address === undefined ? [] : runsAt(address);
|
|
139
|
+
};
|
|
140
|
+
const elsewhereRuns = async (id) => {
|
|
141
|
+
const at = await elsewhereAt(id);
|
|
142
|
+
return at ? runsAt(at.target.project, machine => machine.url === at.home.machine.url) : [];
|
|
143
|
+
};
|
|
129
144
|
// Followed while someone listens: asked for again before the machines stop being followed.
|
|
130
|
-
const followRuns = (path, changed) =>
|
|
145
|
+
const followRuns = (path, changed) => followAt(() => addressOf(path), () => machineRuns(path), changed);
|
|
146
|
+
const followElsewhereRuns = (id, changed) => followAt(async () => (await elsewhereAt(id))?.target.project, () => elsewhereRuns(id), changed);
|
|
147
|
+
const followAt = (address, read, changed) => {
|
|
131
148
|
let stopped = false;
|
|
132
149
|
let stopListening;
|
|
133
|
-
void
|
|
134
|
-
if (
|
|
135
|
-
stopListening = machineRunsKept.listen(
|
|
150
|
+
void address().then(said => {
|
|
151
|
+
if (said !== undefined && !stopped)
|
|
152
|
+
stopListening = machineRunsKept.listen(said, changed);
|
|
136
153
|
});
|
|
137
|
-
const keep = () => void
|
|
154
|
+
const keep = () => void read().catch(() => { });
|
|
138
155
|
keep();
|
|
139
156
|
const timer = setInterval(keep, RUNS_FOLLOWED_MS);
|
|
140
157
|
timer.unref();
|
|
@@ -144,6 +161,71 @@ export function createProjectRuntime({ cwd, env, clone = cloneProject, logins =
|
|
|
144
161
|
stopListening?.();
|
|
145
162
|
};
|
|
146
163
|
};
|
|
164
|
+
// The projects of the person's other computers (elsewhere.ts): each computer of the person's own,
|
|
165
|
+
// a saved machine that is no other person's, says its projects, and what it said is kept with it,
|
|
166
|
+
// so they stay listed while it is off. One whose repository is a project here is listed as this computer's.
|
|
167
|
+
// They are the owner's: a person the owner invited, whose device the door passes to this OpenAgent,
|
|
168
|
+
// is listed none and reaches none of them.
|
|
169
|
+
const ownMachines = async () => (await listMachines(undefined, env).catch(() => machines)).filter(machine => machine.owner === undefined);
|
|
170
|
+
const projectsAsked = new OwnProjectsAsked(async (machine) => {
|
|
171
|
+
const said = await machineCall(machine, 'onOwnProjects', [], PROJECTS_ASKED_MS);
|
|
172
|
+
if (!said.ok)
|
|
173
|
+
throw new Error(said.error);
|
|
174
|
+
return said.ret;
|
|
175
|
+
}, (machine, projects) => noteProjects(machine, projects, undefined, env));
|
|
176
|
+
const elsewhereProjects = async () => {
|
|
177
|
+
if (callerAtPage() !== undefined)
|
|
178
|
+
return [];
|
|
179
|
+
await projectsAsked.refresh(await ownMachines());
|
|
180
|
+
const own = await ownMachines();
|
|
181
|
+
const addresses = await Promise.all((await listProjects(undefined, env).catch(() => [])).map(record => addressOf(record.path)));
|
|
182
|
+
return elsewhereHomes(own, new Set(addresses.filter(address => address !== undefined))).map(elsewhereSummary);
|
|
183
|
+
};
|
|
184
|
+
// The Human Queues of the person's other computers (machine-interventions.ts): each says its own
|
|
185
|
+
// projects' items, named here by the project as it is listed here, one of a run there marked with
|
|
186
|
+
// its computer. None for a person the owner invited, as their projects are none.
|
|
187
|
+
const queuesAsked = new AnswersKept(async (machine) => {
|
|
188
|
+
const said = await machineCall(machine, 'onOwnInterventions', [], QUEUE_ASKED_MS);
|
|
189
|
+
if (!said.ok)
|
|
190
|
+
throw new Error(said.error);
|
|
191
|
+
return interventionsOf(said.ret);
|
|
192
|
+
});
|
|
193
|
+
const machinesQueue = async () => {
|
|
194
|
+
if (callerAtPage() !== undefined)
|
|
195
|
+
return { said: [], unread: [] };
|
|
196
|
+
const own = (await ownMachines()).filter(machine => (machine.projects ?? []).length > 0);
|
|
197
|
+
const [answers, records] = await Promise.all([queuesAsked.of(own), listProjects(undefined, env).catch(() => [])]);
|
|
198
|
+
// A project as it is listed here, by its repository's address, else by its computer and its id there: as elsewhereHomes lists them.
|
|
199
|
+
const keyOf = (machine, project) => project.address ?? `${machine.url} ${lineNameOf(project)}`;
|
|
200
|
+
const listed = new Map();
|
|
201
|
+
for (const record of records) {
|
|
202
|
+
const address = await addressOf(record.path);
|
|
203
|
+
if (address !== undefined && !listed.has(address))
|
|
204
|
+
listed.set(address, record.id);
|
|
205
|
+
}
|
|
206
|
+
for (const home of elsewhereHomes(own, new Set(listed.keys())))
|
|
207
|
+
listed.set(keyOf(home.machine, home.project), elsewhereId(home.project.id, home.machine.id));
|
|
208
|
+
const queue = { said: [], unread: [] };
|
|
209
|
+
for (const machine of own) {
|
|
210
|
+
const idHere = (theirs) => {
|
|
211
|
+
const project = machine.projects?.find(one => one.id === theirs);
|
|
212
|
+
return project && listed.get(keyOf(machine, project));
|
|
213
|
+
};
|
|
214
|
+
const said = answers.get(machine.id);
|
|
215
|
+
if (said)
|
|
216
|
+
queue.said.push(namedHere(said, idHere, { name: machineName(machine), kind: machineKind(machine).kind }));
|
|
217
|
+
else
|
|
218
|
+
queue.unread.push(...(machine.projects ?? []).flatMap(project => idHere(project.id) ?? []));
|
|
219
|
+
}
|
|
220
|
+
return queue;
|
|
221
|
+
};
|
|
222
|
+
// Another computer's project by its id here, and how a call reaches it there.
|
|
223
|
+
const elsewhereAt = async (id) => {
|
|
224
|
+
if (callerAtPage() !== undefined)
|
|
225
|
+
return undefined;
|
|
226
|
+
const home = elsewhereHomeOf(await ownMachines(), id);
|
|
227
|
+
return home && { home, target: { url: home.machine.url, key: home.machine.key, ...(home.machine.pin ? { pin: home.machine.pin } : {}), project: lineNameOf(home.project) } };
|
|
228
|
+
};
|
|
147
229
|
// A run of a project by its id: its record here, else what the saved machine it runs on said of
|
|
148
230
|
// it, for a run whose record was never shared.
|
|
149
231
|
const runOf = async (path, agentId) => (await findAgent(path, agentId).catch(() => undefined)) ?? (await machineRuns(path)).flatMap(machine => machine.runs).find(run => run.id === agentId);
|
|
@@ -157,6 +239,11 @@ export function createProjectRuntime({ cwd, env, clone = cloneProject, logins =
|
|
|
157
239
|
const homeOf = async (project, agentId) => {
|
|
158
240
|
if (!isRunId(agentId))
|
|
159
241
|
return undefined;
|
|
242
|
+
// Another computer's project: its runs are that computer's.
|
|
243
|
+
if (isElsewhereId(project)) {
|
|
244
|
+
const at = await elsewhereAt(project);
|
|
245
|
+
return at && { target: at.target, label: at.home.machine.label };
|
|
246
|
+
}
|
|
160
247
|
const key = `${project} ${agentId}`;
|
|
161
248
|
const kept = homes.get(key);
|
|
162
249
|
if (kept && kept.until > Date.now())
|
|
@@ -199,8 +286,7 @@ export function createProjectRuntime({ cwd, env, clone = cloneProject, logins =
|
|
|
199
286
|
if (relayedAgents.follows(agentId) || elsewhere())
|
|
200
287
|
return;
|
|
201
288
|
const home = await homeOf(project, agentId);
|
|
202
|
-
const
|
|
203
|
-
const agent = projectCwd ? await runOf(projectCwd, agentId) : undefined;
|
|
289
|
+
const agent = home ? await runIn(project, agentId) : undefined;
|
|
204
290
|
if (!home || !agent || relayedAgents.follows(agentId) || elsewhere())
|
|
205
291
|
return;
|
|
206
292
|
// The row starts as the record may say the run is, and the machine's own events take it from there.
|
|
@@ -212,7 +298,29 @@ export function createProjectRuntime({ cwd, env, clone = cloneProject, logins =
|
|
|
212
298
|
machineNames,
|
|
213
299
|
machineRuns,
|
|
214
300
|
followRuns,
|
|
301
|
+
elsewhere: elsewhereProjects,
|
|
302
|
+
elsewhereRuns,
|
|
303
|
+
followElsewhereRuns,
|
|
304
|
+
elsewhereHome: async (project) => {
|
|
305
|
+
const at = await elsewhereAt(project);
|
|
306
|
+
return at && { machine: at.home.machine.id, project: at.home.project };
|
|
307
|
+
},
|
|
308
|
+
bringHere: (address, bring) => bringProject(address, bring),
|
|
309
|
+
machinesQueue,
|
|
310
|
+
forward: async (project, fn, args) => {
|
|
311
|
+
const at = await elsewhereAt(project);
|
|
312
|
+
if (!at)
|
|
313
|
+
throw new Error('That project is no longer listed on any of your computers.');
|
|
314
|
+
return relayRpc(at.target, fn, args);
|
|
315
|
+
},
|
|
215
316
|
};
|
|
317
|
+
// A run of a project by its id, this computer's project or another's.
|
|
318
|
+
async function runIn(project, agentId) {
|
|
319
|
+
if (isElsewhereId(project))
|
|
320
|
+
return (await elsewhereRuns(project)).flatMap(machine => machine.runs).find(run => run.id === agentId);
|
|
321
|
+
const projectCwd = await resolveProject(project);
|
|
322
|
+
return projectCwd ? runOf(projectCwd, agentId) : undefined;
|
|
323
|
+
}
|
|
216
324
|
// The machine side of the relay (#1067 slice 2): run one whitelisted read/steer/handoff RPC against this
|
|
217
325
|
// daemon's own copy of the project the call named, for a daemon that relayed an agent here.
|
|
218
326
|
const onRelayRpc = (project, fn, args) => dispatchRelayRpc(project, fn, args);
|
|
@@ -241,6 +349,10 @@ export function createProjectRuntime({ cwd, env, clone = cloneProject, logins =
|
|
|
241
349
|
return address;
|
|
242
350
|
};
|
|
243
351
|
const projectAt = async (address) => {
|
|
352
|
+
// A project with no address is named by its id here, by the person's other computer that lists it.
|
|
353
|
+
const id = idInLineName(address);
|
|
354
|
+
if (id !== undefined)
|
|
355
|
+
return (await listProjects(undefined, env).catch(() => [])).some(record => record.id === id) ? id : undefined;
|
|
244
356
|
for (const record of await listProjects(undefined, env).catch(() => [])) {
|
|
245
357
|
if ((await addressOf(record.path)) === address)
|
|
246
358
|
return record.id;
|
|
@@ -251,62 +363,19 @@ export function createProjectRuntime({ cwd, env, clone = cloneProject, logins =
|
|
|
251
363
|
// The daemon names no tool and holds nothing about the run: no slot, no cap (a person's click is
|
|
252
364
|
// the brake), no process to stop at shutdown. A project without the line cannot start a run here.
|
|
253
365
|
const onStart = async (prompt, options = {}, targetProjectId) => {
|
|
366
|
+
if (isElsewhereId(targetProjectId))
|
|
367
|
+
return startElsewhere(prompt, options, targetProjectId);
|
|
254
368
|
const projectCwd = await resolveProject(targetProjectId);
|
|
255
369
|
if (!projectCwd)
|
|
256
370
|
return { ok: false, error: `unknown project: ${targetProjectId}` };
|
|
257
371
|
// Run on a saved machine (#1067): forward the start to its daemon, which runs the hook of its
|
|
258
372
|
// own copy of this project, and relay the run's events back. The project is named by its
|
|
259
|
-
// repository's address, the one name both machines have for it.
|
|
260
|
-
// other side does not relay onward, and `base` because a branch of this machine names nothing
|
|
261
|
-
// there (it drops both too).
|
|
373
|
+
// repository's address, the one name both machines have for it.
|
|
262
374
|
if (options.machine !== undefined) {
|
|
263
|
-
const { machine: id, base: _thisMachines, ...forwarded } = options;
|
|
264
|
-
const machine = (await listMachines(undefined, env)).find(saved => saved.id === id);
|
|
265
|
-
if (!machine)
|
|
266
|
-
return { ok: false, error: 'That machine is no longer saved. Pick another place to run.' };
|
|
267
375
|
const project = await repositoryAddress(projectCwd);
|
|
268
376
|
if (!project)
|
|
269
377
|
return { ok: false, error: 'This project has no repository address, so it cannot be sent to another machine.' };
|
|
270
|
-
|
|
271
|
-
// Another person's computer: a run there uses this person's own logins, which this server
|
|
272
|
-
// copies there first. Only a server's OpenAgent copies: a laptop's logins are made for it
|
|
273
|
-
// alone, so a laptop only looks that they are there.
|
|
274
|
-
if (machine.owner !== undefined) {
|
|
275
|
-
// Copied only once the person read that they are, and said OK: the page says so before a first run there.
|
|
276
|
-
if (env.OPENAGENT_SERVER === '1' && machine.told !== true)
|
|
277
|
-
return { ok: false, error: `Your logins are copied to @${machine.owner}'s server for a run there: say OK to that above the message box first.` };
|
|
278
|
-
const there = env.OPENAGENT_SERVER === '1' ? await copyLoginsTo({ ...target, label: machine.label }, { own: () => logins(env) }) : await loginsAreThere({ ...target, label: machine.label });
|
|
279
|
-
if (!there.ok)
|
|
280
|
-
return there;
|
|
281
|
-
}
|
|
282
|
-
const result = await startRemoteAgent(target, { prompt, options: forwarded });
|
|
283
|
-
if (!result.ok) {
|
|
284
|
-
// The one refusal the page can do something about: it has the machine clone the project, and starts again.
|
|
285
|
-
return 'noProject' in result ? { ok: false, error: `${basename(projectCwd)} is not on ${machine.label} yet.`, notThere: true } : result;
|
|
286
|
-
}
|
|
287
|
-
// The run's id is the machine's word, and from here on every call about that id goes to the
|
|
288
|
-
// machine: what the person reads of the run, and what they click and type in its browser.
|
|
289
|
-
// An id that is no run's, or that is a run of this computer's own, is not taken.
|
|
290
|
-
if (!isRunId(result.agentId) || (await findCheckout(projectCwd, result.agentId, projectBranches))) {
|
|
291
|
-
return { ok: false, error: `${machine.label} answered with a run this computer cannot follow.` };
|
|
292
|
-
}
|
|
293
|
-
// A relayed agent has no local checkout or pid, so its list row is a memory-only stub (#1077):
|
|
294
|
-
// registered here so onAgents can show it and a dashboard reload re-opens it. Never written to disk.
|
|
295
|
-
const now = new Date().toISOString();
|
|
296
|
-
const meta = {
|
|
297
|
-
status: 'running',
|
|
298
|
-
id: result.agentId,
|
|
299
|
-
startedAt: now,
|
|
300
|
-
updatedAt: now,
|
|
301
|
-
target: 'remote',
|
|
302
|
-
intent: prompt,
|
|
303
|
-
...onMachine(machine),
|
|
304
|
-
// The machine's word, as the run is: its record, which names the coding agent, never comes here.
|
|
305
|
-
...(typeof result.driver === 'string' && result.driver.length <= MAX_DRIVER_NAME ? { driver: result.driver } : {}),
|
|
306
|
-
};
|
|
307
|
-
relayedAgents.register(result.agentId, target, meta, targetProjectId ?? homeId);
|
|
308
|
-
// Only what was checked goes on to the page, not whatever else the machine answered.
|
|
309
|
-
return { ok: true, agentId: result.agentId, ...(meta.driver !== undefined ? { driver: meta.driver } : {}) };
|
|
378
|
+
return sendToMachine(prompt, options, options.machine, { id: targetProjectId ?? homeId, name: await projectNameOf(projectCwd), address: project, cwd: projectCwd });
|
|
310
379
|
}
|
|
311
380
|
// The branch to start from ends up on the line's command line: only a branch name goes there.
|
|
312
381
|
// Refused, not dropped: a run started from the main branch instead would be a silent swap.
|
|
@@ -338,6 +407,90 @@ export function createProjectRuntime({ cwd, env, clone = cloneProject, logins =
|
|
|
338
407
|
}
|
|
339
408
|
return started.ok ? { ok: true, agentId: started.id, ...(started.driver !== undefined ? { driver: started.driver } : {}) } : { ok: false, error: started.error };
|
|
340
409
|
};
|
|
410
|
+
// Send a start to a saved machine, which runs the hook of its own copy of the project and is
|
|
411
|
+
// followed from here. `machine` is stripped so the other side does not relay onward, and `base`
|
|
412
|
+
// because a branch of this machine names nothing there (it drops both too).
|
|
413
|
+
const sendToMachine = async (prompt, options, id, project) => {
|
|
414
|
+
const { machine: _id, base: _thisMachines, ...forwarded } = options;
|
|
415
|
+
const machine = (await listMachines(undefined, env)).find(saved => saved.id === id);
|
|
416
|
+
if (!machine)
|
|
417
|
+
return { ok: false, error: 'That machine is no longer saved. Pick another place to run.' };
|
|
418
|
+
const target = { url: machine.url, key: machine.key, ...(machine.pin ? { pin: machine.pin } : {}), project: project.address };
|
|
419
|
+
// Another person's computer: a run there uses this person's own logins, which this server
|
|
420
|
+
// copies there first. Only a server's OpenAgent copies: a laptop's logins are made for it
|
|
421
|
+
// alone, so a laptop only looks that they are there.
|
|
422
|
+
if (machine.owner !== undefined) {
|
|
423
|
+
// Copied only once the person read that they are, and said OK: the page says so before a first run there.
|
|
424
|
+
if (env.OPENAGENT_SERVER === '1' && machine.told !== true)
|
|
425
|
+
return { ok: false, error: `Your logins are copied to @${machine.owner}'s server for a run there: say OK to that above the message box first.` };
|
|
426
|
+
const there = env.OPENAGENT_SERVER === '1' ? await copyLoginsTo({ ...target, label: machine.label }, { own: () => logins(env) }) : await loginsAreThere({ ...target, label: machine.label });
|
|
427
|
+
if (!there.ok)
|
|
428
|
+
return there;
|
|
429
|
+
}
|
|
430
|
+
const result = await startRemoteAgent(target, { prompt, options: forwarded });
|
|
431
|
+
if (!result.ok) {
|
|
432
|
+
// The one refusal the page can do something about: it has the machine clone the project, and starts again.
|
|
433
|
+
return 'noProject' in result ? { ok: false, error: `${project.name} is not on ${machine.label} yet.`, notThere: true } : result;
|
|
434
|
+
}
|
|
435
|
+
// The run's id is the machine's word, and from here on every call about that id goes to the
|
|
436
|
+
// machine: what the person reads of the run, and what they click and type in its browser.
|
|
437
|
+
// An id that is no run's, or that is a run of this computer's own, is not taken.
|
|
438
|
+
if (!isRunId(result.agentId) || (project.cwd !== undefined && (await findCheckout(project.cwd, result.agentId, projectBranches)))) {
|
|
439
|
+
return { ok: false, error: `${machine.label} answered with a run this computer cannot follow.` };
|
|
440
|
+
}
|
|
441
|
+
return followSent(result.agentId, result.driver, prompt, machine, target, project.id);
|
|
442
|
+
};
|
|
443
|
+
// A run this computer sent to a machine, followed from here as a run of the project.
|
|
444
|
+
const followSent = (agentId, driver, prompt, machine, target, project) => {
|
|
445
|
+
// A relayed agent has no local checkout or pid, so its list row is a memory-only stub (#1077):
|
|
446
|
+
// registered here so onAgents can show it and a dashboard reload re-opens it. Never written to disk.
|
|
447
|
+
const now = new Date().toISOString();
|
|
448
|
+
const meta = {
|
|
449
|
+
status: 'running',
|
|
450
|
+
id: agentId,
|
|
451
|
+
startedAt: now,
|
|
452
|
+
updatedAt: now,
|
|
453
|
+
target: 'remote',
|
|
454
|
+
intent: prompt,
|
|
455
|
+
...onMachine(machine),
|
|
456
|
+
// The machine's word, as the run is: its record, which names the coding agent, never comes here.
|
|
457
|
+
...(typeof driver === 'string' && driver.length <= MAX_DRIVER_NAME ? { driver } : {}),
|
|
458
|
+
};
|
|
459
|
+
relayedAgents.register(agentId, target, meta, project);
|
|
460
|
+
// Only what was checked goes on to the page, not whatever else the machine answered.
|
|
461
|
+
return { ok: true, agentId, ...(meta.driver !== undefined ? { driver: meta.driver } : {}) };
|
|
462
|
+
};
|
|
463
|
+
// A project only another computer of the person's has (elsewhere.ts). On that computer, the run
|
|
464
|
+
// starts there as its own page starts one: in the project as it stands there, from the branch
|
|
465
|
+
// picked among its own. On this computer, in its copy here once there is one: the page has it
|
|
466
|
+
// cloned when there is none, and is told the project the run started in. On any other, as a
|
|
467
|
+
// project of this computer's is sent there, by its address.
|
|
468
|
+
const startElsewhere = async (prompt, options, id) => {
|
|
469
|
+
const at = await elsewhereAt(id);
|
|
470
|
+
if (!at)
|
|
471
|
+
return { ok: false, error: 'That project is no longer listed on any of your computers.' };
|
|
472
|
+
const { home, target } = at;
|
|
473
|
+
const { address, name } = home.project;
|
|
474
|
+
if (options.machine === home.machine.id) {
|
|
475
|
+
const { machine: _there, ...there } = options;
|
|
476
|
+
const said = await relayRpc(target, 'sendStart', [null, prompt, there]).then(answer => answer, (err) => ({ ok: false, error: `could not reach ${home.machine.label}: ${err instanceof Error ? err.message : String(err)}` }));
|
|
477
|
+
if (!said.ok)
|
|
478
|
+
return { ok: false, error: typeof said.error === 'string' ? said.error : `${home.machine.label} did not start the run.` };
|
|
479
|
+
if (!isRunId(said.agentId))
|
|
480
|
+
return { ok: false, error: `${home.machine.label} answered with a run this computer cannot follow.` };
|
|
481
|
+
return followSent(said.agentId, said.driver, prompt, home.machine, target, id);
|
|
482
|
+
}
|
|
483
|
+
if (address === undefined)
|
|
484
|
+
return { ok: false, error: `${name} has no repository address, so it runs on ${home.machine.label} only.` };
|
|
485
|
+
if (options.machine === undefined) {
|
|
486
|
+
const here = await projectAt(address);
|
|
487
|
+
if (here === undefined)
|
|
488
|
+
return { ok: false, error: `${name} is not on this computer yet.`, notThere: true };
|
|
489
|
+
const started = await onStart(prompt, options, here);
|
|
490
|
+
return started.ok ? { ...started, projectId: here } : started;
|
|
491
|
+
}
|
|
492
|
+
return sendToMachine(prompt, options, options.machine, { id, name, address });
|
|
493
|
+
};
|
|
341
494
|
// Add a project (#396): install the repo, then register it so it appears in the Projects
|
|
342
495
|
// list. installProject is idempotent (an already-activated repo is a no-op success). `share`
|
|
343
496
|
// is the person's answer on the agents' records, written before the project is registered:
|