draken 0.6.0 → 0.8.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 (70) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/MEMORY.md +64 -13
  3. package/README.md +25 -19
  4. package/SETUP.md +26 -3
  5. package/TRAY.md +3 -3
  6. package/VOICE.md +8 -6
  7. package/dist/db/schema.d.ts.map +1 -1
  8. package/dist/db/schema.js +65 -0
  9. package/dist/db/schema.js.map +1 -1
  10. package/dist/memory/readiness.d.ts +4 -3
  11. package/dist/memory/readiness.d.ts.map +1 -1
  12. package/dist/memory/readiness.js +128 -35
  13. package/dist/memory/readiness.js.map +1 -1
  14. package/dist/memory/storage.d.ts.map +1 -1
  15. package/dist/memory/storage.js +1 -0
  16. package/dist/memory/storage.js.map +1 -1
  17. package/dist/routes/sync.d.ts.map +1 -1
  18. package/dist/routes/sync.js +9 -0
  19. package/dist/routes/sync.js.map +1 -1
  20. package/dist/sync/activity.d.ts +11 -1
  21. package/dist/sync/activity.d.ts.map +1 -1
  22. package/dist/sync/activity.js +18 -3
  23. package/dist/sync/activity.js.map +1 -1
  24. package/dist/sync/background.d.ts +7 -2
  25. package/dist/sync/background.d.ts.map +1 -1
  26. package/dist/sync/background.js +66 -19
  27. package/dist/sync/background.js.map +1 -1
  28. package/dist/sync/conversation.d.ts +20 -0
  29. package/dist/sync/conversation.d.ts.map +1 -0
  30. package/dist/sync/conversation.js +127 -0
  31. package/dist/sync/conversation.js.map +1 -0
  32. package/dist/sync/manager.d.ts.map +1 -1
  33. package/dist/sync/manager.js +56 -16
  34. package/dist/sync/manager.js.map +1 -1
  35. package/dist/sync/preparation.d.ts +1 -1
  36. package/dist/sync/preparation.d.ts.map +1 -1
  37. package/dist/sync/preparation.js +23 -5
  38. package/dist/sync/preparation.js.map +1 -1
  39. package/dist/sync/store.d.ts +4 -1
  40. package/dist/sync/store.d.ts.map +1 -1
  41. package/dist/sync/store.js +24 -7
  42. package/dist/sync/store.js.map +1 -1
  43. package/dist/sync/summary-preparation.d.ts +14 -0
  44. package/dist/sync/summary-preparation.d.ts.map +1 -0
  45. package/dist/sync/summary-preparation.js +205 -0
  46. package/dist/sync/summary-preparation.js.map +1 -0
  47. package/dist/sync/tree.d.ts +17 -1
  48. package/dist/sync/tree.d.ts.map +1 -1
  49. package/dist/sync/tree.js +94 -29
  50. package/dist/sync/tree.js.map +1 -1
  51. package/dist/sync/update-status.d.ts +9 -0
  52. package/dist/sync/update-status.d.ts.map +1 -0
  53. package/dist/sync/update-status.js +21 -0
  54. package/dist/sync/update-status.js.map +1 -0
  55. package/dist/sync/usage.d.ts +3 -1
  56. package/dist/sync/usage.d.ts.map +1 -1
  57. package/dist/sync/usage.js +24 -6
  58. package/dist/sync/usage.js.map +1 -1
  59. package/dist/types.d.ts +21 -1
  60. package/dist/types.d.ts.map +1 -1
  61. package/dist/voice/live-context.d.ts +1 -1
  62. package/dist/voice/live-context.d.ts.map +1 -1
  63. package/dist/voice/live-context.js +1 -1
  64. package/dist/voice/live.d.ts.map +1 -1
  65. package/dist/voice/live.js +265 -32
  66. package/dist/voice/live.js.map +1 -1
  67. package/package.json +1 -1
  68. package/public/assets/index-sHcfjDUD.js +131 -0
  69. package/public/index.html +1 -1
  70. package/public/assets/index-DXPfCm7z.js +0 -131
@@ -1,3 +1,11 @@
1
+ /** Callable release remains compatible with existing call owners. All child
2
+ * leases close over this reservation, never a sync ID that can be reused. */
3
+ export interface VoiceLease {
4
+ (): void;
5
+ connected(): void;
6
+ hold(): () => void;
7
+ beginTurn(): () => void;
8
+ }
1
9
  /** Process-local ownership, separate from durable run status. Cancellation only
2
10
  * requests a stop: the owner keeps its lease until its resources are released. */
