@maadb/core 0.0.1 → 0.7.10-rc.3

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 (419) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +371 -3
  3. package/dist/architect.d.ts +2 -0
  4. package/dist/architect.d.ts.map +1 -0
  5. package/dist/architect.js +273 -0
  6. package/dist/architect.js.map +1 -0
  7. package/dist/auth/resolve.d.ts +36 -0
  8. package/dist/auth/resolve.d.ts.map +1 -0
  9. package/dist/auth/resolve.js +77 -0
  10. package/dist/auth/resolve.js.map +1 -0
  11. package/dist/auth/token-store.d.ts +82 -0
  12. package/dist/auth/token-store.d.ts.map +1 -0
  13. package/dist/auth/token-store.js +464 -0
  14. package/dist/auth/token-store.js.map +1 -0
  15. package/dist/auth/types.d.ts +75 -0
  16. package/dist/auth/types.d.ts.map +1 -0
  17. package/dist/auth/types.js +15 -0
  18. package/dist/auth/types.js.map +1 -0
  19. package/dist/backend/adapter.d.ts +57 -0
  20. package/dist/backend/adapter.d.ts.map +1 -0
  21. package/dist/backend/adapter.js +6 -0
  22. package/dist/backend/adapter.js.map +1 -0
  23. package/dist/backend/index.d.ts +3 -0
  24. package/dist/backend/index.d.ts.map +1 -0
  25. package/dist/backend/index.js +2 -0
  26. package/dist/backend/index.js.map +1 -0
  27. package/dist/backend/sqlite/index.d.ts +63 -0
  28. package/dist/backend/sqlite/index.d.ts.map +1 -0
  29. package/dist/backend/sqlite/index.js +521 -0
  30. package/dist/backend/sqlite/index.js.map +1 -0
  31. package/dist/backend/sqlite/schema.d.ts +2 -0
  32. package/dist/backend/sqlite/schema.d.ts.map +1 -0
  33. package/dist/backend/sqlite/schema.js +88 -0
  34. package/dist/backend/sqlite/schema.js.map +1 -0
  35. package/dist/claude-md.d.ts +2 -0
  36. package/dist/claude-md.d.ts.map +1 -0
  37. package/dist/claude-md.js +97 -0
  38. package/dist/claude-md.js.map +1 -0
  39. package/dist/cli/commands/audit.d.ts +4 -0
  40. package/dist/cli/commands/audit.d.ts.map +1 -0
  41. package/dist/cli/commands/audit.js +39 -0
  42. package/dist/cli/commands/audit.js.map +1 -0
  43. package/dist/cli/commands/auth.d.ts +8 -0
  44. package/dist/cli/commands/auth.d.ts.map +1 -0
  45. package/dist/cli/commands/auth.js +242 -0
  46. package/dist/cli/commands/auth.js.map +1 -0
  47. package/dist/cli/commands/discover.d.ts +5 -0
  48. package/dist/cli/commands/discover.d.ts.map +1 -0
  49. package/dist/cli/commands/discover.js +48 -0
  50. package/dist/cli/commands/discover.js.map +1 -0
  51. package/dist/cli/commands/maintain.d.ts +6 -0
  52. package/dist/cli/commands/maintain.d.ts.map +1 -0
  53. package/dist/cli/commands/maintain.js +168 -0
  54. package/dist/cli/commands/maintain.js.map +1 -0
  55. package/dist/cli/commands/read.d.ts +7 -0
  56. package/dist/cli/commands/read.d.ts.map +1 -0
  57. package/dist/cli/commands/read.js +139 -0
  58. package/dist/cli/commands/read.js.map +1 -0
  59. package/dist/cli/commands/write.d.ts +4 -0
  60. package/dist/cli/commands/write.d.ts.map +1 -0
  61. package/dist/cli/commands/write.js +99 -0
  62. package/dist/cli/commands/write.js.map +1 -0
  63. package/dist/cli/helpers.d.ts +8 -0
  64. package/dist/cli/helpers.d.ts.map +1 -0
  65. package/dist/cli/helpers.js +17 -0
  66. package/dist/cli/helpers.js.map +1 -0
  67. package/dist/cli/index.d.ts +3 -0
  68. package/dist/cli/index.d.ts.map +1 -0
  69. package/dist/cli/index.js +296 -0
  70. package/dist/cli/index.js.map +1 -0
  71. package/dist/cli.d.ts +3 -0
  72. package/dist/cli.d.ts.map +1 -0
  73. package/dist/cli.js +7 -0
  74. package/dist/cli.js.map +1 -0
  75. package/dist/engine/audit.d.ts +15 -0
  76. package/dist/engine/audit.d.ts.map +1 -0
  77. package/dist/engine/audit.js +42 -0
  78. package/dist/engine/audit.js.map +1 -0
  79. package/dist/engine/backup.d.ts +9 -0
  80. package/dist/engine/backup.d.ts.map +1 -0
  81. package/dist/engine/backup.js +100 -0
  82. package/dist/engine/backup.js.map +1 -0
  83. package/dist/engine/composites.d.ts +6 -0
  84. package/dist/engine/composites.d.ts.map +1 -0
  85. package/dist/engine/composites.js +102 -0
  86. package/dist/engine/composites.js.map +1 -0
  87. package/dist/engine/context.d.ts +47 -0
  88. package/dist/engine/context.d.ts.map +1 -0
  89. package/dist/engine/context.js +55 -0
  90. package/dist/engine/context.js.map +1 -0
  91. package/dist/engine/docid-safe.d.ts +8 -0
  92. package/dist/engine/docid-safe.d.ts.map +1 -0
  93. package/dist/engine/docid-safe.js +0 -0
  94. package/dist/engine/docid-safe.js.map +1 -0
  95. package/dist/engine/helpers.d.ts +8 -0
  96. package/dist/engine/helpers.d.ts.map +1 -0
  97. package/dist/engine/helpers.js +102 -0
  98. package/dist/engine/helpers.js.map +1 -0
  99. package/dist/engine/index.d.ts +215 -0
  100. package/dist/engine/index.d.ts.map +1 -0
  101. package/dist/engine/index.js +494 -0
  102. package/dist/engine/index.js.map +1 -0
  103. package/dist/engine/indexing.d.ts +14 -0
  104. package/dist/engine/indexing.d.ts.map +1 -0
  105. package/dist/engine/indexing.js +225 -0
  106. package/dist/engine/indexing.js.map +1 -0
  107. package/dist/engine/journal.d.ts +32 -0
  108. package/dist/engine/journal.d.ts.map +1 -0
  109. package/dist/engine/journal.js +111 -0
  110. package/dist/engine/journal.js.map +1 -0
  111. package/dist/engine/logger.d.ts +19 -0
  112. package/dist/engine/logger.d.ts.map +1 -0
  113. package/dist/engine/logger.js +40 -0
  114. package/dist/engine/logger.js.map +1 -0
  115. package/dist/engine/maintenance.d.ts +15 -0
  116. package/dist/engine/maintenance.d.ts.map +1 -0
  117. package/dist/engine/maintenance.js +87 -0
  118. package/dist/engine/maintenance.js.map +1 -0
  119. package/dist/engine/mutex.d.ts +24 -0
  120. package/dist/engine/mutex.d.ts.map +1 -0
  121. package/dist/engine/mutex.js +50 -0
  122. package/dist/engine/mutex.js.map +1 -0
  123. package/dist/engine/pathguard.d.ts +16 -0
  124. package/dist/engine/pathguard.d.ts.map +1 -0
  125. package/dist/engine/pathguard.js +41 -0
  126. package/dist/engine/pathguard.js.map +1 -0
  127. package/dist/engine/reads.d.ts +25 -0
  128. package/dist/engine/reads.d.ts.map +1 -0
  129. package/dist/engine/reads.js +904 -0
  130. package/dist/engine/reads.js.map +1 -0
  131. package/dist/engine/types.d.ts +396 -0
  132. package/dist/engine/types.d.ts.map +1 -0
  133. package/dist/engine/types.js +5 -0
  134. package/dist/engine/types.js.map +1 -0
  135. package/dist/engine/writes.d.ts +10 -0
  136. package/dist/engine/writes.d.ts.map +1 -0
  137. package/dist/engine/writes.js +606 -0
  138. package/dist/engine/writes.js.map +1 -0
  139. package/dist/engine.d.ts +3 -0
  140. package/dist/engine.d.ts.map +1 -0
  141. package/dist/engine.js +6 -0
  142. package/dist/engine.js.map +1 -0
  143. package/dist/errors.d.ts +20 -0
  144. package/dist/errors.d.ts.map +1 -0
  145. package/dist/errors.js +17 -0
  146. package/dist/errors.js.map +1 -0
  147. package/dist/extractor/fields.d.ts +3 -0
  148. package/dist/extractor/fields.d.ts.map +1 -0
  149. package/dist/extractor/fields.js +58 -0
  150. package/dist/extractor/fields.js.map +1 -0
  151. package/dist/extractor/index.d.ts +7 -0
  152. package/dist/extractor/index.d.ts.map +1 -0
  153. package/dist/extractor/index.js +22 -0
  154. package/dist/extractor/index.js.map +1 -0
  155. package/dist/extractor/normalizers.d.ts +22 -0
  156. package/dist/extractor/normalizers.d.ts.map +1 -0
  157. package/dist/extractor/normalizers.js +250 -0
  158. package/dist/extractor/normalizers.js.map +1 -0
  159. package/dist/extractor/objects.d.ts +3 -0
  160. package/dist/extractor/objects.d.ts.map +1 -0
  161. package/dist/extractor/objects.js +33 -0
  162. package/dist/extractor/objects.js.map +1 -0
  163. package/dist/extractor/relationships.d.ts +3 -0
  164. package/dist/extractor/relationships.d.ts.map +1 -0
  165. package/dist/extractor/relationships.js +58 -0
  166. package/dist/extractor/relationships.js.map +1 -0
  167. package/dist/git/commit.d.ts +63 -0
  168. package/dist/git/commit.d.ts.map +1 -0
  169. package/dist/git/commit.js +161 -0
  170. package/dist/git/commit.js.map +1 -0
  171. package/dist/git/diff.d.ts +4 -0
  172. package/dist/git/diff.d.ts.map +1 -0
  173. package/dist/git/diff.js +56 -0
  174. package/dist/git/diff.js.map +1 -0
  175. package/dist/git/index.d.ts +63 -0
  176. package/dist/git/index.d.ts.map +1 -0
  177. package/dist/git/index.js +151 -0
  178. package/dist/git/index.js.map +1 -0
  179. package/dist/git/log.d.ts +13 -0
  180. package/dist/git/log.d.ts.map +1 -0
  181. package/dist/git/log.js +116 -0
  182. package/dist/git/log.js.map +1 -0
  183. package/dist/git/snapshot.d.ts +4 -0
  184. package/dist/git/snapshot.d.ts.map +1 -0
  185. package/dist/git/snapshot.js +65 -0
  186. package/dist/git/snapshot.js.map +1 -0
  187. package/dist/instance/config.d.ts +19 -0
  188. package/dist/instance/config.d.ts.map +1 -0
  189. package/dist/instance/config.js +107 -0
  190. package/dist/instance/config.js.map +1 -0
  191. package/dist/instance/pool.d.ts +138 -0
  192. package/dist/instance/pool.d.ts.map +1 -0
  193. package/dist/instance/pool.js +335 -0
  194. package/dist/instance/pool.js.map +1 -0
  195. package/dist/instance/session.d.ts +140 -0
  196. package/dist/instance/session.d.ts.map +1 -0
  197. package/dist/instance/session.js +267 -0
  198. package/dist/instance/session.js.map +1 -0
  199. package/dist/logging.d.ts +108 -0
  200. package/dist/logging.d.ts.map +1 -0
  201. package/dist/logging.js +120 -0
  202. package/dist/logging.js.map +1 -0
  203. package/dist/maad-md.d.ts +11 -0
  204. package/dist/maad-md.d.ts.map +1 -0
  205. package/dist/maad-md.js +252 -0
  206. package/dist/maad-md.js.map +1 -0
  207. package/dist/mcp/bulk-cap.d.ts +10 -0
  208. package/dist/mcp/bulk-cap.d.ts.map +1 -0
  209. package/dist/mcp/bulk-cap.js +37 -0
  210. package/dist/mcp/bulk-cap.js.map +1 -0
  211. package/dist/mcp/config.d.ts +18 -0
  212. package/dist/mcp/config.d.ts.map +1 -0
  213. package/dist/mcp/config.js +20 -0
  214. package/dist/mcp/config.js.map +1 -0
  215. package/dist/mcp/ctx.d.ts +17 -0
  216. package/dist/mcp/ctx.d.ts.map +1 -0
  217. package/dist/mcp/ctx.js +7 -0
  218. package/dist/mcp/ctx.js.map +1 -0
  219. package/dist/mcp/guardrails.d.ts +42 -0
  220. package/dist/mcp/guardrails.d.ts.map +1 -0
  221. package/dist/mcp/guardrails.js +58 -0
  222. package/dist/mcp/guardrails.js.map +1 -0
  223. package/dist/mcp/idempotency.d.ts +69 -0
  224. package/dist/mcp/idempotency.d.ts.map +1 -0
  225. package/dist/mcp/idempotency.js +168 -0
  226. package/dist/mcp/idempotency.js.map +1 -0
  227. package/dist/mcp/instance-reload.d.ts +23 -0
  228. package/dist/mcp/instance-reload.d.ts.map +1 -0
  229. package/dist/mcp/instance-reload.js +126 -0
  230. package/dist/mcp/instance-reload.js.map +1 -0
  231. package/dist/mcp/kinds.d.ts +22 -0
  232. package/dist/mcp/kinds.d.ts.map +1 -0
  233. package/dist/mcp/kinds.js +112 -0
  234. package/dist/mcp/kinds.js.map +1 -0
  235. package/dist/mcp/lifecycle.d.ts +8 -0
  236. package/dist/mcp/lifecycle.d.ts.map +1 -0
  237. package/dist/mcp/lifecycle.js +65 -0
  238. package/dist/mcp/lifecycle.js.map +1 -0
  239. package/dist/mcp/memory-pressure.d.ts +37 -0
  240. package/dist/mcp/memory-pressure.d.ts.map +1 -0
  241. package/dist/mcp/memory-pressure.js +179 -0
  242. package/dist/mcp/memory-pressure.js.map +1 -0
  243. package/dist/mcp/notifications.d.ts +87 -0
  244. package/dist/mcp/notifications.d.ts.map +1 -0
  245. package/dist/mcp/notifications.js +154 -0
  246. package/dist/mcp/notifications.js.map +1 -0
  247. package/dist/mcp/query-depth.d.ts +28 -0
  248. package/dist/mcp/query-depth.d.ts.map +1 -0
  249. package/dist/mcp/query-depth.js +43 -0
  250. package/dist/mcp/query-depth.js.map +1 -0
  251. package/dist/mcp/rate-limit.d.ts +60 -0
  252. package/dist/mcp/rate-limit.d.ts.map +1 -0
  253. package/dist/mcp/rate-limit.js +203 -0
  254. package/dist/mcp/rate-limit.js.map +1 -0
  255. package/dist/mcp/reload-signal.d.ts +13 -0
  256. package/dist/mcp/reload-signal.d.ts.map +1 -0
  257. package/dist/mcp/reload-signal.js +68 -0
  258. package/dist/mcp/reload-signal.js.map +1 -0
  259. package/dist/mcp/response.d.ts +109 -0
  260. package/dist/mcp/response.d.ts.map +1 -0
  261. package/dist/mcp/response.js +132 -0
  262. package/dist/mcp/response.js.map +1 -0
  263. package/dist/mcp/roles.d.ts +7 -0
  264. package/dist/mcp/roles.d.ts.map +1 -0
  265. package/dist/mcp/roles.js +57 -0
  266. package/dist/mcp/roles.js.map +1 -0
  267. package/dist/mcp/server.d.ts +33 -0
  268. package/dist/mcp/server.d.ts.map +1 -0
  269. package/dist/mcp/server.js +252 -0
  270. package/dist/mcp/server.js.map +1 -0
  271. package/dist/mcp/shutdown.d.ts +32 -0
  272. package/dist/mcp/shutdown.d.ts.map +1 -0
  273. package/dist/mcp/shutdown.js +130 -0
  274. package/dist/mcp/shutdown.js.map +1 -0
  275. package/dist/mcp/tools/audit.d.ts +4 -0
  276. package/dist/mcp/tools/audit.d.ts.map +1 -0
  277. package/dist/mcp/tools/audit.js +45 -0
  278. package/dist/mcp/tools/audit.js.map +1 -0
  279. package/dist/mcp/tools/auth.d.ts +4 -0
  280. package/dist/mcp/tools/auth.d.ts.map +1 -0
  281. package/dist/mcp/tools/auth.js +181 -0
  282. package/dist/mcp/tools/auth.js.map +1 -0
  283. package/dist/mcp/tools/backup.d.ts +4 -0
  284. package/dist/mcp/tools/backup.d.ts.map +1 -0
  285. package/dist/mcp/tools/backup.js +52 -0
  286. package/dist/mcp/tools/backup.js.map +1 -0
  287. package/dist/mcp/tools/discover.d.ts +4 -0
  288. package/dist/mcp/tools/discover.d.ts.map +1 -0
  289. package/dist/mcp/tools/discover.js +83 -0
  290. package/dist/mcp/tools/discover.js.map +1 -0
  291. package/dist/mcp/tools/instance.d.ts +15 -0
  292. package/dist/mcp/tools/instance.d.ts.map +1 -0
  293. package/dist/mcp/tools/instance.js +207 -0
  294. package/dist/mcp/tools/instance.js.map +1 -0
  295. package/dist/mcp/tools/maintain.d.ts +4 -0
  296. package/dist/mcp/tools/maintain.d.ts.map +1 -0
  297. package/dist/mcp/tools/maintain.js +123 -0
  298. package/dist/mcp/tools/maintain.js.map +1 -0
  299. package/dist/mcp/tools/read.d.ts +4 -0
  300. package/dist/mcp/tools/read.d.ts.map +1 -0
  301. package/dist/mcp/tools/read.js +304 -0
  302. package/dist/mcp/tools/read.js.map +1 -0
  303. package/dist/mcp/tools/write.d.ts +4 -0
  304. package/dist/mcp/tools/write.d.ts.map +1 -0
  305. package/dist/mcp/tools/write.js +342 -0
  306. package/dist/mcp/tools/write.js.map +1 -0
  307. package/dist/mcp/transport/auth.d.ts +41 -0
  308. package/dist/mcp/transport/auth.d.ts.map +1 -0
  309. package/dist/mcp/transport/auth.js +115 -0
  310. package/dist/mcp/transport/auth.js.map +1 -0
  311. package/dist/mcp/transport/http.d.ts +62 -0
  312. package/dist/mcp/transport/http.d.ts.map +1 -0
  313. package/dist/mcp/transport/http.js +357 -0
  314. package/dist/mcp/transport/http.js.map +1 -0
  315. package/dist/mcp/transport/pin.d.ts +15 -0
  316. package/dist/mcp/transport/pin.d.ts.map +1 -0
  317. package/dist/mcp/transport/pin.js +71 -0
  318. package/dist/mcp/transport/pin.js.map +1 -0
  319. package/dist/mcp/transport/telemetry.d.ts +79 -0
  320. package/dist/mcp/transport/telemetry.d.ts.map +1 -0
  321. package/dist/mcp/transport/telemetry.js +97 -0
  322. package/dist/mcp/transport/telemetry.js.map +1 -0
  323. package/dist/mcp/with-session.d.ts +26 -0
  324. package/dist/mcp/with-session.d.ts.map +1 -0
  325. package/dist/mcp/with-session.js +275 -0
  326. package/dist/mcp/with-session.js.map +1 -0
  327. package/dist/parser/annotations.d.ts +3 -0
  328. package/dist/parser/annotations.d.ts.map +1 -0
  329. package/dist/parser/annotations.js +41 -0
  330. package/dist/parser/annotations.js.map +1 -0
  331. package/dist/parser/blocks.d.ts +3 -0
  332. package/dist/parser/blocks.d.ts.map +1 -0
  333. package/dist/parser/blocks.js +101 -0
  334. package/dist/parser/blocks.js.map +1 -0
  335. package/dist/parser/frontmatter.d.ts +9 -0
  336. package/dist/parser/frontmatter.d.ts.map +1 -0
  337. package/dist/parser/frontmatter.js +33 -0
  338. package/dist/parser/frontmatter.js.map +1 -0
  339. package/dist/parser/index.d.ts +11 -0
  340. package/dist/parser/index.d.ts.map +1 -0
  341. package/dist/parser/index.js +54 -0
  342. package/dist/parser/index.js.map +1 -0
  343. package/dist/parser/matter.d.ts +3 -0
  344. package/dist/parser/matter.d.ts.map +1 -0
  345. package/dist/parser/matter.js +32 -0
  346. package/dist/parser/matter.js.map +1 -0
  347. package/dist/parser/tags.d.ts +3 -0
  348. package/dist/parser/tags.d.ts.map +1 -0
  349. package/dist/parser/tags.js +32 -0
  350. package/dist/parser/tags.js.map +1 -0
  351. package/dist/parser/verbatim.d.ts +4 -0
  352. package/dist/parser/verbatim.d.ts.map +1 -0
  353. package/dist/parser/verbatim.js +121 -0
  354. package/dist/parser/verbatim.js.map +1 -0
  355. package/dist/parser/yaml-profile.d.ts +4 -0
  356. package/dist/parser/yaml-profile.d.ts.map +1 -0
  357. package/dist/parser/yaml-profile.js +73 -0
  358. package/dist/parser/yaml-profile.js.map +1 -0
  359. package/dist/registry/index.d.ts +2 -0
  360. package/dist/registry/index.d.ts.map +1 -0
  361. package/dist/registry/index.js +2 -0
  362. package/dist/registry/index.js.map +1 -0
  363. package/dist/registry/loader.d.ts +4 -0
  364. package/dist/registry/loader.d.ts.map +1 -0
  365. package/dist/registry/loader.js +147 -0
  366. package/dist/registry/loader.js.map +1 -0
  367. package/dist/registry/types.d.ts +2 -0
  368. package/dist/registry/types.d.ts.map +1 -0
  369. package/dist/registry/types.js +5 -0
  370. package/dist/registry/types.js.map +1 -0
  371. package/dist/scanner.d.ts +57 -0
  372. package/dist/scanner.d.ts.map +1 -0
  373. package/dist/scanner.js +223 -0
  374. package/dist/scanner.js.map +1 -0
  375. package/dist/schema/index.d.ts +3 -0
  376. package/dist/schema/index.d.ts.map +1 -0
  377. package/dist/schema/index.js +3 -0
  378. package/dist/schema/index.js.map +1 -0
  379. package/dist/schema/loader.d.ts +4 -0
  380. package/dist/schema/loader.d.ts.map +1 -0
  381. package/dist/schema/loader.js +303 -0
  382. package/dist/schema/loader.js.map +1 -0
  383. package/dist/schema/precision.d.ts +6 -0
  384. package/dist/schema/precision.d.ts.map +1 -0
  385. package/dist/schema/precision.js +59 -0
  386. package/dist/schema/precision.js.map +1 -0
  387. package/dist/schema/validator.d.ts +21 -0
  388. package/dist/schema/validator.d.ts.map +1 -0
  389. package/dist/schema/validator.js +200 -0
  390. package/dist/schema/validator.js.map +1 -0
  391. package/dist/schema-md.d.ts +8 -0
  392. package/dist/schema-md.d.ts.map +1 -0
  393. package/dist/schema-md.js +98 -0
  394. package/dist/schema-md.js.map +1 -0
  395. package/dist/skill-files.d.ts +3 -0
  396. package/dist/skill-files.d.ts.map +1 -0
  397. package/dist/skill-files.js +362 -0
  398. package/dist/skill-files.js.map +1 -0
  399. package/dist/skills-scaffold.d.ts +10 -0
  400. package/dist/skills-scaffold.d.ts.map +1 -0
  401. package/dist/skills-scaffold.js +52 -0
  402. package/dist/skills-scaffold.js.map +1 -0
  403. package/dist/types.d.ts +309 -0
  404. package/dist/types.d.ts.map +1 -0
  405. package/dist/types.js +111 -0
  406. package/dist/types.js.map +1 -0
  407. package/dist/writer/index.d.ts +7 -0
  408. package/dist/writer/index.d.ts.map +1 -0
  409. package/dist/writer/index.js +32 -0
  410. package/dist/writer/index.js.map +1 -0
  411. package/dist/writer/serializer.d.ts +4 -0
  412. package/dist/writer/serializer.d.ts.map +1 -0
  413. package/dist/writer/serializer.js +103 -0
  414. package/dist/writer/serializer.js.map +1 -0
  415. package/dist/writer/template.d.ts +3 -0
  416. package/dist/writer/template.d.ts.map +1 -0
  417. package/dist/writer/template.js +27 -0
  418. package/dist/writer/template.js.map +1 -0
  419. package/package.json +59 -7
