@leemour/cli-messaging 0.91.0 → 0.93.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 (53) 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.d.ts +8 -0
  10. package/dist/cli/bot/command.d.ts.map +1 -0
  11. package/dist/cli/bot/command.js +175 -0
  12. package/dist/cli/bot/command.js.map +1 -0
  13. package/dist/cli/bot/context.d.ts +35 -0
  14. package/dist/cli/bot/context.d.ts.map +1 -0
  15. package/dist/cli/bot/context.js +48 -0
  16. package/dist/cli/bot/context.js.map +1 -0
  17. package/dist/cli/bot/port.d.ts +2 -0
  18. package/dist/cli/bot/port.d.ts.map +1 -1
  19. package/dist/cli/index.d.ts +2 -0
  20. package/dist/cli/index.d.ts.map +1 -1
  21. package/dist/cli/index.js +2 -0
  22. package/dist/cli/index.js.map +1 -1
  23. package/dist/cli/messenger/admin-folders-command.d.ts.map +1 -1
  24. package/dist/cli/messenger/admin-folders-command.js +2 -1
  25. package/dist/cli/messenger/admin-folders-command.js.map +1 -1
  26. package/dist/cli/messenger/conversations-command.d.ts.map +1 -1
  27. package/dist/cli/messenger/conversations-command.js +43 -0
  28. package/dist/cli/messenger/conversations-command.js.map +1 -1
  29. package/dist/mcp/tools/folders.d.ts.map +1 -1
  30. package/dist/mcp/tools/folders.js +4 -2
  31. package/dist/mcp/tools/folders.js.map +1 -1
  32. package/dist/parity/audit.d.ts +50 -0
  33. package/dist/parity/audit.d.ts.map +1 -0
  34. package/dist/parity/audit.js +96 -0
  35. package/dist/parity/audit.js.map +1 -0
  36. package/dist/services/conversations.d.ts +21 -1
  37. package/dist/services/conversations.d.ts.map +1 -1
  38. package/dist/services/conversations.js +23 -0
  39. package/dist/services/conversations.js.map +1 -1
  40. package/dist/services/index.d.ts +2 -2
  41. package/dist/services/index.d.ts.map +1 -1
  42. package/dist/services/index.js +1 -1
  43. package/dist/services/index.js.map +1 -1
  44. package/dist/store/sqlite/batches.d.ts +19 -0
  45. package/dist/store/sqlite/batches.d.ts.map +1 -0
  46. package/dist/store/sqlite/batches.js +81 -0
  47. package/dist/store/sqlite/batches.js.map +1 -0
  48. package/dist/store/store.d.ts +44 -0
  49. package/dist/store/store.d.ts.map +1 -1
  50. package/dist/store/store.js +22 -0
  51. package/dist/store/store.js.map +1 -1
  52. package/package.json +3 -3
  53. package/parity.json +8 -12
