@monoes/monomindcli 1.10.54 → 1.10.55

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 (441) hide show
  1. package/.claude/agents/optimization/benchmark-suite.md +2 -0
  2. package/.claude/agents/optimization/load-balancer.md +2 -0
  3. package/.claude/agents/optimization/performance-monitor.md +2 -0
  4. package/.claude/agents/optimization/resource-allocator.md +3 -1
  5. package/.claude/agents/optimization/topology-optimizer.md +2 -0
  6. package/.claude/commands/mastermind/_repeat.md +21 -0
  7. package/.claude/commands/mastermind/_taskfile.md +235 -0
  8. package/.claude/commands/mastermind/adr.md +11 -0
  9. package/.claude/commands/mastermind/approve.md +94 -0
  10. package/.claude/commands/mastermind/autodev.md +32 -0
  11. package/.claude/commands/mastermind/budget.md +7 -0
  12. package/.claude/commands/mastermind/code-review.md +317 -0
  13. package/.claude/commands/mastermind/createorg.md +40 -1
  14. package/.claude/commands/mastermind/createtask.md +383 -0
  15. package/.claude/commands/mastermind/debug.md +22 -0
  16. package/.claude/commands/mastermind/design.md +20 -0
  17. package/.claude/commands/mastermind/do.md +526 -0
  18. package/.claude/commands/mastermind/execute.md +20 -0
  19. package/.claude/commands/mastermind/finish.md +20 -0
  20. package/.claude/commands/mastermind/graph-status.md +7 -0
  21. package/.claude/commands/mastermind/help.md +118 -0
  22. package/.claude/commands/mastermind/ideate.md +261 -0
  23. package/.claude/commands/mastermind/improve.md +345 -0
  24. package/.claude/commands/mastermind/loops.md +7 -0
  25. package/.claude/commands/mastermind/master.md +186 -6
  26. package/.claude/commands/mastermind/memory.md +230 -0
  27. package/.claude/commands/mastermind/plan.md +26 -0
  28. package/.claude/commands/mastermind/receive-review.md +20 -0
  29. package/.claude/commands/mastermind/repeat.md +257 -0
  30. package/.claude/commands/mastermind/runorg.md +3 -0
  31. package/.claude/commands/mastermind/skill-builder.md +20 -0
  32. package/.claude/commands/mastermind/specialagents.md +125 -0
  33. package/.claude/commands/mastermind/swarm.md +161 -0
  34. package/.claude/commands/mastermind/taskdev.md +26 -0
  35. package/.claude/commands/mastermind/tdd.md +22 -0
  36. package/.claude/commands/mastermind/techport.md +4 -0
  37. package/.claude/commands/mastermind/understand.md +139 -0
  38. package/.claude/commands/mastermind/verify.md +22 -0
  39. package/.claude/commands/mastermind/worktree.md +20 -0
  40. package/.claude/helpers/handlers/graph-status-handler.cjs +2 -1
  41. package/.claude/helpers/hook-handler.cjs +19 -0
  42. package/.claude/helpers/skill-registry.json +23 -0
  43. package/.claude/helpers/statusline.cjs +1 -1
  44. package/.claude/skills/mastermind/approve.md +15 -7
  45. package/.claude/skills/mastermind/autodev.md +534 -0
  46. package/.claude/skills/mastermind/createorg.md +21 -5
  47. package/.claude/skills/mastermind/debug.md +232 -0
  48. package/.claude/skills/mastermind/design.md +187 -0
  49. package/.claude/skills/mastermind/execute.md +104 -0
  50. package/.claude/skills/mastermind/finish.md +251 -0
  51. package/.claude/skills/mastermind/plan.md +180 -0
  52. package/.claude/skills/mastermind/receive-review.md +213 -0
  53. package/.claude/skills/mastermind/runorg.md +23 -8
  54. package/.claude/skills/mastermind/skill-builder.md +274 -0
  55. package/.claude/skills/mastermind/taskdev.md +307 -0
  56. package/.claude/skills/mastermind/tdd.md +394 -0
  57. package/.claude/skills/mastermind/verify.md +196 -0
  58. package/.claude/skills/mastermind/worktree.md +160 -132
  59. package/README.md +320 -253
  60. package/dist/src/commands/analyze.d.ts.map +1 -1
  61. package/dist/src/commands/analyze.js +9 -2
  62. package/dist/src/commands/analyze.js.map +1 -1
  63. package/dist/src/commands/benchmark.js.map +1 -1
  64. package/dist/src/commands/completions.js +1 -1
  65. package/dist/src/commands/guidance.js +7 -7
  66. package/dist/src/commands/hooks.d.ts.map +1 -1
  67. package/dist/src/commands/hooks.js +16 -3
  68. package/dist/src/commands/hooks.js.map +1 -1
  69. package/dist/src/commands/index.d.ts +3 -2
  70. package/dist/src/commands/index.d.ts.map +1 -1
  71. package/dist/src/commands/index.js +7 -0
  72. package/dist/src/commands/index.js.map +1 -1
  73. package/dist/src/commands/init.d.ts.map +1 -1
  74. package/dist/src/commands/init.js +47 -13
  75. package/dist/src/commands/init.js.map +1 -1
  76. package/dist/src/commands/neural.d.ts.map +1 -1
  77. package/dist/src/commands/neural.js +100 -14
  78. package/dist/src/commands/neural.js.map +1 -1
  79. package/dist/src/commands/platforms.d.ts +11 -0
  80. package/dist/src/commands/platforms.d.ts.map +1 -0
  81. package/dist/src/commands/platforms.js +195 -0
  82. package/dist/src/commands/platforms.js.map +1 -0
  83. package/dist/src/commands/ruvector/backup.js.map +1 -1
  84. package/dist/src/commands/ruvector/benchmark.js.map +1 -1
  85. package/dist/src/commands/ruvector/init.js.map +1 -1
  86. package/dist/src/commands/ruvector/migrate.js.map +1 -1
  87. package/dist/src/commands/ruvector/optimize.js.map +1 -1
  88. package/dist/src/commands/ruvector/status.js.map +1 -1
  89. package/dist/src/commands/update.js +6 -6
  90. package/dist/src/init/executor.d.ts.map +1 -1
  91. package/dist/src/init/executor.js +28 -0
  92. package/dist/src/init/executor.js.map +1 -1
  93. package/dist/src/init/statusline-generator.js +1 -1
  94. package/dist/src/init/types.d.ts +1 -0
  95. package/dist/src/init/types.d.ts.map +1 -1
  96. package/dist/src/mcp-server.d.ts.map +1 -1
  97. package/dist/src/mcp-server.js +92 -0
  98. package/dist/src/mcp-server.js.map +1 -1
  99. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -1
  100. package/dist/src/mcp-tools/hive-mind-tools.js +52 -0
  101. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  102. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  103. package/dist/src/mcp-tools/hooks-tools.js +106 -5
  104. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  105. package/dist/src/mcp-tools/index.d.ts +0 -5
  106. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  107. package/dist/src/mcp-tools/index.js +0 -5
  108. package/dist/src/mcp-tools/index.js.map +1 -1
  109. package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
  110. package/dist/src/mcp-tools/monograph-tools.js +507 -5587
  111. package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
  112. package/dist/src/mcp-tools/neural-tools.d.ts.map +1 -1
  113. package/dist/src/mcp-tools/neural-tools.js +64 -4
  114. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  115. package/dist/src/mcp-tools/security-tools.js +4 -4
  116. package/dist/src/memory/intelligence.d.ts +2 -2
  117. package/dist/src/memory/intelligence.d.ts.map +1 -1
  118. package/dist/src/memory/intelligence.js +108 -3
  119. package/dist/src/memory/intelligence.js.map +1 -1
  120. package/dist/src/memory/memory-bridge.js +1 -1
  121. package/dist/src/memory/memory-bridge.js.map +1 -1
  122. package/dist/src/memory/sona-optimizer.d.ts +1 -10
  123. package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
  124. package/dist/src/memory/sona-optimizer.js +0 -46
  125. package/dist/src/memory/sona-optimizer.js.map +1 -1
  126. package/dist/src/runtime/headless.js +3 -3
  127. package/dist/src/ruvector/diff-classifier.d.ts +0 -2
  128. package/dist/src/ruvector/diff-classifier.d.ts.map +1 -1
  129. package/dist/src/ruvector/diff-classifier.js +2 -14
  130. package/dist/src/ruvector/diff-classifier.js.map +1 -1
  131. package/dist/src/ruvector/index.d.ts +26 -9
  132. package/dist/src/ruvector/index.d.ts.map +1 -1
  133. package/dist/src/ruvector/index.js +3 -21
  134. package/dist/src/ruvector/index.js.map +1 -1
  135. package/dist/src/ruvector/ruvllm-wasm.js +2 -2
  136. package/dist/src/ruvector/ruvllm-wasm.js.map +1 -1
  137. package/dist/src/types.d.ts +0 -15
  138. package/dist/src/types.d.ts.map +1 -1
  139. package/dist/src/types.js +0 -18
  140. package/dist/src/types.js.map +1 -1
  141. package/dist/src/ui/dashboard.html +8763 -9766
  142. package/dist/src/ui/orgs.html +1 -1
  143. package/dist/src/ui/server.mjs +504 -35
  144. package/dist/src/update/index.js +1 -1
  145. package/dist/src/update/validator.js +8 -8
  146. package/dist/tsconfig.tsbuildinfo +1 -1
  147. package/package.json +2 -2
  148. package/.claude/agents/academic/academic-anthropologist.md +0 -126
  149. package/.claude/agents/academic/academic-geographer.md +0 -128
  150. package/.claude/agents/academic/academic-historian.md +0 -124
  151. package/.claude/agents/academic/academic-narratologist.md +0 -119
  152. package/.claude/agents/academic/academic-psychologist.md +0 -119
  153. package/.claude/agents/analysis/analyze-code-quality.md +0 -58
  154. package/.claude/agents/analysis/code-analyzer.md +0 -189
  155. package/.claude/agents/analysis/code-review/analyze-code-quality.md +0 -58
  156. package/.claude/agents/consensus/performance-benchmarker.md +0 -831
  157. package/.claude/agents/data/ml/data-ml-model.md +0 -76
  158. package/.claude/agents/development/dev-backend-api.md +0 -178
  159. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +0 -52
  160. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +0 -63
  161. package/.claude/agents/game-development/blender/blender-addon-engineer.md +0 -235
  162. package/.claude/agents/game-development/game-audio-engineer.md +0 -265
  163. package/.claude/agents/game-development/game-designer.md +0 -168
  164. package/.claude/agents/game-development/godot/godot-gameplay-scripter.md +0 -335
  165. package/.claude/agents/game-development/godot/godot-multiplayer-engineer.md +0 -298
  166. package/.claude/agents/game-development/godot/godot-shader-developer.md +0 -267
  167. package/.claude/agents/game-development/level-designer.md +0 -209
  168. package/.claude/agents/game-development/narrative-designer.md +0 -244
  169. package/.claude/agents/game-development/roblox-studio/roblox-avatar-creator.md +0 -298
  170. package/.claude/agents/game-development/roblox-studio/roblox-experience-designer.md +0 -306
  171. package/.claude/agents/game-development/roblox-studio/roblox-systems-scripter.md +0 -326
  172. package/.claude/agents/game-development/technical-artist.md +0 -230
  173. package/.claude/agents/game-development/unity/unity-architect.md +0 -272
  174. package/.claude/agents/game-development/unity/unity-editor-tool-developer.md +0 -311
  175. package/.claude/agents/game-development/unity/unity-multiplayer-engineer.md +0 -322
  176. package/.claude/agents/game-development/unity/unity-shader-graph-artist.md +0 -270
  177. package/.claude/agents/game-development/unreal-engine/unreal-multiplayer-architect.md +0 -314
  178. package/.claude/agents/game-development/unreal-engine/unreal-systems-engineer.md +0 -311
  179. package/.claude/agents/game-development/unreal-engine/unreal-technical-artist.md +0 -257
  180. package/.claude/agents/game-development/unreal-engine/unreal-world-builder.md +0 -274
  181. package/.claude/agents/github/release-swarm.md +0 -597
  182. package/.claude/agents/goal/agent.md +0 -804
  183. package/.claude/agents/goal/code-goal-planner.md +0 -445
  184. package/.claude/agents/marketing/marketing-ai-citation-strategist.md +0 -171
  185. package/.claude/agents/marketing/marketing-app-store-optimizer.md +0 -322
  186. package/.claude/agents/marketing/marketing-baidu-seo-specialist.md +0 -227
  187. package/.claude/agents/marketing/marketing-bilibili-content-strategist.md +0 -200
  188. package/.claude/agents/marketing/marketing-book-co-author.md +0 -111
  189. package/.claude/agents/marketing/marketing-carousel-growth-engine.md +0 -200
  190. package/.claude/agents/marketing/marketing-china-ecommerce-operator.md +0 -284
  191. package/.claude/agents/marketing/marketing-content-creator.md +0 -67
  192. package/.claude/agents/marketing/marketing-cross-border-ecommerce.md +0 -260
  193. package/.claude/agents/marketing/marketing-douyin-strategist.md +0 -150
  194. package/.claude/agents/marketing/marketing-growth-hacker.md +0 -54
  195. package/.claude/agents/marketing/marketing-instagram-curator.md +0 -114
  196. package/.claude/agents/marketing/marketing-kuaishou-strategist.md +0 -224
  197. package/.claude/agents/marketing/marketing-linkedin-content-creator.md +0 -215
  198. package/.claude/agents/marketing/marketing-livestream-commerce-coach.md +0 -306
  199. package/.claude/agents/marketing/marketing-podcast-strategist.md +0 -278
  200. package/.claude/agents/marketing/marketing-private-domain-operator.md +0 -309
  201. package/.claude/agents/marketing/marketing-reddit-community-builder.md +0 -124
  202. package/.claude/agents/marketing/marketing-seo-specialist.md +0 -279
  203. package/.claude/agents/marketing/marketing-short-video-editing-coach.md +0 -413
  204. package/.claude/agents/marketing/marketing-social-media-strategist.md +0 -125
  205. package/.claude/agents/marketing/marketing-tiktok-strategist.md +0 -126
  206. package/.claude/agents/marketing/marketing-twitter-engager.md +0 -127
  207. package/.claude/agents/marketing/marketing-wechat-official-account.md +0 -146
  208. package/.claude/agents/marketing/marketing-weibo-strategist.md +0 -241
  209. package/.claude/agents/marketing/marketing-xiaohongshu-specialist.md +0 -139
  210. package/.claude/agents/marketing/marketing-zhihu-strategist.md +0 -163
  211. package/.claude/agents/neural/safla-neural.md +0 -74
  212. package/.claude/agents/paid-media/paid-media-auditor.md +0 -71
  213. package/.claude/agents/paid-media/paid-media-creative-strategist.md +0 -71
  214. package/.claude/agents/paid-media/paid-media-paid-social-strategist.md +0 -71
  215. package/.claude/agents/paid-media/paid-media-ppc-strategist.md +0 -71
  216. package/.claude/agents/paid-media/paid-media-programmatic-buyer.md +0 -71
  217. package/.claude/agents/paid-media/paid-media-search-query-analyst.md +0 -71
  218. package/.claude/agents/paid-media/paid-media-tracking-specialist.md +0 -71
  219. package/.claude/agents/payments/agentic-payments.md +0 -126
  220. package/.claude/agents/product/product-behavioral-nudge-engine.md +0 -81
  221. package/.claude/agents/product/product-feedback-synthesizer.md +0 -119
  222. package/.claude/agents/product/product-manager.md +0 -469
  223. package/.claude/agents/product/product-sprint-prioritizer.md +0 -154
  224. package/.claude/agents/product/product-trend-researcher.md +0 -159
  225. package/.claude/agents/project-management/project-management-experiment-tracker.md +0 -199
  226. package/.claude/agents/project-management/project-management-jira-workflow-steward.md +0 -231
  227. package/.claude/agents/project-management/project-management-project-shepherd.md +0 -195
  228. package/.claude/agents/project-management/project-management-studio-operations.md +0 -201
  229. package/.claude/agents/project-management/project-management-studio-producer.md +0 -204
  230. package/.claude/agents/project-management/project-manager-senior.md +0 -136
  231. package/.claude/agents/reasoning/agent.md +0 -804
  232. package/.claude/agents/reasoning/goal-planner.md +0 -73
  233. package/.claude/agents/sales/sales-account-strategist.md +0 -228
  234. package/.claude/agents/sales/sales-coach.md +0 -272
  235. package/.claude/agents/sales/sales-deal-strategist.md +0 -181
  236. package/.claude/agents/sales/sales-discovery-coach.md +0 -226
  237. package/.claude/agents/sales/sales-engineer.md +0 -183
  238. package/.claude/agents/sales/sales-outbound-strategist.md +0 -202
  239. package/.claude/agents/sales/sales-pipeline-analyst.md +0 -268
  240. package/.claude/agents/sales/sales-proposal-strategist.md +0 -218
  241. package/.claude/agents/sona/sona-learning-optimizer.md +0 -65
  242. package/.claude/agents/spatial-computing/macos-spatial-metal-engineer.md +0 -338
  243. package/.claude/agents/spatial-computing/terminal-integration-specialist.md +0 -71
  244. package/.claude/agents/spatial-computing/visionos-spatial-engineer.md +0 -55
  245. package/.claude/agents/specialists/memory-specialist.md +0 -298
  246. package/.claude/agents/specialists/performance-engineer.md +0 -387
  247. package/.claude/agents/specialists/queen-coordinator.md +0 -67
  248. package/.claude/agents/specialists/security-architect.md +0 -154
  249. package/.claude/agents/specialized/accounts-payable-agent.md +0 -186
  250. package/.claude/agents/specialized/corporate-training-designer.md +0 -193
  251. package/.claude/agents/specialized/data-consolidation-agent.md +0 -61
  252. package/.claude/agents/specialized/government-digital-presales-consultant.md +0 -364
  253. package/.claude/agents/specialized/healthcare-marketing-compliance.md +0 -396
  254. package/.claude/agents/specialized/recruitment-specialist.md +0 -510
  255. package/.claude/agents/specialized/report-distribution-agent.md +0 -66
  256. package/.claude/agents/specialized/sales-data-extraction-agent.md +0 -68
  257. package/.claude/agents/specialized/specialized-french-consulting-market.md +0 -193
  258. package/.claude/agents/specialized/specialized-korean-business-navigator.md +0 -217
  259. package/.claude/agents/specialized/specialized-salesforce-architect.md +0 -181
  260. package/.claude/agents/specialized/study-abroad-advisor.md +0 -283
  261. package/.claude/agents/specialized/supply-chain-strategist.md +0 -583
  262. package/.claude/agents/sublinear/consensus-coordinator.md +0 -333
  263. package/.claude/agents/sublinear/matrix-optimizer.md +0 -180
  264. package/.claude/agents/sublinear/pagerank-analyzer.md +0 -295
  265. package/.claude/agents/sublinear/performance-optimizer.md +0 -363
  266. package/.claude/agents/sublinear/trading-predictor.md +0 -242
  267. package/.claude/agents/support/support-analytics-reporter.md +0 -366
  268. package/.claude/agents/support/support-executive-summary-generator.md +0 -213
  269. package/.claude/agents/support/support-finance-tracker.md +0 -443
  270. package/.claude/agents/support/support-infrastructure-maintainer.md +0 -619
  271. package/.claude/agents/support/support-legal-compliance-checker.md +0 -589
  272. package/.claude/agents/support/support-support-responder.md +0 -586
  273. package/.claude/agents/swarm/adaptive-coordinator.md +0 -364
  274. package/.claude/agents/swarm/hierarchical-coordinator.md +0 -318
  275. package/.claude/agents/templates/github-pr-manager.md +0 -155
  276. package/.claude/agents/templates/memory-coordinator.md +0 -163
  277. package/.claude/agents/templates/migration-plan.md +0 -724
  278. package/.claude/agents/templates/orchestrator-task.md +0 -120
  279. package/.claude/agents/templates/performance-analyzer.md +0 -179
  280. package/.claude/agents/templates/sparc-coordinator.md +0 -163
  281. package/.claude/agents/testing/testing-reality-checker.md +0 -237
  282. package/.claude/commands/analysis/token-efficiency.md +0 -42
  283. package/.claude/commands/optimization/README.md +0 -73
  284. package/.claude/commands/optimization/parallel-execution.md +0 -76
  285. package/.claude/commands/swarm/swarm-analysis.md +0 -62
  286. package/.claude/commands/swarm/swarm-background.md +0 -65
  287. package/.claude/commands/swarm/swarm-modes.md +0 -67
  288. package/.claude/commands/swarm/swarm-monitor.md +0 -54
  289. package/.claude/commands/swarm/swarm-status.md +0 -44
  290. package/.claude/commands/swarm/swarm-strategies.md +0 -76
  291. package/.claude/commands/training/model-update.md +0 -78
  292. package/.claude/commands/training/pattern-learn.md +0 -69
  293. package/.claude/commands/training/specialization.md +0 -92
  294. package/.claude/commands/verify/check.md +0 -106
  295. package/.claude/commands/verify/start.md +0 -105
  296. package/.claude/helpers/README.md +0 -105
  297. package/.claude/helpers/context-persistence-hook.mjs +0 -1988
  298. package/.claude/helpers/intelligence.cjs +0 -247
  299. package/.claude/helpers/learning-service.mjs +0 -1302
  300. package/.claude/helpers/memory-palace.cjs +0 -461
  301. package/.claude/helpers/memory.cjs +0 -84
  302. package/.claude/helpers/metrics-db.mjs +0 -488
  303. package/.claude/helpers/router.cjs +0 -559
  304. package/.claude/helpers/session.cjs +0 -126
  305. package/.claude/helpers/swarm-hooks.sh +0 -761
  306. package/.claude/helpers/toggle-statusline.cjs +0 -58
  307. package/.claude/helpers/token-tracker.cjs +0 -934
  308. package/.claude/skills/agentdb-advanced/SKILL.md +0 -549
  309. package/.claude/skills/agentdb-learning/SKILL.md +0 -544
  310. package/.claude/skills/agentdb-memory-patterns/SKILL.md +0 -337
  311. package/.claude/skills/agentdb-optimization/SKILL.md +0 -508
  312. package/.claude/skills/agentdb-vector-search/SKILL.md +0 -335
  313. package/.claude/skills/agentic-integration/SKILL.md +0 -265
  314. package/.claude/skills/cli-modernization/SKILL.md +0 -950
  315. package/.claude/skills/core-implementation/SKILL.md +0 -892
  316. package/.claude/skills/ddd-architecture/SKILL.md +0 -444
  317. package/.claude/skills/github-code-review/SKILL.md +0 -1147
  318. package/.claude/skills/github-multi-repo/SKILL.md +0 -912
  319. package/.claude/skills/github-project-management/SKILL.md +0 -1245
  320. package/.claude/skills/github-release-management/SKILL.md +0 -1118
  321. package/.claude/skills/github-workflow-automation/SKILL.md +0 -1107
  322. package/.claude/skills/mcp-optimization/SKILL.md +0 -837
  323. package/.claude/skills/memory-unification/SKILL.md +0 -196
  324. package/.claude/skills/performance-optimization/SKILL.md +0 -416
  325. package/.claude/skills/reasoningbank-agentdb/SKILL.md +0 -444
  326. package/.claude/skills/reasoningbank-intelligence/SKILL.md +0 -199
  327. package/.claude/skills/security-hardening/SKILL.md +0 -101
  328. package/.claude/skills/stream-chain/SKILL.md +0 -560
  329. package/.claude/skills/swarm-coordination/SKILL.md +0 -451
  330. package/bundled-graph/dist/src/analyze.d.ts +0 -32
  331. package/bundled-graph/dist/src/analyze.d.ts.map +0 -1
  332. package/bundled-graph/dist/src/analyze.js +0 -297
  333. package/bundled-graph/dist/src/analyze.js.map +0 -1
  334. package/bundled-graph/dist/src/build.d.ts +0 -8
  335. package/bundled-graph/dist/src/build.d.ts.map +0 -1
  336. package/bundled-graph/dist/src/build.js.map +0 -1
  337. package/bundled-graph/dist/src/cache.d.ts +0 -12
  338. package/bundled-graph/dist/src/cache.d.ts.map +0 -1
  339. package/bundled-graph/dist/src/cache.js +0 -43
  340. package/bundled-graph/dist/src/cache.js.map +0 -1
  341. package/bundled-graph/dist/src/cluster.d.ts +0 -5
  342. package/bundled-graph/dist/src/cluster.d.ts.map +0 -1
  343. package/bundled-graph/dist/src/cluster.js.map +0 -1
  344. package/bundled-graph/dist/src/detect.d.ts +0 -21
  345. package/bundled-graph/dist/src/detect.d.ts.map +0 -1
  346. package/bundled-graph/dist/src/detect.js +0 -195
  347. package/bundled-graph/dist/src/detect.js.map +0 -1
  348. package/bundled-graph/dist/src/export.d.ts +0 -21
  349. package/bundled-graph/dist/src/export.d.ts.map +0 -1
  350. package/bundled-graph/dist/src/export.js +0 -68
  351. package/bundled-graph/dist/src/export.js.map +0 -1
  352. package/bundled-graph/dist/src/extract/index.d.ts +0 -20
  353. package/bundled-graph/dist/src/extract/index.d.ts.map +0 -1
  354. package/bundled-graph/dist/src/extract/index.js +0 -158
  355. package/bundled-graph/dist/src/extract/index.js.map +0 -1
  356. package/bundled-graph/dist/src/extract/languages/c.d.ts +0 -3
  357. package/bundled-graph/dist/src/extract/languages/c.d.ts.map +0 -1
  358. package/bundled-graph/dist/src/extract/languages/c.js +0 -88
  359. package/bundled-graph/dist/src/extract/languages/c.js.map +0 -1
  360. package/bundled-graph/dist/src/extract/languages/cpp.d.ts +0 -3
  361. package/bundled-graph/dist/src/extract/languages/cpp.d.ts.map +0 -1
  362. package/bundled-graph/dist/src/extract/languages/cpp.js +0 -121
  363. package/bundled-graph/dist/src/extract/languages/cpp.js.map +0 -1
  364. package/bundled-graph/dist/src/extract/languages/csharp.d.ts +0 -3
  365. package/bundled-graph/dist/src/extract/languages/csharp.d.ts.map +0 -1
  366. package/bundled-graph/dist/src/extract/languages/csharp.js +0 -121
  367. package/bundled-graph/dist/src/extract/languages/csharp.js.map +0 -1
  368. package/bundled-graph/dist/src/extract/languages/go.d.ts +0 -3
  369. package/bundled-graph/dist/src/extract/languages/go.d.ts.map +0 -1
  370. package/bundled-graph/dist/src/extract/languages/go.js +0 -181
  371. package/bundled-graph/dist/src/extract/languages/go.js.map +0 -1
  372. package/bundled-graph/dist/src/extract/languages/java.d.ts +0 -3
  373. package/bundled-graph/dist/src/extract/languages/java.d.ts.map +0 -1
  374. package/bundled-graph/dist/src/extract/languages/java.js +0 -117
  375. package/bundled-graph/dist/src/extract/languages/java.js.map +0 -1
  376. package/bundled-graph/dist/src/extract/languages/kotlin.d.ts +0 -3
  377. package/bundled-graph/dist/src/extract/languages/kotlin.d.ts.map +0 -1
  378. package/bundled-graph/dist/src/extract/languages/kotlin.js +0 -112
  379. package/bundled-graph/dist/src/extract/languages/kotlin.js.map +0 -1
  380. package/bundled-graph/dist/src/extract/languages/php.d.ts +0 -3
  381. package/bundled-graph/dist/src/extract/languages/php.d.ts.map +0 -1
  382. package/bundled-graph/dist/src/extract/languages/php.js +0 -130
  383. package/bundled-graph/dist/src/extract/languages/php.js.map +0 -1
  384. package/bundled-graph/dist/src/extract/languages/python.d.ts +0 -3
  385. package/bundled-graph/dist/src/extract/languages/python.d.ts.map +0 -1
  386. package/bundled-graph/dist/src/extract/languages/python.js +0 -230
  387. package/bundled-graph/dist/src/extract/languages/python.js.map +0 -1
  388. package/bundled-graph/dist/src/extract/languages/ruby.d.ts +0 -3
  389. package/bundled-graph/dist/src/extract/languages/ruby.d.ts.map +0 -1
  390. package/bundled-graph/dist/src/extract/languages/ruby.js +0 -120
  391. package/bundled-graph/dist/src/extract/languages/ruby.js.map +0 -1
  392. package/bundled-graph/dist/src/extract/languages/rust.d.ts +0 -3
  393. package/bundled-graph/dist/src/extract/languages/rust.d.ts.map +0 -1
  394. package/bundled-graph/dist/src/extract/languages/rust.js +0 -195
  395. package/bundled-graph/dist/src/extract/languages/rust.js.map +0 -1
  396. package/bundled-graph/dist/src/extract/languages/scala.d.ts +0 -3
  397. package/bundled-graph/dist/src/extract/languages/scala.d.ts.map +0 -1
  398. package/bundled-graph/dist/src/extract/languages/scala.js +0 -110
  399. package/bundled-graph/dist/src/extract/languages/scala.js.map +0 -1
  400. package/bundled-graph/dist/src/extract/languages/swift.d.ts +0 -3
  401. package/bundled-graph/dist/src/extract/languages/swift.d.ts.map +0 -1
  402. package/bundled-graph/dist/src/extract/languages/swift.js +0 -122
  403. package/bundled-graph/dist/src/extract/languages/swift.js.map +0 -1
  404. package/bundled-graph/dist/src/extract/languages/typescript.d.ts +0 -3
  405. package/bundled-graph/dist/src/extract/languages/typescript.d.ts.map +0 -1
  406. package/bundled-graph/dist/src/extract/languages/typescript.js +0 -295
  407. package/bundled-graph/dist/src/extract/languages/typescript.js.map +0 -1
  408. package/bundled-graph/dist/src/extract/semantic.d.ts +0 -38
  409. package/bundled-graph/dist/src/extract/semantic.d.ts.map +0 -1
  410. package/bundled-graph/dist/src/extract/semantic.js +0 -242
  411. package/bundled-graph/dist/src/extract/semantic.js.map +0 -1
  412. package/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts +0 -48
  413. package/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts.map +0 -1
  414. package/bundled-graph/dist/src/extract/tree-sitter-runner.js +0 -137
  415. package/bundled-graph/dist/src/extract/tree-sitter-runner.js.map +0 -1
  416. package/bundled-graph/dist/src/extract/types.d.ts +0 -7
  417. package/bundled-graph/dist/src/extract/types.d.ts.map +0 -1
  418. package/bundled-graph/dist/src/extract/types.js +0 -2
  419. package/bundled-graph/dist/src/extract/types.js.map +0 -1
  420. package/bundled-graph/dist/src/index.d.ts +0 -28
  421. package/bundled-graph/dist/src/index.d.ts.map +0 -1
  422. package/bundled-graph/dist/src/index.js +0 -26
  423. package/bundled-graph/dist/src/index.js.map +0 -1
  424. package/bundled-graph/dist/src/pipeline.d.ts +0 -27
  425. package/bundled-graph/dist/src/pipeline.d.ts.map +0 -1
  426. package/bundled-graph/dist/src/pipeline.js +0 -269
  427. package/bundled-graph/dist/src/pipeline.js.map +0 -1
  428. package/bundled-graph/dist/src/report.d.ts +0 -26
  429. package/bundled-graph/dist/src/report.d.ts.map +0 -1
  430. package/bundled-graph/dist/src/report.js +0 -214
  431. package/bundled-graph/dist/src/report.js.map +0 -1
  432. package/bundled-graph/dist/src/types.d.ts +0 -124
  433. package/bundled-graph/dist/src/types.d.ts.map +0 -1
  434. package/bundled-graph/dist/src/types.js +0 -2
  435. package/bundled-graph/dist/src/types.js.map +0 -1
  436. package/bundled-graph/dist/src/visualize.d.ts +0 -4
  437. package/bundled-graph/dist/src/visualize.d.ts.map +0 -1
  438. package/bundled-graph/dist/src/visualize.js +0 -574
  439. package/bundled-graph/dist/src/visualize.js.map +0 -1
  440. package/bundled-graph/dist/tsconfig.tsbuildinfo +0 -1
  441. package/dist/src/ui/dashboard-v2.html +0 -5316
