@seat-mesh/core 1.0.2 → 1.0.4

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 (133) hide show
  1. package/dist/ack/ack-algo.d.ts +84 -0
  2. package/dist/ack/ack-algo.d.ts.map +1 -0
  3. package/dist/ack/ack-algo.js +155 -0
  4. package/dist/ack/ack-algo.js.map +1 -0
  5. package/dist/ack/ack-algo.test.d.ts +2 -0
  6. package/dist/ack/ack-algo.test.d.ts.map +1 -0
  7. package/dist/ack/ack-algo.test.js +164 -0
  8. package/dist/ack/ack-algo.test.js.map +1 -0
  9. package/dist/ack/ack-copy.d.ts +27 -0
  10. package/dist/ack/ack-copy.d.ts.map +1 -0
  11. package/dist/ack/ack-copy.js +86 -0
  12. package/dist/ack/ack-copy.js.map +1 -0
  13. package/dist/ack/index.d.ts +4 -0
  14. package/dist/ack/index.d.ts.map +1 -0
  15. package/dist/ack/index.js +4 -0
  16. package/dist/ack/index.js.map +1 -0
  17. package/dist/ack/types.d.ts +40 -0
  18. package/dist/ack/types.d.ts.map +1 -0
  19. package/dist/ack/types.js +2 -0
  20. package/dist/ack/types.js.map +1 -0
  21. package/dist/chatfile/slot.js +1 -1
  22. package/dist/chatfile/slot.js.map +1 -1
  23. package/dist/chatroom/checkback-hint.d.ts +22 -4
  24. package/dist/chatroom/checkback-hint.d.ts.map +1 -1
  25. package/dist/chatroom/checkback-hint.js +40 -12
  26. package/dist/chatroom/checkback-hint.js.map +1 -1
  27. package/dist/chatroom/checkback-hint.test.js +4 -4
  28. package/dist/chatroom/checkback-hint.test.js.map +1 -1
  29. package/dist/chatroom/eod.d.ts +17 -0
  30. package/dist/chatroom/eod.d.ts.map +1 -0
  31. package/dist/chatroom/eod.js +32 -0
  32. package/dist/chatroom/eod.js.map +1 -0
  33. package/dist/chatroom/eod.test.d.ts +2 -0
  34. package/dist/chatroom/eod.test.d.ts.map +1 -0
  35. package/dist/chatroom/eod.test.js +24 -0
  36. package/dist/chatroom/eod.test.js.map +1 -0
  37. package/dist/chatroom/inbox-client.d.ts +12 -1
  38. package/dist/chatroom/inbox-client.d.ts.map +1 -1
  39. package/dist/chatroom/inbox-client.js +59 -3
  40. package/dist/chatroom/inbox-client.js.map +1 -1
  41. package/dist/chatroom/index.d.ts +3 -0
  42. package/dist/chatroom/index.d.ts.map +1 -1
  43. package/dist/chatroom/index.js +3 -0
  44. package/dist/chatroom/index.js.map +1 -1
  45. package/dist/chatroom/mdview-publish.d.ts +40 -0
  46. package/dist/chatroom/mdview-publish.d.ts.map +1 -0
  47. package/dist/chatroom/mdview-publish.js +109 -0
  48. package/dist/chatroom/mdview-publish.js.map +1 -0
  49. package/dist/chatroom/mdview-publish.test.d.ts +2 -0
  50. package/dist/chatroom/mdview-publish.test.d.ts.map +1 -0
  51. package/dist/chatroom/mdview-publish.test.js +37 -0
  52. package/dist/chatroom/mdview-publish.test.js.map +1 -0
  53. package/dist/chatroom/notify-act-client.d.ts +24 -6
  54. package/dist/chatroom/notify-act-client.d.ts.map +1 -1
  55. package/dist/chatroom/notify-act-client.js +83 -14
  56. package/dist/chatroom/notify-act-client.js.map +1 -1
  57. package/dist/chatroom/notify-act-client.test.js +32 -14
  58. package/dist/chatroom/notify-act-client.test.js.map +1 -1
  59. package/dist/chatroom/notify-act.d.ts +13 -0
  60. package/dist/chatroom/notify-act.d.ts.map +1 -1
  61. package/dist/chatroom/room.d.ts.map +1 -1
  62. package/dist/chatroom/room.js +7 -1
  63. package/dist/chatroom/room.js.map +1 -1
  64. package/dist/chatroom/room.test.js +15 -6
  65. package/dist/chatroom/room.test.js.map +1 -1
  66. package/dist/chatroom/target-client.d.ts +60 -0
  67. package/dist/chatroom/target-client.d.ts.map +1 -0
  68. package/dist/chatroom/target-client.js +124 -0
  69. package/dist/chatroom/target-client.js.map +1 -0
  70. package/dist/comms/envelope.d.ts +2 -2
  71. package/dist/composer/claude-idle.d.ts +5 -0
  72. package/dist/composer/claude-idle.d.ts.map +1 -1
  73. package/dist/composer/claude-idle.js +17 -3
  74. package/dist/composer/claude-idle.js.map +1 -1
  75. package/dist/index.d.ts +3 -0
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +3 -0
  78. package/dist/index.js.map +1 -1
  79. package/dist/messages/cli-hints.d.ts +29 -5
  80. package/dist/messages/cli-hints.d.ts.map +1 -1
  81. package/dist/messages/cli-hints.js +58 -8
  82. package/dist/messages/cli-hints.js.map +1 -1
  83. package/dist/messages/cli-hints.test.d.ts +2 -0
  84. package/dist/messages/cli-hints.test.d.ts.map +1 -0
  85. package/dist/messages/cli-hints.test.js +20 -0
  86. package/dist/messages/cli-hints.test.js.map +1 -0
  87. package/dist/messages/mesh-inbox-intent.d.ts +3 -1
  88. package/dist/messages/mesh-inbox-intent.d.ts.map +1 -1
  89. package/dist/messages/mesh-inbox-intent.js +5 -0
  90. package/dist/messages/mesh-inbox-intent.js.map +1 -1
  91. package/dist/messages/mesh-inject-text.d.ts +10 -0
  92. package/dist/messages/mesh-inject-text.d.ts.map +1 -0
  93. package/dist/messages/mesh-inject-text.js +45 -0
  94. package/dist/messages/mesh-inject-text.js.map +1 -0
  95. package/dist/messages/peer-bulk.d.ts +28 -0
  96. package/dist/messages/peer-bulk.d.ts.map +1 -0
  97. package/dist/messages/peer-bulk.js +59 -0
  98. package/dist/messages/peer-bulk.js.map +1 -0
  99. package/dist/messages/peer-bulk.test.d.ts +2 -0
  100. package/dist/messages/peer-bulk.test.d.ts.map +1 -0
  101. package/dist/messages/peer-bulk.test.js +30 -0
  102. package/dist/messages/peer-bulk.test.js.map +1 -0
  103. package/dist/paths/paths-manifest.d.ts.map +1 -1
  104. package/dist/paths/paths-manifest.js +14 -2
  105. package/dist/paths/paths-manifest.js.map +1 -1
  106. package/dist/paths/paths-manifest.test.js +10 -0
  107. package/dist/paths/paths-manifest.test.js.map +1 -1
  108. package/dist/paths/runtime-paths.d.ts +2 -0
  109. package/dist/paths/runtime-paths.d.ts.map +1 -1
  110. package/dist/paths/runtime-paths.js +2 -0
  111. package/dist/paths/runtime-paths.js.map +1 -1
  112. package/dist/profile/profile.d.ts +2 -0
  113. package/dist/profile/profile.d.ts.map +1 -1
  114. package/dist/schema/agents.d.ts +75 -75
  115. package/dist/schema/layout.d.ts +5 -5
  116. package/dist/schema/profile.d.ts +33 -9
  117. package/dist/schema/profile.d.ts.map +1 -1
  118. package/dist/schema/profile.js +4 -0
  119. package/dist/schema/profile.js.map +1 -1
  120. package/dist/schema/seat-kind.d.ts +1 -1
  121. package/dist/schema/seat-kind.d.ts.map +1 -1
  122. package/dist/schema/seat-kind.js +5 -3
  123. package/dist/schema/seat-kind.js.map +1 -1
  124. package/dist/schema/seat-kind.test.js +2 -0
  125. package/dist/schema/seat-kind.test.js.map +1 -1
  126. package/dist/slot/guards.d.ts.map +1 -1
  127. package/dist/slot/guards.js +13 -0
  128. package/dist/slot/guards.js.map +1 -1
  129. package/dist/slot/types.d.ts +1 -1
  130. package/dist/slot/types.d.ts.map +1 -1
  131. package/dist/slot/types.js +1 -0
  132. package/dist/slot/types.js.map +1 -1
  133. package/package.json +1 -1
