@wirecat/cli-core 0.308.0 → 0.309.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 (74) hide show
  1. package/dist/cli/meeting-preparation-answer.d.ts +86 -0
  2. package/dist/cli/meeting-preparation-answer.d.ts.map +1 -1
  3. package/dist/cli/meeting-preparation-answer.js +4 -0
  4. package/dist/cli/meeting-preparation-answer.js.map +1 -1
  5. package/dist/cli/meeting-preparation-budget.d.ts.map +1 -1
  6. package/dist/cli/meeting-preparation-budget.js +19 -0
  7. package/dist/cli/meeting-preparation-budget.js.map +1 -1
  8. package/dist/cli/meeting-preparation-command.d.ts.map +1 -1
  9. package/dist/cli/meeting-preparation-command.js +2 -0
  10. package/dist/cli/meeting-preparation-command.js.map +1 -1
  11. package/dist/cli/meeting-preparation-projects.d.ts +88 -0
  12. package/dist/cli/meeting-preparation-projects.d.ts.map +1 -0
  13. package/dist/cli/meeting-preparation-projects.js +24 -0
  14. package/dist/cli/meeting-preparation-projects.js.map +1 -0
  15. package/dist/cli/meeting-preparation-read.d.ts +87 -0
  16. package/dist/cli/meeting-preparation-read.d.ts.map +1 -1
  17. package/dist/cli/meeting-preparation-read.js +4 -1
  18. package/dist/cli/meeting-preparation-read.js.map +1 -1
  19. package/dist/cli/messenger/backfill-command.d.ts.map +1 -1
  20. package/dist/cli/messenger/backfill-command.js +4 -1
  21. package/dist/cli/messenger/backfill-command.js.map +1 -1
  22. package/dist/cli/messenger/store-maintenance-command.d.ts +1 -1
  23. package/dist/cli/messenger/tasks-command.d.ts.map +1 -1
  24. package/dist/cli/messenger/tasks-command.js +34 -0
  25. package/dist/cli/messenger/tasks-command.js.map +1 -1
  26. package/dist/cli/store-settings.d.ts.map +1 -1
  27. package/dist/cli/store-settings.js +30 -0
  28. package/dist/cli/store-settings.js.map +1 -1
  29. package/dist/entities/index.d.ts +86 -0
  30. package/dist/entities/index.d.ts.map +1 -1
  31. package/dist/entities/meeting-preparation.d.ts +86 -0
  32. package/dist/entities/meeting-preparation.d.ts.map +1 -1
  33. package/dist/entities/meeting-preparation.js +15 -0
  34. package/dist/entities/meeting-preparation.js.map +1 -1
  35. package/dist/mcp/meeting-preparation.d.ts +86 -0
  36. package/dist/mcp/meeting-preparation.d.ts.map +1 -1
  37. package/dist/mcp/meeting-preparation.js +1 -1
  38. package/dist/mcp/meeting-preparation.js.map +1 -1
  39. package/dist/mcp/tools/tasks.d.ts.map +1 -1
  40. package/dist/mcp/tools/tasks.js +27 -0
  41. package/dist/mcp/tools/tasks.js.map +1 -1
  42. package/dist/meetings/mcp/index.d.ts +15 -15
  43. package/dist/meetings/mcp/index.d.ts.map +1 -1
  44. package/dist/sends/permissions.d.ts.map +1 -1
  45. package/dist/sends/permissions.js +1 -0
  46. package/dist/sends/permissions.js.map +1 -1
  47. package/dist/services/meeting-preparation-types.d.ts +14 -0
  48. package/dist/services/meeting-preparation-types.d.ts.map +1 -1
  49. package/dist/services/meeting-preparation-validation.d.ts +2 -0
  50. package/dist/services/meeting-preparation-validation.d.ts.map +1 -1
  51. package/dist/services/meeting-preparation-validation.js +7 -0
  52. package/dist/services/meeting-preparation-validation.js.map +1 -1
  53. package/dist/services/meeting-preparation.d.ts.map +1 -1
  54. package/dist/services/meeting-preparation.js +13 -2
  55. package/dist/services/meeting-preparation.js.map +1 -1
  56. package/dist/services/meeting-project-preparation.d.ts +4 -0
  57. package/dist/services/meeting-project-preparation.d.ts.map +1 -0
  58. package/dist/services/meeting-project-preparation.js +52 -0
  59. package/dist/services/meeting-project-preparation.js.map +1 -0
  60. package/dist/services/task-rules.d.ts +37 -5
  61. package/dist/services/task-rules.d.ts.map +1 -1
  62. package/dist/services/task-rules.js +57 -10
  63. package/dist/services/task-rules.js.map +1 -1
  64. package/dist/store/sqlite/task-close-store.d.ts +3 -0
  65. package/dist/store/sqlite/task-close-store.d.ts.map +1 -1
  66. package/dist/store/sqlite/task-close-store.js +3 -0
  67. package/dist/store/sqlite/task-close-store.js.map +1 -1
  68. package/dist/store/sqlite/task-first-pass.d.ts +12 -0
  69. package/dist/store/sqlite/task-first-pass.d.ts.map +1 -0
  70. package/dist/store/sqlite/task-first-pass.js +29 -0
  71. package/dist/store/sqlite/task-first-pass.js.map +1 -0
  72. package/package.json +1 -1
  73. package/parity.json +6 -0
  74. package/skills/follow-ups/SKILL.md +5 -0
@@ -1,6 +1,9 @@
1
1
  import type { createUpcomingMeetingReader, MeetingHistoryEntry, MeetingPreparationContext, MeetingPreparationContextStore, MeetingPreparationFact, MeetingPreparationKnowledgeStore, MeetingPreparationNote, MeetingPreparationNotesSelection, MeetingPreparationNotesStore, MeetingReadCapabilities, MeetingRelatedHistoryEntry, MeetingRelatedHistoryStore, MeetingSeriesContext, MeetingSeriesHistoryStore, MeetingStore, UpcomingMeetingResult } from "../meetings/index.js";
2
+ import type { MeetingProjectDiscoveryPage } from "../meetings/project-discovery.js";
2
3
  import type { MeetingEvidencePacket } from "./meeting-evidence.js";
