draken 0.2.0 → 0.4.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 (134) hide show
  1. package/ACCEPTANCE.md +6 -3
  2. package/CHANGELOG.md +64 -0
  3. package/CONTRIBUTING.md +1 -1
  4. package/MEMORY.md +30 -8
  5. package/README.md +25 -9
  6. package/SETUP.md +2 -2
  7. package/SOURCES.md +1 -1
  8. package/VOICE.md +11 -3
  9. package/dist/db/schema.d.ts.map +1 -1
  10. package/dist/db/schema.js +6 -0
  11. package/dist/db/schema.js.map +1 -1
  12. package/dist/memory/automatic.d.ts +12 -6
  13. package/dist/memory/automatic.d.ts.map +1 -1
  14. package/dist/memory/automatic.js +65 -21
  15. package/dist/memory/automatic.js.map +1 -1
  16. package/dist/memory/context.d.ts +4 -4
  17. package/dist/memory/context.d.ts.map +1 -1
  18. package/dist/memory/context.js +64 -16
  19. package/dist/memory/context.js.map +1 -1
  20. package/dist/memory/embedding-pool.d.ts +1 -1
  21. package/dist/memory/embedding-pool.d.ts.map +1 -1
  22. package/dist/memory/embedding-pool.js +1 -1
  23. package/dist/memory/embedding-pool.js.map +1 -1
  24. package/dist/memory/index.d.ts +8 -2
  25. package/dist/memory/index.d.ts.map +1 -1
  26. package/dist/memory/index.js +195 -37
  27. package/dist/memory/index.js.map +1 -1
  28. package/dist/memory/model-files.d.ts +9 -0
  29. package/dist/memory/model-files.d.ts.map +1 -0
  30. package/dist/memory/model-files.js +13 -0
  31. package/dist/memory/model-files.js.map +1 -0
  32. package/dist/memory/model.d.ts +1 -1
  33. package/dist/memory/model.d.ts.map +1 -1
  34. package/dist/memory/model.js +11 -16
  35. package/dist/memory/model.js.map +1 -1
  36. package/dist/memory/readiness.d.ts +16 -0
  37. package/dist/memory/readiness.d.ts.map +1 -0
  38. package/dist/memory/readiness.js +131 -0
  39. package/dist/memory/readiness.js.map +1 -0
  40. package/dist/memory/reconcile.d.ts +11 -0
  41. package/dist/memory/reconcile.d.ts.map +1 -0
  42. package/dist/memory/reconcile.js +132 -0
  43. package/dist/memory/reconcile.js.map +1 -0
  44. package/dist/memory/service.d.ts +4 -2
  45. package/dist/memory/service.d.ts.map +1 -1
  46. package/dist/memory/service.js +34 -8
  47. package/dist/memory/service.js.map +1 -1
  48. package/dist/memory/sources.d.ts +2 -2
  49. package/dist/memory/sources.d.ts.map +1 -1
  50. package/dist/memory/sources.js +12 -5
  51. package/dist/memory/sources.js.map +1 -1
  52. package/dist/memory/storage.d.ts.map +1 -1
  53. package/dist/memory/storage.js +9 -0
  54. package/dist/memory/storage.js.map +1 -1
  55. package/dist/memory/types.d.ts +22 -1
  56. package/dist/memory/types.d.ts.map +1 -1
  57. package/dist/memory/types.js.map +1 -1
  58. package/dist/memory/worker.js +4 -2
  59. package/dist/memory/worker.js.map +1 -1
  60. package/dist/routes/live-voice.d.ts.map +1 -1
  61. package/dist/routes/live-voice.js +7 -1
  62. package/dist/routes/live-voice.js.map +1 -1
  63. package/dist/routes/memory.d.ts.map +1 -1
  64. package/dist/routes/memory.js +12 -2
  65. package/dist/routes/memory.js.map +1 -1
  66. package/dist/routes/sync.d.ts.map +1 -1
  67. package/dist/routes/sync.js +44 -10
  68. package/dist/routes/sync.js.map +1 -1
  69. package/dist/sync/answer-references.d.ts +10 -0
  70. package/dist/sync/answer-references.d.ts.map +1 -0
  71. package/dist/sync/answer-references.js +47 -0
  72. package/dist/sync/answer-references.js.map +1 -0
  73. package/dist/sync/automatic.d.ts +7 -0
  74. package/dist/sync/automatic.d.ts.map +1 -0
  75. package/dist/sync/automatic.js +56 -0
  76. package/dist/sync/automatic.js.map +1 -0
  77. package/dist/sync/collector.d.ts +1 -1
  78. package/dist/sync/collector.d.ts.map +1 -1
  79. package/dist/sync/collector.js +109 -69
  80. package/dist/sync/collector.js.map +1 -1
  81. package/dist/sync/cost.d.ts +2 -1
  82. package/dist/sync/cost.d.ts.map +1 -1
  83. package/dist/sync/cost.js +10 -6
  84. package/dist/sync/cost.js.map +1 -1
  85. package/dist/sync/manager.d.ts +7 -1
  86. package/dist/sync/manager.d.ts.map +1 -1
  87. package/dist/sync/manager.js +104 -19
  88. package/dist/sync/manager.js.map +1 -1
  89. package/dist/sync/reconciliation.d.ts +16 -0
  90. package/dist/sync/reconciliation.d.ts.map +1 -0
  91. package/dist/sync/reconciliation.js +22 -0
  92. package/dist/sync/reconciliation.js.map +1 -0
  93. package/dist/sync/store.d.ts +8 -1
  94. package/dist/sync/store.d.ts.map +1 -1
  95. package/dist/sync/store.js +51 -5
  96. package/dist/sync/store.js.map +1 -1
  97. package/dist/sync/tree.d.ts.map +1 -1
  98. package/dist/sync/tree.js +13 -7
  99. package/dist/sync/tree.js.map +1 -1
  100. package/dist/sync/usage.d.ts +6 -0
  101. package/dist/sync/usage.d.ts.map +1 -0
  102. package/dist/sync/usage.js +91 -0
  103. package/dist/sync/usage.js.map +1 -0
  104. package/dist/types.d.ts +46 -2
  105. package/dist/types.d.ts.map +1 -1
  106. package/dist/voice/continuation.d.ts.map +1 -1
  107. package/dist/voice/continuation.js +1 -0
  108. package/dist/voice/continuation.js.map +1 -1
  109. package/dist/voice/history-focus.d.ts +14 -0
  110. package/dist/voice/history-focus.d.ts.map +1 -0
  111. package/dist/voice/history-focus.js +39 -0
  112. package/dist/voice/history-focus.js.map +1 -0
  113. package/dist/voice/live-context.d.ts +1 -1
  114. package/dist/voice/live-context.d.ts.map +1 -1
  115. package/dist/voice/live-context.js +3 -3
  116. package/dist/voice/live-context.js.map +1 -1
  117. package/dist/voice/live.d.ts.map +1 -1
  118. package/dist/voice/live.js +47 -33
  119. package/dist/voice/live.js.map +1 -1
  120. package/dist/voice/preparation.d.ts +8 -0
  121. package/dist/voice/preparation.d.ts.map +1 -0
  122. package/dist/voice/preparation.js +59 -0
  123. package/dist/voice/preparation.js.map +1 -0
  124. package/package.json +1 -1
  125. package/public/assets/index-BCDcSZkB.css +1 -0
  126. package/public/assets/index-SXgKBqZw.js +131 -0
  127. package/public/assets/{persona-XbLvCqRT.js → persona-BgbqhiLa.js} +1 -1
  128. package/public/index.html +3 -3
  129. package/public/persona/chat-avatar.webp +0 -0
  130. package/public/persona.html +3 -3
  131. package/voice/realtime/native.mjs +1 -1
  132. package/public/assets/index-CYz_kpAp.js +0 -126
  133. package/public/assets/index-DmRid5xE.css +0 -1
  134. /package/public/assets/{index-Ymd62i3g.js → index-S46UUaj8.js} +0 -0
