@openagt/dashboard 0.36.0 → 0.38.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 (159) hide show
  1. package/dist/client.d.ts +1 -0
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +1 -0
  4. package/dist/client.js.map +1 -1
  5. package/dist/computer-name.d.ts +3 -0
  6. package/dist/computer-name.d.ts.map +1 -0
  7. package/dist/computer-name.js +6 -0
  8. package/dist/computer-name.js.map +1 -0
  9. package/dist/daemon-runtime.d.ts.map +1 -1
  10. package/dist/daemon-runtime.js +37 -6
  11. package/dist/daemon-runtime.js.map +1 -1
  12. package/dist/daemon.d.ts.map +1 -1
  13. package/dist/daemon.js +4 -0
  14. package/dist/daemon.js.map +1 -1
  15. package/dist/dashboard/compress.d.ts +11 -0
  16. package/dist/dashboard/compress.d.ts.map +1 -0
  17. package/dist/dashboard/compress.js +40 -0
  18. package/dist/dashboard/compress.js.map +1 -0
  19. package/dist/dashboard/copied-logins.d.ts +54 -0
  20. package/dist/dashboard/copied-logins.d.ts.map +1 -0
  21. package/dist/dashboard/copied-logins.js +60 -0
  22. package/dist/dashboard/copied-logins.js.map +1 -0
  23. package/dist/dashboard/copy-logins.d.ts +5 -1
  24. package/dist/dashboard/copy-logins.d.ts.map +1 -1
  25. package/dist/dashboard/copy-logins.js +9 -3
  26. package/dist/dashboard/copy-logins.js.map +1 -1
  27. package/dist/dashboard/git-hosts.d.ts +2 -0
  28. package/dist/dashboard/git-hosts.d.ts.map +1 -1
  29. package/dist/dashboard/git-hosts.js +1 -1
  30. package/dist/dashboard/git-hosts.js.map +1 -1
  31. package/dist/dashboard/logins-sync.d.ts +146 -0
  32. package/dist/dashboard/logins-sync.d.ts.map +1 -0
  33. package/dist/dashboard/logins-sync.js +344 -0
  34. package/dist/dashboard/logins-sync.js.map +1 -0
  35. package/dist/dashboard/machine-runs.d.ts +78 -0
  36. package/dist/dashboard/machine-runs.d.ts.map +1 -0
  37. package/dist/dashboard/machine-runs.js +154 -0
  38. package/dist/dashboard/machine-runs.js.map +1 -0
  39. package/dist/dashboard/relay-endpoints.d.ts.map +1 -1
  40. package/dist/dashboard/relay-endpoints.js +5 -2
  41. package/dist/dashboard/relay-endpoints.js.map +1 -1
  42. package/dist/dashboard/remote-run.d.ts +17 -3
  43. package/dist/dashboard/remote-run.d.ts.map +1 -1
  44. package/dist/dashboard/remote-run.js +31 -5
  45. package/dist/dashboard/remote-run.js.map +1 -1
  46. package/dist/dashboard/rpc-serve.d.ts +3 -0
  47. package/dist/dashboard/rpc-serve.d.ts.map +1 -1
  48. package/dist/dashboard/rpc-serve.js +8 -9
  49. package/dist/dashboard/rpc-serve.js.map +1 -1
  50. package/dist/dashboard/static.d.ts.map +1 -1
  51. package/dist/dashboard/static.js +4 -2
  52. package/dist/dashboard/static.js.map +1 -1
  53. package/dist/dashboard-bundle/assets/main-BrPlt--h.js +149 -0
  54. package/dist/dashboard-bundle/assets/main-DgwPb5zO.css +2 -0
  55. package/dist/dashboard-bundle/assets/module-D0SUS0dF.js +14 -0
  56. package/dist/dashboard-bundle/host/module.js +1 -1
  57. package/dist/dashboard-bundle/index.html +5 -4
  58. package/dist/dashboard-rpc/accounts.d.ts +17 -1
  59. package/dist/dashboard-rpc/accounts.d.ts.map +1 -1
  60. package/dist/dashboard-rpc/accounts.js +46 -8
  61. package/dist/dashboard-rpc/accounts.js.map +1 -1
  62. package/dist/dashboard-rpc/context.js +1 -1
  63. package/dist/dashboard-rpc/context.js.map +1 -1
  64. package/dist/dashboard-rpc/copied-logins.d.ts +49 -0
  65. package/dist/dashboard-rpc/copied-logins.d.ts.map +1 -0
  66. package/dist/dashboard-rpc/copied-logins.js +179 -0
  67. package/dist/dashboard-rpc/copied-logins.js.map +1 -0
  68. package/dist/dashboard-rpc/index.d.ts +4 -1
  69. package/dist/dashboard-rpc/index.d.ts.map +1 -1
  70. package/dist/dashboard-rpc/index.js +8 -2
  71. package/dist/dashboard-rpc/index.js.map +1 -1
  72. package/dist/dashboard-rpc/logins.d.ts +22 -1
  73. package/dist/dashboard-rpc/logins.d.ts.map +1 -1
  74. package/dist/dashboard-rpc/logins.js +80 -11
  75. package/dist/dashboard-rpc/logins.js.map +1 -1
  76. package/dist/dashboard-rpc/machines.d.ts +7 -2
  77. package/dist/dashboard-rpc/machines.d.ts.map +1 -1
  78. package/dist/dashboard-rpc/machines.js +7 -5
  79. package/dist/dashboard-rpc/machines.js.map +1 -1
  80. package/dist/dashboard-rpc/people.d.ts +16 -0
  81. package/dist/dashboard-rpc/people.d.ts.map +1 -0
  82. package/dist/dashboard-rpc/people.js +32 -0
  83. package/dist/dashboard-rpc/people.js.map +1 -0
  84. package/dist/dashboard-rpc/reads.d.ts +20 -1
  85. package/dist/dashboard-rpc/reads.d.ts.map +1 -1
  86. package/dist/dashboard-rpc/reads.js +74 -8
  87. package/dist/dashboard-rpc/reads.js.map +1 -1
  88. package/dist/dashboard-rpc/relay-dispatch.js +2 -2
  89. package/dist/dashboard-rpc/relay-dispatch.js.map +1 -1
  90. package/dist/dashboard-rpc/server-logins.d.ts +22 -0
  91. package/dist/dashboard-rpc/server-logins.d.ts.map +1 -0
  92. package/dist/dashboard-rpc/server-logins.js +26 -0
  93. package/dist/dashboard-rpc/server-logins.js.map +1 -0
  94. package/dist/dashboard-rpc/test-context.js +1 -1
  95. package/dist/dashboard-rpc/test-context.js.map +1 -1
  96. package/dist/health.d.ts +20 -0
  97. package/dist/health.d.ts.map +1 -0
  98. package/dist/health.js +98 -0
  99. package/dist/health.js.map +1 -0
  100. package/dist/index.d.ts +1 -0
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/module-types/dashboard/components/FilterChips.d.ts +12 -0
  103. package/dist/module-types/dashboard/components/Page.d.ts +12 -0
  104. package/dist/module-types/dashboard/components/SidebarToggle.d.ts +4 -0
  105. package/dist/module-types/dashboard/components/StatTile.d.ts +15 -0
  106. package/dist/module-types/dashboard/components/ui/sheet.d.ts +10 -0
  107. package/dist/module-types/dashboard/components/ui/sidebar.d.ts +71 -0
  108. package/dist/module-types/dashboard/lib/host-services.d.ts +7 -1
  109. package/dist/module-types/dashboard/lib/use-mobile.d.ts +4 -0
  110. package/dist/module-types/dashboard/lib/use-modules.d.ts +3 -1
  111. package/dist/module-types/dashboard/module/index.d.ts +51 -1
  112. package/dist/module-types/src/client.d.ts +1 -0
  113. package/dist/module-types/src/computer-name.d.ts +2 -0
  114. package/dist/module-types/src/dashboard/compress.d.ts +10 -0
  115. package/dist/module-types/src/dashboard/copied-logins.d.ts +53 -0
  116. package/dist/module-types/src/dashboard/git-hosts.d.ts +2 -0
  117. package/dist/module-types/src/dashboard/logins-sync.d.ts +145 -0
  118. package/dist/module-types/src/dashboard/machine-runs.d.ts +77 -0
  119. package/dist/module-types/src/dashboard/remote-run.d.ts +17 -3
  120. package/dist/module-types/src/dashboard/rpc-serve.d.ts +3 -0
  121. package/dist/module-types/src/dashboard-rpc/accounts.d.ts +17 -1
  122. package/dist/module-types/src/dashboard-rpc/copied-logins.d.ts +48 -0
  123. package/dist/module-types/src/dashboard-rpc/index.d.ts +4 -1
  124. package/dist/module-types/src/dashboard-rpc/logins.d.ts +22 -1
  125. package/dist/module-types/src/dashboard-rpc/machines.d.ts +7 -2
  126. package/dist/module-types/src/dashboard-rpc/people.d.ts +15 -0
  127. package/dist/module-types/src/dashboard-rpc/reads.d.ts +20 -1
  128. package/dist/module-types/src/dashboard-rpc/server-logins.d.ts +21 -0
  129. package/dist/module-types/src/health.d.ts +19 -0
  130. package/dist/module-types/src/index.d.ts +1 -0
  131. package/dist/module-types/src/overview-layout.d.ts +37 -0
  132. package/dist/module-types/src/registry.d.ts +14 -0
  133. package/dist/module-types/src/store/agent-store.d.ts +15 -1
  134. package/dist/module-types/src/store/git-host.d.ts +6 -0
  135. package/dist/module-types/src/store/runs.d.ts +3 -1
  136. package/dist/module.css +1 -1
  137. package/dist/overview-layout.d.ts +38 -0
  138. package/dist/overview-layout.d.ts.map +1 -0
  139. package/dist/overview-layout.js +61 -0
  140. package/dist/overview-layout.js.map +1 -0
  141. package/dist/registry.d.ts +14 -0
  142. package/dist/registry.d.ts.map +1 -1
  143. package/dist/registry.js +31 -2
  144. package/dist/registry.js.map +1 -1
  145. package/dist/store/agent-store.d.ts +15 -1
  146. package/dist/store/agent-store.d.ts.map +1 -1
  147. package/dist/store/agent-store.js.map +1 -1
  148. package/dist/store/git-host.d.ts +6 -0
  149. package/dist/store/git-host.d.ts.map +1 -1
  150. package/dist/store/git-host.js +14 -0
  151. package/dist/store/git-host.js.map +1 -1
  152. package/dist/store/runs.d.ts +3 -1
  153. package/dist/store/runs.d.ts.map +1 -1
  154. package/dist/store/runs.js +1 -1
  155. package/dist/store/runs.js.map +1 -1
  156. package/package.json +20 -20
  157. package/dist/dashboard-bundle/assets/main-COZtHuZ-.css +0 -2
  158. package/dist/dashboard-bundle/assets/main-DDfoDyfa.js +0 -148
  159. package/dist/dashboard-bundle/assets/module-BXxdqTpP.js +0 -14
