@mc1global/opencode-jarvis 0.1.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/dist/application/agent-registry/dtos.d.ts +66 -0
  2. package/dist/application/agent-registry/dtos.d.ts.map +1 -0
  3. package/dist/application/agent-registry/dtos.js +11 -0
  4. package/dist/application/agent-registry/dtos.js.map +1 -0
  5. package/dist/application/agent-registry/use-cases.d.ts +39 -0
  6. package/dist/application/agent-registry/use-cases.d.ts.map +1 -0
  7. package/dist/application/agent-registry/use-cases.js +222 -0
  8. package/dist/application/agent-registry/use-cases.js.map +1 -0
  9. package/dist/application/azure-sync/dtos.d.ts +210 -0
  10. package/dist/application/azure-sync/dtos.d.ts.map +1 -0
  11. package/dist/application/azure-sync/dtos.js +11 -0
  12. package/dist/application/azure-sync/dtos.js.map +1 -0
  13. package/dist/application/azure-sync/field-builders.d.ts +54 -0
  14. package/dist/application/azure-sync/field-builders.d.ts.map +1 -0
  15. package/dist/application/azure-sync/field-builders.js +166 -0
  16. package/dist/application/azure-sync/field-builders.js.map +1 -0
  17. package/dist/application/azure-sync/index.d.ts +16 -0
  18. package/dist/application/azure-sync/index.d.ts.map +1 -0
  19. package/dist/application/azure-sync/index.js +10 -0
  20. package/dist/application/azure-sync/index.js.map +1 -0
  21. package/dist/application/azure-sync/pr-use-cases.d.ts +39 -0
  22. package/dist/application/azure-sync/pr-use-cases.d.ts.map +1 -0
  23. package/dist/application/azure-sync/pr-use-cases.js +192 -0
  24. package/dist/application/azure-sync/pr-use-cases.js.map +1 -0
  25. package/dist/application/azure-sync/pull-use-cases.d.ts +43 -0
  26. package/dist/application/azure-sync/pull-use-cases.d.ts.map +1 -0
  27. package/dist/application/azure-sync/pull-use-cases.js +322 -0
  28. package/dist/application/azure-sync/pull-use-cases.js.map +1 -0
  29. package/dist/application/azure-sync/push-use-cases.d.ts +53 -0
  30. package/dist/application/azure-sync/push-use-cases.d.ts.map +1 -0
  31. package/dist/application/azure-sync/push-use-cases.js +341 -0
  32. package/dist/application/azure-sync/push-use-cases.js.map +1 -0
  33. package/dist/application/azure-sync/reverse-field-builder.d.ts +52 -0
  34. package/dist/application/azure-sync/reverse-field-builder.d.ts.map +1 -0
  35. package/dist/application/azure-sync/reverse-field-builder.js +130 -0
  36. package/dist/application/azure-sync/reverse-field-builder.js.map +1 -0
  37. package/dist/application/azure-sync/task-push-use-cases.d.ts +68 -0
  38. package/dist/application/azure-sync/task-push-use-cases.d.ts.map +1 -0
  39. package/dist/application/azure-sync/task-push-use-cases.js +162 -0
  40. package/dist/application/azure-sync/task-push-use-cases.js.map +1 -0
  41. package/dist/application/config/config-service.d.ts +64 -0
  42. package/dist/application/config/config-service.d.ts.map +1 -0
  43. package/dist/application/config/config-service.js +110 -0
  44. package/dist/application/config/config-service.js.map +1 -0
  45. package/dist/application/config/index.d.ts +5 -0
  46. package/dist/application/config/index.d.ts.map +1 -0
  47. package/dist/application/config/index.js +5 -0
  48. package/dist/application/config/index.js.map +1 -0
  49. package/dist/application/kanban/board-use-cases.d.ts.map +1 -1
  50. package/dist/application/kanban/board-use-cases.js +14 -0
  51. package/dist/application/kanban/board-use-cases.js.map +1 -1
  52. package/dist/application/kanban/card-use-cases.d.ts +21 -2
  53. package/dist/application/kanban/card-use-cases.d.ts.map +1 -1
  54. package/dist/application/kanban/card-use-cases.js +180 -1
  55. package/dist/application/kanban/card-use-cases.js.map +1 -1
  56. package/dist/application/kanban/dtos.d.ts +59 -0
  57. package/dist/application/kanban/dtos.d.ts.map +1 -1
  58. package/dist/application/mcp/index.d.ts +10 -0
  59. package/dist/application/mcp/index.d.ts.map +1 -0
  60. package/dist/application/mcp/index.js +8 -0
  61. package/dist/application/mcp/index.js.map +1 -0
  62. package/dist/application/mcp/middleware.d.ts +91 -0
  63. package/dist/application/mcp/middleware.d.ts.map +1 -0
  64. package/dist/application/mcp/middleware.js +84 -0
  65. package/dist/application/mcp/middleware.js.map +1 -0
  66. package/dist/application/mcp/tool-adapter.d.ts +72 -0
  67. package/dist/application/mcp/tool-adapter.d.ts.map +1 -0
  68. package/dist/application/mcp/tool-adapter.js +132 -0
  69. package/dist/application/mcp/tool-adapter.js.map +1 -0
  70. package/dist/application/pipeline/dtos.d.ts +135 -0
  71. package/dist/application/pipeline/dtos.d.ts.map +1 -0
  72. package/dist/application/pipeline/dtos.js +11 -0
  73. package/dist/application/pipeline/dtos.js.map +1 -0
  74. package/dist/application/pipeline/index.d.ts +8 -0
  75. package/dist/application/pipeline/index.d.ts.map +1 -0
  76. package/dist/application/pipeline/index.js +7 -0
  77. package/dist/application/pipeline/index.js.map +1 -0
  78. package/dist/application/pipeline/use-cases.d.ts +67 -0
  79. package/dist/application/pipeline/use-cases.d.ts.map +1 -0
  80. package/dist/application/pipeline/use-cases.js +413 -0
  81. package/dist/application/pipeline/use-cases.js.map +1 -0
  82. package/dist/application/rag/use-cases.d.ts +3 -0
  83. package/dist/application/rag/use-cases.d.ts.map +1 -1
  84. package/dist/application/rag/use-cases.js +112 -34
  85. package/dist/application/rag/use-cases.js.map +1 -1
  86. package/dist/domain/agent-registry/entities.d.ts +68 -0
  87. package/dist/domain/agent-registry/entities.d.ts.map +1 -0
  88. package/dist/domain/agent-registry/entities.js +177 -0
  89. package/dist/domain/agent-registry/entities.js.map +1 -0
  90. package/dist/domain/agent-registry/repositories.d.ts +56 -0
  91. package/dist/domain/agent-registry/repositories.d.ts.map +1 -0
  92. package/dist/domain/agent-registry/repositories.js +12 -0
  93. package/dist/domain/agent-registry/repositories.js.map +1 -0
  94. package/dist/domain/agent-registry/services.d.ts +87 -0
  95. package/dist/domain/agent-registry/services.d.ts.map +1 -0
  96. package/dist/domain/agent-registry/services.js +188 -0
  97. package/dist/domain/agent-registry/services.js.map +1 -0
  98. package/dist/domain/agent-registry/value-objects.d.ts +145 -0
  99. package/dist/domain/agent-registry/value-objects.d.ts.map +1 -0
  100. package/dist/domain/agent-registry/value-objects.js +339 -0
  101. package/dist/domain/agent-registry/value-objects.js.map +1 -0
  102. package/dist/domain/azure-sync/entities.d.ts +165 -0
  103. package/dist/domain/azure-sync/entities.d.ts.map +1 -0
  104. package/dist/domain/azure-sync/entities.js +203 -0
  105. package/dist/domain/azure-sync/entities.js.map +1 -0
  106. package/dist/domain/azure-sync/index.d.ts +16 -0
  107. package/dist/domain/azure-sync/index.d.ts.map +1 -0
  108. package/dist/domain/azure-sync/index.js +14 -0
  109. package/dist/domain/azure-sync/index.js.map +1 -0
  110. package/dist/domain/azure-sync/ports.d.ts +117 -0
  111. package/dist/domain/azure-sync/ports.d.ts.map +1 -0
  112. package/dist/domain/azure-sync/ports.js +13 -0
  113. package/dist/domain/azure-sync/ports.js.map +1 -0
  114. package/dist/domain/azure-sync/repositories.d.ts +53 -0
  115. package/dist/domain/azure-sync/repositories.d.ts.map +1 -0
  116. package/dist/domain/azure-sync/repositories.js +11 -0
  117. package/dist/domain/azure-sync/repositories.js.map +1 -0
  118. package/dist/domain/azure-sync/services.d.ts +107 -0
  119. package/dist/domain/azure-sync/services.d.ts.map +1 -0
  120. package/dist/domain/azure-sync/services.js +316 -0
  121. package/dist/domain/azure-sync/services.js.map +1 -0
  122. package/dist/domain/azure-sync/value-objects.d.ts +129 -0
  123. package/dist/domain/azure-sync/value-objects.d.ts.map +1 -0
  124. package/dist/domain/azure-sync/value-objects.js +343 -0
  125. package/dist/domain/azure-sync/value-objects.js.map +1 -0
  126. package/dist/domain/config/index.d.ts +9 -0
  127. package/dist/domain/config/index.d.ts.map +1 -0
  128. package/dist/domain/config/index.js +7 -0
  129. package/dist/domain/config/index.js.map +1 -0
  130. package/dist/domain/config/repositories.d.ts +36 -0
  131. package/dist/domain/config/repositories.d.ts.map +1 -0
  132. package/dist/domain/config/repositories.js +12 -0
  133. package/dist/domain/config/repositories.js.map +1 -0
  134. package/dist/domain/config/value-objects.d.ts +112 -0
  135. package/dist/domain/config/value-objects.d.ts.map +1 -0
  136. package/dist/domain/config/value-objects.js +93 -0
  137. package/dist/domain/config/value-objects.js.map +1 -0
  138. package/dist/domain/governance/policies.d.ts.map +1 -1
  139. package/dist/domain/governance/policies.js +70 -0
  140. package/dist/domain/governance/policies.js.map +1 -1
  141. package/dist/domain/kanban/entities.d.ts +67 -15
  142. package/dist/domain/kanban/entities.d.ts.map +1 -1
  143. package/dist/domain/kanban/entities.js +177 -14
  144. package/dist/domain/kanban/entities.js.map +1 -1
  145. package/dist/domain/kanban/grooming.d.ts +27 -7
  146. package/dist/domain/kanban/grooming.d.ts.map +1 -1
  147. package/dist/domain/kanban/grooming.js +50 -12
  148. package/dist/domain/kanban/grooming.js.map +1 -1
  149. package/dist/domain/kanban/services.d.ts +16 -2
  150. package/dist/domain/kanban/services.d.ts.map +1 -1
  151. package/dist/domain/kanban/services.js +29 -2
  152. package/dist/domain/kanban/services.js.map +1 -1
  153. package/dist/domain/kanban/value-objects.d.ts +48 -0
  154. package/dist/domain/kanban/value-objects.d.ts.map +1 -1
  155. package/dist/domain/kanban/value-objects.js +53 -0
  156. package/dist/domain/kanban/value-objects.js.map +1 -1
  157. package/dist/domain/pipeline/gate.d.ts +75 -0
  158. package/dist/domain/pipeline/gate.d.ts.map +1 -0
  159. package/dist/domain/pipeline/gate.js +158 -0
  160. package/dist/domain/pipeline/gate.js.map +1 -0
  161. package/dist/domain/pipeline/index.d.ts +13 -0
  162. package/dist/domain/pipeline/index.d.ts.map +1 -0
  163. package/dist/domain/pipeline/index.js +14 -0
  164. package/dist/domain/pipeline/index.js.map +1 -0
  165. package/dist/domain/pipeline/pipeline.d.ts +99 -0
  166. package/dist/domain/pipeline/pipeline.d.ts.map +1 -0
  167. package/dist/domain/pipeline/pipeline.js +257 -0
  168. package/dist/domain/pipeline/pipeline.js.map +1 -0
  169. package/dist/domain/pipeline/ports.d.ts +120 -0
  170. package/dist/domain/pipeline/ports.d.ts.map +1 -0
  171. package/dist/domain/pipeline/ports.js +12 -0
  172. package/dist/domain/pipeline/ports.js.map +1 -0
  173. package/dist/domain/pipeline/repositories.d.ts +66 -0
  174. package/dist/domain/pipeline/repositories.d.ts.map +1 -0
  175. package/dist/domain/pipeline/repositories.js +11 -0
  176. package/dist/domain/pipeline/repositories.js.map +1 -0
  177. package/dist/domain/pipeline/services.d.ts +77 -0
  178. package/dist/domain/pipeline/services.d.ts.map +1 -0
  179. package/dist/domain/pipeline/services.js +156 -0
  180. package/dist/domain/pipeline/services.js.map +1 -0
  181. package/dist/domain/pipeline/value-objects.d.ts +117 -0
  182. package/dist/domain/pipeline/value-objects.d.ts.map +1 -0
  183. package/dist/domain/pipeline/value-objects.js +313 -0
  184. package/dist/domain/pipeline/value-objects.js.map +1 -0
  185. package/dist/domain/rag/value-objects.d.ts +9 -2
  186. package/dist/domain/rag/value-objects.d.ts.map +1 -1
  187. package/dist/domain/rag/value-objects.js +8 -2
  188. package/dist/domain/rag/value-objects.js.map +1 -1
  189. package/dist/hooks/event-handlers.d.ts +3 -0
  190. package/dist/hooks/event-handlers.d.ts.map +1 -1
  191. package/dist/hooks/event-handlers.js +4 -2
  192. package/dist/hooks/event-handlers.js.map +1 -1
  193. package/dist/hooks/logger.d.ts +46 -0
  194. package/dist/hooks/logger.d.ts.map +1 -0
  195. package/dist/hooks/logger.js +79 -0
  196. package/dist/hooks/logger.js.map +1 -0
  197. package/dist/index.d.ts.map +1 -1
  198. package/dist/index.js +152 -108
  199. package/dist/index.js.map +1 -1
  200. package/dist/infrastructure/agent-registry/agent-profile-repository.d.ts +29 -0
  201. package/dist/infrastructure/agent-registry/agent-profile-repository.d.ts.map +1 -0
  202. package/dist/infrastructure/agent-registry/agent-profile-repository.js +109 -0
  203. package/dist/infrastructure/agent-registry/agent-profile-repository.js.map +1 -0
  204. package/dist/infrastructure/agent-registry/agent-session-adapter.d.ts +28 -0
  205. package/dist/infrastructure/agent-registry/agent-session-adapter.d.ts.map +1 -0
  206. package/dist/infrastructure/agent-registry/agent-session-adapter.js +61 -0
  207. package/dist/infrastructure/agent-registry/agent-session-adapter.js.map +1 -0
  208. package/dist/infrastructure/agent-registry/built-in-profiles.d.ts +19 -0
  209. package/dist/infrastructure/agent-registry/built-in-profiles.d.ts.map +1 -0
  210. package/dist/infrastructure/agent-registry/built-in-profiles.js +210 -0
  211. package/dist/infrastructure/agent-registry/built-in-profiles.js.map +1 -0
  212. package/dist/infrastructure/azure-sync/azure-auth.d.ts +40 -0
  213. package/dist/infrastructure/azure-sync/azure-auth.d.ts.map +1 -0
  214. package/dist/infrastructure/azure-sync/azure-auth.js +94 -0
  215. package/dist/infrastructure/azure-sync/azure-auth.js.map +1 -0
  216. package/dist/infrastructure/azure-sync/azure-devops-client.d.ts +43 -0
  217. package/dist/infrastructure/azure-sync/azure-devops-client.d.ts.map +1 -0
  218. package/dist/infrastructure/azure-sync/azure-devops-client.js +296 -0
  219. package/dist/infrastructure/azure-sync/azure-devops-client.js.map +1 -0
  220. package/dist/infrastructure/azure-sync/index.d.ts +9 -0
  221. package/dist/infrastructure/azure-sync/index.d.ts.map +1 -0
  222. package/dist/infrastructure/azure-sync/index.js +12 -0
  223. package/dist/infrastructure/azure-sync/index.js.map +1 -0
  224. package/dist/infrastructure/azure-sync/sqlite-sync-repository.d.ts +39 -0
  225. package/dist/infrastructure/azure-sync/sqlite-sync-repository.d.ts.map +1 -0
  226. package/dist/infrastructure/azure-sync/sqlite-sync-repository.js +202 -0
  227. package/dist/infrastructure/azure-sync/sqlite-sync-repository.js.map +1 -0
  228. package/dist/infrastructure/config/index.d.ts +5 -0
  229. package/dist/infrastructure/config/index.d.ts.map +1 -0
  230. package/dist/infrastructure/config/index.js +5 -0
  231. package/dist/infrastructure/config/index.js.map +1 -0
  232. package/dist/infrastructure/config/yaml-config-repository.d.ts +22 -0
  233. package/dist/infrastructure/config/yaml-config-repository.d.ts.map +1 -0
  234. package/dist/infrastructure/config/yaml-config-repository.js +68 -0
  235. package/dist/infrastructure/config/yaml-config-repository.js.map +1 -0
  236. package/dist/infrastructure/domain-map/llm-prompt-factory.d.ts +21 -0
  237. package/dist/infrastructure/domain-map/llm-prompt-factory.d.ts.map +1 -0
  238. package/dist/infrastructure/domain-map/llm-prompt-factory.js +49 -0
  239. package/dist/infrastructure/domain-map/llm-prompt-factory.js.map +1 -0
  240. package/dist/infrastructure/kanban/card-repository.d.ts +6 -0
  241. package/dist/infrastructure/kanban/card-repository.d.ts.map +1 -1
  242. package/dist/infrastructure/kanban/card-repository.js +79 -7
  243. package/dist/infrastructure/kanban/card-repository.js.map +1 -1
  244. package/dist/infrastructure/pipeline/dagger-adapter.d.ts +50 -0
  245. package/dist/infrastructure/pipeline/dagger-adapter.d.ts.map +1 -0
  246. package/dist/infrastructure/pipeline/dagger-adapter.js +153 -0
  247. package/dist/infrastructure/pipeline/dagger-adapter.js.map +1 -0
  248. package/dist/infrastructure/pipeline/dagger-scaffold-generator.d.ts +35 -0
  249. package/dist/infrastructure/pipeline/dagger-scaffold-generator.d.ts.map +1 -0
  250. package/dist/infrastructure/pipeline/dagger-scaffold-generator.js +132 -0
  251. package/dist/infrastructure/pipeline/dagger-scaffold-generator.js.map +1 -0
  252. package/dist/infrastructure/pipeline/index.d.ts +20 -0
  253. package/dist/infrastructure/pipeline/index.d.ts.map +1 -0
  254. package/dist/infrastructure/pipeline/index.js +19 -0
  255. package/dist/infrastructure/pipeline/index.js.map +1 -0
  256. package/dist/infrastructure/pipeline/pipeline-template-registry.d.ts +23 -0
  257. package/dist/infrastructure/pipeline/pipeline-template-registry.d.ts.map +1 -0
  258. package/dist/infrastructure/pipeline/pipeline-template-registry.js +63 -0
  259. package/dist/infrastructure/pipeline/pipeline-template-registry.js.map +1 -0
  260. package/dist/infrastructure/pipeline/scaffold-templates-extra.d.ts +17 -0
  261. package/dist/infrastructure/pipeline/scaffold-templates-extra.d.ts.map +1 -0
  262. package/dist/infrastructure/pipeline/scaffold-templates-extra.js +467 -0
  263. package/dist/infrastructure/pipeline/scaffold-templates-extra.js.map +1 -0
  264. package/dist/infrastructure/pipeline/scaffold-templates.d.ts +23 -0
  265. package/dist/infrastructure/pipeline/scaffold-templates.d.ts.map +1 -0
  266. package/dist/infrastructure/pipeline/scaffold-templates.js +476 -0
  267. package/dist/infrastructure/pipeline/scaffold-templates.js.map +1 -0
  268. package/dist/infrastructure/pipeline/sqlite-pipeline-repository.d.ts +32 -0
  269. package/dist/infrastructure/pipeline/sqlite-pipeline-repository.d.ts.map +1 -0
  270. package/dist/infrastructure/pipeline/sqlite-pipeline-repository.js +197 -0
  271. package/dist/infrastructure/pipeline/sqlite-pipeline-repository.js.map +1 -0
  272. package/dist/mcp-server.d.ts +3 -0
  273. package/dist/mcp-server.d.ts.map +1 -0
  274. package/dist/mcp-server.js +300 -0
  275. package/dist/mcp-server.js.map +1 -0
  276. package/dist/tools/agent-registry-tools.d.ts +11 -0
  277. package/dist/tools/agent-registry-tools.d.ts.map +1 -0
  278. package/dist/tools/agent-registry-tools.js +208 -0
  279. package/dist/tools/agent-registry-tools.js.map +1 -0
  280. package/dist/tools/azure-sync-tools.d.ts +15 -0
  281. package/dist/tools/azure-sync-tools.d.ts.map +1 -0
  282. package/dist/tools/azure-sync-tools.js +332 -0
  283. package/dist/tools/azure-sync-tools.js.map +1 -0
  284. package/dist/tools/kanban-card-tools.d.ts.map +1 -1
  285. package/dist/tools/kanban-card-tools.js +41 -16
  286. package/dist/tools/kanban-card-tools.js.map +1 -1
  287. package/dist/tools/kanban-gate-tools.d.ts +7 -0
  288. package/dist/tools/kanban-gate-tools.d.ts.map +1 -0
  289. package/dist/tools/kanban-gate-tools.js +106 -0
  290. package/dist/tools/kanban-gate-tools.js.map +1 -0
  291. package/dist/tools/kanban-grooming-tools.d.ts +7 -0
  292. package/dist/tools/kanban-grooming-tools.d.ts.map +1 -0
  293. package/dist/tools/kanban-grooming-tools.js +180 -0
  294. package/dist/tools/kanban-grooming-tools.js.map +1 -0
  295. package/dist/tools/pipeline-tools.d.ts +15 -0
  296. package/dist/tools/pipeline-tools.d.ts.map +1 -0
  297. package/dist/tools/pipeline-tools.js +424 -0
  298. package/dist/tools/pipeline-tools.js.map +1 -0
  299. package/package.json +7 -2
