@openagt/dashboard 0.14.0 → 0.15.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.
Files changed (68) hide show
  1. package/dist/daemon-runtime.d.ts.map +1 -1
  2. package/dist/daemon-runtime.js +109 -6
  3. package/dist/daemon-runtime.js.map +1 -1
  4. package/dist/dashboard/relay-endpoints.d.ts.map +1 -1
  5. package/dist/dashboard/relay-endpoints.js +6 -4
  6. package/dist/dashboard/relay-endpoints.js.map +1 -1
  7. package/dist/dashboard/remote-run.d.ts +38 -7
  8. package/dist/dashboard/remote-run.d.ts.map +1 -1
  9. package/dist/dashboard/remote-run.js +97 -17
  10. package/dist/dashboard/remote-run.js.map +1 -1
  11. package/dist/dashboard/rpc-serve.d.ts +18 -1
  12. package/dist/dashboard/rpc-serve.d.ts.map +1 -1
  13. package/dist/dashboard/rpc-serve.js.map +1 -1
  14. package/dist/dashboard/screen.d.ts +2 -2
  15. package/dist/dashboard/screen.d.ts.map +1 -1
  16. package/dist/dashboard/screen.js +1 -1
  17. package/dist/dashboard/screen.js.map +1 -1
  18. package/dist/dashboard/server.js +1 -1
  19. package/dist/dashboard/server.js.map +1 -1
  20. package/dist/dashboard-bundle/assets/main-BtmQIAUe.js +140 -0
  21. package/dist/dashboard-bundle/assets/main-DbqABoVD.css +2 -0
  22. package/dist/dashboard-bundle/assets/module-CFB4pxwP.js +24 -0
  23. package/dist/dashboard-bundle/host/module.js +1 -1
  24. package/dist/dashboard-bundle/index.html +3 -3
  25. package/dist/dashboard-rpc/context.js +1 -1
  26. package/dist/dashboard-rpc/context.js.map +1 -1
  27. package/dist/dashboard-rpc/events.d.ts.map +1 -1
  28. package/dist/dashboard-rpc/events.js +4 -1
  29. package/dist/dashboard-rpc/events.js.map +1 -1
  30. package/dist/dashboard-rpc/reads.d.ts +24 -0
  31. package/dist/dashboard-rpc/reads.d.ts.map +1 -1
  32. package/dist/dashboard-rpc/reads.js +65 -11
  33. package/dist/dashboard-rpc/reads.js.map +1 -1
  34. package/dist/dashboard-rpc/relay-agent.d.ts +11 -5
  35. package/dist/dashboard-rpc/relay-agent.d.ts.map +1 -1
  36. package/dist/dashboard-rpc/relay-agent.js +38 -8
  37. package/dist/dashboard-rpc/relay-agent.js.map +1 -1
  38. package/dist/dashboard-rpc/relay-dispatch.js +2 -1
  39. package/dist/dashboard-rpc/relay-dispatch.js.map +1 -1
  40. package/dist/dashboard-rpc/test-context.js +1 -1
  41. package/dist/dashboard-rpc/test-context.js.map +1 -1
  42. package/dist/module-types/dashboard/components/SettingsRows.d.ts +1 -1
  43. package/dist/module-types/dashboard/components/ui/card.d.ts +15 -1
  44. package/dist/module-types/dashboard/components/ui/confirm-dialog.d.ts +20 -0
  45. package/dist/module-types/dashboard/components/ui/label.d.ts +2 -0
  46. package/dist/module-types/dashboard/components/ui/radio-group.d.ts +23 -0
  47. package/dist/module-types/dashboard/components/ui/select.d.ts +12 -0
  48. package/dist/module-types/dashboard/components/ui/table.d.ts +7 -0
  49. package/dist/module-types/dashboard/components/ui/textarea.d.ts +2 -0
  50. package/dist/module-types/dashboard/lib/data-link.d.ts +14 -0
  51. package/dist/module-types/dashboard/lib/route.d.ts +6 -0
  52. package/dist/module-types/dashboard/lib/use-file-names.d.ts +20 -0
  53. package/dist/module-types/dashboard/lib/use-modules.d.ts +8 -1
  54. package/dist/module-types/dashboard/lib/use-schedule.d.ts +20 -0
  55. package/dist/module-types/dashboard/module/index.d.ts +47 -1
  56. package/dist/module-types/src/dashboard/remote-run.d.ts +38 -7
  57. package/dist/module-types/src/dashboard/rpc-serve.d.ts +18 -1
  58. package/dist/module-types/src/dashboard-rpc/reads.d.ts +24 -0
  59. package/dist/module-types/src/dashboard-rpc/relay-agent.d.ts +11 -5
  60. package/dist/module-types/src/registry.d.ts +18 -0
  61. package/dist/registry.d.ts +18 -0
  62. package/dist/registry.d.ts.map +1 -1
  63. package/dist/registry.js +25 -2
  64. package/dist/registry.js.map +1 -1
  65. package/package.json +16 -16
  66. package/dist/dashboard-bundle/assets/main-3NAPTQ8N.js +0 -140
  67. package/dist/dashboard-bundle/assets/main-DD99HRP9.css +0 -2
  68. package/dist/dashboard-bundle/assets/module-ZjyA5WUg.js +0 -21
