atabey 0.0.6 → 0.0.8

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 (407) hide show
  1. package/ATABEY.md +4 -4
  2. package/README.md +35 -33
  3. package/bin/cli.js +2 -2
  4. package/bin/validate-agent-army.js +6 -6
  5. package/dist/framework-mcp/src/constants.js +1 -1
  6. package/dist/framework-mcp/src/constants.js.map +1 -1
  7. package/dist/framework-mcp/src/index.js +29 -5
  8. package/dist/framework-mcp/src/index.js.map +1 -1
  9. package/dist/framework-mcp/src/resources/index.d.ts +10 -0
  10. package/dist/framework-mcp/src/resources/index.js +59 -0
  11. package/dist/framework-mcp/src/resources/index.js.map +1 -0
  12. package/dist/framework-mcp/src/tools/control_plane/locking.js +3 -3
  13. package/dist/framework-mcp/src/tools/control_plane/locking.js.map +1 -1
  14. package/dist/framework-mcp/src/tools/control_plane/registry.js +3 -2
  15. package/dist/framework-mcp/src/tools/control_plane/registry.js.map +1 -1
  16. package/dist/framework-mcp/src/tools/definitions.js +33 -1
  17. package/dist/framework-mcp/src/tools/definitions.js.map +1 -1
  18. package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.d.ts +1 -1
  19. package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js +8 -3
  20. package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js.map +1 -1
  21. package/dist/framework-mcp/src/tools/file_system/patch_file.d.ts +1 -1
  22. package/dist/framework-mcp/src/tools/file_system/patch_file.js +8 -3
  23. package/dist/framework-mcp/src/tools/file_system/patch_file.js.map +1 -1
  24. package/dist/framework-mcp/src/tools/file_system/read_file.js +3 -3
  25. package/dist/framework-mcp/src/tools/file_system/read_file.js.map +1 -1
  26. package/dist/framework-mcp/src/tools/file_system/replace_text.d.ts +1 -1
  27. package/dist/framework-mcp/src/tools/file_system/replace_text.js +8 -3
  28. package/dist/framework-mcp/src/tools/file_system/replace_text.js.map +1 -1
  29. package/dist/framework-mcp/src/tools/file_system/write_file.d.ts +1 -1
  30. package/dist/framework-mcp/src/tools/file_system/write_file.js +10 -5
  31. package/dist/framework-mcp/src/tools/file_system/write_file.js.map +1 -1
  32. package/dist/framework-mcp/src/tools/framework/audit_deps.js +2 -2
  33. package/dist/framework-mcp/src/tools/framework/audit_deps.js.map +1 -1
  34. package/dist/framework-mcp/src/tools/framework/run_tests.js +2 -2
  35. package/dist/framework-mcp/src/tools/framework/run_tests.js.map +1 -1
  36. package/dist/framework-mcp/src/tools/framework/submit_plan.d.ts +10 -0
  37. package/dist/framework-mcp/src/tools/framework/submit_plan.js +14 -0
  38. package/dist/framework-mcp/src/tools/framework/submit_plan.js.map +1 -0
  39. package/dist/framework-mcp/src/tools/framework/update_memory.js +1 -1
  40. package/dist/framework-mcp/src/tools/framework/update_memory.js.map +1 -1
  41. package/dist/framework-mcp/src/tools/index.js +2 -0
  42. package/dist/framework-mcp/src/tools/index.js.map +1 -1
  43. package/dist/framework-mcp/src/tools/memory/get_insights.js +1 -1
  44. package/dist/framework-mcp/src/tools/memory/get_insights.js.map +1 -1
  45. package/dist/framework-mcp/src/tools/messaging/log_action.js +1 -1
  46. package/dist/framework-mcp/src/tools/messaging/log_action.js.map +1 -1
  47. package/dist/framework-mcp/src/tools/messaging/send_message.js +5 -5
  48. package/dist/framework-mcp/src/tools/messaging/send_message.js.map +1 -1
  49. package/dist/framework-mcp/src/tools/observability/check_ports.js +1 -1
  50. package/dist/framework-mcp/src/tools/observability/check_ports.js.map +1 -1
  51. package/dist/framework-mcp/src/tools/quality/check_lint.js +2 -2
  52. package/dist/framework-mcp/src/tools/quality/check_lint.js.map +1 -1
  53. package/dist/framework-mcp/src/tools/search/get_gaps.js +1 -1
  54. package/dist/framework-mcp/src/tools/search/get_gaps.js.map +1 -1
  55. package/dist/framework-mcp/src/tools/search/grep_search.js +3 -3
  56. package/dist/framework-mcp/src/tools/search/grep_search.js.map +1 -1
  57. package/dist/framework-mcp/src/tools/types.d.ts +1 -0
  58. package/dist/framework-mcp/src/utils/compliance.d.ts +6 -0
  59. package/dist/framework-mcp/src/utils/compliance.js +158 -5
  60. package/dist/framework-mcp/src/utils/compliance.js.map +1 -1
  61. package/dist/framework-mcp/src/utils/permissions.d.ts +12 -0
  62. package/dist/framework-mcp/src/utils/permissions.js +72 -0
  63. package/dist/framework-mcp/src/utils/permissions.js.map +1 -0
  64. package/dist/framework-mcp/tests/tools/file_system/compliance-risk.test.d.ts +1 -0
  65. package/dist/framework-mcp/tests/tools/file_system/compliance-risk.test.js +84 -0
  66. package/dist/framework-mcp/tests/tools/file_system/compliance-risk.test.js.map +1 -0
  67. package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js +31 -31
  68. package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js.map +1 -1
  69. package/dist/framework-mcp/tests/tools/file_system/permissions.test.d.ts +1 -0
  70. package/dist/framework-mcp/tests/tools/file_system/permissions.test.js +92 -0
  71. package/dist/framework-mcp/tests/tools/file_system/permissions.test.js.map +1 -0
  72. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js +5 -5
  73. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js.map +1 -1
  74. package/dist/src/cli/adapters/core.js +13 -20
  75. package/dist/src/cli/adapters/core.js.map +1 -1
  76. package/dist/src/cli/adapters/scaffold.js +2 -2
  77. package/dist/src/cli/adapters/scaffold.js.map +1 -1
  78. package/dist/src/cli/commands/check.js +5 -3
  79. package/dist/src/cli/commands/check.js.map +1 -1
  80. package/dist/src/cli/commands/compliance.js +2 -2
  81. package/dist/src/cli/commands/compliance.js.map +1 -1
  82. package/dist/src/cli/commands/contract.js +2 -2
  83. package/dist/src/cli/commands/contract.js.map +1 -1
  84. package/dist/src/cli/commands/dashboard.d.ts +5 -0
  85. package/dist/src/cli/commands/dashboard.js +124 -0
  86. package/dist/src/cli/commands/dashboard.js.map +1 -0
  87. package/dist/src/cli/commands/explorer.js +3 -3
  88. package/dist/src/cli/commands/explorer.js.map +1 -1
  89. package/dist/src/cli/commands/git.js +3 -3
  90. package/dist/src/cli/commands/git.js.map +1 -1
  91. package/dist/src/cli/commands/init/create-agent.d.ts +4 -0
  92. package/dist/src/cli/commands/init/create-agent.js +59 -0
  93. package/dist/src/cli/commands/init/create-agent.js.map +1 -0
  94. package/dist/src/cli/commands/init/scaffold-core.d.ts +1 -0
  95. package/dist/src/cli/commands/init/scaffold-core.js +11 -7
  96. package/dist/src/cli/commands/init/scaffold-core.js.map +1 -1
  97. package/dist/src/cli/commands/init/scaffold-docs.d.ts +1 -0
  98. package/dist/src/cli/commands/init/scaffold-docs.js +4 -6
  99. package/dist/src/cli/commands/init/scaffold-docs.js.map +1 -1
  100. package/dist/src/cli/commands/init/scaffold-ops.js +4 -4
  101. package/dist/src/cli/commands/init/scaffold-ops.js.map +1 -1
  102. package/dist/src/cli/commands/init/scaffold-standards.js +10 -8
  103. package/dist/src/cli/commands/init/scaffold-standards.js.map +1 -1
  104. package/dist/src/cli/commands/init.js +26 -10
  105. package/dist/src/cli/commands/init.js.map +1 -1
  106. package/dist/src/cli/commands/knowledge.js +3 -3
  107. package/dist/src/cli/commands/knowledge.js.map +1 -1
  108. package/dist/src/cli/commands/lint.js +2 -2
  109. package/dist/src/cli/commands/lint.js.map +1 -1
  110. package/dist/src/cli/commands/log.js +6 -28
  111. package/dist/src/cli/commands/log.js.map +1 -1
  112. package/dist/src/cli/commands/orchestrate.d.ts +10 -17
  113. package/dist/src/cli/commands/orchestrate.js +92 -341
  114. package/dist/src/cli/commands/orchestrate.js.map +1 -1
  115. package/dist/src/cli/commands/plan.d.ts +5 -0
  116. package/dist/src/cli/commands/plan.js +80 -59
  117. package/dist/src/cli/commands/plan.js.map +1 -1
  118. package/dist/src/cli/commands/script.js +3 -3
  119. package/dist/src/cli/commands/script.js.map +1 -1
  120. package/dist/src/cli/commands/security.js +2 -2
  121. package/dist/src/cli/commands/security.js.map +1 -1
  122. package/dist/src/cli/commands/status.js +65 -8
  123. package/dist/src/cli/commands/status.js.map +1 -1
  124. package/dist/src/cli/commands/trace.d.ts +4 -0
  125. package/dist/src/cli/commands/trace.js +83 -2
  126. package/dist/src/cli/commands/trace.js.map +1 -1
  127. package/dist/src/cli/index.js +68 -18
  128. package/dist/src/cli/index.js.map +1 -1
  129. package/dist/src/cli/shims.js +14 -14
  130. package/dist/src/cli/utils/claude.js +1 -1
  131. package/dist/src/cli/utils/claude.js.map +1 -1
  132. package/dist/src/cli/utils/compliance.js +7 -1
  133. package/dist/src/cli/utils/compliance.js.map +1 -1
  134. package/dist/src/cli/utils/fs.js +1 -1
  135. package/dist/src/cli/utils/fs.js.map +1 -1
  136. package/dist/src/cli/utils/i18n.d.ts +1 -0
  137. package/dist/src/cli/utils/i18n.js +2 -0
  138. package/dist/src/cli/utils/i18n.js.map +1 -1
  139. package/dist/src/cli/utils/memory.d.ts +12 -3
  140. package/dist/src/cli/utils/memory.js +39 -31
  141. package/dist/src/cli/utils/memory.js.map +1 -1
  142. package/dist/src/cli/utils/pkg.js +2 -2
  143. package/dist/src/cli/utils/pkg.js.map +1 -1
  144. package/dist/src/cli/utils/schemas.d.ts +8 -8
  145. package/dist/src/cli/utils/ui.js +4 -4
  146. package/dist/src/cli/utils/ui.js.map +1 -1
  147. package/dist/src/contracts/tasks.d.ts +2 -2
  148. package/dist/src/dashboard/vite.config.d.ts +2 -0
  149. package/dist/src/dashboard/vite.config.js +16 -0
  150. package/dist/src/dashboard/vite.config.js.map +1 -0
  151. package/dist/src/modules/adapters/definitions.js +10 -10
  152. package/dist/src/modules/adapters/definitions.js.map +1 -1
  153. package/dist/src/modules/adapters/shared.js +4 -4
  154. package/dist/src/modules/adapters/shared.js.map +1 -1
  155. package/dist/src/modules/agents/definitions.d.ts +19 -0
  156. package/dist/src/modules/agents/definitions.js +74 -21
  157. package/dist/src/modules/agents/definitions.js.map +1 -1
  158. package/dist/src/modules/agents/registry/backend.js +8 -0
  159. package/dist/src/modules/agents/registry/backend.js.map +1 -1
  160. package/dist/src/modules/agents/registry/database.js +7 -0
  161. package/dist/src/modules/agents/registry/database.js.map +1 -1
  162. package/dist/src/modules/agents/registry/devops.js +6 -0
  163. package/dist/src/modules/agents/registry/devops.js.map +1 -1
  164. package/dist/src/modules/agents/registry/frontend.js +8 -0
  165. package/dist/src/modules/agents/registry/frontend.js.map +1 -1
  166. package/dist/src/modules/agents/registry/security.js +6 -0
  167. package/dist/src/modules/agents/registry/security.js.map +1 -1
  168. package/dist/src/modules/agents/types.d.ts +2 -0
  169. package/dist/src/modules/engines/evaluation-engine.d.ts +11 -0
  170. package/dist/src/modules/engines/evaluation-engine.js +103 -0
  171. package/dist/src/modules/engines/evaluation-engine.js.map +1 -0
  172. package/dist/src/modules/engines/health-engine.d.ts +16 -0
  173. package/dist/src/modules/engines/health-engine.js +50 -0
  174. package/dist/src/modules/engines/health-engine.js.map +1 -0
  175. package/dist/src/modules/engines/planning-engine.d.ts +25 -0
  176. package/dist/src/modules/engines/planning-engine.js +79 -0
  177. package/dist/src/modules/engines/planning-engine.js.map +1 -0
  178. package/dist/src/modules/engines/risk-engine.d.ts +18 -0
  179. package/dist/src/modules/engines/risk-engine.js +106 -0
  180. package/dist/src/modules/engines/risk-engine.js.map +1 -0
  181. package/dist/src/modules/engines/routing-engine.d.ts +11 -0
  182. package/dist/src/modules/engines/routing-engine.js +74 -0
  183. package/dist/src/modules/engines/routing-engine.js.map +1 -0
  184. package/dist/src/modules/engines/types.d.ts +47 -0
  185. package/dist/src/modules/engines/types.js +2 -0
  186. package/dist/src/modules/engines/types.js.map +1 -0
  187. package/dist/src/shared/constants.d.ts +6 -2
  188. package/dist/src/shared/constants.js +5 -1
  189. package/dist/src/shared/constants.js.map +1 -1
  190. package/dist/src/shared/fs.d.ts +1 -0
  191. package/dist/src/shared/fs.js +4 -0
  192. package/dist/src/shared/fs.js.map +1 -1
  193. package/dist/src/shared/storage.d.ts +60 -0
  194. package/dist/src/shared/storage.js +208 -0
  195. package/dist/src/shared/storage.js.map +1 -0
  196. package/dist/tests/adapter.test.js +3 -2
  197. package/dist/tests/adapter.test.js.map +1 -1
  198. package/dist/tests/agent-memory-v2.test.d.ts +1 -0
  199. package/dist/tests/agent-memory-v2.test.js +68 -0
  200. package/dist/tests/agent-memory-v2.test.js.map +1 -0
  201. package/dist/tests/agents-definitions.test.js +42 -0
  202. package/dist/tests/agents-definitions.test.js.map +1 -1
  203. package/dist/tests/integration/hermes_locking.test.js +7 -10
  204. package/dist/tests/integration/hermes_locking.test.js.map +1 -1
  205. package/dist/tests/orchestrate.test.js +5 -1
  206. package/dist/tests/orchestrate.test.js.map +1 -1
  207. package/dist/tests/orchestrator-dependencies.test.d.ts +1 -0
  208. package/dist/tests/orchestrator-dependencies.test.js +52 -0
  209. package/dist/tests/orchestrator-dependencies.test.js.map +1 -0
  210. package/dist/tests/plan.test.d.ts +1 -0
  211. package/dist/tests/plan.test.js +63 -0
  212. package/dist/tests/plan.test.js.map +1 -0
  213. package/dist/tests/planning-engine.test.d.ts +1 -0
  214. package/dist/tests/planning-engine.test.js +50 -0
  215. package/dist/tests/planning-engine.test.js.map +1 -0
  216. package/dist/tests/status-cost.test.d.ts +1 -0
  217. package/dist/tests/status-cost.test.js +54 -0
  218. package/dist/tests/status-cost.test.js.map +1 -0
  219. package/dist/tests/status.test.js +8 -7
  220. package/dist/tests/status.test.js.map +1 -1
  221. package/dist/tests/trace-replay.test.d.ts +1 -0
  222. package/dist/tests/trace-replay.test.js +65 -0
  223. package/dist/tests/trace-replay.test.js.map +1 -0
  224. package/dist/tests/trace.test.js +14 -7
  225. package/dist/tests/trace.test.js.map +1 -1
  226. package/dist/ui/assets/index-Bkt7APzu.css +1 -0
  227. package/dist/ui/assets/index-CeX-06mI.js +49 -0
  228. package/dist/ui/index.html +14 -0
  229. package/framework-mcp/dist/constants.js +1 -1
  230. package/framework-mcp/{src/constants.ts → dist/framework-mcp/src/constants.js} +4 -18
  231. package/framework-mcp/{src/index.ts → dist/framework-mcp/src/index.js} +52 -53
  232. package/framework-mcp/dist/framework-mcp/src/resources/index.js +58 -0
  233. package/framework-mcp/{src/tools/control_plane/locking.ts → dist/framework-mcp/src/tools/control_plane/locking.js} +14 -21
  234. package/framework-mcp/{src/tools/control_plane/registry.ts → dist/framework-mcp/src/tools/control_plane/registry.js} +8 -11
  235. package/framework-mcp/{src/tools/definitions.ts → dist/framework-mcp/src/tools/definitions.js} +35 -5
  236. package/framework-mcp/{src/tools/file_system/batch_surgical_edit.ts → dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js} +16 -31
  237. package/framework-mcp/{src/tools/file_system/patch_file.ts → dist/framework-mcp/src/tools/file_system/patch_file.js} +9 -14
  238. package/framework-mcp/{src/tools/file_system/read_file.ts → dist/framework-mcp/src/tools/file_system/read_file.js} +9 -16
  239. package/framework-mcp/{src/tools/file_system/replace_text.ts → dist/framework-mcp/src/tools/file_system/replace_text.js} +13 -17
  240. package/framework-mcp/{src/tools/file_system/write_file.ts → dist/framework-mcp/src/tools/file_system/write_file.js} +14 -16
  241. package/framework-mcp/{src/tools/framework/audit_deps.ts → dist/framework-mcp/src/tools/framework/audit_deps.js} +9 -17
  242. package/framework-mcp/{src/tools/framework/get_status.ts → dist/framework-mcp/src/tools/framework/get_status.js} +1 -3
  243. package/framework-mcp/{src/tools/framework/orchestrate.ts → dist/framework-mcp/src/tools/framework/orchestrate.js} +1 -3
  244. package/framework-mcp/{src/tools/framework/run_tests.ts → dist/framework-mcp/src/tools/framework/run_tests.js} +9 -12
  245. package/framework-mcp/dist/framework-mcp/src/tools/framework/submit_plan.js +13 -0
  246. package/framework-mcp/{src/tools/framework/update_contract_hash.ts → dist/framework-mcp/src/tools/framework/update_contract_hash.js} +1 -3
  247. package/framework-mcp/{src/tools/framework/update_memory.ts → dist/framework-mcp/src/tools/framework/update_memory.js} +2 -4
  248. package/framework-mcp/{src/tools/index.ts → dist/framework-mcp/src/tools/index.js} +5 -7
  249. package/framework-mcp/{src/tools/memory/get_insights.ts → dist/framework-mcp/src/tools/memory/get_insights.js} +4 -11
  250. package/framework-mcp/{src/tools/memory/read_memory.ts → dist/framework-mcp/src/tools/memory/read_memory.js} +3 -6
  251. package/framework-mcp/{src/tools/messaging/log_action.ts → dist/framework-mcp/src/tools/messaging/log_action.js} +2 -8
  252. package/framework-mcp/{src/tools/messaging/send_message.ts → dist/framework-mcp/src/tools/messaging/send_message.js} +19 -22
  253. package/framework-mcp/{src/tools/observability/check_ports.ts → dist/framework-mcp/src/tools/observability/check_ports.js} +6 -10
  254. package/framework-mcp/{src/tools/observability/get_health.ts → dist/framework-mcp/src/tools/observability/get_health.js} +1 -6
  255. package/framework-mcp/{src/tools/quality/check_lint.ts → dist/framework-mcp/src/tools/quality/check_lint.js} +3 -9
  256. package/framework-mcp/{src/tools/search/get_gaps.ts → dist/framework-mcp/src/tools/search/get_gaps.js} +12 -18
  257. package/framework-mcp/{src/tools/search/get_map.ts → dist/framework-mcp/src/tools/search/get_map.js} +14 -19
  258. package/framework-mcp/{src/tools/search/grep_search.ts → dist/framework-mcp/src/tools/search/grep_search.js} +26 -26
  259. package/framework-mcp/{src/tools/search/list_dir.ts → dist/framework-mcp/src/tools/search/list_dir.js} +4 -10
  260. package/framework-mcp/{src/tools/shell/run_command.ts → dist/framework-mcp/src/tools/shell/run_command.js} +1 -11
  261. package/framework-mcp/dist/framework-mcp/src/tools/types.js +1 -0
  262. package/framework-mcp/{src/utils/cli.ts → dist/framework-mcp/src/utils/cli.js} +25 -19
  263. package/framework-mcp/dist/framework-mcp/src/utils/compliance.js +231 -0
  264. package/framework-mcp/{src/utils/fs.ts → dist/framework-mcp/src/utils/fs.js} +9 -10
  265. package/framework-mcp/{src/utils/metrics.ts → dist/framework-mcp/src/utils/metrics.js} +11 -28
  266. package/framework-mcp/dist/framework-mcp/src/utils/permissions.js +71 -0
  267. package/framework-mcp/{src/utils/security.ts → dist/framework-mcp/src/utils/security.js} +9 -15
  268. package/framework-mcp/dist/index.js +29 -5
  269. package/framework-mcp/dist/resources/index.js +58 -0
  270. package/{src/cli/adapters/core.ts → framework-mcp/dist/src/cli/adapters/core.js} +21 -41
  271. package/{src/cli/adapters/index.ts → framework-mcp/dist/src/cli/adapters/index.js} +1 -1
  272. package/{src/cli/adapters/paths.ts → framework-mcp/dist/src/cli/adapters/paths.js} +19 -53
  273. package/{src/cli/adapters/scaffold.ts → framework-mcp/dist/src/cli/adapters/scaffold.js} +18 -42
  274. package/{src/cli/adapters/utils.ts → framework-mcp/dist/src/cli/adapters/utils.js} +19 -31
  275. package/{src/cli/commands/approve.ts → framework-mcp/dist/src/cli/commands/approve.js} +15 -25
  276. package/{src/cli/commands/check.ts → framework-mcp/dist/src/cli/commands/check.js} +36 -43
  277. package/{src/cli/commands/compliance.ts → framework-mcp/dist/src/cli/commands/compliance.js} +10 -15
  278. package/{src/cli/commands/contract.ts → framework-mcp/dist/src/cli/commands/contract.js} +13 -31
  279. package/framework-mcp/dist/src/cli/commands/dashboard.js +123 -0
  280. package/{src/cli/commands/explorer.ts → framework-mcp/dist/src/cli/commands/explorer.js} +14 -17
  281. package/{src/cli/commands/git.ts → framework-mcp/dist/src/cli/commands/git.js} +15 -14
  282. package/framework-mcp/dist/src/cli/commands/init/create-agent.js +58 -0
  283. package/{src/cli/commands/init/scaffold-core.ts → framework-mcp/dist/src/cli/commands/init/scaffold-core.js} +35 -59
  284. package/framework-mcp/dist/src/cli/commands/init/scaffold-docs.js +34 -0
  285. package/{src/cli/commands/init/scaffold-ops.ts → framework-mcp/dist/src/cli/commands/init/scaffold-ops.js} +19 -22
  286. package/{src/cli/commands/init/scaffold-standards.ts → framework-mcp/dist/src/cli/commands/init/scaffold-standards.js} +20 -20
  287. package/{src/cli/commands/init.ts → framework-mcp/dist/src/cli/commands/init.js} +51 -77
  288. package/{src/cli/commands/knowledge.ts → framework-mcp/dist/src/cli/commands/knowledge.js} +9 -11
  289. package/{src/cli/commands/lint.ts → framework-mcp/dist/src/cli/commands/lint.js} +5 -6
  290. package/framework-mcp/dist/src/cli/commands/log.js +10 -0
  291. package/{src/cli/commands/memory.ts → framework-mcp/dist/src/cli/commands/memory.js} +1 -3
  292. package/framework-mcp/dist/src/cli/commands/orchestrate.js +159 -0
  293. package/framework-mcp/dist/src/cli/commands/plan.js +117 -0
  294. package/{src/cli/commands/script.ts → framework-mcp/dist/src/cli/commands/script.js} +6 -7
  295. package/{src/cli/commands/security.ts → framework-mcp/dist/src/cli/commands/security.js} +6 -8
  296. package/framework-mcp/dist/src/cli/commands/status.js +97 -0
  297. package/framework-mcp/dist/src/cli/commands/trace.js +109 -0
  298. package/{src/cli/index.ts → framework-mcp/dist/src/cli/index.js} +80 -64
  299. package/{src/cli/shims.ts → framework-mcp/dist/src/cli/shims.js} +15 -15
  300. package/{src/cli/utils/claude.ts → framework-mcp/dist/src/cli/utils/claude.js} +8 -15
  301. package/{src/cli/utils/compliance.ts → framework-mcp/dist/src/cli/utils/compliance.js} +18 -36
  302. package/{src/cli/utils/config-schema.ts → framework-mcp/dist/src/cli/utils/config-schema.js} +0 -6
  303. package/{src/cli/utils/fs.ts → framework-mcp/dist/src/cli/utils/fs.js} +34 -67
  304. package/{src/cli/utils/i18n.ts → framework-mcp/dist/src/cli/utils/i18n.js} +3 -17
  305. package/{src/cli/utils/memory.ts → framework-mcp/dist/src/cli/utils/memory.js} +87 -114
  306. package/{src/cli/utils/pkg.ts → framework-mcp/dist/src/cli/utils/pkg.js} +120 -155
  307. package/{src/cli/utils/schemas.ts → framework-mcp/dist/src/cli/utils/schemas.js} +0 -3
  308. package/{src/cli/utils/string.ts → framework-mcp/dist/src/cli/utils/string.js} +18 -24
  309. package/{src/cli/utils/time.ts → framework-mcp/dist/src/cli/utils/time.js} +4 -4
  310. package/{src/cli/utils/ui.ts → framework-mcp/dist/src/cli/utils/ui.js} +9 -17
  311. package/{src/contracts/tasks.ts → framework-mcp/dist/src/contracts/tasks.js} +0 -6
  312. package/framework-mcp/dist/src/dashboard/vite.config.js +15 -0
  313. package/framework-mcp/dist/src/modules/adapters/definitions.js +140 -0
  314. package/framework-mcp/dist/src/modules/adapters/registry.js +18 -0
  315. package/{src/modules/adapters/shared.ts → framework-mcp/dist/src/modules/adapters/shared.js} +9 -25
  316. package/framework-mcp/dist/src/modules/adapters/types.js +1 -0
  317. package/{src/modules/agents/definitions.ts → framework-mcp/dist/src/modules/agents/definitions.js} +158 -161
  318. package/{src/modules/agents/registry/analyst.ts → framework-mcp/dist/src/modules/agents/registry/analyst.js} +9 -14
  319. package/{src/modules/agents/registry/architect.ts → framework-mcp/dist/src/modules/agents/registry/architect.js} +9 -14
  320. package/{src/modules/agents/registry/backend.ts → framework-mcp/dist/src/modules/agents/registry/backend.js} +16 -13
  321. package/{src/modules/agents/registry/database.ts → framework-mcp/dist/src/modules/agents/registry/database.js} +16 -14
  322. package/{src/modules/agents/registry/devops.ts → framework-mcp/dist/src/modules/agents/registry/devops.js} +15 -14
  323. package/{src/modules/agents/registry/explorer.ts → framework-mcp/dist/src/modules/agents/registry/explorer.js} +9 -14
  324. package/{src/modules/agents/registry/frontend.ts → framework-mcp/dist/src/modules/agents/registry/frontend.js} +17 -14
  325. package/{src/modules/agents/registry/git.ts → framework-mcp/dist/src/modules/agents/registry/git.js} +9 -14
  326. package/{src/modules/agents/registry/manager.ts → framework-mcp/dist/src/modules/agents/registry/manager.js} +10 -15
  327. package/{src/modules/agents/registry/mobile.ts → framework-mcp/dist/src/modules/agents/registry/mobile.js} +9 -14
  328. package/{src/modules/agents/registry/native.ts → framework-mcp/dist/src/modules/agents/registry/native.js} +9 -14
  329. package/{src/modules/agents/registry/quality.ts → framework-mcp/dist/src/modules/agents/registry/quality.js} +9 -14
  330. package/{src/modules/agents/registry/security.ts → framework-mcp/dist/src/modules/agents/registry/security.js} +15 -14
  331. package/framework-mcp/dist/src/modules/agents/types.js +1 -0
  332. package/framework-mcp/dist/src/modules/engines/evaluation-engine.js +102 -0
  333. package/framework-mcp/dist/src/modules/engines/health-engine.js +49 -0
  334. package/framework-mcp/dist/src/modules/engines/planning-engine.js +78 -0
  335. package/framework-mcp/dist/src/modules/engines/risk-engine.js +105 -0
  336. package/framework-mcp/dist/src/modules/engines/routing-engine.js +73 -0
  337. package/framework-mcp/dist/src/modules/engines/types.js +1 -0
  338. package/{src/modules/skills/definitions.ts → framework-mcp/dist/src/modules/skills/definitions.js} +0 -1
  339. package/{src/shared/constants.ts → framework-mcp/dist/src/shared/constants.js} +40 -71
  340. package/{src/shared/errors.ts → framework-mcp/dist/src/shared/errors.js} +10 -17
  341. package/{src/shared/fs.ts → framework-mcp/dist/src/shared/fs.js} +14 -13
  342. package/{src/shared/logger.ts → framework-mcp/dist/src/shared/logger.js} +28 -51
  343. package/framework-mcp/dist/src/shared/storage.js +207 -0
  344. package/framework-mcp/dist/src/shared/types.js +12 -0
  345. package/framework-mcp/dist/tools/control_plane/locking.js +3 -3
  346. package/framework-mcp/dist/tools/control_plane/registry.js +3 -2
  347. package/framework-mcp/dist/tools/definitions.js +33 -1
  348. package/framework-mcp/dist/tools/file_system/batch_surgical_edit.js +8 -3
  349. package/framework-mcp/dist/tools/file_system/patch_file.js +8 -3
  350. package/framework-mcp/dist/tools/file_system/read_file.js +3 -3
  351. package/framework-mcp/dist/tools/file_system/replace_text.js +8 -3
  352. package/framework-mcp/dist/tools/file_system/write_file.js +10 -5
  353. package/framework-mcp/dist/tools/framework/audit_deps.js +2 -2
  354. package/framework-mcp/dist/tools/framework/run_tests.js +2 -2
  355. package/framework-mcp/dist/tools/framework/submit_plan.js +13 -0
  356. package/framework-mcp/dist/tools/framework/update_memory.js +1 -1
  357. package/framework-mcp/dist/tools/index.js +2 -0
  358. package/framework-mcp/dist/tools/memory/get_insights.js +1 -1
  359. package/framework-mcp/dist/tools/messaging/log_action.js +1 -1
  360. package/framework-mcp/dist/tools/messaging/send_message.js +5 -5
  361. package/framework-mcp/dist/tools/observability/check_ports.js +1 -1
  362. package/framework-mcp/dist/tools/quality/check_lint.js +2 -2
  363. package/framework-mcp/dist/tools/search/get_gaps.js +1 -1
  364. package/framework-mcp/dist/tools/search/grep_search.js +3 -3
  365. package/framework-mcp/dist/utils/compliance.js +158 -5
  366. package/framework-mcp/dist/utils/permissions.js +71 -0
  367. package/framework-mcp/package.json +7 -1
  368. package/mcp.json +1 -1
  369. package/package.json +10 -6
  370. package/templates/prompts/contract-design-recipe.md +1 -1
  371. package/templates/prompts/db-management-recipe.md +3 -3
  372. package/templates/prompts/deployment-recipe.md +3 -3
  373. package/templates/prompts/performance-optimization-recipe.md +3 -3
  374. package/templates/prompts/pull-request-template.md +2 -2
  375. package/templates/prompts/security-audit-recipe.md +3 -3
  376. package/templates/standards/crud-governance.md +1 -1
  377. package/templates/standards/deployment-standards.md +1 -1
  378. package/templates/standards/governance-standards.md +1 -1
  379. package/templates/standards/llm-governance.md +1 -1
  380. package/templates/standards/nextjs-standards.md +13 -0
  381. package/templates/standards/observability-standards.md +1 -1
  382. package/templates/standards/security-audit-standards.md +1 -1
  383. package/templates/standards/security-standards.md +1 -1
  384. package/templates/standards/testing-standards.md +1 -1
  385. package/templates/standards/vite-standards.md +13 -0
  386. package/framework-mcp/package-lock.json +0 -1191
  387. package/framework-mcp/src/declarations.d.ts +0 -17
  388. package/framework-mcp/src/tools/types.ts +0 -89
  389. package/framework-mcp/src/utils/compliance.ts +0 -95
  390. package/framework-mcp/tests/tools/file_system/file_system_tools.test.ts +0 -212
  391. package/framework-mcp/tests/tools/messaging/send_message.test.ts +0 -136
  392. package/framework-mcp/tests/tools/quality/check_lint.test.ts +0 -46
  393. package/framework-mcp/tests/tools/shell/run_command.test.ts +0 -55
  394. package/framework-mcp/tsconfig.json +0 -14
  395. package/src/cli/commands/init/scaffold-docs.ts +0 -44
  396. package/src/cli/commands/log.ts +0 -37
  397. package/src/cli/commands/orchestrate.ts +0 -450
  398. package/src/cli/commands/plan.ts +0 -113
  399. package/src/cli/commands/status.ts +0 -44
  400. package/src/cli/commands/trace.ts +0 -31
  401. package/src/modules/adapters/definitions.ts +0 -171
  402. package/src/modules/adapters/registry.ts +0 -27
  403. package/src/modules/adapters/types.ts +0 -16
  404. package/src/modules/agents/types.ts +0 -37
  405. package/src/schema/agent-lifecycle-schema.json +0 -59
  406. package/src/shared/types.ts +0 -20
  407. /package/{src/contracts/index.ts → framework-mcp/dist/src/contracts/index.js} +0 -0
