@seat-mesh/daemon 0.1.25 → 0.1.27

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 (185) hide show
  1. package/dist/border/border-paint.d.ts +13 -0
  2. package/dist/border/border-paint.d.ts.map +1 -0
  3. package/dist/border/border-paint.js +230 -0
  4. package/dist/border/border-paint.js.map +1 -0
  5. package/dist/checkback/checkback-fire.d.ts +8 -0
  6. package/dist/checkback/checkback-fire.d.ts.map +1 -0
  7. package/dist/checkback/checkback-fire.js +52 -0
  8. package/dist/checkback/checkback-fire.js.map +1 -0
  9. package/dist/checkback/checkback-fire.test.d.ts +2 -0
  10. package/dist/checkback/checkback-fire.test.d.ts.map +1 -0
  11. package/dist/checkback/checkback-fire.test.js +36 -0
  12. package/dist/checkback/checkback-fire.test.js.map +1 -0
  13. package/dist/connectivity/cc-limit-retry.d.ts +11 -0
  14. package/dist/connectivity/cc-limit-retry.d.ts.map +1 -0
  15. package/dist/connectivity/cc-limit-retry.js +73 -0
  16. package/dist/connectivity/cc-limit-retry.js.map +1 -0
  17. package/dist/connectivity/connectivity-recovery.d.ts +88 -0
  18. package/dist/connectivity/connectivity-recovery.d.ts.map +1 -0
  19. package/dist/connectivity/connectivity-recovery.js +529 -0
  20. package/dist/connectivity/connectivity-recovery.js.map +1 -0
  21. package/dist/connectivity/connectivity-recovery.test.d.ts +2 -0
  22. package/dist/connectivity/connectivity-recovery.test.d.ts.map +1 -0
  23. package/dist/connectivity/connectivity-recovery.test.js +170 -0
  24. package/dist/connectivity/connectivity-recovery.test.js.map +1 -0
  25. package/dist/connectivity/oc-resume-ack.d.ts +32 -0
  26. package/dist/connectivity/oc-resume-ack.d.ts.map +1 -0
  27. package/dist/connectivity/oc-resume-ack.js +89 -0
  28. package/dist/connectivity/oc-resume-ack.js.map +1 -0
  29. package/dist/connectivity/oc-resume-ack.test.d.ts +2 -0
  30. package/dist/connectivity/oc-resume-ack.test.d.ts.map +1 -0
  31. package/dist/connectivity/oc-resume-ack.test.js +23 -0
  32. package/dist/connectivity/oc-resume-ack.test.js.map +1 -0
  33. package/dist/connectivity/oc-resume.d.ts +25 -0
  34. package/dist/connectivity/oc-resume.d.ts.map +1 -0
  35. package/dist/connectivity/oc-resume.js +84 -0
  36. package/dist/connectivity/oc-resume.js.map +1 -0
  37. package/dist/inbox/delivery-hold.d.ts +11 -0
  38. package/dist/inbox/delivery-hold.d.ts.map +1 -0
  39. package/dist/inbox/delivery-hold.js +34 -0
  40. package/dist/inbox/delivery-hold.js.map +1 -0
  41. package/dist/inbox/delivery-hold.test.d.ts +2 -0
  42. package/dist/inbox/delivery-hold.test.d.ts.map +1 -0
  43. package/dist/inbox/delivery-hold.test.js +40 -0
  44. package/dist/inbox/delivery-hold.test.js.map +1 -0
  45. package/dist/inbox/inbox-overload.d.ts +19 -0
  46. package/dist/inbox/inbox-overload.d.ts.map +1 -0
  47. package/dist/inbox/inbox-overload.js +45 -0
  48. package/dist/inbox/inbox-overload.js.map +1 -0
  49. package/dist/inbox/inbox-overload.test.d.ts +2 -0
  50. package/dist/inbox/inbox-overload.test.d.ts.map +1 -0
  51. package/dist/inbox/inbox-overload.test.js +43 -0
  52. package/dist/inbox/inbox-overload.test.js.map +1 -0
  53. package/dist/inbox/pane-ops-drain.d.ts +14 -0
  54. package/dist/inbox/pane-ops-drain.d.ts.map +1 -0
  55. package/dist/inbox/pane-ops-drain.js +53 -0
  56. package/dist/inbox/pane-ops-drain.js.map +1 -0
  57. package/dist/index.d.ts +2 -2
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +2 -2
  60. package/dist/index.js.map +1 -1
  61. package/dist/inject/compose-gate.d.ts +23 -0
  62. package/dist/inject/compose-gate.d.ts.map +1 -0
  63. package/dist/inject/compose-gate.js +92 -0
  64. package/dist/inject/compose-gate.js.map +1 -0
  65. package/dist/inject/compose-gate.test.d.ts +2 -0
  66. package/dist/inject/compose-gate.test.d.ts.map +1 -0
  67. package/dist/inject/compose-gate.test.js +35 -0
  68. package/dist/inject/compose-gate.test.js.map +1 -0
  69. package/dist/inject/inject-delivery.d.ts +39 -0
  70. package/dist/inject/inject-delivery.d.ts.map +1 -0
  71. package/dist/inject/inject-delivery.js +164 -0
  72. package/dist/inject/inject-delivery.js.map +1 -0
  73. package/dist/inject/inject-delivery.test.d.ts +2 -0
  74. package/dist/inject/inject-delivery.test.d.ts.map +1 -0
  75. package/dist/inject/inject-delivery.test.js +30 -0
  76. package/dist/inject/inject-delivery.test.js.map +1 -0
  77. package/dist/inject-delivery.d.ts +1 -1
  78. package/dist/inject-delivery.d.ts.map +1 -1
  79. package/dist/inject-delivery.js +1 -5
  80. package/dist/inject-delivery.js.map +1 -1
  81. package/dist/jsonl-store.d.ts.map +1 -1
  82. package/dist/jsonl-store.js +4 -0
  83. package/dist/jsonl-store.js.map +1 -1
  84. package/dist/mesh-inbox-server.js +24 -16
  85. package/dist/mesh-inbox-server.js.map +1 -1
  86. package/dist/mesh-orchestrator.d.ts.map +1 -1
  87. package/dist/mesh-orchestrator.js +1 -0
  88. package/dist/mesh-orchestrator.js.map +1 -1
  89. package/dist/notify/notify-act-ui.d.ts +7 -0
  90. package/dist/notify/notify-act-ui.d.ts.map +1 -0
  91. package/dist/notify/notify-act-ui.js +59 -0
  92. package/dist/notify/notify-act-ui.js.map +1 -0
  93. package/dist/notify/notify-act.d.ts +45 -0
  94. package/dist/notify/notify-act.d.ts.map +1 -0
  95. package/dist/notify/notify-act.js +133 -0
  96. package/dist/notify/notify-act.js.map +1 -0
  97. package/dist/notify/notify-act.test.d.ts +2 -0
  98. package/dist/notify/notify-act.test.d.ts.map +1 -0
  99. package/dist/notify/notify-act.test.js +29 -0
  100. package/dist/notify/notify-act.test.js.map +1 -0
  101. package/dist/notify-act-ui.d.ts +1 -1
  102. package/dist/notify-act-ui.d.ts.map +1 -1
  103. package/dist/notify-act-ui.js +8 -8
  104. package/dist/notify-act-ui.js.map +1 -1
  105. package/dist/notify-act.d.ts.map +1 -1
  106. package/dist/notify-act.js +4 -1
  107. package/dist/notify-act.js.map +1 -1
  108. package/dist/orchestrator/mesh-orchestrator.d.ts +32 -0
  109. package/dist/orchestrator/mesh-orchestrator.d.ts.map +1 -0
  110. package/dist/orchestrator/mesh-orchestrator.js +629 -0
  111. package/dist/orchestrator/mesh-orchestrator.js.map +1 -0
  112. package/dist/orchestrator/orchestrator.d.ts +17 -0
  113. package/dist/orchestrator/orchestrator.d.ts.map +1 -0
  114. package/dist/orchestrator/orchestrator.js +11 -0
  115. package/dist/orchestrator/orchestrator.js.map +1 -0
  116. package/dist/orchestrator/workers.d.ts +11 -0
  117. package/dist/orchestrator/workers.d.ts.map +1 -0
  118. package/dist/orchestrator/workers.js +12 -0
  119. package/dist/orchestrator/workers.js.map +1 -0
  120. package/dist/peer/peer-backlog.d.ts +18 -0
  121. package/dist/peer/peer-backlog.d.ts.map +1 -0
  122. package/dist/peer/peer-backlog.js +200 -0
  123. package/dist/peer/peer-backlog.js.map +1 -0
  124. package/dist/peer/peer-comms-checkback.d.ts +5 -0
  125. package/dist/peer/peer-comms-checkback.d.ts.map +1 -0
  126. package/dist/peer/peer-comms-checkback.js +68 -0
  127. package/dist/peer/peer-comms-checkback.js.map +1 -0
  128. package/dist/peer/peer-pending.d.ts +9 -0
  129. package/dist/peer/peer-pending.d.ts.map +1 -0
  130. package/dist/peer/peer-pending.js +19 -0
  131. package/dist/peer/peer-pending.js.map +1 -0
  132. package/dist/peer/peer-pending.test.d.ts +2 -0
  133. package/dist/peer/peer-pending.test.d.ts.map +1 -0
  134. package/dist/peer/peer-pending.test.js +59 -0
  135. package/dist/peer/peer-pending.test.js.map +1 -0
  136. package/dist/peer/peer-skip.d.ts +15 -0
  137. package/dist/peer/peer-skip.d.ts.map +1 -0
  138. package/dist/peer/peer-skip.js +44 -0
  139. package/dist/peer/peer-skip.js.map +1 -0
  140. package/dist/peer/peer-skip.test.d.ts +2 -0
  141. package/dist/peer/peer-skip.test.d.ts.map +1 -0
  142. package/dist/peer/peer-skip.test.js +51 -0
  143. package/dist/peer/peer-skip.test.js.map +1 -0
  144. package/dist/peer/peer-target-resolve.d.ts +8 -0
  145. package/dist/peer/peer-target-resolve.d.ts.map +1 -0
  146. package/dist/peer/peer-target-resolve.js +13 -0
  147. package/dist/peer/peer-target-resolve.js.map +1 -0
  148. package/dist/peer-backlog.d.ts.map +1 -1
  149. package/dist/peer-backlog.js +25 -0
  150. package/dist/peer-backlog.js.map +1 -1
  151. package/dist/peer-pending.test.js +17 -0
  152. package/dist/peer-pending.test.js.map +1 -1
  153. package/dist/queue/bullmq-runtime.d.ts +19 -0
  154. package/dist/queue/bullmq-runtime.d.ts.map +1 -0
  155. package/dist/queue/bullmq-runtime.js +78 -0
  156. package/dist/queue/bullmq-runtime.js.map +1 -0
  157. package/dist/state/ppa-state.d.ts +32 -0
  158. package/dist/state/ppa-state.d.ts.map +1 -0
  159. package/dist/state/ppa-state.js +63 -0
  160. package/dist/state/ppa-state.js.map +1 -0
  161. package/dist/store/create-queue-store.d.ts +8 -0
  162. package/dist/store/create-queue-store.d.ts.map +1 -0
  163. package/dist/store/create-queue-store.js +19 -0
  164. package/dist/store/create-queue-store.js.map +1 -0
  165. package/dist/store/jsonl-dedupe.test.d.ts +2 -0
  166. package/dist/store/jsonl-dedupe.test.d.ts.map +1 -0
  167. package/dist/store/jsonl-dedupe.test.js +62 -0
  168. package/dist/store/jsonl-dedupe.test.js.map +1 -0
  169. package/dist/store/jsonl-store.checkback.test.d.ts +2 -0
  170. package/dist/store/jsonl-store.checkback.test.d.ts.map +1 -0
  171. package/dist/store/jsonl-store.checkback.test.js +55 -0
  172. package/dist/store/jsonl-store.checkback.test.js.map +1 -0
  173. package/dist/store/jsonl-store.d.ts +124 -0
  174. package/dist/store/jsonl-store.d.ts.map +1 -0
  175. package/dist/store/jsonl-store.js +305 -0
  176. package/dist/store/jsonl-store.js.map +1 -0
  177. package/dist/store/sqlite-store.d.ts +52 -0
  178. package/dist/store/sqlite-store.d.ts.map +1 -0
  179. package/dist/store/sqlite-store.js +456 -0
  180. package/dist/store/sqlite-store.js.map +1 -0
  181. package/dist/store/sqlite-store.test.d.ts +2 -0
  182. package/dist/store/sqlite-store.test.d.ts.map +1 -0
  183. package/dist/store/sqlite-store.test.js +76 -0
  184. package/dist/store/sqlite-store.test.js.map +1 -0
  185. package/package.json +4 -4
