@openagt/dashboard 0.49.0 → 0.50.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 +2 -2
- package/dist/built-in.d.ts.map +1 -1
- package/dist/built-in.js +3 -3
- package/dist/built-in.js.map +1 -1
- package/dist/daemon-runtime.js +13 -13
- package/dist/daemon-runtime.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +5 -2
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/agent-updates.d.ts +39 -0
- package/dist/dashboard/agent-updates.d.ts.map +1 -0
- package/dist/dashboard/agent-updates.js +87 -0
- package/dist/dashboard/agent-updates.js.map +1 -0
- package/dist/dashboard/copied-logins.d.ts +0 -2
- package/dist/dashboard/copied-logins.d.ts.map +1 -1
- package/dist/dashboard/copied-logins.js +2 -6
- package/dist/dashboard/copied-logins.js.map +1 -1
- package/dist/dashboard/copy-logins.d.ts.map +1 -1
- package/dist/dashboard/copy-logins.js +3 -3
- package/dist/dashboard/copy-logins.js.map +1 -1
- package/dist/dashboard/logins-sync.d.ts.map +1 -1
- package/dist/dashboard/logins-sync.js +5 -5
- package/dist/dashboard/logins-sync.js.map +1 -1
- package/dist/dashboard/machine-runs.d.ts.map +1 -1
- package/dist/dashboard/machine-runs.js +17 -9
- package/dist/dashboard/machine-runs.js.map +1 -1
- package/dist/dashboard/models.d.ts +5 -1
- package/dist/dashboard/models.d.ts.map +1 -1
- package/dist/dashboard/models.js +11 -6
- package/dist/dashboard/models.js.map +1 -1
- package/dist/dashboard/quota.d.ts.map +1 -1
- package/dist/dashboard/quota.js +9 -1
- package/dist/dashboard/quota.js.map +1 -1
- package/dist/dashboard/rpc-serve.d.ts +4 -0
- package/dist/dashboard/rpc-serve.d.ts.map +1 -1
- package/dist/dashboard/rpc-serve.js.map +1 -1
- package/dist/dashboard/server.d.ts +3 -0
- package/dist/dashboard/server.d.ts.map +1 -1
- package/dist/dashboard/server.js +1 -0
- package/dist/dashboard/server.js.map +1 -1
- package/dist/dashboard-bundle/assets/host/module-Cj4JvDNR.js +1 -0
- package/dist/dashboard-bundle/assets/main-C337ghZH.css +2 -0
- package/dist/dashboard-bundle/assets/main-Dws_coS4.js +148 -0
- package/dist/dashboard-bundle/assets/module-pxUBfZug.js +14 -0
- package/dist/dashboard-bundle/index.html +4 -4
- package/dist/dashboard-rpc/accounts.d.ts +10 -47
- package/dist/dashboard-rpc/accounts.d.ts.map +1 -1
- package/dist/dashboard-rpc/accounts.js +19 -151
- package/dist/dashboard-rpc/accounts.js.map +1 -1
- package/dist/dashboard-rpc/context.d.ts +3 -0
- package/dist/dashboard-rpc/context.d.ts.map +1 -1
- package/dist/dashboard-rpc/context.js +4 -0
- package/dist/dashboard-rpc/context.js.map +1 -1
- package/dist/dashboard-rpc/copied-logins.d.ts.map +1 -1
- package/dist/dashboard-rpc/copied-logins.js +1 -1
- package/dist/dashboard-rpc/copied-logins.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/logins.d.ts.map +1 -1
- package/dist/dashboard-rpc/logins.js +4 -3
- package/dist/dashboard-rpc/logins.js.map +1 -1
- package/dist/dashboard-rpc/machines.d.ts +7 -0
- package/dist/dashboard-rpc/machines.d.ts.map +1 -1
- package/dist/dashboard-rpc/machines.js +3 -3
- package/dist/dashboard-rpc/machines.js.map +1 -1
- package/dist/dashboard-rpc/models.d.ts +5 -0
- package/dist/dashboard-rpc/models.d.ts.map +1 -1
- package/dist/dashboard-rpc/models.js +17 -2
- package/dist/dashboard-rpc/models.js.map +1 -1
- package/dist/dashboard-rpc/reads.d.ts.map +1 -1
- package/dist/dashboard-rpc/reads.js +3 -1
- package/dist/dashboard-rpc/reads.js.map +1 -1
- package/dist/dashboard-rpc/test-context.d.ts.map +1 -1
- package/dist/dashboard-rpc/test-context.js +2 -1
- package/dist/dashboard-rpc/test-context.js.map +1 -1
- package/dist/module-types/dashboard/components/driver-logos.d.ts +15 -0
- package/dist/module-types/dashboard/components/ui/card.d.ts +1 -1
- package/dist/module-types/dashboard/components/ui/gauge.d.ts +5 -0
- package/dist/module-types/dashboard/module/index.d.ts +41 -43
- package/dist/module-types/dashboard/rpc/machines.d.ts +3 -3
- package/dist/module-types/dashboard/rpc/models.d.ts +3 -0
- package/dist/module-types/src/built-in.d.ts +2 -2
- package/dist/module-types/src/dashboard/agent-updates.d.ts +38 -0
- package/dist/module-types/src/dashboard/copied-logins.d.ts +0 -2
- package/dist/module-types/src/dashboard/models.d.ts +5 -1
- package/dist/module-types/src/dashboard/rpc-serve.d.ts +4 -0
- package/dist/module-types/src/dashboard-rpc/accounts.d.ts +10 -47
- package/dist/module-types/src/dashboard-rpc/context.d.ts +3 -0
- package/dist/module-types/src/dashboard-rpc/index.d.ts +1 -1
- package/dist/module-types/src/dashboard-rpc/machines.d.ts +7 -0
- package/dist/module-types/src/dashboard-rpc/models.d.ts +5 -0
- package/dist/module-types/src/project-modules.d.ts +28 -29
- package/dist/module-types/src/quota-poller.d.ts +1 -1
- package/dist/module-types/src/reached-by-line.d.ts +1 -0
- package/dist/module-types/src/registry.d.ts +19 -7
- package/dist/overview-layout.d.ts.map +1 -1
- package/dist/overview-layout.js.map +1 -1
- package/dist/project-modules.d.ts +28 -29
- package/dist/project-modules.d.ts.map +1 -1
- package/dist/project-modules.js +47 -46
- package/dist/project-modules.js.map +1 -1
- package/dist/quota-poller.d.ts +1 -1
- package/dist/quota-poller.d.ts.map +1 -1
- package/dist/quota-poller.js +5 -8
- package/dist/quota-poller.js.map +1 -1
- package/dist/reached-by-line.d.ts +1 -0
- package/dist/reached-by-line.d.ts.map +1 -1
- package/dist/reached-by-line.js +1 -1
- package/dist/reached-by-line.js.map +1 -1
- package/dist/registry.d.ts +19 -7
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +39 -9
- package/dist/registry.js.map +1 -1
- package/package.json +17 -16
- package/dist/dashboard-bundle/assets/host/module-BdU8htGM.js +0 -1
- package/dist/dashboard-bundle/assets/main-CbO78PA9.css +0 -2
- package/dist/dashboard-bundle/assets/main-DyfbReQD.js +0 -148
- package/dist/dashboard-bundle/assets/module-BKRGk-mY.js +0 -14
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Health } from '../../src/health.js';
|
|
2
|
-
import type { CardWidth } from '../../src/overview-layout.js';
|
|
3
2
|
import { type ComponentType } from 'react';
|
|
3
|
+
import type { CardWidth } from '../../src/overview-layout.js';
|
|
4
4
|
import type { AgentStatus } from '../../src/index.js';
|
|
5
5
|
import type { ModuleAgent, ModuleAgentsWanted } from '../../src/dashboard/module-agents.js';
|
|
6
6
|
import type { ModuleCommandResult, ModuleReadResult } from '../rpc/modules.js';
|
|
@@ -12,6 +12,30 @@ export interface ModuleProject {
|
|
|
12
12
|
/** Whether one of the project's packages provides a git host; without one no pull request can be opened there. */
|
|
13
13
|
gitHost: boolean;
|
|
14
14
|
}
|
|
15
|
+
/** What a module card is rendered with: the projects that have its package, never none: the card is not drawn then, but for a package that is this computer's. With a project picked in the dashboard, that one alone. A card has no URL and no sub-path. */
|
|
16
|
+
export interface ModuleCardProps {
|
|
17
|
+
/** The registered projects that have the module's package, in the registry's order; with a project picked in the dashboard, that project alone. */
|
|
18
|
+
projects: ModuleProject[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A card a module adds to the Overview (#1818): the package's own summary of its data across the
|
|
22
|
+
* projects that have it, drawn beside the dashboard's own cards. Drawn only when one of the
|
|
23
|
+
* projects the Overview shows has the package: with a project picked, only when that project has it.
|
|
24
|
+
*/
|
|
25
|
+
export interface ModuleCard {
|
|
26
|
+
/** Which card this is, for the shell's key and its error line; never shown as a title. */
|
|
27
|
+
id: string;
|
|
28
|
+
/** Its name where the person arranges the Overview's cards: what its title says ("Hot tickets"). */
|
|
29
|
+
label: string;
|
|
30
|
+
/** How wide it stands until the person picks: half the Overview when unsaid. */
|
|
31
|
+
width?: CardWidth;
|
|
32
|
+
/** The narrowest it fits: a third of the Overview when unsaid. */
|
|
33
|
+
minWidth?: CardWidth;
|
|
34
|
+
/** Its place among every installed package's cards, lower first; 50 when unsaid, ties by package name. */
|
|
35
|
+
order?: number;
|
|
36
|
+
/** The card itself. */
|
|
37
|
+
Card: ComponentType<ModuleCardProps>;
|
|
38
|
+
}
|
|
15
39
|
/**
|
|
16
40
|
* What a module page is rendered with. A page reads its sub-path and navigates within itself
|
|
17
41
|
* through {@link ModuleHost.openPage}; the dashboard's own pages reach it the same way, by the
|
|
@@ -103,30 +127,6 @@ export interface LinkAction {
|
|
|
103
127
|
*/
|
|
104
128
|
run(host: ModuleHost, projectId: string, links: ModuleLink[]): Promise<LinkActionResult>;
|
|
105
129
|
}
|
|
106
|
-
/** What a module card is rendered with: the projects that have its package, never none: the card is not drawn then. With a project picked in the dashboard, that project alone. A card has no URL and no sub-path. */
|
|
107
|
-
export interface ModuleCardProps {
|
|
108
|
-
/** The registered projects that have the module's package, in the registry's order; with a project picked in the dashboard, that project alone. Never empty. */
|
|
109
|
-
projects: ModuleProject[];
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* A card a module adds to the Overview (#1818): the package's own summary of its data across the
|
|
113
|
-
* projects that have it, drawn beside the dashboard's own cards. Drawn only when one of the
|
|
114
|
-
* projects the Overview shows has the package: with a project picked, only when that project has it.
|
|
115
|
-
*/
|
|
116
|
-
export interface ModuleCard {
|
|
117
|
-
/** Which card this is, for the shell's key and its error line; never shown as a title. */
|
|
118
|
-
id: string;
|
|
119
|
-
/** Its name where the person arranges the Overview's cards: what its title says ("Hot tickets"). */
|
|
120
|
-
label: string;
|
|
121
|
-
/** How wide it stands until the person picks: half the Overview when unsaid. */
|
|
122
|
-
width?: CardWidth;
|
|
123
|
-
/** The narrowest it fits: a third of the Overview when unsaid. */
|
|
124
|
-
minWidth?: CardWidth;
|
|
125
|
-
/** Its place among every installed package's cards, lower first; 50 when unsaid, ties by package name. */
|
|
126
|
-
order?: number;
|
|
127
|
-
/** The card itself. */
|
|
128
|
-
Card: ComponentType<ModuleCardProps>;
|
|
129
|
-
}
|
|
130
130
|
/** What a Settings section is rendered with: the projects whose settings it shows and saves. */
|
|
131
131
|
export interface ModuleSettingsProps {
|
|
132
132
|
/**
|
|
@@ -278,10 +278,12 @@ export interface ModuleRunSlots {
|
|
|
278
278
|
}
|
|
279
279
|
/** What a module's browser part default-exports. */
|
|
280
280
|
export interface ModuleDefinition {
|
|
281
|
-
/** The pages the module adds, each with a sidebar row. */
|
|
282
|
-
pages?: ModulePage[];
|
|
283
281
|
/** The cards the module adds to the Overview. */
|
|
284
282
|
cards?: ModuleCard[];
|
|
283
|
+
/** A stylesheet to load with the module, relative to the module's browser part's own URL. */
|
|
284
|
+
stylesheet?: string;
|
|
285
|
+
/** The pages the module adds, each with a sidebar row. */
|
|
286
|
+
pages?: ModulePage[];
|
|
285
287
|
/** The actions the module offers on the links dashboard pages show, wherever the link's project has the module's package. */
|
|
286
288
|
linkActions?: LinkAction[];
|
|
287
289
|
/** The panes the module adds beside the chat. */
|
|
@@ -300,8 +302,6 @@ export interface ModuleDefinition {
|
|
|
300
302
|
usageLimit?: ModuleUsageLimit;
|
|
301
303
|
/** The commands the module starts by itself, for the other pages to say. */
|
|
302
304
|
schedule?: ModuleSchedule;
|
|
303
|
-
/** A stylesheet to load with the module, relative to the module's browser part's own URL. */
|
|
304
|
-
stylesheet?: string;
|
|
305
305
|
}
|
|
306
306
|
/** Type the default export: `export default defineModule({ ... })`. */
|
|
307
307
|
export declare function defineModule(definition: ModuleDefinition): ModuleDefinition;
|
|
@@ -333,10 +333,10 @@ export interface ModuleHost {
|
|
|
333
333
|
act(projectId: string, args: string[], command?: string): Promise<ModuleCommandResult>;
|
|
334
334
|
/**
|
|
335
335
|
* Run one of the module package's own commands in no project, for a package that is this
|
|
336
|
-
* computer's (the door to it, its servers): what such a package keeps is the
|
|
337
|
-
* its page reads and changes it with no project added. Refused for any other
|
|
338
|
-
* `input` is what the command reads on standard input: a secret, which no other
|
|
339
|
-
* this computer sees there, as it would among the arguments.
|
|
336
|
+
* computer's (the door to it, its servers, its accounts): what such a package keeps is the
|
|
337
|
+
* computer's, so its page reads and changes it with no project added. Refused for any other
|
|
338
|
+
* package. `input` is what the command reads on standard input: a secret, which no other
|
|
339
|
+
* program on this computer sees there, as it would among the arguments.
|
|
340
340
|
*/
|
|
341
341
|
runComputerCommand(args: string[], command?: string, input?: string): Promise<ModuleCommandResult>;
|
|
342
342
|
/**
|
|
@@ -572,21 +572,21 @@ export type ModuleHostBase = Omit<ModuleHost, 'runCommand' | 'act' | 'runCompute
|
|
|
572
572
|
export declare function moduleHost(base: ModuleHostBase, opts?: {
|
|
573
573
|
acts?: boolean;
|
|
574
574
|
}): ModuleHost;
|
|
575
|
-
/**
|
|
576
|
-
|
|
577
|
-
* dashboard's services. A test of a module page provides a whole host here, commands included,
|
|
578
|
-
* and {@link useModuleHost} hands it over as it is.
|
|
579
|
-
*/
|
|
580
|
-
export declare const ModuleHostContext: import("react").Context<ModuleHost | ModuleHostBase | null>;
|
|
575
|
+
/** Set by the dashboard around every module piece it renders, with the module's whole host; a test of a module page provides one here. */
|
|
576
|
+
export declare const ModuleHostContext: import("react").Context<ModuleHost | null>;
|
|
581
577
|
/** The dashboard's services for the module being rendered. Only valid inside a module page. */
|
|
582
578
|
export declare function useModuleHost(): ModuleHost;
|
|
583
579
|
export { Button, buttonVariants, type ButtonProps } from '../components/ui/button.js';
|
|
584
|
-
export { Badge } from '../components/ui/badge.js';
|
|
585
580
|
export { Card, CardHeader, CardTitle, CardTitleLink, CardContent } from '../components/ui/card.js';
|
|
586
581
|
export { Skeleton } from '../components/ui/skeleton.js';
|
|
582
|
+
export { Input } from '../components/ui/input.js';
|
|
583
|
+
export { GaugeFace } from '../components/ui/gauge.js';
|
|
584
|
+
export { ClaudeLogo, CodexLogo } from '../components/driver-logos.js';
|
|
585
|
+
export { cn } from '../lib/utils.js';
|
|
586
|
+
export { usePolled, useLoaded, forgetRemembered } from '../lib/use-async.js';
|
|
587
|
+
export { Badge } from '../components/ui/badge.js';
|
|
587
588
|
export { Checkbox } from '../components/ui/checkbox.js';
|
|
588
589
|
export { Switch } from '../components/ui/switch.js';
|
|
589
|
-
export { Input } from '../components/ui/input.js';
|
|
590
590
|
export { Textarea } from '../components/ui/textarea.js';
|
|
591
591
|
export { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '../components/ui/table.js';
|
|
592
592
|
export { Label } from '../components/ui/label.js';
|
|
@@ -608,7 +608,6 @@ export { FileIcon } from '../components/FileIcon.js';
|
|
|
608
608
|
export { Markdown } from '../components/Markdown.js';
|
|
609
609
|
export { StartAgentButton } from '../components/StartAgentButton.js';
|
|
610
610
|
export { LinkActions, type ProjectLinks, type LinkTargets } from '../components/LinkActions.js';
|
|
611
|
-
export { cn } from '../lib/utils.js';
|
|
612
611
|
export { MachineMark } from '../components/MachineMark.js';
|
|
613
612
|
export { machineKind, machineName, type MachineKind } from '../../src/client.js';
|
|
614
613
|
export { SettingsSection, SettingsRow, SettingsSelectRow, type SettingsOption } from '../components/SettingsRows.js';
|
|
@@ -619,7 +618,6 @@ export { reachedByLine } from '../../src/client.js';
|
|
|
619
618
|
export { useCodingAgents, type CodingAgent } from '../lib/models.js';
|
|
620
619
|
export { MAX_SPEND_OFFSET } from '../../src/preference-defaults.js';
|
|
621
620
|
export { formatRelative, formatDateTime, formatDuration, formatAge } from '../lib/format-date.js';
|
|
622
|
-
export { usePolled, useLoaded, forgetRemembered } from '../lib/use-async.js';
|
|
623
621
|
export { useNarrow } from '../lib/use-narrow.js';
|
|
624
622
|
export { Waiting } from '../components/Waiting.js';
|
|
625
623
|
export { useHighlighted, Pieces, type Piece } from '../lib/highlight.js';
|
|
@@ -34,8 +34,8 @@ export declare const sendMachineTold: (machineId: string) => Promise<{
|
|
|
34
34
|
ok: boolean;
|
|
35
35
|
}>;
|
|
36
36
|
export declare const onMachineLogins: (machineId: string) => Promise<impl.MachineLoginsResult>;
|
|
37
|
-
export declare const onMachineAgentAccounts: (machineId: string, agent: import("
|
|
38
|
-
export declare const sendMachineAgentAccountFirst: (machineId: string, agent: import("
|
|
37
|
+
export declare const onMachineAgentAccounts: (machineId: string, agent: import("@openagt/skill-account-rotation").AccountsAgent) => Promise<import("../../src/dashboard-rpc/accounts.js").AccountsView | null>;
|
|
38
|
+
export declare const sendMachineAgentAccountFirst: (machineId: string, agent: import("@openagt/skill-account-rotation").AccountsAgent, account: string) => Promise<import("../../src/dashboard-rpc/accounts.js").AccountResult>;
|
|
39
39
|
export declare const onMachineGitHosts: (machineId: string) => Promise<import("../../src/dashboard-rpc/logins.js").GitHostsView | null>;
|
|
40
40
|
export declare const sendMachineGitHostAccount: (machineId: string, host: string, login: string) => Promise<import("../../src/dashboard-rpc/accounts.js").AccountResult>;
|
|
41
|
-
export declare const sendMachineRemoveAgentAccount: (machineId: string, agent: import("
|
|
41
|
+
export declare const sendMachineRemoveAgentAccount: (machineId: string, agent: import("@openagt/skill-account-rotation").AccountsAgent, account: string) => Promise<import("../../src/dashboard-rpc/accounts.js").AccountResult>;
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
export type * from '../../src/dashboard/models.js';
|
|
2
|
+
export type { AgentUpdate, AgentUpdateResult } from '../../src/dashboard/agent-updates.js';
|
|
2
3
|
export declare const onModels: () => Promise<import("./models.js").ModelsView>;
|
|
4
|
+
export declare const onAgentUpdates: () => Promise<import("./models.js").AgentUpdate[]>;
|
|
5
|
+
export declare const sendAgentUpdate: (agent: string) => Promise<import("./models.js").AgentUpdateResult>;
|
|
@@ -12,8 +12,8 @@ import { type ProjectPackage, type ProvidedCommand, type ProvidedCommandLookup }
|
|
|
12
12
|
/** The packages every project has: an agent cannot start, be shown or be put on a git host without them. */
|
|
13
13
|
export declare const BUILT_IN_PACKAGES: readonly string[];
|
|
14
14
|
/**
|
|
15
|
-
* The packages that are this computer's and no project's: the door to it,
|
|
16
|
-
* installed OpenAgent on. Their pages show and their commands run with no project added, and
|
|
15
|
+
* The packages that are this computer's and no project's: the door to it, the servers it
|
|
16
|
+
* installed OpenAgent on, and the accounts its runs use. Their pages show and their commands run with no project added, and
|
|
17
17
|
* what one keeps is in the person's home folder.
|
|
18
18
|
*/
|
|
19
19
|
export declare const COMPUTER_PACKAGES: readonly string[];
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type DriverName } from '../driver-names.js';
|
|
2
|
+
import type { ModelsSource } from './models.js';
|
|
3
|
+
/** How long a reading is kept: a new version comes out every few days, and each reading asks npm. */
|
|
4
|
+
export declare const KEEP_MS: number;
|
|
5
|
+
/** A coding agent with a newer version out than the one on this computer. */
|
|
6
|
+
export interface AgentUpdate {
|
|
7
|
+
agent: DriverName;
|
|
8
|
+
installed: string;
|
|
9
|
+
latest: string;
|
|
10
|
+
}
|
|
11
|
+
/** What an update did: the version now on this computer, or what the agent said when it failed. */
|
|
12
|
+
export type AgentUpdateResult = {
|
|
13
|
+
ok: true;
|
|
14
|
+
version: string;
|
|
15
|
+
} | {
|
|
16
|
+
ok: false;
|
|
17
|
+
error: string;
|
|
18
|
+
};
|
|
19
|
+
/** How a program is run: its output, or the error with what it printed. */
|
|
20
|
+
export type RunProgram = (bin: string, args: string[], timeoutMs: number) => Promise<string>;
|
|
21
|
+
export interface AgentUpdatesOptions {
|
|
22
|
+
/** The models each agent offers, as kept: an agent updated is asked again, since a new version can offer others. */
|
|
23
|
+
models: Pick<ModelsSource, 'forget'>;
|
|
24
|
+
run?: RunProgram;
|
|
25
|
+
/** The version npm's `latest` names for `pkg`. */
|
|
26
|
+
latest?: (pkg: string) => Promise<string>;
|
|
27
|
+
now?: () => number;
|
|
28
|
+
}
|
|
29
|
+
export interface AgentUpdates {
|
|
30
|
+
/** The agents that are behind; one that is not on this computer, or whose versions could not be read, is not. */
|
|
31
|
+
read(): Promise<AgentUpdate[]>;
|
|
32
|
+
update(agent: DriverName): Promise<AgentUpdateResult>;
|
|
33
|
+
}
|
|
34
|
+
/** The first version number in what a program said: `2.1.314 (Claude Code)`, `codex-cli 0.166.0`. */
|
|
35
|
+
export declare function versionIn(said: string): string | undefined;
|
|
36
|
+
/** Whether version `a` is newer than `b`, part by part. */
|
|
37
|
+
export declare function newer(a: string, b: string): boolean;
|
|
38
|
+
export declare function agentUpdates(opts: AgentUpdatesOptions): AgentUpdates;
|
|
@@ -38,8 +38,6 @@ export interface GivenLogin {
|
|
|
38
38
|
from: string;
|
|
39
39
|
runs?: boolean;
|
|
40
40
|
}
|
|
41
|
-
/** Where the file is: beside OpenAgent's other files in the person's config folder. */
|
|
42
|
-
export declare function copiedPath(env?: NodeJS.ProcessEnv): string;
|
|
43
41
|
export declare const isKind: (value: unknown) => value is CopiedKind;
|
|
44
42
|
/** A word a computer said: a name, an account, a host. Never long, never a line break. */
|
|
45
43
|
export declare const isWord: (value: unknown, max?: number) => value is string;
|
|
@@ -13,6 +13,8 @@ export type ModelsView = Record<DriverName, DriverModels>;
|
|
|
13
13
|
/** Where the dashboard reads which models each coding agent offers. */
|
|
14
14
|
export interface ModelsSource {
|
|
15
15
|
read(): Promise<ModelsView>;
|
|
16
|
+
/** Ask the agent again at the next read: a new version of it can offer other models. */
|
|
17
|
+
forget(name: DriverName): void;
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* Ask each coding agent for its models, once per account: the first read asks, every later read
|
|
@@ -25,5 +27,7 @@ export interface ModelsSource {
|
|
|
25
27
|
export declare function cachedModelsSource(drivers: Record<DriverName, Pick<Driver, 'listModels'>>, whose?: (name: DriverName) => string): ModelsSource;
|
|
26
28
|
/** Which account a coding agent's runs take first on this machine, as {@link cachedModelsSource} tells two apart. */
|
|
27
29
|
export declare function firstAccount(name: DriverName, env?: NodeJS.ProcessEnv): string;
|
|
28
|
-
/** The
|
|
30
|
+
/** The coding agents on this machine, each on the account its runs take first. */
|
|
31
|
+
export declare function modelDrivers(): Record<DriverName, Driver>;
|
|
32
|
+
/** The daemon's own source. */
|
|
29
33
|
export declare function defaultModelsSource(): ModelsSource;
|
|
@@ -6,6 +6,7 @@ import type { OpenAgentEvent } from '../events.js';
|
|
|
6
6
|
import type { PreferencesStore } from '../registry.js';
|
|
7
7
|
import type { QuotaSource } from './quota.js';
|
|
8
8
|
import type { ModelsSource } from './models.js';
|
|
9
|
+
import type { AgentUpdates } from './agent-updates.js';
|
|
9
10
|
import type { BridgeBrowserOwner } from '../bridge-browser.js';
|
|
10
11
|
import type { ProjectErrorsReader } from '../project-errors.js';
|
|
11
12
|
import type { AddProjectResult, RemoveProjectResult, StartAgentOptions, StartAgentResult, StartedInResult } from './types.js';
|
|
@@ -28,6 +29,7 @@ export type EventsSource = (projectId: string, agentId?: string) => AsyncIterabl
|
|
|
28
29
|
export interface SavedMachine {
|
|
29
30
|
label: string;
|
|
30
31
|
url: string;
|
|
32
|
+
server?: boolean;
|
|
31
33
|
}
|
|
32
34
|
/** Look up the machine a relayed agent (#1067) executes on, or undefined for an ordinary local agent. The
|
|
33
35
|
* daemon wires this from its live relayed-agent map; a run-scoped RPC uses it to forward a remote agent's
|
|
@@ -103,6 +105,8 @@ export interface DashboardContext {
|
|
|
103
105
|
quota: QuotaSource;
|
|
104
106
|
/** Which models each coding agent offers, for the agent and model menu. */
|
|
105
107
|
models: ModelsSource;
|
|
108
|
+
/** Whether a newer version of a coding agent on this computer is out, and its update. */
|
|
109
|
+
agentUpdates: AgentUpdates;
|
|
106
110
|
/** What a project currently suffers from (#1500): the daemon's error state, read per project. */
|
|
107
111
|
projectErrors: ProjectErrorsReader;
|
|
108
112
|
/** The daemon's own bridge browser (#1332): status, and show/hide/restart on request. */
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
3
|
-
import { type CodexLogin, type CodexLoginOptions, type CodexWho } from '@openagt/agent-driver-codex';
|
|
4
|
-
/** The agents with accounts: Claude Code's and Codex's. */
|
|
5
|
-
export type AccountsAgent = 'claude' | 'codex';
|
|
1
|
+
import { type AccountsAgent, type LoginWiring } from '@openagt/skill-account-rotation';
|
|
2
|
+
export type { AccountsAgent };
|
|
6
3
|
/** One of an account's usage windows, by how long it lasts. */
|
|
7
4
|
export interface AccountWindow {
|
|
8
5
|
/** `5 h`, `week`, `month`. */
|
|
@@ -18,8 +15,12 @@ export interface AccountRow {
|
|
|
18
15
|
name: string;
|
|
19
16
|
/** A login of the person's own computer, by that computer's name: a server's copy of it. */
|
|
20
17
|
from?: string;
|
|
21
|
-
/**
|
|
18
|
+
/** Removed here it would only be handed over again: it is removed on that computer. */
|
|
19
|
+
comesBack?: true;
|
|
20
|
+
/** The person's own login, which the agent keeps: logged out, never removed. */
|
|
22
21
|
own: boolean;
|
|
22
|
+
/** The person's own, and the agent has no such login: runs skip it while another account is there, and no page offers it then. */
|
|
23
|
+
loggedOut?: true;
|
|
23
24
|
/** When an added one was added, ISO 8601. */
|
|
24
25
|
added?: string;
|
|
25
26
|
/** How full it is, shortest window first; none when nothing said it yet. */
|
|
@@ -31,42 +32,17 @@ export interface AccountRow {
|
|
|
31
32
|
/** `in-use`: the first one a run takes now; `next`: the one after it; `limited`: a limit keeps it out. */
|
|
32
33
|
state?: 'in-use' | 'next' | 'limited';
|
|
33
34
|
}
|
|
34
|
-
/** An account being added: the browser is open on the agent's page, or the login is being kept. */
|
|
35
|
-
export interface AccountAdding {
|
|
36
|
-
name: string;
|
|
37
|
-
/** The page to sign in at, when the agent gave one: what a person copies into a private window when the browser is signed in to another account, or opens on their device where this computer has no browser. */
|
|
38
|
-
url?: string;
|
|
39
|
-
/** No browser here: the code Codex gave, which the person types at {@link url}. */
|
|
40
|
-
code?: string;
|
|
41
|
-
/** No browser here: Claude's page shows a code once the person said yes, which they paste back. */
|
|
42
|
-
paste?: true;
|
|
43
|
-
}
|
|
44
35
|
export interface AccountsView {
|
|
45
36
|
accounts: AccountRow[];
|
|
46
37
|
/** This computer's own name: what its own login's row says it is on. */
|
|
47
38
|
computer: string;
|
|
48
39
|
/** On a server: the computer of the person's whose logins it uses, by its name. */
|
|
49
40
|
from?: string;
|
|
50
|
-
adding?: AccountAdding;
|
|
51
|
-
/** Why the last add did not go through. */
|
|
52
|
-
failed?: string;
|
|
53
41
|
/** The daemon's clock, so "free in 2 h" is counted from the same now. */
|
|
54
42
|
now: number;
|
|
55
43
|
}
|
|
56
|
-
/** What the RPCs reach for, swapped in tests: the logins,
|
|
57
|
-
export declare const accountsWiring: {
|
|
58
|
-
mint: Mint;
|
|
59
|
-
claudeJson: () => string;
|
|
60
|
-
path: (agent: AccountsAgent) => string;
|
|
61
|
-
now: () => number;
|
|
62
|
-
loginCodex: (opts: CodexLoginOptions) => Promise<CodexLogin>;
|
|
63
|
-
codexDir: () => string;
|
|
64
|
-
codexOwnHome: () => string;
|
|
65
|
-
codexFolder: (account: AgentAccount) => string;
|
|
66
|
-
codexWho: (home: string) => Promise<CodexWho>;
|
|
67
|
-
codexUsage: (home: string) => Promise<DriverRateWindow[]>;
|
|
68
|
-
/** No browser on this computer: a server's. */
|
|
69
|
-
headless: () => boolean;
|
|
44
|
+
/** What the RPCs reach for, swapped in tests: the logins, how full a Codex account is. */
|
|
45
|
+
export declare const accountsWiring: LoginWiring & {
|
|
70
46
|
/** This computer's own name. */
|
|
71
47
|
computer: () => string;
|
|
72
48
|
};
|
|
@@ -78,20 +54,7 @@ export type AccountResult = {
|
|
|
78
54
|
ok: false;
|
|
79
55
|
error: string;
|
|
80
56
|
};
|
|
81
|
-
/**
|
|
82
|
-
* Add an account: this computer's browser opens on the agent's page, the person signs in there to
|
|
83
|
-
* the account being added, and its login is kept under `name`. Answers at once; the page follows it
|
|
84
|
-
* in {@link onAgentAccounts}.
|
|
85
|
-
*/
|
|
86
|
-
export declare function sendAddAgentAccount(agent: AccountsAgent, name: string): Promise<AccountResult>;
|
|
87
|
-
/** Hand Claude Code the code its page showed the person, on a computer with no browser of its own. */
|
|
88
|
-
export declare function sendAgentAccountCode(agent: AccountsAgent, code: string): Promise<AccountResult>;
|
|
89
|
-
/**
|
|
90
|
-
* Remove an added account. A Claude login is not ended: it is good until its year is over, or until
|
|
91
|
-
* it is taken back on claude.ai. A Codex account's folder, its login in it, goes with it.
|
|
92
|
-
*/
|
|
57
|
+
/** Remove an added account (`removeAdded`). */
|
|
93
58
|
export declare function sendRemoveAgentAccount(agent: AccountsAgent, name: string): Promise<AccountResult>;
|
|
94
59
|
/** Runs try `name` first from now on. */
|
|
95
60
|
export declare function sendUseAgentAccountFirst(agent: AccountsAgent, name: string): Promise<AccountResult>;
|
|
96
|
-
/** The person's own login under the name they give it. */
|
|
97
|
-
export declare function sendNameOwnAgentAccount(agent: AccountsAgent, name: string): Promise<AccountResult>;
|
|
@@ -3,6 +3,7 @@ import type { DashboardContext, EventsSource, RemoteAgents } from '../dashboard/
|
|
|
3
3
|
import type { PreferencesStore } from '../registry.js';
|
|
4
4
|
import type { QuotaSource } from '../dashboard/quota.js';
|
|
5
5
|
import type { ModelsSource } from '../dashboard/models.js';
|
|
6
|
+
import type { AgentUpdates } from '../dashboard/agent-updates.js';
|
|
6
7
|
import type { ProjectErrorsReader } from '../project-errors.js';
|
|
7
8
|
import type { BridgeBrowserOwner } from '../bridge-browser.js';
|
|
8
9
|
/** Wire the dashboard's capabilities. The daemon calls this once at start-up; a test calls it per case. */
|
|
@@ -41,6 +42,8 @@ export declare function contextRemote(): RemoteAgents;
|
|
|
41
42
|
export declare function contextPreferences(): PreferencesStore;
|
|
42
43
|
/** The quota source behind the usage panel (#533). */
|
|
43
44
|
export declare function contextQuota(): QuotaSource;
|
|
45
|
+
/** Whether a newer version of a coding agent on this computer is out, and its update. */
|
|
46
|
+
export declare function contextAgentUpdates(): AgentUpdates;
|
|
44
47
|
/** Which models each coding agent offers. */
|
|
45
48
|
export declare function contextModels(): ModelsSource;
|
|
46
49
|
/** What a project currently suffers from (#1500), as the daemon's background jobs last recorded it. */
|
|
@@ -14,7 +14,7 @@ export { onGitHostPeople, type HostPerson } from './people.js';
|
|
|
14
14
|
export { onGitHosts, sendUseGitHostAccount, sendForgetGitHostAccount, sendGitHostLogin, sendGitHostInstall, onAgentState, sendAgentFix, onProjectAccounts, sendProjectAccounts, type GitHostsView, type GitHostRow, type GitHostAccount, type GitHostProvider, type AgentState, type ProjectAccountsView, type ProjectAgentAccounts } from './logins.js';
|
|
15
15
|
export { onServerLogins, sendUseLoginsOn, sendAllowLogins, sendSettleLogin, type ServerLoginsView, type ServerLogins, type LoginThere } from './server-logins.js';
|
|
16
16
|
export { onCopiedLogins, sendCopiedLogin, sendForgetCopiedLogin, sendKeepCopiedLogin, sendCopiedUsage, type CopiedView } from './copied-logins.js';
|
|
17
|
-
export { onAgentAccounts,
|
|
17
|
+
export { onAgentAccounts, sendRemoveAgentAccount, sendUseAgentAccountFirst, type AccountsAgent, type AccountRow, type AccountWindow, type AccountsView, type AccountResult } from './accounts.js';
|
|
18
18
|
import { streamAgentEvents } from './events.js';
|
|
19
19
|
/** One RPC: called with whatever the browser sent, answering with whatever JSON.stringify keeps. */
|
|
20
20
|
export type RpcHandler = (...args: never[]) => unknown;
|
|
@@ -13,6 +13,8 @@ export interface Machine {
|
|
|
13
13
|
owner?: string;
|
|
14
14
|
/** The person was told so, once. */
|
|
15
15
|
told?: true;
|
|
16
|
+
/** It said it is a server: reached by its line, it is still no computer someone sits at. */
|
|
17
|
+
server?: true;
|
|
16
18
|
}
|
|
17
19
|
export type AddMachineResult = {
|
|
18
20
|
ok: true;
|
|
@@ -203,6 +205,11 @@ export type RenameComputerResult = {
|
|
|
203
205
|
};
|
|
204
206
|
/** Said to anyone but the owner who renames this computer. */
|
|
205
207
|
export declare const ONLY_THE_OWNER = "Only this computer's owner names it.";
|
|
208
|
+
/**
|
|
209
|
+
* Whether the person asking is this computer's owner, who alone names it: not a person the owner
|
|
210
|
+
* invited, at the owner's OpenAgent (the door says who), nor on an OpenAgent of their own here.
|
|
211
|
+
*/
|
|
212
|
+
export declare function ownerAsks(): boolean;
|
|
206
213
|
/**
|
|
207
214
|
* Give this computer the name the person picked, here or from a page of another of their
|
|
208
215
|
* computers: kept here, said in every call to a machine from now on, so a door lists it by it.
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import type { AgentUpdate, AgentUpdateResult } from '../dashboard/agent-updates.js';
|
|
1
2
|
import type { ModelsView } from '../dashboard/models.js';
|
|
2
3
|
/** Which models each coding agent offers, or why one could not say. */
|
|
3
4
|
export declare function onModels(): Promise<ModelsView>;
|
|
5
|
+
/** The coding agents on this computer with a newer version out: none for anyone but its owner, who alone updates them. */
|
|
6
|
+
export declare function onAgentUpdates(): Promise<AgentUpdate[]>;
|
|
7
|
+
/** Update a coding agent on this computer, by its own `update` command. */
|
|
8
|
+
export declare function sendAgentUpdate(agent: string): Promise<AgentUpdateResult>;
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import { type PackageCommandResult } from '@openagt/agent-data';
|
|
1
|
+
import { type PackageCommandResult, type ProjectPackage } from '@openagt/agent-data';
|
|
2
2
|
/**
|
|
3
|
-
* A package that adds
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* packages OpenAgent brings itself come the same way, for the projects that have them
|
|
7
|
-
* (`built-in.ts`). A package that is this computer's is a module of no project: see
|
|
8
|
-
* {@link readComputerModules}.
|
|
3
|
+
* A package that adds UI (#1774): its browser part, named by its `exports["./dashboard"]`, and
|
|
4
|
+
* optionally its server part, named by `exports["./server"]`. Any package that exports
|
|
5
|
+
* `./dashboard` is a module, whoever wrote it.
|
|
9
6
|
*/
|
|
10
7
|
export interface ProjectModule {
|
|
11
8
|
/** The package's name. */
|
|
@@ -34,28 +31,8 @@ export interface ProjectModule {
|
|
|
34
31
|
* one, every argument then being a flag.
|
|
35
32
|
*/
|
|
36
33
|
export declare function commandReads(module: Pick<ProjectModule, 'bins' | 'reads'>, args: readonly unknown[], command?: string): boolean;
|
|
37
|
-
/**
|
|
38
|
-
|
|
39
|
-
* a file that exists inside the package, plus the modules among the packages OpenAgent brings to
|
|
40
|
-
* this project (`built-in.ts`): a skill's page where the project holds the skill's text. Sorted
|
|
41
|
-
* by name.
|
|
42
|
-
*/
|
|
43
|
-
export declare function readProjectModules(root: string): Promise<ProjectModule[]>;
|
|
44
|
-
/** The one module of this project that `name` names, or undefined. */
|
|
45
|
-
export declare function findProjectModule(root: string, name: string): Promise<ProjectModule | undefined>;
|
|
46
|
-
/**
|
|
47
|
-
* The modules that are this computer's and no project's: the ones among the packages OpenAgent
|
|
48
|
-
* brings for the computer (`built-in.ts`). They are there with no project added. Sorted by name.
|
|
49
|
-
*/
|
|
50
|
-
export declare function readComputerModules(): Promise<ProjectModule[]>;
|
|
51
|
-
/** The one module of this computer's that `name` names, or undefined. */
|
|
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>;
|
|
34
|
+
/** The module a package is, or undefined when it exports no `./dashboard` to a file inside it. */
|
|
35
|
+
export declare function readModule({ name, dir: pkgDir, manifest: pkg }: ProjectPackage): Promise<ProjectModule | undefined>;
|
|
59
36
|
/**
|
|
60
37
|
* The file a module serves at `rel`, a path relative to its module's directory: its module, its
|
|
61
38
|
* stylesheet, a chunk. `undefined` for a path that leaves that directory (symlinks resolved) or
|
|
@@ -81,3 +58,25 @@ export declare function runModuleCommand(root: string, module: ProjectModule, ar
|
|
|
81
58
|
more?: NodeJS.ProcessEnv,
|
|
82
59
|
/** What the command reads on standard input. */
|
|
83
60
|
input?: string): Promise<ModuleCommandResult>;
|
|
61
|
+
/**
|
|
62
|
+
* The modules a project has: each of its dependencies whose package.json exports `./dashboard` to
|
|
63
|
+
* a file that exists inside the package, plus the modules among the packages OpenAgent brings to
|
|
64
|
+
* this project (`built-in.ts`): a skill's page where the project holds the skill's text. Sorted
|
|
65
|
+
* by name.
|
|
66
|
+
*/
|
|
67
|
+
export declare function readProjectModules(root: string): Promise<ProjectModule[]>;
|
|
68
|
+
/** The one module of this project that `name` names, or undefined. */
|
|
69
|
+
export declare function findProjectModule(root: string, name: string): Promise<ProjectModule | undefined>;
|
|
70
|
+
/**
|
|
71
|
+
* The modules that are this computer's and no project's: the ones among the packages OpenAgent
|
|
72
|
+
* brings for the computer (`built-in.ts`). They are there with no project added. Sorted by name.
|
|
73
|
+
*/
|
|
74
|
+
export declare function readComputerModules(): Promise<ProjectModule[]>;
|
|
75
|
+
/** The one module of this computer's that `name` names, or undefined. */
|
|
76
|
+
export declare function findComputerModule(name: string): Promise<ProjectModule | undefined>;
|
|
77
|
+
/**
|
|
78
|
+
* The module of a package OpenAgent brings to projects, from OpenAgent's own copy: the page of
|
|
79
|
+
* another computer's project, on a computer where no project of its own has it. Undefined for any
|
|
80
|
+
* other package.
|
|
81
|
+
*/
|
|
82
|
+
export declare function findBroughtModule(name: string): Promise<ProjectModule | undefined>;
|
|
@@ -60,7 +60,7 @@ export declare class QuotaPoller {
|
|
|
60
60
|
current(): QuotaEnvelope;
|
|
61
61
|
/** The gap before the next read, which grows while the fetch keeps being refused. */
|
|
62
62
|
get intervalMs(): number;
|
|
63
|
-
/** Whether
|
|
63
|
+
/** Whether {@link stop} ended the polling. */
|
|
64
64
|
get isStopped(): boolean;
|
|
65
65
|
/**
|
|
66
66
|
* Read once, now, and fold the result in. Safe to call on demand (e.g. right
|
|
@@ -37,11 +37,15 @@ export interface MachineRecord {
|
|
|
37
37
|
/** What the machine's key is known by, when its link said: every call goes only to a machine that shows that key. */
|
|
38
38
|
pin?: string;
|
|
39
39
|
/**
|
|
40
|
-
* The computer's own name, as the machine
|
|
41
|
-
*
|
|
42
|
-
*
|
|
40
|
+
* The computer's own name, as the machine says it: what the records of its runs carry, so a
|
|
41
|
+
* run in a project's shared records is known as this machine's. A computer can be renamed, and
|
|
42
|
+
* its runs go on under the new name ({@link nameMachine}).
|
|
43
43
|
*/
|
|
44
44
|
host?: string;
|
|
45
|
+
/** The names it went by before: its earlier runs' records still carry them. */
|
|
46
|
+
formerHosts?: string[];
|
|
47
|
+
/** It said it is a server: reached by its line, it is still no computer someone sits at. */
|
|
48
|
+
server?: true;
|
|
45
49
|
/**
|
|
46
50
|
* Whose computer it is, by the person's name, when it is another person's: a computer that
|
|
47
51
|
* keeps a line to a server for everyone there. A run started on it uses this person's own logins
|
|
@@ -357,15 +361,23 @@ export declare function addMachine(machine: {
|
|
|
357
361
|
displaced: MachineRecord[];
|
|
358
362
|
}>;
|
|
359
363
|
/**
|
|
360
|
-
* Keep the computer's own name a saved machine
|
|
361
|
-
*
|
|
362
|
-
*
|
|
363
|
-
*
|
|
364
|
+
* Keep the computer's own name a saved machine says, and the one it went by before, whose runs are
|
|
365
|
+
* still known as its. One saved again (a new link) starts without one: `key` is the key the machine
|
|
366
|
+
* was asked with, and a machine saved anew since is not named by an answer to the old one. A name
|
|
367
|
+
* another saved machine goes by is not taken, nor does another person's computer change its name:
|
|
368
|
+
* it would be given runs that are not its. Answers whether the name was written.
|
|
364
369
|
*/
|
|
365
370
|
export declare function nameMachine(machine: {
|
|
366
371
|
id: string;
|
|
367
372
|
key: string;
|
|
368
373
|
}, host: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<boolean>;
|
|
374
|
+
/** Keep whether a saved machine says it is a server, as it was asked. */
|
|
375
|
+
export declare function noteServer(machine: {
|
|
376
|
+
id: string;
|
|
377
|
+
key: string;
|
|
378
|
+
}, server: boolean, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<void>;
|
|
379
|
+
/** The one saved machine a run's recorded name belongs to: the one going by it now, else the one that went by it. A name two say is neither's. */
|
|
380
|
+
export declare function machineNamed(machines: readonly MachineRecord[], host: string): MachineRecord | undefined;
|
|
369
381
|
/**
|
|
370
382
|
* Keep the ids a saved machine said it is listed under at the doors it saved, when they changed.
|
|
371
383
|
* `key` is the key the machine was asked with: a machine saved anew since keeps what it says itself.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overview-layout.d.ts","sourceRoot":"","sources":["../src/overview-layout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"overview-layout.d.ts","sourceRoot":"","sources":["../src/overview-layout.ts"],"names":[],"mappings":"AAQA,mEAAmE;AACnE,eAAO,MAAM,WAAW,YAAI,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAU,CAAA;AAC5E,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAEpD,wEAAwE;AACxE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,2BAA2B;IAC3B,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,kEAAkE;IAClE,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED,8FAA8F;AAC9F,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;AAEzD,8DAA8D;AAC9D,eAAO,MAAM,YAAY,MAAM,CAAA;AAE/B,sFAAsF;AACtF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,qCAAqC;IACrC,KAAK,EAAE,SAAS,CAAA;IAChB,0FAA0F;IAC1F,QAAQ,EAAE,SAAS,CAAA;CACpB;AAID,+CAA+C;AAC/C,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,SAAS,EAAE,CAEzE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,EAAE,CAW3K;AAOD,kIAAkI;AAClI,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAiBvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overview-layout.js","sourceRoot":"","sources":["../src/overview-layout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"overview-layout.js","sourceRoot":"","sources":["../src/overview-layout.ts"],"names":[],"mappings":"AACA,iGAAiG;AACjG,6FAA6F;AAC7F,6FAA6F;AAC7F,8FAA8F;AAC9F,mGAAmG;AACnG,QAAQ;AAER,mEAAmE;AACnE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAU,CAAA;AAe5E,8DAA8D;AAC9D,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;AAW/B,MAAM,IAAI,GAAG,CAAC,KAAgB,EAAU,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAErE,+CAA+C;AAC/C,MAAM,UAAU,SAAS,CAAC,IAAkC;IAC1D,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;AACxE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAuB,KAAmB,EAAE,OAAoC,EAAE,GAAW;IACvH,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;IAC9D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC/B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAA;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACrB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA;QAC9G,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;AACpG,CAAC;AAED,2GAA2G;AAC3G,MAAM,WAAW,GAAG,GAAG,CAAA;AACvB,MAAM,SAAS,GAAG,EAAE,CAAA;AACpB,MAAM,MAAM,GAAG,GAAG,CAAA;AAElB,kIAAkI;AAClI,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAClF,MAAM,GAAG,GAAoB,EAAE,CAAA;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,SAAQ;QACjE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;QAC9B,MAAM,MAAM,GAAgB,EAAE,CAAA;QAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;YAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;gBAAE,SAAQ;YACrD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAA8B,CAAA;YAC5D,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAQ;YACjF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACZ,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAE,WAAkC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAC3K,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;IACnB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|