paths-engine 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (582) hide show
  1. package/README.md +600 -3
  2. package/dist/cli/commands/context.d.ts +3 -0
  3. package/dist/cli/commands/context.d.ts.map +1 -0
  4. package/dist/cli/commands/context.js +89 -0
  5. package/dist/cli/commands/context.js.map +1 -0
  6. package/dist/cli/commands/gui.d.ts +5 -0
  7. package/dist/cli/commands/gui.d.ts.map +1 -0
  8. package/dist/cli/commands/gui.js +28 -0
  9. package/dist/cli/commands/gui.js.map +1 -0
  10. package/dist/cli/commands/identity.d.ts +3 -0
  11. package/dist/cli/commands/identity.d.ts.map +1 -0
  12. package/dist/cli/commands/identity.js +83 -0
  13. package/dist/cli/commands/identity.js.map +1 -0
  14. package/dist/cli/commands/ingest.d.ts +3 -0
  15. package/dist/cli/commands/ingest.d.ts.map +1 -0
  16. package/dist/cli/commands/ingest.js +75 -0
  17. package/dist/cli/commands/ingest.js.map +1 -0
  18. package/dist/cli/commands/knowledge.d.ts +3 -0
  19. package/dist/cli/commands/knowledge.d.ts.map +1 -0
  20. package/dist/cli/commands/knowledge.js +104 -0
  21. package/dist/cli/commands/knowledge.js.map +1 -0
  22. package/dist/cli/commands/lineage.d.ts +3 -0
  23. package/dist/cli/commands/lineage.d.ts.map +1 -0
  24. package/dist/cli/commands/lineage.js +130 -0
  25. package/dist/cli/commands/lineage.js.map +1 -0
  26. package/dist/cli/commands/mcp-setup.d.ts +23 -0
  27. package/dist/cli/commands/mcp-setup.d.ts.map +1 -0
  28. package/dist/cli/commands/mcp-setup.js +190 -0
  29. package/dist/cli/commands/mcp-setup.js.map +1 -0
  30. package/dist/cli/commands/plan.d.ts +8 -0
  31. package/dist/cli/commands/plan.d.ts.map +1 -0
  32. package/dist/cli/commands/plan.js +230 -0
  33. package/dist/cli/commands/plan.js.map +1 -0
  34. package/dist/cli/commands/session.d.ts +3 -0
  35. package/dist/cli/commands/session.d.ts.map +1 -0
  36. package/dist/cli/commands/session.js +82 -0
  37. package/dist/cli/commands/session.js.map +1 -0
  38. package/dist/cli/commands/status.d.ts +3 -0
  39. package/dist/cli/commands/status.d.ts.map +1 -0
  40. package/dist/cli/commands/status.js +65 -0
  41. package/dist/cli/commands/status.js.map +1 -0
  42. package/dist/cli/commands/sync.d.ts +3 -0
  43. package/dist/cli/commands/sync.d.ts.map +1 -0
  44. package/dist/cli/commands/sync.js +168 -0
  45. package/dist/cli/commands/sync.js.map +1 -0
  46. package/dist/cli/commands/todo.d.ts +3 -0
  47. package/dist/cli/commands/todo.d.ts.map +1 -0
  48. package/dist/cli/commands/todo.js +116 -0
  49. package/dist/cli/commands/todo.js.map +1 -0
  50. package/dist/cli/file-reader.d.ts +3 -0
  51. package/dist/cli/file-reader.d.ts.map +1 -0
  52. package/dist/cli/file-reader.js +29 -0
  53. package/dist/cli/file-reader.js.map +1 -0
  54. package/dist/cli/formatters/context.d.ts +3 -0
  55. package/dist/cli/formatters/context.d.ts.map +1 -0
  56. package/dist/cli/formatters/context.js +58 -0
  57. package/dist/cli/formatters/context.js.map +1 -0
  58. package/dist/cli/formatters/errors.d.ts +2 -0
  59. package/dist/cli/formatters/errors.d.ts.map +1 -0
  60. package/dist/cli/formatters/errors.js +7 -0
  61. package/dist/cli/formatters/errors.js.map +1 -0
  62. package/dist/cli/formatters/status.d.ts +6 -0
  63. package/dist/cli/formatters/status.d.ts.map +1 -0
  64. package/dist/cli/formatters/status.js +79 -0
  65. package/dist/cli/formatters/status.js.map +1 -0
  66. package/dist/cli/index.d.ts +3 -0
  67. package/dist/cli/index.d.ts.map +1 -0
  68. package/dist/cli/index.js +40 -0
  69. package/dist/cli/index.js.map +1 -0
  70. package/dist/core/compiler.d.ts +50 -0
  71. package/dist/core/compiler.d.ts.map +1 -0
  72. package/dist/core/compiler.js +424 -0
  73. package/dist/core/compiler.js.map +1 -0
  74. package/dist/core/db/case-mapper.d.ts +3 -0
  75. package/dist/core/db/case-mapper.d.ts.map +1 -0
  76. package/dist/core/db/case-mapper.js +21 -0
  77. package/dist/core/db/case-mapper.js.map +1 -0
  78. package/dist/core/db/embedding-repository.d.ts +14 -0
  79. package/dist/core/db/embedding-repository.d.ts.map +1 -0
  80. package/dist/core/db/embedding-repository.js +57 -0
  81. package/dist/core/db/embedding-repository.js.map +1 -0
  82. package/dist/core/db/external-event-repository.d.ts +13 -0
  83. package/dist/core/db/external-event-repository.d.ts.map +1 -0
  84. package/dist/core/db/external-event-repository.js +73 -0
  85. package/dist/core/db/external-event-repository.js.map +1 -0
  86. package/dist/core/db/identity-repository.d.ts +9 -0
  87. package/dist/core/db/identity-repository.d.ts.map +1 -0
  88. package/dist/core/db/identity-repository.js +37 -0
  89. package/dist/core/db/identity-repository.js.map +1 -0
  90. package/dist/core/db/index.d.ts +12 -0
  91. package/dist/core/db/index.d.ts.map +1 -0
  92. package/dist/core/db/index.js +33 -0
  93. package/dist/core/db/index.js.map +1 -0
  94. package/dist/core/db/knowledge-confirmation-repository.d.ts +12 -0
  95. package/dist/core/db/knowledge-confirmation-repository.d.ts.map +1 -0
  96. package/dist/core/db/knowledge-confirmation-repository.js +40 -0
  97. package/dist/core/db/knowledge-confirmation-repository.js.map +1 -0
  98. package/dist/core/db/knowledge-repository.d.ts +18 -0
  99. package/dist/core/db/knowledge-repository.d.ts.map +1 -0
  100. package/dist/core/db/knowledge-repository.js +77 -0
  101. package/dist/core/db/knowledge-repository.js.map +1 -0
  102. package/dist/core/db/lineage-repository.d.ts +14 -0
  103. package/dist/core/db/lineage-repository.d.ts.map +1 -0
  104. package/dist/core/db/lineage-repository.js +35 -0
  105. package/dist/core/db/lineage-repository.js.map +1 -0
  106. package/dist/core/db/node-repository.d.ts +33 -0
  107. package/dist/core/db/node-repository.d.ts.map +1 -0
  108. package/dist/core/db/node-repository.js +116 -0
  109. package/dist/core/db/node-repository.js.map +1 -0
  110. package/dist/core/db/path.d.ts +3 -0
  111. package/dist/core/db/path.d.ts.map +1 -0
  112. package/dist/core/db/path.js +57 -0
  113. package/dist/core/db/path.js.map +1 -0
  114. package/dist/core/db/plan-repository.d.ts +17 -0
  115. package/dist/core/db/plan-repository.d.ts.map +1 -0
  116. package/dist/core/db/plan-repository.js +56 -0
  117. package/dist/core/db/plan-repository.js.map +1 -0
  118. package/dist/core/db/project-repository.d.ts +11 -0
  119. package/dist/core/db/project-repository.d.ts.map +1 -0
  120. package/dist/core/db/project-repository.js +24 -0
  121. package/dist/core/db/project-repository.js.map +1 -0
  122. package/dist/core/db/rollup-repository.d.ts +10 -0
  123. package/dist/core/db/rollup-repository.d.ts.map +1 -0
  124. package/dist/core/db/rollup-repository.js +55 -0
  125. package/dist/core/db/rollup-repository.js.map +1 -0
  126. package/dist/core/db/schema.d.ts +4 -0
  127. package/dist/core/db/schema.d.ts.map +1 -0
  128. package/dist/core/db/schema.js +315 -0
  129. package/dist/core/db/schema.js.map +1 -0
  130. package/dist/core/db/store.d.ts +298 -0
  131. package/dist/core/db/store.d.ts.map +1 -0
  132. package/dist/core/db/store.js +1054 -0
  133. package/dist/core/db/store.js.map +1 -0
  134. package/dist/core/db/sync-repository.d.ts +23 -0
  135. package/dist/core/db/sync-repository.d.ts.map +1 -0
  136. package/dist/core/db/sync-repository.js +117 -0
  137. package/dist/core/db/sync-repository.js.map +1 -0
  138. package/dist/core/db/todo-repository.d.ts +14 -0
  139. package/dist/core/db/todo-repository.d.ts.map +1 -0
  140. package/dist/core/db/todo-repository.js +37 -0
  141. package/dist/core/db/todo-repository.js.map +1 -0
  142. package/dist/core/embedding/cosine.d.ts +5 -0
  143. package/dist/core/embedding/cosine.d.ts.map +1 -0
  144. package/dist/core/embedding/cosine.js +50 -0
  145. package/dist/core/embedding/cosine.js.map +1 -0
  146. package/dist/core/embedding/embedding.service.d.ts +27 -0
  147. package/dist/core/embedding/embedding.service.d.ts.map +1 -0
  148. package/dist/core/embedding/embedding.service.js +99 -0
  149. package/dist/core/embedding/embedding.service.js.map +1 -0
  150. package/dist/core/embedding/index.d.ts +3 -0
  151. package/dist/core/embedding/index.d.ts.map +1 -0
  152. package/dist/core/embedding/index.js +3 -0
  153. package/dist/core/embedding/index.js.map +1 -0
  154. package/dist/core/identity.d.ts +6 -0
  155. package/dist/core/identity.d.ts.map +1 -0
  156. package/dist/core/identity.js +24 -0
  157. package/dist/core/identity.js.map +1 -0
  158. package/dist/core/index.d.ts +13 -0
  159. package/dist/core/index.d.ts.map +1 -0
  160. package/dist/core/index.js +13 -0
  161. package/dist/core/index.js.map +1 -0
  162. package/dist/core/ingestion/generic-adapter.d.ts +5 -0
  163. package/dist/core/ingestion/generic-adapter.d.ts.map +1 -0
  164. package/dist/core/ingestion/generic-adapter.js +15 -0
  165. package/dist/core/ingestion/generic-adapter.js.map +1 -0
  166. package/dist/core/ingestion/git-adapter.d.ts +12 -0
  167. package/dist/core/ingestion/git-adapter.d.ts.map +1 -0
  168. package/dist/core/ingestion/git-adapter.js +31 -0
  169. package/dist/core/ingestion/git-adapter.js.map +1 -0
  170. package/dist/core/ingestion/github-adapter.d.ts +23 -0
  171. package/dist/core/ingestion/github-adapter.d.ts.map +1 -0
  172. package/dist/core/ingestion/github-adapter.js +55 -0
  173. package/dist/core/ingestion/github-adapter.js.map +1 -0
  174. package/dist/core/ingestion/index.d.ts +6 -0
  175. package/dist/core/ingestion/index.d.ts.map +1 -0
  176. package/dist/core/ingestion/index.js +6 -0
  177. package/dist/core/ingestion/index.js.map +1 -0
  178. package/dist/core/ingestion/ingestion.service.d.ts +25 -0
  179. package/dist/core/ingestion/ingestion.service.d.ts.map +1 -0
  180. package/dist/core/ingestion/ingestion.service.js +109 -0
  181. package/dist/core/ingestion/ingestion.service.js.map +1 -0
  182. package/dist/core/ingestion/types.d.ts +38 -0
  183. package/dist/core/ingestion/types.d.ts.map +1 -0
  184. package/dist/core/ingestion/types.js +2 -0
  185. package/dist/core/ingestion/types.js.map +1 -0
  186. package/dist/core/knowledge.d.ts +13 -0
  187. package/dist/core/knowledge.d.ts.map +1 -0
  188. package/dist/core/knowledge.js +101 -0
  189. package/dist/core/knowledge.js.map +1 -0
  190. package/dist/core/lineage.d.ts +11 -0
  191. package/dist/core/lineage.d.ts.map +1 -0
  192. package/dist/core/lineage.js +75 -0
  193. package/dist/core/lineage.js.map +1 -0
  194. package/dist/core/node.d.ts +27 -0
  195. package/dist/core/node.d.ts.map +1 -0
  196. package/dist/core/node.js +145 -0
  197. package/dist/core/node.js.map +1 -0
  198. package/dist/core/plan.d.ts +26 -0
  199. package/dist/core/plan.d.ts.map +1 -0
  200. package/dist/core/plan.js +109 -0
  201. package/dist/core/plan.js.map +1 -0
  202. package/dist/core/project.d.ts +10 -0
  203. package/dist/core/project.d.ts.map +1 -0
  204. package/dist/core/project.js +108 -0
  205. package/dist/core/project.js.map +1 -0
  206. package/dist/core/rollup.d.ts +7 -0
  207. package/dist/core/rollup.d.ts.map +1 -0
  208. package/dist/core/rollup.js +48 -0
  209. package/dist/core/rollup.js.map +1 -0
  210. package/dist/core/security/error-classifier.d.ts +35 -0
  211. package/dist/core/security/error-classifier.d.ts.map +1 -0
  212. package/dist/core/security/error-classifier.js +169 -0
  213. package/dist/core/security/error-classifier.js.map +1 -0
  214. package/dist/core/sync/bundle-auth.d.ts +23 -0
  215. package/dist/core/sync/bundle-auth.d.ts.map +1 -0
  216. package/dist/core/sync/bundle-auth.js +184 -0
  217. package/dist/core/sync/bundle-auth.js.map +1 -0
  218. package/dist/core/sync/device.d.ts +8 -0
  219. package/dist/core/sync/device.d.ts.map +1 -0
  220. package/dist/core/sync/device.js +32 -0
  221. package/dist/core/sync/device.js.map +1 -0
  222. package/dist/core/sync/hlc.d.ts +12 -0
  223. package/dist/core/sync/hlc.d.ts.map +1 -0
  224. package/dist/core/sync/hlc.js +83 -0
  225. package/dist/core/sync/hlc.js.map +1 -0
  226. package/dist/core/sync/index.d.ts +6 -0
  227. package/dist/core/sync/index.d.ts.map +1 -0
  228. package/dist/core/sync/index.js +5 -0
  229. package/dist/core/sync/index.js.map +1 -0
  230. package/dist/core/sync/sync.service.d.ts +29 -0
  231. package/dist/core/sync/sync.service.d.ts.map +1 -0
  232. package/dist/core/sync/sync.service.js +457 -0
  233. package/dist/core/sync/sync.service.js.map +1 -0
  234. package/dist/core/sync/types.d.ts +101 -0
  235. package/dist/core/sync/types.d.ts.map +1 -0
  236. package/dist/core/sync/types.js +2 -0
  237. package/dist/core/sync/types.js.map +1 -0
  238. package/dist/core/task-context-budget.d.ts +5 -0
  239. package/dist/core/task-context-budget.d.ts.map +1 -0
  240. package/dist/core/task-context-budget.js +11 -0
  241. package/dist/core/task-context-budget.js.map +1 -0
  242. package/dist/core/task-context-order.d.ts +6 -0
  243. package/dist/core/task-context-order.d.ts.map +1 -0
  244. package/dist/core/task-context-order.js +26 -0
  245. package/dist/core/task-context-order.js.map +1 -0
  246. package/dist/core/task-context-paths.d.ts +6 -0
  247. package/dist/core/task-context-paths.d.ts.map +1 -0
  248. package/dist/core/task-context-paths.js +59 -0
  249. package/dist/core/task-context-paths.js.map +1 -0
  250. package/dist/core/task-context.d.ts +21 -0
  251. package/dist/core/task-context.d.ts.map +1 -0
  252. package/dist/core/task-context.js +283 -0
  253. package/dist/core/task-context.js.map +1 -0
  254. package/dist/core/todo.d.ts +16 -0
  255. package/dist/core/todo.d.ts.map +1 -0
  256. package/dist/core/todo.js +110 -0
  257. package/dist/core/todo.js.map +1 -0
  258. package/dist/core/tokenizer.d.ts +3 -0
  259. package/dist/core/tokenizer.d.ts.map +1 -0
  260. package/dist/core/tokenizer.js +9 -0
  261. package/dist/core/tokenizer.js.map +1 -0
  262. package/dist/core/types/context.d.ts +50 -0
  263. package/dist/core/types/context.d.ts.map +1 -0
  264. package/dist/core/types/context.js +2 -0
  265. package/dist/core/types/context.js.map +1 -0
  266. package/dist/core/types/embedding.d.ts +25 -0
  267. package/dist/core/types/embedding.d.ts.map +1 -0
  268. package/dist/core/types/embedding.js +2 -0
  269. package/dist/core/types/embedding.js.map +1 -0
  270. package/dist/core/types/external-event.d.ts +29 -0
  271. package/dist/core/types/external-event.d.ts.map +1 -0
  272. package/dist/core/types/external-event.js +2 -0
  273. package/dist/core/types/external-event.js.map +1 -0
  274. package/dist/core/types/hlc.d.ts +12 -0
  275. package/dist/core/types/hlc.d.ts.map +1 -0
  276. package/dist/core/types/hlc.js +2 -0
  277. package/dist/core/types/hlc.js.map +1 -0
  278. package/dist/core/types/identity.d.ts +26 -0
  279. package/dist/core/types/identity.d.ts.map +1 -0
  280. package/dist/core/types/identity.js +2 -0
  281. package/dist/core/types/identity.js.map +1 -0
  282. package/dist/core/types/index.d.ts +15 -0
  283. package/dist/core/types/index.d.ts.map +1 -0
  284. package/dist/core/types/index.js +15 -0
  285. package/dist/core/types/index.js.map +1 -0
  286. package/dist/core/types/installation-identity.d.ts +13 -0
  287. package/dist/core/types/installation-identity.d.ts.map +1 -0
  288. package/dist/core/types/installation-identity.js +2 -0
  289. package/dist/core/types/installation-identity.js.map +1 -0
  290. package/dist/core/types/knowledge-confirmation.d.ts +25 -0
  291. package/dist/core/types/knowledge-confirmation.d.ts.map +1 -0
  292. package/dist/core/types/knowledge-confirmation.js +2 -0
  293. package/dist/core/types/knowledge-confirmation.js.map +1 -0
  294. package/dist/core/types/knowledge.d.ts +50 -0
  295. package/dist/core/types/knowledge.d.ts.map +1 -0
  296. package/dist/core/types/knowledge.js +12 -0
  297. package/dist/core/types/knowledge.js.map +1 -0
  298. package/dist/core/types/lineage.d.ts +37 -0
  299. package/dist/core/types/lineage.d.ts.map +1 -0
  300. package/dist/core/types/lineage.js +2 -0
  301. package/dist/core/types/lineage.js.map +1 -0
  302. package/dist/core/types/node.d.ts +47 -0
  303. package/dist/core/types/node.d.ts.map +1 -0
  304. package/dist/core/types/node.js +2 -0
  305. package/dist/core/types/node.js.map +1 -0
  306. package/dist/core/types/plan.d.ts +60 -0
  307. package/dist/core/types/plan.d.ts.map +1 -0
  308. package/dist/core/types/plan.js +2 -0
  309. package/dist/core/types/plan.js.map +1 -0
  310. package/dist/core/types/project.d.ts +27 -0
  311. package/dist/core/types/project.d.ts.map +1 -0
  312. package/dist/core/types/project.js +2 -0
  313. package/dist/core/types/project.js.map +1 -0
  314. package/dist/core/types/status-json.d.ts +30 -0
  315. package/dist/core/types/status-json.d.ts.map +1 -0
  316. package/dist/core/types/status-json.js +2 -0
  317. package/dist/core/types/status-json.js.map +1 -0
  318. package/dist/core/types/sync-change.d.ts +49 -0
  319. package/dist/core/types/sync-change.d.ts.map +1 -0
  320. package/dist/core/types/sync-change.js +2 -0
  321. package/dist/core/types/sync-change.js.map +1 -0
  322. package/dist/core/types/task-context.d.ts +55 -0
  323. package/dist/core/types/task-context.d.ts.map +1 -0
  324. package/dist/core/types/task-context.js +2 -0
  325. package/dist/core/types/task-context.js.map +1 -0
  326. package/dist/core/types/todo.d.ts +33 -0
  327. package/dist/core/types/todo.d.ts.map +1 -0
  328. package/dist/core/types/todo.js +2 -0
  329. package/dist/core/types/todo.js.map +1 -0
  330. package/dist/gui/launcher.d.ts +22 -0
  331. package/dist/gui/launcher.d.ts.map +1 -0
  332. package/dist/gui/launcher.js +86 -0
  333. package/dist/gui/launcher.js.map +1 -0
  334. package/dist/gui/main/app-bridge.d.ts +21 -0
  335. package/dist/gui/main/app-bridge.d.ts.map +1 -0
  336. package/dist/gui/main/app-bridge.js +204 -0
  337. package/dist/gui/main/app-bridge.js.map +1 -0
  338. package/dist/gui/main/app-context-manager.d.ts +25 -0
  339. package/dist/gui/main/app-context-manager.d.ts.map +1 -0
  340. package/dist/gui/main/app-context-manager.js +141 -0
  341. package/dist/gui/main/app-context-manager.js.map +1 -0
  342. package/dist/gui/main/context.d.ts +32 -0
  343. package/dist/gui/main/context.d.ts.map +1 -0
  344. package/dist/gui/main/context.js +56 -0
  345. package/dist/gui/main/context.js.map +1 -0
  346. package/dist/gui/main/index.d.ts +2 -0
  347. package/dist/gui/main/index.d.ts.map +1 -0
  348. package/dist/gui/main/index.js +3 -0
  349. package/dist/gui/main/index.js.map +1 -0
  350. package/dist/gui/main/lifecycle.d.ts +45 -0
  351. package/dist/gui/main/lifecycle.d.ts.map +1 -0
  352. package/dist/gui/main/lifecycle.js +272 -0
  353. package/dist/gui/main/lifecycle.js.map +1 -0
  354. package/dist/gui/main/schemas.d.ts +105 -0
  355. package/dist/gui/main/schemas.d.ts.map +1 -0
  356. package/dist/gui/main/schemas.js +131 -0
  357. package/dist/gui/main/schemas.js.map +1 -0
  358. package/dist/gui/main/tray.d.ts +9 -0
  359. package/dist/gui/main/tray.d.ts.map +1 -0
  360. package/dist/gui/main/tray.js +70 -0
  361. package/dist/gui/main/tray.js.map +1 -0
  362. package/dist/gui/preload/api-interface.d.ts +59 -0
  363. package/dist/gui/preload/api-interface.d.ts.map +1 -0
  364. package/dist/gui/preload/api-interface.js +2 -0
  365. package/dist/gui/preload/api-interface.js.map +1 -0
  366. package/dist/gui/preload/preload.cjs +1 -0
  367. package/dist/gui/preload/preload.d.ts +3 -0
  368. package/dist/gui/preload/preload.d.ts.map +1 -0
  369. package/dist/gui/preload/preload.js +36 -0
  370. package/dist/gui/preload/preload.js.map +1 -0
  371. package/dist/gui/renderer/App.d.ts +3 -0
  372. package/dist/gui/renderer/App.d.ts.map +1 -0
  373. package/dist/gui/renderer/App.js +33 -0
  374. package/dist/gui/renderer/App.js.map +1 -0
  375. package/dist/gui/renderer/components/layout/AppShell.d.ts +15 -0
  376. package/dist/gui/renderer/components/layout/AppShell.d.ts.map +1 -0
  377. package/dist/gui/renderer/components/layout/AppShell.js +206 -0
  378. package/dist/gui/renderer/components/layout/AppShell.js.map +1 -0
  379. package/dist/gui/renderer/components/layout/NavItem.d.ts +12 -0
  380. package/dist/gui/renderer/components/layout/NavItem.d.ts.map +1 -0
  381. package/dist/gui/renderer/components/layout/NavItem.js +72 -0
  382. package/dist/gui/renderer/components/layout/NavItem.js.map +1 -0
  383. package/dist/gui/renderer/components/layout/PathsLogo.d.ts +9 -0
  384. package/dist/gui/renderer/components/layout/PathsLogo.d.ts.map +1 -0
  385. package/dist/gui/renderer/components/layout/PathsLogo.js +87 -0
  386. package/dist/gui/renderer/components/layout/PathsLogo.js.map +1 -0
  387. package/dist/gui/renderer/components/shared/Badge.d.ts +11 -0
  388. package/dist/gui/renderer/components/shared/Badge.d.ts.map +1 -0
  389. package/dist/gui/renderer/components/shared/Badge.js +150 -0
  390. package/dist/gui/renderer/components/shared/Badge.js.map +1 -0
  391. package/dist/gui/renderer/components/shared/EmptyState.d.ts +10 -0
  392. package/dist/gui/renderer/components/shared/EmptyState.d.ts.map +1 -0
  393. package/dist/gui/renderer/components/shared/EmptyState.js +59 -0
  394. package/dist/gui/renderer/components/shared/EmptyState.js.map +1 -0
  395. package/dist/gui/renderer/components/shared/ErrorBanner.d.ts +7 -0
  396. package/dist/gui/renderer/components/shared/ErrorBanner.d.ts.map +1 -0
  397. package/dist/gui/renderer/components/shared/ErrorBanner.js +33 -0
  398. package/dist/gui/renderer/components/shared/ErrorBanner.js.map +1 -0
  399. package/dist/gui/renderer/components/shared/ErrorBoundary.d.ts +18 -0
  400. package/dist/gui/renderer/components/shared/ErrorBoundary.d.ts.map +1 -0
  401. package/dist/gui/renderer/components/shared/ErrorBoundary.js +40 -0
  402. package/dist/gui/renderer/components/shared/ErrorBoundary.js.map +1 -0
  403. package/dist/gui/renderer/components/shared/GlassSelect.d.ts +17 -0
  404. package/dist/gui/renderer/components/shared/GlassSelect.d.ts.map +1 -0
  405. package/dist/gui/renderer/components/shared/GlassSelect.js +147 -0
  406. package/dist/gui/renderer/components/shared/GlassSelect.js.map +1 -0
  407. package/dist/gui/renderer/components/shared/LoadingSpinner.d.ts +7 -0
  408. package/dist/gui/renderer/components/shared/LoadingSpinner.d.ts.map +1 -0
  409. package/dist/gui/renderer/components/shared/LoadingSpinner.js +27 -0
  410. package/dist/gui/renderer/components/shared/LoadingSpinner.js.map +1 -0
  411. package/dist/gui/renderer/components/surfaces/Dashboard.d.ts +3 -0
  412. package/dist/gui/renderer/components/surfaces/Dashboard.d.ts.map +1 -0
  413. package/dist/gui/renderer/components/surfaces/Dashboard.js +123 -0
  414. package/dist/gui/renderer/components/surfaces/Dashboard.js.map +1 -0
  415. package/dist/gui/renderer/components/surfaces/KnowledgeExplorer.d.ts +3 -0
  416. package/dist/gui/renderer/components/surfaces/KnowledgeExplorer.d.ts.map +1 -0
  417. package/dist/gui/renderer/components/surfaces/KnowledgeExplorer.js +202 -0
  418. package/dist/gui/renderer/components/surfaces/KnowledgeExplorer.js.map +1 -0
  419. package/dist/gui/renderer/components/surfaces/LineageManager.d.ts +3 -0
  420. package/dist/gui/renderer/components/surfaces/LineageManager.d.ts.map +1 -0
  421. package/dist/gui/renderer/components/surfaces/LineageManager.js +148 -0
  422. package/dist/gui/renderer/components/surfaces/LineageManager.js.map +1 -0
  423. package/dist/gui/renderer/components/surfaces/SessionTimeline.d.ts +3 -0
  424. package/dist/gui/renderer/components/surfaces/SessionTimeline.d.ts.map +1 -0
  425. package/dist/gui/renderer/components/surfaces/SessionTimeline.js +136 -0
  426. package/dist/gui/renderer/components/surfaces/SessionTimeline.js.map +1 -0
  427. package/dist/gui/renderer/components/surfaces/TodoBoard.d.ts +3 -0
  428. package/dist/gui/renderer/components/surfaces/TodoBoard.d.ts.map +1 -0
  429. package/dist/gui/renderer/components/surfaces/TodoBoard.js +128 -0
  430. package/dist/gui/renderer/components/surfaces/TodoBoard.js.map +1 -0
  431. package/dist/gui/renderer/context/paths-context.d.ts +19 -0
  432. package/dist/gui/renderer/context/paths-context.d.ts.map +1 -0
  433. package/dist/gui/renderer/context/paths-context.js +122 -0
  434. package/dist/gui/renderer/context/paths-context.js.map +1 -0
  435. package/dist/gui/renderer/context/theme-context.d.ts +11 -0
  436. package/dist/gui/renderer/context/theme-context.d.ts.map +1 -0
  437. package/dist/gui/renderer/context/theme-context.js +41 -0
  438. package/dist/gui/renderer/context/theme-context.js.map +1 -0
  439. package/dist/gui/renderer/hooks/use-api-query.d.ts +9 -0
  440. package/dist/gui/renderer/hooks/use-api-query.d.ts.map +1 -0
  441. package/dist/gui/renderer/hooks/use-api-query.js +60 -0
  442. package/dist/gui/renderer/hooks/use-api-query.js.map +1 -0
  443. package/dist/gui/renderer/hooks/use-lineage.d.ts +13 -0
  444. package/dist/gui/renderer/hooks/use-lineage.d.ts.map +1 -0
  445. package/dist/gui/renderer/hooks/use-lineage.js +15 -0
  446. package/dist/gui/renderer/hooks/use-lineage.js.map +1 -0
  447. package/dist/gui/renderer/index.d.ts +2 -0
  448. package/dist/gui/renderer/index.d.ts.map +1 -0
  449. package/dist/gui/renderer/index.js +2 -0
  450. package/dist/gui/renderer/index.js.map +1 -0
  451. package/dist/gui/shared/errors.d.ts +23 -0
  452. package/dist/gui/shared/errors.d.ts.map +1 -0
  453. package/dist/gui/shared/errors.js +10 -0
  454. package/dist/gui/shared/errors.js.map +1 -0
  455. package/dist/gui/shared/index.d.ts +4 -0
  456. package/dist/gui/shared/index.d.ts.map +1 -0
  457. package/dist/gui/shared/index.js +4 -0
  458. package/dist/gui/shared/index.js.map +1 -0
  459. package/dist/gui/shared/ipc-channels.d.ts +53 -0
  460. package/dist/gui/shared/ipc-channels.d.ts.map +1 -0
  461. package/dist/gui/shared/ipc-channels.js +63 -0
  462. package/dist/gui/shared/ipc-channels.js.map +1 -0
  463. package/dist/gui/shared/ipc-contracts.d.ts +176 -0
  464. package/dist/gui/shared/ipc-contracts.d.ts.map +1 -0
  465. package/dist/gui/shared/ipc-contracts.js +2 -0
  466. package/dist/gui/shared/ipc-contracts.js.map +1 -0
  467. package/dist/mcp/context.d.ts +55 -0
  468. package/dist/mcp/context.d.ts.map +1 -0
  469. package/dist/mcp/context.js +183 -0
  470. package/dist/mcp/context.js.map +1 -0
  471. package/dist/mcp/handler-utils.d.ts +22 -0
  472. package/dist/mcp/handler-utils.d.ts.map +1 -0
  473. package/dist/mcp/handler-utils.js +26 -0
  474. package/dist/mcp/handler-utils.js.map +1 -0
  475. package/dist/mcp/schemas.d.ts +688 -0
  476. package/dist/mcp/schemas.d.ts.map +1 -0
  477. package/dist/mcp/schemas.js +278 -0
  478. package/dist/mcp/schemas.js.map +1 -0
  479. package/dist/mcp/server.d.ts +8 -0
  480. package/dist/mcp/server.d.ts.map +1 -0
  481. package/dist/mcp/server.js +88 -0
  482. package/dist/mcp/server.js.map +1 -0
  483. package/dist/mcp/tools/abandon-plan.d.ts +4 -0
  484. package/dist/mcp/tools/abandon-plan.d.ts.map +1 -0
  485. package/dist/mcp/tools/abandon-plan.js +32 -0
  486. package/dist/mcp/tools/abandon-plan.js.map +1 -0
  487. package/dist/mcp/tools/add-todo.d.ts +4 -0
  488. package/dist/mcp/tools/add-todo.d.ts.map +1 -0
  489. package/dist/mcp/tools/add-todo.js +34 -0
  490. package/dist/mcp/tools/add-todo.js.map +1 -0
  491. package/dist/mcp/tools/complete-plan.d.ts +4 -0
  492. package/dist/mcp/tools/complete-plan.d.ts.map +1 -0
  493. package/dist/mcp/tools/complete-plan.js +32 -0
  494. package/dist/mcp/tools/complete-plan.js.map +1 -0
  495. package/dist/mcp/tools/complete-todo.d.ts +4 -0
  496. package/dist/mcp/tools/complete-todo.d.ts.map +1 -0
  497. package/dist/mcp/tools/complete-todo.js +51 -0
  498. package/dist/mcp/tools/complete-todo.js.map +1 -0
  499. package/dist/mcp/tools/continue-lineage.d.ts +4 -0
  500. package/dist/mcp/tools/continue-lineage.d.ts.map +1 -0
  501. package/dist/mcp/tools/continue-lineage.js +31 -0
  502. package/dist/mcp/tools/continue-lineage.js.map +1 -0
  503. package/dist/mcp/tools/create-plan.d.ts +4 -0
  504. package/dist/mcp/tools/create-plan.d.ts.map +1 -0
  505. package/dist/mcp/tools/create-plan.js +42 -0
  506. package/dist/mcp/tools/create-plan.js.map +1 -0
  507. package/dist/mcp/tools/get-active-plan.d.ts +4 -0
  508. package/dist/mcp/tools/get-active-plan.d.ts.map +1 -0
  509. package/dist/mcp/tools/get-active-plan.js +30 -0
  510. package/dist/mcp/tools/get-active-plan.js.map +1 -0
  511. package/dist/mcp/tools/get-lineage-history.d.ts +4 -0
  512. package/dist/mcp/tools/get-lineage-history.d.ts.map +1 -0
  513. package/dist/mcp/tools/get-lineage-history.js +38 -0
  514. package/dist/mcp/tools/get-lineage-history.js.map +1 -0
  515. package/dist/mcp/tools/get-lineages.d.ts +4 -0
  516. package/dist/mcp/tools/get-lineages.d.ts.map +1 -0
  517. package/dist/mcp/tools/get-lineages.js +30 -0
  518. package/dist/mcp/tools/get-lineages.js.map +1 -0
  519. package/dist/mcp/tools/get-project-context.d.ts +4 -0
  520. package/dist/mcp/tools/get-project-context.d.ts.map +1 -0
  521. package/dist/mcp/tools/get-project-context.js +38 -0
  522. package/dist/mcp/tools/get-project-context.js.map +1 -0
  523. package/dist/mcp/tools/get-task-context.d.ts +4 -0
  524. package/dist/mcp/tools/get-task-context.d.ts.map +1 -0
  525. package/dist/mcp/tools/get-task-context.js +42 -0
  526. package/dist/mcp/tools/get-task-context.js.map +1 -0
  527. package/dist/mcp/tools/ingest-event.d.ts +4 -0
  528. package/dist/mcp/tools/ingest-event.d.ts.map +1 -0
  529. package/dist/mcp/tools/ingest-event.js +71 -0
  530. package/dist/mcp/tools/ingest-event.js.map +1 -0
  531. package/dist/mcp/tools/list-plans.d.ts +4 -0
  532. package/dist/mcp/tools/list-plans.d.ts.map +1 -0
  533. package/dist/mcp/tools/list-plans.js +44 -0
  534. package/dist/mcp/tools/list-plans.js.map +1 -0
  535. package/dist/mcp/tools/list-todos.d.ts +4 -0
  536. package/dist/mcp/tools/list-todos.d.ts.map +1 -0
  537. package/dist/mcp/tools/list-todos.js +31 -0
  538. package/dist/mcp/tools/list-todos.js.map +1 -0
  539. package/dist/mcp/tools/log-session.d.ts +4 -0
  540. package/dist/mcp/tools/log-session.d.ts.map +1 -0
  541. package/dist/mcp/tools/log-session.js +35 -0
  542. package/dist/mcp/tools/log-session.js.map +1 -0
  543. package/dist/mcp/tools/open-gui.d.ts +14 -0
  544. package/dist/mcp/tools/open-gui.d.ts.map +1 -0
  545. package/dist/mcp/tools/open-gui.js +42 -0
  546. package/dist/mcp/tools/open-gui.js.map +1 -0
  547. package/dist/mcp/tools/save-knowledge.d.ts +4 -0
  548. package/dist/mcp/tools/save-knowledge.d.ts.map +1 -0
  549. package/dist/mcp/tools/save-knowledge.js +36 -0
  550. package/dist/mcp/tools/save-knowledge.js.map +1 -0
  551. package/dist/mcp/tools/search-knowledge.d.ts +4 -0
  552. package/dist/mcp/tools/search-knowledge.d.ts.map +1 -0
  553. package/dist/mcp/tools/search-knowledge.js +31 -0
  554. package/dist/mcp/tools/search-knowledge.js.map +1 -0
  555. package/dist/mcp/tools/search-nodes.d.ts +4 -0
  556. package/dist/mcp/tools/search-nodes.d.ts.map +1 -0
  557. package/dist/mcp/tools/search-nodes.js +33 -0
  558. package/dist/mcp/tools/search-nodes.js.map +1 -0
  559. package/dist/mcp/tools/start-lineage.d.ts +4 -0
  560. package/dist/mcp/tools/start-lineage.d.ts.map +1 -0
  561. package/dist/mcp/tools/start-lineage.js +31 -0
  562. package/dist/mcp/tools/start-lineage.js.map +1 -0
  563. package/dist/mcp/tools/sync-apply.d.ts +4 -0
  564. package/dist/mcp/tools/sync-apply.d.ts.map +1 -0
  565. package/dist/mcp/tools/sync-apply.js +23 -0
  566. package/dist/mcp/tools/sync-apply.js.map +1 -0
  567. package/dist/mcp/tools/sync-export.d.ts +4 -0
  568. package/dist/mcp/tools/sync-export.d.ts.map +1 -0
  569. package/dist/mcp/tools/sync-export.js +33 -0
  570. package/dist/mcp/tools/sync-export.js.map +1 -0
  571. package/dist/mcp/tools/sync-status.d.ts +4 -0
  572. package/dist/mcp/tools/sync-status.d.ts.map +1 -0
  573. package/dist/mcp/tools/sync-status.js +29 -0
  574. package/dist/mcp/tools/sync-status.js.map +1 -0
  575. package/dist/mcp/tools/update-identity.d.ts +4 -0
  576. package/dist/mcp/tools/update-identity.d.ts.map +1 -0
  577. package/dist/mcp/tools/update-identity.js +39 -0
  578. package/dist/mcp/tools/update-identity.js.map +1 -0
  579. package/dist/renderer/assets/index-Bs2j5Xf4.css +1 -0
  580. package/dist/renderer/assets/index-ovMIJ8mi.js +22 -0
  581. package/dist/renderer/index.html +17 -0
  582. package/package.json +77 -6
