@openagt/dashboard 0.14.0 → 0.16.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 (85) hide show
  1. package/dist/client.d.ts +2 -0
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +4 -0
  4. package/dist/client.js.map +1 -1
  5. package/dist/daemon-runtime.d.ts.map +1 -1
  6. package/dist/daemon-runtime.js +113 -7
  7. package/dist/daemon-runtime.js.map +1 -1
  8. package/dist/dashboard/relay-endpoints.d.ts +12 -0
  9. package/dist/dashboard/relay-endpoints.d.ts.map +1 -1
  10. package/dist/dashboard/relay-endpoints.js +29 -7
  11. package/dist/dashboard/relay-endpoints.js.map +1 -1
  12. package/dist/dashboard/remote-run.d.ts +43 -8
  13. package/dist/dashboard/remote-run.d.ts.map +1 -1
  14. package/dist/dashboard/remote-run.js +120 -24
  15. package/dist/dashboard/remote-run.js.map +1 -1
  16. package/dist/dashboard/rpc-serve.d.ts +23 -1
  17. package/dist/dashboard/rpc-serve.d.ts.map +1 -1
  18. package/dist/dashboard/rpc-serve.js.map +1 -1
  19. package/dist/dashboard/screen.d.ts +2 -2
  20. package/dist/dashboard/screen.d.ts.map +1 -1
  21. package/dist/dashboard/screen.js +1 -1
  22. package/dist/dashboard/screen.js.map +1 -1
  23. package/dist/dashboard/server.js +1 -1
  24. package/dist/dashboard/server.js.map +1 -1
  25. package/dist/dashboard-bundle/assets/main-DHxsfluB.js +140 -0
  26. package/dist/dashboard-bundle/assets/main-DbqABoVD.css +2 -0
  27. package/dist/dashboard-bundle/assets/module-CFB4pxwP.js +24 -0
  28. package/dist/dashboard-bundle/host/module.js +1 -1
  29. package/dist/dashboard-bundle/index.html +3 -3
  30. package/dist/dashboard-rpc/context.js +1 -1
  31. package/dist/dashboard-rpc/context.js.map +1 -1
  32. package/dist/dashboard-rpc/events.d.ts.map +1 -1
  33. package/dist/dashboard-rpc/events.js +4 -1
  34. package/dist/dashboard-rpc/events.js.map +1 -1
  35. package/dist/dashboard-rpc/reads.d.ts +30 -0
  36. package/dist/dashboard-rpc/reads.d.ts.map +1 -1
  37. package/dist/dashboard-rpc/reads.js +73 -11
  38. package/dist/dashboard-rpc/reads.js.map +1 -1
  39. package/dist/dashboard-rpc/relay-agent.d.ts +12 -5
  40. package/dist/dashboard-rpc/relay-agent.d.ts.map +1 -1
  41. package/dist/dashboard-rpc/relay-agent.js +43 -10
  42. package/dist/dashboard-rpc/relay-agent.js.map +1 -1
  43. package/dist/dashboard-rpc/relay-dispatch.d.ts +2 -0
  44. package/dist/dashboard-rpc/relay-dispatch.d.ts.map +1 -1
  45. package/dist/dashboard-rpc/relay-dispatch.js +13 -6
  46. package/dist/dashboard-rpc/relay-dispatch.js.map +1 -1
  47. package/dist/dashboard-rpc/test-context.js +1 -1
  48. package/dist/dashboard-rpc/test-context.js.map +1 -1
  49. package/dist/module-types/dashboard/components/SettingsRows.d.ts +1 -1
  50. package/dist/module-types/dashboard/components/ui/card.d.ts +15 -1
  51. package/dist/module-types/dashboard/components/ui/confirm-dialog.d.ts +20 -0
  52. package/dist/module-types/dashboard/components/ui/label.d.ts +2 -0
  53. package/dist/module-types/dashboard/components/ui/radio-group.d.ts +23 -0
  54. package/dist/module-types/dashboard/components/ui/select.d.ts +12 -0
  55. package/dist/module-types/dashboard/components/ui/table.d.ts +7 -0
  56. package/dist/module-types/dashboard/components/ui/textarea.d.ts +2 -0
  57. package/dist/module-types/dashboard/lib/data-link.d.ts +14 -0
  58. package/dist/module-types/dashboard/lib/route.d.ts +6 -0
  59. package/dist/module-types/dashboard/lib/use-file-names.d.ts +20 -0
  60. package/dist/module-types/dashboard/lib/use-modules.d.ts +8 -1
  61. package/dist/module-types/dashboard/lib/use-schedule.d.ts +20 -0
  62. package/dist/module-types/dashboard/module/index.d.ts +47 -1
  63. package/dist/module-types/src/client.d.ts +2 -0
  64. package/dist/module-types/src/dashboard/remote-run.d.ts +43 -8
  65. package/dist/module-types/src/dashboard/rpc-serve.d.ts +23 -1
  66. package/dist/module-types/src/dashboard-rpc/reads.d.ts +30 -0
  67. package/dist/module-types/src/dashboard-rpc/relay-agent.d.ts +12 -5
  68. package/dist/module-types/src/reached-by-line.d.ts +12 -0
  69. package/dist/module-types/src/registry.d.ts +18 -0
  70. package/dist/module-types/src/store/agent-store.d.ts +2 -0
  71. package/dist/reached-by-line.d.ts +13 -0
  72. package/dist/reached-by-line.d.ts.map +1 -0
  73. package/dist/reached-by-line.js +22 -0
  74. package/dist/reached-by-line.js.map +1 -0
  75. package/dist/registry.d.ts +18 -0
  76. package/dist/registry.d.ts.map +1 -1
  77. package/dist/registry.js +25 -2
  78. package/dist/registry.js.map +1 -1
  79. package/dist/store/agent-store.d.ts +2 -0
  80. package/dist/store/agent-store.d.ts.map +1 -1
  81. package/dist/store/agent-store.js.map +1 -1
  82. package/package.json +14 -14
  83. package/dist/dashboard-bundle/assets/main-3NAPTQ8N.js +0 -140
  84. package/dist/dashboard-bundle/assets/main-DD99HRP9.css +0 -2
  85. package/dist/dashboard-bundle/assets/module-ZjyA5WUg.js +0 -21