@@ -1 +1 @@
1
- {"version":3,"file":"conversations-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/conversations-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversations-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/conversations-command.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"folders.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/folders.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAI/D,OAAO,EAAE,KAAK,OAAO,EAA8B,MAAM,YAAY,CAAA;AAKrE,uGAAuG;AACvG,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAiDxE,CAAA"}
1
+ {"version":3,"file":"folders.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/folders.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAK/D,OAAO,EAAE,KAAK,OAAO,EAA8B,MAAM,YAAY,CAAA;AAKrE,uGAAuG;AACvG,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAmDxE,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import * as v from "valibot";
2
+ import { listed } from "../../cli/paging.js";
2
3
  import { onlineDeps, servicesFor } from "../../services/index.js";
3
4
  import { APPROVE, READ, tool, WRITE } from "../tool.js";
4
5
  const folderRef = v.pipe(v.string(), v.minLength(1), v.description("folder id, or its title exactly"));
@@ -9,10 +10,11 @@ export const folderTools = (messenger) => {
9
10
  return {
10
11
  chats_folders_list: tool({
11
12
  title: "Chat folders",
12
- description: "The owner's chat folders, in the order the app shows them, with the chats added to each.",
13
+ description: "The owner's chat folders, in the order the app shows them, with the chats added to each. Returns " +
14
+ "{ items, page, limit, hasMore }.",
13
15
  input: v.object({}),
14
16
  annotations: READ,
15
- online: (adapter, _args, { guard }) => folders(adapter, guard).list(),
17
+ online: async (adapter, _args, { guard }) => listed(await folders(adapter, guard).list()),
16
18
  }),
17
19
  chats_folders_create: tool({
18
20
  title: "Create a chat folder",
@@ -1 +1 @@
1
- {"version":3,"file":"folders.js","sourceRoot":"","sources":["../../../src/mcp/tools/folders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"folders.js","sourceRoot":"","sources":["../../../src/mcp/tools/folders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { type CommandsJson, type Manifest } from "./manifest.js";
2
+ /** What the audit reads from one CLI's checkout and build. Gathered by `scripts/parity-audit.ts`. */
3
+ export interface CliSide {
4
+ commit: string;
5
+ /** The `@leemour/*` packages it pins, by name. */
6
+ pins: Record<string, string>;
7
+ program: CommandsJson;
8
+ /** `tools/list` of its MCP server with every `--allow-*`, prefix kept. */
9
+ tools: string[];
10
+ /** `README.md` and `docs/*.md`, by path from the checkout, with their text. */
11
+ pages: Record<string, string>;
12
+ scripts: string[];
13
+ skills: string[];
14
+ /** Its CI workflows, with each `pnpm <script>` they run followed by that script's command. */
15
+ ci: string;
16
+ }
17
+ export interface AuditInput {
18
+ shared: {
19
+ commit: string;
20
+ version: string;
21
+ };
22
+ manifest: Manifest;
23
+ /** STANDARD.md, whose Documents rule names the pages one tool has alone. */
24
+ standard: string;
25
+ max: CliSide;
26
+ tg: CliSide;
27
+ }
28
+ export interface Split {
29
+ both: string[];
30
+ max: string[];
31
+ tg: string[];
32
+ }
33
+ export declare const split: (max: Iterable<string>, tg: Iterable<string>) => Split;
34
+ export declare const pageSplit: (input: AuditInput) => {
35
+ both: string[];
36
+ max: string[];
37
+ tg: string[];
38
+ explained: (name: string) => boolean;
39
+ };
40
+ export declare const readmeSections: (readme?: string) => string[];
41
+ export declare const toolNames: (side: CliSide, cli: string) => string[];
42
+ /** The `--allow-*` options of a CLI's `mcp` command: passing them all makes its server offer every tool. */
43
+ export declare const allowFlags: (program: CommandsJson) => string[];
44
+ export declare const ciRuns: (side: CliSide) => {
45
+ parity: boolean;
46
+ pages: boolean;
47
+ };
48
+ /** The measured half of a parity audit, as Markdown: everything a script can say without judging. */
49
+ export declare const renderAudit: (input: AuditInput) => string;
50
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/parity/audit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAY,KAAK,QAAQ,EAAkB,MAAM,eAAe,CAAA;AAI1F,qGAAqG;AACrG,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,OAAO,EAAE,YAAY,CAAA;IACrB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,8FAA8F;IAC9F,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3C,QAAQ,EAAE,QAAQ,CAAA;IAClB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,OAAO,CAAA;IACZ,EAAE,EAAE,OAAO,CAAA;CACZ;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,EAAE,EAAE,MAAM,EAAE,CAAA;CACb;AAED,eAAO,MAAM,KAAK,QAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAG,KAQnE,CAAA;AAYD,eAAO,MAAM,SAAS,UAAW,UAAU;UAzBnC,MAAM,EAAE;SACT,MAAM,EAAE;QACT,MAAM,EAAE;sBA0Ba,MAAM;CAEhC,CAAA;AAED,eAAO,MAAM,cAAc,+BAAsF,CAAA;AAEjH,eAAO,MAAM,SAAS,SAAU,OAAO,OAAO,MAAM,aAA0D,CAAA;AAE9G,4GAA4G;AAC5G,eAAO,MAAM,UAAU,YAAa,YAAY,KAAG,MAAM,EAGxD,CAAA;AAED,eAAO,MAAM,MAAM,SAAU,OAAO;IAClC,MAAM;IACN,KAAK;CACL,CAAA;AAKF,qGAAqG;AACrG,eAAO,MAAM,WAAW,UAAW,UAAU,KAAG,MA8F/C,CAAA"}
@@ -0,0 +1,96 @@
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 documentsRule = (standard) => standard.split(/^## Documents$/m)[1]?.split(/^## /m)[0] ?? "";
20
+ export const pageSplit = (input) => {
21
+ const pages = split(userPages(input.max), userPages(input.tg));
22
+ const rule = documentsRule(input.standard);
23
+ const explained = (name) => rule.includes(`\`${name}\``);
24
+ return { ...pages, explained };
25
+ };
26
+ export const readmeSections = (readme = "") => [...readme.matchAll(/^## (.+)$/gm)].map((match) => match[1] ?? "");
27
+ export const toolNames = (side, cli) => side.tools.map((name) => name.replace(`${cli}_`, ""));
28
+ /** The `--allow-*` options of a CLI's `mcp` command: passing them all makes its server offer every tool. */
29
+ export const allowFlags = (program) => {
30
+ const mcp = program.commands.find((command) => command.path.join(" ") === "mcp");
31
+ return (mcp?.options ?? []).map((option) => longName(option.flags)).filter((name) => name.startsWith("--allow-"));
32
+ };
33
+ export const ciRuns = (side) => ({
34
+ parity: side.ci.includes("cli-messaging-parity"),
35
+ pages: /cli-messaging-parity \S+ --pages/.test(side.ci),
36
+ });
37
+ const mark = (ok) => (ok ? "✅" : "🔴");
38
+ const code = (names) => (names.length === 0 ? "none" : names.map((name) => `\`${name}\``).join(", "));
39
+ /** The measured half of a parity audit, as Markdown: everything a script can say without judging. */
40
+ export const renderAudit = (input) => {
41
+ const { manifest, max, tg } = input;
42
+ const out = [];
43
+ const section = (title) => out.push("", `### ${title}`, "");
44
+ out.push("## Measured from the two CLIs", "", `cli-messaging \`${input.shared.commit}\` (${input.shared.version}) · max-cli \`${max.commit}\` · ` +
45
+ `tg-cli \`${tg.commit}\`. Statuses: ✅ agrees · 🔴 differs · ⚪ one-sided with a stated reason.`);
46
+ section("The checks CI runs");
47
+ const maxProblems = parityProblems(manifest, "max", max.program);
48
+ const tgProblems = parityProblems(manifest, "tg", tg.program);
49
+ const wording = wordingProblems(manifest, max.program, tg.program);
50
+ const pageCheck = (cli, side) => Object.entries(side.pages).flatMap(([name, text]) => pageProblems(text, cli, manifest, side.program).map((found) => `${name}: ${found}`));
51
+ const pagesMax = pageCheck("max", max);
52
+ const pagesTg = pageCheck("tg", tg);
53
+ 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)}`);
54
+ for (const [cli, side] of [
55
+ ["max", max],
56
+ ["tg", tg],
57
+ ]) {
58
+ const runs = ciRuns(side);
59
+ 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)`);
60
+ }
61
+ section("Shared package pinned");
62
+ for (const name of ["@leemour/cli-messaging", "@leemour/cli-core"]) {
63
+ const latest = name === "@leemour/cli-messaging" ? input.shared.version : undefined;
64
+ const pins = [max.pins[name], tg.pins[name]];
65
+ const same = pins[0] === pins[1] && (latest === undefined || pins[0] === latest);
66
+ out.push(`- ${mark(same)} **${name}** — max ${pins[0] ?? "none"}, tg ${pins[1] ?? "none"}` +
67
+ (latest ? `, main ${latest}` : ""));
68
+ }
69
+ section("MCP tools");
70
+ const tools = split(toolNames(max, "max"), toolNames(tg, "tg"));
71
+ 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)}`);
72
+ section("User pages");
73
+ const pages = pageSplit(input);
74
+ for (const name of pages.both) {
75
+ const lines = [lineCount(max.pages[`docs/${name}`]), lineCount(tg.pages[`docs/${name}`])];
76
+ const short = Math.min(...lines) / Math.max(...lines);
77
+ out.push(`- ${short >= 0.75 ? "✅" : "🔴"} \`${name}\` — max ${lines[0]} lines, tg ${lines[1]}`);
78
+ }
79
+ for (const [cli, names] of [
80
+ ["max", pages.max],
81
+ ["tg", pages.tg],
82
+ ])
83
+ for (const name of names)
84
+ out.push(`- ${pages.explained(name) ? "⚪" : "🔴"} \`${name}\` — ${cli} only; ` +
85
+ (pages.explained(name) ? "STANDARD says why" : "STANDARD gives no reason"));
86
+ out.push("", "A pair is 🔴 when the shorter page has under three quarters of the longer one's lines.");
87
+ section("README sections");
88
+ const sections = [readmeSections(max.pages["README.md"]), readmeSections(tg.pages["README.md"])];
89
+ 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(" · ")}`);
90
+ section("Release and QA tooling");
91
+ const scripts = split(max.scripts, tg.scripts);
92
+ const skills = split(max.skills, tg.skills);
93
+ 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)}`);
94
+ return out.join("\n");
95
+ };
96
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/parity/audit.ts"],"names":[],"mappings":"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"}
@@ -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,oBAwGxD,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();
@@ -73,6 +75,21 @@ export const conversationsService = (deps) => {
73
75
  }
74
76
  return conversation;
75
77
  },