@@ -0,0 +1,26 @@
1
+ const toTimestamp = (isoDate) => {
2
+ const time = new Date(isoDate).getTime();
3
+ return Number.isNaN(time) ? 0 : time;
4
+ };
5
+ const hasReason = (sources, reason) => sources.some((source) => source.matchReason === reason);
6
+ const knowledgeTier = (entry) => hasReason(entry.sources, 'file_provenance') ? 0 : 1;
7
+ const sessionTier = (entry) => hasReason(entry.sources, 'file_session') ? 0 : 1;
8
+ const todoTier = (todo, activePlanId) => activePlanId !== null && todo.planId === activePlanId ? 0 : 1;
9
+ const compareTaskKnowledge = (scores, a, b) => knowledgeTier(a) - knowledgeTier(b) ||
10
+ (scores.get(b.item.id) ?? 0) - (scores.get(a.item.id) ?? 0) ||
11
+ toTimestamp(b.item.createdAt) - toTimestamp(a.item.createdAt) ||
12
+ b.item.id - a.item.id;
13
+ const compareTaskSessions = (a, b) => sessionTier(a) - sessionTier(b) ||
14
+ toTimestamp(b.node.createdAt) - toTimestamp(a.node.createdAt) ||
15
+ b.node.id - a.node.id;
16
+ const compareTaskTodos = (activePlanId, a, b) => todoTier(a, activePlanId) - todoTier(b, activePlanId) || a.id - b.id;
17
+ export function sortTaskMatchedKnowledge(entries, scores = new Map()) {
18
+ return [...entries].sort((a, b) => compareTaskKnowledge(scores, a, b));
19
+ }
20
+ export function sortTaskMatchedSessions(entries) {
21
+ return [...entries].sort(compareTaskSessions);
22
+ }
23
+ export function sortTaskTodos(todos, activePlanId) {
24
+ return [...todos].sort((a, b) => compareTaskTodos(activePlanId, a, b));
25
+ }
26
+ //# sourceMappingURL=task-context-order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-context-order.js","sourceRoot":"","sources":["../../src/core/task-context-order.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface NormalizedPathResult {
2
+ validPaths: string[];
3
+ ignoredPaths: string[];
4
+ }
5
+ export declare function normalizeTaskFilePaths(rawPaths: readonly string[], projectRoot: string): NormalizedPathResult;
6
+ //# sourceMappingURL=task-context-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-context-paths.d.ts","sourceRoot":"","sources":["../../src/core/task-context-paths.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAoGD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,WAAW,EAAE,MAAM,GAClB,oBAAoB,CAQtB"}
@@ -0,0 +1,59 @@
1
+ import path from 'path';
2
+ const toPosix = (value) => value.replace(/\\/g, '/');
3
+ const stripTrailingSlash = (value) => value.length > 1 && value.endsWith('/') ? value.slice(0, -1) : value;
4
+ const normalizeRoot = (root) => stripTrailingSlash(path.posix.normalize(toPosix(root)));
5
+ const extractDrive = (posixPath) => {
6
+ const match = /^[a-zA-Z]:\//.exec(posixPath);
7
+ return match ? match[0].slice(0, 1).toLowerCase() : null;
8
+ };
9
+ const stripDrive = (posixPath) => posixPath.replace(/^[a-zA-Z]:\//, '/');
10
+ const isAbsoluteLike = (posixPath) => posixPath.startsWith('/') || /^[a-zA-Z]:\//.test(posixPath);
11
+ const isEscapingRelative = (relative) => relative === '' ||
12
+ relative === '..' ||
13
+ relative.startsWith('../') ||
14
+ relative.includes('/../');
15
+ const resolveAbsolute = (candidate, root, rootDrive) => {
16
+ const candidateDrive = extractDrive(candidate);
17
+ const sameDrive = candidateDrive === null || rootDrive === null || candidateDrive === rootDrive;
18
+ const absPosix = stripDrive(candidate);
19
+ const rootPosix = stripDrive(root);
20
+ const relative = path.posix.relative(rootPosix, absPosix);
21
+ const escapes = isEscapingRelative(relative);
22
+ return sameDrive && !escapes ? relative : null;
23
+ };
24
+ const resolveCandidate = (trimmed, root, rootDrive) => {
25
+ const posix = toPosix(trimmed);
26
+ const normalized = path.posix.normalize(posix);
27
+ return isAbsoluteLike(posix)
28
+ ? resolveAbsolute(normalized, root, rootDrive)
29
+ : isEscapingRelative(normalized)
30
+ ? null
31
+ : normalized.replace(/^\.\//, '');
32
+ };
33
+ const createAccumulator = () => ({
34
+ valid: [],
35
+ seenValid: new Set(),
36
+ ignored: [],
37
+ seenIgnored: new Set(),
38
+ });
39
+ const pushUnique = (list, seen, value) => {
40
+ const fresh = !seen.has(value);
41
+ seen.add(value);
42
+ const additions = fresh ? [value] : [];
43
+ list.push(...additions);
44
+ };
45
+ const foldCandidate = (acc, raw, root, rootDrive) => {
46
+ const trimmed = raw.trim();
47
+ const resolved = trimmed.length === 0 ? null : resolveCandidate(trimmed, root, rootDrive);
48
+ const target = resolved ?? trimmed;
49
+ const bucket = resolved === null ? 'ignored' : 'valid';
50
+ pushUnique(bucket === 'valid' ? acc.valid : acc.ignored, bucket === 'valid' ? acc.seenValid : acc.seenIgnored, target);
51
+ return acc;
52
+ };
53
+ export function normalizeTaskFilePaths(rawPaths, projectRoot) {
54
+ const root = normalizeRoot(projectRoot);
55
+ const rootDrive = extractDrive(toPosix(projectRoot));
56
+ const acc = rawPaths.reduce((state, raw) => foldCandidate(state, raw, root, rootDrive), createAccumulator());
57
+ return { validPaths: acc.valid, ignoredPaths: acc.ignored };
58
+ }
59
+ //# sourceMappingURL=task-context-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-context-paths.js","sourceRoot":"","sources":["../../src/core/task-context-paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { IdentityRepository } from './db/identity-repository.js';
2
+ import { KnowledgeConfirmationRepository } from './db/knowledge-confirmation-repository.js';
3
+ import { KnowledgeRepository } from './db/knowledge-repository.js';
4
+ import { LineageRepository } from './db/lineage-repository.js';
5
+ import { NodeRepository } from './db/node-repository.js';
6
+ import { PlanRepository } from './db/plan-repository.js';
7
+ import { ProjectRepository } from './db/project-repository.js';
8
+ import { TodoRepository } from './db/todo-repository.js';
9
+ import { TaskContext, TaskContextOptions } from './types/task-context.js';
10
+ export interface TaskContextRepositories {
11
+ projectRepo: ProjectRepository;
12
+ lineageRepo: LineageRepository;
13
+ nodeRepo: NodeRepository;
14
+ knowledgeRepo: KnowledgeRepository;
15
+ todoRepo: TodoRepository;
16
+ planRepo?: PlanRepository;
17
+ identityRepo?: IdentityRepository;
18
+ confirmationRepo?: KnowledgeConfirmationRepository;
19
+ }
20
+ export declare function compileTaskContext(repos: TaskContextRepositories, projectId: number, options?: TaskContextOptions): TaskContext;
21
+ //# sourceMappingURL=task-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-context.d.ts","sourceRoot":"","sources":["../../src/core/task-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,+BAA+B,EAAE,MAAM,2CAA2C,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAuBzD,OAAO,EACL,WAAW,EACX,kBAAkB,EAKnB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,mBAAmB,CAAC;IACnC,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,gBAAgB,CAAC,EAAE,+BAA+B,CAAC;CACpD;AAkVD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,EAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,kBAAuB,GAC/B,WAAW,CAqHb"}
@@ -0,0 +1,283 @@
1
+ import { DEFAULT_KNOWLEDGE_LIMIT, DEFAULT_NODE_LIMIT, scoreKnowledgeItem, selectActivePlan, selectTodos, } from './compiler.js';
2
+ import { resolveLineage } from './lineage.js';
3
+ import { resolveProjectRoot } from './project.js';
4
+ import { countTokens } from './tokenizer.js';
5
+ import { normalizeTaskFilePaths } from './task-context-paths.js';
6
+ import { resolveTaskTokenBudget } from './task-context-budget.js';
7
+ import { sortTaskMatchedKnowledge, sortTaskMatchedSessions, sortTaskTodos, } from './task-context-order.js';
8
+ const resolveTaskProject = (projectRepo, projectId) => {
9
+ const project = projectRepo.findById(projectId);
10
+ if (!project) {
11
+ throw new Error(`Project ${projectId} does not exist.`);
12
+ }
13
+ return project;
14
+ };
15
+ const resolveTaskRoot = (project, cwd) => cwd !== undefined
16
+ ? resolveProjectRoot(cwd)
17
+ : (project.pathHint ?? process.cwd());
18
+ const resolveTaskQuery = (query) => {
19
+ const trimmed = query?.trim() ?? '';
20
+ return trimmed.length > 0 ? trimmed : null;
21
+ };
22
+ const intersectTargets = (touched, targets) => {
23
+ const wanted = new Set(targets);
24
+ return (touched ?? []).filter((file) => wanted.has(file));
25
+ };
26
+ const toFileSession = (node, targets) => ({
27
+ node,
28
+ sources: intersectTargets(node.filesTouched, targets).map((file) => ({
29
+ matchReason: 'file_session',
30
+ matchedValue: file,
31
+ })),
32
+ });
33
+ const toProvenanceKnowledge = (item, session) => ({
34
+ item,
35
+ sources: session.sources.map((source) => ({
36
+ matchReason: 'file_provenance',
37
+ matchedValue: source.matchedValue,
38
+ })),
39
+ });
40
+ const toQueryKnowledge = (item, query) => ({
41
+ item,
42
+ sources: [{ matchReason: 'query_knowledge', matchedValue: query }],
43
+ });
44
+ const toQuerySession = (node, query) => ({
45
+ node,
46
+ sources: [{ matchReason: 'query_session', matchedValue: query }],
47
+ });
48
+ const sourceKey = (source) => `${source.matchReason}::${source.matchedValue}`;
49
+ const mergeSources = (current, incoming) => {
50
+ const seen = new Set(current.map(sourceKey));
51
+ return [
52
+ ...current,
53
+ ...incoming.filter((source) => {
54
+ const key = sourceKey(source);
55
+ const fresh = !seen.has(key);
56
+ seen.add(key);
57
+ return fresh;
58
+ }),
59
+ ];
60
+ };
61
+ const mergeTagged = (entries, idOf) => {
62
+ const grouped = entries.reduce((acc, entry) => {
63
+ const existing = acc.get(idOf(entry));
64
+ acc.set(idOf(entry), existing === undefined
65
+ ? entry
66
+ : { ...entry, sources: mergeSources(existing.sources, entry.sources) });
67
+ return acc;
68
+ }, new Map());
69
+ return [...grouped.values()];
70
+ };
71
+ const collectFileSessions = (nodeRepo, projectId, lineageId, targets) => targets.length === 0
72
+ ? []
73
+ : nodeRepo
74
+ .findByTouchedFiles(projectId, targets, lineageId)
75
+ .map((node) => toFileSession(node, targets));
76
+ const collectProvenanceKnowledge = (knowledgeRepo, fileSessions) => {
77
+ const byNodeId = new Map(fileSessions.map((session) => [session.node.id, session]));
78
+ const originIds = [...byNodeId.keys()];
79
+ return originIds.length === 0
80
+ ? []
81
+ : knowledgeRepo
82
+ .findByOriginNodeIds(originIds)
83
+ .map((item) => toProvenanceKnowledge(item, byNodeId.get(item.originNodeId)));
84
+ };
85
+ const collectQueryKnowledge = (knowledgeRepo, projectId, query) => query === null
86
+ ? []
87
+ : knowledgeRepo
88
+ .searchByProjectId(projectId, query, DEFAULT_KNOWLEDGE_LIMIT)
89
+ .map((item) => toQueryKnowledge(item, query));
90
+ const collectQuerySessions = (nodeRepo, projectId, lineageId, query) => query === null
91
+ ? []
92
+ : nodeRepo
93
+ .search(projectId, query, lineageId, DEFAULT_NODE_LIMIT)
94
+ .map((hit) => nodeRepo.findById(hit.id))
95
+ .filter((node) => node !== undefined)
96
+ .map((node) => toQuerySession(node, query));
97
+ const collectBaselineSession = (nodeRepo, lineage, filesRequested, query) => {
98
+ const latest = !filesRequested && query === null
99
+ ? nodeRepo.findLatestByLineageId(lineage.id)
100
+ : undefined;
101
+ return latest === undefined
102
+ ? []
103
+ : [
104
+ {
105
+ node: latest,
106
+ sources: [{ matchReason: 'active_plan', matchedValue: lineage.name }],
107
+ },
108
+ ];
109
+ };
110
+ const buildKnowledgeScores = (repos, lineageId, items) => {
111
+ const counts = repos.confirmationRepo?.countByKnowledgeIds(items.map((item) => item.id)) ?? new Map();
112
+ const originIds = [
113
+ ...new Set(items
114
+ .map((item) => item.originNodeId)
115
+ .filter((id) => id !== null)),
116
+ ];
117
+ const lineageMap = repos.nodeRepo.findLineageIdsByNodeIds(originIds);
118
+ return new Map(items.map((item) => [
119
+ item.id,
120
+ scoreKnowledgeItem(item, counts.get(item.id) ?? 0, lineageId, lineageMap),
121
+ ]));
122
+ };
123
+ const TASK_PACK_HEADROOM = 2;
124
+ const isProvenanceKnowledge = (entry) => entry.sources.some((source) => source.matchReason === 'file_provenance');
125
+ const isFileTierSession = (entry) => entry.sources.some((source) => source.matchReason === 'file_session' ||
126
+ source.matchReason === 'active_plan');
127
+ const packTier = (items, budget, spent) => {
128
+ const packed = items.reduce((acc, item) => {
129
+ const cost = countTokens(JSON.stringify(item)) + TASK_PACK_HEADROOM;
130
+ const fits = !acc.stopped && acc.spent + cost <= budget;
131
+ return fits
132
+ ? {
133
+ spent: acc.spent + cost,
134
+ included: [...acc.included, item],
135
+ stopped: false,
136
+ }
137
+ : { spent: acc.spent, included: acc.included, stopped: true };
138
+ }, { spent, included: [], stopped: false });
139
+ return { included: packed.included, spent: packed.spent };
140
+ };
141
+ const dropLowestPriorityLists = (lists) => lists.todos.length > 0
142
+ ? { ...lists, todos: lists.todos.slice(0, -1) }
143
+ : lists.sessions.length > 0
144
+ ? { ...lists, sessions: lists.sessions.slice(0, -1) }
145
+ : lists.knowledge.length > 0
146
+ ? { ...lists, knowledge: lists.knowledge.slice(0, -1) }
147
+ : lists;
148
+ const listsExhausted = (lists) => lists.todos.length === 0 &&
149
+ lists.sessions.length === 0 &&
150
+ lists.knowledge.length === 0;
151
+ const assembleTaskContext = (summaryBase, plan, lists, totals) => {
152
+ const truncated = totals.knowledge !== lists.knowledge.length ||
153
+ totals.sessions !== lists.sessions.length ||
154
+ totals.todos !== lists.todos.length;
155
+ return {
156
+ summary: {
157
+ ...summaryBase,
158
+ matchedKnowledgeCount: lists.knowledge.length,
159
+ matchedSessionCount: lists.sessions.length,
160
+ },
161
+ plan,
162
+ knowledge: lists.knowledge,
163
+ sessions: lists.sessions,
164
+ todos: lists.todos,
165
+ overflow: truncated
166
+ ? {
167
+ knowledgeTruncated: totals.knowledge - lists.knowledge.length,
168
+ sessionsTruncated: totals.sessions - lists.sessions.length,
169
+ todosTruncated: totals.todos - lists.todos.length,
170
+ }
171
+ : undefined,
172
+ };
173
+ };
174
+ const trimListsToBudget = (summaryBase, plan, lists, totals, budget) => {
175
+ const candidate = assembleTaskContext(summaryBase, plan, lists, totals);
176
+ return countTokens(JSON.stringify(candidate)) <= budget ||
177
+ listsExhausted(lists)
178
+ ? candidate
179
+ : trimListsToBudget(summaryBase, plan, dropLowestPriorityLists(lists), totals, budget);
180
+ };
181
+ export function compileTaskContext(repos, projectId, options = {}) {
182
+ const project = resolveTaskProject(repos.projectRepo, projectId);
183
+ const lineage = resolveLineage(repos.lineageRepo, projectId, options.lineageId);
184
+ const root = resolveTaskRoot(project, options.cwd);
185
+ const targets = normalizeTaskFilePaths(options.files ?? [], root).validPaths;
186
+ const query = resolveTaskQuery(options.query);
187
+ const fileSessions = collectFileSessions(repos.nodeRepo, project.id, lineage.id, targets);
188
+ const provenanceKnowledge = collectProvenanceKnowledge(repos.knowledgeRepo, fileSessions);
189
+ const queryKnowledge = collectQueryKnowledge(repos.knowledgeRepo, project.id, query);
190
+ const querySessions = collectQuerySessions(repos.nodeRepo, project.id, lineage.id, query);
191
+ const baselineSessions = collectBaselineSession(repos.nodeRepo, lineage, (options.files ?? []).length > 0, query);
192
+ const mergedKnowledge = mergeTagged([...provenanceKnowledge, ...queryKnowledge], (entry) => entry.item.id);
193
+ const mergedSessions = mergeTagged([...fileSessions, ...querySessions, ...baselineSessions], (entry) => entry.node.id);
194
+ const knowledge = sortTaskMatchedKnowledge(mergedKnowledge, buildKnowledgeScores(repos, lineage.id, mergedKnowledge.map((entry) => entry.item)));
195
+ const sessions = sortTaskMatchedSessions(mergedSessions);
196
+ const plan = selectActivePlan(repos.planRepo, project.id);
197
+ const { todos, totalOpenCount } = selectTodos(repos.todoRepo, project.id, lineage.id);
198
+ const orderedTodos = sortTaskTodos(todos, plan?.id ?? null);
199
+ const identity = repos.identityRepo?.get(project.id) ?? null;
200
+ const projectName = identity?.projectName || project.name || project.key;
201
+ const budget = resolveTaskTokenBudget(options.tokenBudget);
202
+ const mandatoryTokens = countTokens(JSON.stringify({
203
+ summary: {
204
+ project: projectName,
205
+ lineage: lineage.name,
206
+ query,
207
+ targetFiles: targets,
208
+ },
209
+ plan,
210
+ }));
211
+ return mandatoryTokens > budget
212
+ ? {
213
+ summary: {
214
+ project: projectName,
215
+ lineage: lineage.name,
216
+ query,
217
+ targetFiles: targets,
218
+ matchedKnowledgeCount: 0,
219
+ matchedSessionCount: 0,
220
+ openTodoCount: totalOpenCount,
221
+ },
222
+ plan,
223
+ knowledge: [],
224
+ sessions: [],
225
+ todos: [],
226
+ overflow: {
227
+ knowledgeTruncated: knowledge.length,
228
+ sessionsTruncated: sessions.length,
229
+ todosTruncated: orderedTodos.length,
230
+ budgetExceededBy: mandatoryTokens - budget,
231
+ },
232
+ }
233
+ : packTaskContext({
234
+ project: projectName,
235
+ lineage: lineage.name,
236
+ query,
237
+ targetFiles: targets,
238
+ openTodoCount: totalOpenCount,
239
+ }, plan, knowledge, sessions, orderedTodos, budget);
240
+ }
241
+ const packTaskContext = (summaryBase, plan, knowledge, sessions, todos, budget) => {
242
+ const tieredKnowledge = [
243
+ knowledge.filter(isProvenanceKnowledge),
244
+ knowledge.filter((entry) => !isProvenanceKnowledge(entry)),
245
+ ];
246
+ const tieredSessions = [
247
+ sessions.filter(isFileTierSession),
248
+ sessions.filter((entry) => !isFileTierSession(entry)),
249
+ ];
250
+ const tieredTodos = [todos];
251
+ const mandatoryTokens = countTokens(JSON.stringify({
252
+ summary: {
253
+ ...summaryBase,
254
+ matchedKnowledgeCount: 0,
255
+ matchedSessionCount: 0,
256
+ },
257
+ plan,
258
+ }));
259
+ const tiers = [
260
+ ...tieredKnowledge,
261
+ ...tieredSessions,
262
+ ...tieredTodos,
263
+ ];
264
+ const { groups } = tiers.reduce((acc, tier) => {
265
+ const result = packTier(tier, budget, acc.spent);
266
+ return {
267
+ spent: result.spent,
268
+ groups: [...acc.groups, result.included],
269
+ };
270
+ }, { spent: mandatoryTokens, groups: [] });
271
+ const [provenance, queryKnowledge, fileSessions, querySessions, packedTodos] = groups;
272
+ const candidate = {
273
+ knowledge: [...provenance, ...queryKnowledge],
274
+ sessions: [...fileSessions, ...querySessions],
275
+ todos: packedTodos,
276
+ };
277
+ return trimListsToBudget(summaryBase, plan, candidate, {
278
+ knowledge: knowledge.length,
279
+ sessions: sessions.length,
280
+ todos: todos.length,
281
+ }, budget);
282
+ };
283
+ //# sourceMappingURL=task-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-context.js","sourceRoot":"","sources":["../../src/core/task-context.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,aAAa,GACd,MAAM,yBAAyB,CAAC;AA0BjC,MAAM,kBAAkB,GAAG,CACzB,WAA8B,EAC9B,SAAiB,EACR,EAAE;IACX,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAE,GAAY,EAAU,EAAE,CACjE,GAAG,KAAK,SAAS;IACf,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC;IACzB,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAE1C,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAiB,EAAE;IACzD,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACpC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,OAAiC,EACjC,OAA0B,EAChB,EAAE;IACZ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CACpB,IAAU,EACV,OAA0B,EACN,EAAE,CAAC,CAAC;IACxB,IAAI;IACJ,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,GAAG,CACvD,CAAC,IAAI,EAAuB,EAAE,CAAC,CAAC;QAC9B,WAAW,EAAE,cAAc;QAC3B,YAAY,EAAE,IAAI;KACnB,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAC5B,IAAe,EACf,OAA2B,EACL,EAAE,CAAC,CAAC;IAC1B,IAAI;IACJ,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAC1B,CAAC,MAAM,EAAuB,EAAE,CAAC,CAAC;QAChC,WAAW,EAAE,iBAAiB;QAC9B,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CACvB,IAAe,EACf,KAAa,EACS,EAAE,CAAC,CAAC;IAC1B,IAAI;IACJ,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;CACnE,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CACrB,IAAU,EACV,KAAa,EACO,EAAE,CAAC,CAAC;IACxB,IAAI;IACJ,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;CACjE,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,CAAC,MAA2B,EAAU,EAAE,CACxD,GAAG,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,YAAY,EAAE,CAAC;AAElD,MAAM,YAAY,GAAG,CACnB,OAAuC,EACvC,QAAwC,EACjB,EAAE;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7C,OAAO;QACL,GAAG,OAAO;QACV,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;KACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,OAAqB,EACrB,IAA0B,EACrB,EAAE;IACP,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,KAAK,CAAC,EACX,QAAQ,KAAK,SAAS;YACpB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CACzE,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,IAAI,GAAG,EAAa,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,QAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,OAA0B,EACJ,EAAE,CACxB,OAAO,CAAC,MAAM,KAAK,CAAC;IAClB,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC,QAAQ;SACP,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;SACjD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnD,MAAM,0BAA0B,GAAG,CACjC,aAAkC,EAClC,YAA2C,EACnB,EAAE;IAC1B,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAC1D,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC;QAC3B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,aAAa;aACZ,mBAAmB,CAAC,SAAS,CAAC;aAC9B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,qBAAqB,CACnB,IAAI,EACJ,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,YAAsB,CAAuB,CAChE,CACF,CAAC;AACR,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC5B,aAAkC,EAClC,SAAiB,EACjB,KAAoB,EACI,EAAE,CAC1B,KAAK,KAAK,IAAI;IACZ,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC,aAAa;SACZ,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,uBAAuB,CAAC;SAC5D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAEpD,MAAM,oBAAoB,GAAG,CAC3B,QAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,KAAoB,EACE,EAAE,CACxB,KAAK,KAAK,IAAI;IACZ,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC,QAAQ;SACP,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,CAAC;SACvD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACvC,MAAM,CAAC,CAAC,IAAI,EAAgB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;SAClD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAElD,MAAM,sBAAsB,GAAG,CAC7B,QAAwB,EACxB,OAAgB,EAChB,cAAuB,EACvB,KAAoB,EACE,EAAE;IACxB,MAAM,MAAM,GACV,CAAC,cAAc,IAAI,KAAK,KAAK,IAAI;QAC/B,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO,MAAM,KAAK,SAAS;QACzB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACA;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;aACtE;SACF,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,KAA8B,EAC9B,SAAiB,EACjB,KAA2B,EACN,EAAE;IACvB,MAAM,MAAM,GACV,KAAK,CAAC,gBAAgB,EAAE,mBAAmB,CACzC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAC7B,IAAI,IAAI,GAAG,EAAkB,CAAC;IACjC,MAAM,SAAS,GAAG;QAChB,GAAG,IAAI,GAAG,CACR,KAAK;aACF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;aAChC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAC7C;KACF,CAAC;IACF,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACrE,OAAO,IAAI,GAAG,CACZ,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE;QACP,kBAAkB,CAChB,IAAI,EACJ,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EACxB,SAAS,EACT,UAAU,CACX;KACF,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,MAAM,qBAAqB,GAAG,CAAC,KAA2B,EAAW,EAAE,CACrE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,iBAAiB,CAAC,CAAC;AAE3E,MAAM,iBAAiB,GAAG,CAAC,KAAyB,EAAW,EAAE,CAC/D,KAAK,CAAC,OAAO,CAAC,IAAI,CAChB,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,WAAW,KAAK,cAAc;IACrC,MAAM,CAAC,WAAW,KAAK,aAAa,CACvC,CAAC;AAEJ,MAAM,QAAQ,GAAG,CACf,KAAmB,EACnB,MAAc,EACd,KAAa,EACqB,EAAE;IACpC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CACzB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACZ,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,kBAAkB,CAAC;QACpE,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,MAAM,CAAC;QACxD,OAAO,IAAI;YACT,CAAC,CAAC;gBACE,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI;gBACvB,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC;gBACjC,OAAO,EAAE,KAAK;aACf;YACH,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAClE,CAAC,EACD,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAC/C,CAAC;IACF,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;AAC5D,CAAC,CAAC;AAcF,MAAM,uBAAuB,GAAG,CAAC,KAAgB,EAAa,EAAE,CAC9D,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;IACpB,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IAC/C,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QACzB,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACrD,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAC1B,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACvD,CAAC,CAAC,KAAK,CAAC;AAEhB,MAAM,cAAc,GAAG,CAAC,KAAgB,EAAW,EAAE,CACnD,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;IACxB,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;IAC3B,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;AAE/B,MAAM,mBAAmB,GAAG,CAC1B,WAMC,EACD,IAAyB,EACzB,KAAgB,EAChB,MAAsB,EACT,EAAE;IACf,MAAM,SAAS,GACb,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,MAAM;QAC3C,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM;QACzC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IACtC,OAAO;QACL,OAAO,EAAE;YACP,GAAG,WAAW;YACd,qBAAqB,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;YAC7C,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;SAC3C;QACD,IAAI;QACJ,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,SAAS;YACjB,CAAC,CAAC;gBACE,kBAAkB,EAAE,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM;gBAC7D,iBAAiB,EAAE,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM;gBAC1D,cAAc,EAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM;aAClD;YACH,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACxB,WAMC,EACD,IAAyB,EACzB,KAAgB,EAChB,MAAsB,EACtB,MAAc,EACD,EAAE;IACf,MAAM,SAAS,GAAG,mBAAmB,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACxE,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,MAAM;QACrD,cAAc,CAAC,KAAK,CAAC;QACrB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,iBAAiB,CACf,WAAW,EACX,IAAI,EACJ,uBAAuB,CAAC,KAAK,CAAC,EAC9B,MAAM,EACN,MAAM,CACP,CAAC;AACR,CAAC,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAChC,KAA8B,EAC9B,SAAiB,EACjB,UAA8B,EAAE;IAEhC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,cAAc,CAC5B,KAAK,CAAC,WAAW,EACjB,SAAS,EACT,OAAO,CAAC,SAAS,CAClB,CAAC;IACF,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC;IAC7E,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,YAAY,GAAG,mBAAmB,CACtC,KAAK,CAAC,QAAQ,EACd,OAAO,CAAC,EAAE,EACV,OAAO,CAAC,EAAE,EACV,OAAO,CACR,CAAC;IACF,MAAM,mBAAmB,GAAG,0BAA0B,CACpD,KAAK,CAAC,aAAa,EACnB,YAAY,CACb,CAAC;IACF,MAAM,cAAc,GAAG,qBAAqB,CAC1C,KAAK,CAAC,aAAa,EACnB,OAAO,CAAC,EAAE,EACV,KAAK,CACN,CAAC;IACF,MAAM,aAAa,GAAG,oBAAoB,CACxC,KAAK,CAAC,QAAQ,EACd,OAAO,CAAC,EAAE,EACV,OAAO,CAAC,EAAE,EACV,KAAK,CACN,CAAC;IACF,MAAM,gBAAgB,GAAG,sBAAsB,CAC7C,KAAK,CAAC,QAAQ,EACd,OAAO,EACP,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAChC,KAAK,CACN,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,GAAG,mBAAmB,EAAE,GAAG,cAAc,CAAC,EAC3C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CACzB,CAAC;IACF,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,GAAG,YAAY,EAAE,GAAG,aAAa,EAAE,GAAG,gBAAgB,CAAC,EACxD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CACzB,CAAC;IAEF,MAAM,SAAS,GAAG,wBAAwB,CACxC,eAAe,EACf,oBAAoB,CAClB,KAAK,EACL,OAAO,CAAC,EAAE,EACV,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAC3C,CACF,CAAC;IACF,MAAM,QAAQ,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1D,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,WAAW,CAC3C,KAAK,CAAC,QAAQ,EACd,OAAO,CAAC,EAAE,EACV,OAAO,CAAC,EAAE,CACX,CAAC;IACF,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IAC7D,MAAM,WAAW,GAAG,QAAQ,EAAE,WAAW,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;IAEzE,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,WAAW,CACjC,IAAI,CAAC,SAAS,CAAC;QACb,OAAO,EAAE;YACP,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,OAAO,CAAC,IAAI;YACrB,KAAK;YACL,WAAW,EAAE,OAAO;SACrB;QACD,IAAI;KACL,CAAC,CACH,CAAC;IAEF,OAAO,eAAe,GAAG,MAAM;QAC7B,CAAC,CAAC;YACE,OAAO,EAAE;gBACP,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,OAAO,CAAC,IAAI;gBACrB,KAAK;gBACL,WAAW,EAAE,OAAO;gBACpB,qBAAqB,EAAE,CAAC;gBACxB,mBAAmB,EAAE,CAAC;gBACtB,aAAa,EAAE,cAAc;aAC9B;YACD,IAAI;YACJ,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE;gBACR,kBAAkB,EAAE,SAAS,CAAC,MAAM;gBACpC,iBAAiB,EAAE,QAAQ,CAAC,MAAM;gBAClC,cAAc,EAAE,YAAY,CAAC,MAAM;gBACnC,gBAAgB,EAAE,eAAe,GAAG,MAAM;aAC3C;SACF;QACH,CAAC,CAAC,eAAe,CACb;YACE,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,OAAO,CAAC,IAAI;YACrB,KAAK;YACL,WAAW,EAAE,OAAO;YACpB,aAAa,EAAE,cAAc;SAC9B,EACD,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,MAAM,CACP,CAAC;AACR,CAAC;AAED,MAAM,eAAe,GAAG,CACtB,WAMC,EACD,IAAyB,EACzB,SAAiC,EACjC,QAA8B,EAC9B,KAAa,EACb,MAAc,EACD,EAAE;IACf,MAAM,eAAe,GAAG;QACtB,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC;QACvC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC3D,CAAC;IACF,MAAM,cAAc,GAAG;QACrB,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAClC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;KACtD,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,CAAC;IAE5B,MAAM,eAAe,GAAG,WAAW,CACjC,IAAI,CAAC,SAAS,CAAC;QACb,OAAO,EAAE;YACP,GAAG,WAAW;YACd,qBAAqB,EAAE,CAAC;YACxB,mBAAmB,EAAE,CAAC;SACvB;QACD,IAAI;KACL,CAAC,CACH,CAAC;IACF,MAAM,KAAK,GAA8B;QACvC,GAAG,eAAe;QAClB,GAAG,cAAc;QACjB,GAAG,WAAW;KACf,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAC7B,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACZ,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;SACzC,CAAC;IACJ,CAAC,EACD,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,EAAiB,EAAE,CACtD,CAAC;IAEF,MAAM,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC,GAC1E,MAMC,CAAC;IACJ,MAAM,SAAS,GAAc;QAC3B,SAAS,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,cAAc,CAAC;QAC7C,QAAQ,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,aAAa,CAAC;QAC7C,KAAK,EAAE,WAAW;KACnB,CAAC;IACF,OAAO,iBAAiB,CACtB,WAAW,EACX,IAAI,EACJ,SAAS,EACT;QACE,SAAS,EAAE,SAAS,CAAC,MAAM;QAC3B,QAAQ,EAAE,QAAQ,CAAC,MAAM;QACzB,KAAK,EAAE,KAAK,CAAC,MAAM;KACpB,EACD,MAAM,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { TodoRepository } from './db/todo-repository.js';
2
+ import { LineageRepository } from './db/lineage-repository.js';
3
+ import { NodeRepository } from './db/node-repository.js';
4
+ import { PlanRepository } from './db/plan-repository.js';
5
+ import { Todo } from './types/todo.js';
6
+ export interface AddTodoOptions {
7
+ lineageId?: number;
8
+ originNodeId?: number;
9
+ planId?: number;
10
+ planRepo?: PlanRepository;
11
+ }
12
+ export declare function addTodo(todoRepo: TodoRepository, lineageRepo: LineageRepository, nodeRepo: NodeRepository, projectId: number, text: string, lineageIdOrOptions?: number | AddTodoOptions, originNodeId?: number, planId?: number, planRepo?: PlanRepository): Todo;
13
+ export declare function completeTodo(todoRepo: TodoRepository, projectId: number, matchText: string): Todo;
14
+ export declare function completeTodoById(todoRepo: TodoRepository, projectId: number, todoId: number): Todo;
15
+ export declare function listOpenTodos(todoRepo: TodoRepository, lineageRepo: LineageRepository, projectId: number, lineageId?: number): Todo[];
16
+ //# sourceMappingURL=todo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo.d.ts","sourceRoot":"","sources":["../../src/core/todo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AA4GvC,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAQD,wBAAgB,OAAO,CACrB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,iBAAiB,EAC9B,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,kBAAkB,CAAC,EAAE,MAAM,GAAG,cAAc,EAC5C,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,cAAc,GACxB,IAAI,CAuBN;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,IAAI,CAcN;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,IAAI,CAYN;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,EAAE,CAGR"}
@@ -0,0 +1,110 @@
1
+ function ensureNoError(error) {
2
+ if (error) {
3
+ throw new Error(error);
4
+ }
5
+ }
6
+ function requireNonEmpty(value, message) {
7
+ const trimmed = value.trim();
8
+ if (trimmed.length === 0) {
9
+ throw new Error(message);
10
+ }
11
+ return trimmed;
12
+ }
13
+ function requireValue(value, message) {
14
+ if (value === null || value === undefined) {
15
+ throw new Error(message);
16
+ }
17
+ return value;
18
+ }
19
+ function getOwnedEntity(entity, name, id, projectId) {
20
+ const error = !entity
21
+ ? `${name} ${id} does not exist.`
22
+ : entity.projectId !== projectId
23
+ ? `${name} ${id} belongs to a different project.`
24
+ : null;
25
+ ensureNoError(error);
26
+ return entity;
27
+ }
28
+ function validateLineage(lineageRepo, projectId, lineageId) {
29
+ if (lineageId === undefined) {
30
+ return;
31
+ }
32
+ getOwnedEntity(lineageRepo.findById(lineageId), 'Lineage', lineageId, projectId);
33
+ }
34
+ function validateOriginNode(nodeRepo, lineageRepo, projectId, originNodeId) {
35
+ if (originNodeId === undefined) {
36
+ return;
37
+ }
38
+ const node = nodeRepo.findById(originNodeId);
39
+ const nodeLineage = node ? lineageRepo.findById(node.lineageId) : null;
40
+ const error = !node
41
+ ? `Node ${originNodeId} does not exist.`
42
+ : !nodeLineage
43
+ ? `Lineage for node ${originNodeId} does not exist.`
44
+ : nodeLineage.projectId !== projectId
45
+ ? `Node ${originNodeId} belongs to a different project.`
46
+ : null;
47
+ ensureNoError(error);
48
+ }
49
+ function validatePlan(planRepo, projectId, planId) {
50
+ if (planId === undefined) {
51
+ return;
52
+ }
53
+ const repo = requireValue(planRepo, 'PlanRepository is required when linking a todo to a plan.');
54
+ getOwnedEntity(repo.findById(planId), 'Plan', planId, projectId);
55
+ }
56
+ function resolveSingleMatch(matches, query) {
57
+ switch (matches.length) {
58
+ case 1:
59
+ return matches[0];
60
+ case 0:
61
+ throw new Error(`No open todo matches "${query}".`);
62
+ default: {
63
+ const candidateList = matches.map((todo) => `"${todo.text}"`).join(', ');
64
+ throw new Error(`Multiple open todos match "${query}": ${candidateList}. Please specify a more unique substring.`);
65
+ }
66
+ }
67
+ }
68
+ function isAddTodoOptions(value) {
69
+ return typeof value === 'object' && value !== null;
70
+ }
71
+ export function addTodo(todoRepo, lineageRepo, nodeRepo, projectId, text, lineageIdOrOptions, originNodeId, planId, planRepo) {
72
+ const trimmedText = requireNonEmpty(text, 'Todo text cannot be empty.');
73
+ const options = isAddTodoOptions(lineageIdOrOptions)
74
+ ? lineageIdOrOptions
75
+ : {
76
+ lineageId: lineageIdOrOptions,
77
+ originNodeId,
78
+ planId,
79
+ planRepo,
80
+ };
81
+ validateLineage(lineageRepo, projectId, options.lineageId);
82
+ validateOriginNode(nodeRepo, lineageRepo, projectId, options.originNodeId);
83
+ validatePlan(options.planRepo, projectId, options.planId);
84
+ return todoRepo.create(projectId, trimmedText, options.lineageId, options.originNodeId, options.planId);
85
+ }
86
+ export function completeTodo(todoRepo, projectId, matchText) {
87
+ const trimmedMatch = requireNonEmpty(matchText, 'Completion match text cannot be empty.');
88
+ const openTodos = todoRepo.findOpenTodos(projectId);
89
+ const normalizedSearch = trimmedMatch.toLowerCase();
90
+ const matches = openTodos.filter((todo) => todo.text.toLowerCase().includes(normalizedSearch));
91
+ const matchedTodo = resolveSingleMatch(matches, trimmedMatch);
92
+ return todoRepo.markDone(matchedTodo.id, new Date().toISOString());
93
+ }
94
+ export function completeTodoById(todoRepo, projectId, todoId) {
95
+ const todo = todoRepo.findById(todoId);
96
+ const error = !todo
97
+ ? `Todo ${todoId} does not exist.`
98
+ : todo.projectId !== projectId
99
+ ? `Todo ${todoId} belongs to a different project.`
100
+ : todo.isDone
101
+ ? `Todo ${todoId} is already completed.`
102
+ : null;
103
+ ensureNoError(error);
104
+ return todoRepo.markDoneById(todoId, new Date().toISOString());
105
+ }
106
+ export function listOpenTodos(todoRepo, lineageRepo, projectId, lineageId) {
107
+ validateLineage(lineageRepo, projectId, lineageId);
108
+ return todoRepo.findOpenTodos(projectId, lineageId);
109
+ }
110
+ //# sourceMappingURL=todo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo.js","sourceRoot":"","sources":["../../src/core/todo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const TOKENIZER_MODEL = "gpt-4o";
2
+ export declare function countTokens(text: string): number;
3
+ //# sourceMappingURL=tokenizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../src/core/tokenizer.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,WAAW,CAAC;AAExC,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD"}
@@ -0,0 +1,9 @@
1
+ import { encode } from 'gpt-tokenizer';
2
+ export const TOKENIZER_MODEL = 'gpt-4o';
3
+ export function countTokens(text) {
4
+ if (text.length === 0) {
5
+ return 0;
6
+ }
7
+ return encode(text).length;
8
+ }
9
+ //# sourceMappingURL=tokenizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../src/core/tokenizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AAExC,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AAC7B,CAAC"}