@openagt/dashboard 0.10.0 → 0.11.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/README.md +1 -6
- package/dist/built-in.d.ts +8 -1
- package/dist/built-in.d.ts.map +1 -1
- package/dist/built-in.js +12 -3
- package/dist/built-in.js.map +1 -1
- package/dist/cli.d.ts +4 -10
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +11 -67
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +2 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +3 -4
- package/dist/client.js.map +1 -1
- package/dist/daemon-runtime.d.ts +12 -12
- package/dist/daemon-runtime.d.ts.map +1 -1
- package/dist/daemon-runtime.js +96 -35
- package/dist/daemon-runtime.js.map +1 -1
- package/dist/daemon.d.ts +3 -14
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +15 -26
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/bridge-endpoints.d.ts +5 -5
- package/dist/dashboard/bridge-endpoints.js +5 -5
- package/dist/dashboard/http.d.ts +1 -1
- package/dist/dashboard/http.js +1 -1
- package/dist/dashboard/machine-call.d.ts +10 -0
- package/dist/dashboard/machine-call.d.ts.map +1 -0
- package/dist/dashboard/machine-call.js +86 -0
- package/dist/dashboard/machine-call.js.map +1 -0
- package/dist/dashboard/relay-endpoints.d.ts +26 -17
- package/dist/dashboard/relay-endpoints.d.ts.map +1 -1
- package/dist/dashboard/relay-endpoints.js +70 -27
- package/dist/dashboard/relay-endpoints.js.map +1 -1
- package/dist/dashboard/remote-run.d.ts +77 -32
- package/dist/dashboard/remote-run.d.ts.map +1 -1
- package/dist/dashboard/remote-run.js +120 -42
- package/dist/dashboard/remote-run.js.map +1 -1
- package/dist/dashboard/rpc-serve.d.ts +19 -25
- package/dist/dashboard/rpc-serve.d.ts.map +1 -1
- package/dist/dashboard/rpc-serve.js +11 -22
- package/dist/dashboard/rpc-serve.js.map +1 -1
- package/dist/dashboard/screen.d.ts +53 -0
- package/dist/dashboard/screen.d.ts.map +1 -0
- package/dist/dashboard/screen.js +175 -0
- package/dist/dashboard/screen.js.map +1 -0
- package/dist/dashboard/server.d.ts +18 -19
- package/dist/dashboard/server.d.ts.map +1 -1
- package/dist/dashboard/server.js +52 -81
- package/dist/dashboard/server.js.map +1 -1
- package/dist/dashboard/types.d.ts +6 -14
- package/dist/dashboard/types.d.ts.map +1 -1
- package/dist/dashboard/web-start-endpoints.d.ts +2 -2
- package/dist/dashboard/web-start-endpoints.js +1 -1
- package/dist/dashboard-bundle/assets/main-9Xb8Ao4p.css +2 -0
- package/dist/dashboard-bundle/assets/main-DTyyQ0jM.js +140 -0
- package/dist/dashboard-bundle/assets/{module-gKz-ZvkG.js → module-DKd-4BTU.js} +4 -4
- package/dist/dashboard-bundle/host/module.js +1 -1
- package/dist/dashboard-bundle/index.html +3 -3
- package/dist/dashboard-rpc/context.d.ts +4 -4
- package/dist/dashboard-rpc/context.js +5 -5
- package/dist/dashboard-rpc/context.js.map +1 -1
- package/dist/dashboard-rpc/control.d.ts +1 -1
- package/dist/dashboard-rpc/control.js +7 -7
- package/dist/dashboard-rpc/control.js.map +1 -1
- package/dist/dashboard-rpc/events.d.ts +1 -1
- package/dist/dashboard-rpc/events.js +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 +3 -3
- package/dist/dashboard-rpc/index.js.map +1 -1
- package/dist/dashboard-rpc/machines.d.ts +52 -0
- package/dist/dashboard-rpc/machines.d.ts.map +1 -0
- package/dist/dashboard-rpc/machines.js +82 -0
- package/dist/dashboard-rpc/machines.js.map +1 -0
- package/dist/dashboard-rpc/modules.d.ts +1 -1
- package/dist/dashboard-rpc/modules.js +2 -2
- package/dist/dashboard-rpc/modules.js.map +1 -1
- package/dist/dashboard-rpc/projects.d.ts +2 -0
- package/dist/dashboard-rpc/projects.d.ts.map +1 -1
- package/dist/dashboard-rpc/projects.js +3 -2
- package/dist/dashboard-rpc/projects.js.map +1 -1
- package/dist/dashboard-rpc/reads.d.ts +3 -4
- package/dist/dashboard-rpc/reads.d.ts.map +1 -1
- package/dist/dashboard-rpc/reads.js +5 -6
- package/dist/dashboard-rpc/reads.js.map +1 -1
- package/dist/dashboard-rpc/relay-agent.d.ts +3 -3
- package/dist/dashboard-rpc/relay-agent.js +3 -3
- package/dist/dashboard-rpc/relay-dispatch.d.ts +4 -4
- package/dist/dashboard-rpc/relay-dispatch.d.ts.map +1 -1
- package/dist/dashboard-rpc/relay-dispatch.js +7 -7
- package/dist/dashboard-rpc/relay-dispatch.js.map +1 -1
- package/dist/dashboard-rpc/test-context.js +1 -1
- package/dist/dashboard-rpc/test-context.js.map +1 -1
- package/dist/events.d.ts +4 -3
- package/dist/events.d.ts.map +1 -1
- package/dist/loopback-host.d.ts +3 -5
- package/dist/loopback-host.d.ts.map +1 -1
- package/dist/loopback-host.js +3 -5
- package/dist/loopback-host.js.map +1 -1
- package/dist/machine-link.d.ts +21 -0
- package/dist/machine-link.d.ts.map +1 -0
- package/dist/machine-link.js +20 -0
- package/dist/machine-link.js.map +1 -0
- package/dist/module-server.d.ts +1 -1
- package/dist/module-types/dashboard/lib/draft-handoff.d.ts +5 -9
- package/dist/module-types/dashboard/module/index.d.ts +45 -0
- package/dist/module-types/src/built-in.d.ts +8 -1
- package/dist/module-types/src/client.d.ts +2 -1
- package/dist/module-types/src/dashboard/bridge-endpoints.d.ts +5 -5
- package/dist/module-types/src/dashboard/http.d.ts +1 -1
- package/dist/module-types/src/dashboard/machine-call.d.ts +9 -0
- package/dist/module-types/src/dashboard/remote-run.d.ts +77 -32
- package/dist/module-types/src/dashboard/rpc-serve.d.ts +19 -25
- package/dist/module-types/src/dashboard/types.d.ts +6 -14
- package/dist/module-types/src/dashboard-rpc/context.d.ts +4 -4
- package/dist/module-types/src/dashboard-rpc/control.d.ts +1 -1
- package/dist/module-types/src/dashboard-rpc/events.d.ts +1 -1
- package/dist/module-types/src/dashboard-rpc/index.d.ts +1 -1
- package/dist/module-types/src/dashboard-rpc/machines.d.ts +51 -0
- package/dist/module-types/src/dashboard-rpc/modules.d.ts +1 -1
- package/dist/module-types/src/dashboard-rpc/projects.d.ts +2 -0
- package/dist/module-types/src/dashboard-rpc/reads.d.ts +3 -4
- package/dist/module-types/src/dashboard-rpc/relay-agent.d.ts +3 -3
- package/dist/module-types/src/events.d.ts +4 -3
- package/dist/module-types/src/loopback-host.d.ts +3 -5
- package/dist/module-types/src/machine-link.d.ts +20 -0
- package/dist/module-types/src/registry.d.ts +59 -16
- package/dist/module-types/src/repository-address.d.ts +22 -0
- package/dist/module-types/src/screens.d.ts +13 -0
- package/dist/module-types/src/store/agent-store.d.ts +2 -2
- package/dist/module-types/src/version.d.ts +1 -0
- package/dist/package-services.d.ts +27 -0
- package/dist/package-services.d.ts.map +1 -0
- package/dist/package-services.js +62 -0
- package/dist/package-services.js.map +1 -0
- package/dist/registry.d.ts +59 -16
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +91 -20
- package/dist/registry.js.map +1 -1
- package/dist/repository-address.d.ts +23 -0
- package/dist/repository-address.d.ts.map +1 -0
- package/dist/repository-address.js +38 -0
- package/dist/repository-address.js.map +1 -0
- package/dist/screens.d.ts +14 -0
- package/dist/screens.d.ts.map +1 -0
- package/dist/screens.js +40 -0
- package/dist/screens.js.map +1 -0
- package/dist/store/agent-store.d.ts +2 -2
- package/dist/store/agent-store.d.ts.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +26 -0
- package/dist/version.js.map +1 -0
- package/package.json +13 -10
- package/dist/dashboard-bundle/assets/main-Q7JMdMJI.css +0 -2
- package/dist/dashboard-bundle/assets/main-fDZWGOub.js +0 -140
- package/dist/dashboard-rpc/devices.d.ts +0 -9
- package/dist/dashboard-rpc/devices.d.ts.map +0 -1
- package/dist/dashboard-rpc/devices.js +0 -12
- package/dist/dashboard-rpc/devices.js.map +0 -1
- package/dist/install.d.ts +0 -31
- package/dist/install.d.ts.map +0 -1
- package/dist/install.js +0 -54
- package/dist/install.js.map +0 -1
- package/dist/module-types/src/dashboard-rpc/devices.d.ts +0 -8
- package/dist/module-types/src/openagent-gitignore.d.ts +0 -11
- package/dist/openagent-gitignore.d.ts +0 -12
- package/dist/openagent-gitignore.d.ts.map +0 -1
- package/dist/openagent-gitignore.js +0 -19
- package/dist/openagent-gitignore.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-runtime.js","sourceRoot":"","sources":["../src/daemon-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daemon-runtime.js","sourceRoot":"","sources":["../src/daemon-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { isLoopbackHost } from './loopback-host.js';
|
|
2
1
|
import { type BridgeBrowser, type BridgeBrowserOptions } from './bridge-browser.js';
|
|
2
|
+
import { type PackageServices, type PackageServicesOptions } from './package-services.js';
|
|
3
3
|
/**
|
|
4
4
|
* The dashboard process (#302). It is a pure projection of files: a run's tool keeps the run's
|
|
5
5
|
* card and diary in the run's checkout, and the dashboard *tails* them, pushing each new line to
|
|
@@ -15,14 +15,6 @@ import { type BridgeBrowser, type BridgeBrowserOptions } from './bridge-browser.
|
|
|
15
15
|
*/
|
|
16
16
|
/** The default dashboard port the daemon binds. */
|
|
17
17
|
export declare const DEFAULT_DAEMON_PORT = 4200;
|
|
18
|
-
/** The default bind host (#1051): localhost only, so the daemon is unreachable off the machine. */
|
|
19
|
-
export declare const DEFAULT_DAEMON_HOST = "127.0.0.1";
|
|
20
|
-
/**
|
|
21
|
-
* True when `host` is a loopback address the browser reaches without leaving the machine (#1051).
|
|
22
|
-
* Defined in its own leaf module so the dashboard's RPC mount can share the one definition without
|
|
23
|
-
* importing this one back (a cycle); re-exported here for the callers that already had it.
|
|
24
|
-
*/
|
|
25
|
-
export { isLoopbackHost };
|
|
26
18
|
/** Where the dashboard came up, reported to {@link RunDaemonOptions.onListening}. */
|
|
27
19
|
export interface DaemonState {
|
|
28
20
|
/** The daemon process id. */
|
|
@@ -33,8 +25,6 @@ export interface DaemonState {
|
|
|
33
25
|
url: string;
|
|
34
26
|
/** ISO timestamp the daemon started. */
|
|
35
27
|
startedAt: string;
|
|
36
|
-
/** The host the dashboard is bound to (#1051). */
|
|
37
|
-
host?: string;
|
|
38
28
|
}
|
|
39
29
|
/** True when a process with this id is still running (best-effort, signal 0). The store's
|
|
40
30
|
* {@link isPidAlive} under the daemon's historical public name -- the two were byte-identical. */
|
|
@@ -43,9 +33,6 @@ export { isPidAlive as isProcessAlive } from './store/index.js';
|
|
|
43
33
|
export interface RunDaemonOptions {
|
|
44
34
|
/** Port to bind. Default {@link DEFAULT_DAEMON_PORT}; pass `0` for an ephemeral port. */
|
|
45
35
|
port?: number;
|
|
46
|
-
/** Host to bind (#1051). Default {@link DEFAULT_DAEMON_HOST}; a non-loopback address generates and
|
|
47
|
-
* requires the shared token, and every route is then gated behind it. */
|
|
48
|
-
host?: string;
|
|
49
36
|
/** Shut the daemon down when this aborts (in addition to SIGINT/SIGTERM). For tests. */
|
|
50
37
|
signal?: AbortSignal;
|
|
51
38
|
/** Env the registry is read from. Default `process.env`; injectable for tests. */
|
|
@@ -54,6 +41,8 @@ export interface RunDaemonOptions {
|
|
|
54
41
|
onListening?: (state: DaemonState) => void;
|
|
55
42
|
/** How the bridge browser is launched (#1332); default the real Chrome for Testing. For tests. */
|
|
56
43
|
bridgeBrowser?: (opts: BridgeBrowserOptions) => Promise<BridgeBrowser>;
|
|
44
|
+
/** How the services of OpenAgent's own packages are started; default each as its own process. For tests. */
|
|
45
|
+
packageServices?: (opts: PackageServicesOptions) => PackageServices;
|
|
57
46
|
}
|
|
58
47
|
/**
|
|
59
48
|
* The daemon body, run in the foreground by bare `openagent`. Serves the built dashboard bundle
|
package/dist/daemon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAaA,OAAO,EAA4D,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAG7I,OAAO,EAAwB,KAAK,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAI/G;;;;;;;;;;;;GAYG;AAEH,mDAAmD;AACnD,eAAO,MAAM,mBAAmB,OAAO,CAAA;AAEvC,qFAAqF;AACrF,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAA;CAClB;AAOD;kGACkG;AAClG,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAE/D,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wFAAwF;IACxF,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,kFAAkF;IAClF,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,iGAAiG;IACjG,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IAC1C,kGAAkG;IAClG,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IACtE,4GAA4G;IAC5G,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,eAAe,CAAA;CACpE;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2HvF"}
|
package/dist/daemon.js
CHANGED
|
@@ -8,12 +8,13 @@ import { defaultModelsSource } from './dashboard/models.js';
|
|
|
8
8
|
import { startBackgroundServices } from './daemon-services.js';
|
|
9
9
|
import { projectErrorStore } from './project-errors.js';
|
|
10
10
|
import { resolveDashboardBundle } from './dashboard/bundle.js';
|
|
11
|
-
import {
|
|
12
|
-
import { isLoopbackHost } from './loopback-host.js';
|
|
11
|
+
import { ensureBridgeToken, listProjects, nodeRegistryFs, readPreferences, registryPreferencesStore } from './registry.js';
|
|
13
12
|
import { bridgeSessionsFrom } from './dashboard/bridge-sessions.js';
|
|
14
13
|
import { bridgeQuestions } from './dashboard/bridge-store.js';
|
|
15
14
|
import { bridgeBrowserDir, bridgeBrowserOwner, startBridgeBrowser } from './bridge-browser.js';
|
|
16
15
|
import { runProjectHooks } from './project-hooks.js';
|
|
16
|
+
import { builtInServices } from './built-in.js';
|
|
17
|
+
import { startPackageServices } from './package-services.js';
|
|
17
18
|
import { readAllAgents } from './store/index.js';
|
|
18
19
|
/**
|
|
19
20
|
* The dashboard process (#302). It is a pure projection of files: a run's tool keeps the run's
|
|
@@ -30,14 +31,6 @@ import { readAllAgents } from './store/index.js';
|
|
|
30
31
|
*/
|
|
31
32
|
/** The default dashboard port the daemon binds. */
|
|
32
33
|
export const DEFAULT_DAEMON_PORT = 4200;
|
|
33
|
-
/** The default bind host (#1051): localhost only, so the daemon is unreachable off the machine. */
|
|
34
|
-
export const DEFAULT_DAEMON_HOST = '127.0.0.1';
|
|
35
|
-
/**
|
|
36
|
-
* True when `host` is a loopback address the browser reaches without leaving the machine (#1051).
|
|
37
|
-
* Defined in its own leaf module so the dashboard's RPC mount can share the one definition without
|
|
38
|
-
* importing this one back (a cycle); re-exported here for the callers that already had it.
|
|
39
|
-
*/
|
|
40
|
-
export { isLoopbackHost };
|
|
41
34
|
/** The `.openagent/` directory for a workspace. */
|
|
42
35
|
function daemonDir(cwd) {
|
|
43
36
|
return join(cwd, OPENAGENT_DIR);
|
|
@@ -53,23 +46,16 @@ export { isPidAlive as isProcessAlive } from './store/index.js';
|
|
|
53
46
|
*/
|
|
54
47
|
export async function runDaemon(cwd, opts = {}) {
|
|
55
48
|
const port = opts.port ?? DEFAULT_DAEMON_PORT;
|
|
56
|
-
const host = opts.host ?? DEFAULT_DAEMON_HOST;
|
|
57
49
|
const env = opts.env ?? process.env;
|
|
58
|
-
// #1051: a non-loopback bind reaches the network, where a daemon that spawns processes is RCE for
|
|
59
|
-
// anyone who finds the port, so generate + persist the shared token the request guard requires. A
|
|
60
|
-
// loopback bind needs none, so the local zero-config path stays byte-identical.
|
|
61
|
-
const token = isLoopbackHost(host) ? undefined : await ensureDaemonToken(undefined, env);
|
|
62
50
|
// The browser bridge (#1237). Opt-in, because it opens the daemon's one route reachable from
|
|
63
|
-
// another origin
|
|
64
|
-
// guard the same daemon, so a second secret would be another thing to rotate and leak without
|
|
65
|
-
// narrowing anything. On a loopback bind that secret may not exist yet, hence ensure, not read.
|
|
51
|
+
// another origin, behind a key of its own. The key may not exist yet, hence ensure, not read.
|
|
66
52
|
const bridgeOn = (await readPreferences(undefined, env).catch(() => ({}))).bridge === true;
|
|
67
|
-
const bridgeToken = bridgeOn ? await
|
|
53
|
+
const bridgeToken = bridgeOn ? await ensureBridgeToken(undefined, env) : undefined;
|
|
68
54
|
// The project's own `.openagent/` — where its hooks file sits, and where a run's tool keeps
|
|
69
55
|
// the run's card and diary inside the run's checkout. Created up front so the daemon works as the
|
|
70
56
|
// very first command in a fresh workspace, before any run has made the directory.
|
|
71
57
|
await mkdir(daemonDir(cwd), { recursive: true });
|
|
72
|
-
// Everything the dashboard drives per project (a run's start, project install, the
|
|
58
|
+
// Everything the dashboard drives per project (a run's start, project install, the machine
|
|
73
59
|
// relay) lives in the runtime, so this body stays about the daemon's own lifecycle.
|
|
74
60
|
const runtime = createProjectRuntime({ cwd, env });
|
|
75
61
|
// Known only once the dashboard listens; the bridge browser is told it (#1332).
|
|
@@ -99,7 +85,6 @@ export async function runDaemon(cwd, opts = {}) {
|
|
|
99
85
|
return (opts.bridgeBrowser ?? (o => startBridgeBrowser(o)))({ daemonUrl, token: bridgeToken, dir: bridgeBrowserDir(env), report });
|
|
100
86
|
}, console.log);
|
|
101
87
|
const dashboard = await startDashboard({
|
|
102
|
-
host,
|
|
103
88
|
port,
|
|
104
89
|
quota,
|
|
105
90
|
// Which models each coding agent offers: asked on the menu's first read, then kept.
|
|
@@ -107,12 +92,13 @@ export async function runDaemon(cwd, opts = {}) {
|
|
|
107
92
|
onStart: runtime.onStart,
|
|
108
93
|
onAddProject: runtime.onAddProject,
|
|
109
94
|
onRemoveProject: runtime.onRemoveProject,
|
|
110
|
-
// Relay an agent to/from a
|
|
111
|
-
// is relaying, `remote` lets the read RPCs forward a remote agent's reads/steer/push to its
|
|
95
|
+
// Relay an agent to/from a saved machine (#1067): the events source streams an agent this daemon
|
|
96
|
+
// is relaying, `remote` lets the read RPCs forward a remote agent's reads/steer/push to its machine
|
|
112
97
|
// (slice 2), and the `/_relay/*` endpoints let another daemon run + read + steer a session here.
|
|
113
98
|
eventsSource: runtime.remoteEventsSource,
|
|
114
99
|
remote: runtime.remoteAgents,
|
|
115
|
-
relay: { tailEvents: runtime.tailRelayEvents, rpc: runtime.onRelayRpc },
|
|
100
|
+
relay: { project: runtime.projectAt, tailEvents: runtime.tailRelayEvents, rpc: runtime.onRelayRpc },
|
|
101
|
+
screen: runtime.screenOf,
|
|
116
102
|
// The browser bridge (#1237): absent unless the preference is on, which 404s every route.
|
|
117
103
|
...(bridgeToken ? { bridgeToken, bridgeSessions: () => listBridgeSessions(env) } : {}),
|
|
118
104
|
// The bridge browser follows its switch (#1332): on launches it, off closes it, without a restart.
|
|
@@ -124,13 +110,12 @@ export async function runDaemon(cwd, opts = {}) {
|
|
|
124
110
|
}),
|
|
125
111
|
projectErrors: projectErrors.read,
|
|
126
112
|
bridgeBrowser,
|
|
127
|
-
...(token ? { token } : {}),
|
|
128
113
|
...(clientBundleDir ? { clientBundleDir } : {}),
|
|
129
114
|
});
|
|
130
115
|
daemonUrl = dashboard.url;
|
|
131
116
|
try {
|
|
132
117
|
const actualPort = Number(new URL(dashboard.url).port) || port;
|
|
133
|
-
opts.onListening?.({ pid: process.pid, port: actualPort,
|
|
118
|
+
opts.onListening?.({ pid: process.pid, port: actualPort, url: dashboard.url, startedAt: new Date().toISOString() });
|
|
134
119
|
}
|
|
135
120
|
catch (err) {
|
|
136
121
|
// Startup failed after the port was bound. Tear the server down, or it keeps the event loop
|
|
@@ -149,6 +134,9 @@ export async function runDaemon(cwd, opts = {}) {
|
|
|
149
134
|
for (const record of await listProjects(undefined, env).catch(() => [])) {
|
|
150
135
|
await runProjectHooks(record.path, 'open', { log: console.log });
|
|
151
136
|
}
|
|
137
|
+
// The services of OpenAgent's own packages: each runs for as long as the daemon does, and is
|
|
138
|
+
// told the daemon's address.
|
|
139
|
+
const packageServices = (opts.packageServices ?? startPackageServices)({ commands: await builtInServices().catch(() => []), url: dashboard.url, env, log: console.log });
|
|
152
140
|
// Everything that runs in the background beside serving the dashboard: the data sync and the
|
|
153
141
|
// cloud sweeps.
|
|
154
142
|
const services = startBackgroundServices({
|
|
@@ -157,6 +145,7 @@ export async function runDaemon(cwd, opts = {}) {
|
|
|
157
145
|
log: console.log,
|
|
158
146
|
});
|
|
159
147
|
await waitForShutdown(opts.signal);
|
|
148
|
+
await packageServices.stop();
|
|
160
149
|
await services.quiesce();
|
|
161
150
|
// Each project's close hooks (#1774), the counterpart of the open hooks above. A run in flight
|
|
162
151
|
// is not the daemon's process: it goes on to its end, and the next dashboard shows it.
|
package/dist/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAkB,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,wBAAwB,EAAoB,MAAM,eAAe,CAAA;AAC5I,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,11 @@ export type { BridgeOption, BridgeQuestion } from './bridge-question.js';
|
|
|
5
5
|
* The browser bridge (#1237): the one endpoint an extension running in the user's own Claude
|
|
6
6
|
* session posts to, so a question a cloud agent is parked on becomes visible in the dashboard.
|
|
7
7
|
*
|
|
8
|
-
* **Why this route carries its own token, unlike every other one.**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
8
|
+
* **Why this route carries its own token, unlike every other one.** What protects the daemon,
|
|
9
|
+
* which listens on its own computer only, is the same-origin check on `/_rpc`: a page on another
|
|
10
|
+
* origin is refused outright. This route is the first that is *meant* to be reached from another
|
|
11
|
+
* origin, so that check does not protect it, and it demands `Authorization: Bearer <bridgeToken>`
|
|
12
|
+
* unconditionally instead.
|
|
13
13
|
*
|
|
14
14
|
* **No CORS headers, on purpose.** An extension's service worker holding `host_permissions`
|
|
15
15
|
* fetches without a preflight, so the bridge does not need `Access-Control-Allow-Origin` and
|
|
@@ -4,11 +4,11 @@ import { end, readPost, requireGet, sendJson } from './http.js';
|
|
|
4
4
|
* The browser bridge (#1237): the one endpoint an extension running in the user's own Claude
|
|
5
5
|
* session posts to, so a question a cloud agent is parked on becomes visible in the dashboard.
|
|
6
6
|
*
|
|
7
|
-
* **Why this route carries its own token, unlike every other one.**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
7
|
+
* **Why this route carries its own token, unlike every other one.** What protects the daemon,
|
|
8
|
+
* which listens on its own computer only, is the same-origin check on `/_rpc`: a page on another
|
|
9
|
+
* origin is refused outright. This route is the first that is *meant* to be reached from another
|
|
10
|
+
* origin, so that check does not protect it, and it demands `Authorization: Bearer <bridgeToken>`
|
|
11
|
+
* unconditionally instead.
|
|
12
12
|
*
|
|
13
13
|
* **No CORS headers, on purpose.** An extension's service worker holding `host_permissions`
|
|
14
14
|
* fetches without a preflight, so the bridge does not need `Access-Control-Allow-Origin` and
|
package/dist/dashboard/http.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
2
|
/**
|
|
3
3
|
* The plumbing every one of the daemon's non-RPC HTTP surfaces shares: the browser bridge
|
|
4
|
-
* (`/_bridge`), the web-start queue (`/_web-start`) and the
|
|
4
|
+
* (`/_bridge`), the web-start queue (`/_web-start`) and the machine relay (`/_relay`).
|
|
5
5
|
*
|
|
6
6
|
* All three answer plain-text statuses, JSON payloads, and read capped JSON request bodies, and
|
|
7
7
|
* each carried its own copy — two body readers that differed only in which message they rejected
|
package/dist/dashboard/http.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The plumbing every one of the daemon's non-RPC HTTP surfaces shares: the browser bridge
|
|
3
|
-
* (`/_bridge`), the web-start queue (`/_web-start`) and the
|
|
3
|
+
* (`/_bridge`), the web-start queue (`/_web-start`) and the machine relay (`/_relay`).
|
|
4
4
|
*
|
|
5
5
|
* All three answer plain-text statuses, JSON payloads, and read capped JSON request bodies, and
|
|
6
6
|
* each carried its own copy — two body readers that differed only in which message they rejected
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** What a call says when the machine at the address shows another key than the one it was added with. */
|
|
2
|
+
export declare const NOT_THE_MACHINE = "what answers at this address is not the machine that was added: add the machine again, with a new link";
|
|
3
|
+
export interface MachineCall {
|
|
4
|
+
method?: string;
|
|
5
|
+
headers?: Record<string, string>;
|
|
6
|
+
body?: string;
|
|
7
|
+
signal?: AbortSignal;
|
|
8
|
+
}
|
|
9
|
+
export declare function machineFetch(url: string, pin: string | undefined, init?: MachineCall): Promise<Response>;
|
|
10
|
+
//# sourceMappingURL=machine-call.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machine-call.d.ts","sourceRoot":"","sources":["../../src/dashboard/machine-call.ts"],"names":[],"mappings":"AAuBA,yGAAyG;AACzG,eAAO,MAAM,eAAe,2GAA2G,CAAA;AAKvI,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAwD5G"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { request } from 'node:https';
|
|
3
|
+
import { isIP } from 'node:net';
|
|
4
|
+
import { Readable } from 'node:stream';
|
|
5
|
+
import { connect } from 'node:tls';
|
|
6
|
+
/**
|
|
7
|
+
* One call to a saved machine. A machine reached over HTTPS whose link carried what its key is
|
|
8
|
+
* known by is known by that key alone: the connection is made, the key the machine shows is
|
|
9
|
+
* compared, and only then is anything sent, so a key and a prompt never reach whoever holds the
|
|
10
|
+
* machine's address next. The key stays when the machine renews its certificate, and a
|
|
11
|
+
* certificate that ran out while its office could not be reached does not cut the machine off.
|
|
12
|
+
*
|
|
13
|
+
* Any other machine (one on the same Wi-Fi, over plain HTTP) is called as it always was. Neither
|
|
14
|
+
* kind of call follows a redirect.
|
|
15
|
+
*/
|
|
16
|
+
/** What a key is known by: the SHA-256 of its public half, URL-safe. */
|
|
17
|
+
function fingerprintOf(socket) {
|
|
18
|
+
const shown = socket.getPeerX509Certificate();
|
|
19
|
+
return shown && createHash('sha256').update(shown.publicKey.export({ type: 'spki', format: 'der' })).digest('base64url');
|
|
20
|
+
}
|
|
21
|
+
/** What a call says when the machine at the address shows another key than the one it was added with. */
|
|
22
|
+
export const NOT_THE_MACHINE = 'what answers at this address is not the machine that was added: add the machine again, with a new link';
|
|
23
|
+
/** How long a machine gets to show its key once it took the connection. */
|
|
24
|
+
const HANDSHAKE_MS = 10_000;
|
|
25
|
+
export function machineFetch(url, pin, init = {}) {
|
|
26
|
+
const target = new URL(url);
|
|
27
|
+
if (target.protocol !== 'https:' || pin === undefined)
|
|
28
|
+
return fetch(url, { ...init, redirect: 'error' });
|
|
29
|
+
return new Promise((resolve, reject) => {
|
|
30
|
+
const host = target.hostname.replace(/^\[|\]$/g, '');
|
|
31
|
+
const signal = init.signal;
|
|
32
|
+
const givenUp = () => (signal?.reason instanceof Error ? signal.reason : new Error('the call was given up on'));
|
|
33
|
+
// A call given up on before the machine took the connection ends here: the request itself
|
|
34
|
+
// says nothing until it has a connection.
|
|
35
|
+
signal?.addEventListener('abort', () => reject(givenUp()), { once: true });
|
|
36
|
+
const req = request(target, {
|
|
37
|
+
method: init.method ?? 'GET',
|
|
38
|
+
headers: init.headers ?? {},
|
|
39
|
+
...(signal ? { signal } : {}),
|
|
40
|
+
// The connection is made here, by no agent, and handed over only once the machine has
|
|
41
|
+
// shown the key it is known by: one connection for one call.
|
|
42
|
+
createConnection: (_options, handOver) => {
|
|
43
|
+
const socket = connect({ host, port: Number(target.port) || 443, ...(isIP(host) ? {} : { servername: host }), rejectUnauthorized: false });
|
|
44
|
+
// The connection goes with the call: one that is given up on, and one a machine takes
|
|
45
|
+
// and then says nothing on, is not left open.
|
|
46
|
+
const drop = () => void socket.destroy(givenUp());
|
|
47
|
+
if (signal?.aborted)
|
|
48
|
+
drop();
|
|
49
|
+
else
|
|
50
|
+
signal?.addEventListener('abort', drop, { once: true });
|
|
51
|
+
socket.once('close', () => signal?.removeEventListener('abort', drop));
|
|
52
|
+
socket.setTimeout(HANDSHAKE_MS, () => socket.destroy(new Error('the machine took the connection and did not go on')));
|
|
53
|
+
socket.once('error', err => handOver(err, socket));
|
|
54
|
+
socket.once('secureConnect', () => {
|
|
55
|
+
socket.setTimeout(0);
|
|
56
|
+
if (fingerprintOf(socket) === pin)
|
|
57
|
+
return handOver(null, socket);
|
|
58
|
+
socket.destroy();
|
|
59
|
+
handOver(new Error(NOT_THE_MACHINE), socket);
|
|
60
|
+
});
|
|
61
|
+
return undefined;
|
|
62
|
+
},
|
|
63
|
+
}, res => {
|
|
64
|
+
const headers = new Headers();
|
|
65
|
+
for (const [name, value] of Object.entries(res.headers))
|
|
66
|
+
for (const one of Array.isArray(value) ? value : value === undefined ? [] : [value])
|
|
67
|
+
headers.append(name, one);
|
|
68
|
+
const status = res.statusCode ?? 502;
|
|
69
|
+
// A status with no body is answered without one: `Response` refuses a body there.
|
|
70
|
+
const empty = status === 204 || status === 205 || status === 304 || init.method === 'HEAD';
|
|
71
|
+
if (empty)
|
|
72
|
+
res.resume();
|
|
73
|
+
try {
|
|
74
|
+
resolve(new Response(empty ? null : Readable.toWeb(res), { status, headers }));
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
// A status no answer can carry: the machine's fault, told as a failed call.
|
|
78
|
+
res.destroy();
|
|
79
|
+
reject(err);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
req.once('error', reject);
|
|
83
|
+
req.end(init.body);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=machine-call.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machine-call.js","sourceRoot":"","sources":["../../src/dashboard/machine-call.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,30 +2,39 @@ import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
|
2
2
|
import type { OpenAgentEvent } from '../events.js';
|
|
3
3
|
import type { StartAgentOptions, StartAgentResult } from './types.js';
|
|
4
4
|
/**
|
|
5
|
-
* The
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* The machine-side of the remote-agent relay (#1067): the endpoints through which another
|
|
6
|
+
* machine's daemon runs a session here and watches it. They live under `/_relay`. This daemon
|
|
7
|
+
* listens on its own computer only: a call from another machine reaches them through whatever
|
|
8
|
+
* this computer opened to the network, which lets in only a machine that holds a key of its own
|
|
9
|
+
* and passes its call on as this computer's own would arrive.
|
|
10
10
|
*
|
|
11
|
-
* - `POST /_relay/start` starts an ordinary local agent and returns its {@link StartAgentResult}.
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* saved device with its token; a token-less caller is already 401'd by the shared-token guard (#1051) above.
|
|
11
|
+
* - `POST /_relay/start` starts an ordinary local agent and returns its {@link StartAgentResult}.
|
|
12
|
+
* - `GET /_relay/events?run=<id>&project=<address>` streams that agent's events as
|
|
13
|
+
* newline-delimited JSON until it ends or the caller disconnects.
|
|
14
|
+
* - `GET /_relay/ping` (#1072) a reachability probe: 200 and this OpenAgent's version, starts nothing. The
|
|
15
|
+
* online/offline status the dashboard shows is the local daemon calling this on each saved
|
|
16
|
+
* machine with its key there.
|
|
18
17
|
* - `POST /_relay/rpc` (#1067 slice 2) runs one whitelisted run-scoped RPC (a read/diff/steer/handoff/
|
|
19
|
-
* push/PR) against this
|
|
18
|
+
* push/PR) against this machine's own checkout for the daemon relaying an agent here, answering {result}.
|
|
19
|
+
* - `GET /_relay/screen/stream?run=<id>&project=<address>` and `POST /_relay/screen/input?…` pass
|
|
20
|
+
* one call on to the live screen of a run here (screen.ts), for the daemon whose person watches it.
|
|
21
|
+
*
|
|
22
|
+
* All but the ping name their project by its repository's address, and work in this machine's own
|
|
23
|
+
* project cloned from it. A call that names none, or one this machine does not have, starts and
|
|
24
|
+
* reads nothing: there is no project a call falls back to.
|
|
20
25
|
*/
|
|
21
26
|
export declare const RELAY_PREFIX = "/_relay";
|
|
22
27
|
/** What the daemon wires behind the relay endpoints: its own start closure and an events tail. */
|
|
23
28
|
export interface RelayHandlers {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
29
|
+
/** This machine's own id for its project cloned from `address`, or undefined when it has none. */
|
|
30
|
+
project: (address: string) => Promise<string | undefined>;
|
|
31
|
+
start: (prompt: string, options: StartAgentOptions, projectId: string) => StartAgentResult | Promise<StartAgentResult>;
|
|
32
|
+
tailEvents: (projectId: string, agentId: string, onEvent: (event: OpenAgentEvent) => void) => () => void;
|
|
33
|
+
/** Run one whitelisted read/steer/handoff RPC against THIS machine's own checkout, for the daemon
|
|
27
34
|
* relaying an agent here (#1067 slice 2); the caller wraps the result as {result}. */
|
|
28
|
-
rpc?: (fn: string, args: unknown[]) => Promise<unknown>;
|
|
35
|
+
rpc?: (projectId: string, fn: string, args: unknown[]) => Promise<unknown>;
|
|
36
|
+
/** Where the live screen of a run here answers; nothing when the run has none. */
|
|
37
|
+
screen?: (projectId: string, agentId: string) => Promise<string | undefined>;
|
|
29
38
|
}
|
|
30
39
|
/** Route a `/_relay/*` request. A host that wired no relay handlers 404s every relay route. */
|
|
31
40
|
export declare function handleRelayRequest(req: IncomingMessage, res: ServerResponse, pathname: string, handlers: RelayHandlers | undefined): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-endpoints.d.ts","sourceRoot":"","sources":["../../src/dashboard/relay-endpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"relay-endpoints.d.ts","sourceRoot":"","sources":["../../src/dashboard/relay-endpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAOrE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,YAAY,YAAY,CAAA;AAErC,kGAAkG;AAClG,MAAM,WAAW,aAAa;IAC5B,kGAAkG;IAClG,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IACzD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,KAAK,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACtH,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,KAAK,MAAM,IAAI,CAAA;IACxG;2FACuF;IACvF,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1E,kFAAkF;IAClF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;CAC7E;AAgBD,+FAA+F;AAC/F,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,GAAG,SAAS,GAClC,OAAO,CAAC,IAAI,CAAC,CAWf"}
|