@@ -1 +1 @@
1
- import{$ as e,B as t,C as n,D as r,E as i,F as a,H as o,Ht as s,J as c,Jt as l,K as u,Kt as d,L as f,O as p,R as m,S as h,T as g,U as _,Ut as v,V as y,W as b,Wt as x,Y as S,Z as C,Zt as w,_ as T,a as E,an as D,b as O,c as k,fn as A,g as j,h as M,i as N,in as P,it as F,j as I,l as L,n as R,o as z,q as B,r as V,rn as H,rt as U,s as W,t as G,v as K,w as q,x as J,y as Y}from"../assets/module-ZjyA5WUg.js";export{w as Badge,H as Button,n as Card,q as CardContent,g as CardHeader,i as CardTitle,r as Checkbox,j as DiffStat,B as DropdownMenu,c as DropdownMenuCheckboxItem,S as DropdownMenuContent,C as DropdownMenuItem,e as DropdownMenuSeparator,U as DropdownMenuTrigger,o as Input,L as LinkActions,A as MAX_SPEND_OFFSET,p as Markdown,G as ModuleHostContext,Y as Popover,O as PopoverContent,J as PopoverTrigger,T as PreviewCard,E as QrCode,K as RangeSlider,F as ScrollArea,y as Separator,z as SettingsRow,W as SettingsSection,k as SettingsSelectRow,t as Skeleton,M as StartAgentButton,h as Switch,_ as Tooltip,b as TooltipContent,u as TooltipTrigger,P as buttonVariants,D as cn,R as defineModule,a as forgetRemembered,v as formatAge,x as formatDateTime,d as formatDuration,l as formatRelative,V as moduleHost,s as useAction,I as useCodingAgents,f as useLoaded,N as useModuleHost,m as usePolled};
1
+ import{$ as e,A as t,B as n,Bt as r,C as i,Ct as a,D as o,Dt as s,E as c,F as l,Ft as u,Gt as d,H as f,I as p,Jt as m,K as h,L as g,M as _,Mt as v,N as y,Nt as b,O as x,P as S,Pt as C,R as w,Rt as T,S as E,St as D,T as O,Tt as k,U as A,Ut as j,V as M,Vt as N,W as P,Y as F,_t as I,a as L,b as R,bt as z,c as B,d as V,dn as H,et as U,f as W,gt as G,ht as K,i as q,j as J,jt as Y,k as X,l as Z,n as Q,nn as $,nt as ee,o as te,r as ne,rn as re,rt as ie,s as ae,sn as oe,t as se,tn as ce,u as le,v as ue,vt as de,w as fe,x as pe,xt as me,y as he,z as ge,zt as _e}from"../assets/module-CFB4pxwP.js";export{m as Badge,ce as Button,w as Card,ge as CardContent,n as CardHeader,M as CardTitle,f as CardTitleLink,A as Checkbox,P as ConfirmDialog,he as DiffStat,me as DropdownMenu,D as DropdownMenuCheckboxItem,a as DropdownMenuContent,k as DropdownMenuItem,s as DropdownMenuSeparator,Y as DropdownMenuTrigger,T as Input,t as Label,W as LinkActions,H as MAX_SPEND_OFFSET,h as Markdown,se as ModuleHostContext,E as Popover,i as PopoverContent,fe as PopoverTrigger,R as PreviewCard,B as QrCode,b as RadioGroup,C as RadioGroupItem,u as RadioGroupOption,pe as RangeSlider,v as ScrollArea,O as Select,c as SelectContent,o as SelectItem,x as SelectTrigger,X as SelectValue,G as Separator,Z as SettingsRow,le as SettingsSection,V as SettingsSelectRow,K as Skeleton,ue as StartAgentButton,g as Switch,J as Table,_ as TableBody,y as TableCell,S as TableHead,l as TableHeader,p as TableRow,e as Textarea,I as Tooltip,de as TooltipContent,z as TooltipTrigger,$ as buttonVariants,re as cn,Q as defineModule,U as forgetRemembered,r as formatAge,N as formatDateTime,j as formatDuration,d as formatRelative,ne as moduleHost,oe as pageHref,L as pathsIn,_e as useAction,F as useCodingAgents,te as useFileNames,ee as useLoaded,q as useModuleHost,ie as usePolled,ae as useSchedule};
@@ -27,14 +27,14 @@
27
27
  "@openagt/dashboard/module": "/host/module.js"
28
28
  }
29
29
  }</script>
30
- <script type="module" crossorigin src="/assets/main-3NAPTQ8N.js"></script>
30
+ <script type="module" crossorigin src="/assets/main-DHxsfluB.js"></script>
31
31
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-QTnfLwEv.js">
32
32
  <link rel="modulepreload" crossorigin href="/assets/react-CZI7_Jkm.js">
33
33
  <link rel="modulepreload" crossorigin href="/assets/react-dom-cJyBB_A4.js">
34
34
  <link rel="modulepreload" crossorigin href="/assets/client-CbBRB9m4.js">
35
35
  <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-By8HlURe.js">
