mrplex 0.0.1

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 (319) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +284 -0
  3. package/dist/cli/config.d.ts +28 -0
  4. package/dist/cli/config.js +48 -0
  5. package/dist/cli/config.js.map +1 -0
  6. package/dist/cli/exit-codes.d.ts +13 -0
  7. package/dist/cli/exit-codes.js +39 -0
  8. package/dist/cli/exit-codes.js.map +1 -0
  9. package/dist/cli/format.d.ts +22 -0
  10. package/dist/cli/format.js +148 -0
  11. package/dist/cli/format.js.map +1 -0
  12. package/dist/cli/main.d.ts +16 -0
  13. package/dist/cli/main.js +1518 -0
  14. package/dist/cli/main.js.map +1 -0
  15. package/dist/client/kernel-client.d.ts +97 -0
  16. package/dist/client/kernel-client.js +14 -0
  17. package/dist/client/kernel-client.js.map +1 -0
  18. package/dist/client/local.d.ts +26 -0
  19. package/dist/client/local.js +103 -0
  20. package/dist/client/local.js.map +1 -0
  21. package/dist/client/remote-mcp.d.ts +35 -0
  22. package/dist/client/remote-mcp.js +174 -0
  23. package/dist/client/remote-mcp.js.map +1 -0
  24. package/dist/embed/backfill.d.ts +24 -0
  25. package/dist/embed/backfill.js +33 -0
  26. package/dist/embed/backfill.js.map +1 -0
  27. package/dist/embed/chunker.d.ts +31 -0
  28. package/dist/embed/chunker.js +121 -0
  29. package/dist/embed/chunker.js.map +1 -0
  30. package/dist/embed/cmd-hook.d.ts +21 -0
  31. package/dist/embed/cmd-hook.js +100 -0
  32. package/dist/embed/cmd-hook.js.map +1 -0
  33. package/dist/embed/config.d.ts +61 -0
  34. package/dist/embed/config.js +109 -0
  35. package/dist/embed/config.js.map +1 -0
  36. package/dist/embed/hook.d.ts +38 -0
  37. package/dist/embed/hook.js +56 -0
  38. package/dist/embed/hook.js.map +1 -0
  39. package/dist/embed/http-hook.d.ts +13 -0
  40. package/dist/embed/http-hook.js +39 -0
  41. package/dist/embed/http-hook.js.map +1 -0
  42. package/dist/embed/worker.d.ts +62 -0
  43. package/dist/embed/worker.js +228 -0
  44. package/dist/embed/worker.js.map +1 -0
  45. package/dist/fixtures/hwe/characters/albion-ever.md +12 -0
  46. package/dist/fixtures/hwe/characters/cent.md +11 -0
  47. package/dist/fixtures/hwe/concepts/cent-demiurge-resonance.md +10 -0
  48. package/dist/fixtures/hwe/concepts/phase-looper.md +10 -0
  49. package/dist/fixtures/hwe/entities/demiurge.md +11 -0
  50. package/dist/fixtures/hwe/entities/monad.md +11 -0
  51. package/dist/fixtures/hwe/moc/globocorp-network.md +19 -0
  52. package/dist/fixtures/hwe/organizations/globocorp.md +11 -0
  53. package/dist/fixtures/hwe/readme.md +24 -0
  54. package/dist/fixtures/starship/crew/aria-okonkwo.md +14 -0
  55. package/dist/fixtures/starship/crew/bexley-orr.md +14 -0
  56. package/dist/fixtures/starship/crew/dax-thorne.md +14 -0
  57. package/dist/fixtures/starship/crew/isolde-marsh.md +16 -0
  58. package/dist/fixtures/starship/crew/kestrel-vance.md +15 -0
  59. package/dist/fixtures/starship/crew/quill-vasquez.md +14 -0
  60. package/dist/fixtures/starship/crew/soren-halloway.md +16 -0
  61. package/dist/fixtures/starship/encounters/the-drift-choir.md +14 -0
  62. package/dist/fixtures/starship/encounters/the-hollow-signal.md +16 -0
  63. package/dist/fixtures/starship/encounters/the-wandering-buoy.md +14 -0
  64. package/dist/fixtures/starship/equipment/coolant-loop-b.md +13 -0
  65. package/dist/fixtures/starship/equipment/emergency-ration-bars.md +12 -0
  66. package/dist/fixtures/starship/equipment/long-range-sensors.md +13 -0
  67. package/dist/fixtures/starship/equipment/plasma-manifold-3.md +15 -0
  68. package/dist/fixtures/starship/equipment/shuttle-corvid.md +13 -0
  69. package/dist/fixtures/starship/logs/marsh-4419-1.md +13 -0
  70. package/dist/fixtures/starship/logs/okonkwo-4415-1.md +13 -0
  71. package/dist/fixtures/starship/logs/orr-4413-1.md +13 -0
  72. package/dist/fixtures/starship/logs/orr-4420-1.md +12 -0
  73. package/dist/fixtures/starship/logs/thorne-4413-2.md +13 -0
  74. package/dist/fixtures/starship/logs/vance-4419-2.md +13 -0
  75. package/dist/fixtures/starship/misc/the-galley-ficus.md +11 -0
  76. package/dist/fixtures/starship/missions/the-cinder-run.md +17 -0
  77. package/dist/fixtures/starship/missions/the-drift-choir.md +17 -0
  78. package/dist/fixtures/starship/missions/the-hollow-signal.md +17 -0
  79. package/dist/fixtures/starship/missions/the-silent-beacon.md +17 -0
  80. package/dist/fixtures/starship/moc/crew.md +19 -0
  81. package/dist/fixtures/starship/moc/encounters.md +14 -0
  82. package/dist/fixtures/starship/moc/missions.md +15 -0
  83. package/dist/fixtures/starship/readme.md +60 -0
  84. package/dist/index.d.ts +1 -0
  85. package/dist/index.js +3 -0
  86. package/dist/index.js.map +1 -0
  87. package/dist/kernel/auth/glob.d.ts +46 -0
  88. package/dist/kernel/auth/glob.js +112 -0
  89. package/dist/kernel/auth/glob.js.map +1 -0
  90. package/dist/kernel/auth/scope.d.ts +53 -0
  91. package/dist/kernel/auth/scope.js +83 -0
  92. package/dist/kernel/auth/scope.js.map +1 -0
  93. package/dist/kernel/casefold.d.ts +37 -0
  94. package/dist/kernel/casefold.js +44 -0
  95. package/dist/kernel/casefold.js.map +1 -0
  96. package/dist/kernel/constants.d.ts +21 -0
  97. package/dist/kernel/constants.js +22 -0
  98. package/dist/kernel/constants.js.map +1 -0
  99. package/dist/kernel/context.d.ts +70 -0
  100. package/dist/kernel/context.js +114 -0
  101. package/dist/kernel/context.js.map +1 -0
  102. package/dist/kernel/deletion.d.ts +50 -0
  103. package/dist/kernel/deletion.js +83 -0
  104. package/dist/kernel/deletion.js.map +1 -0
  105. package/dist/kernel/diff.d.ts +36 -0
  106. package/dist/kernel/diff.js +61 -0
  107. package/dist/kernel/diff.js.map +1 -0
  108. package/dist/kernel/errors.d.ts +37 -0
  109. package/dist/kernel/errors.js +55 -0
  110. package/dist/kernel/errors.js.map +1 -0
  111. package/dist/kernel/frontmatter-input.d.ts +32 -0
  112. package/dist/kernel/frontmatter-input.js +85 -0
  113. package/dist/kernel/frontmatter-input.js.map +1 -0
  114. package/dist/kernel/graph.d.ts +34 -0
  115. package/dist/kernel/graph.js +559 -0
  116. package/dist/kernel/graph.js.map +1 -0
  117. package/dist/kernel/history.d.ts +74 -0
  118. package/dist/kernel/history.js +143 -0
  119. package/dist/kernel/history.js.map +1 -0
  120. package/dist/kernel/kernel.d.ts +162 -0
  121. package/dist/kernel/kernel.js +675 -0
  122. package/dist/kernel/kernel.js.map +1 -0
  123. package/dist/kernel/path-config.d.ts +101 -0
  124. package/dist/kernel/path-config.js +171 -0
  125. package/dist/kernel/path-config.js.map +1 -0
  126. package/dist/kernel/query/ast.d.ts +24 -0
  127. package/dist/kernel/query/ast.js +52 -0
  128. package/dist/kernel/query/ast.js.map +1 -0
  129. package/dist/kernel/query/cel-parse.d.ts +37 -0
  130. package/dist/kernel/query/cel-parse.js +88 -0
  131. package/dist/kernel/query/cel-parse.js.map +1 -0
  132. package/dist/kernel/query/degrees.d.ts +31 -0
  133. package/dist/kernel/query/degrees.js +135 -0
  134. package/dist/kernel/query/degrees.js.map +1 -0
  135. package/dist/kernel/query/graph-ast.d.ts +51 -0
  136. package/dist/kernel/query/graph-ast.js +139 -0
  137. package/dist/kernel/query/graph-ast.js.map +1 -0
  138. package/dist/kernel/query/query.d.ts +56 -0
  139. package/dist/kernel/query/query.js +276 -0
  140. package/dist/kernel/query/query.js.map +1 -0
  141. package/dist/kernel/validation.d.ts +64 -0
  142. package/dist/kernel/validation.js +183 -0
  143. package/dist/kernel/validation.js.map +1 -0
  144. package/dist/kernel/version-id.d.ts +10 -0
  145. package/dist/kernel/version-id.js +21 -0
  146. package/dist/kernel/version-id.js.map +1 -0
  147. package/dist/kernel/wire.d.ts +148 -0
  148. package/dist/kernel/wire.js +6 -0
  149. package/dist/kernel/wire.js.map +1 -0
  150. package/dist/links/backfill.d.ts +28 -0
  151. package/dist/links/backfill.js +33 -0
  152. package/dist/links/backfill.js.map +1 -0
  153. package/dist/links/extract.d.ts +29 -0
  154. package/dist/links/extract.js +233 -0
  155. package/dist/links/extract.js.map +1 -0
  156. package/dist/links/link-config.d.ts +70 -0
  157. package/dist/links/link-config.js +107 -0
  158. package/dist/links/link-config.js.map +1 -0
  159. package/dist/links/maintain.d.ts +37 -0
  160. package/dist/links/maintain.js +91 -0
  161. package/dist/links/maintain.js.map +1 -0
  162. package/dist/links/repair.d.ts +46 -0
  163. package/dist/links/repair.js +96 -0
  164. package/dist/links/repair.js.map +1 -0
  165. package/dist/links/resolve.d.ts +41 -0
  166. package/dist/links/resolve.js +121 -0
  167. package/dist/links/resolve.js.map +1 -0
  168. package/dist/links/stale.d.ts +32 -0
  169. package/dist/links/stale.js +73 -0
  170. package/dist/links/stale.js.map +1 -0
  171. package/dist/markdown/content-hash.d.ts +34 -0
  172. package/dist/markdown/content-hash.js +46 -0
  173. package/dist/markdown/content-hash.js.map +1 -0
  174. package/dist/markdown/frontmatter.d.ts +69 -0
  175. package/dist/markdown/frontmatter.js +147 -0
  176. package/dist/markdown/frontmatter.js.map +1 -0
  177. package/dist/markdown/hash-backfill.d.ts +22 -0
  178. package/dist/markdown/hash-backfill.js +43 -0
  179. package/dist/markdown/hash-backfill.js.map +1 -0
  180. package/dist/mcp/query-syntax.d.ts +20 -0
  181. package/dist/mcp/query-syntax.js +194 -0
  182. package/dist/mcp/query-syntax.js.map +1 -0
  183. package/dist/mcp/render.d.ts +31 -0
  184. package/dist/mcp/render.js +110 -0
  185. package/dist/mcp/render.js.map +1 -0
  186. package/dist/mcp/server.d.ts +60 -0
  187. package/dist/mcp/server.js +170 -0
  188. package/dist/mcp/server.js.map +1 -0
  189. package/dist/mcp/tools.d.ts +93 -0
  190. package/dist/mcp/tools.js +1218 -0
  191. package/dist/mcp/tools.js.map +1 -0
  192. package/dist/rest/conditional.d.ts +37 -0
  193. package/dist/rest/conditional.js +58 -0
  194. package/dist/rest/conditional.js.map +1 -0
  195. package/dist/rest/negotiate.d.ts +33 -0
  196. package/dist/rest/negotiate.js +54 -0
  197. package/dist/rest/negotiate.js.map +1 -0
  198. package/dist/rest/routes.d.ts +37 -0
  199. package/dist/rest/routes.js +744 -0
  200. package/dist/rest/routes.js.map +1 -0
  201. package/dist/seed/fixture-seed.d.ts +35 -0
  202. package/dist/seed/fixture-seed.js +75 -0
  203. package/dist/seed/fixture-seed.js.map +1 -0
  204. package/dist/seed/starship-config.d.ts +3 -0
  205. package/dist/seed/starship-config.js +5 -0
  206. package/dist/seed/starship-config.js.map +1 -0
  207. package/dist/server/headers.d.ts +36 -0
  208. package/dist/server/headers.js +30 -0
  209. package/dist/server/headers.js.map +1 -0
  210. package/dist/server/http-error.d.ts +53 -0
  211. package/dist/server/http-error.js +104 -0
  212. package/dist/server/http-error.js.map +1 -0
  213. package/dist/server/serve.d.ts +56 -0
  214. package/dist/server/serve.js +135 -0
  215. package/dist/server/serve.js.map +1 -0
  216. package/dist/shell/audit.d.ts +32 -0
  217. package/dist/shell/audit.js +28 -0
  218. package/dist/shell/audit.js.map +1 -0
  219. package/dist/shell/guard.d.ts +50 -0
  220. package/dist/shell/guard.js +176 -0
  221. package/dist/shell/guard.js.map +1 -0
  222. package/dist/shell/keys.d.ts +36 -0
  223. package/dist/shell/keys.js +64 -0
  224. package/dist/shell/keys.js.map +1 -0
  225. package/dist/shell/login.d.ts +56 -0
  226. package/dist/shell/login.js +130 -0
  227. package/dist/shell/login.js.map +1 -0
  228. package/dist/shell/oidc.d.ts +62 -0
  229. package/dist/shell/oidc.js +102 -0
  230. package/dist/shell/oidc.js.map +1 -0
  231. package/dist/shell/policy.d.ts +100 -0
  232. package/dist/shell/policy.js +232 -0
  233. package/dist/shell/policy.js.map +1 -0
  234. package/dist/shell/proxy-policy.d.ts +34 -0
  235. package/dist/shell/proxy-policy.js +120 -0
  236. package/dist/shell/proxy-policy.js.map +1 -0
  237. package/dist/shell/proxy.d.ts +47 -0
  238. package/dist/shell/proxy.js +253 -0
  239. package/dist/shell/proxy.js.map +1 -0
  240. package/dist/shell/serve.d.ts +86 -0
  241. package/dist/shell/serve.js +0 -0
  242. package/dist/shell/serve.js.map +1 -0
  243. package/dist/shell/stdio.d.ts +55 -0
  244. package/dist/shell/stdio.js +63 -0
  245. package/dist/shell/stdio.js.map +1 -0
  246. package/dist/storage/registry.d.ts +20 -0
  247. package/dist/storage/registry.js +38 -0
  248. package/dist/storage/registry.js.map +1 -0
  249. package/dist/storage/search-plan.d.ts +93 -0
  250. package/dist/storage/search-plan.js +15 -0
  251. package/dist/storage/search-plan.js.map +1 -0
  252. package/dist/storage/types.d.ts +448 -0
  253. package/dist/storage/types.js +14 -0
  254. package/dist/storage/types.js.map +1 -0
  255. package/dist/storage/versions-since.d.ts +72 -0
  256. package/dist/storage/versions-since.js +92 -0
  257. package/dist/storage/versions-since.js.map +1 -0
  258. package/dist/storage-postgres/adapter.d.ts +17 -0
  259. package/dist/storage-postgres/adapter.js +782 -0
  260. package/dist/storage-postgres/adapter.js.map +1 -0
  261. package/dist/storage-postgres/compile-postgres.d.ts +22 -0
  262. package/dist/storage-postgres/compile-postgres.js +830 -0
  263. package/dist/storage-postgres/compile-postgres.js.map +1 -0
  264. package/dist/storage-postgres/errors.d.ts +34 -0
  265. package/dist/storage-postgres/errors.js +50 -0
  266. package/dist/storage-postgres/errors.js.map +1 -0
  267. package/dist/storage-postgres/migrations/0001_init.sql +113 -0
  268. package/dist/storage-postgres/migrations/0002_content_hash.sql +7 -0
  269. package/dist/storage-postgres/migrations/index.d.ts +22 -0
  270. package/dist/storage-postgres/migrations/index.js +70 -0
  271. package/dist/storage-postgres/migrations/index.js.map +1 -0
  272. package/dist/storage-sqlite/adapter.d.ts +2 -0
  273. package/dist/storage-sqlite/adapter.js +688 -0
  274. package/dist/storage-sqlite/adapter.js.map +1 -0
  275. package/dist/storage-sqlite/compile-filter.d.ts +41 -0
  276. package/dist/storage-sqlite/compile-filter.js +881 -0
  277. package/dist/storage-sqlite/compile-filter.js.map +1 -0
  278. package/dist/storage-sqlite/compile-sqlite.d.ts +19 -0
  279. package/dist/storage-sqlite/compile-sqlite.js +176 -0
  280. package/dist/storage-sqlite/compile-sqlite.js.map +1 -0
  281. package/dist/storage-sqlite/migrations/0001_init.sql +123 -0
  282. package/dist/storage-sqlite/migrations/0002_content_hash.sql +7 -0
  283. package/dist/storage-sqlite/migrations/index.d.ts +6 -0
  284. package/dist/storage-sqlite/migrations/index.js +41 -0
  285. package/dist/storage-sqlite/migrations/index.js.map +1 -0
  286. package/dist/storage-sqlite/vec.d.ts +40 -0
  287. package/dist/storage-sqlite/vec.js +62 -0
  288. package/dist/storage-sqlite/vec.js.map +1 -0
  289. package/dist/sync/cursor.d.ts +36 -0
  290. package/dist/sync/cursor.js +66 -0
  291. package/dist/sync/cursor.js.map +1 -0
  292. package/dist/sync/daemon.d.ts +40 -0
  293. package/dist/sync/daemon.js +202 -0
  294. package/dist/sync/daemon.js.map +1 -0
  295. package/dist/sync/feed.d.ts +38 -0
  296. package/dist/sync/feed.js +125 -0
  297. package/dist/sync/feed.js.map +1 -0
  298. package/dist/sync/fs-store.d.ts +8 -0
  299. package/dist/sync/fs-store.js +76 -0
  300. package/dist/sync/fs-store.js.map +1 -0
  301. package/dist/sync/intrinsics.d.ts +52 -0
  302. package/dist/sync/intrinsics.js +76 -0
  303. package/dist/sync/intrinsics.js.map +1 -0
  304. package/dist/sync/paths.d.ts +38 -0
  305. package/dist/sync/paths.js +56 -0
  306. package/dist/sync/paths.js.map +1 -0
  307. package/dist/sync/push.d.ts +48 -0
  308. package/dist/sync/push.js +328 -0
  309. package/dist/sync/push.js.map +1 -0
  310. package/dist/sync/reconcile.d.ts +54 -0
  311. package/dist/sync/reconcile.js +252 -0
  312. package/dist/sync/reconcile.js.map +1 -0
  313. package/dist/sync/run.d.ts +27 -0
  314. package/dist/sync/run.js +46 -0
  315. package/dist/sync/run.js.map +1 -0
  316. package/dist/version.d.ts +2 -0
  317. package/dist/version.js +5 -0
  318. package/dist/version.js.map +1 -0
  319. package/package.json +80 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-postgres.js","sourceRoot":"","sources":["../../src/storage-postgres/compile-postgres.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Postgres SQLSTATE → kernel error mapping (m5-plan WS4).
