memkin 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (914) hide show
  1. package/LICENSE +191 -0
  2. package/README.en.md +934 -0
  3. package/README.md +934 -0
  4. package/README.zh-CN.md +825 -0
  5. package/bin/memkin.mjs +41 -0
  6. package/dist/adapters/file.d.ts +19 -0
  7. package/dist/adapters/file.d.ts.map +1 -0
  8. package/dist/adapters/file.js +61 -0
  9. package/dist/adapters/file.js.map +1 -0
  10. package/dist/adapters/gbrain.d.ts +29 -0
  11. package/dist/adapters/gbrain.d.ts.map +1 -0
  12. package/dist/adapters/gbrain.js +622 -0
  13. package/dist/adapters/gbrain.js.map +1 -0
  14. package/dist/adapters/index.d.ts +6 -0
  15. package/dist/adapters/index.d.ts.map +1 -0
  16. package/dist/adapters/index.js +5 -0
  17. package/dist/adapters/index.js.map +1 -0
  18. package/dist/adapters/registry.d.ts +18 -0
  19. package/dist/adapters/registry.d.ts.map +1 -0
  20. package/dist/adapters/registry.js +18 -0
  21. package/dist/adapters/registry.js.map +1 -0
  22. package/dist/adapters/stdout.d.ts +12 -0
  23. package/dist/adapters/stdout.d.ts.map +1 -0
  24. package/dist/adapters/stdout.js +29 -0
  25. package/dist/adapters/stdout.js.map +1 -0
  26. package/dist/adapters/store.d.ts +47 -0
  27. package/dist/adapters/store.d.ts.map +1 -0
  28. package/dist/adapters/store.js +642 -0
  29. package/dist/adapters/store.js.map +1 -0
  30. package/dist/cli-helpers.d.ts +12 -0
  31. package/dist/cli-helpers.d.ts.map +1 -0
  32. package/dist/cli-helpers.js +11 -0
  33. package/dist/cli-helpers.js.map +1 -0
  34. package/dist/cli-stores.d.ts +61 -0
  35. package/dist/cli-stores.d.ts.map +1 -0
  36. package/dist/cli-stores.js +130 -0
  37. package/dist/cli-stores.js.map +1 -0
  38. package/dist/cli.d.ts +2 -0
  39. package/dist/cli.d.ts.map +1 -0
  40. package/dist/cli.js +1579 -0
  41. package/dist/cli.js.map +1 -0
  42. package/dist/collectors/agent/claude-code.d.ts +12 -0
  43. package/dist/collectors/agent/claude-code.d.ts.map +1 -0
  44. package/dist/collectors/agent/claude-code.js +94 -0
  45. package/dist/collectors/agent/claude-code.js.map +1 -0
  46. package/dist/collectors/agent/codex.d.ts +16 -0
  47. package/dist/collectors/agent/codex.d.ts.map +1 -0
  48. package/dist/collectors/agent/codex.js +149 -0
  49. package/dist/collectors/agent/codex.js.map +1 -0
  50. package/dist/collectors/agent/collector.d.ts +20 -0
  51. package/dist/collectors/agent/collector.d.ts.map +1 -0
  52. package/dist/collectors/agent/collector.js +108 -0
  53. package/dist/collectors/agent/collector.js.map +1 -0
  54. package/dist/collectors/agent/hermes.d.ts +13 -0
  55. package/dist/collectors/agent/hermes.d.ts.map +1 -0
  56. package/dist/collectors/agent/hermes.js +90 -0
  57. package/dist/collectors/agent/hermes.js.map +1 -0
  58. package/dist/collectors/agent/index.d.ts +6 -0
  59. package/dist/collectors/agent/index.d.ts.map +1 -0
  60. package/dist/collectors/agent/index.js +5 -0
  61. package/dist/collectors/agent/index.js.map +1 -0
  62. package/dist/collectors/agent/types.d.ts +61 -0
  63. package/dist/collectors/agent/types.d.ts.map +1 -0
  64. package/dist/collectors/agent/types.js +6 -0
  65. package/dist/collectors/agent/types.js.map +1 -0
  66. package/dist/collectors/feishu/auth.d.ts +13 -0
  67. package/dist/collectors/feishu/auth.d.ts.map +1 -0
  68. package/dist/collectors/feishu/auth.js +72 -0
  69. package/dist/collectors/feishu/auth.js.map +1 -0
  70. package/dist/collectors/feishu/chat-name-resolver.d.ts +33 -0
  71. package/dist/collectors/feishu/chat-name-resolver.d.ts.map +1 -0
  72. package/dist/collectors/feishu/chat-name-resolver.js +63 -0
  73. package/dist/collectors/feishu/chat-name-resolver.js.map +1 -0
  74. package/dist/collectors/feishu/collector.d.ts +27 -0
  75. package/dist/collectors/feishu/collector.d.ts.map +1 -0
  76. package/dist/collectors/feishu/collector.js +136 -0
  77. package/dist/collectors/feishu/collector.js.map +1 -0
  78. package/dist/collectors/feishu/cursor-staging.d.ts +11 -0
  79. package/dist/collectors/feishu/cursor-staging.d.ts.map +1 -0
  80. package/dist/collectors/feishu/cursor-staging.js +37 -0
  81. package/dist/collectors/feishu/cursor-staging.js.map +1 -0
  82. package/dist/collectors/feishu/docs/blocks.d.ts +25 -0
  83. package/dist/collectors/feishu/docs/blocks.d.ts.map +1 -0
  84. package/dist/collectors/feishu/docs/blocks.js +34 -0
  85. package/dist/collectors/feishu/docs/blocks.js.map +1 -0
  86. package/dist/collectors/feishu/docs/candidate.d.ts +17 -0
  87. package/dist/collectors/feishu/docs/candidate.d.ts.map +1 -0
  88. package/dist/collectors/feishu/docs/candidate.js +36 -0
  89. package/dist/collectors/feishu/docs/candidate.js.map +1 -0
  90. package/dist/collectors/feishu/docs/config.d.ts +41 -0
  91. package/dist/collectors/feishu/docs/config.d.ts.map +1 -0
  92. package/dist/collectors/feishu/docs/config.js +30 -0
  93. package/dist/collectors/feishu/docs/config.js.map +1 -0
  94. package/dist/collectors/feishu/docs/decision.d.ts +14 -0
  95. package/dist/collectors/feishu/docs/decision.d.ts.map +1 -0
  96. package/dist/collectors/feishu/docs/decision.js +43 -0
  97. package/dist/collectors/feishu/docs/decision.js.map +1 -0
  98. package/dist/collectors/feishu/docs/full-builder.d.ts +17 -0
  99. package/dist/collectors/feishu/docs/full-builder.d.ts.map +1 -0
  100. package/dist/collectors/feishu/docs/full-builder.js +136 -0
  101. package/dist/collectors/feishu/docs/full-builder.js.map +1 -0
  102. package/dist/collectors/feishu/docs/hash.d.ts +8 -0
  103. package/dist/collectors/feishu/docs/hash.d.ts.map +1 -0
  104. package/dist/collectors/feishu/docs/hash.js +15 -0
  105. package/dist/collectors/feishu/docs/hash.js.map +1 -0
  106. package/dist/collectors/feishu/docs/ingest.d.ts +54 -0
  107. package/dist/collectors/feishu/docs/ingest.d.ts.map +1 -0
  108. package/dist/collectors/feishu/docs/ingest.js +120 -0
  109. package/dist/collectors/feishu/docs/ingest.js.map +1 -0
  110. package/dist/collectors/feishu/docs/llm-json.d.ts +13 -0
  111. package/dist/collectors/feishu/docs/llm-json.d.ts.map +1 -0
  112. package/dist/collectors/feishu/docs/llm-json.js +40 -0
  113. package/dist/collectors/feishu/docs/llm-json.js.map +1 -0
  114. package/dist/collectors/feishu/docs/pointer-builder.d.ts +7 -0
  115. package/dist/collectors/feishu/docs/pointer-builder.d.ts.map +1 -0
  116. package/dist/collectors/feishu/docs/pointer-builder.js +11 -0
  117. package/dist/collectors/feishu/docs/pointer-builder.js.map +1 -0
  118. package/dist/collectors/feishu/docs/render.d.ts +8 -0
  119. package/dist/collectors/feishu/docs/render.d.ts.map +1 -0
  120. package/dist/collectors/feishu/docs/render.js +105 -0
  121. package/dist/collectors/feishu/docs/render.js.map +1 -0
  122. package/dist/collectors/feishu/docs/run.d.ts +37 -0
  123. package/dist/collectors/feishu/docs/run.d.ts.map +1 -0
  124. package/dist/collectors/feishu/docs/run.js +143 -0
  125. package/dist/collectors/feishu/docs/run.js.map +1 -0
  126. package/dist/collectors/feishu/docs/status.d.ts +16 -0
  127. package/dist/collectors/feishu/docs/status.d.ts.map +1 -0
  128. package/dist/collectors/feishu/docs/status.js +24 -0
  129. package/dist/collectors/feishu/docs/status.js.map +1 -0
  130. package/dist/collectors/feishu/docs/store-writer.d.ts +32 -0
  131. package/dist/collectors/feishu/docs/store-writer.d.ts.map +1 -0
  132. package/dist/collectors/feishu/docs/store-writer.js +71 -0
  133. package/dist/collectors/feishu/docs/store-writer.js.map +1 -0
  134. package/dist/collectors/feishu/docs/toc.d.ts +3 -0
  135. package/dist/collectors/feishu/docs/toc.d.ts.map +1 -0
  136. package/dist/collectors/feishu/docs/toc.js +19 -0
  137. package/dist/collectors/feishu/docs/toc.js.map +1 -0
  138. package/dist/collectors/feishu/docs/triggers.d.ts +7 -0
  139. package/dist/collectors/feishu/docs/triggers.d.ts.map +1 -0
  140. package/dist/collectors/feishu/docs/triggers.js +31 -0
  141. package/dist/collectors/feishu/docs/triggers.js.map +1 -0
  142. package/dist/collectors/feishu/docs/types.d.ts +109 -0
  143. package/dist/collectors/feishu/docs/types.d.ts.map +1 -0
  144. package/dist/collectors/feishu/docs/types.js +2 -0
  145. package/dist/collectors/feishu/docs/types.js.map +1 -0
  146. package/dist/collectors/feishu/docs/upgrade-queue.d.ts +19 -0
  147. package/dist/collectors/feishu/docs/upgrade-queue.d.ts.map +1 -0
  148. package/dist/collectors/feishu/docs/upgrade-queue.js +36 -0
  149. package/dist/collectors/feishu/docs/upgrade-queue.js.map +1 -0
  150. package/dist/collectors/feishu/docs/url-parser.d.ts +3 -0
  151. package/dist/collectors/feishu/docs/url-parser.d.ts.map +1 -0
  152. package/dist/collectors/feishu/docs/url-parser.js +39 -0
  153. package/dist/collectors/feishu/docs/url-parser.js.map +1 -0
  154. package/dist/collectors/feishu/docs/walkers.d.ts +24 -0
  155. package/dist/collectors/feishu/docs/walkers.d.ts.map +1 -0
  156. package/dist/collectors/feishu/docs/walkers.js +90 -0
  157. package/dist/collectors/feishu/docs/walkers.js.map +1 -0
  158. package/dist/collectors/feishu/docs/wiki-resolver.d.ts +15 -0
  159. package/dist/collectors/feishu/docs/wiki-resolver.d.ts.map +1 -0
  160. package/dist/collectors/feishu/docs/wiki-resolver.js +24 -0
  161. package/dist/collectors/feishu/docs/wiki-resolver.js.map +1 -0
  162. package/dist/collectors/feishu/http-client.d.ts +26 -0
  163. package/dist/collectors/feishu/http-client.d.ts.map +1 -0
  164. package/dist/collectors/feishu/http-client.js +94 -0
  165. package/dist/collectors/feishu/http-client.js.map +1 -0
  166. package/dist/collectors/feishu/index.d.ts +3 -0
  167. package/dist/collectors/feishu/index.d.ts.map +1 -0
  168. package/dist/collectors/feishu/index.js +2 -0
  169. package/dist/collectors/feishu/index.js.map +1 -0
  170. package/dist/collectors/feishu/lark-cli-client.d.ts +28 -0
  171. package/dist/collectors/feishu/lark-cli-client.d.ts.map +1 -0
  172. package/dist/collectors/feishu/lark-cli-client.js +104 -0
  173. package/dist/collectors/feishu/lark-cli-client.js.map +1 -0
  174. package/dist/collectors/feishu/lark-cli-identity-backend.d.ts +28 -0
  175. package/dist/collectors/feishu/lark-cli-identity-backend.d.ts.map +1 -0
  176. package/dist/collectors/feishu/lark-cli-identity-backend.js +110 -0
  177. package/dist/collectors/feishu/lark-cli-identity-backend.js.map +1 -0
  178. package/dist/collectors/feishu/rate-limiter.d.ts +10 -0
  179. package/dist/collectors/feishu/rate-limiter.d.ts.map +1 -0
  180. package/dist/collectors/feishu/rate-limiter.js +33 -0
  181. package/dist/collectors/feishu/rate-limiter.js.map +1 -0
  182. package/dist/collectors/feishu/self-open-id.d.ts +20 -0
  183. package/dist/collectors/feishu/self-open-id.d.ts.map +1 -0
  184. package/dist/collectors/feishu/self-open-id.js +31 -0
  185. package/dist/collectors/feishu/self-open-id.js.map +1 -0
  186. package/dist/collectors/feishu/sources/base.d.ts +9 -0
  187. package/dist/collectors/feishu/sources/base.d.ts.map +1 -0
  188. package/dist/collectors/feishu/sources/base.js +2 -0
  189. package/dist/collectors/feishu/sources/base.js.map +1 -0
  190. package/dist/collectors/feishu/sources/calendar.d.ts +16 -0
  191. package/dist/collectors/feishu/sources/calendar.d.ts.map +1 -0
  192. package/dist/collectors/feishu/sources/calendar.js +98 -0
  193. package/dist/collectors/feishu/sources/calendar.js.map +1 -0
  194. package/dist/collectors/feishu/sources/dm.d.ts +28 -0
  195. package/dist/collectors/feishu/sources/dm.d.ts.map +1 -0
  196. package/dist/collectors/feishu/sources/dm.js +156 -0
  197. package/dist/collectors/feishu/sources/dm.js.map +1 -0
  198. package/dist/collectors/feishu/sources/mail.d.ts +27 -0
  199. package/dist/collectors/feishu/sources/mail.d.ts.map +1 -0
  200. package/dist/collectors/feishu/sources/mail.js +149 -0
  201. package/dist/collectors/feishu/sources/mail.js.map +1 -0
  202. package/dist/collectors/feishu/sources/message-search.d.ts +37 -0
  203. package/dist/collectors/feishu/sources/message-search.d.ts.map +1 -0
  204. package/dist/collectors/feishu/sources/message-search.js +140 -0
  205. package/dist/collectors/feishu/sources/message-search.js.map +1 -0
  206. package/dist/collectors/feishu/sources/messages.d.ts +28 -0
  207. package/dist/collectors/feishu/sources/messages.d.ts.map +1 -0
  208. package/dist/collectors/feishu/sources/messages.js +175 -0
  209. package/dist/collectors/feishu/sources/messages.js.map +1 -0
  210. package/dist/collectors/feishu/sources/tasks.d.ts +15 -0
  211. package/dist/collectors/feishu/sources/tasks.d.ts.map +1 -0
  212. package/dist/collectors/feishu/sources/tasks.js +74 -0
  213. package/dist/collectors/feishu/sources/tasks.js.map +1 -0
  214. package/dist/collectors/feishu/types.d.ts +258 -0
  215. package/dist/collectors/feishu/types.d.ts.map +1 -0
  216. package/dist/collectors/feishu/types.js +17 -0
  217. package/dist/collectors/feishu/types.js.map +1 -0
  218. package/dist/collectors/index.d.ts +10 -0
  219. package/dist/collectors/index.d.ts.map +1 -0
  220. package/dist/collectors/index.js +18 -0
  221. package/dist/collectors/index.js.map +1 -0
  222. package/dist/config-center/connection-checks.d.ts +28 -0
  223. package/dist/config-center/connection-checks.d.ts.map +1 -0
  224. package/dist/config-center/connection-checks.js +114 -0
  225. package/dist/config-center/connection-checks.js.map +1 -0
  226. package/dist/config-center/document.d.ts +21 -0
  227. package/dist/config-center/document.d.ts.map +1 -0
  228. package/dist/config-center/document.js +93 -0
  229. package/dist/config-center/document.js.map +1 -0
  230. package/dist/config-center/index.d.ts +9 -0
  231. package/dist/config-center/index.d.ts.map +1 -0
  232. package/dist/config-center/index.js +29 -0
  233. package/dist/config-center/index.js.map +1 -0
  234. package/dist/config-center/recommendations.d.ts +16 -0
  235. package/dist/config-center/recommendations.d.ts.map +1 -0
  236. package/dist/config-center/recommendations.js +50 -0
  237. package/dist/config-center/recommendations.js.map +1 -0
  238. package/dist/config-center/reducer.d.ts +57 -0
  239. package/dist/config-center/reducer.d.ts.map +1 -0
  240. package/dist/config-center/reducer.js +192 -0
  241. package/dist/config-center/reducer.js.map +1 -0
  242. package/dist/config-center/schema.d.ts +31 -0
  243. package/dist/config-center/schema.d.ts.map +1 -0
  244. package/dist/config-center/schema.js +442 -0
  245. package/dist/config-center/schema.js.map +1 -0
  246. package/dist/config-center/secrets.d.ts +9 -0
  247. package/dist/config-center/secrets.d.ts.map +1 -0
  248. package/dist/config-center/secrets.js +51 -0
  249. package/dist/config-center/secrets.js.map +1 -0
  250. package/dist/config-center/source-dirs.d.ts +16 -0
  251. package/dist/config-center/source-dirs.d.ts.map +1 -0
  252. package/dist/config-center/source-dirs.js +81 -0
  253. package/dist/config-center/source-dirs.js.map +1 -0
  254. package/dist/config-center/tui/app.d.ts +22 -0
  255. package/dist/config-center/tui/app.d.ts.map +1 -0
  256. package/dist/config-center/tui/app.js +142 -0
  257. package/dist/config-center/tui/app.js.map +1 -0
  258. package/dist/config-center/tui/render.d.ts +20 -0
  259. package/dist/config-center/tui/render.d.ts.map +1 -0
  260. package/dist/config-center/tui/render.js +166 -0
  261. package/dist/config-center/tui/render.js.map +1 -0
  262. package/dist/config-center/validation.d.ts +9 -0
  263. package/dist/config-center/validation.d.ts.map +1 -0
  264. package/dist/config-center/validation.js +59 -0
  265. package/dist/config-center/validation.js.map +1 -0
  266. package/dist/consolidator/consolidator.d.ts +43 -0
  267. package/dist/consolidator/consolidator.d.ts.map +1 -0
  268. package/dist/consolidator/consolidator.js +67 -0
  269. package/dist/consolidator/consolidator.js.map +1 -0
  270. package/dist/consolidator/dead-link.d.ts +7 -0
  271. package/dist/consolidator/dead-link.d.ts.map +1 -0
  272. package/dist/consolidator/dead-link.js +57 -0
  273. package/dist/consolidator/dead-link.js.map +1 -0
  274. package/dist/consolidator/hot-warm.d.ts +9 -0
  275. package/dist/consolidator/hot-warm.d.ts.map +1 -0
  276. package/dist/consolidator/hot-warm.js +88 -0
  277. package/dist/consolidator/hot-warm.js.map +1 -0
  278. package/dist/consolidator/infer-preferences.d.ts +14 -0
  279. package/dist/consolidator/infer-preferences.d.ts.map +1 -0
  280. package/dist/consolidator/infer-preferences.js +73 -0
  281. package/dist/consolidator/infer-preferences.js.map +1 -0
  282. package/dist/consolidator/rules.d.ts +5 -0
  283. package/dist/consolidator/rules.d.ts.map +1 -0
  284. package/dist/consolidator/rules.js +53 -0
  285. package/dist/consolidator/rules.js.map +1 -0
  286. package/dist/consolidator/warm-cold.d.ts +13 -0
  287. package/dist/consolidator/warm-cold.d.ts.map +1 -0
  288. package/dist/consolidator/warm-cold.js +91 -0
  289. package/dist/consolidator/warm-cold.js.map +1 -0
  290. package/dist/core/block-builder.d.ts +15 -0
  291. package/dist/core/block-builder.d.ts.map +1 -0
  292. package/dist/core/block-builder.js +185 -0
  293. package/dist/core/block-builder.js.map +1 -0
  294. package/dist/core/canonicalize.d.ts +3 -0
  295. package/dist/core/canonicalize.d.ts.map +1 -0
  296. package/dist/core/canonicalize.js +141 -0
  297. package/dist/core/canonicalize.js.map +1 -0
  298. package/dist/core/concurrency.d.ts +2 -0
  299. package/dist/core/concurrency.d.ts.map +1 -0
  300. package/dist/core/concurrency.js +14 -0
  301. package/dist/core/concurrency.js.map +1 -0
  302. package/dist/core/config.d.ts +257 -0
  303. package/dist/core/config.d.ts.map +1 -0
  304. package/dist/core/config.js +247 -0
  305. package/dist/core/config.js.map +1 -0
  306. package/dist/core/cursors.d.ts +36 -0
  307. package/dist/core/cursors.d.ts.map +1 -0
  308. package/dist/core/cursors.js +90 -0
  309. package/dist/core/cursors.js.map +1 -0
  310. package/dist/core/dedup.d.ts +45 -0
  311. package/dist/core/dedup.d.ts.map +1 -0
  312. package/dist/core/dedup.js +111 -0
  313. package/dist/core/dedup.js.map +1 -0
  314. package/dist/core/entity-extract.d.ts +3 -0
  315. package/dist/core/entity-extract.d.ts.map +1 -0
  316. package/dist/core/entity-extract.js +54 -0
  317. package/dist/core/entity-extract.js.map +1 -0
  318. package/dist/core/env-validation.d.ts +9 -0
  319. package/dist/core/env-validation.d.ts.map +1 -0
  320. package/dist/core/env-validation.js +94 -0
  321. package/dist/core/env-validation.js.map +1 -0
  322. package/dist/core/helpers.d.ts +3 -0
  323. package/dist/core/helpers.d.ts.map +1 -0
  324. package/dist/core/helpers.js +10 -0
  325. package/dist/core/helpers.js.map +1 -0
  326. package/dist/core/identity-resolver.d.ts +42 -0
  327. package/dist/core/identity-resolver.d.ts.map +1 -0
  328. package/dist/core/identity-resolver.js +207 -0
  329. package/dist/core/identity-resolver.js.map +1 -0
  330. package/dist/core/person-identity.d.ts +140 -0
  331. package/dist/core/person-identity.d.ts.map +1 -0
  332. package/dist/core/person-identity.js +428 -0
  333. package/dist/core/person-identity.js.map +1 -0
  334. package/dist/core/person-slug.d.ts +21 -0
  335. package/dist/core/person-slug.d.ts.map +1 -0
  336. package/dist/core/person-slug.js +93 -0
  337. package/dist/core/person-slug.js.map +1 -0
  338. package/dist/core/pipeline-factory.d.ts +13 -0
  339. package/dist/core/pipeline-factory.d.ts.map +1 -0
  340. package/dist/core/pipeline-factory.js +37 -0
  341. package/dist/core/pipeline-factory.js.map +1 -0
  342. package/dist/core/pipeline.d.ts +77 -0
  343. package/dist/core/pipeline.d.ts.map +1 -0
  344. package/dist/core/pipeline.js +332 -0
  345. package/dist/core/pipeline.js.map +1 -0
  346. package/dist/core/resource-loader.d.ts +2 -0
  347. package/dist/core/resource-loader.d.ts.map +1 -0
  348. package/dist/core/resource-loader.js +12 -0
  349. package/dist/core/resource-loader.js.map +1 -0
  350. package/dist/core/schemas.d.ts +5142 -0
  351. package/dist/core/schemas.d.ts.map +1 -0
  352. package/dist/core/schemas.js +256 -0
  353. package/dist/core/schemas.js.map +1 -0
  354. package/dist/core/signal-scoring.d.ts +3 -0
  355. package/dist/core/signal-scoring.d.ts.map +1 -0
  356. package/dist/core/signal-scoring.js +128 -0
  357. package/dist/core/signal-scoring.js.map +1 -0
  358. package/dist/core/source-ref.d.ts +4 -0
  359. package/dist/core/source-ref.d.ts.map +1 -0
  360. package/dist/core/source-ref.js +24 -0
  361. package/dist/core/source-ref.js.map +1 -0
  362. package/dist/core/state.d.ts +22 -0
  363. package/dist/core/state.d.ts.map +1 -0
  364. package/dist/core/state.js +33 -0
  365. package/dist/core/state.js.map +1 -0
  366. package/dist/core/types.d.ts +266 -0
  367. package/dist/core/types.d.ts.map +1 -0
  368. package/dist/core/types.js +6 -0
  369. package/dist/core/types.js.map +1 -0
  370. package/dist/daemon/alerts.d.ts +12 -0
  371. package/dist/daemon/alerts.d.ts.map +1 -0
  372. package/dist/daemon/alerts.js +34 -0
  373. package/dist/daemon/alerts.js.map +1 -0
  374. package/dist/daemon/autostart/argv.d.ts +21 -0
  375. package/dist/daemon/autostart/argv.d.ts.map +1 -0
  376. package/dist/daemon/autostart/argv.js +37 -0
  377. package/dist/daemon/autostart/argv.js.map +1 -0
  378. package/dist/daemon/autostart/daemon-state.d.ts +19 -0
  379. package/dist/daemon/autostart/daemon-state.d.ts.map +1 -0
  380. package/dist/daemon/autostart/daemon-state.js +34 -0
  381. package/dist/daemon/autostart/daemon-state.js.map +1 -0
  382. package/dist/daemon/autostart/index.d.ts +40 -0
  383. package/dist/daemon/autostart/index.d.ts.map +1 -0
  384. package/dist/daemon/autostart/index.js +146 -0
  385. package/dist/daemon/autostart/index.js.map +1 -0
  386. package/dist/daemon/autostart/launchd.d.ts +13 -0
  387. package/dist/daemon/autostart/launchd.d.ts.map +1 -0
  388. package/dist/daemon/autostart/launchd.js +51 -0
  389. package/dist/daemon/autostart/launchd.js.map +1 -0
  390. package/dist/daemon/autostart/runner.d.ts +14 -0
  391. package/dist/daemon/autostart/runner.d.ts.map +1 -0
  392. package/dist/daemon/autostart/runner.js +30 -0
  393. package/dist/daemon/autostart/runner.js.map +1 -0
  394. package/dist/daemon/autostart/systemd.d.ts +11 -0
  395. package/dist/daemon/autostart/systemd.d.ts.map +1 -0
  396. package/dist/daemon/autostart/systemd.js +40 -0
  397. package/dist/daemon/autostart/systemd.js.map +1 -0
  398. package/dist/daemon/index.d.ts +6 -0
  399. package/dist/daemon/index.d.ts.map +1 -0
  400. package/dist/daemon/index.js +6 -0
  401. package/dist/daemon/index.js.map +1 -0
  402. package/dist/daemon/logger.d.ts +8 -0
  403. package/dist/daemon/logger.d.ts.map +1 -0
  404. package/dist/daemon/logger.js +35 -0
  405. package/dist/daemon/logger.js.map +1 -0
  406. package/dist/daemon/reload-manager.d.ts +41 -0
  407. package/dist/daemon/reload-manager.d.ts.map +1 -0
  408. package/dist/daemon/reload-manager.js +89 -0
  409. package/dist/daemon/reload-manager.js.map +1 -0
  410. package/dist/daemon/run-history.d.ts +29 -0
  411. package/dist/daemon/run-history.d.ts.map +1 -0
  412. package/dist/daemon/run-history.js +54 -0
  413. package/dist/daemon/run-history.js.map +1 -0
  414. package/dist/daemon/scheduler.d.ts +45 -0
  415. package/dist/daemon/scheduler.d.ts.map +1 -0
  416. package/dist/daemon/scheduler.js +217 -0
  417. package/dist/daemon/scheduler.js.map +1 -0
  418. package/dist/daemon/serve-runtime.d.ts +31 -0
  419. package/dist/daemon/serve-runtime.d.ts.map +1 -0
  420. package/dist/daemon/serve-runtime.js +230 -0
  421. package/dist/daemon/serve-runtime.js.map +1 -0
  422. package/dist/daemon/source-schedule.d.ts +25 -0
  423. package/dist/daemon/source-schedule.d.ts.map +1 -0
  424. package/dist/daemon/source-schedule.js +87 -0
  425. package/dist/daemon/source-schedule.js.map +1 -0
  426. package/dist/embedded-assets.generated.d.ts +4 -0
  427. package/dist/embedded-assets.generated.d.ts.map +1 -0
  428. package/dist/embedded-assets.generated.js +12 -0
  429. package/dist/embedded-assets.generated.js.map +1 -0
  430. package/dist/extractors/noise-filter.d.ts +30 -0
  431. package/dist/extractors/noise-filter.d.ts.map +1 -0
  432. package/dist/extractors/noise-filter.js +185 -0
  433. package/dist/extractors/noise-filter.js.map +1 -0
  434. package/dist/extractors/playbook-extractor.d.ts +35 -0
  435. package/dist/extractors/playbook-extractor.d.ts.map +1 -0
  436. package/dist/extractors/playbook-extractor.js +98 -0
  437. package/dist/extractors/playbook-extractor.js.map +1 -0
  438. package/dist/extractors/providers/anthropic.d.ts +13 -0
  439. package/dist/extractors/providers/anthropic.d.ts.map +1 -0
  440. package/dist/extractors/providers/anthropic.js +67 -0
  441. package/dist/extractors/providers/anthropic.js.map +1 -0
  442. package/dist/extractors/providers/index.d.ts +12 -0
  443. package/dist/extractors/providers/index.d.ts.map +1 -0
  444. package/dist/extractors/providers/index.js +41 -0
  445. package/dist/extractors/providers/index.js.map +1 -0
  446. package/dist/extractors/providers/mock.d.ts +14 -0
  447. package/dist/extractors/providers/mock.d.ts.map +1 -0
  448. package/dist/extractors/providers/mock.js +37 -0
  449. package/dist/extractors/providers/mock.js.map +1 -0
  450. package/dist/extractors/providers/openai.d.ts +15 -0
  451. package/dist/extractors/providers/openai.d.ts.map +1 -0
  452. package/dist/extractors/providers/openai.js +109 -0
  453. package/dist/extractors/providers/openai.js.map +1 -0
  454. package/dist/extractors/providers/types.d.ts +27 -0
  455. package/dist/extractors/providers/types.d.ts.map +1 -0
  456. package/dist/extractors/providers/types.js +6 -0
  457. package/dist/extractors/providers/types.js.map +1 -0
  458. package/dist/extractors/signal-extractor.d.ts +30 -0
  459. package/dist/extractors/signal-extractor.d.ts.map +1 -0
  460. package/dist/extractors/signal-extractor.js +371 -0
  461. package/dist/extractors/signal-extractor.js.map +1 -0
  462. package/dist/formatters/index.d.ts +3 -0
  463. package/dist/formatters/index.d.ts.map +1 -0
  464. package/dist/formatters/index.js +3 -0
  465. package/dist/formatters/index.js.map +1 -0
  466. package/dist/formatters/json.d.ts +6 -0
  467. package/dist/formatters/json.d.ts.map +1 -0
  468. package/dist/formatters/json.js +16 -0
  469. package/dist/formatters/json.js.map +1 -0
  470. package/dist/formatters/markdown.d.ts +6 -0
  471. package/dist/formatters/markdown.d.ts.map +1 -0
  472. package/dist/formatters/markdown.js +198 -0
  473. package/dist/formatters/markdown.js.map +1 -0
  474. package/dist/hooks/handlers.d.ts +21 -0
  475. package/dist/hooks/handlers.d.ts.map +1 -0
  476. package/dist/hooks/handlers.js +22 -0
  477. package/dist/hooks/handlers.js.map +1 -0
  478. package/dist/hooks/inject.d.ts +7 -0
  479. package/dist/hooks/inject.d.ts.map +1 -0
  480. package/dist/hooks/inject.js +18 -0
  481. package/dist/hooks/inject.js.map +1 -0
  482. package/dist/hooks/install.d.ts +14 -0
  483. package/dist/hooks/install.d.ts.map +1 -0
  484. package/dist/hooks/install.js +34 -0
  485. package/dist/hooks/install.js.map +1 -0
  486. package/dist/hooks/output.d.ts +19 -0
  487. package/dist/hooks/output.d.ts.map +1 -0
  488. package/dist/hooks/output.js +13 -0
  489. package/dist/hooks/output.js.map +1 -0
  490. package/dist/hooks/recall-client.d.ts +25 -0
  491. package/dist/hooks/recall-client.d.ts.map +1 -0
  492. package/dist/hooks/recall-client.js +56 -0
  493. package/dist/hooks/recall-client.js.map +1 -0
  494. package/dist/hooks/run-event.d.ts +13 -0
  495. package/dist/hooks/run-event.d.ts.map +1 -0
  496. package/dist/hooks/run-event.js +20 -0
  497. package/dist/hooks/run-event.js.map +1 -0
  498. package/dist/hooks/settings-edit.d.ts +10 -0
  499. package/dist/hooks/settings-edit.d.ts.map +1 -0
  500. package/dist/hooks/settings-edit.js +44 -0
  501. package/dist/hooks/settings-edit.js.map +1 -0
  502. package/dist/hooks/writeback.d.ts +12 -0
  503. package/dist/hooks/writeback.d.ts.map +1 -0
  504. package/dist/hooks/writeback.js +48 -0
  505. package/dist/hooks/writeback.js.map +1 -0
  506. package/dist/install/clients/claude-code.d.ts +3 -0
  507. package/dist/install/clients/claude-code.d.ts.map +1 -0
  508. package/dist/install/clients/claude-code.js +31 -0
  509. package/dist/install/clients/claude-code.js.map +1 -0
  510. package/dist/install/clients/claude-desktop.d.ts +3 -0
  511. package/dist/install/clients/claude-desktop.d.ts.map +1 -0
  512. package/dist/install/clients/claude-desktop.js +33 -0
  513. package/dist/install/clients/claude-desktop.js.map +1 -0
  514. package/dist/install/clients/codex.d.ts +3 -0
  515. package/dist/install/clients/codex.d.ts.map +1 -0
  516. package/dist/install/clients/codex.js +33 -0
  517. package/dist/install/clients/codex.js.map +1 -0
  518. package/dist/install/clients/cursor.d.ts +3 -0
  519. package/dist/install/clients/cursor.d.ts.map +1 -0
  520. package/dist/install/clients/cursor.js +37 -0
  521. package/dist/install/clients/cursor.js.map +1 -0
  522. package/dist/install/clients/hermes.d.ts +3 -0
  523. package/dist/install/clients/hermes.d.ts.map +1 -0
  524. package/dist/install/clients/hermes.js +37 -0
  525. package/dist/install/clients/hermes.js.map +1 -0
  526. package/dist/install/clients/index.d.ts +4 -0
  527. package/dist/install/clients/index.d.ts.map +1 -0
  528. package/dist/install/clients/index.js +18 -0
  529. package/dist/install/clients/index.js.map +1 -0
  530. package/dist/install/clients/windsurf.d.ts +3 -0
  531. package/dist/install/clients/windsurf.d.ts.map +1 -0
  532. package/dist/install/clients/windsurf.js +34 -0
  533. package/dist/install/clients/windsurf.js.map +1 -0
  534. package/dist/install/command.d.ts +14 -0
  535. package/dist/install/command.d.ts.map +1 -0
  536. package/dist/install/command.js +34 -0
  537. package/dist/install/command.js.map +1 -0
  538. package/dist/install/directive.d.ts +7 -0
  539. package/dist/install/directive.d.ts.map +1 -0
  540. package/dist/install/directive.js +31 -0
  541. package/dist/install/directive.js.map +1 -0
  542. package/dist/install/index.d.ts +28 -0
  543. package/dist/install/index.d.ts.map +1 -0
  544. package/dist/install/index.js +122 -0
  545. package/dist/install/index.js.map +1 -0
  546. package/dist/install/json-config.d.ts +8 -0
  547. package/dist/install/json-config.d.ts.map +1 -0
  548. package/dist/install/json-config.js +44 -0
  549. package/dist/install/json-config.js.map +1 -0
  550. package/dist/install/marked-block.d.ts +11 -0
  551. package/dist/install/marked-block.d.ts.map +1 -0
  552. package/dist/install/marked-block.js +34 -0
  553. package/dist/install/marked-block.js.map +1 -0
  554. package/dist/install/mcp-entry.d.ts +11 -0
  555. package/dist/install/mcp-entry.d.ts.map +1 -0
  556. package/dist/install/mcp-entry.js +7 -0
  557. package/dist/install/mcp-entry.js.map +1 -0
  558. package/dist/install/skill.d.ts +4 -0
  559. package/dist/install/skill.d.ts.map +1 -0
  560. package/dist/install/skill.js +61 -0
  561. package/dist/install/skill.js.map +1 -0
  562. package/dist/install/toml-config.d.ts +4 -0
  563. package/dist/install/toml-config.d.ts.map +1 -0
  564. package/dist/install/toml-config.js +54 -0
  565. package/dist/install/toml-config.js.map +1 -0
  566. package/dist/install/types.d.ts +40 -0
  567. package/dist/install/types.d.ts.map +1 -0
  568. package/dist/install/types.js +10 -0
  569. package/dist/install/types.js.map +1 -0
  570. package/dist/install/yaml-config.d.ts +4 -0
  571. package/dist/install/yaml-config.d.ts.map +1 -0
  572. package/dist/install/yaml-config.js +19 -0
  573. package/dist/install/yaml-config.js.map +1 -0
  574. package/dist/lifecycle/down.d.ts +19 -0
  575. package/dist/lifecycle/down.d.ts.map +1 -0
  576. package/dist/lifecycle/down.js +24 -0
  577. package/dist/lifecycle/down.js.map +1 -0
  578. package/dist/lifecycle/health-poll.d.ts +19 -0
  579. package/dist/lifecycle/health-poll.d.ts.map +1 -0
  580. package/dist/lifecycle/health-poll.js +39 -0
  581. package/dist/lifecycle/health-poll.js.map +1 -0
  582. package/dist/lifecycle/install-state.d.ts +34 -0
  583. package/dist/lifecycle/install-state.d.ts.map +1 -0
  584. package/dist/lifecycle/install-state.js +70 -0
  585. package/dist/lifecycle/install-state.js.map +1 -0
  586. package/dist/lifecycle/legacy-migration.d.ts +58 -0
  587. package/dist/lifecycle/legacy-migration.d.ts.map +1 -0
  588. package/dist/lifecycle/legacy-migration.js +212 -0
  589. package/dist/lifecycle/legacy-migration.js.map +1 -0
  590. package/dist/lifecycle/lifecycle-lock.d.ts +20 -0
  591. package/dist/lifecycle/lifecycle-lock.d.ts.map +1 -0
  592. package/dist/lifecycle/lifecycle-lock.js +98 -0
  593. package/dist/lifecycle/lifecycle-lock.js.map +1 -0
  594. package/dist/lifecycle/run-up.d.ts +38 -0
  595. package/dist/lifecycle/run-up.d.ts.map +1 -0
  596. package/dist/lifecycle/run-up.js +307 -0
  597. package/dist/lifecycle/run-up.js.map +1 -0
  598. package/dist/lifecycle/status.d.ts +38 -0
  599. package/dist/lifecycle/status.d.ts.map +1 -0
  600. package/dist/lifecycle/status.js +41 -0
  601. package/dist/lifecycle/status.js.map +1 -0
  602. package/dist/lifecycle/up.d.ts +35 -0
  603. package/dist/lifecycle/up.d.ts.map +1 -0
  604. package/dist/lifecycle/up.js +45 -0
  605. package/dist/lifecycle/up.js.map +1 -0
  606. package/dist/processors/privacy.d.ts +101 -0
  607. package/dist/processors/privacy.d.ts.map +1 -0
  608. package/dist/processors/privacy.js +273 -0
  609. package/dist/processors/privacy.js.map +1 -0
  610. package/dist/profile/accumulate.d.ts +28 -0
  611. package/dist/profile/accumulate.d.ts.map +1 -0
  612. package/dist/profile/accumulate.js +48 -0
  613. package/dist/profile/accumulate.js.map +1 -0
  614. package/dist/profile/behavior.d.ts +32 -0
  615. package/dist/profile/behavior.d.ts.map +1 -0
  616. package/dist/profile/behavior.js +122 -0
  617. package/dist/profile/behavior.js.map +1 -0
  618. package/dist/profile/four-color.d.ts +12 -0
  619. package/dist/profile/four-color.d.ts.map +1 -0
  620. package/dist/profile/four-color.js +39 -0
  621. package/dist/profile/four-color.js.map +1 -0
  622. package/dist/profile/profile-synth.d.ts +27 -0
  623. package/dist/profile/profile-synth.d.ts.map +1 -0
  624. package/dist/profile/profile-synth.js +174 -0
  625. package/dist/profile/profile-synth.js.map +1 -0
  626. package/dist/profile/types.d.ts +84 -0
  627. package/dist/profile/types.d.ts.map +1 -0
  628. package/dist/profile/types.js +11 -0
  629. package/dist/profile/types.js.map +1 -0
  630. package/dist/server/api.d.ts +49 -0
  631. package/dist/server/api.d.ts.map +1 -0
  632. package/dist/server/api.js +502 -0
  633. package/dist/server/api.js.map +1 -0
  634. package/dist/server/backfill-job.d.ts +36 -0
  635. package/dist/server/backfill-job.d.ts.map +1 -0
  636. package/dist/server/backfill-job.js +88 -0
  637. package/dist/server/backfill-job.js.map +1 -0
  638. package/dist/server/backfill-routes.d.ts +7 -0
  639. package/dist/server/backfill-routes.d.ts.map +1 -0
  640. package/dist/server/backfill-routes.js +146 -0
  641. package/dist/server/backfill-routes.js.map +1 -0
  642. package/dist/server/chat-name-refresh-job.d.ts +33 -0
  643. package/dist/server/chat-name-refresh-job.d.ts.map +1 -0
  644. package/dist/server/chat-name-refresh-job.js +120 -0
  645. package/dist/server/chat-name-refresh-job.js.map +1 -0
  646. package/dist/server/chat-name-routes.d.ts +13 -0
  647. package/dist/server/chat-name-routes.d.ts.map +1 -0
  648. package/dist/server/chat-name-routes.js +81 -0
  649. package/dist/server/chat-name-routes.js.map +1 -0
  650. package/dist/server/config-routes.d.ts +10 -0
  651. package/dist/server/config-routes.d.ts.map +1 -0
  652. package/dist/server/config-routes.js +122 -0
  653. package/dist/server/config-routes.js.map +1 -0
  654. package/dist/server/context.d.ts +13 -0
  655. package/dist/server/context.d.ts.map +1 -0
  656. package/dist/server/context.js +47 -0
  657. package/dist/server/context.js.map +1 -0
  658. package/dist/server/entity.d.ts +25 -0
  659. package/dist/server/entity.d.ts.map +1 -0
  660. package/dist/server/entity.js +34 -0
  661. package/dist/server/entity.js.map +1 -0
  662. package/dist/server/event-bus.d.ts +35 -0
  663. package/dist/server/event-bus.d.ts.map +1 -0
  664. package/dist/server/event-bus.js +4 -0
  665. package/dist/server/event-bus.js.map +1 -0
  666. package/dist/server/mcp-http-runtime.d.ts +28 -0
  667. package/dist/server/mcp-http-runtime.d.ts.map +1 -0
  668. package/dist/server/mcp-http-runtime.js +24 -0
  669. package/dist/server/mcp-http-runtime.js.map +1 -0
  670. package/dist/server/mcp-http.d.ts +41 -0
  671. package/dist/server/mcp-http.d.ts.map +1 -0
  672. package/dist/server/mcp-http.js +139 -0
  673. package/dist/server/mcp-http.js.map +1 -0
  674. package/dist/server/mcp.d.ts +292 -0
  675. package/dist/server/mcp.d.ts.map +1 -0
  676. package/dist/server/mcp.js +1146 -0
  677. package/dist/server/mcp.js.map +1 -0
  678. package/dist/server/open-browser.d.ts +3 -0
  679. package/dist/server/open-browser.d.ts.map +1 -0
  680. package/dist/server/open-browser.js +12 -0
  681. package/dist/server/open-browser.js.map +1 -0
  682. package/dist/server/runtime.d.ts +13 -0
  683. package/dist/server/runtime.d.ts.map +1 -0
  684. package/dist/server/runtime.js +27 -0
  685. package/dist/server/runtime.js.map +1 -0
  686. package/dist/server/server-security.d.ts +51 -0
  687. package/dist/server/server-security.d.ts.map +1 -0
  688. package/dist/server/server-security.js +76 -0
  689. package/dist/server/server-security.js.map +1 -0
  690. package/dist/server/setup-server.d.ts +7 -0
  691. package/dist/server/setup-server.d.ts.map +1 -0
  692. package/dist/server/setup-server.js +49 -0
  693. package/dist/server/setup-server.js.map +1 -0
  694. package/dist/setup/assess-hardware.d.ts +34 -0
  695. package/dist/setup/assess-hardware.d.ts.map +1 -0
  696. package/dist/setup/assess-hardware.js +179 -0
  697. package/dist/setup/assess-hardware.js.map +1 -0
  698. package/dist/setup/connection-tests.d.ts +17 -0
  699. package/dist/setup/connection-tests.d.ts.map +1 -0
  700. package/dist/setup/connection-tests.js +69 -0
  701. package/dist/setup/connection-tests.js.map +1 -0
  702. package/dist/setup/detect-api-keys.d.ts +13 -0
  703. package/dist/setup/detect-api-keys.d.ts.map +1 -0
  704. package/dist/setup/detect-api-keys.js +41 -0
  705. package/dist/setup/detect-api-keys.js.map +1 -0
  706. package/dist/setup/detect-runtime.d.ts +14 -0
  707. package/dist/setup/detect-runtime.d.ts.map +1 -0
  708. package/dist/setup/detect-runtime.js +43 -0
  709. package/dist/setup/detect-runtime.js.map +1 -0
  710. package/dist/setup/detect-sources.d.ts +14 -0
  711. package/dist/setup/detect-sources.d.ts.map +1 -0
  712. package/dist/setup/detect-sources.js +75 -0
  713. package/dist/setup/detect-sources.js.map +1 -0
  714. package/dist/setup/doctor.d.ts +48 -0
  715. package/dist/setup/doctor.d.ts.map +1 -0
  716. package/dist/setup/doctor.js +157 -0
  717. package/dist/setup/doctor.js.map +1 -0
  718. package/dist/setup/generate-config.d.ts +13 -0
  719. package/dist/setup/generate-config.d.ts.map +1 -0
  720. package/dist/setup/generate-config.js +163 -0
  721. package/dist/setup/generate-config.js.map +1 -0
  722. package/dist/setup/index.d.ts +9 -0
  723. package/dist/setup/index.d.ts.map +1 -0
  724. package/dist/setup/index.js +9 -0
  725. package/dist/setup/index.js.map +1 -0
  726. package/dist/setup/init-wizard.d.ts +20 -0
  727. package/dist/setup/init-wizard.d.ts.map +1 -0
  728. package/dist/setup/init-wizard.js +531 -0
  729. package/dist/setup/init-wizard.js.map +1 -0
  730. package/dist/setup/terminal.d.ts +28 -0
  731. package/dist/setup/terminal.d.ts.map +1 -0
  732. package/dist/setup/terminal.js +258 -0
  733. package/dist/setup/terminal.js.map +1 -0
  734. package/dist/setup/validate-config.d.ts +30 -0
  735. package/dist/setup/validate-config.d.ts.map +1 -0
  736. package/dist/setup/validate-config.js +45 -0
  737. package/dist/setup/validate-config.js.map +1 -0
  738. package/dist/store/chunks.d.ts +25 -0
  739. package/dist/store/chunks.d.ts.map +1 -0
  740. package/dist/store/chunks.js +78 -0
  741. package/dist/store/chunks.js.map +1 -0
  742. package/dist/store/data-dir-lock.d.ts +15 -0
  743. package/dist/store/data-dir-lock.d.ts.map +1 -0
  744. package/dist/store/data-dir-lock.js +96 -0
  745. package/dist/store/data-dir-lock.js.map +1 -0
  746. package/dist/store/database.d.ts +31 -0
  747. package/dist/store/database.d.ts.map +1 -0
  748. package/dist/store/database.js +113 -0
  749. package/dist/store/database.js.map +1 -0
  750. package/dist/store/embedding.d.ts +23 -0
  751. package/dist/store/embedding.d.ts.map +1 -0
  752. package/dist/store/embedding.js +62 -0
  753. package/dist/store/embedding.js.map +1 -0
  754. package/dist/store/engine-factory.d.ts +4 -0
  755. package/dist/store/engine-factory.d.ts.map +1 -0
  756. package/dist/store/engine-factory.js +18 -0
  757. package/dist/store/engine-factory.js.map +1 -0
  758. package/dist/store/graph.d.ts +75 -0
  759. package/dist/store/graph.d.ts.map +1 -0
  760. package/dist/store/graph.js +276 -0
  761. package/dist/store/graph.js.map +1 -0
  762. package/dist/store/managed/managed-engine.d.ts +35 -0
  763. package/dist/store/managed/managed-engine.d.ts.map +1 -0
  764. package/dist/store/managed/managed-engine.js +40 -0
  765. package/dist/store/managed/managed-engine.js.map +1 -0
  766. package/dist/store/managed/managed-lock.d.ts +2 -0
  767. package/dist/store/managed/managed-lock.d.ts.map +1 -0
  768. package/dist/store/managed/managed-lock.js +68 -0
  769. package/dist/store/managed/managed-lock.js.map +1 -0
  770. package/dist/store/managed/new-install.d.ts +12 -0
  771. package/dist/store/managed/new-install.d.ts.map +1 -0
  772. package/dist/store/managed/new-install.js +23 -0
  773. package/dist/store/managed/new-install.js.map +1 -0
  774. package/dist/store/managed/pg-paths.d.ts +28 -0
  775. package/dist/store/managed/pg-paths.d.ts.map +1 -0
  776. package/dist/store/managed/pg-paths.js +41 -0
  777. package/dist/store/managed/pg-paths.js.map +1 -0
  778. package/dist/store/managed/pg-runtime-provider.d.ts +47 -0
  779. package/dist/store/managed/pg-runtime-provider.d.ts.map +1 -0
  780. package/dist/store/managed/pg-runtime-provider.js +249 -0
  781. package/dist/store/managed/pg-runtime-provider.js.map +1 -0
  782. package/dist/store/managed/pg-supervisor.d.ts +30 -0
  783. package/dist/store/managed/pg-supervisor.d.ts.map +1 -0
  784. package/dist/store/managed/pg-supervisor.js +308 -0
  785. package/dist/store/managed/pg-supervisor.js.map +1 -0
  786. package/dist/store/managed/recovery-loop.d.ts +41 -0
  787. package/dist/store/managed/recovery-loop.d.ts.map +1 -0
  788. package/dist/store/managed/recovery-loop.js +87 -0
  789. package/dist/store/managed/recovery-loop.js.map +1 -0
  790. package/dist/store/managed/stop-from-state.d.ts +11 -0
  791. package/dist/store/managed/stop-from-state.d.ts.map +1 -0
  792. package/dist/store/managed/stop-from-state.js +26 -0
  793. package/dist/store/managed/stop-from-state.js.map +1 -0
  794. package/dist/store/migrations/index.d.ts +9 -0
  795. package/dist/store/migrations/index.d.ts.map +1 -0
  796. package/dist/store/migrations/index.js +121 -0
  797. package/dist/store/migrations/index.js.map +1 -0
  798. package/dist/store/pages.d.ts +81 -0
  799. package/dist/store/pages.d.ts.map +1 -0
  800. package/dist/store/pages.js +286 -0
  801. package/dist/store/pages.js.map +1 -0
  802. package/dist/store/person-behavior.d.ts +37 -0
  803. package/dist/store/person-behavior.d.ts.map +1 -0
  804. package/dist/store/person-behavior.js +134 -0
  805. package/dist/store/person-behavior.js.map +1 -0
  806. package/dist/store/pglite-assets.d.ts +15 -0
  807. package/dist/store/pglite-assets.d.ts.map +1 -0
  808. package/dist/store/pglite-assets.js +47 -0
  809. package/dist/store/pglite-assets.js.map +1 -0
  810. package/dist/store/pglite-executor.d.ts +21 -0
  811. package/dist/store/pglite-executor.d.ts.map +1 -0
  812. package/dist/store/pglite-executor.js +61 -0
  813. package/dist/store/pglite-executor.js.map +1 -0
  814. package/dist/store/postgres-executor.d.ts +16 -0
  815. package/dist/store/postgres-executor.d.ts.map +1 -0
  816. package/dist/store/postgres-executor.js +77 -0
  817. package/dist/store/postgres-executor.js.map +1 -0
  818. package/dist/store/query-rewrite.d.ts +28 -0
  819. package/dist/store/query-rewrite.d.ts.map +1 -0
  820. package/dist/store/query-rewrite.js +97 -0
  821. package/dist/store/query-rewrite.js.map +1 -0
  822. package/dist/store/search.d.ts +65 -0
  823. package/dist/store/search.d.ts.map +1 -0
  824. package/dist/store/search.js +312 -0
  825. package/dist/store/search.js.map +1 -0
  826. package/dist/store/sequence-sync.d.ts +22 -0
  827. package/dist/store/sequence-sync.d.ts.map +1 -0
  828. package/dist/store/sequence-sync.js +46 -0
  829. package/dist/store/sequence-sync.js.map +1 -0
  830. package/dist/store/sql-executor.d.ts +17 -0
  831. package/dist/store/sql-executor.d.ts.map +1 -0
  832. package/dist/store/sql-executor.js +3 -0
  833. package/dist/store/sql-executor.js.map +1 -0
  834. package/dist/store/store-meta.d.ts +10 -0
  835. package/dist/store/store-meta.d.ts.map +1 -0
  836. package/dist/store/store-meta.js +13 -0
  837. package/dist/store/store-meta.js.map +1 -0
  838. package/dist/store/tags.d.ts +10 -0
  839. package/dist/store/tags.d.ts.map +1 -0
  840. package/dist/store/tags.js +35 -0
  841. package/dist/store/tags.js.map +1 -0
  842. package/dist/store/timeline.d.ts +38 -0
  843. package/dist/store/timeline.d.ts.map +1 -0
  844. package/dist/store/timeline.js +173 -0
  845. package/dist/store/timeline.js.map +1 -0
  846. package/dist/store/trgm-search.d.ts +13 -0
  847. package/dist/store/trgm-search.d.ts.map +1 -0
  848. package/dist/store/trgm-search.js +53 -0
  849. package/dist/store/trgm-search.js.map +1 -0
  850. package/dist/store/wikilink.d.ts +17 -0
  851. package/dist/store/wikilink.d.ts.map +1 -0
  852. package/dist/store/wikilink.js +58 -0
  853. package/dist/store/wikilink.js.map +1 -0
  854. package/dist/sync/obsidian.d.ts +136 -0
  855. package/dist/sync/obsidian.d.ts.map +1 -0
  856. package/dist/sync/obsidian.js +543 -0
  857. package/dist/sync/obsidian.js.map +1 -0
  858. package/dist/synth/cache.d.ts +17 -0
  859. package/dist/synth/cache.d.ts.map +1 -0
  860. package/dist/synth/cache.js +67 -0
  861. package/dist/synth/cache.js.map +1 -0
  862. package/dist/synth/citations.d.ts +12 -0
  863. package/dist/synth/citations.d.ts.map +1 -0
  864. package/dist/synth/citations.js +28 -0
  865. package/dist/synth/citations.js.map +1 -0
  866. package/dist/synth/context.d.ts +10 -0
  867. package/dist/synth/context.d.ts.map +1 -0
  868. package/dist/synth/context.js +67 -0
  869. package/dist/synth/context.js.map +1 -0
  870. package/dist/synth/engine.d.ts +16 -0
  871. package/dist/synth/engine.d.ts.map +1 -0
  872. package/dist/synth/engine.js +111 -0
  873. package/dist/synth/engine.js.map +1 -0
  874. package/dist/synth/gaps.d.ts +17 -0
  875. package/dist/synth/gaps.d.ts.map +1 -0
  876. package/dist/synth/gaps.js +57 -0
  877. package/dist/synth/gaps.js.map +1 -0
  878. package/dist/synth/index.d.ts +6 -0
  879. package/dist/synth/index.d.ts.map +1 -0
  880. package/dist/synth/index.js +6 -0
  881. package/dist/synth/index.js.map +1 -0
  882. package/dist/synth/intent.d.ts +6 -0
  883. package/dist/synth/intent.d.ts.map +1 -0
  884. package/dist/synth/intent.js +13 -0
  885. package/dist/synth/intent.js.map +1 -0
  886. package/dist/synth/intents/daily-report.d.ts +7 -0
  887. package/dist/synth/intents/daily-report.d.ts.map +1 -0
  888. package/dist/synth/intents/daily-report.js +37 -0
  889. package/dist/synth/intents/daily-report.js.map +1 -0
  890. package/dist/synth/intents/index.d.ts +2 -0
  891. package/dist/synth/intents/index.d.ts.map +1 -0
  892. package/dist/synth/intents/index.js +12 -0
  893. package/dist/synth/intents/index.js.map +1 -0
  894. package/dist/synth/intents/person-strategy.d.ts +40 -0
  895. package/dist/synth/intents/person-strategy.d.ts.map +1 -0
  896. package/dist/synth/intents/person-strategy.js +66 -0
  897. package/dist/synth/intents/person-strategy.js.map +1 -0
  898. package/dist/synth/intents/recall.d.ts +8 -0
  899. package/dist/synth/intents/recall.d.ts.map +1 -0
  900. package/dist/synth/intents/recall.js +26 -0
  901. package/dist/synth/intents/recall.js.map +1 -0
  902. package/dist/synth/intents/troubleshoot.d.ts +11 -0
  903. package/dist/synth/intents/troubleshoot.d.ts.map +1 -0
  904. package/dist/synth/intents/troubleshoot.js +66 -0
  905. package/dist/synth/intents/troubleshoot.js.map +1 -0
  906. package/dist/synth/scope.d.ts +13 -0
  907. package/dist/synth/scope.d.ts.map +1 -0
  908. package/dist/synth/scope.js +139 -0
  909. package/dist/synth/scope.js.map +1 -0
  910. package/dist/synth/types.d.ts +117 -0
  911. package/dist/synth/types.d.ts.map +1 -0
  912. package/dist/synth/types.js +2 -0
  913. package/dist/synth/types.js.map +1 -0
  914. package/package.json +98 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg-supervisor.d.ts","sourceRoot":"","sources":["../../../src/store/managed/pg-supervisor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAAc,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,KAAK,YAAY,EAAuC,MAAM,eAAe,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAS7D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,SAAS,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,IAAI,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IACzC,aAAa,CAAC,aAAa,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,IAAI,CAAC;CACjB;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAuWvE"}
