@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
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Workspace Registry - Repository Ports
3
+ *
4
+ * Interfaces for workspace persistence and dependency management.
5
+ * Implementations live in the infrastructure layer (SQLite registry.db).
6
+ *
7
+ * DDD: Repository interfaces in domain, implementations in infrastructure
8
+ * SOLID: DIP - domain depends on abstractions, not concrete persistence
9
+ * SOLID: ISP - separate interfaces for workspaces and dependencies
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=repositories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repositories.js","sourceRoot":"","sources":["../../../src/domain/workspace-registry/repositories.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Workspace Registry - Domain Services
3
+ *
4
+ * Business logic for workspace registration, discovery, and
5
+ * cross-workspace dependency management.
6
+ *
7
+ * DDD: Domain Service (stateless, operates on entities via repositories)
8
+ * SOLID: SRP - registration logic only
9
+ * SOLID: DIP - depends on repository interfaces, not implementations
10
+ */
11
+ import type { Result } from "../shared/value-objects.js";
12
+ import { Workspace } from "./entities.js";
13
+ import type { PrimaryLanguage, DependencyType, WorkspaceDependency, WorkspaceRegistrationData } from "./value-objects.js";
14
+ import type { WorkspaceRegistryRepository, WorkspaceDependencyRepository } from "./repositories.js";
15
+ export declare class WorkspaceRegistryService {
16
+ private readonly workspaceRepo;
17
+ private readonly dependencyRepo;
18
+ constructor(workspaceRepo: WorkspaceRegistryRepository, dependencyRepo: WorkspaceDependencyRepository);
19
+ /**
20
+ * Registers a new workspace or updates an existing one if the directory
21
+ * matches. This is the auto-registration entry point called at plugin boot.
22
+ */
23
+ registerOrUpdate(data: WorkspaceRegistrationData): Promise<Result<Workspace>>;
24
+ /**
25
+ * Registers a workspace with minimal data.
26
+ * Convenience method for auto-registration during plugin boot.
27
+ */
28
+ autoRegister(workspaceId: string, directory: string): Promise<Result<Workspace>>;
29
+ getWorkspace(id: string): Promise<Result<Workspace>>;
30
+ getWorkspaceByDirectory(directory: string): Promise<Result<Workspace>>;
31
+ listWorkspaces(): Promise<readonly Workspace[]>;
32
+ listActiveWorkspaces(): Promise<readonly Workspace[]>;
33
+ updateWorkspaceLanguage(id: string, language: PrimaryLanguage): Promise<Result<Workspace>>;
34
+ updateWorkspaceTechStack(id: string, techStack: readonly string[]): Promise<Result<Workspace>>;
35
+ updateWorkspaceDescription(id: string, description: string): Promise<Result<Workspace>>;
36
+ archiveWorkspace(id: string): Promise<Result<Workspace>>;
37
+ activateWorkspace(id: string): Promise<Result<Workspace>>;
38
+ markAsTemplate(id: string): Promise<Result<Workspace>>;
39
+ setWorkspaceMetadata(id: string, key: string, value: unknown): Promise<Result<Workspace>>;
40
+ removeWorkspaceMetadata(id: string, key: string): Promise<Result<Workspace>>;
41
+ addDependency(sourceId: string, targetId: string, dependencyType: DependencyType, description?: string): Promise<Result<WorkspaceDependency>>;
42
+ removeDependency(sourceId: string, targetId: string): Promise<Result<void>>;
43
+ getDependencies(id: string): Promise<readonly WorkspaceDependency[]>;
44
+ getDependents(id: string): Promise<readonly WorkspaceDependency[]>;
45
+ /**
46
+ * Unregisters a workspace. Removes the workspace and all its dependencies.
47
+ * Does NOT delete project files on disk.
48
+ */
49
+ unregister(id: string): Promise<Result<void>>;
50
+ /**
51
+ * Renders a workspace summary as a readable string.
52
+ * Used by tools to return formatted output.
53
+ */
54
+ renderWorkspaceSummary(workspace: Workspace, dependencies: readonly WorkspaceDependency[], dependents: readonly WorkspaceDependency[]): string;
55
+ }
56
+ //# sourceMappingURL=services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/domain/workspace-registry/services.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,283 @@
1
+ /**
2
+ * Workspace Registry - Domain Services
3
+ *
4
+ * Business logic for workspace registration, discovery, and
5
+ * cross-workspace dependency management.
6
+ *
7
+ * DDD: Domain Service (stateless, operates on entities via repositories)
8
+ * SOLID: SRP - registration logic only
9
+ * SOLID: DIP - depends on repository interfaces, not implementations
10
+ */
11
+ import { WorkspaceId, ok, fail } from "../shared/value-objects.js";
12
+ import { Workspace } from "./entities.js";
13
+ import { ProjectDirectory, TechStack, createWorkspaceDependency, } from "./value-objects.js";
14
+ // ── Workspace Registry Service ───────────────────────────────────────
15
+ export class WorkspaceRegistryService {
16
+ workspaceRepo;
17
+ dependencyRepo;
18
+ constructor(workspaceRepo, dependencyRepo) {
19
+ this.workspaceRepo = workspaceRepo;
20
+ this.dependencyRepo = dependencyRepo;
21
+ }
22
+ // ── Registration ─────────────────────────────────────────────────
23
+ /**
24
+ * Registers a new workspace or updates an existing one if the directory
25
+ * matches. This is the auto-registration entry point called at plugin boot.
26
+ */
27
+ async registerOrUpdate(data) {
28
+ // Check if already registered by ID
29
+ const existing = await this.workspaceRepo.findById(data.id);
30
+ if (existing !== null) {
31
+ // Update directory if it changed (project moved)
32
+ if (!existing.directory.equals(data.directory)) {
33
+ existing.updateDirectory(data.directory);
34
+ }
35
+ // Update language/stack if provided and workspace has defaults
36
+ if (data.primaryLanguage !== undefined &&
37
+ existing.primaryLanguage === "unknown") {
38
+ existing.updatePrimaryLanguage(data.primaryLanguage);
39
+ }
40
+ if (data.techStack !== undefined && existing.techStack.isEmpty) {
41
+ existing.updateTechStack(data.techStack);
42
+ }
43
+ if (data.description !== undefined &&
44
+ existing.description === undefined) {
45
+ existing.updateDescription(data.description);
46
+ }
47
+ await this.workspaceRepo.save(existing);
48
+ return ok(existing);
49
+ }
50
+ // Check for directory collision (another workspace pointing to same dir)
51
+ const byDir = await this.workspaceRepo.findByDirectory(data.directory);
52
+ if (byDir !== null) {
53
+ return fail(`Directory ${data.directory.value} is already registered as workspace "${byDir.id.value}"`);
54
+ }
55
+ // Create new workspace
56
+ const workspace = Workspace.register(data);
57
+ await this.workspaceRepo.save(workspace);
58
+ return ok(workspace);
59
+ }
60
+ /**
61
+ * Registers a workspace with minimal data.
62
+ * Convenience method for auto-registration during plugin boot.
63
+ */
64
+ async autoRegister(workspaceId, directory) {
65
+ const id = WorkspaceId.create(workspaceId);
66
+ const dir = ProjectDirectory.create(directory);
67
+ return this.registerOrUpdate({
68
+ id,
69
+ name: workspaceId,
70
+ directory: dir,
71
+ });
72
+ }
73
+ // ── Queries ──────────────────────────────────────────────────────
74
+ async getWorkspace(id) {
75
+ const workspaceId = WorkspaceId.create(id);
76
+ const workspace = await this.workspaceRepo.findById(workspaceId);
77
+ if (workspace === null) {
78
+ return fail(`Workspace "${id}" not found`);
79
+ }
80
+ return ok(workspace);
81
+ }
82
+ async getWorkspaceByDirectory(directory) {
83
+ const dir = ProjectDirectory.create(directory);
84
+ const workspace = await this.workspaceRepo.findByDirectory(dir);
85
+ if (workspace === null) {
86
+ return fail(`No workspace registered for directory "${directory}"`);
87
+ }
88
+ return ok(workspace);
89
+ }
90
+ async listWorkspaces() {
91
+ return this.workspaceRepo.findAll();
92
+ }
93
+ async listActiveWorkspaces() {
94
+ return this.workspaceRepo.findByStatus("active");
95
+ }
96
+ // ── Updates ──────────────────────────────────────────────────────
97
+ async updateWorkspaceLanguage(id, language) {
98
+ const result = await this.getWorkspace(id);
99
+ if (!result.success) {
100
+ return result;
101
+ }
102
+ result.data.updatePrimaryLanguage(language);
103
+ await this.workspaceRepo.save(result.data);
104
+ return ok(result.data);
105
+ }
106
+ async updateWorkspaceTechStack(id, techStack) {
107
+ const result = await this.getWorkspace(id);
108
+ if (!result.success) {
109
+ return result;
110
+ }
111
+ result.data.updateTechStack(TechStack.create(techStack));
112
+ await this.workspaceRepo.save(result.data);
113
+ return ok(result.data);
114
+ }
115
+ async updateWorkspaceDescription(id, description) {
116
+ const result = await this.getWorkspace(id);
117
+ if (!result.success) {
118
+ return result;
119
+ }
120
+ result.data.updateDescription(description);
121
+ await this.workspaceRepo.save(result.data);
122
+ return ok(result.data);
123
+ }
124
+ async archiveWorkspace(id) {
125
+ const result = await this.getWorkspace(id);
126
+ if (!result.success) {
127
+ return result;
128
+ }
129
+ try {
130
+ result.data.archive();
131
+ }
132
+ catch (e) {
133
+ return fail(e.message);
134
+ }
135
+ await this.workspaceRepo.save(result.data);
136
+ return ok(result.data);
137
+ }
138
+ async activateWorkspace(id) {
139
+ const result = await this.getWorkspace(id);
140
+ if (!result.success) {
141
+ return result;
142
+ }
143
+ try {
144
+ result.data.activate();
145
+ }
146
+ catch (e) {
147
+ return fail(e.message);
148
+ }
149
+ await this.workspaceRepo.save(result.data);
150
+ return ok(result.data);
151
+ }
152
+ async markAsTemplate(id) {
153
+ const result = await this.getWorkspace(id);
154
+ if (!result.success) {
155
+ return result;
156
+ }
157
+ result.data.markAsTemplate();
158
+ await this.workspaceRepo.save(result.data);
159
+ return ok(result.data);
160
+ }
161
+ // ── Metadata ──────────────────────────────────────────────────────
162
+ async setWorkspaceMetadata(id, key, value) {
163
+ const result = await this.getWorkspace(id);
164
+ if (!result.success) {
165
+ return result;
166
+ }
167
+ result.data.setMetadata(key, value);
168
+ await this.workspaceRepo.save(result.data);
169
+ return ok(result.data);
170
+ }
171
+ async removeWorkspaceMetadata(id, key) {
172
+ const result = await this.getWorkspace(id);
173
+ if (!result.success) {
174
+ return result;
175
+ }
176
+ result.data.removeMetadata(key);
177
+ await this.workspaceRepo.save(result.data);
178
+ return ok(result.data);
179
+ }
180
+ // ── Dependencies ─────────────────────────────────────────────────
181
+ async addDependency(sourceId, targetId, dependencyType, description) {
182
+ const source = WorkspaceId.create(sourceId);
183
+ const target = WorkspaceId.create(targetId);
184
+ // Validate both workspaces exist
185
+ const sourceExists = await this.workspaceRepo.exists(source);
186
+ if (!sourceExists) {
187
+ return fail(`Source workspace "${sourceId}" not found`);
188
+ }
189
+ const targetExists = await this.workspaceRepo.exists(target);
190
+ if (!targetExists) {
191
+ return fail(`Target workspace "${targetId}" not found`);
192
+ }
193
+ // Check for duplicate
194
+ const exists = await this.dependencyRepo.dependencyExists(source, target);
195
+ if (exists) {
196
+ return fail(`Dependency from "${sourceId}" to "${targetId}" already exists`);
197
+ }
198
+ // Detect simple circular dependency (A→B and B→A)
199
+ const reverse = await this.dependencyRepo.dependencyExists(target, source);
200
+ if (reverse) {
201
+ return fail(`Circular dependency detected: "${targetId}" already depends on "${sourceId}"`);
202
+ }
203
+ const dependency = createWorkspaceDependency({
204
+ sourceId: source,
205
+ targetId: target,
206
+ dependencyType,
207
+ ...(description !== undefined ? { description } : {}),
208
+ });
209
+ await this.dependencyRepo.addDependency(dependency);
210
+ return ok(dependency);
211
+ }
212
+ async removeDependency(sourceId, targetId) {
213
+ const source = WorkspaceId.create(sourceId);
214
+ const target = WorkspaceId.create(targetId);
215
+ const exists = await this.dependencyRepo.dependencyExists(source, target);
216
+ if (!exists) {
217
+ return fail(`No dependency from "${sourceId}" to "${targetId}" exists`);
218
+ }
219
+ await this.dependencyRepo.removeDependency(source, target);
220
+ return ok(undefined);
221
+ }
222
+ async getDependencies(id) {
223
+ const workspaceId = WorkspaceId.create(id);
224
+ return this.dependencyRepo.getDependencies(workspaceId);
225
+ }
226
+ async getDependents(id) {
227
+ const workspaceId = WorkspaceId.create(id);
228
+ return this.dependencyRepo.getDependents(workspaceId);
229
+ }
230
+ // ── Deletion ─────────────────────────────────────────────────────
231
+ /**
232
+ * Unregisters a workspace. Removes the workspace and all its dependencies.
233
+ * Does NOT delete project files on disk.
234
+ */
235
+ async unregister(id) {
236
+ const workspaceId = WorkspaceId.create(id);
237
+ const exists = await this.workspaceRepo.exists(workspaceId);
238
+ if (!exists) {
239
+ return fail(`Workspace "${id}" not found`);
240
+ }
241
+ // Remove all dependencies first (both as source and target)
242
+ await this.dependencyRepo.removeAllForWorkspace(workspaceId);
243
+ await this.workspaceRepo.delete(workspaceId);
244
+ return ok(undefined);
245
+ }
246
+ // ── Render ───────────────────────────────────────────────────────
247
+ /**
248
+ * Renders a workspace summary as a readable string.
249
+ * Used by tools to return formatted output.
250
+ */
251
+ renderWorkspaceSummary(workspace, dependencies, dependents) {
252
+ const lines = [
253
+ `Workspace: ${workspace.id.value}`,
254
+ `Name: ${workspace.name}`,
255
+ `Directory: ${workspace.directory.value}`,
256
+ `Status: ${workspace.status}`,
257
+ `Language: ${workspace.primaryLanguage}`,
258
+ ];
259
+ if (workspace.description !== undefined) {
260
+ lines.push(`Description: ${workspace.description}`);
261
+ }
262
+ if (!workspace.techStack.isEmpty) {
263
+ lines.push(`Tech Stack: ${workspace.techStack.toArray().join(", ")}`);
264
+ }
265
+ if (dependencies.length > 0) {
266
+ lines.push("", "Dependencies (depends on):");
267
+ for (const dep of dependencies) {
268
+ const desc = dep.description !== undefined ? ` — ${dep.description}` : "";
269
+ lines.push(` → ${dep.targetId.value} [${dep.dependencyType}]${desc}`);
270
+ }
271
+ }
272
+ if (dependents.length > 0) {
273
+ lines.push("", "Dependents (depended on by):");
274
+ for (const dep of dependents) {
275
+ const desc = dep.description !== undefined ? ` — ${dep.description}` : "";
276
+ lines.push(` ← ${dep.sourceId.value} [${dep.dependencyType}]${desc}`);
277
+ }
278
+ }
279
+ lines.push("", `Created: ${workspace.createdAt.toISO()}`, `Updated: ${workspace.updatedAt.toISO()}`);
280
+ return lines.join("\n");
281
+ }
282
+ }
283
+ //# sourceMappingURL=services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/domain/workspace-registry/services.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Workspace Registry - Value Objects
3
+ *
4
+ * Immutable value objects for the workspace registry bounded context.
5
+ * Defines project metadata, dependencies, and configuration types.
6
+ *
7
+ * DDD: Value Objects (no identity, compared by value)
8
+ * SOLID: SRP - value definitions and validation only
9
+ */
10
+ import { WorkspaceId, Timestamp } from "../shared/value-objects.js";
11
+ /** Validated absolute filesystem path to a project root. */
12
+ export declare class ProjectDirectory {
13
+ readonly value: string;
14
+ private constructor();
15
+ static create(path: string): ProjectDirectory;
16
+ static from(value: string): ProjectDirectory;
17
+ equals(other: ProjectDirectory): boolean;
18
+ toString(): string;
19
+ }
20
+ /**
21
+ * Primary programming language of a project.
22
+ * Uses a constrained set for consistent detection and base-image mapping.
23
+ */
24
+ export declare const PRIMARY_LANGUAGES: readonly ["typescript", "javascript", "python", "swift", "java", "kotlin", "csharp", "go", "rust", "c", "cpp", "dart", "ruby", "php", "elixir", "unknown"];
25
+ export type PrimaryLanguage = (typeof PRIMARY_LANGUAGES)[number];
26
+ export declare function isValidPrimaryLanguage(value: string): value is PrimaryLanguage;
27
+ export declare function parsePrimaryLanguage(value: string): PrimaryLanguage;
28
+ /**
29
+ * A single technology in the project stack.
30
+ * Normalized to lowercase, trimmed.
31
+ */
32
+ export declare class TechStackItem {
33
+ readonly value: string;
34
+ private constructor();
35
+ static create(name: string): TechStackItem;
36
+ static from(value: string): TechStackItem;
37
+ equals(other: TechStackItem): boolean;
38
+ toString(): string;
39
+ }
40
+ /** Immutable ordered collection of tech stack items. */
41
+ export declare class TechStack {
42
+ readonly items: readonly TechStackItem[];
43
+ private constructor();
44
+ static create(names: readonly string[]): TechStack;
45
+ static empty(): TechStack;
46
+ static fromItems(items: readonly TechStackItem[]): TechStack;
47
+ get size(): number;
48
+ get isEmpty(): boolean;
49
+ has(name: string): boolean;
50
+ add(name: string): TechStack;
51
+ remove(name: string): TechStack;
52
+ toArray(): readonly string[];
53
+ toJSON(): string;
54
+ static fromJSON(json: string): TechStack;
55
+ equals(other: TechStack): boolean;
56
+ }
57
+ /** Classification of dependency between workspaces. */
58
+ export declare const DEPENDENCY_TYPES: readonly ["api-consumer", "api-provider", "shared-lib", "monorepo-package", "data-source", "deployment-target", "other"];
59
+ export type DependencyType = (typeof DEPENDENCY_TYPES)[number];
60
+ export declare function isValidDependencyType(value: string): value is DependencyType;
61
+ /**
62
+ * Represents a directional dependency between two workspaces.
63
+ * Source workspace depends on target workspace.
64
+ */
65
+ export interface WorkspaceDependency {
66
+ readonly sourceId: WorkspaceId;
67
+ readonly targetId: WorkspaceId;
68
+ readonly dependencyType: DependencyType;
69
+ readonly description: string | undefined;
70
+ }
71
+ export declare function createWorkspaceDependency(params: {
72
+ readonly sourceId: WorkspaceId;
73
+ readonly targetId: WorkspaceId;
74
+ readonly dependencyType: DependencyType;
75
+ readonly description?: string;
76
+ }): WorkspaceDependency;
77
+ export declare const WORKSPACE_STATUSES: readonly ["active", "archived", "template"];
78
+ export type WorkspaceStatus = (typeof WORKSPACE_STATUSES)[number];
79
+ export declare function isValidWorkspaceStatus(value: string): value is WorkspaceStatus;
80
+ /**
81
+ * Data required to register a new workspace.
82
+ * Used by the domain service to create Workspace entities.
83
+ */
84
+ export interface WorkspaceRegistrationData {
85
+ readonly id: WorkspaceId;
86
+ readonly name: string;
87
+ readonly directory: ProjectDirectory;
88
+ readonly description?: string;
89
+ readonly primaryLanguage?: PrimaryLanguage;
90
+ readonly techStack?: TechStack;
91
+ readonly metadata?: Record<string, unknown>;
92
+ }
93
+ /**
94
+ * Data required to reconstitute a Workspace from persistence.
95
+ */
96
+ export interface WorkspaceData {
97
+ readonly id: WorkspaceId;
98
+ readonly name: string;
99
+ readonly directory: ProjectDirectory;
100
+ readonly description: string | undefined;
101
+ readonly primaryLanguage: PrimaryLanguage;
102
+ readonly techStack: TechStack;
103
+ readonly status: WorkspaceStatus;
104
+ readonly metadata: Record<string, unknown>;
105
+ readonly createdAt: Timestamp;
106
+ readonly updatedAt: Timestamp;
107
+ }
108
+ /**
109
+ * Resolves the JARVIS_HOME directory.
110
+ * Defaults to ~/.jarvis, overridable via JARVIS_HOME env var.
111
+ */
112
+ export declare function resolveJarvisHome(): string;
113
+ //# sourceMappingURL=value-objects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-objects.d.ts","sourceRoot":"","sources":["../../../src/domain/workspace-registry/value-objects.ts"],"names":[],"mappings":"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"}