package/dist/index.js CHANGED
@@ -1,74 +1,64 @@
1
1
  import { mkdirSync } from "node:fs";
2
2
  import { basename, join } from "node:path";
3
- // Shared Domain
4
3
  import { WorkspaceId } from "./domain/shared/value-objects.js";
5
- // Infrastructure
6
4
  import { SqliteAdapter } from "./infrastructure/database/sqlite-adapter.js";
7
- // Context Memory Repositories
8
5
  import { SqliteSessionRepository } from "./infrastructure/context-memory/session-repository.js";
9
6
  import { SqliteTodoRepository } from "./infrastructure/context-memory/todo-repository.js";
10
7
  import { SqliteNoteRepository } from "./infrastructure/context-memory/note-repository.js";
11
8
  import { createSimpleSearchRepo } from "./infrastructure/context-memory/search-repository.js";
12
- // Kanban Repositories
13
9
  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
10
+ import { SqliteSprintRepository, SqliteEpicRepository } from "./infrastructure/kanban/sprint-repository.js";
11
+ import { SessionDomainService, TodoDomainService, NoteDomainService, ContextSearchService } from "./domain/context-memory/services.js";
18
12
  import { CardDomainService } from "./domain/kanban/services.js";
19
- // Governance Domain
20
13
  import { DEFAULT_POLICIES } from "./domain/governance/policies.js";