@@ -0,0 +1,59 @@
1
+ const UI_CSS = `
2
+ body{font-family:system-ui,sans-serif;margin:2rem;max-width:36rem;line-height:1.45}
3
+ h1{font-size:1.25rem}
4
+ .btn{display:inline-block;margin:.35rem .5rem .35rem 0;padding:.55rem 1.1rem;
5
+ border-radius:6px;text-decoration:none;font-weight:600;font-size:.95rem}
6
+ .btn-yes{background:#2e7d32;color:#fff}
7
+ .btn-no{background:#5f6368;color:#fff}
8
+ .btn-link{background:#1565c0;color:#fff}
9
+ .btn-muted{background:#eceff1;color:#202124}
10
+ .row{margin:1.25rem 0}
11
+ small{color:#5f6368}
12
+ `;
13
+ export function htmlUiShell(title, bodyHtml) {
14
+ return `<!DOCTYPE html>
15
+ <html lang="en"><head><meta charset="utf-8"><title>${escapeHtml(title)}</title>
16
+ <style>${UI_CSS}</style></head><body>${bodyHtml}</body></html>`;
17
+ }
18
+ export function htmlButtonLinks(links, variant = "plain") {
19
+ if (!links.length)
20
+ return "<p><em>No links registered.</em></p>";
21
+ return links
22
+ .map((l, i) => {
23
+ const label = escapeHtml(l.label);
24
+ const href = escapeHtmlAttr(l.url);
25
+ let cls = "btn btn-link";
26
+ if (variant === "yesno" && links.length >= 2) {
27
+ if (i === 0)
28
+ cls = "btn btn-yes";
29
+ else if (i === 1)
30
+ cls = "btn btn-no";
31
+ }
32
+ return `<a class="${cls}" href="${href}">${label}</a>`;
33
+ })
34
+ .join("\n");
35
+ }
36
+ /** Browser page: same one-shot Yes/No URLs as embedded in desktop toasts. */
37
+ export function htmlDemoYesNoPage(links, port) {
38
+ const buttons = htmlButtonLinks(links, "yesno");
39
+ return htmlUiShell("seatmesh · Yes / No", `<h1>Yes / No (notify-act)</h1>
40
+ <p>Same links as in a desktop notification. One click executes the action and burns the token.</p>
41
+ <div class="row">${buttons}</div>
42
+ <p><small>POST /act/register · :${port} · <a href="/ui">/ui</a> · <a href="/health">/health</a></small></p>`);
43
+ }
44
+ export function htmlUiHome(port) {
45
+ return htmlUiShell("seatmesh ui", `<h1>seatmesh browser</h1>
46
+ <p>Local inbox control plane on <code>127.0.0.1:${port}</code>.</p>
47
+ <div class="row">
48
+ <a class="btn btn-link" href="/ui/demo-yesno">Yes / No (demo links)</a>
49
+ <a class="btn btn-muted" href="/health">Health (JSON)</a>
50
+ </div>
51
+ <p><small>CLI: <code>notify yesno</code> · toast body uses HTML Yes/No anchors only.</small></p>`);
52
+ }
53
+ function escapeHtml(s) {
54
+ return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
55
+ }
56
+ function escapeHtmlAttr(s) {
57
+ return escapeHtml(s).replace(/"/g, "&quot;");
58
+ }
59
+ //# sourceMappingURL=notify-act-ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify-act-ui.js","sourceRoot":"","sources":["../../src/notify/notify-act-ui.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG;;;;;;;;;;;CAWd,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,QAAgB;IACzD,OAAO;qDAC4C,UAAU,CAAC,KAAK,CAAC;SAC7D,MAAM,wBAAwB,QAAQ,gBAAgB,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAsB,EAAE,UAA6B,OAAO;IAC1F,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,sCAAsC,CAAC;IACjE,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACZ,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,GAAG,GAAG,cAAc,CAAC;QACzB,IAAI,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC;gBAAE,GAAG,GAAG,aAAa,CAAC;iBAC5B,IAAI,CAAC,KAAK,CAAC;gBAAE,GAAG,GAAG,YAAY,CAAC;QACvC,CAAC;QACD,OAAO,aAAa,GAAG,WAAW,IAAI,KAAK,KAAK,MAAM,CAAC;IACzD,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,iBAAiB,CAAC,KAAsB,EAAE,IAAY;IACpE,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,OAAO,WAAW,CAChB,qBAAqB,EACrB;;mBAEe,OAAO;kCACQ,IAAI,sEAAsE,CACzG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,WAAW,CAChB,aAAa,EACb;kDAC8C,IAAI;;;;;iGAK2C,CAC9F,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,CAAS;IAC/B,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,45 @@
1
+ import type { LoadedProfile } from "@seat-mesh/core";
2
+ import type { NotifyActLink, NotifyActRegisterAction, NotifyActType } from "@seat-mesh/core";
3
+ import type { PeerRow } from "../store/jsonl-store.js";
4
+ export interface NotifyActStore {
5
+ resolveInbox(input: {
6
+ id?: string;
7
+ all?: boolean;
8
+ }): {
9
+ resolved: number;
10
+ ids: string[];
11
+ };
12
+ ackCheckback(id: string, yes: boolean): {
13
+ ok: boolean;
14
+ id?: string;
15
+ action?: string;
16
+ error?: string;
17
+ };
18
+ appendPeer(row: PeerRow): void;
19
+ }
20
+ export interface NotifyActTokenRow {
21
+ token: string;
22
+ label: string;
23
+ type: NotifyActType;
24
+ params: Record<string, unknown>;
25
+ expiresAt: number;
26
+ used: boolean;
27
+ }
28
+ export interface NotifyActExecuteCtx {
29
+ loaded: LoadedProfile;
30
+ store: NotifyActStore;
31
+ log: (line: string) => void;
32
+ onPeerEnqueued: (row: PeerRow) => void | Promise<void>;
33
+ }
34
+ export declare function createNotifyActRegistry(): {
35
+ register: (actions: NotifyActRegisterAction[], ttlSec: number, baseUrl: string) => NotifyActLink[];
36
+ take: (token: string) => NotifyActTokenRow | null;
37
+ pruneExpired: () => void;
38
+ };
39
+ export type NotifyActRegistry = ReturnType<typeof createNotifyActRegistry>;
40
+ export declare function executeNotifyAct(row: NotifyActTokenRow, ctx: NotifyActExecuteCtx): Promise<{
41
+ ok: boolean;
42
+ summary: string;
43
+ }>;
44
+ export declare function htmlActPage(title: string, body: string, ok: boolean): string;
45
+ //# sourceMappingURL=notify-act.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify-act.d.ts","sourceRoot":"","sources":["../../src/notify/notify-act.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,aAAa,EACd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAY,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,KAAK,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACzF,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtG,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,cAAc,CAAC;IACtB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,wBAAgB,uBAAuB;wBAW1B,uBAAuB,EAAE,UAC1B,MAAM,WACL,MAAM,KACd,aAAa,EAAE;kBAuBG,MAAM,KAAG,iBAAiB,GAAG,IAAI;wBAlC7B,IAAI;EA4C9B;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE3E,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAkE3C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,MAAM,CAY5E"}
@@ -0,0 +1,133 @@
1
+ import { resolvePaneTarget } from "@seat-mesh/tmux";
2
+ export function createNotifyActRegistry() {
3
+ const tokens = new Map();
4
+ function pruneExpired() {
5
+ const now = Date.now();
6
+ for (const [id, row] of tokens) {
7
+ if (row.expiresAt <= now || row.used)
8
+ tokens.delete(id);
9
+ }
10
+ }
11
+ function register(actions, ttlSec, baseUrl) {
12
+ pruneExpired();
13
+ const ttl = Math.min(Math.max(ttlSec, 60), 86_400);
14
+ const base = baseUrl.replace(/\/$/, "");
15
+ const links = [];
16
+ const expiresAt = Date.now() + ttl * 1000;
17
+ for (const a of actions) {
18
+ const label = String(a.label ?? "").trim();
19
+ if (!label)
20
+ continue;
21
+ const token = crypto.randomUUID();
22
+ tokens.set(token, {
23
+ token,
24
+ label,
25
+ type: a.type,
26
+ params: a.params ?? {},
27
+ expiresAt,
28
+ used: false,
29
+ });
30
+ links.push({ label, token, url: `${base}/act/v1/${token}` });
31
+ }
32
+ return links;
33
+ }
34
+ function take(token) {
35
+ pruneExpired();
36
+ const row = tokens.get(token);
37
+ if (!row || row.used || row.expiresAt <= Date.now())
38
+ return null;
39
+ row.used = true;
40
+ tokens.delete(token);
41
+ return row;
42
+ }
43
+ return { register, take, pruneExpired };
44
+ }
45
+ export async function executeNotifyAct(row, ctx) {
46
+ switch (row.type) {
47
+ case "ping":
48
+ ctx.log(`NOTIFY-ACT ping label=${row.label}`);
49
+ return { ok: true, summary: "Recorded (no mesh mutation)." };
50
+ case "inbox-resolve": {
51
+ const id = row.params.id != null ? String(row.params.id) : undefined;
52
+ const all = row.params.all === true;
53
+ const result = ctx.store.resolveInbox({ id, all });
54
+ ctx.log(`NOTIFY-ACT inbox-resolve count=${result.resolved}`);
55
+ return {
56
+ ok: true,
57
+ summary: `Resolved ${result.resolved} inbox row(s).`,
58
+ };
59
+ }
60
+ case "checkback-ack": {
61
+ const id = String(row.params.id ?? "").trim();
62
+ if (!id)
63
+ return { ok: false, summary: "Missing checkback id." };
64
+ const yes = row.params.yes === true ||
65
+ row.params.yes === "true" ||
66
+ String(row.params.answer ?? "").toLowerCase() === "yes";
67
+ const result = ctx.store.ackCheckback(id, yes);
68
+ if (!result.ok)
69
+ return { ok: false, summary: result.error ?? "Ack failed." };
70
+ ctx.log(`NOTIFY-ACT checkback-ack id=${result.id} action=${result.action}`);
71
+ return { ok: true, summary: `Checkback ${result.action}.` };
72
+ }
73
+ case "peer": {
74
+ const target = String(row.params.target ?? "manager").trim();
75
+ const msg = String(row.params.msg ?? "").trim();
76
+ if (!msg)
77
+ return { ok: false, summary: "Empty peer message." };
78
+ const resolved = resolvePaneTarget(target, ctx.loaded);
79
+ if ("error" in resolved) {
80
+ return { ok: false, summary: resolved.error };
81
+ }
82
+ const kindRaw = String(row.params.kind ?? "prompt");
83
+ const kind = kindRaw === "to-mini" ||
84
+ kindRaw === "to-slot" ||
85
+ kindRaw === "remind" ||
86
+ kindRaw === "room"
87
+ ? kindRaw
88
+ : "prompt";
89
+ const now = new Date().toISOString();
90
+ const peer = {
91
+ id: crypto.randomUUID(),
92
+ at: now,
93
+ kind,
94
+ fromSlot: "notify-act",
95
+ fromPorts: null,
96
+ targetPane: resolved.paneId,
97
+ targetLabel: resolved.row.slot || target,
98
+ msg,
99
+ sent: false,
100
+ };
101
+ ctx.store.appendPeer(peer);
102
+ ctx.log(`NOTIFY-ACT peer -> ${peer.targetLabel} :: ${msg.slice(0, 80)}`);
103
+ await ctx.onPeerEnqueued(peer);
104
+ return {
105
+ ok: true,
106
+ summary: `Queued peer to ${peer.targetLabel} (${target}): ${msg.slice(0, 120)}`,
107
+ };
108
+ }
109
+ default:
110
+ return { ok: false, summary: `Unknown action type.` };
111
+ }
112
+ }
113
+ export function htmlActPage(title, body, ok) {
114
+ const safeTitle = escapeHtml(title);
115
+ const safeBody = escapeHtml(body);
116
+ const color = ok ? "#2e7d32" : "#c62828";
117
+ return `<!DOCTYPE html>
118
+ <html lang="en"><head><meta charset="utf-8"><title>${safeTitle}</title>
119
+ <style>body{font-family:system-ui,sans-serif;margin:2rem;max-width:40rem;line-height:1.45}
120
+ h1{color:${color};font-size:1.25rem}a.btn{display:inline-block;margin-top:1rem;padding:.5rem 1rem;
121
+ background:#1565c0;color:#fff;border-radius:6px;text-decoration:none;font-weight:600}</style>
122
+ </head><body><h1>${safeTitle}</h1><p>${safeBody}</p>
123
+ <a class="btn" href="/ui">Back to mesh UI</a>
124
+ <p><small>seatmesh notify-act · one-shot</small></p></body></html>`;
125
+ }
126
+ function escapeHtml(s) {
127
+ return s
128
+ .replace(/&/g, "&amp;")
129
+ .replace(/</g, "&lt;")
130
+ .replace(/>/g, "&gt;")
131
+ .replace(/"/g, "&quot;");
132
+ }
133
+ //# sourceMappingURL=notify-act.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify-act.js","sourceRoot":"","sources":["../../src/notify/notify-act.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=notify-act.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify-act.test.d.ts","sourceRoot":"","sources":["../../src/notify/notify-act.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { createNotifyActRegistry, executeNotifyAct } from "./notify-act.js";
3
+ import { JsonlStore } from "../store/jsonl-store.js";
4
+ import fs from "node:fs";
5
+ import os from "node:os";
6
+ import path from "node:path";
7
+ describe("notify-act registry", () => {
8
+ it("register returns one-shot URLs and take consumes token", async () => {
9
+ const reg = createNotifyActRegistry();
10
+ const links = reg.register([{ label: "Ping", type: "ping", params: {} }], 300, "http://127.0.0.1:31670");
11
+ expect(links).toHaveLength(1);
12
+ expect(links[0].url).toContain("/act/v1/");
13
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), "notify-act-"));
14
+ const store = new JsonlStore(dir);
15
+ const logs = [];
16
+ const row = reg.take(links[0].token);
17
+ expect(row).not.toBeNull();
18
+ expect(reg.take(links[0].token)).toBeNull();
19
+ const result = await executeNotifyAct(row, {
20
+ loaded: { workspace: dir, profileDir: dir, profilePath: dir, profile: {} },
21
+ store,
22
+ log: (l) => logs.push(l),
23
+ onPeerEnqueued: async () => { },
24
+ });
25
+ expect(result.ok).toBe(true);
26
+ expect(logs.some((l) => l.includes("NOTIFY-ACT ping"))).toBe(true);
27
+ });
28
+ });
29
+ //# sourceMappingURL=notify-act.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify-act.test.js","sourceRoot":"","sources":["../../src/notify/notify-act.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,GAAG,GAAG,uBAAuB,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CACxB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAC7C,GAAG,EACH,wBAAwB,CACzB,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE5C,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAE7C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAI,EAAE;YAC1C,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAW;YACnF,KAAK;YACL,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACxB,cAAc,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;SAC/B,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { NotifyActLink } from "@seat-mesh/core";
2
2
  export declare function htmlUiShell(title: string, bodyHtml: string): string;
