@openagt/dashboard 0.53.0 → 0.55.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 (181) hide show
  1. package/README.md +4 -2
  2. package/dist/appearance.d.ts +50 -0
  3. package/dist/appearance.d.ts.map +1 -0
  4. package/dist/appearance.js +51 -0
  5. package/dist/appearance.js.map +1 -0
  6. package/dist/cli/skills.d.ts.map +1 -1
  7. package/dist/cli/skills.js +1 -1
  8. package/dist/cli/skills.js.map +1 -1
  9. package/dist/client.d.ts +1 -0
  10. package/dist/client.d.ts.map +1 -1
  11. package/dist/client.js +1 -0
  12. package/dist/client.js.map +1 -1
  13. package/dist/clone-project.js +1 -1
  14. package/dist/clone-project.js.map +1 -1
  15. package/dist/daemon-runtime.d.ts.map +1 -1
  16. package/dist/daemon-runtime.js +8 -4
  17. package/dist/daemon-runtime.js.map +1 -1
  18. package/dist/daemon-services.d.ts +4 -4
  19. package/dist/daemon-services.js +6 -6
  20. package/dist/daemon-services.js.map +1 -1
  21. package/dist/daemon.d.ts +1 -1
  22. package/dist/daemon.d.ts.map +1 -1
  23. package/dist/daemon.js +11 -1
  24. package/dist/daemon.js.map +1 -1
  25. package/dist/dashboard/elsewhere.d.ts +1 -1
  26. package/dist/dashboard/elsewhere.d.ts.map +1 -1
  27. package/dist/dashboard/projects.js +1 -1
  28. package/dist/dashboard/projects.js.map +1 -1
  29. package/dist/dashboard/rpc-serve.d.ts +6 -0
  30. package/dist/dashboard/rpc-serve.d.ts.map +1 -1
  31. package/dist/dashboard/rpc-serve.js +21 -1
  32. package/dist/dashboard/rpc-serve.js.map +1 -1
  33. package/dist/dashboard/run-inbox.d.ts +4 -3
  34. package/dist/dashboard/run-inbox.d.ts.map +1 -1
  35. package/dist/dashboard/run-inbox.js +6 -5
  36. package/dist/dashboard/run-inbox.js.map +1 -1
  37. package/dist/dashboard/server.d.ts +16 -1
  38. package/dist/dashboard/server.d.ts.map +1 -1
  39. package/dist/dashboard/server.js +54 -12
  40. package/dist/dashboard/server.js.map +1 -1
  41. package/dist/dashboard/static.d.ts +15 -2
  42. package/dist/dashboard/static.d.ts.map +1 -1
  43. package/dist/dashboard/static.js +33 -18
  44. package/dist/dashboard/static.js.map +1 -1
  45. package/dist/dashboard/website.d.ts +34 -0
  46. package/dist/dashboard/website.d.ts.map +1 -0
  47. package/dist/dashboard/website.js +82 -0
  48. package/dist/dashboard/website.js.map +1 -0
  49. package/dist/dashboard-bundle/assets/host/module-BMyNrbiB.js +1 -0
  50. package/dist/dashboard-bundle/assets/main-BLY-EDtL.css +2 -0
  51. package/dist/dashboard-bundle/assets/main-DPdJVm4s.js +152 -0
  52. package/dist/dashboard-bundle/assets/module-DY3Aigsz.js +19 -0
  53. package/dist/dashboard-bundle/index.html +8 -8
  54. package/dist/dashboard-rpc/control.d.ts +22 -6
  55. package/dist/dashboard-rpc/control.d.ts.map +1 -1
  56. package/dist/dashboard-rpc/control.js +45 -9
  57. package/dist/dashboard-rpc/control.js.map +1 -1
  58. package/dist/dashboard-rpc/index.d.ts +3 -1
  59. package/dist/dashboard-rpc/index.d.ts.map +1 -1
  60. package/dist/dashboard-rpc/index.js +6 -2
  61. package/dist/dashboard-rpc/index.js.map +1 -1
  62. package/dist/dashboard-rpc/machines.d.ts.map +1 -1
  63. package/dist/dashboard-rpc/machines.js +1 -2
  64. package/dist/dashboard-rpc/machines.js.map +1 -1
  65. package/dist/dashboard-rpc/modules.js +2 -2
  66. package/dist/dashboard-rpc/modules.js.map +1 -1
  67. package/dist/dashboard-rpc/personal-folder.d.ts +23 -0
  68. package/dist/dashboard-rpc/personal-folder.d.ts.map +1 -0
  69. package/dist/dashboard-rpc/personal-folder.js +30 -0
  70. package/dist/dashboard-rpc/personal-folder.js.map +1 -0
  71. package/dist/dashboard-rpc/project-agent-data.d.ts +20 -0
  72. package/dist/dashboard-rpc/project-agent-data.d.ts.map +1 -0
  73. package/dist/dashboard-rpc/project-agent-data.js +38 -0
  74. package/dist/dashboard-rpc/project-agent-data.js.map +1 -0
  75. package/dist/dashboard-rpc/projects.d.ts +3 -5
  76. package/dist/dashboard-rpc/projects.d.ts.map +1 -1
  77. package/dist/dashboard-rpc/projects.js +5 -17
  78. package/dist/dashboard-rpc/projects.js.map +1 -1
  79. package/dist/dashboard-rpc/reads.d.ts +4 -4
  80. package/dist/dashboard-rpc/reads.d.ts.map +1 -1
  81. package/dist/dashboard-rpc/reads.js +5 -5
  82. package/dist/dashboard-rpc/reads.js.map +1 -1
  83. package/dist/dashboard-rpc/relay-dispatch.js +5 -5
  84. package/dist/dashboard-rpc/relay-dispatch.js.map +1 -1
  85. package/dist/events.d.ts +2 -0
  86. package/dist/events.d.ts.map +1 -1
  87. package/dist/events.js.map +1 -1
  88. package/dist/index.d.ts +0 -1
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/join-dashboard.d.ts +6 -2
  91. package/dist/join-dashboard.d.ts.map +1 -1
  92. package/dist/join-dashboard.js +4 -2
  93. package/dist/join-dashboard.js.map +1 -1
  94. package/dist/module-types/dashboard/components/Markdown.d.ts +8 -1
  95. package/dist/module-types/dashboard/components/SettingsRows.d.ts +2 -2
  96. package/dist/module-types/dashboard/components/ui/dropdown-menu.d.ts +3 -2
  97. package/dist/module-types/dashboard/lib/highlight.d.ts +13 -8
  98. package/dist/module-types/dashboard/module/index.d.ts +15 -1
  99. package/dist/module-types/src/appearance.d.ts +49 -0
  100. package/dist/module-types/src/client.d.ts +1 -0
  101. package/dist/module-types/src/dashboard/elsewhere.d.ts +1 -1
  102. package/dist/module-types/src/dashboard/rpc-serve.d.ts +6 -0
  103. package/dist/module-types/src/dashboard/run-inbox.d.ts +4 -3
  104. package/dist/module-types/src/dashboard-rpc/control.d.ts +22 -6
  105. package/dist/module-types/src/dashboard-rpc/index.d.ts +3 -1
  106. package/dist/module-types/src/dashboard-rpc/personal-folder.d.ts +22 -0
  107. package/dist/module-types/src/dashboard-rpc/project-agent-data.d.ts +19 -0
  108. package/dist/module-types/src/dashboard-rpc/projects.d.ts +3 -5
  109. package/dist/module-types/src/dashboard-rpc/reads.d.ts +4 -4
  110. package/dist/module-types/src/events.d.ts +2 -0
  111. package/dist/module-types/src/index.d.ts +0 -1
  112. package/dist/module-types/src/personal-folder-shown.d.ts +10 -0
  113. package/dist/module-types/src/registry.d.ts +11 -0
  114. package/dist/module-types/src/repository-url.d.ts +6 -0
  115. package/dist/module-types/src/secure-address.d.ts +31 -0
  116. package/dist/module.css +6 -4
  117. package/dist/personal-folder-shown.d.ts +11 -0
  118. package/dist/personal-folder-shown.d.ts.map +1 -0
  119. package/dist/personal-folder-shown.js +8 -0
  120. package/dist/personal-folder-shown.js.map +1 -0
  121. package/dist/registry.d.ts +11 -0
  122. package/dist/registry.d.ts.map +1 -1
  123. package/dist/registry.js +13 -0
  124. package/dist/registry.js.map +1 -1
  125. package/dist/remove-files.d.ts +4 -3
  126. package/dist/remove-files.d.ts.map +1 -1
  127. package/dist/remove-files.js +6 -1
  128. package/dist/remove-files.js.map +1 -1
  129. package/dist/repository-url.d.ts +7 -0
  130. package/dist/repository-url.d.ts.map +1 -0
  131. package/dist/repository-url.js +17 -0
  132. package/dist/repository-url.js.map +1 -0
  133. package/dist/secure-address.d.ts +32 -0
  134. package/dist/secure-address.d.ts.map +1 -0
  135. package/dist/secure-address.js +50 -0
  136. package/dist/secure-address.js.map +1 -0
  137. package/dist/store/run-record.d.ts.map +1 -1
  138. package/dist/store/run-record.js +3 -1
  139. package/dist/store/run-record.js.map +1 -1
  140. package/dist/terminal.js +2 -0
  141. package/dist/terminal.js.map +1 -1
  142. package/dist/website/assets/chunks/chunk-BIhVwAkA.js +1 -0
  143. package/dist/website/assets/chunks/chunk-CSTMwN0A.js +1 -0
  144. package/dist/website/assets/chunks/chunk-DeonM-eN.js +3 -0
  145. package/dist/website/assets/chunks/chunk-kQ9-9YDn.js +18 -0
  146. package/dist/website/assets/emoji-compass.svg +75 -0
  147. package/dist/website/assets/emoji-confused.svg +34 -0
  148. package/dist/website/assets/emoji-construction.svg +188 -0
  149. package/dist/website/assets/emoji-flex.svg +1 -0
  150. package/dist/website/assets/emoji-hand-raised.svg +180 -0
  151. package/dist/website/assets/emoji-mech-arm.svg +1 -0
  152. package/dist/website/assets/emoji-robot.svg +105 -0
  153. package/dist/website/assets/emoji-rocket.svg +49 -0
  154. package/dist/website/assets/entries/entry-client-routing.CzHJwWDQ.js +2 -0
  155. package/dist/website/assets/entries/pages_banner.6_j-HGsV.js +1 -0
  156. package/dist/website/assets/entries/pages_go-to-dashboard.CxnTPDW0.js +1 -0
  157. package/dist/website/assets/entries/pages_index.Dcg_ZrR7.js +1 -0
  158. package/dist/website/assets/entries/pages_press.rRp1mRww.js +1 -0
  159. package/dist/website/assets/logo.svg +34 -0
  160. package/dist/website/assets/static/pages_index_styles-f7bc93a7.DHC1qZXc.css +1 -0
  161. package/dist/website/banner/index.html +28 -0
  162. package/dist/website/banner/index.pageContext.json +1 -0
  163. package/dist/website/banner.jpg +0 -0
  164. package/dist/website/go-to-dashboard/index.html +30 -0
  165. package/dist/website/go-to-dashboard/index.pageContext.json +1 -0
  166. package/dist/website/index.html +30 -0
  167. package/dist/website/index.pageContext.json +1 -0
  168. package/dist/website/press/index.html +29 -0
  169. package/dist/website/press/index.pageContext.json +1 -0
  170. package/package.json +31 -27
  171. package/dist/dashboard-bundle/assets/everforest-dark-sB-x3p7T.js +0 -1
  172. package/dist/dashboard-bundle/assets/everforest-light-Df2xbC6M.js +0 -1
  173. package/dist/dashboard-bundle/assets/host/module-CTQrrHFl.js +0 -1
  174. package/dist/dashboard-bundle/assets/main-BKp0ZMXD.css +0 -2
  175. package/dist/dashboard-bundle/assets/main-Du4cDqEn.js +0 -148
  176. package/dist/dashboard-bundle/assets/module-Cwganbc7.js +0 -16
  177. package/dist/module-types/src/repository-address.d.ts +0 -36
  178. package/dist/repository-address.d.ts +0 -37
  179. package/dist/repository-address.d.ts.map +0 -1
  180. package/dist/repository-address.js +0 -59
  181. package/dist/repository-address.js.map +0 -1