21
14
  import { PolicyValidationService } from "./domain/governance/services.js";
22
- // Context Memory Application
23
15
  import { SessionUseCases } from "./application/context-memory/session-use-cases.js";
24
16
  import { TodoUseCases } from "./application/context-memory/todo-use-cases.js";
25
17
  import { NoteUseCases } from "./application/context-memory/note-use-cases.js";
26
- // Kanban Application
27
18
  import { CardUseCases } from "./application/kanban/card-use-cases.js";
28
- import { SprintUseCases, EpicUseCases, } from "./application/kanban/sprint-use-cases.js";
19
+ import { SprintUseCases, EpicUseCases } from "./application/kanban/sprint-use-cases.js";
29
20
  import { BoardUseCases } from "./application/kanban/board-use-cases.js";
30
- // Governance Application
31
21
  import { GovernanceUseCases } from "./application/governance/validation-use-cases.js";
32
- // Token Metrics
33
22
  import { SqliteTokenMetricsRepository } from "./infrastructure/token-metrics/token-metrics-repository.js";
34
23
  import { TokenMetricsUseCases } from "./application/token-metrics/tracking-use-cases.js";
35
- // Vault
36
24
  import { VaultFsAdapter } from "./infrastructure/vault/vault-fs-adapter.js";
37
25
  import { VaultUseCases } from "./application/vault/use-cases.js";