78
+ batchStatus: async (chat, size) => {
79
+ const { store, account, chatId } = await found(chat);
80
+ const { messages, characters } = await store.batchStatus(account, chatId);
81
+ return {
82
+ chat: chatId,
83
+ messages,
84
+ characters,
85
+ batches: Math.ceil(messages / sized(size)),
86
+ tokensEstimate: Math.round(characters / 4),
87
+ };
88
+ },
89
+ nextBatch: async (chat, size) => {
90
+ const { store, account, chatId } = await found(chat);
91
+ return store.nextBatch(account, chatId, { size: sized(size) });
92
+ },
76
93
  links: async (chat, message) => {
77
94
  const { store, account, chatId } = await found(chat);
78
95
  const chosenOf = (links) => links.find((link) => !link.stale);
@@ -89,4 +106,10 @@ export const conversationsService = (deps) => {
89
106
  },
90
107
  };
91
108
  };
109
+ const sized = (size) => {
110
+ if (!Number.isInteger(size) || size < BATCH_SIZE.min || size > BATCH_SIZE.max) {
111
+ throw new CliError("validation_error", `--size takes ${BATCH_SIZE.min} to ${BATCH_SIZE.max} messages`);
112
+ }
113
+ return size;
114
+ };
92
115
  //# 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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"}
