@mc1global/opencode-jarvis 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 (415) hide show
  1. package/LICENSE +10 -0
  2. package/README.md +171 -0
  3. package/dist/application/context-memory/dtos.d.ts +100 -0
  4. package/dist/application/context-memory/dtos.d.ts.map +1 -0
  5. package/dist/application/context-memory/dtos.js +11 -0
  6. package/dist/application/context-memory/dtos.js.map +1 -0
  7. package/dist/application/context-memory/note-use-cases.d.ts +22 -0
  8. package/dist/application/context-memory/note-use-cases.d.ts.map +1 -0
  9. package/dist/application/context-memory/note-use-cases.js +76 -0
  10. package/dist/application/context-memory/note-use-cases.js.map +1 -0
  11. package/dist/application/context-memory/session-use-cases.d.ts +23 -0
  12. package/dist/application/context-memory/session-use-cases.d.ts.map +1 -0
  13. package/dist/application/context-memory/session-use-cases.js +63 -0
  14. package/dist/application/context-memory/session-use-cases.js.map +1 -0
  15. package/dist/application/context-memory/todo-use-cases.d.ts +25 -0
  16. package/dist/application/context-memory/todo-use-cases.d.ts.map +1 -0
  17. package/dist/application/context-memory/todo-use-cases.js +100 -0
  18. package/dist/application/context-memory/todo-use-cases.js.map +1 -0
  19. package/dist/application/domain-map/dtos.d.ts +58 -0
  20. package/dist/application/domain-map/dtos.d.ts.map +1 -0
  21. package/dist/application/domain-map/dtos.js +11 -0
  22. package/dist/application/domain-map/dtos.js.map +1 -0
  23. package/dist/application/domain-map/use-cases.d.ts +64 -0
  24. package/dist/application/domain-map/use-cases.d.ts.map +1 -0
  25. package/dist/application/domain-map/use-cases.js +217 -0
  26. package/dist/application/domain-map/use-cases.js.map +1 -0
  27. package/dist/application/environment/dtos.d.ts +74 -0
  28. package/dist/application/environment/dtos.d.ts.map +1 -0
  29. package/dist/application/environment/dtos.js +10 -0
  30. package/dist/application/environment/dtos.js.map +1 -0
  31. package/dist/application/environment/use-cases.d.ts +29 -0
  32. package/dist/application/environment/use-cases.d.ts.map +1 -0
  33. package/dist/application/environment/use-cases.js +232 -0
  34. package/dist/application/environment/use-cases.js.map +1 -0
  35. package/dist/application/governance/validation-use-cases.d.ts +45 -0
  36. package/dist/application/governance/validation-use-cases.d.ts.map +1 -0
  37. package/dist/application/governance/validation-use-cases.js +51 -0
  38. package/dist/application/governance/validation-use-cases.js.map +1 -0
  39. package/dist/application/kanban/board-use-cases.d.ts +45 -0
  40. package/dist/application/kanban/board-use-cases.d.ts.map +1 -0
  41. package/dist/application/kanban/board-use-cases.js +124 -0
  42. package/dist/application/kanban/board-use-cases.js.map +1 -0
  43. package/dist/application/kanban/card-use-cases.d.ts +32 -0
  44. package/dist/application/kanban/card-use-cases.d.ts.map +1 -0
  45. package/dist/application/kanban/card-use-cases.js +204 -0
  46. package/dist/application/kanban/card-use-cases.js.map +1 -0
  47. package/dist/application/kanban/dtos.d.ts +165 -0
  48. package/dist/application/kanban/dtos.d.ts.map +1 -0
  49. package/dist/application/kanban/dtos.js +11 -0
  50. package/dist/application/kanban/dtos.js.map +1 -0
  51. package/dist/application/kanban/sprint-use-cases.d.ts +34 -0
  52. package/dist/application/kanban/sprint-use-cases.d.ts.map +1 -0
  53. package/dist/application/kanban/sprint-use-cases.js +243 -0
  54. package/dist/application/kanban/sprint-use-cases.js.map +1 -0
  55. package/dist/application/rag/dtos.d.ts +113 -0
  56. package/dist/application/rag/dtos.d.ts.map +1 -0
  57. package/dist/application/rag/dtos.js +11 -0
  58. package/dist/application/rag/dtos.js.map +1 -0
  59. package/dist/application/rag/oracle-use-cases.d.ts +30 -0
  60. package/dist/application/rag/oracle-use-cases.d.ts.map +1 -0
  61. package/dist/application/rag/oracle-use-cases.js +91 -0
  62. package/dist/application/rag/oracle-use-cases.js.map +1 -0
  63. package/dist/application/rag/use-cases.d.ts +34 -0
  64. package/dist/application/rag/use-cases.d.ts.map +1 -0
  65. package/dist/application/rag/use-cases.js +234 -0
  66. package/dist/application/rag/use-cases.js.map +1 -0
  67. package/dist/application/token-metrics/dtos.d.ts +126 -0
  68. package/dist/application/token-metrics/dtos.d.ts.map +1 -0
  69. package/dist/application/token-metrics/dtos.js +11 -0
  70. package/dist/application/token-metrics/dtos.js.map +1 -0
  71. package/dist/application/token-metrics/tracking-use-cases.d.ts +33 -0
  72. package/dist/application/token-metrics/tracking-use-cases.d.ts.map +1 -0
  73. package/dist/application/token-metrics/tracking-use-cases.js +220 -0
  74. package/dist/application/token-metrics/tracking-use-cases.js.map +1 -0
  75. package/dist/application/vault/dtos.d.ts +91 -0
  76. package/dist/application/vault/dtos.d.ts.map +1 -0
  77. package/dist/application/vault/dtos.js +11 -0
  78. package/dist/application/vault/dtos.js.map +1 -0
  79. package/dist/application/vault/use-cases.d.ts +30 -0
  80. package/dist/application/vault/use-cases.d.ts.map +1 -0
  81. package/dist/application/vault/use-cases.js +307 -0
  82. package/dist/application/vault/use-cases.js.map +1 -0
  83. package/dist/application/vault/vault-manager.d.ts +47 -0
  84. package/dist/application/vault/vault-manager.d.ts.map +1 -0
  85. package/dist/application/vault/vault-manager.js +272 -0
  86. package/dist/application/vault/vault-manager.js.map +1 -0
  87. package/dist/application/workspace-registry/dtos.d.ts +91 -0
  88. package/dist/application/workspace-registry/dtos.d.ts.map +1 -0
  89. package/dist/application/workspace-registry/dtos.js +11 -0
  90. package/dist/application/workspace-registry/dtos.js.map +1 -0
  91. package/dist/application/workspace-registry/use-cases.d.ts +29 -0
  92. package/dist/application/workspace-registry/use-cases.d.ts.map +1 -0
  93. package/dist/application/workspace-registry/use-cases.js +249 -0
  94. package/dist/application/workspace-registry/use-cases.js.map +1 -0
  95. package/dist/domain/context-memory/entities.d.ts +123 -0
  96. package/dist/domain/context-memory/entities.d.ts.map +1 -0
  97. package/dist/domain/context-memory/entities.js +229 -0
  98. package/dist/domain/context-memory/entities.js.map +1 -0
  99. package/dist/domain/context-memory/repositories.d.ts +46 -0
  100. package/dist/domain/context-memory/repositories.d.ts.map +1 -0
  101. package/dist/domain/context-memory/repositories.js +2 -0
  102. package/dist/domain/context-memory/repositories.js.map +1 -0
  103. package/dist/domain/context-memory/services.d.ts +62 -0
  104. package/dist/domain/context-memory/services.d.ts.map +1 -0
  105. package/dist/domain/context-memory/services.js +162 -0
  106. package/dist/domain/context-memory/services.js.map +1 -0
  107. package/dist/domain/context-memory/value-objects.d.ts +65 -0
  108. package/dist/domain/context-memory/value-objects.d.ts.map +1 -0
  109. package/dist/domain/context-memory/value-objects.js +105 -0
  110. package/dist/domain/context-memory/value-objects.js.map +1 -0
  111. package/dist/domain/domain-map/repositories.d.ts +126 -0
  112. package/dist/domain/domain-map/repositories.d.ts.map +1 -0
  113. package/dist/domain/domain-map/repositories.js +2 -0
  114. package/dist/domain/domain-map/repositories.js.map +1 -0
  115. package/dist/domain/domain-map/services.d.ts +108 -0
  116. package/dist/domain/domain-map/services.d.ts.map +1 -0
  117. package/dist/domain/domain-map/services.js +335 -0
  118. package/dist/domain/domain-map/services.js.map +1 -0
  119. package/dist/domain/domain-map/value-objects.d.ts +186 -0
  120. package/dist/domain/domain-map/value-objects.d.ts.map +1 -0
  121. package/dist/domain/domain-map/value-objects.js +215 -0
  122. package/dist/domain/domain-map/value-objects.js.map +1 -0
  123. package/dist/domain/environment/entities.d.ts +93 -0
  124. package/dist/domain/environment/entities.d.ts.map +1 -0
  125. package/dist/domain/environment/entities.js +207 -0
  126. package/dist/domain/environment/entities.js.map +1 -0
  127. package/dist/domain/environment/renderers.d.ts +30 -0
  128. package/dist/domain/environment/renderers.d.ts.map +1 -0
  129. package/dist/domain/environment/renderers.js +139 -0
  130. package/dist/domain/environment/renderers.js.map +1 -0
  131. package/dist/domain/environment/repositories.d.ts +73 -0
  132. package/dist/domain/environment/repositories.d.ts.map +1 -0
  133. package/dist/domain/environment/repositories.js +16 -0
  134. package/dist/domain/environment/repositories.js.map +1 -0
  135. package/dist/domain/environment/services.d.ts +62 -0
  136. package/dist/domain/environment/services.d.ts.map +1 -0
  137. package/dist/domain/environment/services.js +282 -0
  138. package/dist/domain/environment/services.js.map +1 -0
  139. package/dist/domain/environment/value-objects.d.ts +127 -0
  140. package/dist/domain/environment/value-objects.d.ts.map +1 -0
  141. package/dist/domain/environment/value-objects.js +179 -0
  142. package/dist/domain/environment/value-objects.js.map +1 -0
  143. package/dist/domain/governance/policies.d.ts +42 -0
  144. package/dist/domain/governance/policies.d.ts.map +1 -0
  145. package/dist/domain/governance/policies.js +304 -0
  146. package/dist/domain/governance/policies.js.map +1 -0
  147. package/dist/domain/governance/services.d.ts +38 -0
  148. package/dist/domain/governance/services.d.ts.map +1 -0
  149. package/dist/domain/governance/services.js +42 -0
  150. package/dist/domain/governance/services.js.map +1 -0
  151. package/dist/domain/kanban/entities.d.ts +105 -0
  152. package/dist/domain/kanban/entities.d.ts.map +1 -0
  153. package/dist/domain/kanban/entities.js +211 -0
  154. package/dist/domain/kanban/entities.js.map +1 -0
  155. package/dist/domain/kanban/grooming.d.ts +40 -0
  156. package/dist/domain/kanban/grooming.d.ts.map +1 -0
  157. package/dist/domain/kanban/grooming.js +50 -0
  158. package/dist/domain/kanban/grooming.js.map +1 -0
  159. package/dist/domain/kanban/repositories.d.ts +41 -0
  160. package/dist/domain/kanban/repositories.d.ts.map +1 -0
  161. package/dist/domain/kanban/repositories.js +2 -0
  162. package/dist/domain/kanban/repositories.js.map +1 -0
  163. package/dist/domain/kanban/services.d.ts +49 -0
  164. package/dist/domain/kanban/services.d.ts.map +1 -0
  165. package/dist/domain/kanban/services.js +154 -0
  166. package/dist/domain/kanban/services.js.map +1 -0
  167. package/dist/domain/kanban/sprint.d.ts +103 -0
  168. package/dist/domain/kanban/sprint.d.ts.map +1 -0
  169. package/dist/domain/kanban/sprint.js +192 -0
  170. package/dist/domain/kanban/sprint.js.map +1 -0
  171. package/dist/domain/kanban/value-objects.d.ts +91 -0
  172. package/dist/domain/kanban/value-objects.d.ts.map +1 -0
  173. package/dist/domain/kanban/value-objects.js +167 -0
  174. package/dist/domain/kanban/value-objects.js.map +1 -0
  175. package/dist/domain/rag/repositories.d.ts +152 -0
  176. package/dist/domain/rag/repositories.d.ts.map +1 -0
  177. package/dist/domain/rag/repositories.js +2 -0
  178. package/dist/domain/rag/repositories.js.map +1 -0
  179. package/dist/domain/rag/services.d.ts +57 -0
  180. package/dist/domain/rag/services.d.ts.map +1 -0
  181. package/dist/domain/rag/services.js +224 -0
  182. package/dist/domain/rag/services.js.map +1 -0
  183. package/dist/domain/rag/value-objects.d.ts +118 -0
  184. package/dist/domain/rag/value-objects.d.ts.map +1 -0
  185. package/dist/domain/rag/value-objects.js +114 -0
  186. package/dist/domain/rag/value-objects.js.map +1 -0
  187. package/dist/domain/shared/value-objects.d.ts +56 -0
  188. package/dist/domain/shared/value-objects.d.ts.map +1 -0
  189. package/dist/domain/shared/value-objects.js +89 -0
  190. package/dist/domain/shared/value-objects.js.map +1 -0
  191. package/dist/domain/token-metrics/entities.d.ts +90 -0
  192. package/dist/domain/token-metrics/entities.d.ts.map +1 -0
  193. package/dist/domain/token-metrics/entities.js +115 -0
  194. package/dist/domain/token-metrics/entities.js.map +1 -0
  195. package/dist/domain/token-metrics/repositories.d.ts +93 -0
  196. package/dist/domain/token-metrics/repositories.d.ts.map +1 -0
  197. package/dist/domain/token-metrics/repositories.js +2 -0
  198. package/dist/domain/token-metrics/repositories.js.map +1 -0
  199. package/dist/domain/token-metrics/value-objects.d.ts +81 -0
  200. package/dist/domain/token-metrics/value-objects.d.ts.map +1 -0
  201. package/dist/domain/token-metrics/value-objects.js +144 -0
  202. package/dist/domain/token-metrics/value-objects.js.map +1 -0
  203. package/dist/domain/vault/canvas.d.ts +70 -0
  204. package/dist/domain/vault/canvas.d.ts.map +1 -0
  205. package/dist/domain/vault/canvas.js +70 -0
  206. package/dist/domain/vault/canvas.js.map +1 -0
  207. package/dist/domain/vault/document.d.ts +71 -0
  208. package/dist/domain/vault/document.d.ts.map +1 -0
  209. package/dist/domain/vault/document.js +244 -0
  210. package/dist/domain/vault/document.js.map +1 -0
  211. package/dist/domain/vault/repositories.d.ts +35 -0
  212. package/dist/domain/vault/repositories.d.ts.map +1 -0
  213. package/dist/domain/vault/repositories.js +2 -0
  214. package/dist/domain/vault/repositories.js.map +1 -0
  215. package/dist/domain/vault/section.d.ts +33 -0
  216. package/dist/domain/vault/section.d.ts.map +1 -0
  217. package/dist/domain/vault/section.js +39 -0
  218. package/dist/domain/vault/section.js.map +1 -0
  219. package/dist/domain/vault/services.d.ts +48 -0
  220. package/dist/domain/vault/services.d.ts.map +1 -0
  221. package/dist/domain/vault/services.js +249 -0
  222. package/dist/domain/vault/services.js.map +1 -0
  223. package/dist/domain/vault/table.d.ts +58 -0
  224. package/dist/domain/vault/table.d.ts.map +1 -0
  225. package/dist/domain/vault/table.js +204 -0
  226. package/dist/domain/vault/table.js.map +1 -0
  227. package/dist/domain/vault/timeline.d.ts +53 -0
  228. package/dist/domain/vault/timeline.d.ts.map +1 -0
  229. package/dist/domain/vault/timeline.js +214 -0
  230. package/dist/domain/vault/timeline.js.map +1 -0
  231. package/dist/domain/vault/value-objects.d.ts +45 -0
  232. package/dist/domain/vault/value-objects.d.ts.map +1 -0
  233. package/dist/domain/vault/value-objects.js +89 -0
  234. package/dist/domain/vault/value-objects.js.map +1 -0
  235. package/dist/domain/workspace-registry/entities.d.ts +57 -0
  236. package/dist/domain/workspace-registry/entities.d.ts.map +1 -0
  237. package/dist/domain/workspace-registry/entities.js +148 -0
  238. package/dist/domain/workspace-registry/entities.js.map +1 -0
  239. package/dist/domain/workspace-registry/repositories.d.ts +57 -0
  240. package/dist/domain/workspace-registry/repositories.d.ts.map +1 -0
  241. package/dist/domain/workspace-registry/repositories.js +12 -0
  242. package/dist/domain/workspace-registry/repositories.js.map +1 -0
  243. package/dist/domain/workspace-registry/services.d.ts +56 -0
  244. package/dist/domain/workspace-registry/services.d.ts.map +1 -0
  245. package/dist/domain/workspace-registry/services.js +283 -0
  246. package/dist/domain/workspace-registry/services.js.map +1 -0
  247. package/dist/domain/workspace-registry/value-objects.d.ts +113 -0
  248. package/dist/domain/workspace-registry/value-objects.d.ts.map +1 -0
  249. package/dist/domain/workspace-registry/value-objects.js +235 -0
  250. package/dist/domain/workspace-registry/value-objects.js.map +1 -0
  251. package/dist/hooks/context-compacting.d.ts +35 -0
  252. package/dist/hooks/context-compacting.d.ts.map +1 -0
  253. package/dist/hooks/context-compacting.js +48 -0
  254. package/dist/hooks/context-compacting.js.map +1 -0
  255. package/dist/hooks/event-handlers.d.ts +39 -0
  256. package/dist/hooks/event-handlers.d.ts.map +1 -0
  257. package/dist/hooks/event-handlers.js +75 -0
  258. package/dist/hooks/event-handlers.js.map +1 -0
  259. package/dist/hooks/guardrails.d.ts +33 -0
  260. package/dist/hooks/guardrails.d.ts.map +1 -0
  261. package/dist/hooks/guardrails.js +22 -0
  262. package/dist/hooks/guardrails.js.map +1 -0
  263. package/dist/hooks/shell-env.d.ts +28 -0
  264. package/dist/hooks/shell-env.d.ts.map +1 -0
  265. package/dist/hooks/shell-env.js +17 -0
  266. package/dist/hooks/shell-env.js.map +1 -0
  267. package/dist/index.d.ts +16 -0
  268. package/dist/index.d.ts.map +1 -0
  269. package/dist/index.js +349 -0
  270. package/dist/index.js.map +1 -0
  271. package/dist/infrastructure/context-memory/note-repository.d.ts +26 -0
  272. package/dist/infrastructure/context-memory/note-repository.d.ts.map +1 -0
  273. package/dist/infrastructure/context-memory/note-repository.js +87 -0
  274. package/dist/infrastructure/context-memory/note-repository.js.map +1 -0
  275. package/dist/infrastructure/context-memory/search-repository.d.ts +20 -0
  276. package/dist/infrastructure/context-memory/search-repository.d.ts.map +1 -0
  277. package/dist/infrastructure/context-memory/search-repository.js +44 -0
  278. package/dist/infrastructure/context-memory/search-repository.js.map +1 -0
  279. package/dist/infrastructure/context-memory/session-repository.d.ts +26 -0
  280. package/dist/infrastructure/context-memory/session-repository.d.ts.map +1 -0
  281. package/dist/infrastructure/context-memory/session-repository.js +79 -0
  282. package/dist/infrastructure/context-memory/session-repository.js.map +1 -0
  283. package/dist/infrastructure/context-memory/todo-repository.d.ts +26 -0
  284. package/dist/infrastructure/context-memory/todo-repository.d.ts.map +1 -0
  285. package/dist/infrastructure/context-memory/todo-repository.js +105 -0
  286. package/dist/infrastructure/context-memory/todo-repository.js.map +1 -0
  287. package/dist/infrastructure/database/sqlite-adapter.d.ts +60 -0
  288. package/dist/infrastructure/database/sqlite-adapter.d.ts.map +1 -0
  289. package/dist/infrastructure/database/sqlite-adapter.js +93 -0
  290. package/dist/infrastructure/database/sqlite-adapter.js.map +1 -0
  291. package/dist/infrastructure/domain-map/llm-analyzer.d.ts +60 -0
  292. package/dist/infrastructure/domain-map/llm-analyzer.d.ts.map +1 -0
  293. package/dist/infrastructure/domain-map/llm-analyzer.js +249 -0
  294. package/dist/infrastructure/domain-map/llm-analyzer.js.map +1 -0
  295. package/dist/infrastructure/domain-map/lsp-adapter.d.ts +61 -0
  296. package/dist/infrastructure/domain-map/lsp-adapter.d.ts.map +1 -0
  297. package/dist/infrastructure/domain-map/lsp-adapter.js +210 -0
  298. package/dist/infrastructure/domain-map/lsp-adapter.js.map +1 -0
  299. package/dist/infrastructure/domain-map/lsp-configs.d.ts +53 -0
  300. package/dist/infrastructure/domain-map/lsp-configs.d.ts.map +1 -0
  301. package/dist/infrastructure/domain-map/lsp-configs.js +274 -0
  302. package/dist/infrastructure/domain-map/lsp-configs.js.map +1 -0
  303. package/dist/infrastructure/domain-map/lsp-json-rpc.d.ts +132 -0
  304. package/dist/infrastructure/domain-map/lsp-json-rpc.d.ts.map +1 -0
  305. package/dist/infrastructure/domain-map/lsp-json-rpc.js +320 -0
  306. package/dist/infrastructure/domain-map/lsp-json-rpc.js.map +1 -0
  307. package/dist/infrastructure/domain-map/project-scanner.d.ts +43 -0
  308. package/dist/infrastructure/domain-map/project-scanner.d.ts.map +1 -0
  309. package/dist/infrastructure/domain-map/project-scanner.js +193 -0
  310. package/dist/infrastructure/domain-map/project-scanner.js.map +1 -0
  311. package/dist/infrastructure/environment/environment-repository.d.ts +33 -0
  312. package/dist/infrastructure/environment/environment-repository.d.ts.map +1 -0
  313. package/dist/infrastructure/environment/environment-repository.js +161 -0
  314. package/dist/infrastructure/environment/environment-repository.js.map +1 -0
  315. package/dist/infrastructure/environment/scanner-adapter.d.ts +23 -0
  316. package/dist/infrastructure/environment/scanner-adapter.d.ts.map +1 -0
  317. package/dist/infrastructure/environment/scanner-adapter.js +102 -0
  318. package/dist/infrastructure/environment/scanner-adapter.js.map +1 -0
  319. package/dist/infrastructure/kanban/card-repository.d.ts +41 -0
  320. package/dist/infrastructure/kanban/card-repository.d.ts.map +1 -0
  321. package/dist/infrastructure/kanban/card-repository.js +185 -0
  322. package/dist/infrastructure/kanban/card-repository.js.map +1 -0
  323. package/dist/infrastructure/kanban/sprint-repository.d.ts +40 -0
  324. package/dist/infrastructure/kanban/sprint-repository.d.ts.map +1 -0
  325. package/dist/infrastructure/kanban/sprint-repository.js +186 -0
  326. package/dist/infrastructure/kanban/sprint-repository.js.map +1 -0
  327. package/dist/infrastructure/rag/file-discovery.d.ts +19 -0
  328. package/dist/infrastructure/rag/file-discovery.d.ts.map +1 -0
  329. package/dist/infrastructure/rag/file-discovery.js +201 -0
  330. package/dist/infrastructure/rag/file-discovery.js.map +1 -0
  331. package/dist/infrastructure/rag/ollama-embeddings.d.ts +18 -0
  332. package/dist/infrastructure/rag/ollama-embeddings.d.ts.map +1 -0
  333. package/dist/infrastructure/rag/ollama-embeddings.js +54 -0
  334. package/dist/infrastructure/rag/ollama-embeddings.js.map +1 -0
  335. package/dist/infrastructure/rag/text-splitter.d.ts +19 -0
  336. package/dist/infrastructure/rag/text-splitter.d.ts.map +1 -0
  337. package/dist/infrastructure/rag/text-splitter.js +38 -0
  338. package/dist/infrastructure/rag/text-splitter.js.map +1 -0
  339. package/dist/infrastructure/rag/vectra-adapter.d.ts +38 -0
  340. package/dist/infrastructure/rag/vectra-adapter.d.ts.map +1 -0
  341. package/dist/infrastructure/rag/vectra-adapter.js +275 -0
  342. package/dist/infrastructure/rag/vectra-adapter.js.map +1 -0
  343. package/dist/infrastructure/token-metrics/token-metrics-repository.d.ts +29 -0
  344. package/dist/infrastructure/token-metrics/token-metrics-repository.d.ts.map +1 -0
  345. package/dist/infrastructure/token-metrics/token-metrics-repository.js +254 -0
  346. package/dist/infrastructure/token-metrics/token-metrics-repository.js.map +1 -0
  347. package/dist/infrastructure/vault/markdown-parser.d.ts +35 -0
  348. package/dist/infrastructure/vault/markdown-parser.d.ts.map +1 -0
  349. package/dist/infrastructure/vault/markdown-parser.js +145 -0
  350. package/dist/infrastructure/vault/markdown-parser.js.map +1 -0
  351. package/dist/infrastructure/vault/vault-fs-adapter.d.ts +17 -0
  352. package/dist/infrastructure/vault/vault-fs-adapter.d.ts.map +1 -0
  353. package/dist/infrastructure/vault/vault-fs-adapter.js +105 -0
  354. package/dist/infrastructure/vault/vault-fs-adapter.js.map +1 -0
  355. package/dist/infrastructure/workspace-registry/dependency-repository.d.ts +27 -0
  356. package/dist/infrastructure/workspace-registry/dependency-repository.d.ts.map +1 -0
  357. package/dist/infrastructure/workspace-registry/dependency-repository.js +89 -0
  358. package/dist/infrastructure/workspace-registry/dependency-repository.js.map +1 -0
  359. package/dist/infrastructure/workspace-registry/workspace-repository.d.ts +28 -0
  360. package/dist/infrastructure/workspace-registry/workspace-repository.d.ts.map +1 -0
  361. package/dist/infrastructure/workspace-registry/workspace-repository.js +108 -0
  362. package/dist/infrastructure/workspace-registry/workspace-repository.js.map +1 -0
  363. package/dist/tools/agent-tools.d.ts +14 -0
  364. package/dist/tools/agent-tools.d.ts.map +1 -0
  365. package/dist/tools/agent-tools.js +238 -0
  366. package/dist/tools/agent-tools.js.map +1 -0
  367. package/dist/tools/context-memory-tools.d.ts +16 -0
  368. package/dist/tools/context-memory-tools.d.ts.map +1 -0
  369. package/dist/tools/context-memory-tools.js +242 -0
  370. package/dist/tools/context-memory-tools.js.map +1 -0
  371. package/dist/tools/data-tools.d.ts +3 -0
  372. package/dist/tools/data-tools.d.ts.map +1 -0
  373. package/dist/tools/data-tools.js +383 -0
  374. package/dist/tools/data-tools.js.map +1 -0
  375. package/dist/tools/domain-map-tools.d.ts +41 -0
  376. package/dist/tools/domain-map-tools.d.ts.map +1 -0
  377. package/dist/tools/domain-map-tools.js +134 -0
  378. package/dist/tools/domain-map-tools.js.map +1 -0
  379. package/dist/tools/environment-tools.d.ts +85 -0
  380. package/dist/tools/environment-tools.d.ts.map +1 -0
  381. package/dist/tools/environment-tools.js +223 -0
  382. package/dist/tools/environment-tools.js.map +1 -0
  383. package/dist/tools/governance-tools.d.ts +7 -0
  384. package/dist/tools/governance-tools.d.ts.map +1 -0
  385. package/dist/tools/governance-tools.js +73 -0
  386. package/dist/tools/governance-tools.js.map +1 -0
  387. package/dist/tools/kanban-board-tools.d.ts +11 -0
  388. package/dist/tools/kanban-board-tools.d.ts.map +1 -0
  389. package/dist/tools/kanban-board-tools.js +354 -0
  390. package/dist/tools/kanban-board-tools.js.map +1 -0
  391. package/dist/tools/kanban-card-tools.d.ts +11 -0
  392. package/dist/tools/kanban-card-tools.d.ts.map +1 -0
  393. package/dist/tools/kanban-card-tools.js +407 -0
  394. package/dist/tools/kanban-card-tools.js.map +1 -0
  395. package/dist/tools/rag-tools.d.ts +10 -0
  396. package/dist/tools/rag-tools.d.ts.map +1 -0
  397. package/dist/tools/rag-tools.js +279 -0
  398. package/dist/tools/rag-tools.js.map +1 -0
  399. package/dist/tools/token-metrics-tools.d.ts +98 -0
  400. package/dist/tools/token-metrics-tools.d.ts.map +1 -0
  401. package/dist/tools/token-metrics-tools.js +287 -0
  402. package/dist/tools/token-metrics-tools.js.map +1 -0
  403. package/dist/tools/vault-manage-tool.d.ts +7 -0
  404. package/dist/tools/vault-manage-tool.d.ts.map +1 -0
  405. package/dist/tools/vault-manage-tool.js +193 -0
  406. package/dist/tools/vault-manage-tool.js.map +1 -0
  407. package/dist/tools/vault-tools.d.ts +7 -0
  408. package/dist/tools/vault-tools.d.ts.map +1 -0
  409. package/dist/tools/vault-tools.js +348 -0
  410. package/dist/tools/vault-tools.js.map +1 -0
  411. package/dist/tools/workspace-registry-tools.d.ts +93 -0
  412. package/dist/tools/workspace-registry-tools.d.ts.map +1 -0
  413. package/dist/tools/workspace-registry-tools.js +217 -0
  414. package/dist/tools/workspace-registry-tools.js.map +1 -0
  415. package/package.json +59 -0
