@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
|
@@ -12,8 +12,15 @@ import { type GitHostFor } from '../store/git-host.js';
|
|
|
12
12
|
export interface ProjectSummary {
|
|
13
13
|
/** Registry id (stable, URL-safe). */
|
|
14
14
|
id: string;
|
|
15
|
-
/** Absolute repo path. */
|
|
15
|
+
/** Absolute repo path: on the computer the project is on. */
|
|
16
16
|
path: string;
|
|
17
|
+
/**
|
|
18
|
+
* The saved machine the project is on, when it is not on this computer (elsewhere.ts): what the
|
|
19
|
+
* page asks of it is asked there, and a run of it starts there unless another computer is picked.
|
|
20
|
+
*/
|
|
21
|
+
machine?: string;
|
|
22
|
+
/** The packages that bring a module's pages to a project of another computer's, as that computer said them. */
|
|
23
|
+
modules?: string[];
|
|
17
24
|
/** Display name (the path's basename). */
|
|
18
25
|
name: string;
|
|
19
26
|
/** True when the repo still has its `.openagent/` marker. */
|
|
@@ -56,10 +63,12 @@ export interface SummarizeDeps {
|
|
|
56
63
|
readAgents?: (path: string) => Promise<AgentMeta[]>;
|
|
57
64
|
/** The project's git host. Defaults to {@link projectGitHost}. */
|
|
58
65
|
gitHost?: GitHostFor;
|
|
66
|
+
/** The project's name. Defaults to {@link projectNameOf}: its repository's. */
|
|
67
|
+
name?: (path: string) => Promise<string>;
|
|
59
68
|
}
|
|
60
69
|
/** A project's runs, live prepended to the archived history. Forgiving: a failed read is `[]`. */
|
|
61
70
|
/**
|
|
62
|
-
* Derive a {@link ProjectSummary} from a registry record: its
|
|
71
|
+
* Derive a {@link ProjectSummary} from a registry record: its name (its repository's), whether
|
|
63
72
|
* it is still activated, and its last activity. Forgiving: a failed read reads as an
|
|
64
73
|
* inactive project with no activity, never a throw.
|
|
65
74
|
*
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
import { type OwnProject } from './elsewhere.js';
|
|
3
|
+
import type { MachinesQueue } from './machine-interventions.js';
|
|
4
|
+
import type { ProjectSummary } from './projects.js';
|
|
2
5
|
import type { OpenAgentEvent } from '../events.js';
|
|
3
6
|
import type { PreferencesStore } from '../registry.js';
|
|
4
7
|
import type { QuotaSource } from './quota.js';
|
|
@@ -7,7 +10,7 @@ import type { BridgeBrowserOwner } from '../bridge-browser.js';
|
|
|
7
10
|
import type { ProjectErrorsReader } from '../project-errors.js';
|
|
8
11
|
import type { AddProjectResult, RemoveProjectResult, StartAgentOptions, StartAgentResult, StartedInResult } from './types.js';
|
|
9
12
|
import type { AgentMeta } from '../store/index.js';
|
|
10
|
-
import type { RemoteTarget } from './remote-run.js';
|
|
13
|
+
import type { BringProject, RelayProject, RemoteTarget } from './remote-run.js';
|
|
11
14
|
import type { MachineRuns } from './machine-runs.js';
|
|
12
15
|
/** Wired by the daemon so `sendStart` can reach the daemon's own `startAgent` closure. */
|
|
13
16
|
export type StartAgentHandler = (prompt: string, options: StartAgentOptions, projectId?: string) => StartAgentResult | Promise<StartAgentResult>;
|
|
@@ -58,6 +61,23 @@ export interface RemoteAgents {
|
|
|
58
61
|
machineRuns(projectPath: string): Promise<MachineRuns[]>;
|
|
59
62
|
/** Tell `changed` each time a saved machine's runs of the project at `projectPath` change, until the answer is called. */
|
|
60
63
|
followRuns(projectPath: string, changed: () => void): () => void;
|
|
64
|
+
/** The projects of the person's other computers that this one does not have, each marked with the saved machine it is on (elsewhere.ts). */
|
|
65
|
+
elsewhere(): Promise<ProjectSummary[]>;
|
|
66
|
+
/** What the computer another computer's project is on says of its own runs of it, followed for a while from now on. */
|
|
67
|
+
elsewhereRuns(projectId: string): Promise<MachineRuns[]>;
|
|
68
|
+
/** Tell `changed` each time the runs of another computer's project change there, until the answer is called. */
|
|
69
|
+
followElsewhereRuns(projectId: string, changed: () => void): () => void;
|
|
70
|
+
/** Another computer's project by its id here: the saved machine it is on, and the project as that computer said it. */
|
|
71
|
+
elsewhereHome(projectId: string): Promise<{
|
|
72
|
+
machine: string;
|
|
73
|
+
project: OwnProject;
|
|
74
|
+
} | undefined>;
|
|
75
|
+
/** Make a page's call about another computer's project on that computer, and answer what it answered. */
|
|
76
|
+
forward(projectId: string, fn: string, args: unknown[]): Promise<unknown>;
|
|
77
|
+
/** What the person's other computers say of their Human Queues, each named as its project is here (machine-interventions.ts). */
|
|
78
|
+
machinesQueue(): Promise<MachinesQueue>;
|
|
79
|
+
/** Where this computer's copy of the project at `address` stands; with `bring`, cloned and added when there is none, on its own. */
|
|
80
|
+
bringHere(address: string, bring?: BringProject): Promise<RelayProject>;
|
|
61
81
|
}
|
|
62
82
|
/**
|
|
63
83
|
* What every RPC acts through.
|
|
@@ -119,12 +119,14 @@ export interface StartAgentOptions {
|
|
|
119
119
|
* there is none. `driver` is the coding agent the hook said runs it: what another computer that
|
|
120
120
|
* follows the run shows, since the run's record stays on this one. `notThere` marks the one
|
|
121
121
|
* refusal a page can do something about: the machine the run was sent to does not have the
|
|
122
|
-
* project yet, and can clone it.
|
|
122
|
+
* project yet, and can clone it. `projectId` is the project the run started in, when it is not the
|
|
123
|
+
* one the start named: this computer's own copy of a project another computer of the person's has.
|
|
123
124
|
*/
|
|
124
125
|
export type StartAgentResult = {
|
|
125
126
|
ok: true;
|
|
126
127
|
agentId: string;
|
|
127
128
|
driver?: string;
|
|
129
|
+
projectId?: string;
|
|
128
130
|
} | {
|
|
129
131
|
ok: false;
|
|
130
132
|
error: string;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type OwnComputers, type OwnDoor } from '../dashboard/computers-sync.js';
|
|
2
|
+
/** Where this computer's own door is reached at an address, when it is: a server's, or its name on Tailscale; and its id at each server it keeps a line to. */
|
|
3
|
+
export declare function ownDoor(): Promise<OwnDoor>;
|
|
4
|
+
/** A link one more device of the person's gets in with at this computer's own door: only at an address. */
|
|
5
|
+
export declare function ownCode(): Promise<string | undefined>;
|
|
6
|
+
/**
|
|
7
|
+
* The person's computers this one reaches at their addresses, and the ones the person removed
|
|
8
|
+
* here, for another computer of theirs that brings itself up to them: never another person's.
|
|
9
|
+
*/
|
|
10
|
+
export declare function onOwnComputers(): Promise<OwnComputers>;
|
|
11
|
+
export type AddComputerResult = {
|
|
12
|
+
ok: true;
|
|
13
|
+
} | {
|
|
14
|
+
ok: false;
|
|
15
|
+
error: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Save a computer another of the person's computers hands this one, by the link it got in with
|
|
19
|
+
* for it: this computer's own key there. Not this computer itself, not one the person removed
|
|
20
|
+
* here since the other saved it (`added`), and only one reached at an address.
|
|
21
|
+
*/
|
|
22
|
+
export declare function sendAddComputer(link: unknown, label: unknown, added: unknown): Promise<AddComputerResult>;
|
|
23
|
+
/** Take out here the computers the person removed on another of theirs, each removed after it was saved here. */
|
|
24
|
+
export declare function sendForgetComputers(gone: unknown): Promise<{
|
|
25
|
+
ok: true;
|
|
26
|
+
}>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { onAgents, onModuleAgents, onAgent, onAgentsDoing, onDocs, onQueue, onOverview, onRecentAgents, onInterventions, onActivity, onDashboard, onGitHostHome, onRepositoryOffer, onGitStatus, onProjectFiles, onRetainedWorktrees, onAgentWorktree, onAgentHandoff, onBridgeQuestion, onBridgeStatus, onBridgeToken, onBridgeEvents, onBridgeAnswer, onBridgeBrowser } from './reads.js';
|
|
2
2
|
export { sendStop, sendChoice, sendBridgeAnswer, sendBridgeAnswerCancel, sendBridgeBrowser, sendMessage, sendStart, sendOpenInApp, sendRemoveWorktree, sendDeleteAgent, sendOpenPullRequest, sendPush, sendMergeBranch, sendMerge, sendCreateRepository } from './control.js';
|
|
3
3
|
export { streamAgentEvents, type LiveFeedEvent, type PartialMessage, type StreamSync } from './events.js';
|
|
4
|
-
export { onProjects, sendAddProject, sendStartedAgain, onCloneTarget, sendAddProjectFromAddress, sendRemoveProject, onRecordsReach, sendShareRecords, sendPickProjectDirectory, onOnboarding, onCommands, onStartCheck, type ProjectLauncher } from './projects.js';
|
|
4
|
+
export { onProjects, sendAddProject, sendStartedAgain, onCloneTarget, sendAddProjectFromAddress, sendRemoveProject, onRecordsReach, sendShareRecords, sendPickProjectDirectory, onOnboarding, onCommands, onStartCheck, onCloneCheck, type ProjectLauncher } from './projects.js';
|
|
5
5
|
export { onPreferences, savePreferences, patchPreferences, onProjectPresets, saveProjectPresets, onEditors, type SavePreferencesResult, type PatchPreferencesResult, } from './preferences.js';
|
|
6
6
|
export { type EditorInfo } from '../dashboard/open-in-app.js';
|
|
7
7
|
export { onQuota } from './quota.js';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Health } from '../health.js';
|
|
2
2
|
import { type MachineLogins } from '../dashboard/machine-logins.js';
|
|
3
3
|
import { type StartReadiness } from '../project-hooks.js';
|
|
4
|
+
import type { ModelsView } from '../dashboard/models.js';
|
|
4
5
|
/** A saved machine as the browser sees it: no key. */
|
|
5
6
|
export interface Machine {
|
|
6
7
|
id: string;
|
|
@@ -30,6 +31,8 @@ export declare function onMachines(): Promise<Machine[]>;
|
|
|
30
31
|
* everyone: the door says whose it is when it tells this OpenAgent of it.
|
|
31
32
|
*/
|
|
32
33
|
export declare function sendAddMachine(pasted: string, label?: string, owner?: string): Promise<AddMachineResult>;
|
|
34
|
+
/** Get in at the machine a link names and save it, with this computer's own key there. */
|
|
35
|
+
export declare function saveMachine(pasted: string, label?: string, owner?: string): Promise<AddMachineResult>;
|
|
33
36
|
export type RemoveMachineResult = {
|
|
34
37
|
ok: true;
|
|
35
38
|
} | {
|
|
@@ -73,6 +76,8 @@ export declare function onComputersThrough(machineId: string): Promise<Computers
|
|
|
73
76
|
* computer's logins.
|
|
74
77
|
*/
|
|
75
78
|
export declare function sendAddComputerThrough(machineId: string, computerId: string): Promise<AddMachineResult>;
|
|
79
|
+
/** Save a computer on a line at a saved server, through that server. */
|
|
80
|
+
export declare function saveComputerThrough(machineId: string, computerId: string): Promise<AddMachineResult>;
|
|
76
81
|
/** Write down that the person was told their logins are copied to a saved machine of another person's: the page says it once. */
|
|
77
82
|
export declare function sendMachineTold(machineId: string): Promise<{
|
|
78
83
|
ok: boolean;
|
|
@@ -211,8 +216,22 @@ export declare function sendProjectToMachine(projectId: string, machineId: strin
|
|
|
211
216
|
export declare function onProjectOnMachine(projectId: string, machineId: string): Promise<ProjectOnMachine>;
|
|
212
217
|
/**
|
|
213
218
|
* What would stop a run sent to a saved machine, as the machine says from its own copy of the
|
|
214
|
-
* project: its coding agent there, installed and logged in.
|
|
215
|
-
*
|
|
216
|
-
*
|
|
219
|
+
* project: its coding agent there, installed and logged in. A machine that does not have the
|
|
220
|
+
* project yet clones it at the first run, and says before it whether it could: its coding agent,
|
|
221
|
+
* and whether its logins read the repository. `null` when there is nothing to say: a machine that
|
|
222
|
+
* does not answer, or one with no check.
|
|
217
223
|
*/
|
|
218
224
|
export declare function onMachineStartCheck(projectId: string, machineId: string, driver?: string): Promise<StartReadiness | null>;
|
|
225
|
+
/**
|
|
226
|
+
* The models each coding agent offers on a saved machine, as it asked its own: a run sent there is
|
|
227
|
+
* given one of these. `null` when it does not answer, or runs an OpenAgent that is not asked this.
|
|
228
|
+
*/
|
|
229
|
+
export declare function onMachineModels(machineId: string): Promise<ModelsView | null>;
|
|
230
|
+
/**
|
|
231
|
+
* Have this computer clone a project only another computer of the person's has (elsewhere.ts),
|
|
232
|
+
* for a run here: on its own, as for a machine that is sent a run. {@link onProjectHere} says when
|
|
233
|
+
* it is here. Nothing happens when it is here already, or on its way.
|
|
234
|
+
*/
|
|
235
|
+
export declare function sendProjectHere(projectId: string): Promise<ProjectOnMachine>;
|
|
236
|
+
/** Whether this computer has another computer's project by now, or why it will not. */
|
|
237
|
+
export declare function onProjectHere(projectId: string): Promise<ProjectOnMachine>;
|
|
@@ -3,8 +3,15 @@ import { type BranchReach } from '@openagt/agent-data';
|
|
|
3
3
|
import { type StartReadiness } from '../project-hooks.js';
|
|
4
4
|
import { type PickDirectoryResult } from '../pick-directory.js';
|
|
5
5
|
import type { ProjectSummary } from '../dashboard/projects.js';
|
|
6
|
+
import type { OwnProject } from '../dashboard/elsewhere.js';
|
|
6
7
|
import type { AddProjectResult, OnboardingSuggestion, RemoveProjectResult, StartedInResult } from '../dashboard/types.js';
|
|
7
8
|
export declare function onProjects(): Promise<ProjectSummary[]>;
|
|
9
|
+
/**
|
|
10
|
+
* This computer's own projects, for another computer of the person's that lists them beside its
|
|
11
|
+
* own (elsewhere.ts): each with the address another computer names it by and clones it from, and
|
|
12
|
+
* whether its agents' records are shared. Never the projects this computer lists of others.
|
|
13
|
+
*/
|
|
14
|
+
export declare function onOwnProjects(): Promise<OwnProject[]>;
|
|
8
15
|
/**
|
|
9
16
|
* Add a project from the dashboard (#396/#433): install the repo and register it so it joins the
|
|
10
17
|
* Projects list. Like `sendStart` this needs the daemon (it spawns git + writes the shared
|
|
@@ -110,3 +117,10 @@ export declare function onCommands(projectId: string): Promise<ProjectLauncher |
|
|
|
110
117
|
* `null` for an unknown project or one without a check hook: nothing to say.
|
|
111
118
|
*/
|
|
112
119
|
export declare function onStartCheck(projectId: string, driver?: string): Promise<StartReadiness | null>;
|
|
120
|
+
/**
|
|
121
|
+
* What would stop a run of a project this computer clones first, asked before it does: its coding
|
|
122
|
+
* agent, installed and logged in, and whether its logins read the repository at the address. A
|
|
123
|
+
* computer that does not have the project yet has no check hook of it to run. `as` is what the
|
|
124
|
+
* asker calls this computer, so the words read right on its page.
|
|
125
|
+
*/
|
|
126
|
+
export declare function onCloneCheck(address: string, driver?: string, as?: string): Promise<StartReadiness>;
|
|
@@ -173,6 +173,12 @@ export declare function onRecentAgents(): Promise<RecentAgent[]>;
|
|
|
173
173
|
* backlog the moment the git host answers.
|
|
174
174
|
*/
|
|
175
175
|
export declare function onInterventions(): Promise<ProjectionRead<Intervention>>;
|
|
176
|
+
/**
|
|
177
|
+
* This computer's own Human Queue, for another computer of the person's that shows it beside its
|
|
178
|
+
* own (machine-interventions.ts): the items of this computer's projects only, never of the
|
|
179
|
+
* projects it lists of other computers, so no computer asks back the one that asked it.
|
|
180
|
+
*/
|
|
181
|
+
export declare function onOwnInterventions(): Promise<ProjectionRead<Intervention>>;
|
|
176
182
|
/**
|
|
177
183
|
* The cross-project "New activity" feed (#627): recent run started/finished transitions, newest
|
|
178
184
|
* first, with the projects that were read whole beside them (#1625) — see {@link onInterventions}.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** The names a relay caller may invoke. */
|
|
2
|
+
export declare const RELAY_RPC_NAMES: readonly string[];
|
|
3
|
+
/**
|
|
4
|
+
* The calls a page makes about another computer's project (elsewhere.ts) that this computer passes
|
|
5
|
+
* on to that computer as they are: every relayed one but a start, which goes where "Run on" says,
|
|
6
|
+
* and a computer's own runs, which only a computer asks for.
|
|
7
|
+
*/
|
|
8
|
+
export declare const ELSEWHERE_FORWARDED: ReadonlySet<string>;
|
|
9
|
+
/** Whether a relayed RPC only reads. A name that is not on the whitelist is no read. */
|
|
10
|
+
export declare function isRelayRead(fn: string): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Whether one relayed call only reads, here: a read by its name, or a module's command that its
|
|
13
|
+
* package says only reads, as this computer's own copy of the module says it. The caller's word
|
|
14
|
+
* for it counts for nothing: a server holding this computer's key could call any command a read.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isRelayReadCall(projectId: string, fn: string, args: readonly unknown[]): Promise<boolean>;
|
|
17
|
+
/**
|
|
18
|
+
* Dispatch one relayed RPC against `projectId` (this machine's own id for the project). `args[0]`
|
|
19
|
+
* from the caller is the remote daemon's project id and is meaningless here, so it is replaced
|
|
20
|
+
* with `projectId`; the rest (path, agentId, ...) carry through unchanged. Throws on an unknown name.
|
|
21
|
+
*/
|
|
22
|
+
export declare function dispatchRelayRpc(projectId: string, fn: string, args: unknown[]): Promise<unknown>;
|
|
23
|
+
/** The machine-wide names a relay caller may invoke. */
|
|
24
|
+
export declare const MACHINE_RPC_NAMES: readonly string[];
|
|
25
|
+
/** Whether a machine-wide call only reads. A name that is not on the whitelist is no read. */
|
|
26
|
+
export declare function isMachineRead(fn: string): boolean;
|
|
27
|
+
/** Dispatch one machine-wide call, its arguments as the caller gave them. Throws on an unknown name. */
|
|
28
|
+
export declare function dispatchMachineRpc(fn: string, args: unknown[]): Promise<unknown>;
|
|
@@ -20,7 +20,20 @@ export interface ProjectModule {
|
|
|
20
20
|
bins: Record<string, string>;
|
|
21
21
|
/** The module's server part, an absolute path inside the package, when it has one. */
|
|
22
22
|
server?: string;
|
|
23
|
+
/**
|
|
24
|
+
* The commands that only read, by command name: the first word of the arguments, or `""` for
|
|
25
|
+
* the command with no word (flags only). What a computer that lets its server only watch answers
|
|
26
|
+
* of the module; any other command changes something there, and is refused. The package says
|
|
27
|
+
* them: `"openagent": { "reads": { "<command>": ["list", ""] } }`.
|
|
28
|
+
*/
|
|
29
|
+
reads: Record<string, string[]>;
|
|
23
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Whether running the module's command with these arguments only reads, as its package says
|
|
33
|
+
* ({@link ProjectModule.reads}): its first word is a read, or it has no word and its bare form is
|
|
34
|
+
* one, every argument then being a flag.
|
|
35
|
+
*/
|
|
36
|
+
export declare function commandReads(module: Pick<ProjectModule, 'bins' | 'reads'>, args: readonly unknown[], command?: string): boolean;
|
|
24
37
|
/**
|
|
25
38
|
* The modules a project has: each of its dependencies whose package.json exports `./dashboard` to
|
|
26
39
|
* a file that exists inside the package, plus the modules among the packages OpenAgent brings to
|
|
@@ -37,6 +50,12 @@ export declare function findProjectModule(root: string, name: string): Promise<P
|
|
|
37
50
|
export declare function readComputerModules(): Promise<ProjectModule[]>;
|
|
38
51
|
/** The one module of this computer's that `name` names, or undefined. */
|
|
39
52
|
export declare function findComputerModule(name: string): Promise<ProjectModule | undefined>;
|
|
53
|
+
/**
|
|
54
|
+
* The module of a package OpenAgent brings to projects, from OpenAgent's own copy: the page of
|
|
55
|
+
* another computer's project, on a computer where no project of its own has it. Undefined for any
|
|
56
|
+
* other package.
|
|
57
|
+
*/
|
|
58
|
+
export declare function findBroughtModule(name: string): Promise<ProjectModule | undefined>;
|
|
40
59
|
/**
|
|
41
60
|
* The file a module serves at `rel`, a path relative to its module's directory: its module, its
|
|
42
61
|
* stylesheet, a chunk. `undefined` for a path that leaves that directory (symlinks resolved) or
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type OverviewLayouts } from './overview-layout.js';
|
|
2
2
|
import { type PublishPick } from './publish-levels.js';
|
|
3
|
+
import { type OwnProject } from './dashboard/elsewhere.js';
|
|
3
4
|
/**
|
|
4
5
|
* The multi-project registry (#390): the list of projects the user has
|
|
5
6
|
* installed OpenAgent into, kept as a single JSON file `.bashrc`-style —
|
|
@@ -58,6 +59,20 @@ export interface MachineRecord {
|
|
|
58
59
|
listed?: string[];
|
|
59
60
|
/** When the machine last answered for its runs, ISO, kept to the minute: what its runs say while it does not answer. */
|
|
60
61
|
seenAt?: string;
|
|
62
|
+
/** Its own projects, as it said them last (elsewhere.ts): a computer of the person's own lists them while it does not answer. */
|
|
63
|
+
projects?: OwnProject[];
|
|
64
|
+
/** When it was first saved here, ISO: of two computers' word on it, a removal after this is the one that stands (computers-sync.ts). */
|
|
65
|
+
added?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* A computer the person removed, by its address: one of their other computers that still has it
|
|
69
|
+
* does not bring it back here, and takes it out too (computers-sync.ts). Saved again by the person,
|
|
70
|
+
* it is no longer one.
|
|
71
|
+
*/
|
|
72
|
+
export interface ForgottenMachine {
|
|
73
|
+
url: string;
|
|
74
|
+
/** When it was removed, ISO. */
|
|
75
|
+
at: string;
|
|
61
76
|
}
|
|
62
77
|
/** A GitHub account's name: letters, digits and single dashes, at most 39. */
|
|
63
78
|
export declare function isAccount(value: unknown): value is string;
|
|
@@ -196,6 +211,8 @@ export interface Registry {
|
|
|
196
211
|
* in again. Top-level, and never part of what the browser is handed. Absent until first needed.
|
|
197
212
|
*/
|
|
198
213
|
computer?: string;
|
|
214
|
+
/** The computers the person removed, the newest last (computers-sync.ts). */
|
|
215
|
+
forgotten?: ForgottenMachine[];
|
|
199
216
|
}
|
|
200
217
|
/** A read/write handle for the user preferences, wired into the dashboard's context by the daemon. */
|
|
201
218
|
export interface PreferencesStore {
|
|
@@ -348,6 +365,11 @@ export declare function noteSeen(machine: {
|
|
|
348
365
|
id: string;
|
|
349
366
|
key: string;
|
|
350
367
|
}, at: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<void>;
|
|
368
|
+
/** Keep what a saved machine said of its own projects: the same machine, by its key, or nothing is written. */
|
|
369
|
+
export declare function noteProjects(machine: {
|
|
370
|
+
id: string;
|
|
371
|
+
key: string;
|
|
372
|
+
}, projects: OwnProject[], fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<void>;
|
|
351
373
|
/** Write down that the person was told their logins are copied to a saved machine of another person's. Answers whether it is saved. */
|
|
352
374
|
export declare function tellMachine(id: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<boolean>;
|
|
353
375
|
/** Say whether a saved server uses this computer's logins. Answers whether it is saved. */
|
|
@@ -356,6 +378,12 @@ export declare function useLoginsOn(id: string, on: boolean, fs?: RegistryFs, en
|
|
|
356
378
|
export declare function renameMachine(id: string, label: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<MachineRecord | undefined>;
|
|
357
379
|
/** Take a saved machine off the list, by id. Answers the one that was there. */
|
|
358
380
|
export declare function removeMachine(id: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<MachineRecord | undefined>;
|
|
381
|
+
/** The computers the person removed, the newest last. */
|
|
382
|
+
export declare function listForgotten(fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<ForgottenMachine[]>;
|
|
383
|
+
/** Remember that the person removed the computer at `url`, at `at`; a later removal of it replaces an earlier one. */
|
|
384
|
+
export declare function forgetMachine(url: string, at: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<void>;
|
|
385
|
+
/** The person saved the computer at `url` again: it is no longer one they removed. */
|
|
386
|
+
export declare function unforgetMachine(url: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<void>;
|
|
359
387
|
/** A {@link PreferencesStore} bound to the real registry file, wired by the daemon so the
|
|
360
388
|
* dashboard's preferences RPCs read/write the user's home file.
|
|
361
389
|
*
|
|
@@ -26,5 +26,11 @@ export declare function spellingOfRemote(remote: string): string | undefined;
|
|
|
26
26
|
* machine only.
|
|
27
27
|
*/
|
|
28
28
|
export declare function repositoryAddress(cwd: string, git?: GitRunner): Promise<string | undefined>;
|
|
29
|
+
/**
|
|
30
|
+
* A project's name: its repository's, the last part of its address in the letters `origin` writes
|
|
31
|
+
* it with, so the project reads the same on every computer whatever its folder there is called.
|
|
32
|
+
* A project with no address is its folder's.
|
|
33
|
+
*/
|
|
34
|
+
export declare function projectNameOf(cwd: string, git?: GitRunner): Promise<string>;
|
|
29
35
|
/** The same address in the letters the `origin` remote is written with: see {@link spellingOfRemote}. */
|
|
30
36
|
export declare function repositorySpelling(cwd: string, git?: GitRunner): Promise<string | undefined>;
|
|
@@ -20,7 +20,20 @@ export interface ProjectModule {
|
|
|
20
20
|
bins: Record<string, string>;
|
|
21
21
|
/** The module's server part, an absolute path inside the package, when it has one. */
|
|
22
22
|
server?: string;
|
|
23
|
+
/**
|
|
24
|
+
* The commands that only read, by command name: the first word of the arguments, or `""` for
|
|
25
|
+
* the command with no word (flags only). What a computer that lets its server only watch answers
|
|
26
|
+
* of the module; any other command changes something there, and is refused. The package says
|
|
27
|
+
* them: `"openagent": { "reads": { "<command>": ["list", ""] } }`.
|
|
28
|
+
*/
|
|
29
|
+
reads: Record<string, string[]>;
|
|
23
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Whether running the module's command with these arguments only reads, as its package says
|
|
33
|
+
* ({@link ProjectModule.reads}): its first word is a read, or it has no word and its bare form is
|
|
34
|
+
* one, every argument then being a flag.
|
|
35
|
+
*/
|
|
36
|
+
export declare function commandReads(module: Pick<ProjectModule, 'bins' | 'reads'>, args: readonly unknown[], command?: string): boolean;
|
|
24
37
|
/**
|
|
25
38
|
* The modules a project has: each of its dependencies whose package.json exports `./dashboard` to
|
|
26
39
|
* a file that exists inside the package, plus the modules among the packages OpenAgent brings to
|
|
@@ -37,6 +50,12 @@ export declare function findProjectModule(root: string, name: string): Promise<P
|
|
|
37
50
|
export declare function readComputerModules(): Promise<ProjectModule[]>;
|
|
38
51
|
/** The one module of this computer's that `name` names, or undefined. */
|
|
39
52
|
export declare function findComputerModule(name: string): Promise<ProjectModule | undefined>;
|
|
53
|
+
/**
|
|
54
|
+
* The module of a package OpenAgent brings to projects, from OpenAgent's own copy: the page of
|
|
55
|
+
* another computer's project, on a computer where no project of its own has it. Undefined for any
|
|
56
|
+
* other package.
|
|
57
|
+
*/
|
|
58
|
+
export declare function findBroughtModule(name: string): Promise<ProjectModule | undefined>;
|
|
40
59
|
/**
|
|
41
60
|
* The file a module serves at `rel`, a path relative to its module's directory: its module, its
|
|
42
61
|
* stylesheet, a chunk. `undefined` for a path that leaves that directory (symlinks resolved) or
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-modules.d.ts","sourceRoot":"","sources":["../src/project-modules.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkC,KAAK,oBAAoB,EAAuB,MAAM,qBAAqB,CAAA;AAGpH;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4GAA4G;IAC5G,GAAG,EAAE,MAAM,CAAA;IACX,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAA;IACb,2IAA2I;IAC3I,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"project-modules.d.ts","sourceRoot":"","sources":["../src/project-modules.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkC,KAAK,oBAAoB,EAAuB,MAAM,qBAAqB,CAAA;AAGpH;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4GAA4G;IAC5G,GAAG,EAAE,MAAM,CAAA;IACX,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAA;IACb,2IAA2I;IAC3I,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CAChC;AAcD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAQ/H;AA4BD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAO/E;AAkBD,sEAAsE;AACtE,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAEtG;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAOpE;AAED,yEAAyE;AACzE,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAEzF;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAGxF;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAKhG;AAED,+EAA+E;AAC/E,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAA;AAMtD;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,MAAM;AAChB,6EAA6E;AAC7E,IAAI,CAAC,EAAE,MAAM,CAAC,UAAU;AACxB,gDAAgD;AAChD,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC,CAS9B"}
|
package/dist/project-modules.js
CHANGED
|
@@ -1,7 +1,36 @@
|
|
|
1
1
|
import { realpath, stat } from 'node:fs/promises';
|
|
2
2
|
import { dirname, join, normalize, sep } from 'node:path';
|
|
3
3
|
import { packageBins, runPackageCommand } from '@openagt/agent-data';
|
|
4
|
-
import { builtInPackagesOf, computerPackages, ownPackages } from './built-in.js';
|
|
4
|
+
import { broughtToProjects, builtInPackagesOf, computerPackages, ownPackages } from './built-in.js';
|
|
5
|
+
/** The commands a package says only read, of the ones it has: anything else in its word is dropped. */
|
|
6
|
+
function readsOf(openagent, bins) {
|
|
7
|
+
const said = openagent && typeof openagent === 'object' ? openagent['reads'] : undefined;
|
|
8
|
+
if (!said || typeof said !== 'object' || Array.isArray(said))
|
|
9
|
+
return {};
|
|
10
|
+
const reads = {};
|
|
11
|
+
for (const [name, words] of Object.entries(said)) {
|
|
12
|
+
if (!Object.hasOwn(bins, name) || !Array.isArray(words))
|
|
13
|
+
continue;
|
|
14
|
+
reads[name] = words.filter((word) => typeof word === 'string' && !word.startsWith('-'));
|
|
15
|
+
}
|
|
16
|
+
return reads;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Whether running the module's command with these arguments only reads, as its package says
|
|
20
|
+
* ({@link ProjectModule.reads}): its first word is a read, or it has no word and its bare form is
|
|
21
|
+
* one, every argument then being a flag.
|
|
22
|
+
*/
|
|
23
|
+
export function commandReads(module, args, command) {
|
|
24
|
+
const names = Object.keys(module.bins);
|
|
25
|
+
const name = command ?? (names.length === 1 ? names[0] : undefined);
|
|
26
|
+
const words = name !== undefined && Object.hasOwn(module.reads, name) ? module.reads[name] : [];
|
|
27
|
+
if (!args.every(arg => typeof arg === 'string'))
|
|
28
|
+
return false;
|
|
29
|
+
const first = args[0];
|
|
30
|
+
if (first === undefined || first.startsWith('-'))
|
|
31
|
+
return words.includes('') && args.every(arg => arg.startsWith('-'));
|
|
32
|
+
return words.includes(first);
|
|
33
|
+
}
|
|
5
34
|
/** The file an `exports[key]` entry names: a plain path, or the first of `conditions` it has. */
|
|
6
35
|
function exportedFile(exports, key, conditions) {
|
|
7
36
|
if (!exports || typeof exports !== 'object' || Array.isArray(exports))
|
|
@@ -51,13 +80,15 @@ async function readModule({ name, dir: pkgDir, manifest: pkg }) {
|
|
|
51
80
|
if (!file)
|
|
52
81
|
return undefined;
|
|
53
82
|
const server = await fileInside(pkgDir, exportedFile(pkg.exports, './server', ['node', 'import', 'default']));
|
|
83
|
+
const bins = packageBins(name, pkg.bin, pkgDir);
|
|
54
84
|
return {
|
|
55
85
|
package: name,
|
|
56
86
|
...(typeof pkg.version === 'string' ? { version: pkg.version } : {}),
|
|
57
87
|
dir: dirname(file),
|
|
58
88
|
entry: file.slice(dirname(file).length + 1),
|
|
59
|
-
bins
|
|
89
|
+
bins,
|
|
60
90
|
...(server ? { server } : {}),
|
|
91
|
+
reads: readsOf(pkg.openagent, bins),
|
|
61
92
|
};
|
|
62
93
|
}
|
|
63
94
|
/** The one module of this project that `name` names, or undefined. */
|
|
@@ -81,6 +112,15 @@ export async function readComputerModules() {
|
|
|
81
112
|
export async function findComputerModule(name) {
|
|
82
113
|
return (await readComputerModules()).find(module => module.package === name);
|
|
83
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* The module of a package OpenAgent brings to projects, from OpenAgent's own copy: the page of
|
|
117
|
+
* another computer's project, on a computer where no project of its own has it. Undefined for any
|
|
118
|
+
* other package.
|
|
119
|
+
*/
|
|
120
|
+
export async function findBroughtModule(name) {
|
|
121
|
+
const pkg = (await broughtToProjects()).find(brought => brought.name === name);
|
|
122
|
+
return pkg ? readModule(pkg) : undefined;
|
|
123
|
+
}
|
|
84
124
|
/**
|
|
85
125
|
* The file a module serves at `rel`, a path relative to its module's directory: its module, its
|
|
86
126
|
* stylesheet, a chunk. `undefined` for a path that leaves that directory (symlinks resolved) or
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-modules.js","sourceRoot":"","sources":["../src/project-modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAkD,MAAM,qBAAqB,CAAA;AACpH,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"project-modules.js","sourceRoot":"","sources":["../src/project-modules.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type OverviewLayouts } from './overview-layout.js';
|
|
2
2
|
import { type PublishPick } from './publish-levels.js';
|
|
3
|
+
import { type OwnProject } from './dashboard/elsewhere.js';
|
|
3
4
|
/**
|
|
4
5
|
* The multi-project registry (#390): the list of projects the user has
|
|
5
6
|
* installed OpenAgent into, kept as a single JSON file `.bashrc`-style —
|
|
@@ -58,6 +59,20 @@ export interface MachineRecord {
|
|
|
58
59
|
listed?: string[];
|
|
59
60
|
/** When the machine last answered for its runs, ISO, kept to the minute: what its runs say while it does not answer. */
|
|
60
61
|
seenAt?: string;
|
|
62
|
+
/** Its own projects, as it said them last (elsewhere.ts): a computer of the person's own lists them while it does not answer. */
|
|
63
|
+
projects?: OwnProject[];
|
|
64
|
+
/** When it was first saved here, ISO: of two computers' word on it, a removal after this is the one that stands (computers-sync.ts). */
|
|
65
|
+
added?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* A computer the person removed, by its address: one of their other computers that still has it
|
|
69
|
+
* does not bring it back here, and takes it out too (computers-sync.ts). Saved again by the person,
|
|
70
|
+
* it is no longer one.
|
|
71
|
+
*/
|
|
72
|
+
export interface ForgottenMachine {
|
|
73
|
+
url: string;
|
|
74
|
+
/** When it was removed, ISO. */
|
|
75
|
+
at: string;
|
|
61
76
|
}
|
|
62
77
|
/** A GitHub account's name: letters, digits and single dashes, at most 39. */
|
|
63
78
|
export declare function isAccount(value: unknown): value is string;
|
|
@@ -196,6 +211,8 @@ export interface Registry {
|
|
|
196
211
|
* in again. Top-level, and never part of what the browser is handed. Absent until first needed.
|
|
197
212
|
*/
|
|
198
213
|
computer?: string;
|
|
214
|
+
/** The computers the person removed, the newest last (computers-sync.ts). */
|
|
215
|
+
forgotten?: ForgottenMachine[];
|
|
199
216
|
}
|
|
200
217
|
/** A read/write handle for the user preferences, wired into the dashboard's context by the daemon. */
|
|
201
218
|
export interface PreferencesStore {
|
|
@@ -348,6 +365,11 @@ export declare function noteSeen(machine: {
|
|
|
348
365
|
id: string;
|
|
349
366
|
key: string;
|
|
350
367
|
}, at: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<void>;
|
|
368
|
+
/** Keep what a saved machine said of its own projects: the same machine, by its key, or nothing is written. */
|
|
369
|
+
export declare function noteProjects(machine: {
|
|
370
|
+
id: string;
|
|
371
|
+
key: string;
|
|
372
|
+
}, projects: OwnProject[], fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<void>;
|
|
351
373
|
/** Write down that the person was told their logins are copied to a saved machine of another person's. Answers whether it is saved. */
|
|
352
374
|
export declare function tellMachine(id: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<boolean>;
|
|
353
375
|
/** Say whether a saved server uses this computer's logins. Answers whether it is saved. */
|
|
@@ -356,6 +378,12 @@ export declare function useLoginsOn(id: string, on: boolean, fs?: RegistryFs, en
|
|
|
356
378
|
export declare function renameMachine(id: string, label: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<MachineRecord | undefined>;
|
|
357
379
|
/** Take a saved machine off the list, by id. Answers the one that was there. */
|
|
358
380
|
export declare function removeMachine(id: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<MachineRecord | undefined>;
|
|
381
|
+
/** The computers the person removed, the newest last. */
|
|
382
|
+
export declare function listForgotten(fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<ForgottenMachine[]>;
|
|
383
|
+
/** Remember that the person removed the computer at `url`, at `at`; a later removal of it replaces an earlier one. */
|
|
384
|
+
export declare function forgetMachine(url: string, at: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<void>;
|
|
385
|
+
/** The person saved the computer at `url` again: it is no longer one they removed. */
|
|
386
|
+
export declare function unforgetMachine(url: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<void>;
|
|
359
387
|
/** A {@link PreferencesStore} bound to the real registry file, wired by the daemon so the
|
|
360
388
|
* dashboard's preferences RPCs read/write the user's home file.
|
|
361
389
|
*
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAIpF,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|