atabey 0.0.11 → 0.0.13

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 (522) hide show
  1. package/ATABEY.md +52 -249
  2. package/PRIVACY.md +161 -0
  3. package/README.md +355 -140
  4. package/bin/completion.sh +30 -0
  5. package/bin/{validate-agent-army.js → validate-al-registry.js} +6 -6
  6. package/dist/framework-mcp/src/index.js +14 -2
  7. package/dist/framework-mcp/src/index.js.map +1 -1
  8. package/dist/framework-mcp/src/resources/index.js +5 -5
  9. package/dist/framework-mcp/src/resources/index.js.map +1 -1
  10. package/dist/framework-mcp/src/tools/control_plane/locking.d.ts +1 -1
  11. package/dist/framework-mcp/src/tools/control_plane/locking.js +11 -9
  12. package/dist/framework-mcp/src/tools/control_plane/locking.js.map +1 -1
  13. package/dist/framework-mcp/src/tools/definitions.d.ts +5 -0
  14. package/dist/framework-mcp/src/tools/definitions.js +116 -241
  15. package/dist/framework-mcp/src/tools/definitions.js.map +1 -1
  16. package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js +4 -4
  17. package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js.map +1 -1
  18. package/dist/framework-mcp/src/tools/file_system/read_file.js +1 -1
  19. package/dist/framework-mcp/src/tools/file_system/replace_text.js +3 -3
  20. package/dist/framework-mcp/src/tools/file_system/replace_text.js.map +1 -1
  21. package/dist/framework-mcp/src/tools/file_system/write_file.d.ts +1 -1
  22. package/dist/framework-mcp/src/tools/file_system/write_file.js +4 -4
  23. package/dist/framework-mcp/src/tools/file_system/write_file.js.map +1 -1
  24. package/dist/framework-mcp/src/tools/framework/audit_deps.js +1 -1
  25. package/dist/framework-mcp/src/tools/framework/audit_deps.js.map +1 -1
  26. package/dist/framework-mcp/src/tools/framework/submit_plan.d.ts +4 -3
  27. package/dist/framework-mcp/src/tools/framework/submit_plan.js.map +1 -1
  28. package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.d.ts +19 -0
  29. package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js +138 -0
  30. package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js.map +1 -0
  31. package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.d.ts +8 -0
  32. package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js +91 -0
  33. package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js.map +1 -0
  34. package/dist/framework-mcp/src/tools/index.d.ts +2 -0
  35. package/dist/framework-mcp/src/tools/index.js +81 -17
  36. package/dist/framework-mcp/src/tools/index.js.map +1 -1
  37. package/dist/framework-mcp/src/tools/memory/delete_knowledge.d.ts +8 -0
  38. package/dist/framework-mcp/src/tools/memory/delete_knowledge.js +29 -0
  39. package/dist/framework-mcp/src/tools/memory/delete_knowledge.js.map +1 -0
  40. package/dist/framework-mcp/src/tools/memory/read_memory.js +1 -1
  41. package/dist/framework-mcp/src/tools/memory/read_memory.js.map +1 -1
  42. package/dist/framework-mcp/src/tools/memory/search_knowledge.d.ts +8 -0
  43. package/dist/framework-mcp/src/tools/memory/search_knowledge.js +49 -0
  44. package/dist/framework-mcp/src/tools/memory/search_knowledge.js.map +1 -0
  45. package/dist/framework-mcp/src/tools/memory/store_knowledge.d.ts +10 -0
  46. package/dist/framework-mcp/src/tools/memory/store_knowledge.js +31 -0
  47. package/dist/framework-mcp/src/tools/memory/store_knowledge.js.map +1 -0
  48. package/dist/framework-mcp/src/tools/messaging/ask_human.d.ts +6 -0
  49. package/dist/framework-mcp/src/tools/messaging/ask_human.js +31 -0
  50. package/dist/framework-mcp/src/tools/messaging/ask_human.js.map +1 -0
  51. package/dist/framework-mcp/src/tools/observability/check_ports.js +1 -1
  52. package/dist/framework-mcp/src/tools/observability/check_ports.js.map +1 -1
  53. package/dist/framework-mcp/src/tools/observability/get_health.js +1 -1
  54. package/dist/framework-mcp/src/tools/quality/analyze_code_quality.d.ts +11 -0
  55. package/dist/framework-mcp/src/tools/quality/analyze_code_quality.js +166 -0
  56. package/dist/framework-mcp/src/tools/quality/analyze_code_quality.js.map +1 -0
  57. package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.d.ts +11 -0
  58. package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js +135 -0
  59. package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js.map +1 -0
  60. package/dist/framework-mcp/src/tools/schemas.d.ts +439 -0
  61. package/dist/framework-mcp/src/tools/schemas.js +183 -0
  62. package/dist/framework-mcp/src/tools/schemas.js.map +1 -0
  63. package/dist/framework-mcp/src/tools/search/get_map.js +2 -2
  64. package/dist/framework-mcp/src/tools/search/get_map.js.map +1 -1
  65. package/dist/framework-mcp/src/tools/search/grep_search.js +10 -7
  66. package/dist/framework-mcp/src/tools/search/grep_search.js.map +1 -1
  67. package/dist/framework-mcp/src/tools/shell/run_command.js +72 -7
  68. package/dist/framework-mcp/src/tools/shell/run_command.js.map +1 -1
  69. package/dist/framework-mcp/src/tools/types.d.ts +10 -9
  70. package/dist/framework-mcp/src/utils/compliance.d.ts +10 -0
  71. package/dist/framework-mcp/src/utils/compliance.js +102 -41
  72. package/dist/framework-mcp/src/utils/compliance.js.map +1 -1
  73. package/dist/framework-mcp/src/utils/fs.d.ts +10 -7
  74. package/dist/framework-mcp/src/utils/fs.js +10 -7
  75. package/dist/framework-mcp/src/utils/fs.js.map +1 -1
  76. package/dist/framework-mcp/src/utils/types.d.ts +8 -0
  77. package/dist/framework-mcp/src/utils/types.js +4 -0
  78. package/dist/framework-mcp/src/utils/types.js.map +1 -1
  79. package/dist/framework-mcp/src/utils/zod-to-mcp.d.ts +10 -0
  80. package/dist/framework-mcp/src/utils/zod-to-mcp.js +80 -0
  81. package/dist/framework-mcp/src/utils/zod-to-mcp.js.map +1 -0
  82. package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js +4 -4
  83. package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js.map +1 -1
  84. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js +17 -16
  85. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js.map +1 -1
  86. package/dist/src/cli/adapters/core.js +2 -1
  87. package/dist/src/cli/adapters/core.js.map +1 -1
  88. package/dist/src/cli/adapters/scaffold.js +2 -1
  89. package/dist/src/cli/adapters/scaffold.js.map +1 -1
  90. package/dist/src/cli/commands/check.js +17 -17
  91. package/dist/src/cli/commands/check.js.map +1 -1
  92. package/dist/src/cli/commands/compliance.d.ts +5 -1
  93. package/dist/src/cli/commands/compliance.js +34 -42
  94. package/dist/src/cli/commands/compliance.js.map +1 -1
  95. package/dist/src/cli/commands/contract.js +6 -5
  96. package/dist/src/cli/commands/contract.js.map +1 -1
  97. package/dist/src/cli/commands/coverage.d.ts +1 -0
  98. package/dist/src/cli/commands/coverage.js +121 -0
  99. package/dist/src/cli/commands/coverage.js.map +1 -0
  100. package/dist/src/cli/commands/dashboard.d.ts +1 -1
  101. package/dist/src/cli/commands/dashboard.js +479 -39
  102. package/dist/src/cli/commands/dashboard.js.map +1 -1
  103. package/dist/src/cli/commands/explorer.js +8 -7
  104. package/dist/src/cli/commands/explorer.js.map +1 -1
  105. package/dist/src/cli/commands/gateway.d.ts +1 -0
  106. package/dist/src/cli/commands/gateway.js +172 -0
  107. package/dist/src/cli/commands/gateway.js.map +1 -0
  108. package/dist/src/cli/commands/git.js +8 -9
  109. package/dist/src/cli/commands/git.js.map +1 -1
  110. package/dist/src/cli/commands/index-codebase.d.ts +4 -0
  111. package/dist/src/cli/commands/index-codebase.js +52 -0
  112. package/dist/src/cli/commands/index-codebase.js.map +1 -0
  113. package/dist/src/cli/commands/init/create-agent.js +3 -3
  114. package/dist/src/cli/commands/init/create-agent.js.map +1 -1
  115. package/dist/src/cli/commands/init/scaffold-core.d.ts +1 -1
  116. package/dist/src/cli/commands/init/scaffold-core.js +7 -6
  117. package/dist/src/cli/commands/init/scaffold-core.js.map +1 -1
  118. package/dist/src/cli/commands/init/scaffold-docs.js +4 -3
  119. package/dist/src/cli/commands/init/scaffold-docs.js.map +1 -1
  120. package/dist/src/cli/commands/init/scaffold-ops.js +3 -3
  121. package/dist/src/cli/commands/init/scaffold-ops.js.map +1 -1
  122. package/dist/src/cli/commands/init/scaffold-standards.js +11 -7
  123. package/dist/src/cli/commands/init/scaffold-standards.js.map +1 -1
  124. package/dist/src/cli/commands/init.d.ts +2 -0
  125. package/dist/src/cli/commands/init.js +127 -45
  126. package/dist/src/cli/commands/init.js.map +1 -1
  127. package/dist/src/cli/commands/knowledge.js +5 -32
  128. package/dist/src/cli/commands/knowledge.js.map +1 -1
  129. package/dist/src/cli/commands/lint.js +5 -4
  130. package/dist/src/cli/commands/lint.js.map +1 -1
  131. package/dist/src/cli/commands/mcp.d.ts +11 -0
  132. package/dist/src/cli/commands/mcp.js +130 -0
  133. package/dist/src/cli/commands/mcp.js.map +1 -0
  134. package/dist/src/cli/commands/orchestrate.d.ts +10 -9
  135. package/dist/src/cli/commands/orchestrate.js +132 -66
  136. package/dist/src/cli/commands/orchestrate.js.map +1 -1
  137. package/dist/src/cli/commands/plan.js +16 -14
  138. package/dist/src/cli/commands/plan.js.map +1 -1
  139. package/dist/src/cli/commands/quickstart.d.ts +9 -0
  140. package/dist/src/cli/commands/quickstart.js +72 -0
  141. package/dist/src/cli/commands/quickstart.js.map +1 -0
  142. package/dist/src/cli/commands/script.js +6 -5
  143. package/dist/src/cli/commands/script.js.map +1 -1
  144. package/dist/src/cli/commands/security.js +5 -8
  145. package/dist/src/cli/commands/security.js.map +1 -1
  146. package/dist/src/cli/commands/status.js +23 -19
  147. package/dist/src/cli/commands/status.js.map +1 -1
  148. package/dist/src/cli/commands/trace.d.ts +2 -0
  149. package/dist/src/cli/commands/trace.js +59 -61
  150. package/dist/src/cli/commands/trace.js.map +1 -1
  151. package/dist/src/cli/index.js +236 -294
  152. package/dist/src/cli/index.js.map +1 -1
  153. package/dist/src/cli/platforms/core.d.ts +12 -0
  154. package/dist/src/cli/platforms/core.js +73 -0
  155. package/dist/src/cli/platforms/core.js.map +1 -0
  156. package/dist/src/cli/platforms/index.d.ts +5 -0
  157. package/dist/src/cli/platforms/index.js +6 -0
  158. package/dist/src/cli/platforms/index.js.map +1 -0
  159. package/dist/src/cli/platforms/paths.d.ts +15 -0
  160. package/dist/src/cli/platforms/paths.js +102 -0
  161. package/dist/src/cli/platforms/paths.js.map +1 -0
  162. package/dist/src/cli/platforms/scaffold.d.ts +2 -0
  163. package/dist/src/cli/platforms/scaffold.js +73 -0
  164. package/dist/src/cli/platforms/scaffold.js.map +1 -0
  165. package/dist/src/cli/platforms/utils.d.ts +4 -0
  166. package/dist/src/cli/platforms/utils.js +76 -0
  167. package/dist/src/cli/platforms/utils.js.map +1 -0
  168. package/dist/src/cli/shims.js +5 -5
  169. package/dist/src/cli/utils/claude.js +2 -1
  170. package/dist/src/cli/utils/claude.js.map +1 -1
  171. package/dist/src/cli/utils/compliance.d.ts +10 -9
  172. package/dist/src/cli/utils/compliance.js +10 -171
  173. package/dist/src/cli/utils/compliance.js.map +1 -1
  174. package/dist/src/cli/utils/fs.d.ts +3 -3
  175. package/dist/src/cli/utils/fs.js +8 -7
  176. package/dist/src/cli/utils/fs.js.map +1 -1
  177. package/dist/src/cli/utils/i18n.d.ts +5 -0
  178. package/dist/src/cli/utils/i18n.js +5 -0
  179. package/dist/src/cli/utils/i18n.js.map +1 -1
  180. package/dist/src/cli/utils/memory.js +9 -6
  181. package/dist/src/cli/utils/memory.js.map +1 -1
  182. package/dist/src/cli/utils/pkg.js +8 -7
  183. package/dist/src/cli/utils/pkg.js.map +1 -1
  184. package/dist/src/cli/utils/schemas.d.ts +4 -4
  185. package/dist/src/cli/utils/ui.d.ts +23 -0
  186. package/dist/src/cli/utils/ui.js +42 -0
  187. package/dist/src/cli/utils/ui.js.map +1 -1
  188. package/dist/src/contracts/tasks.d.ts +4 -4
  189. package/dist/src/dashboard/src/hooks/useApi.d.ts +18 -0
  190. package/dist/src/dashboard/src/hooks/useApi.js +47 -0
  191. package/dist/src/dashboard/src/hooks/useApi.js.map +1 -0
  192. package/dist/src/dashboard/src/hooks/useSSE.d.ts +12 -0
  193. package/dist/src/dashboard/src/hooks/useSSE.js +60 -0
  194. package/dist/src/dashboard/src/hooks/useSSE.js.map +1 -0
  195. package/dist/src/modules/adapters/shared.js +3 -3
  196. package/dist/src/modules/adapters/shared.js.map +1 -1
  197. package/dist/src/modules/agents/definitions.d.ts +5 -13
  198. package/dist/src/modules/agents/definitions.js +179 -78
  199. package/dist/src/modules/agents/definitions.js.map +1 -1
  200. package/dist/src/modules/agents/registry/analyst.js +2 -1
  201. package/dist/src/modules/agents/registry/analyst.js.map +1 -1
  202. package/dist/src/modules/agents/registry/architect.js +1 -0
  203. package/dist/src/modules/agents/registry/architect.js.map +1 -1
  204. package/dist/src/modules/agents/registry/backend.js +8 -6
  205. package/dist/src/modules/agents/registry/backend.js.map +1 -1
  206. package/dist/src/modules/agents/registry/database.js.map +1 -1
  207. package/dist/src/modules/agents/registry/devops.js.map +1 -1
  208. package/dist/src/modules/agents/registry/explorer.js +2 -0
  209. package/dist/src/modules/agents/registry/explorer.js.map +1 -1
  210. package/dist/src/modules/agents/registry/frontend.js +8 -6
  211. package/dist/src/modules/agents/registry/frontend.js.map +1 -1
  212. package/dist/src/modules/agents/registry/git.js.map +1 -1
  213. package/dist/src/modules/agents/registry/manager.js +11 -4
  214. package/dist/src/modules/agents/registry/manager.js.map +1 -1
  215. package/dist/src/modules/agents/registry/mobile.js +7 -5
  216. package/dist/src/modules/agents/registry/mobile.js.map +1 -1
  217. package/dist/src/modules/agents/registry/native.js +7 -5
  218. package/dist/src/modules/agents/registry/native.js.map +1 -1
  219. package/dist/src/modules/agents/registry/quality.js +11 -8
  220. package/dist/src/modules/agents/registry/quality.js.map +1 -1
  221. package/dist/src/modules/agents/registry/security.js.map +1 -1
  222. package/dist/src/modules/contracts/api.d.ts +178 -0
  223. package/dist/src/modules/contracts/api.js +56 -0
  224. package/dist/src/modules/contracts/api.js.map +1 -0
  225. package/dist/src/modules/contracts/index.d.ts +5 -0
  226. package/dist/src/modules/contracts/index.js +6 -0
  227. package/dist/src/modules/contracts/index.js.map +1 -0
  228. package/dist/src/modules/engines/agent-executor.d.ts +50 -0
  229. package/dist/src/modules/engines/agent-executor.js +188 -0
  230. package/dist/src/modules/engines/agent-executor.js.map +1 -0
  231. package/dist/src/modules/engines/health-engine.d.ts +7 -1
  232. package/dist/src/modules/engines/health-engine.js +85 -8
  233. package/dist/src/modules/engines/health-engine.js.map +1 -1
  234. package/dist/src/modules/engines/planning-engine.d.ts +1 -1
  235. package/dist/src/modules/engines/planning-engine.js +5 -4
  236. package/dist/src/modules/engines/planning-engine.js.map +1 -1
  237. package/dist/src/modules/engines/quality-gate.d.ts +23 -0
  238. package/dist/src/modules/engines/quality-gate.js +85 -0
  239. package/dist/src/modules/engines/quality-gate.js.map +1 -0
  240. package/dist/src/modules/engines/risk-engine.js +6 -6
  241. package/dist/src/modules/engines/risk-engine.js.map +1 -1
  242. package/dist/src/modules/engines/routing-engine.d.ts +59 -1
  243. package/dist/src/modules/engines/routing-engine.js +353 -25
  244. package/dist/src/modules/engines/routing-engine.js.map +1 -1
  245. package/dist/src/modules/engines/types.d.ts +7 -3
  246. package/dist/src/modules/gateway/circuit-breaker.d.ts +40 -0
  247. package/dist/src/modules/gateway/circuit-breaker.js +163 -0
  248. package/dist/src/modules/gateway/circuit-breaker.js.map +1 -0
  249. package/dist/src/modules/gateway/cost-tracker.d.ts +55 -0
  250. package/dist/src/modules/gateway/cost-tracker.js +127 -0
  251. package/dist/src/modules/gateway/cost-tracker.js.map +1 -0
  252. package/dist/src/modules/gateway/gateway.d.ts +68 -0
  253. package/dist/src/modules/gateway/gateway.js +235 -0
  254. package/dist/src/modules/gateway/gateway.js.map +1 -0
  255. package/dist/src/modules/gateway/index.d.ts +19 -0
  256. package/dist/src/modules/gateway/index.js +19 -0
  257. package/dist/src/modules/gateway/index.js.map +1 -0
  258. package/dist/src/modules/gateway/load-balancer.d.ts +86 -0
  259. package/dist/src/modules/gateway/load-balancer.js +230 -0
  260. package/dist/src/modules/gateway/load-balancer.js.map +1 -0
  261. package/dist/src/modules/gateway/providers/anthropic.d.ts +14 -0
  262. package/dist/src/modules/gateway/providers/anthropic.js +169 -0
  263. package/dist/src/modules/gateway/providers/anthropic.js.map +1 -0
  264. package/dist/src/modules/gateway/providers/base.d.ts +38 -0
  265. package/dist/src/modules/gateway/providers/base.js +42 -0
  266. package/dist/src/modules/gateway/providers/base.js.map +1 -0
  267. package/dist/src/modules/gateway/providers/google.d.ts +18 -0
  268. package/dist/src/modules/gateway/providers/google.js +176 -0
  269. package/dist/src/modules/gateway/providers/google.js.map +1 -0
  270. package/dist/src/modules/gateway/providers/grok.d.ts +14 -0
  271. package/dist/src/modules/gateway/providers/grok.js +166 -0
  272. package/dist/src/modules/gateway/providers/grok.js.map +1 -0
  273. package/dist/src/modules/gateway/providers/index.d.ts +21 -0
  274. package/dist/src/modules/gateway/providers/index.js +38 -0
  275. package/dist/src/modules/gateway/providers/index.js.map +1 -0
  276. package/dist/src/modules/gateway/providers/ollama.d.ts +23 -0
  277. package/dist/src/modules/gateway/providers/ollama.js +187 -0
  278. package/dist/src/modules/gateway/providers/ollama.js.map +1 -0
  279. package/dist/src/modules/gateway/providers/openai.d.ts +14 -0
  280. package/dist/src/modules/gateway/providers/openai.js +170 -0
  281. package/dist/src/modules/gateway/providers/openai.js.map +1 -0
  282. package/dist/src/modules/gateway/rate-limiter.d.ts +41 -0
  283. package/dist/src/modules/gateway/rate-limiter.js +119 -0
  284. package/dist/src/modules/gateway/rate-limiter.js.map +1 -0
  285. package/dist/src/modules/gateway/types.d.ts +114 -0
  286. package/dist/src/modules/gateway/types.js +8 -0
  287. package/dist/src/modules/gateway/types.js.map +1 -0
  288. package/dist/src/modules/memory/core.d.ts +42 -0
  289. package/dist/src/modules/memory/core.js +100 -0
  290. package/dist/src/modules/memory/core.js.map +1 -0
  291. package/dist/src/modules/memory/embedding.d.ts +28 -0
  292. package/dist/src/modules/memory/embedding.js +131 -0
  293. package/dist/src/modules/memory/embedding.js.map +1 -0
  294. package/dist/src/modules/memory/types.d.ts +18 -0
  295. package/dist/src/modules/memory/types.js +2 -0
  296. package/dist/src/modules/memory/types.js.map +1 -0
  297. package/dist/src/modules/memory/vector-store.d.ts +13 -0
  298. package/dist/src/modules/memory/vector-store.js +75 -0
  299. package/dist/src/modules/memory/vector-store.js.map +1 -0
  300. package/dist/src/modules/providers/definitions.d.ts +9 -0
  301. package/dist/src/modules/providers/definitions.js +141 -0
  302. package/dist/src/modules/providers/definitions.js.map +1 -0
  303. package/dist/src/modules/providers/registry.d.ts +12 -0
  304. package/dist/src/modules/providers/registry.js +19 -0
  305. package/dist/src/modules/providers/registry.js.map +1 -0
  306. package/dist/src/modules/providers/shared.d.ts +1 -0
  307. package/dist/src/modules/providers/shared.js +105 -0
  308. package/dist/src/modules/providers/shared.js.map +1 -0
  309. package/dist/src/modules/providers/types.d.ts +14 -0
  310. package/dist/src/modules/providers/types.js +2 -0
  311. package/dist/src/modules/providers/types.js.map +1 -0
  312. package/dist/src/modules/skills/adapter-skills.d.ts +68 -0
  313. package/dist/src/modules/skills/adapter-skills.js +450 -0
  314. package/dist/src/modules/skills/adapter-skills.js.map +1 -0
  315. package/dist/src/shared/audit.d.ts +105 -0
  316. package/dist/src/shared/audit.js +220 -0
  317. package/dist/src/shared/audit.js.map +1 -0
  318. package/dist/src/shared/constants.d.ts +11 -11
  319. package/dist/src/shared/constants.js +3 -3
  320. package/dist/src/shared/constants.js.map +1 -1
  321. package/dist/src/shared/fs.js +4 -2
  322. package/dist/src/shared/fs.js.map +1 -1
  323. package/dist/src/shared/lock.d.ts +82 -0
  324. package/dist/src/shared/lock.js +160 -0
  325. package/dist/src/shared/lock.js.map +1 -0
  326. package/dist/src/shared/logger.d.ts +2 -0
  327. package/dist/src/shared/logger.js +15 -5
  328. package/dist/src/shared/logger.js.map +1 -1
  329. package/dist/src/shared/pii.d.ts +37 -0
  330. package/dist/src/shared/pii.js +122 -0
  331. package/dist/src/shared/pii.js.map +1 -0
  332. package/dist/src/shared/retention.d.ts +63 -0
  333. package/dist/src/shared/retention.js +171 -0
  334. package/dist/src/shared/retention.js.map +1 -0
  335. package/dist/src/shared/storage.d.ts +13 -11
  336. package/dist/src/shared/storage.js +18 -14
  337. package/dist/src/shared/storage.js.map +1 -1
  338. package/dist/src/shared/string.d.ts +1 -0
  339. package/dist/src/shared/string.js +30 -0
  340. package/dist/src/shared/string.js.map +1 -0
  341. package/dist/src/shared/types.d.ts +8 -0
  342. package/dist/src/shared/types.js +4 -0
  343. package/dist/src/shared/types.js.map +1 -1
  344. package/dist/tests/adapter.test.js +3 -2
  345. package/dist/tests/adapter.test.js.map +1 -1
  346. package/dist/tests/adapters/paths.test.js +4 -4
  347. package/dist/tests/adapters/paths.test.js.map +1 -1
  348. package/dist/tests/cli/commands/check.test.d.ts +1 -0
  349. package/dist/tests/cli/commands/check.test.js +9 -0
  350. package/dist/tests/cli/commands/check.test.js.map +1 -0
  351. package/dist/tests/cli/commands/coverage.test.d.ts +1 -0
  352. package/dist/tests/cli/commands/coverage.test.js +9 -0
  353. package/dist/tests/cli/commands/coverage.test.js.map +1 -0
  354. package/dist/tests/cli/commands/dashboard-coverage.test.d.ts +1 -0
  355. package/dist/tests/cli/commands/dashboard-coverage.test.js +88 -0
  356. package/dist/tests/cli/commands/dashboard-coverage.test.js.map +1 -0
  357. package/dist/tests/cli/commands/exports.test.d.ts +1 -0
  358. package/dist/tests/cli/commands/exports.test.js +61 -0
  359. package/dist/tests/cli/commands/exports.test.js.map +1 -0
  360. package/dist/tests/cli/commands/lint.test.d.ts +1 -0
  361. package/dist/tests/cli/commands/lint.test.js +9 -0
  362. package/dist/tests/cli/commands/lint.test.js.map +1 -0
  363. package/dist/tests/cli/init/adapter_init.test.js +4 -5
  364. package/dist/tests/cli/init/adapter_init.test.js.map +1 -1
  365. package/dist/tests/cli/init/unified_init.test.js +5 -7
  366. package/dist/tests/cli/init/unified_init.test.js.map +1 -1
  367. package/dist/tests/core-memory.test.d.ts +1 -0
  368. package/dist/tests/core-memory.test.js +78 -0
  369. package/dist/tests/core-memory.test.js.map +1 -0
  370. package/dist/tests/dashboard.test.d.ts +1 -0
  371. package/dist/tests/dashboard.test.js +116 -0
  372. package/dist/tests/dashboard.test.js.map +1 -0
  373. package/dist/tests/fs-utils.test.js +5 -5
  374. package/dist/tests/fs-utils.test.js.map +1 -1
  375. package/dist/tests/integration/agent_flow.test.js +24 -10
  376. package/dist/tests/integration/agent_flow.test.js.map +1 -1
  377. package/dist/tests/modules/adapters/adapters.test.js +2 -2
  378. package/dist/tests/modules/adapters/adapters.test.js.map +1 -1
  379. package/dist/tests/modules/contracts/contracts.test.d.ts +1 -0
  380. package/dist/tests/modules/contracts/contracts.test.js +73 -0
  381. package/dist/tests/modules/contracts/contracts.test.js.map +1 -0
  382. package/dist/tests/modules/engines/agent-executor.test.d.ts +1 -0
  383. package/dist/tests/modules/engines/agent-executor.test.js +61 -0
  384. package/dist/tests/modules/engines/agent-executor.test.js.map +1 -0
  385. package/dist/tests/modules/engines/evaluation-engine.test.d.ts +1 -0
  386. package/dist/tests/modules/engines/evaluation-engine.test.js +45 -0
  387. package/dist/tests/modules/engines/evaluation-engine.test.js.map +1 -0
  388. package/dist/tests/modules/engines/health-engine.test.d.ts +1 -0
  389. package/dist/tests/modules/engines/health-engine.test.js +56 -0
  390. package/dist/tests/modules/engines/health-engine.test.js.map +1 -0
  391. package/dist/tests/modules/engines/planning-engine.test.d.ts +1 -0
  392. package/dist/tests/modules/engines/planning-engine.test.js +75 -0
  393. package/dist/tests/modules/engines/planning-engine.test.js.map +1 -0
  394. package/dist/tests/modules/engines/risk-engine.test.d.ts +1 -0
  395. package/dist/tests/modules/engines/risk-engine.test.js +61 -0
  396. package/dist/tests/modules/engines/risk-engine.test.js.map +1 -0
  397. package/dist/tests/modules/engines/routing-engine.test.d.ts +1 -0
  398. package/dist/tests/modules/engines/routing-engine.test.js +56 -0
  399. package/dist/tests/modules/engines/routing-engine.test.js.map +1 -0
  400. package/dist/tests/modules/gateway/circuit-breaker.test.d.ts +1 -0
  401. package/dist/tests/modules/gateway/circuit-breaker.test.js +124 -0
  402. package/dist/tests/modules/gateway/circuit-breaker.test.js.map +1 -0
  403. package/dist/tests/modules/gateway/cost-tracker.test.d.ts +1 -0
  404. package/dist/tests/modules/gateway/cost-tracker.test.js +74 -0
  405. package/dist/tests/modules/gateway/cost-tracker.test.js.map +1 -0
  406. package/dist/tests/modules/gateway/load-balancer.test.d.ts +1 -0
  407. package/dist/tests/modules/gateway/load-balancer.test.js +70 -0
  408. package/dist/tests/modules/gateway/load-balancer.test.js.map +1 -0
  409. package/dist/tests/modules/gateway/rate-limiter.test.d.ts +1 -0
  410. package/dist/tests/modules/gateway/rate-limiter.test.js +62 -0
  411. package/dist/tests/modules/gateway/rate-limiter.test.js.map +1 -0
  412. package/dist/tests/modules/memory/vector-store.test.d.ts +1 -0
  413. package/dist/tests/modules/memory/vector-store.test.js +109 -0
  414. package/dist/tests/modules/memory/vector-store.test.js.map +1 -0
  415. package/dist/tests/orchestrator-dependencies.test.js +40 -22
  416. package/dist/tests/orchestrator-dependencies.test.js.map +1 -1
  417. package/dist/tests/planning-engine.test.js +9 -8
  418. package/dist/tests/planning-engine.test.js.map +1 -1
  419. package/dist/tests/risk-engine.test.d.ts +1 -0
  420. package/dist/tests/risk-engine.test.js +44 -0
  421. package/dist/tests/risk-engine.test.js.map +1 -0
  422. package/dist/tests/shared/audit.test.d.ts +1 -0
  423. package/dist/tests/shared/audit.test.js +53 -0
  424. package/dist/tests/shared/audit.test.js.map +1 -0
  425. package/dist/tests/status-cost.test.js +15 -24
  426. package/dist/tests/status-cost.test.js.map +1 -1
  427. package/dist/tests/status.test.js +16 -17
  428. package/dist/tests/status.test.js.map +1 -1
  429. package/dist/tests/storage-operations.test.d.ts +1 -0
  430. package/dist/tests/storage-operations.test.js +116 -0
  431. package/dist/tests/storage-operations.test.js.map +1 -0
  432. package/dist/tests/trace-replay.test.js +34 -40
  433. package/dist/tests/trace-replay.test.js.map +1 -1
  434. package/dist/ui/assets/index-B-d2ejS8.js +519 -0
  435. package/dist/ui/assets/index-CyXywq5G.css +1 -0
  436. package/dist/ui/index.html +2 -2
  437. package/dist/vitest.config.js +5 -5
  438. package/dist/vitest.config.js.map +1 -1
  439. package/framework-mcp/README.md +339 -25
  440. package/framework-mcp/dist/dashboard/assets/index-BAPGLiWE.js +267 -0
  441. package/framework-mcp/dist/dashboard/index.html +15 -0
  442. package/framework-mcp/dist/framework-mcp/src/constants.js +64 -0
  443. package/framework-mcp/dist/framework-mcp/src/index.js +156 -0
  444. package/framework-mcp/dist/framework-mcp/src/resources/index.js +58 -0
  445. package/framework-mcp/dist/framework-mcp/src/tools/control_plane/locking.js +84 -0
  446. package/framework-mcp/dist/framework-mcp/src/tools/control_plane/registry.js +35 -0
  447. package/framework-mcp/dist/framework-mcp/src/tools/definitions.js +197 -0
  448. package/framework-mcp/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js +64 -0
  449. package/framework-mcp/dist/framework-mcp/src/tools/file_system/patch_file.js +34 -0
  450. package/framework-mcp/dist/framework-mcp/src/tools/file_system/read_file.js +51 -0
  451. package/framework-mcp/dist/framework-mcp/src/tools/file_system/replace_text.js +50 -0
  452. package/framework-mcp/dist/framework-mcp/src/tools/file_system/write_file.js +55 -0
  453. package/framework-mcp/dist/framework-mcp/src/tools/framework/audit_deps.js +41 -0
  454. package/framework-mcp/dist/framework-mcp/src/tools/framework/get_status.js +5 -0
  455. package/framework-mcp/dist/framework-mcp/src/tools/framework/orchestrate.js +5 -0
  456. package/framework-mcp/dist/framework-mcp/src/tools/framework/run_tests.js +27 -0
  457. package/framework-mcp/dist/framework-mcp/src/tools/framework/submit_plan.js +13 -0
  458. package/framework-mcp/dist/framework-mcp/src/tools/framework/update_contract_hash.js +5 -0
  459. package/framework-mcp/dist/framework-mcp/src/tools/framework/update_memory.js +8 -0
  460. package/framework-mcp/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js +137 -0
  461. package/framework-mcp/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js +90 -0
  462. package/framework-mcp/dist/framework-mcp/src/tools/index.js +126 -0
  463. package/framework-mcp/dist/framework-mcp/src/tools/memory/delete_knowledge.js +28 -0
  464. package/framework-mcp/dist/framework-mcp/src/tools/memory/get_insights.js +22 -0
  465. package/framework-mcp/dist/framework-mcp/src/tools/memory/read_memory.js +28 -0
  466. package/framework-mcp/dist/framework-mcp/src/tools/memory/search_knowledge.js +48 -0
  467. package/framework-mcp/dist/framework-mcp/src/tools/memory/store_knowledge.js +30 -0
  468. package/framework-mcp/dist/framework-mcp/src/tools/messaging/ask_human.js +30 -0
  469. package/framework-mcp/dist/framework-mcp/src/tools/messaging/log_action.js +22 -0
  470. package/framework-mcp/dist/framework-mcp/src/tools/messaging/send_message.js +94 -0
  471. package/framework-mcp/dist/framework-mcp/src/tools/observability/check_ports.js +26 -0
  472. package/framework-mcp/dist/framework-mcp/src/tools/observability/get_health.js +19 -0
  473. package/framework-mcp/dist/framework-mcp/src/tools/quality/analyze_code_quality.js +165 -0
  474. package/framework-mcp/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js +134 -0
  475. package/framework-mcp/dist/framework-mcp/src/tools/quality/check_lint.js +30 -0
  476. package/framework-mcp/dist/framework-mcp/src/tools/schemas.js +182 -0
  477. package/framework-mcp/dist/framework-mcp/src/tools/search/get_gaps.js +48 -0
  478. package/framework-mcp/dist/framework-mcp/src/tools/search/get_map.js +43 -0
  479. package/framework-mcp/dist/framework-mcp/src/tools/search/grep_search.js +78 -0
  480. package/framework-mcp/dist/framework-mcp/src/tools/search/list_dir.js +28 -0
  481. package/framework-mcp/dist/framework-mcp/src/tools/shell/run_command.js +121 -0
  482. package/framework-mcp/dist/framework-mcp/src/tools/types.js +1 -0
  483. package/framework-mcp/dist/framework-mcp/src/utils/cli.js +59 -0
  484. package/framework-mcp/dist/framework-mcp/src/utils/compliance.js +292 -0
  485. package/framework-mcp/dist/framework-mcp/src/utils/errors.js +68 -0
  486. package/framework-mcp/dist/framework-mcp/src/utils/fs.js +47 -0
  487. package/framework-mcp/dist/framework-mcp/src/utils/memory.js +74 -0
  488. package/framework-mcp/dist/framework-mcp/src/utils/metrics.js +56 -0
  489. package/framework-mcp/dist/framework-mcp/src/utils/permissions.js +71 -0
  490. package/framework-mcp/dist/framework-mcp/src/utils/security.js +60 -0
  491. package/framework-mcp/dist/framework-mcp/src/utils/storage.js +207 -0
  492. package/framework-mcp/dist/framework-mcp/src/utils/types.js +16 -0
  493. package/framework-mcp/dist/framework-mcp/src/utils/zod-to-mcp.js +79 -0
  494. package/framework-mcp/dist/index.js +14 -2
  495. package/framework-mcp/dist/src/cli/utils/memory.js +279 -0
  496. package/framework-mcp/dist/src/cli/utils/time.js +27 -0
  497. package/framework-mcp/dist/src/cli/utils/ui.js +100 -0
  498. package/framework-mcp/dist/src/modules/memory/core.js +99 -0
  499. package/framework-mcp/dist/src/modules/memory/embedding.js +130 -0
  500. package/framework-mcp/dist/src/modules/memory/types.js +1 -0
  501. package/framework-mcp/dist/src/modules/memory/vector-store.js +74 -0
  502. package/framework-mcp/dist/src/shared/constants.js +187 -0
  503. package/framework-mcp/dist/src/shared/fs.js +53 -0
  504. package/framework-mcp/dist/src/shared/logger.js +126 -0
  505. package/framework-mcp/dist/src/shared/pii.js +121 -0
  506. package/framework-mcp/dist/src/shared/storage.js +211 -0
  507. package/framework-mcp/dist/src/shared/types.js +16 -0
  508. package/framework-mcp/dist/tools/definitions.js +79 -247
  509. package/framework-mcp/dist/tools/index.js +37 -0
  510. package/framework-mcp/dist/tools/schemas.js +133 -0
  511. package/framework-mcp/dist/utils/types.js +4 -0
  512. package/framework-mcp/dist/utils/zod-to-mcp.js +77 -0
  513. package/framework-mcp/package.json +2 -2
  514. package/mcp.json +5 -4
  515. package/package.json +19 -17
  516. package/templates/full/ATABEY_FULL.md +515 -0
  517. package/templates/standards/crud-governance.md +1 -1
  518. package/templates/standards/logging-and-secrets.md +1 -1
  519. package/templates/standards/performance-standards.md +2 -2
  520. package/templates/standards/quality-standards.md +1 -1
  521. package/dist/ui/assets/index-Bkt7APzu.css +0 -1
  522. package/dist/ui/assets/index-CeX-06mI.js +0 -49
