@leemour/cli-messaging 0.92.0 → 0.94.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 (78) hide show
  1. package/dist/background/index.d.ts +1 -1
  2. package/dist/background/index.d.ts.map +1 -1
  3. package/dist/background/index.js +1 -1
  4. package/dist/background/index.js.map +1 -1
  5. package/dist/background/units.d.ts +5 -0
  6. package/dist/background/units.d.ts.map +1 -1
  7. package/dist/background/units.js +13 -2
  8. package/dist/background/units.js.map +1 -1
  9. package/dist/cli/bot/command.js +6 -6
  10. package/dist/cli/bot/command.js.map +1 -1
  11. package/dist/cli/bot/context.d.ts +3 -3
  12. package/dist/cli/bot/context.d.ts.map +1 -1
  13. package/dist/cli/bot/context.js +4 -4
  14. package/dist/cli/bot/context.js.map +1 -1
  15. package/dist/cli/bot/port.d.ts +10 -2
  16. package/dist/cli/bot/port.d.ts.map +1 -1
  17. package/dist/cli/index.d.ts +1 -1
  18. package/dist/cli/index.d.ts.map +1 -1
  19. package/dist/cli/messenger/context.d.ts +2 -0
  20. package/dist/cli/messenger/context.d.ts.map +1 -1
  21. package/dist/cli/messenger/context.js.map +1 -1
  22. package/dist/cli/messenger/conversations-command.d.ts.map +1 -1
  23. package/dist/cli/messenger/conversations-command.js +43 -0
  24. package/dist/cli/messenger/conversations-command.js.map +1 -1
  25. package/dist/cli/messenger/patience.d.ts.map +1 -1
  26. package/dist/cli/messenger/patience.js +3 -1
  27. package/dist/cli/messenger/patience.js.map +1 -1
  28. package/dist/cli/messenger/watch-command.d.ts.map +1 -1
  29. package/dist/cli/messenger/watch-command.js +3 -1
  30. package/dist/cli/messenger/watch-command.js.map +1 -1
  31. package/dist/cli/program.d.ts.map +1 -1
  32. package/dist/cli/program.js +21 -2
  33. package/dist/cli/program.js.map +1 -1
  34. package/dist/cli/settings.d.ts +3 -0
  35. package/dist/cli/settings.d.ts.map +1 -1
  36. package/dist/cli/settings.js +4 -0
  37. package/dist/cli/settings.js.map +1 -1
  38. package/dist/cli/skill-command.d.ts +3 -3
  39. package/dist/cli/skill-command.d.ts.map +1 -1
  40. package/dist/cli/skill-command.js +8 -24
  41. package/dist/cli/skill-command.js.map +1 -1
  42. package/dist/conversations/link.d.ts +7 -2
  43. package/dist/conversations/link.d.ts.map +1 -1
  44. package/dist/conversations/link.js +10 -4
  45. package/dist/conversations/link.js.map +1 -1
  46. package/dist/mcp/instructions.d.ts +3 -1
  47. package/dist/mcp/instructions.d.ts.map +1 -1
  48. package/dist/mcp/instructions.js +2 -1
  49. package/dist/mcp/instructions.js.map +1 -1
  50. package/dist/mcp/server.d.ts.map +1 -1
  51. package/dist/mcp/server.js +7 -0
  52. package/dist/mcp/server.js.map +1 -1
  53. package/dist/parity/audit.d.ts +52 -0
  54. package/dist/parity/audit.d.ts.map +1 -0
  55. package/dist/parity/audit.js +110 -0
  56. package/dist/parity/audit.js.map +1 -0
  57. package/dist/services/conversations.d.ts +21 -1
  58. package/dist/services/conversations.d.ts.map +1 -1
  59. package/dist/services/conversations.js +27 -1
  60. package/dist/services/conversations.js.map +1 -1
  61. package/dist/services/index.d.ts +2 -2
  62. package/dist/services/index.d.ts.map +1 -1
  63. package/dist/services/index.js +1 -1
  64. package/dist/services/index.js.map +1 -1
  65. package/dist/store/sqlite/batches.d.ts +19 -0
  66. package/dist/store/sqlite/batches.d.ts.map +1 -0
  67. package/dist/store/sqlite/batches.js +81 -0
  68. package/dist/store/sqlite/batches.js.map +1 -0
  69. package/dist/store/sqlite/conversations.d.ts +6 -0
  70. package/dist/store/sqlite/conversations.d.ts.map +1 -1
  71. package/dist/store/sqlite/conversations.js +14 -0
  72. package/dist/store/sqlite/conversations.js.map +1 -1
  73. package/dist/store/store.d.ts +46 -0
  74. package/dist/store/store.d.ts.map +1 -1
  75. package/dist/store/store.js +26 -0
  76. package/dist/store/store.js.map +1 -1
  77. package/package.json +4 -4
  78. package/parity.json +19 -24