@@ -0,0 +1,14 @@
1
+ import { type Route } from './route.js';
2
+ /** A repository path's page segment and the rest: `tickets/a.md` → `{ segment: 'tickets', rest: ['a.md'] }`; nothing for a path with no page-shaped first segment or no rest. */
3
+ export declare function dataLinkParts(href: string): {
4
+ segment: string;
5
+ rest: string[];
6
+ } | undefined;
7
+ /**
8
+ * The route a link into `projectId`'s files opens, when one of `pages` (the mounted module pages,
9
+ * by segment) claims the path's first segment; `undefined` when none does, so the link is shown
10
+ * as text and opens nothing.
11
+ */
12
+ export declare function dataLinkRoute(projectId: string, href: string, pages: readonly {
13
+ segment: string;
14
+ }[]): Route | undefined;
@@ -36,3 +36,9 @@ export declare function formatRoute(route: Route): string;
36
36
  * module's page mirrored there (a list's filters) stays when only the picked project changes.
37
37
  */
38
38
  export declare function keepPageQuery(url: string, search: string): string;
39
+ /**
40
+ * The address of a module's page as a link holds it, for a link that must also open in a new
41
+ * tab: the page's segment, with the one project the dashboard is showing when one is picked, so
42
+ * the new tab shows that project too.
43
+ */
44
+ export declare function pageHref(segment: string, search?: string): string;
@@ -0,0 +1,20 @@
1
+ /** A path that has a name: what to show for it, and how to open it. */
2
+ export interface NamedFile {
3
+ title: string;
4
+ /** Open the page that shows it. */
5
+ open(): void;
6
+ }
7
+ /** The name of a path into a project's files; `undefined` for one no installed page names. */
8
+ export type FileNames = (projectId: string, path: string) => NamedFile | undefined;
9
+ /**
10
+ * The paths into a project's files a text names: each run of characters with a slash in it whose
11
+ * first segment could be a page's (`tickets/2026-01-01_x.md`), without the brackets or the stop
12
+ * around it. Never a piece of something longer: a web address and an absolute path name no file
13
+ * of the project.
14
+ */
15
+ export declare function pathsIn(text: string): string[];
16
+ /** The names of the paths asked about, per project, read once a minute. A path whose page is not installed in that project, or does not name it, has no name. */
17
+ export declare function useFileNames(asked: readonly {
18
+ projectId: string;
19
+ paths: readonly string[];
20
+ }[]): FileNames;
@@ -1,4 +1,4 @@
1
- import type { LinkAction, ModuleCard, ModulePage, ModulePanel, ModuleRunSlots, ModuleSettings, ModuleUsageLimit } from '../module/index.js';
1
+ import type { LinkAction, ModuleCard, ModulePage, ModulePanel, ModuleRunSlots, ModuleSchedule, ModuleSettings, ModuleUsageLimit } from '../module/index.js';
2
2
  /** A module page as the shell mounts it: the page, plus the package it came from and the projects that have it. */