@@ -0,0 +1,188 @@
1
+ import { logger } from "../../shared/logger.js";
2
+ import { AtabeyStorage } from "../../shared/storage.js";
3
+ import { asAgentID, asTraceID } from "../../shared/types.js";
4
+ import { CoreMemory } from "../memory/core.js";
5
+ import { QualityGate } from "./quality-gate.js";
6
+ import { RoutingEngine } from "./routing-engine.js";
7
+ /**
8
+ * [ENGINE] Agent Executor — Production Implementation
9
+ *
10
+ * Manages real agent calls through the Hermes messaging system.
11
+ * Distributes tasks to agents, collects results, passes through quality gate,
12
+ * and saves to memory.
13
+ *
14
+ * Uses real Hermes message queue (not simulated).
15
+ */
16
+ export class AgentExecutor {
17
+ /**
18
+ * Distributes a task to the relevant agent and executes it.
19
+ * 1. Select the best agent via Routing Engine
20
+ * 2. Send Hermes message
21
+ * 3. Wait for agent response (polling)
22
+ * 4. Pass through quality check
23
+ * 5. Save result to memory
24
+ */
25
+ static async execute(taskDescription, traceId) {
26
+ // 1. Route the task to the best agent
27
+ const routingResult = RoutingEngine.resolveWithDetails(taskDescription);
28
+ const agent = routingResult.agent;
29
+ const subTasks = routingResult.subTasks;
30
+ logger.info(`[EXECUTOR] Routing: ${taskDescription.substring(0, 80)}... → ${agent} (confidence: ${routingResult.confidence})`);
31
+ // 2. Execute with retry logic (max 3 attempts)
32
+ let lastOutput = "";
33
+ let lastError = "";
34
+ for (let attempt = 1; attempt <= 3; attempt++) {
35
+ try {
36
+ logger.info(`[EXECUTOR] Attempt ${attempt}/3: ${agent} executing...`);
37
+ // Execute the agent task via Hermes messaging
38
+ const output = await AgentExecutor.runAgentTask(agent, taskDescription, subTasks, traceId);
39
+ lastOutput = output;
40
+ // 3. Quality check
41
+ const qualityResult = await QualityGate.check(agent, output, taskDescription);
42
+ if (qualityResult.passed) {
43
+ logger.info(`[EXECUTOR] ${agent} task PASSED quality check (attempt ${attempt})`);
44
+ // 4. Save to memory
45
+ await AgentExecutor.saveToMemory(agent, taskDescription, output, traceId);
46
+ // Update agent status
47
+ AtabeyStorage.updateAgentStatus(agent.replace("@", ""), "COMPLETED", taskDescription);
48
+ return {
49
+ success: true,
50
+ agent,
51
+ output,
52
+ attempts: attempt,
53
+ };
54
+ }
55
+ lastError = qualityResult.reason;
56
+ logger.warn(`[EXECUTOR] Quality check FAILED: ${qualityResult.reason}`, { agent, attempt });
57
+ }
58
+ catch (err) {
59
+ lastError = err.message;
60
+ logger.error(`[EXECUTOR] Agent execution error: ${lastError}`, { agent, attempt });
61
+ }
62
+ }
63
+ // All attempts failed
64
+ logger.error(`[EXECUTOR] ${agent} FAILED after 3 attempts. Last error: ${lastError}`);
65
+ AtabeyStorage.updateAgentStatus(agent.replace("@", ""), "BLOCKED", `Failed: ${taskDescription.substring(0, 60)}`);
66
+ return {
67
+ success: false,
68
+ agent,
69
+ output: lastOutput,
70
+ attempts: 3,
71
+ };
72
+ }
73
+ /**
74
+ * Runs the agent via the Hermes messaging system.
75
+ *
76
+ * Flow:
77
+ * 1. Write DELEGATION message to agent's message queue
78
+ * 2. Wait for agent response (polling, max 30 seconds)
79
+ * 3. Parse response and return as output
80
+ *
81
+ * NOTE: In real MCP environment, agents read and process their own
82
+ * message queues. Here the queue is managed via SQLite.
83
+ */
84
+ static async runAgentTask(agent, taskDescription, subTasks, traceId) {
85
+ const agentName = agent.replace("@", "");
86
+ const from = "@manager";
87
+ // ─── 1. Send Hermes Message ──────────────────────────────────────
88
+ const messagePayload = JSON.stringify({
89
+ type: "DELEGATION",
90
+ task: taskDescription,
91
+ subTasks,
92
+ traceId,
93
+ from,
94
+ });
95
+ AtabeyStorage.saveMessage({
96
+ from: asAgentID(from),
97
+ to: asAgentID(agent),
98
+ category: "DELEGATION",
99
+ content: messagePayload,
100
+ traceId: asTraceID(traceId),
101
+ timestamp: new Date().toISOString(),
102
+ status: "PENDING",
103
+ priority: "HIGH",
104
+ requiresApproval: false,
105
+ });
106
+ // Update agent status
107
+ AtabeyStorage.updateAgentStatus(agentName, "EXECUTING", taskDescription);
108
+ // Log action
109
+ AtabeyStorage.getDB().prepare(`
110
+ INSERT INTO logs (agent, action, trace_id, status, summary)
111
+ VALUES (?, ?, ?, ?, ?)
112
+ `).run(agentName, "DELEGATION_SENT", traceId, "IN_PROGRESS", taskDescription.substring(0, 200));
113
+ logger.info(`[HERMES] Delegation sent to ${agent} (trace: ${traceId})`);
114
+ // ─── 2. Wait for Agent Response (Polling) ────────────────────────
115
+ const output = await AgentExecutor.pollForAgentResponse(agentName, traceId);
116
+ return output;
117
+ }
118
+ /**
119
+ * Polls for agent response from the Hermes message queue.
120
+ *
121
+ * Polling strategy:
122
+ * - Check every 500ms
123
+ * - Max 30 seconds wait (60 attempts)
124
+ * - Return response if found, timeout if not
125
+ */
126
+ static async pollForAgentResponse(agentName, traceId) {
127
+ const maxAttempts = 60; // 30 seconds (500ms * 60)
128
+ const pollInterval = 500; // 500ms
129
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
130
+ // Check RESPONSE messages sent by the agent
131
+ const messages = AtabeyStorage.getPendingMessages();
132
+ const response = messages.find(m => m.from.replace("@", "") === agentName
133
+ && m.category === "RESPONSE"
134
+ && m.traceId === traceId
135
+ && m.status === "PENDING");
136
+ if (response) {
137
+ // Mark message as processed
138
+ if (response.id !== undefined) {
139
+ AtabeyStorage.updateMessageStatus(response.id, "PROCESSED");
140
+ }
141
+ // Log response
142
+ AtabeyStorage.getDB().prepare(`
143
+ INSERT INTO logs (agent, action, trace_id, status, summary)
144
+ VALUES (?, ?, ?, ?, ?)
145
+ `).run(agentName, "RESPONSE_RECEIVED", traceId, "SUCCESS", response.content.substring(0, 200));
146
+ logger.info(`[HERMES] Response received from @${agentName} (trace: ${traceId})`);
147
+ return response.content;
148
+ }
149
+ // Short delay before next poll
150
+ await new Promise(resolve => setTimeout(resolve, pollInterval));
151
+ }
152
+ // Timeout — agent did not respond
153
+ const timeoutMsg = `[TIMEOUT] @${agentName} did not respond within ${(maxAttempts * pollInterval) / 1000}s`;
154
+ logger.warn(`[HERMES] ${timeoutMsg} (trace: ${traceId})`);
155
+ AtabeyStorage.getDB().prepare(`
156
+ INSERT INTO logs (agent, action, trace_id, status, summary)
157
+ VALUES (?, ?, ?, ?, ?)
158
+ `).run(agentName, "RESPONSE_TIMEOUT", traceId, "FAILED", timeoutMsg);
159
+ return timeoutMsg;
160
+ }
161
+ /**
162
+ * Saves the task result to memory.
163
+ */
164
+ static async saveToMemory(agent, taskDescription, output, traceId) {
165
+ // Save to Vector Memory
166
+ await CoreMemory.remember({
167
+ content: `${agent}: ${taskDescription}\nResult: ${output}`,
168
+ category: "TASK_HISTORY",
169
+ traceId: asTraceID(traceId),
170
+ tags: [agent.replace("@", ""), "task-execution"],
171
+ });
172
+ // Save to SQLite logs
173
+ AtabeyStorage.getDB().prepare(`
174
+ INSERT INTO logs (agent, action, trace_id, status, summary)
175
+ VALUES (?, ?, ?, ?, ?)
176
+ `).run(agent.replace("@", ""), "COMPLETED", traceId, "SUCCESS", output.substring(0, 200));
177
+ // Update task status
178
+ const tasks = AtabeyStorage.getTasks(asTraceID(traceId));
179
+ const pendingTask = tasks.find(t => t.status === "IN_PROGRESS");
180
+ if (pendingTask) {
181
+ AtabeyStorage.saveTask({
182
+ ...pendingTask,
183
+ status: "COMPLETED",
184
+ });
185
+ }
186
+ }
187
+ }
188
+ //# sourceMappingURL=agent-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-executor.js","sourceRoot":"","sources":["../../../../src/modules/engines/agent-executor.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { EvaluationResult, ProjectHealth } from "./types.js";
2
2
  /**
3
3
  * [DATA] Evaluation & Health Engine
4
4
  * Rates agent performance and tracks overall project stability.
5
+ * Now uses real metrics from SQLite, compliance scans, and agent states.
5
6
  */