38
26
  import { VaultManager } from "./application/vault/vault-manager.js";
39
- // RAG Infrastructure (native TypeScript, replaces Python bridge)
40
27
  import { VectraVectorRepository } from "./infrastructure/rag/vectra-adapter.js";
41
28
  import { OllamaEmbeddingProvider } from "./infrastructure/rag/ollama-embeddings.js";
42
29
  import { LangchainTextSplitter } from "./infrastructure/rag/text-splitter.js";
43
30
  import { FileSystemDiscovery } from "./infrastructure/rag/file-discovery.js";
44
- import { DEFAULT_RAG_CONFIG } from "./domain/rag/value-objects.js";
45
- // RAG Application
46
31
  import { RagUseCases } from "./application/rag/use-cases.js";
47
32
  import { OracleUseCases } from "./application/rag/oracle-use-cases.js";
48
- // Domain Map Infrastructure
49
33
  import { LspClientAdapter } from "./infrastructure/domain-map/lsp-adapter.js";
50
34
  import { LlmSemanticAnalyzer } from "./infrastructure/domain-map/llm-analyzer.js";
51
35
  import { FileProjectScanner } from "./infrastructure/domain-map/project-scanner.js";
52
- // Domain Map Application
36
+ import { createLlmPromptFn } from "./infrastructure/domain-map/llm-prompt-factory.js";
37
+ import { SqliteAgentProfileRepository } from "./infrastructure/agent-registry/agent-profile-repository.js";
38
+ import { OpencodeAgentSessionAdapter } from "./infrastructure/agent-registry/agent-session-adapter.js";
39
+ import { BUILT_IN_PROFILES } from "./infrastructure/agent-registry/built-in-profiles.js";
40
+ import { AgentRegistryService } from "./domain/agent-registry/services.js";
41
+ import { AgentRegistryUseCases } from "./application/agent-registry/use-cases.js";
53
42
  import { DomainMapUseCases } from "./application/domain-map/use-cases.js";