@@ -0,0 +1,109 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ const MDVIEW_PUBLISH = "https://mdview.io/api/public/publish";
4
+ const MIME = {
5
+ ".png": "image/png",
6
+ ".jpg": "image/jpeg",
7
+ ".jpeg": "image/jpeg",
8
+ ".gif": "image/gif",
9
+ ".webp": "image/webp",
10
+ ".svg": "image/svg+xml",
11
+ };
12
+ /** Max bytes per embedded image (data URI). */
13
+ export const MDVIEW_IMAGE_MAX_BYTES = 1_500_000;
14
+ export function mimeForImagePath(filePath) {
15
+ return MIME[path.extname(filePath).toLowerCase()] ?? null;
16
+ }
17
+ /**
18
+ * Embed local images as markdown data-URI figures (mdview renders them).
19
+ * Skips missing / oversized / unknown types with a note line.
20
+ */
21
+ export function appendImagesToMarkdown(markdown, imagePaths, opts = {}) {
22
+ const max = opts.maxBytes ?? MDVIEW_IMAGE_MAX_BYTES;
23
+ const ws = opts.workspace ?? process.cwd();
24
+ const embedded = [];
25
+ const skipped = [];
26
+ const blocks = [];
27
+ for (const raw of imagePaths) {
28
+ const abs = path.isAbsolute(raw) ? raw : path.resolve(ws, raw);
29
+ const mime = mimeForImagePath(abs);
30
+ if (!mime) {
31
+ skipped.push({ path: raw, reason: "unsupported image type" });
32
+ continue;
33
+ }
34
+ if (!fs.existsSync(abs) || !fs.statSync(abs).isFile()) {
35
+ skipped.push({ path: raw, reason: "file not found" });
36
+ continue;
37
+ }
38
+ const buf = fs.readFileSync(abs);
39
+ if (buf.length > max) {
40
+ skipped.push({ path: raw, reason: `too large (>${max} bytes)` });
41
+ continue;
42
+ }
43
+ const b64 = buf.toString("base64");
44
+ const alt = path.basename(abs);
45
+ blocks.push(`![${alt}](data:${mime};base64,${b64})`);
46
+ embedded.push(abs);
47
+ }
48
+ let content = markdown.trimEnd();
49
+ if (blocks.length) {
50
+ content += `\n\n## Images\n\n${blocks.join("\n\n")}\n`;
51
+ }
52
+ if (skipped.length) {
53
+ content += `\n\n<!-- skipped images: ${skipped.map((s) => `${s.path} (${s.reason})`).join("; ")} -->\n`;
54
+ }
55
+ return { content, embedded, skipped };
56
+ }
57
+ /** Anonymous mdview publish — no token, 1–30 day expiry. */
58
+ export async function publishMdviewPublic(input) {
59
+ const title = input.title.trim() || "seatmesh";
60
+ const content = input.content;
61
+ if (!content.trim())
62
+ return { ok: false, error: "empty markdown" };
63
+ const days = Math.min(30, Math.max(1, Number(input.expiresInDays ?? 7) || 7));
64
+ try {
65
+ const res = await fetch(MDVIEW_PUBLISH, {
66
+ method: "POST",
67
+ headers: { "Content-Type": "application/json" },
68
+ body: JSON.stringify({ title, content, expiresInDays: days }),
69
+ signal: AbortSignal.timeout(60_000),
70
+ });
71
+ const text = await res.text();
72
+ let json = {};
73
+ try {
74
+ json = text ? JSON.parse(text) : {};
75
+ }
76
+ catch {
77
+ return { ok: false, error: `mdview bad JSON (${res.status})` };
78
+ }
79
+ if (!res.ok) {
80
+ return {
81
+ ok: false,
82
+ error: String(json.error ?? json.message ?? `mdview HTTP ${res.status}`),
83
+ };
84
+ }
85
+ const viewerUrl = String(json.viewerUrl ?? json.shareUrl ?? "").trim();
86
+ if (!viewerUrl)
87
+ return { ok: false, error: "mdview response missing viewerUrl" };
88
+ return {
89
+ ok: true,
90
+ title,
91
+ viewerUrl,
92
+ shareUrl: String(json.shareUrl ?? viewerUrl),
93
+ markdownUrl: String(json.markdownUrl ?? `${viewerUrl}.md`),
94
+ shortId: String(json.shortId ?? ""),
95
+ expiresAt: json.expiresAt != null ? String(json.expiresAt) : undefined,
96
+ };
97
+ }
98
+ catch (e) {
99
+ return { ok: false, error: e.message || "mdview publish failed" };
100
+ }
101
+ }
102
+ export function readMarkdownFile(workspace, file) {
103
+ const abs = path.isAbsolute(file) ? file : path.resolve(workspace, file);
104
+ if (!fs.existsSync(abs) || !fs.statSync(abs).isFile()) {
105
+ throw new Error(`markdown file not found: ${file}`);
106
+ }
107
+ return fs.readFileSync(abs, "utf8");
108
+ }
109
+ //# sourceMappingURL=mdview-publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mdview-publish.js","sourceRoot":"","sources":["../../src/chatroom/mdview-publish.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mdview-publish.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mdview-publish.test.d.ts","sourceRoot":"","sources":["../../src/chatroom/mdview-publish.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import fs from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { afterEach, describe, expect, it } from "vitest";
5
+ import { appendImagesToMarkdown, mimeForImagePath } from "./mdview-publish.js";
6
+ describe("mimeForImagePath", () => {
7
+ it("maps common image extensions", () => {
8
+ expect(mimeForImagePath("a.PNG")).toBe("image/png");
9
+ expect(mimeForImagePath("x.jpg")).toBe("image/jpeg");
10
+ expect(mimeForImagePath("nope.txt")).toBeNull();
11
+ });
12
+ });
13
+ describe("appendImagesToMarkdown", () => {
14
+ const tmp = fs.mkdtempSync(path.join(os.tmpdir(), "sm-mdview-"));
15
+ afterEach(() => {
16
+ for (const f of fs.readdirSync(tmp))
17
+ fs.unlinkSync(path.join(tmp, f));
18
+ });
19
+ it("embeds small png as data URI", () => {
20
+ // 1x1 PNG
21
+ const png = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==", "base64");
22
+ const img = path.join(tmp, "dot.png");
23
+ fs.writeFileSync(img, png);
24
+ const { content, embedded, skipped } = appendImagesToMarkdown("# Hi", [img], {
25
+ workspace: tmp,
26
+ });
27
+ expect(embedded).toHaveLength(1);
28
+ expect(skipped).toHaveLength(0);
29
+ expect(content).toContain("data:image/png;base64,");
30
+ expect(content).toContain("## Images");
31
+ });
32
+ it("skips missing files", () => {
33
+ const { skipped } = appendImagesToMarkdown("# Hi", ["missing.png"], { workspace: tmp });
34
+ expect(skipped[0]?.reason).toMatch(/not found/);
35
+ });
36
+ });
37
+ //# sourceMappingURL=mdview-publish.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mdview-publish.test.js","sourceRoot":"","sources":["../../src/chatroom/mdview-publish.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IACjE,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;YAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,UAAU;QACV,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CACrB,kGAAkG,EAClG,QAAQ,CACT,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACtC,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE;YAC3E,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QACxF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,13 +1,31 @@
1
- import type { NotifyActLink, NotifyActRegisterAction } from "./notify-act.js";
1
+ import type { NotifyActCard, NotifyActLink, NotifyActRegisterAction, NotifyActRegisterCardInput } from "./notify-act.js";
2
2
  export declare function inboxBaseFromPort(port: number): string;
