@openagt/dashboard 0.9.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 +9 -17
- package/dist/built-in.d.ts +45 -16
- package/dist/built-in.d.ts.map +1 -1
- package/dist/built-in.js +95 -32
- 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 +97 -37
- 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/start-branch.d.ts +32 -0
- package/dist/dashboard/start-branch.d.ts.map +1 -0
- package/dist/dashboard/start-branch.js +47 -0
- package/dist/dashboard/start-branch.js.map +1 -0
- 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-v213KWfH.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 +2 -1
- package/dist/dashboard-rpc/index.d.ts.map +1 -1
- package/dist/dashboard-rpc/index.js +5 -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 +10 -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/skills.d.ts +80 -0
- package/dist/dashboard-rpc/skills.d.ts.map +1 -0
- package/dist/dashboard-rpc/skills.js +84 -0
- package/dist/dashboard-rpc/skills.js.map +1 -0
- 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/components/ui/switch.d.ts +7 -0
- package/dist/module-types/dashboard/lib/draft-handoff.d.ts +5 -9
- package/dist/module-types/dashboard/module/index.d.ts +46 -0
- package/dist/module-types/src/built-in.d.ts +45 -16
- 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/start-branch.d.ts +31 -0
- 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 +2 -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/dashboard-rpc/skills.d.ts +79 -0
- 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/openagent-dir.d.ts +3 -5
- package/dist/module-types/src/project-commands.d.ts +4 -0
- package/dist/module-types/src/project-hooks.d.ts +8 -5
- package/dist/module-types/src/project-modules.d.ts +8 -6
- 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/store/branches.d.ts +1 -1
- package/dist/module-types/src/store/git-host.d.ts +1 -1
- package/dist/module-types/src/store/queue.d.ts +1 -1
- package/dist/module-types/src/store/runs.d.ts +1 -1
- package/dist/module-types/src/store/tickets.d.ts +1 -1
- package/dist/module-types/src/version.d.ts +1 -0
- package/dist/openagent-dir.d.ts +3 -5
- package/dist/openagent-dir.d.ts.map +1 -1
- package/dist/openagent-dir.js +3 -5
- package/dist/openagent-dir.js.map +1 -1
- 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/project-commands.d.ts +4 -0
- package/dist/project-commands.d.ts.map +1 -1
- package/dist/project-commands.js.map +1 -1
- package/dist/project-hooks.d.ts +8 -5
- package/dist/project-hooks.d.ts.map +1 -1
- package/dist/project-hooks.js +9 -6
- package/dist/project-hooks.js.map +1 -1
- package/dist/project-modules.d.ts +8 -6
- package/dist/project-modules.d.ts.map +1 -1
- package/dist/project-modules.js +7 -13
- package/dist/project-modules.js.map +1 -1
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +1 -2
- package/dist/project.js.map +1 -1
- 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/store/branches.d.ts +1 -1
- package/dist/store/branches.js +1 -1
- package/dist/store/git-host.d.ts +1 -1
- package/dist/store/git-host.js +2 -2
- package/dist/store/git-host.js.map +1 -1
- package/dist/store/queue.d.ts +1 -1
- package/dist/store/queue.js +1 -1
- package/dist/store/runs.d.ts +1 -1
- package/dist/store/runs.js +1 -1
- package/dist/store/test-branches.d.ts +0 -8
- package/dist/store/test-branches.d.ts.map +1 -1
- package/dist/store/test-branches.js +0 -24
- package/dist/store/test-branches.js.map +1 -1
- package/dist/store/tickets.d.ts +1 -1
- package/dist/store/tickets.js +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 +19 -13
- package/dist/dashboard-bundle/assets/main-B98UOA3_.js +0 -140
- package/dist/dashboard-bundle/assets/main-ByRjbCiA.css +0 -2
- 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
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,wFAAwF;AACxF,oFAAoF;AACpF,qFAAqF;AACrF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAmB,MAAM,mBAAmB,CAAA;AACzG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAA;AACzH,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EACL,WAAW,EACX,WAAW,GAGZ,MAAM,iBAAiB,CAAA;AACxB,8FAA8F;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,+FAA+F;AAC/F,8DAA8D;AAC9D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAClE,oGAAoG;AACpG,qGAAqG;AACrG,4FAA4F;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAE1D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,qBAAqB,EAAuB,MAAM,0BAA0B,CAAA;AAC9J
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,wFAAwF;AACxF,oFAAoF;AACpF,qFAAqF;AACrF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAmB,MAAM,mBAAmB,CAAA;AACzG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAA;AACzH,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EACL,WAAW,EACX,WAAW,GAGZ,MAAM,iBAAiB,CAAA;AACxB,8FAA8F;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,+FAA+F;AAC/F,8DAA8D;AAC9D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAClE,oGAAoG;AACpG,qGAAqG;AACrG,4FAA4F;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAE1D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,qBAAqB,EAAuB,MAAM,0BAA0B,CAAA;AAC9J,6FAA6F;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,mGAAmG;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,+GAA+G;AAC/G,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,uBAAuB,EAAsB,MAAM,sBAAsB,CAAA"}
|
package/dist/daemon-runtime.d.ts
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import type { OpenAgentEvent } from './events.js';
|
|
2
2
|
import type { StartAgentOptions, StartAgentResult, AddProjectResult, RemoveProjectResult } from './dashboard/index.js';
|
|
3
3
|
import type { EventsSource, RemoteAgents } from './dashboard/rpc-serve.js';
|
|
4
|
-
/**
|
|
5
|
-
* What the daemon does for a project (#393): start a run, add a project, and relay a run to and
|
|
6
|
-
* from a connected device. Split from daemon.ts so that file reads as the daemon's lifecycle
|
|
7
|
-
* (state file, ports, boot, shutdown). The daemon runs no agent itself (#1774): a Start is the
|
|
8
|
-
* project's own `start` hook line, and the run it begins belongs to whatever tool that line names.
|
|
9
|
-
*/
|
|
10
4
|
/** Inputs to {@link createProjectRuntime}. */
|
|
11
5
|
export interface ProjectRuntimeOptions {
|
|
12
6
|
/** The daemon's home workspace; a run with no project id targets it. */
|
|
@@ -19,18 +13,24 @@ export interface ProjectRuntime {
|
|
|
19
13
|
onStart: (prompt: string, options?: StartAgentOptions, targetProjectId?: string) => Promise<StartAgentResult>;
|
|
20
14
|
onAddProject: (path: string, share: boolean) => Promise<AddProjectResult>;
|
|
21
15
|
onRemoveProject: (projectId: string, files?: boolean) => Promise<RemoveProjectResult>;
|
|
22
|
-
/** The live event stream for an agent this daemon is relaying from a
|
|
16
|
+
/** The live event stream for an agent this daemon is relaying from a machine (#1067), else undefined
|
|
23
17
|
* so `onEvents` falls back to tailing the on-disk log. Wired as the dashboard's events source. */
|
|
24
18
|
remoteEventsSource: EventsSource;
|
|
19
|
+
/** This machine's own id for its project cloned from `address`, the name a relayed call gives a
|
|
20
|
+
* project; undefined when no project here is cloned from it. */
|
|
21
|
+
projectAt: (address: string) => Promise<string | undefined>;
|
|
25
22
|
/** Tail a relay-started agent's on-disk events (#1067): the daemon's `/_relay/events` endpoint uses
|
|
26
23
|
* it to stream one agent back to whichever daemon relayed it here. */
|
|
27
|
-
tailRelayEvents: (agentId: string, onEvent: (event: OpenAgentEvent) => void) => () => void;
|
|
28
|
-
/** The relayed-agent lookup the dashboard's read RPCs consult (#1067 slice 2): which
|
|
24
|
+
tailRelayEvents: (projectId: string, agentId: string, onEvent: (event: OpenAgentEvent) => void) => () => void;
|
|
25
|
+
/** The relayed-agent lookup the dashboard's read RPCs consult (#1067 slice 2): which machine a remote
|
|
29
26
|
* run runs on, so a run-scoped RPC forwards there instead of resolving a local checkout. */
|
|
30
27
|
remoteAgents: RemoteAgents;
|
|
31
|
-
/** The
|
|
32
|
-
* this daemon's own
|
|
33
|
-
onRelayRpc: (fn: string, args: unknown[]) => Promise<unknown>;
|
|
28
|
+
/** The machine side of the relay (#1067 slice 2): run one whitelisted read/steer/handoff RPC against
|
|
29
|
+
* this daemon's own copy of the project, for a daemon that relayed an agent here. */
|
|
30
|
+
onRelayRpc: (projectId: string, fn: string, args: unknown[]) => Promise<unknown>;
|
|
31
|
+
/** Where the live screen of a run on this computer answers, as its diary names it; nothing when
|
|
32
|
+
* the run has none: it opened no screen, closed it, or ended. */
|
|
33
|
+
screenOf: (projectId: string, agentId: string) => Promise<string | undefined>;
|
|
34
34
|
/** Let go of the relayed streams. */
|
|
35
35
|
dispose: () => Promise<void>;
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-runtime.d.ts","sourceRoot":"","sources":["../src/daemon-runtime.ts"],"names":[],"mappings":"
|
|
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,MAAM,sBAAsB,CAAA;AACtH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AA2B1E,8CAA8C;AAC9C,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAA;IACX,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;CACvB;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,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;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,EAAE,qBAAqB,GAAG,cAAc,CA8MxF"}
|
package/dist/daemon-runtime.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { resolve } from 'node:path';
|
|
1
|
+
import { basename, join, resolve } from 'node:path';
|
|
2
2
|
import { hostname } from 'node:os';
|
|
3
3
|
import { stat } from 'node:fs/promises';
|
|
4
|
-
import { fromDiaryLine, isPidAlive, projectBranches, readLiveMetas, resolveAgentDiary } from './store/index.js';
|
|
4
|
+
import { findCheckout, fromDiaryLine, isPidAlive, isRunId, projectBranches, readLiveMetas, resolveAgentDiary } from './store/index.js';
|
|
5
|
+
import { OPENAGENT_DIR } from './openagent-dir.js';
|
|
5
6
|
import { RelayedAgents, startRemoteAgent } from './dashboard/remote-run.js';
|
|
7
|
+
import { screenInDiary } from './dashboard/screen.js';
|
|
6
8
|
import { dispatchRelayRpc } from './dashboard-rpc/relay-dispatch.js';
|
|
7
9
|
import { tailAgentEvents } from './dashboard-rpc/events-tail.js';
|
|
8
|
-
import { addProject, listProjects, projectId, removeProject } from './registry.js';
|
|
10
|
+
import { addProject, listMachines, listProjects, projectId, removeProject } from './registry.js';
|
|
11
|
+
import { repositoryAddress } from './repository-address.js';
|
|
9
12
|
import { writeHookLines } from './built-in.js';
|
|
10
|
-
import { installProject } from '
|
|
11
|
-
import { fileBranchRepo, writeSharing } from '@openagt/agent-data';
|
|
13
|
+
import { fileBranchRepo, installProject, writeSharing } from '@openagt/agent-data';
|
|
12
14
|
import { removeProjectFiles } from './remove-files.js';
|
|
13
15
|
import { runProjectHooks, runStartHook } from './project-hooks.js';
|
|
14
16
|
import { publishLevelOf, publishPickIn } from './publish-levels.js';
|
|
@@ -16,23 +18,33 @@ import { isBranchName } from './branch-name.js';
|
|
|
16
18
|
import { hasRemote } from './has-remote.js';
|
|
17
19
|
import { projectGitHost } from './store/git-host.js';
|
|
18
20
|
import { providedDataChanged } from './store/provided.js';
|
|
21
|
+
/**
|
|
22
|
+
* What the daemon does for a project (#393): start a run, add a project, and relay a run to and
|
|
23
|
+
* from a saved machine. Split from daemon.ts so that file reads as the daemon's lifecycle
|
|
24
|
+
* (state file, ports, boot, shutdown). The daemon runs no agent itself (#1774): a Start is the
|
|
25
|
+
* project's own `start` hook line, and the run it begins belongs to whatever tool that line names.
|
|
26
|
+
*/
|
|
27
|
+
/** How long a project folder's repository address is trusted before git is asked again. */
|
|
28
|
+
const ADDRESS_KEPT_MS = 10_000;
|
|
19
29
|
/**
|
|
20
30
|
* The daemon's per-project runtime (#393). The home `cwd` is the default target: a request with
|
|
21
31
|
* no project id (or the home id) resolves to it without a registry lookup.
|
|
22
32
|
*/
|
|
23
33
|
export function createProjectRuntime({ cwd, env }) {
|
|
24
34
|
const homeId = projectId(resolve(cwd));
|
|
25
|
-
// Runs this daemon is relaying to/from a
|
|
35
|
+
// Runs this daemon is relaying to/from a saved machine (#1067): the local half of a remote agent.
|
|
26
36
|
const relayedAgents = new RelayedAgents();
|
|
27
37
|
// The relayed-agent lookup the dashboard's read RPCs consult (#1067 slice 2): is this agentId remote, and
|
|
28
|
-
// which
|
|
38
|
+
// which machine owns it. Outlives the event stream so a finished remote agent's push/PR still reaches it.
|
|
29
39
|
const remoteAgents = {
|
|
30
40
|
target: agentId => relayedAgents.target(agentId),
|
|
31
41
|
list: projectId => relayedAgents.list(projectId),
|
|
42
|
+
working: url => relayedAgents.working(url),
|
|
43
|
+
rekey: (url, key, pin) => relayedAgents.rekey(url, key, pin),
|
|
32
44
|
};
|
|
33
|
-
// The
|
|
34
|
-
// daemon's own
|
|
35
|
-
const onRelayRpc = (fn, args) => dispatchRelayRpc(
|
|
45
|
+
// The machine side of the relay (#1067 slice 2): run one whitelisted read/steer/handoff RPC against this
|
|
46
|
+
// daemon's own copy of the project the call named, for a daemon that relayed an agent here.
|
|
47
|
+
const onRelayRpc = (project, fn, args) => dispatchRelayRpc(project, fn, args);
|
|
36
48
|
// A project id resolves to its repo path via the registry; the home id (or none)
|
|
37
49
|
// resolves to the daemon's own `cwd` without a lookup.
|
|
38
50
|
const resolveProject = async (id) => {
|
|
@@ -41,37 +53,75 @@ export function createProjectRuntime({ cwd, env }) {
|
|
|
41
53
|
const records = await listProjects(undefined, env).catch(() => []);
|
|
42
54
|
return records.find(record => record.id === id)?.path;
|
|
43
55
|
};
|
|
56
|
+
// The project here that a relayed call names by its repository's address: the first on the list
|
|
57
|
+
// cloned from it, every time, so a run's later calls reach the project it started in. A folder's
|
|
58
|
+
// address is kept for a few seconds, so a run's reads, which poll, do not ask git about every
|
|
59
|
+
// project each time. Only an address is kept: a folder that had none is asked again.
|
|
60
|
+
const addresses = new Map();
|
|
61
|
+
const addressOf = async (path) => {
|
|
62
|
+
const kept = addresses.get(path);
|
|
63
|
+
if (kept && kept.until > Date.now())
|
|
64
|
+
return kept.address;
|
|
65
|
+
const address = await repositoryAddress(path);
|
|
66
|
+
if (address === undefined)
|
|
67
|
+
addresses.delete(path);
|
|
68
|
+
else
|
|
69
|
+
addresses.set(path, { address, until: Date.now() + ADDRESS_KEPT_MS });
|
|
70
|
+
return address;
|
|
71
|
+
};
|
|
72
|
+
const projectAt = async (address) => {
|
|
73
|
+
for (const record of await listProjects(undefined, env).catch(() => [])) {
|
|
74
|
+
if ((await addressOf(record.path)) === address)
|
|
75
|
+
return record.id;
|
|
76
|
+
}
|
|
77
|
+
return undefined;
|
|
78
|
+
};
|
|
44
79
|
// Start (#1774): the project's own `start` hook line, which answers the id of the run it began.
|
|
45
80
|
// The daemon names no tool and holds nothing about the run: no slot, no cap (a person's click is
|
|
46
81
|
// the brake), no process to stop at shutdown. A project without the line cannot start a run here.
|
|
47
82
|
const onStart = async (prompt, options = {}, targetProjectId) => {
|
|
48
|
-
// Run on a connected device (#1067): forward the start to the remote daemon, which runs its own
|
|
49
|
-
// project's hook, and relay the run's events back. `remote` is stripped so the device does not
|
|
50
|
-
// relay onward, and `base` because a branch of this machine names nothing on the device (the device drops it too). The
|
|
51
|
-
// device starts it in its own home project.
|
|
52
|
-
if (options.remote) {
|
|
53
|
-
const { remote, base: _thisMachines, ...forwarded } = options;
|
|
54
|
-
const result = await startRemoteAgent(remote, { prompt, options: forwarded });
|
|
55
|
-
if (result.ok) {
|
|
56
|
-
// A relayed agent has no local checkout or pid, so its list row is a memory-only stub (#1077):
|
|
57
|
-
// registered here so onAgents can show it and a dashboard reload re-opens it. Never written to disk.
|
|
58
|
-
const now = new Date().toISOString();
|
|
59
|
-
const meta = {
|
|
60
|
-
status: 'running',
|
|
61
|
-
id: result.agentId,
|
|
62
|
-
startedAt: now,
|
|
63
|
-
updatedAt: now,
|
|
64
|
-
target: 'remote',
|
|
65
|
-
intent: prompt,
|
|
66
|
-
...(remote.label ? { remoteLabel: remote.label } : {}),
|
|
67
|
-
};
|
|
68
|
-
relayedAgents.register(result.agentId, remote, meta, targetProjectId ?? homeId);
|
|
69
|
-
}
|
|
70
|
-
return result;
|
|
71
|
-
}
|
|
72
83
|
const projectCwd = await resolveProject(targetProjectId);
|
|
73
84
|
if (!projectCwd)
|
|
74
85
|
return { ok: false, error: `unknown project: ${targetProjectId}` };
|
|
86
|
+
// Run on a saved machine (#1067): forward the start to its daemon, which runs the hook of its
|
|
87
|
+
// own copy of this project, and relay the run's events back. The project is named by its
|
|
88
|
+
// repository's address, the one name both machines have for it. `machine` is stripped so the
|
|
89
|
+
// other side does not relay onward, and `base` because a branch of this machine names nothing
|
|
90
|
+
// there (it drops both too).
|
|
91
|
+
if (options.machine !== undefined) {
|
|
92
|
+
const { machine: id, base: _thisMachines, ...forwarded } = options;
|
|
93
|
+
const machine = (await listMachines(undefined, env)).find(saved => saved.id === id);
|
|
94
|
+
if (!machine)
|
|
95
|
+
return { ok: false, error: 'That machine is no longer saved. Pick another place to run.' };
|
|
96
|
+
const project = await repositoryAddress(projectCwd);
|
|
97
|
+
if (!project)
|
|
98
|
+
return { ok: false, error: 'This project has no repository address, so it cannot be sent to another machine.' };
|
|
99
|
+
const target = { url: machine.url, key: machine.key, ...(machine.pin ? { pin: machine.pin } : {}), project };
|
|
100
|
+
const result = await startRemoteAgent(target, { prompt, options: forwarded });
|
|
101
|
+
if (!result.ok) {
|
|
102
|
+
return 'noProject' in result ? { ok: false, error: `${basename(projectCwd)} is not on ${machine.label}. Add it there first.` } : result;
|
|
103
|
+
}
|
|
104
|
+
// The run's id is the machine's word, and from here on every call about that id goes to the
|
|
105
|
+
// machine: what the person reads of the run, and what they click and type in its browser.
|
|
106
|
+
// An id that is no run's, or that is a run of this computer's own, is not taken.
|
|
107
|
+
if (!isRunId(result.agentId) || (await findCheckout(projectCwd, result.agentId, projectBranches))) {
|
|
108
|
+
return { ok: false, error: `${machine.label} answered with a run this computer cannot follow.` };
|
|
109
|
+
}
|
|
110
|
+
// A relayed agent has no local checkout or pid, so its list row is a memory-only stub (#1077):
|
|
111
|
+
// registered here so onAgents can show it and a dashboard reload re-opens it. Never written to disk.
|
|
112
|
+
const now = new Date().toISOString();
|
|
113
|
+
const meta = {
|
|
114
|
+
status: 'running',
|
|
115
|
+
id: result.agentId,
|
|
116
|
+
startedAt: now,
|
|
117
|
+
updatedAt: now,
|
|
118
|
+
target: 'remote',
|
|
119
|
+
intent: prompt,
|
|
120
|
+
remoteLabel: machine.label,
|
|
121
|
+
};
|
|
122
|
+
relayedAgents.register(result.agentId, target, meta, targetProjectId ?? homeId);
|
|
123
|
+
return result;
|
|
124
|
+
}
|
|
75
125
|
// The branch to start from ends up on the line's command line: only a branch name goes there.
|
|
76
126
|
// Refused, not dropped: a run started from the main branch instead would be a silent swap.
|
|
77
127
|
if (options.base !== undefined && !isBranchName(options.base))
|
|
@@ -164,20 +214,30 @@ export function createProjectRuntime({ cwd, env }) {
|
|
|
164
214
|
providedDataChanged(record.path);
|
|
165
215
|
return { ok: true, cleanup };
|
|
166
216
|
};
|
|
167
|
-
// The dashboard's events source (#1067): a stream for an agent this daemon is relaying from a
|
|
217
|
+
// The dashboard's events source (#1067): a stream for an agent this daemon is relaying from a machine,
|
|
168
218
|
// else undefined so `onEvents` tails the on-disk log as usual for an ordinary local agent.
|
|
169
219
|
const remoteEventsSource = (_projectId, agentId) => relayedAgents.get(agentId);
|
|
170
220
|
// Tail a relay-started run's own log (#1067) for the `/_relay/events` endpoint: the diary the
|
|
171
221
|
// run's tool keeps, its lines turned into events. The relocating tail, for the same reason as
|
|
172
222
|
// the dashboard's onEvents: the diary becomes the finished run's when the run ends.
|
|
173
|
-
const tailRelayEvents = (agentId, onEvent) => tailAgentEvents(
|
|
223
|
+
const tailRelayEvents = (project, agentId, onEvent) => tailAgentEvents(async () => {
|
|
224
|
+
const projectCwd = await resolveProject(project);
|
|
225
|
+
return projectCwd ? resolveAgentDiary(projectCwd, agentId) : undefined;
|
|
226
|
+
}, line => {
|
|
174
227
|
const event = fromDiaryLine(line);
|
|
175
228
|
if (event)
|
|
176
229
|
onEvent(event);
|
|
177
230
|
});
|
|
231
|
+
// A screen lives while its run has a checkout: a finished run's diary names none that answers,
|
|
232
|
+
// so it is not read. Asked of the shared list only: a tab open on a run asks every few seconds.
|
|
233
|
+
const screenOf = async (project, agentId) => {
|
|
234
|
+
const projectCwd = await resolveProject(project);
|
|
235
|
+
const checkout = projectCwd ? await findCheckout(projectCwd, agentId, projectBranches, { cached: true }) : undefined;
|
|
236
|
+
return checkout ? screenInDiary(join(checkout.path, OPENAGENT_DIR, `${agentId}.jsonl`)) : undefined;
|
|
237
|
+
};
|
|
178
238
|
const dispose = async () => {
|
|
179
239
|
relayedAgents.dispose();
|
|
180
240
|
};
|
|
181
|
-
return { onStart, onAddProject, onRemoveProject, remoteEventsSource, tailRelayEvents, remoteAgents, onRelayRpc, dispose };
|
|
241
|
+
return { onStart, onAddProject, onRemoveProject, remoteEventsSource, projectAt, tailRelayEvents, remoteAgents, onRelayRpc, screenOf, dispose };
|
|
182
242
|
}
|
|
183
243
|
//# sourceMappingURL=daemon-runtime.js.map
|
|
@@ -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"}
|