54
- // Workspace Registry Infrastructure
55
43
  import { SqliteWorkspaceRegistryRepository } from "./infrastructure/workspace-registry/workspace-repository.js";
56
44
  import { SqliteWorkspaceDependencyRepository } from "./infrastructure/workspace-registry/dependency-repository.js";
57
- // Workspace Registry Domain
58
45
  import { WorkspaceRegistryService } from "./domain/workspace-registry/services.js";
59
46
  import { resolveJarvisHome } from "./domain/workspace-registry/value-objects.js";
60
- // Workspace Registry Application
61
47
  import { WorkspaceRegistryUseCases } from "./application/workspace-registry/use-cases.js";
62
- // Environment Infrastructure
63
48
  import { SqliteEnvironmentRepository } from "./infrastructure/environment/environment-repository.js";
64
49
  import { EnvironmentScannerAdapter } from "./infrastructure/environment/scanner-adapter.js";
65
- // Environment Domain
66
50
  import { EnvironmentDomainService } from "./domain/environment/services.js";
67
- // Environment Application
51
+ import { YamlConfigRepository } from "./infrastructure/config/yaml-config-repository.js";
52
+ import { ConfigService } from "./application/config/config-service.js";
53
+ import { SqlitePipelineRepository, InMemoryPipelineTemplateRegistry, DaggerCliAdapter, DaggerScaffoldGenerator } from "./infrastructure/pipeline/index.js";
54
+ import { PipelineFactory, GateEnforcer } from "./domain/pipeline/services.js";
55
+ import { PipelineId } from "./domain/pipeline/value-objects.js";
56
+ import { PipelineUseCases } from "./application/pipeline/use-cases.js";
68
57
  import { EnvironmentUseCases } from "./application/environment/use-cases.js";
69
- // Tools
70
58
  import { createContextMemoryTools } from "./tools/context-memory-tools.js";
71
59
  import { createKanbanCardTools } from "./tools/kanban-card-tools.js";
60
+ import { createKanbanGroomingTools } from "./tools/kanban-grooming-tools.js";
61
+ import { createKanbanGateTools } from "./tools/kanban-gate-tools.js";
72
62
  import { createKanbanBoardTools } from "./tools/kanban-board-tools.js";
73
63
  import { createGovernanceTools } from "./tools/governance-tools.js";
74
64
  import { createRagTools } from "./tools/rag-tools.js";
@@ -80,11 +70,20 @@ import { createDomainMapTools } from "./tools/domain-map-tools.js";
80
70
  import { createWorkspaceRegistryTools } from "./tools/workspace-registry-tools.js";
81
71
  import { createEnvironmentTools } from "./tools/environment-tools.js";
82
72
  import { createTokenMetricsTools } from "./tools/token-metrics-tools.js";
73
+ import { createAgentRegistryTools } from "./tools/agent-registry-tools.js";
74
+ import { createPipelineTools } from "./tools/pipeline-tools.js";
75
+ import { AzureSyncUseCases } from "./application/azure-sync/push-use-cases.js";
76
+ import { AzureSyncPullUseCases } from "./application/azure-sync/pull-use-cases.js";
77
+ import { AzurePrUseCases } from "./application/azure-sync/pr-use-cases.js";
78
+ import { AzureDevOpsClient } from "./infrastructure/azure-sync/azure-devops-client.js";
79
+ import { SqliteSyncRepository } from "./infrastructure/azure-sync/sqlite-sync-repository.js";
80
+ import { createAzureSyncTools } from "./tools/azure-sync-tools.js";
83
81
  // Hooks
84
82
  import { createCompactingHook } from "./hooks/context-compacting.js";
85
83
  import { createShellEnvHook } from "./hooks/shell-env.js";
86
84
  import { createGuardrailsHook } from "./hooks/guardrails.js";
87
85
  import { createEventHook } from "./hooks/event-handlers.js";