3
- export declare function registerNotifyActLinks(inboxBase: string, actions: NotifyActRegisterAction[], ttlSec?: number): Promise<NotifyActLink[]>;
3
+ export interface RegisterNotifyActResult {
4
+ links: NotifyActLink[];
5
+ card?: NotifyActCard;
6
+ infoUrl?: string;
7
+ }
8
+ /** Trim + strip trailing junk so toast/copy links stay clickable. */
9
+ export declare function cleanUrl(url?: string | null): string | undefined;
10
+ export declare function registerNotifyActLinks(inboxBase: string, actions: NotifyActRegisterAction[], ttlSec?: number, card?: NotifyActRegisterCardInput): Promise<RegisterNotifyActResult>;
4
11
  export declare function formatNotifyActLinksHtml(links: NotifyActLink[]): string;
5
- /** Clickable Yes/No (or other) anchors for the toast body — no duplicate plain URL lines. */
6
- export declare function formatNotifyActLinksForToast(links: NotifyActLink[]): string;
7
- /** Standard Yes / No link pair for notifications (not notify-send -A buttons). */
12
+ /**
13
+ * Toast body: short blurb + Info · Yes · No as HTML anchors (clickable labels).
14
+ * Never dump raw URLs or instructional walls of text.
15
+ */
16
+ export declare function formatYesNoToastBody(body: string, infoUrl?: string, yesUrl?: string, noUrl?: string): string;
17
+ /**
18
+ * Plain URL lines when needed — always cleanUrl.
19
+ */
20
+ export declare function formatNotifyActLinksForToast(links: NotifyActLink[], infoUrl?: string): string;
21
+ /** Build peer inject text for an operator Yes/No click. */
22
+ export declare function formatOperatorDecideMsg(answer: "YES" | "NO", title: string, custom?: string): string;
23
+ /** Standard Yes / No peer actions — both target the same seat (the requester). */
8
24
  export declare function yesNoNotifyActActions(input: {
9
- yesMsg: string;
25
+ title: string;
10
26
  yesTarget?: string;
27
+ yesMsg?: string;
28
+ noMsg?: string;
11
29
  noLabel?: string;
12
30
  yesLabel?: string;
13
31
  }): NotifyActRegisterAction[];
