@jamesaphoenix/tx-core 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/README.md +480 -0
  2. package/dist/db.d.ts +28 -14
  3. package/dist/db.d.ts.map +1 -1
  4. package/dist/db.js +102 -14
  5. package/dist/db.js.map +1 -1
  6. package/dist/errors.d.ts +178 -34
  7. package/dist/errors.d.ts.map +1 -1
  8. package/dist/errors.js +119 -26
  9. package/dist/errors.js.map +1 -1
  10. package/dist/id.d.ts +10 -0
  11. package/dist/id.d.ts.map +1 -1
  12. package/dist/id.js +17 -1
  13. package/dist/id.js.map +1 -1
  14. package/dist/index.d.ts +15 -7
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +62 -8
  17. package/dist/index.js.map +1 -1
  18. package/dist/layer.d.ts +23 -14
  19. package/dist/layer.d.ts.map +1 -1
  20. package/dist/layer.js +75 -76
  21. package/dist/layer.js.map +1 -1
  22. package/dist/mappers/anchor.d.ts +15 -1
  23. package/dist/mappers/anchor.d.ts.map +1 -1
  24. package/dist/mappers/anchor.js +95 -28
  25. package/dist/mappers/anchor.js.map +1 -1
  26. package/dist/mappers/attempt.d.ts +3 -1
  27. package/dist/mappers/attempt.d.ts.map +1 -1
  28. package/dist/mappers/attempt.js +23 -9
  29. package/dist/mappers/attempt.js.map +1 -1
  30. package/dist/mappers/candidate.d.ts +3 -1
  31. package/dist/mappers/candidate.d.ts.map +1 -1
  32. package/dist/mappers/candidate.js +46 -16
  33. package/dist/mappers/candidate.js.map +1 -1
  34. package/dist/mappers/claim.d.ts +1 -1
  35. package/dist/mappers/claim.d.ts.map +1 -1
  36. package/dist/mappers/claim.js +11 -4
  37. package/dist/mappers/claim.js.map +1 -1
  38. package/dist/mappers/deduplication.d.ts +13 -1
  39. package/dist/mappers/deduplication.d.ts.map +1 -1
  40. package/dist/mappers/deduplication.js +22 -3
  41. package/dist/mappers/deduplication.js.map +1 -1
  42. package/dist/mappers/doc.d.ts +24 -0
  43. package/dist/mappers/doc.d.ts.map +1 -0
  44. package/dist/mappers/doc.js +161 -0
  45. package/dist/mappers/doc.js.map +1 -0
  46. package/dist/mappers/edge.d.ts +10 -1
  47. package/dist/mappers/edge.d.ts.map +1 -1
  48. package/dist/mappers/edge.js +74 -12
  49. package/dist/mappers/edge.js.map +1 -1
  50. package/dist/mappers/file-learning.d.ts.map +1 -1
  51. package/dist/mappers/file-learning.js +2 -1
  52. package/dist/mappers/file-learning.js.map +1 -1
  53. package/dist/mappers/index.d.ts +6 -7
  54. package/dist/mappers/index.d.ts.map +1 -1
  55. package/dist/mappers/index.js +10 -12
  56. package/dist/mappers/index.js.map +1 -1
  57. package/dist/mappers/learning.d.ts +9 -1
  58. package/dist/mappers/learning.d.ts.map +1 -1
  59. package/dist/mappers/learning.js +94 -14
  60. package/dist/mappers/learning.js.map +1 -1
  61. package/dist/mappers/orchestrator-state.d.ts +1 -1
  62. package/dist/mappers/orchestrator-state.d.ts.map +1 -1
  63. package/dist/mappers/orchestrator-state.js +31 -5
  64. package/dist/mappers/orchestrator-state.js.map +1 -1
  65. package/dist/mappers/parse-date.d.ts +11 -0
  66. package/dist/mappers/parse-date.d.ts.map +1 -0
  67. package/dist/mappers/parse-date.js +18 -0
  68. package/dist/mappers/parse-date.js.map +1 -0
  69. package/dist/mappers/run.d.ts +14 -4
  70. package/dist/mappers/run.d.ts.map +1 -1
  71. package/dist/mappers/run.js +49 -18
  72. package/dist/mappers/run.js.map +1 -1
  73. package/dist/mappers/task.d.ts +5 -1
  74. package/dist/mappers/task.d.ts.map +1 -1
  75. package/dist/mappers/task.js +66 -16
  76. package/dist/mappers/task.js.map +1 -1
  77. package/dist/mappers/tracked-project.d.ts +3 -1
  78. package/dist/mappers/tracked-project.d.ts.map +1 -1
  79. package/dist/mappers/tracked-project.js +23 -9
  80. package/dist/mappers/tracked-project.js.map +1 -1
  81. package/dist/mappers/worker.d.ts +1 -1
  82. package/dist/mappers/worker.d.ts.map +1 -1
  83. package/dist/mappers/worker.js +44 -6
  84. package/dist/mappers/worker.js.map +1 -1
  85. package/dist/repo/anchor-repo.d.ts +2 -2
  86. package/dist/repo/anchor-repo.d.ts.map +1 -1
  87. package/dist/repo/anchor-repo.js +46 -5
  88. package/dist/repo/anchor-repo.js.map +1 -1
  89. package/dist/repo/attempt-repo.d.ts +2 -2
  90. package/dist/repo/attempt-repo.d.ts.map +1 -1
  91. package/dist/repo/attempt-repo.js +16 -6
  92. package/dist/repo/attempt-repo.js.map +1 -1
  93. package/dist/repo/candidate-repo.d.ts.map +1 -1
  94. package/dist/repo/candidate-repo.js +22 -1
  95. package/dist/repo/candidate-repo.js.map +1 -1
  96. package/dist/repo/claim-repo.d.ts +46 -2
  97. package/dist/repo/claim-repo.d.ts.map +1 -1
  98. package/dist/repo/claim-repo.js +113 -6
  99. package/dist/repo/claim-repo.js.map +1 -1
  100. package/dist/repo/compaction-repo.d.ts +41 -0
  101. package/dist/repo/compaction-repo.d.ts.map +1 -0
  102. package/dist/repo/compaction-repo.js +84 -0
  103. package/dist/repo/compaction-repo.js.map +1 -0
  104. package/dist/repo/deduplication-repo.d.ts +9 -1
  105. package/dist/repo/deduplication-repo.d.ts.map +1 -1
  106. package/dist/repo/deduplication-repo.js +46 -9
  107. package/dist/repo/deduplication-repo.js.map +1 -1
  108. package/dist/repo/dep-repo.d.ts +27 -3
  109. package/dist/repo/dep-repo.d.ts.map +1 -1
  110. package/dist/repo/dep-repo.js +166 -39
  111. package/dist/repo/dep-repo.js.map +1 -1
  112. package/dist/repo/doc-repo.d.ts +59 -0
  113. package/dist/repo/doc-repo.d.ts.map +1 -0
  114. package/dist/repo/doc-repo.js +276 -0
  115. package/dist/repo/doc-repo.js.map +1 -0
  116. package/dist/repo/edge-repo.d.ts +1 -1
  117. package/dist/repo/edge-repo.d.ts.map +1 -1
  118. package/dist/repo/edge-repo.js +65 -34
  119. package/dist/repo/edge-repo.js.map +1 -1
  120. package/dist/repo/file-learning-repo.d.ts +3 -3
  121. package/dist/repo/file-learning-repo.d.ts.map +1 -1
  122. package/dist/repo/file-learning-repo.js +19 -8
  123. package/dist/repo/file-learning-repo.js.map +1 -1
  124. package/dist/repo/index.d.ts +4 -6
  125. package/dist/repo/index.d.ts.map +1 -1
  126. package/dist/repo/index.js +3 -5
  127. package/dist/repo/index.js.map +1 -1
  128. package/dist/repo/learning-repo.d.ts +10 -3
  129. package/dist/repo/learning-repo.d.ts.map +1 -1
  130. package/dist/repo/learning-repo.js +68 -11
  131. package/dist/repo/learning-repo.js.map +1 -1
  132. package/dist/repo/orchestrator-state-repo.d.ts.map +1 -1
  133. package/dist/repo/orchestrator-state-repo.js +8 -1
  134. package/dist/repo/orchestrator-state-repo.js.map +1 -1
  135. package/dist/repo/run-repo.d.ts +3 -3
  136. package/dist/repo/run-repo.d.ts.map +1 -1
  137. package/dist/repo/run-repo.js +40 -19
  138. package/dist/repo/run-repo.js.map +1 -1
  139. package/dist/repo/task-repo.d.ts +14 -3
  140. package/dist/repo/task-repo.d.ts.map +1 -1
  141. package/dist/repo/task-repo.js +194 -20
  142. package/dist/repo/task-repo.js.map +1 -1
  143. package/dist/repo/tracked-project-repo.d.ts.map +1 -1
  144. package/dist/repo/tracked-project-repo.js +15 -1
  145. package/dist/repo/tracked-project-repo.js.map +1 -1
  146. package/dist/repo/worker-repo.d.ts +3 -2
  147. package/dist/repo/worker-repo.d.ts.map +1 -1
  148. package/dist/repo/worker-repo.js +54 -8
  149. package/dist/repo/worker-repo.js.map +1 -1
  150. package/dist/schemas/sync.js +2 -2
  151. package/dist/schemas/sync.js.map +1 -1
  152. package/dist/schemas/worker.d.ts +1 -0
  153. package/dist/schemas/worker.d.ts.map +1 -1
  154. package/dist/schemas/worker.js +1 -0
  155. package/dist/schemas/worker.js.map +1 -1
  156. package/dist/services/agent-service.d.ts +57 -0
  157. package/dist/services/agent-service.d.ts.map +1 -0
  158. package/dist/services/agent-service.js +81 -0
  159. package/dist/services/agent-service.js.map +1 -0
  160. package/dist/services/anchor-service.js +1 -1
  161. package/dist/services/anchor-service.js.map +1 -1
  162. package/dist/services/anchor-verification.d.ts +8 -0
  163. package/dist/services/anchor-verification.d.ts.map +1 -1
  164. package/dist/services/anchor-verification.js +237 -37
  165. package/dist/services/anchor-verification.js.map +1 -1
  166. package/dist/services/ast-grep-service.d.ts.map +1 -1
  167. package/dist/services/ast-grep-service.js +93 -22
  168. package/dist/services/ast-grep-service.js.map +1 -1
  169. package/dist/services/attempt-service.d.ts.map +1 -1
  170. package/dist/services/attempt-service.js +1 -4
  171. package/dist/services/attempt-service.js.map +1 -1
  172. package/dist/services/auto-sync-service.d.ts +1 -1
  173. package/dist/services/auto-sync-service.d.ts.map +1 -1
  174. package/dist/services/auto-sync-service.js +18 -10
  175. package/dist/services/auto-sync-service.js.map +1 -1
  176. package/dist/services/claim-service.d.ts +8 -2
  177. package/dist/services/claim-service.d.ts.map +1 -1
  178. package/dist/services/claim-service.js +37 -23
  179. package/dist/services/claim-service.js.map +1 -1
  180. package/dist/services/compaction-service.d.ts +105 -0
  181. package/dist/services/compaction-service.d.ts.map +1 -0
  182. package/dist/services/compaction-service.js +369 -0
  183. package/dist/services/compaction-service.js.map +1 -0
  184. package/dist/services/cycle-scan-service.d.ts +32 -0
  185. package/dist/services/cycle-scan-service.d.ts.map +1 -0
  186. package/dist/services/cycle-scan-service.js +542 -0
  187. package/dist/services/cycle-scan-service.js.map +1 -0
  188. package/dist/services/daemon-service.d.ts +40 -2
  189. package/dist/services/daemon-service.d.ts.map +1 -1
  190. package/dist/services/daemon-service.js +199 -52
  191. package/dist/services/daemon-service.js.map +1 -1
  192. package/dist/services/deduplication-service.d.ts +8 -4
  193. package/dist/services/deduplication-service.d.ts.map +1 -1
  194. package/dist/services/deduplication-service.js +79 -25
  195. package/dist/services/deduplication-service.js.map +1 -1
  196. package/dist/services/dep-service.d.ts +2 -2
  197. package/dist/services/dep-service.d.ts.map +1 -1
  198. package/dist/services/dep-service.js +9 -5
  199. package/dist/services/dep-service.js.map +1 -1
  200. package/dist/services/diversifier-service.d.ts +2 -1
  201. package/dist/services/diversifier-service.d.ts.map +1 -1
  202. package/dist/services/diversifier-service.js +37 -43
  203. package/dist/services/diversifier-service.js.map +1 -1
  204. package/dist/services/doc-service.d.ts +49 -0
  205. package/dist/services/doc-service.d.ts.map +1 -0
  206. package/dist/services/doc-service.js +605 -0
  207. package/dist/services/doc-service.js.map +1 -0
  208. package/dist/services/edge-service.js +2 -2
  209. package/dist/services/edge-service.js.map +1 -1
  210. package/dist/services/embedding-service.d.ts +66 -2
  211. package/dist/services/embedding-service.d.ts.map +1 -1
  212. package/dist/services/embedding-service.js +138 -24
  213. package/dist/services/embedding-service.js.map +1 -1
  214. package/dist/services/file-learning-service.d.ts.map +1 -1
  215. package/dist/services/file-learning-service.js +8 -7
  216. package/dist/services/file-learning-service.js.map +1 -1
  217. package/dist/services/file-watcher-service.d.ts.map +1 -1
  218. package/dist/services/file-watcher-service.js +58 -11
  219. package/dist/services/file-watcher-service.js.map +1 -1
  220. package/dist/services/graph-expansion.d.ts +3 -0
  221. package/dist/services/graph-expansion.d.ts.map +1 -1
  222. package/dist/services/graph-expansion.js +28 -7
  223. package/dist/services/graph-expansion.js.map +1 -1
  224. package/dist/services/hierarchy-service.d.ts +1 -1
  225. package/dist/services/hierarchy-service.d.ts.map +1 -1
  226. package/dist/services/hierarchy-service.js +50 -32
  227. package/dist/services/hierarchy-service.js.map +1 -1
  228. package/dist/services/index.d.ts +13 -15
  229. package/dist/services/index.d.ts.map +1 -1
  230. package/dist/services/index.js +13 -15
  231. package/dist/services/index.js.map +1 -1
  232. package/dist/services/learning-service.d.ts +4 -4
  233. package/dist/services/learning-service.d.ts.map +1 -1
  234. package/dist/services/learning-service.js +75 -42
  235. package/dist/services/learning-service.js.map +1 -1
  236. package/dist/services/llm-service.d.ts +62 -0
  237. package/dist/services/llm-service.d.ts.map +1 -0
  238. package/dist/services/llm-service.js +172 -0
  239. package/dist/services/llm-service.js.map +1 -0
  240. package/dist/services/migration-service.d.ts +1 -1
  241. package/dist/services/migration-service.d.ts.map +1 -1
  242. package/dist/services/migration-service.js +18 -7
  243. package/dist/services/migration-service.js.map +1 -1
  244. package/dist/services/orchestrator-service.d.ts +4 -3
  245. package/dist/services/orchestrator-service.d.ts.map +1 -1
  246. package/dist/services/orchestrator-service.js +67 -29
  247. package/dist/services/orchestrator-service.js.map +1 -1
  248. package/dist/services/promotion-service.d.ts +1 -1
  249. package/dist/services/promotion-service.js +1 -1
  250. package/dist/services/promotion-service.js.map +1 -1
  251. package/dist/services/query-expansion-service.d.ts +30 -9
  252. package/dist/services/query-expansion-service.d.ts.map +1 -1
  253. package/dist/services/query-expansion-service.js +54 -63
  254. package/dist/services/query-expansion-service.js.map +1 -1
  255. package/dist/services/ready-service.d.ts +21 -1
  256. package/dist/services/ready-service.d.ts.map +1 -1
  257. package/dist/services/ready-service.js +44 -21
  258. package/dist/services/ready-service.js.map +1 -1
  259. package/dist/services/retriever-service.d.ts +10 -10
  260. package/dist/services/retriever-service.d.ts.map +1 -1
  261. package/dist/services/retriever-service.js +53 -161
  262. package/dist/services/retriever-service.js.map +1 -1
  263. package/dist/services/swarm-verification.d.ts +2 -2
  264. package/dist/services/swarm-verification.d.ts.map +1 -1
  265. package/dist/services/swarm-verification.js +12 -6
  266. package/dist/services/swarm-verification.js.map +1 -1
  267. package/dist/services/sync-service.d.ts +17 -4
  268. package/dist/services/sync-service.d.ts.map +1 -1
  269. package/dist/services/sync-service.js +378 -114
  270. package/dist/services/sync-service.js.map +1 -1
  271. package/dist/services/task-service.d.ts +6 -4
  272. package/dist/services/task-service.d.ts.map +1 -1
  273. package/dist/services/task-service.js +162 -33
  274. package/dist/services/task-service.js.map +1 -1
  275. package/dist/services/tracing-service.d.ts +55 -0
  276. package/dist/services/tracing-service.d.ts.map +1 -0
  277. package/dist/services/tracing-service.js +99 -0
  278. package/dist/services/tracing-service.js.map +1 -0
  279. package/dist/services/transcript-adapter.d.ts +99 -0
  280. package/dist/services/transcript-adapter.d.ts.map +1 -0
  281. package/dist/services/transcript-adapter.js +283 -0
  282. package/dist/services/transcript-adapter.js.map +1 -0
  283. package/dist/services/validation-service.d.ts +85 -0
  284. package/dist/services/validation-service.d.ts.map +1 -0
  285. package/dist/services/validation-service.js +289 -0
  286. package/dist/services/validation-service.js.map +1 -0
  287. package/dist/services/worker-process.d.ts +23 -4
  288. package/dist/services/worker-process.d.ts.map +1 -1
  289. package/dist/services/worker-process.js +159 -70
  290. package/dist/services/worker-process.js.map +1 -1
  291. package/dist/services/worker-service.d.ts.map +1 -1
  292. package/dist/services/worker-service.js +7 -12
  293. package/dist/services/worker-service.js.map +1 -1
  294. package/dist/sync/claude-task-writer.d.ts +49 -0
  295. package/dist/sync/claude-task-writer.d.ts.map +1 -0
  296. package/dist/sync/claude-task-writer.js +135 -0
  297. package/dist/sync/claude-task-writer.js.map +1 -0
  298. package/dist/utils/doc-hash.d.ts +10 -0
  299. package/dist/utils/doc-hash.d.ts.map +1 -0
  300. package/dist/utils/doc-hash.js +14 -0
  301. package/dist/utils/doc-hash.js.map +1 -0
  302. package/dist/utils/doc-renderer.d.ts +44 -0
  303. package/dist/utils/doc-renderer.d.ts.map +1 -0
  304. package/dist/utils/doc-renderer.js +202 -0
  305. package/dist/utils/doc-renderer.js.map +1 -0
  306. package/dist/utils/math.d.ts +5 -1
  307. package/dist/utils/math.d.ts.map +1 -1
  308. package/dist/utils/math.js +12 -4
  309. package/dist/utils/math.js.map +1 -1
  310. package/dist/utils/sql.d.ts +9 -0
  311. package/dist/utils/sql.d.ts.map +1 -0
  312. package/dist/utils/sql.js +9 -0
  313. package/dist/utils/sql.js.map +1 -0
  314. package/dist/utils/toml-config.d.ts +22 -0
  315. package/dist/utils/toml-config.d.ts.map +1 -0
  316. package/dist/utils/toml-config.js +75 -0
  317. package/dist/utils/toml-config.js.map +1 -0
  318. package/dist/worker/hooks.d.ts +102 -0
  319. package/dist/worker/hooks.d.ts.map +1 -0
  320. package/dist/worker/hooks.js +11 -0
  321. package/dist/worker/hooks.js.map +1 -0
  322. package/dist/worker/index.d.ts +9 -0
  323. package/dist/worker/index.d.ts.map +1 -0
  324. package/dist/worker/index.js +8 -0
  325. package/dist/worker/index.js.map +1 -0
  326. package/dist/worker/run-worker.d.ts +33 -0
  327. package/dist/worker/run-worker.d.ts.map +1 -0
  328. package/dist/worker/run-worker.js +265 -0
  329. package/dist/worker/run-worker.js.map +1 -0
  330. package/package.json +14 -12