86
+ import { PluginLogger } from "./hooks/logger.js";
88
87
  /**
89
88
  * Derive workspace name from directory path.
90
89
  * Uses the last segment of the path, uppercased.
@@ -95,58 +94,83 @@ function getWorkspace(directory) {
95
94
  return name.toUpperCase();
96
95
  }
97
96
  export const JarvisPlugin = async (input) => {
98
- // ── Infrastructure Setup ──────────────────────────────────────────
97
+ const log = new PluginLogger(input.client);
98
+ // ── Infrastructure + Config ────────────────────────────────────────
99
99
  const jarvisDir = join(input.directory, ".jarvis");
100
- mkdirSync(jarvisDir, { recursive: true });
101
100
  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 });
101
+ let db;
102
+ let registryDb;
103
+ let configService;
104
+ try {
105
+ mkdirSync(jarvisDir, { recursive: true });
106
+ db = new SqliteAdapter({ path: dbPath });
107
+ const jarvisHome = resolveJarvisHome();
108
+ mkdirSync(jarvisHome, { recursive: true });
109
+ registryDb = new SqliteAdapter({ path: join(jarvisHome, "registry.db") });
110
+ const configRepo = new YamlConfigRepository(join(input.directory, "config", "jarvis.yaml"));
111
+ configService = new ConfigService(configRepo);
112
+ }
113
+ catch (err) {
114
+ log.exception("Failed to initialize infrastructure or config", err, { directory: input.directory });
115
+ throw err;
116
+ }
108
117
  // ── Repository Layer ──────────────────────────────────────────────
109
- // Context Memory
110
118
  const sessionRepo = new SqliteSessionRepository(db);
111
119
  const todoRepo = new SqliteTodoRepository(db);
112
120
  const noteRepo = new SqliteNoteRepository(db);
113
121
  const searchRepo = createSimpleSearchRepo(todoRepo, noteRepo);
114
- // Kanban
115
122
  const cardRepo = new SqliteCardRepository(db);
116
123
  const sprintRepo = new SqliteSprintRepository(db);
117
124
  const epicRepo = new SqliteEpicRepository(db);
118
- // Token Metrics
119
125
  const tokenMetricsRepo = new SqliteTokenMetricsRepository(db);
120
- // Workspace Registry (central registry.db, separate from per-project db)
121
126
  const workspaceRegistryRepo = new SqliteWorkspaceRegistryRepository(registryDb);
122
127
  const workspaceDependencyRepo = new SqliteWorkspaceDependencyRepository(registryDb);
123
- // Environment (per-project db, scoped to current workspace)
124
128
  const wsId = WorkspaceId.create(getWorkspace(input.directory));
125
129
  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);
130
+ const agentProfileRepo = new SqliteAgentProfileRepository(db);
131
+ const agentSessionAdapter = new OpencodeAgentSessionAdapter(input.client);
132
+ const vaultRepo = new VaultFsAdapter(join(jarvisDir, "..", "obsidian-vault"));
129
133
  // ── Domain Service Layer ──────────────────────────────────────────
130
134
  // Context Memory
131
135
  const sessionService = new SessionDomainService(sessionRepo);
132
136
  const todoService = new TodoDomainService(todoRepo);
133
137
  const noteService = new NoteDomainService(noteRepo);
134
138
  const searchService = new ContextSearchService(searchRepo);
135
- // Kanban
136
- const cardService = new CardDomainService(cardRepo);
139
+ // Kanban — Gate config port bridges config BC to kanban domain
140
+ const kanbanConfig = configService.getKanbanConfig();
141
+ const gateConfigPort = {
142
+ getGateDefinitions(phase) {
143
+ const defs = kanbanConfig.gateTasks[phase];
144
+ return defs ?? [];
145
+ },
146
+ getMinTransitionIntervalSecs() {
147
+ return kanbanConfig.minTransitionIntervalSecs;
148
+ },
149
+ };
150
+ const cardService = new CardDomainService(cardRepo, gateConfigPort);
137
151
  // Governance
138
152
  const validationService = new PolicyValidationService(DEFAULT_POLICIES);
139
153
  // Workspace Registry
140
154
  const workspaceRegistryService = new WorkspaceRegistryService(workspaceRegistryRepo, workspaceDependencyRepo);
141
155
  // Environment
142
156
  const environmentService = new EnvironmentDomainService(environmentRepo);
157
+ // Agent Registry
158
+ const agentRegistryService = new AgentRegistryService(agentProfileRepo);
159
+ // Pipeline
160
+ const pipelineRepo = new SqlitePipelineRepository(db);
161
+ const templateRepo = new InMemoryPipelineTemplateRegistry();
162
+ const daggerPort = new DaggerCliAdapter();
163
+ const scaffoldPort = new DaggerScaffoldGenerator();
164
+ const pipelineFactory = new PipelineFactory(pipelineRepo, templateRepo);
165
+ const gateEnforcer = new GateEnforcer(pipelineRepo);
143
166
  // ── Application Use Case Layer ────────────────────────────────────
144
167
  // Context Memory
145
168
  const sessionUseCases = new SessionUseCases(sessionService);
146
169
  const todoUseCases = new TodoUseCases(todoService, todoRepo);
147
170
  const noteUseCases = new NoteUseCases(noteService, searchService);
148
171
  // Kanban
149
- const cardUseCases = new CardUseCases(cardRepo, cardService);
172
+ const pipelineStatusProvider = async (id) => (await pipelineRepo.findById(PipelineId.from(id)))?.status;
173
+ const cardUseCases = new CardUseCases(cardRepo, cardService, pipelineStatusProvider);
150
174
  const sprintUseCases = new SprintUseCases(sprintRepo);
151
175
  const epicUseCases = new EpicUseCases(epicRepo);
152
176
  const boardUseCases = new BoardUseCases(cardRepo, cardService);
@@ -159,6 +183,17 @@ export const JarvisPlugin = async (input) => {
159
183
  const vaultManager = new VaultManager(vaultRepo, vaultUseCases);
160
184
  // Workspace Registry
161
185
  const workspaceRegistryUseCases = new WorkspaceRegistryUseCases(workspaceRegistryService);
186
+ // Agent Registry
187
+ const agentRegistryUseCases = new AgentRegistryUseCases(agentRegistryService, agentSessionAdapter);
188
+ // Pipeline
189
+ const pipelineUseCases = new PipelineUseCases(pipelineRepo, templateRepo, pipelineFactory, gateEnforcer, daggerPort, scaffoldPort, async (e) => {
190
+ await tokenMetricsUseCases.recordUsage({
191
+ workspace: getWorkspace(input.directory), toolName: "pipeline-run", agent: "pipeline",
192
+ inputTokens: 0, outputTokens: 0, model: "dagger", operation: "pipeline-gate",
193
+ ...(e.cardId !== undefined ? { cardId: e.cardId } : {}),
194
+ metadata: { pipelineId: e.pipelineId, gateId: e.gateId, success: e.success, durationMs: e.durationMs },
195
+ });
196
+ });
162
197
  // Environment (use cases created after projectScanner, see below)
163
198
  // ── Tools ─────────────────────────────────────────────────────────
164
199
  const contextMemoryTools = createContextMemoryTools({
@@ -173,6 +208,12 @@ export const JarvisPlugin = async (input) => {
173
208
  epicUseCases,
174
209
  getWorkspace,
175
210
  });
211
+ const kanbanGroomingTools = createKanbanGroomingTools({
212
+ cardUseCases,
213
+ });
214
+ const kanbanGateTools = createKanbanGateTools({
215
+ cardUseCases,
216
+ });
176
217
  const kanbanBoardTools = createKanbanBoardTools({
177
218
  sprintUseCases,
178
219
  epicUseCases,
@@ -183,10 +224,11 @@ export const JarvisPlugin = async (input) => {
183
224
  governanceUseCases,
184
225
  });
185
226
  // RAG Infrastructure (native TypeScript — Vectra + Ollama + TextSplitters)
227
+ const ragConfig = configService.getRagConfig();
186
228
  const ragPersistRoot = join(jarvisDir, "rag");
187
229
  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);
230
+ const embeddingProvider = new OllamaEmbeddingProvider(ragConfig.ollama.url, ragConfig.ollama.model, ragConfig.ollama.dimensions);
231
+ const vectorRepository = new VectraVectorRepository(ragPersistRoot, ragConfig.ollama.model);
190
232
  const textSplitter = new LangchainTextSplitter();
191
233
  const fileDiscovery = new FileSystemDiscovery();
192
234
  const ragUseCases = new RagUseCases({
@@ -194,6 +236,7 @@ export const JarvisPlugin = async (input) => {
194
236
  vectorRepository,
195
237
  textSplitter,
196
238
  fileDiscovery,
239
+ ragConfig,
197
240
  });
198
241
  const oracleUseCases = new OracleUseCases({
199
242
  embeddingProvider,
@@ -226,49 +269,7 @@ export const JarvisPlugin = async (input) => {
226
269
  // Domain Map Infrastructure + Application + Tools
227
270
  const lspClient = new LspClientAdapter();
228
271
  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 llmPromptFn = createLlmPromptFn(input.client);
272
273
  const llmAnalyzer = new LlmSemanticAnalyzer(llmPromptFn);
273
274
  const domainMapUseCases = new DomainMapUseCases({
274
275
  lspClient,
@@ -296,12 +297,43 @@ export const JarvisPlugin = async (input) => {
296
297
  getWorkspace,
297
298
  directory: input.directory,
298
299
  });
300
+ // Agent Registry Tools (profile management + session spawning)
301
+ const agentRegistryTools = createAgentRegistryTools({
302
+ agentRegistryUseCases,
303
+ });
304
+ // Pipeline Tools (CI/CD pipeline lifecycle + gate operations)
305
+ const pipelineTools = createPipelineTools({
306
+ pipelineUseCases,
307
+ cardUseCases,
308
+ getWorkspace,
309
+ });
310
+ // Azure Sync
311
+ const azureSyncConfig = configService.getAzureSyncConfig();
312
+ const azureClient = new AzureDevOpsClient(azureSyncConfig.authMethod);
313
+ const syncRepo = new SqliteSyncRepository(db);
314
+ const azureSyncUseCases = new AzureSyncUseCases({
315
+ azureClient, syncMappingRepo: syncRepo, syncLogRepo: syncRepo,
316
+ cardUseCases, epicUseCases, sprintUseCases, configService,
317
+ });
318
+ const azureSyncPullUseCases = new AzureSyncPullUseCases({ azureClient, syncMappingRepo: syncRepo, syncLogRepo: syncRepo,
319
+ cardUseCases, epicUseCases, sprintUseCases, configService }, azureSyncUseCases);
320
+ const azurePrUseCases = new AzurePrUseCases({ azureClient, configService });
321
+ const azureSyncTools = createAzureSyncTools({
322
+ azureSyncUseCases, azureSyncPullUseCases, azurePrUseCases, getWorkspace,
323
+ defaultOrg: azureSyncConfig.organization,
324
+ defaultProject: azureSyncConfig.project,
325
+ defaultRepository: azureSyncConfig.repository,
326
+ });
299
327
  // ── Auto-Registration ─────────────────────────────────────────────
300
328
  // Register current workspace in the central registry on plugin boot.
301
329
  // Fire-and-forget — does not block plugin startup.
302
330
  const wsName = getWorkspace(input.directory);
303
- workspaceRegistryUseCases.autoRegister(wsName, input.directory).catch(() => {
304
- // Silently ignore auto-registration errors (e.g. corrupt registry.db)
331
+ workspaceRegistryUseCases.autoRegister(wsName, input.directory).catch((err) => {
332
+ log.exception("Workspace auto-registration failed", err, { workspace: wsName });
333
+ });
334
+ // Bootstrap built-in agent profiles (fire-and-forget).
335
+ agentRegistryUseCases.bootstrapBuiltInProfiles(BUILT_IN_PROFILES).catch((err) => {
336
+ log.exception("Agent profile bootstrap failed", err);
305
337
  });
306
338
  // ── Hooks ─────────────────────────────────────────────────────────
307
339
  const compactingHook = createCompactingHook({
@@ -322,24 +354,36 @@ export const JarvisPlugin = async (input) => {
322
354
  const eventHook = createEventHook({
323
355
  tokenMetricsUseCases,
324
356
  workspace: getWorkspace(input.directory),
357
+ log: log.child("events"),
325
358
  });
326
359
  // ── Compose Hooks Object ──────────────────────────────────────────
360
+ const allTools = {
361
+ ...contextMemoryTools,
362
+ ...kanbanCardTools,
363
+ ...kanbanGroomingTools,
364
+ ...kanbanGateTools,
365
+ ...kanbanBoardTools,
366
+ ...governanceTools,
367
+ ...ragTools,
368
+ ...dataTools,
369
+ ...agentTools,
370
+ ...vaultTools,
371
+ ...vaultManageTool,
372
+ ...domainMapTools,
373
+ ...workspaceRegistryTools,
374
+ ...environmentTools,
375
+ ...tokenMetricsTools,
376
+ ...agentRegistryTools,
377
+ ...pipelineTools,
378
+ ...azureSyncTools,
379
+ };
380
+ log.info("Plugin initialized", {
381
+ workspace: wsName,
382
+ tools: Object.keys(allTools).length,
383
+ directory: input.directory,
384
+ });
327
385
  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
- },
386
+ tool: allTools,
343
387
  "experimental.session.compacting": compactingHook,
344
388
  "shell.env": shellEnvHook,
345
389
  "tool.execute.before": guardrailsHook,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * SQLite Agent Profile Repository
3
+ *
4
+ * Implements AgentProfileRepository interface from domain layer.
5
+ * Maps AgentProfile entities to/from SQLite rows with JSON serialization
6
+ * for complex value objects (ModelPreference, AgentCapabilities, AllowedTools).
7
+ *
8
+ * SOLID: SRP - persistence for AgentProfile aggregate only
9
+ * SOLID: DIP - implements domain interface
10
+ * SOLID: LSP - fully substitutable for AgentProfileRepository
11
+ */
12
+ import type { SqliteAdapter } from "../database/sqlite-adapter.js";
13
+ import type { AgentProfileRepository } from "../../domain/agent-registry/repositories.js";
14
+ import { AgentProfile } from "../../domain/agent-registry/entities.js";
15
+ import { AgentProfileId } from "../../domain/agent-registry/value-objects.js";
16
+ import type { AgentRole, AgentProfileStatus } from "../../domain/agent-registry/value-objects.js";
17
+ export declare class SqliteAgentProfileRepository implements AgentProfileRepository {
18
+ private readonly db;
19
+ constructor(db: SqliteAdapter);
20
+ save(profile: AgentProfile): Promise<void>;
21
+ findById(id: AgentProfileId): Promise<AgentProfile | undefined>;
22
+ findByRole(role: AgentRole): Promise<AgentProfile[]>;
23
+ findByStatus(status: AgentProfileStatus): Promise<AgentProfile[]>;
24
+ findAll(): Promise<AgentProfile[]>;
25
+ delete(id: AgentProfileId): Promise<boolean>;
26
+ exists(id: AgentProfileId): Promise<boolean>;
27
+ private toDomain;
28
+ }
29
+ //# sourceMappingURL=agent-profile-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-profile-repository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/agent-registry/agent-profile-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EACL,cAAc,EAKf,MAAM,8CAA8C,CAAC;AACtD,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EACnB,MAAM,8CAA8C,CAAC;AAsCtD,qBAAa,4BAA6B,YAAW,sBAAsB;IAC7D,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,aAAa;IAIxC,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC1C,QAAQ,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAQ/D,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAQpD,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAQjE,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAQlC,MAAM,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAS5C,MAAM,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAQlD,OAAO,CAAC,QAAQ;CAmBjB"}
@@ -0,0 +1,109 @@
1
+ import { AgentProfile } from "../../domain/agent-registry/entities.js";
2
+ import { AgentProfileId, SystemPrompt, ModelPreference, AgentCapabilities, AllowedTools, } from "../../domain/agent-registry/value-objects.js";
3
+ import { Timestamp } from "../../domain/shared/value-objects.js";
4
+ const SCHEMA_KEY = "agent_profiles";
5
+ const DDL = `
6
+ CREATE TABLE IF NOT EXISTS agent_profiles (
7
+ id TEXT PRIMARY KEY,
8
+ display_name TEXT NOT NULL,
9
+ role TEXT NOT NULL,
10
+ system_prompt TEXT NOT NULL,
11
+ model_preference TEXT NOT NULL DEFAULT '{"primary":"default","fallbacks":[]}',
12
+ capabilities TEXT NOT NULL DEFAULT '[]',
13
+ allowed_tools TEXT NOT NULL DEFAULT '[]',
14
+ status TEXT NOT NULL DEFAULT 'active',
15
+ built_in INTEGER NOT NULL DEFAULT 0,
16
+ created_at TEXT NOT NULL,
17
+ updated_at TEXT NOT NULL
18
+ );
19
+ CREATE INDEX IF NOT EXISTS idx_agent_profile_role ON agent_profiles(role);
20
+ CREATE INDEX IF NOT EXISTS idx_agent_profile_status ON agent_profiles(status);
21
+ `;
22
+ export class SqliteAgentProfileRepository {
23
+ db;
24
+ constructor(db) {
25
+ this.db = db;
26
+ this.db.ensureSchema(SCHEMA_KEY, DDL);
27
+ }
28
+ async save(profile) {
29
+ const data = profile.toData();
30
+ const sql = `
31
+ INSERT INTO agent_profiles (
32
+ id, display_name, role, system_prompt, model_preference,
33
+ capabilities, allowed_tools, status, built_in, created_at, updated_at
34
+ )
35
+ VALUES (
36
+ @id, @display_name, @role, @system_prompt, @model_preference,
37
+ @capabilities, @allowed_tools, @status, @built_in, @created_at, @updated_at
38
+ )
39
+ ON CONFLICT(id) DO UPDATE SET
40
+ display_name = @display_name,
41
+ role = @role,
42
+ system_prompt = @system_prompt,
43
+ model_preference = @model_preference,
44
+ capabilities = @capabilities,
45
+ allowed_tools = @allowed_tools,
46
+ status = @status,
47
+ updated_at = @updated_at
48
+ `;
49
+ this.db.execute(sql, {
50
+ id: data.id.value,
51
+ display_name: data.displayName,
52
+ role: data.role,
53
+ system_prompt: data.systemPrompt.value,
54
+ model_preference: JSON.stringify(data.modelPreference.toJSON()),
55
+ capabilities: data.capabilities.toJSON(),
56
+ allowed_tools: data.allowedTools.toJSON(),
57
+ status: data.status,
58
+ built_in: data.builtIn ? 1 : 0,
59
+ created_at: data.createdAt.toISO(),
60
+ updated_at: data.updatedAt.toISO(),
61
+ });
62
+ }
63
+ async findById(id) {
64
+ const row = this.db.queryOne("SELECT * FROM agent_profiles WHERE id = @id", { id: id.value });
65
+ return row ? this.toDomain(row) : undefined;
66
+ }
67
+ async findByRole(role) {
68
+ const rows = this.db.queryAll("SELECT * FROM agent_profiles WHERE role = @role ORDER BY display_name", { role });
69
+ return rows.map((row) => this.toDomain(row));
70
+ }
71
+ async findByStatus(status) {
72
+ const rows = this.db.queryAll("SELECT * FROM agent_profiles WHERE status = @status ORDER BY display_name", { status });
73
+ return rows.map((row) => this.toDomain(row));
74
+ }
75
+ async findAll() {
76
+ const rows = this.db.queryAll("SELECT * FROM agent_profiles ORDER BY built_in DESC, display_name", {});
77
+ return rows.map((row) => this.toDomain(row));
78
+ }
79
+ async delete(id) {
80
+ const exists = await this.exists(id);
81
+ if (!exists)
82
+ return false;
83
+ this.db.execute("DELETE FROM agent_profiles WHERE id = @id", {
84
+ id: id.value,
85
+ });
86
+ return true;
87
+ }
88
+ async exists(id) {
89
+ const row = this.db.queryOne("SELECT COUNT(*) as cnt FROM agent_profiles WHERE id = @id", { id: id.value });
90
+ return row !== undefined && row.cnt > 0;
91
+ }
92
+ toDomain(row) {
93
+ const modelJson = JSON.parse(row.model_preference);
94
+ return AgentProfile.reconstitute({
95
+ id: AgentProfileId.from(row.id),
96
+ displayName: row.display_name,
97
+ role: row.role,
98
+ systemPrompt: SystemPrompt.from(row.system_prompt),
99
+ modelPreference: ModelPreference.fromJSON(modelJson),
100
+ capabilities: AgentCapabilities.fromJSON(row.capabilities),
101
+ allowedTools: AllowedTools.fromJSON(row.allowed_tools),
102
+ status: row.status,
103
+ builtIn: row.built_in === 1,
104
+ createdAt: Timestamp.fromISO(row.created_at),
105
+ updatedAt: Timestamp.fromISO(row.updated_at),
106
+ });
107
+ }
108
+ }
109
+ //# sourceMappingURL=agent-profile-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-profile-repository.js","sourceRoot":"","sources":["../../../src/infrastructure/agent-registry/agent-profile-repository.ts"],"names":[],"mappings":"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"}