atabey 0.0.22 → 0.0.25

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 (438) hide show
  1. package/ATABEY.md +6 -1
  2. package/README.md +3 -3
  3. package/dist/atabey/src/cli/commands/dashboard.js +20 -19
  4. package/dist/atabey/src/cli/commands/dashboard.js.map +1 -1
  5. package/dist/atabey/src/cli/commands/index-codebase.js +1 -1
  6. package/dist/atabey/src/cli/commands/index-codebase.js.map +1 -1
  7. package/dist/atabey/src/cli/commands/init/scaffold-core.js +10 -1
  8. package/dist/atabey/src/cli/commands/init/scaffold-core.js.map +1 -1
  9. package/dist/atabey/src/cli/commands/init/scaffold-docs.js +2 -2
  10. package/dist/atabey/src/cli/commands/init/scaffold-docs.js.map +1 -1
  11. package/dist/atabey/src/cli/commands/init/scaffold-standards.js +1 -1
  12. package/dist/atabey/src/cli/commands/init.js +12 -18
  13. package/dist/atabey/src/cli/commands/init.js.map +1 -1
  14. package/dist/atabey/src/cli/commands/mcp.js +1 -1
  15. package/dist/atabey/src/cli/commands/mcp.js.map +1 -1
  16. package/dist/atabey/src/cli/commands/orchestrate.d.ts +8 -8
  17. package/dist/atabey/src/cli/index.js +50 -3
  18. package/dist/atabey/src/cli/index.js.map +1 -1
  19. package/dist/atabey/src/cli/utils/config-schema.d.ts +19 -19
  20. package/dist/atabey/src/cli/utils/i18n.d.ts +9 -4
  21. package/dist/atabey/src/cli/utils/i18n.js +26 -31
  22. package/dist/atabey/src/cli/utils/i18n.js.map +1 -1
  23. package/dist/atabey/src/cli/utils/pkg.js +3 -2
  24. package/dist/atabey/src/cli/utils/pkg.js.map +1 -1
  25. package/dist/atabey/src/cli/utils/schemas.d.ts +6 -6
  26. package/dist/atabey/src/cli/utils/validate-registry.js +5 -4
  27. package/dist/atabey/src/cli/utils/validate-registry.js.map +1 -1
  28. package/dist/atabey/src/contracts/tasks.d.ts +4 -4
  29. package/dist/atabey/src/modules/agents/registry/manager.js +1 -1
  30. package/dist/atabey/src/modules/agents/registry/security.js +1 -1
  31. package/dist/atabey/src/modules/agents/registry/security.js.map +1 -1
  32. package/dist/atabey/src/modules/contracts/api.d.ts +6 -6
  33. package/dist/atabey/src/modules/engines/agent-executor.js +82 -47
  34. package/dist/atabey/src/modules/engines/agent-executor.js.map +1 -1
  35. package/dist/atabey/src/modules/engines/agent-loop.d.ts +5 -2
  36. package/dist/atabey/src/modules/engines/agent-loop.js +39 -13
  37. package/dist/atabey/src/modules/engines/agent-loop.js.map +1 -1
  38. package/dist/atabey/src/modules/engines/file-lock.d.ts +18 -8
  39. package/dist/atabey/src/modules/engines/file-lock.js +95 -101
  40. package/dist/atabey/src/modules/engines/file-lock.js.map +1 -1
  41. package/dist/atabey/src/modules/engines/policy-engine.js +5 -3
  42. package/dist/atabey/src/modules/engines/policy-engine.js.map +1 -1
  43. package/dist/atabey/src/modules/engines/routing-engine.d.ts +3 -0
  44. package/dist/atabey/src/modules/engines/routing-engine.js +14 -4
  45. package/dist/atabey/src/modules/engines/routing-engine.js.map +1 -1
  46. package/dist/atabey/src/modules/engines/sandbox.d.ts +31 -0
  47. package/dist/atabey/src/modules/engines/sandbox.js +57 -0
  48. package/dist/atabey/src/modules/engines/sandbox.js.map +1 -0
  49. package/dist/atabey/src/modules/engines/worker-pool.d.ts +8 -0
  50. package/dist/atabey/src/modules/engines/worker-pool.js +9 -0
  51. package/dist/atabey/src/modules/engines/worker-pool.js.map +1 -0
  52. package/dist/atabey/src/modules/engines/worker-script.d.ts +8 -0
  53. package/dist/atabey/src/modules/engines/worker-script.js +99 -0
  54. package/dist/atabey/src/modules/engines/worker-script.js.map +1 -0
  55. package/dist/atabey/src/modules/memory/core.js +1 -1
  56. package/dist/atabey/src/modules/memory/core.js.map +1 -1
  57. package/dist/atabey/src/shared/file-lock.d.ts +1 -0
  58. package/dist/atabey/src/shared/file-lock.js +2 -0
  59. package/dist/atabey/src/shared/file-lock.js.map +1 -0
  60. package/dist/atabey/src/shared/job-queue.d.ts +1 -0
  61. package/dist/atabey/src/shared/job-queue.js +2 -0
  62. package/dist/atabey/src/shared/job-queue.js.map +1 -0
  63. package/dist/atabey/src/shared/resilience.d.ts +1 -0
  64. package/dist/atabey/src/shared/resilience.js +2 -0
  65. package/dist/atabey/src/shared/resilience.js.map +1 -0
  66. package/dist/atabey/src/shared/sandbox-runtime.d.ts +1 -0
  67. package/dist/atabey/src/shared/sandbox-runtime.js +2 -0
  68. package/dist/atabey/src/shared/sandbox-runtime.js.map +1 -0
  69. package/dist/atabey/src/shared/sandbox.d.ts +1 -0
  70. package/dist/atabey/src/shared/sandbox.js +2 -0
  71. package/dist/atabey/src/shared/sandbox.js.map +1 -0
  72. package/dist/atabey/src/shared/storage.d.ts +8 -0
  73. package/dist/atabey/src/shared/storage.js +51 -40
  74. package/dist/atabey/src/shared/storage.js.map +1 -1
  75. package/dist/atabey/src/shared/worker-pool.d.ts +1 -0
  76. package/dist/atabey/src/shared/worker-pool.js +2 -0
  77. package/dist/atabey/src/shared/worker-pool.js.map +1 -0
  78. package/dist/atabey-mcp/src/mcp/utils/auto-rollback.js +114 -5
  79. package/dist/atabey-mcp/src/mcp/utils/auto-rollback.js.map +1 -1
  80. package/dist/atabey-mcp/src/mcp/utils/loop-detector.d.ts +1 -0
  81. package/dist/atabey-mcp/src/mcp/utils/loop-detector.js +57 -6
  82. package/dist/atabey-mcp/src/mcp/utils/loop-detector.js.map +1 -1
  83. package/dist/atabey-mcp/src/shared/storage.d.ts +9 -0
  84. package/dist/atabey-mcp/src/shared/storage.js +51 -0
  85. package/dist/atabey-mcp/src/shared/storage.js.map +1 -1
  86. package/dist/shared/src/audit-chain.d.ts +51 -0
  87. package/dist/shared/src/audit-chain.js +85 -0
  88. package/dist/shared/src/audit-chain.js.map +1 -0
  89. package/dist/shared/src/audit.d.ts +8 -0
  90. package/dist/shared/src/audit.js +82 -18
  91. package/dist/shared/src/audit.js.map +1 -1
  92. package/dist/shared/src/file-lock.d.ts +85 -0
  93. package/dist/shared/src/file-lock.js +246 -0
  94. package/dist/shared/src/file-lock.js.map +1 -0
  95. package/dist/shared/src/index.d.ts +9 -0
  96. package/dist/shared/src/index.js +9 -0
  97. package/dist/shared/src/index.js.map +1 -1
  98. package/dist/shared/src/job-queue.d.ts +53 -0
  99. package/dist/shared/src/job-queue.js +127 -0
  100. package/dist/shared/src/job-queue.js.map +1 -0
  101. package/dist/shared/src/policy-gate.d.ts +42 -0
  102. package/dist/shared/src/policy-gate.js +148 -0
  103. package/dist/shared/src/policy-gate.js.map +1 -0
  104. package/dist/shared/src/resilience.d.ts +84 -0
  105. package/dist/shared/src/resilience.js +217 -0
  106. package/dist/shared/src/resilience.js.map +1 -0
  107. package/dist/shared/src/sandbox-fs.d.ts +28 -0
  108. package/dist/shared/src/sandbox-fs.js +148 -0
  109. package/dist/shared/src/sandbox-fs.js.map +1 -0
  110. package/dist/shared/src/sandbox-runtime.d.ts +85 -0
  111. package/dist/shared/src/sandbox-runtime.js +250 -0
  112. package/dist/shared/src/sandbox-runtime.js.map +1 -0
  113. package/dist/shared/src/sandbox.d.ts +54 -0
  114. package/dist/shared/src/sandbox.js +179 -0
  115. package/dist/shared/src/sandbox.js.map +1 -0
  116. package/dist/shared/src/worker-pool.d.ts +52 -0
  117. package/dist/shared/src/worker-pool.js +210 -0
  118. package/dist/shared/src/worker-pool.js.map +1 -0
  119. package/dist/shared/src/worker-thread.d.ts +21 -0
  120. package/dist/shared/src/worker-thread.js +67 -0
  121. package/dist/shared/src/worker-thread.js.map +1 -0
  122. package/dist/src/cli/commands/approve.d.ts +1 -0
  123. package/dist/src/cli/commands/approve.js +64 -0
  124. package/dist/src/cli/commands/approve.js.map +1 -0
  125. package/dist/src/cli/commands/check.d.ts +1 -0
  126. package/dist/src/cli/commands/check.js +339 -0
  127. package/dist/src/cli/commands/check.js.map +1 -0
  128. package/dist/src/cli/commands/compliance.d.ts +5 -0
  129. package/dist/src/cli/commands/compliance.js +43 -0
  130. package/dist/src/cli/commands/compliance.js.map +1 -0
  131. package/dist/src/cli/commands/contract.d.ts +10 -0
  132. package/dist/src/cli/commands/contract.js +52 -0
  133. package/dist/src/cli/commands/contract.js.map +1 -0
  134. package/dist/src/cli/commands/coverage.d.ts +1 -0
  135. package/dist/src/cli/commands/coverage.js +121 -0
  136. package/dist/src/cli/commands/coverage.js.map +1 -0
  137. package/dist/src/cli/commands/dashboard.d.ts +5 -0
  138. package/dist/src/cli/commands/dashboard.js +753 -0
  139. package/dist/src/cli/commands/dashboard.js.map +1 -0
  140. package/dist/src/cli/commands/explorer.d.ts +2 -0
  141. package/dist/src/cli/commands/explorer.js +44 -0
  142. package/dist/src/cli/commands/explorer.js.map +1 -0
  143. package/dist/src/cli/commands/git.d.ts +2 -0
  144. package/dist/src/cli/commands/git.js +40 -0
  145. package/dist/src/cli/commands/git.js.map +1 -0
  146. package/dist/src/cli/commands/index-codebase.d.ts +4 -0
  147. package/dist/src/cli/commands/index-codebase.js +63 -0
  148. package/dist/src/cli/commands/index-codebase.js.map +1 -0
  149. package/dist/src/cli/commands/init/create-agent.d.ts +4 -0
  150. package/dist/src/cli/commands/init/create-agent.js +59 -0
  151. package/dist/src/cli/commands/init/create-agent.js.map +1 -0
  152. package/dist/src/cli/commands/init/scaffold-core.d.ts +13 -0
  153. package/dist/src/cli/commands/init/scaffold-core.js +188 -0
  154. package/dist/src/cli/commands/init/scaffold-core.js.map +1 -0
  155. package/dist/src/cli/commands/init/scaffold-docs.d.ts +4 -0
  156. package/dist/src/cli/commands/init/scaffold-docs.js +36 -0
  157. package/dist/src/cli/commands/init/scaffold-docs.js.map +1 -0
  158. package/dist/src/cli/commands/init/scaffold-ops.d.ts +1 -0
  159. package/dist/src/cli/commands/init/scaffold-ops.js +81 -0
  160. package/dist/src/cli/commands/init/scaffold-ops.js.map +1 -0
  161. package/dist/src/cli/commands/init/scaffold-standards.d.ts +2 -0
  162. package/dist/src/cli/commands/init/scaffold-standards.js +84 -0
  163. package/dist/src/cli/commands/init/scaffold-standards.js.map +1 -0
  164. package/dist/src/cli/commands/init.d.ts +11 -0
  165. package/dist/src/cli/commands/init.js +371 -0
  166. package/dist/src/cli/commands/init.js.map +1 -0
  167. package/dist/src/cli/commands/knowledge.d.ts +2 -0
  168. package/dist/src/cli/commands/knowledge.js +16 -0
  169. package/dist/src/cli/commands/knowledge.js.map +1 -0
  170. package/dist/src/cli/commands/lint.d.ts +4 -0
  171. package/dist/src/cli/commands/lint.js +24 -0
  172. package/dist/src/cli/commands/lint.js.map +1 -0
  173. package/dist/src/cli/commands/log.d.ts +10 -0
  174. package/dist/src/cli/commands/log.js +14 -0
  175. package/dist/src/cli/commands/log.js.map +1 -0
  176. package/dist/src/cli/commands/mcp.d.ts +11 -0
  177. package/dist/src/cli/commands/mcp.js +128 -0
  178. package/dist/src/cli/commands/mcp.js.map +1 -0
  179. package/dist/src/cli/commands/memory.d.ts +1 -0
  180. package/dist/src/cli/commands/memory.js +5 -0
  181. package/dist/src/cli/commands/memory.js.map +1 -0
  182. package/dist/src/cli/commands/orchestrate.d.ts +62 -0
  183. package/dist/src/cli/commands/orchestrate.js +263 -0
  184. package/dist/src/cli/commands/orchestrate.js.map +1 -0
  185. package/dist/src/cli/commands/plan.d.ts +11 -0
  186. package/dist/src/cli/commands/plan.js +120 -0
  187. package/dist/src/cli/commands/plan.js.map +1 -0
  188. package/dist/src/cli/commands/quickstart.d.ts +9 -0
  189. package/dist/src/cli/commands/quickstart.js +60 -0
  190. package/dist/src/cli/commands/quickstart.js.map +1 -0
  191. package/dist/src/cli/commands/script.d.ts +1 -0
  192. package/dist/src/cli/commands/script.js +28 -0
  193. package/dist/src/cli/commands/script.js.map +1 -0
  194. package/dist/src/cli/commands/security.d.ts +1 -0
  195. package/dist/src/cli/commands/security.js +34 -0
  196. package/dist/src/cli/commands/security.js.map +1 -0
  197. package/dist/src/cli/commands/status.d.ts +4 -0
  198. package/dist/src/cli/commands/status.js +122 -0
  199. package/dist/src/cli/commands/status.js.map +1 -0
  200. package/dist/src/cli/commands/trace.d.ts +10 -0
  201. package/dist/src/cli/commands/trace.js +108 -0
  202. package/dist/src/cli/commands/trace.js.map +1 -0
  203. package/dist/src/cli/index.d.ts +2 -0
  204. package/dist/src/cli/index.js +289 -0
  205. package/dist/src/cli/index.js.map +1 -0
  206. package/dist/src/cli/platforms/core.d.ts +16 -0
  207. package/dist/src/cli/platforms/core.js +77 -0
  208. package/dist/src/cli/platforms/core.js.map +1 -0
  209. package/dist/src/cli/platforms/index.d.ts +5 -0
  210. package/dist/src/cli/platforms/index.js +6 -0
  211. package/dist/src/cli/platforms/index.js.map +1 -0
  212. package/dist/src/cli/platforms/paths.d.ts +15 -0
  213. package/dist/src/cli/platforms/paths.js +102 -0
  214. package/dist/src/cli/platforms/paths.js.map +1 -0
  215. package/dist/src/cli/platforms/scaffold.d.ts +2 -0
  216. package/dist/src/cli/platforms/scaffold.js +73 -0
  217. package/dist/src/cli/platforms/scaffold.js.map +1 -0
  218. package/dist/src/cli/platforms/utils.d.ts +4 -0
  219. package/dist/src/cli/platforms/utils.js +76 -0
  220. package/dist/src/cli/platforms/utils.js.map +1 -0
  221. package/dist/src/cli/shims.d.ts +1 -0
  222. package/dist/src/cli/shims.js +67 -0
  223. package/dist/src/cli/shims.js.map +1 -0
  224. package/dist/src/cli/utils/claude.d.ts +8 -0
  225. package/dist/src/cli/utils/claude.js +58 -0
  226. package/dist/src/cli/utils/claude.js.map +1 -0
  227. package/dist/src/cli/utils/compliance.d.ts +42 -0
  228. package/dist/src/cli/utils/compliance.js +150 -0
  229. package/dist/src/cli/utils/compliance.js.map +1 -0
  230. package/dist/src/cli/utils/config-schema.d.ts +256 -0
  231. package/dist/src/cli/utils/config-schema.js +67 -0
  232. package/dist/src/cli/utils/config-schema.js.map +1 -0
  233. package/dist/src/cli/utils/fs.d.ts +10 -0
  234. package/dist/src/cli/utils/fs.js +139 -0
  235. package/dist/src/cli/utils/fs.js.map +1 -0
  236. package/dist/src/cli/utils/i18n.d.ts +21 -0
  237. package/dist/src/cli/utils/i18n.js +36 -0
  238. package/dist/src/cli/utils/i18n.js.map +1 -0
  239. package/dist/src/cli/utils/memory.d.ts +45 -0
  240. package/dist/src/cli/utils/memory.js +339 -0
  241. package/dist/src/cli/utils/memory.js.map +1 -0
  242. package/dist/src/cli/utils/pkg.d.ts +42 -0
  243. package/dist/src/cli/utils/pkg.js +281 -0
  244. package/dist/src/cli/utils/pkg.js.map +1 -0
  245. package/dist/src/cli/utils/quality.d.ts +25 -0
  246. package/dist/src/cli/utils/quality.js +61 -0
  247. package/dist/src/cli/utils/quality.js.map +1 -0
  248. package/dist/src/cli/utils/schemas.d.ts +49 -0
  249. package/dist/src/cli/utils/schemas.js +20 -0
  250. package/dist/src/cli/utils/schemas.js.map +1 -0
  251. package/dist/src/cli/utils/string.d.ts +7 -0
  252. package/dist/src/cli/utils/string.js +50 -0
  253. package/dist/src/cli/utils/string.js.map +1 -0
  254. package/dist/src/cli/utils/time.d.ts +2 -0
  255. package/dist/src/cli/utils/time.js +28 -0
  256. package/dist/src/cli/utils/time.js.map +1 -0
  257. package/dist/src/cli/utils/ui.d.ts +53 -0
  258. package/dist/src/cli/utils/ui.js +101 -0
  259. package/dist/src/cli/utils/ui.js.map +1 -0
  260. package/dist/src/cli/utils/validate-registry.d.ts +4 -0
  261. package/dist/src/cli/utils/validate-registry.js +130 -0
  262. package/dist/src/cli/utils/validate-registry.js.map +1 -0
  263. package/dist/src/contracts/index.d.ts +1 -0
  264. package/dist/src/contracts/index.js +2 -0
  265. package/dist/src/contracts/index.js.map +1 -0
  266. package/dist/src/contracts/tasks.d.ts +44 -0
  267. package/dist/src/contracts/tasks.js +21 -0
  268. package/dist/src/contracts/tasks.js.map +1 -0
  269. package/dist/src/modules/agents/definitions.d.ts +26 -0
  270. package/dist/src/modules/agents/definitions.js +559 -0
  271. package/dist/src/modules/agents/definitions.js.map +1 -0
  272. package/dist/src/modules/agents/registry/analyst.d.ts +2 -0
  273. package/dist/src/modules/agents/registry/analyst.js +40 -0
  274. package/dist/src/modules/agents/registry/analyst.js.map +1 -0
  275. package/dist/src/modules/agents/registry/architect.d.ts +2 -0
  276. package/dist/src/modules/agents/registry/architect.js +43 -0
  277. package/dist/src/modules/agents/registry/architect.js.map +1 -0
  278. package/dist/src/modules/agents/registry/backend.d.ts +2 -0
  279. package/dist/src/modules/agents/registry/backend.js +51 -0
  280. package/dist/src/modules/agents/registry/backend.js.map +1 -0
  281. package/dist/src/modules/agents/registry/database.d.ts +2 -0
  282. package/dist/src/modules/agents/registry/database.js +46 -0
  283. package/dist/src/modules/agents/registry/database.js.map +1 -0
  284. package/dist/src/modules/agents/registry/devops.d.ts +2 -0
  285. package/dist/src/modules/agents/registry/devops.js +46 -0
  286. package/dist/src/modules/agents/registry/devops.js.map +1 -0
  287. package/dist/src/modules/agents/registry/explorer.d.ts +2 -0
  288. package/dist/src/modules/agents/registry/explorer.js +38 -0
  289. package/dist/src/modules/agents/registry/explorer.js.map +1 -0
  290. package/dist/src/modules/agents/registry/frontend.d.ts +2 -0
  291. package/dist/src/modules/agents/registry/frontend.js +53 -0
  292. package/dist/src/modules/agents/registry/frontend.js.map +1 -0
  293. package/dist/src/modules/agents/registry/git.d.ts +2 -0
  294. package/dist/src/modules/agents/registry/git.js +37 -0
  295. package/dist/src/modules/agents/registry/git.js.map +1 -0
  296. package/dist/src/modules/agents/registry/manager.d.ts +2 -0
  297. package/dist/src/modules/agents/registry/manager.js +65 -0
  298. package/dist/src/modules/agents/registry/manager.js.map +1 -0
  299. package/dist/src/modules/agents/registry/mobile.d.ts +2 -0
  300. package/dist/src/modules/agents/registry/mobile.js +42 -0
  301. package/dist/src/modules/agents/registry/mobile.js.map +1 -0
  302. package/dist/src/modules/agents/registry/native.d.ts +2 -0
  303. package/dist/src/modules/agents/registry/native.js +42 -0
  304. package/dist/src/modules/agents/registry/native.js.map +1 -0
  305. package/dist/src/modules/agents/registry/quality.d.ts +2 -0
  306. package/dist/src/modules/agents/registry/quality.js +44 -0
  307. package/dist/src/modules/agents/registry/quality.js.map +1 -0
  308. package/dist/src/modules/agents/registry/security.d.ts +2 -0
  309. package/dist/src/modules/agents/registry/security.js +43 -0
  310. package/dist/src/modules/agents/registry/security.js.map +1 -0
  311. package/dist/src/modules/agents/types.d.ts +33 -0
  312. package/dist/src/modules/agents/types.js +2 -0
  313. package/dist/src/modules/agents/types.js.map +1 -0
  314. package/dist/src/modules/contracts/api.d.ts +178 -0
  315. package/dist/src/modules/contracts/api.js +56 -0
  316. package/dist/src/modules/contracts/api.js.map +1 -0
  317. package/dist/src/modules/contracts/index.d.ts +5 -0
  318. package/dist/src/modules/contracts/index.js +6 -0
  319. package/dist/src/modules/contracts/index.js.map +1 -0
  320. package/dist/src/modules/engines/agent-executor.d.ts +46 -0
  321. package/dist/src/modules/engines/agent-executor.js +241 -0
  322. package/dist/src/modules/engines/agent-executor.js.map +1 -0
  323. package/dist/src/modules/engines/agent-loop.d.ts +34 -0
  324. package/dist/src/modules/engines/agent-loop.js +102 -0
  325. package/dist/src/modules/engines/agent-loop.js.map +1 -0
  326. package/dist/src/modules/engines/contract-engine.d.ts +46 -0
  327. package/dist/src/modules/engines/contract-engine.js +116 -0
  328. package/dist/src/modules/engines/contract-engine.js.map +1 -0
  329. package/dist/src/modules/engines/crud-governance.d.ts +66 -0
  330. package/dist/src/modules/engines/crud-governance.js +219 -0
  331. package/dist/src/modules/engines/crud-governance.js.map +1 -0
  332. package/dist/src/modules/engines/discovery-engine.d.ts +42 -0
  333. package/dist/src/modules/engines/discovery-engine.js +161 -0
  334. package/dist/src/modules/engines/discovery-engine.js.map +1 -0
  335. package/dist/src/modules/engines/evaluation-engine.d.ts +18 -0
  336. package/dist/src/modules/engines/evaluation-engine.js +171 -0
  337. package/dist/src/modules/engines/evaluation-engine.js.map +1 -0
  338. package/dist/src/modules/engines/file-lock.d.ts +41 -0
  339. package/dist/src/modules/engines/file-lock.js +168 -0
  340. package/dist/src/modules/engines/file-lock.js.map +1 -0
  341. package/dist/src/modules/engines/health-engine.d.ts +22 -0
  342. package/dist/src/modules/engines/health-engine.js +127 -0
  343. package/dist/src/modules/engines/health-engine.js.map +1 -0
  344. package/dist/src/modules/engines/phase-engine.d.ts +82 -0
  345. package/dist/src/modules/engines/phase-engine.js +211 -0
  346. package/dist/src/modules/engines/phase-engine.js.map +1 -0
  347. package/dist/src/modules/engines/planning-engine.d.ts +25 -0
  348. package/dist/src/modules/engines/planning-engine.js +80 -0
  349. package/dist/src/modules/engines/planning-engine.js.map +1 -0
  350. package/dist/src/modules/engines/policy-engine.d.ts +63 -0
  351. package/dist/src/modules/engines/policy-engine.js +186 -0
  352. package/dist/src/modules/engines/policy-engine.js.map +1 -0
  353. package/dist/src/modules/engines/quality-gate.d.ts +31 -0
  354. package/dist/src/modules/engines/quality-gate.js +95 -0
  355. package/dist/src/modules/engines/quality-gate.js.map +1 -0
  356. package/dist/src/modules/engines/risk-engine.d.ts +34 -0
  357. package/dist/src/modules/engines/risk-engine.js +201 -0
  358. package/dist/src/modules/engines/risk-engine.js.map +1 -0
  359. package/dist/src/modules/engines/routing-engine.d.ts +96 -0
  360. package/dist/src/modules/engines/routing-engine.js +505 -0
  361. package/dist/src/modules/engines/routing-engine.js.map +1 -0
  362. package/dist/src/modules/engines/session-engine.d.ts +68 -0
  363. package/dist/src/modules/engines/session-engine.js +141 -0
  364. package/dist/src/modules/engines/session-engine.js.map +1 -0
  365. package/dist/src/modules/engines/types.d.ts +51 -0
  366. package/dist/src/modules/engines/types.js +2 -0
  367. package/dist/src/modules/engines/types.js.map +1 -0
  368. package/dist/src/modules/memory/core.d.ts +42 -0
  369. package/dist/src/modules/memory/core.js +100 -0
  370. package/dist/src/modules/memory/core.js.map +1 -0
  371. package/dist/src/modules/memory/embedding.d.ts +28 -0
  372. package/dist/src/modules/memory/embedding.js +131 -0
  373. package/dist/src/modules/memory/embedding.js.map +1 -0
  374. package/dist/src/modules/memory/types.d.ts +18 -0
  375. package/dist/src/modules/memory/types.js +2 -0
  376. package/dist/src/modules/memory/types.js.map +1 -0
  377. package/dist/src/modules/memory/vector-store.d.ts +13 -0
  378. package/dist/src/modules/memory/vector-store.js +75 -0
  379. package/dist/src/modules/memory/vector-store.js.map +1 -0
  380. package/dist/src/modules/providers/definitions.d.ts +9 -0
  381. package/dist/src/modules/providers/definitions.js +141 -0
  382. package/dist/src/modules/providers/definitions.js.map +1 -0
  383. package/dist/src/modules/providers/llm-provider.d.ts +87 -0
  384. package/dist/src/modules/providers/llm-provider.js +242 -0
  385. package/dist/src/modules/providers/llm-provider.js.map +1 -0
  386. package/dist/src/modules/providers/registry.d.ts +12 -0
  387. package/dist/src/modules/providers/registry.js +19 -0
  388. package/dist/src/modules/providers/registry.js.map +1 -0
  389. package/dist/src/modules/providers/shared.d.ts +1 -0
  390. package/dist/src/modules/providers/shared.js +104 -0
  391. package/dist/src/modules/providers/shared.js.map +1 -0
  392. package/dist/src/modules/providers/types.d.ts +14 -0
  393. package/dist/src/modules/providers/types.js +2 -0
  394. package/dist/src/modules/providers/types.js.map +1 -0
  395. package/dist/src/modules/skills/adapter-skills.d.ts +70 -0
  396. package/dist/src/modules/skills/adapter-skills.js +450 -0
  397. package/dist/src/modules/skills/adapter-skills.js.map +1 -0
  398. package/dist/src/modules/skills/definitions.d.ts +48 -0
  399. package/dist/src/modules/skills/definitions.js +71 -0
  400. package/dist/src/modules/skills/definitions.js.map +1 -0
  401. package/dist/src/shared/audit.d.ts +1 -0
  402. package/dist/src/shared/audit.js +2 -0
  403. package/dist/src/shared/audit.js.map +1 -0
  404. package/dist/src/shared/constants.d.ts +1 -0
  405. package/dist/src/shared/constants.js +2 -0
  406. package/dist/src/shared/constants.js.map +1 -0
  407. package/dist/src/shared/errors.d.ts +1 -0
  408. package/dist/src/shared/errors.js +2 -0
  409. package/dist/src/shared/errors.js.map +1 -0
  410. package/dist/src/shared/fs.d.ts +1 -0
  411. package/dist/src/shared/fs.js +2 -0
  412. package/dist/src/shared/fs.js.map +1 -0
  413. package/dist/src/shared/lock.d.ts +1 -0
  414. package/dist/src/shared/lock.js +2 -0
  415. package/dist/src/shared/lock.js.map +1 -0
  416. package/dist/src/shared/logger.d.ts +1 -0
  417. package/dist/src/shared/logger.js +2 -0
  418. package/dist/src/shared/logger.js.map +1 -0
  419. package/dist/src/shared/pii.d.ts +1 -0
  420. package/dist/src/shared/pii.js +2 -0
  421. package/dist/src/shared/pii.js.map +1 -0
  422. package/dist/src/shared/retention.d.ts +1 -0
  423. package/dist/src/shared/retention.js +2 -0
  424. package/dist/src/shared/retention.js.map +1 -0
  425. package/dist/src/shared/storage.d.ts +141 -0
  426. package/dist/src/shared/storage.js +332 -0
  427. package/dist/src/shared/storage.js.map +1 -0
  428. package/dist/src/shared/string.d.ts +1 -0
  429. package/dist/src/shared/string.js +2 -0
  430. package/dist/src/shared/string.js.map +1 -0
  431. package/dist/src/shared/types.d.ts +1 -0
  432. package/dist/src/shared/types.js +2 -0
  433. package/dist/src/shared/types.js.map +1 -0
  434. package/package.json +3 -5
  435. package/templates/full/ATABEY_FULL.md +5 -3
  436. package/templates/prompts/new-feature-recipe.md +1 -1
  437. package/templates/standards/architecture-standards.md +1 -1
  438. package/templates/standards/governance-standards.md +3 -3