6
7
  export declare class HealthEngine {
7
8
  /**
@@ -9,7 +10,12 @@ export declare class HealthEngine {
9
10
  */
10
11
  static recordEvaluation(result: EvaluationResult): Promise<void>;
11
12
  /**
12
- * Aggregates all data to calculate the overall Project Health.
13
+ * Aggregates real data to calculate the overall Project Health.
14
+ * Uses actual metrics from:
15
+ * - Agent success rates from SQLite logs
16
+ * - Compliance violations from AST scanning
17
+ * - Agent state distribution (blocked/ready ratio)
18
+ * - Test results from recent evaluations
13
19
  */
14
20
  static updateProjectHealth(): Promise<ProjectHealth>;
15
21
  static getHealth(): ProjectHealth | null;
@@ -1,10 +1,13 @@
1
1
  import fs from "fs";
2
2
  import path from "path";
3
+ import { scanProjectCompliance } from "../../cli/utils/compliance.js";
3
4
  import { getFrameworkDir } from "../../cli/utils/memory.js";
4
5
  import { ensureDir, writeJsonFile } from "../../shared/fs.js";
6
+ import { Storage } from "../../shared/storage.js";
5
7
  /**
6
8
  * [DATA] Evaluation & Health Engine
7
9
  * Rates agent performance and tracks overall project stability.
10
+ * Now uses real metrics from SQLite, compliance scans, and agent states.
8
11
  */
9
12
  export class HealthEngine {
10
13
  /**
@@ -19,19 +22,93 @@ export class HealthEngine {
19
22
  await this.updateProjectHealth();
20
23
  }
21
24
  /**
22
- * Aggregates all data to calculate the overall Project Health.
25
+ * Aggregates real data to calculate the overall Project Health.
26
+ * Uses actual metrics from:
27
+ * - Agent success rates from SQLite logs
28
+ * - Compliance violations from AST scanning
29
+ * - Agent state distribution (blocked/ready ratio)
30
+ * - Test results from recent evaluations
23
31
  */
24
32
  static async updateProjectHealth() {
25
- // This would normally read compliance reports, test results, and recent evaluations
26
- // Prototyping with semi-static values for now
33
+ const frameworkDir = getFrameworkDir();
34
+ const agents = Storage.getAllAgents();
35
+ const logs = Storage.getLogs();
36
+ const evaluationsDir = path.join(frameworkDir, "memory", "evaluations");
37
+ // 1. Agent Health Score (based on success rate & state distribution)
38
+ let agentScore = 100;
39
+ const totalLogs = logs.length;
40
+ if (totalLogs > 0) {
41
+ const successCount = logs.filter((l) => l.status === "SUCCESS").length;
42
+ const successRate = (successCount / totalLogs) * 100;
43
+ agentScore = Math.round(successRate);
44
+ }
45
+ // Penalize blocked/timeout agents
46
+ const blockedAgents = agents.filter((a) => a.state === "BLOCKED" || a.state === "TIMEOUT").length;
47
+ if (blockedAgents > 0) {
48
+ agentScore -= blockedAgents * 10;
49
+ }
50
+ // 2. Code Quality Score (based on compliance violations)
51
+ let qualityScore = 100;
52
+ try {
53
+ const violations = scanProjectCompliance("src");
54
+ if (violations.length > 0) {
55
+ qualityScore -= Math.min(violations.length * 5, 50);
56
+ }
57
+ }
58
+ catch {
59
+ qualityScore = 70; // Fallback if scan fails
60
+ }
61
+ // 3. Security Score (based on evaluation findings)
62
+ let securityScore = 100;
63
+ if (fs.existsSync(evaluationsDir)) {
64
+ const evalFiles = fs.readdirSync(evaluationsDir).filter((f) => f.endsWith(".json"));
65
+ let securityIssues = 0;
66
+ let totalEvalMetrics = 0;
67
+ for (const file of evalFiles.slice(-20)) { // Last 20 evaluations
68
+ try {
69
+ const evalData = JSON.parse(fs.readFileSync(path.join(evaluationsDir, file), "utf8"));
70
+ if (evalData.metrics) {
71
+ totalEvalMetrics++;
72
+ if (!evalData.metrics.compilation)
73
+ securityIssues += 2;
74
+ if (!evalData.metrics.lint)
75
+ securityIssues += 1;
76
+ if (!evalData.metrics.tests)
77
+ securityIssues += 3;
78
+ }
79
+ }
80
+ catch {
81
+ // Skip corrupted files
82
+ }
83
+ }
84
+ if (totalEvalMetrics > 0) {
85
+ securityScore -= Math.min((securityIssues / totalEvalMetrics) * 20, 40);
86
+ }
87
+ }
88
+ // 4. Architecture Score (based on metadata stability)
89
+ const phaseOrder = ["PHASE_0", "PHASE_1", "PHASE_2", "PHASE_3", "PHASE_4"];
90
+ const currentPhase = Storage.getMetadata("phase") || "PHASE_0";
91
+ const phaseIndex = phaseOrder.indexOf(currentPhase);
92
+ const architectureScore = Math.min(60 + phaseIndex * 10, 100);
93
+ // Calculate weighted final score
94
+ const score = Math.max(0, Math.min(100, Math.round(agentScore * 0.30 + // Agent performance: 30%
95
+ qualityScore * 0.25 + // Code quality: 25%
96
+ securityScore * 0.25 + // Security: 25%
97
+ architectureScore * 0.20 // Architecture: 20%
98
+ )));
27
99
  const health = {
28
- score: 85,
29
- codeQuality: 90,
30
- security: 80,
31
- architecture: 85,
100
+ score,
101
+ codeQuality: Math.max(0, qualityScore),
102
+ security: Math.max(0, securityScore),
103
+ architecture: architectureScore,
104
+ agentHealth: Math.max(0, agentScore),
105
+ totalAgents: agents.length,
106
+ activeAgents: agents.filter((a) => a.state === "EXECUTING" || a.state === "ACTIVE").length,
107
+ blockedAgents,
108
+ totalLogs,
32
109
  lastUpdated: new Date().toISOString()
33
110
  };
34
- const healthFile = path.join(getFrameworkDir(), "memory", "HEALTH.json");
111
+ const healthFile = path.join(frameworkDir, "memory", "HEALTH.json");
35
112
  writeJsonFile(healthFile, health);
36
113
  return health;
37
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"health-engine.js","sourceRoot":"","sources":["../../../../src/modules/engines/health-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE9D;;;GAGG;AACH,MAAM,OAAO,YAAY;IACrB;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAwB;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACtE,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC;QAC9E,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEhC,wBAAwB;QACxB,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,mBAAmB;QACnC,oFAAoF;QACpF,8CAA8C;QAC9C,MAAM,MAAM,GAAkB;YAC1B,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,EAAE;YACZ,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACxC,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACzE,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAElC,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,SAAS;QACnB,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;YACzE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"health-engine.js","sourceRoot":"","sources":["../../../../src/modules/engines/health-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGlD;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACrB;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAwB;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACtE,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC;QAC9E,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEhC,wBAAwB;QACxB,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACrC,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,mBAAmB;QACnC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAExE,qEAAqE;QACrE,IAAI,UAAU,GAAG,GAAG,CAAC;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;YACvE,MAAM,WAAW,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC;YACrD,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;QAED,kCAAkC;QAClC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QAClG,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACpB,UAAU,IAAI,aAAa,GAAG,EAAE,CAAC;QACrC,CAAC;QAED,yDAAyD;QACzD,IAAI,YAAY,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YACxD,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,YAAY,GAAG,EAAE,CAAC,CAAC,yBAAyB;QAChD,CAAC;QAED,mDAAmD;QACnD,IAAI,aAAa,GAAG,GAAG,CAAC;QACxB,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACpF,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,IAAI,gBAAgB,GAAG,CAAC,CAAC;YAEzB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,sBAAsB;gBAC7D,IAAI,CAAC;oBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACvB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CACvC,CAAC;oBACtB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACnB,gBAAgB,EAAE,CAAC;wBACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW;4BAAE,cAAc,IAAI,CAAC,CAAC;wBACvD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI;4BAAE,cAAc,IAAI,CAAC,CAAC;wBAChD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK;4BAAE,cAAc,IAAI,CAAC,CAAC;oBACrD,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACL,uBAAuB;gBAC3B,CAAC;YACL,CAAC;YAED,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBACvB,aAAa,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,GAAG,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5E,CAAC;QACL,CAAC;QAED,sDAAsD;QACtD,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;QAC/D,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QAE9D,iCAAiC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAClC,IAAI,CAAC,KAAK,CACN,UAAU,GAAG,IAAI,GAAK,yBAAyB;YAC/C,YAAY,GAAG,IAAI,GAAI,oBAAoB;YAC3C,aAAa,GAAG,IAAI,GAAG,gBAAgB;YACvC,iBAAiB,GAAG,IAAI,CAAC,oBAAoB;SAChD,CACJ,CAAC,CAAC;QAEH,MAAM,MAAM,GAAkB;YAC1B,KAAK;YACL,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC;YACtC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC;YACpC,YAAY,EAAE,iBAAiB;YAC/B,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC;YACpC,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,MAAM;YAC1F,aAAa;YACb,SAAS;YACT,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACxC,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACpE,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAElC,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,SAAS;QACnB,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;YACzE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;CACJ"}
@@ -1,6 +1,6 @@
1
1
  import { Plan } from "./types.js";
2
2
  /**
3
- * 🗺️ Planning Engine (The Strategist)
3
+ * [MAP] Planning Engine (The Strategist)
4
4
  * Responsible for decomposing complex requests into a DAG of atomic tasks.
5
5
  */
6
6
  export declare class PlanningEngine {
@@ -1,7 +1,8 @@
1
+ import { asPlanID, asTaskID } from "../../shared/types.js";
1
2
  import { generateULID } from "../../cli/utils/time.js";
2
3
  import { RoutingEngine } from "./routing-engine.js";
3
4
  /**
4
- * 🗺️ Planning Engine (The Strategist)
5
+ * [MAP] Planning Engine (The Strategist)
5
6
  * Responsible for decomposing complex requests into a DAG of atomic tasks.
6
7
  */
7
8
  export class PlanningEngine {
@@ -11,14 +12,14 @@ export class PlanningEngine {
11
12
  * For now, it provides the structural backbone.
12
13
  */
13
14
  static createPlan(rawTasks) {
14
- const planId = generateULID();
15
+ const planId = asPlanID(generateULID());
15
16
  const tasks = rawTasks.map((t, index) => {
16
17
  const id = t.id || `TASK_${String(index + 1).padStart(2, "0")}`;
17
18
  return {
18
- id,
19
+ id: asTaskID(id),
19
20
  agent: t.agent || RoutingEngine.resolveAgent(t.task),
20
21
  task: t.task,
21
- dependencies: t.dependencies || []
22
+ dependencies: (t.dependencies || []).map(d => asTaskID(d))
22
23
  };
23
24
  });
24
25
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"planning-engine.js","sourceRoot":"","sources":["../../../../src/modules/engines/planning-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"planning-engine.js","sourceRoot":"","sources":["../../../../src/modules/engines/planning-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface QualityResult {
2
+ passed: boolean;
3
+ reason: string;
4
+ findings?: unknown;
5
+ }
6
+ /**
7
+ * [ENGINE] Quality Gate
8
+ * Atabey Order v2 — Deterministic Quality Inspection Center.
9
+ * Inspects agent outputs and codebase against constitutional rules.
10
+ */
11
+ export declare class QualityGate {
12
+ /**
13
+ * Puts an agent's work through quality testing.
14
+ * 1. Compliance (Constitutional compliance)
15
+ * 2. Lint (Code standards)
16
+ * 3. Tests (Unit and integration tests)
17
+ */
18
+ static check(agent: string, output: string, task: string): Promise<QualityResult>;
19
+ /**
20
+ * Basic logical validation of agent output
21
+ */
22
+ private static validateOutputContent;
23
+ }
@@ -0,0 +1,85 @@
1
+ import { execSync } from "child_process";
2
+ import { scanProjectCompliance } from "../../cli/utils/compliance.js";
3
+ import { logger } from "../../shared/logger.js";
4
+ /**
5
+ * [ENGINE] Quality Gate
6
+ * Atabey Order v2 — Deterministic Quality Inspection Center.
7
+ * Inspects agent outputs and codebase against constitutional rules.
8
+ */
9
+ export class QualityGate {
10
+ /**
11
+ * Puts an agent's work through quality testing.
12
+ * 1. Compliance (Constitutional compliance)
13
+ * 2. Lint (Code standards)
14
+ * 3. Tests (Unit and integration tests)
15
+ */
16
+ static async check(agent, output, task) {
17
+ logger.info(`[QUALITY_GATE] Starting audit for ${agent}...`);
18
+ // Skip deep ecosystem commands during framework unit testing to prevent infinite recursion
19
+ const isTestEnv = process.env.VITEST === "true" || !!process.env.ATABEY_TEST_DIR;
20
+ if (!isTestEnv) {
21
+ // 1. Compliance Check (AST Analysis)
22
+ const complianceIssues = scanProjectCompliance("src");
23
+ if (complianceIssues.length > 0) {
24
+ const summary = complianceIssues.map(i => `${i.file}:${i.line} (${i.rule})`).join(", ");
25
+ return {
26
+ passed: false,
27
+ reason: `Compliance issues found: ${summary}`,
28
+ findings: complianceIssues
29
+ };
30
+ }
31
+ // 2. Lint Check
32
+ try {
33
+ logger.debug("[QUALITY_GATE] Running ESLint...");
34
+ execSync("npm run lint", { stdio: "pipe" });
35
+ }
36
+ catch (err) {
37
+ const error = err;
38
+ return {
39
+ passed: false,
40
+ reason: "Lint check failed. Zero errors required.",
41
+ findings: error.stderr?.toString() || error.message
42
+ };
43
+ }
44
+ // 3. Test Check (Optional but recommended for Phase 2+)
45
+ try {
46
+ logger.debug("[QUALITY_GATE] Running Tests...");
47
+ execSync("npm test", { stdio: "pipe" });
48
+ }
49
+ catch (err) {
50
+ const error = err;
51
+ return {
52
+ passed: false,
53
+ reason: "Automated tests failed. Regressions detected.",
54
+ findings: error.stderr?.toString() || error.message
55
+ };
56
+ }
57
+ }
58
+ else {
59
+ logger.debug("[QUALITY_GATE] Framework unit test environment detected. Skipping low-level process recursion.");
60
+ }
61
+ // 4. Content Validation (Basic output check)
62
+ const contentCheck = this.validateOutputContent(output, task);
63
+ if (!contentCheck.passed) {
64
+ return contentCheck;
65
+ }
66
+ logger.info(`[QUALITY_GATE] Audit PASSED for ${agent}`);
67
+ return { passed: true, reason: "All quality gates passed." };
68
+ }
69
+ /**
70
+ * Basic logical validation of agent output
71
+ */
72
+ static validateOutputContent(output, _task) {
73
+ if (!output || output.trim().length < 10) {
74
+ return { passed: false, reason: "Output is too short or empty." };
75
+ }
76
+ const errorIndicators = ["ERROR", "FAILED", "CRASHED", "TIMEOUT"];
77
+ for (const indicator of errorIndicators) {
78
+ if (output.toUpperCase().includes(indicator)) {
79
+ return { passed: false, reason: `Output contains error indicator: ${indicator}` };
80
+ }
81
+ }
82
+ return { passed: true, reason: "Content validation passed." };
83
+ }
84
+ }
85
+ //# sourceMappingURL=quality-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quality-gate.js","sourceRoot":"","sources":["../../../../src/modules/engines/quality-gate.ts"],"names":[],"mappings":"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"}
@@ -13,12 +13,12 @@ export class RiskEngine {
13
13
  { word: "force", weight: 20 },
14
14
  ];
15
15
  static SENSITIVE_PATHS = [
16
- { pattern: /\.env/, weight: 50 },
17
- { pattern: /config/, weight: 20 },
18
- { pattern: /database\//, weight: 30 },
19
- { pattern: /auth\//, weight: 30 },
20
- { pattern: /security/, weight: 30 },
21
- { pattern: /atabey/, weight: 40 }, // Framework protection
16
+ { pattern: /\.env/i, weight: 50 },
17
+ { pattern: /config/i, weight: 20 },
18
+ { pattern: /database/i, weight: 30 },
19
+ { pattern: /auth/i, weight: 30 },
20
+ { pattern: /security/i, weight: 30 },
21
+ { pattern: /atabey/i, weight: 40 }, // Framework protection
22
22
  ];
23
23
  /**
24
24
  * Assesses the risk of a natural language task or command string.
@@ -1 +1 @@
1
- {"version":3,"file":"risk-engine.js","sourceRoot":"","sources":["../../../../src/modules/engines/risk-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"risk-engine.js","sourceRoot":"","sources":["../../../../src/modules/engines/risk-engine.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,69 @@
1
1
  export interface RoutingCandidate {
2
2
  agent: string;
3
3
  specialties: Record<string, number>;
4
+ displayName: string;
5
+ role: string;
6
+ capability: number;
7
+ tier: string;
8
+ }
9
+ export interface RoutingResult {
10
+ agent: string;
11
+ score: number;
12
+ confidence: "high" | "medium" | "low";
13
+ reasoning: string;
14
+ subTasks: string[];
4
15
  }
5
16
  export declare class RoutingEngine {
6
17
  /**
7
- * Finds the best agent for a given task description based on capability scores and specialties.
18
+ * Advanced Routing Engine analyzes task descriptions,
19
+ * selects the most suitable agent, and determines subtasks.
20
+ *
21
+ * Uses TF-IDF-like keyword weighting.
8
22
  */
9
23
  static resolveAgent(taskDescription: string): string;
24
+ /**
25
+ * Returns detailed routing result — score, confidence, reasoning, subTasks
26
+ */
27
+ static resolveWithDetails(taskDescription: string): RoutingResult;
28
+ /**
29
+ * Automatically splits the task into subtasks
30
+ */
31
+ static planTask(taskDescription: string): string[];
32
+ private static tokenize;
33
+ /**
34
+ * Simple term frequency calculation
35
+ */
36
+ private static calculateTf;
37
+ private static fallbackRouting;
38
+ private static generateSubTasks;
39
+ /**
40
+ * Quality feedback loop — retries if @quality rejects
41
+ * Uses real MCP calls, not simulations.
42
+ */
43
+ static qualityLoop(agent: string, taskDescription: string, maxRetries?: number): Promise<{
44
+ success: boolean;
45
+ attempts: number;
46
+ }>;
47
+ /**
48
+ * Runs the agent through the Hermes messaging system.
49
+ *
50
+ * Flow:
51
+ * 1. Write DELEGATION message to agent's queue (Storage.saveMessage)
52
+ * 2. Wait for agent response (polling, max 30 seconds)
53
+ * 3. Parse response and return as output
54
+ */
55
+ private static runAgent;
56
+ /**
57
+ * Runs quality control through the real QualityGate.
58
+ *
59
+ * Flow:
60
+ * 1. QualityGate.check() for compliance + lint + test + content validation
61
+ * 2. Aggregate results
62
+ */
63
+ private static runQualityCheck;
10
64
  private static getCandidates;
65
+ /**
66
+ * Default values for agents without a specialties field
67
+ */
68
+ private static defaultSpecialties;
11
69
  }