@@ -21,6 +21,8 @@ import { bridgeQuestions } from '../dashboard/bridge-store.js';
21
21
  import { isHostName, readBridgeToken, readPreferences } from '../registry.js';
22
22
  import { reachedByLine } from '../reached-by-line.js';
23
23
  import { hostname } from 'node:os';
24
+ import { nodeGitRunner } from '@openagt/agent-data';
25
+ import { RunChanges, withMachineRuns } from '../dashboard/machine-runs.js';
24
26
  // The read model behind the dashboard (#405): the agent history, an agent's replay, and the
25
27
  // surfaced PLAN/TODO docs — each keyed by project id and backed by
26
28
  // the readers that own those files, so the dashboard stays a projection of the same files. They live beside the daemon rather than in the
@@ -77,9 +79,55 @@ export async function onAgents(projectId) {
77
79
  const remote = contextRemote()?.list(projectId) ?? [];
78
80
  const cwd = await resolveProjectPath(projectId);
79
81
  const machineOf = await contextRemote().machineNames();
80
- const local = cwd ? await withRowMarks(cwd, (await readAllAgents(cwd)).map(agent => forDashboard(agent, machineOf))) : [];
82
+ const local = cwd ? await withRowMarks(cwd, (await projectRuns(cwd)).map(agent => forDashboard(agent, machineOf))) : [];
81
83
  return withFollowed(remote, local, agentId => contextRemote().sent(agentId));
82
84
  }