@@ -1,6 +1,8 @@
1
1
  import { Context, Effect, Layer } from "effect";
2
2
  import { TaskRepository } from "../repo/task-repo.js";
3
3
  import { DependencyRepository } from "../repo/dep-repo.js";
4
+ /** Helper to check if a ReadyCheckResult indicates the task is ready. */
5
+ export const isReadyResult = (result) => result._tag === "Ready";
4
6
  export class ReadyService extends Context.Tag("ReadyService")() {
5
7
  }
6
8
  export const ReadyServiceLive = Layer.effect(ReadyService, Effect.gen(function* () {
@@ -8,26 +10,41 @@ export const ReadyServiceLive = Layer.effect(ReadyService, Effect.gen(function*
8
10
  const depRepo = yield* DependencyRepository;
9
11
  return {
10
12
  getReady: (limit = 100) => Effect.gen(function* () {
13
+ // 1. Single query: get all candidate tasks (excluding actively claimed)
14
+ // The excludeClaimed filter prevents the thundering herd problem where
15
+ // multiple workers all see the same tasks and race to claim them.
11
16
  const candidates = yield* taskRepo.findAll({
12
- status: ["backlog", "ready", "planning"]
17
+ status: ["backlog", "ready", "planning"],
18
+ excludeClaimed: true
13
19
  });
20
+ if (candidates.length === 0) {
21
+ return [];
22
+ }
23
+ const candidateIds = candidates.map(t => t.id);
24
+ // 2-4. Batch queries: get all dependency info in 3 queries instead of 3*N
25
+ const blockerIdsMap = yield* depRepo.getBlockerIdsForMany(candidateIds);
26
+ const blockingIdsMap = yield* depRepo.getBlockingIdsForMany(candidateIds);
27
+ const childIdsMap = yield* taskRepo.getChildIdsForMany(candidateIds);
28
+ // 5. Single query: get all unique blocker tasks to check their status
29
+ const allBlockerIds = new Set();
30
+ for (const blockerIds of blockerIdsMap.values()) {
31
+ for (const id of blockerIds) {
32
+ allBlockerIds.add(id);
33
+ }
34
+ }
35
+ const blockerTasks = allBlockerIds.size > 0
36
+ ? yield* taskRepo.findByIds([...allBlockerIds])
37
+ : [];
38
+ const blockerStatusMap = new Map(blockerTasks.map(t => [t.id, t.status]));
39
+ // Process in memory (no more queries)
14
40
  const ready = [];
15
41
  for (const task of candidates) {
16
- const blockerIds = yield* depRepo.getBlockerIds(task.id);
17
- const blockingIds = yield* depRepo.getBlockingIds(task.id);
18
- const childIds = yield* taskRepo.getChildIds(task.id);
19
- if (blockerIds.length === 0) {
20
- ready.push({
21
- ...task,
22
- blockedBy: [],
23
- blocks: blockingIds,
24
- children: childIds,
25
- isReady: true
26
- });
27
- continue;
28
- }
29
- const blockers = yield* taskRepo.findByIds(blockerIds);
30
- const allDone = blockers.every(b => b.status === "done");
42
+ const blockerIds = blockerIdsMap.get(task.id) ?? [];
43
+ const blockingIds = blockingIdsMap.get(task.id) ?? [];
44
+ const childIds = childIdsMap.get(task.id) ?? [];
45
+ // Check if all blockers are done
46
+ const allDone = blockerIds.length === 0 ||
47
+ blockerIds.every(id => blockerStatusMap.get(id) === "done");
31
48
  if (allDone) {
32
49
  ready.push({
33
50
  ...task,
@@ -44,14 +61,20 @@ export const ReadyServiceLive = Layer.effect(ReadyService, Effect.gen(function*
44
61
  isReady: (id) => Effect.gen(function* () {
45
62
  const task = yield* taskRepo.findById(id);
46
63
  if (!task)
47
- return false;
48
- if (!["backlog", "ready", "planning"].includes(task.status))
49
- return false;
64
+ return { _tag: "TaskNotFound", id };
65
+ if (!["backlog", "ready", "planning"].includes(task.status)) {
66
+ return { _tag: "WrongStatus", id, status: task.status };
67
+ }
50
68
  const blockerIds = yield* depRepo.getBlockerIds(id);
51
69
  if (blockerIds.length === 0)
52
- return true;
70
+ return { _tag: "Ready" };
53
71
  const blockers = yield* taskRepo.findByIds(blockerIds);
54
- return blockers.every(b => b.status === "done");
72
+ const pendingBlockerIds = blockers
73
+ .filter(b => b.status !== "done")
74
+ .map(b => b.id);
75
+ if (pendingBlockerIds.length === 0)
76
+ return { _tag: "Ready" };
77
+ return { _tag: "Blocked", id, pendingBlockerIds };
55
78
  }),
56
79
  getBlockers: (id) => Effect.gen(function* () {
57
80
  const blockerIds = yield* depRepo.getBlockerIds(id);
@@ -1 +1 @@
1
- {"version":3,"file":"ready-service.js","sourceRoot":"","sources":["../../src/services/ready-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ready-service.js","sourceRoot":"","sources":["../../src/services/ready-service.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,15 @@
1
1
  import { Context, Effect, Layer } from "effect";
2
2
  import { LearningRepository } from "../repo/learning-repo.js";
3
3
  import { EmbeddingService } from "./embedding-service.js";
4
- import { QueryExpansionService } from "./query-expansion-service.js";
5
4
  import { RerankerService } from "./reranker-service.js";
6
- import { RetrievalError, DatabaseError } from "../errors.js";
5
+ import { RetrievalError, DatabaseError, EmbeddingDimensionMismatchError } from "../errors.js";
7
6
  import type { LearningWithScore, RetrievalOptions } from "@jamesaphoenix/tx-types";
8
7
  declare const RetrieverService_base: Context.TagClass<RetrieverService, "RetrieverService", {
9
8
  /**
10
9
  * Search for learnings matching a query.
11
10
  * Returns scored results sorted by relevance (highest first).
12
11
  */
13
- readonly search: (query: string, options?: RetrievalOptions) => Effect.Effect<readonly LearningWithScore[], RetrievalError | DatabaseError>;
12
+ readonly search: (query: string, options?: RetrievalOptions) => Effect.Effect<readonly LearningWithScore[], RetrievalError | DatabaseError | EmbeddingDimensionMismatchError>;
14
13
  /** Check if retrieval functionality is available */
15
14
  readonly isAvailable: () => Effect.Effect<boolean>;
16
15
  }>;
@@ -30,20 +29,21 @@ export declare class RetrieverService extends RetrieverService_base {
30
29
  export declare const RetrieverServiceNoop: Layer.Layer<RetrieverService, never, never>;
31
30
  /**
32
31
  * Live implementation with BM25 + vector + RRF pipeline.
33
- * Uses the default hybrid search with:
34
- * - Query expansion via LLM
32
+ * Simplified pipeline:
35
33
  * - BM25 full-text search
36
34
  * - Vector similarity (when embeddings available)
37
35
  * - RRF fusion
38
- * - Optional LLM re-ranking
36
+ * - Optional LLM re-ranking (local model)
37
+ * - Optional MMR diversification
39
38
  * - Recency/outcome/frequency boosts
40
39
  */
41
- export declare const RetrieverServiceLive: Layer.Layer<RetrieverService, DatabaseError, LearningRepository | EmbeddingService | QueryExpansionService | RerankerService>;
40
+ export declare const RetrieverServiceLive: Layer.Layer<RetrieverService, DatabaseError, LearningRepository | RerankerService | EmbeddingService>;
42
41
  /**
43
42
  * Auto-detecting layer that always uses Live since BM25 is always available.
44
- * The Live implementation gracefully degrades vector search when embeddings
45
- * are unavailable, so Auto just delegates to Live.
43
+ * The Live implementation gracefully degrades:
44
+ * - Vector search skips when EmbeddingService unavailable
45
+ * - Reranking skips when RerankerService unavailable
46
46
  */
47
- export declare const RetrieverServiceAuto: Layer.Layer<RetrieverService, DatabaseError, LearningRepository | EmbeddingService | QueryExpansionService | RerankerService>;
47
+ export declare const RetrieverServiceAuto: Layer.Layer<RetrieverService, DatabaseError, LearningRepository | RerankerService | EmbeddingService>;
48
48
  export {};
49
49
  //# sourceMappingURL=retriever-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retriever-service.d.ts","sourceRoot":"","sources":["../../src/services/retriever-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,QAAQ,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAmB,MAAM,0BAA0B,CAAA;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGvD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAAY,iBAAiB,EAAc,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;;IA+BpG;;;OAGG;qBACc,CACf,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,gBAAgB,KACvB,MAAM,CAAC,MAAM,CAAC,SAAS,iBAAiB,EAAE,EAAE,cAAc,GAAG,aAAa,CAAC;IAChF,oDAAoD;0BAC9B,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;AAnBtD;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,qBAcnC;CAAG;AAwNN;;;GAGG;AACH,eAAO,MAAM,oBAAoB,6CAMhC,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,+HAmQhC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,+HAAuB,CAAA"}
1
+ {"version":3,"file":"retriever-service.d.ts","sourceRoot":"","sources":["../../src/services/retriever-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,QAAQ,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAmB,MAAM,0BAA0B,CAAA;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAA;AAC7F,OAAO,KAAK,EAAY,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;;IAiCxF;;;OAGG;qBACc,CACf,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,gBAAgB,KACvB,MAAM,CAAC,MAAM,CAAC,SAAS,iBAAiB,EAAE,EAAE,cAAc,GAAG,aAAa,GAAG,+BAA+B,CAAC;IAClH,oDAAoD;0BAC9B,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;AAnBtD;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,qBAcnC;CAAG;AA0NN;;;GAGG;AACH,eAAO,MAAM,oBAAoB,6CAMhC,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,uGA4HhC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,uGAKhC,CAAA"}
@@ -1,24 +1,24 @@
1
1
  import { Context, Effect, Layer, Option } from "effect";
2
2
  import { LearningRepository } from "../repo/learning-repo.js";
3
3
  import { EmbeddingService } from "./embedding-service.js";
4
- import { QueryExpansionService } from "./query-expansion-service.js";
5
4
  import { RerankerService } from "./reranker-service.js";
6
- import { GraphExpansionService } from "./graph-expansion.js";
7
- import { FeedbackTrackerService } from "./feedback-tracker.js";
5
+ import { DiversifierService } from "./diversifier-service.js";
8
6
  import { cosineSimilarity } from "../utils/math.js";
9
7
  /** RRF constant - standard value from the original paper */
10
8
  const RRF_K = 60;
11
9
  /** Default weights for recency (used as boost on top of RRF) */
12
10
  const DEFAULT_RECENCY_WEIGHT = 0.1;
13
11
  const MAX_AGE_DAYS = 30;
12
+ /** Hard cap on embeddings fetched for vector similarity scan.
13
+ * Prevents O(n) linear scan when limit is large or corpus grows.
14
+ * 500 is sufficient for high-quality RRF fusion while keeping latency <50ms. */
15
+ const MAX_VECTOR_CANDIDATES = 500;
14
16
  /** Boost weights for outcome and frequency */
15
17
  const OUTCOME_BOOST = 0.05;
16
18
  const FREQUENCY_BOOST = 0.02;
17
19
  /** Position-aware bonuses for items ranking highly in any retrieval system */
18
20
  const TOP_1_BONUS = 0.05; // Bonus for #1 rank in any system
19
21
  const TOP_3_BONUS = 0.02; // Bonus for top 3 in any system
20
- /** Feedback boost weight - scales the 0-1 feedback score */
21
- const FEEDBACK_BOOST = 0.05;
22
22
  /**
23
23
  * RetrieverService provides pluggable retrieval for learnings.
24
24
  *
@@ -40,24 +40,26 @@ const calculateRecencyScore = (createdAt) => {
40
40
  /**
41
41
  * Compute vector similarity scores and return ranked results.
42
42
  * Rank is 1-indexed (1 = best match).
43
+ *
44
+ * Dimension mismatches are logged and the learning is skipped, rather than
45
+ * failing the entire operation. This handles mixed embedding providers gracefully.
43
46
  */
44
47
  const computeVectorRanking = (learnings, queryEmbedding) => {
45
48
  if (!queryEmbedding) {
46
- return [];
49
+ return Effect.succeed([]);
47
50
  }
48
- const withScores = learnings
49
- .filter(l => l.embedding !== null)
50
- .map(learning => {
51
- const similarity = cosineSimilarity(queryEmbedding, learning.embedding);
51
+ const learningsWithEmbeddings = learnings.filter((l) => l.embedding !== null);
52
+ return Effect.forEach(learningsWithEmbeddings, learning => cosineSimilarity(queryEmbedding, learning.embedding).pipe(Effect.map(similarity => {
52
53
  // Normalize cosine similarity from [-1, 1] to [0, 1]
53
54
  const score = (similarity + 1) / 2;
54
55
  return { learning, score };
55
- })
56
- .sort((a, b) => b.score - a.score);
57
- // Add 1-indexed ranks
58
- return withScores.map((item, idx) => ({
59
- ...item,
60
- rank: idx + 1
56
+ }))).pipe(Effect.map(withScores => {
57
+ const sorted = [...withScores].sort((a, b) => b.score - a.score);
58
+ // Add 1-indexed ranks
59
+ return sorted.map((item, idx) => ({
60
+ ...item,
61
+ rank: idx + 1
62
+ }));
61
63
  }));
62
64
  };
63
65
  /**
@@ -154,13 +156,12 @@ const calculatePositionBonus = (...ranks) => {
154
156
  };
155
157
  /**
156
158
  * Convert RRF candidates to final LearningWithScore results.
157
- * Applies additional boosts for recency, outcome, frequency, position, and feedback.
159
+ * Applies additional boosts for recency, outcome, frequency, and position.
158
160
  *
159
161
  * @param candidates - RRF-scored candidates
160
162
  * @param recencyWeight - Weight for recency boost
161
- * @param feedbackScores - Optional map of learning ID to feedback score (0-1)
162
163
  */
163
- const applyFinalScoring = (candidates, recencyWeight, feedbackScores) => {
164
+ const applyFinalScoring = (candidates, recencyWeight) => {
164
165
  return candidates.map(candidate => {
165
166
  const { learning, bm25Score, bm25Rank, vectorScore, vectorRank, rrfScore: rrf, recencyScore } = candidate;
166
167
  // Outcome boost: if learning has been marked helpful, boost it
@@ -171,10 +172,6 @@ const applyFinalScoring = (candidates, recencyWeight, feedbackScores) => {
171
172
  const frequencyBoost = FREQUENCY_BOOST * Math.log(1 + learning.usageCount);
172
173
  // Position-aware bonus: reward items that rank highly in any retrieval system
173
174
  const positionBonus = calculatePositionBonus(bm25Rank, vectorRank);
174
- // Feedback boost: learnings that were helpful in past runs get boosted
175
- // feedbackScore is 0-1 with 0.5 being neutral (no feedback)
176
- const feedbackScore = feedbackScores?.get(learning.id) ?? 0.5;
177
- const feedbackBoost = FEEDBACK_BOOST * feedbackScore;
178
175
  // Final relevance score: RRF as base + boosts
179
176
  // RRF score range is [0, 2/k] for two lists, normalize to [0, 1] range
180
177
  // Max possible RRF = 2 * 1/(k+1) ≈ 0.0328 for k=60
@@ -184,8 +181,7 @@ const applyFinalScoring = (candidates, recencyWeight, feedbackScores) => {
184
181
  recencyWeight * recencyScore +
185
182
  outcomeBoost +
186
183
  frequencyBoost +
187
- positionBonus +
188
- feedbackBoost;
184
+ positionBonus;
189
185
  return {
190
186
  ...learning,
191
187
  relevanceScore,
@@ -195,7 +191,7 @@ const applyFinalScoring = (candidates, recencyWeight, feedbackScores) => {
195
191
  rrfScore: rrf,
196
192
  bm25Rank,
197
193
  vectorRank,
198
- feedbackScore
194
+ feedbackScore: 0.5
199
195
  };
200
196
  }).sort((a, b) => b.relevanceScore - a.relevanceScore);
201
197
  };
@@ -209,33 +205,27 @@ export const RetrieverServiceNoop = Layer.succeed(RetrieverService, {
209
205
  });
210
206
  /**
211
207
  * Live implementation with BM25 + vector + RRF pipeline.
212
- * Uses the default hybrid search with:
213
- * - Query expansion via LLM
208
+ * Simplified pipeline:
214
209
  * - BM25 full-text search
215
210
  * - Vector similarity (when embeddings available)
216
211
  * - RRF fusion
217
- * - Optional LLM re-ranking
212
+ * - Optional LLM re-ranking (local model)
213
+ * - Optional MMR diversification
218
214
  * - Recency/outcome/frequency boosts
219
215
  */
220
216
  export const RetrieverServiceLive = Layer.effect(RetrieverService, Effect.gen(function* () {
221
217
  const learningRepo = yield* LearningRepository;
222
218
  const embeddingService = yield* EmbeddingService;
223
- const queryExpansionService = yield* QueryExpansionService;
224
219
  const rerankerService = yield* RerankerService;
225
- // GraphExpansionService is optional - graceful degradation when not available
226
- const graphExpansionServiceOption = yield* Effect.serviceOption(GraphExpansionService);
227
- const graphExpansionService = Option.getOrNull(graphExpansionServiceOption);
228
- // FeedbackTrackerService is optional - graceful degradation when not available
229
- const feedbackTrackerServiceOption = yield* Effect.serviceOption(FeedbackTrackerService);
230
- const feedbackTrackerService = Option.getOrNull(feedbackTrackerServiceOption);
220
+ // DiversifierService is optional - graceful degradation when not available
221
+ const diversifierServiceOption = yield* Effect.serviceOption(DiversifierService);
222
+ const diversifierService = Option.getOrNull(diversifierServiceOption);
231
223
  // Load recency weight from config
232
224
  const recencyWeightStr = yield* learningRepo.getConfig("recency_weight");
233
225
  const recencyWeight = recencyWeightStr ? parseFloat(recencyWeightStr) : DEFAULT_RECENCY_WEIGHT;
234
226
  /**
235
227
  * Apply LLM re-ranking to scored learnings with position-aware blending.
236
- * Re-ranking uses a specialized model to improve precision.
237
- * Position-aware blending gives bonuses to items that rank highly
238
- * across multiple retrieval systems (BM25, vector, AND reranker).
228
+ * Re-ranking uses a specialized local model to improve precision.
239
229
  * Gracefully degrades if reranker is unavailable.
240
230
  */
241
231
  const applyReranking = (query, learnings, rerankerWeight = 0.3) => Effect.gen(function* () {
@@ -259,7 +249,6 @@ export const RetrieverServiceLive = Layer.effect(RetrieverService, Effect.gen(fu
259
249
  rerankerRanks.set(result.document, idx + 1); // 1-indexed rank
260
250
  });
261
251
  // Blend reranker scores with existing relevance scores using position-aware bonuses
262
- // Formula: final = (1 - weight) * existing + weight * reranker + positionBonus
263
252
  return learnings.map(learning => {
264
253
  const rerankerScore = rerankerScores.get(learning.content) ?? 0;
265
254
  const rerankerRank = rerankerRanks.get(learning.content) ?? 0;
@@ -272,138 +261,37 @@ export const RetrieverServiceLive = Layer.effect(RetrieverService, Effect.gen(fu
272
261
  return {
273
262
  ...learning,
274
263
  relevanceScore: blendedScore,
275
- rerankerScore // Add reranker score to output
264
+ rerankerScore
276
265
  };
277
266
  }).sort((a, b) => b.relevanceScore - a.relevanceScore);
278
267
  });
279
- /**
280
- * Perform BM25 search across multiple queries and merge results.
281
- * Uses RRF to combine rankings from each query.
282
- */
283
- const multiQueryBM25Search = (queries, limit) => Effect.gen(function* () {
284
- // Search for each query
285
- const allResults = [];
286
- for (const query of queries) {
287
- const results = yield* learningRepo.bm25Search(query, limit);
288
- allResults.push([...results]);
289
- }
290
- // Merge results using best rank across all queries
291
- const learningRanks = new Map();
292
- for (const results of allResults) {
293
- results.forEach((result, idx) => {
294
- const rank = idx + 1;
295
- const existing = learningRanks.get(result.learning.id);
296
- if (!existing || rank < existing.bestRank) {
297
- learningRanks.set(result.learning.id, {
298
- learning: result.learning,
299
- bestRank: rank,
300
- bestScore: result.score
301
- });
302
- }
303
- });
304
- }
305
- // Convert to BM25Result format, sorted by best rank
306
- const merged = [...learningRanks.values()]
307
- .sort((a, b) => a.bestRank - b.bestRank)
308
- .map(item => ({ learning: item.learning, score: item.bestScore }));
309
- return merged;
310
- });
311
- /**
312
- * Apply graph expansion to seed learnings and merge with existing results.
313
- * Gracefully degrades if expansion fails or GraphExpansionService is unavailable.
314
- */
315
- const applyGraphExpansion = (seeds, options) => Effect.gen(function* () {
316
- const graphOpts = options.graphExpansion;
317
- // Skip if not enabled, no seeds, or GraphExpansionService unavailable
318
- if (!graphOpts?.enabled || seeds.length === 0 || !graphExpansionService) {
319
- return seeds;
320
- }
321
- // Convert top-k seeds to SeedLearning format for expansion
322
- const seedCount = Math.min(seeds.length, 10); // Default top-k seeds
323
- const seedLearnings = seeds.slice(0, seedCount).map(s => ({
324
- learning: s,
325
- score: s.relevanceScore
326
- }));
327
- // Perform graph expansion (graceful degradation on error)
328
- const expansionResult = yield* Effect.catchAll(graphExpansionService.expand(seedLearnings, {
329
- depth: graphOpts.depth ?? 2,
330
- decayFactor: graphOpts.decayFactor ?? 0.7,
331
- maxNodes: graphOpts.maxNodes ?? 100,
332
- edgeTypes: graphOpts.edgeTypes
333
- }), () => Effect.succeed(null));
334
- if (!expansionResult) {
335
- // Graph expansion failed, return original seeds with hops=0
336
- return seeds.map(s => ({
337
- ...s,
338
- expansionHops: 0,
339
- expansionPath: [s.id],
340
- sourceEdge: null
341
- }));
342
- }
343
- // Create a set of seed IDs to track which learnings are direct matches
344
- const seedIds = new Set(seeds.map(s => s.id));
345
- // Mark seed learnings with expansion metadata (hops=0)
346
- const seedsWithMeta = seeds.map(s => ({
347
- ...s,
348
- expansionHops: 0,
349
- expansionPath: [s.id],
350
- sourceEdge: null
351
- }));
352
- // Convert expanded learnings to LearningWithScore format
353
- // Only include learnings that aren't already in the seed set (avoid duplicates)
354
- const expandedWithScores = expansionResult.expanded
355
- .filter(e => !seedIds.has(e.learning.id))
356
- .map(e => ({
357
- ...e.learning,
358
- relevanceScore: e.decayedScore,
359
- bm25Score: 0,
360
- vectorScore: 0,
361
- recencyScore: calculateRecencyScore(e.learning.createdAt),
362
- rrfScore: 0,
363
- bm25Rank: 0,
364
- vectorRank: 0,
365
- expansionHops: e.hops,
366
- expansionPath: e.path,
367
- sourceEdge: e.sourceEdge
368
- }));
369
- // Merge seeds and expanded, sort by relevance score
370
- const merged = [...seedsWithMeta, ...expandedWithScores]
371
- .sort((a, b) => b.relevanceScore - a.relevanceScore);
372
- return merged;
373
- });
374
268
  return {
375
269
  search: (query, options) => Effect.gen(function* () {
376
270
  const { limit = 10, minScore = 0.1 } = options ?? {};
377
- // Expand query using LLM (graceful degradation - returns original if unavailable)
378
- const expansionResult = yield* Effect.catchAll(queryExpansionService.expand(query), () => Effect.succeed({ original: query, expanded: [query], wasExpanded: false }));
379
- // Get BM25 search results across all expanded queries (ranked list 1)
380
- const bm25Results = yield* multiQueryBM25Search(expansionResult.expanded, limit * 3);
271
+ // Get BM25 search results (ranked list 1)
272
+ const bm25Results = yield* learningRepo.bm25Search(query, limit * 3);
381
273
  // Try to get query embedding for vector search (graceful degradation)
382
- // Use original query for embedding since expanded queries may be noisier
383
- const queryEmbedding = yield* Effect.option(embeddingService.embed(query));
274
+ const queryEmbedding = yield* Effect.option(embeddingService.embed(query, "query"));
384
275
  const queryEmbeddingValue = Option.getOrNull(queryEmbedding);
385
- // Get all learnings that have embeddings for vector ranking
386
- const learningsWithEmbeddings = yield* learningRepo.findWithEmbeddings(limit * 3);
276
+ // Get learnings with embeddings for vector ranking, capped to prevent linear scan
277
+ const vectorCandidateLimit = Math.min(limit * 3, MAX_VECTOR_CANDIDATES);
278
+ const learningsWithEmbeddings = yield* learningRepo.findWithEmbeddings(vectorCandidateLimit);
387
279
  // Compute vector ranking (ranked list 2)
388
- const vectorRanking = computeVectorRanking(learningsWithEmbeddings, queryEmbeddingValue);
280
+ const vectorRanking = yield* computeVectorRanking(learningsWithEmbeddings, queryEmbeddingValue);
389
281
  // Combine using RRF
390
282
  const candidates = computeRRFScoring(bm25Results, vectorRanking);
391
- // Fetch feedback scores for all candidates in a single batch (graceful degradation)
392
- let feedbackScores;
393
- if (feedbackTrackerService && candidates.length > 0) {
394
- const learningIds = candidates.map(c => c.learning.id);
395
- feedbackScores = yield* Effect.catchAll(feedbackTrackerService.getFeedbackScores(learningIds), () => Effect.succeed(new Map(learningIds.map(id => [id, 0.5]))));
396
- }
397
- // Apply final scoring with boosts (including feedback)
398
- const scored = applyFinalScoring(candidates, recencyWeight, feedbackScores);
399
- // Apply graph expansion if enabled (after initial RRF scoring)
400
- const withGraphExpansion = yield* applyGraphExpansion(scored, options ?? {});
283
+ // Apply final scoring with boosts
284
+ const scored = applyFinalScoring(candidates, recencyWeight);
401
285
  // Apply LLM re-ranking to top candidates for improved precision
402
- // Only re-rank a reasonable number of candidates to balance quality vs latency
403
- const topCandidates = withGraphExpansion.slice(0, Math.min(limit * 2, 20));
286
+ const topCandidates = scored.slice(0, Math.min(limit * 2, 20));
404
287
  const reranked = yield* applyReranking(query, topCandidates);
288
+ // Apply MMR diversification if enabled (after reranking, before final filtering)
289
+ const diversifyOpts = options?.diversification;
290
+ const diversified = (diversifyOpts?.enabled && diversifierService)
291
+ ? yield* Effect.catchAll(diversifierService.mmrDiversify(reranked, limit * 2, diversifyOpts.lambda ?? 0.7), () => Effect.succeed(reranked))
292
+ : reranked;
405
293
  // Filter by minimum score and limit
406
- return reranked
294
+ return diversified
407
295
  .filter(r => r.relevanceScore >= minScore)
408
296
  .slice(0, limit);
409
297
  }),
@@ -412,8 +300,12 @@ export const RetrieverServiceLive = Layer.effect(RetrieverService, Effect.gen(fu
412
300
  }));
413
301
  /**
414
302
  * Auto-detecting layer that always uses Live since BM25 is always available.
415
- * The Live implementation gracefully degrades vector search when embeddings
416
- * are unavailable, so Auto just delegates to Live.
303
+ * The Live implementation gracefully degrades:
304
+ * - Vector search skips when EmbeddingService unavailable
305
+ * - Reranking skips when RerankerService unavailable
417
306
  */
418
- export const RetrieverServiceAuto = RetrieverServiceLive;
307
+ export const RetrieverServiceAuto = Layer.unwrapEffect(Effect.gen(function* () {
308
+ yield* Effect.logDebug("RetrieverService: Using Live (BM25 always available, other features gracefully degrade)");
309
+ return RetrieverServiceLive;
310
+ }));
419
311
  //# sourceMappingURL=retriever-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"retriever-service.js","sourceRoot":"","sources":["../../src/services/retriever-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retriever-service.js","sourceRoot":"","sources":["../../src/services/retriever-service.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  import { Context, Effect, Layer } from "effect";
12
12
  import { AnchorVerificationService, type VerificationResult, type VerifyOptions } from "./anchor-verification.js";
13
13
  import { AnchorRepository } from "../repo/anchor-repo.js";
14
- import { DatabaseError } from "../errors.js";
14
+ import { DatabaseError, ValidationError } from "../errors.js";
15
15
  import type { AnchorStatus } from "@jamesaphoenix/tx-types";
16
16
  /** A batch of anchor IDs to verify */
17
17
  export interface VerificationBatch {
@@ -98,7 +98,7 @@ export declare class SwarmVerificationService extends SwarmVerificationService_b
98
98
  * Exported for use in LLM-assisted verification scenarios where multiple
99
99
  * agents may verify the same anchor for edge cases.
100
100
  */
101
- export declare const calculateMajorityVote: (results: readonly VerificationResult[]) => VoteResult;
101
+ export declare const calculateMajorityVote: (results: readonly VerificationResult[]) => Effect.Effect<VoteResult, ValidationError>;
102
102
  export declare const SwarmVerificationServiceLive: Layer.Layer<SwarmVerificationService, never, AnchorRepository | AnchorVerificationService>;
103
103
  export {};
104
104
  //# sourceMappingURL=swarm-verification.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-verification.d.ts","sourceRoot":"","sources":["../../src/services/swarm-verification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swarm-verification.d.ts","sourceRoot":"","sources":["../../src/services/swarm-verification.ts"],"names":[],"mappings":"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"}