atabey 0.0.18 → 0.0.20

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 (570) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +14 -2
  3. package/dist/atabey/src/cli/commands/check.js +150 -13
  4. package/dist/atabey/src/cli/commands/check.js.map +1 -1
  5. package/dist/atabey/src/cli/commands/explorer.js.map +1 -1
  6. package/dist/atabey/src/cli/commands/index-codebase.js +13 -2
  7. package/dist/atabey/src/cli/commands/index-codebase.js.map +1 -1
  8. package/dist/atabey/src/cli/commands/init/scaffold-core.js +67 -8
  9. package/dist/atabey/src/cli/commands/init/scaffold-core.js.map +1 -1
  10. package/dist/atabey/src/cli/commands/init.js +12 -4
  11. package/dist/atabey/src/cli/commands/init.js.map +1 -1
  12. package/dist/atabey/src/cli/commands/mcp.js +21 -25
  13. package/dist/atabey/src/cli/commands/mcp.js.map +1 -1
  14. package/dist/atabey/src/cli/commands/orchestrate.d.ts +11 -10
  15. package/dist/atabey/src/cli/commands/orchestrate.js +49 -24
  16. package/dist/atabey/src/cli/commands/orchestrate.js.map +1 -1
  17. package/dist/atabey/src/cli/index.js +8 -1
  18. package/dist/atabey/src/cli/index.js.map +1 -1
  19. package/dist/atabey/src/cli/platforms/core.d.ts +4 -0
  20. package/dist/atabey/src/cli/platforms/core.js +12 -8
  21. package/dist/atabey/src/cli/platforms/core.js.map +1 -1
  22. package/dist/atabey/src/cli/platforms/index.d.ts +1 -1
  23. package/dist/atabey/src/cli/platforms/index.js +1 -1
  24. package/dist/atabey/src/cli/platforms/index.js.map +1 -1
  25. package/dist/atabey/src/cli/utils/config-schema.d.ts +117 -0
  26. package/dist/atabey/src/cli/utils/config-schema.js +25 -1
  27. package/dist/atabey/src/cli/utils/config-schema.js.map +1 -1
  28. package/dist/atabey/src/cli/utils/memory.d.ts +13 -7
  29. package/dist/atabey/src/cli/utils/memory.js +74 -16
  30. package/dist/atabey/src/cli/utils/memory.js.map +1 -1
  31. package/dist/atabey/src/cli/utils/quality.js +2 -7
  32. package/dist/atabey/src/cli/utils/quality.js.map +1 -1
  33. package/dist/atabey/src/cli/utils/schemas.d.ts +8 -8
  34. package/dist/atabey/src/contracts/tasks.d.ts +6 -6
  35. package/dist/atabey/src/modules/agents/definitions.js +9 -14
  36. package/dist/atabey/src/modules/agents/definitions.js.map +1 -1
  37. package/dist/atabey/src/modules/agents/registry/manager.js +1 -1
  38. package/dist/atabey/src/modules/agents/registry/manager.js.map +1 -1
  39. package/dist/atabey/src/modules/engines/crud-governance.d.ts +4 -2
  40. package/dist/atabey/src/modules/engines/crud-governance.js +41 -6
  41. package/dist/atabey/src/modules/engines/crud-governance.js.map +1 -1
  42. package/dist/atabey/src/modules/skills/adapter-skills.d.ts +2 -0
  43. package/dist/atabey/src/modules/skills/adapter-skills.js.map +1 -1
  44. package/dist/atabey/src/shared/audit.d.ts +1 -105
  45. package/dist/atabey/src/shared/audit.js +1 -220
  46. package/dist/atabey/src/shared/audit.js.map +1 -1
  47. package/dist/atabey/src/shared/constants.d.ts +1 -120
  48. package/dist/atabey/src/shared/constants.js +1 -187
  49. package/dist/atabey/src/shared/constants.js.map +1 -1
  50. package/dist/atabey/src/shared/errors.d.ts +1 -46
  51. package/dist/atabey/src/shared/errors.js +1 -68
  52. package/dist/atabey/src/shared/errors.js.map +1 -1
  53. package/dist/atabey/src/shared/fs.d.ts +1 -9
  54. package/dist/atabey/src/shared/fs.js +1 -53
  55. package/dist/atabey/src/shared/fs.js.map +1 -1
  56. package/dist/atabey/src/shared/lock.d.ts +1 -82
  57. package/dist/atabey/src/shared/lock.js +1 -159
  58. package/dist/atabey/src/shared/lock.js.map +1 -1
  59. package/dist/atabey/src/shared/logger.d.ts +1 -30
  60. package/dist/atabey/src/shared/logger.js +1 -126
  61. package/dist/atabey/src/shared/logger.js.map +1 -1
  62. package/dist/atabey/src/shared/pii.d.ts +1 -69
  63. package/dist/atabey/src/shared/pii.js +1 -212
  64. package/dist/atabey/src/shared/pii.js.map +1 -1
  65. package/dist/atabey/src/shared/retention.d.ts +1 -63
  66. package/dist/atabey/src/shared/retention.js +1 -170
  67. package/dist/atabey/src/shared/retention.js.map +1 -1
  68. package/dist/atabey/src/shared/storage.js +7 -3
  69. package/dist/atabey/src/shared/storage.js.map +1 -1
  70. package/dist/atabey/src/shared/string.d.ts +1 -1
  71. package/dist/atabey/src/shared/string.js +1 -29
  72. package/dist/atabey/src/shared/string.js.map +1 -1
  73. package/dist/atabey/src/shared/types.d.ts +1 -27
  74. package/dist/atabey/src/shared/types.js +1 -16
  75. package/dist/atabey/src/shared/types.js.map +1 -1
  76. package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js +1 -1
  77. package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js.map +1 -1
  78. package/dist/atabey-mcp/src/mcp/utils/finops.d.ts +7 -11
  79. package/dist/atabey-mcp/src/mcp/utils/finops.js +24 -26
  80. package/dist/atabey-mcp/src/mcp/utils/finops.js.map +1 -1
  81. package/dist/atabey-mcp/src/shared/logger.d.ts +1 -30
  82. package/dist/atabey-mcp/src/shared/logger.js +1 -126
  83. package/dist/atabey-mcp/src/shared/logger.js.map +1 -1
  84. package/dist/atabey-mcp/src/shared/pii.d.ts +1 -69
  85. package/dist/atabey-mcp/src/shared/pii.js +1 -212
  86. package/dist/atabey-mcp/src/shared/pii.js.map +1 -1
  87. package/dist/atabey-mcp/src/shared/storage.js +3 -1
  88. package/dist/atabey-mcp/src/shared/storage.js.map +1 -1
  89. package/dist/atabey-mcp/src/shared/types.d.ts +1 -27
  90. package/dist/atabey-mcp/src/shared/types.js +1 -16
  91. package/dist/atabey-mcp/src/shared/types.js.map +1 -1
  92. package/dist/{src/shared → shared/src}/audit.js +8 -8
  93. package/dist/shared/src/audit.js.map +1 -0
  94. package/dist/{src/shared → shared/src}/constants.d.ts +30 -1
  95. package/dist/{src/shared → shared/src}/constants.js +25 -2
  96. package/dist/shared/src/constants.js.map +1 -0
  97. package/dist/shared/src/database.d.ts +5 -0
  98. package/dist/shared/src/database.js +13 -0
  99. package/dist/shared/src/database.js.map +1 -0
  100. package/dist/shared/src/errors.js.map +1 -0
  101. package/dist/shared/src/fs.js.map +1 -0
  102. package/dist/shared/src/index.d.ts +11 -0
  103. package/dist/shared/src/index.js +12 -0
  104. package/dist/shared/src/index.js.map +1 -0
  105. package/dist/{src/shared → shared/src}/lock.js +22 -26
  106. package/dist/shared/src/lock.js.map +1 -0
  107. package/dist/shared/src/logger.js.map +1 -0
  108. package/dist/{src/shared → shared/src}/pii.js +4 -1
  109. package/dist/shared/src/pii.js.map +1 -0
  110. package/dist/{src/shared → shared/src}/retention.js +6 -6
  111. package/dist/shared/src/retention.js.map +1 -0
  112. package/dist/shared/src/string.js.map +1 -0
  113. package/dist/shared/src/types.js.map +1 -0
  114. package/package.json +19 -3
  115. package/dist/atabey-mcp/src/mcp/utils/quality.d.ts +0 -19
  116. package/dist/atabey-mcp/src/mcp/utils/quality.js +0 -125
  117. package/dist/atabey-mcp/src/mcp/utils/quality.js.map +0 -1
  118. package/dist/atabey-mcp/src/shared/fs.js.map +0 -1
  119. package/dist/src/cli/commands/approve.d.ts +0 -1
  120. package/dist/src/cli/commands/approve.js +0 -64
  121. package/dist/src/cli/commands/approve.js.map +0 -1
  122. package/dist/src/cli/commands/check.d.ts +0 -1
  123. package/dist/src/cli/commands/check.js +0 -197
  124. package/dist/src/cli/commands/check.js.map +0 -1
  125. package/dist/src/cli/commands/compliance.d.ts +0 -5
  126. package/dist/src/cli/commands/compliance.js +0 -43
  127. package/dist/src/cli/commands/compliance.js.map +0 -1
  128. package/dist/src/cli/commands/contract.d.ts +0 -10
  129. package/dist/src/cli/commands/contract.js +0 -52
  130. package/dist/src/cli/commands/contract.js.map +0 -1
  131. package/dist/src/cli/commands/coverage.d.ts +0 -1
  132. package/dist/src/cli/commands/coverage.js +0 -121
  133. package/dist/src/cli/commands/coverage.js.map +0 -1
  134. package/dist/src/cli/commands/dashboard.d.ts +0 -5
  135. package/dist/src/cli/commands/dashboard.js +0 -753
  136. package/dist/src/cli/commands/dashboard.js.map +0 -1
  137. package/dist/src/cli/commands/explorer.d.ts +0 -2
  138. package/dist/src/cli/commands/explorer.js +0 -44
  139. package/dist/src/cli/commands/explorer.js.map +0 -1
  140. package/dist/src/cli/commands/git.d.ts +0 -2
  141. package/dist/src/cli/commands/git.js +0 -40
  142. package/dist/src/cli/commands/git.js.map +0 -1
  143. package/dist/src/cli/commands/index-codebase.d.ts +0 -4
  144. package/dist/src/cli/commands/index-codebase.js +0 -52
  145. package/dist/src/cli/commands/index-codebase.js.map +0 -1
  146. package/dist/src/cli/commands/init/create-agent.d.ts +0 -4
  147. package/dist/src/cli/commands/init/create-agent.js +0 -59
  148. package/dist/src/cli/commands/init/create-agent.js.map +0 -1
  149. package/dist/src/cli/commands/init/scaffold-core.d.ts +0 -13
  150. package/dist/src/cli/commands/init/scaffold-core.js +0 -129
  151. package/dist/src/cli/commands/init/scaffold-core.js.map +0 -1
  152. package/dist/src/cli/commands/init/scaffold-docs.d.ts +0 -4
  153. package/dist/src/cli/commands/init/scaffold-docs.js +0 -36
  154. package/dist/src/cli/commands/init/scaffold-docs.js.map +0 -1
  155. package/dist/src/cli/commands/init/scaffold-ops.d.ts +0 -1
  156. package/dist/src/cli/commands/init/scaffold-ops.js +0 -81
  157. package/dist/src/cli/commands/init/scaffold-ops.js.map +0 -1
  158. package/dist/src/cli/commands/init/scaffold-standards.d.ts +0 -2
  159. package/dist/src/cli/commands/init/scaffold-standards.js +0 -84
  160. package/dist/src/cli/commands/init/scaffold-standards.js.map +0 -1
  161. package/dist/src/cli/commands/init.d.ts +0 -11
  162. package/dist/src/cli/commands/init.js +0 -362
  163. package/dist/src/cli/commands/init.js.map +0 -1
  164. package/dist/src/cli/commands/knowledge.d.ts +0 -2
  165. package/dist/src/cli/commands/knowledge.js +0 -16
  166. package/dist/src/cli/commands/knowledge.js.map +0 -1
  167. package/dist/src/cli/commands/lint.d.ts +0 -4
  168. package/dist/src/cli/commands/lint.js +0 -24
  169. package/dist/src/cli/commands/lint.js.map +0 -1
  170. package/dist/src/cli/commands/log.d.ts +0 -10
  171. package/dist/src/cli/commands/log.js +0 -14
  172. package/dist/src/cli/commands/log.js.map +0 -1
  173. package/dist/src/cli/commands/mcp.d.ts +0 -11
  174. package/dist/src/cli/commands/mcp.js +0 -132
  175. package/dist/src/cli/commands/mcp.js.map +0 -1
  176. package/dist/src/cli/commands/memory.d.ts +0 -1
  177. package/dist/src/cli/commands/memory.js +0 -5
  178. package/dist/src/cli/commands/memory.js.map +0 -1
  179. package/dist/src/cli/commands/orchestrate.d.ts +0 -61
  180. package/dist/src/cli/commands/orchestrate.js +0 -238
  181. package/dist/src/cli/commands/orchestrate.js.map +0 -1
  182. package/dist/src/cli/commands/plan.d.ts +0 -11
  183. package/dist/src/cli/commands/plan.js +0 -120
  184. package/dist/src/cli/commands/plan.js.map +0 -1
  185. package/dist/src/cli/commands/quickstart.d.ts +0 -9
  186. package/dist/src/cli/commands/quickstart.js +0 -60
  187. package/dist/src/cli/commands/quickstart.js.map +0 -1
  188. package/dist/src/cli/commands/script.d.ts +0 -1
  189. package/dist/src/cli/commands/script.js +0 -28
  190. package/dist/src/cli/commands/script.js.map +0 -1
  191. package/dist/src/cli/commands/security.d.ts +0 -1
  192. package/dist/src/cli/commands/security.js +0 -34
  193. package/dist/src/cli/commands/security.js.map +0 -1
  194. package/dist/src/cli/commands/status.d.ts +0 -4
  195. package/dist/src/cli/commands/status.js +0 -122
  196. package/dist/src/cli/commands/status.js.map +0 -1
  197. package/dist/src/cli/commands/trace.d.ts +0 -10
  198. package/dist/src/cli/commands/trace.js +0 -108
  199. package/dist/src/cli/commands/trace.js.map +0 -1
  200. package/dist/src/cli/index.d.ts +0 -2
  201. package/dist/src/cli/index.js +0 -282
  202. package/dist/src/cli/index.js.map +0 -1
  203. package/dist/src/cli/platforms/core.d.ts +0 -12
  204. package/dist/src/cli/platforms/core.js +0 -73
  205. package/dist/src/cli/platforms/core.js.map +0 -1
  206. package/dist/src/cli/platforms/index.d.ts +0 -5
  207. package/dist/src/cli/platforms/index.js +0 -6
  208. package/dist/src/cli/platforms/index.js.map +0 -1
  209. package/dist/src/cli/platforms/paths.d.ts +0 -15
  210. package/dist/src/cli/platforms/paths.js +0 -102
  211. package/dist/src/cli/platforms/paths.js.map +0 -1
  212. package/dist/src/cli/platforms/scaffold.d.ts +0 -2
  213. package/dist/src/cli/platforms/scaffold.js +0 -73
  214. package/dist/src/cli/platforms/scaffold.js.map +0 -1
  215. package/dist/src/cli/platforms/utils.d.ts +0 -4
  216. package/dist/src/cli/platforms/utils.js +0 -76
  217. package/dist/src/cli/platforms/utils.js.map +0 -1
  218. package/dist/src/cli/shims.d.ts +0 -1
  219. package/dist/src/cli/shims.js +0 -67
  220. package/dist/src/cli/shims.js.map +0 -1
  221. package/dist/src/cli/utils/claude.d.ts +0 -8
  222. package/dist/src/cli/utils/claude.js +0 -58
  223. package/dist/src/cli/utils/claude.js.map +0 -1
  224. package/dist/src/cli/utils/compliance.d.ts +0 -42
  225. package/dist/src/cli/utils/compliance.js +0 -150
  226. package/dist/src/cli/utils/compliance.js.map +0 -1
  227. package/dist/src/cli/utils/config-schema.d.ts +0 -139
  228. package/dist/src/cli/utils/config-schema.js +0 -43
  229. package/dist/src/cli/utils/config-schema.js.map +0 -1
  230. package/dist/src/cli/utils/fs.d.ts +0 -10
  231. package/dist/src/cli/utils/fs.js +0 -139
  232. package/dist/src/cli/utils/fs.js.map +0 -1
  233. package/dist/src/cli/utils/i18n.d.ts +0 -21
  234. package/dist/src/cli/utils/i18n.js +0 -36
  235. package/dist/src/cli/utils/i18n.js.map +0 -1
  236. package/dist/src/cli/utils/memory.d.ts +0 -39
  237. package/dist/src/cli/utils/memory.js +0 -281
  238. package/dist/src/cli/utils/memory.js.map +0 -1
  239. package/dist/src/cli/utils/pkg.d.ts +0 -43
  240. package/dist/src/cli/utils/pkg.js +0 -283
  241. package/dist/src/cli/utils/pkg.js.map +0 -1
  242. package/dist/src/cli/utils/quality.d.ts +0 -8
  243. package/dist/src/cli/utils/quality.js +0 -8
  244. package/dist/src/cli/utils/quality.js.map +0 -1
  245. package/dist/src/cli/utils/schemas.d.ts +0 -49
  246. package/dist/src/cli/utils/schemas.js +0 -20
  247. package/dist/src/cli/utils/schemas.js.map +0 -1
  248. package/dist/src/cli/utils/string.d.ts +0 -7
  249. package/dist/src/cli/utils/string.js +0 -50
  250. package/dist/src/cli/utils/string.js.map +0 -1
  251. package/dist/src/cli/utils/time.d.ts +0 -2
  252. package/dist/src/cli/utils/time.js +0 -28
  253. package/dist/src/cli/utils/time.js.map +0 -1
  254. package/dist/src/cli/utils/ui.d.ts +0 -53
  255. package/dist/src/cli/utils/ui.js +0 -101
  256. package/dist/src/cli/utils/ui.js.map +0 -1
  257. package/dist/src/contracts/index.d.ts +0 -1
  258. package/dist/src/contracts/index.js +0 -2
  259. package/dist/src/contracts/index.js.map +0 -1
  260. package/dist/src/contracts/tasks.d.ts +0 -44
  261. package/dist/src/contracts/tasks.js +0 -21
  262. package/dist/src/contracts/tasks.js.map +0 -1
  263. package/dist/src/modules/agents/definitions.d.ts +0 -26
  264. package/dist/src/modules/agents/definitions.js +0 -564
  265. package/dist/src/modules/agents/definitions.js.map +0 -1
  266. package/dist/src/modules/agents/registry/analyst.d.ts +0 -2
  267. package/dist/src/modules/agents/registry/analyst.js +0 -40
  268. package/dist/src/modules/agents/registry/analyst.js.map +0 -1
  269. package/dist/src/modules/agents/registry/architect.d.ts +0 -2
  270. package/dist/src/modules/agents/registry/architect.js +0 -43
  271. package/dist/src/modules/agents/registry/architect.js.map +0 -1
  272. package/dist/src/modules/agents/registry/backend.d.ts +0 -2
  273. package/dist/src/modules/agents/registry/backend.js +0 -51
  274. package/dist/src/modules/agents/registry/backend.js.map +0 -1
  275. package/dist/src/modules/agents/registry/database.d.ts +0 -2
  276. package/dist/src/modules/agents/registry/database.js +0 -46
  277. package/dist/src/modules/agents/registry/database.js.map +0 -1
  278. package/dist/src/modules/agents/registry/devops.d.ts +0 -2
  279. package/dist/src/modules/agents/registry/devops.js +0 -46
  280. package/dist/src/modules/agents/registry/devops.js.map +0 -1
  281. package/dist/src/modules/agents/registry/explorer.d.ts +0 -2
  282. package/dist/src/modules/agents/registry/explorer.js +0 -38
  283. package/dist/src/modules/agents/registry/explorer.js.map +0 -1
  284. package/dist/src/modules/agents/registry/frontend.d.ts +0 -2
  285. package/dist/src/modules/agents/registry/frontend.js +0 -53
  286. package/dist/src/modules/agents/registry/frontend.js.map +0 -1
  287. package/dist/src/modules/agents/registry/git.d.ts +0 -2
  288. package/dist/src/modules/agents/registry/git.js +0 -37
  289. package/dist/src/modules/agents/registry/git.js.map +0 -1
  290. package/dist/src/modules/agents/registry/manager.d.ts +0 -2
  291. package/dist/src/modules/agents/registry/manager.js +0 -65
  292. package/dist/src/modules/agents/registry/manager.js.map +0 -1
  293. package/dist/src/modules/agents/registry/mobile.d.ts +0 -2
  294. package/dist/src/modules/agents/registry/mobile.js +0 -42
  295. package/dist/src/modules/agents/registry/mobile.js.map +0 -1
  296. package/dist/src/modules/agents/registry/native.d.ts +0 -2
  297. package/dist/src/modules/agents/registry/native.js +0 -42
  298. package/dist/src/modules/agents/registry/native.js.map +0 -1
  299. package/dist/src/modules/agents/registry/quality.d.ts +0 -2
  300. package/dist/src/modules/agents/registry/quality.js +0 -44
  301. package/dist/src/modules/agents/registry/quality.js.map +0 -1
  302. package/dist/src/modules/agents/registry/security.d.ts +0 -2
  303. package/dist/src/modules/agents/registry/security.js +0 -43
  304. package/dist/src/modules/agents/registry/security.js.map +0 -1
  305. package/dist/src/modules/agents/types.d.ts +0 -33
  306. package/dist/src/modules/agents/types.js +0 -2
  307. package/dist/src/modules/agents/types.js.map +0 -1
  308. package/dist/src/modules/contracts/api.d.ts +0 -178
  309. package/dist/src/modules/contracts/api.js +0 -56
  310. package/dist/src/modules/contracts/api.js.map +0 -1
  311. package/dist/src/modules/contracts/index.d.ts +0 -5
  312. package/dist/src/modules/contracts/index.js +0 -6
  313. package/dist/src/modules/contracts/index.js.map +0 -1
  314. package/dist/src/modules/engines/agent-executor.d.ts +0 -46
  315. package/dist/src/modules/engines/agent-executor.js +0 -241
  316. package/dist/src/modules/engines/agent-executor.js.map +0 -1
  317. package/dist/src/modules/engines/agent-loop.d.ts +0 -34
  318. package/dist/src/modules/engines/agent-loop.js +0 -102
  319. package/dist/src/modules/engines/agent-loop.js.map +0 -1
  320. package/dist/src/modules/engines/contract-engine.d.ts +0 -46
  321. package/dist/src/modules/engines/contract-engine.js +0 -116
  322. package/dist/src/modules/engines/contract-engine.js.map +0 -1
  323. package/dist/src/modules/engines/crud-governance.d.ts +0 -64
  324. package/dist/src/modules/engines/crud-governance.js +0 -184
  325. package/dist/src/modules/engines/crud-governance.js.map +0 -1
  326. package/dist/src/modules/engines/discovery-engine.d.ts +0 -42
  327. package/dist/src/modules/engines/discovery-engine.js +0 -161
  328. package/dist/src/modules/engines/discovery-engine.js.map +0 -1
  329. package/dist/src/modules/engines/evaluation-engine.d.ts +0 -18
  330. package/dist/src/modules/engines/evaluation-engine.js +0 -171
  331. package/dist/src/modules/engines/evaluation-engine.js.map +0 -1
  332. package/dist/src/modules/engines/file-lock.d.ts +0 -41
  333. package/dist/src/modules/engines/file-lock.js +0 -168
  334. package/dist/src/modules/engines/file-lock.js.map +0 -1
  335. package/dist/src/modules/engines/health-engine.d.ts +0 -22
  336. package/dist/src/modules/engines/health-engine.js +0 -127
  337. package/dist/src/modules/engines/health-engine.js.map +0 -1
  338. package/dist/src/modules/engines/phase-engine.d.ts +0 -82
  339. package/dist/src/modules/engines/phase-engine.js +0 -211
  340. package/dist/src/modules/engines/phase-engine.js.map +0 -1
  341. package/dist/src/modules/engines/planning-engine.d.ts +0 -25
  342. package/dist/src/modules/engines/planning-engine.js +0 -80
  343. package/dist/src/modules/engines/planning-engine.js.map +0 -1
  344. package/dist/src/modules/engines/policy-engine.d.ts +0 -63
  345. package/dist/src/modules/engines/policy-engine.js +0 -186
  346. package/dist/src/modules/engines/policy-engine.js.map +0 -1
  347. package/dist/src/modules/engines/quality-gate.d.ts +0 -31
  348. package/dist/src/modules/engines/quality-gate.js +0 -95
  349. package/dist/src/modules/engines/quality-gate.js.map +0 -1
  350. package/dist/src/modules/engines/risk-engine.d.ts +0 -34
  351. package/dist/src/modules/engines/risk-engine.js +0 -201
  352. package/dist/src/modules/engines/risk-engine.js.map +0 -1
  353. package/dist/src/modules/engines/routing-engine.d.ts +0 -96
  354. package/dist/src/modules/engines/routing-engine.js +0 -505
  355. package/dist/src/modules/engines/routing-engine.js.map +0 -1
  356. package/dist/src/modules/engines/session-engine.d.ts +0 -68
  357. package/dist/src/modules/engines/session-engine.js +0 -141
  358. package/dist/src/modules/engines/session-engine.js.map +0 -1
  359. package/dist/src/modules/engines/types.d.ts +0 -51
  360. package/dist/src/modules/engines/types.js +0 -2
  361. package/dist/src/modules/engines/types.js.map +0 -1
  362. package/dist/src/modules/memory/core.d.ts +0 -42
  363. package/dist/src/modules/memory/core.js +0 -100
  364. package/dist/src/modules/memory/core.js.map +0 -1
  365. package/dist/src/modules/memory/embedding.d.ts +0 -28
  366. package/dist/src/modules/memory/embedding.js +0 -131
  367. package/dist/src/modules/memory/embedding.js.map +0 -1
  368. package/dist/src/modules/memory/types.d.ts +0 -18
  369. package/dist/src/modules/memory/types.js +0 -2
  370. package/dist/src/modules/memory/types.js.map +0 -1
  371. package/dist/src/modules/memory/vector-store.d.ts +0 -13
  372. package/dist/src/modules/memory/vector-store.js +0 -75
  373. package/dist/src/modules/memory/vector-store.js.map +0 -1
  374. package/dist/src/modules/providers/definitions.d.ts +0 -9
  375. package/dist/src/modules/providers/definitions.js +0 -141
  376. package/dist/src/modules/providers/definitions.js.map +0 -1
  377. package/dist/src/modules/providers/llm-provider.d.ts +0 -87
  378. package/dist/src/modules/providers/llm-provider.js +0 -242
  379. package/dist/src/modules/providers/llm-provider.js.map +0 -1
  380. package/dist/src/modules/providers/registry.d.ts +0 -12
  381. package/dist/src/modules/providers/registry.js +0 -19
  382. package/dist/src/modules/providers/registry.js.map +0 -1
  383. package/dist/src/modules/providers/shared.d.ts +0 -1
  384. package/dist/src/modules/providers/shared.js +0 -104
  385. package/dist/src/modules/providers/shared.js.map +0 -1
  386. package/dist/src/modules/providers/types.d.ts +0 -14
  387. package/dist/src/modules/providers/types.js +0 -2
  388. package/dist/src/modules/providers/types.js.map +0 -1
  389. package/dist/src/modules/skills/adapter-skills.d.ts +0 -68
  390. package/dist/src/modules/skills/adapter-skills.js +0 -450
  391. package/dist/src/modules/skills/adapter-skills.js.map +0 -1
  392. package/dist/src/modules/skills/definitions.d.ts +0 -48
  393. package/dist/src/modules/skills/definitions.js +0 -71
  394. package/dist/src/modules/skills/definitions.js.map +0 -1
  395. package/dist/src/shared/audit.js.map +0 -1
  396. package/dist/src/shared/constants.js.map +0 -1
  397. package/dist/src/shared/errors.js.map +0 -1
  398. package/dist/src/shared/fs.d.ts +0 -9
  399. package/dist/src/shared/fs.js +0 -54
  400. package/dist/src/shared/fs.js.map +0 -1
  401. package/dist/src/shared/lock.js.map +0 -1
  402. package/dist/src/shared/logger.js.map +0 -1
  403. package/dist/src/shared/pii.js.map +0 -1
  404. package/dist/src/shared/retention.js.map +0 -1
  405. package/dist/src/shared/storage.d.ts +0 -141
  406. package/dist/src/shared/storage.js +0 -326
  407. package/dist/src/shared/storage.js.map +0 -1
  408. package/dist/src/shared/string.js.map +0 -1
  409. package/dist/src/shared/types.js.map +0 -1
  410. package/dist/tests/adapter.test.d.ts +0 -1
  411. package/dist/tests/adapter.test.js +0 -130
  412. package/dist/tests/adapter.test.js.map +0 -1
  413. package/dist/tests/adapters/paths.test.d.ts +0 -1
  414. package/dist/tests/adapters/paths.test.js +0 -63
  415. package/dist/tests/adapters/paths.test.js.map +0 -1
  416. package/dist/tests/agent-memory-v2.test.d.ts +0 -1
  417. package/dist/tests/agent-memory-v2.test.js +0 -68
  418. package/dist/tests/agent-memory-v2.test.js.map +0 -1
  419. package/dist/tests/agents-definitions.test.d.ts +0 -1
  420. package/dist/tests/agents-definitions.test.js +0 -103
  421. package/dist/tests/agents-definitions.test.js.map +0 -1
  422. package/dist/tests/approve.test.d.ts +0 -1
  423. package/dist/tests/approve.test.js +0 -52
  424. package/dist/tests/approve.test.js.map +0 -1
  425. package/dist/tests/cli/commands/check.test.d.ts +0 -1
  426. package/dist/tests/cli/commands/check.test.js +0 -9
  427. package/dist/tests/cli/commands/check.test.js.map +0 -1
  428. package/dist/tests/cli/commands/coverage.test.d.ts +0 -1
  429. package/dist/tests/cli/commands/coverage.test.js +0 -9
  430. package/dist/tests/cli/commands/coverage.test.js.map +0 -1
  431. package/dist/tests/cli/commands/dashboard-coverage.test.d.ts +0 -1
  432. package/dist/tests/cli/commands/dashboard-coverage.test.js +0 -90
  433. package/dist/tests/cli/commands/dashboard-coverage.test.js.map +0 -1
  434. package/dist/tests/cli/commands/exports.test.d.ts +0 -1
  435. package/dist/tests/cli/commands/exports.test.js +0 -61
  436. package/dist/tests/cli/commands/exports.test.js.map +0 -1
  437. package/dist/tests/cli/commands/lint.test.d.ts +0 -1
  438. package/dist/tests/cli/commands/lint.test.js +0 -9
  439. package/dist/tests/cli/commands/lint.test.js.map +0 -1
  440. package/dist/tests/cli/init/adapter_init.test.d.ts +0 -1
  441. package/dist/tests/cli/init/adapter_init.test.js +0 -49
  442. package/dist/tests/cli/init/adapter_init.test.js.map +0 -1
  443. package/dist/tests/cli/init/unified_init.test.d.ts +0 -1
  444. package/dist/tests/cli/init/unified_init.test.js +0 -56
  445. package/dist/tests/cli/init/unified_init.test.js.map +0 -1
  446. package/dist/tests/core-memory.test.d.ts +0 -1
  447. package/dist/tests/core-memory.test.js +0 -78
  448. package/dist/tests/core-memory.test.js.map +0 -1
  449. package/dist/tests/embedding.test.d.ts +0 -1
  450. package/dist/tests/embedding.test.js +0 -82
  451. package/dist/tests/embedding.test.js.map +0 -1
  452. package/dist/tests/engines/evaluation-engine.test.d.ts +0 -1
  453. package/dist/tests/engines/evaluation-engine.test.js +0 -71
  454. package/dist/tests/engines/evaluation-engine.test.js.map +0 -1
  455. package/dist/tests/engines/planning-engine.test.d.ts +0 -1
  456. package/dist/tests/engines/planning-engine.test.js +0 -100
  457. package/dist/tests/engines/planning-engine.test.js.map +0 -1
  458. package/dist/tests/engines/quality-gate.test.d.ts +0 -1
  459. package/dist/tests/engines/quality-gate.test.js +0 -59
  460. package/dist/tests/engines/quality-gate.test.js.map +0 -1
  461. package/dist/tests/engines/risk-engine.test.d.ts +0 -1
  462. package/dist/tests/engines/risk-engine.test.js +0 -80
  463. package/dist/tests/engines/risk-engine.test.js.map +0 -1
  464. package/dist/tests/engines/routing-engine.test.d.ts +0 -1
  465. package/dist/tests/engines/routing-engine.test.js +0 -78
  466. package/dist/tests/engines/routing-engine.test.js.map +0 -1
  467. package/dist/tests/errors.test.d.ts +0 -1
  468. package/dist/tests/errors.test.js +0 -64
  469. package/dist/tests/errors.test.js.map +0 -1
  470. package/dist/tests/fs-utils.test.d.ts +0 -1
  471. package/dist/tests/fs-utils.test.js +0 -101
  472. package/dist/tests/fs-utils.test.js.map +0 -1
  473. package/dist/tests/integration/agent_flow.test.d.ts +0 -1
  474. package/dist/tests/integration/agent_flow.test.js +0 -69
  475. package/dist/tests/integration/agent_flow.test.js.map +0 -1
  476. package/dist/tests/integration/hermes_locking.test.d.ts +0 -1
  477. package/dist/tests/integration/hermes_locking.test.js +0 -62
  478. package/dist/tests/integration/hermes_locking.test.js.map +0 -1
  479. package/dist/tests/logger.test.d.ts +0 -1
  480. package/dist/tests/logger.test.js +0 -81
  481. package/dist/tests/logger.test.js.map +0 -1
  482. package/dist/tests/memory-utils.test.d.ts +0 -1
  483. package/dist/tests/memory-utils.test.js +0 -59
  484. package/dist/tests/memory-utils.test.js.map +0 -1
  485. package/dist/tests/modules/adapters/adapters.test.d.ts +0 -1
  486. package/dist/tests/modules/adapters/adapters.test.js +0 -30
  487. package/dist/tests/modules/adapters/adapters.test.js.map +0 -1
  488. package/dist/tests/modules/contracts/contracts.test.d.ts +0 -1
  489. package/dist/tests/modules/contracts/contracts.test.js +0 -73
  490. package/dist/tests/modules/contracts/contracts.test.js.map +0 -1
  491. package/dist/tests/modules/engines/agent-executor.test.d.ts +0 -1
  492. package/dist/tests/modules/engines/agent-executor.test.js +0 -61
  493. package/dist/tests/modules/engines/agent-executor.test.js.map +0 -1
  494. package/dist/tests/modules/engines/evaluation-engine.test.d.ts +0 -1
  495. package/dist/tests/modules/engines/evaluation-engine.test.js +0 -45
  496. package/dist/tests/modules/engines/evaluation-engine.test.js.map +0 -1
  497. package/dist/tests/modules/engines/health-engine.test.d.ts +0 -1
  498. package/dist/tests/modules/engines/health-engine.test.js +0 -56
  499. package/dist/tests/modules/engines/health-engine.test.js.map +0 -1
  500. package/dist/tests/modules/engines/planning-engine.test.d.ts +0 -1
  501. package/dist/tests/modules/engines/planning-engine.test.js +0 -75
  502. package/dist/tests/modules/engines/planning-engine.test.js.map +0 -1
  503. package/dist/tests/modules/engines/risk-engine.test.d.ts +0 -1
  504. package/dist/tests/modules/engines/risk-engine.test.js +0 -61
  505. package/dist/tests/modules/engines/risk-engine.test.js.map +0 -1
  506. package/dist/tests/modules/engines/routing-engine.test.d.ts +0 -1
  507. package/dist/tests/modules/engines/routing-engine.test.js +0 -56
  508. package/dist/tests/modules/engines/routing-engine.test.js.map +0 -1
  509. package/dist/tests/modules/memory/vector-store.test.d.ts +0 -1
  510. package/dist/tests/modules/memory/vector-store.test.js +0 -109
  511. package/dist/tests/modules/memory/vector-store.test.js.map +0 -1
  512. package/dist/tests/orchestrate.test.d.ts +0 -1
  513. package/dist/tests/orchestrate.test.js +0 -71
  514. package/dist/tests/orchestrate.test.js.map +0 -1
  515. package/dist/tests/orchestrator-dependencies.test.d.ts +0 -1
  516. package/dist/tests/orchestrator-dependencies.test.js +0 -70
  517. package/dist/tests/orchestrator-dependencies.test.js.map +0 -1
  518. package/dist/tests/plan.test.d.ts +0 -1
  519. package/dist/tests/plan.test.js +0 -63
  520. package/dist/tests/plan.test.js.map +0 -1
  521. package/dist/tests/shared/audit.test.d.ts +0 -1
  522. package/dist/tests/shared/audit.test.js +0 -53
  523. package/dist/tests/shared/audit.test.js.map +0 -1
  524. package/dist/tests/shared/constants.test.d.ts +0 -1
  525. package/dist/tests/shared/constants.test.js +0 -17
  526. package/dist/tests/shared/constants.test.js.map +0 -1
  527. package/dist/tests/shared/lock.test.d.ts +0 -1
  528. package/dist/tests/shared/lock.test.js +0 -95
  529. package/dist/tests/shared/lock.test.js.map +0 -1
  530. package/dist/tests/shared/pii.test.d.ts +0 -1
  531. package/dist/tests/shared/pii.test.js +0 -183
  532. package/dist/tests/shared/pii.test.js.map +0 -1
  533. package/dist/tests/skills-definitions.test.d.ts +0 -1
  534. package/dist/tests/skills-definitions.test.js +0 -34
  535. package/dist/tests/skills-definitions.test.js.map +0 -1
  536. package/dist/tests/status-cost.test.d.ts +0 -1
  537. package/dist/tests/status-cost.test.js +0 -47
  538. package/dist/tests/status-cost.test.js.map +0 -1
  539. package/dist/tests/status.test.d.ts +0 -1
  540. package/dist/tests/status.test.js +0 -49
  541. package/dist/tests/status.test.js.map +0 -1
  542. package/dist/tests/storage-operations.test.d.ts +0 -1
  543. package/dist/tests/storage-operations.test.js +0 -143
  544. package/dist/tests/storage-operations.test.js.map +0 -1
  545. package/dist/tests/string.test.d.ts +0 -1
  546. package/dist/tests/string.test.js +0 -89
  547. package/dist/tests/string.test.js.map +0 -1
  548. package/dist/tests/time.test.d.ts +0 -1
  549. package/dist/tests/time.test.js +0 -48
  550. package/dist/tests/time.test.js.map +0 -1
  551. package/dist/tests/trace-replay.test.d.ts +0 -1
  552. package/dist/tests/trace-replay.test.js +0 -59
  553. package/dist/tests/trace-replay.test.js.map +0 -1
  554. package/dist/tests/trace.test.d.ts +0 -1
  555. package/dist/tests/trace.test.js +0 -35
  556. package/dist/tests/trace.test.js.map +0 -1
  557. /package/dist/{src/shared → shared/src}/audit.d.ts +0 -0
  558. /package/dist/{src/shared → shared/src}/errors.d.ts +0 -0
  559. /package/dist/{src/shared → shared/src}/errors.js +0 -0
  560. /package/dist/{atabey-mcp/src/shared → shared/src}/fs.d.ts +0 -0
  561. /package/dist/{atabey-mcp/src/shared → shared/src}/fs.js +0 -0
  562. /package/dist/{src/shared → shared/src}/lock.d.ts +0 -0
  563. /package/dist/{src/shared → shared/src}/logger.d.ts +0 -0
  564. /package/dist/{src/shared → shared/src}/logger.js +0 -0
  565. /package/dist/{src/shared → shared/src}/pii.d.ts +0 -0
  566. /package/dist/{src/shared → shared/src}/retention.d.ts +0 -0
  567. /package/dist/{src/shared → shared/src}/string.d.ts +0 -0
  568. /package/dist/{src/shared → shared/src}/string.js +0 -0
  569. /package/dist/{src/shared → shared/src}/types.d.ts +0 -0
  570. /package/dist/{src/shared → shared/src}/types.js +0 -0