85
+ /**
86
+ * A project's runs as its records and checkouts say them, each as recorded: the ones this
87
+ * computer runs, and every other computer's whose record came through the project's shared records.
88
+ * A run of this computer's that has no record yet is its project's git user's, as its record will be.
89
+ */
90
+ export async function recordedRuns(cwd) {
91
+ const runs = (await readAllAgents(cwd)).map(asRecorded);
92
+ const thisHost = hostname();
93
+ if (!runs.some(run => run.person === undefined && run.host === thisHost))
94
+ return runs;
95
+ const person = await gitUserOf(cwd);
96
+ return person === undefined ? runs : runs.map(run => (run.person === undefined && run.host === thisHost ? { ...run, person } : run));
97
+ }
98
+ /**
99
+ * A project's runs as the dashboard lists them: its records, with what each saved machine says of
100
+ * its own runs right now taking over theirs (machine-runs.ts). Not marked yet for the dashboard.
101
+ */
102
+ export async function projectRuns(cwd) {
103
+ const [records, machines] = await Promise.all([recordedRuns(cwd), contextRemote().machineRuns(cwd).catch(() => [])]);
104
+ return withMachineRuns(records, machines.map(machine => ({ ...machine, runs: machine.runs.map(asRecorded) })));
105
+ }
106
+ /** What this computer's own runs answer to another computer that asks for them: counted per project, as they change. */
107
+ const ownRunChanges = new RunChanges();
108
+ /**
109
+ * This computer's own runs of a project, for another computer that lists them (machine-runs.ts):
110
+ * the ones that changed since `since`, the answer it had last, as they stand right now. Only this
111
+ * computer's: what another computer's records say is that computer's to answer.
112
+ */
113
+ export async function onOwnRuns(projectId, since) {
114
+ const cwd = await resolveProjectPath(projectId);
115
+ const thisHost = hostname();
116
+ const own = cwd ? (await recordedRuns(cwd)).filter(run => run.host === thisHost) : [];
117
+ return ownRunChanges.answer(cwd ?? projectId, own, since);
118
+ }
119
+ /** How long a project's git user is trusted before git is asked again. */
120
+ const GIT_USER_KEPT_MS = 60_000;
121
+ const gitUsers = new Map();
122
+ /** Whom git commits as in the project, as the runs' records are kept under it: its email, lowered. */
123
+ async function gitUserOf(cwd) {
124
+ const kept = gitUsers.get(cwd);
125
+ if (kept && kept.until > Date.now())
126
+ return kept.person;
127
+ const said = await nodeGitRunner()(['config', 'user.email'], cwd).then(out => out.trim().toLowerCase(), () => '');
128
+ gitUsers.set(cwd, { ...(said ? { person: said } : {}), until: Date.now() + GIT_USER_KEPT_MS });
129
+ return said || undefined;
130
+ }
83
131
  /**
84
132
  * What a run's row marks beside its name, for both lists of runs, a project's and all projects'
85
133
  * together: how its pull request stands, and the work it left on this machine.
@@ -196,18 +244,19 @@ export function markSaving(agent, thisHost = hostname(), alive = isPidAlive) {
196
244
  return agent;
197
245
  return { ...agent, saving: true };
198
246
  }
199
- /** Every annotation a run's record gets on its way to the dashboard: what the daemon knows and the disk cannot. */
247
+ /** Every annotation a run gets on its way to the dashboard, once it is as recorded ({@link projectRuns}): what the daemon knows and the disk cannot. */
200
248
  function forDashboard(agent, machineOf) {
201
- return markSaving(markOtherHost(markMachine(markCloudWaiting(asRecorded(agent)), machineOf)));
249
+ return markSaving(markOtherHost(markMachine(markCloudWaiting(agent), machineOf)));
202
250
  }
203
251
  /**
204
252
  * A run as its record may say it. A record is a file anyone with the project can write, and its
205
253
  * tool's own words are read into the row as they are, so the words only this daemon gives a row
206
254
  * are taken off it first: that it runs on a saved machine and which, that it is another
207
- * computer's, that it is being saved. A computer's name that is no name is none.
255
+ * computer's, that it is being saved, when its computer was last seen. A computer's name that is
256
+ * no name is none.
208
257
  */