3
+ *
4
+ * The adapter surfaces:
5
+ * - 23505 unique_violation on a versions partial-unique index →
6
+ * retryable at the tx layer. Under REPEATABLE READ two concurrent
7
+ * kernel calls can both pass the app-level pre-check
8
+ * (create_conflict / stale_prev / path_taken) and race to insert;
9
+ * one wins, the other hits 23505 on the partial index. Re-running
10
+ * the tx makes the losing caller's pre-check hit the fresh state
11
+ * and raise the right KernelError. See adapter.ts `tx()`.
12
+ * - 2201B invalid_regular_expression → filter_invalid (compile-time
13
+ * regex from CEL matches()).
14
+ * - 40001 / 40P01 serialization_failure / deadlock_detected → retried
15
+ * with backoff and, on exhaustion, rethrown.
16
+ *
17
+ * Anything else propagates unchanged.
18
+ */
19
+ export type PgError = {
20
+ code?: string;
21
+ message?: string;
22
+ constraint?: string;
23
+ };
24
+ export declare function isUniqueViolation(err: unknown): err is PgError;
25
+ export declare function isRegexInvalid(err: unknown): err is PgError;
26
+ export declare function isSerializationRetryable(err: unknown): err is PgError;
27
+ /**
28
+ * The two partial unique indexes we care about — from
29
+ * migrations/0001_init.sql. Version_insert catches 23505 on either
30
+ * and marks the error retryable; the retried tx's app-level check
31
+ * produces the correct KernelError.
32
+ */
33
+ export declare const VERSION_UNIQUE_CONSTRAINTS: Set<string>;
34
+ export declare function isVersionRaceViolation(err: unknown): boolean;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Postgres SQLSTATE → kernel error mapping (m5-plan WS4).
3
+ *
4
+ * The adapter surfaces:
5
+ * - 23505 unique_violation on a versions partial-unique index →
6
+ * retryable at the tx layer. Under REPEATABLE READ two concurrent
7
+ * kernel calls can both pass the app-level pre-check
8
+ * (create_conflict / stale_prev / path_taken) and race to insert;
9
+ * one wins, the other hits 23505 on the partial index. Re-running
10
+ * the tx makes the losing caller's pre-check hit the fresh state
11
+ * and raise the right KernelError. See adapter.ts `tx()`.
12
+ * - 2201B invalid_regular_expression → filter_invalid (compile-time
13
+ * regex from CEL matches()).
14
+ * - 40001 / 40P01 serialization_failure / deadlock_detected → retried
15
+ * with backoff and, on exhaustion, rethrown.
16
+ *
17
+ * Anything else propagates unchanged.
18
+ */
19
+ export function isUniqueViolation(err) {
20
+ return isPgErr(err) && err.code === "23505";
21
+ }
22
+ export function isRegexInvalid(err) {
23
+ return isPgErr(err) && err.code === "2201B";
24
+ }
25
+ export function isSerializationRetryable(err) {
26
+ return isPgErr(err) && (err.code === "40001" || err.code === "40P01");
27
+ }
28
+ /**
29
+ * The two partial unique indexes we care about — from
30
+ * migrations/0001_init.sql. Version_insert catches 23505 on either
31
+ * and marks the error retryable; the retried tx's app-level check
32
+ * produces the correct KernelError.
33
+ */
34
+ export const VERSION_UNIQUE_CONSTRAINTS = new Set([
35
+ "versions_document_current_uidx",
36
+ "versions_repo_path_current_uidx",
37
+ // Case-insensitive path twin (§3.5.1, 0002_casefold.sql) — a concurrent
38
+ // case-collision races here; the retried tx's folded pre-check raises
39
+ // path_taken / create_conflict.
40
+ "versions_repo_pathnorm_current_uidx",
41
+ ]);
42
+ export function isVersionRaceViolation(err) {
43
+ if (!isUniqueViolation(err))
44
+ return false;
45
+ return err.constraint !== undefined && VERSION_UNIQUE_CONSTRAINTS.has(err.constraint);
46
+ }
47
+ function isPgErr(err) {
48
+ return typeof err === "object" && err !== null && "code" in err;
49
+ }
50
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/storage-postgres/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAY;IACnD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;AACxE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAS;IACxD,gCAAgC;IAChC,iCAAiC;IACjC,wEAAwE;IACxE,sEAAsE;IACtE,gCAAgC;IAChC,qCAAqC;CACtC,CAAC,CAAC;AAEH,MAAM,UAAU,sBAAsB,CAAC,GAAY;IACjD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,OAAO,CAAC,GAAY;IAC3B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,MAAM,IAAI,GAAG,CAAC;AAClE,CAAC"}
@@ -0,0 +1,113 @@
1
+ -- mrplex schema (Postgres) — parity with docs/design.md §3.2.
2
+ --
3
+ -- Fresh no-auth baseline: the pre-noauth migration chain (0001 init, 0002
4
+ -- casefold, 0003 links) is collapsed into this single file. There is no
5
+ -- users or api_tokens table — mrplex trusts its caller (design §8); authorship
6
+ -- is one opaque string on versions.author. Pre-noauth databases are refused at
7
+ -- open (adapter probes for api_tokens). Future migrations resume at 0002.
8
+ --
9
+ -- Dialect notes:
10
+ -- * Ids are bigserial — internal, never crossing the wire (§3.3).
11
+ -- * Timestamps are text in ISO 8601 UTC — byte-exact parity with SQLite.
12
+ -- * Frontmatter is jsonb + a single GIN index (§5.2).
13
+ -- * Vector column is dimensionless (§7.2.1) — v1 is brute-force.
14
+ -- * `fts_tsv` is a generated tsvector; GIN over it powers the text branch.
15
+ -- * Case-folded identity runs off derived *_norm columns computed in the
16
+ -- kernel (normalizeKey, NFC + invariant lowercase), not SQL lower()/citext,
17
+ -- to stay byte-identical with SQLite (§3.5.1, §7.2 parity).
18
+
19
+ create extension if not exists vector;
20
+
21
+ create table repos (
22
+ id bigserial primary key,
23
+ slug text not null unique,
24
+ slug_norm text not null,
25
+ path_config jsonb,
26
+ link_config jsonb,
27
+ created_at text not null
28
+ );
29
+
30
+ create unique index repos_slugnorm_uidx on repos(slug_norm);
31
+
32
+ create table documents (
33
+ id bigserial primary key,
34
+ repo_id bigint not null references repos(id)
35
+ );
36
+
37
+ create index documents_repo_id_idx on documents(repo_id);
38
+
39
+ create table versions (
40
+ id bigserial primary key,
41
+ document_id bigint not null references documents(id),
42
+ repo_id bigint not null references repos(id),
43
+ prev_id bigint references versions(id),
44
+ next_id bigint references versions(id),
45
+ path text not null,
46
+ path_norm text not null,
47
+ frontmatter_raw text not null,
48
+ frontmatter jsonb not null,
49
+ body text not null,
50
+ author text not null, -- opaque caller-supplied string
51
+ created_at text not null,
52
+ fts_tsv tsvector generated always as (to_tsvector('english', body)) stored
53
+ );
54
+
55
+ -- Partial unique indexes — verbatim §3.2:
56
+ create unique index versions_document_current_uidx
57
+ on versions(document_id) where next_id is null;
58
+
59
+ create unique index versions_repo_path_current_uidx
60
+ on versions(repo_id, path) where next_id is null;
61
+
62
+ create index versions_document_id_idx on versions(document_id);
63
+
64
+ -- One live document per NORMALIZED path in a repo (case-insensitive twin;
65
+ -- live rows only, deleted rows exempt — §3.5.1).
66
+ create unique index versions_repo_pathnorm_current_uidx
67
+ on versions(repo_id, path_norm) where next_id is null;
68
+
69
+ -- Frontmatter jsonb GIN (§5.2 — one index for both scalar `=` and list `?|`).
70
+ create index versions_frontmatter_gin on versions using gin (frontmatter jsonb_path_ops);
71
+
72
+ -- FTS index over current versions' bodies; the query filters next_id IS NULL.
73
+ create index versions_fts_gin on versions using gin (fts_tsv);
74
+
75
+ create table chunks (
76
+ version_id bigint not null references versions(id),
77
+ ix integer not null,
78
+ text text not null,
79
+ text_hash text not null,
80
+ model text not null,
81
+ embedding vector,
82
+ primary key (version_id, ix)
83
+ );
84
+
85
+ create index chunks_hash_model_idx on chunks(text_hash, model);
86
+
87
+ create table embedding_backlog (
88
+ version_id bigint primary key references versions(id),
89
+ attempts integer not null,
90
+ last_error text,
91
+ next_retry_at text
92
+ );
93
+
94
+ -- Links derived index — design §11.2. One row per outbound STATIC edge from
95
+ -- the live corpus, doc-keyed. Binds to target document identity (target_id),
96
+ -- so moves never churn inbound edges; dangling rows (target_id NULL) rebind
97
+ -- when a document appears at target_norm's folded path. Never source of truth.
98
+ create table links (
99
+ repo_id bigint not null references repos(id),
100
+ source_id bigint not null references documents(id),
101
+ ord integer not null,
102
+ field text not null,
103
+ target_raw text not null,
104
+ target_norm text not null,
105
+ target_id bigint references documents(id),
106
+ primary key (source_id, ord)
107
+ );
108
+
109
+ -- Backlinks direction (others → me).
110
+ create index links_target_id_idx on links(target_id) where target_id is not null;
111
+
112
+ -- Dangling re-resolution (§11.2): repo-scoped, folded-target lookup.
113
+ create index links_dangling_idx on links(repo_id, target_norm) where target_id is null;
@@ -0,0 +1,7 @@
1
+ -- $content_hash intrinsic (sync/history plan §2.3) — Postgres twin.
2
+ --
3
+ -- Nullable so the migration is instant; null means "not yet backfilled" and
4
+ -- reads compute on the fly during the transition. version_insert computes the
5
+ -- value inside the same tx as the insert, so no new row lacks its hash.
6
+ alter table versions add column content_hash text;
7
+ create index versions_content_hash_idx on versions(content_hash);
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Postgres migration loader — forward-only, idempotent (m5-plan WS4).
3
+ *
4
+ * Progress is tracked in a `schema_migrations` table. An advisory
5
+ * transactional lock (pg_advisory_xact_lock) serializes concurrent
6
+ * migrate() invocations from parallel processes so at most one worker
7
+ * applies a given migration.
8
+ */
9
+ import type { PoolClient } from "pg";
10
+ /**
11
+ * Apply pending migrations to the database on the given client.
12
+ *
13
+ * **Precondition:** the caller must pass a client that is **not** inside
14
+ * an active transaction — migrate() opens its own `begin` and holds a
15
+ * `pg_advisory_xact_lock` for the duration. A client already in a tx
16
+ * either raises `25001 active_sql_transaction` here (server default) or
17
+ * silently rolls the migration into the outer tx (breaking the
18
+ * advisory-lock scope). The adapter's `open()` satisfies this by
19
+ * acquiring a fresh pool client and calling migrate() on it before
20
+ * anything else runs.
21
+ */
22
+ export declare function migrate(client: PoolClient): Promise<void>;
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Postgres migration loader — forward-only, idempotent (m5-plan WS4).
3
+ *
4
+ * Progress is tracked in a `schema_migrations` table. An advisory
5
+ * transactional lock (pg_advisory_xact_lock) serializes concurrent
6
+ * migrate() invocations from parallel processes so at most one worker
7
+ * applies a given migration.
8
+ */
9
+ import { readFileSync, readdirSync } from "node:fs";
10
+ import { dirname, join } from "node:path";
11
+ import { fileURLToPath } from "node:url";
12
+ const MIGRATIONS_DIR = dirname(fileURLToPath(import.meta.url));
13
+ // Arbitrary application-defined lock id — collision-free within mrplex.
14
+ const MIGRATION_LOCK_ID = 0x6d72506c6578n; // "mrPlex" in hex bytes.
15
+ function loadMigrations() {
16
+ const files = readdirSync(MIGRATIONS_DIR)
17
+ .filter((f) => f.endsWith(".sql"))
18
+ .sort();
19
+ return files.map((name) => {
20
+ const match = name.match(/^(\d+)_.+\.sql$/);
21
+ if (!match || !match[1]) {
22
+ throw new Error(`migration file "${name}" must match <NNNN>_<name>.sql`);
23
+ }
24
+ const version = Number.parseInt(match[1], 10);
25
+ const sql = readFileSync(join(MIGRATIONS_DIR, name), "utf8");
26
+ return { version, name, sql };
27
+ });
28
+ }
29
+ /**
30
+ * Apply pending migrations to the database on the given client.
31
+ *
32
+ * **Precondition:** the caller must pass a client that is **not** inside
33
+ * an active transaction — migrate() opens its own `begin` and holds a
34
+ * `pg_advisory_xact_lock` for the duration. A client already in a tx
35
+ * either raises `25001 active_sql_transaction` here (server default) or
36
+ * silently rolls the migration into the outer tx (breaking the
37
+ * advisory-lock scope). The adapter's `open()` satisfies this by
38
+ * acquiring a fresh pool client and calling migrate() on it before
39
+ * anything else runs.
40
+ */
41
+ export async function migrate(client) {
42
+ const migrations = loadMigrations();
43
+ // The lock lives for the transaction; multi-instance safety.
44
+ await client.query("begin");
45
+ try {
46
+ await client.query("select pg_advisory_xact_lock($1)", [MIGRATION_LOCK_ID]);
47
+ await client.query(`create table if not exists schema_migrations (
48
+ version integer primary key,
49
+ name text not null,
50
+ applied_at timestamptz not null default now()
51
+ )`);
52
+ const applied = await client.query("select version from schema_migrations");
53
+ const seen = new Set(applied.rows.map((r) => r.version));
54
+ for (const m of migrations) {
55
+ if (seen.has(m.version))
56
+ continue;
57
+ await client.query(m.sql);
58
+ await client.query("insert into schema_migrations(version, name) values ($1, $2)", [
59
+ m.version,
60
+ m.name,
61
+ ]);
62
+ }
63
+ await client.query("commit");
64
+ }
65
+ catch (err) {
66
+ await client.query("rollback").catch(() => { });
67
+ throw err;
68
+ }
69
+ }
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage-postgres/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,wEAAwE;AACxE,MAAM,iBAAiB,GAAG,eAAgB,CAAC,CAAC,yBAAyB;AAIrE,SAAS,cAAc;IACrB,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC;SACtC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACjC,IAAI,EAAE,CAAC;IACV,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,gCAAgC,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAkB;IAC9C,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,6DAA6D;IAC7D,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC5E,MAAM,MAAM,CAAC,KAAK,CAChB;;;;SAIG,CACJ,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAChC,uCAAuC,CACxC,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACzD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;gBAAE,SAAS;YAClC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,MAAM,CAAC,KAAK,CAAC,8DAA8D,EAAE;gBACjF,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,IAAI;aACP,CAAC,CAAC;QACL,CAAC;QACD,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { StorageAdapter } from "../storage/types.js";
2
+ export declare const sqliteAdapter: StorageAdapter;