bikky 0.3.0 → 0.3.2

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 (331) hide show
  1. package/README.md +79 -26
  2. package/dist/cli.d.ts +1 -0
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +7 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config.d.ts +28 -3
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +82 -6
  9. package/dist/config.js.map +1 -1
  10. package/dist/config.test.js +17 -9
  11. package/dist/config.test.js.map +1 -1
  12. package/dist/daemon/capture-policy.d.ts +95 -0
  13. package/dist/daemon/capture-policy.d.ts.map +1 -0
  14. package/dist/daemon/capture-policy.js +139 -0
  15. package/dist/daemon/capture-policy.js.map +1 -0
  16. package/dist/daemon/capture-policy.test.d.ts +2 -0
  17. package/dist/daemon/capture-policy.test.d.ts.map +1 -0
  18. package/dist/daemon/capture-policy.test.js +46 -0
  19. package/dist/daemon/capture-policy.test.js.map +1 -0
  20. package/dist/daemon/consolidation.d.ts.map +1 -1
  21. package/dist/daemon/consolidation.js +84 -98
  22. package/dist/daemon/consolidation.js.map +1 -1
  23. package/dist/daemon/episode-summary.d.ts +77 -0
  24. package/dist/daemon/episode-summary.d.ts.map +1 -0
  25. package/dist/daemon/episode-summary.js +239 -0
  26. package/dist/daemon/episode-summary.js.map +1 -0
  27. package/dist/daemon/episode-summary.test.d.ts +2 -0
  28. package/dist/daemon/episode-summary.test.d.ts.map +1 -0
  29. package/dist/daemon/episode-summary.test.js +101 -0
  30. package/dist/daemon/episode-summary.test.js.map +1 -0
  31. package/dist/daemon/extraction.d.ts +25 -0
  32. package/dist/daemon/extraction.d.ts.map +1 -1
  33. package/dist/daemon/extraction.js +244 -124
  34. package/dist/daemon/extraction.js.map +1 -1
  35. package/dist/daemon/extraction.test.d.ts +2 -0
  36. package/dist/daemon/extraction.test.d.ts.map +1 -0
  37. package/dist/daemon/extraction.test.js +106 -0
  38. package/dist/daemon/extraction.test.js.map +1 -0
  39. package/dist/daemon/loop.d.ts.map +1 -1
  40. package/dist/daemon/loop.js +8 -6
  41. package/dist/daemon/loop.js.map +1 -1
  42. package/dist/daemon/qdrant.d.ts +59 -8
  43. package/dist/daemon/qdrant.d.ts.map +1 -1
  44. package/dist/daemon/qdrant.js +95 -39
  45. package/dist/daemon/qdrant.js.map +1 -1
  46. package/dist/daemon/qdrant.test.js +2 -2
  47. package/dist/daemon/qdrant.test.js.map +1 -1
  48. package/dist/daemon/relations.d.ts +9 -1
  49. package/dist/daemon/relations.d.ts.map +1 -1
  50. package/dist/daemon/relations.js +52 -48
  51. package/dist/daemon/relations.js.map +1 -1
  52. package/dist/daemon/session-index.d.ts +60 -0
  53. package/dist/daemon/session-index.d.ts.map +1 -0
  54. package/dist/daemon/session-index.js +136 -0
  55. package/dist/daemon/session-index.js.map +1 -0
  56. package/dist/daemon/session-index.test.d.ts +2 -0
  57. package/dist/daemon/session-index.test.d.ts.map +1 -0
  58. package/dist/daemon/session-index.test.js +54 -0
  59. package/dist/daemon/session-index.test.js.map +1 -0
  60. package/dist/daemon/session-summary.d.ts +69 -0
  61. package/dist/daemon/session-summary.d.ts.map +1 -0
  62. package/dist/daemon/session-summary.js +200 -0
  63. package/dist/daemon/session-summary.js.map +1 -0
  64. package/dist/daemon/session-summary.test.d.ts +2 -0
  65. package/dist/daemon/session-summary.test.d.ts.map +1 -0
  66. package/dist/daemon/session-summary.test.js +160 -0
  67. package/dist/daemon/session-summary.test.js.map +1 -0
  68. package/dist/daemon/staleness.test.d.ts +7 -0
  69. package/dist/daemon/staleness.test.d.ts.map +1 -0
  70. package/dist/daemon/staleness.test.js +128 -0
  71. package/dist/daemon/staleness.test.js.map +1 -0
  72. package/dist/daemon/workstream-summary.d.ts +68 -0
  73. package/dist/daemon/workstream-summary.d.ts.map +1 -0
  74. package/dist/daemon/workstream-summary.js +253 -0
  75. package/dist/daemon/workstream-summary.js.map +1 -0
  76. package/dist/daemon/workstream-summary.test.d.ts +2 -0
  77. package/dist/daemon/workstream-summary.test.d.ts.map +1 -0
  78. package/dist/daemon/workstream-summary.test.js +86 -0
  79. package/dist/daemon/workstream-summary.test.js.map +1 -0
  80. package/dist/lib/qdrant-client.d.ts +94 -0
  81. package/dist/lib/qdrant-client.d.ts.map +1 -0
  82. package/dist/lib/qdrant-client.js +241 -0
  83. package/dist/lib/qdrant-client.js.map +1 -0
  84. package/dist/lib/qdrant-client.test.d.ts +8 -0
  85. package/dist/lib/qdrant-client.test.d.ts.map +1 -0
  86. package/dist/lib/qdrant-client.test.js +226 -0
  87. package/dist/lib/qdrant-client.test.js.map +1 -0
  88. package/dist/lifecycle.test.d.ts +8 -0
  89. package/dist/lifecycle.test.d.ts.map +1 -0
  90. package/dist/lifecycle.test.js +74 -0
  91. package/dist/lifecycle.test.js.map +1 -0
  92. package/dist/llm/embedding/index.d.ts +42 -0
  93. package/dist/llm/embedding/index.d.ts.map +1 -0
  94. package/dist/llm/embedding/index.js +78 -0
  95. package/dist/llm/embedding/index.js.map +1 -0
  96. package/dist/llm/embedding/index.test.d.ts +8 -0
  97. package/dist/llm/embedding/index.test.d.ts.map +1 -0
  98. package/dist/llm/embedding/index.test.js +100 -0
  99. package/dist/llm/embedding/index.test.js.map +1 -0
  100. package/dist/llm/embedding/providers/bedrock.d.ts +16 -0
  101. package/dist/llm/embedding/providers/bedrock.d.ts.map +1 -0
  102. package/dist/llm/embedding/providers/bedrock.js +90 -0
  103. package/dist/llm/embedding/providers/bedrock.js.map +1 -0
  104. package/dist/llm/embedding/providers/bedrock.test.d.ts +2 -0
  105. package/dist/llm/embedding/providers/bedrock.test.d.ts.map +1 -0
  106. package/dist/llm/embedding/providers/bedrock.test.js +24 -0
  107. package/dist/llm/embedding/providers/bedrock.test.js.map +1 -0
  108. package/dist/llm/embedding/providers/index.d.ts +9 -0
  109. package/dist/llm/embedding/providers/index.d.ts.map +1 -0
  110. package/dist/llm/embedding/providers/index.js +9 -0
  111. package/dist/llm/embedding/providers/index.js.map +1 -0
  112. package/dist/llm/embedding/providers/ollama.d.ts +6 -0
  113. package/dist/llm/embedding/providers/ollama.d.ts.map +1 -0
  114. package/dist/llm/embedding/providers/ollama.js +39 -0
  115. package/dist/llm/embedding/providers/ollama.js.map +1 -0
  116. package/dist/llm/embedding/providers/ollama.test.d.ts +2 -0
  117. package/dist/llm/embedding/providers/ollama.test.d.ts.map +1 -0
  118. package/dist/llm/embedding/providers/ollama.test.js +54 -0
  119. package/dist/llm/embedding/providers/ollama.test.js.map +1 -0
  120. package/dist/llm/embedding/providers/openai.d.ts +6 -0
  121. package/dist/llm/embedding/providers/openai.d.ts.map +1 -0
  122. package/dist/llm/embedding/providers/openai.js +44 -0
  123. package/dist/llm/embedding/providers/openai.js.map +1 -0
  124. package/dist/llm/embedding/providers/openai.test.d.ts +2 -0
  125. package/dist/llm/embedding/providers/openai.test.d.ts.map +1 -0
  126. package/dist/llm/embedding/providers/openai.test.js +48 -0
  127. package/dist/llm/embedding/providers/openai.test.js.map +1 -0
  128. package/dist/llm/embedding/providers/portkey.d.ts +15 -0
  129. package/dist/llm/embedding/providers/portkey.d.ts.map +1 -0
  130. package/dist/llm/embedding/providers/portkey.js +58 -0
  131. package/dist/llm/embedding/providers/portkey.js.map +1 -0
  132. package/dist/llm/embedding/providers/portkey.test.d.ts +2 -0
  133. package/dist/llm/embedding/providers/portkey.test.d.ts.map +1 -0
  134. package/dist/llm/embedding/providers/portkey.test.js +56 -0
  135. package/dist/llm/embedding/providers/portkey.test.js.map +1 -0
  136. package/dist/llm/embedding/registry.d.ts +14 -0
  137. package/dist/llm/embedding/registry.d.ts.map +1 -0
  138. package/dist/llm/embedding/registry.js +27 -0
  139. package/dist/llm/embedding/registry.js.map +1 -0
  140. package/dist/llm/embedding/registry.test.d.ts +7 -0
  141. package/dist/llm/embedding/registry.test.d.ts.map +1 -0
  142. package/dist/llm/embedding/registry.test.js +68 -0
  143. package/dist/llm/embedding/registry.test.js.map +1 -0
  144. package/dist/llm/embedding/types.d.ts +55 -0
  145. package/dist/llm/embedding/types.d.ts.map +1 -0
  146. package/dist/llm/embedding/types.js +12 -0
  147. package/dist/llm/embedding/types.js.map +1 -0
  148. package/dist/llm/errors.d.ts +95 -0
  149. package/dist/llm/errors.d.ts.map +1 -0
  150. package/dist/llm/errors.js +164 -0
  151. package/dist/llm/errors.js.map +1 -0
  152. package/dist/llm/errors.test.d.ts +2 -0
  153. package/dist/llm/errors.test.d.ts.map +1 -0
  154. package/dist/llm/errors.test.js +103 -0
  155. package/dist/llm/errors.test.js.map +1 -0
  156. package/dist/llm/fetch.d.ts +39 -0
  157. package/dist/llm/fetch.d.ts.map +1 -0
  158. package/dist/llm/fetch.js +52 -0
  159. package/dist/llm/fetch.js.map +1 -0
  160. package/dist/llm/index.d.ts +6 -3
  161. package/dist/llm/index.d.ts.map +1 -1
  162. package/dist/llm/index.js +2 -2
  163. package/dist/llm/index.js.map +1 -1
  164. package/dist/llm/inference/index.d.ts +39 -0
  165. package/dist/llm/inference/index.d.ts.map +1 -0
  166. package/dist/llm/inference/index.js +118 -0
  167. package/dist/llm/inference/index.js.map +1 -0
  168. package/dist/llm/inference/index.test.d.ts +6 -0
  169. package/dist/llm/inference/index.test.d.ts.map +1 -0
  170. package/dist/llm/inference/index.test.js +109 -0
  171. package/dist/llm/inference/index.test.js.map +1 -0
  172. package/dist/llm/inference/providers/bedrock.d.ts +18 -0
  173. package/dist/llm/inference/providers/bedrock.d.ts.map +1 -0
  174. package/dist/llm/inference/providers/bedrock.js +105 -0
  175. package/dist/llm/inference/providers/bedrock.js.map +1 -0
  176. package/dist/llm/inference/providers/bedrock.test.d.ts +2 -0
  177. package/dist/llm/inference/providers/bedrock.test.d.ts.map +1 -0
  178. package/dist/llm/inference/providers/bedrock.test.js +21 -0
  179. package/dist/llm/inference/providers/bedrock.test.js.map +1 -0
  180. package/dist/llm/inference/providers/index.d.ts +10 -0
  181. package/dist/llm/inference/providers/index.d.ts.map +1 -0
  182. package/dist/llm/inference/providers/index.js +10 -0
  183. package/dist/llm/inference/providers/index.js.map +1 -0
  184. package/dist/llm/inference/providers/ollama.d.ts +8 -0
  185. package/dist/llm/inference/providers/ollama.d.ts.map +1 -0
  186. package/dist/llm/inference/providers/ollama.js +63 -0
  187. package/dist/llm/inference/providers/ollama.js.map +1 -0
  188. package/dist/llm/inference/providers/ollama.test.d.ts +2 -0
  189. package/dist/llm/inference/providers/ollama.test.d.ts.map +1 -0
  190. package/dist/llm/inference/providers/ollama.test.js +57 -0
  191. package/dist/llm/inference/providers/ollama.test.js.map +1 -0
  192. package/dist/llm/inference/providers/openai.d.ts +11 -0
  193. package/dist/llm/inference/providers/openai.d.ts.map +1 -0
  194. package/dist/llm/inference/providers/openai.js +73 -0
  195. package/dist/llm/inference/providers/openai.js.map +1 -0
  196. package/dist/llm/inference/providers/openai.test.d.ts +2 -0
  197. package/dist/llm/inference/providers/openai.test.d.ts.map +1 -0
  198. package/dist/llm/inference/providers/openai.test.js +46 -0
  199. package/dist/llm/inference/providers/openai.test.js.map +1 -0
  200. package/dist/llm/inference/providers/portkey.d.ts +13 -0
  201. package/dist/llm/inference/providers/portkey.d.ts.map +1 -0
  202. package/dist/llm/inference/providers/portkey.js +80 -0
  203. package/dist/llm/inference/providers/portkey.js.map +1 -0
  204. package/dist/llm/inference/providers/portkey.test.d.ts +2 -0
  205. package/dist/llm/inference/providers/portkey.test.d.ts.map +1 -0
  206. package/dist/llm/inference/providers/portkey.test.js +48 -0
  207. package/dist/llm/inference/providers/portkey.test.js.map +1 -0
  208. package/dist/llm/inference/registry.d.ts +15 -0
  209. package/dist/llm/inference/registry.d.ts.map +1 -0
  210. package/dist/llm/inference/registry.js +28 -0
  211. package/dist/llm/inference/registry.js.map +1 -0
  212. package/dist/llm/inference/registry.test.d.ts +6 -0
  213. package/dist/llm/inference/registry.test.d.ts.map +1 -0
  214. package/dist/llm/inference/registry.test.js +63 -0
  215. package/dist/llm/inference/registry.test.js.map +1 -0
  216. package/dist/llm/inference/types.d.ts +84 -0
  217. package/dist/llm/inference/types.d.ts.map +1 -0
  218. package/dist/llm/inference/types.js +9 -0
  219. package/dist/llm/inference/types.js.map +1 -0
  220. package/dist/llm/telemetry.d.ts +25 -0
  221. package/dist/llm/telemetry.d.ts.map +1 -0
  222. package/dist/llm/telemetry.js +43 -0
  223. package/dist/llm/telemetry.js.map +1 -0
  224. package/dist/llm/telemetry.test.d.ts +5 -0
  225. package/dist/llm/telemetry.test.d.ts.map +1 -0
  226. package/dist/llm/telemetry.test.js +89 -0
  227. package/dist/llm/telemetry.test.js.map +1 -0
  228. package/dist/llm/types.d.ts +4 -37
  229. package/dist/llm/types.d.ts.map +1 -1
  230. package/dist/llm/types.js +4 -1
  231. package/dist/llm/types.js.map +1 -1
  232. package/dist/logger.d.ts +18 -3
  233. package/dist/logger.d.ts.map +1 -1
  234. package/dist/logger.js +102 -20
  235. package/dist/logger.js.map +1 -1
  236. package/dist/logger.test.d.ts +5 -0
  237. package/dist/logger.test.d.ts.map +1 -0
  238. package/dist/logger.test.js +103 -0
  239. package/dist/logger.test.js.map +1 -0
  240. package/dist/mcp/api.d.ts +15 -1
  241. package/dist/mcp/api.d.ts.map +1 -1
  242. package/dist/mcp/api.js +83 -60
  243. package/dist/mcp/api.js.map +1 -1
  244. package/dist/mcp/api.test.d.ts +6 -0
  245. package/dist/mcp/api.test.d.ts.map +1 -0
  246. package/dist/mcp/api.test.js +130 -0
  247. package/dist/mcp/api.test.js.map +1 -0
  248. package/dist/mcp/helpers.d.ts +1 -0
  249. package/dist/mcp/helpers.d.ts.map +1 -1
  250. package/dist/mcp/helpers.js +62 -6
  251. package/dist/mcp/helpers.js.map +1 -1
  252. package/dist/mcp/helpers.test.js +71 -10
  253. package/dist/mcp/helpers.test.js.map +1 -1
  254. package/dist/mcp/index.d.ts +7 -1
  255. package/dist/mcp/index.d.ts.map +1 -1
  256. package/dist/mcp/index.js +38 -20
  257. package/dist/mcp/index.js.map +1 -1
  258. package/dist/mcp/taxonomy.d.ts +237 -31
  259. package/dist/mcp/taxonomy.d.ts.map +1 -1
  260. package/dist/mcp/taxonomy.js +533 -171
  261. package/dist/mcp/taxonomy.js.map +1 -1
  262. package/dist/mcp/taxonomy.test.d.ts +1 -1
  263. package/dist/mcp/taxonomy.test.js +141 -302
  264. package/dist/mcp/taxonomy.test.js.map +1 -1
  265. package/dist/mcp/tools.d.ts +1 -1
  266. package/dist/mcp/tools.d.ts.map +1 -1
  267. package/dist/mcp/tools.integration.itest.d.ts +23 -0
  268. package/dist/mcp/tools.integration.itest.d.ts.map +1 -0
  269. package/dist/mcp/tools.integration.itest.js +172 -0
  270. package/dist/mcp/tools.integration.itest.js.map +1 -0
  271. package/dist/mcp/tools.js +338 -302
  272. package/dist/mcp/tools.js.map +1 -1
  273. package/dist/mcp/tools.test.d.ts +16 -0
  274. package/dist/mcp/tools.test.d.ts.map +1 -0
  275. package/dist/mcp/tools.test.js +472 -0
  276. package/dist/mcp/tools.test.js.map +1 -0
  277. package/dist/mcp/types.d.ts +63 -8
  278. package/dist/mcp/types.d.ts.map +1 -1
  279. package/dist/prompts/brief.d.ts +19 -0
  280. package/dist/prompts/brief.d.ts.map +1 -0
  281. package/dist/prompts/brief.js +67 -0
  282. package/dist/prompts/brief.js.map +1 -0
  283. package/dist/prompts/contradiction.d.ts +24 -0
  284. package/dist/prompts/contradiction.d.ts.map +1 -0
  285. package/dist/prompts/contradiction.js +73 -0
  286. package/dist/prompts/contradiction.js.map +1 -0
  287. package/dist/prompts/distill.d.ts +21 -0
  288. package/dist/prompts/distill.d.ts.map +1 -0
  289. package/dist/prompts/distill.js +74 -0
  290. package/dist/prompts/distill.js.map +1 -0
  291. package/dist/prompts/extraction.d.ts +14 -0
  292. package/dist/prompts/extraction.d.ts.map +1 -0
  293. package/dist/prompts/extraction.js +87 -0
  294. package/dist/prompts/extraction.js.map +1 -0
  295. package/dist/prompts/index.d.ts +50 -0
  296. package/dist/prompts/index.d.ts.map +1 -0
  297. package/dist/prompts/index.js +102 -0
  298. package/dist/prompts/index.js.map +1 -0
  299. package/dist/prompts/prompts.test.d.ts +8 -0
  300. package/dist/prompts/prompts.test.d.ts.map +1 -0
  301. package/dist/prompts/prompts.test.js +140 -0
  302. package/dist/prompts/prompts.test.js.map +1 -0
  303. package/dist/prompts/relations.d.ts +17 -0
  304. package/dist/prompts/relations.d.ts.map +1 -0
  305. package/dist/prompts/relations.js +72 -0
  306. package/dist/prompts/relations.js.map +1 -0
  307. package/dist/render.d.ts +41 -0
  308. package/dist/render.d.ts.map +1 -0
  309. package/dist/render.js +173 -0
  310. package/dist/render.js.map +1 -0
  311. package/dist/render.test.d.ts +8 -0
  312. package/dist/render.test.d.ts.map +1 -0
  313. package/dist/render.test.js +212 -0
  314. package/dist/render.test.js.map +1 -0
  315. package/package.json +9 -2
  316. package/dist/llm/embedding.d.ts +0 -13
  317. package/dist/llm/embedding.d.ts.map +0 -1
  318. package/dist/llm/embedding.js +0 -127
  319. package/dist/llm/embedding.js.map +0 -1
  320. package/dist/llm/embedding.test.d.ts +0 -8
  321. package/dist/llm/embedding.test.d.ts.map +0 -1
  322. package/dist/llm/embedding.test.js +0 -117
  323. package/dist/llm/embedding.test.js.map +0 -1
  324. package/dist/llm/inference.d.ts +0 -12
  325. package/dist/llm/inference.d.ts.map +0 -1
  326. package/dist/llm/inference.js +0 -146
  327. package/dist/llm/inference.js.map +0 -1
  328. package/dist/llm/inference.test.d.ts +0 -8
  329. package/dist/llm/inference.test.d.ts.map +0 -1
  330. package/dist/llm/inference.test.js +0 -117
  331. package/dist/llm/inference.test.js.map +0 -1