209
258
  export function asRecorded(agent) {
210
- const { remoteLabel: _label, remoteByLine: _byLine, otherHost: _other, saving: _saving, cloudWaiting: _waiting, ...said } = agent;
259
+ const { remoteLabel: _label, remoteByLine: _byLine, otherHost: _other, saving: _saving, cloudWaiting: _waiting, seenAt: _seen, ...said } = agent;
211
260
  if (said.target === 'remote')
212
261
  delete said.target;
213
262
  if (said.host !== undefined && !isHostName(said.host))
@@ -323,7 +372,7 @@ export async function onRecentAgents() {
323
372
  return withProjects(projects => buildRecentAgents(projects, {
324
373
  agents: async (path) => {
325
374
  const followed = projects.filter(project => project.path === path).flatMap(project => remote.list(project.id));
326
- return withFollowed(followed, await withRowMarks(path, (await readAllAgents(path)).map(agent => forDashboard(agent, machineOf))), agentId => remote.sent(agentId));
375
+ return withFollowed(followed, await withRowMarks(path, (await projectRuns(path)).map(agent => forDashboard(agent, machineOf))), agentId => remote.sent(agentId));
327
376
  },
328
377
  }));
329
378
  }
@@ -344,12 +393,29 @@ export async function onInterventions() {
344
393
  * first, with the projects that were read whole beside them (#1625) — see {@link onInterventions}.
345
394
  */
346
395
  export async function onActivity() {
347
- return withProjects(buildActivity);
396
+ // Another computer's runs start and end by its own word, as the lists show them.
397
+ return withProjects(projects => buildActivity(projects, { readAgents: projectRuns }));
348
398
  }
349
399
  /** The Overview dashboard page (#471): the {@link onOverview} rollup plus agent counts, run-status totals, and activity. */
350
400
  export async function onDashboard() {
351
- return withProjects(buildDashboard);
401
+ const projects = await contextProjects().list().catch(() => []);
402
+ const of = projects.map(project => project.path).join('\n');
403
+ const building = (buildingDashboard ??= buildDashboard(projects)
404
+ .then(view => ((lastDashboard = { of, view }), view))
405
+ .finally(() => (buildingDashboard = undefined)));
406
+ if (lastDashboard?.of !== of)
407
+ return building;
408
+ // Its answer is for the next ask; a build that failed leaves the last answer standing.
409
+ building.catch(() => undefined);
410
+ return lastDashboard.view;
352
411
  }
412
+ /**
413
+ * The Overview's summary as last built, and the build under way: it reads every project's queue and
414
+ * tickets through their packages, a second and more on a small server, so a page is answered at
415
+ * once with the last summary for the same projects while it is built again behind it.
416
+ */
417
+ let lastDashboard;
418
+ let buildingDashboard;
353
419
  /**
354
420
  * The project's files for the `#` context picker (#504) and the Context's file count (#661): every
355
421
  * file git sees (tracked + untracked, honoring .gitignore), repo-relative and sorted, via
@@ -1 +1 @@
1
- {"version":3,"file":"reads.js","sourceRoot":"","sources":["../../src/dashboard-rpc/reads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reads.js","sourceRoot":"","sources":["../../src/dashboard-rpc/reads.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { onProjectFiles, onGitStatus, onAgentWorktree, onAgentHandoff, onAgent } from './reads.js';
1
+ import { onProjectFiles, onGitStatus, onAgentWorktree, onAgentHandoff, onAgent, onOwnRuns } from './reads.js';
2
2
  import { readModule } from './modules.js';
3
3
  import { sendStop, sendChoice, sendMessage, sendOpenPullRequest, sendPush, sendMerge } from './control.js';
4
4
  import { asArrived } from './relay-agent.js';
@@ -6,7 +6,7 @@ import { asArrived } from './relay-agent.js';
6
6
  // lets its server watch answers the reads and refuses the acts (relay-endpoints.ts). An entry goes
7
7
  // in one of the two lists, so nothing is relayed that was not classed. `readModule` is a read for
8
8
  // as long as a module's read changes nothing, which is what a module's read is.
9
- const RELAY_READS = { onProjectFiles, readModule, onGitStatus, onAgentWorktree, onAgentHandoff, onAgent };
9
+ const RELAY_READS = { onProjectFiles, readModule, onGitStatus, onAgentWorktree, onAgentHandoff, onAgent, onOwnRuns };
10
10
  const RELAY_ACTS = { sendStop, sendChoice, sendMessage, sendOpenPullRequest, sendPush, sendMerge };
11
11
  // Null-prototype, like RPC_HANDLERS (R1): the key is a request-controlled string, so a plain object
12
12
  // would answer `constructor`/`toString`/`valueOf` off Object.prototype and invoke them as handlers.
@@ -1 +1 @@
1
- {"version":3,"file":"relay-dispatch.js","sourceRoot":"","sources":["../../src/dashboard-rpc/relay-dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC1G,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAa5C,kGAAkG;AAClG,mGAAmG;AACnG,kGAAkG;AAClG,gFAAgF;AAChF,MAAM,WAAW,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,CAAA;AACzG,MAAM,UAAU,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;AAClG,oGAAoG;AACpG,oGAAoG;AACpG,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAA4B,EAAE,WAAW,EAAE,UAAU,CAAuC,CAAA;AAE9I,2CAA2C;AAC3C,MAAM,CAAC,MAAM,eAAe,GAAsB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAExE,wFAAwF;AACxF,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAiB,EAAE,EAAU,EAAE,IAAe;IACnF,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAA;IAC1B,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAA;IACtD,OAAO,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3D,CAAC"}
1
+ {"version":3,"file":"relay-dispatch.js","sourceRoot":"","sources":["../../src/dashboard-rpc/relay-dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC7G,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC1G,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAa5C,kGAAkG;AAClG,mGAAmG;AACnG,kGAAkG;AAClG,gFAAgF;AAChF,MAAM,WAAW,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;AACpH,MAAM,UAAU,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;AAClG,oGAAoG;AACpG,oGAAoG;AACpG,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAA4B,EAAE,WAAW,EAAE,UAAU,CAAuC,CAAA;AAE9I,2CAA2C;AAC3C,MAAM,CAAC,MAAM,eAAe,GAAsB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAExE,wFAAwF;AACxF,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAiB,EAAE,EAAU,EAAE,IAAe;IACnF,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAA;IAC1B,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAA;IACtD,OAAO,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3D,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { type ServerLogins } from '../dashboard/logins-sync.js';
2
+ import type { CopiedKind } from '../dashboard/copied-logins.js';
3
+ import type { AccountResult } from './accounts.js';
4
+ export type { ServerLogins, LoginThere } from '../dashboard/logins-sync.js';
5
+ export interface ServerLoginsView {
6
+ /** This computer's own name: what a server says its logins are from. */
7
+ computer: string;
8
+ servers: ServerLogins[];
9
+ }
10
+ /** Each saved server of the person's, and how this computer's logins stand there. */
11
+ export declare function onServerLogins(): Promise<ServerLoginsView>;
12
+ /** A server uses this computer's logins from now on: what can go there goes now. */
13
+ export declare function sendUseLoginsOn(machineId: string): Promise<AccountResult>;
14
+ /** The press: a login of the server's own for each account that waits for one, made in this computer's browser. */
15
+ export declare function sendAllowLogins(machineId: string): Promise<AccountResult>;
16
+ /** A login the server has of this computer's that this computer no longer has: kept there, or taken off. */
17
+ export declare function sendSettleLogin(machineId: string, which: {
18
+ kind: CopiedKind;
19
+ host?: string;
20
+ source: string;
21
+ }, keep: boolean): Promise<AccountResult>;
22
+ //# sourceMappingURL=server-logins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-logins.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/server-logins.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqD,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAClH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAOlD,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,YAAY,EAAE,CAAA;CACxB;AAED,qFAAqF;AACrF,wBAAsB,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAIhE;AAED,oFAAoF;AACpF,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAI/E;AAED,mHAAmH;AACnH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAE/E;AAED,4GAA4G;AAC5G,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAE1J"}
@@ -0,0 +1,26 @@
1
+ import { computerName } from '../computer-name.js';
2
+ import { useLoginsOn } from '../registry.js';
3
+ import { allowLogins, serverLogins, settleLeft, syncLogins } from '../dashboard/logins-sync.js';
4
+ /** Each saved server of the person's, and how this computer's logins stand there. */
5
+ export async function onServerLogins() {
6
+ // A server uses the logins of the person's computers, and makes none for another.
7
+ if (process.env['OPENAGENT_SERVER'] === '1')
8
+ return { computer: computerName(), servers: [] };
9
+ return { computer: computerName(), servers: await serverLogins() };
10
+ }
11
+ /** A server uses this computer's logins from now on: what can go there goes now. */
12
+ export async function sendUseLoginsOn(machineId) {
13
+ if (!(await useLoginsOn(machineId, true)))
14
+ return { ok: false, error: 'That server is no longer saved.' };
15
+ await syncLogins();
16
+ return { ok: true };
17
+ }
18
+ /** The press: a login of the server's own for each account that waits for one, made in this computer's browser. */
19
+ export async function sendAllowLogins(machineId) {
20
+ return allowLogins(machineId);
21
+ }
22
+ /** A login the server has of this computer's that this computer no longer has: kept there, or taken off. */
23
+ export async function sendSettleLogin(machineId, which, keep) {
24
+ return settleLeft(machineId, which, keep === true);
25
+ }
26
+ //# sourceMappingURL=server-logins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-logins.js","sourceRoot":"","sources":["../../src/dashboard-rpc/server-logins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAqB,MAAM,6BAA6B,CAAA;AAiBlH,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,kFAAkF;IAClF,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IAC7F,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,YAAY,EAAE,EAAE,CAAA;AACpE,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB;IACrD,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAA;IACzG,MAAM,UAAU,EAAE,CAAA;IAClB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;AACrB,CAAC;AAED,mHAAmH;AACnH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB;IACrD,OAAO,WAAW,CAAC,SAAS,CAAC,CAAA;AAC/B,CAAC;AAED,4GAA4G;AAC5G,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB,EAAE,KAA0D,EAAE,IAAa;IAChI,OAAO,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,CAAA;AACpD,CAAC"}
@@ -15,7 +15,7 @@ export function testDashboardContext(over = {}) {
15
15
  startedIn: () => ({ ok: false, error: 'not wired in this test' }),
16
16
  removeProject: () => ({ ok: false, error: 'not wired in this test' }),
17
17
  eventsSource: () => undefined,
18
- remote: { target: () => undefined, list: () => [], working: () => false, rekey: () => { }, sent: () => true, home: async () => undefined, follow: async () => { }, machineNames: async () => () => undefined },
18
+ remote: { target: () => undefined, list: () => [], working: () => false, rekey: () => { }, sent: () => true, home: async () => undefined, follow: async () => { }, machineNames: async () => () => undefined, machineRuns: async () => [] },
19
19
  preferences: registryPreferencesStore(),
20
20
  quota: defaultQuotaSource(),
21
21
  models: { read: async () => ({ 'claude-code': { models: [] }, codex: { models: [] } }) },
@@ -1 +1 @@
1
- {"version":3,"file":"test-context.js","sourceRoot":"","sources":["../../src/dashboard-rpc/test-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAI1D;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAI,GAA8B,EAAE;IACvE,OAAO;QACL,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QAClE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QAClE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QACjE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QACrE,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS;QAC7B,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE;QAC5M,WAAW,EAAE,wBAAwB,EAAE;QACvC,KAAK,EAAE,kBAAkB,EAAE;QAC3B,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;QACxF,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACrC,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE;QAC3H,GAAG,IAAI;KACR,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAI,GAA8B,EAAE;IACvE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,oBAAoB,EAAE,CAAA;IAC5F,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,CAAA;AAC7I,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAI,GAA8B,EAAE;IACrE,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAA;AACjD,CAAC"}
1
+ {"version":3,"file":"test-context.js","sourceRoot":"","sources":["../../src/dashboard-rpc/test-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAI1D;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAI,GAA8B,EAAE;IACvE,OAAO;QACL,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QAClE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QAClE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QACjE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QACrE,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS;QAC7B,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE;QACzO,WAAW,EAAE,wBAAwB,EAAE;QACvC,KAAK,EAAE,kBAAkB,EAAE;QAC3B,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;QACxF,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACrC,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE;QAC3H,GAAG,IAAI;KACR,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAI,GAA8B,EAAE;IACvE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,oBAAoB,EAAE,CAAA;IAC5F,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,CAAA;AAC7I,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAI,GAA8B,EAAE;IACrE,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAA;AACjD,CAAC"}
@@ -0,0 +1,20 @@
1
+ /** A computer's memory, disk and load, as it says them. */
2
+ export interface Health {
3
+ /** Memory, in bytes: all of it, and how much is in use, the cache a system gives back on demand not counted. */
4
+ memory: {
5
+ total: number;
6
+ used: number;
7
+ };
8
+ /** The disk of its user's home, in bytes: all of it, and how much is in use. */
9
+ disk?: {
10
+ total: number;
11
+ used: number;
12
+ };
13
+ /** How busy its processors are, in percent of all of them: the time they were not idle since the reading before. */
14
+ load?: number;
15
+ }
16
+ /** This computer's health, read at most every {@link KEPT_MS}. */
17
+ export declare function computerHealth(now?: number): Promise<Health>;
18
+ /** What another computer said of its health, kept only as well-formed: whole, finite, used no more than all. */
19
+ export declare function readHealth(said: unknown): Health | undefined;
20
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAYA,2DAA2D;AAC3D,MAAM,WAAW,MAAM;IACrB,gHAAgH;IAChH,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACvC,gFAAgF;IAChF,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACtC,oHAAoH;IACpH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAiED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAYxE;AAED,gHAAgH;AAChH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAW5D"}
package/dist/health.js ADDED
@@ -0,0 +1,98 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { readFile, statfs } from 'node:fs/promises';
3
+ import { cpus, freemem, homedir, platform, totalmem } from 'node:os';
4
+ import { promisify } from 'node:util';
5
+ // How a computer stands: how much of its memory and of its disk is in use, and how busy it is. A
6
+ // computer says its own in the ping another computer of the person's reads (`relay-endpoints.ts`):
7
+ // the Overview's Devices card shows it for this computer and for each server, so a full disk or a
8
+ // server out of memory is seen before an agent fails on it.
9
+ const run = promisify(execFile);
10
+ /**
11
+ * The memory a computer can still give: what Linux calls available, free plus the cache it drops
12
+ * on demand; on a Mac, the free, inactive and purgeable pages; elsewhere, what is free. A plain
13
+ * "free" read as nearly full on both, where most of it is cache.
14
+ */
15
+ async function availableMemory() {
16
+ if (platform() === 'linux') {
17
+ const said = await readFile('/proc/meminfo', 'utf8').catch(() => '');
18
+ const kb = /^MemAvailable:\s+(\d+) kB$/m.exec(said)?.[1];
19
+ if (kb !== undefined)
20
+ return Number(kb) * 1024;
21
+ }
22
+ if (platform() === 'darwin') {
23
+ const { stdout } = await run('vm_stat', [], { timeout: 2000 }).catch(() => ({ stdout: '' }));
24
+ const page = Number(/page size of (\d+) bytes/.exec(stdout)?.[1] ?? 0);
25
+ const pages = (name) => Number(new RegExp(`^${name}:\\s+(\\d+)\\.`, 'm').exec(stdout)?.[1] ?? 0);
26
+ const free = page * (pages('Pages free') + pages('Pages inactive') + pages('Pages purgeable'));
27
+ if (free > 0)
28
+ return free;
29
+ }
30
+ return freemem();
31
+ }
32
+ /** The processors' time so far, busy and in all, in ms: what two readings tell how busy they were between. */
33
+ function cpuTimes() {
34
+ let busy = 0;
35
+ let total = 0;
36
+ for (const cpu of cpus()) {
37
+ const { user, nice, sys, irq, idle } = cpu.times;
38
+ busy += user + nice + sys + irq;
39
+ total += user + nice + sys + irq + idle;
40
+ }
41
+ return { busy, total };
42
+ }
43
+ /** The times of the reading before, and when: how busy the processors were is said over the time since. */
44
+ let lastTimes;
45
+ /** A reading older than this is no measure of now: the processors are watched afresh. */
46
+ const STALE_MS = 60_000;
47
+ /** How long the first reading watches the processors, with none before it to compare with. */
48
+ const FIRST_LOOK_MS = 500;
49
+ /**
50
+ * How busy the processors were, in percent of all of them, since the reading before (with none
51
+ * in the last minute, over half a second). Not the load average: that counts the programs waiting on the disk
52
+ * too, and fades over minutes, so a server idle now read as full long after an install.
53
+ */
54
+ async function cpuBusy() {
55
+ let before = lastTimes && Date.now() - lastTimes.at < STALE_MS ? lastTimes : undefined;
56
+ if (!before) {
57
+ before = cpuTimes();
58
+ await new Promise(resolve => setTimeout(resolve, FIRST_LOOK_MS));
59
+ }
60
+ const now = cpuTimes();
61
+ lastTimes = { ...now, at: Date.now() };
62
+ const total = now.total - before.total;
63
+ return total > 0 ? Math.round(((now.busy - before.busy) / total) * 100) : undefined;
64
+ }
65
+ /** How long a reading is kept: a ping is asked every few seconds, and `vm_stat` is a process each time. */
66
+ const KEPT_MS = 15_000;
67
+ let kept;
68
+ /** This computer's health, read at most every {@link KEPT_MS}. */
69
+ export function computerHealth(now = Date.now()) {
70
+ if (kept && now - kept.at < KEPT_MS)
71
+ return kept.health;
72
+ const health = (async () => {
73
+ const total = totalmem();
74
+ const memory = { total, used: Math.max(0, total - (await availableMemory())) };
75
+ const fs = await statfs(homedir()).catch(() => undefined);
76
+ const disk = fs ? { total: fs.blocks * fs.bsize, used: (fs.blocks - fs.bavail) * fs.bsize } : undefined;
77
+ const load = cpus().length === 0 ? undefined : await cpuBusy();
78
+ return { memory, ...(disk ? { disk } : {}), ...(load !== undefined ? { load } : {}) };
79
+ })();
80
+ kept = { at: now, health };
81
+ return health;
82
+ }
83
+ /** What another computer said of its health, kept only as well-formed: whole, finite, used no more than all. */
84
+ export function readHealth(said) {
85
+ if (typeof said !== 'object' || said === null)
86
+ return undefined;
87
+ const part = (value) => {
88
+ const { total, used } = (value && typeof value === 'object' ? value : {});
89
+ return typeof total === 'number' && typeof used === 'number' && Number.isFinite(total) && Number.isFinite(used) && total > 0 && used >= 0 && used <= total ? { total, used } : undefined;
90
+ };
91
+ const { memory, disk, load } = said;
92
+ const mem = part(memory);
93
+ if (!mem)
94
+ return undefined;
95
+ const space = part(disk);
96
+ return { memory: mem, ...(space ? { disk: space } : {}), ...(typeof load === 'number' && Number.isFinite(load) && load >= 0 && load <= 10_000 ? { load: Math.round(load) } : {}) };
97
+ }
98
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -38,4 +38,5 @@ export type { ProjectQueue } from './dashboard/queue.js';
38
38
  export type { QuotaView } from './dashboard/quota.js';
39
39
  export type { Ticket } from './store/tickets.js';
40
40
  export type { AgentWorktree, CleanupReport, OnboardingSuggestion } from './dashboard/types.js';
41
+ export type { CardPlace, CardWidth, OverviewLayouts } from './overview-layout.js';
41
42
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC9D,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAChE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC9D,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAChF,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACpF,YAAY,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACtE,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAClF,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,YAAY,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACjF,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7E,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACzE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,YAAY,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC9D,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAChE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC9D,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAChF,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACpF,YAAY,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACtE,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAClF,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,YAAY,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACjF,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7E,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACzE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,YAAY,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC9F,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,12 @@
1
+ export interface FilterChip<T extends string> {
2
+ value: T;
3
+ label: string;
4
+ count: number;
5
+ }
6
+ export declare function FilterChips<T extends string>({ chips, total, picked, onPick, className }: {
7
+ chips: FilterChip<T>[]; /** How many rows "All" shows. */
8
+ total: number;
9
+ picked: T | null;
10
+ onPick: (value: T | null) => void;
11
+ className?: string;
12
+ }): import("react").JSX.Element | null;
@@ -0,0 +1,12 @@
1
+ import type { ReactNode } from 'react';
2
+ export declare function Page({ title, count, description, actions, bar, children, }: {
3
+ title: string;
4
+ /** Beside the name, in grey: how many the page shows ("14/14"). Seen on a phone too. */
5
+ count?: ReactNode;
6
+ description?: ReactNode;
7
+ /** The page's own buttons, at the end of its name's row. */
8
+ actions?: ReactNode;
9
+ /** Under the header: a bar of the page's own (the Tickets' filters). */
10
+ bar?: ReactNode;
11
+ children: ReactNode;
12
+ }): import("react").JSX.Element;
@@ -0,0 +1,4 @@
1
+ /** In the sidebar's top row: hides it. */
2
+ export declare function HideSidebarButton(): import("react").JSX.Element | null;
3
+ /** At the start of a page's top row while the sidebar is hidden: shows it again. A page drawn without the shell has no sidebar to show. */
4
+ export declare function ShowSidebarButton(): import("react").JSX.Element | null;
@@ -0,0 +1,15 @@
1
+ import type { ReactNode } from 'react';
2
+ /** The ids of the Overview's parts a tile scrolls to. */
3
+ export declare const NEEDS_YOU_ID = "needs-you";
4
+ export declare const WORKING_ID = "working-now";
5
+ /** Scroll the Overview to one of its parts. */
6
+ export declare function scrollToPart(id: string): void;
7
+ export declare function StatTile({ label, value, note, tone, live, href, onClick }: {
8
+ label: string;
9
+ value: number;
10
+ note: ReactNode; /** The number's colour while it is not nothing. */
11
+ tone?: string | undefined; /** Something is going on: a pulsing dot before the name. */
12
+ live?: boolean;
13
+ href?: string;
14
+ onClick?: () => void;
15
+ }): import("react").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { Dialog as BaseDialog } from '@base-ui/react/dialog';
2
+ import type { ComponentProps } from 'react';
3
+ declare function Sheet(props: ComponentProps<typeof BaseDialog.Root>): import("react").JSX.Element;
4
+ declare function SheetContent({ className, children, side, ...props }: ComponentProps<typeof BaseDialog.Popup> & {
5
+ side?: 'left' | 'right';
6
+ }): import("react").JSX.Element;
7
+ declare function SheetHeader({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
8
+ declare function SheetTitle({ className, ...props }: ComponentProps<typeof BaseDialog.Title>): import("react").JSX.Element;
9
+ declare function SheetDescription({ className, ...props }: ComponentProps<typeof BaseDialog.Description>): import("react").JSX.Element;
10
+ export { Sheet, SheetContent, SheetHeader, SheetTitle, SheetDescription };
@@ -0,0 +1,71 @@
1
+ import * as React from 'react';
2
+ import { useRender } from '@base-ui/react/use-render';
3
+ import { type VariantProps } from 'class-variance-authority';
4
+ import { Button } from './button.js';
5
+ import { Input } from './input.js';
6
+ import { Separator } from './separator.js';
7
+ import { TooltipContent } from './tooltip.js';
8
+ type SidebarContextProps = {
9
+ state: 'expanded' | 'collapsed';
10
+ open: boolean;
11
+ setOpen: (open: boolean) => void;
12
+ openMobile: boolean;
13
+ setOpenMobile: (open: boolean) => void;
14
+ isMobile: boolean;
15
+ toggleSidebar: () => void;
16
+ };
17
+ declare function useSidebar(): SidebarContextProps;
18
+ /** The sidebar's state, or null outside a SidebarProvider: for a part drawn in the shell and also alone (a module's page in its own tests). */
19
+ declare function useOptionalSidebar(): SidebarContextProps | null;
20
+ declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }: React.ComponentProps<'div'> & {
21
+ defaultOpen?: boolean;
22
+ open?: boolean;
23
+ onOpenChange?: (open: boolean) => void;
24
+ }): React.JSX.Element;
25
+ declare function Sidebar({ side, variant, collapsible, className, children, ...props }: React.ComponentProps<'div'> & {
26
+ side?: 'left' | 'right';
27
+ variant?: 'sidebar' | 'floating' | 'inset';
28
+ collapsible?: 'offcanvas' | 'icon' | 'none';
29
+ }): React.JSX.Element;
30
+ declare function SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>): React.JSX.Element;
31
+ declare function SidebarInset({ className, ...props }: React.ComponentProps<'main'>): React.JSX.Element;
32
+ declare function SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>): React.JSX.Element;
33
+ declare function SidebarHeader({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
34
+ declare function SidebarFooter({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
35
+ declare function SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>): React.JSX.Element;
36
+ declare function SidebarContent({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
37
+ declare function SidebarGroup({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
38
+ declare function SidebarGroupLabel({ className, render, ...props }: React.ComponentProps<'div'> & {
39
+ render?: useRender.RenderProp;
40
+ }): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
41
+ declare function SidebarGroupAction({ className, render, ...props }: React.ComponentProps<'button'> & {
42
+ render?: useRender.RenderProp;
43
+ }): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
44
+ declare function SidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
45
+ declare function SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>): React.JSX.Element;
46
+ declare function SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>): React.JSX.Element;
47
+ declare const sidebarMenuButtonVariants: (props?: ({
48
+ variant?: "default" | "outline" | null | undefined;
49
+ size?: "default" | "lg" | "sm" | null | undefined;
50
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
51
+ declare function SidebarMenuButton({ render, isActive, variant, size, tooltip, className, ...props }: React.ComponentProps<'button'> & {
52
+ render?: useRender.RenderProp;
53
+ isActive?: boolean;
54
+ tooltip?: string | React.ComponentProps<typeof TooltipContent>;
55
+ } & VariantProps<typeof sidebarMenuButtonVariants>): React.JSX.Element;
56
+ declare function SidebarMenuAction({ className, render, showOnHover, ...props }: React.ComponentProps<'button'> & {
57
+ render?: useRender.RenderProp;
58
+ showOnHover?: boolean;
59
+ }): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
60
+ declare function SidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
61
+ declare function SidebarMenuSkeleton({ className, showIcon, ...props }: React.ComponentProps<'div'> & {
62
+ showIcon?: boolean;
63
+ }): React.JSX.Element;
64
+ declare function SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>): React.JSX.Element;
65
+ declare function SidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>): React.JSX.Element;
66
+ declare function SidebarMenuSubButton({ render, size, isActive, className, ...props }: React.ComponentProps<'a'> & {
67
+ render?: useRender.RenderProp;
68
+ size?: 'sm' | 'md';
69
+ isActive?: boolean;
70
+ }): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
71
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarSeparator, SidebarTrigger, useSidebar, useOptionalSidebar, };