@@ -137,6 +137,15 @@ 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
+ /** How many messages still need the user's agent, and their characters (phase 4). */
141
+ batchStatus(key: AccountKey, chatId: Id): Promise<{
142
+ messages: number;
143
+ characters: number;
144
+ }>;
145
+ /** The earliest window holding a message the agent has not answered; `undefined` when none is left. */
146
+ nextBatch(key: AccountKey, chatId: Id, options: {
147
+ size: number;
148
+ }): Promise<LinkBatch | undefined>;
140
149
  /** Whether the chat's conversations were built, and when; `undefined` when never. */
141
150
  conversationState(key: AccountKey, chatId: Id): Promise<{
142
151
  enabledAt: string;
@@ -275,6 +284,41 @@ export interface ConversationSummary {
275
284
  builtAt: string;
276
285
  algorithmVersion: number;
277
286
  }
287
+ /** One message as the user's agent sees it in a batch (phase 4 plan A4). */
288
+ export interface BatchMessage {
289
+ id: Id;
290
+ at: string;
291
+ sender: {
292
+ id: Id | null;
293
+ name: string | null;
294
+ };
295
+ text: string;
296
+ /** The message it answers, by the messenger's own record. */
297
+ replyTo?: Id;
298
+ thread?: Id;
299
+ mentions?: Id[];
300
+ /** `true`: the agent is asked which earlier message this one answers. `false`: context only. */
301
+ answer: boolean;
302
+ /** For a message to answer: the current build's messenger and rule links, strongest first. */
303
+ candidates?: {
304
+ parent: Id | null;
305
+ source: string;
306
+ kind: string;
307
+ confidence: number;
308
+ }[];
309
+ }
310
+ /** A window of a chat for the agent: the messages to answer and the ones before them (A1). */
311
+ export interface LinkBatch {
312
+ /** Names the window, so an answer can be checked against it (A3). */
313
+ batch: string;
314
+ chat: Id;
315
+ messages: BatchMessage[];
316
+ /** Messages still needing the agent after this batch, and their characters. */
317
+ remaining: {
318
+ messages: number;
319
+ characters: number;
320
+ };
321
+ }
278
322
  export interface StoredLink {
279
323
  /** `null`: the source says the message starts a conversation. */
280
324
  parentId: Id | null;