package/dist/index.js ADDED
@@ -0,0 +1,349 @@
1
+ import { mkdirSync } from "node:fs";
2
+ import { basename, join } from "node:path";
3
+ // Shared Domain
4
+ import { WorkspaceId } from "./domain/shared/value-objects.js";
5
+ // Infrastructure
6
+ import { SqliteAdapter } from "./infrastructure/database/sqlite-adapter.js";
7
+ // Context Memory Repositories
8
+ import { SqliteSessionRepository } from "./infrastructure/context-memory/session-repository.js";
9
+ import { SqliteTodoRepository } from "./infrastructure/context-memory/todo-repository.js";
10
+ import { SqliteNoteRepository } from "./infrastructure/context-memory/note-repository.js";
11
+ import { createSimpleSearchRepo } from "./infrastructure/context-memory/search-repository.js";
12
+ // Kanban Repositories
13
+ import { SqliteCardRepository } from "./infrastructure/kanban/card-repository.js";
14
+ import { SqliteSprintRepository, SqliteEpicRepository, } from "./infrastructure/kanban/sprint-repository.js";
15
+ // Context Memory Domain Services
16
+ import { SessionDomainService, TodoDomainService, NoteDomainService, ContextSearchService, } from "./domain/context-memory/services.js";
17
+ // Kanban Domain Services
18
+ import { CardDomainService } from "./domain/kanban/services.js";
19
+ // Governance Domain
20
+ import { DEFAULT_POLICIES } from "./domain/governance/policies.js";
21
+ import { PolicyValidationService } from "./domain/governance/services.js";
22
+ // Context Memory Application
23
+ import { SessionUseCases } from "./application/context-memory/session-use-cases.js";
24
+ import { TodoUseCases } from "./application/context-memory/todo-use-cases.js";
25
+ import { NoteUseCases } from "./application/context-memory/note-use-cases.js";
26
+ // Kanban Application
27
+ import { CardUseCases } from "./application/kanban/card-use-cases.js";
28
+ import { SprintUseCases, EpicUseCases, } from "./application/kanban/sprint-use-cases.js";
29
+ import { BoardUseCases } from "./application/kanban/board-use-cases.js";
30
+ // Governance Application
31
+ import { GovernanceUseCases } from "./application/governance/validation-use-cases.js";
32
+ // Token Metrics
33
+ import { SqliteTokenMetricsRepository } from "./infrastructure/token-metrics/token-metrics-repository.js";
34
+ import { TokenMetricsUseCases } from "./application/token-metrics/tracking-use-cases.js";
35
+ // Vault
36
+ import { VaultFsAdapter } from "./infrastructure/vault/vault-fs-adapter.js";
37
+ import { VaultUseCases } from "./application/vault/use-cases.js";
38
+ import { VaultManager } from "./application/vault/vault-manager.js";
39
+ // RAG Infrastructure (native TypeScript, replaces Python bridge)
40
+ import { VectraVectorRepository } from "./infrastructure/rag/vectra-adapter.js";
41
+ import { OllamaEmbeddingProvider } from "./infrastructure/rag/ollama-embeddings.js";
42
+ import { LangchainTextSplitter } from "./infrastructure/rag/text-splitter.js";
43
+ import { FileSystemDiscovery } from "./infrastructure/rag/file-discovery.js";
44
+ import { DEFAULT_RAG_CONFIG } from "./domain/rag/value-objects.js";
45
+ // RAG Application
46
+ import { RagUseCases } from "./application/rag/use-cases.js";
47
+ import { OracleUseCases } from "./application/rag/oracle-use-cases.js";
48
+ // Domain Map Infrastructure
49
+ import { LspClientAdapter } from "./infrastructure/domain-map/lsp-adapter.js";
50
+ import { LlmSemanticAnalyzer } from "./infrastructure/domain-map/llm-analyzer.js";
51
+ import { FileProjectScanner } from "./infrastructure/domain-map/project-scanner.js";
52
+ // Domain Map Application
53
+ import { DomainMapUseCases } from "./application/domain-map/use-cases.js";
54
+ // Workspace Registry Infrastructure
55
+ import { SqliteWorkspaceRegistryRepository } from "./infrastructure/workspace-registry/workspace-repository.js";
56
+ import { SqliteWorkspaceDependencyRepository } from "./infrastructure/workspace-registry/dependency-repository.js";
57
+ // Workspace Registry Domain
58
+ import { WorkspaceRegistryService } from "./domain/workspace-registry/services.js";
59
+ import { resolveJarvisHome } from "./domain/workspace-registry/value-objects.js";
60
+ // Workspace Registry Application
61
+ import { WorkspaceRegistryUseCases } from "./application/workspace-registry/use-cases.js";
62
+ // Environment Infrastructure
63
+ import { SqliteEnvironmentRepository } from "./infrastructure/environment/environment-repository.js";
64
+ import { EnvironmentScannerAdapter } from "./infrastructure/environment/scanner-adapter.js";
65
+ // Environment Domain
66
+ import { EnvironmentDomainService } from "./domain/environment/services.js";
67
+ // Environment Application
68
+ import { EnvironmentUseCases } from "./application/environment/use-cases.js";
69
+ // Tools
70
+ import { createContextMemoryTools } from "./tools/context-memory-tools.js";
71
+ import { createKanbanCardTools } from "./tools/kanban-card-tools.js";
72
+ import { createKanbanBoardTools } from "./tools/kanban-board-tools.js";
73
+ import { createGovernanceTools } from "./tools/governance-tools.js";
74
+ import { createRagTools } from "./tools/rag-tools.js";
75
+ import { createDataTools } from "./tools/data-tools.js";
76
+ import { createAgentTools } from "./tools/agent-tools.js";
77
+ import { createVaultTools } from "./tools/vault-tools.js";
78
+ import { createVaultManageTool } from "./tools/vault-manage-tool.js";
79
+ import { createDomainMapTools } from "./tools/domain-map-tools.js";
80
+ import { createWorkspaceRegistryTools } from "./tools/workspace-registry-tools.js";
81
+ import { createEnvironmentTools } from "./tools/environment-tools.js";
82
+ import { createTokenMetricsTools } from "./tools/token-metrics-tools.js";
83
+ // Hooks
84
+ import { createCompactingHook } from "./hooks/context-compacting.js";
85
+ import { createShellEnvHook } from "./hooks/shell-env.js";
86
+ import { createGuardrailsHook } from "./hooks/guardrails.js";
87
+ import { createEventHook } from "./hooks/event-handlers.js";
88
+ /**
89
+ * Derive workspace name from directory path.
90
+ * Uses the last segment of the path, uppercased.
91
+ * e.g., "/Users/dev/projects/my-app" -> "MY-APP"
92
+ */
93
+ function getWorkspace(directory) {
94
+ const name = basename(directory);
95
+ return name.toUpperCase();
96
+ }
97
+ export const JarvisPlugin = async (input) => {
98
+ // ── Infrastructure Setup ──────────────────────────────────────────
99
+ const jarvisDir = join(input.directory, ".jarvis");
100
+ mkdirSync(jarvisDir, { recursive: true });
101
+ const dbPath = join(jarvisDir, "jarvis.db");
102
+ const db = new SqliteAdapter({ path: dbPath });
103
+ // Central workspace registry database (~/.jarvis/registry.db)
104
+ const jarvisHome = resolveJarvisHome();
105
+ mkdirSync(jarvisHome, { recursive: true });
106
+ const registryDbPath = join(jarvisHome, "registry.db");
107
+ const registryDb = new SqliteAdapter({ path: registryDbPath });
108
+ // ── Repository Layer ──────────────────────────────────────────────
109
+ // Context Memory
110
+ const sessionRepo = new SqliteSessionRepository(db);
111
+ const todoRepo = new SqliteTodoRepository(db);
112
+ const noteRepo = new SqliteNoteRepository(db);
113
+ const searchRepo = createSimpleSearchRepo(todoRepo, noteRepo);
114
+ // Kanban
115
+ const cardRepo = new SqliteCardRepository(db);
116
+ const sprintRepo = new SqliteSprintRepository(db);
117
+ const epicRepo = new SqliteEpicRepository(db);
118
+ // Token Metrics
119
+ const tokenMetricsRepo = new SqliteTokenMetricsRepository(db);
120
+ // Workspace Registry (central registry.db, separate from per-project db)
121
+ const workspaceRegistryRepo = new SqliteWorkspaceRegistryRepository(registryDb);
122
+ const workspaceDependencyRepo = new SqliteWorkspaceDependencyRepository(registryDb);
123
+ // Environment (per-project db, scoped to current workspace)
124
+ const wsId = WorkspaceId.create(getWorkspace(input.directory));
125
+ const environmentRepo = new SqliteEnvironmentRepository(db, wsId);
126
+ // Vault (filesystem-based, no SQLite)
127
+ const vaultRoot = join(jarvisDir, "..", "obsidian-vault");
128
+ const vaultRepo = new VaultFsAdapter(vaultRoot);
129
+ // ── Domain Service Layer ──────────────────────────────────────────
130
+ // Context Memory
131
+ const sessionService = new SessionDomainService(sessionRepo);
132
+ const todoService = new TodoDomainService(todoRepo);
133
+ const noteService = new NoteDomainService(noteRepo);
134
+ const searchService = new ContextSearchService(searchRepo);
135
+ // Kanban
136
+ const cardService = new CardDomainService(cardRepo);
137
+ // Governance
138
+ const validationService = new PolicyValidationService(DEFAULT_POLICIES);
139
+ // Workspace Registry
140
+ const workspaceRegistryService = new WorkspaceRegistryService(workspaceRegistryRepo, workspaceDependencyRepo);
141
+ // Environment
142
+ const environmentService = new EnvironmentDomainService(environmentRepo);
143
+ // ── Application Use Case Layer ────────────────────────────────────
144
+ // Context Memory
145
+ const sessionUseCases = new SessionUseCases(sessionService);
146
+ const todoUseCases = new TodoUseCases(todoService, todoRepo);
147
+ const noteUseCases = new NoteUseCases(noteService, searchService);
148
+ // Kanban
149
+ const cardUseCases = new CardUseCases(cardRepo, cardService);
150
+ const sprintUseCases = new SprintUseCases(sprintRepo);
151
+ const epicUseCases = new EpicUseCases(epicRepo);
152
+ const boardUseCases = new BoardUseCases(cardRepo, cardService);
153
+ // Governance
154
+ const governanceUseCases = new GovernanceUseCases(validationService);
155
+ // Token Metrics
156
+ const tokenMetricsUseCases = new TokenMetricsUseCases(tokenMetricsRepo);
157
+ // Vault
158
+ const vaultUseCases = new VaultUseCases(vaultRepo);
159
+ const vaultManager = new VaultManager(vaultRepo, vaultUseCases);
160
+ // Workspace Registry
161
+ const workspaceRegistryUseCases = new WorkspaceRegistryUseCases(workspaceRegistryService);
162
+ // Environment (use cases created after projectScanner, see below)
163
+ // ── Tools ─────────────────────────────────────────────────────────
164
+ const contextMemoryTools = createContextMemoryTools({
165
+ sessionUseCases,
166
+ todoUseCases,
167
+ noteUseCases,
168
+ getWorkspace,
169
+ });
170
+ const kanbanCardTools = createKanbanCardTools({
171
+ cardUseCases,
172
+ sprintUseCases,
173
+ epicUseCases,
174
+ getWorkspace,
175
+ });
176
+ const kanbanBoardTools = createKanbanBoardTools({
177
+ sprintUseCases,
178
+ epicUseCases,
179
+ boardUseCases,
180
+ getWorkspace,
181
+ });
182
+ const governanceTools = createGovernanceTools({
183
+ governanceUseCases,
184
+ });
185
+ // RAG Infrastructure (native TypeScript — Vectra + Ollama + TextSplitters)
186
+ const ragPersistRoot = join(jarvisDir, "rag");
187
+ mkdirSync(ragPersistRoot, { recursive: true });
188
+ const embeddingProvider = new OllamaEmbeddingProvider(DEFAULT_RAG_CONFIG.ollamaUrl, DEFAULT_RAG_CONFIG.embeddingModel, 768);
189
+ const vectorRepository = new VectraVectorRepository(ragPersistRoot, DEFAULT_RAG_CONFIG.embeddingModel);
190
+ const textSplitter = new LangchainTextSplitter();
191
+ const fileDiscovery = new FileSystemDiscovery();
192
+ const ragUseCases = new RagUseCases({
193
+ embeddingProvider,
194
+ vectorRepository,
195
+ textSplitter,
196
+ fileDiscovery,
197
+ });
198
+ const oracleUseCases = new OracleUseCases({
199
+ embeddingProvider,
200
+ vectorRepository,
201
+ textSplitter,
202
+ fileDiscovery,
203
+ });
204
+ const ragTools = createRagTools({
205
+ ragUseCases,
206
+ oracleUseCases,
207
+ getWorkspace,
208
+ });
209
+ // Data Tools (pure TypeScript, no bridge needed)
210
+ const dataTools = createDataTools();
211
+ // Vault Tools (filesystem-based Obsidian vault operations)
212
+ const vaultTools = createVaultTools({
213
+ vaultUseCases,
214
+ });
215
+ // Vault Manager Tool (smart facade for context-aware vault operations)
216
+ const vaultManageTool = createVaultManageTool({
217
+ vaultManager,
218
+ });
219
+ // Agent Communication Tools (inter-session via OpenCode SDK client)
220
+ const agentTools = createAgentTools({
221
+ client: input.client,
222
+ cardUseCases,
223
+ sprintUseCases,
224
+ epicUseCases,
225
+ });
226
+ // Domain Map Infrastructure + Application + Tools
227
+ const lspClient = new LspClientAdapter();
228
+ const projectScanner = new FileProjectScanner();
229
+ // LLM analyzer prompt function — delegates to OpenCode SDK session.prompt().
230
+ // Creates a temporary session, sends the analysis prompt, extracts the
231
+ // LLM text response, and cleans up the session. Supports model override
232
+ // so users can choose a cost-effective model for large codebase analysis.
233
+ const llmPromptFn = async (prompt, model) => {
234
+ const createResult = await input.client.session.create({
235
+ body: { title: "[jarvis] domain-map-analysis" },
236
+ });
237
+ if (!createResult.data) {
238
+ throw new Error("Failed to create analysis session");
239
+ }
240
+ const sessionId = createResult.data.id;
241
+ try {
242
+ const promptResult = await input.client.session.prompt({
243
+ path: { id: sessionId },
244
+ body: {
245
+ system: "You are a Domain-Driven Design expert analyzing a codebase. " +
246
+ "Respond ONLY with valid JSON matching the schema in the prompt. " +
247
+ "Do not include markdown fences around the JSON. " +
248
+ "Do not use any tools.",
249
+ ...(model !== undefined
250
+ ? {
251
+ model: { providerID: model.providerID, modelID: model.modelID },
252
+ }
253
+ : {}),
254
+ parts: [{ type: "text", text: prompt }],
255
+ },
256
+ });
257
+ if (!promptResult.data) {
258
+ throw new Error("LLM analysis returned no data");
259
+ }
260
+ const textParts = promptResult.data.parts.filter((p) => p.type === "text");
261
+ if (textParts.length === 0) {
262
+ throw new Error("LLM analysis returned no text parts");
263
+ }
264
+ return textParts.map((p) => p.text).join("");
265
+ }
266
+ finally {
267
+ await input.client.session
268
+ .delete({ path: { id: sessionId } })
269
+ .catch(() => { });
270
+ }
271
+ };
272
+ const llmAnalyzer = new LlmSemanticAnalyzer(llmPromptFn);
273
+ const domainMapUseCases = new DomainMapUseCases({
274
+ lspClient,
275
+ llmAnalyzer,
276
+ projectScanner,
277
+ });
278
+ const domainMapTools = createDomainMapTools({
279
+ domainMapUseCases,
280
+ workspaceRegistryUseCases,
281
+ getWorkspace,
282
+ });
283
+ // Workspace Registry Tools
284
+ const workspaceRegistryTools = createWorkspaceRegistryTools({
285
+ workspaceRegistryUseCases,
286
+ });
287
+ // Environment Management (uses projectScanner via adapter)
288
+ const environmentScanner = new EnvironmentScannerAdapter(projectScanner);
289
+ const environmentUseCases = new EnvironmentUseCases(environmentService, environmentScanner, getWorkspace(input.directory));
290
+ const environmentTools = createEnvironmentTools({
291
+ environmentUseCases,
292
+ });
293
+ // Token Metrics Tools (usage tracking, reports, cost estimation)
294
+ const tokenMetricsTools = createTokenMetricsTools({
295
+ tokenMetricsUseCases,
296
+ getWorkspace,
297
+ directory: input.directory,
298
+ });
299
+ // ── Auto-Registration ─────────────────────────────────────────────
300
+ // Register current workspace in the central registry on plugin boot.
301
+ // Fire-and-forget — does not block plugin startup.
302
+ const wsName = getWorkspace(input.directory);
303
+ workspaceRegistryUseCases.autoRegister(wsName, input.directory).catch(() => {
304
+ // Silently ignore auto-registration errors (e.g. corrupt registry.db)
305
+ });
306
+ // ── Hooks ─────────────────────────────────────────────────────────
307
+ const compactingHook = createCompactingHook({
308
+ sessionUseCases,
309
+ todoUseCases,
310
+ noteUseCases,
311
+ getWorkspace,
312
+ directory: input.directory,
313
+ });
314
+ const shellEnvHook = createShellEnvHook({
315
+ sessionUseCases,
316
+ getWorkspace,
317
+ dbPath,
318
+ });
319
+ const guardrailsHook = createGuardrailsHook({
320
+ validationService,
321
+ });
322
+ const eventHook = createEventHook({
323
+ tokenMetricsUseCases,
324
+ workspace: getWorkspace(input.directory),
325
+ });
326
+ // ── Compose Hooks Object ──────────────────────────────────────────
327
+ return {
328
+ tool: {
329
+ ...contextMemoryTools,
330
+ ...kanbanCardTools,
331
+ ...kanbanBoardTools,
332
+ ...governanceTools,
333
+ ...ragTools,
334
+ ...dataTools,
335
+ ...agentTools,
336
+ ...vaultTools,
337
+ ...vaultManageTool,
338
+ ...domainMapTools,
339
+ ...workspaceRegistryTools,
340
+ ...environmentTools,
341
+ ...tokenMetricsTools,
342
+ },
343
+ "experimental.session.compacting": compactingHook,
344
+ "shell.env": shellEnvHook,
345
+ "tool.execute.before": guardrailsHook,
346
+ event: eventHook,
347
+ };
348
+ };
349
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * SQLite Note Repository
3
+ *
4
+ * Implements NoteRepository interface from domain layer.
5
+ * Maps Note entities to/from SQLite rows.
6
+ * Note IDs are auto-increment integers assigned by SQLite.
7
+ *
8
+ * SOLID: SRP - persistence for Note entity only
9
+ * SOLID: DIP - implements domain interface
10
+ */
11
+ import type { SqliteAdapter } from "../database/sqlite-adapter.js";
12
+ import type { NoteRepository } from "../../domain/context-memory/repositories.js";
13
+ import { Note } from "../../domain/context-memory/entities.js";
14
+ import { SessionId } from "../../domain/context-memory/value-objects.js";
15
+ import { WorkspaceId } from "../../domain/shared/value-objects.js";
16
+ export declare class SqliteNoteRepository implements NoteRepository {
17
+ private readonly db;
18
+ constructor(db: SqliteAdapter);
19
+ save(note: Note): Promise<Note>;
20
+ findByWorkspace(workspace: WorkspaceId): Promise<readonly Note[]>;
21
+ findBySession(sessionId: SessionId): Promise<readonly Note[]>;
22
+ findRecent(workspace: WorkspaceId, limit: number): Promise<readonly Note[]>;
23
+ search(query: string, workspace: WorkspaceId): Promise<readonly Note[]>;
24
+ private toDomain;
25
+ }
26
+ //# sourceMappingURL=note-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"note-repository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/context-memory/note-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,MAAM,yCAAyC,CAAC;AAE/D,OAAO,EAGL,SAAS,EACV,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,WAAW,EAAa,MAAM,sCAAsC,CAAC;AAgC9E,qBAAa,oBAAqB,YAAW,cAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,aAAa;IAIxC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B/B,eAAe,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAQjE,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAQ7D,UAAU,CACd,SAAS,EAAE,WAAW,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAQrB,MAAM,CACV,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,WAAW,GACrB,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAU3B,OAAO,CAAC,QAAQ;CAejB"}
@@ -0,0 +1,87 @@
1
+ import { Note } from "../../domain/context-memory/entities.js";
2
+ import { NoteId, NoteType, SessionId, } from "../../domain/context-memory/value-objects.js";
3
+ import { WorkspaceId, Timestamp } from "../../domain/shared/value-objects.js";
4
+ const SCHEMA_KEY = "context_memory_notes";
5
+ const DDL = `
6
+ CREATE TABLE IF NOT EXISTS notes (
7
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
8
+ content TEXT NOT NULL,
9
+ type TEXT NOT NULL DEFAULT 'note',
10
+ workspace TEXT NOT NULL,
11
+ session_id TEXT,
12
+ tags TEXT NOT NULL DEFAULT '',
13
+ created_at TEXT NOT NULL,
14
+ FOREIGN KEY (session_id) REFERENCES sessions(id)
15
+ );
16
+ CREATE INDEX IF NOT EXISTS idx_note_workspace ON notes(workspace);
17
+ CREATE INDEX IF NOT EXISTS idx_note_type ON notes(type);
18
+ CREATE INDEX IF NOT EXISTS idx_note_session_id ON notes(session_id);
19
+ CREATE INDEX IF NOT EXISTS idx_note_created_at ON notes(created_at);
20
+ `;
21
+ export class SqliteNoteRepository {
22
+ db;
23
+ constructor(db) {
24
+ this.db = db;
25
+ this.db.ensureSchema(SCHEMA_KEY, DDL);
26
+ }
27
+ async save(note) {
28
+ // INSERT new note, get auto-increment ID
29
+ const sql = `
30
+ INSERT INTO notes (content, type, workspace, session_id, tags, created_at)
31
+ VALUES (@content, @type, @workspace, @session_id, @tags, @created_at)
32
+ `;
33
+ const result = this.db.execute(sql, {
34
+ content: note.content,
35
+ type: note.type,
36
+ workspace: note.workspace.value,
37
+ session_id: note.sessionId?.value ?? null,
38
+ tags: note.tags.join(","),
39
+ created_at: note.createdAt.toISO(),
40
+ });
41
+ // Reconstitute with the real auto-increment ID
42
+ const realId = Number(result.lastInsertRowid);
43
+ return Note.reconstitute({
44
+ id: NoteId.create(realId),
45
+ content: note.content,
46
+ type: note.type,
47
+ workspace: note.workspace,
48
+ ...(note.sessionId !== undefined ? { sessionId: note.sessionId } : {}),
49
+ tags: note.tags,
50
+ createdAt: note.createdAt,
51
+ });
52
+ }
53
+ async findByWorkspace(workspace) {
54
+ const rows = this.db.queryAll("SELECT * FROM notes WHERE workspace = @workspace ORDER BY created_at DESC", { workspace: workspace.value });
55
+ return rows.map((row) => this.toDomain(row));
56
+ }
57
+ async findBySession(sessionId) {
58
+ const rows = this.db.queryAll("SELECT * FROM notes WHERE session_id = @session_id ORDER BY created_at DESC", { session_id: sessionId.value });
59
+ return rows.map((row) => this.toDomain(row));
60
+ }
61
+ async findRecent(workspace, limit) {
62
+ const rows = this.db.queryAll("SELECT * FROM notes WHERE workspace = @workspace ORDER BY created_at DESC LIMIT @limit", { workspace: workspace.value, limit });
63
+ return rows.map((row) => this.toDomain(row));
64
+ }
65
+ async search(query, workspace) {
66
+ const rows = this.db.queryAll(`SELECT * FROM notes
67
+ WHERE workspace = @workspace AND content LIKE @pattern
68
+ ORDER BY created_at DESC`, { workspace: workspace.value, pattern: `%${query}%` });
69
+ return rows.map((row) => this.toDomain(row));
70
+ }
71
+ toDomain(row) {
72
+ const tags = row.tags.length > 0 ? row.tags.split(",") : [];
73
+ const props = {
74
+ id: NoteId.create(row.id),
75
+ content: row.content,
76
+ type: row.type,
77
+ workspace: WorkspaceId.from(row.workspace),
78
+ ...(row.session_id !== null
79
+ ? { sessionId: SessionId.from(row.session_id) }
80
+ : {}),
81
+ tags,
82
+ createdAt: Timestamp.fromISO(row.created_at),
83
+ };
84
+ return Note.reconstitute(props);
85
+ }
86
+ }
87
+ //# sourceMappingURL=note-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"note-repository.js","sourceRoot":"","sources":["../../../src/infrastructure/context-memory/note-repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Simple Search Repository
3
+ *
4
+ * Implements ContextSearchRepository by combining search across
5
+ * TodoRepository and NoteRepository with basic relevance scoring.
6
+ *
7
+ * A proper FTS implementation can replace this later.
8
+ *
9
+ * SOLID: SRP - combined search persistence only
10
+ * SOLID: DIP - implements domain interface
11
+ */
12
+ import type { ContextSearchRepository } from "../../domain/context-memory/repositories.js";
13
+ import type { TodoRepository } from "../../domain/context-memory/repositories.js";
14
+ import type { NoteRepository } from "../../domain/context-memory/repositories.js";
15
+ /**
16
+ * Creates a ContextSearchRepository that searches both todos and notes.
17
+ * Merges results with a hardcoded relevance score of 0.8.
18
+ */
19
+ export declare function createSimpleSearchRepo(todoRepo: TodoRepository, noteRepo: NoteRepository): ContextSearchRepository;
20
+ //# sourceMappingURL=search-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-repository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/context-memory/search-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAIlF;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,cAAc,GACvB,uBAAuB,CAgCzB"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Simple Search Repository
3
+ *
4
+ * Implements ContextSearchRepository by combining search across
5
+ * TodoRepository and NoteRepository with basic relevance scoring.
6
+ *
7
+ * A proper FTS implementation can replace this later.
8
+ *
9
+ * SOLID: SRP - combined search persistence only
10
+ * SOLID: DIP - implements domain interface
11
+ */
12
+ // ── Simple Search Repository ─────────────────────────────────────────
13
+ /**
14
+ * Creates a ContextSearchRepository that searches both todos and notes.
15
+ * Merges results with a hardcoded relevance score of 0.8.
16
+ */
17
+ export function createSimpleSearchRepo(todoRepo, noteRepo) {
18
+ return {
19
+ async searchAll(query, workspace) {
20
+ const results = [];
21
+ const todos = await todoRepo.search(query, workspace);
22
+ for (const todo of todos) {
23
+ results.push({
24
+ sourceType: "todo",
25
+ sourceId: todo.id.value,
26
+ content: todo.content,
27
+ relevance: 0.8,
28
+ });
29
+ }
30
+ const notes = await noteRepo.search(query, workspace);
31
+ for (const note of notes) {
32
+ results.push({
33
+ sourceType: "note",
34
+ sourceId: note.id.value,
35
+ content: note.content,
36
+ relevance: 0.8,
37
+ });
38
+ }
39
+ results.sort((a, b) => b.relevance - a.relevance);
40
+ return results;
41
+ },
42
+ };
43
+ }
44
+ //# sourceMappingURL=search-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-repository.js","sourceRoot":"","sources":["../../../src/infrastructure/context-memory/search-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,wEAAwE;AAExE;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAwB,EACxB,QAAwB;IAExB,OAAO;QACL,KAAK,CAAC,SAAS,CACb,KAAa,EACb,SAAsB;YAEtB,MAAM,OAAO,GAA0B,EAAE,CAAC;YAE1C,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,MAAM;oBAClB,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK;oBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,SAAS,EAAE,GAAG;iBACf,CAAC,CAAC;YACL,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,MAAM;oBAClB,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK;oBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,SAAS,EAAE,GAAG;iBACf,CAAC,CAAC;YACL,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;YAClD,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * SQLite Session Repository
3
+ *
4
+ * Implements SessionRepository interface from domain layer.
5
+ * Maps Session entities to/from SQLite rows.
6
+ *
7
+ * SOLID: SRP - persistence for Session aggregate only
8
+ * SOLID: DIP - implements domain interface
9
+ * SOLID: LSP - fully substitutable for SessionRepository
10
+ */
11
+ import type { SqliteAdapter } from "../database/sqlite-adapter.js";
12
+ import type { SessionRepository } from "../../domain/context-memory/repositories.js";
13
+ import { Session } from "../../domain/context-memory/entities.js";
14
+ import { SessionId } from "../../domain/context-memory/value-objects.js";
15
+ import { WorkspaceId } from "../../domain/shared/value-objects.js";
16
+ export declare class SqliteSessionRepository implements SessionRepository {
17
+ private readonly db;
18
+ constructor(db: SqliteAdapter);
19
+ save(session: Session): Promise<void>;
20
+ findById(id: SessionId): Promise<Session | null>;
21
+ findByWorkspace(workspace: WorkspaceId): Promise<readonly Session[]>;
22
+ findActive(workspace: WorkspaceId): Promise<Session | null>;
23
+ delete(id: SessionId): Promise<void>;
24
+ private toDomain;
25
+ }
26
+ //# sourceMappingURL=session-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-repository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/context-memory/session-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAElE,OAAO,EACL,SAAS,EAEV,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,WAAW,EAAa,MAAM,sCAAsC,CAAC;AAgC9E,qBAAa,uBAAwB,YAAW,iBAAiB;IACnD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,aAAa;IAIxC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrC,QAAQ,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAQhD,eAAe,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC;IAQpE,UAAU,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAU3D,MAAM,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,OAAO,CAAC,QAAQ;CAejB"}