3
11
  declare class SyncActivity {
@@ -14,12 +22,14 @@ declare class SyncActivity {
14
22
  get busy(): boolean;
15
23
  get starting(): boolean;
16
24
  get callActive(): boolean;
25
+ get backgroundIdle(): boolean;
26
+ voiceTurnActive(id: number): boolean;
17
27
  jobActive(id: number): boolean;
18
28
  voiceActive(id: number): boolean;
19
29
  beginJob(id: number, controller: AbortController): () => void;
20
30
  cancelJob(id: number): boolean;
21
31
  beginStart(): () => void;
22
- beginCall(id: number): () => void;
32
+ beginCall(id: number): VoiceLease;
23
33
  }
24
34
  export declare const activity: SyncActivity;
25
35
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/sync/activity.ts"],"names":[],"mappings":"AAEA;kFACkF;AAClF,cAAM,YAAY;IAChB,OAAO,CAAC,IAAI,CAAsD;IAClE,OAAO,CAAC,IAAI,CAAC,CAAgC;IAC7C,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,WAAW,CAAC,CAAa;IAEjC,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IACf,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAOzB,IAAI,OAAO,IAAI,MAAM,EAAE,CAAkC;IACzD,IAAI,IAAI,IAAI,OAAO,CAAkD;IACrE,IAAI,QAAQ,IAAI,OAAO,CAAqC;IAC5D,IAAI,UAAU,IAAI,OAAO,CAAoC;IAC7D,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAC9B,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAEhC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,GAAG,MAAM,IAAI;IAQ7D,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAK9B,UAAU,IAAI,MAAM,IAAI;IAOxB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,IAAI;CAOlC;AAED,eAAO,MAAM,QAAQ,cAAqB,CAAC"}
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/sync/activity.ts"],"names":[],"mappings":"AAEA;6EAC6E;AAC7E,MAAM,WAAW,UAAU;IACzB,IAAI,IAAI,CAAC;IACT,SAAS,IAAI,IAAI,CAAC;IAClB,IAAI,IAAI,MAAM,IAAI,CAAC;IACnB,SAAS,IAAI,MAAM,IAAI,CAAC;CACzB;AAED;kFACkF;AAClF,cAAM,YAAY;IAChB,OAAO,CAAC,IAAI,CAAsD;IAClE,OAAO,CAAC,IAAI,CAAC,CAA4F;IACzG,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,WAAW,CAAC,CAAa;IAEjC,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IACf,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAOzB,IAAI,OAAO,IAAI,MAAM,EAAE,CAAkC;IACzD,IAAI,IAAI,IAAI,OAAO,CAAkD;IACrE,IAAI,QAAQ,IAAI,OAAO,CAAqC;IAC5D,IAAI,UAAU,IAAI,OAAO,CAAoC;IAC7D,IAAI,cAAc,IAAI,OAAO,CAAoI;IACjK,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IACpC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAC9B,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAEhC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,GAAG,MAAM,IAAI;IAQ7D,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAK9B,UAAU,IAAI,MAAM,IAAI;IAOxB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU;CAkBlC;AAED,eAAO,MAAM,QAAQ,cAAqB,CAAC"}
@@ -27,6 +27,8 @@ class SyncActivity {
27
27
  get busy() { return Boolean(this.start || this.jobs.size); }
28
28
  get starting() { return this.start !== undefined; }
29
29
  get callActive() { return this.call !== undefined; }
30
+ get backgroundIdle() { return !this.stopping && !this.busy && (!this.call || (this.call.connected && !this.call.holds.size && !this.call.turns.size)); }
31
+ voiceTurnActive(id) { return this.call?.id === id && this.call.turns.size > 0; }
30
32
  jobActive(id) { return this.jobs.has(id); }
31
33
  voiceActive(id) { return this.call?.id === id; }
32
34
  beginJob(id, controller) {
@@ -69,11 +71,24 @@ class SyncActivity {
69
71
  if (this.jobs.has(id))
70
72
  throw new errors_1.HttpError(409, 'A reply is still being generated. Wait or cancel before changing this sync.');
71
73
  const token = Symbol();
72
- this.call = { id, token };
73
- return () => { if (this.call?.token === token) {
74
+ const owner = { id, token, connected: false, holds: new Set(), turns: new Set() };
75
+ this.call = owner;
76
+ const lease = (leases) => {
77
+ if (this.call !== owner)
78
+ return () => { };
79
+ const child = Symbol();
80
+ leases.add(child);
81
+ return () => { leases.delete(child); };
82
+ };
83
+ return Object.assign(() => { if (this.call === owner) {
74
84
  this.call = undefined;
75
85
  this.changed();
76
- } };
86
+ } }, {
87
+ connected: () => { if (this.call === owner)
88
+ owner.connected = true; },
89
+ hold: () => lease(owner.holds),
90
+ beginTurn: () => lease(owner.turns),
91
+ });
77
92
  }
78
93
  }
79
94
  exports.activity = new SyncActivity();
@@ -1 +1 @@
1
- {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/sync/activity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/sync/activity.ts"],"names":[],"mappings":"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"}
@@ -4,16 +4,20 @@ interface Operations {
4
4
  enabled(): boolean;
5
5
  idle(): boolean;
6
6
  now(): number;
7
+ expire?(now: number): void;
8
+ activeConversations?(): boolean;
9
+ needsPreparation?(): boolean;
7
10
  scan(signal: AbortSignal): Promise<{
8
11
  warnings: string[];
9
12
  }>;
10
13
  stamp(before: string): Map<string, string>;
11
14
  baseline(): Map<string, string> | undefined;
12
15
  prepare(before: string, signal: AbortSignal): Promise<void>;
16
+ prepareSummaries?(signal: AbortSignal): Promise<void>;
13
17
  completed(at: string): void;
14
18
  }
15
- /** Automatic work only discovers and indexes history. Snapshot creation and
16
- * provider summarization require a user action, regardless of backlog size. */
19
+ /** One cancellable owner for discovery, local indexing and separately opted-in
20
+ * paid cache preparation. It never creates snapshots or final briefings. */
17
21
  declare class AutoIndexer {
18
22
  private ops;
19
23
  state: State;
@@ -33,5 +37,6 @@ export declare function stopBackgroundIndexing(): Promise<void>;
33
37
  export declare function yieldBackgroundIndexing(): Promise<void>;
34
38
  export declare function autoIndexSettings(): AutoIndexSettings;
35
39
  export declare function setAutoIndex(value: unknown): AutoIndexSettings;
40
+ export declare function setAutoSummary(value: unknown): import("../types").SummaryPreparationSettings;
36
41
  export {};
37
42
  //# sourceMappingURL=background.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../../src/sync/background.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGlD,KAAK,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,OAAO,CAAC,CAAC;AAClG,UAAU,UAAU;IAClB,OAAO,IAAI,OAAO,CAAC;IAAC,IAAI,IAAI,OAAO,CAAC;IAAC,GAAG,IAAI,MAAM,CAAC;IACnD,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC3D,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAGD;+EAC+E;AAC/E,cAAM,WAAW;IAKH,OAAO,CAAC,GAAG;IAJvB,KAAK,QAAa;IAClB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,IAAI,CAAC,CAAkB;IAC/B,OAAO,CAAC,GAAG,CAAC,CAAgB;gBACR,GAAG,EAAE,UAAU;IAC7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,KAAK;IAIC,IAAI;IACV,KAAK;YACS,GAAG;CAiClB;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,eAAkC;AAInF,wBAAgB,uBAAuB,SAQtC;AACD,wBAAsB,sBAAsB,kBAG3C;AACD,wBAAsB,uBAAuB,kBAA4B;AACzE,wBAAgB,iBAAiB,IAAI,iBAAiB,CAMrD;AACD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAM9D"}
1
+ {"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../../src/sync/background.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAIlD,KAAK,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,OAAO,CAAC,CAAC;AAClG,UAAU,UAAU;IAClB,OAAO,IAAI,OAAO,CAAC;IAAC,IAAI,IAAI,OAAO,CAAC;IAAC,GAAG,IAAI,MAAM,CAAC;IACnD,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mBAAmB,CAAC,IAAI,OAAO,CAAC;IAChC,gBAAgB,CAAC,IAAI,OAAO,CAAC;IAC7B,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC3D,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,gBAAgB,CAAC,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAGD;4EAC4E;AAC5E,cAAM,WAAW;IAKH,OAAO,CAAC,GAAG;IAJvB,KAAK,QAAa;IAClB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,IAAI,CAAC,CAAkB;IAC/B,OAAO,CAAC,GAAG,CAAC,CAAgB;gBACR,GAAG,EAAE,UAAU;IAC7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,KAAK;IAIC,IAAI;IACV,KAAK;YACS,GAAG;CA+ClB;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,eAAkC;AAKnF,wBAAgB,uBAAuB,SAYtC;AACD,wBAAsB,sBAAsB,kBAO3C;AACD,wBAAsB,uBAAuB,kBAAuE;AACpH,wBAAgB,iBAAiB,IAAI,iBAAiB,CAMrD;AACD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAM9D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,iDAM5C"}
@@ -6,6 +6,7 @@ exports.stopBackgroundIndexing = stopBackgroundIndexing;
6
6
  exports.yieldBackgroundIndexing = yieldBackgroundIndexing;
7
7
  exports.autoIndexSettings = autoIndexSettings;
8
8
  exports.setAutoIndex = setAutoIndex;
9
+ exports.setAutoSummary = setAutoSummary;
9
10
  const schema_1 = require("../db/schema");
10
11
  const data_dir_1 = require("../data-dir");
11
12
  const stamps_1 = require("../memory/stamps");
@@ -14,10 +15,13 @@ const store_1 = require("./store");
14
15
  const activity_1 = require("./activity");
15
16
  const errors_1 = require("../errors");
16
17
  const service_1 = require("../memory/service");
18
+ const conversation_1 = require("./conversation");
19
+ const update_status_1 = require("./update-status");
20
+ const summary_preparation_1 = require("./summary-preparation");
17
21
  const CHECK_MS = 60_000, RETRY_MS = 5 * 60_000, BATCH = 64;
18
22
  const initial = () => ({ phase: 'off', pending_records: 0, last_completed_at: null, error: '' });
19
- /** Automatic work only discovers and indexes history. Snapshot creation and
20
- * provider summarization require a user action, regardless of backlog size. */
23
+ /** One cancellable owner for discovery, local indexing and separately opted-in
24
+ * paid cache preparation. It never creates snapshots or final briefings. */
21
25
  class AutoIndexer {
22
26
  ops;
23
27
  state = initial();
@@ -28,6 +32,10 @@ class AutoIndexer {
28
32
  this.ops = ops;
29
33
  }
30
34
  async tick() {
35
+ // Expiry is server lifecycle work, not indexing consent or browser activity.
36
+ // It also runs while an owned job is in flight; foreground turns are protected
37
+ // by the conversation module's activity admission checks.
38
+ this.ops.expire?.(this.ops.now());
31
39
  if (this.job)
32
40
  return this.job;
33
41
  if (!this.ops.enabled()) {
@@ -74,21 +82,40 @@ class AutoIndexer {
74
82
  if (!current.has(key))
75
83
  changed++;
76
84
  this.state.pending_records = changed;
77
- if (changed < BATCH) {
78
- this.state.phase = 'waiting';
79
- return;
80
- }
81
85
  if (!this.ops.idle()) {
82
86
  this.state.phase = 'paused';
83
87
  return;
84
88
  }
85
- this.state.phase = 'indexing';
86
- await this.ops.prepare(before, signal);
89
+ // With no active conversation, retain the strict64/no-timed-tail policy.
90
+ // Live conversations get the first positive delta at the minute check.
91
+ // Metadata/link/receipt upgrades can need a local pass with zero counter
92
+ // delta; this path shares the same bounded cancellation and error backoff.
93
+ const live = this.ops.activeConversations?.() === true;
94
+ if (changed >= BATCH || (live && (changed > 0 || this.ops.needsPreparation?.()))) {
95
+ this.state.phase = 'indexing';
96
+ await this.ops.prepare(before, signal);
97
+ if (signal.aborted || !this.ops.enabled())
98
+ return;
99
+ const completed = new Date(this.ops.now()).toISOString();
100
+ this.ops.completed(completed);
101
+ this.state = { phase: 'waiting', pending_records: 0, last_completed_at: completed, error: '' };
102
+ }
87
103
  if (signal.aborted || !this.ops.enabled())
88
104
  return;
89
- const completed = new Date(this.ops.now()).toISOString();
90
- this.ops.completed(completed);
91
- this.state = { phase: 'waiting', pending_records: 0, last_completed_at: completed, error: '' };
105
+ if (!this.ops.idle()) {
106
+ this.state.phase = 'paused';
107
+ return;
108
+ }
109
+ this.state.phase = 'waiting';
110
+ // Summary backlog is independent of the embedding checkpoint. Its helper
111
+ // owns durable failure/retry state; provider failures never roll back or
112
+ // misreport successful local indexing.
113
+ try {
114
+ await this.ops.prepareSummaries?.(signal);
115
+ }
116
+ catch { /* separate paid-work failure domain */ }
117
+ if (!signal.aborted)
118
+ this.state.phase = 'waiting';
92
119
  }
93
120
  catch (error) {
94
121
  if (!signal.aborted && error instanceof errors_1.HttpError && error.status === 409) {
@@ -110,12 +137,18 @@ class AutoIndexer {
110
137
  function createAutoIndexer(ops) { return new AutoIndexer(ops); }
111
138
  const enabled = () => (0, schema_1.getDb)().prepare("SELECT value FROM sync_settings WHERE key='auto_index'").get()?.value === 'true';
112
139
  let worker, timer;
140
+ let unregisterStatus;
113
141
  function startBackgroundIndexing() {
114
142
  if (timer)
115
143
  return;
116
- worker = createAutoIndexer({ enabled, idle: () => !activity_1.activity.busy && !activity_1.activity.callActive && !(0, service_1.historyProgress)().active && !(0, service_1.historyProgress)().queued,
117
- now: Date.now, scan: collector_1.scanSessions, stamp: before => (0, stamps_1.sourceStamps)((0, schema_1.getDb)(), before), baseline: () => (0, stamps_1.loadSourceCheckpoint)((0, data_dir_1.getDataDir)()), prepare: (before, signal) => (0, service_1.prepareHistory)(before, signal, true),
144
+ worker ||= createAutoIndexer({ enabled, idle: () => activity_1.activity.backgroundIdle && !(0, service_1.historyProgress)().active && !(0, service_1.historyProgress)().queued,
145
+ now: Date.now, expire: conversation_1.expireConversations, activeConversations: conversation_1.hasActiveConversations, needsPreparation: () => !(0, service_1.historyReadiness)().ready,
146
+ scan: collector_1.scanSessions, stamp: before => (0, stamps_1.sourceStamps)((0, schema_1.getDb)(), before), baseline: () => (0, stamps_1.loadSourceCheckpoint)((0, data_dir_1.getDataDir)()), prepare: (before, signal) => (0, service_1.prepareHistory)(before, signal, true),
147
+ prepareSummaries: signal => (0, summary_preparation_1.warmSummaryCache)(signal, () => { if (worker)
148
+ worker.state.phase = 'summarizing'; }),
118
149
  completed: at => { (0, schema_1.getDb)().prepare("INSERT INTO sync_settings(key,value) VALUES ('auto_last_completed',?) ON CONFLICT(key) DO UPDATE SET value=excluded.value").run(at); } });
150
+ const owner = worker;
151
+ unregisterStatus = (0, update_status_1.registerUpdateStatus)(() => owner.state);
119
152
  timer = setInterval(() => {
120
153
  void worker?.tick().catch(() => {
121
154
  if (worker) {
@@ -129,15 +162,19 @@ function startBackgroundIndexing() {
129
162
  async function stopBackgroundIndexing() {
130
163
  clearInterval(timer);
131
164
  timer = undefined;
132
- const prior = worker;
133
- worker = undefined;
134
- await prior?.stop();
165
+ const prior = worker, unregister = unregisterStatus;
166
+ await Promise.all([prior?.stop(), (0, summary_preparation_1.cancelSummaryPreparation)()]);
167
+ unregister?.();
168
+ if (unregisterStatus === unregister)
169
+ unregisterStatus = undefined;
170
+ if (!timer && worker === prior)
171
+ worker = undefined;
135
172
  }
136
- async function yieldBackgroundIndexing() { await worker?.stop(); }
173
+ async function yieldBackgroundIndexing() { await Promise.all([worker?.stop(), (0, summary_preparation_1.cancelSummaryPreparation)()]); }
137
174
  function autoIndexSettings() {
138
175
  const on = enabled();
139
176
  const last = (0, schema_1.getDb)().prepare("SELECT value FROM sync_settings WHERE key='auto_last_completed'").get();
140
- return { enabled: on, check_seconds: CHECK_MS / 1000, batch_records: BATCH, pending_entries: (0, store_1.availableCount)(),
177
+ return { enabled: on, summary_enabled: (0, summary_preparation_1.summaryPreparationEnabled)(), check_seconds: CHECK_MS / 1000, batch_records: BATCH, pending_entries: (0, store_1.availableCount)(),
141
178
  ...(worker?.state || initial()), last_completed_at: worker?.state.last_completed_at || last?.value || null, ...(!on && worker?.state.phase !== 'stopping' ? { phase: 'off' }
142
179
  : on && (!worker || worker.state.phase === 'off') ? { phase: 'waiting' } : {}) };
143
180
  }
@@ -146,10 +183,20 @@ function setAutoIndex(value) {
146
183
  throw new errors_1.HttpError(400, 'enabled must be a boolean');
147
184
  (0, schema_1.getDb)().prepare("INSERT INTO sync_settings(key,value) VALUES ('auto_index',?) ON CONFLICT(key) DO UPDATE SET value=excluded.value").run(String(value));
148
185
  startBackgroundIndexing();
149
- if (!value)
186
+ if (!value) {
150
187
  worker.pause();
188
+ void (0, summary_preparation_1.cancelSummaryPreparation)();
189
+ }
151
190
  else
152
191
  worker.retry();
153
192
  return autoIndexSettings();
154
193
  }
194
+ function setAutoSummary(value) {
195
+ (0, summary_preparation_1.configureAutoSummary)(value);
196
+ startBackgroundIndexing();
197
+ worker.pause();
198
+ if (value)
199
+ worker.retry();
200
+ return (0, summary_preparation_1.summaryPreparationSettings)();
201
+ }
155
202
  //# sourceMappingURL=background.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"background.js","sourceRoot":"","sources":["../../src/sync/background.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"background.js","sourceRoot":"","sources":["../../src/sync/background.ts"],"names":[],"mappings":";;AAyGA,8CAAmF;AAKnF,0DAYC;AACD,wDAOC;AACD,0DAAoH;AACpH,8CAMC;AACD,oCAMC;AAED,wCAMC;AAzJD,yCAAqC;AACrC,0CAAyC;AACzC,6CAAsE;AACtE,2CAA2C;AAC3C,mCAAyC;AACzC,yCAAsC;AACtC,sCAAsC;AACtC,+CAAsF;AACtF,iDAA6E;AAC7E,mDAAuD;AAEvD,+DAAgK;AAEhK,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,GAAG,EAAE,CAAC;AAc3D,MAAM,OAAO,GAAG,GAAU,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AAExG;4EAC4E;AAC5E,MAAM,WAAW;IAKK;IAJpB,KAAK,GAAG,OAAO,EAAE,CAAC;IACV,OAAO,GAAG,CAAC,CAAC;IACZ,IAAI,CAAmB;IACvB,GAAG,CAAiB;IAC5B,YAAoB,GAAe;QAAf,QAAG,GAAH,GAAG,CAAY;IAAG,CAAC;IACvC,KAAK,CAAC,IAAI;QACR,6EAA6E;QAC7E,+EAA+E;QAC/E,0DAA0D;QAC1D,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,OAAO;QAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;YAAC,OAAO;QAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1C,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;QAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACrD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACjG,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IACD,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IACxG,CAAC;IACD,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,KAAK,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACtH,KAAK,CAAC,GAAG,CAAC,MAAmB;QACnC,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;YAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;gBAAE,OAAO;YAClD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO;gBAAE,IAAI,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK;oBAAE,OAAO,EAAE,CAAC;YAChF,IAAI,QAAQ;gBAAE,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE;oBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,OAAO,EAAE,CAAC;YAClF,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;gBAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC9D,yEAAyE;YACzE,uEAAuE;YACvE,yEAAyE;YACzE,2EAA2E;YAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,KAAK,IAAI,CAAC;YACvD,IAAI,OAAO,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;gBACjF,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;gBAC9B,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACvC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;oBAAE,OAAO;gBAClD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBACzD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAC9B,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,EAAE,iBAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACjG,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;gBAAE,OAAO;YAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;gBAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;YAC7B,yEAAyE;YACzE,yEAAyE;YACzE,uCAAuC;YACvC,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,uCAAuC,CAAC,CAAC;YACpG,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,YAAY,kBAAS,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC1E,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;gBAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;YACxE,CAAC;iBAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,wJAAwJ,CAAC;gBAC5K,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;YAC3C,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;gBAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QACtG,CAAC;IACH,CAAC;CACF;AAED,SAAgB,iBAAiB,CAAC,GAAe,IAAI,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEnF,MAAM,OAAO,GAAG,GAAG,EAAE,CAAE,IAAA,cAAK,GAAE,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC,GAAG,EAAoC,EAAE,KAAK,KAAK,MAAM,CAAC;AAC3J,IAAI,MAA+B,EAAE,KAAiC,CAAC;AACvE,IAAI,gBAA0C,CAAC;AAC/C,SAAgB,uBAAuB;IACrC,IAAI,KAAK;QAAE,OAAO;IAClB,MAAM,KAAK,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,mBAAQ,CAAC,cAAc,IAAI,CAAC,IAAA,yBAAe,GAAE,CAAC,MAAM,IAAI,CAAC,IAAA,yBAAe,GAAE,CAAC,MAAM;QACnI,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,kCAAmB,EAAE,mBAAmB,EAAE,qCAAsB,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,IAAA,0BAAgB,GAAE,CAAC,KAAK;QAC1I,IAAI,EAAE,wBAAY,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,IAAA,qBAAY,EAAC,IAAA,cAAK,GAAE,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,6BAAoB,EAAC,IAAA,qBAAU,GAAE,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAA,wBAAc,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;QACzL,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAA,sCAAgB,EAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,MAAM;YAAE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/G,SAAS,EAAE,EAAE,CAAC,EAAE,GAAG,IAAA,cAAK,GAAE,CAAC,OAAO,CAAC,2HAA2H,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChL,MAAM,KAAK,GAAG,MAAM,CAAC;IACrB,gBAAgB,GAAG,IAAA,oCAAoB,EAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3D,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAAG,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YACzD,IAAI,MAAM,EAAE,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,wEAAwE,CAAC;YAAC,CAAC;QAC9I,CAAC,CAAC,CAAC;IAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAClC,CAAC;AACM,KAAK,UAAU,sBAAsB;IAC1C,aAAa,CAAC,KAAK,CAAC,CAAC;IAAC,KAAK,GAAG,SAAS,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,EAAE,UAAU,GAAG,gBAAgB,CAAC;IACpD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,IAAA,8CAAwB,GAAE,CAAC,CAAC,CAAC;IAC/D,UAAU,EAAE,EAAE,CAAC;IACf,IAAI,gBAAgB,KAAK,UAAU;QAAE,gBAAgB,GAAG,SAAS,CAAC;IAClE,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,KAAK;QAAE,MAAM,GAAG,SAAS,CAAC;AACrD,CAAC;AACM,KAAK,UAAU,uBAAuB,KAAK,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAA,8CAAwB,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpH,SAAgB,iBAAiB;IAC/B,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;IACrB,MAAM,IAAI,GAAG,IAAA,cAAK,GAAE,CAAC,OAAO,CAAC,iEAAiE,CAAC,CAAC,GAAG,EAAmC,CAAC;IACvI,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,IAAA,+CAAyB,GAAE,EAAE,aAAa,EAAE,QAAQ,GAAG,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE,IAAA,sBAAc,GAAE;QACzJ,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,OAAO,EAAE,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,iBAAiB,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAc,EAAE;YACnL,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAChG,CAAC;AACD,SAAgB,YAAY,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,kBAAS,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;IACtF,IAAA,cAAK,GAAE,CAAC,OAAO,CAAC,kHAAkH,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvJ,uBAAuB,EAAE,CAAC;IAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;QAAC,MAAO,CAAC,KAAK,EAAE,CAAC;QAAC,KAAK,IAAA,8CAAwB,GAAE,CAAC;IAAC,CAAC;;QAAM,MAAO,CAAC,KAAK,EAAE,CAAC;IACvF,OAAO,iBAAiB,EAAE,CAAC;AAC7B,CAAC;AAED,SAAgB,cAAc,CAAC,KAAc;IAC3C,IAAA,0CAAoB,EAAC,KAAK,CAAC,CAAC;IAC5B,uBAAuB,EAAE,CAAC;IAC1B,MAAO,CAAC,KAAK,EAAE,CAAC;IAChB,IAAI,KAAK;QAAE,MAAO,CAAC,KAAK,EAAE,CAAC;IAC3B,OAAO,IAAA,gDAA0B,GAAE,CAAC;AACtC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { ConversationState } from '../types';
2
+ /** Request-local metadata only: never starts work, adopts a cutoff, touches the
3
+ * idle clock or persists expiry. Global checks are lazy and shared across cards,
4
+ * never across responses (required original files must be checked again). */
5
+ export declare function conversationStatuses(ids: number[]): ConversationState[];
6
+ export declare function conversationStatus(id: number): ConversationState;
7
+ /** Write admission/timer cleanup, independent of explicit review and coverage. */
8
+ export declare function expireConversations(now?: number): void;
9
+ export declare function assertConversationActive(id: number): void;
10
+ /** Call only in the same transaction as accepting a NEW real user turn. */
11
+ export declare function touchConversation(id: number, at?: number): void;
12
+ /** Scheduler hint, with no original-source access or lifecycle writes. */
13
+ export declare function hasActiveConversations(): boolean;
14
+ /** Turn admission only. Never turns a never-prepared conversation into a ready
15
+ * one merely because another conversation/background job prepared the corpus. */
16
+ export declare function captureConversationHistory(id: number): string | null;
17
+ /** Initial explicit preparation success only; background work cannot revive or
18
+ * prepare a conversation, and subsequent preparation cannot move its cutoff. */
19
+ export declare function markConversationPrepared(id: number, before: string): void;
20
+ //# sourceMappingURL=conversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/sync/conversation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAyBlD;;6EAE6E;AAC7E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAiCvE;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,CAEhE;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,GAAG,SAAa,GAAG,IAAI,CAS1D;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAKzD;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,SAAa,GAAG,IAAI,CAInE;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,IAAI,OAAO,CAIhD;AAED;iFACiF;AACjF,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQpE;AAED;gFACgF;AAChF,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAIzE"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.conversationStatuses = conversationStatuses;
4
+ exports.conversationStatus = conversationStatus;
5
+ exports.expireConversations = expireConversations;
6
+ exports.assertConversationActive = assertConversationActive;
7
+ exports.touchConversation = touchConversation;
8
+ exports.hasActiveConversations = hasActiveConversations;
9
+ exports.captureConversationHistory = captureConversationHistory;
10
+ exports.markConversationPrepared = markConversationPrepared;
11
+ const schema_1 = require("../db/schema");
12
+ const errors_1 = require("../errors");
13
+ const service_1 = require("../memory/service");
14
+ const activity_1 = require("./activity");
15
+ const update_status_1 = require("./update-status");
16
+ const IDLE_MS = 30 * 60_000;
17
+ function row(id) {
18
+ const value = (0, schema_1.getDb)().prepare(`SELECT id,status,created_at,conversation_last_user_at,
19
+ conversation_ended_at,conversation_before FROM syncs WHERE id=?`).get(id);
20
+ if (!value)
21
+ throw new errors_1.HttpError(404, 'Sync not found');
22
+ return value;
23
+ }
24
+ function deadline(value) { return Date.parse(value.conversation_last_user_at || value.created_at) + IDLE_MS; }
25
+ function inFlight(id) { return activity_1.activity.jobActive(id) || activity_1.activity.voiceTurnActive(id); }
26
+ function ended(value, now) {
27
+ return value.conversation_ended_at || (value.status === 'open' && deadline(value) <= now && !inFlight(value.id)
28
+ ? new Date(deadline(value)).toISOString() : null);
29
+ }
30
+ /** Request-local metadata only: never starts work, adopts a cutoff, touches the
31
+ * idle clock or persists expiry. Global checks are lazy and shared across cards,
32
+ * never across responses (required original files must be checked again). */
33
+ function conversationStatuses(ids) {
34
+ let shared;
35
+ let strict;
36
+ const now = Date.now();
37
+ return ids.map(id => {
38
+ const value = row(id), end = ended(value, now);
39
+ const base = { last_user_at: value.conversation_last_user_at || value.created_at,
40
+ expires_at: new Date(deadline(value)).toISOString(), ended_at: end, history_before: value.conversation_before };
41
+ if (end || value.status !== 'open')
42
+ return Object.freeze({ ...base, available_before: null, update_state: 'paused', error: '' });
43
+ const { history, progress, enabled, background } = shared ||= {
44
+ history: (0, service_1.historyReadiness)(true), progress: (0, service_1.historyProgress)(), background: (0, update_status_1.backgroundUpdateStatus)(),
45
+ enabled: (0, schema_1.getDb)().prepare("SELECT value FROM sync_settings WHERE key='auto_index'").get()?.value === 'true',
46
+ };
47
+ const available = history.ready ? history.before : null;
48
+ let update_state, error = '';
49
+ if (!enabled)
50
+ update_state = 'paused';
51
+ else if (background?.phase === 'error' || background?.error) {
52
+ update_state = 'error';
53
+ // Do not expose worker/provider/source error details through conversation GETs.
54
+ error = 'Live updates could not finish. Check session sources and local model availability. Completed history is retained; automatic indexing will retry.';
55
+ }
56
+ else if (available && (!value.conversation_before || available > value.conversation_before))
57
+ update_state = 'new_info';
58
+ else {
59
+ // Search/read work and paid summary preparation are not new H-source work.
60
+ const preparing = (progress.active && progress.work?.stage !== 'searching' && progress.work?.stage !== 'reading')
61
+ || progress.queued > 0 || background?.phase === 'scanning' || background?.phase === 'indexing'
62
+ || (background?.pending_records || 0) > 0;
63
+ // Captured readiness may remain valid while newly admitted records await
64
+ // preparation. Only ask for strict readiness when it affects the label.
65
+ update_state = preparing || !history.ready || !(strict ||= (0, service_1.historyReadiness)()).ready ? 'preparing' : 'up_to_date';
66
+ }
67
+ return Object.freeze({ ...base, available_before: available, update_state, error });
68
+ });
69
+ }
70
+ function conversationStatus(id) {
71
+ return conversationStatuses([id])[0];
72
+ }
73
+ /** Write admission/timer cleanup, independent of explicit review and coverage. */
74
+ function expireConversations(now = Date.now()) {
75
+ const db = (0, schema_1.getDb)();
76
+ const rows = db.prepare(`SELECT id,status,created_at,conversation_last_user_at,conversation_ended_at,conversation_before
77
+ FROM syncs WHERE status='open' AND conversation_ended_at IS NULL
78
+ AND COALESCE(conversation_last_user_at,created_at)<=?`).all(new Date(now - IDLE_MS).toISOString());
79
+ const save = db.prepare('UPDATE syncs SET conversation_ended_at=? WHERE id=? AND conversation_ended_at IS NULL');
80
+ // Persist the actual end time, not a backdated deadline: an answer holding a
81
+ // lease may legitimately finish after expires_at without renewing that clock.
82
+ db.transaction(() => { for (const value of rows)
83
+ if (!inFlight(value.id))
84
+ save.run(new Date(now).toISOString(), value.id); })();
85
+ }
86
+ function assertConversationActive(id) {
87
+ expireConversations();
88
+ const value = row(id);
89
+ if (value.conversation_ended_at)
90
+ throw new errors_1.HttpError(410, 'This conversation ended after 30 minutes without a user turn. Start a new sync to continue; the transcript and notes are preserved.');
91
+ if (value.status !== 'open')
92
+ throw new errors_1.HttpError(409, 'This sync is already closed. Start a new sync to continue.');
93
+ }
94
+ /** Call only in the same transaction as accepting a NEW real user turn. */
95
+ function touchConversation(id, at = Date.now()) {
96
+ assertConversationActive(id);
97
+ (0, schema_1.getDb)().prepare(`UPDATE syncs SET conversation_last_user_at=MAX(COALESCE(conversation_last_user_at,created_at),?)
98
+ WHERE id=? AND status='open' AND conversation_ended_at IS NULL`).run(new Date(at).toISOString(), id);
99
+ }
100
+ /** Scheduler hint, with no original-source access or lifecycle writes. */
101
+ function hasActiveConversations() {
102
+ const rows = (0, schema_1.getDb)().prepare(`SELECT id,status,created_at,conversation_last_user_at,conversation_ended_at,conversation_before
103
+ FROM syncs WHERE status='open' AND conversation_ended_at IS NULL`).all();
104
+ return rows.some(value => !ended(value, Date.now()));
105
+ }
106
+ /** Turn admission only. Never turns a never-prepared conversation into a ready
107
+ * one merely because another conversation/background job prepared the corpus. */
108
+ function captureConversationHistory(id) {
109
+ assertConversationActive(id);
110
+ const value = row(id);
111
+ if (!value.conversation_before)
112
+ return null;
113
+ const latest = (0, service_1.historyReadiness)(true);
114
+ const before = latest.ready && latest.before && latest.before > value.conversation_before ? latest.before : value.conversation_before;
115
+ if (before !== value.conversation_before)
116
+ (0, schema_1.getDb)().prepare('UPDATE syncs SET conversation_before=? WHERE id=?').run(before, id);
117
+ return before;
118
+ }
119
+ /** Initial explicit preparation success only; background work cannot revive or
120
+ * prepare a conversation, and subsequent preparation cannot move its cutoff. */
121
+ function markConversationPrepared(id, before) {
122
+ assertConversationActive(id);
123
+ if (!Number.isFinite(Date.parse(before)) || new Date(before).toISOString() !== before)
124
+ throw new Error('Invalid prepared history cutoff');
125
+ (0, schema_1.getDb)().prepare('UPDATE syncs SET conversation_before=? WHERE id=? AND conversation_before IS NULL').run(before, id);
126
+ }
127
+ //# sourceMappingURL=conversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/sync/conversation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/sync/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,UAAU,EAAE,MAAM,UAAU,CAAC;AAiChD,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG5C;AAiDD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAI9E;AAQD,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAqG1K;AAED,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,CAqBlD;AAED;yEACyE;AACzE,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CActF;AAED,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAOrE"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/sync/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,UAAU,EAAE,MAAM,UAAU,CAAC;AAkChD,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG5C;AAiDD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAI9E;AAQD,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAuI1K;AAED,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,CAqBlD;AAED;yEACyE;AACzE,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAetF;AAED,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAQrE"}