@@ -14,6 +14,10 @@ import { loadConfig, STATE_DIR } from "../config.js";
14
14
  import * as qdrant from "./qdrant.js";
15
15
  import { chatCompletion } from "../llm/index.js";
16
16
  import { detectContradiction } from "./consolidation.js";
17
+ import { normalizeCategory, normalizeEntities, normalizeMemorySubtype, validateMemorySubtype, } from "../mcp/taxonomy.js";
18
+ import { extractionPrompt, EXTRACTION_PROMPT_DESCRIPTOR, safeParseJson, } from "../prompts/index.js";
19
+ import { CAPTURE_POLICY_VERSION, CAPTURE_TRIGGERS, DEFAULT_CAPTURE_CONTEXT, QUALITY_THRESHOLDS, promptVersionForSubtype, subtypeForCategory, } from "./capture-policy.js";
20
+ import { shouldSummarizeEvents, updateSessionSummary } from "./session-summary.js";
17
21
  // ── Module state ─────────────────────────────────────────────────────────────
18
22
  let logFn = (() => { });
19
23
  let lastTickAt = 0;
@@ -26,78 +30,65 @@ const EXTRACTABLE_TYPES = new Set([
26
30
  "assistant.message",
27
31
  "session.compaction_complete",
28
32
  ]);