@@ -1 +1 @@
1
- {"version":3,"file":"notify-act-client.d.ts","sourceRoot":"","sources":["../../src/chatroom/notify-act-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE9E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,uBAAuB,EAAE,EAClC,MAAM,SAAO,GACZ,OAAO,CAAC,aAAa,EAAE,CAAC,CAgB1B;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,CAKvE;AAED,6FAA6F;AAC7F,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,CAE3E;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,uBAAuB,EAAE,CAkB5B"}
1
+ {"version":3,"file":"notify-act-client.d.ts","sourceRoot":"","sources":["../../src/chatroom/notify-act-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,iBAAiB,CAAC;AAEzB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qEAAqE;AACrE,wBAAgB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAIhE;AAED,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,uBAAuB,EAAE,EAClC,MAAM,SAAO,EACb,IAAI,CAAC,EAAE,0BAA0B,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAmClC;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,CAKvE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAWR;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,aAAa,EAAE,EACtB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CASR;AAED,2DAA2D;AAC3D,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,KAAK,GAAG,IAAI,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAUR;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,uBAAuB,EAAE,CAuB5B"}
@@ -1,24 +1,45 @@
1
1
  export function inboxBaseFromPort(port) {
2
2
  return `http://127.0.0.1:${port}`;
3
3
  }
4
- export async function registerNotifyActLinks(inboxBase, actions, ttlSec = 3600) {
5
- if (!actions.length)
6
- return [];
4
+ /** Trim + strip trailing junk so toast/copy links stay clickable. */
5
+ export function cleanUrl(url) {
6
+ if (url == null)
7
+ return undefined;
8
+ const u = String(url).trim().replace(/[>\]).,;]+$/g, "");
9
+ return u || undefined;
10
+ }
11
+ export async function registerNotifyActLinks(inboxBase, actions, ttlSec = 3600, card) {
12
+ if (!actions.length && !card)
13
+ return { links: [] };
7
14
  const base = inboxBase.replace(/\/$/, "");
8
15
  try {
9
16
  const res = await fetch(`${base}/act/register`, {
10
17
  method: "POST",
11
18
  headers: { "Content-Type": "application/json" },
12
- body: JSON.stringify({ actions, ttlSec }),
19
+ body: JSON.stringify({
20
+ actions,
21
+ ttlSec,
22
+ ...(card ? { card: { title: card.title, body: card.body } } : {}),
23
+ }),
13
24
  signal: AbortSignal.timeout(5000),
14
25
  });
15
26
  if (!res.ok)
16
- return [];
27
+ return { links: [] };
17
28
  const json = (await res.json());
18
- return json.links ?? [];
29
+ const infoUrl = cleanUrl(json.infoUrl ?? json.card?.infoUrl);
30
+ return {
31
+ links: (json.links ?? []).map((l) => ({
32
+ ...l,
33
+ url: cleanUrl(l.url) || l.url,
34
+ })),
35
+ card: json.card
36
+ ? { ...json.card, infoUrl: cleanUrl(json.card.infoUrl) || json.card.infoUrl }
37
+ : undefined,
38
+ infoUrl,
39
+ };
19
40
  }
20
41
  catch {
21
- return [];
42
+ return { links: [] };
22
43
  }
23
44
  }
24
45
  export function formatNotifyActLinksHtml(links) {
@@ -28,25 +49,73 @@ export function formatNotifyActLinksHtml(links) {
28
49
  .map((l) => `<a href="${escapeHtmlAttr(l.url)}">${escapeHtmlText(l.label)}</a>`)
29
50
  .join(" · ");
30
51
  }
31
- /** Clickable Yes/No (or other) anchors for the toast body — no duplicate plain URL lines. */
32
- export function formatNotifyActLinksForToast(links) {
33
- return formatNotifyActLinksHtml(links);
52
+ /**
53
+ * Toast body: short blurb + Info · Yes · No as HTML anchors (clickable labels).
54
+ * Never dump raw URLs or instructional walls of text.
55
+ */
56
+ export function formatYesNoToastBody(body, infoUrl, yesUrl, noUrl) {
57
+ const text = body.trim() || "Choose Yes or No.";
58
+ const parts = [];
59
+ const info = cleanUrl(infoUrl);
60
+ const yes = cleanUrl(yesUrl);
61
+ const no = cleanUrl(noUrl);
62
+ if (info)
63
+ parts.push(`<a href="${escapeHtmlAttr(info)}">Info</a>`);
64
+ if (yes)
65
+ parts.push(`<a href="${escapeHtmlAttr(yes)}">Yes</a>`);
66
+ if (no)
67
+ parts.push(`<a href="${escapeHtmlAttr(no)}">No</a>`);
68
+ if (!parts.length)
69
+ return text;
70
+ return `${text}\n\n${parts.join(" · ")}`;
71
+ }
72
+ /**
73
+ * Plain URL lines when needed — always cleanUrl.
74
+ */
75
+ export function formatNotifyActLinksForToast(links, infoUrl) {
76
+ const lines = [];
77
+ const info = cleanUrl(infoUrl);
78
+ if (info)
79
+ lines.push(`Info: ${info}`);
80
+ for (const l of links) {
81
+ const u = cleanUrl(l.url);
82
+ if (u)
83
+ lines.push(`${l.label}: ${u}`);
84
+ }
85
+ return lines.join("\n");
86
+ }
87
+ /** Build peer inject text for an operator Yes/No click. */
88
+ export function formatOperatorDecideMsg(answer, title, custom) {
89
+ const t = title.trim() || "decision";
90
+ const customTrim = custom?.trim();
91
+ if (customTrim && !/^Dan notify reply:/i.test(customTrim) && !/^\[operator-decide\]/i.test(customTrim)) {
92
+ return `PRIORITY [operator-decide] ${answer} — ${t}\n${customTrim}`;
93
+ }
94
+ if (customTrim && /^\[operator-decide\]/i.test(customTrim)) {
95
+ return /\bPRIORITY\b/i.test(customTrim) ? customTrim : `PRIORITY ${customTrim}`;
96
+ }
97
+ return `PRIORITY [operator-decide] ${answer} — ${t}`;
34
98
  }
35
- /** Standard Yes / No link pair for notifications (not notify-send -A buttons). */
99
+ /** Standard Yes / No peer actions both target the same seat (the requester). */
36
100
  export function yesNoNotifyActActions(input) {
37
- const target = input.yesTarget ?? "secretary";
101
+ const target = (input.yesTarget ?? "manager").trim() || "manager";
102
+ const title = input.title.trim() || "decision";
38
103
  return [
39
104
  {
40
105
  label: input.yesLabel ?? "Yes",
41
106
  type: "peer",
42
- params: { target, msg: input.yesMsg, kind: "prompt" },
107
+ params: {
108
+ target,
109
+ msg: formatOperatorDecideMsg("YES", title, input.yesMsg),
110
+ kind: "prompt",
111
+ },
43
112
  },
44
113
  {
45
114
  label: input.noLabel ?? "No",
46
115
  type: "peer",
47
116
  params: {
48
117
  target,
49
- msg: "Dan notify reply: NO",
118
+ msg: formatOperatorDecideMsg("NO", title, input.noMsg),
50
119
  kind: "prompt",
51
120
  },
52
121
  },
@@ -1 +1 @@
1
- {"version":3,"file":"notify-act-client.js","sourceRoot":"","sources":["../../src/chatroom/notify-act-client.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,oBAAoB,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAiB,EACjB,OAAkC,EAClC,MAAM,GAAG,IAAI;IAEb,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,eAAe,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YACzC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA8C,CAAC;QAC7E,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAsB;IAC7D,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC7B,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;SAC/E,IAAI,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,4BAA4B,CAAC,KAAsB;IACjE,OAAO,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,qBAAqB,CAAC,KAKrC;IACC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,IAAI,WAAW,CAAC;IAC9C,OAAO;QACL;YACE,KAAK,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;YAC9B,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;SACtD;QACD;YACE,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;YAC5B,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE;gBACN,MAAM;gBACN,GAAG,EAAE,sBAAsB;gBAC3B,IAAI,EAAE,QAAQ;aACf;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,CAAS;IAC/B,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,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"notify-act-client.js","sourceRoot":"","sources":["../../src/chatroom/notify-act-client.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,45 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { formatNotifyActLinksForToast, yesNoNotifyActActions, } from "./notify-act-client.js";
2
+ import { cleanUrl, formatNotifyActLinksForToast, formatOperatorDecideMsg, formatYesNoToastBody, yesNoNotifyActActions, } from "./notify-act-client.js";
3
+ describe("cleanUrl", () => {
4
+ it("trims trailing spaces and junk", () => {
5
+ expect(cleanUrl(" http://127.0.0.1:31680/act/card/abc ")).toBe("http://127.0.0.1:31680/act/card/abc");
6
+ expect(cleanUrl("http://x/y).")).toBe("http://x/y");
7
+ });
8
+ });
9
+ describe("formatYesNoToastBody", () => {
10
+ it("renders Info · Yes · No HTML anchors (no raw URL lines)", () => {
11
+ const out = formatYesNoToastBody("Ship it?", "http://127.0.0.1:31680/act/card/abc ", "http://127.0.0.1:31680/act/v1/yes ", "http://127.0.0.1:31680/act/v1/no");
12
+ expect(out).toContain("Ship it?");
13
+ expect(out).toContain('<a href="http://127.0.0.1:31680/act/card/abc">Info</a>');
14
+ expect(out).toContain('<a href="http://127.0.0.1:31680/act/v1/yes">Yes</a>');
15
+ expect(out).toContain('<a href="http://127.0.0.1:31680/act/v1/no">No</a>');
16
+ expect(out).toContain(" · ");
17
+ expect(out).not.toContain("Info: http");
18
+ expect(out).not.toContain("tap Info");
19
+ });
20
+ });
3
21
  describe("formatNotifyActLinksForToast", () => {
4
- it("returns HTML anchors only (no duplicate plain URL lines)", () => {
22
+ it("returns cleaned plain URL lines", () => {
5
23
  const links = [
6
- { label: "Yes", url: "http://127.0.0.1:31670/act/v1/a", token: "a" },
24
+ { label: "Yes", url: "http://127.0.0.1:31670/act/v1/a ", token: "a" },
7
25
  { label: "No", url: "http://127.0.0.1:31670/act/v1/b", token: "b" },
8
26
  ];
9
27
  const out = formatNotifyActLinksForToast(links);
10
- expect(out).toContain('<a href="http://127.0.0.1:31670/act/v1/a">Yes</a>');
11
- expect(out).toContain('<a href="http://127.0.0.1:31670/act/v1/b">No</a>');
12
- expect(out).not.toMatch(/Yes:\s*http/);
13
- expect(out).not.toContain("\n\n");
28
+ expect(out).toContain("Yes: http://127.0.0.1:31670/act/v1/a");
29
+ expect(out).not.toContain("a ");
14
30
  });
15
31
  });
16
32
  describe("yesNoNotifyActActions", () => {
17
- it("defaults Yes and No peer to secretary", () => {
18
- const actions = yesNoNotifyActActions({ yesMsg: "Dan notify reply: YES" });
33
+ it("defaults Yes and No peer to manager with operator-decide msgs", () => {
34
+ const actions = yesNoNotifyActActions({ title: "Ship CTA?" });
19
35
  expect(actions).toHaveLength(2);
20
- expect(actions[0]?.type).toBe("peer");
21
- expect(actions[1]?.type).toBe("peer");
22
- expect(actions[0]?.params.target).toBe("secretary");
23
- expect(actions[1]?.params.target).toBe("secretary");
24
- expect(actions[1]?.params.msg).toBe("Dan notify reply: NO");
36
+ expect(actions[0]?.params.target).toBe("manager");
37
+ expect(String(actions[0]?.params.msg)).toContain("PRIORITY [operator-decide] YES — Ship CTA?");
38
+ });
39
+ });
40
+ describe("formatOperatorDecideMsg", () => {
41
+ it("wraps custom notes under operator-decide with PRIORITY", () => {
42
+ expect(formatOperatorDecideMsg("YES", "T", "ship it")).toBe("PRIORITY [operator-decide] YES — T\nship it");
25
43
  });
26
44
  });
27
45
  //# sourceMappingURL=notify-act-client.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify-act-client.test.js","sourceRoot":"","sources":["../../src/chatroom/notify-act-client.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,KAAK,GAAG;YACZ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,iCAAiC,EAAE,KAAK,EAAE,GAAG,EAAE;YACpE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,iCAAiC,EAAE,KAAK,EAAE,GAAG,EAAE;SACpE,CAAC;QACF,MAAM,GAAG,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,mDAAmD,CAAC,CAAC;QAC3E,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,kDAAkD,CAAC,CAAC;QAC1E,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,OAAO,GAAG,qBAAqB,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC3E,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"notify-act-client.test.js","sourceRoot":"","sources":["../../src/chatroom/notify-act-client.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,QAAQ,EACR,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC,CAAC,IAAI,CAC5D,qCAAqC,CACtC,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,GAAG,GAAG,oBAAoB,CAC9B,UAAU,EACV,sCAAsC,EACtC,oCAAoC,EACpC,kCAAkC,CACnC,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,wDAAwD,CAAC,CAAC;QAChF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,qDAAqD,CAAC,CAAC;QAC7E,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,mDAAmD,CAAC,CAAC;QAC3E,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,KAAK,GAAG;YACZ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,kCAAkC,EAAE,KAAK,EAAE,GAAG,EAAE;YACrE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,iCAAiC,EAAE,KAAK,EAAE,GAAG,EAAE;SACpE,CAAC;QACF,MAAM,GAAG,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,OAAO,GAAG,qBAAqB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CACzD,6CAA6C,CAC9C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -10,4 +10,17 @@ export interface NotifyActLink {
10
10
  url: string;
11
11
  token: string;
12
12
  }
13
+ /** Browser decision card (Info) — title/body + Yes/No act links; not one-shot. */
14
+ export interface NotifyActCard {
15
+ id: string;
16
+ title: string;
17
+ body: string;
18
+ infoUrl: string;
19
+ links: NotifyActLink[];
20
+ expiresAt: number;
21
+ }
22
+ export interface NotifyActRegisterCardInput {
23
+ title: string;
24
+ body: string;
25
+ }
13
26
  //# sourceMappingURL=notify-act.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify-act.d.ts","sourceRoot":"","sources":["../../src/chatroom/notify-act.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,MAAM,CAAC;AAEhF,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"notify-act.d.ts","sourceRoot":"","sources":["../../src/chatroom/notify-act.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,MAAM,CAAC;AAEhF,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../../src/chatroom/room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../../src/chatroom/room.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,4BAA4B,EAAE,MAAM,CAAC;IACrC,yBAAyB,EAAE,MAAM,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAWnE;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAQ7E;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGpF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExD;AAWD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAKpE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAG5E;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,WAAW,CAwB9D;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,WAAW,CAwBtE;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,WAAW,CAgBpF;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE;AAED,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,SAAS,CAAC,CAqDpB;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAM,GAClD,WAAW,CAuBb;AAED,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,MAAM,EACZ,KAAK,SAAK,GACT,OAAO,CAAC,WAAW,EAAE,CAAC,CASxB;AAED,+CAA+C;AAC/C,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,WAAW,EAAE,CAAC,CAMxB;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,MAAM,EAAE,CAQ1E;AAsBD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,MAAM,CAK3F;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAK3D"}
@@ -3,6 +3,7 @@ import path from "node:path";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { resolveFromWorkspace } from "../paths/paths.js";
5
5
  import { resolveHarnessPath } from "../paths/paths-manifest.js";
6
+ import { resolveDaemonPort } from "../paths/runtime-paths.js";
6
7
  import { appendJsonlLine, readJsonlAll, readJsonlTail } from "../jsonl/store.js";
7
8
  import { RoomMessageSchema, RoomProfileSchema, } from "./types.js";
8
9
  import { isGlobalSlug } from "./global.js";
@@ -22,7 +23,12 @@ export function chatRoomConfig(profile) {
22
23
  }
23
24
  export function chatRoomConfigForLoaded(loaded) {
24
25
  const cfg = chatRoomConfig(loaded.profile);
25
- return { ...cfg, rootAbs: resolveHarnessPath(loaded, cfg.root) };
26
+ const port = resolveDaemonPort(loaded.profile, loaded.workspace);
27
+ return {
28
+ ...cfg,
29
+ rootAbs: resolveHarnessPath(loaded, cfg.root),
30
+ inboxBase: `http://127.0.0.1:${port}`,
31
+ };
26
32
  }
27
33
  export function roomDir(workspace, cfg, slug) {
28
34
  const root = cfg.rootAbs ?? resolveFromWorkspace(workspace, cfg.root);
@@ -1 +1 @@
1
- {"version":3,"file":"room.js","sourceRoot":"","sources":["../../src/chatroom/room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room.js","sourceRoot":"","sources":["../../src/chatroom/room.ts"],"names":[],"mappings":"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"}