@@ -1,892 +0,0 @@
1
- ---
2
- name: core-implementation
3
- description: "Core module implementation for monomind. Implements DDD domains, clean architecture patterns, dependency injection, and modular TypeScript codebase with comprehensive testing."
4
- triggers:
5
- - implement domain entity
6
- - DDD implementation
7
- - add repository
8
- - create use case
9
- - bounded context implementation
10
- - domain model
11
- - value object
12
- - aggregate root
13
- ---
14
-
15
- # Core Implementation
16
-
17
- ## What This Skill Does
18
-
19
- Implements the core TypeScript modules for monomind following Domain-Driven Design principles, clean architecture patterns, and modern TypeScript best practices with comprehensive test coverage.
20
-
21
- ## Quick Start
22
-
23
- ```bash
24
- # Initialize core implementation
25
- Task("Core foundation", "Set up DDD domain structure and base classes", "core-implementer")
26
-
27
- # Domain implementation (parallel)
28
- Task("Task domain", "Implement task management domain with entities and services", "core-implementer")
29
- Task("Session domain", "Implement session management domain", "core-implementer")
30
- Task("Health domain", "Implement health monitoring domain", "core-implementer")
31
- ```
32
-
33
- ## Core Implementation Architecture
34
-
35
- ### Domain Structure
36
-
37
- ```
38
- src/
39
- ├── core/
40
- │ ├── kernel/ # Microkernel pattern
41
- │ │ ├── monomind-kernel.ts
42
- │ │ ├── domain-registry.ts
43
- │ │ └── plugin-loader.ts
44
- │ │
45
- │ ├── domains/ # DDD Bounded Contexts
46
- │ │ ├── task-management/
47
- │ │ │ ├── entities/
48
- │ │ │ ├── value-objects/
49
- │ │ │ ├── services/
50
- │ │ │ ├── repositories/
51
- │ │ │ └── events/
52
- │ │ │
53
- │ │ ├── session-management/
54
- │ │ ├── health-monitoring/
55
- │ │ ├── lifecycle-management/
56
- │ │ └── event-coordination/
57
- │ │
58
- │ ├── shared/ # Shared kernel
59
- │ │ ├── domain/
60
- │ │ │ ├── entity.ts
61
- │ │ │ ├── value-object.ts
62
- │ │ │ ├── domain-event.ts
63
- │ │ │ └── aggregate-root.ts
64
- │ │ │
65
- │ │ ├── infrastructure/
66
- │ │ │ ├── event-bus.ts
67
- │ │ │ ├── dependency-container.ts
68
- │ │ │ └── logger.ts
69
- │ │ │
70
- │ │ └── types/
71
- │ │ ├── common.ts
72
- │ │ ├── errors.ts
73
- │ │ └── interfaces.ts
74
- │ │
75
- │ └── application/ # Application services
76
- │ ├── use-cases/
77
- │ ├── commands/
78
- │ ├── queries/
79
- │ └── handlers/
80
- ```
81
-
82
- ## Base Domain Classes
83
-
84
- ### Entity Base Class
85
-
86
- ```typescript
87
- // src/core/shared/domain/entity.ts
88
- export abstract class Entity<T> {
89
- protected readonly _id: T;
90
- private _domainEvents: DomainEvent[] = [];
91
-
92
- constructor(id: T) {
93
- this._id = id;
94
- }
95
-
96
- get id(): T {
97
- return this._id;
98
- }
99
-
100
- public equals(object?: Entity<T>): boolean {
101
- if (object == null || object == undefined) {
102
- return false;
103
- }
104
-
105
- if (this === object) {
106
- return true;
107
- }
108
-
109
- if (!(object instanceof Entity)) {
110
- return false;
111
- }
112
-
113
- return this._id === object._id;
114
- }
115
-
116
- protected addDomainEvent(domainEvent: DomainEvent): void {
117
- this._domainEvents.push(domainEvent);
118
- }
119
-
120
- public getUncommittedEvents(): DomainEvent[] {
121
- return this._domainEvents;
122
- }
123
-
124
- public markEventsAsCommitted(): void {
125
- this._domainEvents = [];
126
- }
127
- }
128
- ```
129
-
130
- ### Value Object Base Class
131
-
132
- ```typescript
133
- // src/core/shared/domain/value-object.ts
134
- export abstract class ValueObject<T> {
135
- protected readonly props: T;
136
-
137
- constructor(props: T) {
138
- this.props = Object.freeze(props);
139
- }
140
-
141
- public equals(object?: ValueObject<T>): boolean {
142
- if (object == null || object == undefined) {
143
- return false;
144
- }
145
-
146
- if (this === object) {
147
- return true;
148
- }
149
-
150
- return JSON.stringify(this.props) === JSON.stringify(object.props);
151
- }
152
-
153
- get value(): T {
154
- return this.props;
155
- }
156
- }
157
- ```
158
-
159
- ### Aggregate Root
160
-
161
- ```typescript
162
- // src/core/shared/domain/aggregate-root.ts
163
- export abstract class AggregateRoot<T> extends Entity<T> {
164
- private _version: number = 0;
165
-
166
- get version(): number {
167
- return this._version;
168
- }
169
-
170
- protected incrementVersion(): void {
171
- this._version++;
172
- }
173
-
174
- public applyEvent(event: DomainEvent): void {
175
- this.addDomainEvent(event);
176
- this.incrementVersion();
177
- }
178
- }
179
- ```
180
-
181
- ## Task Management Domain Implementation
182
-
183
- ### Task Entity
184
-
185
- ```typescript
186
- // src/core/domains/task-management/entities/task.entity.ts
187
- import { AggregateRoot } from "../../../shared/domain/aggregate-root";
188
- import { TaskId } from "../value-objects/task-id.vo";
189
- import { TaskStatus } from "../value-objects/task-status.vo";
190
- import { Priority } from "../value-objects/priority.vo";
191
- import { TaskAssignedEvent } from "../events/task-assigned.event";
192
-
193
- interface TaskProps {
194
- id: TaskId;
195
- description: string;
196
- priority: Priority;
197
- status: TaskStatus;
198
- assignedAgentId?: string;
199
- createdAt: Date;
200
- updatedAt: Date;
201
- }
202
-
203
- export class Task extends AggregateRoot<TaskId> {
204
- private props: TaskProps;
205
-
206
- private constructor(props: TaskProps) {
207
- super(props.id);
208
- this.props = props;
209
- }
210
-
211
- static create(description: string, priority: Priority): Task {
212
- const task = new Task({
213
- id: TaskId.create(),
214
- description,
215
- priority,
216
- status: TaskStatus.pending(),
217
- createdAt: new Date(),
218
- updatedAt: new Date(),
219
- });
220
-
221
- return task;
222
- }
223
-
224
- static reconstitute(props: TaskProps): Task {
225
- return new Task(props);
226
- }
227
-
228
- public assignTo(agentId: string): void {
229
- if (this.props.status.equals(TaskStatus.completed())) {
230
- throw new Error("Cannot assign completed task");
231
- }
232
-
233
- this.props.assignedAgentId = agentId;
234
- this.props.status = TaskStatus.assigned();
235
- this.props.updatedAt = new Date();
236
-
237
- this.applyEvent(
238
- new TaskAssignedEvent(this.id.value, agentId, this.props.priority),
239
- );
240
- }
241
-
242
- public complete(result: TaskResult): void {
243
- if (!this.props.assignedAgentId) {
244
- throw new Error("Cannot complete unassigned task");
245
- }
246
-
247
- this.props.status = TaskStatus.completed();
248
- this.props.updatedAt = new Date();
249
-
250
- this.applyEvent(
251
- new TaskCompletedEvent(this.id.value, result, this.calculateDuration()),
252
- );
253
- }
254
-
255
- // Getters
256
- get description(): string {
257
- return this.props.description;
258
- }
259
- get priority(): Priority {
260
- return this.props.priority;
261
- }
262
- get status(): TaskStatus {
263
- return this.props.status;
264
- }
265
- get assignedAgentId(): string | undefined {
266
- return this.props.assignedAgentId;
267
- }
268
- get createdAt(): Date {
269
- return this.props.createdAt;
270
- }
271
- get updatedAt(): Date {
272
- return this.props.updatedAt;
273
- }
274
-
275
- private calculateDuration(): number {
276
- return this.props.updatedAt.getTime() - this.props.createdAt.getTime();
277
- }
278
- }
279
- ```
280
-
281
- ### Task Value Objects
282
-
283
- ```typescript
284
- // src/core/domains/task-management/value-objects/task-id.vo.ts
285
- export class TaskId extends ValueObject<string> {
286
- private constructor(value: string) {
287
- super({ value });
288
- }
289
-
290
- static create(): TaskId {
291
- return new TaskId(crypto.randomUUID());
292
- }
293
-
294
- static fromString(id: string): TaskId {
295
- if (!id || id.length === 0) {
296
- throw new Error("TaskId cannot be empty");
297
- }
298
- return new TaskId(id);
299
- }
300
-
301
- get value(): string {
302
- return this.props.value;
303
- }
304
- }
305
-
306
- // src/core/domains/task-management/value-objects/task-status.vo.ts
307
- type TaskStatusType =
308
- | "pending"
309
- | "assigned"
310
- | "in_progress"
311
- | "completed"
312
- | "failed";
313
-
314
- export class TaskStatus extends ValueObject<TaskStatusType> {
315
- private constructor(status: TaskStatusType) {
316
- super({ value: status });
317
- }
318
-
319
- static pending(): TaskStatus {
320
- return new TaskStatus("pending");
321
- }
322
- static assigned(): TaskStatus {
323
- return new TaskStatus("assigned");
324
- }
325
- static inProgress(): TaskStatus {
326
- return new TaskStatus("in_progress");
327
- }
328
- static completed(): TaskStatus {
329
- return new TaskStatus("completed");
330
- }
331
- static failed(): TaskStatus {
332
- return new TaskStatus("failed");
333
- }
334
-
335
- static fromString(value: string): TaskStatus {
336
- const valid: TaskStatusType[] = ["pending", "assigned", "in_progress", "completed", "failed"];
337
- if (!valid.includes(value as TaskStatusType)) {
338
- throw new Error(`Invalid TaskStatus value: "${value}"`);
339
- }
340
- return new TaskStatus(value as TaskStatusType);
341
- }
342
-
343
- get value(): TaskStatusType {
344
- return this.props.value;
345
- }
346
-
347
- public isPending(): boolean {
348
- return this.value === "pending";
349
- }
350
- public isAssigned(): boolean {
351
- return this.value === "assigned";
352
- }
353
- public isInProgress(): boolean {
354
- return this.value === "in_progress";
355
- }
356
- public isCompleted(): boolean {
357
- return this.value === "completed";
358
- }
359
- public isFailed(): boolean {
360
- return this.value === "failed";
361
- }
362
- }
363
-
364
- // src/core/domains/task-management/value-objects/priority.vo.ts
365
- type PriorityLevel = "low" | "medium" | "high" | "critical";
366
-
367
- export class Priority extends ValueObject<PriorityLevel> {
368
- private constructor(level: PriorityLevel) {
369
- super({ value: level });
370
- }
371
-
372
- static low(): Priority {
373
- return new Priority("low");
374
- }
375
- static medium(): Priority {
376
- return new Priority("medium");
377
- }
378
- static high(): Priority {
379
- return new Priority("high");
380
- }
381
- static critical(): Priority {
382
- return new Priority("critical");
383
- }
384
-
385
- static fromString(value: string): Priority {
386
- const valid: PriorityLevel[] = ["low", "medium", "high", "critical"];
387
- if (!valid.includes(value as PriorityLevel)) {
388
- throw new Error(`Invalid Priority value: "${value}"`);
389
- }
390
- return new Priority(value as PriorityLevel);
391
- }
392
-
393
- get value(): PriorityLevel {
394
- return this.props.value;
395
- }
396
-
397
- public getNumericValue(): number {
398
- const priorities = { low: 1, medium: 2, high: 3, critical: 4 };
399
- return priorities[this.value];
400
- }
401
- }
402
- ```
403
-
404
- ## Domain Services
405
-
406
- ### Task Scheduling Service
407
-
408
- ```typescript
409
- // src/core/domains/task-management/services/task-scheduling.service.ts
410
- import { Injectable } from "../../../shared/infrastructure/dependency-container";
411
- import { Task } from "../entities/task.entity";
412
- import { Priority } from "../value-objects/priority.vo";
413
-
414
- @Injectable()
415
- export class TaskSchedulingService {
416
- public prioritizeTasks(tasks: Task[]): Task[] {
417
- return tasks.sort(
418
- (a, b) => b.priority.getNumericValue() - a.priority.getNumericValue(),
419
- );
420
- }
421
-
422
- public canSchedule(task: Task, agentCapacity: number): boolean {
423
- if (agentCapacity <= 0) return false;
424
-
425
- // Critical tasks always schedulable
426
- if (task.priority.equals(Priority.critical())) return true;
427
-
428
- // Other logic based on capacity
429
- return true;
430
- }
431
-
432
- public calculateEstimatedDuration(task: Task): number {
433
- // Simple heuristic - would use ML in real implementation
434
- const baseTime = 300000; // 5 minutes
435
- const priorityMultiplier = {
436
- low: 0.5,
437
- medium: 1.0,
438
- high: 1.5,
439
- critical: 2.0,
440
- };
441
-
442
- return baseTime * priorityMultiplier[task.priority.value];
443
- }
444
- }
445
- ```
446
-
447
- ## Repository Interfaces & Implementations
448
-
449
- ### Task Repository Interface
450
-
451
- ```typescript
452
- // src/core/domains/task-management/repositories/task.repository.ts
453
- export interface ITaskRepository {
454
- save(task: Task): Promise<void>;
455
- findById(id: TaskId): Promise<Task | null>;
456
- findByAgentId(agentId: string): Promise<Task[]>;
457
- findByStatus(status: TaskStatus): Promise<Task[]>;
458
- findPendingTasks(): Promise<Task[]>;
459
- delete(id: TaskId): Promise<void>;
460
- }
461
- ```
462
-
463
- ### SQLite Implementation
464
-
465
- ```typescript
466
- // src/core/domains/task-management/repositories/sqlite-task.repository.ts
467
- @Injectable()
468
- export class SqliteTaskRepository implements ITaskRepository {
469
- constructor(
470
- @Inject("Database") private db: Database,
471
- @Inject("Logger") private logger: ILogger,
472
- ) {}
473
-
474
- async save(task: Task): Promise<void> {
475
- const sql = `
476
- INSERT OR REPLACE INTO tasks (
477
- id, description, priority, status, assigned_agent_id, created_at, updated_at
478
- ) VALUES (?, ?, ?, ?, ?, ?, ?)
479
- `;
480
-
481
- await this.db.run(sql, [
482
- task.id.value,
483
- task.description,
484
- task.priority.value,
485
- task.status.value,
486
- task.assignedAgentId,
487
- task.createdAt.toISOString(),
488
- task.updatedAt.toISOString(),
489
- ]);
490
-
491
- this.logger.debug(`Task saved: ${task.id.value}`);
492
- }
493
-
494
- async findById(id: TaskId): Promise<Task | null> {
495
- const sql = "SELECT * FROM tasks WHERE id = ?";
496
- const row = await this.db.get(sql, [id.value]);
497
-
498
- return row ? this.mapRowToTask(row) : null;
499
- }
500
-
501
- async findPendingTasks(): Promise<Task[]> {
502
- const sql =
503
- "SELECT * FROM tasks WHERE status = ? ORDER BY priority DESC, created_at ASC";
504
- const rows = await this.db.all(sql, ["pending"]);
505
-
506
- return rows.map((row) => this.mapRowToTask(row));
507
- }
508
-
509
- private mapRowToTask(row: any): Task {
510
- return Task.reconstitute({
511
- id: TaskId.fromString(row.id),
512
- description: row.description,
513
- priority: Priority.fromString(row.priority),
514
- status: TaskStatus.fromString(row.status),
515
- assignedAgentId: row.assigned_agent_id,
516
- createdAt: new Date(row.created_at),
517
- updatedAt: new Date(row.updated_at),
518
- });
519
- }
520
- }
521
- ```
522
-
523
- ## Application Layer
524
-
525
- ### Use Case Implementation
526
-
527
- ```typescript
528
- // src/core/application/use-cases/assign-task.use-case.ts
529
- @Injectable()
530
- export class AssignTaskUseCase {
531
- constructor(
532
- @Inject("TaskRepository") private taskRepository: ITaskRepository,
533
- @Inject("AgentRepository") private agentRepository: IAgentRepository,
534
- @Inject("DomainEventBus") private eventBus: DomainEventBus,
535
- @Inject("Logger") private logger: ILogger,
536
- ) {}
537
-
538
- async execute(command: AssignTaskCommand): Promise<AssignTaskResult> {
539
- try {
540
- // 1. Validate command
541
- await this.validateCommand(command);
542
-
543
- // 2. Load aggregates
544
- const task = await this.taskRepository.findById(command.taskId);
545
- if (!task) {
546
- throw new TaskNotFoundError(command.taskId);
547
- }
548
-
549
- const agent = await this.agentRepository.findById(command.agentId);
550
- if (!agent) {
551
- throw new AgentNotFoundError(command.agentId);
552
- }
553
-
554
- // 3. Business logic
555
- if (!agent.canAcceptTask(task)) {
556
- throw new AgentCannotAcceptTaskError(command.agentId, command.taskId);
557
- }
558
-
559
- task.assignTo(command.agentId);
560
- agent.acceptTask(task.id);
561
-
562
- // 4. Persist changes
563
- await Promise.all([
564
- this.taskRepository.save(task),
565
- this.agentRepository.save(agent),
566
- ]);
567
-
568
- // 5. Publish domain events
569
- const events = [
570
- ...task.getUncommittedEvents(),
571
- ...agent.getUncommittedEvents(),
572
- ];
573
-
574
- for (const event of events) {
575
- await this.eventBus.publish(event);
576
- }
577
-
578
- task.markEventsAsCommitted();
579
- agent.markEventsAsCommitted();
580
-
581
- // 6. Return result
582
- this.logger.info(
583
- `Task ${command.taskId.value} assigned to agent ${command.agentId}`,
584
- );
585
-
586
- return AssignTaskResult.success({
587
- taskId: task.id,
588
- agentId: command.agentId,
589
- assignedAt: new Date(),
590
- });
591
- } catch (error) {
592
- this.logger.error(
593
- `Failed to assign task ${command.taskId.value}:`,
594
- error,
595
- );
596
- return AssignTaskResult.failure(error);
597
- }
598
- }
599
-
600
- private async validateCommand(command: AssignTaskCommand): Promise<void> {
601
- if (!command.taskId) {
602
- throw new ValidationError("Task ID is required");
603
- }
604
- if (!command.agentId) {
605
- throw new ValidationError("Agent ID is required");
606
- }
607
- }
608
- }
609
- ```
610
-
611
- ## Dependency Injection Setup
612
-
613
- ### Container Configuration
614
-
615
- ```typescript
616
- // src/core/shared/infrastructure/dependency-container.ts
617
- import { Container } from "inversify";
618
- import { TYPES } from "./types";
619
-
620
- export class DependencyContainer {
621
- private container: Container;
622
-
623
- constructor() {
624
- this.container = new Container();
625
- this.setupBindings();
626
- }
627
-
628
- private setupBindings(): void {
629
- // Repositories
630
- this.container
631
- .bind<ITaskRepository>(TYPES.TaskRepository)
632
- .to(SqliteTaskRepository)
633
- .inSingletonScope();
634
-
635
- this.container
636
- .bind<IAgentRepository>(TYPES.AgentRepository)
637
- .to(SqliteAgentRepository)
638
- .inSingletonScope();
639
-
640
- // Services
641
- this.container
642
- .bind<TaskSchedulingService>(TYPES.TaskSchedulingService)
643
- .to(TaskSchedulingService)
644
- .inSingletonScope();
645
-
646
- // Use Cases
647
- this.container
648
- .bind<AssignTaskUseCase>(TYPES.AssignTaskUseCase)
649
- .to(AssignTaskUseCase)
650
- .inSingletonScope();
651
-
652
- // Infrastructure
653
- this.container
654
- .bind<ILogger>(TYPES.Logger)
655
- .to(ConsoleLogger)
656
- .inSingletonScope();
657
-
658
- this.container
659
- .bind<DomainEventBus>(TYPES.DomainEventBus)
660
- .to(InMemoryDomainEventBus)
661
- .inSingletonScope();
662
- }
663
-
664
- get<T>(serviceIdentifier: symbol): T {
665
- return this.container.get<T>(serviceIdentifier);
666
- }
667
-
668
- bind<T>(serviceIdentifier: symbol): BindingToSyntax<T> {
669
- return this.container.bind<T>(serviceIdentifier);
670
- }
671
- }
672
- ```
673
-
674
- ## Modern TypeScript Configuration
675
-
676
- ### Strict TypeScript Setup
677
-
678
- ```json
679
- // tsconfig.json
680
- {
681
- "compilerOptions": {
682
- "target": "ES2022",
683
- "lib": ["ES2022"],
684
- "module": "NodeNext",
685
- "moduleResolution": "NodeNext",
686
- "declaration": true,
687
- "outDir": "./dist",
688
- "strict": true,
689
- "exactOptionalPropertyTypes": true,
690
- "noImplicitReturns": true,
691
- "noFallthroughCasesInSwitch": true,
692
- "noUncheckedIndexedAccess": true,
693
- "noImplicitOverride": true,
694
- "experimentalDecorators": true,
695
- "emitDecoratorMetadata": true,
696
- "skipLibCheck": true,
697
- "forceConsistentCasingInFileNames": true,
698
- "resolveJsonModule": true,
699
- "esModuleInterop": true,
700
- "allowSyntheticDefaultImports": true,
701
- "baseUrl": ".",
702
- "paths": {
703
- "@/*": ["src/*"],
704
- "@core/*": ["src/core/*"],
705
- "@shared/*": ["src/core/shared/*"],
706
- "@domains/*": ["src/core/domains/*"]
707
- }
708
- },
709
- "include": ["src/**/*"],
710
- "exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts"]
711
- }
712
- ```
713
-
714
- ## Testing Implementation
715
-
716
- ### Domain Unit Tests
717
-
718
- ```typescript
719
- // src/core/domains/task-management/__tests__/entities/task.entity.test.ts
720
- describe("Task Entity", () => {
721
- let task: Task;
722
-
723
- beforeEach(() => {
724
- task = Task.create("Test task", Priority.medium());
725
- });
726
-
727
- describe("creation", () => {
728
- it("should create task with pending status", () => {
729
- expect(task.status.isPending()).toBe(true);
730
- expect(task.description).toBe("Test task");
731
- expect(task.priority.equals(Priority.medium())).toBe(true);
732
- });
733
-
734
- it("should generate unique ID", () => {
735
- const task1 = Task.create("Task 1", Priority.low());
736
- const task2 = Task.create("Task 2", Priority.low());
737
-
738
- expect(task1.id.equals(task2.id)).toBe(false);
739
- });
740
- });
741
-
742
- describe("assignment", () => {
743
- it("should assign to agent and change status", () => {
744
- const agentId = "agent-123";
745
-
746
- task.assignTo(agentId);
747
-
748
- expect(task.assignedAgentId).toBe(agentId);
749
- expect(task.status.isAssigned()).toBe(true);
750
- });
751
-
752
- it("should emit TaskAssignedEvent when assigned", () => {
753
- const agentId = "agent-123";
754
-
755
- task.assignTo(agentId);
756
-
757
- const events = task.getUncommittedEvents();
758
- expect(events).toHaveLength(1);
759
- expect(events[0]).toBeInstanceOf(TaskAssignedEvent);
760
- });
761
-
762
- it("should not allow assignment of completed task", () => {
763
- task.assignTo("agent-123");
764
- task.complete(TaskResult.success("done"));
765
-
766
- expect(() => task.assignTo("agent-456")).toThrow(
767
- "Cannot assign completed task",
768
- );
769
- });
770
- });
771
- });
772
- ```
773
-
774
- ### Integration Tests
775
-
776
- ```typescript
777
- // src/core/domains/task-management/__tests__/integration/task-repository.integration.test.ts
778
- describe("TaskRepository Integration", () => {
779
- let repository: SqliteTaskRepository;
780
- let db: Database;
781
-
782
- beforeEach(async () => {
783
- db = new Database(":memory:");
784
- await setupTasksTable(db);
785
- repository = new SqliteTaskRepository(db, new ConsoleLogger());
786
- });
787
-
788
- afterEach(async () => {
789
- await db.close();
790
- });
791
-
792
- it("should save and retrieve task", async () => {
793
- const task = Task.create("Test task", Priority.high());
794
-
795
- await repository.save(task);
796
- const retrieved = await repository.findById(task.id);
797
-
798
- expect(retrieved).toBeDefined();
799
- expect(retrieved!.id.equals(task.id)).toBe(true);
800
- expect(retrieved!.description).toBe("Test task");
801
- expect(retrieved!.priority.equals(Priority.high())).toBe(true);
802
- });
803
-
804
- it("should find pending tasks ordered by priority", async () => {
805
- const lowTask = Task.create("Low priority", Priority.low());
806
- const highTask = Task.create("High priority", Priority.high());
807
-
808
- await repository.save(lowTask);
809
- await repository.save(highTask);
810
-
811
- const pending = await repository.findPendingTasks();
812
-
813
- expect(pending).toHaveLength(2);
814
- expect(pending[0].id.equals(highTask.id)).toBe(true); // High priority first
815
- expect(pending[1].id.equals(lowTask.id)).toBe(true);
816
- });
817
- });
818
- ```
819
-
820
- ## Performance Optimizations
821
-
822
- ### Entity Caching
823
-
824
- ```typescript
825
- // src/core/shared/infrastructure/entity-cache.ts
826
- @Injectable()
827
- export class EntityCache<T extends Entity<any>> {
828
- private cache = new Map<string, { entity: T; timestamp: number }>();
829
- private readonly ttl: number = 300000; // 5 minutes
830
-
831
- set(id: string, entity: T): void {
832
- this.cache.set(id, { entity, timestamp: Date.now() });
833
- }
834
-
835
- get(id: string): T | null {
836
- const cached = this.cache.get(id);
837
- if (!cached) return null;
838
-
839
- // Check TTL
840
- if (Date.now() - cached.timestamp > this.ttl) {
841
- this.cache.delete(id);
842
- return null;
843
- }
844
-
845
- return cached.entity;
846
- }
847
-
848
- invalidate(id: string): void {
849
- this.cache.delete(id);
850
- }
851
-
852
- clear(): void {
853
- this.cache.clear();
854
- }
855
- }
856
- ```
857
-
858
- ## Success Metrics
859
-
860
- - [ ] **Domain Isolation**: 100% clean dependency boundaries
861
- - [ ] **Test Coverage**: >90% unit test coverage for domain logic
862
- - [ ] **Type Safety**: Strict TypeScript compilation with zero any types
863
- - [ ] **Performance**: <50ms average use case execution time
864
- - [ ] **Memory Efficiency**: <100MB heap usage for core domains
865
- - [ ] **Plugin Architecture**: Modular domain loading capability
866
-
867
- ## Related Skills
868
-
869
- - `ddd-architecture` - DDD architectural design
870
- - `mcp-optimization` - MCP server integration
871
- - `memory-unification` - AgentDB repository integration
872
- - `swarm-coordination` - Swarm domain implementation
873
-
874
- ## Usage Examples
875
-
876
- ### Complete Core Implementation
877
-
878
- ```bash
879
- # Full core module implementation
880
- Task("Core implementation",
881
- "Implement all core domains with DDD patterns and comprehensive testing",
882
- "core-implementer")
883
- ```
884
-
885
- ### Domain-Specific Implementation
886
-
887
- ```bash
888
- # Single domain implementation
889
- Task("Task domain implementation",
890
- "Implement task management domain with entities, services, and repositories",
891
- "core-implementer")
892
- ```