3
3
  export declare function htmlButtonLinks(links: NotifyActLink[], variant?: "yesno" | "plain"): string;
4
- /** FE test page: Yes / No as plain link-buttons (same URLs as notification body). */
4
+ /** Browser page: same one-shot Yes/No URLs as embedded in desktop toasts. */
5
5
  export declare function htmlDemoYesNoPage(links: NotifyActLink[], port: number): string;
6
6
  export declare function htmlUiHome(port: number): string;
7
7
  //# sourceMappingURL=notify-act-ui.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify-act-ui.d.ts","sourceRoot":"","sources":["../src/notify-act-ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAerD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAInE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,OAAO,GAAE,OAAO,GAAG,OAAiB,GAAG,MAAM,CAcpG;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAS9E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAW/C"}
1
+ {"version":3,"file":"notify-act-ui.d.ts","sourceRoot":"","sources":["../src/notify-act-ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAerD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAInE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,OAAO,GAAE,OAAO,GAAG,OAAiB,GAAG,MAAM,CAcpG;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAS9E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAW/C"}
@@ -33,22 +33,22 @@ export function htmlButtonLinks(links, variant = "plain") {
33
33
  })
34
34
  .join("\n");
35
35
  }
36
- /** FE test page: Yes / No as plain link-buttons (same URLs as notification body). */
36
+ /** Browser page: same one-shot Yes/No URLs as embedded in desktop toasts. */
37
37
  export function htmlDemoYesNoPage(links, port) {
38
38
  const buttons = htmlButtonLinks(links, "yesno");
39
- return htmlUiShell("seatmesh · Yes / No demo", `<h1>Notify-act demo (localhost)</h1>
40
- <p>These are the same one-shot links you would embed in a desktop notification. Click once token burns.</p>
39
+ return htmlUiShell("seatmesh · Yes / No", `<h1>Yes / No (notify-act)</h1>
40
+ <p>Same links as in a desktop notification. One click executes the action and burns the token.</p>
41
41
  <div class="row">${buttons}</div>
42
- <p><small>Register: POST /act/register · Daemon :${port} · <a href="/ui">/ui</a> · <a href="/health">/health</a></small></p>`);
42
+ <p><small>POST /act/register · :${port} · <a href="/ui">/ui</a> · <a href="/health">/health</a></small></p>`);
43
43
  }