@@ -0,0 +1,494 @@
1
+ // ============================================================================
2
+ // MAAD Engine — Thin facade over domain modules
3
+ // Holds state, delegates to domain functions via EngineContext.
4
+ // ============================================================================
5
+ import { existsSync, mkdirSync, writeFileSync, statSync, readdirSync, statfsSync } from 'node:fs';
6
+ import path from 'node:path';
7
+ import { AsyncLocalStorage } from 'node:async_hooks';
8
+ import { ok, singleErr } from '../errors.js';
9
+ import { AsyncFifoMutex } from './mutex.js';
10
+ // Reentrancy marker — present in ALS scope when runExclusive is already
11
+ // holding the write lock on `this` engine. Engine mutation methods keep
12
+ // their internal runExclusive wrappers so direct callers (CLI, tests)
13
+ // stay serialized; MCP boundary callers (withEngine's write branch) also
14
+ // call runExclusive. The inner acquire sees the outer's ALS marker and
15
+ // no-ops to avoid a non-reentrant deadlock.
16
+ const writeScope = new AsyncLocalStorage();
17
+ import { logger } from './logger.js';
18
+ import { loadRegistry } from '../registry/index.js';
19
+ import { loadSchemas } from '../schema/index.js';
20
+ import { logSchemaCacheStale } from '../logging.js';
21
+ import { SqliteBackend } from '../backend/index.js';
22
+ import { GitLayer } from '../git/index.js';
23
+ import { newCommitFailureTracker } from './context.js';
24
+ import { OperationJournal } from './journal.js';
25
+ // Domain modules
26
+ import * as indexing from './indexing.js';
27
+ import * as reads from './reads.js';
28
+ import * as composites from './composites.js';
29
+ import * as writes from './writes.js';
30
+ import * as backup from './backup.js';
31
+ import * as maintenance from './maintenance.js';
32
+ import * as auditOps from './audit.js';
33
+ /** Recursive dir size in bytes. Best-effort — unreadable entries are skipped. */
34
+ function dirSizeBytes(root) {
35
+ if (!existsSync(root))
36
+ return 0;
37
+ let total = 0;
38
+ const stack = [root];
39
+ while (stack.length > 0) {
40
+ const dir = stack.pop();
41
+ let entries;
42
+ try {
43
+ entries = readdirSync(dir);
44
+ }
45
+ catch {
46
+ continue;
47
+ }
48
+ for (const name of entries) {
49
+ const full = path.join(dir, name);
50
+ try {
51
+ const s = statSync(full);
52
+ if (s.isDirectory())
53
+ stack.push(full);
54
+ else if (s.isFile())
55
+ total += s.size;
56
+ }
57
+ catch {
58
+ /* skip unreadable entries */
59
+ }
60
+ }
61
+ }
62
+ return total;
63
+ }
64
+ export class MaadEngine {
65
+ projectRoot = '';
66
+ registry;
67
+ schemaStore;
68
+ backend;
69
+ gitLayer = null;
70
+ journal;
71
+ commitFailures = newCommitFailureTracker();
72
+ // 0.7.0 — pending commit identity set per-operation by the MCP `withEngine`
73
+ // wrapper inside the write mutex (safe because write mutex serializes all
74
+ // mutations on this engine instance). Cleared after each op. Engine-level
75
+ // direct callers (CLI, tests) don't touch this; commit messages stay bare.
76
+ pendingCommitIdentity = undefined;
77
+ initialized = false;
78
+ _readOnly = false;
79
+ startupRecovery = [];
80
+ // Write mutex — serializes all mutating engine operations per instance.
81
+ // FIFO. Blocks indefinitely in 0.4.1; timeout deferred to 0.8.5.
82
+ writeLock = new AsyncFifoMutex();
83
+ lastWriteOp = null;
84
+ lastWriteAt = null;
85
+ // Cached repo-size probe. Full .git walk is O(size) and can be slow on
86
+ // big histories; cache for 60s so consecutive maad_health calls are cheap.
87
+ repoSizeCache = null;
88
+ static REPO_SIZE_CACHE_MS = 60_000;
89
+ // git-status result cache; refresh() updates it, probeGitClean() reads it.
90
+ lastGitCleanCache = null;
91
+ /**
92
+ * Acquire the per-engine write mutex, run `fn`, release. Records
93
+ * `lastWriteOp` / `lastWriteAt` for health reporting and logs slow writes.
94
+ *
95
+ * **Reentrant.** When the current async context already holds this
96
+ * engine's write scope (e.g. `withEngine`'s write branch acquired at the
97
+ * MCP boundary, and the handler then calls `engine.createDocument` which
98
+ * itself wraps in `runExclusive`), the inner call skips acquisition and
99
+ * runs `fn` directly. Prevents double-locking deadlocks on a
100
+ * non-reentrant FIFO mutex. Bookkeeping (lastWriteOp/lastWriteAt) fires
101
+ * once per outermost scope.
102
+ *
103
+ * As of 0.5.0 R4 the MCP entry point is the primary caller — every tool
104
+ * classified as `write` in `src/mcp/kinds.ts` wraps here at the request
105
+ * boundary. Direct non-MCP callers (CLI, tests, import scripts) continue
106
+ * to call engine mutation methods normally; those methods self-wrap in
107
+ * runExclusive so direct callers stay serialized.
108
+ */
109
+ async runExclusive(op, fn) {
110
+ if (writeScope.getStore() === this) {
111
+ // Reentrant call — outer scope already owns the lock and bookkeeping.
112
+ return fn();
113
+ }
114
+ const depthOnEnter = this.writeLock.depth();
115
+ const release = await this.writeLock.acquire();
116
+ const startedAtMs = Date.now();
117
+ this.lastWriteOp = { op, startedAtMs };
118
+ try {
119
+ // 0.7.7 (fup-2026-202) — every write op enters here. Before running
120
+ // fn() we check whether another process has edited registry/schemas
121
+ // on disk since our last load; if so, reload schemas in-place so the
122
+ // write uses fresh schema (correct field_index entries). Skip for
123
+ // 'reload' itself — it's about to re-init everything regardless.
124
+ if (op !== 'reload' && this.initialized) {
125
+ await this.reloadSchemasIfStale(op);
126
+ }
127
+ const result = await writeScope.run(this, () => fn());
128
+ // Record last-write timestamp for health reporting. Successful and
129
+ // error-result writes both touch this — every mutating attempt counts
130
+ // as activity; a caller can cross-reference the ops log to distinguish.
131
+ this.lastWriteAt = new Date().toISOString();
132
+ return result;
133
+ }
134
+ finally {
135
+ const elapsedMs = Date.now() - startedAtMs;
136
+ if (elapsedMs > 500) {
137
+ logger.degraded('engine', 'write_slow', `${op} held write lock ${elapsedMs}ms`, {
138
+ op,
139
+ elapsedMs,
140
+ queueDepthOnEnter: depthOnEnter,
141
+ });
142
+ }
143
+ this.lastWriteOp = null;
144
+ release();
145
+ }
146
+ }
147
+ async init(projectRoot, opts) {
148
+ this.projectRoot = path.resolve(projectRoot);
149
+ this._readOnly = opts?.readOnly ?? false;
150
+ // Self-heal engine-owned state on empty projects. In read-only mode we
151
+ // refuse to write anything: a missing registry/schema/backend is a hard
152
+ // error. In read-write mode we create the minimum structure so pointing
153
+ // the engine at a fresh empty directory is a valid "architect mode" entry
154
+ // point (empty registry, no schemas, empty index).
155
+ const registryPath = path.join(this.projectRoot, '_registry', 'object_types.yaml');
156
+ if (!existsSync(registryPath)) {
157
+ if (this._readOnly) {
158
+ return singleErr('READ_ONLY', `Registry file does not exist and engine is in read-only mode: ${registryPath}`);
159
+ }
160
+ mkdirSync(path.dirname(registryPath), { recursive: true });
161
+ writeFileSync(registryPath, 'types: {}\n', 'utf-8');
162
+ }
163
+ const schemaDir = path.join(this.projectRoot, '_schema');
164
+ if (!existsSync(schemaDir)) {
165
+ if (this._readOnly) {
166
+ return singleErr('READ_ONLY', `Schema directory does not exist and engine is in read-only mode: ${schemaDir}`);
167
+ }
168
+ mkdirSync(schemaDir, { recursive: true });
169
+ }
170
+ const regResult = await loadRegistry(this.projectRoot);
171
+ if (!regResult.ok)
172
+ return regResult;
173
+ this.registry = regResult.value;
174
+ const schemaResult = await loadSchemas(this.projectRoot, this.registry);
175
+ if (!schemaResult.ok)
176
+ return schemaResult;
177
+ this.schemaStore = schemaResult.value;
178
+ const backendDir = path.join(this.projectRoot, '_backend');
179
+ if (!existsSync(backendDir)) {
180
+ if (this._readOnly) {
181
+ // In read-only mode, don't create _backend — just fail gracefully
182
+ return singleErr('READ_ONLY', 'Backend directory does not exist and engine is in read-only mode');
183
+ }
184
+ mkdirSync(backendDir, { recursive: true });
185
+ }
186
+ const dbPath = path.join(backendDir, 'maad.db');
187
+ this.backend = new SqliteBackend(dbPath);
188
+ this.backend.init();
189
+ // Operation journal — tracks pending writes for crash recovery
190
+ this.journal = new OperationJournal(backendDir);
191
+ this.startupRecovery = this.journal.reconcile();
192
+ this.gitLayer = new GitLayer(this.projectRoot);
193
+ if (await this.gitLayer.isRepo()) {
194
+ // Git is available — check for stale index.lock from a crashed prior process.
195
+ const lockResult = this.gitLayer.recoverStaleIndexLock();
196
+ if (lockResult.action === 'conflict') {
197
+ return singleErr('GIT_ERROR', `Git index.lock exists and is recent (mtime ${lockResult.mtime.toISOString()}); refusing to start. Another engine process may be running on this project.`, undefined, { reason: 'index-lock-recent', path: path.join(this.projectRoot, '.git', 'index.lock'), mtime: lockResult.mtime.toISOString() });
198
+ }
199
+ if (lockResult.action === 'removed') {
200
+ this.startupRecovery.push('index_lock_stale_removed');
201
+ }
202
+ }
203
+ else {
204
+ this.gitLayer = null;
205
+ }
206
+ this.initialized = true;
207
+ // Warm the git-clean cache so the first health() call returns real data
208
+ // instead of null. Best-effort — a failure here falls through to null
209
+ // and health() reports it as "unknown" rather than crashing init.
210
+ // Awaited (not fire-and-forget) so a caller who polls health() right
211
+ // after init() sees consistent data, not a null → boolean transition.
212
+ if (this.gitLayer) {
213
+ await this.refreshGitClean();
214
+ }
215
+ return ok(undefined);
216
+ }
217
+ isReadOnly() {
218
+ return this._readOnly;
219
+ }
220
+ async reload() {
221
+ return this.runExclusive('reload', async () => {
222
+ if (this.backend)
223
+ this.backend.close();
224
+ this.initialized = false;
225
+ return this.init(this.projectRoot, { readOnly: this._readOnly });
226
+ });
227
+ }
228
+ /**
229
+ * 0.7.7 (fup-2026-202) — Lightweight in-place reload of registry + schemas.
230
+ * Triggered from `runExclusive` when `schemaStore.isStale()` reports drift
231
+ * (another process edited the schema/registry files since our last load).
232
+ *
233
+ * Does NOT reset the backend or git layer — only the in-memory schema and
234
+ * registry refs are swapped. Cheap enough to run as a defensive check on
235
+ * every write entry; the staleness probe (a handful of fstat calls) takes
236
+ * microseconds and the actual reload only fires when files actually
237
+ * changed. Failure path: log and proceed with the stale schema rather than
238
+ * blocking the write — a rare case (schema deleted mid-flight) where doing
239
+ * nothing is the lesser harm.
240
+ */
241
+ async reloadSchemasIfStale(triggerOp) {
242
+ if (!this.schemaStore.isStale())
243
+ return;
244
+ const changedFiles = [];
245
+ for (const [absPath, cached] of this.schemaStore.cachedFiles) {
246
+ try {
247
+ const st = statSync(absPath);
248
+ if (st.mtimeMs !== cached.mtimeMs || st.size !== cached.size) {
249
+ changedFiles.push(absPath);
250
+ }
251
+ }
252
+ catch {
253
+ changedFiles.push(absPath);
254
+ }
255
+ }
256
+ logSchemaCacheStale({
257
+ project: null,
258
+ trigger_op: triggerOp,
259
+ changed_files: changedFiles,
260
+ });
261
+ const regResult = await loadRegistry(this.projectRoot);
262
+ if (!regResult.ok) {
263
+ logger.bestEffort('engine', 'reloadSchemasIfStale.registry', `registry reload failed; proceeding with stale registry`, { errors: regResult.errors.map(e => `${e.code}: ${e.message}`).join('; ') });
264
+ return;
265
+ }
266
+ const schemaResult = await loadSchemas(this.projectRoot, regResult.value);
267
+ if (!schemaResult.ok) {
268
+ logger.bestEffort('engine', 'reloadSchemasIfStale.schemas', `schema reload failed; proceeding with stale schemas`, { errors: schemaResult.errors.map(e => `${e.code}: ${e.message}`).join('; ') });
269
+ return;
270
+ }
271
+ this.registry = regResult.value;
272
+ this.schemaStore = schemaResult.value;
273
+ }
274
+ health() {
275
+ this.assertInit();
276
+ const stats = this.backend.getStats();
277
+ const emptyProject = this.registry.types.size === 0 && stats.totalDocuments === 0;
278
+ const lastWriteOp = this.lastWriteOp
279
+ ? {
280
+ op: this.lastWriteOp.op,
281
+ startedAt: new Date(this.lastWriteOp.startedAtMs).toISOString(),
282
+ elapsedMs: Date.now() - this.lastWriteOp.startedAtMs,
283
+ }
284
+ : null;
285
+ return {
286
+ projectRoot: this.projectRoot,
287
+ initialized: this.initialized,
288
+ readOnly: this._readOnly,
289
+ gitAvailable: this.gitLayer !== null,
290
+ indexExists: stats.totalDocuments > 0,
291
+ lastIndexedAt: stats.lastIndexedAt,
292
+ totalDocuments: stats.totalDocuments,
293
+ registeredTypes: this.registry.types.size,
294
+ recoveryActions: this.startupRecovery,
295
+ emptyProject,
296
+ bootstrapHint: emptyProject ? '_skills/architect-core.md' : null,
297
+ writeQueueDepth: this.writeLock.depth(),
298
+ lastWriteOp,
299
+ lastWriteAt: this.lastWriteAt,
300
+ repoSizeBytes: this.probeRepoSize(),
301
+ gitClean: this.probeGitClean(),
302
+ diskHeadroomMb: this.probeDiskHeadroom(),
303
+ commitFailuresTotal: this.commitFailures.count,
304
+ lastCommitFailureAt: this.commitFailures.lastAt,
305
+ lastCommitFailureCode: this.commitFailures.lastCode,
306
+ lastCommitFailureAction: this.commitFailures.lastAction,
307
+ lastCommitFailureDocId: this.commitFailures.lastDocId,
308
+ };
309
+ }
310
+ // ---- H8 probes ------------------------------------------------------------
311
+ /**
312
+ * Size of the .git directory on disk, in bytes. Cached for 60s since a full
313
+ * recursive walk is O(size) and maad_health may be polled frequently. Returns
314
+ * null if git is unavailable. Best-effort: filesystem errors return null.
315
+ */
316
+ probeRepoSize() {
317
+ if (!this.gitLayer)
318
+ return null;
319
+ const nowMs = Date.now();
320
+ if (this.repoSizeCache && nowMs - this.repoSizeCache.computedAtMs < MaadEngine.REPO_SIZE_CACHE_MS) {
321
+ return this.repoSizeCache.bytes;
322
+ }
323
+ try {
324
+ const bytes = dirSizeBytes(path.join(this.projectRoot, '.git'));
325
+ this.repoSizeCache = { bytes, computedAtMs: nowMs };
326
+ return bytes;
327
+ }
328
+ catch {
329
+ return null;
330
+ }
331
+ }
332
+ /**
333
+ * Synchronous "is the working tree clean" probe. Uses simple-git's
334
+ * status() — fast enough for health reporting. Returns null if git is
335
+ * unavailable. Best-effort: errors return null.
336
+ *
337
+ * Note: simple-git's status() is async, but we cache the most recent
338
+ * result on a health() call so maad_health stays synchronous.
339
+ */
340
+ probeGitClean() {
341
+ if (!this.gitLayer)
342
+ return null;
343
+ return this.lastGitCleanCache;
344
+ }
345
+ /**
346
+ * Refresh the cached git-clean flag. Called on demand (e.g. from an async
347
+ * path that awaits the status) and in the background by probeGitClean
348
+ * fallback.
349
+ */
350
+ async refreshGitClean() {
351
+ if (!this.gitLayer) {
352
+ this.lastGitCleanCache = null;
353
+ return null;
354
+ }
355
+ try {
356
+ const status = await this.gitLayer.getSimpleGit().status();
357
+ this.lastGitCleanCache = status.files.length === 0;
358
+ return this.lastGitCleanCache;
359
+ }
360
+ catch {
361
+ return this.lastGitCleanCache;
362
+ }
363
+ }
364
+ /**
365
+ * Free space on the volume holding projectRoot, in megabytes. Uses
366
+ * fs.statfsSync which is available on Node 18+. Returns null on error
367
+ * (e.g. unsupported filesystem, permissions).
368
+ */
369
+ probeDiskHeadroom() {
370
+ try {
371
+ const stats = statfsSync(this.projectRoot);
372
+ const bytes = Number(stats.bavail) * Number(stats.bsize);
373
+ return Math.floor(bytes / (1024 * 1024));
374
+ }
375
+ catch {
376
+ return null;
377
+ }
378
+ }
379
+ /**
380
+ * Test/drain accessor for the write mutex's current queue depth (held + waiting).
381
+ * Used by the lifecycle drain loop (0.4.1 H7) and the concurrency test suite.
382
+ */
383
+ writeQueueDepth() {
384
+ return this.writeLock.depth();
385
+ }
386
+ getStartupRecovery() {
387
+ return this.startupRecovery;
388
+ }
389
+ close() {
390
+ if (this.backend)
391
+ this.backend.close();
392
+ }
393
+ ctx() {
394
+ this.assertInit();
395
+ return {
396
+ projectRoot: this.projectRoot,
397
+ registry: this.registry,
398
+ schemaStore: this.schemaStore,
399
+ backend: this.backend,
400
+ gitLayer: this.gitLayer,
401
+ journal: this.journal,
402
+ readOnly: this._readOnly,
403
+ commitFailures: this.commitFailures,
404
+ ...(this.pendingCommitIdentity !== undefined ? { commitIdentity: this.pendingCommitIdentity } : {}),
405
+ };
406
+ }
407
+ /**
408
+ * 0.7.0 — Set the identity slot used by the next git commit under the
409
+ * write mutex. Caller MUST be inside `runExclusive` so no concurrent
410
+ * writer can stomp the slot. `withEngine` (MCP layer) brackets set/clear
411
+ * around each write handler; clear with setCommitIdentity(undefined).
412
+ */
413
+ setCommitIdentity(identity) {
414
+ this.pendingCommitIdentity = identity;
415
+ }
416
+ assertInit() {
417
+ if (!this.initialized) {
418
+ throw new Error('MaadEngine not initialized. Call init() first.');
419
+ }
420
+ }
421
+ // --- Indexing ---
422
+ // Self-wrapping. MCP callers (withEngine write branch) enter runExclusive
423
+ // first; these inner wraps are reentrant no-ops. Direct callers (CLI,
424
+ // tests) get serialized via the first (outer) acquire.
425
+ async indexAll(opts) {
426
+ return this.runExclusive('indexAll', () => indexing.indexAll(this.ctx(), opts));
427
+ }
428
+ async indexFile(absolutePath) {
429
+ return this.runExclusive('indexFile', () => indexing.indexFile(this.ctx(), absolutePath));
430
+ }
431
+ async reindex(opts) {
432
+ return this.runExclusive('reindex', () => indexing.reindex(this.ctx(), opts));
433
+ }
434
+ // --- Reads ---
435
+ async getDocument(id, depth, blockIdOrHeading) { return reads.getDocument(this.ctx(), id, depth, blockIdOrHeading); }
436
+ findDocuments(query) { return reads.findDocuments(this.ctx(), query); }
437
+ searchObjects(query) { return reads.searchObjects(this.ctx(), query); }
438
+ listRelated(id, direction, types) { return reads.listRelated(this.ctx(), id, direction, types); }
439
+ describe() { return reads.describe(this.ctx()); }
440
+ summary() { return reads.summary(this.ctx()); }
441
+ getSchema(dt) { return reads.getSchema(this.ctx(), dt); }
442
+ schemaInfo(dt) { return reads.schemaInfo(this.ctx(), dt); }
443
+ aggregate(query) { return reads.aggregate(this.ctx(), query); }
444
+ join(query) { return reads.join(this.ctx(), query); }
445
+ async verifyField(id, field, expected) { return reads.verifyField(this.ctx(), id, field, expected); }
446
+ verifyCount(dt, expectedCount, filters) { return reads.verifyCount(this.ctx(), dt, expectedCount, filters); }
447
+ async verifyIntegrity(query) { return reads.verifyIntegrity(this.ctx(), query); }
448
+ async backupCreate(opts) { return backup.createBackup(this.ctx(), opts); }
449
+ async backupList(opts) { return backup.listBackups(this.ctx(), opts); }
450
+ async backupDelete(tag) { return backup.deleteBackup(this.ctx(), tag); }
451
+ changesSince(query) { return reads.changesSince(this.ctx(), query); }
452
+ // --- Composites (Tier 2, provisional) ---
453
+ async getDocumentFull(id) { return composites.getDocumentFull(this.ctx(), id); }
454
+ // --- Writes (read-only guarded, serialized under write mutex) ---
455
+ // Self-wrapping. Reentrant under an outer runExclusive scope.
456
+ async createDocument(dt, fields, body, customDocId) {
457
+ if (this._readOnly)
458
+ return singleErr('READ_ONLY', 'Engine is in read-only mode');
459
+ return this.runExclusive('createDocument', () => writes.createDocument(this.ctx(), dt, fields, body, customDocId));
460
+ }
461
+ async updateDocument(id, fields, body, appendBody, expectedVersion) {
462
+ if (this._readOnly)
463
+ return singleErr('READ_ONLY', 'Engine is in read-only mode');
464
+ return this.runExclusive('updateDocument', () => writes.updateDocument(this.ctx(), id, fields, body, appendBody, expectedVersion));
465
+ }
466
+ async deleteDocument(id, mode) {
467
+ if (this._readOnly)
468
+ return singleErr('READ_ONLY', 'Engine is in read-only mode');
469
+ return this.runExclusive('deleteDocument', () => writes.deleteDocument(this.ctx(), id, mode));
470
+ }
471
+ async bulkCreate(records) {
472
+ if (this._readOnly)
473
+ return singleErr('READ_ONLY', 'Engine is in read-only mode');
474
+ return this.runExclusive('bulkCreate', () => writes.bulkCreate(this.ctx(), records));
475
+ }
476
+ async bulkUpdate(updates) {
477
+ if (this._readOnly)
478
+ return singleErr('READ_ONLY', 'Engine is in read-only mode');
479
+ return this.runExclusive('bulkUpdate', () => writes.bulkUpdate(this.ctx(), updates));
480
+ }
481
+ // --- Maintenance ---
482
+ async validate(docId, options) { return maintenance.validate(this.ctx(), docId, options); }
483
+ // --- Audit ---
484
+ async history(id, opts) { return auditOps.history(this.ctx(), id, opts); }
485
+ async diff(id, from, to) { return auditOps.diff(this.ctx(), id, from, to); }
486
+ async snapshot(id, at) { return auditOps.snapshot(this.ctx(), id, at); }
487
+ async audit(opts) { return auditOps.audit(this.ctx(), opts); }
488
+ // --- Accessors ---
489
+ getBackend() { return this.backend; }
490
+ getRegistry() { return this.registry; }
491
+ getGitLayer() { return this.gitLayer; }
492
+ getProjectRoot() { return this.projectRoot; }
493
+ }
494
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gDAAgD;AAChD,gEAAgE;AAChE,+EAA+E;AAE/E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClG,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,EAAE,EAAE,SAAS,EAAe,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,wEAAwE;AACxE,wEAAwE;AACxE,sEAAsE;AACtE,yEAAyE;AACzE,uEAAuE;AACvE,4CAA4C;AAC5C,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAc,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAUrC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,iBAAiB;AACjB,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAsDvC,iFAAiF;AACjF,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,KAAK,GAAa,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QACzB,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,CAAC,CAAC,WAAW,EAAE;oBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACjC,IAAI,CAAC,CAAC,MAAM,EAAE;oBAAE,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,OAAO,UAAU;IACb,WAAW,GAAW,EAAE,CAAC;IACzB,QAAQ,CAAY;IACpB,WAAW,CAAe;IAC1B,OAAO,CAAe;IACtB,QAAQ,GAAoB,IAAI,CAAC;IACjC,OAAO,CAAoB;IAC3B,cAAc,GAAyB,uBAAuB,EAAE,CAAC;IACzE,4EAA4E;IAC5E,0EAA0E;IAC1E,0EAA0E;IAC1E,2EAA2E;IACnE,qBAAqB,GAA0D,SAAS,CAAC;IACzF,WAAW,GAAG,KAAK,CAAC;IACpB,SAAS,GAAG,KAAK,CAAC;IAClB,eAAe,GAAa,EAAE,CAAC;IAEvC,wEAAwE;IACxE,iEAAiE;IACzD,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;IACjC,WAAW,GAA+C,IAAI,CAAC;IAC/D,WAAW,GAAkB,IAAI,CAAC;IAE1C,uEAAuE;IACvE,2EAA2E;IACnE,aAAa,GAAmD,IAAI,CAAC;IACrE,MAAM,CAAU,kBAAkB,GAAG,MAAM,CAAC;IACpD,2EAA2E;IACnE,iBAAiB,GAAmB,IAAI,CAAC;IAEjD;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,YAAY,CAAI,EAAU,EAAE,EAAoB;QACpD,IAAI,UAAU,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;YACnC,sEAAsE;YACtE,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,oEAAoE;YACpE,oEAAoE;YACpE,qEAAqE;YACrE,kEAAkE;YAClE,iEAAiE;YACjE,IAAI,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACxC,MAAM,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,mEAAmE;YACnE,sEAAsE;YACtE,wEAAwE;YACxE,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;YAC3C,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;gBACpB,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,oBAAoB,SAAS,IAAI,EAAE;oBAC9E,EAAE;oBACF,SAAS;oBACT,iBAAiB,EAAE,YAAY;iBAChC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,WAAmB,EAAE,IAA6B;QAC3D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,QAAQ,IAAI,KAAK,CAAC;QAEzC,uEAAuE;QACvE,wEAAwE;QACxE,wEAAwE;QACxE,0EAA0E;QAC1E,mDAAmD;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;QACnF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,OAAO,SAAS,CAAC,WAAW,EAAE,iEAAiE,YAAY,EAAE,CAAC,CAAC;YACjH,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,aAAa,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,OAAO,SAAS,CAAC,WAAW,EAAE,oEAAoE,SAAS,EAAE,CAAC,CAAC;YACjH,CAAC;YACD,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;QAEhC,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,YAAY,CAAC,EAAE;YAAE,OAAO,YAAY,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC;QAEtC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,kEAAkE;gBAClE,OAAO,SAAS,CAAC,WAAW,EAAE,kEAAkE,CAAC,CAAC;YACpG,CAAC;YACD,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,+DAA+D;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAEhD,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACjC,8EAA8E;YAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YACzD,IAAI,UAAU,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACrC,OAAO,SAAS,CACd,WAAW,EACX,8CAA8C,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,8EAA8E,EAC1J,SAAS,EACT,EAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAChI,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,wEAAwE;QACxE,sEAAsE;QACtE,kEAAkE;QAClE,qEAAqE;QACrE,sEAAsE;QACtE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC;QAED,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC5C,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,oBAAoB,CAAC,SAAiB;QAClD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YAAE,OAAO;QACxC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAC7D,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC7B,IAAI,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC7D,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,mBAAmB,CAAC;YAClB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,SAAS;YACrB,aAAa,EAAE,YAAY;SAC5B,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,+BAA+B,EACzD,wDAAwD,EACxD,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1E,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,8BAA8B,EACxD,qDAAqD,EACrD,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC;IACxC,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,CAAC;QAClF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW;YAClC,CAAC,CAAC;gBACE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;gBACvB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;gBAC/D,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW;aACrD;YACH,CAAC,CAAC,IAAI,CAAC;QACT,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,YAAY,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI;YACpC,WAAW,EAAE,KAAK,CAAC,cAAc,GAAG,CAAC;YACrC,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;YACzC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,YAAY;YACZ,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI;YAChE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACvC,WAAW;YACX,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;YACnC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE;YAC9B,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACxC,mBAAmB,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK;YAC9C,mBAAmB,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;YAC/C,qBAAqB,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ;YACnD,uBAAuB,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU;YACvD,sBAAsB,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS;SACtD,CAAC;IACJ,CAAC;IAED,8EAA8E;IAE9E;;;;OAIG;IACK,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAClG,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAClC,CAAC;QACD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,aAAa,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAChC,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC;YAC3D,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,iBAAiB;QACvB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;IAEO,GAAG;QACT,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,GAAG,CAAC,IAAI,CAAC,qBAAqB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpG,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,QAA+D;QAC/E,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;IACxC,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,0EAA0E;IAC1E,sEAAsE;IACtE,uDAAuD;IACvD,KAAK,CAAC,QAAQ,CAAC,IAA0B;QACvC,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,YAAsB;QACpC,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IAC5F,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAyC;QACrD,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,WAAW,CAAC,EAAS,EAAE,KAA8B,EAAE,gBAAyB,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC9J,aAAa,CAAC,KAA0C,IAAI,OAAO,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5G,aAAa,CAAC,KAAwC,IAAI,OAAO,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1G,WAAW,CAAC,EAAS,EAAE,SAA2C,EAAE,KAAiB,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACtJ,QAAQ,KAAK,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,OAAO,KAAK,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,SAAS,CAAC,EAAW,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,UAAU,CAAC,EAAW,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,SAAS,CAAC,KAA0C,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACpG,IAAI,CAAC,KAAqC,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACrF,KAAK,CAAC,WAAW,CAAC,EAAS,EAAE,KAAa,EAAE,QAAiB,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7H,WAAW,CAAC,EAAW,EAAE,aAAqB,EAAE,OAA+D,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACtL,KAAK,CAAC,eAAe,CAAC,KAA2C,IAAI,OAAO,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACvH,KAAK,CAAC,YAAY,CAAC,IAA+C,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACrH,KAAK,CAAC,UAAU,CAAC,IAA8C,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACjH,KAAK,CAAC,YAAY,CAAC,GAAW,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAChF,YAAY,CAAC,KAA6C,IAAI,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAE7G,2CAA2C;IAC3C,KAAK,CAAC,eAAe,CAAC,EAAS,IAAI,OAAO,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAEvF,mEAAmE;IACnE,8DAA8D;IAC9D,KAAK,CAAC,cAAc,CAAC,EAAW,EAAE,MAA+B,EAAE,IAAa,EAAE,WAAoB;QACpG,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,EACvC,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CACvE,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,EAAS,EAAE,MAAgC,EAAE,IAAa,EAAE,UAAmB,EAAE,eAAwB;QAC5H,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,EACvC,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,CACvF,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,EAAS,EAAE,IAAqB;QACnD,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,EACvC,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAClD,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,OAA+C;QAC9D,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EACnC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAC7C,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,OAA+C;QAC9D,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EACnC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAC7C,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,OAAqC,IAAI,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEjI,gBAAgB;IAChB,KAAK,CAAC,OAAO,CAAC,EAAS,EAAE,IAAyC,IAAI,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACtH,KAAK,CAAC,IAAI,CAAC,EAAS,EAAE,IAAY,EAAE,EAAW,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACpG,KAAK,CAAC,QAAQ,CAAC,EAAS,EAAE,EAAU,IAAI,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACvF,KAAK,CAAC,KAAK,CAAC,IAA4D,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEtH,oBAAoB;IACpB,UAAU,KAAkB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,WAAW,KAAe,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,WAAW,KAAsB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,cAAc,KAAa,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type Result } from '../errors.js';
2
+ import { type DocId, type FilePath, type ParsedDocument, type ExtractionResult } from '../types.js';
3
+ import type { EngineContext } from './context.js';
4
+ import type { IndexResult } from './types.js';
5
+ export declare function indexAll(ctx: EngineContext, opts?: {
6
+ force?: boolean;
7
+ }): Promise<IndexResult>;
8
+ export declare function indexFile(ctx: EngineContext, absolutePath: FilePath): Promise<Result<ExtractionResult>>;
9
+ export declare function processDocument(ctx: EngineContext, parsed: ParsedDocument): Result<ExtractionResult>;
10
+ export declare function reindex(ctx: EngineContext, opts?: {
11
+ docId?: DocId;
12
+ force?: boolean;
13
+ }): Promise<Result<IndexResult>>;
14
+ //# sourceMappingURL=indexing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexing.d.ts","sourceRoot":"","sources":["../../src/engine/indexing.ts"],"names":[],"mappings":"AASA,OAAO,EAAsB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAIL,KAAK,KAAK,EAEV,KAAK,QAAQ,EACb,KAAK,cAAc,EAGnB,KAAK,gBAAgB,EAGtB,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAuB9C,wBAAsB,QAAQ,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAmFnG;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAK7G;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CA+GpG;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAYzH"}