29
- const DEFAULT_EXTRACTION_PROMPT = `You are a knowledge extraction agent for software engineers. Extract ENGINEERING REFERENCES — durable facts that help an engineer navigate codebases, understand infrastructure, run operations, and make decisions.
33
+ export const DEFAULT_EXTRACTION_PROMPT = `You are Bikky's memory extraction agent for open-source coding agents. Extract durable, reusable facts that help a future agent continue work without rereading the whole transcript.
30
34
 
31
- ## Quality Gate (apply to EVERY candidate fact)
32
- A fact must pass AT LEAST ONE of these tests or it is noise skip it:
33
- 1. GREPPABLE — contains a file path, service name, config key, CLI flag, or symbol an engineer could search for
34
- 2. RUNNABLE — contains a command, URL, port, or procedure that could be executed
35
- 3. NAVIGABLE — tells you where to look for something specific (which repo, which module, which config)
36
- 4. DECISIVE — records a choice with enough rationale that a future engineer won't re-debate it
35
+ ## Core rule
36
+ Extract fewer, sharper memories. A candidate fact must be independently useful after the session is gone.
37
37
 
38
- ## 7 Reference Types (extract ONLY these)
38
+ ## Quality gate
39
+ Every fact must pass at least one gate:
40
+ 1. GREPPABLE: names a file path, package, symbol, config key, CLI flag, issue/PR, service, or API a future agent can search for.
41
+ 2. RUNNABLE: contains a command, URL, setting, port, or procedure that can be executed or checked.
42
+ 3. NAVIGABLE: tells a future agent where to look and what that location means.
43
+ 4. DECISIVE: records a durable decision, rationale, constraint, convention, preference, or ownership rule.
44
+ 5. DIAGNOSTIC: captures a repeatable failure mode, root cause, or troubleshooting gotcha.
39
45
 