4
+ import type { readMeetingProjectDiscovery } from "./meeting-project-discovery.js";
3
5
  export interface MeetingPreparationRequest {
6
+ project?: string;
4
7
  after: number;
5
8
  until: number;
6
9
  historyAfter: number;
@@ -13,6 +16,7 @@ export interface MeetingPreparationRequest {
13
16
  }
14
17
  export interface MeetingPreparationPorts {
15
18
  meetings: Pick<MeetingStore, "account"> & MeetingReadCapabilities & MeetingSeriesHistoryStore & MeetingPreparationContextStore & MeetingRelatedHistoryStore & Partial<MeetingPreparationKnowledgeStore & MeetingPreparationNotesStore>;
19
+ projectDiscovery?: Parameters<typeof readMeetingProjectDiscovery>[0];
16
20
  upcoming: ReturnType<typeof createUpcomingMeetingReader>;
17
21
  }
18
22
  export interface MeetingPreparationEntry {
@@ -63,6 +67,16 @@ export interface MeetingPreparation {
63
67
  otherSources: "not-queried";
64
68
  };
65
69
  };
70
+ projectEvidence?: {
71
+ project: string;
72
+ query: string;
73
+ pages: MeetingProjectDiscoveryPage[];
74
+ coverage: {
75
+ pageLimit: number;
76
+ hasMore: boolean;
77
+ outputLimited: boolean;
78
+ };
79
+ };
66
80
  limits: {
67
81
  meetings: number;
68
82
  cues: number;
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-preparation-types.d.ts","sourceRoot":"","sources":["../../src/services/meeting-preparation-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meeting-preparation-types.d.ts","sourceRoot":"","sources":["../../src/services/meeting-preparation-types.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export declare const MEETING_PREPARATION_LIMITS: {
28
28
  };
29
29
  export declare const preparationCancelled: (signal?: AbortSignal) => void;
30
30
  export declare const validateMeetingPreparationRequest: (externalId: string, original: MeetingPreparationRequest) => {
31
+ project?: string;
31
32
  after: number;
32
33
  until: number;
33
34
  historyAfter: number;
@@ -39,6 +40,7 @@ export declare const validateMeetingPreparationRequest: (externalId: string, ori
39
40
  maxReadBytes: number;
40
41
  };
41
42
  export declare const preparationRequest: (accountId: number, externalId: string, original: MeetingPreparationRequest) => {
43
+ project?: string;
42
44
  after: number;
43
45
  until: number;
44
46
  historyAfter: number;
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-preparation-validation.d.ts","sourceRoot":"","sources":["../../src/services/meeting-preparation-validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAE/E,eAAO,MAAM,0BAA0B;aACrC,QAAQ;iBAAI,GAAG,EAAE,CAAC;iBAAE,GAAG,EAAE,EAAE;iBAAE,OAAO,EAAE,CAAC;;aACvC,IAAI;iBAAI,GAAG,EAAE,CAAC;iBAAE,GAAG,EAAE,GAAG;iBAAE,OAAO,EAAE,EAAE;;aACrC,YAAY;iBAAI,GAAG,EAAE,CAAC;iBAAE,GAAG,EAAE,GAAG;iBAAE,OAAO,EAAE,EAAE;;aAC7C,KAAK;iBAAI,GAAG,EAAE,IAAI;iBAAE,GAAG,EAAE,OAAO;iBAAE,OAAO,EAAE,KAAK;;aAChD,YAAY;iBAAI,GAAG,EAAE,CAAC;iBAAE,GAAG,EAAE,OAAO;iBAAE,OAAO,EAAE,MAAM;;CAC7C,CAAA;AAEV,eAAO,MAAM,oBAAoB,YAAa,WAAW,KAAG,IAO3D,CAAA;AACD,eAAO,MAAM,iCAAiC,eAAgB,MAAM,YAAY,yBAAyB;;;;;;;;;;CA6CxG,CAAA;AAED,eAAO,MAAM,kBAAkB,cAAe,MAAM,cAAc,MAAM,YAAY,yBAAyB;;;;;;;;;;;;;;;;;;;CAY5G,CAAA"}
1
+ {"version":3,"file":"meeting-preparation-validation.d.ts","sourceRoot":"","sources":["../../src/services/meeting-preparation-validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAE/E,eAAO,MAAM,0BAA0B;aACrC,QAAQ;iBAAI,GAAG,EAAE,CAAC;iBAAE,GAAG,EAAE,EAAE;iBAAE,OAAO,EAAE,CAAC;;aACvC,IAAI;iBAAI,GAAG,EAAE,CAAC;iBAAE,GAAG,EAAE,GAAG;iBAAE,OAAO,EAAE,EAAE;;aACrC,YAAY;iBAAI,GAAG,EAAE,CAAC;iBAAE,GAAG,EAAE,GAAG;iBAAE,OAAO,EAAE,EAAE;;aAC7C,KAAK;iBAAI,GAAG,EAAE,IAAI;iBAAE,GAAG,EAAE,OAAO;iBAAE,OAAO,EAAE,KAAK;;aAChD,YAAY;iBAAI,GAAG,EAAE,CAAC;iBAAE,GAAG,EAAE,OAAO;iBAAE,OAAO,EAAE,MAAM;;CAC7C,CAAA;AAEV,eAAO,MAAM,oBAAoB,YAAa,WAAW,KAAG,IAO3D,CAAA;AACD,eAAO,MAAM,iCAAiC,eAAgB,MAAM,YAAY,yBAAyB;;;;;;;;;;;CAsDxG,CAAA;AAED,eAAO,MAAM,kBAAkB,cAAe,MAAM,cAAc,MAAM,YAAY,yBAAyB;;;;;;;;;;;;;;;;;;;;CAY5G,CAAA"}
@@ -20,6 +20,7 @@ export const validateMeetingPreparationRequest = (externalId, original) => {
20
20
  const input = { ...original };
21
21
  for (const key of Object.keys(input))
22
22
  if (![
23
+ "project",
23
24
  "after",
24
25
  "until",
25
26
  "historyAfter",
@@ -41,6 +42,12 @@ export const validateMeetingPreparationRequest = (externalId, original) => {
41
42
  throw new CliError("validation_error", `${key} must be an integer from ${limits.min} to ${limits.max}`);
42
43
  return result;
43
44
  };
45
+ if (input.project !== undefined &&
46
+ (typeof input.project !== "string" ||
47
+ !input.project.trim() ||
48
+ input.project.length > 200 ||
49
+ /[\p{Cc}\p{Cf}]/u.test(input.project)))
50
+ throw new CliError("validation_error", "project must name one existing project, key or alias");
44
51
  const meetings = bounded("meetings");
45
52
  const cues = bounded("cues");
46
53
  const contextLimit = bounded("contextLimit");
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-preparation-validation.js","sourceRoot":"","sources":["../../src/services/meeting-preparation-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meeting-preparation-validation.js","sourceRoot":"","sources":["../../src/services/meeting-preparation-validation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-preparation.d.ts","sourceRoot":"","sources":["../../src/services/meeting-preparation.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,oBAAoB,EAAwB,MAAM,sBAAsB,CAAA;AAI9G,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,gCAAgC,CAAA;AAMvC,eAAO,MAAM,+BAA+B,UACnC,oBAAoB,aAChB,MAAM,SACV,uBAAuB;IA8B5B,KAAK;IACC,OAAO,aAAa,MAAM,YAAY,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA2GtG,CAAA"}
1
+ {"version":3,"file":"meeting-preparation.d.ts","sourceRoot":"","sources":["../../src/services/meeting-preparation.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,oBAAoB,EAAwB,MAAM,sBAAsB,CAAA;AAI9G,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,gCAAgC,CAAA;AAOvC,eAAO,MAAM,+BAA+B,UACnC,oBAAoB,aAChB,MAAM,SACV,uBAAuB;IAmC5B,KAAK;IACC,OAAO,aAAa,MAAM,YAAY,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAiHtG,CAAA"}
@@ -4,6 +4,7 @@ import { readMeetingEvidence } from "./meeting-evidence.js";
4
4
  import { appendKnowledgePreparation } from "./meeting-knowledge-preparation.js";
5
5
  import { appendNotesPreparation } from "./meeting-notes-preparation.js";
6
6
  import { preparationCancelled, preparationRequest } from "./meeting-preparation-validation.js";
7
+ import { appendProjectPreparation } from "./meeting-project-preparation.js";
7
8
  import { appendRelatedPreparation } from "./meeting-related-preparation.js";
8
9
  const size = (value) => Buffer.byteLength(JSON.stringify(value), "utf8");
9
10
  export const createMeetingPreparationService = (scope, accountId, ports) => {
@@ -11,6 +12,7 @@ export const createMeetingPreparationService = (scope, accountId, ports) => {
11
12
  if (!Number.isSafeInteger(accountId) || accountId < 1)
12
13
  throw new CliError("validation_error", "accountId must be a positive safe integer");
13
14
  const store = ports?.meetings;
15
+ const projectDiscovery = ports?.projectDiscovery;
14
16
  if (!store ||
15
17
  [
16
18
  "account",
@@ -24,7 +26,11 @@ export const createMeetingPreparationService = (scope, accountId, ports) => {
24
26
  ].some((key) => typeof store[key] !== "function") ||
25
27
  typeof ports?.upcoming?.next !== "function" ||
26
28
  (store.preparationKnowledge !== undefined && typeof store.preparationKnowledge !== "function") ||
27
- (store.preparationNotes !== undefined && typeof store.preparationNotes !== "function"))
29
+ (store.preparationNotes !== undefined && typeof store.preparationNotes !== "function") ||
30
+ (projectDiscovery !== undefined &&
31
+ (!projectDiscovery ||
32
+ typeof projectDiscovery.vocabulary?.resolveVocabulary !== "function" ||
33
+ typeof projectDiscovery.search?.searchHits !== "function")))
28
34
  throw new CliError("configuration_error", "Meeting preparation requires bounded meeting reads and an upcoming reader");
29
35
  if (ports.upcoming.scope?.provider !== fixed.provider || ports.upcoming.scope?.account !== fixed.account)
30
36
  throw new CliError("configuration_error", "The upcoming reader belongs to another provider or account");
@@ -34,6 +40,8 @@ export const createMeetingPreparationService = (scope, accountId, ports) => {
34
40
  async prepare(externalId, original) {
35
41
  const input = preparationRequest(accountId, externalId, original);
36
42
  const { signal, meetings, cues, contextLimit, maxReadBytes, bytes } = input;
43
+ if (input.project !== undefined && !projectDiscovery)
44
+ throw new CliError("configuration_error", "Project evidence is unavailable in this preparation host");
37
45
  const owner = await store.account(accountId);
38
46
  preparationCancelled(signal);
39
47
  if (!owner || owner.provider !== fixed.provider || owner.account !== fixed.account)
@@ -81,8 +89,10 @@ export const createMeetingPreparationService = (scope, accountId, ports) => {
81
89
  throw new CliError("invalid_response", "The history reader returned another series or exceeded its bound");
82
90
  if (size(result) > bytes)
83
91
  throw new CliError("validation_error", "Preparation metadata exceeds bytes; increase the output budget");
84
- if (!history.series)
92
+ if (!history.series) {
93
+ await appendProjectPreparation(projectDiscovery, result, input);
85
94
  return structuredClone(result);
95
+ }
86
96
  const seriesId = history.series.id;
87
97
  for (const meeting of history.items) {
88
98
  preparationCancelled(signal);
@@ -131,6 +141,7 @@ export const createMeetingPreparationService = (scope, accountId, ports) => {
131
141
  await appendRelatedPreparation(store, result, input);
132
142
  await appendKnowledgePreparation(store, result, input);
133
143
  await appendNotesPreparation(store, result, input);
144
+ await appendProjectPreparation(projectDiscovery, result, input);
134
145
  preparationCancelled(signal);
135
146
  if (size(result) > bytes)
136
147
  throw new CliError("validation_error", "Preparation coverage exceeds bytes; increase the output budget");
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-preparation.js","sourceRoot":"","sources":["../../src/services/meeting-preparation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meeting-preparation.js","sourceRoot":"","sources":["../../src/services/meeting-preparation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { MeetingPreparation, MeetingPreparationPorts } from "./meeting-preparation-types.js";
2
+ import { type preparationRequest } from "./meeting-preparation-validation.js";
3
+ export declare const appendProjectPreparation: (ports: MeetingPreparationPorts["projectDiscovery"], result: MeetingPreparation, input: ReturnType<typeof preparationRequest>) => Promise<void>;
4
+ //# sourceMappingURL=meeting-project-preparation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-project-preparation.d.ts","sourceRoot":"","sources":["../../src/services/meeting-project-preparation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACjG,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAMnG,eAAO,MAAM,wBAAwB,UAC5B,uBAAuB,CAAC,kBAAkB,CAAC,UAC1C,kBAAkB,SACnB,UAAU,CAAC,OAAO,kBAAkB,CAAC,kBA4C7C,CAAA"}
@@ -0,0 +1,52 @@
1
+ import { prepareMeetingProjectEvidence } from "../meetings/project-evidence-query.js";
2
+ import { preparationCancelled } from "./meeting-preparation-validation.js";
3
+ import { readMeetingProjectDiscovery } from "./meeting-project-discovery.js";
4
+ const PAGE_LIMIT = 4;
5
+ const size = (value) => Buffer.byteLength(JSON.stringify(value), "utf8");
6
+ export const appendProjectPreparation = async (ports, result, input) => {
7
+ if (input.project === undefined || !ports || result.coverage.outputLimited)
8
+ return;
9
+ const prepared = prepareMeetingProjectEvidence(input.project, {
10
+ query: `started_at:["${new Date(input.historyAfter).toISOString()}" TO "${new Date(input.after - 1).toISOString()}"]`,
11
+ limit: Math.min(input.contextLimit, 20),
12
+ maxReadBytes: input.maxReadBytes,
13
+ signal: input.signal,
14
+ });
15
+ const section = {
16
+ project: prepared.project,
17
+ query: prepared.query,
18
+ pages: [],
19
+ coverage: { pageLimit: PAGE_LIMIT, hasMore: true, outputLimited: false },
20
+ };
21
+ result.projectEvidence = section;
22
+ if (size(result) > input.bytes) {
23
+ delete result.projectEvidence;
24
+ result.coverage.outputLimited = true;
25
+ return;
26
+ }
27
+ let cursor;
28
+ for (let index = 0; index < PAGE_LIMIT; index++) {
29
+ const page = await readMeetingProjectDiscovery(ports, prepared.project, {
30
+ ...prepared.options,
31
+ accountId: result.accountId,
32
+ maxVocabularyReadBytes: input.maxReadBytes,
33
+ ...(cursor === undefined ? {} : { cursor }),
34
+ }).catch((error) => {
35
+ preparationCancelled(input.signal);
36
+ throw error;
37
+ });
38
+ preparationCancelled(input.signal);
39
+ section.pages.push(page);
40
+ section.coverage.hasMore = page.hasMore;
41
+ if (size(result) > input.bytes) {
42
+ section.pages.pop();
43
+ section.coverage.hasMore = true;
44
+ section.coverage.outputLimited = result.coverage.outputLimited = true;
45
+ break;
46
+ }
47
+ if (!page.hasMore)
48
+ break;
49
+ cursor = page.nextCursor ?? undefined;
50
+ }
51
+ };
52
+ //# sourceMappingURL=meeting-project-preparation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-project-preparation.js","sourceRoot":"","sources":["../../src/services/meeting-project-preparation.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,22 @@
1
1
  import type { Message, ReviewChat } from "../domain/models.js";
2
2
  import type { AccountKey, MessageStore } from "../store/store.js";
3
- import { type TaskStore } from "../tasks/index.js";
3
+ import { type TaskKind, type TaskStore } from "../tasks/index.js";
4
4
  import { type TaskCategory } from "./task-categories.js";
5
5
  export interface RuleResult {
6
6
  added: number;
7
7
  closed: number;
8
8
  /** Opened tasks that may be the same job as another: on the review list (`tasks duplicates`). */
9
9
  review: number;
10
+ /** Tasks the rules found but did not open: over the per-chat limit, or a dry run. */
11
+ held?: number;
12
+ /** Chats with at least one held task. */
13
+ heldChats?: number;
14
+ }
15
+ /** A task the rules would open, for a dry run. */
16
+ export interface HeldTask {
17
+ source: string;
18
+ kind: TaskKind;
19
+ category: string | null;
10
20
  }
11
21
  export declare const taskAccount: ({ provider, account }: AccountKey) => string;
12
22
  /**
@@ -18,11 +28,16 @@ export declare const taskAccount: ({ provider, account }: AccountKey) => string;
18
28
  */
19
29
  export declare const applyTaskRules: (review: {
20
30
  chats: Pick<ReviewChat, "id" | "messages">[];
21
- }, { store, account, now, categories, }: {
31
+ }, { store, account, now, categories, openLimit, dryRun, onHeld, }: {
22
32
  store: TaskStore;
23
33
  account: AccountKey;
24
34
  now?: () => Date;
25
35
  categories?: readonly TaskCategory[];
36
+ /** Per chat: the newest this many are opened, the rest held. */
37
+ openLimit?: number;
38
+ /** Changes nothing: what would open is held and passed to `onHeld`. */
39
+ dryRun?: boolean;
40
+ onHeld?: (task: HeldTask) => void;
26
41
  }) => Promise<RuleResult>;
27
42
  /** How far back `serve` looks when a message arrives: enough to see whether it answers a recent question. */
28
43
  export declare const ARRIVAL_WINDOW = 50;
@@ -34,9 +49,10 @@ export declare const STORED_PASS_LIMIT = 1000;
34
49
  * The rule pass over what is already stored, for a program that reads no messenger (memo): every chat of
35
50
  * the account stored into after `since`, its new messages with the ARRIVAL_WINDOW before them, through the
36
51
  * rules `review` applies. `until` is the newest store time it saw — the next pass's `since`, so a pass reads
37
- * only what changed. A chat with more new messages than STORED_PASS_LIMIT has its oldest left unread.
52
+ * only what changed. A chat with more new messages than STORED_PASS_LIMIT has its oldest left unread. After
53
+ * `since`, a chat with nothing sent since is skipped: a backfill of old history is not new work.
38
54
  */
39
- export declare const applyTaskRulesToStored: (store: MessageStore, account: AccountKey, since?: string, newerThan?: string) => Promise<RuleResult & {
55
+ export declare const applyTaskRulesToStored: (store: MessageStore, account: AccountKey, since?: string, newerThan?: string, openLimit?: number) => Promise<RuleResult & {
40
56
  until: string | null;
41
57
  }>;
42
58
  /** How far back the first pass after a sync looks, by the newest message's time: older chats are history, not work. */
@@ -44,7 +60,8 @@ export declare const FIRST_PASS_DAYS = 14;
44
60
  /**
45
61
  * The task rules over what a sync stored, from where the account's last pass stopped. The first pass reads only
46
62
  * chats with a message in the last FIRST_PASS_DAYS, so a store that already holds years of chats opens no task
47
- * for a question asked long ago.
63
+ * for a question asked long ago, and opens at most `task_first_pass_per_chat` per chat (0 by default): what it
64
+ * holds back is counted, for the owner to build with `tasks apply`.
48
65
  */
49
66
  export declare const applyTaskRulesSinceLastPass: (store: MessageStore, account: AccountKey, now?: Date) => Promise<RuleResult>;
50
67
  /**
@@ -52,4 +69,19 @@ export declare const applyTaskRulesSinceLastPass: (store: MessageStore, account:
52
69
  * the task a source already has, so a message arriving twice opens one.
53
70
  */
54
71
  export declare const openRequestTask: (store: MessageStore, account: AccountKey, message: Message) => Promise<boolean>;
72
+ /** What `tasks apply` did, or would do without `--yes`, in one chat. */
73
+ export interface ChatRulePass extends RuleResult {
74
+ chat: string;
75
+ messages: number;
76
+ tasks: HeldTask[];
77
+ }
78
+ /**
79
+ * `tasks apply`: the task rules over the newest `last` stored messages of chats the owner names — how a chat's
80
+ * history becomes tasks when the first sync left it alone. Without `yes` it changes nothing and lists what would
81
+ * open; with it, it opens them through the duplicate check, as a sync's pass would.
82
+ */
83
+ export declare const applyTaskRulesToChats: (store: MessageStore, account: AccountKey, chatIds: readonly string[], { last, yes }?: {
84
+ last?: number;
85
+ yes?: boolean;
86
+ }) => Promise<ChatRulePass[]>;
55
87
  //# sourceMappingURL=task-rules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-rules.d.ts","sourceRoot":"","sources":["../../src/services/task-rules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAM,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEpF,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEpE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,iGAAiG;IACjG,MAAM,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,WAAW,0BAA2B,UAAU,KAAG,MAAkC,CAAA;AAElG;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,WACjB;IAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,UAAU,CAAC,EAAE,CAAA;CAAE,wCAMrD;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;CAAE,KACnG,OAAO,CAAC,UAAU,CAyCpB,CAAA;AAED,6GAA6G;AAC7G,eAAO,MAAM,cAAc,KAAK,CAAA;AAEhC,mHAAmH;AACnH,eAAO,MAAM,uBAAuB,UAC3B,YAAY,WACV,UAAU,WACV,OAAO,KACf,OAAO,CAAC,UAAU,CASpB,CAAA;AAED,2FAA2F;AAC3F,eAAO,MAAM,iBAAiB,OAAO,CAAA;AAErC;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,UAC1B,YAAY,WACV,UAAU,UACX,MAAM,cACF,MAAM,KACjB,OAAO,CAAC,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAwB/C,CAAA;AAED,uHAAuH;AACvH,eAAO,MAAM,eAAe,KAAK,CAAA;AAEjC;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,UAC/B,YAAY,WACV,UAAU,iBAElB,OAAO,CAAC,UAAU,CAMpB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,UAAiB,YAAY,WAAW,UAAU,WAAW,OAAO,KAAG,OAAO,CAAC,OAAO,CAgBjH,CAAA"}
1
+ {"version":3,"file":"task-rules.d.ts","sourceRoot":"","sources":["../../src/services/task-rules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAM,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAqB,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEpF,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEpE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,iGAAiG;IACjG,MAAM,EAAE,MAAM,CAAA;IACd,qFAAqF;IACrF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,kDAAkD;AAClD,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED,eAAO,MAAM,WAAW,0BAA2B,UAAU,KAAG,MAAkC,CAAA;AAElG;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,WACjB;IAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,UAAU,CAAC,EAAE,CAAA;CAAE,mEASrD;IACD,KAAK,EAAE,SAAS,CAAA;IAChB,OAAO,EAAE,UAAU,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;IAChB,UAAU,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;IACpC,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;CAClC,KACA,OAAO,CAAC,UAAU,CA0DpB,CAAA;AAED,6GAA6G;AAC7G,eAAO,MAAM,cAAc,KAAK,CAAA;AAEhC,mHAAmH;AACnH,eAAO,MAAM,uBAAuB,UAC3B,YAAY,WACV,UAAU,WACV,OAAO,KACf,OAAO,CAAC,UAAU,CASpB,CAAA;AAED,2FAA2F;AAC3F,eAAO,MAAM,iBAAiB,OAAO,CAAA;AAErC;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,UAC1B,YAAY,WACV,UAAU,UACX,MAAM,cACF,MAAM,cACN,MAAM,KACjB,OAAO,CAAC,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAgC/C,CAAA;AAED,uHAAuH;AACvH,eAAO,MAAM,eAAe,KAAK,CAAA;AAEjC;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,UAC/B,YAAY,WACV,UAAU,iBAElB,OAAO,CAAC,UAAU,CAOpB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,UAAiB,YAAY,WAAW,UAAU,WAAW,OAAO,KAAG,OAAO,CAAC,OAAO,CAgBjH,CAAA;AAgBD,wEAAwE;AACxE,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,QAAQ,EAAE,CAAA;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,UACzB,YAAY,WACV,UAAU,WACV,SAAS,MAAM,EAAE,kBACc;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,KACvE,OAAO,CAAC,YAAY,EAAE,CAaxB,CAAA"}
@@ -10,7 +10,7 @@ export const taskAccount = ({ provider, account }) => `${provider}:${account}`;
10
10
  * Only the owner's answers count: the store knows no admins, and a review without `--unanswered` asks
11
11
  * for none. A mention is one the messenger marks by id; an `@handle` is not seen.
12
12
  */
13
- export const applyTaskRules = async (review, { store, account, now, categories, }) => {
13
+ export const applyTaskRules = async (review, { store, account, now, categories, openLimit, dryRun = false, onHeld, }) => {
14
14
  const tasks = createTaskService({ store, ...(now ? { now } : {}) });
15
15
  const owner = taskAccount(account);
16
16
  const result = { added: 0, closed: 0, review: 0 };
@@ -33,18 +33,22 @@ export const applyTaskRules = async (review, { store, account, now, categories,
33
33
  for (const task of await store.findBySource(owner, sourceOf(message))) {
34
34
  if (task.kind !== kind || task.state !== "open")
35
35
  continue;
36
+ result.closed += 1;
37
+ if (dryRun)
38
+ continue;
36
39
  await tasks.close(task.id, { as: "done", by: "rule" });
37
40
  if (answer)
38
41
  await store.answer(task.id, { resolution: "answered by the owner", by: sourceOf(answer) });
39
- result.closed += 1;
40
42
  }
41
43
  };
44
+ const hasTask = async (message) => (await store.findBySource(owner, sourceOf(message))).length > 0;
42
45
  for (const chat of review.chats) {
46
+ const opens = [];
43
47
  for (const { question, answer } of questions(chat.messages, { answerers: new Set() })) {
44
48
  if (answer)
45
49
  await close(question, "question", answer);
46
50
  else
47
- await open(question, chat.id, "question");
51
+ opens.push({ message: question, kind: "question" });
48
52
  }
49
53
  for (const [index, message] of chat.messages.entries()) {
50
54
  if (message.outgoing || !message.mentions?.includes(account.account))
@@ -52,7 +56,22 @@ export const applyTaskRules = async (review, { store, account, now, categories,
52
56
  if (ownerAnswered(chat.messages, index))
53
57
  await close(message, "mention");
54
58
  else
55
- await open(message, chat.id, "mention");
59
+ opens.push({ message, kind: "mention" });
60
+ }
61
+ opens.sort((a, b) => Date.parse(a.message.timestamp) - Date.parse(b.message.timestamp));
62
+ const keep = dryRun ? 0 : openLimit === undefined ? opens.length : Math.min(openLimit, opens.length);
63
+ let held = 0;
64
+ for (const [index, { message, kind }] of opens.entries()) {
65
+ if (index >= opens.length - keep)
66
+ await open(message, chat.id, kind);
67
+ else if (!(await hasTask(message))) {
68
+ held += 1;
69
+ onHeld?.({ source: sourceOf(message), kind, category: categorize(message.text, categories) });
70
+ }
71
+ }
72
+ if (held > 0) {
73
+ result.held = (result.held ?? 0) + held;
74
+ result.heldChats = (result.heldChats ?? 0) + 1;
56
75
  }
57
76
  }
58
77
  return result;
@@ -71,9 +90,10 @@ export const STORED_PASS_LIMIT = 1000;
71
90
  * The rule pass over what is already stored, for a program that reads no messenger (memo): every chat of
72
91
  * the account stored into after `since`, its new messages with the ARRIVAL_WINDOW before them, through the
73
92
  * rules `review` applies. `until` is the newest store time it saw — the next pass's `since`, so a pass reads
74
- * only what changed. A chat with more new messages than STORED_PASS_LIMIT has its oldest left unread.
93
+ * only what changed. A chat with more new messages than STORED_PASS_LIMIT has its oldest left unread. After
94
+ * `since`, a chat with nothing sent since is skipped: a backfill of old history is not new work.
75
95
  */
76
- export const applyTaskRulesToStored = async (store, account, since, newerThan) => {
96
+ export const applyTaskRulesToStored = async (store, account, since, newerThan, openLimit) => {
77
97
  const result = { added: 0, closed: 0, review: 0, until: since ?? null };
78
98
  const categories = await store.tasks.categories();
79
99
  for (const chat of await store.chats.chatStats(account)) {
@@ -86,13 +106,22 @@ export const applyTaskRulesToStored = async (store, account, since, newerThan) =
86
106
  continue;
87
107
  }
88
108
  const fresh = since === undefined ? 0 : await store.messages.countMessages(account, chat.chatId, { since });
109
+ if (since !== undefined && fresh === 0) {
110
+ if (result.until === null || chat.lastStoredAt > result.until)
111
+ result.until = chat.lastStoredAt;
112
+ continue;
113
+ }
89
114
  const page = await store.messages.messages(account, chat.chatId, {
90
115
  limit: Math.min(ARRIVAL_WINDOW + fresh, STORED_PASS_LIMIT),
91
116
  });
92
- const pass = await applyTaskRules({ chats: [{ id: chat.chatId, messages: page.items }] }, { store: store.tasks, account, categories });
117
+ const pass = await applyTaskRules({ chats: [{ id: chat.chatId, messages: page.items }] }, { store: store.tasks, account, categories, ...(openLimit === undefined ? {} : { openLimit }) });
93
118
  result.added += pass.added;
94
119
  result.closed += pass.closed;
95
120
  result.review += pass.review;
121
+ if (pass.held) {
122
+ result.held = (result.held ?? 0) + pass.held;
123
+ result.heldChats = (result.heldChats ?? 0) + (pass.heldChats ?? 0);
124
+ }
96
125
  if (result.until === null || chat.lastStoredAt > result.until)
97
126
  result.until = chat.lastStoredAt;
98
127
  }
@@ -103,15 +132,17 @@ export const FIRST_PASS_DAYS = 14;
103
132
  /**
104
133
  * The task rules over what a sync stored, from where the account's last pass stopped. The first pass reads only
105
134
  * chats with a message in the last FIRST_PASS_DAYS, so a store that already holds years of chats opens no task
106
- * for a question asked long ago.
135
+ * for a question asked long ago, and opens at most `task_first_pass_per_chat` per chat (0 by default): what it
136
+ * holds back is counted, for the owner to build with `tasks apply`.
107
137
  */
108
138
  export const applyTaskRulesSinceLastPass = async (store, account, now = new Date()) => {
109
139
  const since = await store.sync.taskRulesStop(account);
110
140
  const newerThan = since === null ? new Date(now.getTime() - FIRST_PASS_DAYS * 86_400_000).toISOString() : undefined;
111
- const { added, closed, review, until } = await applyTaskRulesToStored(store, account, since ?? undefined, newerThan);
141
+ const openLimit = since === null ? await store.tasks.firstPassPerChat() : undefined;
142
+ const { until, ...result } = await applyTaskRulesToStored(store, account, since ?? undefined, newerThan, openLimit);
112
143
  if (until !== null && until !== since)
113
144
  await store.sync.setTaskRulesStop(account, until);
114
- return { added, closed, review };
145
+ return result;
115
146
  };
116
147
  /**
117
148
  * A reply rule's `task` action: one `request` task pointing at the message. The service gives back
@@ -150,4 +181,20 @@ const ownerAnswered = (messages, index) => {
150
181
  return repliedSender != null && repliedSender === message.senderId;
151
182
  });
152
183
  };
184
+ /**
185
+ * `tasks apply`: the task rules over the newest `last` stored messages of chats the owner names — how a chat's
186
+ * history becomes tasks when the first sync left it alone. Without `yes` it changes nothing and lists what would
187
+ * open; with it, it opens them through the duplicate check, as a sync's pass would.
188
+ */
189
+ export const applyTaskRulesToChats = async (store, account, chatIds, { last = ARRIVAL_WINDOW, yes = false } = {}) => {
190
+ const categories = await store.tasks.categories();
191
+ const passes = [];
192
+ for (const chat of chatIds) {
193
+ const page = await store.messages.messages(account, chat, { limit: Math.min(last, STORED_PASS_LIMIT) });
194
+ const tasks = [];
195
+ const pass = await applyTaskRules({ chats: [{ id: chat, messages: page.items }] }, { store: store.tasks, account, categories, dryRun: !yes, onHeld: (task) => tasks.push(task) });
196
+ passes.push({ chat, messages: page.items.length, ...pass, tasks });
197
+ }
198
+ return passes;
199
+ };
153
200
  //# sourceMappingURL=task-rules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-rules.js","sourceRoot":"","sources":["../../src/services/task-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGpD,OAAO,EAAE,iBAAiB,EAAiC,MAAM,mBAAmB,CAAA;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAA;AASpE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAc,EAAU,EAAE,CAAC,GAAG,QAAQ,IAAI,OAAO,EAAE,CAAA;AAElG;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,MAAwD,EACxD,EACE,KAAK,EACL,OAAO,EACP,GAAG,EACH,UAAU,GACwF,EAC/E,EAAE;IACvB,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACnE,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,MAAM,GAAe,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;IAC7D,MAAM,QAAQ,GAAG,CAAC,OAAgB,EAAE,EAAE,CACpC,aAAa,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;IAEpH,MAAM,IAAI,GAAG,KAAK,EAAE,OAAgB,EAAE,KAAS,EAAE,IAAc,EAAE,EAAE;QACjE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC;YAC9C,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;YACzB,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,KAAK;YACd,KAAK;YACL,IAAI;YACJ,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC;SAC/C,CAAC,CAAA;QACF,IAAI,OAAO;YAAE,MAAM,CAAC,KAAK,IAAI,CAAC,CAAA;QAC9B,MAAM,CAAC,MAAM,IAAI,MAAM,CAAA;IACzB,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,KAAK,EAAE,OAAgB,EAAE,IAAc,EAAE,MAAgB,EAAE,EAAE;QACzE,KAAK,MAAM,IAAI,IAAI,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACtE,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;gBAAE,SAAQ;YACzD,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;YACtD,IAAI,MAAM;gBAAE,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACtG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,CAAA;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,KAAK,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;YACtF,IAAI,MAAM;gBAAE,MAAM,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;;gBAChD,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;QAChD,CAAC;QACD,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAE,SAAQ;YAC9E,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;;gBACnE,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,6GAA6G;AAC7G,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAA;AAEhC,mHAAmH;AACnH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,KAAmB,EACnB,OAAmB,EACnB,OAAgB,EACK,EAAE;IACvB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;IAC9F,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CACnF,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAC5D,CAAA;IACD,OAAO,cAAc,CACnB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,EAC7C,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,CAC5E,CAAA;AACH,CAAC,CAAA;AAED,2FAA2F;AAC3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAErC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,KAAmB,EACnB,OAAmB,EACnB,KAAc,EACd,SAAkB,EAC8B,EAAE;IAClD,MAAM,MAAM,GAA0C,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,CAAA;IAC9G,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,CAAA;IACjD,KAAK,MAAM,IAAI,IAAI,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;YAAE,SAAQ;QAC/F,2FAA2F;QAC3F,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC;YACrF,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAA;YAC/F,SAAQ;QACV,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3G,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;YAC/D,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,KAAK,EAAE,iBAAiB,CAAC;SAC3D,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EACtD,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAC5C,CAAA;QACD,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAA;QAC1B,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAA;QAC5B,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAA;QAC5B,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK;YAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAA;IACjG,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,uHAAuH;AACvH,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAA;AAEjC;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAC9C,KAAmB,EACnB,OAAmB,EACnB,GAAG,GAAG,IAAI,IAAI,EAAE,EACK,EAAE;IACvB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IACrD,MAAM,SAAS,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,eAAe,GAAG,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACnH,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,CAAC,CAAA;IACpH,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK;QAAE,MAAM,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACxF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AAClC,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,KAAmB,EAAE,OAAmB,EAAE,OAAgB,EAAoB,EAAE;IACpH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC;QACtE,MAAM,EAAE,aAAa,CAAC;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,MAAM;YACpB,OAAO,EAAE,OAAO,CAAC,EAAE;SACpB,CAAC;QACF,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;QAC7B,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;KACnE,CAAC,CAAA;IACF,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,2FAA2F;AAC3F,MAAM,aAAa,GAAG,CAAC,QAAmB,EAAE,KAAa,EAAW,EAAE;IACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAC1B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IACtE,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QAC5C,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI;YAAE,OAAO,KAAK,CAAA;QACvC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,GAAG,CAAC,SAAS,CAAA;QAC3C,IAAI,EAAE,KAAK,OAAO,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QAClC,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/F,OAAO,aAAa,IAAI,IAAI,IAAI,aAAa,KAAK,OAAO,CAAC,QAAQ,CAAA;IACpE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"task-rules.js","sourceRoot":"","sources":["../../src/services/task-rules.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,9 @@ export interface TaskCloseStore {
7
7
  allowed?: boolean | null;
8
8
  min?: number | null;
9
9
  }): Promise<void>;
10
+ /** How many tasks the first rule pass after a sync may open per chat. */
11
+ firstPassPerChat(): Promise<number>;
12
+ saveFirstPassPerChat(value: number | null): Promise<void>;
10
13
  closeSuggestion(id: string): Promise<CloseSuggestion | null>;
11
14
  /**
12
15
  * Marks an open task with the close an agent would make, replacing an earlier one, and releases its claim so the
@@ -1 +1 @@
1
- {"version":3,"file":"task-close-store.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/task-close-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,eAAe,EAKrB,MAAM,iBAAiB,CAAA;AAKxB,MAAM,WAAW,cAAc;IAC7B,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACzC,cAAc,CAAC,MAAM,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxF,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;IAC5D;;;OAGG;IACH,YAAY,CACV,EAAE,EAAE,MAAM,EACV,UAAU,EAAE;QAAE,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,EACpF,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,2DAA2D;IAC3D,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACnE;AAED,eAAO,MAAM,aAAa,YAAa,YAAY,KAAG,cAwDrD,CAAA"}
1
+ {"version":3,"file":"task-close-store.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/task-close-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,eAAe,EAKrB,MAAM,iBAAiB,CAAA;AAMxB,MAAM,WAAW,cAAc;IAC7B,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACzC,cAAc,CAAC,MAAM,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxF,yEAAyE;IACzE,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACnC,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;IAC5D;;;OAGG;IACH,YAAY,CACV,EAAE,EAAE,MAAM,EACV,UAAU,EAAE;QAAE,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,EACpF,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,2DAA2D;IAC3D,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACnE;AAED,eAAO,MAAM,aAAa,YAAa,YAAY,KAAG,cA0DrD,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { CliError } from "@wirecat/cli-base";
2
2
  import { authorActor } from "./memories.js";
3
3
  import { CLEAR_SUGGESTION, certaintyOf, closeSuggestionOf, saveAgentClose, storeAgentClose, } from "./task-close.js";
4
+ import { DEFAULT_FIRST_PASS_PER_CHAT, savedFirstPassPerChat, saveFirstPassPerChat } from "./task-first-pass.js";
4
5
  import { taskRowOf } from "./things.js";
5
6
  import { write } from "./transaction.js";
6
7
  import { recordTaskEvent } from "./work-tasks.js";
@@ -18,6 +19,8 @@ export const taskCloseOver = (context) => {
18
19
  return {
19
20
  agentClose: async () => storeAgentClose(database),
20
21
  saveAgentClose: async (change) => write(database, () => saveAgentClose(database, change, now())),
22
+ firstPassPerChat: async () => savedFirstPassPerChat(database) ?? DEFAULT_FIRST_PASS_PER_CHAT,
23
+ saveFirstPassPerChat: async (value) => write(database, () => saveFirstPassPerChat(database, value, now())),
21
24
  closeSuggestion: async (id) => closeSuggestionOf(database, liveRow(id)),
22
25
  suggestClose: async (id, suggestion, by) => write(database, () => {
23
26
  const row = liveRow(id);
@@ -1 +1 @@
1
- {"version":3,"file":"task-close-store.js","sourceRoot":"","sources":["../../../src/store/sqlite/task-close-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAe,WAAW,EAAE,MAAM,eAAe,CAAA;AAExD,OAAO,EAEL,gBAAgB,EAEhB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAmBjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAqB,EAAkB,EAAE;IACrE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IACjC,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QACnC,MAAM,KAAK,GACT,GAAG,KAAK,SAAS;YACf,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1F,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,CAAC,CAAA;QAC5D,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IACD,OAAO;QACL,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC;QACjD,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAChG,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACvE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CACzC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnB,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,CAAA;YACvB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;gBACvB,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE;oBACjG,MAAM,EAAE,aAAa;iBACtB,CAAC,CAAA;YACJ,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;YAC/C,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;YAC1C,MAAM,EAAE,GAAG,GAAG,EAAE,CAAA;YAChB,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,IAAI,MAAM,KAAK,IAAI;oBACjB,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,oCAAoC,EAAE;wBAClG,MAAM,EAAE,0BAA0B;qBACnC,CAAC,CAAA;gBACJ,QAAQ,CAAC,OAAO,CAAC,oBAAoB,gBAAgB,+BAA+B,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC7G,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;gBACxG,OAAM;YACR,CAAC;YACD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,CAAA;YAChD,QAAQ;iBACL,OAAO,CACN,mGAAmG;gBACjG,qFAAqF;gBACrF,sEAAsE,CACzE;iBACA,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC9G,MAAM,KAAK,GAAG,iBAAiB,CAC7B,QAAQ,EACR,QAAQ,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAC/E,CAAA;YACD,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAC3G,CAAC,CAAC;QACJ,oBAAoB,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAC5C,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnB,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,CAAA;YACvB,QAAQ;iBACL,OAAO,CAAC,mDAAmD,CAAC;iBAC5D,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAChD,CAAC,CAAC;KACL,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"task-close-store.js","sourceRoot":"","sources":["../../../src/store/sqlite/task-close-store.ts"],"names":[],"mappings":"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"}