@@ -0,0 +1,308 @@
1
+ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
2
+ import { userInfo } from "node:os";
3
+ import { join } from "node:path";
4
+ import { nodeRunner } from "../../daemon/autostart/runner.js";
5
+ import { readManagedState, writeManagedState } from "./pg-paths.js";
6
+ // ─── Managed block delimiters ────────────────────────────────────────────────
7
+ const BLOCK_START = "# >>> memkin managed >>>";
8
+ const BLOCK_END = "# <<< memkin managed <<<";
9
+ // ─── Factory ──────────────────────────────────────────────────────────────────
10
+ export function createPgSupervisor(deps) {
11
+ const { runtime, paths } = deps;
12
+ const runner = deps.runner ?? nodeRunner;
13
+ const bootstrapUser = deps.bootstrapUser ?? process.env.USER ?? userInfo().username;
14
+ // ── Private helpers ────────────────────────────────────────────────────────
15
+ /**
16
+ * Write (or replace) the memkin-managed block inside postgresql.conf.
17
+ * If the file already contains the managed block, it is replaced in-place.
18
+ * If the file does not exist yet, it is created with only the managed block.
19
+ * Non-managed content outside the block is preserved.
20
+ */
21
+ function writeManagedConf() {
22
+ const confPath = join(paths.pgdata, "postgresql.conf");
23
+ const managedBlock = [
24
+ BLOCK_START,
25
+ "# Auto-generated by memkin — do not edit manually between these markers.",
26
+ "listen_addresses = ''",
27
+ `unix_socket_directories = '${paths.socketDir}'`,
28
+ "unix_socket_permissions = 0700",
29
+ `port = ${paths.fixedPort}`,
30
+ BLOCK_END,
31
+ ].join("\n");
32
+ if (existsSync(confPath)) {
33
+ const existing = readFileSync(confPath, "utf8");
34
+ const startIdx = existing.indexOf(BLOCK_START);
35
+ const endIdx = existing.indexOf(BLOCK_END);
36
+ if (startIdx !== -1 && endIdx !== -1 && endIdx > startIdx) {
37
+ // Replace existing managed block
38
+ const before = existing.slice(0, startIdx);
39
+ const after = existing.slice(endIdx + BLOCK_END.length);
40
+ writeFileSync(confPath, `${before}${managedBlock}${after}`, "utf8");
41
+ }
42
+ else {
43
+ // Append managed block (no prior block found)
44
+ const separator = existing.endsWith("\n") ? "\n" : "\n\n";
45
+ writeFileSync(confPath, `${existing}${separator}${managedBlock}\n`, "utf8");
46
+ }
47
+ }
48
+ else {
49
+ // New file — write managed block only
50
+ writeFileSync(confPath, `${managedBlock}\n`, "utf8");
51
+ }
52
+ }
53
+ /**
54
+ * Write the temporary (phase-1) pg_hba.conf.
55
+ * Only allows the bootstrap OS user via local UNIX socket with trust auth.
56
+ * The final restrictive HBA is applied in a later task (Task 8).
57
+ */
58
+ function writeTempHba() {
59
+ const hbaPath = join(paths.pgdata, "pg_hba.conf");
60
+ const content = [
61
+ "# Temporary HBA — managed by memkin (phase 1). DO NOT EDIT.",
62
+ "# Final restrictive HBA is applied after bootstrap roles are created.",
63
+ `local all ${bootstrapUser} trust`,
64
+ "",
65
+ ].join("\n");
66
+ writeFileSync(hbaPath, content, "utf8");
67
+ }
68
+ /**
69
+ * Build a psql argv array for running a single SQL command.
70
+ * All connections go through the UNIX socket (host = socketDir).
71
+ */
72
+ function psqlArgs(db, sql, opts = {}) {
73
+ const psql = join(runtime.bin, "psql");
74
+ const argv = [
75
+ psql,
76
+ "-h",
77
+ paths.socketDir,
78
+ "-p",
79
+ String(paths.fixedPort),
80
+ "-U",
81
+ bootstrapUser,
82
+ "-d",
83
+ db,
84
+ "-v",
85
+ "ON_ERROR_STOP=1",
86
+ ];
87
+ if (opts.tuplesOnly) {
88
+ argv.push("-tAc", sql);
89
+ }
90
+ else {
91
+ argv.push("-c", sql);
92
+ }
93
+ return argv;
94
+ }
95
+ // ── Public API ─────────────────────────────────────────────────────────────
96
+ return {
97
+ async ensureCluster() {
98
+ const pgVersionFile = join(paths.pgdata, "PG_VERSION");
99
+ const clusterExists = existsSync(pgVersionFile);
100
+ if (!clusterExists) {
101
+ // Run initdb to initialise the cluster
102
+ const result = await runner.run([
103
+ runtime.initdb,
104
+ "-D",
105
+ paths.pgdata,
106
+ "-U",
107
+ bootstrapUser,
108
+ "--auth=trust",
109
+ "--encoding=UTF8",
110
+ ]);
111
+ if (result.code !== 0) {
112
+ throw new Error(`initdb failed (exit ${result.code}) for pgdata=${paths.pgdata}: ${result.stderr}`);
113
+ }
114
+ // In real usage initdb creates pgdata; for fake-runner paths ensure the
115
+ // directory exists so the conf-writes below succeed.
116
+ mkdirSync(paths.pgdata, { recursive: true });
117
+ }
118
+ // Always (re-)create the socket dir with mode 0700
119
+ mkdirSync(paths.socketDir, { recursive: true, mode: 0o700 });
120
+ // Write / replace the managed postgresql.conf block (idempotent)
121
+ writeManagedConf();
122
+ // Write the temporary pg_hba.conf ONLY when not yet bootstrapped.
123
+ // After bootstrap, the HBA has been finalized to the restrictive version.
124
+ // Re-writing the temp HBA would loosen security back to bootstrap-user-trust.
125
+ // Bootstrapped ⇔ managed-state file exists.
126
+ if (readManagedState(paths) === null) {
127
+ // The temp HBA (bootstrap-user trust) is only ever active before finalizeHba.
128
+ // Its containment relies on listen_addresses='' (no TCP) + the 0700 private socket dir —
129
+ // do NOT weaken either without revisiting this bootstrap-window exposure.
130
+ writeTempHba();
131
+ }
132
+ },
133
+ async start() {
134
+ const logPath = join(paths.pgdata, "postmaster.log");
135
+ const result = await runner.run([
136
+ runtime.pgCtl,
137
+ "start",
138
+ "-D",
139
+ paths.pgdata,
140
+ "-l",
141
+ logPath,
142
+ "-w",
143
+ "-o",
144
+ `-p ${paths.fixedPort}`,
145
+ ]);
146
+ if (result.code !== 0) {
147
+ throw new Error(`pg_ctl start failed (exit ${result.code}), log=${logPath}: ${result.stderr}`);
148
+ }
149
+ },
150
+ async waitReady(opts = {}) {
151
+ const pollIntervalMs = opts.pollIntervalMs ?? 250;
152
+ const timeoutMs = opts.timeoutMs ?? 15_000;
153
+ const deadline = Date.now() + timeoutMs;
154
+ while (Date.now() < deadline) {
155
+ const result = await runner.run([
156
+ runtime.pgIsReady,
157
+ "-h",
158
+ paths.socketDir,
159
+ "-p",
160
+ String(paths.fixedPort),
161
+ ]);
162
+ if (result.code === 0)
163
+ return;
164
+ await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
165
+ }
166
+ throw new Error(`pg_isready timeout after ${timeoutMs}ms: Postgres did not become ready (socketDir=${paths.socketDir}, port=${paths.fixedPort})`);
167
+ },
168
+ async bootstrapRoles() {
169
+ // (a) Create memkin role — idempotent via DO block
170
+ const roleResult = await runner.run(psqlArgs("postgres", `DO $$ BEGIN IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname='memkin') THEN CREATE ROLE memkin LOGIN; END IF; END $$;`));
171
+ if (roleResult.code !== 0) {
172
+ throw new Error(`psql CREATE ROLE failed (exit ${roleResult.code}): ${roleResult.stderr}`);
173
+ }
174
+ // (b) Check if the memkin database already exists
175
+ const dbCheckResult = await runner.run(psqlArgs("postgres", `SELECT 1 FROM pg_database WHERE datname='memkin'`, {
176
+ tuplesOnly: true,
177
+ }));
178
+ if (dbCheckResult.code !== 0) {
179
+ throw new Error(`psql db-existence check failed (exit ${dbCheckResult.code}): ${dbCheckResult.stderr}`);
180
+ }
181
+ // Only create the database if it does not exist yet
182
+ if (dbCheckResult.stdout.trim() === "") {
183
+ const createDbResult = await runner.run(psqlArgs("postgres", `CREATE DATABASE memkin OWNER memkin`));
184
+ if (createDbResult.code !== 0) {
185
+ throw new Error(`psql CREATE DATABASE failed (exit ${createDbResult.code}): ${createDbResult.stderr}`);
186
+ }
187
+ }
188
+ // (c) Create extensions in the memkin database
189
+ const extResult = await runner.run(psqlArgs("memkin", `CREATE EXTENSION IF NOT EXISTS vector; CREATE EXTENSION IF NOT EXISTS pg_trgm;`));
190
+ if (extResult.code !== 0) {
191
+ throw new Error(`psql CREATE EXTENSION failed (exit ${extResult.code}): ${extResult.stderr}`);
192
+ }
193
+ },
194
+ async finalizeHba() {
195
+ const hbaPath = join(paths.pgdata, "pg_hba.conf");
196
+ const finalHba = [
197
+ "# memkin final HBA — managed",
198
+ "local memkin memkin trust",
199
+ "local all all reject",
200
+ "host all all all reject",
201
+ "",
202
+ ].join("\n");
203
+ writeFileSync(hbaPath, finalHba, "utf8");
204
+ const result = await runner.run([runtime.pgCtl, "reload", "-D", paths.pgdata]);
205
+ if (result.code !== 0) {
206
+ throw new Error(`pg_ctl reload failed (exit ${result.code}): ${result.stderr}`);
207
+ }
208
+ },
209
+ async status() {
210
+ const result = await runner.run([runtime.pgCtl, "status", "-D", paths.pgdata]);
211
+ return result.code === 0 ? "running" : "stopped";
212
+ },
213
+ async startWithStaleRecovery() {
214
+ const logPath = join(paths.pgdata, "postmaster.log");
215
+ const startArgv = [
216
+ runtime.pgCtl,
217
+ "start",
218
+ "-D",
219
+ paths.pgdata,
220
+ "-l",
221
+ logPath,
222
+ "-w",
223
+ "-o",
224
+ `-p ${paths.fixedPort}`,
225
+ ];
226
+ const first = await runner.run(startArgv);
227
+ if (first.code === 0)
228
+ return;
229
+ // Start failed — check for stale postmaster.pid
230
+ const pidFile = join(paths.pgdata, "postmaster.pid");
231
+ if (!existsSync(pidFile)) {
232
+ throw new Error(`pg_ctl start failed (exit ${first.code}), log=${logPath}: ${first.stderr}`);
233
+ }
234
+ // Read PID from first line
235
+ const pidLine = readFileSync(pidFile, "utf8").split("\n")[0].trim();
236
+ const pid = Number(pidLine);
237
+ // Check if process is actually alive
238
+ let alive = true;
239
+ if (!Number.isNaN(pid) && pid > 0) {
240
+ try {
241
+ process.kill(pid, 0);
242
+ }
243
+ catch (err) {
244
+ if (err.code === "ESRCH") {
245
+ alive = false;
246
+ }
247
+ else {
248
+ // EPERM means process exists but we can't signal it — treat as alive
249
+ alive = true;
250
+ }
251
+ }
252
+ }
253
+ if (!alive) {
254
+ // Remove stale pid file and retry
255
+ rmSync(pidFile, { force: true });
256
+ const retry = await runner.run(startArgv);
257
+ if (retry.code !== 0) {
258
+ throw new Error(`pg_ctl start failed after stale pid removal (exit ${retry.code}), log=${logPath}: ${retry.stderr}`);
259
+ }
260
+ return;
261
+ }
262
+ // Process is still alive — original error stands
263
+ throw new Error(`pg_ctl start failed (exit ${first.code}), log=${logPath}: ${first.stderr}`);
264
+ },
265
+ async ensureUp() {
266
+ const bootstrapped = readManagedState(paths) !== null;
267
+ // Initialise cluster if needed; refresh conf; write temp HBA only if !bootstrapped
268
+ await this.ensureCluster();
269
+ const currentStatus = await this.status();
270
+ if (currentStatus !== "running") {
271
+ await this.startWithStaleRecovery();
272
+ await this.waitReady();
273
+ }
274
+ if (!bootstrapped) {
275
+ await this.bootstrapRoles();
276
+ await this.finalizeHba();
277
+ writeManagedState(paths, {
278
+ pgdata: paths.pgdata,
279
+ fixedPort: paths.fixedPort,
280
+ socketDir: paths.socketDir,
281
+ runtimeRoot: runtime.root,
282
+ pgVersion: runtime.pgMajor,
283
+ pgCtlPath: runtime.pgCtl,
284
+ logPath: join(paths.pgdata, "postmaster.log"),
285
+ });
286
+ }
287
+ },
288
+ async restartIfDown(waitReadyOpts) {
289
+ const currentStatus = await this.status();
290
+ if (currentStatus === "running")
291
+ return false;
292
+ await this.startWithStaleRecovery();
293
+ await this.waitReady(waitReadyOpts);
294
+ return true;
295
+ },
296
+ async stop() {
297
+ // Tolerate "not running" — pg_ctl stop returns non-zero when already stopped.
298
+ await runner.run([runtime.pgCtl, "stop", "-D", paths.pgdata, "-m", "fast"]);
299
+ },
300
+ dispose() {
301
+ // No internal timer or monitor to clean up yet (recovery loop is a separate
302
+ // module added in a later task). Per spec §4d, dispose MUST NOT stop the
303
+ // cluster — it only stops internal monitoring resources owned by this object.
304
+ // This is intentionally a no-op.
305
+ },
306
+ };
307
+ }
308
+ //# sourceMappingURL=pg-supervisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg-supervisor.js","sourceRoot":"","sources":["../../../src/store/managed/pg-supervisor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Recovery loop for managed Postgres.
3
+ *
4
+ * Design: self-rescheduling setTimeout (NOT setInterval).
5
+ *
6
+ * Single-flight is inherent: the next setTimeout is only registered AFTER the
7
+ * current `restartIfDown()` call resolves or rejects. This means two checks can
8
+ * never overlap — if the async check takes longer than the nominal interval the
9
+ * loop simply waits for it to finish before scheduling the next tick.
10
+ *
11
+ * Exponential backoff: on consecutive failures the delay doubles each time,
12
+ * capped at `maxIntervalMs`. A success resets both the counter and the delay.
13
+ *
14
+ * onFatal: fired exactly once when `consecutiveFailures === maxConsecutiveFailures`.
15
+ * The loop keeps running at the capped interval so Postgres can still recover.
16
+ */
17
+ export interface RecoveryTarget {
18
+ restartIfDown(): Promise<boolean>;
19
+ }
20
+ export interface RecoveryLoopOptions {
21
+ /** Base check interval in ms. Default: 3000 */
22
+ intervalMs?: number;
23
+ /** Backoff ceiling in ms. Default: 30000 */
24
+ maxIntervalMs?: number;
25
+ /** Number of consecutive failures before onFatal is called. Default: 5 */
26
+ maxConsecutiveFailures?: number;
27
+ /** Called when restartIfDown() returns true (pg was restarted). */
28
+ onRestart?: (info: {
29
+ attempt: number;
30
+ }) => void;
31
+ /** Called on every failure with the current consecutive-failure count. */
32
+ onError?: (err: unknown, consecutiveFailures: number) => void;
33
+ /** Called exactly once when consecutiveFailures reaches the threshold. */
34
+ onFatal?: (consecutiveFailures: number) => void;
35
+ }
36
+ export interface RecoveryLoopHandle {
37
+ stop(): void;
38
+ readonly consecutiveFailures: number;
39
+ }
40
+ export declare function startRecoveryLoop(target: RecoveryTarget, opts?: RecoveryLoopOptions): RecoveryLoopHandle;
41
+ //# sourceMappingURL=recovery-loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery-loop.d.ts","sourceRoot":"","sources":["../../../src/store/managed/recovery-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,cAAc;IAC7B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mEAAmE;IACnE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAChD,0EAA0E;IAC1E,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,0EAA0E;IAC1E,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,IAAI,IAAI,CAAC;IACb,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,IAAI,GAAE,mBAAwB,GAC7B,kBAAkB,CA2EpB"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Recovery loop for managed Postgres.
3
+ *
4
+ * Design: self-rescheduling setTimeout (NOT setInterval).
5
+ *
6
+ * Single-flight is inherent: the next setTimeout is only registered AFTER the
7
+ * current `restartIfDown()` call resolves or rejects. This means two checks can
8
+ * never overlap — if the async check takes longer than the nominal interval the
9
+ * loop simply waits for it to finish before scheduling the next tick.
10
+ *
11
+ * Exponential backoff: on consecutive failures the delay doubles each time,
12
+ * capped at `maxIntervalMs`. A success resets both the counter and the delay.
13
+ *
14
+ * onFatal: fired exactly once when `consecutiveFailures === maxConsecutiveFailures`.
15
+ * The loop keeps running at the capped interval so Postgres can still recover.
16
+ */
17
+ export function startRecoveryLoop(target, opts = {}) {
18
+ const intervalMs = opts.intervalMs ?? 3000;
19
+ const maxIntervalMs = opts.maxIntervalMs ?? 30_000;
20
+ const maxConsecutiveFailures = opts.maxConsecutiveFailures ?? 5;
21
+ let stopped = false;
22
+ let timer;
23
+ let consecutiveFailures = 0;
24
+ let fatalFired = false;
25
+ let restartAttempt = 0;
26
+ function currentDelay() {
27
+ if (consecutiveFailures === 0)
28
+ return intervalMs;
29
+ // 2^(consecutiveFailures-1) * intervalMs, capped
30
+ const backoff = intervalMs * 2 ** (consecutiveFailures - 1);
31
+ return Math.min(backoff, maxIntervalMs);
32
+ }
33
+ async function tick() {
34
+ if (stopped)
35
+ return;
36
+ try {
37
+ const restarted = await target.restartIfDown();
38
+ if (stopped)
39
+ return;
40
+ // Success path — reset state
41
+ consecutiveFailures = 0;
42
+ fatalFired = false;
43
+ if (restarted) {
44
+ restartAttempt++;
45
+ opts.onRestart?.({ attempt: restartAttempt });
46
+ }
47
+ }
48
+ catch (err) {
49
+ if (stopped)
50
+ return;
51
+ consecutiveFailures++;
52
+ opts.onError?.(err, consecutiveFailures);
53
+ if (consecutiveFailures === maxConsecutiveFailures && !fatalFired) {
54
+ fatalFired = true;
55
+ opts.onFatal?.(consecutiveFailures);
56
+ }
57
+ }
58
+ // Self-reschedule — only after the check completes (single-flight guarantee)
59
+ if (!stopped) {
60
+ timer = setTimeout(() => {
61
+ tick().catch(() => {
62
+ // tick() never rejects (errors are caught inside), but silence any
63
+ // unexpected leak to avoid unhandled-rejection warnings.
64
+ });
65
+ }, currentDelay());
66
+ }
67
+ }
68
+ // Kick off the first tick after one base interval
69
+ timer = setTimeout(() => {
70
+ tick().catch(() => {
71
+ /* see above */
72
+ });
73
+ }, intervalMs);
74
+ return {
75
+ stop() {
76
+ stopped = true;
77
+ if (timer !== undefined) {
78
+ clearTimeout(timer);
79
+ timer = undefined;
80
+ }
81
+ },
82
+ get consecutiveFailures() {
83
+ return consecutiveFailures;
84
+ },
85
+ };
86
+ }
87
+ //# sourceMappingURL=recovery-loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery-loop.js","sourceRoot":"","sources":["../../../src/store/managed/recovery-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA0BH,MAAM,UAAU,iBAAiB,CAC/B,MAAsB,EACtB,OAA4B,EAAE;IAE9B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;IAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC;IACnD,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC;IAEhE,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,KAAgD,CAAC;IACrD,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,SAAS,YAAY;QACnB,IAAI,mBAAmB,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC;QACjD,iDAAiD;QACjD,MAAM,OAAO,GAAG,UAAU,GAAG,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,IAAI,OAAO;YAAE,OAAO;QAEpB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;YAC/C,IAAI,OAAO;gBAAE,OAAO;YAEpB,6BAA6B;YAC7B,mBAAmB,GAAG,CAAC,CAAC;YACxB,UAAU,GAAG,KAAK,CAAC;YAEnB,IAAI,SAAS,EAAE,CAAC;gBACd,cAAc,EAAE,CAAC;gBACjB,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,OAAO;gBAAE,OAAO;YAEpB,mBAAmB,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;YAEzC,IAAI,mBAAmB,KAAK,sBAAsB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClE,UAAU,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,OAAO,EAAE,CAAC,mBAAmB,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,6EAA6E;QAC7E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;oBAChB,mEAAmE;oBACnE,yDAAyD;gBAC3D,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QACtB,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YAChB,eAAe;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,UAAU,CAAC,CAAC;IAEf,OAAO;QACL,IAAI;YACF,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,KAAK,GAAG,SAAS,CAAC;YACpB,CAAC;QACH,CAAC;QACD,IAAI,mBAAmB;YACrB,OAAO,mBAAmB,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { CommandRunner } from "../../daemon/autostart/runner.js";
2
+ /**
3
+ * Read the managed-pg.json state and stop the Postgres cluster using the
4
+ * pg_ctl path recorded in the state.
5
+ *
6
+ * - If no state file exists → returns false (nothing to stop).
7
+ * - If state exists → runs pg_ctl stop -m fast; tolerates non-zero exit
8
+ * (already stopped) → returns true.
9
+ */
10
+ export declare function stopManagedFromState(home: string, runner: CommandRunner): Promise<boolean>;
11
+ //# sourceMappingURL=stop-from-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop-from-state.d.ts","sourceRoot":"","sources":["../../../src/store/managed/stop-from-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAItE;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAchG"}
@@ -0,0 +1,26 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { managedStatePath } from "./pg-paths.js";
3
+ /**
4
+ * Read the managed-pg.json state and stop the Postgres cluster using the
5
+ * pg_ctl path recorded in the state.
6
+ *
7
+ * - If no state file exists → returns false (nothing to stop).
8
+ * - If state exists → runs pg_ctl stop -m fast; tolerates non-zero exit
9
+ * (already stopped) → returns true.
10
+ */
11
+ export async function stopManagedFromState(home, runner) {
12
+ const statePath = managedStatePath(home);
13
+ if (!existsSync(statePath))
14
+ return false;
15
+ let state;
16
+ try {
17
+ state = JSON.parse(readFileSync(statePath, "utf8"));
18
+ }
19
+ catch {
20
+ return false;
21
+ }
22
+ // Tolerate non-zero (already stopped is fine)
23
+ await runner.run([state.pgCtlPath, "stop", "-D", state.pgdata, "-m", "fast"]);
24
+ return true;
25
+ }
26
+ //# sourceMappingURL=stop-from-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop-from-state.js","sourceRoot":"","sources":["../../../src/store/managed/stop-from-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY,EAAE,MAAqB;IAC5E,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzC,IAAI,KAAmB,CAAC;IACxB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAiB,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8CAA8C;IAC9C,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9E,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { SqlConn } from "../sql-executor.js";
2
+ export interface Migration {
3
+ version: number;
4
+ name: string;
5
+ sql: string;
6
+ }
7
+ export declare const MIGRATIONS: Migration[];
8
+ export declare function runMigrations(conn: SqlConn): Promise<void>;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAwGD,eAAO,MAAM,UAAU,EAAE,SAAS,EAOjC,CAAC;AAEF,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBhE"}
@@ -0,0 +1,121 @@
1
+ // Migrations are inlined as string constants (not read from .sql files at runtime) so
2
+ // they survive bundling: the tsc-built dist/, the `bun build --compile` single-file binary,
3
+ // and `bun src/cli.ts` all behave identically with no filesystem asset to ship. Applied
4
+ // migrations are immutable by definition, so there is no source-of-truth drift risk.
5
+ //
6
+ // Add new migrations here, in ascending version order. Never edit an already-released one.
7
+ // Migration 001: lifecycle metadata + preference type promotion.
8
+ // Adds halflife_days to pages (drives hot/warm/cold rotation), promotes the legacy
9
+ // discovery-preference subtype to a first-class `preference` type, then backfills
10
+ // halflife_days for existing signal pages by type.
11
+ const M001_LIFECYCLE_COLUMNS = `
12
+ ALTER TABLE pages ADD COLUMN IF NOT EXISTS halflife_days INTEGER;
13
+
14
+ UPDATE pages SET type = 'preference' WHERE type = 'discovery-preference';
15
+
16
+ UPDATE pages SET halflife_days = 90
17
+ WHERE type IN ('decision', 'task', 'preference') OR type LIKE 'discovery-%';
18
+ UPDATE pages SET halflife_days = 365
19
+ WHERE type = 'knowledge';
20
+ `;
21
+ // Migration 002: backfill provenance/source_hash columns (signal fidelity) for databases
22
+ // that ran migration 001 before schema.sql included them.
23
+ const M002_PROVENANCE_COLUMNS = `
24
+ ALTER TABLE links ADD COLUMN IF NOT EXISTS provenance JSONB;
25
+ ALTER TABLE links ADD COLUMN IF NOT EXISTS source_hash TEXT;
26
+ ALTER TABLE timeline_entries ADD COLUMN IF NOT EXISTS provenance JSONB;
27
+ `;
28
+ // Migration 003: lifecycle tier columns + indexes for pages and timeline_entries, and a
29
+ // backfill of expires_at for existing hot pages that have a halflife.
30
+ const M003_LIFECYCLE_TIER = `
31
+ ALTER TABLE pages ADD COLUMN IF NOT EXISTS tier TEXT NOT NULL DEFAULT 'hot';
32
+ ALTER TABLE pages ADD COLUMN IF NOT EXISTS expires_at TIMESTAMPTZ;
33
+ ALTER TABLE pages ADD COLUMN IF NOT EXISTS consolidated_into INTEGER REFERENCES pages(id);
34
+
35
+ CREATE INDEX IF NOT EXISTS idx_pages_tier ON pages (tier);
36
+ CREATE INDEX IF NOT EXISTS idx_pages_expires_at ON pages (expires_at) WHERE expires_at IS NOT NULL;
37
+
38
+ ALTER TABLE timeline_entries ADD COLUMN IF NOT EXISTS tier TEXT NOT NULL DEFAULT 'hot';
39
+ ALTER TABLE timeline_entries ADD COLUMN IF NOT EXISTS expires_at TIMESTAMPTZ;
40
+
41
+ UPDATE pages
42
+ SET expires_at = created_at + (halflife_days * INTERVAL '1 day')
43
+ WHERE tier = 'hot'
44
+ AND halflife_days IS NOT NULL
45
+ AND expires_at IS NULL;
46
+ `;
47
+ // Migration 004: relax identity_cache.display_name to nullable.
48
+ // Semantics: display_name IS NULL AND resolved_at IS NOT NULL = permanent
49
+ // resolution failure (e.g. Lark 4013/404). Used by the chat-name resolution
50
+ // flow to distinguish "tried and failed" from "never tried".
51
+ const M004_IDENTITY_CACHE_NULLABLE = `
52
+ ALTER TABLE identity_cache ALTER COLUMN display_name DROP NOT NULL;
53
+ `;
54
+ // Migration 005: person_behavior table (Spec 8 §4.1) — the behavior layer of the
55
+ // person communication profile. Behavior metrics (response latency, message length,
56
+ // active hours, initiation, @-frequency) cannot be recomputed after extraction
57
+ // (raw messages are dropped), so they are accumulated incrementally as mergeable
58
+ // counters keyed by the OTHER person's canonical slug. hour_histogram defaults to a
59
+ // length-24 zero array so upsert can add element-wise without a null check.
60
+ const M005_PERSON_BEHAVIOR = `
61
+ CREATE TABLE IF NOT EXISTS person_behavior (
62
+ person_slug TEXT PRIMARY KEY,
63
+ msg_count INTEGER NOT NULL DEFAULT 0,
64
+ sum_msg_chars INTEGER NOT NULL DEFAULT 0,
65
+ initiated_count INTEGER NOT NULL DEFAULT 0,
66
+ reply_count INTEGER NOT NULL DEFAULT 0,
67
+ resp_latency_n INTEGER NOT NULL DEFAULT 0,
68
+ resp_latency_sum_s BIGINT NOT NULL DEFAULT 0,
69
+ hour_histogram JSONB NOT NULL DEFAULT '[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]',
70
+ at_count INTEGER NOT NULL DEFAULT 0,
71
+ window_start TIMESTAMPTZ,
72
+ updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
73
+ );
74
+ `;
75
+ // Migration 006: Chinese FTS fix. Replace the tsvector('simple') lexical machinery with
76
+ // pg_trgm. Chinese has no whitespace, so to_tsvector('simple') collapsed each run into one
77
+ // giant lexeme and to_tsquery matched only exact whole-run strings — Chinese FTS was broken.
78
+ // pg_trgm GIN + ILIKE substring gives correct CJK recall with no re-extraction. CREATE
79
+ // EXTENSION must precede any gin_trgm_ops index.
80
+ const M006_TRGM_FTS = `
81
+ CREATE EXTENSION IF NOT EXISTS pg_trgm;
82
+
83
+ CREATE INDEX IF NOT EXISTS idx_pages_title_trgm ON pages USING gin (title gin_trgm_ops);
84
+ CREATE INDEX IF NOT EXISTS idx_pages_compiled_truth_trgm ON pages USING gin (compiled_truth gin_trgm_ops);
85
+ CREATE INDEX IF NOT EXISTS idx_chunks_chunk_text_trgm ON content_chunks USING gin (chunk_text gin_trgm_ops);
86
+
87
+ DROP TRIGGER IF EXISTS trg_pages_search_vector ON pages;
88
+ DROP TRIGGER IF EXISTS chunk_search_vector_trigger ON content_chunks;
89
+ DROP FUNCTION IF EXISTS update_page_search_vector();
90
+ DROP FUNCTION IF EXISTS update_chunk_search_vector();
91
+ DROP INDEX IF EXISTS idx_pages_search_vector;
92
+ DROP INDEX IF EXISTS idx_chunks_search_vector;
93
+ ALTER TABLE pages DROP COLUMN IF EXISTS search_vector;
94
+ ALTER TABLE content_chunks DROP COLUMN IF EXISTS search_vector;
95
+ `;
96
+ export const MIGRATIONS = [
97
+ { version: 1, name: "lifecycle_columns", sql: M001_LIFECYCLE_COLUMNS },
98
+ { version: 2, name: "provenance_columns", sql: M002_PROVENANCE_COLUMNS },
99
+ { version: 3, name: "lifecycle_tier", sql: M003_LIFECYCLE_TIER },
100
+ { version: 4, name: "identity_cache_nullable", sql: M004_IDENTITY_CACHE_NULLABLE },
101
+ { version: 5, name: "person_behavior", sql: M005_PERSON_BEHAVIOR },
102
+ { version: 6, name: "trgm_fts", sql: M006_TRGM_FTS },
103
+ ];
104
+ export async function runMigrations(conn) {
105
+ await conn.exec(`
106
+ CREATE TABLE IF NOT EXISTS schema_migrations (
107
+ version INTEGER PRIMARY KEY,
108
+ applied_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
109
+ )
110
+ `);
111
+ const applied = await conn.query("SELECT version FROM schema_migrations");
112
+ const appliedVersions = new Set(applied.rows.map((r) => r.version));
113
+ for (const m of MIGRATIONS) {
114
+ if (appliedVersions.has(m.version))
115
+ continue;
116
+ // Run the migration SQL and record the version atomically so a mid-migration
117
+ // crash cannot leave the DB with applied schema but no version record.
118
+ await conn.exec(`BEGIN; ${m.sql}; INSERT INTO schema_migrations (version) VALUES (${m.version}); COMMIT;`);
119
+ }
120
+ }
121
+ //# sourceMappingURL=index.js.map