40
- ### 1. Codebase Map — "where does X live?"
41
- File paths, entry points, module ownership, call chains.
42
- GOOD: "Alert extraction logic is in src/enrichers/bank-account-enricher.ts, called by the DM pipeline handler (src/pipeline/dm-handler.ts), not the group handler"
43
- BAD: "The code was updated to fix extraction" (no path, no specifics)
46
+ ## Ontology
47
+ - domain is the activity profile. For coding-agent captures use "software_engineering".
48
+ - category is subject matter: codebase | infrastructure | operations | decisions | product_domain | projects | people | preferences | observations.
49
+ - kind is object shape. For this prompt, emit only kind="fact".
50
+ - memory_subtype must be one of:
51
+ codebase_map | architecture_decision | infra_topology | access_pattern | deployment_procedure | operational_procedure | domain_rule | troubleshooting_gotcha | preference | ownership.
44
52
 
45
- ### 2. Architecture Decision — "why was X chosen?"
46
- Choice + alternatives considered + rationale + constraints.
47
- GOOD: "Chose Portkey over direct Bedrock calls for LLM routing gives per-model fallback chains and spend tracking without vendor lock-in. Decided in PR #847"
48
- BAD: "We use Portkey for LLM" (no rationale, no context)
53
+ ## Examples
54
+ GOOD:
55
+ - "The UI smoke tests live in packages/ui/tests/smoke.spec.ts and run through npm run test:e2e with mocked /api/memory/* responses."
56
+ - "Use workspace_id as the tenancy/access boundary; domain is reserved for activity profile such as software_engineering."
57
+ - "If Qdrant order_by fails with a missing index error, create a datetime payload index for the sorted field before retrying."
58
+ - "Prefer Node's built-in test runner for root tests; do not add Jest just for daemon unit tests."
49
59
 
50
- ### 3. Infrastructure Topology — "what connects to what?"
51
- Endpoints, ports, resource IDs, service connections, cluster names, regions.
52
- GOOD: "ClickHouse in lloyds cluster accessed via port-forward: kubectl port-forward svc/clickhouse 9000:9000 --context arn:aws:eks:eu-west-2:871829501674:cluster/lloyds"
53
- BAD: "ClickHouse is running" (no actionable detail)
54
-
55
- ### 4. Access & Credentials "how do I authenticate?"
56
- Where secrets live, IAM roles, auth patterns, permission gotchas.
57
- GOOD: "saber IAM user blocked by EnforceMFA for ECR/S3 — use --profile mfa. EC2 instance role agent00-cortex-ec2 has ECR pull+push scoped to arn:aws:ecr:ap-southeast-2:871829501674:repository/agent00-cortex"
58
- BAD: "AWS credentials are configured" (useless)
59
-
60
- ### 5. Deployment & Shipping — "how do I release X?"
61
- Build, release, CI/CD pipelines, verification steps.
62
- GOOD: "EC2 cortex deploys via SSM: download repo tarball from GitHub API (needs saber-zrelli-private token) → build on EC2 (native amd64) → push to ECR → docker compose pull && up -d. SSM executionTimeout must be ≥600s"
63
- BAD: "The deployment was successful" (not reusable)
64
-
65
- ### 6. Operational Procedure — "how do I do X on a live system?"
66
- kubectl recipes, patching commands, rollout procedures, scaling ops, cleanup, troubleshooting.
67
- GOOD: "To roll TG bot images across lloyds fleet: kubectl get deploy -l app=tg-bot --context lloyds-ctx, then patch each with image update. Wait 30s between batches to avoid message loss"
68
- BAD: "Bot images were updated" (no procedure)
69
-
70
- ### 7. Business Logic Rule — "what are the domain rules?"
71
- Data flow semantics, edge cases that affect code, domain-specific constraints.
72
- GOOD: "SA bank accounts (Capitec branch 470010, TymeBank 678910, FNB 250655) are frequently misclassified as AU BSBs because branch codes are 6 digits. Recovery script stage 1b re-extracts with ZA country tagging"
73
- BAD: "Bank accounts are extracted" (no specifics)
74
-
75
- ## What to ALWAYS SKIP
76
- - Session narration: "the user asked to fix X, then we looked at Y" — that's a log, not a reference
77
- - Meta-observations about tools: "bikky handles extraction" / "the agent used kubectl" — obvious from context
78
- - Debugging state: "test 67 fails" / "got a 404" — transient unless it reveals a PERMANENT quirk
79
- - Vague summaries: "WhatsApp bot was updated" — which bot? which update? which PR?
80
- - Opinions without rationale: "Nova Lite is good" — good for what? compared to what?
81
- - Anything you can't add specifics to: if you can't name a file, service, command, or decision — skip it
60
+ BAD:
61
+ - "The tests were fixed." (status only)
62
+ - "We reviewed the code." (session narration)
63
+ - "The deployment succeeded." (transient and not reusable)
64
+ - "The agent used npm." (tool narration)
65
+ - "There was an error." (no root cause or reusable detail)
82
66
 
83
67
  ## Output format