44
44
  export function htmlUiHome(port) {
45
- return htmlUiShell("seatmesh ui", `<h1>seatmesh browser (v0)</h1>
46
- <p>Local mesh control plane on <code>127.0.0.1:${port}</code>.</p>
45
+ return htmlUiShell("seatmesh ui", `<h1>seatmesh browser</h1>
46
+ <p>Local inbox control plane on <code>127.0.0.1:${port}</code>.</p>
47
47
  <div class="row">
48
- <a class="btn btn-link" href="/ui/demo-yesno">Yes / No button links</a>
48
+ <a class="btn btn-link" href="/ui/demo-yesno">Yes / No (demo links)</a>
49
49
  <a class="btn btn-muted" href="/health">Health (JSON)</a>
50
50
  </div>
51
- <p><small>Notifications: register actions, paste HTML links in toast body (Plasma opens in browser).</small></p>`);
51
+ <p><small>CLI: <code>notify yesno</code> · toast body uses HTML Yes/No anchors only.</small></p>`);
52
52
  }
53
53
  function escapeHtml(s) {
54
54
  return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
@@ -1 +1 @@
1
- {"version":3,"file":"notify-act-ui.js","sourceRoot":"","sources":["../src/notify-act-ui.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG;;;;;;;;;;;CAWd,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,QAAgB;IACzD,OAAO;qDAC4C,UAAU,CAAC,KAAK,CAAC;SAC7D,MAAM,wBAAwB,QAAQ,gBAAgB,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAsB,EAAE,UAA6B,OAAO;IAC1F,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,sCAAsC,CAAC;IACjE,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACZ,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,GAAG,GAAG,cAAc,CAAC;QACzB,IAAI,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC;gBAAE,GAAG,GAAG,aAAa,CAAC;iBAC5B,IAAI,CAAC,KAAK,CAAC;gBAAE,GAAG,GAAG,YAAY,CAAC;QACvC,CAAC;QACD,OAAO,aAAa,GAAG,WAAW,IAAI,KAAK,KAAK,MAAM,CAAC;IACzD,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,iBAAiB,CAAC,KAAsB,EAAE,IAAY;IACpE,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,OAAO,WAAW,CAChB,0BAA0B,EAC1B;;mBAEe,OAAO;mDACyB,IAAI,sEAAsE,CAC1H,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,WAAW,CAChB,aAAa,EACb;iDAC6C,IAAI;;;;;iHAK4D,CAC9G,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,CAAS;IAC/B,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"notify-act-ui.js","sourceRoot":"","sources":["../src/notify-act-ui.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG;;;;;;;;;;;CAWd,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,QAAgB;IACzD,OAAO;qDAC4C,UAAU,CAAC,KAAK,CAAC;SAC7D,MAAM,wBAAwB,QAAQ,gBAAgB,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAsB,EAAE,UAA6B,OAAO;IAC1F,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,sCAAsC,CAAC;IACjE,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACZ,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,GAAG,GAAG,cAAc,CAAC;QACzB,IAAI,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC;gBAAE,GAAG,GAAG,aAAa,CAAC;iBAC5B,IAAI,CAAC,KAAK,CAAC;gBAAE,GAAG,GAAG,YAAY,CAAC;QACvC,CAAC;QACD,OAAO,aAAa,GAAG,WAAW,IAAI,KAAK,KAAK,MAAM,CAAC;IACzD,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,iBAAiB,CAAC,KAAsB,EAAE,IAAY;IACpE,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,OAAO,WAAW,CAChB,qBAAqB,EACrB;;mBAEe,OAAO;kCACQ,IAAI,sEAAsE,CACzG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,WAAW,CAChB,aAAa,EACb;kDAC8C,IAAI;;;;;iGAK2C,CAC9F,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,CAAS;IAC/B,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"notify-act.d.ts","sourceRoot":"","sources":["../src/notify-act.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,aAAa,EACd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAY,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,KAAK,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACzF,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtG,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,cAAc,CAAC;IACtB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,wBAAgB,uBAAuB;wBAW1B,uBAAuB,EAAE,UAC1B,MAAM,WACL,MAAM,KACd,aAAa,EAAE;kBAuBG,MAAM,KAAG,iBAAiB,GAAG,IAAI;wBAlC7B,IAAI;EA4C9B;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE3E,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA+D3C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,MAAM,CAY5E"}
1
+ {"version":3,"file":"notify-act.d.ts","sourceRoot":"","sources":["../src/notify-act.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,aAAa,EACd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAY,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,KAAK,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACzF,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtG,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,cAAc,CAAC;IACtB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,wBAAgB,uBAAuB;wBAW1B,uBAAuB,EAAE,UAC1B,MAAM,WACL,MAAM,KACd,aAAa,EAAE;kBAuBG,MAAM,KAAG,iBAAiB,GAAG,IAAI;wBAlC7B,IAAI;EA4C9B;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE3E,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAkE3C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,MAAM,CAY5E"}
@@ -101,7 +101,10 @@ export async function executeNotifyAct(row, ctx) {
101
101
  ctx.store.appendPeer(peer);
102
102
  ctx.log(`NOTIFY-ACT peer -> ${peer.targetLabel} :: ${msg.slice(0, 80)}`);
103
103
  await ctx.onPeerEnqueued(peer);
104
- return { ok: true, summary: `Queued peer to ${peer.targetLabel}.` };
104
+ return {
105
+ ok: true,
106
+ summary: `Queued peer to ${peer.targetLabel} (${target}): ${msg.slice(0, 120)}`,
107
+ };
105
108
  }
106
109
  default:
107
110
  return { ok: false, summary: `Unknown action type.` };
@@ -1 +1 @@
1
- {"version":3,"file":"notify-act.js","sourceRoot":"","sources":["../src/notify-act.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notify-act.js","sourceRoot":"","sources":["../src/notify-act.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { LoadedProfile, ProviderRegistry } from "@seat-mesh/core";
2
+ import type { ToMasterRow } from "../store/create-queue-store.js";
3
+ import type { QueueStore } from "../store/create-queue-store.js";
4
+ import { type PaneOpsDrainCtx } from "../inbox/pane-ops-drain.js";
5
+ export interface MeshOrchestratorCtx {
6
+ loaded: LoadedProfile;
7
+ registry: ProviderRegistry;
8
+ store: QueueStore;
9
+ session: string;
10
+ baseWindow: string;
11
+ workersWindow: string;
12
+ minisWindow: string;
13
+ log: (line: string) => void;
14
+ ocLimitedPaneIds: Set<string>;
15
+ proxyDownActive?: boolean;
16
+ paneOps?: PaneOpsDrainCtx;
17
+ }
18
+ export interface DrainTickResult {
19
+ attempted: number;
20
+ delivered: number;
21
+ held: number;
22
+ }
23
+ /** ACK-class worker mail -> secretary first (harness parity); substance -> manager. */
24
+ export declare function isAckClassInbox(row: ToMasterRow): boolean;
25
+ /** Harness parity: secretary ACK lane + manager substance lane each poll tick. */
26
+ export declare function drainInboxOnce(ctx: MeshOrchestratorCtx): DrainTickResult;
27
+ export declare function drainPeerOnce(ctx: MeshOrchestratorCtx): DrainTickResult;
28
+ export declare function fireDueCheckbacks(ctx: MeshOrchestratorCtx): void;
29
+ export declare function orchestratorDrainTick(ctx: MeshOrchestratorCtx): DrainTickResult;
30
+ /** Yield between heavy steps so daemon /health can answer during drain. */
31
+ export declare function orchestratorDrainTickAsync(ctx: MeshOrchestratorCtx): Promise<DrainTickResult>;
32
+ //# sourceMappingURL=mesh-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/mesh-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAqCvE,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAehF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAyBpF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAwCD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAGzD;AAiDD,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,GAAG,EAAE,mBAAmB,GAAG,eAAe,CAQxE;AAkBD,wBAAgB,aAAa,CAAC,GAAG,EAAE,mBAAmB,GAAG,eAAe,CAyJvE;AAkFD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAwRhE;AAMD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,mBAAmB,GAAG,eAAe,CAwB/E;AAED,2EAA2E;AAC3E,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CA4BnG"}