@@ -0,0 +1,43 @@
1
+ const STATE_MACHINE = "../schema/agent-lifecycle-schema.json";
2
+ export const security = {
3
+ name: "security",
4
+ displayName: "Security Specialist",
5
+ role: "Security Enforcement",
6
+ description: "Auth, Encryption, and Safety enforcement specialist. " +
7
+ "Guardian of the Nizam — blocks any action that endangers the project.",
8
+ capability: 10,
9
+ tier: "supreme",
10
+ tags: ["core", "security"],
11
+ stateMachine: STATE_MACHINE,
12
+ tools: [
13
+ "read_file",
14
+ "replace_text",
15
+ "grep_search",
16
+ "send_agent_message",
17
+ "get_memory_insights",
18
+ "log_agent_action",
19
+ ],
20
+ instructions: {
21
+ identity: "Security Guardian and Zero-Trust Enforcer",
22
+ mission: "Protect the empire's data and infrastructure — no secret leaks, " +
23
+ "no raw SQL, no unenforced RLS.",
24
+ chainOfThought: "1. Analyze: Read the task, context, and relevant governance documents.\n" +
25
+ "2. Validate: Cross-reference with project rules, contracts, and architecture standards.\n" +
26
+ "3. Plan: Break down the task into small, atomic, and verifiable steps.\n" +
27
+ "4. Execute: Perform the task using approved tools, adhering to quality and security constraints.",
28
+ rules: [
29
+ "RLS ENFORCEMENT: Verify multi-tenant Row Level Security policies are active on every database table.",
30
+ "NO SECRETS: Block any commit containing hardcoded secrets (API keys, passwords). Force '.env' usage.",
31
+ "RAW SQL FORBIDDEN: Reject any query that bypasses Kysely — zero exceptions.",
32
+ "AUDIT LOGS: Monitor and log all high-risk administrative actions via 'log_agent_action'.",
33
+ ],
34
+ knowledgeFiles: ["security-standards.md", "security-audit-standards.md", "auth-standards.md", "logging-and-secrets.md"],
35
+ },
36
+ specialties: {
37
+ security: 10,
38
+ audit: 10,
39
+ auth: 10,
40
+ token: 9,
41
+ },
42
+ };
43
+ //# sourceMappingURL=security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../../../../src/modules/agents/registry/security.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,uCAAgD,CAAC;AAEvE,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACrC,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,qBAAqB;IAClC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EACb,uDAAuD;QACvD,uEAAuE;IACrE,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;IAC1B,YAAY,EAAE,aAAa;IAC3B,KAAK,EAAE;QACH,WAAW;QACX,cAAc;QACd,aAAa;QACb,oBAAoB;QACpB,qBAAqB;QACrB,kBAAkB;KACrB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,2CAA2C;QACrD,OAAO,EACX,kEAAkE;YAClE,gCAAgC;QAC5B,cAAc,EACV,0EAA0E;YAC1E,2FAA2F;YAC3F,0EAA0E;YAC1E,kGAAkG;QACtG,KAAK,EAAE;YACH,sGAAsG;YACtG,sGAAsG;YACtG,6EAA6E;YAC7E,0FAA0F;SAC7F;QACD,cAAc,EAAE,CAAC,uBAAuB,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,wBAAwB,CAAC;KAC1H;IACD,WAAW,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,CAAC;KACX;CACJ,CAAC"}
@@ -0,0 +1,33 @@
1
+ export type AgentTier = "supreme" | "core" | "recon";
2
+ export type AgentTag = "core" | "orchestration" | "governance" | "security" | "design" | "logic" | "ui" | "mobile" | "native" | "audit" | "discipline" | "data" | "infra" | "recon" | "logistics" | "strategy";
3
+ export interface AgentInstructions {
4
+ /** One-line identity statement surfaced to the agent as its persona. */
5
+ identity: string;
6
+ /** The agent's primary mission objective. */
7
+ mission: string;
8
+ /** Chain of Thought protocol the agent must follow. */
9
+ chainOfThought: string;
10
+ /** Mandatory, ordered discipline rules the agent must enforce. */
11
+ rules: string[];
12
+ /**
13
+ * Optional: skill documents the agent MUST read before acting.
14
+ * Paths are relative to the framework's knowledge directory.
15
+ */
16
+ knowledgeFiles?: string[];
17
+ }
18
+ export interface AgentDefinition {
19
+ /** Machine identifier — used in routing and send_agent_message targets. */
20
+ name: string;
21
+ displayName: string;
22
+ role: string;
23
+ description: string;
24
+ /** Capability score 1–10. Determines orchestration authority. */
25
+ capability: 10 | 9 | 8;
26
+ tier: AgentTier;
27
+ tags: AgentTag[];
28
+ stateMachine: string;
29
+ tools: string[];
30
+ instructions: AgentInstructions;
31
+ /** Sub-specialty weights mapping (e.g. { "postgres": 10, "redis": 8, "react": 9 }) */
32
+ specialties?: Record<string, number>;
33
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/modules/agents/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,178 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * API Contract — Contract between Backend and Frontend.
4
+ * All API endpoints must conform to these schemas.
5
+ */
6
+ export declare const ApiResponseSchema: <T extends z.ZodTypeAny>(dataSchema: T) => z.ZodObject<{
7
+ success: z.ZodBoolean;
8
+ data: z.ZodOptional<T>;
9
+ error: z.ZodOptional<z.ZodObject<{
10
+ code: z.ZodString;
11
+ message: z.ZodString;
12
+ details: z.ZodOptional<z.ZodUnknown>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ code: string;
15
+ message: string;
16
+ details?: unknown;
17
+ }, {
18
+ code: string;
19
+ message: string;
20
+ details?: unknown;
21
+ }>>;
22
+ meta: z.ZodOptional<z.ZodObject<{
23
+ page: z.ZodOptional<z.ZodNumber>;
24
+ limit: z.ZodOptional<z.ZodNumber>;
25
+ total: z.ZodOptional<z.ZodNumber>;
26
+ timestamp: z.ZodString;
27
+ }, "strip", z.ZodTypeAny, {
28
+ timestamp: string;
29
+ page?: number | undefined;
30
+ total?: number | undefined;
31
+ limit?: number | undefined;
32
+ }, {
33
+ timestamp: string;
34
+ page?: number | undefined;
35
+ total?: number | undefined;
36
+ limit?: number | undefined;
37
+ }>>;
38
+ }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
39
+ success: z.ZodBoolean;
40
+ data: z.ZodOptional<T>;
41
+ error: z.ZodOptional<z.ZodObject<{
42
+ code: z.ZodString;
43
+ message: z.ZodString;
44
+ details: z.ZodOptional<z.ZodUnknown>;
45
+ }, "strip", z.ZodTypeAny, {
46
+ code: string;
47
+ message: string;
48
+ details?: unknown;
49
+ }, {
50
+ code: string;
51
+ message: string;
52
+ details?: unknown;
53
+ }>>;
54
+ meta: z.ZodOptional<z.ZodObject<{
55
+ page: z.ZodOptional<z.ZodNumber>;
56
+ limit: z.ZodOptional<z.ZodNumber>;
57
+ total: z.ZodOptional<z.ZodNumber>;
58
+ timestamp: z.ZodString;
59
+ }, "strip", z.ZodTypeAny, {
60
+ timestamp: string;
61
+ page?: number | undefined;
62
+ total?: number | undefined;
63
+ limit?: number | undefined;
64
+ }, {
65
+ timestamp: string;
66
+ page?: number | undefined;
67
+ total?: number | undefined;
68
+ limit?: number | undefined;
69
+ }>>;
70
+ }>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<{
71
+ success: z.ZodBoolean;
72
+ data: z.ZodOptional<T>;
73
+ error: z.ZodOptional<z.ZodObject<{
74
+ code: z.ZodString;
75
+ message: z.ZodString;
76
+ details: z.ZodOptional<z.ZodUnknown>;
77
+ }, "strip", z.ZodTypeAny, {
78
+ code: string;
79
+ message: string;
80
+ details?: unknown;
81
+ }, {
82
+ code: string;
83
+ message: string;
84
+ details?: unknown;
85
+ }>>;
86
+ meta: z.ZodOptional<z.ZodObject<{
87
+ page: z.ZodOptional<z.ZodNumber>;
88
+ limit: z.ZodOptional<z.ZodNumber>;
89
+ total: z.ZodOptional<z.ZodNumber>;
90
+ timestamp: z.ZodString;
91
+ }, "strip", z.ZodTypeAny, {
92
+ timestamp: string;
93
+ page?: number | undefined;
94
+ total?: number | undefined;
95
+ limit?: number | undefined;
96
+ }, {
97
+ timestamp: string;
98
+ page?: number | undefined;
99
+ total?: number | undefined;
100
+ limit?: number | undefined;
101
+ }>>;
102
+ }> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
103
+ export type ApiResponse<T = unknown> = z.infer<ReturnType<typeof ApiResponseSchema<z.ZodType<T>>>>;
104
+ export declare const PaginationSchema: z.ZodObject<{
105
+ page: z.ZodDefault<z.ZodNumber>;
106
+ limit: z.ZodDefault<z.ZodNumber>;
107
+ sort: z.ZodOptional<z.ZodString>;
108
+ order: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
109
+ }, "strip", z.ZodTypeAny, {
110
+ page: number;
111
+ limit: number;
112
+ order: "asc" | "desc";
113
+ sort?: string | undefined;
114
+ }, {
115
+ sort?: string | undefined;
116
+ page?: number | undefined;
117
+ limit?: number | undefined;
118
+ order?: "asc" | "desc" | undefined;
119
+ }>;
120
+ export type Pagination = z.infer<typeof PaginationSchema>;
121
+ export declare const CrudOperationSchema: z.ZodEnum<["CREATE", "READ", "UPDATE", "DELETE", "LIST"]>;
122
+ export type CrudOperation = z.infer<typeof CrudOperationSchema>;
123
+ /**
124
+ * CRUD endpoint response contract.
125
+ * Standard response format for each CRUD operation.
126
+ */
127
+ export declare const CrudResponseSchema: z.ZodObject<{
128
+ operation: z.ZodEnum<["CREATE", "READ", "UPDATE", "DELETE", "LIST"]>;
129
+ resource: z.ZodString;
130
+ id: z.ZodOptional<z.ZodString>;
131
+ affectedCount: z.ZodOptional<z.ZodNumber>;
132
+ timestamp: z.ZodString;
133
+ }, "strip", z.ZodTypeAny, {
134
+ timestamp: string;
135
+ operation: "CREATE" | "READ" | "UPDATE" | "DELETE" | "LIST";
136
+ resource: string;
137
+ id?: string | undefined;
138
+ affectedCount?: number | undefined;
139
+ }, {
140
+ timestamp: string;
141
+ operation: "CREATE" | "READ" | "UPDATE" | "DELETE" | "LIST";
142
+ resource: string;
143
+ id?: string | undefined;
144
+ affectedCount?: number | undefined;
145
+ }>;
146
+ export type CrudResponse = z.infer<typeof CrudResponseSchema>;
147
+ export declare const HealthCheckSchema: z.ZodObject<{
148
+ status: z.ZodEnum<["healthy", "degraded", "unhealthy"]>;
149
+ version: z.ZodString;
150
+ uptime: z.ZodNumber;
151
+ checks: z.ZodRecord<z.ZodString, z.ZodObject<{
152
+ status: z.ZodEnum<["pass", "fail"]>;
153
+ message: z.ZodOptional<z.ZodString>;
154
+ }, "strip", z.ZodTypeAny, {
155
+ status: "pass" | "fail";
156
+ message?: string | undefined;
157
+ }, {
158
+ status: "pass" | "fail";
159
+ message?: string | undefined;
160
+ }>>;
161
+ }, "strip", z.ZodTypeAny, {
162
+ status: "healthy" | "degraded" | "unhealthy";
163
+ version: string;
164
+ uptime: number;
165
+ checks: Record<string, {
166
+ status: "pass" | "fail";
167
+ message?: string | undefined;
168
+ }>;
169
+ }, {
170
+ status: "healthy" | "degraded" | "unhealthy";
171
+ version: string;
172
+ uptime: number;
173
+ checks: Record<string, {
174
+ status: "pass" | "fail";
175
+ message?: string | undefined;
176
+ }>;
177
+ }>;
178
+ export type HealthCheck = z.infer<typeof HealthCheckSchema>;
@@ -0,0 +1,56 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * API Contract — Contract between Backend and Frontend.
4
+ * All API endpoints must conform to these schemas.
5
+ */
6
+ // ─── Standart API Response ─────────────────────────────────────────────────────
7
+ export const ApiResponseSchema = (dataSchema) => z.object({
8
+ success: z.boolean(),
9
+ data: dataSchema.optional(),
10
+ error: z
11
+ .object({
12
+ code: z.string(),
13
+ message: z.string(),
14
+ details: z.unknown().optional(),
15
+ })
16
+ .optional(),
17
+ meta: z
18
+ .object({
19
+ page: z.number().int().positive().optional(),
20
+ limit: z.number().int().positive().optional(),
21
+ total: z.number().int().nonnegative().optional(),
22
+ timestamp: z.string().datetime(),
23
+ })
24
+ .optional(),
25
+ });
26
+ // ─── Pagination ────────────────────────────────────────────────────────────────
27
+ export const PaginationSchema = z.object({
28
+ page: z.number().int().positive().default(1),
29
+ limit: z.number().int().positive().max(100).default(20),
30
+ sort: z.string().optional(),
31
+ order: z.enum(["asc", "desc"]).default("asc"),
32
+ });
33
+ // ─── CRUD Contract ─────────────────────────────────────────────────────────────
34
+ export const CrudOperationSchema = z.enum(["CREATE", "READ", "UPDATE", "DELETE", "LIST"]);
35
+ /**
36
+ * CRUD endpoint response contract.
37
+ * Standard response format for each CRUD operation.
38
+ */
39
+ export const CrudResponseSchema = z.object({
40
+ operation: CrudOperationSchema,
41
+ resource: z.string(),
42
+ id: z.string().optional(),
43
+ affectedCount: z.number().int().nonnegative().optional(),
44
+ timestamp: z.string().datetime(),
45
+ });
46
+ // ─── Health Check ──────────────────────────────────────────────────────────────
47
+ export const HealthCheckSchema = z.object({
48
+ status: z.enum(["healthy", "degraded", "unhealthy"]),
49
+ version: z.string(),
50
+ uptime: z.number().nonnegative(),
51
+ checks: z.record(z.object({
52
+ status: z.enum(["pass", "fail"]),
53
+ message: z.string().optional(),
54
+ })),
55
+ });
56
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/modules/contracts/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Contract schemas — Contract definitions between Backend/Frontend.
3
+ * Agents use these schemas to ensure type safety.
4
+ */
5
+ export * from "./api.js";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Contract schemas — Contract definitions between Backend/Frontend.
3
+ * Agents use these schemas to ensure type safety.
4
+ */
5
+ export * from "./api.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/contracts/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,UAAU,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * [ENGINE] Agent Executor — Production Implementation
3
+ *
4
+ * Manages real agent calls through the Hermes messaging system.
5
+ * Distributes tasks to agents, collects results, passes through quality gate,
6
+ * and saves to memory.
7
+ *
8
+ * Uses real Hermes message queue (not simulated).
9
+ */
10
+ export declare class AgentExecutor {
11
+ /**
12
+ * Distributes a task to the relevant agent and executes it.
13
+ * 1. Select the best agent via Routing Engine
14
+ * 2. Send Hermes message
15
+ * 3. Wait for agent response (polling)
16
+ * 4. Pass through quality check
17
+ * 5. Save result to memory
18
+ */
19
+ static execute(taskDescription: string, traceId: string): Promise<{
20
+ success: boolean;
21
+ agent: string;
22
+ output: string;
23
+ attempts: number;
24
+ }>;
25
+ /**
26
+ * Directly acknowledges a task for a specific agent.
27
+ * Called by AgentLoop when a DELEGATION message is received.
28
+ * LLM execution is handled by the AI interface (Claude Code / Gemini CLI / Cursor).
29
+ * Writes a RESPONSE message back to Hermes for the executor to pick up.
30
+ */
31
+ static executeForAgent(agentName: string, task: string, traceId: string): Promise<string>;
32
+ private static runAgentTask;
33
+ /**
34
+ * Polls for agent response from the Hermes message queue.
35
+ *
36
+ * Polling strategy:
37
+ * - Check every 500ms
38
+ * - Max 10 seconds wait (20 attempts)
39
+ * - Return response if found, timeout if not
40
+ */
41
+ private static pollForAgentResponse;
42
+ /**
43
+ * Saves the task result to memory.
44
+ */
45
+ private static saveToMemory;
46
+ }
@@ -0,0 +1,241 @@
1
+ import { logger } from "../../shared/logger.js";
2
+ import { maskObject, maskText } from "../../shared/pii.js";
3
+ import { AtabeyStorage } from "../../shared/storage.js";
4
+ import { asAgentID, asTraceID } from "../../shared/types.js";
5
+ import { CoreMemory } from "../memory/core.js";
6
+ import { EvaluationEngine } from "./evaluation-engine.js";
7
+ import { QualityGate } from "./quality-gate.js";
8
+ import { RoutingEngine } from "./routing-engine.js";
9
+ /**
10
+ * [ENGINE] Agent Executor — Production Implementation
11
+ *
12
+ * Manages real agent calls through the Hermes messaging system.
13
+ * Distributes tasks to agents, collects results, passes through quality gate,
14
+ * and saves to memory.
15
+ *
16
+ * Uses real Hermes message queue (not simulated).
17
+ */
18
+ export class AgentExecutor {
19
+ /**
20
+ * Distributes a task to the relevant agent and executes it.
21
+ * 1. Select the best agent via Routing Engine
22
+ * 2. Send Hermes message
23
+ * 3. Wait for agent response (polling)
24
+ * 4. Pass through quality check
25
+ * 5. Save result to memory
26
+ */
27
+ static async execute(taskDescription, traceId) {
28
+ // 1. Route the task to the best agent
29
+ const routingResult = RoutingEngine.resolveWithDetails(taskDescription);
30
+ const agent = routingResult.agent;
31
+ const subTasks = routingResult.subTasks;
32
+ logger.info(`[EXECUTOR] Routing: ${taskDescription.substring(0, 80)}... → ${agent} (confidence: ${routingResult.confidence})`);
33
+ // 2. Execute with retry logic (max 3 attempts)
34
+ let lastOutput = "";
35
+ let lastError = "";
36
+ for (let attempt = 1; attempt <= 3; attempt++) {
37
+ const startTime = Date.now();
38
+ try {
39
+ logger.info(`[EXECUTOR] Attempt ${attempt}/3: ${agent} executing...`);
40
+ // Execute the agent task via Hermes messaging
41
+ const output = await AgentExecutor.runAgentTask(agent, taskDescription, subTasks, traceId);
42
+ lastOutput = output;
43
+ // 3. Quality check
44
+ const qualityResult = await QualityGate.check(agent, output, taskDescription);
45
+ if (qualityResult.passed) {
46
+ const durationMs = Date.now() - startTime;
47
+ logger.info(`[EXECUTOR] ${agent} task PASSED quality check (attempt ${attempt})`);
48
+ // 4. Save to memory
49
+ await AgentExecutor.saveToMemory(agent, taskDescription, output, traceId);
50
+ // Update agent status
51
+ AtabeyStorage.updateAgentStatus(agent.replace("@", ""), "COMPLETED", taskDescription);
52
+ // Evaluate task to update specialty memory
53
+ try {
54
+ EvaluationEngine.evaluateTask(traceId, agent, durationMs, taskDescription);
55
+ }
56
+ catch (evalErr) {
57
+ logger.error(`[EXECUTOR] Failed to evaluate task for ${agent}: ${evalErr.message}`);
58
+ }
59
+ return {
60
+ success: true,
61
+ agent,
62
+ output,
63
+ attempts: attempt,
64
+ };
65
+ }
66
+ lastError = qualityResult.reason;
67
+ logger.warn(`[EXECUTOR] Quality check FAILED: ${qualityResult.reason}`, { agent, attempt });
68
+ }
69
+ catch (err) {
70
+ lastError = err.message;
71
+ logger.error(`[EXECUTOR] Agent execution error: ${lastError}`, { agent, attempt });
72
+ }
73
+ }
74
+ // All attempts failed
75
+ logger.error(`[EXECUTOR] ${agent} FAILED after 3 attempts. Last error: ${lastError}`);
76
+ AtabeyStorage.updateAgentStatus(agent.replace("@", ""), "BLOCKED", `Failed: ${taskDescription.substring(0, 60)}`);
77
+ return {
78
+ success: false,
79
+ agent,
80
+ output: lastOutput,
81
+ attempts: 3,
82
+ };
83
+ }
84
+ /**
85
+ * Directly acknowledges a task for a specific agent.
86
+ * Called by AgentLoop when a DELEGATION message is received.
87
+ * LLM execution is handled by the AI interface (Claude Code / Gemini CLI / Cursor).
88
+ * Writes a RESPONSE message back to Hermes for the executor to pick up.
89
+ */
90
+ static async executeForAgent(agentName, task, traceId) {
91
+ const normalizedName = agentName.replace("@", "");
92
+ logger.info(`[EXECUTOR] executeForAgent: ${agentName} acknowledged`, {
93
+ agent: agentName,
94
+ traceId,
95
+ task: task.substring(0, 80),
96
+ });
97
+ AtabeyStorage.updateAgentStatus(normalizedName, "EXECUTING", task);
98
+ // LLM execution is handled by the AI interface (Claude Code / Gemini CLI / Cursor)
99
+ // Atabey acts as the MCP tool server — the AI interface calls the tools directly
100
+ const responseContent = `[AGENT:${agentName}] Task acknowledged. The AI interface (Claude Code / Gemini CLI / Cursor) will handle execution via MCP tools. Task: ${task}`;
101
+ logger.info(`[EXECUTOR] Task acknowledged for ${agentName}`, { traceId });
102
+ // Write RESPONSE back to Hermes so pollForAgentResponse can pick it up
103
+ AtabeyStorage.saveMessage({
104
+ from: asAgentID(agentName),
105
+ to: asAgentID("@manager"),
106
+ category: "RESPONSE",
107
+ content: responseContent,
108
+ traceId: asTraceID(traceId),
109
+ timestamp: new Date().toISOString(),
110
+ status: "PENDING",
111
+ priority: "HIGH",
112
+ requiresApproval: false,
113
+ });
114
+ AtabeyStorage.updateAgentStatus(normalizedName, "ACKNOWLEDGED", task);
115
+ return responseContent;
116
+ }
117
+ static async runAgentTask(agent, taskDescription, subTasks, traceId) {
118
+ const agentName = agent.replace("@", "");
119
+ const from = "@manager";
120
+ // ─── 1. Send Hermes Message ──────────────────────────────────────
121
+ // [KVKK/GDPR] Mask PII in task description before sending to message queue
122
+ const maskedTask = maskText(taskDescription);
123
+ const maskedSubTasks = subTasks.map(st => maskText(st));
124
+ // [KVKK/GDPR] Strict mode: mask any object fields that may contain PII
125
+ const safePayload = maskObject({
126
+ type: "DELEGATION",
127
+ task: maskedTask,
128
+ subTasks: maskedSubTasks,
129
+ traceId,
130
+ from,
131
+ }, 0, true);
132
+ const messagePayload = JSON.stringify(safePayload);
133
+ AtabeyStorage.saveMessage({
134
+ from: asAgentID(from),
135
+ to: asAgentID(agent),
136
+ category: "DELEGATION",
137
+ content: messagePayload,
138
+ traceId: asTraceID(traceId),
139
+ timestamp: new Date().toISOString(),
140
+ status: "PENDING",
141
+ priority: "HIGH",
142
+ requiresApproval: false,
143
+ });
144
+ // Update agent status
145
+ AtabeyStorage.updateAgentStatus(agentName, "EXECUTING", taskDescription);
146
+ AtabeyStorage.saveLog({
147
+ agent: agentName,
148
+ action: "DELEGATION_SENT",
149
+ trace_id: traceId,
150
+ status: "IN_PROGRESS",
151
+ summary: maskedTask.substring(0, 200)
152
+ });
153
+ logger.info(`[HERMES] Delegation sent to ${agent} (trace: ${traceId})`);
154
+ // ─── 2. Wait for Agent Response (Polling) ────────────────────────
155
+ const output = await AgentExecutor.pollForAgentResponse(agentName, traceId);
156
+ return output;
157
+ }
158
+ /**
159
+ * Polls for agent response from the Hermes message queue.
160
+ *
161
+ * Polling strategy:
162
+ * - Check every 500ms
163
+ * - Max 10 seconds wait (20 attempts)
164
+ * - Return response if found, timeout if not
165
+ */
166
+ static async pollForAgentResponse(agentName, traceId) {
167
+ const maxAttempts = 20; // 10 seconds (500ms * 20) — AgentLoop responds much faster
168
+ const pollInterval = 500; // 500ms
169
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
170
+ // Check RESPONSE messages sent by the agent
171
+ const messages = AtabeyStorage.getPendingMessages();
172
+ const response = messages.find(m => m.from.replace("@", "") === agentName
173
+ && m.category === "RESPONSE"
174
+ && m.traceId === traceId
175
+ && m.status === "PENDING");
176
+ if (response) {
177
+ // Mark message as processed
178
+ if (response.id !== undefined) {
179
+ AtabeyStorage.updateMessageStatus(response.id, "PROCESSED");
180
+ }
181
+ // [KVKK/GDPR] Mask PII in response content before logging and returning
182
+ const maskedResponse = maskText(response.content);
183
+ AtabeyStorage.saveLog({
184
+ agent: agentName,
185
+ action: "RESPONSE_RECEIVED",
186
+ trace_id: traceId,
187
+ status: "SUCCESS",
188
+ summary: maskedResponse.substring(0, 200)
189
+ });
190
+ logger.info(`[HERMES] Response received from @${agentName} (trace: ${traceId})`);
191
+ return maskedResponse;
192
+ }
193
+ // Short delay before next poll
194
+ await new Promise(resolve => setTimeout(resolve, pollInterval));
195
+ }
196
+ // Timeout — agent did not respond
197
+ const timeoutMsg = `[TIMEOUT] @${agentName} did not respond within ${(maxAttempts * pollInterval) / 1000}s. Ensure AgentLoop is running or a provider is configured.`;
198
+ logger.warn(`[HERMES] ${timeoutMsg} (trace: ${traceId})`);
199
+ AtabeyStorage.saveLog({
200
+ agent: agentName,
201
+ action: "RESPONSE_TIMEOUT",
202
+ trace_id: traceId,
203
+ status: "FAILED",
204
+ summary: timeoutMsg
205
+ });
206
+ return timeoutMsg;
207
+ }
208
+ /**
209
+ * Saves the task result to memory.
210
+ */
211
+ static async saveToMemory(agent, taskDescription, output, traceId) {
212
+ // [KVKK/GDPR] Mask PII before saving to memory
213
+ const maskedTask = maskText(taskDescription);
214
+ const maskedOutput = maskText(output);
215
+ // Save to Vector Memory
216
+ await CoreMemory.remember({
217
+ content: `${agent}: ${maskedTask}\nResult: ${maskedOutput}`,
218
+ category: "TASK_HISTORY",
219
+ traceId: asTraceID(traceId),
220
+ tags: [agent.replace("@", ""), "task-execution"],
221
+ });
222
+ // Save to SQLite logs
223
+ AtabeyStorage.saveLog({
224
+ agent: agent.replace("@", ""),
225
+ action: "COMPLETED",
226
+ trace_id: traceId,
227
+ status: "SUCCESS",
228
+ summary: maskedOutput.substring(0, 200)
229
+ });
230
+ // Update task status
231
+ const tasks = AtabeyStorage.getTasks(asTraceID(traceId));
232
+ const pendingTask = tasks.find(t => t.status === "IN_PROGRESS");
233
+ if (pendingTask) {
234
+ AtabeyStorage.saveTask({
235
+ ...pendingTask,
236
+ status: "COMPLETED",
237
+ });
238
+ }
239
+ }
240
+ }
241
+ //# 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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"}