3
3
  export interface MountedPage extends ModulePage {
4
4
  package: string;
@@ -34,6 +34,11 @@ export interface MountedUsageLimit extends ModuleUsageLimit {
34
34
  package: string;
35
35
  projects: string[];
36
36
  }
37
+ /** The commands a module starts by itself, as the shell mounts them: the read, plus the package it came from and the projects that have it. */
38
+ export interface MountedSchedule extends ModuleSchedule {
39
+ package: string;
40
+ projects: string[];
41
+ }
37
42
  /** What the installed modules bring, once loaded: their pages, their cards and their link actions. */
38
43
  export interface MountedModules {
39
44
  pages: MountedPage[];
@@ -48,6 +53,8 @@ export interface MountedModules {
48
53
  settings: MountedSettings[];
49
54
  /** The usage bar's stop line: the first module's that declares one, in package order; absent when none does. */
50
55
  usageLimit?: MountedUsageLimit;
56
+ /** What starts by itself: the first module's that declares it, in package order; absent when none does. */
57
+ schedule?: MountedSchedule;
51
58
  /** True once the module list was read and every module in it imported or skipped. */
52
59
  loaded: boolean;
53
60
  }
@@ -0,0 +1,20 @@
1
+ import { type ModuleProject, type ModuleScheduledCommand } from '../module/index.js';
2
+ /** What starts by itself, as a page reads it. */
3
+ export interface Schedule {
4
+ /** The page where a person switches a command on: its segment, its sidebar label and its address. Absent when no installed module schedules anything. */
5
+ page?: {
6
+ segment: string;
7
+ label: string;
8
+ href: string;
9
+ };
10
+ /**
11
+ * Each project's commands that can start by themselves, by project id: none for a project no
12
+ * scheduling module is in. A project whose answer is not known, not read yet or a read that
13
+ * failed, has no entry: a page then says nothing of it, since "nothing starts" would be a guess.
14
+ */
15
+ commands: Record<string, ModuleScheduledCommand[]>;
16
+ /** Open the page where a person switches a command on. */
17
+ open(): void;
18
+ }
19
+ /** The commands that start by themselves in `projects`, read every 10 seconds. */
20
+ export declare function useSchedule(projects: readonly ModuleProject[]): Schedule;
@@ -38,6 +38,20 @@ export interface ModulePage {
38
38
  }>;
39
39
  /** The page itself. */
40
40
  Page: ComponentType<ModulePageProps>;
41
+ /**
42
+ * What the paths into a project's files that this page opens are called: asked by other pages
43
+ * that show such a path (a queue entry that names `tickets/2026-01-01_x.md`), so they can show
44
+ * a name a person reads in place of a file path. Given the paths whose first segment is the
45
+ * page's own; answers the ones it can name, by path. Read through {@link useFileNames}.
46
+ */
47
+ names?(host: ModuleHost, projectId: string, paths: string[]): Promise<Record<string, ModuleFileName>>;
48
+ }
49
+ /** What a path into a project's files is called, as the page that opens it says. */
50
+ export interface ModuleFileName {
51
+ /** The name a person reads: a ticket's title. */
52
+ title: string;
53
+ /** The path that is opened for it, when it is not the path asked about: a plan still to be written opens its ticket. */
54
+ href?: string;
41
55
  }
42
56
  /**
43
57
  * A link a dashboard page shows (#1774): the name of some work and where it points. What a
@@ -140,6 +154,27 @@ export interface ModuleUsageLimit {
140
154
  /** Save the offset the handle was dragged to, within ±{@link MAX_SPEND_OFFSET}. */
141
155
  save(host: ModuleHost, projects: ModuleProject[], points: number): Promise<UsageLimitSaved>;
142
156
  }
157
+ /** A command that starts by itself in a project, as the module that schedules it says it. */
158
+ export interface ModuleScheduledCommand {
159
+ /** The command as a person types it, without its slash: `work-queue`. */
160
+ command: string;
161
+ /** Whether it starts by itself on this computer right now. */
162
+ on: boolean;
163
+ /** One line on it, for a person: when it starts next while it is on ("Next start in 3h, if there is work"), or why it does not start though its own switch is on ("The scheduler is off", "Cannot start on Codex: …"). */
164
+ note?: string;
165
+ }
166
+ /**
167
+ * What a module that starts commands by itself tells the other pages: which commands, and whether
168
+ * each is on. A page whose work such a command takes (a queue) says so with it, and links to the
169
+ * module's own page, where a person switches a command on. The first module that declares one
170
+ * (in package order) is asked. Read through {@link useSchedule}.
171
+ */
172
+ export interface ModuleSchedule {
173
+ /** The module's own page where a person switches a command on, by its segment. */
174
+ page: string;
175
+ /** One project's commands that can start by themselves. Rejects when they cannot be read: the page then says nothing of that project. */
176
+ read(host: ModuleHost, project: ModuleProject): Promise<ModuleScheduledCommand[]>;
177
+ }
143
178
  /**
144
179
  * The Context as a side-rail tab sees it (#504): the files the next run is pointed at. A tab may
145
180
  * show which files are in it and add or remove one.
@@ -230,6 +265,8 @@ export interface ModuleDefinition {
230
265
  settings?: ModuleSettings[];
231
266
  /** The stop line the module puts on the usage bar. */