@@ -12,7 +12,7 @@ export declare function SettingsSection({ description, action, children }: {
12
12
  /** One setting: what it is and what it does on the left, its control on the right. */
13
13
  export declare function SettingsRow({ label, description, control, dimmed, }: {
14
14
  label: string;
15
- description: string;
15
+ description: ReactNode;
16
16
  control: ReactNode;
17
17
  /** A row the rules turned off: greyed, but still shown with its reason. */
18
18
  dimmed?: boolean;
@@ -34,7 +34,7 @@ export interface SettingsOption {
34
34
  */
35
35
  export declare function SettingsSelectRow({ label, description, value, options, onChange, }: {
36
36
  label: string;
37
- description: string;
37
+ description: ReactNode;
38
38
  value: string;
39
39
  options: SettingsOption[];
40
40
  onChange: (next: string) => void;
@@ -1,7 +1,8 @@
1
1
  import { Menu } from '@base-ui/react/menu';
2
2
  import type { ComponentProps } from 'react';
3
- export declare const MENU_POPUP_CLASS = "min-w-[13rem] rounded-md border border-[var(--color-border)] bg-[var(--color-card)] text-[var(--color-card-foreground)] shadow-md outline-none";
4
- export declare const MENU_ITEM_CLASS = "relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[highlighted]:bg-[var(--color-accent)] data-[highlighted]:text-[var(--color-accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
3
+ export declare const MENU_SURFACE_CLASS = "menu-surface rounded-xl shadow-lg ring-1 ring-foreground/10 backdrop-blur-xl outline-none";
4
+ export declare const MENU_POPUP_CLASS: string;
5
+ export declare const MENU_ITEM_CLASS = "relative flex cursor-pointer select-none items-center gap-2 rounded-lg px-2 py-1.5 text-sm font-medium outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
5
6
  export declare const DropdownMenu: typeof Menu.Root;
6
7
  export declare const DropdownMenuGroup: import("react").ForwardRefExoticComponent<Omit<import("@base-ui/react").MenuGroupProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
7
8
  export declare const DropdownMenuSub: typeof Menu.SubmenuRoot;
@@ -1,22 +1,27 @@
1
1
  /** The language a fenced code block names (```bash, ```ts, ```python), as an extension or as a grammar's own name. */
2
2
  export declare function languageOfFence(name: string): string | undefined;
3
3
  export declare function languageOf(path: string): string | undefined;
4
- /** Which colours a text is drawn in: an editor's, for a file's lines, or the chat's, for a reply's code block. */
5
- export type Palette = 'editor' | 'chat';
6
- /** One line's coloured pieces: the text, and its colour in the light theme and in the dark one. */
4
+ /**
5
+ * The kinds of word code is coloured by, in Claude Code on the web's way of telling them apart:
6
+ * commands and functions, strings and a command's arguments, keywords, numbers with their units
7
+ * and colours, a markup tag's name with a property's, an attribute's name, a parameter, a type.
8
+ * Each is drawn in `--code-<kind>`.
9
+ */
10
+ export declare const KINDS: readonly ['plain', 'comment', 'punctuation', 'keyword', 'operator', 'string', 'number', 'function', 'property', 'attribute', 'parameter', 'type'];
11
+ export type Kind = (typeof KINDS)[number];
12
+ /** One line's coloured pieces: the text, and the kind of word it is. */
7
13
  export type Piece = {
8
14
  text: string;
9
- light: string | undefined;
10
- dark: string | undefined;
15
+ kind: Kind;
11
16
  };
12
17
  /**
13
18
  * The lines of `text` in colour, by the language `path` names: null while its grammar loads, and
14
19
  * for a file that stays plain.
15
20
  */
16
21
  export declare function useHighlighted(text: string, path: string): Piece[][] | null;
17
- /** The same, for a language already known (a fenced block names its own), in the colours of `palette`. */
18
- export declare function useHighlightedIn(text: string, language: string | undefined, palette?: Palette): Piece[][] | null;
19
- /** One line's pieces, each in its colour for the page's theme. */
22
+ /** The same, for a language already known (a fenced block names its own). */
23
+ export declare function useHighlightedIn(text: string, language: string | undefined): Piece[][] | null;
24
+ /** One line's pieces, each in its kind's colour for the page's theme. */
20
25
  export declare function Pieces({ pieces }: {
21
26
  pieces: Piece[];
22
27
  }): import("react").JSX.Element[];
@@ -231,6 +231,15 @@ export interface ModulePanelProps {
231
231
  path?: string;
232
232
  at: number;
233
233
  };
234
+ /**
235
+ * On a pane that shows a run's files (`files`): the file a click in the chat asked to see, by
236
+ * its path as the agent named it, whole (on whichever computer the run is on) or in the run's
237
+ * checkout. `at` tells one ask from the next for the same file. Absent until a file is asked for.
238
+ */
239
+ show?: {
240
+ path: string;
241
+ at: number;
242
+ };
234
243
  context: ModuleContext;
235
244
  }
236
245
  /**
@@ -253,6 +262,11 @@ export interface ModulePanel {
253
262
  * hands it the file as `reveal`. Without such a pane, those rows open nothing.
254
263
  */
255
264
  changes?: true;
265
+ /**
266
+ * This pane shows a run's files. A file named in the chat (a step's "Read index.html") then
267
+ * opens it, and hands it the file as `show`. Without such a pane, those names are text.
268
+ */
269
+ files?: true;
256
270
  /**
257
271
  * This pane shows a run's live screen ({@link ModuleHost.watchScreen}). The chat's row of a live
258
272
  * screen then opens it. Without such a pane, that row is a line of text.
@@ -605,7 +619,7 @@ export { Page } from '../components/Page.js';
605
619
  export { StatTile } from '../components/StatTile.js';
606
620
  export { FilterChips, type FilterChip } from '../components/FilterChips.js';
607
621
  export { FileIcon } from '../components/FileIcon.js';
608
- export { Markdown } from '../components/Markdown.js';
622
+ export { Markdown, FileLinks } from '../components/Markdown.js';
609
623
  export { StartAgentButton } from '../components/StartAgentButton.js';
610
624
  export { LinkActions, type ProjectLinks, type LinkTargets } from '../components/LinkActions.js';
611
625
  export { MachineMark } from '../components/MachineMark.js';
@@ -0,0 +1,49 @@
1
+ /** The page's colours: OpenAgent's own, Everforest's, or shadcn's neutral greys. */
2
+ export declare const PALETTES: readonly ['openagent', 'neutral'];
3
+ export type Palette = (typeof PALETTES)[number];
4
+ export declare const PALETTE_LABELS: Record<Palette, string>;
5
+ /**
6
+ * The colour of buttons, links and what is picked, from the palette's own colours: OpenAgent's
7
+ * are Everforest's (its blue, the default, is none picked), Neutral's are Tailwind's as shadcn
8
+ * offers them (its near-white, the default, is none picked).
9
+ */
10
+ export declare const ACCENTS: {
11
+ readonly openagent: readonly ["green", "aqua", "yellow", "orange", "red", "purple"];
12
+ readonly neutral: readonly ["amber", "blue", "cyan", "emerald", "fuchsia", "green", "indigo", "lime", "orange", "pink", "purple", "red", "rose", "sky", "teal", "violet", "yellow"];
13
+ };
14
+ export type Accent = (typeof ACCENTS)[Palette][number];
15
+ /** What the primary colour is called with none picked, per palette. */
16
+ export declare const DEFAULT_ACCENT_LABELS: Record<Palette, string>;
17
+ /** The picked colour if it is one of the palette's, else none: a colour of the other palette's list does not carry over. */
18
+ export declare function accentOf(palette: Palette | undefined, accent: unknown): Accent | undefined;
19
+ /** The font of the page and the chat, by its family's name. */
20
+ export declare const FONTS: {
21
+ readonly 'ibm-plex-sans': 'IBM Plex Sans';
22
+ readonly figtree: 'Figtree';
23
+ readonly inter: 'Inter';
24
+ readonly geist: 'Geist';
25
+ readonly 'plus-jakarta-sans': 'Plus Jakarta Sans';
26
+ readonly manrope: 'Manrope';
27
+ };
28
+ export type Font = keyof typeof FONTS;
29
+ /** The font of code: code blocks, a read's lines, the Files pane's files. */
30
+ export declare const CODE_FONTS: {
31
+ readonly 'jetbrains-mono': 'JetBrains Mono';
32
+ readonly 'geist-mono': 'Geist Mono';
33
+ readonly 'ibm-plex-mono': 'IBM Plex Mono';
34
+ readonly 'fira-code': 'Fira Code';
35
+ readonly 'source-code-pro': 'Source Code Pro';
36
+ };
37
+ export type CodeFont = keyof typeof CODE_FONTS;
38
+ /** The font a Markdown file is read in, in the Files pane: a serif, as Claude Code on the web's, or the page's own (`app`). */
39
+ export declare const DOCUMENT_FONTS: {
40
+ readonly 'source-serif-4': 'Source Serif 4';
41
+ readonly newsreader: 'Newsreader';
42
+ readonly literata: 'Literata';
43
+ readonly app: 'The page’s font';
44
+ };
45
+ export type DocumentFont = keyof typeof DOCUMENT_FONTS;
46
+ export declare const isPalette: (value: unknown) => value is Palette;
47
+ export declare const isFont: (value: unknown) => value is Font;
48
+ export declare const isCodeFont: (value: unknown) => value is CodeFont;
49
+ export declare const isDocumentFont: (value: unknown) => value is DocumentFont;
@@ -1,6 +1,7 @@
1
1
  export { DRIVERS, DRIVER_LABELS, isDriverName, driverFromImpl, type DriverName } from './driver-names.js';
2
2
  export { PUBLISH_LABELS, isPublishPick, offeredPublishPicks, publishPickIn, type PublishPick } from './publish-levels.js';
3
3
  export { formatOpenAgentEvent } from './terminal.js';
4
+ export { ACCENTS, DEFAULT_ACCENT_LABELS, accentOf, CODE_FONTS, DOCUMENT_FONTS, FONTS, PALETTES, PALETTE_LABELS, type Accent, type CodeFont, type DocumentFont, type Font, type Palette } from './appearance.js';
4
5
  export { runName } from './run-name.js';
5
6
  export { foldScreenRows } from './screens.js';
6
7
  export { formatBytes } from './format-bytes.js';
@@ -20,7 +20,7 @@ export interface OwnProject {
20
20
  name: string;
21
21
  /** Its folder there. */
22
22
  path: string;
23
- /** Its repository's address ({@link import('../repository-address.js').repositoryAddress}), when it has one. */
23
+ /** Its repository's address ({@link import('@openagt/agent-data').repositoryAddress}), when it has one. */
24
24
  address?: string;
25
25
  /** The same address in the letters its `origin` is written with: what another computer clones it from. */
26
26
  spelling?: string;
@@ -143,8 +143,14 @@ export declare function isJsonRequest(req: IncomingMessage): boolean;
143
143
  * computer's own address only, so the only `Host` a real user's browser can send is a loopback
144
144
  * one — anything else is a rebound name and is rejected. An absent `Host` is rejected too:
145
145
  * HTTP/1.1 requires it, and every browser sends it.
146
+ *
147
+ * The one other name let in is the secure address's (#1919), and only over its HTTPS: a rebound
148
+ * name never gets that far, since the browser finds the certificate is for another name and
149
+ * stops before it sends anything.
146
150
  */
147
151
  export declare function isExpectedHost(req: IncomingMessage): boolean;
152
+ /** Whether this request came to the secure address (#1919): over its HTTPS, by its name. */
153
+ export declare function isSecureAddressRequest(req: IncomingMessage): boolean;
148
154
  /** Where the dashboard's RPCs live. One prefix, so the static handler can decline it by path. */
149
155
  export declare const RPC_PREFIX = "/_rpc";
150
156
  /**
@@ -7,7 +7,7 @@ import { type InboxLine } from '@openagt/agent-driver';
7
7
  */
8
8
  /**
9
9
  * The inbox of a run, in its checkout's `.openagent/`: the file agent-driver's session reads
10
- * when a turn ends, one JSON line per message or answer. The run's tool hands the session the
10
+ * while a turn runs and when it ends, one JSON line per message, answer, or act on a message. The run's tool hands the session the
11
11
  * same path.
12
12
  */
13
13
  export declare const RUN_INBOX_FILE = "inbox.jsonl";
@@ -19,8 +19,9 @@ export type SteerResult = {
19
19
  error: string;
20
20
  };
21
21
  /**
22
- * Hand one line to a run of the project at `cwd`. A run that is working takes it from its inbox
23
- * when its turn ends. A run that has ended (done, stopped, failed, or waiting on its question) is
22
+ * Hand one line to a run of the project at `cwd`. A run that is working takes it from its inbox:
23
+ * a message reaches the agent at its next step, or when its turn ends when it was sent for later.
24
+ * Taking back a message and Send now act on the turn that runs; with none, they are done. A run that has ended (done, stopped, failed, or waiting on its question) is
24
25
  * continued through the project's `resume` hook. A run that ends while the line is on its way
25
26
  * would leave it in an inbox nobody reads, so the run is looked at again after the write, and
26
27
  * what is still in the inbox then is taken back and resumes the run instead.
@@ -16,7 +16,8 @@ import { type PublishPick } from '../publish-levels.js';
16
16
  export declare function agentLockKey(cwd: string, agentId: string): string;
17
17
  /**
18
18
  * Stop a live agent (the Stop button): SIGINT to the process the run's own card names, when it is
19
- * this machine's and alive. The card is the file the dashboard shows the run from, and its pid is
19
+ * this machine's and alive. The run's tool asks its agent to end the turn where it is, as Esc does
20
+ * in Claude Code; a message continues it. The card is the file the dashboard shows the run from, and its pid is
20
21
  * whoever runs the agent; OpenAgent names no tool. Nothing else: a run without a live pid
21
22
  * here has nothing to stop.
22
23
  */
@@ -45,12 +46,27 @@ export declare function sendBridgeAnswer(sessionId: string, labels: string[]): P
45
46
  export declare function sendBridgeAnswerCancel(sessionId: string): Promise<void>;
46
47
  /**
47
48
  * Say something to a run (#714, #1774): the person's own words, the next prompt of the same
48
- * conversation. A run that is working takes them when its turn ends; an ended run is resumed
49
- * with them. Empty messages are dropped. `publish`, when the person changed the session's "Auto"
50
- * pick, is how far the run takes its work from these words on, `nothing` for no level; the run's
51
- * tool reads it, from the inbox line or the resume line's `PUBLISH`.
49
+ * conversation. A run that is working reads them at its next step, as Claude Code's chat does,
50
+ * or, sent `later`, when its turn ends; an ended run is resumed with them. Empty messages are
51
+ * dropped. `publish`, when the person changed the session's "Auto" pick, is how far the run takes
52
+ * its work from these words on, `nothing` for no level; the run's tool reads it, from the inbox
53
+ * line or the resume line's `PUBLISH`. `id` names the message for {@link withdrawMessage} and for
54
+ * the run's word that it landed.
52
55
  */
53
- export declare function sendMessage(projectId: string, text: string, agentId?: string, publish?: PublishPick): Promise<SteerResult>;
56
+ export declare function sendMessage(projectId: string, text: string, agentId?: string, publish?: PublishPick | null, sent?: {
57
+ id?: string;
58
+ later?: boolean;
59
+ }): Promise<SteerResult>;
60
+ /**
61
+ * Take back a message sent to a working run that the agent has not read yet (Cancel and edit):
62
+ * the person edits it instead. One the agent already read stays read.
63
+ */
64
+ export declare function withdrawMessage(projectId: string, agentId: string, id: string): Promise<SteerResult>;
65
+ /**
66
+ * Send now: the messages a working run has not read yet reach its agent at once, what it is running
67
+ * going on in the background, as Claude Code's Send now does.
68
+ */
69
+ export declare function sendNow(projectId: string, agentId: string): Promise<SteerResult>;
54
70
  /**
55
71
  * Remove a retained worktree (#737). An agent that failed or was stopped keeps its checkout so you
56
72
  * can inspect it; this is the explicit cleanup for one, since nothing removes them on a timer.
@@ -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, onRecordsReach, sendShareRecords, sendPickProjectDirectory, onOnboarding, onCommands, onStartBranches, onStartCheck, onCloneCheck, type ProjectLauncher } from './projects.js';
4
+ export { onProjects, sendAddProject, sendStartedAgain, onCloneTarget, sendAddProjectFromAddress, sendRemoveProject, sendShareRecords, sendPickProjectDirectory, onOnboarding, 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';
@@ -12,6 +12,8 @@ export { onProjectSkills, sendChangeSkills, sendProjectSkills, type ProjectSkill
12
12
  export { onPerson, type Person } from './person.js';
13
13
  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
+ export { onPersonalFolder, sendSyncPersonalFolder, sendStopSyncingPersonalFolder, type PersonalFolderView } from './personal-folder.js';
16
+ export { onProjectAgentData, type ProjectAgentData, type KeptData } from './project-agent-data.js';
15
17
  export { onServerLogins, sendUseLoginsOn, sendAllowLogins, sendSettleLogin, type ServerLoginsView, type ServerLogins, type LoginThere } from './server-logins.js';
16
18
  export { onCopiedLogins, sendCopiedLogin, sendForgetCopiedLogin, sendKeepCopiedLogin, sendCopiedUsage, type CopiedView } from './copied-logins.js';
17
19
  export { onAgentAccounts, sendRemoveAgentAccount, sendUseAgentAccountFirst, type AccountsAgent, type AccountRow, type AccountWindow, type AccountsView, type AccountResult } from './accounts.js';
@@ -0,0 +1,22 @@
1
+ import { type PersonalFolderShown } from '../personal-folder-shown.js';
2
+ export interface PersonalFolderView extends PersonalFolderShown {
3
+ /** Commits made here that have not reached the repository yet. */
4
+ unsent: number;
5
+ /** The projects of this computer that keep their agent data in it, by name. */
6
+ projects: string[];
7
+ }
8
+ export declare function onPersonalFolder(): Promise<PersonalFolderView>;
9
+ /** Sync the personal folder with the person's repository: what it has comes in, every record here goes out. */
10
+ export declare function sendSyncPersonalFolder(typed: string): Promise<{
11
+ ok: true;
12
+ } | {
13
+ ok: false;
14
+ error: string;
15
+ }>;
16
+ /** Stop syncing: the repository is forgotten here, every record stays on this machine and on the repository. */
17
+ export declare function sendStopSyncingPersonalFolder(): Promise<{
18
+ ok: true;
19
+ } | {
20
+ ok: false;
21
+ error: string;
22
+ }>;
@@ -0,0 +1,19 @@
1
+ import { type PersonalFolderShown } from '../personal-folder-shown.js';
2
+ /** One kind of the project's data the skills keep: how many, and the skill that keeps them. */
3
+ export interface KeptData {
4
+ kind: 'runs' | 'tickets' | 'queue';
5
+ count: number;
6
+ /** The providing package's name as a person knows the skill (`logs` for `@openagt/skill-logs`). */
7
+ skill: string;
8
+ }
9
+ export interface ProjectAgentData {
10
+ /** `personal`: in the person's own folder; `repository`: on the project's own branch `agent-data`. */
11
+ place: 'personal' | 'repository';
12
+ /** The person's own folder, and the repository it syncs with, if any. */
13
+ folder: PersonalFolderShown;
14
+ /** Whether the project has a remote to keep its data on. */
15
+ canShare: boolean;
16
+ kept: KeptData[];
17
+ }
18
+ /** Where the project's agent data is and what is kept; `null` for a project with no folder on this computer. */
19
+ export declare function onProjectAgentData(projectId: string): Promise<ProjectAgentData | null>;
@@ -1,5 +1,4 @@
1
1
  import { type ProjectCommand } from '../project-commands.js';
2
- import { type BranchReach } from '@openagt/agent-data';
3
2
  import { type StartReadiness } from '../project-hooks.js';
4
3
  import { type StartFromPick } from '../registry.js';
5
4
  import { type PickDirectoryResult } from '../pick-directory.js';
@@ -57,12 +56,11 @@ export declare function sendAddProjectFromAddress(address: string, share: boolea
57
56
  * Addressed by id and not by path, so a project whose folder is gone can still be removed.
58
57
  */
59
58
  export declare function sendRemoveProject(projectId: string, files: boolean): Promise<RemoveProjectResult>;
60
- /** How far the project's records reach right now, read off its repository; `null` when the project is unknown here. */
61
- export declare function onRecordsReach(projectId: string): Promise<BranchReach | null>;
62
59
  /**
63
60
  * The person's switch: share the project's records with its remote, or keep them on this machine.
64
- * Turning it on sends what is there now, so a remote that refuses is said at once, and the switch
65
- * goes back to off: the records stay where they were. A project with no remote has nothing to
61
+ * The records move with the switch: on, from the personal folder to the project's branch, sent at
62
+ * once, so a remote that refuses is said at once and the switch goes back to off with the records
63
+ * where they were; off, back to the personal folder. A project with no remote has nothing to
66
64
  * share with, and is refused.
67
65
  */
68
66
  export declare function sendShareRecords(projectId: string, on: boolean): Promise<{
@@ -40,11 +40,11 @@ import { type OwnRuns } from '../dashboard/machine-runs.js';
40
40
  */
41
41
  export declare function onAgents(projectId: string): Promise<AgentMeta[]>;
42
42
  /**
43
- * The name asked for a run this computer just started, answered once it is in (`started-names.ts`):
44
- * the run's row is not in the list yet when it is, and the page shows it where the row will be.
45
- * Nothing for a run started elsewhere, or when no name came.
43
+ * The name asked for a run just started, answered once it is in (`started-names.ts`): the run's
44
+ * row is not in the list yet when it is, and the page shows it where the row will be. A run that
45
+ * runs on a saved machine was named there, so the machine is asked. Nothing when no name came.
46
46
  */
47
- export declare function onStartedName(agentId: string): Promise<string | undefined>;
47
+ export declare function onStartedName(projectId: string, agentId: string): Promise<string | undefined>;
48
48
  /**
49
49
  * A project's runs as a module sees them ({@link ModuleAgent}), only the ones it asks for: a card
50
50
  * shows a few of the hundreds a project keeps, and each run in the few fields a module reads, so
@@ -20,6 +20,8 @@ export interface ChoiceRequest {
20
20
  id: string;
21
21
  /** The question shown above the options (e.g. "Approve this plan?"). */
22
22
  title: string;
23
+ /** A word or two naming the question ("Background"), when the agent gave one: what the chat calls it once it was passed by. */
24
+ header?: string;
23
25
  /** The options to choose between (at least one). */
24
26
  options: readonly ChoiceOption[];
25
27
  /**
@@ -23,7 +23,6 @@ export type { Activity } from './dashboard/activity.js';
23
23
  export type { AgentHandoff } from './dashboard/agent-handoff.js';
24
24
  export type { GitHostHome } from './store/git-host.js';
25
25
  export type { RepositoryOffer, CreateRepositoryResult } from './store/repository.js';
26
- export type { BranchReach as RecordsReach } from '@openagt/agent-data';
27
26
  export type { BridgeEvent } from './dashboard/bridge-endpoints.js';
28
27
  export type { BridgeOption, BridgeQuestion } from './dashboard/bridge-question.js';
29
28
  export type { BridgeAnswer } from './dashboard/bridge-store.js';
@@ -0,0 +1,10 @@
1
+ import { type PersonalFolderState } from '@openagt/agent-data';
2
+ /** The person's own folder as a page shows it: its path with the home directory as `~`, the repository it syncs with as `host/path`, and that repository's page. */
3
+ export interface PersonalFolderShown {
4
+ path: string;
5
+ /** The repository it syncs with, as `host/path`, or its address as given when it is not one. */
6
+ remote?: string;
7
+ /** The repository's page, for a remote that is on a host. */
8
+ remoteUrl?: string;
9
+ }
10
+ export declare function personalFolderShown(state: PersonalFolderState, home?: string): PersonalFolderShown;
@@ -1,3 +1,4 @@
1
+ import { type Accent, type CodeFont, type DocumentFont, type Font, type Palette } from './appearance.js';
1
2
  import { type OverviewLayouts } from './overview-layout.js';
2
3
  import { type PublishPick } from './publish-levels.js';
3
4
  import { type OwnProject } from './dashboard/elsewhere.js';
@@ -179,6 +180,16 @@ export interface Preferences {
179
180
  editor?: string;
180
181
  /** Dashboard color theme (#725): `system` (follow the OS, the default), `light`, or `dark`. Absent = system. */
181
182
  theme?: 'system' | 'light' | 'dark';
183
+ /** The page's colours (`appearance.ts`). Absent = OpenAgent's own. */
184
+ palette?: Palette;
185
+ /** The colour of buttons, links and what is picked, one of the palette's. Absent = the palette's own. */
186
+ accent?: Accent;
187
+ /** The font of the page and the chat. Absent = IBM Plex Sans. */
188
+ font?: Font;
189
+ /** The font of code. Absent = JetBrains Mono. */
190
+ codeFont?: CodeFont;
191
+ /** The font a Markdown file is read in, in the Files pane. Absent = Source Serif 4. */
192
+ documentFont?: DocumentFont;
182
193
  /**
183
194
  * The browser bridge (#1237): let an extension running in the user's own Claude session report
184
195
  * the question a Claude web agent is parked on, so it shows in the dashboard rather than only on
@@ -0,0 +1,6 @@
1
+ /**
2
+ * The address a person typed, as git is given it: a host's address as it is (`https://…`,
3
+ * `git@host:path`), or `host/path` alone, read as the host's https address. Anything that is not a
4
+ * repository on a host (a path on this disk, an option) is none.
5
+ */
6
+ export declare function repositoryUrlOf(typed: string): string | undefined;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * The dashboard's secure address (#1919): a name like `openagent.build` that this computer
3
+ * answers itself, with a certificate made on this computer for that one name.
4
+ *
5
+ * `@openagt/install` makes the certificate and points the name at this computer; the dashboard
6
+ * only reads what it finds here. With a certificate here, it also answers over HTTPS on
7
+ * {@link SECURE_PORT}, which the install sends the name's port 443 to.
8
+ */
9
+ /** The port the secure address is answered on, on this computer's own address only. */
10
+ export declare const SECURE_PORT = 4243;
11
+ export declare const KEY_FILE = "key.pem";
12
+ export declare const CERTIFICATE_FILE = "cert.pem";
13
+ /**
14
+ * The folder the key and the certificate are kept in: `$XDG_CONFIG_HOME/openagent-address` when
15
+ * that is set, else `~/.openagent-address`, beside the registry file. Not in the personal folder
16
+ * `~/.openagent`, which may be pushed to a repository: the key never leaves this computer.
17
+ */
18
+ export declare function secureAddressDir(env: NodeJS.ProcessEnv): string;
19
+ /** The name, and the key and certificate a TLS server takes. */
20
+ export interface SecureAddress {
21
+ name: string;
22
+ key: string;
23
+ cert: string;
24
+ }
25
+ /**
26
+ * The secure address kept on this computer, or `undefined` when there is none. The name is read
27
+ * off the certificate, so the two can never disagree.
28
+ */
29
+ export declare function readSecureAddress(env: NodeJS.ProcessEnv): Promise<SecureAddress | undefined>;
30
+ /** The names a certificate's `subjectAltName` lists (`DNS:a, DNS:b`), in order. */
31
+ export declare function certificateNames(subjectAltName: string | undefined): string[];
package/dist/module.css CHANGED
@@ -12,10 +12,12 @@
12
12
  /* The page is squarer than the old UI, so the radius tightens to ~2px to match. */
13
13
  @theme {
14
14
  --radius: 0.125rem;
15
- /* The landing page's typeface (#1118), loaded in pages/+Head.tsx. Overriding these two theme
16
- keys retargets Tailwind's default body font and every `font-mono` to IBM Plex. */
17
- --font-sans: 'IBM Plex Sans', ui-sans-serif, system-ui, sans-serif;
18
- --font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
15
+ /* The person's three fonts (Settings › Appearance), as the page sets them (`--font-app`,
16
+ `--font-code`, `--font-document`, tailwind.css and AppFrame): Tailwind's body font and every
17
+ `font-sans`, every `font-mono`, and `font-serif`, a Markdown file read as a page. */
18
+ --font-sans: var(--font-app);
19
+ --font-mono: var(--font-code);
20
+ --font-serif: var(--font-document);
19
21
  }
20
22
 
21
23
  @theme inline {
@@ -0,0 +1,11 @@
1
+ import { type PersonalFolderState } from '@openagt/agent-data';
2
+ /** The person's own folder as a page shows it: its path with the home directory as `~`, the repository it syncs with as `host/path`, and that repository's page. */
3
+ export interface PersonalFolderShown {
4
+ path: string;
5
+ /** The repository it syncs with, as `host/path`, or its address as given when it is not one. */
6
+ remote?: string;
7
+ /** The repository's page, for a remote that is on a host. */
8
+ remoteUrl?: string;
9
+ }
10
+ export declare function personalFolderShown(state: PersonalFolderState, home?: string): PersonalFolderShown;
11
+ //# sourceMappingURL=personal-folder-shown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personal-folder-shown.d.ts","sourceRoot":"","sources":["../src/personal-folder-shown.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAEhF,oKAAoK;AACpK,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,gGAAgG;IAChG,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,GAAE,MAAkB,GAAG,mBAAmB,CAI7G"}
@@ -0,0 +1,8 @@
1
+ import { homedir } from 'node:os';
2
+ import { spellingOfRemote } from '@openagt/agent-data';
3
+ export function personalFolderShown(state, home = homedir()) {
4
+ const spelling = state.remote ? spellingOfRemote(state.remote) : undefined;
5
+ const path = state.path === home || state.path.startsWith(home + '/') ? '~' + state.path.slice(home.length) : state.path;
6
+ return { path, ...(state.remote ? { remote: spelling ?? state.remote } : {}), ...(spelling ? { remoteUrl: `https://${spelling}` } : {}) };
7
+ }
8
+ //# sourceMappingURL=personal-folder-shown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personal-folder-shown.js","sourceRoot":"","sources":["../src/personal-folder-shown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAA4B,MAAM,qBAAqB,CAAA;AAWhF,MAAM,UAAU,mBAAmB,CAAC,KAA0B,EAAE,IAAI,GAAW,OAAO,EAAE;IACtF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;IACxH,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AAC3I,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type Accent, type CodeFont, type DocumentFont, type Font, type Palette } from './appearance.js';
1
2
  import { type OverviewLayouts } from './overview-layout.js';
2
3
  import { type PublishPick } from './publish-levels.js';
3
4
  import { type OwnProject } from './dashboard/elsewhere.js';
@@ -179,6 +180,16 @@ export interface Preferences {
179
180
  editor?: string;
180
181
  /** Dashboard color theme (#725): `system` (follow the OS, the default), `light`, or `dark`. Absent = system. */
181
182
  theme?: 'system' | 'light' | 'dark';
183
+ /** The page's colours (`appearance.ts`). Absent = OpenAgent's own. */
184
+ palette?: Palette;
185
+ /** The colour of buttons, links and what is picked, one of the palette's. Absent = the palette's own. */
186
+ accent?: Accent;
187
+ /** The font of the page and the chat. Absent = IBM Plex Sans. */
188
+ font?: Font;
189
+ /** The font of code. Absent = JetBrains Mono. */
190
+ codeFont?: CodeFont;
191
+ /** The font a Markdown file is read in, in the Files pane. Absent = Source Serif 4. */
192
+ documentFont?: DocumentFont;
182
193
  /**
183
194
  * The browser bridge (#1237): let an extension running in the user's own Claude session report
184
195
  * the question a Claude web agent is parked on, so it shows in the dashboard rather than only on
@@ -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
@@ -1,3 +1,4 @@
1
+ import { accentOf, isCodeFont, isDocumentFont, isFont, isPalette } from './appearance.js';
1
2
  import { sanitizeOverviewLayouts } from './overview-layout.js';
2
3
  import { basename, dirname, join, resolve } from 'node:path';
3
4
  import { randomBytes } from 'node:crypto';
@@ -158,6 +159,18 @@ function sanitizePreferences(value) {
158
159
  // `system`, so it is simply dropped rather than persisted.
159
160
  if (typeof input['theme'] === 'string' && KNOWN_THEMES.includes(input['theme']))
160
161
  preferences.theme = input['theme'];
162
+ // How the page looks beyond light or dark: each a pick from its list; the default is stored as nothing.
163
+ if (isPalette(input['palette']) && input['palette'] !== 'openagent')
164
+ preferences.palette = input['palette'];
165
+ const accent = accentOf(preferences.palette, input['accent']);
166
+ if (accent)
167
+ preferences.accent = accent;
168
+ if (isFont(input['font']) && input['font'] !== 'ibm-plex-sans')
169
+ preferences.font = input['font'];
170
+ if (isCodeFont(input['codeFont']) && input['codeFont'] !== 'jetbrains-mono')
171
+ preferences.codeFont = input['codeFont'];
172
+ if (isDocumentFont(input['documentFont']) && input['documentFont'] !== 'source-serif-4')
173
+ preferences.documentFont = input['documentFont'];
161
174
  const customPresets = sanitizeCustomPresets(input['customPresets']);
162
175
  if (customPresets.length)
163
176
  preferences.customPresets = customPresets;