@@ -5,6 +5,15 @@ exports.initHistoryStorage = initHistoryStorage;
5
5
  * `embedding_cache` are read views, not additional text/vector stores. */
6
6
  function initHistoryStorage(db, fingerprint) {
7
7
  const version = 'history-index-v3-contentless';
8
+ if (db.prepare("SELECT 1 FROM sqlite_schema WHERE type='table' AND name='meta'").get()) {
9
+ const get = db.prepare('SELECT value FROM meta WHERE key=?');
10
+ // A cold prepared-only voice lookup must not perform even no-op schema
11
+ // writes. Real migrations/model changes still take the transactional path.
12
+ if (get.get('schema')?.value === version
13
+ && get.get('model')?.value === fingerprint
14
+ && get.get('covered-tails-removed')?.value === '1')
15
+ return;
16
+ }
8
17
  db.exec("CREATE TABLE IF NOT EXISTS meta(key TEXT PRIMARY KEY,value TEXT NOT NULL)");
9
18
  const prior = db.prepare("SELECT value FROM meta WHERE key='schema'").get()?.value;
10
19
  if ((prior && !['history-index-v1', 'history-index-v2-pointers', version].includes(prior)) || (!prior && db.prepare("SELECT 1 FROM sqlite_schema WHERE name IN ('records','chunks','vectors','passages')").get()))
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/memory/storage.ts"],"names":[],"mappings":";;AAIA,gDAwFC;AA1FD;0EAC0E;AAC1E,SAAgB,kBAAkB,CAAC,EAAqB,EAAE,WAAmB;IAC3E,MAAM,OAAO,GAAG,8BAA8B,CAAC;IAC/C,EAAE,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IACrF,MAAM,KAAK,GAAI,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,EAAU,EAAE,KAAK,CAAC;IAC5F,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,kBAAkB,EAAE,2BAA2B,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,qFAAqF,CAAC,CAAC,GAAG,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IACnS,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAClB,EAAE,CAAC,IAAI,CAAC;;;;;;;;KAQP,CAAC,CAAC;QACH,IAAI,KAAK,KAAK,kBAAkB,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAI,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,EAAU,EAAE,GAAG,IAAI,CAAC,CAAC;YAC5G,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC;YACnF,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;YACnE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC;YAC7F,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,EAAW,EAAE,CAAC;gBAChF,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAAC,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAQ,CAAC;gBACxE,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC3E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oEAAoE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,IAAI,QAAQ;gBAAE,EAAE,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YACtN,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;YACzE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC;YACpF,yEAAyE;YACzE,oEAAoE;YACpE,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,EAAW;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5G,KAAK,MAAM,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAAW,EAAE,CAAC;gBAC5F,IAAI,KAAK,GAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAS,EAAE,SAA+B,CAAC;gBAC9E,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAU,EAAE,CAAC;oBAC7G,MAAM,KAAK,GAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAS,EAAE,SAA+B,CAAC;oBACnF,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;oBAClH,KAAK,KAAK,KAAK,CAAC;gBAClB,CAAC;gBACD,IAAI,CAAC,KAAK;oBAAE,SAAS;gBACrB,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBACxK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBAAC,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC/G,CAAC;YACD,wEAAwE;YACxE,wEAAwE;YACxE,EAAE,CAAC,IAAI,CAAC,+IAA+I,CAAC,CAAC;YACzJ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC9E,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;gBAChE,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC;;8FAEyD,CAAC,CAAC,GAAG,EAAW,EAAE,CAAC;oBACvG,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;oBACvC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChE,4EAA4E;wBAC5E,MAAM,IAAI,GAAI,EAAE,CAAC,OAAO,CAAC,kFAAkF,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAS,CAAC,IAAI,CAAC;wBACtI,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;wBAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC/G,CAAC;gBACH,CAAC;YACH,CAAC;YACD,EAAE,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAChE,CAAC;QACD,IAAK,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;YACrG,IAAI,EAAE,CAAC,OAAO,CAAC,+FAA+F,CAAC,CAAC,GAAG,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACjM,sEAAsE;YACtE,wEAAwE;YACxE,EAAE,CAAC,IAAI,CAAC;;;;;+CAKiC,CAAC,CAAC;QAC7C,CAAC;QACD,EAAE,CAAC,IAAI,CAAC;;;;;;KAMP,CAAC,CAAC;QACH,MAAM,QAAQ,GAAI,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAAU,EAAE,KAAK,CAAC;QAC9F,IAAI,QAAQ,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YACzC,mFAAmF;YACnF,EAAE,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,8HAA8H,CAAC,CAAC;QAC5J,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpE,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC,GAAG,EAAE,CAAC;IACrF,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/memory/storage.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,18 @@ export interface HistoryRecord {
10
10
  at: string | null;
11
11
  qualification: string;
12
12
  text: string;
13
+ /** Comparable only within one original source session. */
14
+ sequence?: number;
13
15
  }
14
16
  export interface HistoryQuery {
15
17
  question: string;
16
18
  session_id?: string;
19
+ session_ids?: string[];
20
+ kind?: 'sources' | 'conversation';
21
+ recent?: boolean;
22
+ /** Bounded status follow-ups; intended for the larger text-answer packet. */
23
+ reconcile?: boolean;
24
+ topics?: string[];
17
25
  sync_id?: number;
18
26
  before?: string;
19
27
  }
@@ -22,8 +30,21 @@ export interface HistoryResults {
22
30
  results: (HistoryRecord & {
23
31
  offset: number;
24
32
  score: number;
33
+ lead?: string;
25
34
  })[];
26
35
  limitations: string;
36
+ reconciliation?: {
37
+ checked_narratives: number;
38
+ omitted_narratives: number;
39
+ omitted_threads: number;
40
+ threads: {
41
+ earlier_ref: string;
42
+ later_refs: string[];
43
+ matched_terms: string[];
44
+ other_candidates: number;
45
+ }[];
46
+ qualification: string;
47
+ };
27
48
  }
28
49
  export interface HistoryPage {
29
50
  record: HistoryRecord;
@@ -57,7 +78,7 @@ export declare const historyUpdate: (stage: HistoryUpdate["stage"], fields?: Par
57
78
  export interface Embedder {
58
79
  readonly fingerprint: string;
59
80
  ready(): boolean;
60
- setup(report?: ReportHistory): Promise<void>;
81
+ setup(report?: ReportHistory, allowDownload?: boolean): Promise<void>;
61
82
  embed(text: string, query: boolean): Promise<Float32Array>;
62
83
  embedMany?(texts: string[], parallel?: boolean): Promise<Float32Array[]>;
63
84
  readonly parallelism?: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":";;;AAiDO,MAAM,aAAa,GAAG,CAAC,KAA6B,EAAE,SAAgD,EAAE,EAAiB,EAAE,CAAC,CAAC;IAClI,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,GAAG,MAAM;CAC3H,CAAC,CAAC;AAFU,QAAA,aAAa,iBAEvB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":";;;AAgEO,MAAM,aAAa,GAAG,CAAC,KAA6B,EAAE,SAAgD,EAAE,EAAiB,EAAE,CAAC,CAAC;IAClI,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,GAAG,MAAM;CAC3H,CAAC,CAAC;AAFU,QAAA,aAAa,iBAEvB"}
@@ -48,9 +48,11 @@ process.on('message', async (message) => {
48
48
  }
49
49
  else if (message.method === 'search')
50
50
  value = await index.search(message.query, report);
51
- else if (message.method === 'read') {
51
+ else if (message.method === 'search-prepared')
52
+ value = await index.search(message.query, report, true);
53
+ else if (message.method === 'read' || message.method === 'read-prepared') {
52
54
  report((0, types_1.historyUpdate)('reading'));
53
- value = index.read(message.ref, message.offset);
55
+ value = index.read(message.ref, message.offset, message.method === 'read-prepared' ? message.before : undefined);
54
56
  }
55
57
  else
56
58
  throw new Error('Unknown history operation');
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/memory/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/memory/worker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"live-voice.d.ts","sourceRoot":"","sources":["../../src/routes/live-voice.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,4CAAW,CAAC;AA0BxB,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"live-voice.d.ts","sourceRoot":"","sources":["../../src/routes/live-voice.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AA8BxB,eAAe,MAAM,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const express_1 = require("express");
4
4
  const store_1 = require("../sync/store");
5
5
  const live_1 = require("../voice/live");
6
+ const automatic_1 = require("../memory/automatic");
6
7
  const router = (0, express_1.Router)();
7
8
  const route = (fn) => (req, res, next) => { Promise.resolve().then(() => fn(req, res)).catch(next); };
8
9
  const id = (value) => { if (typeof value !== 'string' || !/^[a-f0-9-]{36}$/.test(value))
@@ -27,7 +28,12 @@ router.post('/calls', route(async (req, res) => {
27
28
  if (Object.keys(req.body || {}).some(key => !['syncId', 'requestId'].includes(key)))
28
29
  throw new store_1.HttpError(400, 'Unknown call option. Refresh the page.');
29
30
  const requestId = req.body?.requestId === undefined ? undefined : id(req.body.requestId);
30
- const result = await connected(res, signal => (0, live_1.createLiveCall)(number(req.body?.syncId, 1), signal, requestId));
31
+ const syncId = number(req.body?.syncId, 1);
32
+ const result = await connected(res, async (signal) => {
33
+ await (0, automatic_1.yieldBackgroundIndexing)();
34
+ signal.throwIfAborted();
35
+ return (0, live_1.createLiveCall)(syncId, signal, requestId);
36
+ });
31
37
  res.status(201).json(result);
32
38
  }));
33
39
  router.post('/calls/:id/connect', route(async (req, res) => {
@@ -1 +1 @@
1
- {"version":3,"file":"live-voice.js","sourceRoot":"","sources":["../../src/routes/live-voice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live-voice.js","sourceRoot":"","sources":["../../src/routes/live-voice.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/routes/memory.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,MAAM,4CAAW,CAAC;AASxB,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/routes/memory.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAgBxB,eAAe,MAAM,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const express_1 = require("express");
4
4
  const service_1 = require("../memory/service");
5
+ const automatic_1 = require("../memory/automatic");
5
6
  const router = (0, express_1.Router)();
6
7
  const route = (handler) => (req, res, next) => {
7
8
  const abort = new AbortController();
@@ -12,7 +13,16 @@ const route = (handler) => (req, res, next) => {
12
13
  };
13
14
  // Metadata only: never starts a worker, downloads a model or queues behind it.
14
15
  router.get('/progress', (_req, res) => res.json((0, service_1.historyProgress)()));
15
- router.post('/search', route(async (req, res, signal) => res.json(await (0, service_1.searchHistory)((0, service_1.validateHistoryQuery)(req.body), signal))));
16
- router.get('/records/:ref', route(async (req, res, signal) => res.json(await (0, service_1.readHistory)(String(req.params.ref), req.query.offset === undefined ? 0 : Number(req.query.offset), signal))));
16
+ router.post('/search', route(async (req, res, signal) => {
17
+ const query = (0, service_1.validateHistoryQuery)(req.body);
18
+ await (0, automatic_1.yieldBackgroundIndexing)();
19
+ signal.throwIfAborted();
20
+ res.json(await (0, service_1.searchHistory)(query, signal));
21
+ }));
22
+ router.get('/records/:ref', route(async (req, res, signal) => {
23
+ await (0, automatic_1.yieldBackgroundIndexing)();
24
+ signal.throwIfAborted();
25
+ res.json(await (0, service_1.readHistory)(String(req.params.ref), req.query.offset === undefined ? 0 : Number(req.query.offset), signal));
26
+ }));
17
27
  exports.default = router;
18
28
  //# sourceMappingURL=memory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/routes/memory.ts"],"names":[],"mappings":";;AAAA,qCAAiF;AACjF,+CAAsG;AACtG,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AACxB,MAAM,KAAK,GAAG,CAAC,OAAyF,EAAE,EAAE,CAAC,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;IAC/J,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IAAC,MAAM,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa;QAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9H,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AACzH,CAAC,CAAC;AACF,+EAA+E;AAC/E,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,yBAAe,GAAE,CAAC,CAAC,CAAC;AACpE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAA,uBAAa,EAAC,IAAA,8BAAoB,EAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACjI,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAA,qBAAW,EAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3L,kBAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/routes/memory.ts"],"names":[],"mappings":";;AAAA,qCAAiF;AACjF,+CAAsG;AACtG,mDAA8D;AAC9D,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AACxB,MAAM,KAAK,GAAG,CAAC,OAAyF,EAAE,EAAE,CAAC,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;IAC/J,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IAAC,MAAM,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa;QAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9H,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AACzH,CAAC,CAAC;AACF,+EAA+E;AAC/E,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,yBAAe,GAAE,CAAC,CAAC,CAAC;AACpE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IACtD,MAAM,KAAK,GAAG,IAAA,8BAAoB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,IAAA,mCAAuB,GAAE,CAAC;IAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IACzD,GAAG,CAAC,IAAI,CAAC,MAAM,IAAA,uBAAa,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IAC3D,MAAM,IAAA,mCAAuB,GAAE,CAAC;IAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IACzD,GAAG,CAAC,IAAI,CAAC,MAAM,IAAA,qBAAW,EAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7H,CAAC,CAAC,CAAC,CAAC;AACJ,kBAAe,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAmGxB,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":"AAUA,QAAA,MAAM,MAAM,4CAAW,CAAC;AA6HxB,eAAe,MAAM,CAAC"}
@@ -7,6 +7,8 @@ const collector_1 = require("../sync/collector");
7
7
  const store_1 = require("../sync/store");
8
8
  const manager_1 = require("../sync/manager");
9
9
  const automatic_1 = require("../memory/automatic");
10
+ const preparation_1 = require("../voice/preparation");
11
+ const usage_1 = require("../sync/usage");
10
12
  const router = (0, express_1.Router)();
11
13
  const route = (handler) => (req, res, next) => { Promise.resolve().then(() => handler(req, res)).catch(next); };
12
14
  function id(req) {
@@ -25,22 +27,35 @@ router.get('/setup', route(async (req, res) => {
25
27
  throw new store_1.HttpError(400, 'Unknown setup status option');
26
28
  res.json({ pi: await (0, runtime_1.piSetupStatus)(req.query.refresh === '1'), data_dir: (0, schema_1.getDataDir)() });
27
29
  }));
30
+ router.get('/settings/preparation-usage', route((req, res) => res.json((0, usage_1.preparationUsage)((0, schema_1.getDb)(), req.query))));
28
31
  router.get('/settings/auto-index', route((_req, res) => res.json((0, automatic_1.autoIndexSettings)())));
29
32
  router.patch('/settings/auto-index', route((req, res) => {
30
- if (!req.body || Array.isArray(req.body) || Object.keys(req.body).length !== 1 || !Object.hasOwn(req.body, 'enabled'))
31
- throw new store_1.HttpError(400, 'Only enabled is accepted');
33
+ if (!req.body || Array.isArray(req.body) || typeof req.body.enabled !== 'boolean' || Object.keys(req.body).some(key => !['enabled', 'preparation_scope'].includes(key)))
34
+ throw new store_1.HttpError(400, 'Only enabled and preparation_scope are accepted');
35
+ if (req.body.enabled && req.body.preparation_scope !== 'index-and-briefing-v1')
36
+ throw new store_1.HttpError(409, 'Refresh Draken before enabling automatic preparation. This mode includes summary and briefing model usage, not only local indexing.');
32
37
  res.json((0, automatic_1.setAutoIndex)(req.body.enabled));
33
38
  }));
34
- router.use((req, _res, next) => { if (['POST', 'PATCH', 'DELETE'].includes(req.method))
35
- (0, automatic_1.yieldBackgroundIndexing)(); next(); });
39
+ router.use((req, _res, next) => {
40
+ if (['POST', 'PATCH', 'DELETE'].includes(req.method))
41
+ void (0, automatic_1.yieldBackgroundIndexing)().then(() => next(), next);
42
+ else
43
+ next();
44
+ });
36
45
  router.get('/home', route((req, res) => {
37
46
  const before = req.query.before === undefined ? undefined : Number(req.query.before);
38
47
  if (before !== undefined && (!Number.isSafeInteger(before) || before < 1))
39
48
  throw new store_1.HttpError(400, 'Invalid history cursor');
40
49
  res.json((0, store_1.homeOverview)(before));
41
50
  }));
51
+ async function completeScan() {
52
+ const scan = await (0, collector_1.scanSessions)();
53
+ if (scan.warnings.length)
54
+ throw new store_1.HttpError(409, 'History import could not finish. Check session sources and scan again; no new snapshot was prepared.');
55
+ return scan;
56
+ }
42
57
  let starting = false;
43
- router.post('/syncs/start-call', route(async (req, res) => {
58
+ router.post(['/syncs/start-call', '/syncs/start-chat'], route(async (req, res) => {
44
59
  const requestId = req.body?.request_id;
45
60
  if (typeof requestId !== 'string' || !/^[a-f0-9]{8}-(?:[a-f0-9]{4}-){3}[a-f0-9]{12}$/.test(requestId))
46
61
  throw new store_1.HttpError(400, 'A request ID is required');
@@ -55,14 +70,19 @@ router.post('/syncs/start-call', route(async (req, res) => {
55
70
  if (store_1.busySyncs.size || store_1.activeVoiceSyncs.size)
56
71
  throw new store_1.HttpError(409, 'End the active call or wait for preparation before starting another sync.');
57
72
  starting = true;
73
+ store_1.busySyncs.add(0); // Reserve foreground ownership during async setup and scanning.
58
74
  try {
59
75
  const setup = await (0, runtime_1.piSetupStatus)(true);
60
76
  if (setup.state !== 'configured')
61
77
  throw new store_1.HttpError(503, setup.message);
62
- const scan = await (0, collector_1.scanSessions)(), sync = (0, store_1.startConversationSync)(requestId);
63
- res.status(202).json({ sync: (0, manager_1.launchReply)(sync.id), scan });
78
+ const scan = await completeScan();
79
+ store_1.busySyncs.delete(0);
80
+ const sync = (0, store_1.startConversationSync)(requestId);
81
+ const ready = (0, preparation_1.callReadiness)(sync.id, req.path.endsWith('/start-chat')).ready;
82
+ res.status(202).json({ sync: ready ? sync : (0, manager_1.launchReply)(sync.id), scan });
64
83
  }
65
84
  finally {
85
+ store_1.busySyncs.delete(0);
66
86
  starting = false;
67
87
  }
68
88
  }));
@@ -84,14 +104,17 @@ router.post('/syncs', route(async (req, res) => {
84
104
  const since = req.body?.history_since;
85
105
  if (since !== undefined && since !== null && typeof since !== 'string')
86
106
  throw new store_1.HttpError(400, 'history_since must be a date string or null');
87
- const scan = await (0, collector_1.scanSessions)();
107
+ const scan = await completeScan();
88
108
  res.json({ sync: (0, store_1.startSync)(since), scan });
89
109
  }));
90
110
  router.get('/syncs/:id', route((req, res) => res.json((0, store_1.getSync)(id(req)))));
91
111
  router.get('/syncs/:id/progress', route((req, res) => res.json((0, store_1.getProgress)(id(req)))));
112
+ router.get('/syncs/:id/call-readiness', route((req, res) => res.json((0, preparation_1.callReadiness)(id(req)))));
113
+ router.get('/syncs/:id/chat-readiness', route((req, res) => { res.json((0, preparation_1.callReadiness)(id(req), true)); }));
114
+ router.post('/syncs/:id/prepare-call', route((req, res) => res.status(202).json((0, preparation_1.prepareCall)(id(req)))));
92
115
  router.get('/syncs/:id/tree/:key', route((req, res) => res.json((0, store_1.getTreeNode)(id(req), String(req.params.key)))));
93
116
  router.post('/syncs/:id/expand', route(async (req, res) => {
94
- const scan = await (0, collector_1.scanSessions)();
117
+ const scan = await completeScan();
95
118
  res.json({ sync: (0, store_1.expandSnapshot)(id(req)), scan });
96
119
  }));
97
120
  router.patch('/syncs/:id/models', route((req, res) => {
@@ -103,13 +126,16 @@ router.patch('/syncs/:id/models', route((req, res) => {
103
126
  }));
104
127
  router.post('/syncs/:id/cancel', route((req, res) => {
105
128
  (0, manager_1.cancelReply)(id(req));
129
+ (0, store_1.claimAutomaticSync)(id(req));
106
130
  res.status(202).json((0, store_1.getProgress)(id(req)));
107
131
  }));
108
132
  router.patch('/syncs/:id/notes', route((req, res) => {
109
133
  res.json((0, store_1.saveNotes)(id(req), text(req.body?.decisions, 'Decisions'), text(req.body?.carry_forward, 'Carry forward')));
110
134
  }));
111
135
  router.post('/syncs/:id/briefing', route((req, res) => {
112
- res.status(202).json((0, manager_1.launchReply)(id(req)));
136
+ const sync = (0, manager_1.launchReply)(id(req));
137
+ (0, store_1.claimAutomaticSync)(sync.id);
138
+ res.status(202).json(sync);
113
139
  }));
114
140
  router.post('/syncs/:id/messages', route((req, res) => {
115
141
  const question = text(req.body?.message, 'Message');
@@ -119,6 +145,14 @@ router.post('/syncs/:id/messages', route((req, res) => {
119
145
  throw new store_1.HttpError(400, 'Unknown discussion option. Refresh the page.');
120
146
  res.status(202).json((0, manager_1.launchReply)(id(req), question));
121
147
  }));
148
+ router.post('/syncs/:id/chat/messages', route((req, res) => {
149
+ const question = text(req.body?.message, 'Message');
150
+ if (!question)
151
+ throw new store_1.HttpError(400, 'Message cannot be empty');
152
+ if (Object.keys(req.body).some(key => !['message', 'request_id'].includes(key)) || typeof req.body.request_id !== 'string')
153
+ throw new store_1.HttpError(400, 'Only a message and chat request ID are accepted');
154
+ res.status(202).json((0, manager_1.launchChat)(id(req), question, req.body.request_id));
155
+ }));
122
156
  router.post('/syncs/:id/complete', route((req, res) => {
123
157
  res.json((0, store_1.completeSync)(id(req), text(req.body?.decisions, 'Decisions'), text(req.body?.carry_forward, 'Carry forward'), req.body?.reviewed === true));
124
158
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":";;AAAA,qCAAkE;AAClE,yCAAiD;AACjD,2CAA8C;AAC9C,iDAAiD;AACjD,yCAA6R;AAC7R,6CAAoF;AACpF,mDAA+F;AAC/F,sDAAkE;AAClE,yCAAiD;AAEjD,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AACxB,MAAM,KAAK,GAAG,CAAC,OAAoE,EAAE,EAAE,CACrF,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACxH,SAAS,EAAE,CAAC,GAAY;IACtB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC3F,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,IAAI,CAAC,KAAc,EAAE,IAAY,EAAE,GAAG,GAAG,IAAI;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,GAAG,IAAI,4BAA4B,GAAG,aAAa,CAAC,CAAC;IACnI,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAC5C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;IACrL,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,IAAA,uBAAa,EAAC,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAA,mBAAU,GAAE,EAAE,CAAC,CAAC;AAC3F,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,wBAAgB,EAAC,IAAA,cAAK,GAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/G,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,6BAAiB,GAAE,CAAC,CAAC,CAAC,CAAC;AACxF,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACtD,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,iDAAiD,CAAC,CAAC;IACrP,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,uBAAuB;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,qIAAqI,CAAC,CAAC;IAChP,GAAG,CAAC,IAAI,CAAC,IAAA,wBAAY,EAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IAC7B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,KAAK,IAAA,mCAAuB,GAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;;QACzG,IAAI,EAAE,CAAC;AACd,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrF,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;IAC9H,GAAG,CAAC,IAAI,CAAC,IAAA,oBAAY,EAAC,MAAM,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC,CAAC;AACJ,KAAK,UAAU,YAAY;IACzB,MAAM,IAAI,GAAG,MAAM,IAAA,wBAAY,GAAE,CAAC;IAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,sGAAsG,CAAC,CAAC;IAC3J,OAAO,IAAI,CAAC;AACd,CAAC;AACD,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,MAAM,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAC/E,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC;IACvC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,+CAA+C,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC;IAC5J,6EAA6E;IAC7E,IAAI,QAAQ;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,IAAA,cAAK,GAAE,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC,GAAG,CAAC,SAAS,CAAoC,CAAC;IAC7I,IAAI,KAAK,EAAE,CAAC;QAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAA,eAAO,EAAC,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAC1H,IAAI,iBAAS,CAAC,IAAI,IAAI,wBAAgB,CAAC,IAAI;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,2EAA2E,CAAC,CAAC;IACnJ,QAAQ,GAAG,IAAI,CAAC;IAChB,iBAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gEAAgE;IAClF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,IAAA,uBAAa,EAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY;YAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;QAClC,iBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,IAAA,6BAAqB,EAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAA,2BAAa,EAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7E,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,qBAAW,EAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;YAAS,CAAC;QAAC,iBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,GAAG,KAAK,CAAC;IAAC,CAAC;AACtD,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,qBAAW,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjG,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,gBAAQ,GAAE,CAAC,CAAC,CAAC,CAAC;AACpE,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAChD,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;IACtL,GAAG,CAAC,IAAI,CAAC,IAAA,uBAAe,EAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAA,wBAAY,GAAE,CAAC,CAAC,CAAC,CAAC;AACjF,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACtD,IAAI,OAAO,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,SAAS;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;IACpG,IAAA,mBAAW,EAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,IAAA,gBAAQ,GAAE,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC;IACtC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,6CAA6C,CAAC,CAAC;IAChJ,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;IAClC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAA,iBAAS,EAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,eAAO,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,mBAAW,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,MAAM,CAAC,GAAG,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,2BAAa,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/F,MAAM,CAAC,GAAG,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,IAAA,2BAAa,EAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1G,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,yBAAW,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,mBAAW,EAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChH,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IACxD,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;IAClC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAA,sBAAc,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACnD,GAAG,CAAC,IAAI,CAAC,IAAA,uBAAe,EAAC,EAAE,CAAC,GAAG,CAAC,EAAE;QAChC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,CAAC;QACtD,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC;QAChD,eAAe,EAAE,GAAG,CAAC,IAAI,EAAE,eAAe;KAC3C,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAClD,IAAA,qBAAW,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAA,0BAAkB,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,mBAAW,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAClD,GAAG,CAAC,IAAI,CAAC,IAAA,iBAAS,EAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;AACvH,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACpD,MAAM,IAAI,GAAG,IAAA,qBAAW,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,IAAA,0BAAkB,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,8CAA8C,CAAC,CAAC;IACnI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,qBAAW,EAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,QAAQ;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,iDAAiD,CAAC,CAAC;IACxM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,oBAAU,EAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC3E,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACpD,GAAG,CAAC,IAAI,CAAC,IAAA,oBAAY,EAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,eAAe,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC;AACvJ,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,mBAAW,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvF,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** One stable, per-answer wire namespace. The model copies short labels; only
2
+ * the application maps them to admitted original-source references. This does
3
+ * not establish semantic support or admit a reference found inside a quote. */
4
+ export declare function answerReferences(allowed: Set<string>): {
5
+ labels: string[];
6
+ encode: (value: unknown, key?: string) => unknown;
7
+ decode: (answer: string) => string;
8
+ };
9
+ export declare function verdictReferenceIssue(answer: string, allowed: Set<string>): 'outside_catalog' | 'missing' | null;
10
+ //# sourceMappingURL=answer-references.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-references.d.ts","sourceRoot":"","sources":["../../src/sync/answer-references.ts"],"names":[],"mappings":"AAEA;;+EAE+E;AAC/E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC;;oBAK5B,OAAO,mBAAa,OAAO;qBAqB/B,MAAM;EAE1B;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAIhH"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.answerReferences = answerReferences;
4
+ exports.verdictReferenceIssue = verdictReferenceIssue;
5
+ const markers = /\[((?:[ECR]\d+|H[A-Za-z0-9_-]+)(?:[\s,;]+(?:[ECR]\d+|H[A-Za-z0-9_-]+))*)\]/g;
6
+ /** One stable, per-answer wire namespace. The model copies short labels; only
7
+ * the application maps them to admitted original-source references. This does
8
+ * not establish semantic support or admit a reference found inside a quote. */
9
+ function answerReferences(allowed) {
10
+ const labels = new Map([...allowed].map((ref, index) => [ref, `R${index + 1}`]));
11
+ const originals = new Map([...labels].map(([ref, label]) => [label, ref]));
12
+ const referenceFields = new Set(['ref', 'earlier_ref', 'later_refs', 'missing_later_refs', 'evidence']);
13
+ const quoted = (text) => text.replace(markers, '(quoted reference $1)');
14
+ function encode(value, key = '') {
15
+ if (Array.isArray(value))
16
+ return value.map(item => encode(item, key));
17
+ if (typeof value === 'string') {
18
+ if (referenceFields.has(key)) {
19
+ const label = labels.get(value);
20
+ if (!label)
21
+ throw new Error('Answer evidence contains a reference outside its admitted catalog');
22
+ return label;
23
+ }
24
+ const text = quoted(value.replace('Cite only the supplied H references', 'Cite only the supplied reference_labels'));
25
+ // Preserve an explicit source-read request in the wire namespace without
26
+ // turning any reference quoted by an original source into authorization.
27
+ return key === 'user_question' ? text.replace(/\b(?:[EC]\d+|H[a-f0-9]{24})\b/g, ref => labels.get(ref) || ref) : text;
28
+ }
29
+ if (value && typeof value === 'object')
30
+ return Object.fromEntries(Object.entries(value).map(([name, item]) => [name, encode(item, name)]));
31
+ return value;
32
+ }
33
+ return {
34
+ labels: [...originals.keys()],
35
+ encode,
36
+ // Unknown labels are left visible for strict validation, never guessed or
37
+ // silently dropped. Canonical citations are still checked against allowed.
38
+ decode: (answer) => answer.replace(markers, (_full, group) => group.split(/[\s,;]+/).map(label => `[${originals.get(label) || label}]`).join(' ')),
39
+ };
40
+ }
41
+ function verdictReferenceIssue(answer, allowed) {
42
+ const cited = [...answer.matchAll(markers)].flatMap(match => match[1].split(/[\s,;]+/));
43
+ if (cited.some(ref => !allowed.has(ref)))
44
+ return 'outside_catalog';
45
+ return allowed.size && !cited.length ? 'missing' : null;
46
+ }
47
+ //# sourceMappingURL=answer-references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-references.js","sourceRoot":"","sources":["../../src/sync/answer-references.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function pendingAutomaticBriefing(): number | undefined;
2
+ /** A failed provider run needs an explicit retry, not an endless paid timer loop.
3
+ * Interrupted/cancelled runs may resume from their durable cached tree. */
4
+ export declare function automaticBriefingError(): string;
5
+ export declare function retryAutomaticBriefing(): void;
6
+ export declare function prepareAutomaticBriefing(signal: AbortSignal): Promise<void>;
7
+ //# sourceMappingURL=automatic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automatic.d.ts","sourceRoot":"","sources":["../../src/sync/automatic.ts"],"names":[],"mappings":"AAMA,wBAAgB,wBAAwB,IAAI,MAAM,GAAG,SAAS,CAI7D;AAED;2EAC2E;AAC3E,wBAAgB,sBAAsB,IAAI,MAAM,CAK/C;AACD,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AACD,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBjF"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pendingAutomaticBriefing = pendingAutomaticBriefing;
4
+ exports.automaticBriefingError = automaticBriefingError;
5
+ exports.retryAutomaticBriefing = retryAutomaticBriefing;
6
+ exports.prepareAutomaticBriefing = prepareAutomaticBriefing;
7
+ const node_crypto_1 = require("node:crypto");
8
+ const schema_1 = require("../db/schema");
9
+ const service_1 = require("../memory/service");
10
+ const manager_1 = require("./manager");
11
+ const store_1 = require("./store");
12
+ function pendingAutomaticBriefing() {
13
+ const row = (0, schema_1.getDb)().prepare("SELECT value FROM sync_settings WHERE key='auto_preparing_sync'").get();
14
+ const id = row ? Number(row.value) : undefined;
15
+ return id !== undefined && ((0, store_1.automaticSyncId)(false) === id || (0, store_1.automaticSyncId)(true) === id) ? id : (0, store_1.automaticSyncId)(false);
16
+ }
17
+ /** A failed provider run needs an explicit retry, not an endless paid timer loop.
18
+ * Interrupted/cancelled runs may resume from their durable cached tree. */
19
+ function automaticBriefingError() {
20
+ const row = (0, schema_1.getDb)().prepare("SELECT value FROM sync_settings WHERE key='auto_briefing_failed'").get();
21
+ if (!row)
22
+ return '';
23
+ const pending = pendingAutomaticBriefing();
24
+ return pending === Number(row.value) ? `Automatic briefing #${pending} stopped. Open that sync to inspect or retry it, or retry automatic preparation. Completed summaries are retained.` : '';
25
+ }
26
+ function retryAutomaticBriefing() {
27
+ (0, schema_1.getDb)().prepare("DELETE FROM sync_settings WHERE key='auto_briefing_failed'").run();
28
+ }
29
+ async function prepareAutomaticBriefing(signal) {
30
+ signal.throwIfAborted();
31
+ const pending = pendingAutomaticBriefing();
32
+ if (pending === undefined && !(0, store_1.availableCount)())
33
+ return;
34
+ const id = pending ?? (0, store_1.startConversationSync)(`auto:${(0, node_crypto_1.randomUUID)()}`, true).id;
35
+ (0, schema_1.getDb)().prepare("INSERT INTO sync_settings(key,value) VALUES ('auto_preparing_sync',?) ON CONFLICT(key) DO UPDATE SET value=excluded.value").run(String(id));
36
+ store_1.backgroundSyncs.add(id);
37
+ try {
38
+ (0, store_1.assertAutomaticScope)(id);
39
+ await (0, manager_1.generateReply)(id, undefined, undefined, { signal, deferHistory: true });
40
+ signal.throwIfAborted();
41
+ // Include the completed preparation's retained context in the readiness
42
+ // receipt, outside a conversation and with the same cancellation owner.
43
+ await (0, service_1.prepareHistory)(new Date().toISOString(), signal, true);
44
+ signal.throwIfAborted();
45
+ (0, schema_1.getDb)().prepare("DELETE FROM sync_settings WHERE key='auto_preparing_sync' AND value=?").run(String(id));
46
+ }
47
+ catch (error) {
48
+ if (!signal.aborted)
49
+ (0, schema_1.getDb)().prepare("INSERT INTO sync_settings(key,value) VALUES ('auto_briefing_failed',?) ON CONFLICT(key) DO UPDATE SET value=excluded.value").run(String(id));
50
+ throw error;
51
+ }
52
+ finally {
53
+ store_1.backgroundSyncs.delete(id);
54
+ }
55
+ }
56
+ //# sourceMappingURL=automatic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automatic.js","sourceRoot":"","sources":["../../src/sync/automatic.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { ScanResult } from '../types';
2
- export declare function scanSessions(): Promise<ScanResult>;
2
+ export declare function scanSessions(signal?: AbortSignal): Promise<ScanResult>;
3
3
  //# sourceMappingURL=collector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/sync/collector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAkB,MAAM,UAAU,CAAC;AA0MtD,wBAAgB,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CAiClD"}
1
+ {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/sync/collector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAkB,MAAM,UAAU,CAAC;AAgOtD,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA8CtE"}