@openagt/dashboard 0.56.0 → 0.58.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 +19 -1
- package/dist/built-in.d.ts +9 -0
- package/dist/built-in.d.ts.map +1 -1
- package/dist/built-in.js +19 -1
- package/dist/built-in.js.map +1 -1
- package/dist/cli/skills.d.ts +7 -9
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +25 -22
- package/dist/cli/skills.js.map +1 -1
- package/dist/client.d.ts +3 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +3 -0
- package/dist/client.js.map +1 -1
- package/dist/clone-project.d.ts +10 -8
- package/dist/clone-project.d.ts.map +1 -1
- package/dist/clone-project.js +36 -47
- package/dist/clone-project.js.map +1 -1
- package/dist/cloud-scratch-refs.d.ts +9 -1
- package/dist/cloud-scratch-refs.d.ts.map +1 -1
- package/dist/cloud-scratch-refs.js +9 -2
- package/dist/cloud-scratch-refs.js.map +1 -1
- package/dist/daemon-runtime.d.ts.map +1 -1
- package/dist/daemon-runtime.js +37 -5
- package/dist/daemon-runtime.js.map +1 -1
- package/dist/daemon-services.d.ts.map +1 -1
- package/dist/daemon-services.js +4 -2
- package/dist/daemon-services.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +7 -0
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/copy-logins.d.ts +1 -1
- package/dist/dashboard/copy-logins.d.ts.map +1 -1
- package/dist/dashboard/copy-logins.js +9 -6
- package/dist/dashboard/copy-logins.js.map +1 -1
- package/dist/dashboard/git-hosts.d.ts +3 -3
- package/dist/dashboard/git-hosts.d.ts.map +1 -1
- package/dist/dashboard/git-hosts.js +3 -2
- package/dist/dashboard/git-hosts.js.map +1 -1
- package/dist/dashboard/index.d.ts +1 -1
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/logins-sync.d.ts +25 -1
- package/dist/dashboard/logins-sync.d.ts.map +1 -1
- package/dist/dashboard/logins-sync.js +78 -15
- package/dist/dashboard/logins-sync.js.map +1 -1
- package/dist/dashboard/overview.d.ts +4 -2
- package/dist/dashboard/overview.d.ts.map +1 -1
- package/dist/dashboard/overview.js +7 -3
- package/dist/dashboard/overview.js.map +1 -1
- package/dist/dashboard/person.d.ts +13 -12
- package/dist/dashboard/person.d.ts.map +1 -1
- package/dist/dashboard/person.js +7 -21
- package/dist/dashboard/person.js.map +1 -1
- package/dist/dashboard/projects.d.ts.map +1 -1
- package/dist/dashboard/projects.js +5 -1
- package/dist/dashboard/projects.js.map +1 -1
- package/dist/dashboard/repos.d.ts +75 -0
- package/dist/dashboard/repos.d.ts.map +1 -0
- package/dist/dashboard/repos.js +142 -0
- package/dist/dashboard/repos.js.map +1 -0
- package/dist/dashboard/send-skills.d.ts +12 -1
- package/dist/dashboard/send-skills.d.ts.map +1 -1
- package/dist/dashboard/send-skills.js +11 -3
- package/dist/dashboard/send-skills.js.map +1 -1
- package/dist/dashboard/start-branch.d.ts.map +1 -1
- package/dist/dashboard/start-branch.js +5 -3
- package/dist/dashboard/start-branch.js.map +1 -1
- package/dist/dashboard/types.d.ts +26 -15
- package/dist/dashboard/types.d.ts.map +1 -1
- package/dist/dashboard-bundle/assets/host/module-Jq6JDNSB.js +1 -0
- package/dist/dashboard-bundle/assets/main-BIyFp6td.js +152 -0
- package/dist/dashboard-bundle/assets/main-C_ohUWaY.css +2 -0
- package/dist/dashboard-bundle/assets/module-Cqcyno9w.js +19 -0
- package/dist/dashboard-bundle/index.html +19 -4
- package/dist/dashboard-rpc/agents.d.ts +64 -0
- package/dist/dashboard-rpc/agents.d.ts.map +1 -0
- package/dist/dashboard-rpc/agents.js +137 -0
- package/dist/dashboard-rpc/agents.js.map +1 -0
- package/dist/dashboard-rpc/backup.d.ts +36 -0
- package/dist/dashboard-rpc/backup.d.ts.map +1 -0
- package/dist/dashboard-rpc/backup.js +62 -0
- package/dist/dashboard-rpc/backup.js.map +1 -0
- package/dist/dashboard-rpc/copied-logins.d.ts +1 -1
- package/dist/dashboard-rpc/copied-logins.d.ts.map +1 -1
- package/dist/dashboard-rpc/copied-logins.js +7 -7
- package/dist/dashboard-rpc/copied-logins.js.map +1 -1
- package/dist/dashboard-rpc/hosted-repos.d.ts +42 -0
- package/dist/dashboard-rpc/hosted-repos.d.ts.map +1 -0
- package/dist/dashboard-rpc/hosted-repos.js +74 -0
- package/dist/dashboard-rpc/hosted-repos.js.map +1 -0
- package/dist/dashboard-rpc/index.d.ts +3 -2
- package/dist/dashboard-rpc/index.d.ts.map +1 -1
- package/dist/dashboard-rpc/index.js +6 -3
- package/dist/dashboard-rpc/index.js.map +1 -1
- package/dist/dashboard-rpc/logins.d.ts +3 -33
- package/dist/dashboard-rpc/logins.d.ts.map +1 -1
- package/dist/dashboard-rpc/logins.js +8 -51
- package/dist/dashboard-rpc/logins.js.map +1 -1
- package/dist/dashboard-rpc/modules.d.ts +4 -3
- package/dist/dashboard-rpc/modules.d.ts.map +1 -1
- package/dist/dashboard-rpc/modules.js +6 -5
- package/dist/dashboard-rpc/modules.js.map +1 -1
- package/dist/dashboard-rpc/person.d.ts +34 -1
- package/dist/dashboard-rpc/person.d.ts.map +1 -1
- package/dist/dashboard-rpc/person.js +49 -8
- package/dist/dashboard-rpc/person.js.map +1 -1
- package/dist/dashboard-rpc/personal-folder.d.ts +19 -2
- package/dist/dashboard-rpc/personal-folder.d.ts.map +1 -1
- package/dist/dashboard-rpc/personal-folder.js +24 -6
- package/dist/dashboard-rpc/personal-folder.js.map +1 -1
- package/dist/dashboard-rpc/project-agent-data.d.ts +12 -0
- package/dist/dashboard-rpc/project-agent-data.d.ts.map +1 -1
- package/dist/dashboard-rpc/project-agent-data.js +17 -2
- package/dist/dashboard-rpc/project-agent-data.js.map +1 -1
- package/dist/dashboard-rpc/projects.d.ts +63 -10
- package/dist/dashboard-rpc/projects.d.ts.map +1 -1
- package/dist/dashboard-rpc/projects.js +103 -23
- package/dist/dashboard-rpc/projects.js.map +1 -1
- package/dist/dashboard-rpc/reads.d.ts +1 -1
- package/dist/dashboard-rpc/reads.d.ts.map +1 -1
- package/dist/dashboard-rpc/reads.js +6 -2
- package/dist/dashboard-rpc/reads.js.map +1 -1
- package/dist/dashboard-rpc/runs-changed.d.ts.map +1 -1
- package/dist/dashboard-rpc/runs-changed.js +9 -3
- package/dist/dashboard-rpc/runs-changed.js.map +1 -1
- package/dist/dashboard-rpc/send-as.d.ts +42 -0
- package/dist/dashboard-rpc/send-as.d.ts.map +1 -0
- package/dist/dashboard-rpc/send-as.js +78 -0
- package/dist/dashboard-rpc/send-as.js.map +1 -0
- package/dist/dashboard-rpc/skills.d.ts +2 -1
- package/dist/dashboard-rpc/skills.d.ts.map +1 -1
- package/dist/dashboard-rpc/skills.js +6 -4
- package/dist/dashboard-rpc/skills.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/module-types/dashboard/components/ui/confirm-dialog.d.ts +5 -1
- package/dist/module-types/dashboard/components/ui/popup-placement.d.ts +5 -0
- package/dist/module-types/dashboard/components/ui/row-item.d.ts +1 -2
- package/dist/module-types/dashboard/lib/route.d.ts +3 -3
- package/dist/module-types/dashboard/module/index.d.ts +18 -3
- package/dist/module-types/src/built-in.d.ts +9 -0
- package/dist/module-types/src/client.d.ts +3 -0
- package/dist/module-types/src/clone-project.d.ts +10 -8
- package/dist/module-types/src/dashboard/git-hosts.d.ts +3 -3
- package/dist/module-types/src/dashboard/logins-sync.d.ts +25 -1
- package/dist/module-types/src/dashboard/overview.d.ts +4 -2
- package/dist/module-types/src/dashboard/person.d.ts +13 -12
- package/dist/module-types/src/dashboard/repos.d.ts +74 -0
- package/dist/module-types/src/dashboard/send-skills.d.ts +12 -1
- package/dist/module-types/src/dashboard/types.d.ts +26 -15
- package/dist/module-types/src/dashboard-rpc/agents.d.ts +63 -0
- package/dist/module-types/src/dashboard-rpc/backup.d.ts +35 -0
- package/dist/module-types/src/dashboard-rpc/copied-logins.d.ts +1 -1
- package/dist/module-types/src/dashboard-rpc/hosted-repos.d.ts +41 -0
- package/dist/module-types/src/dashboard-rpc/index.d.ts +3 -2
- package/dist/module-types/src/dashboard-rpc/logins.d.ts +3 -33
- package/dist/module-types/src/dashboard-rpc/modules.d.ts +4 -3
- package/dist/module-types/src/dashboard-rpc/person.d.ts +34 -1
- package/dist/module-types/src/dashboard-rpc/personal-folder.d.ts +19 -2
- package/dist/module-types/src/dashboard-rpc/project-agent-data.d.ts +12 -0
- package/dist/module-types/src/dashboard-rpc/projects.d.ts +63 -10
- package/dist/module-types/src/dashboard-rpc/reads.d.ts +1 -1
- package/dist/module-types/src/dashboard-rpc/send-as.d.ts +41 -0
- package/dist/module-types/src/dashboard-rpc/skills.d.ts +2 -1
- package/dist/module-types/src/index.d.ts +1 -1
- package/dist/module-types/src/project-address.d.ts +8 -1
- package/dist/module-types/src/project-hooks.d.ts +12 -2
- package/dist/module-types/src/project-modules.d.ts +6 -0
- package/dist/module-types/src/project-skills/catalogue.d.ts +6 -9
- package/dist/module-types/src/registry.d.ts +13 -0
- package/dist/module-types/src/store/agent-store.d.ts +14 -0
- package/dist/module-types/src/store/branches.d.ts +7 -0
- package/dist/module-types/src/store/git-host.d.ts +1 -3
- package/dist/module-types/src/typed-repository.d.ts +16 -0
- package/dist/project-address.d.ts +8 -1
- package/dist/project-address.d.ts.map +1 -1
- package/dist/project-address.js +11 -4
- package/dist/project-address.js.map +1 -1
- package/dist/project-hooks.d.ts +12 -2
- package/dist/project-hooks.d.ts.map +1 -1
- package/dist/project-hooks.js +9 -2
- package/dist/project-hooks.js.map +1 -1
- package/dist/project-modules.d.ts +6 -0
- package/dist/project-modules.d.ts.map +1 -1
- package/dist/project-modules.js +13 -1
- package/dist/project-modules.js.map +1 -1
- package/dist/project-skills/catalogue.d.ts +6 -9
- package/dist/project-skills/catalogue.d.ts.map +1 -1
- package/dist/project-skills/catalogue.js +9 -8
- package/dist/project-skills/catalogue.js.map +1 -1
- package/dist/registry.d.ts +13 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +43 -2
- package/dist/registry.js.map +1 -1
- package/dist/sessions-home.d.ts +11 -0
- package/dist/sessions-home.d.ts.map +1 -0
- package/dist/sessions-home.js +41 -0
- package/dist/sessions-home.js.map +1 -0
- package/dist/store/agent-store.d.ts +14 -0
- package/dist/store/agent-store.d.ts.map +1 -1
- package/dist/store/agent-store.js.map +1 -1
- package/dist/store/branches.d.ts +7 -0
- package/dist/store/branches.d.ts.map +1 -1
- package/dist/store/branches.js +37 -2
- package/dist/store/branches.js.map +1 -1
- package/dist/store/git-host.d.ts +1 -3
- package/dist/store/git-host.d.ts.map +1 -1
- package/dist/store/git-host.js +0 -14
- package/dist/store/git-host.js.map +1 -1
- package/dist/typed-repository.d.ts +17 -0
- package/dist/typed-repository.d.ts.map +1 -0
- package/dist/typed-repository.js +29 -0
- package/dist/typed-repository.js.map +1 -0
- package/dist/website/assets/entries/{entry-client-routing.C33s8xOY.js → entry-client-routing.CvPemUV2.js} +2 -2
- package/dist/website/assets/entries/{pages_go-to-dashboard.C3OBfFYB.js → pages_go-to-dashboard.CUCqKDCh.js} +1 -1
- package/dist/website/banner/index.html +1 -1
- package/dist/website/go-to-dashboard/index.html +3 -3
- package/dist/website/index.html +1 -1
- package/dist/website/press/index.html +1 -1
- package/package.json +21 -21
- package/dist/dashboard-bundle/assets/host/module-BMyNrbiB.js +0 -1
- package/dist/dashboard-bundle/assets/main-BK8YIg7v.js +0 -152
- package/dist/dashboard-bundle/assets/main-mnNPGbsz.css +0 -2
- package/dist/dashboard-bundle/assets/module-DY3Aigsz.js +0 -19
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type RemoteAccount } from '@openagt/agent-data';
|
|
1
2
|
/**
|
|
2
3
|
* A project added by its repository's address, for a computer that does not have its folder: a
|
|
3
4
|
* server that was just connected has no screen to pick a folder on and no folder to pick. The
|
|
@@ -5,8 +6,11 @@
|
|
|
5
6
|
* and that folder is then added like any other. Nothing is asked about where: the page says
|
|
6
7
|
* where it went.
|
|
7
8
|
*
|
|
8
|
-
* git clones
|
|
9
|
-
*
|
|
9
|
+
* git clones as one of OpenAgent's accounts at the repository's host (`account`), never with the
|
|
10
|
+
* person's own logins: their credential helpers are dropped, and an SSH address, which would use
|
|
11
|
+
* their own key, is refused unless the account's settings take it over the web. With no account
|
|
12
|
+
* there, only a public repository can be cloned. git is never let ask a person for a login: a
|
|
13
|
+
* repository it cannot read is refused in words.
|
|
10
14
|
*/
|
|
11
15
|
/** Where a repository is cloned from and to. */
|
|
12
16
|
export interface CloneTarget {
|
|
@@ -18,10 +22,8 @@ export interface CloneTarget {
|
|
|
18
22
|
path: string;
|
|
19
23
|
}
|
|
20
24
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* Undefined for anything else: a folder on this disk, another kind of address, a name that could
|
|
24
|
-
* be read as an option or lead out of the folder projects are cloned into.
|
|
25
|
+
* Where what a person typed would be cloned to: `~/projects/<its name>`, in the home of the user
|
|
26
|
+
* OpenAgent runs as. Undefined wherever {@link typedRepository} is.
|
|
25
27
|
*/
|
|
26
28
|
export declare function cloneTarget(typed: string, home?: string): CloneTarget | undefined;
|
|
27
29
|
/** How a clone went: the folder the project is in, and whether it was cloned now or was already there. */
|
|
@@ -55,8 +57,8 @@ export interface CloneOptions {
|
|
|
55
57
|
run?: CloneRunner;
|
|
56
58
|
env?: NodeJS.ProcessEnv;
|
|
57
59
|
timeoutMs?: number;
|
|
58
|
-
/** The
|
|
59
|
-
|
|
60
|
+
/** The account of OpenAgent's the repository is read as: its git settings. None: no login at all. */
|
|
61
|
+
account?: RemoteAccount;
|
|
60
62
|
}
|
|
61
63
|
/**
|
|
62
64
|
* Clone the repository a person typed the address of into `~/projects/<its name>`. A folder that
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/** One of OpenAgent's own accounts on the git host, as its package said it. */
|
|
2
2
|
export interface GitHostAccount {
|
|
3
3
|
login: string;
|
|
4
|
-
/** The terminal's: the one the tool uses when not told which. */
|
|
5
|
-
terminal: boolean;
|
|
6
4
|
/** The one OpenAgent's runs use. */
|
|
7
5
|
runs: boolean;
|
|
8
6
|
/** Whether the tool could use it when asked. */
|
|
9
7
|
ok: boolean;
|
|
10
8
|
/** On a server: the computer of the person's whose login it is. */
|
|
11
9
|
from?: string;
|
|
10
|
+
/** Its public picture at the host, as the package said it: an https address. */
|
|
11
|
+
avatar?: string;
|
|
12
12
|
}
|
|
13
13
|
/** What a git host's package answers of it. */
|
|
14
14
|
export interface GitHostProvider {
|
|
@@ -21,6 +21,10 @@ import { type CopiedKind, type UsageWindow } from './copied-logins.js';
|
|
|
21
21
|
*
|
|
22
22
|
* The person's settings follow the same way: what they change here is changed there, the next
|
|
23
23
|
* minute. A setting changed on the server's own page stays, until the same one changes here.
|
|
24
|
+
*
|
|
25
|
+
* An agent's GitHub account (Rom's design: an agent is the same on every device) goes further:
|
|
26
|
+
* to every saved device of the person's, server or not, told to use this computer's logins or
|
|
27
|
+
* not, as soon as the agent is saved and every minute after. A git host's token goes as it is.
|
|
24
28
|
*/
|
|
25
29
|
/** One of this computer's accounts, as a server gets it. */
|
|
26
30
|
export interface LocalLogin {
|
|
@@ -97,6 +101,8 @@ export declare const syncWiring: {
|
|
|
97
101
|
}>;
|
|
98
102
|
/** This computer's own logins. */
|
|
99
103
|
local: () => Promise<LocalLogin[]>;
|
|
104
|
+
/** The GitHub logins the agents name. */
|
|
105
|
+
agentLogins: () => Promise<string[]>;
|
|
100
106
|
/** How full each of this computer's accounts is, as its own page reads it. */
|
|
101
107
|
usage: () => Promise<{
|
|
102
108
|
kind: CopiedKind;
|
|
@@ -119,8 +125,26 @@ export declare function claudeOwnAccount(env?: NodeJS.ProcessEnv): {
|
|
|
119
125
|
} | undefined;
|
|
120
126
|
/** Every account this computer is logged in to: its coding agents' and its git hosts'. */
|
|
121
127
|
export declare function localLogins(env?: NodeJS.ProcessEnv): Promise<LocalLogin[]>;
|
|
122
|
-
/**
|
|
128
|
+
/** How an agent's GitHub accounts stand on one device of the person's. */
|
|
129
|
+
export interface AgentLoginsOn {
|
|
130
|
+
machineId: string;
|
|
131
|
+
label: string;
|
|
132
|
+
/** It answered when last asked; not reached, the states are as last read. */
|
|
133
|
+
reachable: boolean;
|
|
134
|
+
/** By login: there, or why it did not get there. */
|
|
135
|
+
github: Record<string, {
|
|
136
|
+
state: 'there' | 'failed';
|
|
137
|
+
error?: string;
|
|
138
|
+
}>;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Bring every server that uses this computer's logins up to them, and every device of the
|
|
142
|
+
* person's up to the GitHub accounts the agents name; note how each stands. A saved machine that
|
|
143
|
+
* is no server of the person's is left out of the servers' list.
|
|
144
|
+
*/
|
|
123
145
|
export declare function syncLogins(): Promise<ServerLogins[]>;
|
|
146
|
+
/** How the agents' GitHub accounts stand on each device of the person's, as last read: read anew when none were read yet. */
|
|
147
|
+
export declare function agentLoginsOn(): Promise<AgentLoginsOn[]>;
|
|
124
148
|
/** The servers as last read, with the press under way on each: read anew when none were read yet. */
|
|
125
149
|
export declare function serverLogins(): Promise<ServerLogins[]>;
|
|
126
150
|
/**
|
|
@@ -46,7 +46,7 @@ export interface Overview {
|
|
|
46
46
|
/** The most recently active projects (capped). */
|
|
47
47
|
recent: RecentProject[];
|
|
48
48
|
}
|
|
49
|
-
/** One recent session, tagged with the project it belongs to, for the cross-project rail. */
|
|
49
|
+
/** One recent session, tagged with the project it belongs to, for the cross-project rail; a session with no project is tagged {@link SESSIONS_ID}, with no name. */
|
|
50
50
|
export interface RecentAgent {
|
|
51
51
|
projectId: string;
|
|
52
52
|
projectName: string;
|
|
@@ -56,9 +56,11 @@ export interface RecentAgent {
|
|
|
56
56
|
export interface RecentAgentsDeps {
|
|
57
57
|
/** A project's runs: off its folder for one of this computer's, as its computer says them for another's. */
|
|
58
58
|
agents?: (project: ProjectSummary) => Promise<AgentMeta[]>;
|
|
59
|
+
/** The sessions with no project; none when absent. */
|
|
60
|
+
sessions?: () => Promise<AgentMeta[]>;
|
|
59
61
|
}
|
|
60
62
|
/**
|
|
61
|
-
* Every project's sessions pooled and sorted newest-first (capped), so the shared sidebar (#shared-
|
|
63
|
+
* Every project's sessions, and the sessions with no project, pooled and sorted newest-first (capped), so the shared sidebar (#shared-
|
|
62
64
|
* shell) can show recents on the home/Overview where no single project is selected. Each row carries
|
|
63
65
|
* the project it belongs to, so selecting it jumps into that project's session. Forgiving — a project
|
|
64
66
|
* whose agents cannot be read simply contributes nothing.
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type PersonRecord } from '@openagt/agent-data';
|
|
2
2
|
/**
|
|
3
|
-
* The person at this dashboard, as the foot of its sidebar shows them:
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
3
|
+
* The person at this dashboard, as the foot of its sidebar shows them: their name, and a picture
|
|
4
|
+
* when they have one. Both are the person's own (`person.json` in the personal folder, the same on
|
|
5
|
+
* every computer of theirs): what they typed in Settings, or copied once from a GitHub profile.
|
|
6
|
+
* With none set, the name is git's own `user.name`, else this computer's user, and no picture;
|
|
7
|
+
* no git host is ever asked.
|
|
8
8
|
*/
|
|
9
9
|
export interface Person {
|
|
10
10
|
name: string;
|
|
11
|
-
/** Their login at the git host, when one answered. */
|
|
12
|
-
login?: string;
|
|
13
11
|
/** A picture of them: an https address. */
|
|
14
12
|
avatar?: string;
|
|
13
|
+
/** The GitHub login the name and picture were copied from. */
|
|
14
|
+
github?: string;
|
|
15
|
+
/** Whether the person set their name in OpenAgent, rather than it being the computer's. */
|
|
16
|
+
own?: true;
|
|
15
17
|
}
|
|
16
18
|
/**
|
|
17
19
|
* Who a call came from, when the door in front of OpenAgent says (the devices package): the name
|
|
@@ -27,9 +29,8 @@ export declare function callerAtPage(): string | undefined;
|
|
|
27
29
|
export declare const CALLER_ENV = "OPENAGENT_CALLER";
|
|
28
30
|
/** The person at the page: the one this computer knows, or, for a call another person's device made, that person by their name. */
|
|
29
31
|
export declare function personAtPage(own: Person, name?: string | undefined): Person;
|
|
30
|
-
/**
|
|
31
|
-
export declare function readPerson(deps
|
|
32
|
-
|
|
32
|
+
/** The person this computer's OpenAgent knows: their own record, else git's name or this computer's user. */
|
|
33
|
+
export declare function readPerson(deps?: {
|
|
34
|
+
record?: () => Promise<PersonRecord | undefined>;
|
|
33
35
|
gitName?: () => Promise<string | undefined>;
|
|
34
|
-
gitHost?: GitHostFor;
|
|
35
36
|
}): Promise<Person>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/** A Git repository found on this computer. */
|
|
2
|
+
export interface FoundRepo {
|
|
3
|
+
/** Its folder, absolute. */
|
|
4
|
+
path: string;
|
|
5
|
+
/** The folder's name. */
|
|
6
|
+
name: string;
|
|
7
|
+
/** Its `origin` remote's address, when it has one. */
|
|
8
|
+
url?: string;
|
|
9
|
+
}
|
|
10
|
+
/** How far into a folder the crawl goes: `~/Projects/org/repo` is 3 deep. */
|
|
11
|
+
export declare const CRAWL_DEPTH = 4;
|
|
12
|
+
/** The strict limit of a crawl someone waits on: past it, what was found is the list. */
|
|
13
|
+
export declare const CRAWL_LIMIT_MS = 2000;
|
|
14
|
+
/** The limit of a crawl nobody waits on: behind a kept list. */
|
|
15
|
+
export declare const CRAWL_BEHIND_LIMIT_MS = 20000;
|
|
16
|
+
/** How old the kept list may be before a read crawls again, in the background. */
|
|
17
|
+
export declare const REPOS_MAX_AGE_MS = 60000;
|
|
18
|
+
/** The fs a crawl reads through, so a test can count and slow its reads. */
|
|
19
|
+
export interface CrawlFs {
|
|
20
|
+
/** The folder's entries, with whether each is a folder; a folder that cannot be read has none. */
|
|
21
|
+
entries(path: string): Promise<{
|
|
22
|
+
name: string;
|
|
23
|
+
directory: boolean;
|
|
24
|
+
}[]>;
|
|
25
|
+
/** A file's text, or undefined when it cannot be read. */
|
|
26
|
+
read(path: string): Promise<string | undefined>;
|
|
27
|
+
}
|
|
28
|
+
/** The {@link CrawlFs} of this computer's disk. A link is not followed: its folder is found where it is. */
|
|
29
|
+
export declare function nodeCrawlFs(): CrawlFs;
|
|
30
|
+
/** The `url` of `[remote "origin"]` in a repository's `.git/config`; undefined when it has none. */
|
|
31
|
+
export declare function originUrlOf(config: string): string | undefined;
|
|
32
|
+
/** What a crawl is told: where to look, and how far and how long. */
|
|
33
|
+
export interface CrawlOptions {
|
|
34
|
+
depth?: number;
|
|
35
|
+
limitMs?: number;
|
|
36
|
+
fs?: CrawlFs;
|
|
37
|
+
now?: () => number;
|
|
38
|
+
}
|
|
39
|
+
/** What a crawl found, and whether it looked everywhere or the time was up first. */
|
|
40
|
+
export interface Crawl {
|
|
41
|
+
repos: FoundRepo[];
|
|
42
|
+
whole: boolean;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The repositories under `roots`, each found once, by name. A root that is itself a
|
|
46
|
+
* repository is one, and is still looked through: a home folder can be a repository of its own
|
|
47
|
+
* settings. Any other folder with a `.git` (a folder, or a worktree's file) is a repository, and the
|
|
48
|
+
* crawl goes no further into it. The crawl reads a level of folders at once, and stops when the
|
|
49
|
+
* time is up, between reads: what it found until then is the answer.
|
|
50
|
+
*/
|
|
51
|
+
export declare function crawlRepos(roots: readonly string[], options?: CrawlOptions): Promise<Crawl>;
|
|
52
|
+
/** The repos as kept, and whether a crawl with more time is looking for the rest of them. */
|
|
53
|
+
export interface RepoRead {
|
|
54
|
+
repos: FoundRepo[];
|
|
55
|
+
looking: boolean;
|
|
56
|
+
}
|
|
57
|
+
/** The kept repo list and how it is read again. */
|
|
58
|
+
export interface RepoIndex {
|
|
59
|
+
/** The repos as last found: the first read waits on a crawl, a read of an old or cut-short list crawls again in the background. */
|
|
60
|
+
read(): Promise<RepoRead>;
|
|
61
|
+
/** Crawl now, and answer what this crawl found: after a folder is added. */
|
|
62
|
+
refresh(): Promise<RepoRead>;
|
|
63
|
+
}
|
|
64
|
+
/** A {@link RepoIndex} over the folders `roots` names when a crawl starts. */
|
|
65
|
+
export declare function repoIndex(roots: () => Promise<string[]>, options?: {
|
|
66
|
+
crawl?: (roots: string[], limitMs: number) => Promise<Crawl>;
|
|
67
|
+
now?: () => number;
|
|
68
|
+
maxAgeMs?: number;
|
|
69
|
+
}): RepoIndex;
|
|
70
|
+
/**
|
|
71
|
+
* This computer's repos: one list for the daemon, first crawled when a page asks. It looks in the home folder
|
|
72
|
+
* and in the folders the person added (`repoFolders` in the registry).
|
|
73
|
+
*/
|
|
74
|
+
export declare function thisComputersRepos(): RepoIndex;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type GitRunner } from '@openagt/agent-data';
|
|
1
|
+
import { type GitRunner, type RemoteAccount } from '@openagt/agent-data';
|
|
2
2
|
import { type GitHostFor } from '../store/git-host.js';
|
|
3
3
|
/**
|
|
4
4
|
* A project's skills sent to where its agents start from (#2023): what "Save and send" and "Send"
|
|
@@ -11,6 +11,10 @@ import { type GitHostFor } from '../store/git-host.js';
|
|
|
11
11
|
* Nothing else the person has is pushed: the folder's branch is pushed as it is only when it is the
|
|
12
12
|
* default branch and holds nothing past the remote's but skill files; else the skills' files are
|
|
13
13
|
* written onto the remote's branch in a commit of their own, made without touching the folder.
|
|
14
|
+
*
|
|
15
|
+
* The remote is talked with as one of OpenAgent's accounts (`pushAccount`, the one kept at the
|
|
16
|
+
* project's Share switch, else the one runs use), never as the person's own login: with none,
|
|
17
|
+
* nothing is sent and the reason is said.
|
|
14
18
|
*/
|
|
15
19
|
/** The branch the skills go to when the default branch takes no push: one, so a second send updates the open pull request. */
|
|
16
20
|
export declare const SKILLS_BRANCH = "openagent/skills";
|
|
@@ -47,4 +51,11 @@ export type SendSkillsResult =
|
|
|
47
51
|
export declare function sendSkills(cwd: string, names: readonly string[], deps?: {
|
|
48
52
|
git?: GitRunner;
|
|
49
53
|
gitHost?: GitHostFor;
|
|
54
|
+
pushAccount?: (cwd: string) => Promise<{
|
|
55
|
+
ok: true;
|
|
56
|
+
account?: RemoteAccount;
|
|
57
|
+
} | {
|
|
58
|
+
ok: false;
|
|
59
|
+
error: string;
|
|
60
|
+
}>;
|
|
50
61
|
}): Promise<SendSkillsResult>;
|
|
@@ -67,21 +67,6 @@ export type RemoveProjectResult = {
|
|
|
67
67
|
ok: false;
|
|
68
68
|
error: string;
|
|
69
69
|
};
|
|
70
|
-
/**
|
|
71
|
-
* What the Onboarding checklist (#958) needs and no other read carries: the server's own
|
|
72
|
-
* working directory, offered as the one-click first project.
|
|
73
|
-
*
|
|
74
|
-
* Both fields are null where adding projects is not wired (the relay), so a public host
|
|
75
|
-
* never discloses its filesystem layout.
|
|
76
|
-
*/
|
|
77
|
-
export interface OnboardingSuggestion {
|
|
78
|
-
/** The server's working directory, or null when it cannot be offered: the home folder is where a service runs, not a project. */
|
|
79
|
-
cwd: string | null;
|
|
80
|
-
/** The project id for {@link cwd} when it is already registered, else null. */
|
|
81
|
-
cwdProjectId: string | null;
|
|
82
|
-
/** Whether this computer can show a window to pick a folder in: one with no screen, as a server, cannot. */
|
|
83
|
-
canPickFolder: boolean;
|
|
84
|
-
}
|
|
85
70
|
/**
|
|
86
71
|
* What a Start carries besides its prompt (#1774): the person's picks, handed to the project's
|
|
87
72
|
* `start` hook line as `DRIVER`, `MODEL`, `PUBLISH` and `BASE`. Absent leaves each to the tool the line names.
|
|
@@ -117,6 +102,32 @@ export interface StartAgentOptions {
|
|
|
117
102
|
* start is forwarded, so the machine starts an ordinary local run and does not relay onward.
|
|
118
103
|
*/
|
|
119
104
|
machine?: string;
|
|
105
|
+
/**
|
|
106
|
+
* The repos a session with no project has as context, by their folders on this computer: each is
|
|
107
|
+
* copied into the session's folder. Refused for a project, which works in its own checkout.
|
|
108
|
+
*/
|
|
109
|
+
repos?: string[];
|
|
110
|
+
/**
|
|
111
|
+
* The account at the git host this session works as, by its login: one of the accounts the
|
|
112
|
+
* computer the run goes to has there. Absent, the one that computer's runs use. The run's record
|
|
113
|
+
* keeps it, and a resume goes on as it.
|
|
114
|
+
*/
|
|
115
|
+
account?: string;
|
|
116
|
+
/**
|
|
117
|
+
* The agent the session is on, by its id (`~/.openagent/agents/<id>.json`): its skills and
|
|
118
|
+
* accounts. Absent, the default agent. The run's record keeps it, and a resume goes on with it.
|
|
119
|
+
*/
|
|
120
|
+
agent?: string;
|
|
121
|
+
/** Skills the session gets on top of its agent's, by name: the "Skills" menu's picks for this session. Absent, none. */
|
|
122
|
+
skillsOn?: string[];
|
|
123
|
+
/** Skills of its agent's the session does not get, by name. Absent, none. */
|
|
124
|
+
skillsOff?: string[];
|
|
125
|
+
/**
|
|
126
|
+
* Which of the project's own skills stay in the session's checkout: `none`, or their names.
|
|
127
|
+
* Absent, every one. Refused for a session with no project. The run's record keeps these three,
|
|
128
|
+
* and a resume goes on with them.
|
|
129
|
+
*/
|
|
130
|
+
projectSkills?: 'none' | string[];
|
|
120
131
|
}
|
|
121
132
|
/**
|
|
122
133
|
* The outcome of a Start attempt (#345): the id of the run the project's start hook began, or why
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { type AgentAccounts, type AgentRecord } from '@openagt/agent-data';
|
|
2
|
+
import { type AccountResult } from './accounts.js';
|
|
3
|
+
import { type AgentLoginsOn } from '../dashboard/logins-sync.js';
|
|
4
|
+
export type { AgentAccounts, AgentRecord } from '@openagt/agent-data';
|
|
5
|
+
export type { AgentLoginsOn } from '../dashboard/logins-sync.js';
|
|
6
|
+
/** One skill an agent can be given. */
|
|
7
|
+
export interface AgentSkillChoice {
|
|
8
|
+
name: string;
|
|
9
|
+
/** The one line the skill's text says of itself. */
|
|
10
|
+
description: string;
|
|
11
|
+
}
|
|
12
|
+
export interface AgentsView {
|
|
13
|
+
/** Every agent, the default first. */
|
|
14
|
+
agents: AgentRecord[];
|
|
15
|
+
/** The skills to pick from, in groups: the default agent's first, then the catalogue's. */
|
|
16
|
+
skills: {
|
|
17
|
+
title: string;
|
|
18
|
+
skills: AgentSkillChoice[];
|
|
19
|
+
}[];
|
|
20
|
+
/** OpenAgent's GitHub accounts on this computer. */
|
|
21
|
+
github?: {
|
|
22
|
+
accounts: string[];
|
|
23
|
+
};
|
|
24
|
+
/** The Claude accounts of the Permissions page, by id and name. */
|
|
25
|
+
claude: {
|
|
26
|
+
id: string;
|
|
27
|
+
name: string;
|
|
28
|
+
}[];
|
|
29
|
+
/** The Codex accounts, the same way. */
|
|
30
|
+
codex: {
|
|
31
|
+
id: string;
|
|
32
|
+
name: string;
|
|
33
|
+
}[];
|
|
34
|
+
}
|
|
35
|
+
/** Every agent, and what one can be given. (`onAgents` names the runs' list already.) */
|
|
36
|
+
export declare function onAgentsList(): Promise<AgentsView>;
|
|
37
|
+
/** What the page sends to save an agent: a new one has no id yet. */
|
|
38
|
+
export interface AgentChange {
|
|
39
|
+
id?: string;
|
|
40
|
+
name: string;
|
|
41
|
+
skills: string[];
|
|
42
|
+
accounts: AgentAccounts;
|
|
43
|
+
/** Whether its sessions get the project's own skills. */
|
|
44
|
+
projectSkills: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Save an agent: a new one under the id its name gives, an existing one under its own. The name
|
|
48
|
+
* must give an id, every skill must be one this computer carries, and every account one it knows;
|
|
49
|
+
* else nothing is written and the reason is said.
|
|
50
|
+
*/
|
|
51
|
+
export declare function sendSaveAgent(change: AgentChange): Promise<({
|
|
52
|
+
ok: true;
|
|
53
|
+
id: string;
|
|
54
|
+
} | {
|
|
55
|
+
ok: false;
|
|
56
|
+
error: string;
|
|
57
|
+
}) & Partial<AccountResult>>;
|
|
58
|
+
/** How the agents' GitHub accounts stand on each device of the person's. A server copies to no device: none. */
|
|
59
|
+
export declare function onAgentLogins(): Promise<AgentLoginsOn[]>;
|
|
60
|
+
/** Copy the agents' GitHub accounts to every device again, now: the press for one that failed. */
|
|
61
|
+
export declare function sendCopyAgentLogins(): Promise<AccountResult>;
|
|
62
|
+
/** Remove an agent; the default agent stays. */
|
|
63
|
+
export declare function sendRemoveAgent(id: string): Promise<AccountResult>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** Data that is not backed up. */
|
|
2
|
+
export interface BackupGap {
|
|
3
|
+
/** The person's own folder, or one shared project's data. */
|
|
4
|
+
kind: 'personal' | 'project';
|
|
5
|
+
/** The project, for a shared project's data. */
|
|
6
|
+
projectId?: string;
|
|
7
|
+
/** The project's name, for a shared project's data. */
|
|
8
|
+
project?: string;
|
|
9
|
+
/** The repository it syncs with, as shown: `github.com/me/agent`. */
|
|
10
|
+
address: string;
|
|
11
|
+
/** The repository's page, when it has one. */
|
|
12
|
+
url?: string;
|
|
13
|
+
/** The git host it is sent to. */
|
|
14
|
+
host: string;
|
|
15
|
+
/** Changes made here that wait, when they can be counted. */
|
|
16
|
+
waiting?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface BackupView {
|
|
19
|
+
gaps: BackupGap[];
|
|
20
|
+
}
|
|
21
|
+
/** Everything not backed up now. OpenAgent's accounts that could back it up are the git hosts' own read (`onGitHosts`). */
|
|
22
|
+
export declare function onBackup(): Promise<BackupView>;
|
|
23
|
+
/**
|
|
24
|
+
* Back up `gap` as `login`, one of OpenAgent's accounts at its host, from now on: what waited is
|
|
25
|
+
* sent now. A send the repository refuses leaves it as it was, the reason said.
|
|
26
|
+
*/
|
|
27
|
+
export declare function sendBackUpAs(gap: {
|
|
28
|
+
kind: 'personal' | 'project';
|
|
29
|
+
projectId?: string;
|
|
30
|
+
}, login: string): Promise<{
|
|
31
|
+
ok: true;
|
|
32
|
+
} | {
|
|
33
|
+
ok: false;
|
|
34
|
+
error: string;
|
|
35
|
+
}>;
|
|
@@ -23,7 +23,7 @@ export type CopiedView = {
|
|
|
23
23
|
ok: false;
|
|
24
24
|
error: string;
|
|
25
25
|
};
|
|
26
|
-
/** What
|
|
26
|
+
/** What this device keeps from the person's computers, without how full each is: what a computer compares its own with. A device that is no server keeps git hosts' accounts alone. */
|
|
27
27
|
export declare function onCopiedLogins(): Promise<CopiedView>;
|
|
28
28
|
/**
|
|
29
29
|
* Take a login a computer of the person's handed over: it goes where its tool reads it, in place
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/** A repository at a git host, not looked for on this computer. */
|
|
2
|
+
export interface HostedRepo {
|
|
3
|
+
/** `<host>/<owner>/<name>`: what a clone is asked for. */
|
|
4
|
+
address: string;
|
|
5
|
+
url: string;
|
|
6
|
+
private: boolean;
|
|
7
|
+
description?: string;
|
|
8
|
+
/** Why it is listed: the account it is one of, or the owner the person named. */
|
|
9
|
+
from: string;
|
|
10
|
+
}
|
|
11
|
+
/** How old the kept lists may be before a read asks the hosts again, behind the answer. */
|
|
12
|
+
export declare const HOSTED_MAX_AGE_MS: number;
|
|
13
|
+
/** How long a first read waits for the hosts before it answers with nothing yet. */
|
|
14
|
+
export declare const HOSTED_FIRST_WAIT_MS = 1500;
|
|
15
|
+
/** What a read answers: the lists as kept, and whether the hosts are being asked now. */
|
|
16
|
+
export interface HostedRead {
|
|
17
|
+
repos: HostedRepo[];
|
|
18
|
+
loading: boolean;
|
|
19
|
+
}
|
|
20
|
+
/** What a listing is asked through: the host's package, and OpenAgent's accounts and the person's owners. */
|
|
21
|
+
export declare const hostedWiring: {
|
|
22
|
+
run: (host: string, args: string[]) => Promise<{
|
|
23
|
+
ok: true;
|
|
24
|
+
output: unknown;
|
|
25
|
+
} | {
|
|
26
|
+
ok: false;
|
|
27
|
+
error: string;
|
|
28
|
+
}>;
|
|
29
|
+
hosts: () => Promise<import("./send-as.js").SendAsHost[]>;
|
|
30
|
+
owners: () => Promise<string[]>;
|
|
31
|
+
now: () => number;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* The hosts' repositories as kept. The first read waits {@link HOSTED_FIRST_WAIT_MS} at most, and
|
|
35
|
+
* then says they are still being read; a read of old lists answers them and asks again behind.
|
|
36
|
+
*/
|
|
37
|
+
export declare function readHosted(): Promise<HostedRead>;
|
|
38
|
+
/** Ask the hosts again now, and answer what they listed: after the person named another owner. */
|
|
39
|
+
export declare function refreshHosted(): Promise<HostedRepo[]>;
|
|
40
|
+
/** Forget the kept lists: for a test. */
|
|
41
|
+
export declare function forgetHosted(): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { onAgents, onStartedName, onModuleAgents, onAgent, onAgentsDoing, onDocs, onQueue, onOverview, onRecentAgents, onInterventions, onActivity, onDashboard, onGitHostHome, onRepositoryOffer, onGitStatus, onProjectFiles, onRetainedWorktrees, onAgentWorktree, onAgentMainBranch, 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, sendShareRecords, sendPickProjectDirectory,
|
|
4
|
+
export { onProjects, sendAddProject, sendStartedAgain, onCloneTarget, sendAddProjectFromAddress, sendRemoveProject, sendShareRecords, sendPickProjectDirectory, onRepos, sendAddRepoFolder, onCommands, onStartBranches, 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';
|
|
@@ -11,7 +11,8 @@ export { onModules, runModuleCommand, runComputerCommand, runComputerCommandOn,
|
|
|
11
11
|
export { onProjectSkills, sendChangeSkills, sendProjectSkills, type ProjectSkills, type ProjectSkill, type ChangeSkillsResult } from './skills.js';
|
|
12
12
|
export { onPerson, type Person } from './person.js';
|
|
13
13
|
export { onGitHostPeople, type HostPerson } from './people.js';
|
|
14
|
-
export {
|
|
14
|
+
export { onAgentsList, sendSaveAgent, sendRemoveAgent, onAgentLogins, sendCopyAgentLogins, type AgentsView, type AgentChange, type AgentSkillChoice, type AgentLoginsOn } from './agents.js';
|
|
15
|
+
export { onGitHosts, sendUseGitHostAccount, sendForgetGitHostAccount, sendGitHostLogin, sendGitHostInstall, onAgentState, sendAgentFix, type GitHostsView, type GitHostRow, type GitHostAccount, type GitHostProvider, type AgentState } from './logins.js';
|
|
15
16
|
export { onPersonalFolder, sendSyncPersonalFolder, sendStopSyncingPersonalFolder, type PersonalFolderView } from './personal-folder.js';
|
|
16
17
|
export { onProjectAgentData, type ProjectAgentData, type KeptData } from './project-agent-data.js';
|
|
17
18
|
export { onServerLogins, sendUseLoginsOn, sendAllowLogins, sendSettleLogin, type ServerLoginsView, type ServerLogins, type LoginThere } from './server-logins.js';
|
|
@@ -47,7 +47,7 @@ export declare const gitHostPackages: {
|
|
|
47
47
|
error: string;
|
|
48
48
|
}>;
|
|
49
49
|
};
|
|
50
|
-
/** Runs use `login
|
|
50
|
+
/** Runs use `login`, one of OpenAgent's own accounts at `host`, from now on. */
|
|
51
51
|
export declare function sendUseGitHostAccount(host: string, login: string): Promise<AccountResult>;
|
|
52
52
|
/**
|
|
53
53
|
* Take an account off at `host`, on this computer: its tool forgets it, and its token goes on
|
|
@@ -65,6 +65,8 @@ export declare function sendGitHostLogin(host: string): Promise<{
|
|
|
65
65
|
ok: false;
|
|
66
66
|
error: string;
|
|
67
67
|
}>;
|
|
68
|
+
/** Give up the login under way at `host`: its tool stops waiting, and the press to add an account is back. */
|
|
69
|
+
export declare function sendStopGitHostLogin(host: string): Promise<AccountResult>;
|
|
68
70
|
/** Install the tool `host`'s package works through, with the command it declared; the card follows it. */
|
|
69
71
|
export declare function sendGitHostInstall(host: string): Promise<AccountResult>;
|
|
70
72
|
/** How the coding agent's CLI is on this computer, and what a press does about what is missing. */
|
|
@@ -91,35 +93,3 @@ export declare function onAgentState(driver?: string): Promise<AgentState>;
|
|
|
91
93
|
* in {@link onAgentState}.
|
|
92
94
|
*/
|
|
93
95
|
export declare function sendAgentFix(driver: string): Promise<AccountResult>;
|
|
94
|
-
/** A project's own accounts, beside the computer's: shown for a kind the computer has two or more of, or that the project names already. */
|
|
95
|
-
export interface ProjectAccountsView {
|
|
96
|
-
gitHost?: {
|
|
97
|
-
host: string;
|
|
98
|
-
name: string;
|
|
99
|
-
/** The host's word for a pull request. */
|
|
100
|
-
requestWord: string;
|
|
101
|
-
accounts: string[];
|
|
102
|
-
/** The computer's runs' account. */
|
|
103
|
-
computer?: string;
|
|
104
|
-
/** The project's own, when it names one. */
|
|
105
|
-
project?: string;
|
|
106
|
-
};
|
|
107
|
-
claude?: ProjectAgentAccounts;
|
|
108
|
-
codex?: ProjectAgentAccounts;
|
|
109
|
-
}
|
|
110
|
-
/** One agent's accounts a project may pick from, and its own few. */
|
|
111
|
-
export interface ProjectAgentAccounts {
|
|
112
|
-
accounts: {
|
|
113
|
-
id: string;
|
|
114
|
-
name: string;
|
|
115
|
-
}[];
|
|
116
|
-
/** The project's own few, by id, when it names some. */
|
|
117
|
-
project?: string[];
|
|
118
|
-
}
|
|
119
|
-
export declare function onProjectAccounts(projectId: string): Promise<ProjectAccountsView | null>;
|
|
120
|
-
/** Change a project's own accounts: a value sets one, `null` goes back to the computer's. Kept on this computer, never in the repository. */
|
|
121
|
-
export declare function sendProjectAccounts(projectId: string, change: {
|
|
122
|
-
gitHost?: string | null;
|
|
123
|
-
claude?: string[] | null;
|
|
124
|
-
codex?: string[] | null;
|
|
125
|
-
}): Promise<AccountResult>;
|
|
@@ -15,9 +15,10 @@ export interface DashboardModule {
|
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
17
|
* Every module the dashboard loads (#1774), one per package. First the computer's, which are
|
|
18
|
-
* there with no project added. Then every module
|
|
19
|
-
* that
|
|
20
|
-
* dashboard narrows them itself to a picked project's. A package several
|
|
18
|
+
* there with no project added. Then every module whose pages a registered project shows, with
|
|
19
|
+
* the projects that show them: with no project picked the sidebar and the pages are every
|
|
20
|
+
* project's, and the dashboard narrows them itself to a picked project's. A package several
|
|
21
|
+
* projects install is loaded once, from
|
|
21
22
|
* the first of them in the registry's order; its page then reads each project through that
|
|
22
23
|
* project's own command. A project that cannot be read contributes nothing.
|
|
23
24
|
*/
|
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
import { type Person } from '../dashboard/person.js';
|
|
2
2
|
export type { Person } from '../dashboard/person.js';
|
|
3
|
-
/** The person at this dashboard, for the foot of its sidebar (`readPerson`): another person's, for a page their device opened. */
|
|
3
|
+
/** The person at this dashboard, for the foot of its sidebar and Settings › Profile (`readPerson`): another person's, for a page their device opened. */
|
|
4
4
|
export declare function onPerson(): Promise<Person>;
|
|
5
|
+
/** Call the person `name` in OpenAgent, on every computer of theirs: the picture stays as it was. */
|
|
6
|
+
export declare function sendSavePersonName(name: string): Promise<{
|
|
7
|
+
ok: true;
|
|
8
|
+
} | {
|
|
9
|
+
ok: false;
|
|
10
|
+
error: string;
|
|
11
|
+
}>;
|
|
12
|
+
/** Show no picture of the person: their initials instead. */
|
|
13
|
+
export declare function sendRemovePersonPicture(): Promise<{
|
|
14
|
+
ok: true;
|
|
15
|
+
} | {
|
|
16
|
+
ok: false;
|
|
17
|
+
error: string;
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Copy the name and picture of GitHub's public profile of `login` into the person's own, once:
|
|
21
|
+
* read with no login, and never again after this press.
|
|
22
|
+
*/
|
|
23
|
+
export declare function sendSyncPersonFromGitHub(login: string): Promise<{
|
|
24
|
+
ok: true;
|
|
25
|
+
changed: boolean;
|
|
26
|
+
login: string;
|
|
27
|
+
} | {
|
|
28
|
+
ok: false;
|
|
29
|
+
error: string;
|
|
30
|
+
}>;
|
|
31
|
+
/** Forget the person's own name and picture: git's name, or this computer's user, again. */
|
|
32
|
+
export declare function sendForgetPerson(): Promise<{
|
|
33
|
+
ok: true;
|
|
34
|
+
} | {
|
|
35
|
+
ok: false;
|
|
36
|
+
error: string;
|
|
37
|
+
}>;
|