@@ -2,14 +2,10 @@ import fs from "fs";
2
2
  import path from "path";
3
3
  import { writeJsonFile } from "../utils/fs.js";
4
4
  import { getPackageRoot } from "../utils/pkg.js";
5
-
5
+ import { MCP } from "../../shared/constants.js";
6
6
  import { ADAPTER_CONFIGS, POST_INIT_HANDLERS } from "../../modules/adapters/definitions.js";
7
- import type { AdapterConfig, AdapterId } from "../../modules/adapters/types.js";
8
-
9
- export const ADAPTERS: Record<AdapterId, AdapterConfig> = ADAPTER_CONFIGS;
10
-
11
- export const SHIM_FILES = (Object.keys(ADAPTERS) as AdapterId[]).map((id) => ADAPTERS[id].shimFile);
12
-
7
+ export const ADAPTERS = ADAPTER_CONFIGS;
8
+ export const SHIM_FILES = Object.keys(ADAPTERS).map((id) => ADAPTERS[id].shimFile);
13
9
  export const FRAMEWORK_DIR_CANDIDATES = [
14
10
  ".atabey",
15
11
  ".cursor",
@@ -22,69 +18,53 @@ export const FRAMEWORK_DIR_CANDIDATES = [
22
18
  ".gemini",
23
19
  ".agents",
24
20
  "antigravity-cli"
25
- ] as const;
26
-
27
- export function buildMcpServerEntry(projectRoot: string) {
21
+ ];
22
+ export function buildMcpServerEntry(projectRoot) {
28
23
  const packageRoot = getPackageRoot();
29
-
30
24
  // Check if we are running in the framework local development repository itself
31
25
  const isLocalFrameworkDev = path.resolve(packageRoot) === path.resolve(projectRoot);
32
-
33
- let relativePath: string;
34
-
26
+ let relativePath;
35
27
  if (isLocalFrameworkDev) {
36
28
  // In local framework dev, always use the build path directly relative to project root
37
- let mcpServerPath = path.join(packageRoot, "framework-mcp/dist/index.js");
29
+ let mcpServerPath = path.join(packageRoot, MCP.SERVER_DIST_PATH);
38
30
  if (!fs.existsSync(mcpServerPath)) {
39
31
  mcpServerPath = path.join(packageRoot, "../atabey-mcp/dist/index.js");
40
32
  }
41
33
  if (!fs.existsSync(mcpServerPath)) {
42
34
  mcpServerPath = path.join(projectRoot, "node_modules/atabey-mcp/dist/index.js");
43
35
  }
44
-
45
36
  if (!fs.existsSync(mcpServerPath)) {
46
- console.warn("⚠️ MCP Server not found. Did you run 'npm run build' inside atabey-mcp?");
37
+ console.warn("[WARN] MCP Server not found. Did you run 'npm run build' inside atabey-mcp?");
47
38
  }
48
39
  relativePath = path.relative(projectRoot, mcpServerPath) || mcpServerPath;
49
- } else {
40
+ }
41
+ else {
50
42
  // If we are initializing in a user's project:
51
- // We want to target the local node_modules of the user's project.
52
- // Even if node_modules is not populated yet (e.g. running via npx before npm install),
53
- // we should write the local node_modules path so that it will work once installed.
54
-
55
- const localAtabeyPath = path.join(projectRoot, "node_modules/atabey/framework-mcp/dist/index.js");
56
- const localScopedPath = path.join(projectRoot, "node_modules/atabey-mcp/dist/index.js");
57
-
58
- if (fs.existsSync(localScopedPath)) {
59
- relativePath = path.relative(projectRoot, localScopedPath);
60
- } else if (fs.existsSync(localAtabeyPath)) {
61
- relativePath = path.relative(projectRoot, localAtabeyPath);
62
- } else {
63
- // Default to the standard relative local path in node_modules/atabey
64
- // This is clean and portable across machines/developers.
65
- relativePath = "node_modules/atabey/framework-mcp/dist/index.js";
43
+ // We target the atabey-mcp package which is a dependency of atabey.
44
+ // This ensures a stable path across different npm/pnpm/yarn setups.
45
+ relativePath = "node_modules/atabey-mcp/dist/index.js";
46
+ // Fallback check if it actually exists in a different location during init
47
+ const localAtabeyPath = path.join(projectRoot, "node_modules/atabey", MCP.SERVER_DIST_PATH);
48
+ if (!fs.existsSync(path.join(projectRoot, relativePath)) && fs.existsSync(localAtabeyPath)) {
49
+ relativePath = path.join("node_modules/atabey", MCP.SERVER_DIST_PATH);
66
50
  }
67
51
  }
68
-
69
52
  return {
70
53
  command: "node",
71
54
  args: [relativePath],
72
55
  env: {
73
- ATABEY_PROJECT_ROOT: projectRoot,
56
+ [MCP.PROJECT_ROOT_ENV]: projectRoot,
74
57
  },
75
58
  };
76
59
  }
77
-
78
- export function runAdapterPostInit(adapter: AdapterConfig, projectRoot: string): void {
60
+ export function runAdapterPostInit(adapter, projectRoot) {
79
61
  const mcpEntry = buildMcpServerEntry(projectRoot);
80
- const mcpBlock = { mcpServers: { "atabey": mcpEntry } };
81
-
62
+ const mcpBlock = { mcpServers: { [MCP.SERVER_NAME]: mcpEntry } };
82
63
  const postInitFn = POST_INIT_HANDLERS[adapter.id];
83
64
  if (postInitFn) {
84
65
  postInitFn(projectRoot, mcpBlock);
85
66
  }
86
-
87
- const rootMcpPath = path.join(projectRoot, "mcp.json");
67
+ const rootMcpPath = path.join(projectRoot, MCP.ROOT_CONFIG_FILE);
88
68
  if (!fs.existsSync(rootMcpPath)) {
89
69
  writeJsonFile(rootMcpPath, mcpBlock);
90
70
  }
@@ -1,4 +1,4 @@
1
- export { ADAPTER_IDS, type AdapterConfig, type AdapterId, type AdapterRole } from "../../modules/adapters/types.js";
1
+ export { ADAPTER_IDS } from "../../modules/adapters/types.js";
2
2
  export { ADAPTERS, FRAMEWORK_DIR_CANDIDATES, runAdapterPostInit, buildMcpServerEntry } from "./core.js";
3
3
  export { resolveAdapter, isAdapterShimFile, remapFrameworkContent } from "./utils.js";
4
4
  export { scaffoldAgents } from "./scaffold.js";
@@ -1,39 +1,14 @@
1
1
  import fs from "fs";
2
2
  import path from "path";
3
- import type { AdapterId } from "../../modules/adapters/types.js";
4
3
  import { ADAPTER_IDS } from "../../modules/adapters/types.js";
5
- import {
6
- LEGACY_AGENT_LAYOUT_BASES,
7
- UNIFIED_ADAPTER_SLUG,
8
- UNIFIED_HUB_DIR,
9
- pathJoin,
10
- unifiedAdapterPath,
11
- } from "../../shared/constants.js";
4
+ import { LEGACY_AGENT_LAYOUT_BASES, UNIFIED_ADAPTER_SLUG, UNIFIED_HUB_DIR, pathJoin, unifiedAdapterPath, } from "../../shared/constants.js";
12
5
  import { ADAPTERS } from "./core.js";
13
-
14
- export {
15
- CORE_FRAMEWORK_DIR,
16
- UNIFIED_HUB_DIR,
17
- UNIFIED_ADAPTER_SLUG,
18
- } from "../../shared/constants.js";
19
-
20
- export interface AgentsDestination {
21
- agentsDir: string;
22
- agentsExt: string;
23
- nestedAntigravity: boolean;
24
- }
25
-
26
- export function unifiedAdapterRoot(aiToolDir: string, adapterId: AdapterId): string {
6
+ export { CORE_FRAMEWORK_DIR, UNIFIED_HUB_DIR, UNIFIED_ADAPTER_SLUG, } from "../../shared/constants.js";
7
+ export function unifiedAdapterRoot(aiToolDir, adapterId) {
27
8
  return pathJoin(aiToolDir, UNIFIED_ADAPTER_SLUG[adapterId]);
28
9
  }
29
-
30
- export function resolveAgentsDir(
31
- adapterId: AdapterId,
32
- isUnified: boolean,
33
- aiToolDir: string = UNIFIED_HUB_DIR,
34
- ): AgentsDestination {
10
+ export function resolveAgentsDir(adapterId, isUnified, aiToolDir = UNIFIED_HUB_DIR) {
35
11
  const adapter = ADAPTERS[adapterId];
36
-
37
12
  if (!isUnified) {
38
13
  return {
39
14
  agentsDir: adapter.agentsDir ?? pathJoin(adapter.frameworkDir, "agents"),
@@ -41,9 +16,7 @@ export function resolveAgentsDir(
41
16
  nestedAntigravity: adapterId === "antigravity-cli",
42
17
  };
43
18
  }
44
-
45
19
  const base = unifiedAdapterRoot(aiToolDir, adapterId);
46
-
47
20
  switch (adapterId) {
48
21
  case "cursor":
49
22
  return { agentsDir: pathJoin(base, "rules"), agentsExt: ".mdc", nestedAntigravity: false };
@@ -56,12 +29,10 @@ export function resolveAgentsDir(
56
29
  return { agentsDir: pathJoin(base, "agents"), agentsExt: ".md", nestedAntigravity: false };
57
30
  }
58
31
  }
59
-
60
- export function getUnifiedAgentLayoutBases(aiToolDir: string = UNIFIED_HUB_DIR): string[] {
32
+ export function getUnifiedAgentLayoutBases(aiToolDir = UNIFIED_HUB_DIR) {
61
33
  return ADAPTER_IDS.map((id) => resolveAgentsDir(id, true, aiToolDir).agentsDir);
62
34
  }
63
-
64
- const AGENT_INSTRUCTION_CANDIDATES: Array<(name: string) => string[]> = [
35
+ const AGENT_INSTRUCTION_CANDIDATES = [
65
36
  (n) => ADAPTER_IDS.flatMap((id) => {
66
37
  const { agentsDir, nestedAntigravity, agentsExt } = resolveAgentsDir(id, true);
67
38
  if (nestedAntigravity) {
@@ -77,57 +48,52 @@ const AGENT_INSTRUCTION_CANDIDATES: Array<(name: string) => string[]> = [
77
48
  return [pathJoin(base, `${n}${ext}`)];
78
49
  }),
79
50
  ];
80
-
81
- export function findAgentInstruction(projectRoot: string, agentName: string): string | null {
51
+ export function findAgentInstruction(projectRoot, agentName) {
82
52
  for (const buildPaths of AGENT_INSTRUCTION_CANDIDATES) {
83
53
  for (const rel of buildPaths(agentName)) {
84
54
  const full = path.join(projectRoot, rel);
85
- if (fs.existsSync(full)) return rel;
55
+ if (fs.existsSync(full))
56
+ return rel;
86
57
  }
87
58
  }
88
59
  return null;
89
60
  }
90
-
91
- export function detectActiveAgentLayouts(projectRoot: string): string[] {
61
+ export function detectActiveAgentLayouts(projectRoot) {
92
62
  const unified = getUnifiedAgentLayoutBases()
93
63
  .filter((b) => fs.existsSync(path.join(projectRoot, b)));
94
-
95
64
  const legacy = LEGACY_AGENT_LAYOUT_BASES
96
65
  .filter((b) => fs.existsSync(path.join(projectRoot, b)));
97
-
98
66
  return [...new Set([...unified, ...legacy])];
99
67
  }
100
-
101
- function copyDirectoryRecursive(src: string, dest: string): void {
68
+ function copyDirectoryRecursive(src, dest) {
102
69
  fs.mkdirSync(dest, { recursive: true });
103
70
  for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
104
71
  const srcPath = path.join(src, entry.name);
105
72
  const destPath = path.join(dest, entry.name);
106
73
  if (entry.isDirectory()) {
107
74
  copyDirectoryRecursive(srcPath, destPath);
108
- } else {
75
+ }
76
+ else {
109
77
  fs.copyFileSync(srcPath, destPath);
110
78
  }
111
79
  }
112
80
  }
113
-
114
- export function mirrorUnifiedAgentsToNative(projectRoot: string, adapterId: AdapterId): void {
81
+ export function mirrorUnifiedAgentsToNative(projectRoot, adapterId) {
115
82
  const { agentsDir: unifiedDir } = resolveAgentsDir(adapterId, true);
116
83
  const nativeRel = ADAPTERS[adapterId].agentsDir;
117
- if (!nativeRel) return;
118
-
84
+ if (!nativeRel)
85
+ return;
119
86
  const src = path.join(projectRoot, unifiedDir);
120
87
  const dest = path.join(projectRoot, nativeRel);
121
- if (!fs.existsSync(src) || path.resolve(src) === path.resolve(dest)) return;
122
-
88
+ if (!fs.existsSync(src) || path.resolve(src) === path.resolve(dest))
89
+ return;
123
90
  if (fs.existsSync(dest)) {
124
91
  fs.rmSync(dest, { recursive: true, force: true });
125
92
  }
126
93
  copyDirectoryRecursive(src, dest);
127
94
  }
128
-
129
95
  /** Cursor global rule destinations (native + unified hub). */
130
- export function getCursorGlobalRulePaths(projectRoot: string): string[] {
96
+ export function getCursorGlobalRulePaths(projectRoot) {
131
97
  return [
132
98
  path.join(projectRoot, ADAPTERS.cursor.frameworkDir, "rules", "global.mdc"),
133
99
  path.join(projectRoot, unifiedAdapterPath(UNIFIED_ADAPTER_SLUG.cursor, "rules", "global.mdc")),
@@ -2,51 +2,28 @@ import { writeTextFile } from "../utils/fs.js";
2
2
  import path from "path";
3
3
  import fs from "fs";
4
4
  import { getPackageRoot } from "../utils/pkg.js";
5
- import {
6
- ALL_AGENTS,
7
- toClaudeCodeMd,
8
- toGeminiCliMd,
9
- toCodexMd,
10
- toAntigravityJson,
11
- toCursorMdc
12
- } from "../../modules/agents/definitions.js";
13
-
14
- import type { AdapterId } from "../../modules/adapters/types.js";
5
+ import { ALL_AGENTS, toClaudeCodeMd, toGeminiCliMd, toCodexMd, toAntigravityJson, toCursorMdc } from "../../modules/agents/definitions.js";
15
6
  import { ADAPTERS } from "./core.js";
16
-
17
- export function scaffoldAgents(
18
- projectRoot: string,
19
- adapterId: AdapterId,
20
- dryRun: boolean,
21
- agentsToScaffold?: string[],
22
- explicitDestDir?: string,
23
- explicitExt?: string,
24
- paths?: Record<string, string>,
25
- backendLanguage?: string,
26
- _language?: string
27
- ): void {
7
+ export function scaffoldAgents(projectRoot, adapterId, dryRun, agentsToScaffold, explicitDestDir, explicitExt, paths, backendLanguage, _language) {
28
8
  const adapter = ADAPTERS[adapterId];
29
- if (!adapter) return;
30
-
9
+ if (!adapter)
10
+ return;
31
11
  const allowedAgents = agentsToScaffold ? new Set(agentsToScaffold) : undefined;
32
12
  const destAgentsDir = explicitDestDir ? path.join(projectRoot, explicitDestDir) : (adapter.agentsDir ? path.join(projectRoot, adapter.agentsDir) : null);
33
13
  const extension = explicitExt || adapter.agentsExt || ".md";
34
-
35
- if (!destAgentsDir) return;
36
-
14
+ if (!destAgentsDir)
15
+ return;
37
16
  const baseKnowledgeDir = path.join(getPackageRoot(), "templates/standards");
38
-
39
17
  try {
40
- if (!dryRun) fs.mkdirSync(destAgentsDir, { recursive: true });
41
-
18
+ if (!dryRun)
19
+ fs.mkdirSync(destAgentsDir, { recursive: true });
42
20
  for (const agent of ALL_AGENTS) {
43
- if (allowedAgents && !allowedAgents.has(agent.name)) continue;
44
-
21
+ if (allowedAgents && !allowedAgents.has(agent.name))
22
+ continue;
45
23
  let content = "";
46
24
  let fileName = `${agent.name}${extension}`;
47
- let secondaryContent: string | null = null;
48
- let secondaryFileName: string | null = null;
49
-
25
+ let secondaryContent = null;
26
+ let secondaryFileName = null;
50
27
  switch (adapterId) {
51
28
  case "gemini":
52
29
  content = toGeminiCliMd(agent, baseKnowledgeDir, paths, backendLanguage);
@@ -67,12 +44,11 @@ export function scaffoldAgents(
67
44
  case "antigravity-cli": {
68
45
  // Antigravity uses nested folders: agents/{name}/agent.json and agents/{name}/agent.md
69
46
  const agentDir = path.join(destAgentsDir, agent.name);
70
- if (!dryRun) fs.mkdirSync(agentDir, { recursive: true });
71
-
47
+ if (!dryRun)
48
+ fs.mkdirSync(agentDir, { recursive: true });
72
49
  content = toAntigravityJson(agent, baseKnowledgeDir, paths, backendLanguage);
73
50
  fileName = path.join(agent.name, "agent.json");
74
-
75
- secondaryContent = `# 🎖️ Agent Atabey — @${agent.name}\n\n${agent.instructions.identity}\n\n${agent.instructions.mission}`;
51
+ secondaryContent = `# [ATABEY] Agent Atabey — @${agent.name}\n\n${agent.instructions.identity}\n\n${agent.instructions.mission}`;
76
52
  secondaryFileName = path.join(agent.name, "agent.md");
77
53
  break;
78
54
  }
@@ -81,7 +57,6 @@ export function scaffoldAgents(
81
57
  content = toGeminiCliMd(agent, baseKnowledgeDir, paths, backendLanguage);
82
58
  break;
83
59
  }
84
-
85
60
  if (!dryRun) {
86
61
  writeTextFile(path.join(destAgentsDir, fileName), content, dryRun);
87
62
  if (secondaryContent && secondaryFileName) {
@@ -89,7 +64,8 @@ export function scaffoldAgents(
89
64
  }
90
65
  }
91
66
  }
92
- } catch (e) {
93
- console.warn(`⚠️ Failed to scaffold agents for ${adapterId}: ${e}`);
67
+ }
68
+ catch (e) {
69
+ console.warn(`[WARN] Failed to scaffold agents for ${adapterId}: ${e}`);
94
70
  }
95
71
  }
@@ -2,46 +2,34 @@ import fs from "fs";
2
2
  import path from "path";
3
3
  import { logger } from "../../shared/logger.js";
4
4
  import { UI } from "../utils/ui.js";
5
-
6
- import type { AdapterConfig, AdapterId } from "../../modules/adapters/types.js";
7
5
  import { ADAPTERS, SHIM_FILES } from "./core.js";
8
-
9
- export function resolveAdapter(input?: string): AdapterConfig {
6
+ export function resolveAdapter(input) {
10
7
  let normalized = (input || "gemini").toLowerCase();
11
8
  if (normalized === "antigravity") {
12
9
  normalized = "antigravity-cli";
13
- } else if (normalized === "copilot" || normalized === "github") {
10
+ }
11
+ else if (normalized === "copilot" || normalized === "github") {
14
12
  normalized = "codex";
15
13
  }
16
-
17
- let config: AdapterConfig;
14
+ let config;
18
15
  if (normalized in ADAPTERS) {
19
- config = { ...ADAPTERS[normalized as AdapterId] };
20
- } else {
16
+ config = { ...ADAPTERS[normalized] };
17
+ }
18
+ else {
21
19
  UI.warning(`Unknown adapter "${input}". Falling back to gemini.`);
22
20
  config = { ...ADAPTERS.gemini };
23
21
  }
24
-
25
22
  return config;
26
23
  }
27
-
28
- export function isAdapterShimFile(fileName: string): boolean {
24
+ export function isAdapterShimFile(fileName) {
29
25
  return SHIM_FILES.includes(fileName);
30
26
  }
31
-
32
- export function remapFrameworkContent(
33
- content: string,
34
- frameworkDir: string,
35
- adapterId: AdapterId,
36
- ): string {
27
+ export function remapFrameworkContent(content, frameworkDir, adapterId) {
37
28
  let result = content;
38
-
39
29
  result = result.replace(/\{\{FRAMEWORK_DIR\}\}/g, frameworkDir);
40
30
  result = result.replace(/\{\{ADAPTER\}\}/g, adapterId);
41
-
42
31
  let agentFolder = "agents";
43
32
  let knowledgeFolder = "knowledge";
44
-
45
33
  if (frameworkDir !== ".atabey") {
46
34
  if (adapterId === "antigravity-cli") {
47
35
  agentFolder = "agents";
@@ -50,15 +38,12 @@ export function remapFrameworkContent(
50
38
  // Note: Grok uses the same directory structure as Gemini (".grok/agents").
51
39
  // No override needed — default agentFolder = "agents" is correct.
52
40
  }
53
-
54
41
  const frameworkPattern = ".atabey/";
55
42
  result = result.replace(new RegExp(frameworkPattern + "agents/", "g"), `${frameworkDir}/${agentFolder}/`);
56
43
  result = result.replace(new RegExp(frameworkPattern + "knowledge/", "g"), `${frameworkDir}/${knowledgeFolder}/`);
57
-
58
44
  result = result.replace(/\.atabey\//g, `${frameworkDir}/`);
59
45
  result = result.replace(/`\.atabey`/g, `\`${frameworkDir}\``);
60
46
  result = result.replace(/\.atabey(?![\w/-])/g, frameworkDir);
61
-
62
47
  let backend = "apps/backend";
63
48
  let frontend = "apps/web";
64
49
  let docs = "docs";
@@ -68,20 +53,23 @@ export function remapFrameworkContent(
68
53
  if (fs.existsSync(configPath)) {
69
54
  const config = JSON.parse(fs.readFileSync(configPath, "utf8"));
70
55
  if (config.paths) {
71
- if (config.paths.backend) backend = config.paths.backend;
72
- if (config.paths.frontend) frontend = config.paths.frontend;
73
- if (config.paths.docs) docs = config.paths.docs;
74
- if (config.paths.tests) tests = config.paths.tests;
56
+ if (config.paths.backend)
57
+ backend = config.paths.backend;
58
+ if (config.paths.frontend)
59
+ frontend = config.paths.frontend;
60
+ if (config.paths.docs)
61
+ docs = config.paths.docs;
62
+ if (config.paths.tests)
63
+ tests = config.paths.tests;
75
64
  }
76
65
  }
77
- } catch (err) {
66
+ }
67
+ catch (err) {
78
68
  logger.debug("Failed to read config.json in remapFrameworkContent", err);
79
69
  }
80
-
81
70
  result = result.replace(/\{\{BACKEND_DIR\}\}/g, backend);
82
71
  result = result.replace(/\{\{FRONTEND_DIR\}\}/g, frontend);
83
72
  result = result.replace(/\{\{DOCS_DIR\}\}/g, docs);
84
73
  result = result.replace(/\{\{TESTS_DIR\}\}/g, tests);
85
-
86
74
  return result;
87
75
  }
@@ -4,33 +4,26 @@ import { getFrameworkDir } from "../utils/memory.js";
4
4
  import { UI } from "../utils/ui.js";
5
5
  import { writeTextFile, appendFile } from "../utils/fs.js";
6
6
  import { ValidationError } from "../../shared/errors.js";
7
-
8
7
  import { HermesMessageSchema } from "./orchestrate.js";
9
-
10
- export async function approveCommand(traceId: string) {
8
+ export async function approveCommand(traceId) {
11
9
  const frameworkDir = getFrameworkDir();
12
10
  const messagesDir = path.join(frameworkDir, "messages");
13
-
14
11
  if (!fs.existsSync(messagesDir)) {
15
- throw new ValidationError(
16
- "No messages directory found.",
17
- null,
18
- "Ensure the framework is initialized and the Hermes orchestrator has been run at least once."
19
- );
12
+ throw new ValidationError("No messages directory found.", null, "Ensure the framework is initialized and the Hermes orchestrator has been run at least once.");
20
13
  }
21
-
22
14
  const files = fs.readdirSync(messagesDir).filter((f) => f.endsWith(".json"));
23
15
  let found = false;
24
-
25
16
  for (const file of files) {
26
17
  const filePath = path.join(messagesDir, file);
27
18
  try {
28
19
  const content = fs.readFileSync(filePath, "utf8").trim();
29
- if (!content) continue;
20
+ if (!content)
21
+ continue;
30
22
  const lines = content.split("\n");
31
23
  let updated = false;
32
24
  const newLines = lines.map((line) => {
33
- if (!line.trim()) return line;
25
+ if (!line.trim())
26
+ return line;
34
27
  try {
35
28
  const parsed = JSON.parse(line);
36
29
  const msg = HermesMessageSchema.parse(parsed);
@@ -41,20 +34,20 @@ export async function approveCommand(traceId: string) {
41
34
  UI.success(`Approved message from ${msg.from} to ${msg.to} (Action: ${msg.action || "None"})`);
42
35
  }
43
36
  return JSON.stringify(msg);
44
- } catch (e) {
45
- UI.error(`Skipping invalid Hermes message during approval: ${(e as Error).message}`);
37
+ }
38
+ catch (e) {
39
+ UI.error(`Skipping invalid Hermes message during approval: ${e.message}`);
46
40
  return line;
47
41
  }
48
42
  });
49
-
50
43
  if (updated) {
51
44
  writeTextFile(filePath, newLines.join("\n") + "\n");
52
45
  }
53
- } catch (e) {
54
- UI.error(`Error reading or updating message file ${file}: ${(e as Error).message}`);
46
+ }
47
+ catch (e) {
48
+ UI.error(`Error reading or updating message file ${file}: ${e.message}`);
55
49
  }
56
50
  }
57
-
58
51
  if (found) {
59
52
  // Log user approval to audit log
60
53
  const auditPath = path.join(frameworkDir, "observability/audit_log.md");
@@ -63,11 +56,8 @@ export async function approveCommand(traceId: string) {
63
56
  appendFile(auditPath, logEntry);
64
57
  }
65
58
  UI.success("Successfully approved Trace: " + traceId);
66
- } else {
67
- throw new ValidationError(
68
- `No pending approval request found for Trace ID: ${traceId}`,
69
- null,
70
- "Run 'npx atabey status' to see active traces and ensure the ID is correct and pending approval."
71
- );
59
+ }
60
+ else {
61
+ throw new ValidationError(`No pending approval request found for Trace ID: ${traceId}`, null, "Run 'npx atabey status' to see active traces and ensure the ID is correct and pending approval.");
72
62
  }
73
63
  }