@@ -1,96 +0,0 @@
1
- export interface RoutingCandidate {
2
- agent: string;
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[];
15
- }
16
- export declare class RoutingEngine {
17
- /**
18
- * Advanced Routing Engine — analyzes task descriptions,
19
- * selects the most suitable agent, and determines subtasks.
20
- *
21
- * Uses real TF-IDF scoring: term frequency in the task weighted by
22
- * inverse document frequency across the full agent candidate corpus.
23
- *
24
- * Semantic routing via `resolveWithEmbeddings()` blends TF-IDF scores
25
- * with cosine similarity over local TF-IDF embeddings (or OpenAI embeddings
26
- * when OPENAI_API_KEY is set). Use the async variant for higher accuracy.
27
- */
28
- static resolveAgent(taskDescription: string): string;
29
- /**
30
- * Returns detailed routing result — score, confidence, reasoning, subTasks
31
- */
32
- static resolveWithDetails(taskDescription: string): RoutingResult;
33
- /**
34
- * Semantic routing via embedding cosine similarity.
35
- *
36
- * Blends TF-IDF score (60%) with embedding cosine similarity (40%).
37
- * Falls back gracefully to pure TF-IDF when embeddings are unavailable.
38
- *
39
- * When OPENAI_API_KEY is set, uses text-embedding-3-small (1536-dim).
40
- * Otherwise falls back to the local TF-IDF vectorizer (384-dim) from
41
- * CoreMemory.generateEmbedding(), which is already used by the memory system.
42
- *
43
- * @param taskDescription - Natural language task to route
44
- * @returns Routing result with semantic score blend
45
- */
46
- static resolveWithEmbeddings(taskDescription: string): Promise<RoutingResult>;
47
- /**
48
- * Scores a single candidate against a task using TF-IDF.
49
- * Extracted from resolveWithDetails to support semantic blend calculation.
50
- */
51
- private static scoreSingleCandidate;
52
- /**
53
- * Cosine similarity between two numeric vectors.
54
- * Returns a value in [0, 1] where 1 = identical direction.
55
- */
56
- private static cosineSimilarity;
57
- static planTask(taskDescription: string): string[];
58
- private static tokenize;
59
- /**
60
- * Real TF-IDF calculation: term frequency × inverse document frequency.
61
- * IDF = log(N / (df + 1) + 1) where N = total candidates, df = candidates containing the term.
62
- */
63
- private static calculateTfIdf;
64
- private static fallbackRouting;
65
- private static generateSubTasks;
66
- /**
67
- * Quality feedback loop — retries if @quality rejects
68
- * Uses real MCP calls, not simulations.
69
- */
70
- static qualityLoop(agent: string, taskDescription: string, maxRetries?: number): Promise<{
71
- success: boolean;
72
- attempts: number;
73
- }>;
74
- /**
75
- * Runs the agent through the Hermes messaging system.
76
- *
77
- * Flow:
78
- * 1. Write DELEGATION message to agent's queue (Storage.saveMessage)
79
- * 2. Wait for agent response (polling, max 30 seconds)
80
- * 3. Parse response and return as output
81
- */
82
- private static runAgent;
83
- /**
84
- * Runs quality control through the real QualityGate.
85
- *
86
- * Flow:
87
- * 1. QualityGate.check() for compliance + lint + test + content validation
88
- * 2. Aggregate results
89
- */
90
- private static runQualityCheck;
91
- private static getCandidates;
92
- /**
93
- * Default values for agents without a specialties field
94
- */
95
- private static defaultSpecialties;
96
- }
@@ -1,505 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import { getFrameworkDir } from "../../cli/utils/memory.js";
4
- import { logger } from "../../shared/logger.js";
5
- import { AtabeyStorage } from "../../shared/storage.js";
6
- import { asAgentID, asTraceID } from "../../shared/types.js";
7
- import { ALL_AGENTS } from "../agents/definitions.js";
8
- import { CoreMemory } from "../memory/core.js";
9
- export class RoutingEngine {
10
- /**
11
- * Advanced Routing Engine — analyzes task descriptions,
12
- * selects the most suitable agent, and determines subtasks.
13
- *
14
- * Uses real TF-IDF scoring: term frequency in the task weighted by
15
- * inverse document frequency across the full agent candidate corpus.
16
- *
17
- * Semantic routing via `resolveWithEmbeddings()` blends TF-IDF scores
18
- * with cosine similarity over local TF-IDF embeddings (or OpenAI embeddings
19
- * when OPENAI_API_KEY is set). Use the async variant for higher accuracy.
20
- */
21
- static resolveAgent(taskDescription) {
22
- return this.resolveWithDetails(taskDescription).agent;
23
- }
24
- /**
25
- * Returns detailed routing result — score, confidence, reasoning, subTasks
26
- */
27
- static resolveWithDetails(taskDescription) {
28
- const textLower = taskDescription.toLowerCase();
29
- const tokens = this.tokenize(textLower);
30
- const candidates = this.getCandidates();
31
- let bestAgent = "@backend";
32
- let bestScore = 0;
33
- let bestReasoning = "";
34
- let bestSubTasks = [];
35
- for (const candidate of candidates) {
36
- let score = 0;
37
- const matches = [];
38
- // 1. Specialty matching (weighted TF-IDF)
39
- for (const [specialty, weight] of Object.entries(candidate.specialties)) {
40
- const specTokens = this.tokenize(specialty.toLowerCase());
41
- for (const token of tokens) {
42
- if (specTokens.some(st => token.includes(st) || st.includes(token))) {
43
- score += weight * this.calculateTfIdf(token, tokens, candidates);
44
- matches.push(specialty);
45
- }
46
- }
47
- }
48
- // 2. Role matching
49
- const roleTokens = this.tokenize(candidate.role.toLowerCase());
50
- for (const token of tokens) {
51
- if (roleTokens.some(rt => token.includes(rt) || rt.includes(token))) {
52
- score += 3; // Role match bonus
53
- matches.push(`role:${candidate.role}`);
54
- }
55
- }
56
- // 3. DisplayName matching
57
- const nameTokens = this.tokenize(candidate.displayName.toLowerCase());
58
- for (const token of tokens) {
59
- if (nameTokens.some(nt => token.includes(nt) || nt.includes(token))) {
60
- score += 2;
61
- matches.push(`name:${candidate.displayName}`);
62
- }
63
- }
64
- // Capability bonus (more capable agents get priority)
65
- score += (candidate.capability - 5) * 0.5;
66
- if (score > bestScore) {
67
- bestScore = score;
68
- bestAgent = candidate.agent;
69
- bestReasoning = matches.length > 0
70
- ? `Matching fields: ${[...new Set(matches)].join(", ")}`
71
- : "Selected based on general capability";
72
- bestSubTasks = this.generateSubTasks(candidate.agent, taskDescription);
73
- }
74
- }
75
- // Static fallback (if nothing matches)
76
- if (bestScore === 0) {
77
- const fallback = this.fallbackRouting(tokens);
78
- bestAgent = fallback.agent;
79
- bestReasoning = fallback.reasoning;
80
- bestSubTasks = fallback.subTasks;
81
- }
82
- const confidence = bestScore > 15 ? "high"
83
- : bestScore > 7 ? "medium"
84
- : "low";
85
- return {
86
- agent: bestAgent,
87
- score: Math.round(bestScore * 10) / 10,
88
- confidence,
89
- reasoning: bestReasoning,
90
- subTasks: bestSubTasks,
91
- };
92
- }
93
- // ─── Semantic Routing (Embedding-based) ─────────────────────────────────
94
- /**
95
- * Semantic routing via embedding cosine similarity.
96
- *
97
- * Blends TF-IDF score (60%) with embedding cosine similarity (40%).
98
- * Falls back gracefully to pure TF-IDF when embeddings are unavailable.
99
- *
100
- * When OPENAI_API_KEY is set, uses text-embedding-3-small (1536-dim).
101
- * Otherwise falls back to the local TF-IDF vectorizer (384-dim) from
102
- * CoreMemory.generateEmbedding(), which is already used by the memory system.
103
- *
104
- * @param taskDescription - Natural language task to route
105
- * @returns Routing result with semantic score blend
106
- */
107
- static async resolveWithEmbeddings(taskDescription) {
108
- // Start TF-IDF routing in parallel with embedding generation
109
- const tfidfResult = this.resolveWithDetails(taskDescription);
110
- try {
111
- const taskVector = CoreMemory.generateEmbedding(taskDescription);
112
- const candidates = this.getCandidates();
113
- let bestAgent = tfidfResult.agent;
114
- let bestBlendedScore = -Infinity;
115
- let bestReasoning = tfidfResult.reasoning;
116
- for (const candidate of candidates) {
117
- // Build a combined specialty text for this agent to embed
118
- const specialtyText = Object.keys(candidate.specialties).join(" ") +
119
- " " + candidate.role + " " + candidate.displayName;
120
- const agentVector = CoreMemory.generateEmbedding(specialtyText);
121
- const similarity = this.cosineSimilarity(taskVector, agentVector);
122
- // Retrieve TF-IDF score for this specific candidate
123
- const candidateTfIdfScore = this.scoreSingleCandidate(taskDescription, candidate, candidates);
124
- // Blend: 60% TF-IDF score (normalized 0-1) + 40% cosine similarity
125
- const normalizedTfIdf = Math.min(candidateTfIdfScore / 30, 1);
126
- const blendedScore = normalizedTfIdf * 0.6 + similarity * 0.4;
127
- if (blendedScore > bestBlendedScore) {
128
- bestBlendedScore = blendedScore;
129
- bestAgent = candidate.agent;
130
- bestReasoning = `Semantic blend (TF-IDF: ${(normalizedTfIdf * 100).toFixed(0)}%, cosine: ${(similarity * 100).toFixed(0)}%) → ${candidate.role}`;
131
- }
132
- }
133
- const confidence = bestBlendedScore > 0.6 ? "high"
134
- : bestBlendedScore > 0.35 ? "medium"
135
- : "low";
136
- logger.debug(`[ROUTING] Semantic routing selected ${bestAgent} (blend score: ${bestBlendedScore.toFixed(3)})`);
137
- return {
138
- agent: bestAgent,
139
- score: Math.round(bestBlendedScore * 100) / 100,
140
- confidence,
141
- reasoning: bestReasoning,
142
- subTasks: this.generateSubTasks(bestAgent, taskDescription),
143
- };
144
- }
145
- catch (err) {
146
- // Graceful fallback to TF-IDF if embedding fails
147
- logger.warn(`[ROUTING] Embedding-based routing failed, falling back to TF-IDF: ${err.message}`);
148
- return tfidfResult;
149
- }
150
- }
151
- /**
152
- * Scores a single candidate against a task using TF-IDF.
153
- * Extracted from resolveWithDetails to support semantic blend calculation.
154
- */
155
- static scoreSingleCandidate(taskDescription, candidate, allCandidates) {
156
- const textLower = taskDescription.toLowerCase();
157
- const tokens = this.tokenize(textLower);
158
- let score = 0;
159
- for (const [specialty, weight] of Object.entries(candidate.specialties)) {
160
- const specTokens = this.tokenize(specialty.toLowerCase());
161
- for (const token of tokens) {
162
- if (specTokens.some(st => token.includes(st) || st.includes(token))) {
163
- score += weight * this.calculateTfIdf(token, tokens, allCandidates);
164
- }
165
- }
166
- }
167
- score += (candidate.capability - 5) * 0.5;
168
- return score;
169
- }
170
- /**
171
- * Cosine similarity between two numeric vectors.
172
- * Returns a value in [0, 1] where 1 = identical direction.
173
- */
174
- static cosineSimilarity(a, b) {
175
- const len = Math.min(a.length, b.length);
176
- let dot = 0;
177
- let normA = 0;
178
- let normB = 0;
179
- for (let i = 0; i < len; i++) {
180
- dot += a[i] * b[i];
181
- normA += a[i] * a[i];
182
- normB += b[i] * b[i];
183
- }
184
- const denom = Math.sqrt(normA) * Math.sqrt(normB);
185
- return denom === 0 ? 0 : Math.max(0, dot / denom);
186
- }
187
- static planTask(taskDescription) {
188
- const result = this.resolveWithDetails(taskDescription);
189
- const plan = [
190
- `>> Task: ${taskDescription}`,
191
- `>> Assigned to: ${result.agent}`,
192
- `>> Confidence: ${result.confidence.toUpperCase()} (Score: ${result.score})`,
193
- `>> Reason: ${result.reasoning}`,
194
- "",
195
- ">> Subtasks:",
196
- ...result.subTasks.map((t, i) => ` ${i + 1}. ${t}`),
197
- "",
198
- ">> Quality Check:",
199
- ` - When ${result.agent} completes, @quality will review`,
200
- ` - If @quality rejects, the task returns to ${result.agent}`,
201
- ];
202
- return plan;
203
- }
204
- // ─── Private Helpers ────────────────────────────────────────────────
205
- static tokenize(text) {
206
- return text
207
- .replace(/[^a-z0-9çşıöğü ]/g, " ")
208
- .split(/\s+/)
209
- .filter(t => t.length > 1);
210
- }
211
- /**
212
- * Real TF-IDF calculation: term frequency × inverse document frequency.
213
- * IDF = log(N / (df + 1) + 1) where N = total candidates, df = candidates containing the term.
214
- */
215
- static calculateTfIdf(term, tokens, allCandidates) {
216
- // TF: normalized term frequency in the task
217
- const tf = tokens.filter(t => t === term).length / Math.max(tokens.length, 1);
218
- // IDF: log(N / df + 1) where N = total candidates, df = candidates containing the term
219
- const N = allCandidates.length;
220
- const df = allCandidates.filter(c => Object.keys(c.specialties).some(s => s.toLowerCase().includes(term))).length;
221
- const idf = Math.log(N / (df + 1) + 1);
222
- return (1 + tf) * idf;
223
- }
224
- static fallbackRouting(tokens) {
225
- const text = tokens.join(" ");
226
- if (tokens.some(t => ["frontend", "ui", "page", "css", "html", "react", "component", "button", "form", "modal", "table", "interface"].includes(t))) {
227
- return {
228
- agent: "@frontend",
229
- reasoning: "Frontend/UI keywords detected",
230
- subTasks: this.generateSubTasks("@frontend", text),
231
- };
232
- }
233
- if (tokens.some(t => ["security", "auth", "token", "encrypt", "login"].includes(t))) {
234
- return {
235
- agent: "@security",
236
- reasoning: "Security keywords detected",
237
- subTasks: this.generateSubTasks("@security", text),
238
- };
239
- }
240
- if (tokens.some(t => ["database", "migration", "sql", "schema", "table", "index", "query"].includes(t))) {
241
- return {
242
- agent: "@database",
243
- reasoning: "Database keywords detected",
244
- subTasks: this.generateSubTasks("@database", text),
245
- };
246
- }
247
- if (tokens.some(t => ["docker", "ci", "cd", "deploy", "devops", "infra", "server", "nginx"].includes(t))) {
248
- return {
249
- agent: "@devops",
250
- reasoning: "DevOps/Infra keywords detected",
251
- subTasks: this.generateSubTasks("@devops", text),
252
- };
253
- }
254
- if (tokens.some(t => ["mobile", "react native", "expo", "ios", "android"].includes(t))) {
255
- return {
256
- agent: "@mobile",
257
- reasoning: "Mobile keywords detected",
258
- subTasks: this.generateSubTasks("@mobile", text),
259
- };
260
- }
261
- if (tokens.some(t => ["architect", "design", "architecture", "contract", "structure"].includes(t))) {
262
- return {
263
- agent: "@architect",
264
- reasoning: "Architecture/design keywords detected",
265
- subTasks: this.generateSubTasks("@architect", text),
266
- };
267
- }
268
- if (tokens.some(t => ["analysis", "analyst", "requirement", "contract", "validate"].includes(t))) {
269
- return {
270
- agent: "@analyst",
271
- reasoning: "Analysis/requirement keywords detected",
272
- subTasks: this.generateSubTasks("@analyst", text),
273
- };
274
- }
275
- return {
276
- agent: "@backend",
277
- reasoning: "Default routing to backend (most general capability)",
278
- subTasks: this.generateSubTasks("@backend", text),
279
- };
280
- }
281
- static generateSubTasks(agent, taskDescription) {
282
- const base = [
283
- `[*] ${agent}: Analyze and plan the task`,
284
- `[>] ${taskDescription}`,
285
- "[*] Write and run tests",
286
- "[*] Notify @quality for QA review",
287
- ];
288
- const agentSpecific = {
289
- "@manager": [
290
- "[*] Analyze task and break into subtasks",
291
- "[*] Identify suitable agents and distribute tasks",
292
- "[*] Monitor progress and manage quality gate",
293
- ],
294
- "@backend": [
295
- "[*] Create Controller-Service-Repository layers",
296
- "[*] Update API contracts",
297
- "[*] Integrate database operations",
298
- ],
299
- "@frontend": [
300
- "[*] Create UI components in atomic structure",
301
- "[*] Apply responsive design",
302
- "[*] Integrate with API",
303
- ],
304
- "@quality": [
305
- "[*] Run compliance check (check_compliance)",
306
- "[*] Run lint check",
307
- "[*] Verify test coverage",
308
- "[*] Report approval/rejection to @manager",
309
- ],
310
- "@database": [
311
- "[*] Prepare migration file",
312
- "[*] Optimize queries",
313
- "[*] Define index strategy",
314
- ],
315
- "@security": [
316
- "[*] Run security vulnerability scan",
317
- "[*] Verify auth/encryption controls",
318
- "[*] Check secret management",
319
- ],
320
- "@devops": [
321
- "[*] Prepare Docker configuration",
322
- "[*] Update CI/CD pipeline",
323
- "[*] Check environment variables",
324
- ],
325
- "@mobile": [
326
- "[*] Create React Native components",
327
- "[*] Apply offline-first architecture",
328
- "[*] Implement SafeArea and responsive controls",
329
- ],
330
- "@explorer": [
331
- "[*] Explore and map the codebase",
332
- "[*] Analyze dependencies",
333
- "[*] Send report to @manager",
334
- ],
335
- "@git": [
336
- "[*] Define branch strategy",
337
- "[*] Prepare commit messages with Trace ID",
338
- "[*] Perform rebase/merge operations if needed",
339
- ],
340
- };
341
- const specific = agentSpecific[agent] || [];
342
- return [...specific, ...base];
343
- }
344
- /**
345
- * Quality feedback loop — retries if @quality rejects
346
- * Uses real MCP calls, not simulations.
347
- */
348
- static async qualityLoop(agent, taskDescription, maxRetries = 3) {
349
- for (let attempt = 1; attempt <= maxRetries; attempt++) {
350
- logger.info(`[RETRY] Attempt ${attempt}/${maxRetries}: ${agent} running...`, {
351
- agent,
352
- attempt,
353
- maxRetries,
354
- task: taskDescription.substring(0, 100),
355
- });
356
- // Agent runs via MCP call
357
- const result = await this.runAgent(agent, taskDescription);
358
- // Quality check via MCP
359
- const qualityResult = await this.runQualityCheck(result);
360
- if (qualityResult.passed) {
361
- logger.info(`[OK] Quality check PASSED (attempt ${attempt})`, { agent, attempt });
362
- return { success: true, attempts: attempt };
363
- }
364
- logger.warn(`[FAIL] Quality check FAILED: ${qualityResult.reason}`, {
365
- agent,
366
- attempt,
367
- reason: qualityResult.reason,
368
- });
369
- logger.info(`[RETRY] ${agent} fixing errors...`, { agent, attempt });
370
- }
371
- logger.error(`[FAIL] ${maxRetries} attempts exhausted. Human intervention required.`, {
372
- agent,
373
- maxRetries,
374
- task: taskDescription.substring(0, 100),
375
- });
376
- return { success: false, attempts: maxRetries };
377
- }
378
- /**
379
- * Runs the agent through the Hermes messaging system.
380
- *
381
- * Flow:
382
- * 1. Write DELEGATION message to agent's queue (Storage.saveMessage)
383
- * 2. Wait for agent response (polling, max 30 seconds)
384
- * 3. Parse response and return as output
385
- */
386
- static async runAgent(agent, task) {
387
- const agentName = agent.replace("@", "");
388
- const traceId = `T-${Date.now()}-${Math.random().toString(36).substring(2, 8)}`;
389
- const messagePayload = JSON.stringify({
390
- type: "DELEGATION",
391
- task,
392
- traceId,
393
- from: "@manager",
394
- });
395
- AtabeyStorage.saveMessage({
396
- from: asAgentID("@manager"),
397
- to: asAgentID(agent),
398
- category: "DELEGATION",
399
- content: messagePayload,
400
- traceId: asTraceID(traceId),
401
- timestamp: new Date().toISOString(),
402
- status: "PENDING",
403
- priority: "HIGH",
404
- requiresApproval: false,
405
- });
406
- logger.info(`[HERMES] Delegation sent to ${agent} (trace: ${traceId})`);
407
- // Poll for response (max 30 seconds)
408
- const maxAttempts = 60;
409
- const pollInterval = 500;
410
- for (let attempt = 0; attempt < maxAttempts; attempt++) {
411
- const messages = AtabeyStorage.getPendingMessages();
412
- const response = messages.find(m => m.from.replace("@", "") === agentName
413
- && m.category === "RESPONSE"
414
- && m.traceId === traceId
415
- && m.status === "PENDING");
416
- if (response) {
417
- if (response.id !== undefined) {
418
- AtabeyStorage.updateMessageStatus(response.id, "PROCESSED");
419
- }
420
- logger.info(`[HERMES] Response received from ${agent} (trace: ${traceId})`);
421
- return response.content;
422
- }
423
- await new Promise(resolve => setTimeout(resolve, pollInterval));
424
- }
425
- const timeoutMsg = `[TIMEOUT] ${agent} did not respond within 30s`;
426
- logger.warn(`[HERMES] ${timeoutMsg} (trace: ${traceId})`);
427
- return timeoutMsg;
428
- }
429
- /**
430
- * Runs quality control through the real QualityGate.
431
- *
432
- * Flow:
433
- * 1. QualityGate.check() for compliance + lint + test + content validation
434
- * 2. Aggregate results
435
- */
436
- static async runQualityCheck(result) {
437
- const { QualityGate } = await import("./quality-gate.js");
438
- const qualityResult = await QualityGate.check("@quality", result, "Quality check via routing engine");
439
- return {
440
- passed: qualityResult.passed,
441
- reason: qualityResult.reason,
442
- };
443
- }
444
- static getCandidates() {
445
- const frameworkDir = getFrameworkDir();
446
- const registryDir = path.join(frameworkDir, "registry");
447
- let candidates = [];
448
- // 1. Control Plane Registry (actively registered agents)
449
- if (fs.existsSync(registryDir)) {
450
- const registryFiles = fs.readdirSync(registryDir).filter(f => f.endsWith("_active.json"));
451
- for (const file of registryFiles) {
452
- try {
453
- const data = JSON.parse(fs.readFileSync(path.join(registryDir, file), "utf8"));
454
- if (data.agent && data.specialties) {
455
- candidates.push({
456
- agent: data.agent,
457
- specialties: data.specialties,
458
- displayName: data.displayName || data.agent,
459
- role: data.role || "",
460
- capability: data.capability || 8,
461
- tier: data.tier || "core",
462
- });
463
- }
464
- }
465
- catch (err) {
466
- logger.debug(`Failed to parse registry file: ${file}`, err);
467
- }
468
- }
469
- }
470
- // 2. Built-in agent definitions
471
- if (candidates.length === 0) {
472
- candidates = ALL_AGENTS.map(ag => ({
473
- agent: ag.name.startsWith("@") ? ag.name : `@${ag.name}`,
474
- specialties: ag.specialties ?? this.defaultSpecialties(ag.name),
475
- displayName: ag.displayName,
476
- role: ag.role,
477
- capability: ag.capability,
478
- tier: ag.tier,
479
- }));
480
- }
481
- return candidates;
482
- }
483
- /**
484
- * Default values for agents without a specialties field
485
- */
486
- static defaultSpecialties(name) {
487
- const defaults = {
488
- manager: { orchestration: 10, governance: 10, delegation: 10, audit: 8, planning: 9 },
489
- architect: { design: 10, contract: 9, architecture: 10, types: 9, planning: 8 },
490
- backend: { backend: 10, api: 9, logic: 9, service: 8, database: 7, test: 8 },
491
- frontend: { frontend: 10, ui: 10, css: 9, html: 9, react: 9, responsive: 8 },
492
- mobile: { mobile: 10, "react native": 9, expo: 8, offline: 8, accessibility: 7 },
493
- quality: { audit: 10, compliance: 10, lint: 9, test: 9, coverage: 8 },
494
- database: { database: 10, migration: 9, sql: 9, schema: 8, index: 8 },
495
- security: { security: 10, auth: 9, encryption: 8, audit: 9, token: 8 },
496
- devops: { devops: 10, docker: 9, ci: 9, deploy: 9, infra: 8 },
497
- analyst: { analysis: 10, contract: 9, requirement: 9, validation: 8, documentation: 7 },
498
- native: { native: 9, desktop: 8, "os-level": 8, security: 8 },
499
- explorer: { discovery: 10, mapping: 9, dependency: 8, recon: 8 },
500
- git: { git: 10, version: 9, commit: 8, branching: 8, traceability: 8 },
501
- };
502
- return defaults[name] || { general: 5 };
503
- }
504
- }
505
- //# sourceMappingURL=routing-engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routing-engine.js","sourceRoot":"","sources":["../../../../src/modules/engines/routing-engine.ts"],"names":[],"mappings":"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"}