@@ -0,0 +1,110 @@
1
+ import { longName, parityProblems } from "./manifest.js";
2
+ import { pageProblems } from "./pages.js";
3
+ import { wordingProblems } from "./wording.js";
4
+ export const split = (max, tg) => {
5
+ const inMax = new Set(max);
6
+ const inTg = new Set(tg);
7
+ return {
8
+ both: [...inMax].filter((name) => inTg.has(name)).sort(),
9
+ max: [...inMax].filter((name) => !inTg.has(name)).sort(),
10
+ tg: [...inTg].filter((name) => !inMax.has(name)).sort(),
11
+ };
12
+ };
13
+ /** The pages that answer a user's question: the generated command list and the docs index are not counted. */
14
+ const NOT_PAGES = new Set(["docs/commands.md", "docs/README.md"]);
15
+ const userPages = (side) => Object.keys(side.pages)
16
+ .filter((path) => path.startsWith("docs/") && !NOT_PAGES.has(path))
17
+ .map((path) => path.slice("docs/".length));
18
+ const lineCount = (text = "") => text.split("\n").length - 1;
19
+ const apart = (a, b) => Math.abs(a - b) > 2 && Math.min(a, b) < Math.max(a, b) * 0.75;
20
+ /** `##` and `###` headings outside code blocks — the same in both languages, unlike the number of lines. */
21
+ export const headingCount = (text = "") => {
22
+ let fenced = false;
23
+ let count = 0;
24
+ for (const line of text.split("\n")) {
25
+ if (line.startsWith("```"))
26
+ fenced = !fenced;
27
+ else if (!fenced && /^#{2,3} /.test(line))
28
+ count++;
29
+ }
30
+ return count;
31
+ };
32
+ const documentsRule = (standard) => standard.split(/^## Documents$/m)[1]?.split(/^## /m)[0] ?? "";
33
+ export const pageSplit = (input) => {
34
+ const pages = split(userPages(input.max), userPages(input.tg));
35
+ const rule = documentsRule(input.standard);
36
+ const explained = (name) => rule.includes(`\`${name}\``);
37
+ return { ...pages, explained };
38
+ };
39
+ export const readmeSections = (readme = "") => [...readme.matchAll(/^## (.+)$/gm)].map((match) => match[1] ?? "");
40
+ export const toolNames = (side, cli) => side.tools.map((name) => name.replace(`${cli}_`, ""));
41
+ /** The `--allow-*` options of a CLI's `mcp` command: passing them all makes its server offer every tool. */
42
+ export const allowFlags = (program) => {
43
+ const mcp = program.commands.find((command) => command.path.join(" ") === "mcp");
44
+ return (mcp?.options ?? []).map((option) => longName(option.flags)).filter((name) => name.startsWith("--allow-"));
45
+ };
46
+ export const ciRuns = (side) => ({
47
+ parity: side.ci.includes("cli-messaging-parity"),
48
+ pages: /cli-messaging-parity \S+ --pages/.test(side.ci),
49
+ });
50
+ const mark = (ok) => (ok ? "✅" : "🔴");
51
+ const code = (names) => (names.length === 0 ? "none" : names.map((name) => `\`${name}\``).join(", "));
52
+ /** The measured half of a parity audit, as Markdown: everything a script can say without judging. */
53
+ export const renderAudit = (input) => {
54
+ const { manifest, max, tg } = input;
55
+ const out = [];
56
+ const section = (title) => out.push("", `### ${title}`, "");
57
+ out.push("## Measured from the two CLIs", "", `cli-messaging \`${input.shared.commit}\` (${input.shared.version}) · max-cli \`${max.commit}\` · ` +
58
+ `tg-cli \`${tg.commit}\`. Statuses: ✅ agrees · 🔴 differs · ⚪ one-sided with a stated reason.`);
59
+ section("The checks CI runs");
60
+ const maxProblems = parityProblems(manifest, "max", max.program);
61
+ const tgProblems = parityProblems(manifest, "tg", tg.program);
62
+ const wording = wordingProblems(manifest, max.program, tg.program);
63
+ const pageCheck = (cli, side) => Object.entries(side.pages).flatMap(([name, text]) => pageProblems(text, cli, manifest, side.program).map((found) => `${name}: ${found}`));
64
+ const pagesMax = pageCheck("max", max);
65
+ const pagesTg = pageCheck("tg", tg);
66
+ out.push(`- ${mark(maxProblems.length === 0)} **max against this manifest** — ${maxProblems.length} difference(s) ${code(maxProblems)}`, `- ${mark(tgProblems.length === 0)} **tg against this manifest** — ${tgProblems.length} difference(s) ${code(tgProblems)}`, `- ${mark(wording.length === 0)} **Help sentences of shared options** — ${wording.length} differ ${code(wording)}`, `- ${mark(pagesMax.length === 0)} **max's pages name only real options** — ${code(pagesMax)}`, `- ${mark(pagesTg.length === 0)} **tg's pages name only real options** — ${code(pagesTg)}`);
67
+ for (const [cli, side] of [
68
+ ["max", max],
69
+ ["tg", tg],
70
+ ]) {
71
+ const runs = ciRuns(side);
72
+ out.push(`- ${mark(runs.parity)} **${cli}'s CI runs the parity check**`, `- ${mark(runs.pages)} **${cli}'s CI runs the page check** (STANDARD, Documents rule 4)`);
73
+ }
74
+ section("Shared package pinned");
75
+ for (const name of ["@leemour/cli-messaging", "@leemour/cli-core"]) {
76
+ const latest = name === "@leemour/cli-messaging" ? input.shared.version : undefined;
77
+ const pins = [max.pins[name], tg.pins[name]];
78
+ const same = pins[0] === pins[1] && (latest === undefined || pins[0] === latest);
79
+ out.push(`- ${mark(same)} **${name}** — max ${pins[0] ?? "none"}, tg ${pins[1] ?? "none"}` +
80
+ (latest ? `, main ${latest}` : ""));
81
+ }
82
+ section("MCP tools");
83
+ const tools = split(toolNames(max, "max"), toolNames(tg, "tg"));
84
+ out.push(`- **Both** (${tools.both.length}) — ${code(tools.both)}`, `- **max only** (${tools.max.length}) — ${code(tools.max)}`, `- **tg only** (${tools.tg.length}) — ${code(tools.tg)}`);
85
+ section("User pages");
86
+ const pages = pageSplit(input);
87
+ for (const name of pages.both) {
88
+ const [inMax, inTg] = [max.pages[`docs/${name}`], tg.pages[`docs/${name}`]];
89
+ const headings = [headingCount(inMax), headingCount(inTg)];
90
+ out.push(`- ${mark(!apart(...headings))} \`${name}\` — max ${headings[0]} headings, tg ${headings[1]} ` +
91
+ `(${lineCount(inMax)} and ${lineCount(inTg)} lines)`);
92
+ }
93
+ for (const [cli, names] of [
94
+ ["max", pages.max],
95
+ ["tg", pages.tg],
96
+ ])
97
+ for (const name of names)
98
+ out.push(`- ${pages.explained(name) ? "⚪" : "🔴"} \`${name}\` — ${cli} only; ` +
99
+ (pages.explained(name) ? "STANDARD says why" : "STANDARD gives no reason"));
100
+ out.push("", "A pair is 🔴 when one page has over a quarter, and more than two, fewer `##` and `###` headings. Lines are not compared: Russian runs longer than English.");
101
+ section("README sections");
102
+ const sections = [readmeSections(max.pages["README.md"]), readmeSections(tg.pages["README.md"])];
103
+ out.push(`- ${mark(sections[0].length === sections[1].length)} max ${sections[0].length}, tg ${sections[1].length}`, `- **max:** ${sections[0].join(" · ")}`, `- **tg:** ${sections[1].join(" · ")}`);
104
+ section("Release and QA tooling");
105
+ const scripts = split(max.scripts, tg.scripts);
106
+ const skills = split(max.skills, tg.skills);
107
+ out.push(`- **pnpm scripts in max only** — ${code(scripts.max)}`, `- **pnpm scripts in tg only** — ${code(scripts.tg)}`, `- **Skills in both** — ${code(skills.both)}; max only ${code(skills.max)}; tg only ${code(skills.tg)}`);
108
+ return out.join("\n");
109
+ };
110
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/parity/audit.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAiB,cAAc,EAAE,MAAM,eAAe,CAAA;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAiC9C,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAqB,EAAE,EAAoB,EAAS,EAAE;IAC1E,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAC1B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAA;IACxB,OAAO;QACL,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;QACxD,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;QACxD,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;KACxD,CAAA;AACH,CAAC,CAAA;AAED,8GAA8G;AAC9G,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,CAAA;AACjE,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,EAAE,CAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;KACpB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KAClE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AAC9C,MAAM,SAAS,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AAE5D,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;AAErG,4GAA4G;AAC5G,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE;IACxC,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,MAAM,GAAG,CAAC,MAAM,CAAA;aACvC,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,KAAK,EAAE,CAAA;IACpD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AAEzG,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAiB,EAAE,EAAE;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9D,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC1C,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,CAAA;IAChE,OAAO,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,CAAA;AAChC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAEjH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;AAE9G,4GAA4G;AAC5G,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAqB,EAAY,EAAE;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAoB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAA;IAC7F,OAAO,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;AACnH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAChD,KAAK,EAAE,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;CACxD,CAAC,CAAA;AAEF,MAAM,IAAI,GAAG,CAAC,EAAW,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAC/C,MAAM,IAAI,GAAG,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAE/G,qGAAqG;AACrG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAU,EAAE;IACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAA;IACnC,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IAEnE,GAAG,CAAC,IAAI,CACN,+BAA+B,EAC/B,EAAE,EACF,mBAAmB,KAAK,CAAC,MAAM,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,iBAAiB,GAAG,CAAC,MAAM,OAAO;QACjG,YAAY,EAAE,CAAC,MAAM,yEAAyE,CACjG,CAAA;IAED,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAC7B,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAChE,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,CAAA;IAC7D,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAA;IAClE,MAAM,SAAS,GAAG,CAAC,GAAiB,EAAE,IAAa,EAAE,EAAE,CACrD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAClD,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC,CACpF,CAAA;IACH,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACtC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACnC,GAAG,CAAC,IAAI,CACN,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,oCAAoC,WAAW,CAAC,MAAM,kBAAkB,IAAI,CAAC,WAAW,CAAC,EAAE,EAC9H,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,mCAAmC,UAAU,CAAC,MAAM,kBAAkB,IAAI,CAAC,UAAU,CAAC,EAAE,EAC1H,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,2CAA2C,OAAO,CAAC,MAAM,WAAW,IAAI,CAAC,OAAO,CAAC,EAAE,EAClH,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,6CAA6C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAC7F,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,4CAA4C,IAAI,CAAC,OAAO,CAAC,EAAE,CAC3F,CAAA;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI;QACxB,CAAC,KAAK,EAAE,GAAG,CAAC;QACZ,CAAC,IAAI,EAAE,EAAE,CAAC;KACF,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QACzB,GAAG,CAAC,IAAI,CACN,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,+BAA+B,EAC9D,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,0DAA0D,CACzF,CAAA;IACH,CAAC;IAED,OAAO,CAAC,uBAAuB,CAAC,CAAA;IAChC,KAAK,MAAM,IAAI,IAAI,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,EAAE,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,KAAK,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;QACnF,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAA;QAChF,GAAG,CAAC,IAAI,CACN,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE;YAC/E,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACrC,CAAA;IACH,CAAC;IAED,OAAO,CAAC,WAAW,CAAC,CAAA;IACpB,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAA;IAC/D,GAAG,CAAC,IAAI,CACN,eAAe,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EACzD,mBAAmB,KAAK,CAAC,GAAG,CAAC,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAC3D,kBAAkB,KAAK,CAAC,EAAE,CAAC,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CACzD,CAAA;IAED,OAAO,CAAC,YAAY,CAAC,CAAA;IACrB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAA;QAC3E,MAAM,QAAQ,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAU,CAAA;QACnE,GAAG,CAAC,IAAI,CACN,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,IAAI,YAAY,QAAQ,CAAC,CAAC,CAAC,iBAAiB,QAAQ,CAAC,CAAC,CAAC,GAAG;YAC5F,IAAI,SAAS,CAAC,KAAK,CAAC,QAAQ,SAAS,CAAC,IAAI,CAAC,SAAS,CACvD,CAAA;IACH,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI;QACzB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;QAClB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;KACR;QACR,KAAK,MAAM,IAAI,IAAI,KAAK;YACtB,GAAG,CAAC,IAAI,CACN,KAAK,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,QAAQ,GAAG,SAAS;gBACnE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAC7E,CAAA;IACL,GAAG,CAAC,IAAI,CACN,EAAE,EACF,4JAA4J,CAC7J,CAAA;IAED,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC1B,MAAM,QAAQ,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAU,CAAA;IACzG,GAAG,CAAC,IAAI,CACN,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAC1G,cAAc,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EACvC,aAAa,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACvC,CAAA;IAED,OAAO,CAAC,wBAAwB,CAAC,CAAA;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;IAC3C,GAAG,CAAC,IAAI,CACN,oCAAoC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EACvD,mCAAmC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EACrD,0BAA0B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CACxG,CAAA;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACvB,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { Id, Message, Page } from "../domain/models.js";
2
- import type { ConversationSummary, StoredLink } from "../store/store.js";
2
+ import type { ConversationSummary, LinkBatch, StoredLink } from "../store/store.js";
3
3
  import type { ServiceDeps } from "./deps.js";
4
4
  export interface Built {
5
5
  chat: Id;
@@ -40,6 +40,26 @@ export interface ConversationsService {
40
40
  messages: Message[];
41
41
  }>;
42
42
  links(chat: string, message: Id): Promise<MessageLinks>;
43
+ /** What is left for the user's agent to answer, to tell the user before it starts (phase 4 plan A7). */
44
+ batchStatus(chat: string, size: number): Promise<BatchStatus>;
45
+ /** The next window for the agent; `undefined` when every message is answered (A1–A4). */
46
+ nextBatch(chat: string, size: number): Promise<LinkBatch | undefined>;
43
47
  }
48
+ export interface BatchStatus {
49
+ chat: Id;
50
+ /** Messages with no messenger reply and no current agent answer. */
51
+ messages: number;
52
+ characters: number;
53
+ /** About how many `batches next` it takes; windows hold context, so it is an estimate. */
54
+ batches: number;
55
+ /** Characters ÷ 4: a rough count of tokens, not a price. */
56
+ tokensEstimate: number;
57
+ }
58
+ /** Messages to answer per batch, by default and at most: the agent's turn stays small (A1). */
59
+ export declare const BATCH_SIZE: {
60
+ default: number;
61
+ min: number;
62
+ max: number;
63
+ };
44
64
  export declare const conversationsService: (deps: ServiceDeps) => ConversationsService;
45
65
  //# sourceMappingURL=conversations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../src/services/conversations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAS5C,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,EAAE,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,EAAE,CAAA;IACR,OAAO,EAAE,EAAE,CAAA;IACX,6EAA6E;IAC7E,KAAK,EAAE,CAAC,UAAU,GAAG;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,EAAE,CAAA;IAC3C,+EAA+E;IAC/E,KAAK,EAAE,EAAE,EAAE,CAAA;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACjG,wEAAwE;IACxE,IAAI,CACF,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,EAAE,CAAA;KAAE,GACrD,OAAO,CAAC;QAAE,OAAO,EAAE,mBAAmB,CAAC;QAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAAA;IACjE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;CACxD;AAED,eAAO,MAAM,oBAAoB,SAAU,WAAW,KAAG,oBAuFxD,CAAA"}
1
+ {"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../src/services/conversations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAS5C,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,EAAE,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,EAAE,CAAA;IACR,OAAO,EAAE,EAAE,CAAA;IACX,6EAA6E;IAC7E,KAAK,EAAE,CAAC,UAAU,GAAG;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,EAAE,CAAA;IAC3C,+EAA+E;IAC/E,KAAK,EAAE,EAAE,EAAE,CAAA;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACjG,wEAAwE;IACxE,IAAI,CACF,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,EAAE,CAAA;KAAE,GACrD,OAAO,CAAC;QAAE,OAAO,EAAE,mBAAmB,CAAC;QAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAAA;IACjE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IACvD,wGAAwG;IACxG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC7D,yFAAyF;IACzF,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAA;CACtE;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,EAAE,CAAA;IACR,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,0FAA0F;IAC1F,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,+FAA+F;AAC/F,eAAO,MAAM,UAAU;IAAK,OAAO;IAAM,GAAG;IAAM,GAAG;CAAO,CAAA;AAE5D,eAAO,MAAM,oBAAoB,SAAU,WAAW,KAAG,oBA2GxD,CAAA"}
@@ -5,6 +5,8 @@ import { storedChatId } from "./messages.js";
5
5
  const READ_PAGE = 5_000;
6
6
  /** How far `links` follows a message's chosen parents back. */
7
7
  const CHAIN = 50;
8
+ /** Messages to answer per batch, by default and at most: the agent's turn stays small (A1). */
9
+ export const BATCH_SIZE = { default: 50, min: 10, max: 200 };
8
10
  export const conversationsService = (deps) => {
9
11
  const found = async (chat) => {
10
12
  const store = await deps.store();
@@ -28,7 +30,10 @@ export const conversationsService = (deps) => {
28
30
  if (inputs.length === 0) {
29
31
  throw new CliError("not_found", `the store holds no messages of chat ${chatId} — fetch them first`);
30
32
  }
31
- const { links, conversations } = linkMessages(inputs, { handles: await store.senderHandles(account, chatId) });
33
+ const { links, conversations } = linkMessages(inputs, {
34
+ handles: await store.senderHandles(account, chatId),
35
+ answers: await store.agentAnswers(account, chatId),
36
+ });
32
37
  await store.replaceConversations(account, chatId, {
33
38
  startedAt,
34
39
  algorithmVersion: RULES_VERSION,
@@ -73,6 +78,21 @@ export const conversationsService = (deps) => {
73
78
  }
74
79
  return conversation;
75
80
  },
81
+ batchStatus: async (chat, size) => {
82
+ const { store, account, chatId } = await found(chat);
83
+ const { messages, characters } = await store.batchStatus(account, chatId);
84
+ return {
85
+ chat: chatId,
86
+ messages,
87
+ characters,
88
+ batches: Math.ceil(messages / sized(size)),
89
+ tokensEstimate: Math.round(characters / 4),
90
+ };
91
+ },
92
+ nextBatch: async (chat, size) => {
93
+ const { store, account, chatId } = await found(chat);
94
+ return store.nextBatch(account, chatId, { size: sized(size) });
95
+ },
76
96
  links: async (chat, message) => {
77
97
  const { store, account, chatId } = await found(chat);
78
98
  const chosenOf = (links) => links.find((link) => !link.stale);
@@ -89,4 +109,10 @@ export const conversationsService = (deps) => {
89
109
  },
90
110
  };
91
111
  };
112
+ const sized = (size) => {
113
+ if (!Number.isInteger(size) || size < BATCH_SIZE.min || size > BATCH_SIZE.max) {
114
+ throw new CliError("validation_error", `--size takes ${BATCH_SIZE.min} to ${BATCH_SIZE.max} messages`);
115
+ }
116
+ return size;
117
+ };
92
118
  //# sourceMappingURL=conversations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../src/services/conversations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../src/services/conversations.ts"],"names":[],"mappings":"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"}
@@ -17,8 +17,8 @@ export type { ArchiveService, Fetched, FetchOptions } from "./archive.js";
17
17
  export { archiveService } from "./archive.js";
18
18
  export type { ChatFilter, ChatsService, MarkedRead, PageWindow } from "./chats.js";
19
19
  export { CHAT_SCAN, chatsService, EVENTS_DAYS } from "./chats.js";
20
- export type { Built, ConversationsService, MessageLinks } from "./conversations.js";
21
- export { conversationsService } from "./conversations.js";
20
+ export type { BatchStatus, Built, ConversationsService, MessageLinks } from "./conversations.js";
21
+ export { BATCH_SIZE, conversationsService } from "./conversations.js";
22
22
  export type { ServiceDeps } from "./deps.js";
23
23
  export { OFFLINE, onlineDeps, storedDeps } from "./deps.js";
24
24
  export type { FolderEdit, FoldersService } from "./folders.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export { accountService } from "./account.js";
12
12
  export { adminService } from "./admin.js";
13
13
  export { archiveService } from "./archive.js";
14
14
  export { CHAT_SCAN, chatsService, EVENTS_DAYS } from "./chats.js";
15
- export { conversationsService } from "./conversations.js";
15
+ export { BATCH_SIZE, conversationsService } from "./conversations.js";
16
16
  export { OFFLINE, onlineDeps, storedDeps } from "./deps.js";
17
17
  export { foldersService } from "./folders.js";
18
18
  export { inboxService } from "./inbox.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,cAAc,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAqB,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAuB,cAAc,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAqB,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAA6B,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAEpF,OAAO,EAAuB,cAAc,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAqB,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAA0B,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EAAsB,aAAa,EAAE,MAAM,aAAa,CAAA;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAEzD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAWzC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAqBpD,4GAA4G;AAC5G,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAiB,EAAY,EAAE;IACzD,MAAM,IAAI,GAAa;QACrB,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC;QAC/B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;QACzB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC;QAC3B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;QAC7B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;QAC7B,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;QAC7B,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC;QACnC,aAAa,EAAE,oBAAoB,CAAC,IAAI,CAAC;KAC1C,CAAA;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAC7F,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,cAAc,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAqB,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAuB,cAAc,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAqB,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAA6B,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAEpF,OAAO,EAAuB,cAAc,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAqB,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAA0B,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EAAsB,aAAa,EAAE,MAAM,aAAa,CAAA;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEjE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAErE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAWzC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAqBpD,4GAA4G;AAC5G,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAiB,EAAY,EAAE;IACzD,MAAM,IAAI,GAAa;QACrB,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC;QAC/B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;QACzB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC;QAC3B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;QAC7B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;QAC7B,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;QAC7B,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC;QACnC,aAAa,EAAE,oBAAoB,CAAC,IAAI,CAAC;KAC1C,CAAA;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAC7F,CAAC,CAAA"}
@@ -0,0 +1,19 @@
1
+ import type { Id } from "../../domain/models.js";
2
+ import type { LinkBatch } from "../store.js";
3
+ import type { StoreContext } from "./open.js";
4
+ /** How many messages before the first one to answer the agent sees: 97% of reply parents sit within 50. */
5
+ export declare const BATCH_CONTEXT = 50;
6
+ /** `b1.<chat>.<first>.<last>.<hash>`: the window's core, so an answer can be checked against it (A3). */
7
+ export declare const batchId: (chatKey: number, core: number[]) => string;
8
+ /** How much is left to answer, for the agent to tell the user before it starts (A7). */
9
+ export declare const batchStatus: ({ orm }: StoreContext, chatKey: number) => {
10
+ messages: number;
11
+ characters: number;
12
+ };
13
+ /**
14
+ * The earliest window that holds a message needing the agent (A1–A2): from that message, the next
15
+ * `size` live messages — those needing the agent are the core, the rest context — and the `BATCH_CONTEXT`
16
+ * messages before it. `undefined` when nothing is left to answer.
17
+ */
18
+ export declare const nextBatch: (context: StoreContext, chatKey: number, chatId: Id, size: number) => Omit<LinkBatch, "remaining"> | undefined;
19
+ //# sourceMappingURL=batches.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batches.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/batches.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,aAAa,CAAA;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAG7C,2GAA2G;AAC3G,eAAO,MAAM,aAAa,KAAK,CAAA;AA6B/B,yGAAyG;AACzG,eAAO,MAAM,OAAO,YAAa,MAAM,QAAQ,MAAM,EAAE,KAAG,MAC2D,CAAA;AAErH,wFAAwF;AACxF,eAAO,MAAM,WAAW,YAAa,YAAY,WAAW,MAAM;IAKvD,QAAQ;IAA8B,UAAU;CAC1D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,YACX,YAAY,WACZ,MAAM,UACP,EAAE,QACJ,MAAM,KACX,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,SA+BjC,CAAA"}
@@ -0,0 +1,81 @@
1
+ import { createHash } from "node:crypto";
2
+ import { sql } from "./drizzle/core.js";
3
+ import { toIso } from "./values.js";
4
+ /** How many messages before the first one to answer the agent sees: 97% of reply parents sit within 50. */
5
+ export const BATCH_CONTEXT = 50;
6
+ /**
7
+ * Phase 4 plan A2: a live message the agent is asked about — no reply the messenger itself records to a
8
+ * message held here, and no current agent answer. A stale answer makes it need the agent again.
9
+ */
10
+ const needsAgent = (m) => sql `(
11
+ NOT EXISTS (SELECT 1 FROM messages p WHERE p.chat_pk = ${m}.chat_pk AND p.native_id = ${m}.reply_to_native_id
12
+ AND p.deleted_at IS NULL)
13
+ AND NOT EXISTS (SELECT 1 FROM message_links l WHERE l.message_pk = ${m}.pk AND l.source = 'agent'
14
+ AND l.stale_at IS NULL))`;
15
+ const COLUMNS = sql `m.pk, m.native_id, m.sent_at, m.text, coalesce(m.sender_chat_native_id, i.native_id) AS sender_id,
16
+ m.sender_name, m.reply_to_native_id, m.thread_native_id, m.mentions, ${needsAgent(sql `m`)} AS needs`;
17
+ const FROM = sql `messages m LEFT JOIN identities i ON i.pk = m.sender_identity_pk`;
18
+ /** `b1.<chat>.<first>.<last>.<hash>`: the window's core, so an answer can be checked against it (A3). */
19
+ export const batchId = (chatKey, core) => `b1.${chatKey}.${core[0]}.${core.at(-1)}.${createHash("sha256").update(core.join(",")).digest("hex").slice(0, 12)}`;
20
+ /** How much is left to answer, for the agent to tell the user before it starts (A7). */
21
+ export const batchStatus = ({ orm }, chatKey) => {
22
+ const row = orm.get(sql `SELECT count(*) AS messages, sum(length(m.text)) AS characters FROM messages m
23
+ WHERE m.chat_pk = ${chatKey} AND m.deleted_at IS NULL AND ${needsAgent(sql `m`)}`);
24
+ return { messages: Number(row?.messages ?? 0), characters: Number(row?.characters ?? 0) };
25
+ };
26
+ /**
27
+ * The earliest window that holds a message needing the agent (A1–A2): from that message, the next
28
+ * `size` live messages — those needing the agent are the core, the rest context — and the `BATCH_CONTEXT`
29
+ * messages before it. `undefined` when nothing is left to answer.
30
+ */
31
+ export const nextBatch = (context, chatKey, chatId, size) => {
32
+ const { orm } = context;
33
+ const first = orm.get(sql `SELECT m.pk, m.sent_at FROM messages m WHERE m.chat_pk = ${chatKey} AND m.deleted_at IS NULL
34
+ AND ${needsAgent(sql `m`)} ORDER BY m.sent_at, m.pk LIMIT 1`);
35
+ if (!first)
36
+ return undefined;
37
+ const live = sql `m.chat_pk = ${chatKey} AND m.deleted_at IS NULL`;
38
+ const span = orm.all(sql `SELECT ${COLUMNS} FROM ${FROM} WHERE ${live} AND (m.sent_at, m.pk) >= (${first.sent_at}, ${first.pk})
39
+ ORDER BY m.sent_at, m.pk LIMIT ${size}`);
40
+ const before = orm
41
+ .all(sql `SELECT ${COLUMNS} FROM ${FROM} WHERE ${live} AND (m.sent_at, m.pk) < (${first.sent_at}, ${first.pk})
42
+ ORDER BY m.sent_at DESC, m.pk DESC LIMIT ${BATCH_CONTEXT}`)
43
+ .reverse();
44
+ const core = span.filter((row) => Number(row.needs) === 1);
45
+ const candidates = candidatesOf(context, core.map(({ pk }) => pk));
46
+ return {
47
+ batch: batchId(chatKey, core.map(({ pk }) => pk)),
48
+ chat: chatId,
49
+ messages: [...before, ...span].map((row) => toBatchMessage(row, candidates.get(row.pk))),
50
+ };
51
+ };
52
+ /** The current build's messenger and rule links for the core: the rules' guesses, for the agent to weigh. */
53
+ const candidatesOf = ({ orm }, pks) => {
54
+ const found = new Map();
55
+ if (pks.length === 0)
56
+ return found;
57
+ const rows = orm.all(sql `SELECT l.message_pk, p.native_id AS parent, l.source, l.kind, l.confidence
58
+ FROM message_links l LEFT JOIN messages p ON p.pk = l.parent_pk
59
+ WHERE l.message_pk IN (${sql.join(pks.map((pk) => sql `${pk}`), sql `, `)}) AND l.source IN ('provider', 'rule')
60
+ AND l.build = (SELECT s.current_build FROM conversation_state s WHERE s.chat_pk = l.chat_pk)
61
+ ORDER BY l.message_pk, l.confidence DESC`);
62
+ for (const row of rows) {
63
+ found.set(row.message_pk, [
64
+ ...(found.get(row.message_pk) ?? []),
65
+ { parent: row.parent, source: row.source, kind: row.kind, confidence: row.confidence },
66
+ ]);
67
+ }
68
+ return found;
69
+ };
70
+ const toBatchMessage = (row, candidates) => ({
71
+ id: row.native_id,
72
+ at: toIso(row.sent_at),
73
+ sender: { id: row.sender_id, name: row.sender_name },
74
+ text: row.text,
75
+ ...(row.reply_to_native_id === null ? {} : { replyTo: row.reply_to_native_id }),
76
+ ...(row.thread_native_id === null ? {} : { thread: row.thread_native_id }),
77
+ ...(row.mentions === null ? {} : { mentions: JSON.parse(row.mentions) }),
78
+ answer: Number(row.needs) === 1,
79
+ ...(Number(row.needs) === 1 ? { candidates: candidates ?? [] } : {}),
80
+ });
81
+ //# sourceMappingURL=batches.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batches.js","sourceRoot":"","sources":["../../../src/store/sqlite/batches.ts"],"names":[],"mappings":"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"}
@@ -42,4 +42,10 @@ export declare const stateOf: ({ orm }: StoreContext, chatKey: number) => {
42
42
  builtAt: string | null;
43
43
  algorithmVersion: number | null;
44
44
  } | undefined;
45
+ /**
46
+ * The user's agent's current answer per message (phase 4 plan A6): its parent, or `null` for "starts a
47
+ * conversation". An answer whose message or parent was edited or deleted after it was written is left
48
+ * out here already — a rebuild marks it stale only when it finishes.
49
+ */
50
+ export declare const agentAnswers: ({ orm }: StoreContext, chatKey: number) => Map<Id, Id | null>;
45
51
  //# sourceMappingURL=conversations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/conversations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAErF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAe7C,iGAAiG;AACjG,eAAO,MAAM,UAAU,YACZ,YAAY,WACZ,MAAM,oBACG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAClD;IAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAsC3C,CAAA;AAED,sGAAsG;AACtG,eAAO,MAAM,aAAa,YAAa,YAAY,WAAW,MAAM,KAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CASlF,CAAA;AA+CH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,YACtB,YAAY,WACZ,MAAM,iEACgD,iBAAiB,qBAE/E,OAAO,CAAC,IAAI,CAqId,CAAA;AAyDD,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,YAClB,YAAY,WACZ,MAAM,4BACW;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAC3E;IAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAclD,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,YAAY,YACd,YAAY,cACT,MAAM,MACd,MAAM,KACT;IAAE,OAAO,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;CAAE,GAAG,SAgB1D,CAAA;AAED,eAAO,MAAM,cAAc,YAAa,YAAY,WAAW,MAAM,aAAa,EAAE,KAAG,MAAM,GAAG,SAS/F,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,OAAO,YAAa,YAAY,WAAW,MAAM,aAAa,EAAE,KAAG,UAAU,EAgCnF,CAAA;AAEP,eAAO,MAAM,OAAO,YAAa,YAAY,WAAW,MAAM;eAIjB,MAAM;;;aAKlD,CAAA"}
1
+ {"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/conversations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAErF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAe7C,iGAAiG;AACjG,eAAO,MAAM,UAAU,YACZ,YAAY,WACZ,MAAM,oBACG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAClD;IAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAsC3C,CAAA;AAED,sGAAsG;AACtG,eAAO,MAAM,aAAa,YAAa,YAAY,WAAW,MAAM,KAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CASlF,CAAA;AA+CH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,YACtB,YAAY,WACZ,MAAM,iEACgD,iBAAiB,qBAE/E,OAAO,CAAC,IAAI,CAqId,CAAA;AAyDD,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,YAClB,YAAY,WACZ,MAAM,4BACW;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAC3E;IAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAclD,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,YAAY,YACd,YAAY,cACT,MAAM,MACd,MAAM,KACT;IAAE,OAAO,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;CAAE,GAAG,SAgB1D,CAAA;AAED,eAAO,MAAM,cAAc,YAAa,YAAY,WAAW,MAAM,aAAa,EAAE,KAAG,MAAM,GAAG,SAS/F,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,OAAO,YAAa,YAAY,WAAW,MAAM,aAAa,EAAE,KAAG,UAAU,EAgCnF,CAAA;AAEP,eAAO,MAAM,OAAO,YAAa,YAAY,WAAW,MAAM;eAIjB,MAAM;;;aAKlD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,YAAa,YAAY,WAAW,MAAM,KAAG,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAapF,CAAA"}
@@ -306,4 +306,18 @@ export const stateOf = ({ orm }, chatKey) => {
306
306
  }
307
307
  : undefined;
308
308
  };
309
+ /**
310
+ * The user's agent's current answer per message (phase 4 plan A6): its parent, or `null` for "starts a
311
+ * conversation". An answer whose message or parent was edited or deleted after it was written is left
312
+ * out here already — a rebuild marks it stale only when it finishes.
313
+ */
314
+ export const agentAnswers = ({ orm }, chatKey) => new Map(orm
315
+ .all(sql `SELECT m.native_id AS id, p.native_id AS parent FROM message_links l
316
+ JOIN messages m ON m.pk = l.message_pk LEFT JOIN messages p ON p.pk = l.parent_pk
317
+ WHERE l.chat_pk = ${chatKey} AND l.source = 'agent' AND l.stale_at IS NULL
318
+ AND NOT EXISTS (SELECT 1 FROM message_revisions r
319
+ WHERE r.message_pk IN (l.message_pk, l.parent_pk) AND r.captured_at > l.created_at)
320
+ AND NOT EXISTS (SELECT 1 FROM messages d
321
+ WHERE d.pk IN (l.message_pk, l.parent_pk) AND d.deleted_at > l.created_at)`)
322
+ .map(({ id, parent }) => [id, parent]));
309
323
  //# sourceMappingURL=conversations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../../src/store/sqlite/conversations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAIjD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAY,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAE7E,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EACL,KAAK,EACL,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,QAAQ,GACT,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAU,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,EAAE,EAAE,CAAA;AAElE,iGAAiG;AACjG,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,EAAE,GAAG,EAAgB,EACrB,OAAe,EACf,EAAE,KAAK,EAAE,KAAK,EAAqC,EACN,EAAE;IAC/C,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACzD,MAAM,IAAI,GAAG,GAAG;SACb,MAAM,CAAC;QACN,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,EAAE,EAAE,QAAQ,CAAC,QAAQ;QACrB,QAAQ,EAAE,GAAG,CAAe,YAAY,QAAQ,CAAC,kBAAkB,KAAK,UAAU,CAAC,QAAQ,GAAG;QAC9F,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,SAAS,EAAE,QAAQ,CAAC,eAAe;QACnC,QAAQ,EAAE,QAAQ,CAAC,cAAc;QACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC;SACD,IAAI,CAAC,QAAQ,CAAC;SACd,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;SAClE,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC1B,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,QAAQ,MAAM,KAAK,EAAE,GAAG,CACjG,CACF;SACA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC/C,KAAK,CAAC,KAAK,CAAC;SACZ,GAAG,EAAE,CAAA;IACR,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACxB,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAW;YACtC,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;YAC/D,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC5D,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAS,EAAE,CAAC;SACjF,CAAC,CAAC;QACH,IAAI,EAAE,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;KAC5E,CAAA;AACH,CAAC,CAAA;AAED,sGAAsG;AACtG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,OAAe,EAAmB,EAAE,CACvF,IAAI,GAAG,CACL,GAAG;KACA,cAAc,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC1E,IAAI,CAAC,QAAQ,CAAC;KACd,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;KACnE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAA,GAAG,UAAU,CAAC,QAAQ,cAAc,CAAC,CAAC;KACjF,GAAG,EAAE;KACL,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CACnE,CAAA;AAEH,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEpE;;;;;GAKG;AACH,MAAM,OAAO,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAgB,EAAE,IAAuB,EAAE,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;IAClH,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,GAAI,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAChC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;YAC/B;gBAAG,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,CAAA;mBAC5B,CAAC,IAAI,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,MAAM,EAAC;YACnD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACzB,MAAM,KAAK,CAAA;QACb,CAAC;QACD,IAAI,CAAC,IAAI;YAAE,MAAM,UAAU,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAG,CAAC,IAAgB,EAAqB,EAAE,CAAC,CAAC;IACrD,IAAI,EAAE,GAAG,EAAE;QACT,IAAI,EAAE,CAAA;QACN,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;IACzC,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,OAAe,EAAU,EAAE,CACtE,MAAM,CACJ,GAAG;KACA,MAAM,CAAC;IACN,CAAC,EAAE,GAAG,CAAQ;iCACW,aAAa,CAAC,KAAK,UAAU,aAAa,UAAU,aAAa,CAAC,MAAM,MAAM,OAAO;iCACrF,YAAY,CAAC,KAAK,UAAU,YAAY,UAAU,MAAM,CAAC,OAAO,CAAC;6BACrE,iBAAiB,CAAC,YAAY,SAAS,iBAAiB;oBACjE,iBAAiB,CAAC,MAAM,MAAM,OAAO,QAAQ;CAC1D,CAAC;KACD,IAAI,CAAC,GAAG,CAAA,YAAY,CAAC;KACrB,GAAG,EAAE,EAAE,CAAC,CACZ,CAAA;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,OAAqB,EACrB,OAAe,EACf,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAqB,EAChF,KAAK,GAAG,KAAK,EACE,EAAE;IACjB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,GAAG;SACA,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;SAC3E,IAAI,CAAC,QAAQ,CAAC;SACd,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACnC,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAC/B,CAAA;IACD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,MAAM,OAAO,CACX,OAAO,EACP,IAAI,CAAC,GAAG,EAAE;QACR,yFAAyF;QACzF,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;QAC/D,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAA;IAC7G,CAAC,CAAC,CACH,CAAA;IAED,MAAM,UAAU,GAAG,GAAG;SACnB,MAAM,CAAC,YAAY,CAAC;SACpB,MAAM,CAAC;QACN,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC;QACvC,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC;QACrC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC;QACjC,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC;QAC7B,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC;QACzC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC;QACjC,SAAS,EAAE,SAAS;QACpB,KAAK;KACN,CAAC;SACD,mBAAmB,EAAE;SACrB,OAAO,EAAE,CAAA;IACZ,MAAM,YAAY,GAAG,GAAG;SACrB,MAAM,CAAC,oBAAoB,CAAC;SAC5B,MAAM,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;SACtG,OAAO,EAAE,CAAA;IACZ,MAAM,OAAO,CACX,OAAO,EACP,CAAC,QAAQ,CAAC;QACR,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACtC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM;gBAAE,SAAQ;YACjC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;YAChD,KAAK,CAAA;QACP,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;YACvD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACxB,IAAI,CAAC,KAAK;gBAAE,SAAQ;YACpB,MAAM,OAAO,GAAG,GAAG;iBAChB,MAAM,CAAC,aAAa,CAAC;iBACrB,MAAM,CAAC;gBACN,MAAM,EAAE,OAAO;gBACf,KAAK;gBACL,cAAc,EAAE,KAAK,CAAC,EAAE;gBACxB,OAAO,EAAE,KAAK,CAAC,MAAM;gBACrB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;gBACrF,YAAY,EAAE,OAAO,CAAC,MAAM;gBAC5B,OAAO,EAAE,SAAS;gBAClB,gBAAgB;aACjB,CAAC;iBACD,SAAS,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC;iBACnC,GAAG,EAAE,CAAA;YACR,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,YAAY,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;gBACtE,KAAK,CAAA;YACP,CAAC;QACH,CAAC;IACH,CAAC,CAAC,EAAE,CACL,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAA;qEAC6B,GAAG,wBAAwB,YAAY,CAAC,SAAS;uDAC/D,GAAG,uBAAuB,YAAY,CAAC,SAAS,IAAI,CAAA;IACzG,MAAM,OAAO,CACX,OAAO,EACP,IAAI,CAAC,GAAG,EAAE;QACR,GAAG;aACA,MAAM,CAAC,YAAY,CAAC;aACpB,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;aACvB,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAC5B,MAAM,CAAC,OAAO,CAAC,EACf,GAAG,CAAA,IAAI,YAAY,CAAC,GAAG,CAAA,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,OAAO,YAAY,CAAC,GAAG,CAAA,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,GAAG,CACzG,CACF;aACA,GAAG,EAAE,CAAA;QACR,uFAAuF;QACvF,GAAG;aACA,MAAM,CAAC,iBAAiB,CAAC;aACzB,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;aAClE,KAAK,CACJ,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAA,YAAY,iBAAiB,CAAC,YAAY,UAAU,KAAK,EAAE,CAAC,CAC3G;aACA,GAAG,EAAE,CAAA;IACV,CAAC,CAAC,CACH,CAAA;IAED,MAAM,OAAO,GAAG,GAAG,CAAA,WAAW,iBAAiB,CAAC,YAAY,SAAS,iBAAiB;YAC5E,iBAAiB,CAAC,MAAM,MAAM,OAAO,GAAG,CAAA;IAClD,MAAM,OAAO,CACX,OAAO,EACP,CAAC,QAAQ,CAAC;QACR,SAAS,CAAC;YACR,MAAM,OAAO,GACX,GAAG;iBACA,MAAM,CAAC,aAAa,CAAC;iBACrB,KAAK,CACJ,GAAG,CAAA,GAAG,aAAa,CAAC,EAAE,eAAe,aAAa,CAAC,EAAE,SAAS,aAAa;sBACnE,aAAa,CAAC,MAAM,MAAM,OAAO,QAAQ,aAAa,CAAC,KAAK,MAAM,OAAO,UAAU,KAAK,GAAG,CACpG;iBACA,SAAS,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC;iBACnC,GAAG,EAAE,CAAC,MAAM;gBACf,GAAG;qBACA,MAAM,CAAC,YAAY,CAAC;qBACpB,KAAK,CACJ,GAAG,CAAA,+BAA+B,YAAY,UAAU,YAAY,CAAC,MAAM,MAAM,OAAO;oBAClF,YAAY,CAAC,KAAK,MAAM,OAAO,UAAU,KAAK,GAAG,CACxD;qBACA,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC;qBACzC,GAAG,EAAE,CAAC,MAAM,CAAA;YACjB,IAAI,OAAO,KAAK,CAAC;gBAAE,OAAM;YACzB,KAAK,CAAA;QACP,CAAC;IACH,CAAC,CAAC,EAAE,CACL,CAAA;AACH,CAAC,CAAA;AAED,MAAM,GAAG,GAAG,CAAC,IAAU,EAAE,SAAiB,EAAE,QAAgB,EAAE,EAAE,CAAC,CAAC;IAChE,SAAS;IACT,QAAQ;IACR,MAAM,EAAE,IAAI,CAAC,MAAM;IACnB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,UAAU,EAAE,IAAI,CAAC,UAAU;IAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;CACpB,CAAC,CAAA;AAEF,mEAAmE;AACnE,MAAM,SAAS,GAAG,GAAG,CAAA,GAAG,aAAa,CAAC,KAAK,cAAc,iBAAiB,CAAC,YAAY,SAAS,iBAAiB;UACvG,iBAAiB,CAAC,MAAM,MAAM,aAAa,CAAC,MAAM,GAAG,CAAA;AAE/D,MAAM,OAAO,GAAG;IACd,EAAE,EAAE,aAAa,CAAC,EAAE;IACpB,MAAM,EAAE,KAAK,CAAC,QAAQ;IACtB,cAAc,EAAE,QAAQ,CAAC,QAAQ;IACjC,OAAO,EAAE,aAAa,CAAC,OAAO;IAC9B,MAAM,EAAE,aAAa,CAAC,MAAM;IAC5B,YAAY,EAAE,aAAa,CAAC,YAAY;IACxC,OAAO,EAAE,aAAa,CAAC,OAAO;IAC9B,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;IAChD,OAAO,EAAE,GAAG,CAAQ;uGACiF,aAAa,CAAC,EAAE,GAAG;CACzH,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,EAAE,CAC1C,GAAG;KACA,MAAM,CAAC,OAAO,CAAC;KACf,IAAI,CAAC,aAAa,CAAC;KACnB,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;KACpD,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAA;AAEvE,MAAM,SAAS,GAAG,CAAC,GAUlB,EAAuB,EAAE,CAAC,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC,MAAM;IAClB,cAAc,EAAE,GAAG,CAAC,cAAc;IAClC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAW;IACrC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAW;IACnC,YAAY,EAAE,GAAG,CAAC,YAAY;IAC9B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;IAC5B,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAW;IACrC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;CACvC,CAAC,CAAA;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAqB,EACrB,OAAe,EACf,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAsD,EACxB,EAAE;IACtD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC;SAC5B,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,EACT,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,aAAa,CAAC,OAAO,OAAO,KAAK,EAAE,EAC3E,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,aAAa,CAAC,OAAO,MAAM,MAAM,EAAE,CAC7E,CACF;SACA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;SAC5D,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;SAChB,GAAG,EAAE,CAAA;IACR,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAA;AACrF,CAAC,CAAA;AAED,sEAAsE;AACtE,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAAqB,EACrB,UAAkB,EAClB,EAAU,EACyD,EAAE;IACrE,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC;SAC7B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;SAChF,GAAG,EAAE,CAAA;IACR,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC;SACjC,KAAK,CACJ,GAAG,CACD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC1B,GAAG,CAAA,GAAG,QAAQ,CAAC,EAAE,eAAe,oBAAoB,CAAC,SAAS,SAAS,oBAAoB;kBACjF,oBAAoB,CAAC,cAAc,MAAM,EAAE,GAAG,CACzD,CACF;SACA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC/C,GAAG,EAAE,CAAA;IACR,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAA;AAC3E,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,OAAe,EAAE,SAAa,EAAsB,EAAE;IAC1G,MAAM,KAAK,GAAG,GAAG;SACd,MAAM,CAAC,EAAE,EAAE,EAAE,oBAAoB,CAAC,cAAc,EAAE,CAAC;SACnD,IAAI,CAAC,oBAAoB,CAAC;SAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;SACpE,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,oBAAoB,CAAC,cAAc,CAAC,CAAC;SACnF,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;SACrF,GAAG,EAAE,CAAA;IACR,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC7C,CAAC,CAAA;AAED,2EAA2E;AAC3E,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,OAAe,EAAE,SAAa,EAAgB,EAAE,CAC7F,GAAG;KACA,MAAM,CAAC;IACN,QAAQ,EAAE,GAAG,CAAe,oDAAoD,YAAY,CAAC,QAAQ,GAAG;IACxG,MAAM,EAAE,YAAY,CAAC,MAAM;IAC3B,IAAI,EAAE,YAAY,CAAC,IAAI;IACvB,UAAU,EAAE,YAAY,CAAC,UAAU;IACnC,MAAM,EAAE,YAAY,CAAC,MAAM;IAC3B,OAAO,EAAE,YAAY,CAAC,OAAO;IAC7B,SAAS,EAAE,YAAY,CAAC,SAAS;IACjC,OAAO,EAAE,YAAY,CAAC,OAAO;CAC9B,CAAC;KACD,IAAI,CAAC,YAAY,CAAC;KAClB,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;KAC5D,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,EAChC,GAAG,CAAA,IAAI,YAAY,CAAC,KAAK,eAAe,YAAY,CAAC,KAAK,cAAc,iBAAiB,CAAC,YAAY;iBAC7F,iBAAiB,UAAU,iBAAiB,CAAC,MAAM,MAAM,OAAO,IAAI,CAC9E,CACF;KACA,OAAO,CACN,GAAG,CAAA,QAAQ,YAAY,CAAC,MAAM,wDAAwD,EACtF,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAC9B;KACA,GAAG,EAAE;KACL,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACzC,GAAG,IAAI;IACP,MAAM,EAAE,IAAI,CAAC,MAA8B;IAC3C,SAAS,EAAE,KAAK,CAAC,SAAS,CAAW;IACrC,KAAK,EAAE,OAAO,KAAK,IAAI;CACxB,CAAC,CAAC,CAAA;AAEP,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,OAAe,EAAE,EAAE;IAChE,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACrG,OAAO,KAAK;QACV,CAAC,CAAC;YACE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAW;YAC3C,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;YAC7B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;SACzC;QACH,CAAC,CAAC,SAAS,CAAA;AACf,CAAC,CAAA"}
1
+ {"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../../src/store/sqlite/conversations.ts"],"names":[],"mappings":"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"}
@@ -137,6 +137,17 @@ export interface MessageStore {
137
137
  conversationOf(key: AccountKey, chatId: Id, messageId: Id): Promise<string | undefined>;
138
138
  /** Every link a message has, the messenger's first. */
139
139
  links(key: AccountKey, chatId: Id, messageId: Id): Promise<StoredLink[]>;
140
+ /** The user's agent's current answer per message: its parent, or `null` for "starts a conversation". */
141
+ agentAnswers(key: AccountKey, chatId: Id): Promise<Map<Id, Id | null>>;
142
+ /** How many messages still need the user's agent, and their characters (phase 4). */
143
+ batchStatus(key: AccountKey, chatId: Id): Promise<{
144
+ messages: number;
145
+ characters: number;
146
+ }>;
147
+ /** The earliest window holding a message the agent has not answered; `undefined` when none is left. */
148
+ nextBatch(key: AccountKey, chatId: Id, options: {
149
+ size: number;
150
+ }): Promise<LinkBatch | undefined>;
140
151
  /** Whether the chat's conversations were built, and when; `undefined` when never. */
141
152
  conversationState(key: AccountKey, chatId: Id): Promise<{
142
153
  enabledAt: string;
@@ -275,6 +286,41 @@ export interface ConversationSummary {
275
286
  builtAt: string;
276
287
  algorithmVersion: number;
277
288
  }
289
+ /** One message as the user's agent sees it in a batch (phase 4 plan A4). */
290
+ export interface BatchMessage {
291
+ id: Id;
292
+ at: string;
293
+ sender: {
294
+ id: Id | null;
295
+ name: string | null;
296
+ };
297
+ text: string;
298
+ /** The message it answers, by the messenger's own record. */
299
+ replyTo?: Id;
300
+ thread?: Id;
301
+ mentions?: Id[];
302
+ /** `true`: the agent is asked which earlier message this one answers. `false`: context only. */
303
+ answer: boolean;
304
+ /** For a message to answer: the current build's messenger and rule links, strongest first. */
305
+ candidates?: {
306
+ parent: Id | null;
307
+ source: string;
308
+ kind: string;
309
+ confidence: number;
310
+ }[];
311
+ }
312
+ /** A window of a chat for the agent: the messages to answer and the ones before them (A1). */
313
+ export interface LinkBatch {
314
+ /** Names the window, so an answer can be checked against it (A3). */
315
+ batch: string;
316
+ chat: Id;
317
+ messages: BatchMessage[];
318
+ /** Messages still needing the agent after this batch, and their characters. */
319
+ remaining: {
320
+ messages: number;
321
+ characters: number;
322
+ };
323
+ }
278
324
  export interface StoredLink {
279
325
  /** `null`: the source says the message starts a conversation. */
280
326
  parentId: Id | null;