84
- {"facts": [
68
+ Return strict JSON:
69
+ {"facts":[
85
70
  {
86
- "content": "EC2 cortex has no git installed — deploys download repo tarball via GitHub API (curl -sL -H 'Authorization: token $TOKEN' https://api.github.com/repos/OWNER/REPO/tarball/main) then build locally on EC2",
87
- "category": "infrastructure",
88
- "entities": ["ec2", "ecr", "github-api"],
89
- "confidence": 0.9,
90
- "importance": 0.8
71
+ "content":"One self-contained durable fact.",
72
+ "category":"codebase",
73
+ "memory_subtype":"codebase_map",
74
+ "entities":["repo-or-tool","specific-module"],
75
+ "confidence":0.9,
76
+ "importance":0.7,
77
+ "quality_score":0.8,
78
+ "confidence_reason":"Explicitly stated in the transcript.",
79
+ "repo":"optional/repo-or-package",
80
+ "branch":"optional-branch",
81
+ "task_key":"optional issue/PR/task key",
82
+ "workstream_key":"optional stable workstream key"
91
83
  }
92
84
  ]}
93
85
 
94
- - Category: infrastructure | decisions | observation | preferences | projects | team
95
- - Entities: lowercase identifiers (service names, tools, repos things you'd grep for)
96
- - Confidence 0.0-1.0: 0.9 for explicit statements, 0.6 for inferences
97
- - Importance 0.0-1.0: 0.7+ for architecture/infra/access/ops, 0.5-0.7 for decisions/business rules
86
+ Scoring:
87
+ - confidence: 0.9 explicit, 0.7 strong inference, 0.55 weak but useful inference.
88
+ - importance: 0.8+ for decisions, infra, procedures, access, recurring failures; 0.6+ for useful codebase maps/preferences.
89
+ - quality_score: 0.8+ passes multiple gates, 0.6+ passes one strong gate, below 0.6 should usually be omitted.
98
90
 
99
- Prefer fewer, higher-quality facts over many weak ones. 3 good references beat 10 vague observations.
100
- If nothing passes the quality gate, return: {"facts": []}`;
91
+ If nothing passes the quality gate, return {"facts":[]}.`;
101
92
  // ── JSON-file state persistence ──────────────────────────────────────────────
102
93
  const EXTRACTION_STATE_PATH = join(STATE_DIR, "extraction-state.json");
103
94
  const loadExtractionStates = () => {
@@ -272,75 +263,164 @@ const buildTranscript = (events) => {
272
263
  }
273
264
  return lines.join("\n\n");
274
265
  };
266
+ const clamp01 = (value) => Math.max(0, Math.min(1, value));
267
+ const textWordCount = (text) => text.trim().split(/\s+/).filter(Boolean).length;
268
+ const hasDurableAnchor = (content, entities) => {
269
+ const text = content.trim();
270
+ return Boolean(/(?:^|\s)(?:[\w.-]+\/)+[\w./-]+/.test(text) ||
271
+ /`[^`]+`/.test(text) ||
272
+ /\b(?:npm|pnpm|yarn|node|git|gh|docker|kubectl|make|go|python|pip|cargo|terraform|aws|curl)\b/.test(text) ||
273
+ /https?:\/\/\S+/.test(text) ||
274
+ /\b[A-Z][A-Z0-9_]{2,}\b/.test(text) ||
275
+ /\b[\w.-]+\.(?:ts|tsx|js|jsx|mjs|cjs|py|go|rs|java|kt|rb|php|json|ya?ml|toml|md|sql|sh)\b/.test(text) ||
276
+ /\b(?:issue|pr|pull request)\s*#?\d+\b/i.test(text) ||
277
+ entities.length >= 2);
278
+ };
279
+ const isStatusOnlyContent = (content, entities) => {
280
+ const lower = content.trim().toLowerCase();
281
+ if (hasDurableAnchor(content, entities))
282
+ return false;
283
+ if (textWordCount(content) > 16)
284
+ return false;
285
+ return /\b(done|fixed|updated|implemented|reviewed|tested|works|passed|failed|succeeded|completed|started|looked|changed|deployed)\b/.test(lower);
286
+ };
287
+ export const factQualitySignals = (fact) => {
288
+ const content = fact.content.trim();
289
+ const entities = normalizeEntities(fact.entities ?? []);
290
+ const subtype = normalizeMemorySubtype("fact", fact.memory_subtype) ?? subtypeForCategory(normalizeCategory(fact.category));
291
+ const wordCount = textWordCount(content);
292
+ const durableAnchor = hasDurableAnchor(content, entities);
293
+ const statusOnly = isStatusOnlyContent(content, entities);
294
+ const isPreferenceLike = subtype === "preference" || subtype === "ownership" || subtype === "domain_rule";
295
+ const isDecisionLike = subtype === "architecture_decision" || subtype === "troubleshooting_gotcha";
296
+ const shortUseful = wordCount >= 7 && wordCount <= 22 && (isPreferenceLike || isDecisionLike) && (entities.length > 0 || durableAnchor);
297
+ let score = 0.25;
298
+ if (wordCount >= 8)
299
+ score += 0.1;
300
+ if (wordCount >= 14)
301
+ score += 0.1;
302
+ if (durableAnchor)
303
+ score += 0.25;
304
+ if (isPreferenceLike || isDecisionLike)
305
+ score += 0.15;
306
+ if ((fact.confidence ?? 0) >= 0.75)
307
+ score += 0.1;
308
+ if ((fact.importance ?? 0) >= 0.7)
309
+ score += 0.1;
310
+ if (statusOnly)
311
+ score -= 0.4;
312
+ return {
313
+ wordCount,
314
+ hasDurableAnchor: durableAnchor,
315
+ isStatusOnly: statusOnly,
316
+ isShortUseful: shortUseful,
317
+ computedQualityScore: Math.round(clamp01(score) * 100) / 100,
318
+ };
319
+ };
320
+ export const normalizeExtractedFact = (raw) => {
321
+ if (!raw.content || typeof raw.content !== "string")
322
+ return null;
323
+ const category = normalizeCategory(typeof raw.category === "string" ? raw.category : "observations");
324
+ const requestedSubtype = typeof raw.memory_subtype === "string" ? raw.memory_subtype : null;
325
+ let memorySubtype = requestedSubtype ? normalizeMemorySubtype("fact", requestedSubtype) : null;
326
+ if (!memorySubtype) {
327
+ memorySubtype = subtypeForCategory(category);
328
+ }
329
+ try {
330
+ validateMemorySubtype("fact", memorySubtype);
331
+ }
332
+ catch {
333
+ memorySubtype = subtypeForCategory(category);
334
+ }
335
+ const confidence = typeof raw.confidence === "number" ? clamp01(raw.confidence) : 0.7;
336
+ const importance = typeof raw.importance === "number" ? clamp01(raw.importance) : 0.5;
337
+ const qualityScore = typeof raw.quality_score === "number" ? clamp01(raw.quality_score) : null;
338
+ const entities = Array.isArray(raw.entities)
339
+ ? normalizeEntities(raw.entities.map((entity) => String(entity)))
340
+ : [];
341
+ const fact = {
342
+ content: raw.content.trim(),
343
+ category,
344
+ memory_subtype: memorySubtype,
345
+ entities,
346
+ confidence,
347
+ importance,
348
+ quality_score: qualityScore,
349
+ confidence_reason: typeof raw.confidence_reason === "string" ? raw.confidence_reason.trim() : null,
350
+ repo: typeof raw.repo === "string" ? raw.repo.trim() : null,
351
+ branch: typeof raw.branch === "string" ? raw.branch.trim() : null,
352
+ task_key: typeof raw.task_key === "string" ? raw.task_key.trim() : null,
353
+ workstream_key: typeof raw.workstream_key === "string" ? raw.workstream_key.trim() : null,
354
+ };
355
+ return isHighQualityExtractedFact(fact) ? fact : null;
356
+ };
357
+ export const isHighQualityExtractedFact = (fact) => {
358
+ const content = fact.content.trim();
359
+ if (content.length < 30)
360
+ return false;
361
+ const signals = factQualitySignals(fact);
362
+ if (QUALITY_THRESHOLDS.rejectStatusOnlyFacts && signals.isStatusOnly)
363
+ return false;
364
+ const confidence = fact.confidence ?? 0.7;
365
+ const importance = fact.importance ?? 0.5;
366
+ if (confidence < QUALITY_THRESHOLDS.minFactConfidence && importance < QUALITY_THRESHOLDS.minImportanceForLowConfidenceFact) {
367
+ return false;
368
+ }
369
+ const qualityScore = fact.quality_score ?? signals.computedQualityScore;
370
+ if (qualityScore < QUALITY_THRESHOLDS.minFactQualityScore && !signals.isShortUseful)
371
+ return false;
372
+ if (!signals.hasDurableAnchor && !signals.isShortUseful)
373
+ return false;
374
+ return true;
375
+ };
275
376
  /**
276
377
  * Call the LLM to extract facts from a conversation transcript.
277
378
  */
278
379
  const extractFacts = async (transcript, config) => {
279
380
  if (!transcript.trim())
280
381
  return [];
281
- const prompt = config?.daemon.extraction_prompt || DEFAULT_EXTRACTION_PROMPT;
282
- const result = await chatCompletion({
283
- messages: [
284
- { role: "system", content: prompt },
285
- { role: "user", content: transcript },
286
- ],
287
- temperature: 0.1,
288
- max_tokens: 4000,
289
- response_format: { type: "json_object" },
382
+ const rendered = extractionPrompt({
383
+ transcript,
384
+ systemOverride: config?.daemon.extraction_prompt ?? null,
290
385
  });
386
+ const result = await chatCompletion(rendered);
291
387
  if (!result) {
292
388
  logFn("WARN", "Extraction LLM call returned null");
293
389
  return [];
294
390
  }
295
- try {
296
- // Strip markdown code fences (```json ... ```) that some models wrap around JSON
297
- let cleaned = result.trim();
298
- if (cleaned.startsWith("```")) {
299
- cleaned = cleaned.replace(/^```(?:json)?\s*\n?/, "").replace(/\n?```\s*$/, "");
391
+ // Parse — handle {facts: [...]}, raw array, or single-fact object
392
+ let parsed = safeParseJson(result);
393
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
394
+ const obj = parsed;
395
+ const unwrapped = obj.facts || obj.results || obj.items;
396
+ if (Array.isArray(unwrapped)) {
397
+ parsed = unwrapped;
300
398
  }
301
- // Parse handle {facts: [...]}, raw array, or single-fact object
302
- let parsed = JSON.parse(cleaned);
303
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
304
- const obj = parsed;
305
- const unwrapped = obj.facts || obj.results || obj.items;
306
- if (Array.isArray(unwrapped)) {
307
- parsed = unwrapped;
308
- }
309
- else if (obj.content && typeof obj.content === "string") {
310
- // Single fact object — wrap in array
311
- parsed = [obj];
312
- }
313
- else {
314
- // Try first array value from the object
315
- const firstVal = Object.values(obj).find(v => Array.isArray(v));
316
- parsed = firstVal || [obj];
317
- }
399
+ else if (obj.content && typeof obj.content === "string") {
400
+ // Single fact object — wrap in array
401
+ parsed = [obj];
318
402
  }
319
- if (!Array.isArray(parsed)) {
320
- logFn("WARN", `Extraction LLM returned non-array: ${result.slice(0, 300)}`);
321
- return [];
403
+ else {
404
+ // Try first array value from the object
405
+ const firstVal = Object.values(obj).find(v => Array.isArray(v));
406
+ parsed = firstVal || [obj];
322
407
  }
323
- return parsed
324
- .filter(f => f.content && typeof f.content === "string" && f.category)
325
- .map(f => ({
326
- content: f.content,
327
- category: f.category,
328
- entities: Array.isArray(f.entities) ? f.entities.map(e => String(e).toLowerCase()) : [],
329
- confidence: typeof f.confidence === "number" ? f.confidence : 0.7,
330
- importance: typeof f.importance === "number" ? f.importance : 0.5,
331
- }))
332
- .filter(f => {
333
- if (f.importance < 0.5) {
334
- logFn("DEBUG", `Extraction: dropping low-importance fact (${f.importance}): "${f.content.slice(0, 80)}…"`);
335
- return false;
336
- }
337
- return true;
338
- });
339
408
  }
340
- catch (e) {
341
- logFn("WARN", `Extraction LLM parse error: ${e.message} — raw: ${result.slice(0, 200)}`);
409
+ if (!Array.isArray(parsed)) {
410
+ logFn("WARN", `Extraction LLM returned non-array: ${result.slice(0, 300)}`);
342
411
  return [];
343
412
  }
413
+ return parsed
414
+ .map((raw) => {
415
+ const fact = normalizeExtractedFact(raw);
416
+ if (!fact) {
417
+ const content = typeof raw.content === "string" ? raw.content : JSON.stringify(raw).slice(0, 120);
418
+ logFn("DEBUG", `Extraction: dropping low-quality fact candidate: "${content.slice(0, 80)}…"`);
419
+ return null;
420
+ }
421
+ return fact;
422
+ })
423
+ .filter((fact) => fact !== null);
344
424
  };
345
425
  // ── Fact storage ─────────────────────────────────────────────────────────────
346
426
  const contentHash = (text) => createHash("sha256").update(text).digest("hex");
@@ -353,12 +433,20 @@ const storeFacts = async (facts, sessionId, config) => {
353
433
  logFn("WARN", "Extraction: Qdrant not ready, skipping store");
354
434
  return 0;
355
435
  }
356
- const baseMeta = { extracted_from_session: sessionId };
436
+ const baseMeta = {
437
+ extracted_from_session: sessionId,
438
+ capture_policy_version: CAPTURE_POLICY_VERSION,
439
+ extracted_by_prompt: `${EXTRACTION_PROMPT_DESCRIPTOR.id}@${EXTRACTION_PROMPT_DESCRIPTOR.version}`,
440
+ };
357
441
  let stored = 0;
358
442
  for (const fact of facts) {
359
443
  const hash = contentHash(fact.content);
444
+ const sanitizedFact = {
445
+ ...fact,
446
+ entities: fact.entities.map((entity) => entity.toLowerCase()),
447
+ };
360
448
  try {
361
- const dedup = await qdrant.dedupCheck(fact.content, hash);
449
+ const dedup = await qdrant.dedupCheck(sanitizedFact.content, hash);
362
450
  if (dedup.action === "skip") {
363
451
  // Reinforce existing fact
364
452
  if (dedup.existingId) {
@@ -369,7 +457,7 @@ const storeFacts = async (facts, sessionId, config) => {
369
457
  // Run contradiction detection for non-trivial facts
370
458
  if (config && (fact.confidence ?? 0.5) >= 0.5) {
371
459
  try {
372
- const contradiction = await detectContradiction(fact, config);
460
+ const contradiction = await detectContradiction(sanitizedFact, config);
373
461
  if (contradiction.contradiction && contradiction.existingId) {
374
462
  logFn("INFO", `Extraction: contradiction detected for "${fact.content.slice(0, 60)}..." vs ${contradiction.existingId}: ${contradiction.reason}`);
375
463
  // Log contradiction instead of writing to inbox
@@ -379,15 +467,29 @@ const storeFacts = async (facts, sessionId, config) => {
379
467
  logFn("WARN", `Extraction: contradiction check failed: ${e.message}`);
380
468
  }
381
469
  }
470
+ const subtype = validateMemorySubtype("fact", sanitizedFact.memory_subtype)
471
+ ?? subtypeForCategory(normalizeCategory(sanitizedFact.category));
382
472
  const storePayload = {
383
- content: fact.content,
384
- category: fact.category,
385
- entities: fact.entities,
473
+ content: sanitizedFact.content,
474
+ category: sanitizedFact.category,
475
+ domain: DEFAULT_CAPTURE_CONTEXT.domain,
476
+ memory_subtype: subtype,
477
+ entities: sanitizedFact.entities,
386
478
  source: "daemon",
387
479
  kind: "fact",
388
480
  confidence: fact.confidence,
389
481
  importance: fact.importance,
390
482
  content_hash: hash,
483
+ prompt_version: promptVersionForSubtype(subtype),
484
+ capture_policy_version: CAPTURE_POLICY_VERSION,
485
+ quality_score: fact.quality_score ?? factQualitySignals(fact).computedQualityScore,
486
+ confidence_reason: fact.confidence_reason,
487
+ review_status: DEFAULT_CAPTURE_CONTEXT.reviewStatus,
488
+ volatility: DEFAULT_CAPTURE_CONTEXT.volatility,
489
+ repo: fact.repo,
490
+ branch: fact.branch,
491
+ task_key: fact.task_key,
492
+ workstream_key: fact.workstream_key,
391
493
  metadata: baseMeta,
392
494
  };
393
495
  if (dedup.action === "supersede" && dedup.existingId) {
@@ -406,6 +508,20 @@ const storeFacts = async (facts, sessionId, config) => {
406
508
  }
407
509
  return stored;
408
510
  };
511
+ const updateSummaryForTranscript = async (sessionId, transcript, eventCount, config) => {
512
+ try {
513
+ const result = await updateSessionSummary({ sessionId, transcript, eventCount, config });
514
+ if (result.action === "stored" || result.action === "updated") {
515
+ logFn("INFO", `Summary: ${result.action} session summary ${result.factId} for ${sessionId}`);
516
+ }
517
+ else {
518
+ logFn("DEBUG", `Summary: skipped for ${sessionId} (${result.reason})`);
519
+ }
520
+ }
521
+ catch (e) {
522
+ logFn("WARN", `Summary: failed for ${sessionId}: ${e.message}`);
523
+ }
524
+ };
409
525
  // ── Tick entry point ─────────────────────────────────────────────────────────
410
526
  // Max transcript size per LLM call (~60K chars ≈ 15K tokens)
411
527
  const MAX_TRANSCRIPT_CHARS = 60_000;
@@ -429,7 +545,7 @@ export const tick = async (config) => {
429
545
  if (now - lastTickAt < intervalMs)
430
546
  return;
431
547
  lastTickAt = now;
432
- const minEvents = config.daemon.extract_min_events || 5;
548
+ const minEvents = config.daemon.extract_min_events || CAPTURE_TRIGGERS.factExtraction.minEvents;
433
549
  try {
434
550
  // Extract from ALL active Copilot sessions with events.jsonl
435
551
  const lockMappings = await resolveLockFiles();
@@ -465,7 +581,8 @@ const extractForUuid = async (mapping, minEvents, config) => {
465
581
  }
466
582
  // Read new events
467
583
  const { events, newOffset, totalLines } = await readNewEvents(eventsPath, state.byte_offset);
468
- if (events.length < minEvents) {
584
+ const shouldSummarize = shouldSummarizeEvents(events, minEvents);
585
+ if (events.length < minEvents && !shouldSummarize) {
469
586
  // Still update offset to avoid re-scanning non-extractable events
470
587
  if (newOffset > state.byte_offset) {
471
588
  state.byte_offset = newOffset;
@@ -480,11 +597,14 @@ const extractForUuid = async (mapping, minEvents, config) => {
480
597
  for (let i = 0; i < chunks.length; i++) {
481
598
  const transcript = buildTranscript(chunks[i]);
482
599
  logFn("DEBUG", `Extraction: UUID ${uuid.slice(0, 8)} — chunk ${i + 1}/${chunks.length}, ${chunks[i].length} events, ${transcript.length} chars`);
483
- const facts = await extractFacts(transcript, config);
484
- if (facts.length > 0) {
485
- const stored = await storeFacts(facts, stateKey, config);
486
- totalFacts += stored;
600
+ if (events.length >= minEvents) {
601
+ const facts = await extractFacts(transcript, config);
602
+ if (facts.length > 0) {
603
+ const stored = await storeFacts(facts, stateKey, config);
604
+ totalFacts += stored;
605
+ }
487
606
  }
607
+ await updateSummaryForTranscript(stateKey, transcript, chunks[i].length, config);
488
608
  }
489
609
  if (totalFacts > 0) {
490
610
  logFn("INFO", `Extraction: UUID ${uuid.slice(0, 8)} — ${totalFacts} facts stored (${events.length} events, ${chunks.length} chunk(s))`);
@@ -1 +1 @@
1
- {"version":3,"file":"extraction.js","sourceRoot":"","sources":["../../src/daemon/extraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extraction.js","sourceRoot":"","sources":["../../src/daemon/extraction.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAe,MAAM,SAAS,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,gFAAgF;AAEhF,IAAI,KAAK,GAAU,CAAC,GAAG,EAAE,GAAE,CAAC,CAAqB,CAAC;AAClD,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAS,EAAQ,EAAE;IAC3C,KAAK,GAAG,EAAE,CAAC;AACb,CAAC,CAAC;AAEF,gFAAgF;AAEhF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,cAAc;IACd,mBAAmB;IACnB,6BAA6B;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yDA0DgB,CAAC;AAE1D,gFAAgF;AAEhF,MAAM,qBAAqB,GAAG,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;AAavE,MAAM,oBAAoB,GAAG,GAAuB,EAAE;IACpD,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAuB,CAAC;QACxF,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,CAAC,MAAM,EAAE,iDAAiD,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,MAA0B,EAAQ,EAAE;IAChE,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,aAAa,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AACxF,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAA0B,EAAE;IACvE,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,KAAsB,EAAQ,EAAE;IAC7D,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;IACjC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC,CAAC;AAUF;;;GAGG;AACH,MAAM,gBAAgB,GAAG,KAAK,IAA4B,EAAE;IAC1D,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,MAAM,eAAe,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;IAClD,MAAM,QAAQ,GAAkB,EAAE,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;QACxD,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,mBAAmB;YACxD,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAK,eAAe;YAEpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACxD,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEjC,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;YAE/D,6BAA6B;YAC7B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,yBAAyB;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,MAAM,EAAE,0BAA2B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAAG,CAAC,GAAW,EAAW,EAAE;IAC9C,IAAI,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AACpE,CAAC,CAAC;AAUF;;;GAGG;AACH,MAAM,aAAa,GAAG,KAAK,EACzB,UAAkB,EAClB,UAAkB,EACyD,EAAE;IAC7E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,QAAQ,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;QAChC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED,uCAAuC;IACvC,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS;QAC3B,UAAU,EAAE,CAAC;QAEb,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAI1B,CAAC;YAEF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAE/C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,OAAO,GAAG,EAAE,CAAC;YAEjB,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAChC,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAI,EAAE,CAAC;YAC3C,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,OAAO;oBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAiB,CAAC,CAAC;gBACrD,IAAI,IAAI,CAAC,aAAa;oBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAuB,CAAC,CAAC;gBACjE,yCAAyC;gBACzC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,6BAA6B,EAAE,CAAC;gBACtD,OAAO,GAAI,IAAI,CAAC,cAAyB,IAAI,EAAE,CAAC;YAClD,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO;oBACP,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACrD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;AAC1D,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAU,EAAE;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,6BAA6B;QAC7B,IAAI,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QACtJ,oCAAoC;QACpC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE;YAAE,SAAS;QAC/D,sDAAsD;QACtD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,IAAI,EAAE;YAAE,SAAS;QAC5E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,MAAqB,EAAU,EAAE;IACxD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,KAAK,cAAc;YACrC,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,mBAAmB;gBAC/B,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,SAAS,CAAC;QAEhB,IAAI,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;QAEtB,2CAA2C;QAC3C,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI;gBAAE,SAAS,CAAC,sCAAsC;QAC7D,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC;QAC9C,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC,CAAC;AA2BF,MAAM,OAAO,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAE3E,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAEhG,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,QAAkB,EAAW,EAAE;IACxE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,OAAO,CACZ,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QACpB,8FAA8F,CAAC,IAAI,CAAC,IAAI,CAAC;QACzG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3B,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;QACnC,0FAA0F,CAAC,IAAI,CAAC,IAAI,CAAC;QACrG,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC;QACnD,QAAQ,CAAC,MAAM,IAAI,CAAC,CACrB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAE,QAAkB,EAAW,EAAE;IAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,8HAA8H,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAmB,EAAsB,EAAE;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5H,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,aAAa,CAAC;IAC1G,MAAM,cAAc,GAAG,OAAO,KAAK,uBAAuB,IAAI,OAAO,KAAK,wBAAwB,CAAC;IACnG,MAAM,WAAW,GAAG,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,EAAE,IAAI,CAAC,gBAAgB,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC;IAExI,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,SAAS,IAAI,CAAC;QAAE,KAAK,IAAI,GAAG,CAAC;IACjC,IAAI,SAAS,IAAI,EAAE;QAAE,KAAK,IAAI,GAAG,CAAC;IAClC,IAAI,aAAa;QAAE,KAAK,IAAI,IAAI,CAAC;IACjC,IAAI,gBAAgB,IAAI,cAAc;QAAE,KAAK,IAAI,IAAI,CAAC;IACtD,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,IAAI;QAAE,KAAK,IAAI,GAAG,CAAC;IACjD,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,GAAG;QAAE,KAAK,IAAI,GAAG,CAAC;IAChD,IAAI,UAAU;QAAE,KAAK,IAAI,GAAG,CAAC;IAE7B,OAAO;QACL,SAAS;QACT,gBAAgB,EAAE,aAAa;QAC/B,YAAY,EAAE,UAAU;QACxB,aAAa,EAAE,WAAW;QAC1B,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG;KAC7D,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAA4B,EAAwB,EAAE;IAC3F,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEjE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACrG,MAAM,gBAAgB,GAAG,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5F,IAAI,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/F,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC;QACH,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACtF,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACtF,MAAM,YAAY,GAAG,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/F,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1C,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,IAAI,GAAkB;QAC1B,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;QAC3B,QAAQ;QACR,cAAc,EAAE,aAAa;QAC7B,QAAQ;QACR,UAAU;QACV,UAAU;QACV,aAAa,EAAE,YAAY;QAC3B,iBAAiB,EAAE,OAAO,GAAG,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;QAClG,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;QAC3D,MAAM,EAAE,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;QACjE,QAAQ,EAAE,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;QACvE,cAAc,EAAE,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;KAC1F,CAAC;IAEF,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAmB,EAAW,EAAE;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC;IAEtC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,kBAAkB,CAAC,qBAAqB,IAAI,OAAO,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAEnF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAC1C,IAAI,UAAU,GAAG,kBAAkB,CAAC,iBAAiB,IAAI,UAAU,GAAG,kBAAkB,CAAC,iCAAiC,EAAE,CAAC;QAC3H,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,oBAAoB,CAAC;IACxE,IAAI,YAAY,GAAG,kBAAkB,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IAClG,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IAEtE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY,GAAG,KAAK,EAAE,UAAkB,EAAE,MAAoB,EAA4B,EAAE;IAChG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAElC,MAAM,QAAQ,GAAG,gBAAgB,CAAC;QAChC,UAAU;QACV,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,iBAAiB,IAAI,IAAI;KACzD,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,KAAK,CAAC,MAAM,EAAE,mCAAmC,CAAC,CAAC;QACnD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,kEAAkE;IAClE,IAAI,MAAM,GAAY,aAAa,CAAU,MAAM,CAAC,CAAC;IACrD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,GAAG,GAAG,MAAiC,CAAC;QAC9C,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC;QACxD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;aAAM,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC1D,qCAAqC;YACrC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,GAAG,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,MAAM,EAAE,sCAAsC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5E,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAQ,MAAyC;SAC9C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAClG,KAAK,CAAC,OAAO,EAAE,qDAAqD,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAC9F,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAyB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,gFAAgF;AAEhF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE,CAC3C,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAElD;;;GAGG;AACH,MAAM,UAAU,GAAG,KAAK,EACtB,KAAsB,EACtB,SAAiB,EACjB,MAAoB,EACH,EAAE;IACnB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACtB,KAAK,CAAC,MAAM,EAAE,8CAA8C,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,QAAQ,GAAqD;QACjE,sBAAsB,EAAE,SAAS;QACjC,sBAAsB,EAAE,sBAAsB;QAC9C,mBAAmB,EAAE,GAAG,4BAA4B,CAAC,EAAE,IAAI,4BAA4B,CAAC,OAAO,EAAE;KAClG,CAAC;IACF,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,aAAa,GAAkB;YACnC,GAAG,IAAI;YACP,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;SAC9D,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAEnE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC5B,0BAA0B;gBAC1B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oBACrB,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;gBACzE,CAAC;gBACD,SAAS;YACX,CAAC;YAED,oDAAoD;YACpD,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;gBAC9C,IAAI,CAAC;oBACH,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;oBACvE,IAAI,aAAa,CAAC,aAAa,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;wBAC5D,KAAK,CAAC,MAAM,EAAE,2CAA2C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,aAAa,CAAC,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;wBAClJ,gDAAgD;oBAClD,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,KAAK,CAAC,MAAM,EAAE,2CAA4C,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC;mBACtE,kBAAkB,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEnE,MAAM,YAAY,GAAc;gBAC9B,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,QAAQ,EAAE,aAAa,CAAC,QAAQ;gBAChC,MAAM,EAAE,uBAAuB,CAAC,MAAM;gBACtC,cAAc,EAAE,OAAO;gBACvB,QAAQ,EAAE,aAAa,CAAC,QAAQ;gBAChC,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,MAAM;gBACZ,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,uBAAuB,CAAC,OAAO,CAAC;gBAChD,sBAAsB,EAAE,sBAAsB;gBAC9C,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,oBAAoB;gBAClF,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,aAAa,EAAE,uBAAuB,CAAC,YAAY;gBACnD,UAAU,EAAE,uBAAuB,CAAC,UAAU;gBAC9C,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,QAAQ,EAAE,QAAQ;aACnB,CAAC;YAEF,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBACnD,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBACpD,MAAM,EAAE,CAAC;YACX,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBACrC,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,CAAC,MAAM,EAAE,qCAAsC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,KAAK,EACtC,SAAiB,EACjB,UAAkB,EAClB,UAAkB,EAClB,MAAoB,EACL,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACzF,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9D,KAAK,CAAC,MAAM,EAAE,YAAY,MAAM,CAAC,MAAM,oBAAoB,MAAM,CAAC,MAAM,QAAQ,SAAS,EAAE,CAAC,CAAC;QAC/F,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,OAAO,EAAE,wBAAwB,SAAS,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,MAAM,EAAE,uBAAuB,SAAS,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC,CAAC;AAEF,gFAAgF;AAEhF,6DAA6D;AAC7D,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAEpC;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EAAE,MAAmB,EAAiB,EAAE;IAC/D,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,KAAK,CAAC,EAAE,CAAC;QAC1C,KAAK,CAAC,OAAO,EAAE,sDAAsD,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACtB,KAAK,CAAC,OAAO,EAAE,wCAAwC,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IAED,gDAAgD;IAChD,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,GAAG,GAAG,UAAU,GAAG,UAAU;QAAE,OAAO;IAC1C,UAAU,GAAG,GAAG,CAAC;IAEjB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,IAAI,gBAAgB,CAAC,cAAc,CAAC,SAAS,CAAC;IAEhG,IAAI,CAAC;QACH,6DAA6D;QAC7D,MAAM,YAAY,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtE,KAAK,CAAC,MAAM,EAAE,oBAAoB,aAAa,CAAC,MAAM,8CAA8C,CAAC,CAAC;QAEtG,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;YACpC,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,OAAO,EAAE,2BAA4B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,cAAc,GAAG,KAAK,EAC1B,OAAoB,EACpB,SAAiB,EACjB,MAAoB,EACH,EAAE;IACnB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAErC,uFAAuF;IACvF,MAAM,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;IAEhC,IAAI,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG;YACN,UAAU,EAAE,QAAQ;YACpB,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,CAAC;YACd,iBAAiB,EAAE,IAAI;YACvB,WAAW,EAAE,CAAC;SACf,CAAC;IACJ,CAAC;IAED,kBAAkB;IAClB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAE7F,MAAM,eAAe,GAAG,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEjE,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,IAAI,CAAC,eAAe,EAAE,CAAC;QAClD,kEAAkE;QAClE,IAAI,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAClC,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;YAC9B,KAAK,CAAC,WAAW,IAAI,UAAU,CAAC;YAChC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,uEAAuE;IACvE,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACzD,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;QAC/C,KAAK,CAAC,OAAO,EAAE,oBAAoB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAE,CAAC,MAAM,YAAY,UAAU,CAAC,MAAM,QAAQ,CAAC,CAAC;QAElJ,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAErD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACzD,UAAU,IAAI,MAAM,CAAC;YACvB,CAAC;QACH,CAAC;QAED,MAAM,0BAA0B,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,MAAM,EAAE,oBAAoB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,UAAU,kBAAkB,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC;IAC1I,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,OAAO,EAAE,oBAAoB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,+BAA+B,CAAC,CAAC;IACzG,CAAC;IAED,yBAAyB;IACzB,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,WAAW,IAAI,UAAU,CAAC;IAChC,KAAK,CAAC,iBAAiB,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC;IAC/B,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAE7B,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,GAAG,CAAC,MAAqB,EAAE,QAAgB,EAAmB,EAAE;IAC/E,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,IAAI,OAAO,GAAkB,EAAE,CAAC;IAChC,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,qCAAqC;QAC5F,IAAI,WAAW,GAAG,MAAM,GAAG,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,WAAW,IAAI,MAAM,CAAC;IACxB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE7C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=extraction.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extraction.test.d.ts","sourceRoot":"","sources":["../../src/daemon/extraction.test.ts"],"names":[],"mappings":""}