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":"routes.js","sourceRoot":"","sources":["../../src/rest/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Load markdown fixture folders into a repo — shared by the dev seed script,
3
+ * integration tests, and `npm run seed`.
4
+ */
5
+ import { type LinkConfigOverride } from "../links/link-config.js";
6
+ import type { Storage } from "../storage/types.js";
7
+ export type SeedRepoOptions = {
8
+ /** Fixture folder name under fixtures/ (e.g. "starship"). */
9
+ fixtureDir: string;
10
+ /** Repo slug to create and seed into. */
11
+ repoSlug: string;
12
+ /** Root directory containing fixture subfolders. Defaults via {@link defaultFixturesRoot}. */
13
+ fixturesRoot?: string;
14
+ /** Opaque author string stamped on seeded versions. Defaults to "alice". */
15
+ author?: string;
16
+ /** Per-repo link-config override; sets link_config before backfill. */
17
+ linkConfig?: LinkConfigOverride | null;
18
+ /** Deterministic clock — returns an ISO timestamp per call. */
19
+ clock?: () => string;
20
+ };
21
+ export type SeedRepoResult = {
22
+ repoId: number;
23
+ documents: number;
24
+ edges: number;
25
+ };
26
+ /** Resolve fixtures/ from source (src/seed) or compiled (dist/seed → dist/fixtures). */
27
+ export declare function defaultFixturesRoot(fromModuleUrl: string): string;
28
+ export declare function defaultSeedClock(): () => string;
29
+ /**
30
+ * Seed one fixture folder into one repo, then backfill its link index.
31
+ *
32
+ * Adapter-level writes bypass the kernel's in-transaction link maintenance;
33
+ * the closing backfill rebuilds the derived index.
34
+ */
35
+ export declare function seedRepo(storage: Storage, opts: SeedRepoOptions): Promise<SeedRepoResult>;
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Load markdown fixture folders into a repo — shared by the dev seed script,
3
+ * integration tests, and `npm run seed`.
4
+ */
5
+ import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
6
+ import { dirname, join, relative } from "node:path";
7
+ import { fileURLToPath } from "node:url";
8
+ import { backfillRepoLinks } from "../links/backfill.js";
9
+ import { HARDCODED_DEFAULTS as LINK_DEFAULTS, effectiveLinkConfig, } from "../links/link-config.js";
10
+ import { parse as parseFrontmatter, split } from "../markdown/frontmatter.js";
11
+ /** Resolve fixtures/ from source (src/seed) or compiled (dist/seed → dist/fixtures). */
12
+ export function defaultFixturesRoot(fromModuleUrl) {
13
+ const here = dirname(fileURLToPath(fromModuleUrl));
14
+ const distFixtures = join(here, "..", "fixtures");
15
+ if (existsSync(distFixtures))
16
+ return distFixtures;
17
+ return join(here, "..", "..", "fixtures");
18
+ }
19
+ function walkMarkdown(dir, out = []) {
20
+ for (const name of readdirSync(dir)) {
21
+ const p = join(dir, name);
22
+ const s = statSync(p);
23
+ if (s.isDirectory())
24
+ walkMarkdown(p, out);
25
+ else if (name.endsWith(".md"))
26
+ out.push(p);
27
+ }
28
+ return out;
29
+ }
30
+ export function defaultSeedClock() {
31
+ let n = 0;
32
+ return () => new Date(Date.UTC(2026, 7, 13, 0, 0, n++)).toISOString();
33
+ }
34
+ /**
35
+ * Seed one fixture folder into one repo, then backfill its link index.
36
+ *
37
+ * Adapter-level writes bypass the kernel's in-transaction link maintenance;
38
+ * the closing backfill rebuilds the derived index.
39
+ */
40
+ export async function seedRepo(storage, opts) {
41
+ const author = opts.author ?? "alice";
42
+ const clock = opts.clock ?? defaultSeedClock();
43
+ const fixturesRoot = opts.fixturesRoot ?? defaultFixturesRoot(import.meta.url);
44
+ if (await storage.repos_by_slug(opts.repoSlug)) {
45
+ throw new Error(`seed: repo "${opts.repoSlug}" already exists — refusing to seed over it.`);
46
+ }
47
+ const repo = await storage.repos_create({ slug: opts.repoSlug, created_at: clock() });
48
+ if (opts.linkConfig != null) {
49
+ await storage.repos_set_link_config(repo.id, JSON.stringify(opts.linkConfig));
50
+ }
51
+ const root = join(fixturesRoot, opts.fixtureDir);
52
+ const files = walkMarkdown(root).sort();
53
+ for (const file of files) {
54
+ const rel = relative(root, file).split("\\").join("/");
55
+ const raw = readFileSync(file, "utf8");
56
+ const { frontmatter_raw, body } = split(raw);
57
+ const frontmatter = parseFrontmatter(frontmatter_raw);
58
+ const doc = await storage.documents_create(repo.id);
59
+ await storage.version_insert({
60
+ document_id: doc.id,
61
+ repo_id: repo.id,
62
+ prev_id: null,
63
+ path: rel,
64
+ frontmatter_raw,
65
+ frontmatter,
66
+ body,
67
+ author,
68
+ created_at: clock(),
69
+ });
70
+ }
71
+ const config = effectiveLinkConfig(LINK_DEFAULTS, opts.linkConfig ?? null);
72
+ const { edges } = await backfillRepoLinks(storage, repo.id, config);
73
+ return { repoId: repo.id, documents: files.length, edges };
74
+ }
75
+ //# sourceMappingURL=fixture-seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixture-seed.js","sourceRoot":"","sources":["../../src/seed/fixture-seed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { LinkConfigOverride } from "../links/link-config.js";
2
+ /** Frontmatter fields the starship fixture opts into the link graph. */
3
+ export declare const STARSHIP_LINK_CONFIG: LinkConfigOverride;
@@ -0,0 +1,5 @@
1
+ /** Frontmatter fields the starship fixture opts into the link graph. */
2
+ export const STARSHIP_LINK_CONFIG = {
3
+ fields: ["reports_to", "commander", "crew", "author", "mission", "maintainer", "related"],
4
+ };
5
+ //# sourceMappingURL=starship-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starship-config.js","sourceRoot":"","sources":["../../src/seed/starship-config.ts"],"names":[],"mappings":"AAEA,wEAAwE;AACxE,MAAM,CAAC,MAAM,oBAAoB,GAAuB;IACtD,MAAM,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC;CAC1F,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Shared HTTP-surface header parsing (noauth plan §4). Both the REST router
3
+ * and the MCP Streamable-HTTP surface read the caller's per-request
4
+ * `CallContext` from the same `X-Mrplex-*` headers — this is the single place
5
+ * that mapping lives, so a future header addition happens once.
6
+ *
7
+ * There is no auth: the header is the shell-injection path. `X-Mrplex-Author`
8
+ * stamps writes; `X-Mrplex-Scope` (JSON `ScopeClaim[]`) narrows reads. A
9
+ * malformed scope throws `KernelError("filter_invalid")` (via parseScopeClaims),
10
+ * which both surfaces map to a 400 — a bad claim is a loud client error, not a
11
+ * silent full-access fallback.
12
+ */
13
+ import type { IncomingMessage } from "node:http";
14
+ import { type CallContext } from "../kernel/context.js";
15
+ import type { Kernel } from "../kernel/kernel.js";
16
+ /**
17
+ * How a surface turns a request into the `CallContext` it dispatches with.
18
+ * The REST and MCP mounts accept one of these instead of hard-calling
19
+ * [[contextFromHeaders]], so an authenticating shell can substitute an
20
+ * entitlement-derived context (author + read scope from a credential, not
21
+ * from client-supplied headers) without forking the surface code. The default
22
+ * everywhere is `contextFromHeaders`. May be async — a shell front verifying a
23
+ * JWT does I/O; the header default does not.
24
+ */
25
+ export type ContextForRequest = (req: IncomingMessage) => CallContext | Promise<CallContext>;
26
+ /**
27
+ * How a surface obtains the `Kernel` to dispatch a request against. The default
28
+ * (a closure returning the one shared kernel) is what the raw engine uses; the
29
+ * auth shell supplies a factory that authenticates the request and returns a
30
+ * per-principal *guarded* kernel — so write/destructive policy lives in the
31
+ * decorator, not in the surface. May throw (auth failure) or be async
32
+ * (credential verification does I/O); the surface maps a throw to its error
33
+ * response, so an `HttpResponseError(401, "unauthorized")` becomes a clean 401.
34
+ */
35
+ export type KernelForRequest = (req: IncomingMessage) => Kernel | Promise<Kernel>;
36
+ export declare function contextFromHeaders(req: IncomingMessage): CallContext;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Shared HTTP-surface header parsing (noauth plan §4). Both the REST router
3
+ * and the MCP Streamable-HTTP surface read the caller's per-request
4
+ * `CallContext` from the same `X-Mrplex-*` headers — this is the single place
5
+ * that mapping lives, so a future header addition happens once.
6
+ *
7
+ * There is no auth: the header is the shell-injection path. `X-Mrplex-Author`
8
+ * stamps writes; `X-Mrplex-Scope` (JSON `ScopeClaim[]`) narrows reads. A
9
+ * malformed scope throws `KernelError("filter_invalid")` (via parseScopeClaims),
10
+ * which both surfaces map to a 400 — a bad claim is a loud client error, not a
11
+ * silent full-access fallback.
12
+ */
13
+ import { parseScopeClaims } from "../kernel/context.js";
14
+ export function contextFromHeaders(req) {
15
+ const ctx = {};
16
+ const author = headerValue(req.headers["x-mrplex-author"]);
17
+ if (author !== undefined)
18
+ ctx.author = author;
19
+ const scope = headerValue(req.headers["x-mrplex-scope"]);
20
+ if (scope !== undefined)
21
+ ctx.scope = parseScopeClaims(scope);
22
+ return ctx;
23
+ }
24
+ function headerValue(v) {
25
+ if (v === undefined)
26
+ return undefined;
27
+ const s = Array.isArray(v) ? v[0] : v;
28
+ return s !== undefined && s.length > 0 ? s : undefined;
29
+ }
30
+ //# sourceMappingURL=headers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headers.js","sourceRoot":"","sources":["../../src/server/headers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAoB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAyB1E,MAAM,UAAU,kBAAkB,CAAC,GAAoB;IACrD,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC3D,IAAI,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACzD,IAAI,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC7D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,WAAW,CAAC,CAAgC;IACnD,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * KernelError → HTTP mapping — design §6.3 + m3-plan §5 decision 4.
3
+ *
4
+ * The wire body for a mapped kernel error is `{ code, data }` — verbatim
5
+ * from the KernelError; the HTTP status just picks the closest match.
6
+ * 412 responses additionally carry the current `version_id` in the `ETag`
7
+ * response header (§6.3) so a caller can retry against it without reading
8
+ * the JSON.
9
+ *
10
+ * Unknown/internal throwables collapse to a 500 with a small generic body
11
+ * (`{ code: "internal_error", data: {} }`); the raw message is not
12
+ * surfaced. This is the ONE code that isn't a KernelErrorCode — the design
13
+ * catalog doesn't cover the "server bug" case.
14
+ */
15
+ import { KernelError, type KernelErrorCode } from "../kernel/errors.js";
16
+ /**
17
+ * An error that already knows its HTTP shape. The engine never throws this —
18
+ * it exists so a fronting layer (the auth shell) can reject a request with a
19
+ * status the surface catalog doesn't cover (e.g. 401 `unauthorized`) without
20
+ * the surface having to import the shell. `httpErrorForThrowable` honors it.
21
+ */
22
+ export declare class HttpResponseError extends Error {
23
+ readonly status: number;
24
+ readonly code: string;
25
+ readonly data: Record<string, unknown>;
26
+ constructor(status: number, code: string, data?: Record<string, unknown>);
27
+ }
28
+ export type HttpErrorBody = {
29
+ code: KernelErrorCode;
30
+ data: Record<string, unknown>;
31
+ } | {
32
+ code: "internal_error";
33
+ data: Record<string, unknown>;
34
+ };
35
+ export type HttpError = {
36
+ status: number;
37
+ body: HttpErrorBody;
38
+ /** Optional `ETag` value (e.g. current version_id on stale_prev/create_conflict). */
39
+ etag?: string;
40
+ };
41
+ /** Return the HTTP status for a given KernelErrorCode. */
42
+ export declare function httpStatusFor(code: KernelErrorCode): number;
43
+ /**
44
+ * Turn a KernelError into the response envelope the REST surface writes.
45
+ * If the error carries a `current_version_id` (stale_prev / create_conflict),
46
+ * we surface it as the `ETag` header per §6.3.
47
+ */
48
+ export declare function httpErrorForKernelError(err: KernelError): HttpError;
49
+ /**
50
+ * Narrow any thrown value to an HttpError. A non-KernelError becomes a 500
51
+ * with a generic body — the raw message is not surfaced to callers.
52
+ */
53
+ export declare function httpErrorForThrowable(err: unknown): HttpError;
@@ -0,0 +1,104 @@
1
+ /**
2
+ * KernelError → HTTP mapping — design §6.3 + m3-plan §5 decision 4.
3
+ *
4
+ * The wire body for a mapped kernel error is `{ code, data }` — verbatim
5
+ * from the KernelError; the HTTP status just picks the closest match.
6
+ * 412 responses additionally carry the current `version_id` in the `ETag`
7
+ * response header (§6.3) so a caller can retry against it without reading
8
+ * the JSON.
9
+ *
10
+ * Unknown/internal throwables collapse to a 500 with a small generic body
11
+ * (`{ code: "internal_error", data: {} }`); the raw message is not
12
+ * surfaced. This is the ONE code that isn't a KernelErrorCode — the design
13
+ * catalog doesn't cover the "server bug" case.
14
+ */
15
+ import { KernelError } from "../kernel/errors.js";
16
+ /**
17
+ * An error that already knows its HTTP shape. The engine never throws this —
18
+ * it exists so a fronting layer (the auth shell) can reject a request with a
19
+ * status the surface catalog doesn't cover (e.g. 401 `unauthorized`) without
20
+ * the surface having to import the shell. `httpErrorForThrowable` honors it.
21
+ */
22
+ export class HttpResponseError extends Error {
23
+ status;
24
+ code;
25
+ data;
26
+ constructor(status, code, data = {}) {
27
+ super(code);
28
+ this.status = status;
29
+ this.code = code;
30
+ this.data = data;
31
+ this.name = "HttpResponseError";
32
+ }
33
+ }
34
+ /** Return the HTTP status for a given KernelErrorCode. */
35
+ export function httpStatusFor(code) {
36
+ switch (code) {
37
+ case "forbidden":
38
+ return 403;
39
+ case "stale_prev":
40
+ case "create_conflict":
41
+ return 412;
42
+ case "precondition_required":
43
+ return 428;
44
+ case "payload_too_large":
45
+ return 413;
46
+ case "path_taken":
47
+ case "slug_taken":
48
+ return 409;
49
+ case "repo_not_found":
50
+ case "doc_not_found":
51
+ case "version_not_found":
52
+ return 404;
53
+ case "version_not_in_document":
54
+ return 422;
55
+ case "slug_invalid":
56
+ case "path_invalid":
57
+ case "frontmatter_invalid":
58
+ case "filter_invalid":
59
+ case "link_config_invalid":
60
+ return 400;
61
+ case "semantic_unavailable":
62
+ return 503;
63
+ default: {
64
+ const _exhaustive = code;
65
+ void _exhaustive;
66
+ return 500;
67
+ }
68
+ }
69
+ }
70
+ /**
71
+ * Turn a KernelError into the response envelope the REST surface writes.
72
+ * If the error carries a `current_version_id` (stale_prev / create_conflict),
73
+ * we surface it as the `ETag` header per §6.3.
74
+ */
75
+ export function httpErrorForKernelError(err) {
76
+ const data = err.data;
77
+ const status = httpStatusFor(err.code);
78
+ const out = {
79
+ status,
80
+ body: { code: err.code, data },
81
+ };
82
+ if (status === 412) {
83
+ const cv = data.current_version_id;
84
+ if (typeof cv === "string")
85
+ out.etag = cv;
86
+ }
87
+ return out;
88
+ }
89
+ /**
90
+ * Narrow any thrown value to an HttpError. A non-KernelError becomes a 500
91
+ * with a generic body — the raw message is not surfaced to callers.
92
+ */
93
+ export function httpErrorForThrowable(err) {
94
+ if (err instanceof KernelError)
95
+ return httpErrorForKernelError(err);
96
+ if (err instanceof HttpResponseError) {
97
+ return { status: err.status, body: { code: err.code, data: err.data } };
98
+ }
99
+ return {
100
+ status: 500,
101
+ body: { code: "internal_error", data: {} },
102
+ };
103
+ }
104
+ //# sourceMappingURL=http-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-error.js","sourceRoot":"","sources":["../../src/server/http-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAwB,MAAM,qBAAqB,CAAC;AAExE;;;;;GAKG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAExB;IACA;IACA;IAHlB,YACkB,MAAc,EACd,IAAY,EACZ,OAAgC,EAAE;QAElD,KAAK,CAAC,IAAI,CAAC,CAAC;QAJI,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAA8B;QAGlD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAaD,0DAA0D;AAC1D,MAAM,UAAU,aAAa,CAAC,IAAqB;IACjD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,YAAY,CAAC;QAClB,KAAK,iBAAiB;YACpB,OAAO,GAAG,CAAC;QACb,KAAK,uBAAuB;YAC1B,OAAO,GAAG,CAAC;QACb,KAAK,mBAAmB;YACtB,OAAO,GAAG,CAAC;QACb,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY;YACf,OAAO,GAAG,CAAC;QACb,KAAK,gBAAgB,CAAC;QACtB,KAAK,eAAe,CAAC;QACrB,KAAK,mBAAmB;YACtB,OAAO,GAAG,CAAC;QACb,KAAK,yBAAyB;YAC5B,OAAO,GAAG,CAAC;QACb,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc,CAAC;QACpB,KAAK,qBAAqB,CAAC;QAC3B,KAAK,gBAAgB,CAAC;QACtB,KAAK,qBAAqB;YACxB,OAAO,GAAG,CAAC;QACb,KAAK,sBAAsB;YACzB,OAAO,GAAG,CAAC;QACb,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,WAAW,GAAU,IAAI,CAAC;YAChC,KAAK,WAAW,CAAC;YACjB,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAgB;IACtD,MAAM,IAAI,GAAG,GAAG,CAAC,IAA+B,CAAC;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,GAAG,GAAc;QACrB,MAAM;QACN,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE;KAC/B,CAAC;IACF,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnC,IAAI,OAAO,EAAE,KAAK,QAAQ;YAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,GAAG,YAAY,WAAW;QAAE,OAAO,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACpE,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;QACrC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAmB,EAAE,CAAC;IAC3F,CAAC;IACD,OAAO;QACL,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE;KAC3C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * The composition root — opens storage, runs migrations, builds the kernel,
3
+ * mounts the REST + MCP surfaces on one node:http server, and hands back a
4
+ * handle with a graceful `close()`.
5
+ *
6
+ * m3-plan WS4 sits on top of this: `mrplex serve` translates CLI flags into
7
+ * a `startServer(config)` call and installs signal handlers.
8
+ *
9
+ * Kernel untouched. This file wires transport onto an existing kernel; if
10
+ * you're looking for the write model, error catalog, or scope check, it's
11
+ * still one level down.
12
+ */
13
+ import { type Server } from "node:http";
14
+ import { type EmbedConfig } from "../embed/config.js";
15
+ import type { EmbedHook } from "../embed/hook.js";
16
+ import { type Worker } from "../embed/worker.js";
17
+ import { type Kernel } from "../kernel/kernel.js";
18
+ import { type PathConfig } from "../kernel/path-config.js";
19
+ import type { Storage } from "../storage/types.js";
20
+ export type ServeConfig = {
21
+ /** sqlite:./path.db or postgres://… */
22
+ database: string;
23
+ host?: string;
24
+ /** 0 → bind an OS-chosen port (used by tests). */
25
+ port?: number;
26
+ serverPathConfig?: PathConfig;
27
+ /**
28
+ * Embedding hook config (m4-plan §5.3). Absent = worker idles, rank
29
+ * queries return `semantic_unavailable`. See design §5.3 resolved [OPEN].
30
+ */
31
+ embed?: EmbedConfig;
32
+ /** Log function for the "serving on http://…" banner. Defaults to console.error. */
33
+ log?: (msg: string) => void;
34
+ };
35
+ export type ServeHandle = {
36
+ server: Server;
37
+ storage: Storage;
38
+ kernel: Kernel;
39
+ /** Real bound port (useful after `port: 0`). */
40
+ port: number;
41
+ host: string;
42
+ /** Base URL callers can hit — e.g. `http://127.0.0.1:8321`. */
43
+ baseUrl: string;
44
+ /** The running embed hook + worker, if `embed` was configured. */
45
+ embed: {
46
+ hook: EmbedHook;
47
+ worker: Worker;
48
+ } | null;
49
+ /** Close listening socket + worker + storage. Idempotent. */
50
+ close: () => Promise<void>;
51
+ };
52
+ /**
53
+ * Start a fully-wired mrplex server. Returns once the socket is listening.
54
+ * Never throws for a merely-empty database — bootstrap is a separate step.
55
+ */
56
+ export declare function startServer(config: ServeConfig): Promise<ServeHandle>;
@@ -0,0 +1,135 @@
1
+ /**
2
+ * The composition root — opens storage, runs migrations, builds the kernel,
3
+ * mounts the REST + MCP surfaces on one node:http server, and hands back a
4
+ * handle with a graceful `close()`.
5
+ *
6
+ * m3-plan WS4 sits on top of this: `mrplex serve` translates CLI flags into
7
+ * a `startServer(config)` call and installs signal handlers.
8
+ *
9
+ * Kernel untouched. This file wires transport onto an existing kernel; if
10
+ * you're looking for the write model, error catalog, or scope check, it's
11
+ * still one level down.
12
+ */
13
+ import { createServer } from "node:http";
14
+ import { createHookFromConfig, describeEmbedConfig } from "../embed/config.js";
15
+ import { createWorker } from "../embed/worker.js";
16
+ import { createKernel } from "../kernel/kernel.js";
17
+ import { HARDCODED_DEFAULTS } from "../kernel/path-config.js";
18
+ import { mountMcpStreamableHttp } from "../mcp/server.js";
19
+ import { mountRestSurface } from "../rest/routes.js";
20
+ import { openStorage } from "../storage/registry.js";
21
+ /**
22
+ * Start a fully-wired mrplex server. Returns once the socket is listening.
23
+ * Never throws for a merely-empty database — bootstrap is a separate step.
24
+ */
25
+ export async function startServer(config) {
26
+ const embedCfg = config.embed ?? { kind: "none" };
27
+ const hook = createHookFromConfig(embedCfg);
28
+ // Open storage first so the enqueue callback can capture its handle.
29
+ // Enqueue is unconditional whether or not a hook is configured
30
+ // (m4-plan §5 decision 5) — a hookless deployment still records the
31
+ // backlog so a later `embed backfill` doesn't have to walk history.
32
+ const storage = await openStorage(config.database);
33
+ const kernel = createKernel({
34
+ storage,
35
+ serverPathConfig: config.serverPathConfig ?? HARDCODED_DEFAULTS,
36
+ onVersionCommitted: async (versionId) => {
37
+ await storage.backlog_enqueue(versionId);
38
+ },
39
+ queryEmbed: hook
40
+ ? async (semantic) => {
41
+ const resp = await hook.embed([semantic]);
42
+ const vector = resp.vectors[0];
43
+ if (!vector) {
44
+ throw new Error("embed hook returned no vector for query string");
45
+ }
46
+ return { vector, model: resp.model, dim: resp.dim };
47
+ }
48
+ : undefined,
49
+ });
50
+ const worker = hook ? createWorker({ storage, hook }) : null;
51
+ const host = config.host ?? "127.0.0.1";
52
+ const port = config.port ?? 8321;
53
+ // Mount MCP + REST on the same node:http server. Order matters only so far
54
+ // as MCP owns `/mcp*` and REST owns everything else; the dispatcher below
55
+ // routes on the URL path prefix.
56
+ const mcp = await mountMcpStreamableHttp({ kernel, storage });
57
+ const rest = mountRestSurface({ kernel, storage });
58
+ const server = createServer((req, res) => {
59
+ const url = req.url ?? "";
60
+ // Only /mcp (exact) and /mcp?<query> are routed to the MCP transport.
61
+ // /mcp/<anything> falls through to REST so future REST routes under the
62
+ // /mcp namespace (e.g. /mcp/manifest) aren't preempted by transport
63
+ // framing errors. The SDK's Streamable HTTP transport only speaks at
64
+ // /mcp itself; sub-paths are not part of its spec.
65
+ if (url === "/mcp" || url.startsWith("/mcp?")) {
66
+ mcp.handle(req, res).catch((err) => {
67
+ writeInternalError(res, err);
68
+ });
69
+ return;
70
+ }
71
+ rest.handle(req, res).catch((err) => {
72
+ writeInternalError(res, err);
73
+ });
74
+ });
75
+ await new Promise((resolve, reject) => {
76
+ server.once("error", reject);
77
+ server.listen(port, host, () => {
78
+ server.removeListener("error", reject);
79
+ resolve();
80
+ });
81
+ });
82
+ const boundPort = server.address().port;
83
+ const baseUrl = `http://${formatHost(host)}:${boundPort}`;
84
+ const log = config.log ?? ((m) => process.stderr.write(`${m}\n`));
85
+ log(`mrplex: serving on ${baseUrl}`);
86
+ log(`mrplex: REST ${baseUrl}/repos, /query, ...`);
87
+ log(`mrplex: MCP ${baseUrl}/mcp (Streamable HTTP)`);
88
+ log(`mrplex: embed ${describeEmbedConfig(embedCfg)}`);
89
+ // Start the worker AFTER the "listening" log line — a fast-arriving
90
+ // request that predates the worker still gets served; the write's
91
+ // backlog row waits until the next drain iteration.
92
+ worker?.start();
93
+ let closed = false;
94
+ const close = async () => {
95
+ if (closed)
96
+ return;
97
+ closed = true;
98
+ // Stop accepting new requests first, then drain the worker's
99
+ // in-flight batch, then close storage.
100
+ await mcp.close().catch(() => { });
101
+ await new Promise((resolve) => server.close(() => resolve()));
102
+ if (worker) {
103
+ await worker.stop();
104
+ }
105
+ await storage.close();
106
+ };
107
+ return {
108
+ server,
109
+ storage,
110
+ kernel,
111
+ port: boundPort,
112
+ host,
113
+ baseUrl,
114
+ embed: hook && worker ? { hook, worker } : null,
115
+ close,
116
+ };
117
+ }
118
+ function formatHost(host) {
119
+ // IPv6 needs bracket-wrapping in URLs.
120
+ return host.includes(":") ? `[${host}]` : host;
121
+ }
122
+ function writeInternalError(res, err) {
123
+ if (res.headersSent) {
124
+ res.end();
125
+ return;
126
+ }
127
+ const message = err instanceof Error ? err.message : String(err);
128
+ // Log server-side so an operator can see what happened; don't leak the
129
+ // detail to the client.
130
+ process.stderr.write(`mrplex: internal error: ${message}\n`);
131
+ res.statusCode = 500;
132
+ res.setHeader("Content-Type", "application/json");
133
+ res.end(JSON.stringify({ code: "internal_error", data: {} }));
134
+ }
135
+ //# sourceMappingURL=serve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/server/serve.ts"],"names":[],"mappings":"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"}