36
- <link rel="modulepreload" crossorigin href="/assets/module-ZjyA5WUg.js">
37
- <link rel="stylesheet" crossorigin href="/assets/main-DD99HRP9.css">
36
+ <link rel="modulepreload" crossorigin href="/assets/module-CFB4pxwP.js">
37
+ <link rel="stylesheet" crossorigin href="/assets/main-DbqABoVD.css">
38
38
  </head>
39
39
  <body>
40
40
  <div id="root"></div>
@@ -29,7 +29,7 @@ function fromContext(key) {
29
29
  return value;
30
30
  }
31
31
  /** No run is relayed from here — see {@link contextRemote}. */
32
- const NO_RELAYED_RUNS = { target: () => undefined, list: () => [], working: () => false, rekey: () => { } };
32
+ const NO_RELAYED_RUNS = { target: () => undefined, list: () => [], working: () => false, rekey: () => { }, sent: () => true, home: async () => undefined, follow: async () => { }, machineNames: async () => () => undefined };
33
33
  /** The projects every RPC resolves a project id against: the global registry. */
34
34
  export function contextProjects() {
35
35
  return defaultProjectsProvider();
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/dashboard-rpc/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAyB,MAAM,0BAA0B,CAAA;AAQzF;;;;;;;;;;GAUG;AACH,IAAI,KAAmC,CAAA;AAEvC,2GAA2G;AAC3G,MAAM,UAAU,mBAAmB,CAAC,OAAyB;IAC3D,KAAK,GAAG,OAAO,CAAA;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAmC,GAAM;IAC3D,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAA;IAC1B,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC7F,OAAO,KAAK,CAAA;AACd,CAAC;AAED,+DAA+D;AAC/D,MAAM,eAAe,GAAiB,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,CAAA;AAExH,iFAAiF;AACjF,MAAM,UAAU,eAAe;IAC7B,OAAO,uBAAuB,EAAE,CAAA;AAClC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,OAAO,eAAe,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;AACjD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAiB,EAAE,OAAgB;IACxE,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAC/C,OAAO,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,WAAW,CAAC,cAAc,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,EAAE,MAAM,IAAI,eAAe,CAAA;AACzC,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,kBAAkB;IAChC,OAAO,WAAW,CAAC,aAAa,CAAC,CAAA;AACnC,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,YAAY;IAC1B,OAAO,WAAW,CAAC,OAAO,CAAC,CAAA;AAC7B,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAA;AAC9B,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,oBAAoB;IAClC,OAAO,WAAW,CAAC,eAAe,CAAC,CAAA;AACrC,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,oBAAoB;IAClC,OAAO,WAAW,CAAC,eAAe,CAAC,CAAA;AACrC,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,iBAAiB;IAC/B,OAAO,WAAW,CAAC,YAAY,CAAC,CAAA;AAClC,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,WAAW,CAAC,YAAY,CAAC,CAAA;AAClC,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,oBAAoB;IAClC,OAAO,WAAW,CAAC,eAAe,CAAC,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/dashboard-rpc/context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/events.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAclD;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAA;AAEhD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9D,gHAAgH;AAChH,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,cAAc,CAAA;AAExE;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI,GAClB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,CAqBnC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/events.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAclD;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAA;AAEhD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9D,gHAAgH;AAChH,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,cAAc,CAAA;AAExE;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI,GAClB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,CAuBnC"}
@@ -1,5 +1,5 @@
1
1
  import { fromDiaryLine, resolveAgentDiary } from '../store/index.js';
2
- import { contextEventsSource, resolveProjectPath } from './context.js';
2
+ import { contextEventsSource, contextRemote, resolveProjectPath } from './context.js';
3
3
  import { partialReader, tailAgentEvents } from './events-tail.js';
4
4
  import { forwardStream } from './stream-forward.js';
5
5
  // The live event stream behind the dashboard (#405): the selected run's diary, the file the run's
@@ -26,6 +26,9 @@ async function resolveEventsDiary(projectId, agentId, opts = {}) {
26
26
  * feed (see use-live-events in the dashboard).
27
27
  */
28
28
  export async function streamAgentEvents(projectId, agentId, send, onDone) {
29
+ // A run on a saved machine that this daemon does not follow yet, one started on the machine's own page: followed from here on.
30
+ if (agentId !== undefined)
31
+ await contextRemote().follow(projectId, agentId).catch(() => { });
29
32
  const stream = contextEventsSource()(projectId, agentId);
30
33
  // An in-memory agent: replay + follow it, and end when it ends — a relayed agent that finished has
31
34
  // nothing more to say, and leaving the response open would read as a live feed gone quiet.
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/dashboard-rpc/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAA4C,MAAM,mBAAmB,CAAA;AAC9G,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEtE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,kGAAkG;AAClG,kGAAkG;AAClG,kGAAkG;AAElG,gFAAgF;AAChF,KAAK,UAAU,kBAAkB,CAAC,SAAiB,EAAE,OAAgB,EAAE,IAAI,GAAyB,EAAE;IACpG,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAC/C,OAAO,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACtF,CAAC;AAqBD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAiB,EACjB,OAA2B,EAC3B,IAAoC,EACpC,MAAmB;IAEnB,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACxD,mGAAmG;IACnG,2FAA2F;IAC3F,IAAI,MAAM;QAAE,OAAO,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAEtD,sFAAsF;IACtF,2FAA2F;IAC3F,+FAA+F;IAC/F,4FAA4F;IAC5F,wDAAwD;IACxD,IAAI,CAAC,MAAM,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAClF,OAAO,eAAe,CACpB,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EACpD,IAAI,CAAC,EAAE;QACL,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC,EACD,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EACnC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CACvD,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/dashboard-rpc/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAA4C,MAAM,mBAAmB,CAAA;AAC9G,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAErF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,kGAAkG;AAClG,kGAAkG;AAClG,kGAAkG;AAElG,gFAAgF;AAChF,KAAK,UAAU,kBAAkB,CAAC,SAAiB,EAAE,OAAgB,EAAE,IAAI,GAAyB,EAAE;IACpG,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAC/C,OAAO,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACtF,CAAC;AAqBD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAiB,EACjB,OAA2B,EAC3B,IAAoC,EACpC,MAAmB;IAEnB,+HAA+H;IAC/H,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,aAAa,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC3F,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACxD,mGAAmG;IACnG,2FAA2F;IAC3F,IAAI,MAAM;QAAE,OAAO,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAEtD,sFAAsF;IACtF,2FAA2F;IAC3F,+FAA+F;IAC/F,4FAA4F;IAC5F,wDAAwD;IACxD,IAAI,CAAC,MAAM,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAClF,OAAO,eAAe,CACpB,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EACpD,IAAI,CAAC,EAAE;QACL,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC,EACD,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EACnC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CACvD,CAAA;AACH,CAAC"}
@@ -16,6 +16,7 @@ import type { AgentWorktree } from '../dashboard/types.js';
16
16
  import type { OpenAgentEvent } from '../events.js';
17
17
  import type { BridgeEvent, BridgeHello, BridgeQuestion } from '../dashboard/bridge-endpoints.js';
18
18
  import type { BridgeAnswer, BridgeContact, BridgeVersion } from '../dashboard/bridge-store.js';
19
+ import type { SavedMachine } from '../dashboard/rpc-serve.js';
19
20
  /**
20
21
  * The project's runs, most-recent first (or `[]`). The archived (finished) runs
21
22
  * from `agents/`, plus every live agent prepended — so the sidebar shows an in-progress
@@ -36,6 +37,15 @@ import type { BridgeAnswer, BridgeContact, BridgeVersion } from '../dashboard/br
36
37
  * instead of losing it.
37
38
  */
38
39
  export declare function onAgents(projectId: string): Promise<AgentMeta[]>;
40
+ /**
41
+ * A project's runs with the ones this daemon follows on a machine (#1067), which live in its
42
+ * memory. A run this computer sent that has no record here is listed first, as followed, so a
43
+ * reload re-opens it instead of losing it. One that has a record keeps the record's row, in
44
+ * its place, which holds more (its branch, its pull request, its parent), and takes from the
45
+ * followed one what the machine said since: whether it works, and its session. A run followed
46
+ * by its record is listed only while that record is there: deleted, it is gone from the list.
47
+ */
48
+ export declare function withFollowed(followed: AgentMeta[], local: AgentMeta[], sent: (agentId: string) => boolean): AgentMeta[];
39
49
  /**
40
50
  * A web run whose cloud session is waiting on a human — the bridge holds its parked question, or
41
51
  * claude.ai's session list shows it awaiting input (#1332) — is marked waiting (#1668), so its row
@@ -50,6 +60,19 @@ export declare function markCloudWaiting(agent: AgentMeta): AgentMeta;
50
60
  * with no recorded host predates the field and passes through untouched.
51
61
  */
52
62
  export declare function markOtherHost(agent: AgentMeta, thisHost?: string): AgentMeta;
63
+ /**
64
+ * What a run's row says of the saved machine it runs on: the name the machine was given, and
65
+ * that it is a person's own computer reached by its line, when it is one.
66
+ */
67
+ export declare function onMachine(machine: SavedMachine): Pick<AgentMeta, 'remoteLabel' | 'remoteByLine'>;
68
+ /**
69
+ * A run whose record names the computer of a saved machine runs on that machine, whoever started
70
+ * it there, and reads like one this computer sent: by the name the machine was given. The record
71
+ * comes through the project's shared records, so it is here for a run started on the machine's
72
+ * own page too, and after this daemon forgot the runs it sent. A run of this computer, and one of
73
+ * a computer that is no saved machine, pass through untouched.
74
+ */
75
+ export declare function markMachine(agent: AgentMeta, machineOf: (host: string) => SavedMachine | undefined, thisHost?: string): AgentMeta;
53
76
  /**
54
77
  * A run that ended clean while the process its card names is still alive on this host is marked
55
78
  * saving: the tool that runs it saves the run's record and cleans up its checkout after the card says
@@ -57,6 +80,13 @@ export declare function markOtherHost(agent: AgentMeta, thisHost?: string): Agen
57
80
  * run of another host, or with no recorded process, passes through untouched.
58
81
  */
59
82
  export declare function markSaving(agent: AgentMeta, thisHost?: string, alive?: (pid: number) => boolean): AgentMeta;
83
+ /**
84
+ * A run as its record may say it. A record is a file anyone with the project can write, and its
85
+ * tool's own words are read into the row as they are, so the words only this daemon gives a row
86
+ * are taken off it first: that it runs on a saved machine and which, that it is another
87
+ * computer's, that it is being saved. A computer's name that is no name is none.
88
+ */
89
+ export declare function asRecorded(agent: AgentMeta): AgentMeta;
60
90
  /**
61
91
  * The agent ids that still have a worktree on disk (#737). An agent that failed or was stopped keeps
62
92
  * its checkout so you can go look at what it was holding; this is how the dashboard knows which
@@ -1 +1 @@
1
- {"version":3,"file":"reads.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/reads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reads.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/reads.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,8 @@ import { crawlRepoFiles } from '../project.js';
15
15
  import { contextBridgeBrowser, contextProjects, contextRemote, resolveProjectPath, resolveAgentPath } from './context.js';
16
16
  import { relayOr } from './relay-agent.js';
17
17
  import { bridgeQuestions } from '../dashboard/bridge-store.js';
18
- import { readBridgeToken, readPreferences } from '../registry.js';
18
+ import { isHostName, readBridgeToken, readPreferences } from '../registry.js';
19
+ import { reachedByLine } from '../reached-by-line.js';
19
20
  import { hostname } from 'node:os';
20
21
  // The read model behind the dashboard (#405): the agent history, an agent's replay, and the
21
22
  // surfaced PLAN/TODO docs — each keyed by project id and backed by
@@ -72,12 +73,31 @@ export async function onAgents(projectId) {
72
73
  // no longer costs anything — nothing here depends on this staying above one.
73
74
  const remote = contextRemote()?.list(projectId) ?? [];
74
75
  const cwd = await resolveProjectPath(projectId);
75
- const local = cwd ? (await readAllAgents(cwd)).map(forDashboard) : [];
76
- if (remote.length === 0)
76
+ const machineOf = await contextRemote().machineNames();
77
+ const local = cwd ? (await readAllAgents(cwd)).map(agent => forDashboard(agent, machineOf)) : [];
78
+ return withFollowed(remote, local, agentId => contextRemote().sent(agentId));
79
+ }
80
+ /**
81
+ * A project's runs with the ones this daemon follows on a machine (#1067), which live in its
82
+ * memory. A run this computer sent that has no record here is listed first, as followed, so a
83
+ * reload re-opens it instead of losing it. One that has a record keeps the record's row, in
84
+ * its place, which holds more (its branch, its pull request, its parent), and takes from the
85
+ * followed one what the machine said since: whether it works, and its session. A run followed
86
+ * by its record is listed only while that record is there: deleted, it is gone from the list.
87
+ */
88
+ export function withFollowed(followed, local, sent) {
89
+ if (followed.length === 0)
77
90
  return local;
78
- // A relayed agent (#1067) lives only in the daemon's memory, not on disk; surface it in the list so
79
- // a reload re-opens it instead of losing it. Remote wins an id tie (it is the live authority).
80
- return [...remote, ...local.filter(agent => !remote.some(r => r.id === agent.id))];
91
+ const live = new Map(followed.map(run => [run.id, run]));
92
+ const recorded = new Set(local.map(agent => agent.id));
93
+ const rows = local.map(record => {
94
+ const run = live.get(record.id);
95
+ if (!run)
96
+ return record;
97
+ const { remoteLabel, remoteByLine } = run;
98
+ return { ...record, status: run.status, updatedAt: run.updatedAt, target: 'remote', ...(remoteLabel !== undefined ? { remoteLabel } : {}), ...(remoteByLine ? { remoteByLine } : {}), ...(run.sessionId !== undefined ? { sessionId: run.sessionId } : {}) };
99
+ });
100
+ return [...followed.filter(run => !recorded.has(run.id) && sent(run.id)), ...rows];
81
101
  }
82
102
  /**
83
103
  * A web run whose cloud session is waiting on a human — the bridge holds its parked question, or
@@ -97,10 +117,31 @@ export function markCloudWaiting(agent) {
97
117
  * with no recorded host predates the field and passes through untouched.
98
118
  */
99
119
  export function markOtherHost(agent, thisHost = hostname()) {
100
- if (agent.host === undefined || agent.host === thisHost)
120
+ // A run on a saved machine says where it runs by the machine's name, not as someone else's.
121
+ if (agent.host === undefined || agent.host === thisHost || agent.remoteLabel !== undefined)
101
122
  return agent;
102
123
  return { ...agent, otherHost: true };
103
124
  }
125
+ /**
126
+ * What a run's row says of the saved machine it runs on: the name the machine was given, and
127
+ * that it is a person's own computer reached by its line, when it is one.
128
+ */
129
+ export function onMachine(machine) {
130
+ return { remoteLabel: machine.label, ...(reachedByLine(machine.url) ? { remoteByLine: true } : {}) };
131
+ }
132
+ /**
133
+ * A run whose record names the computer of a saved machine runs on that machine, whoever started
134
+ * it there, and reads like one this computer sent: by the name the machine was given. The record
135
+ * comes through the project's shared records, so it is here for a run started on the machine's
136
+ * own page too, and after this daemon forgot the runs it sent. A run of this computer, and one of
137
+ * a computer that is no saved machine, pass through untouched.
138
+ */
139
+ export function markMachine(agent, machineOf, thisHost = hostname()) {
140
+ if (agent.host === undefined || agent.host === thisHost || agent.remoteLabel !== undefined)
141
+ return agent;
142
+ const machine = machineOf(agent.host);
143
+ return machine === undefined ? agent : { ...agent, target: 'remote', ...onMachine(machine) };
144
+ }
104
145
  /**
105
146
  * A run that ended clean while the process its card names is still alive on this host is marked
106
147
  * saving: the tool that runs it saves the run's record and cleans up its checkout after the card says
@@ -113,8 +154,22 @@ export function markSaving(agent, thisHost = hostname(), alive = isPidAlive) {
113
154
  return { ...agent, saving: true };
114
155
  }
115
156
  /** Every annotation a run's record gets on its way to the dashboard: what the daemon knows and the disk cannot. */
116
- function forDashboard(agent) {
117
- return markSaving(markOtherHost(markCloudWaiting(agent)));
157
+ function forDashboard(agent, machineOf) {
158
+ return markSaving(markOtherHost(markMachine(markCloudWaiting(asRecorded(agent)), machineOf)));
159
+ }
160
+ /**
161
+ * A run as its record may say it. A record is a file anyone with the project can write, and its
162
+ * tool's own words are read into the row as they are, so the words only this daemon gives a row
163
+ * are taken off it first: that it runs on a saved machine and which, that it is another
164
+ * computer's, that it is being saved. A computer's name that is no name is none.
165
+ */
166
+ export function asRecorded(agent) {
167
+ const { remoteLabel: _label, remoteByLine: _byLine, otherHost: _other, saving: _saving, cloudWaiting: _waiting, ...said } = agent;
168
+ if (said.target === 'remote')
169
+ delete said.target;
170
+ if (said.host !== undefined && !isHostName(said.host))
171
+ delete said.host;
172
+ return said;
118
173
  }
119
174
  /**
120
175
  * The agent ids that still have a worktree on disk (#737). An agent that failed or was stopped keeps
@@ -212,8 +267,15 @@ export async function onOverview() {
212
267
  }
213
268
  /** Recent sessions pooled across every project (#shared-shell), newest first, for the home rail. */
214
269
  export async function onRecentAgents() {
215
- const recent = await withProjects(projects => buildRecentAgents(projects));
216
- return recent.map(row => ({ ...row, agent: forDashboard(row.agent) }));
270
+ // The runs this daemon follows on a machine live in its memory only: listed with each project's own, as in the project's list.
271
+ const remote = contextRemote();
272
+ const machineOf = await remote.machineNames();
273
+ return withProjects(projects => buildRecentAgents(projects, {
274
+ agents: async (path) => {
275
+ const followed = projects.filter(project => project.path === path).flatMap(project => remote.list(project.id));
276
+ return withFollowed(followed, (await readAllAgents(path)).map(agent => forDashboard(agent, machineOf)), agentId => remote.sent(agentId));
277
+ },
278
+ }));
217
279
  }
218
280
  /**
219
281
  * The cross-project interventions queue (#632, Queue #624): open PRs that need review, newest first,
@@ -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,9 +1,16 @@
1
+ /** Run `call` as one that came in from another computer: nothing in it is passed on to a machine. */
2
+ export declare function asArrived<T>(call: () => Promise<T>): Promise<T>;
1
3
  /**
2
- * Run a run-scoped RPC locally, or relay it to the machine when `agentId` names an agent this daemon is
3
- * relaying to a saved one (#1067 slice 2). For an ordinary local agent the remote lookup is empty and
4
- * `local()` runs unchanged. For a remote agent there is no local checkout, so the call is forwarded to the
5
- * machine with this computer's key there; if the machine is unreachable, or no longer lets this computer in, `unreachable` is returned - the same empty/error
6
- * shape `local()` gives on a failed read - so the caller never special-cases a remote agent.
4
+ * Run a run-scoped RPC locally, or relay it to the machine when `agentId` names an agent that runs on a
5
+ * saved one (#1067 slice 2): one this daemon sent there, or one the machine's own page started,
6
+ * known here by its record. For an ordinary local agent the remote lookup is empty and
7
+ * `local()` runs unchanged. For a remote agent the call is forwarded to the machine with this
8
+ * computer's key there. If the machine is unreachable, no longer lets this computer in, or
9
+ * knows nothing of the run, a read
10
+ * is answered from what this computer holds of the run, its record when it has one, and
11
+ * anything that would change the run answers `unreachable`: it is never done here in the
12
+ * machine's place. A machine that refused and said why (one that only lets its server watch) is
13
+ * answered in its own words, where `unreachable` has words of its own to replace.
7
14
  */
8
15
  export declare function relayOr<T>(agentId: string | undefined, fn: string, args: unknown[], local: () => Promise<T>, unreachable: T): Promise<T>;
9
16
  //# sourceMappingURL=relay-agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay-agent.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/relay-agent.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,EAAE,EACf,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACvB,WAAW,EAAE,CAAC,GACb,OAAO,CAAC,CAAC,CAAC,CAQZ"}
1
+ {"version":3,"file":"relay-agent.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/relay-agent.ts"],"names":[],"mappings":"AAWA,qGAAqG;AACrG,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE/D;AAOD;;;;;;;;;;;GAWG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,EAAE,EACf,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACvB,WAAW,EAAE,CAAC,GACb,OAAO,CAAC,CAAC,CAAC,CAmBZ"}
@@ -1,21 +1,54 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
1
2
  import { contextRemote } from './context.js';
2
- import { relayRpc } from '../dashboard/remote-run.js';
3
+ import { MachineRefusal, relayRpc } from '../dashboard/remote-run.js';
3
4
  /**
4
- * Run a run-scoped RPC locally, or relay it to the machine when `agentId` names an agent this daemon is
5
- * relaying to a saved one (#1067 slice 2). For an ordinary local agent the remote lookup is empty and
6
- * `local()` runs unchanged. For a remote agent there is no local checkout, so the call is forwarded to the
7
- * machine with this computer's key there; if the machine is unreachable, or no longer lets this computer in, `unreachable` is returned - the same empty/error
8
- * shape `local()` gives on a failed read - so the caller never special-cases a remote agent.
5
+ * Set around a call that came in from another computer: it is run here, whatever a run's record
6
+ * says of where the run is. The computer that sent it decided where it goes, and a call passed
7
+ * on again could go round between two computers that have each other saved.
8
+ */
9
+ const arrived = new AsyncLocalStorage();
10
+ /** Run `call` as one that came in from another computer: nothing in it is passed on to a machine. */
11
+ export function asArrived(call) {
12
+ return arrived.run(true, call);
13
+ }
14
+ /** A call that only reads: answered from what this computer holds when the machine cannot be asked. */
15
+ const isRead = (fn) => fn.startsWith('on') || fn === 'readModule';
16
+ /** What a read answers of a run it does not know: nothing, or an empty list. */
17
+ const isNothing = (said) => said === null || said === undefined || (Array.isArray(said) && said.length === 0);
18
+ /**
19
+ * Run a run-scoped RPC locally, or relay it to the machine when `agentId` names an agent that runs on a
20
+ * saved one (#1067 slice 2): one this daemon sent there, or one the machine's own page started,
21
+ * known here by its record. For an ordinary local agent the remote lookup is empty and
22
+ * `local()` runs unchanged. For a remote agent the call is forwarded to the machine with this
23
+ * computer's key there. If the machine is unreachable, no longer lets this computer in, or
24
+ * knows nothing of the run, a read
25
+ * is answered from what this computer holds of the run, its record when it has one, and
26
+ * anything that would change the run answers `unreachable`: it is never done here in the
27
+ * machine's place. A machine that refused and said why (one that only lets its server watch) is
28
+ * answered in its own words, where `unreachable` has words of its own to replace.
9
29
  */
10
30
  export async function relayOr(agentId, fn, args, local, unreachable) {
11
- const target = contextRemote()?.target(agentId);
31
+ if (arrived.getStore())
32
+ return local();
33
+ // Every relayed call names its project first: the machine a run runs on is found by its record there.
34
+ const [projectId] = args;
35
+ const target = agentId !== undefined && typeof projectId === 'string' ? await contextRemote().home(projectId, agentId) : undefined;
12
36
  if (!target)
13
37
  return local();
38
+ const mine = () => local().catch(() => unreachable);
14
39
  try {
15
- return (await relayRpc(target, fn, args));
40
+ const said = (await relayRpc(target, fn, args));
41
+ // A machine that knows nothing of the run, one whose name another computer shares, answers a read with nothing: this computer's own record of the run may say more.
42
+ if (isRead(fn) && isNothing(said)) {
43
+ const kept = await mine();
44
+ return isNothing(kept) ? said : kept;
45
+ }
46
+ return said;
16
47
  }
17
- catch {
18
- return unreachable;
48
+ catch (err) {
49
+ if (isRead(fn))
50
+ return mine();
51
+ return err instanceof MachineRefusal && unreachable !== null && typeof unreachable === 'object' && 'error' in unreachable ? { ...unreachable, error: err.message } : unreachable;
19
52
  }
20
53
  }
21
54
  //# sourceMappingURL=relay-agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay-agent.js","sourceRoot":"","sources":["../../src/dashboard-rpc/relay-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAErD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAA2B,EAC3B,EAAU,EACV,IAAe,EACf,KAAuB,EACvB,WAAc;IAEd,MAAM,MAAM,GAAG,aAAa,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,EAAE,CAAA;IAC3B,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAM,CAAA;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,WAAW,CAAA;IACpB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"relay-agent.js","sourceRoot":"","sources":["../../src/dashboard-rpc/relay-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAErE;;;;GAIG;AACH,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAQ,CAAA;AAE7C,qGAAqG;AACrG,MAAM,UAAU,SAAS,CAAI,IAAsB;IACjD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAChC,CAAC;AAED,uGAAuG;AACvG,MAAM,MAAM,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,CAAA;AAClF,gFAAgF;AAChF,MAAM,SAAS,GAAG,CAAC,IAAa,EAAW,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAA;AAE/H;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAA2B,EAC3B,EAAU,EACV,IAAe,EACf,KAAuB,EACvB,WAAc;IAEd,IAAI,OAAO,CAAC,QAAQ,EAAE;QAAE,OAAO,KAAK,EAAE,CAAA;IACtC,sGAAsG;IACtG,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IACxB,MAAM,MAAM,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,aAAa,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAClI,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,EAAE,CAAA;IAC3B,MAAM,IAAI,GAAG,GAAe,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAA;IAC/D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAM,CAAA;QACpD,oKAAoK;QACpK,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,CAAA;YACzB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;QACtC,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,MAAM,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,EAAE,CAAA;QAC7B,OAAO,GAAG,YAAY,cAAc,IAAI,WAAW,KAAK,IAAI,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,CAAA;IAClL,CAAC;AACH,CAAC"}
@@ -1,5 +1,7 @@
1
1
  /** The names a relay caller may invoke. */
2
2
  export declare const RELAY_RPC_NAMES: readonly string[];
3
+ /** Whether a relayed RPC only reads. A name that is not on the whitelist is no read. */
4
+ export declare function isRelayRead(fn: string): boolean;
3
5
  /**
4
6
  * Dispatch one relayed RPC against `projectId` (this machine's own id for the project). `args[0]`
5
7
  * from the caller is the remote daemon's project id and is meaningless here, so it is replaced
@@ -1 +1 @@
1
- {"version":3,"file":"relay-dispatch.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/relay-dispatch.ts"],"names":[],"mappings":"AAwBA,2CAA2C;AAC3C,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA2B,CAAA;AAExE;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAIvG"}
1
+ {"version":3,"file":"relay-dispatch.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/relay-dispatch.ts"],"names":[],"mappings":"AA0BA,2CAA2C;AAC3C,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA2B,CAAA;AAExE,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAIvG"}
@@ -1,15 +1,22 @@
1
1
  import { onProjectFiles, onGitStatus, onAgentWorktree, onAgentHandoff, onAgent } from './reads.js';
2
2
  import { readModule } from './modules.js';
3
3
  import { sendStop, sendChoice, sendMessage, sendOpenPullRequest, sendPush, sendMerge } from './control.js';
4
+ import { asArrived } from './relay-agent.js';
5
+ // Each entry is a read or an act, and this is the one place that says which: a computer that only
6
+ // lets its server watch answers the reads and refuses the acts (relay-endpoints.ts). An entry goes
7
+ // in one of the two lists, so nothing is relayed that was not classed. `readModule` is a read for
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 };
10
+ const RELAY_ACTS = { sendStop, sendChoice, sendMessage, sendOpenPullRequest, sendPush, sendMerge };
4
11
  // Null-prototype, like RPC_HANDLERS (R1): the key is a request-controlled string, so a plain object
5
12
  // would answer `constructor`/`toString`/`valueOf` off Object.prototype and invoke them as handlers.
6
- const RELAY_FNS = Object.assign(Object.create(null), {
7
- onProjectFiles, readModule,
8
- onGitStatus, onAgentWorktree, onAgentHandoff, onAgent,
9
- sendStop, sendChoice, sendMessage, sendOpenPullRequest, sendPush, sendMerge,
10
- });
13
+ const RELAY_FNS = Object.assign(Object.create(null), RELAY_READS, RELAY_ACTS);
11
14
  /** The names a relay caller may invoke. */
12
15
  export const RELAY_RPC_NAMES = Object.keys(RELAY_FNS);
16
+ /** Whether a relayed RPC only reads. A name that is not on the whitelist is no read. */
17
+ export function isRelayRead(fn) {
18
+ return Object.hasOwn(RELAY_READS, fn);
19
+ }
13
20
  /**
14
21
  * Dispatch one relayed RPC against `projectId` (this machine's own id for the project). `args[0]`
15
22
  * from the caller is the remote daemon's project id and is meaningless here, so it is replaced
@@ -19,6 +26,6 @@ export async function dispatchRelayRpc(projectId, fn, args) {
19
26
  const impl = RELAY_FNS[fn];
20
27
  if (!impl)
21
28
  throw new Error(`unknown relay rpc: ${fn}`);
22
- return impl(projectId, ...args.slice(1));
29
+ return asArrived(() => impl(projectId, ...args.slice(1)));
23
30
  }
24
31
  //# sourceMappingURL=relay-dispatch.js.map
@@ -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,oGAAoG;AACpG,oGAAoG;AACpG,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAA4B,EAAE;IAC9E,cAAc,EAAE,UAAU;IAC1B,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO;IACrD,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS;CAC5E,CAAuC,CAAA;AAExC,2CAA2C;AAC3C,MAAM,CAAC,MAAM,eAAe,GAAsB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAExE;;;;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,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1C,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,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"}
@@ -14,7 +14,7 @@ export function testDashboardContext(over = {}) {
14
14
  addProject: () => ({ ok: false, error: 'not wired in this test' }),
15
15
  removeProject: () => ({ ok: false, error: 'not wired in this test' }),
16
16
  eventsSource: () => undefined,
17
- remote: { target: () => undefined, list: () => [], working: () => false, rekey: () => { } },
17
+ remote: { target: () => undefined, list: () => [], working: () => false, rekey: () => { }, sent: () => true, home: async () => undefined, follow: async () => { }, machineNames: async () => () => undefined },
18
18
  preferences: registryPreferencesStore(),
19
19
  quota: defaultQuotaSource(),
20
20
  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,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;QAC1F,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,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,oBAAoB,EAAE,CAAA;IACjF,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,CAAA;AACrH,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,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,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,oBAAoB,EAAE,CAAA;IACjF,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,CAAA;AACrH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAI,GAA8B,EAAE;IACrE,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAA;AACjD,CAAC"}
@@ -22,7 +22,7 @@ export interface SettingsOption {
22
22
  /**
23
23
  * One setting picked from a list.
24
24
  *
25
- * A row with nothing to pick renders nothing at all (#1172). An empty `<select>` is a control that
25
+ * A row with nothing to pick renders nothing at all (#1172). An empty list is a control that
26
26
  * cannot be operated — it reads as broken rather than as "no choices here", which is exactly the
27
27
  * paper cut this guard exists for. Every list on this page has a fixed first entry today ("Auto-detect",
28
28
  * the agent's own default), so nothing hits it; it is here because the next list will be added
@@ -1,5 +1,19 @@
1
- import type { HTMLAttributes } from 'react';
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
2
  export declare function Card({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
3
3
  export declare function CardHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
4
4
  export declare function CardTitle({ className, ...props }: HTMLAttributes<HTMLHeadingElement>): import("react").JSX.Element;
5
+ /**
6
+ * A card's title that opens the card's own page, named by its `segment`. A card on the Overview
7
+ * is a summary: its title is the way to the whole. A real link, so it also opens in a new tab,
8
+ * with the project the dashboard is showing; a plain click goes through `onOpen`, the dashboard's
9
+ * own navigation. The arrow shows on hover and focus, and always on a
10
+ * phone, where nothing hovers.
11
+ */
12
+ export declare function CardTitleLink({ icon, children, segment, onOpen, className }: {
13
+ icon?: ReactNode;
14
+ children: ReactNode; /** The page the title opens, by its segment. */
15
+ segment: string;
16
+ onOpen: () => void;
17
+ className?: string;
18
+ }): import("react").JSX.Element;
5
19
  export declare function CardContent({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { type ReactNode } from 'react';
2
+ export declare function ConfirmDialog({ trigger, open: controlledOpen, onOpenChange, title, body, confirmLabel, confirmBusyLabel, onConfirm, onSuccess, fallbackError, destructive, }: {
3
+ /** The control that opens the dialog (an icon button). Omit when driving `open` yourself — e.g.
4
+ * opening from a menu item, where the menu closes on click and cannot also be the trigger. */
5
+ trigger?: ReactNode;
6
+ /** Controlled open state. Given, the dialog is opened/closed by the caller instead of its trigger. */
7
+ open?: boolean;
8
+ onOpenChange?: (open: boolean) => void;
9
+ title: ReactNode;
10
+ /** The consequence, said plainly — this is where the caveats live. */
11
+ body: ReactNode;
12
+ confirmLabel: string;
13
+ confirmBusyLabel?: string;
14
+ /** Runs on confirm; a refused or thrown result keeps the dialog open with the error. */
15
+ onConfirm: () => Promise<unknown>;
16
+ /** Fires once, after the dialog has closed on a successful confirm — safe to navigate away in. */
17
+ onSuccess?: () => void;
18
+ fallbackError?: string;
19
+ destructive?: boolean;
20
+ }): import("react").JSX.Element;