232
267
  usageLimit?: ModuleUsageLimit;
268
+ /** The commands the module starts by itself, for the other pages to say. */
269
+ schedule?: ModuleSchedule;
233
270
  /** A stylesheet to load with the module, relative to the module's browser part's own URL. */
234
271
  stylesheet?: string;
235
272
  }
@@ -362,11 +399,16 @@ export declare const ModuleHostContext: import("react").Context<ModuleHost | Mod
362
399
  export declare function useModuleHost(): ModuleHost;
363
400
  export { Button, buttonVariants, type ButtonProps } from '../components/ui/button.js';
364
401
  export { Badge } from '../components/ui/badge.js';
365
- export { Card, CardHeader, CardTitle, CardContent } from '../components/ui/card.js';
402
+ export { Card, CardHeader, CardTitle, CardTitleLink, CardContent } from '../components/ui/card.js';
366
403
  export { Skeleton } from '../components/ui/skeleton.js';
367
404
  export { Checkbox } from '../components/ui/checkbox.js';
368
405
  export { Switch } from '../components/ui/switch.js';
369
406
  export { Input } from '../components/ui/input.js';
407
+ export { Textarea } from '../components/ui/textarea.js';
408
+ export { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '../components/ui/table.js';
409
+ export { Label } from '../components/ui/label.js';
410
+ export { RadioGroup, RadioGroupItem, RadioGroupOption } from '../components/ui/radio-group.js';
411
+ export { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../components/ui/select.js';
370
412
  export { Popover, PopoverContent, PopoverTrigger } from '../components/ui/popover.js';
371
413
  export { RangeSlider } from '../components/ui/slider.js';
372
414
  export { Separator } from '../components/ui/separator.js';
@@ -386,3 +428,7 @@ export { MAX_SPEND_OFFSET } from '../../src/preference-defaults.js';
386
428
  export { formatRelative, formatDateTime, formatDuration, formatAge } from '../lib/format-date.js';
387
429
  export { usePolled, useLoaded, forgetRemembered } from '../lib/use-async.js';
388
430
  export { useAction } from '../lib/use-action.js';
431
+ export { useSchedule, type Schedule } from '../lib/use-schedule.js';
432
+ export { pageHref } from '../lib/route.js';
433
+ export { useFileNames, pathsIn, type FileNames, type NamedFile } from '../lib/use-file-names.js';
434
+ export { ConfirmDialog } from '../components/ui/confirm-dialog.js';
@@ -47,6 +47,15 @@ export type RelayStartResult = StartAgentResult | {
47
47
  * the browser's status dots learn reachable from not.
48
48
  */
49
49
  export declare function pingRemote(target: MachineAccess): Promise<boolean>;
50
+ /**
51
+ * What a saved machine says of itself in its ping: the OpenAgent it runs, and the computer's own
52
+ * name, which the records of its runs carry. Nothing for a machine that does not answer, or
53
+ * does not say.
54
+ */
55
+ export declare function remoteFacts(target: MachineAccess): Promise<{
56
+ version?: string;
57
+ host?: string;
58
+ }>;
50
59
  /** The OpenAgent a saved machine runs, as its ping tells it; nothing for a machine that does not answer, or does not say. */
51
60
  export declare function remoteVersion(target: MachineAccess): Promise<string | undefined>;
52
61
  /** What asking to be let in came to: this computer's key there, or why not, in words. */
@@ -141,14 +150,36 @@ export declare class RelayedAgents {
141
150
  private readonly agents;
142
151
  private readonly targets;
143
152
  private readonly metas;
144
- /** Open a local stream for a remote agent and start pumping the remote's events into it. */
145
- register(agentId: string, target: RemoteTarget, meta: AgentMeta, projectId: string): void;
146
- /** The live event stream for a relayed agent, or undefined when this daemon is not relaying it. */
147
- get(agentId: string | undefined): EventStream<OpenAgentEvent> | undefined;
148
- /** The machine a relayed agent runs on, kept past the event stream so post-run push/PR still reach it. */
149
- target(agentId: string | undefined): RemoteTarget | undefined;
150
- /** Whether a run this daemon follows is still at work on the machine at `url`: its events still stream. */
153
+ private readonly followed;
154
+ /**
155
+ * Open a local stream for a remote agent and start pumping the remote's events into it. `sent`
156
+ * is a run this computer started there. Any other is followed by its record, which someone
157
+ * else may have written: it never stands for a run that is at work ({@link working}), and only
158
+ * so many are followed at once.
159
+ */
160
+ register(agentId: string, target: RemoteTarget, meta: AgentMeta, projectId: string, sent?: boolean): void;
161
+ /**
162
+ * Whether the run is kept here as a run of that project. A run's id says nothing of its
163
+ * project, and a run of one project is never taken for one of another by its id alone.
164
+ */
165
+ private of;
166
+ /** The live event stream for a relayed agent of the project, or undefined when this daemon is not relaying it. */
167
+ get(agentId: string | undefined, projectId?: string): EventStream<OpenAgentEvent> | undefined;
168
+ /** The machine a relayed agent of the project runs on, kept past the event stream so post-run push/PR still reach it. */
169
+ target(agentId: string | undefined, projectId?: string): RemoteTarget | undefined;
170
+ /** Whether this daemon follows the project's run now: its events stream. */
171
+ follows(agentId: string, projectId?: string): boolean;
172
+ /**
173
+ * Whether a run this computer sent is still at work on the machine at `url`. A machine's
174
+ * stream stays open after its run ended, for the next message to it, so the run's own state
175
+ * says it and not the stream. A run followed by its record does not count: its state is what
176
+ * a record said, and a machine is not held by a record anyone with the project can write.
177
+ */
151
178
  working(url: string): boolean;
179
+ /** Whether the run is one this computer sent to its machine, not one followed by its record. */
180
+ isSent(agentId: string): boolean;
181
+ /** Stop following a run and forget it: it is read by its record again. */
182
+ private forget;
152
183
  /** How the machine at `url` is reached since it was added again, for the runs kept from before: this computer's new key there, and the key the machine is known by. */
153
184
  rekey(url: string, key: string, pin?: string): void;
154
185
  /** A project's relayed run stubs (#1077), newest-first, so `onAgents` can surface them in the list. */
@@ -22,13 +22,30 @@ export type EventsSource = (projectId: string, agentId?: string) => AsyncIterabl
22
22
  * daemon wires this from its live relayed-agent map; a run-scoped RPC uses it to forward a remote agent's
23
23
  * read/steer/handoff to that machine instead of resolving a (nonexistent) local checkout. */
24
24
  export interface RemoteAgents {
25
- target(agentId: string | undefined): RemoteTarget | undefined;
25
+ /** The machine of a run this daemon follows, in the project when one is named: a run's id alone says nothing of its project. */
26
+ target(agentId: string | undefined, projectId?: string): RemoteTarget | undefined;
26
27
  /** A project's relayed run stubs (#1077), so `onAgents` can show a remote agent in the list and re-open it after a reload. */
27
28
  list(projectId: string): AgentMeta[];
29
+ /** Whether a followed run is one this computer sent to its machine. Any other is followed by its record, and is listed only while that record is there. */
30
+ sent(agentId: string): boolean;
28
31
  /** Whether a run relayed from here is still at work on the machine at `url`. */
29
32
  working(url: string): boolean;
30
33
  /** How the machine at `url` is reached since it was added again, for the runs kept from before. */
31
34
  rekey(url: string, key: string, pin?: string): void;
35
+ /**
36
+ * The saved machine a run of the project runs on, whoever started it there: one this computer
37
+ * sent, or one whose record, come through the project's shared records, names that machine's
38
+ * computer. Undefined for a run of this computer's own, and for one of a computer that is
39
+ * no saved machine.
40
+ */
41
+ home(projectId: string, agentId: string): Promise<RemoteTarget | undefined>;
42
+ /** Follow a run that runs on a saved machine, when it is not followed yet: its events then stream here, as for a run this computer sent. */
43
+ follow(projectId: string, agentId: string): Promise<void>;
44
+ /**
45
+ * The name a saved machine was given, by its computer's own name, as the records of its runs
46
+ * carry it: asked of the machines first, when one has not said its name yet.
47
+ */
48
+ machineNames(): Promise<(host: string) => string | undefined>;
32
49
  }
33
50
  /**
34
51
  * What every RPC acts through.
@@ -36,6 +36,15 @@ import type { BridgeAnswer, BridgeContact, BridgeVersion } from '../dashboard/br
36
36
  * instead of losing it.
37
37
  */
38
38
  export declare function onAgents(projectId: string): Promise<AgentMeta[]>;
39
+ /**
40
+ * A project's runs with the ones this daemon follows on a machine (#1067), which live in its
41
+ * memory. A run this computer sent that has no record here is listed first, as followed, so a
42
+ * reload re-opens it instead of losing it. One that has a record keeps the record's row, in
43
+ * its place, which holds more (its branch, its pull request, its parent), and takes from the
44
+ * followed one what the machine said since: whether it works, and its session. A run followed
45
+ * by its record is listed only while that record is there: deleted, it is gone from the list.
46
+ */
47
+ export declare function withFollowed(followed: AgentMeta[], local: AgentMeta[], sent: (agentId: string) => boolean): AgentMeta[];
39
48
  /**
40
49
  * A web run whose cloud session is waiting on a human — the bridge holds its parked question, or
41
50
  * claude.ai's session list shows it awaiting input (#1332) — is marked waiting (#1668), so its row
@@ -50,6 +59,14 @@ export declare function markCloudWaiting(agent: AgentMeta): AgentMeta;
50
59
  * with no recorded host predates the field and passes through untouched.
51
60
  */
52
61
  export declare function markOtherHost(agent: AgentMeta, thisHost?: string): AgentMeta;
62
+ /**
63
+ * A run whose record names the computer of a saved machine runs on that machine, whoever started
64
+ * it there, and reads like one this computer sent: by the name the machine was given. The record
65
+ * comes through the project's shared records, so it is here for a run started on the machine's
66
+ * own page too, and after this daemon forgot the runs it sent. A run of this computer, and one of
67
+ * a computer that is no saved machine, pass through untouched.
68
+ */
69
+ export declare function markMachine(agent: AgentMeta, machineOf: (host: string) => string | undefined, thisHost?: string): AgentMeta;
53
70
  /**
54
71
  * A run that ended clean while the process its card names is still alive on this host is marked
55
72
  * saving: the tool that runs it saves the run's record and cleans up its checkout after the card says
@@ -57,6 +74,13 @@ export declare function markOtherHost(agent: AgentMeta, thisHost?: string): Agen
57
74
  * run of another host, or with no recorded process, passes through untouched.
58
75
  */
59
76
  export declare function markSaving(agent: AgentMeta, thisHost?: string, alive?: (pid: number) => boolean): AgentMeta;
77
+ /**
78
+ * A run as its record may say it. A record is a file anyone with the project can write, and its
79
+ * tool's own words are read into the row as they are, so the words only this daemon gives a row
80
+ * are taken off it first: that it runs on a saved machine and which, that it is another
81
+ * computer's, that it is being saved. A computer's name that is no name is none.
82
+ */
83
+ export declare function asRecorded(agent: AgentMeta): AgentMeta;
60
84
  /**
61
85
  * The agent ids that still have a worktree on disk (#737). An agent that failed or was stopped keeps
62
86
  * its checkout so you can go look at what it was holding; this is how the dashboard knows which
@@ -1,8 +1,14 @@
1
+ /** Run `call` as one that came in from another computer: nothing in it is passed on to a machine. */
2
+ export declare function asArrived<T>(call: () => Promise<T>): Promise<T>;
1
3
  /**
2
- * Run a run-scoped RPC locally, or relay it to the machine when `agentId` names an agent this daemon is
3
- * relaying to a saved one (#1067 slice 2). For an ordinary local agent the remote lookup is empty and
4
- * `local()` runs unchanged. For a remote agent there is no local checkout, so the call is forwarded to the
5
- * machine with this computer's key there; if the machine is unreachable, or no longer lets this computer in, `unreachable` is returned - the same empty/error
6
- * shape `local()` gives on a failed read - so the caller never special-cases a remote agent.
4
+ * Run a run-scoped RPC locally, or relay it to the machine when `agentId` names an agent that runs on a
5
+ * saved one (#1067 slice 2): one this daemon sent there, or one the machine's own page started,
6
+ * known here by its record. For an ordinary local agent the remote lookup is empty and
7
+ * `local()` runs unchanged. For a remote agent the call is forwarded to the machine with this
8
+ * computer's key there. If the machine is unreachable, no longer lets this computer in, or
9
+ * knows nothing of the run, a read
10
+ * is answered from what this computer holds of the run, its record when it has one, and
11
+ * anything that would change the run answers `unreachable`: it is never done here in the
12
+ * machine's place.
7
13
  */
8
14
  export declare function relayOr<T>(agentId: string | undefined, fn: string, args: unknown[], local: () => Promise<T>, unreachable: T): Promise<T>;
@@ -34,6 +34,12 @@ export interface MachineRecord {
34
34
  door: string;
35
35
  /** What the machine's key is known by, when its link said: every call goes only to a machine that shows that key. */
36
36
  pin?: string;
37
+ /**
38
+ * The computer's own name, as the machine first said it: what the records of its runs carry,
39
+ * so a run in a project's shared records is known as this machine's. Kept as first said: a
40
+ * machine that later says another name does not get another computer's runs by it.
41
+ */
42
+ host?: string;
37
43
  }
38
44
  /**
39
45
  * The dashboard's Global options (#410), persisted next to the project list so they
@@ -189,6 +195,8 @@ export declare function nodeRegistryFs(): RegistryFs;
189
195
  * and duplicate ids dropped. A malformed entry is skipped, not thrown — a bad registry never breaks the read.
190
196
  */
191
197
  export declare function sanitizeCustomPresets(value: unknown): CustomPreset[];
198
+ /** Whether a value reads as a computer's own name: the letters a host name has, at a host name's length. A page shows it. */
199
+ export declare function isHostName(value: unknown): value is string;
192
200
  /**
193
201
  * Read the whole registry. Forgiving: a missing / unreadable / malformed file — or one in a shape
194
202
  * this no longer writes — yields an empty registry, never throws. Projects are deduped by resolved
@@ -255,6 +263,16 @@ export declare function addMachine(machine: {
255
263
  record: MachineRecord;
256
264
  displaced: MachineRecord[];
257
265
  }>;
266
+ /**
267
+ * Keep the computer's own name a saved machine said, the first time it says one. A machine that
268
+ * already has a name keeps it, and one saved again (a new link) starts without one: `key` is
269
+ * the key the machine was asked with, and a machine saved anew since is not named by an answer
270
+ * to the old one. Answers whether the name was written.
271
+ */
272
+ export declare function nameMachine(machine: {
273
+ id: string;
274
+ key: string;
275
+ }, host: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<boolean>;
258
276
  /** Take a saved machine off the list, by id. Answers the one that was there. */
259
277
  export declare function removeMachine(id: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<MachineRecord | undefined>;
260
278
  /** A {@link PreferencesStore} bound to the real registry file, wired by the daemon so the
@@ -34,6 +34,12 @@ export interface MachineRecord {
34
34
  door: string;
35
35
  /** What the machine's key is known by, when its link said: every call goes only to a machine that shows that key. */
36
36
  pin?: string;
37
+ /**
38
+ * The computer's own name, as the machine first said it: what the records of its runs carry,
39
+ * so a run in a project's shared records is known as this machine's. Kept as first said: a
40
+ * machine that later says another name does not get another computer's runs by it.
41
+ */
42
+ host?: string;
37
43
  }
38
44
  /**
39
45
  * The dashboard's Global options (#410), persisted next to the project list so they
@@ -189,6 +195,8 @@ export declare function nodeRegistryFs(): RegistryFs;
189
195
  * and duplicate ids dropped. A malformed entry is skipped, not thrown — a bad registry never breaks the read.
190
196
  */
191
197
  export declare function sanitizeCustomPresets(value: unknown): CustomPreset[];
198
+ /** Whether a value reads as a computer's own name: the letters a host name has, at a host name's length. A page shows it. */
199
+ export declare function isHostName(value: unknown): value is string;
192
200
  /**
193
201
  * Read the whole registry. Forgiving: a missing / unreadable / malformed file — or one in a shape
194
202
  * this no longer writes — yields an empty registry, never throws. Projects are deduped by resolved
@@ -255,6 +263,16 @@ export declare function addMachine(machine: {
255
263
  record: MachineRecord;
256
264
  displaced: MachineRecord[];
257
265
  }>;
266
+ /**
267
+ * Keep the computer's own name a saved machine said, the first time it says one. A machine that
268
+ * already has a name keeps it, and one saved again (a new link) starts without one: `key` is
269
+ * the key the machine was asked with, and a machine saved anew since is not named by an answer
270
+ * to the old one. Answers whether the name was written.
271
+ */
272
+ export declare function nameMachine(machine: {
273
+ id: string;
274
+ key: string;
275
+ }, host: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<boolean>;
258
276
  /** Take a saved machine off the list, by id. Answers the one that was there. */
259
277
  export declare function removeMachine(id: string, fs?: RegistryFs, env?: NodeJS.ProcessEnv): Promise<MachineRecord | undefined>;
260
278
  /** A {@link PreferencesStore} bound to the real registry file, wired by the daemon so the
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
package/dist/registry.js CHANGED
@@ -168,6 +168,10 @@ export function sanitizeCustomPresets(value) {
168
168
  }
169
169
  return out;
170
170
  }
171
+ /** Whether a value reads as a computer's own name: the letters a host name has, at a host name's length. A page shows it. */
172
+ export function isHostName(value) {
173
+ return typeof value === 'string' && /^[A-Za-z0-9._-]{1,253}$/.test(value);
174
+ }
171
175
  /** Keep well-formed machines, one per address (first wins), names and count capped. */
172
176
  function sanitizeMachines(value) {
173
177
  if (!Array.isArray(value))
@@ -179,13 +183,13 @@ function sanitizeMachines(value) {
179
183
  break;
180
184
  if (typeof raw !== 'object' || raw === null)
181
185
  continue;
182
- const { label, url, key, door, pin } = raw;
186
+ const { label, url, key, door, pin, host } = raw;
183
187
  if (typeof label !== 'string' || typeof url !== 'string' || typeof key !== 'string' || typeof door !== 'string')
184
188
  continue;
185
189
  if (!url || !key || !door || seen.has(url))
186
190
  continue;
187
191
  seen.add(url);
188
- machines.push({ id: url, label: label.trim().slice(0, MACHINE_LIMITS.label) || url, url, key, door, ...(typeof pin === 'string' && pin ? { pin } : {}) });
192
+ machines.push({ id: url, label: label.trim().slice(0, MACHINE_LIMITS.label) || url, url, key, door, ...(typeof pin === 'string' && pin ? { pin } : {}), ...(isHostName(host) ? { host } : {}) });
189
193
  }
190
194
  return machines;
191
195
  }
@@ -387,6 +391,25 @@ export async function addMachine(machine, fs = nodeRegistryFs(), env = process.e
387
391
  return { record, displaced: before.filter(saved => !machines.includes(saved)) };
388
392
  });
389
393
  }
394
+ /**
395
+ * Keep the computer's own name a saved machine said, the first time it says one. A machine that
396
+ * already has a name keeps it, and one saved again (a new link) starts without one: `key` is
397
+ * the key the machine was asked with, and a machine saved anew since is not named by an answer
398
+ * to the old one. Answers whether the name was written.
399
+ */
400
+ export async function nameMachine(machine, host, fs = nodeRegistryFs(), env = process.env) {
401
+ const { id, key } = machine;
402
+ if (!isHostName(host))
403
+ return false;
404
+ return serialize(async () => {
405
+ const registry = await readRegistry(fs, env);
406
+ const saved = (registry.machines ?? []).find(candidate => candidate.id === id);
407
+ if (!saved || saved.key !== key || saved.host !== undefined)
408
+ return false;
409
+ await writeRegistry({ ...registry, machines: (registry.machines ?? []).map(machine => (machine.id === id ? { ...machine, host } : machine)) }, fs, env);
410
+ return true;
411
+ });
412
+ }
390
413
  /** Take a saved machine off the list, by id. Answers the one that was there. */
391
414
  export async function removeMachine(id, fs = nodeRegistryFs(), env = process.env) {
392
415
  return serialize(async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}