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
@@ -1,30 +1,22 @@
1
1
  import fs from "fs";
2
2
  import path from "path";
3
- import {
4
- remapFrameworkContent,
5
- type AdapterConfig,
6
- type AdapterId,
7
- ADAPTERS
8
- } from "../../adapters/index.js";
3
+ import { remapFrameworkContent, ADAPTERS } from "../../adapters/index.js";
9
4
  import { SHIM_TEMPLATES } from "../../shims.js";
10
5
  import { writeJsonFile, writeTextFile } from "../../utils/fs.js";
11
6
  import { getPackageRoot, getPackageVersion } from "../../utils/pkg.js";
12
7
  import { ALL_AGENTS } from "../../../modules/agents/definitions.js";
13
-
14
- import { TRANSLATIONS, type SupportedLanguage } from "../../utils/i18n.js";
15
-
8
+ import { TRANSLATIONS } from "../../utils/i18n.js";
16
9
  const FRAMEWORK_NAME = "Agent Atabey";
17
-
18
10
  const COLOR_PALETTES = {
19
11
  "Modern Blue": { primary: "#0ea5e9", secondary: "#64748b", accent: "#f43f5e" },
20
12
  "Enterprise Slate": { primary: "#334155", secondary: "#94a3b8", accent: "#10b981" },
21
13
  "Deep Purple": { primary: "#8b5cf6", secondary: "#d8b4fe", accent: "#f59e0b" }
22
14
  };
23
-
24
- export function scaffoldConstitution(targetDir: string, frameworkDir: string, adapterId: AdapterId, dryRun: boolean, language: SupportedLanguage = "tr") {
25
- if (dryRun) return;
15
+ export function scaffoldConstitution(targetDir, frameworkDir, adapterId, dryRun, language = "tr") {
16
+ if (dryRun)
17
+ return;
26
18
  const t = TRANSLATIONS[language];
27
- let content = `# 🎖️ ${t.constitution_title}\n\nDiscipline and Order.`;
19
+ let content = `# [ATABEY] ${t.constitution_title}\n\nDiscipline and Order.`;
28
20
  let readSuccess = false;
29
21
  try {
30
22
  const templatePath = path.join(getPackageRoot(), "ATABEY.md");
@@ -32,36 +24,29 @@ export function scaffoldConstitution(targetDir: string, frameworkDir: string, ad
32
24
  content = fs.readFileSync(templatePath, "utf8");
33
25
  readSuccess = true;
34
26
  }
35
- } catch (e) {
36
- console.warn(`⚠️ Failed to read global constitution template: ${e}`);
27
+ }
28
+ catch (e) {
29
+ console.warn(`[WARN] Failed to read global constitution template: ${e}`);
37
30
  }
38
31
  content = remapFrameworkContent(content, frameworkDir, adapterId);
39
32
  const destPath = path.join(targetDir, frameworkDir, "ATABEY.md");
40
33
  writeTextFile(destPath, content);
41
-
42
- console.warn(`✅ Constitution file created inside: ${frameworkDir}/ATABEY.md${readSuccess ? "" : " (default template)"}`);
34
+ console.warn(`[OK] Constitution file created inside: ${frameworkDir}/ATABEY.md${readSuccess ? "" : " (default template)"}`);
43
35
  }
44
-
45
- export function scaffoldFrameworkConfigs(
46
- targetDir: string,
47
- fDir: string,
48
- adapter: AdapterConfig,
49
- dryRun: boolean,
50
- selectedPalette: string,
51
- options?: { unified?: boolean; adapters?: string[]; backendLanguage?: string; language?: SupportedLanguage }
52
- ) {
53
- if (dryRun) return;
36
+ export function scaffoldFrameworkConfigs(targetDir, fDir, adapter, dryRun, selectedPalette, options) {
37
+ if (dryRun)
38
+ return;
54
39
  const frameworkDir = path.join(targetDir, fDir);
55
- const palette = COLOR_PALETTES[selectedPalette as keyof typeof COLOR_PALETTES] || COLOR_PALETTES["Modern Blue"];
40
+ const palette = COLOR_PALETTES[selectedPalette] || COLOR_PALETTES["Modern Blue"];
56
41
  const language = options?.language || "tr";
57
42
  const t = TRANSLATIONS[language];
58
-
59
43
  const config = {
60
44
  name: FRAMEWORK_NAME,
61
45
  version: getPackageVersion(),
62
46
  unified: options?.unified || false,
63
47
  adapters: options?.adapters || [adapter.id],
64
48
  backendLanguage: options?.backendLanguage || "Node.js (TypeScript)",
49
+ frontendFramework: options?.frontendFramework || "Vite (React)",
65
50
  language: language,
66
51
  theme: {
67
52
  palette: selectedPalette,
@@ -69,67 +54,58 @@ export function scaffoldFrameworkConfigs(
69
54
  }
70
55
  };
71
56
  writeJsonFile(path.join(frameworkDir, "config.json"), config, dryRun);
72
-
73
57
  // Scaffold shared-facts.json in memory-graph
74
58
  const graphDir = path.join(frameworkDir, "memory-graph");
75
- if (!fs.existsSync(graphDir)) fs.mkdirSync(graphDir, { recursive: true });
59
+ if (!fs.existsSync(graphDir))
60
+ fs.mkdirSync(graphDir, { recursive: true });
76
61
  const sharedFactsPath = path.join(graphDir, "shared-facts.json");
77
62
  if (!fs.existsSync(sharedFactsPath)) {
78
63
  writeJsonFile(sharedFactsPath, {
79
64
  project: FRAMEWORK_NAME,
80
65
  initializedAt: new Date().toISOString(),
81
- stack: [options?.backendLanguage || "Node.js (TypeScript)"],
66
+ stack: [
67
+ options?.backendLanguage || "Node.js (TypeScript)",
68
+ options?.frontendFramework || "Vite (React)"
69
+ ],
82
70
  language: language,
83
71
  policies: []
84
72
  }, dryRun);
85
73
  }
86
-
87
- let statusContent = `# 🎖️ ${t.status_title}\n\n| Agent | State | Active Task | Last Updated | Notes | Extra | Backup |\n|---|---|---|---|---|---|---|\n`;
88
-
74
+ let statusContent = `# [ATABEY] ${t.status_title}\n\n| Agent | State | Active Task | Last Updated | Notes | Extra | Backup |\n|---|---|---|---|---|---|---|\n`;
89
75
  const activeAgents = ALL_AGENTS;
90
-
91
- const initialStatusJson: Record<string, { state: string; task: string; lastUpdated: string }> = {};
76
+ const initialStatusJson = {};
92
77
  const now = new Date().toISOString();
93
-
94
78
  for (const ag of activeAgents) {
95
79
  statusContent += "| @" + ag.name + " | " + t.agent_ready + " | Idle | - | - | - | - |\n";
96
80
  initialStatusJson[ag.name] = { state: "READY", task: "Idle", lastUpdated: now };
97
81
  }
98
82
  writeTextFile(path.join(frameworkDir, "STATUS.md"), statusContent);
99
-
100
83
  // Populate initial status.json
101
84
  const statusJsonPath = path.join(frameworkDir, "memory", "status.json");
102
- if (!fs.existsSync(path.join(frameworkDir, "memory"))) fs.mkdirSync(path.join(frameworkDir, "memory"), { recursive: true });
85
+ if (!fs.existsSync(path.join(frameworkDir, "memory")))
86
+ fs.mkdirSync(path.join(frameworkDir, "memory"), { recursive: true });
103
87
  writeJsonFile(statusJsonPath, initialStatusJson, dryRun);
104
88
  }
105
-
106
- export function scaffoldShims(
107
- projectRoot: string,
108
- coreDir: string,
109
- adapterId: AdapterId,
110
- adapter: AdapterConfig,
111
- dryRun: boolean,
112
- unified: boolean = false
113
- ) {
89
+ export function scaffoldShims(projectRoot, coreDir, adapterId, adapter, dryRun, unified = false) {
114
90
  for (const [name, content] of Object.entries(SHIM_TEMPLATES)) {
115
91
  // Normalize: "antigravity-cli" template key needs exact match or prefix match
116
92
  const isSelectedAdapter = name === adapterId ||
117
93
  name.toLowerCase() === adapterId.split("-")[0].toLowerCase();
118
-
119
94
  if (unified || isSelectedAdapter) {
120
95
  const shimContent = remapFrameworkContent(content, coreDir, adapterId);
121
96
  // In unified mode, each adapter writes its OWN shimFile name.
122
97
  // In single-adapter mode, use selected adapter's shimFile.
123
- const shimAdapter = ADAPTERS[name as AdapterId] || adapter;
98
+ const shimAdapter = ADAPTERS[name] || adapter;
124
99
  const shimFileName = (unified && !isSelectedAdapter)
125
- ? (shimAdapter.shimFile || `${name.toUpperCase()}.md`) // each adapter's own file
126
- : (adapter.shimFile || `${name.toUpperCase()}.md`); // selected adapter's file
127
-
128
- if (!dryRun) writeTextFile(path.join(projectRoot, shimFileName), shimContent);
100
+ ? (shimAdapter.shimFile || `${name.toUpperCase()}.md`) // each adapter's own file
101
+ : (adapter.shimFile || `${name.toUpperCase()}.md`); // selected adapter's file
102
+ if (!dryRun)
103
+ writeTextFile(path.join(projectRoot, shimFileName), shimContent);
129
104
  if (isSelectedAdapter) {
130
- console.warn(`✅ Platform shim created: ${shimFileName}`);
131
- } else if (unified) {
132
- console.warn(`✅ Unified platform shim added: ${shimFileName}`);
105
+ console.warn(`[OK] Platform shim created: ${shimFileName}`);
106
+ }
107
+ else if (unified) {
108
+ console.warn(`[OK] Unified platform shim added: ${shimFileName}`);
133
109
  }
134
110
  }
135
111
  }
@@ -0,0 +1,34 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import { writeTextFile } from "../../utils/fs.js";
4
+ import { getPackageRoot } from "../../utils/pkg.js";
5
+ import { logger } from "../../../shared/logger.js";
6
+ export function scaffoldProjectDocs(projectRoot, options, dryRun) {
7
+ if (dryRun)
8
+ return;
9
+ const docsDir = path.join(projectRoot, "docs");
10
+ if (!fs.existsSync(docsDir))
11
+ fs.mkdirSync(docsDir, { recursive: true });
12
+ // Scaffold tech-stack.md with dynamic content
13
+ const techStackPath = path.join(docsDir, "tech-stack.md");
14
+ let techStackContent = "";
15
+ try {
16
+ const templatePath = path.join(getPackageRoot(), "docs/tech-stack.md");
17
+ if (fs.existsSync(templatePath)) {
18
+ techStackContent = fs.readFileSync(templatePath, "utf8");
19
+ // Replace the backend language in the template
20
+ const lang = options.backendLanguage;
21
+ const frontend = options.frontendFramework || "Vite (React)";
22
+ techStackContent = techStackContent.replace(/\| \*\*Geliştirme Ortamı\*\* \| .* \|/, `| **Geliştirme Ortamı** | ${lang} |`);
23
+ techStackContent = techStackContent.replace(/\| \*\*Frontend Altyapısı\*\* \| .* \|/, `| **Frontend Altyapısı** | ${frontend} |`);
24
+ }
25
+ }
26
+ catch (e) {
27
+ logger.debug("Failed to read tech-stack.md template", e);
28
+ }
29
+ if (!techStackContent) {
30
+ techStackContent = `# 🛠️ Project Tech Stack\n\n- **Backend Language:** ${options.backendLanguage}\n- **Frontend Framework:** ${options.frontendFramework || "Vite (React)"}\n`;
31
+ }
32
+ writeTextFile(techStackPath, techStackContent);
33
+ console.warn(`[OK] Project documentation updated: docs/tech-stack.md (Backend: ${options.backendLanguage}, Frontend: ${options.frontendFramework || "Vite (React)"})`);
34
+ }
@@ -3,14 +3,13 @@ import path from "path";
3
3
  import { writeJsonFile, writeTextFile } from "../../utils/fs.js";
4
4
  import { getPackageRoot } from "../../utils/pkg.js";
5
5
  import { logger } from "../../../shared/logger.js";
6
-
7
- export function scaffoldOps(frameworkDir: string, dryRun: boolean) {
8
- if (dryRun) return;
9
-
6
+ export function scaffoldOps(frameworkDir, dryRun) {
7
+ if (dryRun)
8
+ return;
10
9
  // Scaffold Prompt Recipes
11
10
  const promptsPath = path.join(frameworkDir, "prompts");
12
- if (!fs.existsSync(promptsPath)) fs.mkdirSync(promptsPath, { recursive: true });
13
-
11
+ if (!fs.existsSync(promptsPath))
12
+ fs.mkdirSync(promptsPath, { recursive: true });
14
13
  const recipes = [
15
14
  { file: "refactoring-recipe.md", template: "templates/prompts/refactoring-recipe.md" },
16
15
  { file: "bug-fix-recipe.md", template: "templates/prompts/bug-fix-recipe.md" },
@@ -21,7 +20,6 @@ export function scaffoldOps(frameworkDir: string, dryRun: boolean) {
21
20
  { file: "deployment-recipe.md", template: "templates/prompts/deployment-recipe.md" },
22
21
  { file: "contract-design-recipe.md", template: "templates/prompts/contract-design-recipe.md" }
23
22
  ];
24
-
25
23
  for (const recipe of recipes) {
26
24
  try {
27
25
  const fullTemplatePath = path.join(getPackageRoot(), recipe.template);
@@ -29,11 +27,11 @@ export function scaffoldOps(frameworkDir: string, dryRun: boolean) {
29
27
  const content = fs.readFileSync(fullTemplatePath, "utf8");
30
28
  writeTextFile(path.join(promptsPath, recipe.file), content);
31
29
  }
32
- } catch (e) {
30
+ }
31
+ catch (e) {
33
32
  logger.debug(`Failed to scaffold prompt recipe: ${recipe.file}`, e);
34
33
  }
35
34
  }
36
-
37
35
  // Scaffold cli-commands.json
38
36
  const cliCommands = {
39
37
  commands: {
@@ -47,37 +45,36 @@ export function scaffoldOps(frameworkDir: string, dryRun: boolean) {
47
45
  }
48
46
  };
49
47
  writeJsonFile(path.join(frameworkDir, "cli-commands.json"), cliCommands, dryRun);
50
-
51
48
  // Scaffold router/routing_rules.md
52
49
  const routerDir = path.join(frameworkDir, "router");
53
- if (!fs.existsSync(routerDir)) fs.mkdirSync(routerDir, { recursive: true });
54
- writeTextFile(path.join(routerDir, "routing_rules.md"), "# 📡 Agent Atabey — Natural Language & Event Router\n\nRouting engine protocols defined here.");
55
-
50
+ if (!fs.existsSync(routerDir))
51
+ fs.mkdirSync(routerDir, { recursive: true });
52
+ writeTextFile(path.join(routerDir, "routing_rules.md"), "# [SIGNAL] Agent Atabey — Natural Language & Event Router\n\nRouting engine protocols defined here.");
56
53
  // Scaffold registry/agent_registry.md
57
54
  const registryDir = path.join(frameworkDir, "registry");
58
- if (!fs.existsSync(registryDir)) fs.mkdirSync(registryDir, { recursive: true });
59
- writeTextFile(path.join(registryDir, "agent_registry.md"), "# 🎖️ Agent Atabey — Army Registry\n\nList of active agents.");
60
-
55
+ if (!fs.existsSync(registryDir))
56
+ fs.mkdirSync(registryDir, { recursive: true });
57
+ writeTextFile(path.join(registryDir, "agent_registry.md"), "# [ATABEY] Agent Atabey — Army Registry\n\nList of active agents.");
61
58
  // Scaffold observability files
62
59
  const obsDir = path.join(frameworkDir, "observability");
63
- if (!fs.existsSync(obsDir)) fs.mkdirSync(obsDir, { recursive: true });
64
- writeTextFile(path.join(obsDir, "audit_log.md"), "# 🎖️ Agent Atabey — Audit Log\n\n| Timestamp | Agent | Action | Trace ID | Status |\n|---|---|---|---|---|\n");
60
+ if (!fs.existsSync(obsDir))
61
+ fs.mkdirSync(obsDir, { recursive: true });
62
+ writeTextFile(path.join(obsDir, "audit_log.md"), "# [ATABEY] Agent Atabey — Audit Log\n\n| Timestamp | Agent | Action | Trace ID | Status |\n|---|---|---|---|---|\n");
65
63
  writeJsonFile(path.join(obsDir, "metrics.json"), []);
66
-
67
64
  // Scaffold .env.example
68
65
  const envExamplePath = path.join(process.cwd(), ".env.example");
69
66
  if (!fs.existsSync(envExamplePath)) {
70
67
  writeTextFile(envExamplePath, "# Agent Atabey - Environment Variables\n\n# Core Settings\nPORT=5858\nNODE_ENV=development\n\n# AI Platform Keys (Fill these in your local .env)\nGEMINI_API_KEY=\nCLAUDE_API_KEY=\nGROK_API_KEY=\n");
71
68
  }
72
-
73
69
  // Scaffold rules
74
70
  const rulesDir = path.join(frameworkDir, "rules");
75
- if (!fs.existsSync(rulesDir)) fs.mkdirSync(rulesDir, { recursive: true });
71
+ if (!fs.existsSync(rulesDir))
72
+ fs.mkdirSync(rulesDir, { recursive: true });
76
73
  writeTextFile(path.join(rulesDir, "global_rules.mdc"), `---
77
74
  description: Global Rules for Agent Atabey Army
78
75
  globs: **/*
79
76
  ---
80
77
 
81
- # 🎖️ Agent Atabey — Global Army Rules
78
+ # [ATABEY] Agent Atabey — Global Army Rules
82
79
  `);
83
80
  }
@@ -3,24 +3,23 @@ import path from "path";
3
3
  import { ensureDir, writeTextFile } from "../../utils/fs.js";
4
4
  import { getPackageRoot } from "../../utils/pkg.js";
5
5
  import { CORE_SKILLS } from "../../../modules/skills/definitions.js";
6
-
7
6
  const FRAMEWORK_NAME = "Agent Atabey";
8
-
9
- export function scaffoldSkills(skillsBaseDir: string, dryRun: boolean) {
10
- if (dryRun) return;
7
+ export function scaffoldSkills(skillsBaseDir, dryRun) {
8
+ if (dryRun)
9
+ return;
11
10
  ensureDir(skillsBaseDir, dryRun);
12
11
  for (const [key, skill] of Object.entries(CORE_SKILLS)) {
13
- const mdContent = `# 🛠️ ${FRAMEWORK_NAME} Skill — ${skill.name}\n\n${skill.description}\n\n## 🔌 Associated Tools\n${skill.tools.map(t => `- \`${t}\``).join("\n")}\n\n## 🛡️ Core Mandates\n${skill.mandates.join("\n")}\n`;
12
+ const mdContent = `# 🛠️ ${FRAMEWORK_NAME} Skill — ${skill.name}\n\n${skill.description}\n\n## 🔌 Associated Tools\n${skill.tools.map(t => `- \`${t}\``).join("\n")}\n\n## [SECURITY] Core Mandates\n${skill.mandates.join("\n")}\n`;
14
13
  writeTextFile(path.join(skillsBaseDir, `${key.toLowerCase()}.md`), mdContent);
15
14
  }
16
15
  }
17
-
18
- export function scaffoldStandards(frameworkDir: string, dryRun: boolean) {
19
- if (dryRun) return;
16
+ export function scaffoldStandards(frameworkDir, dryRun) {
17
+ if (dryRun)
18
+ return;
20
19
  const knowledgePath = path.join(frameworkDir, "knowledge");
21
- if (!fs.existsSync(knowledgePath)) fs.mkdirSync(knowledgePath, { recursive: true });
22
-
23
- const eslintStandardsContent = `# 🎖️ Agent Atabey — ESLint Standards
20
+ if (!fs.existsSync(knowledgePath))
21
+ fs.mkdirSync(knowledgePath, { recursive: true });
22
+ const eslintStandardsContent = `# [ATABEY] Agent Atabey — ESLint Standards
24
23
 
25
24
  This document outlines the strict ESLint coding standards for Agent Atabey projects.
26
25
 
@@ -32,28 +31,28 @@ This document outlines the strict ESLint coding standards for Agent Atabey proje
32
31
  - **Unused Variables:** Warning on unused variables unless prefixed with an underscore (\`_\`).
33
32
  `;
34
33
  writeTextFile(path.join(knowledgePath, "eslint-standards.md"), eslintStandardsContent);
35
-
36
34
  const standards = [
37
35
  // ── Supreme Governance (required by @manager, @security, @architect) ──────
38
- { file: "governance-standards.md", template: "templates/standards/governance-standards.md", default: "# 🎖️ Agent Atabey — Governance & Nizam Standards" },
36
+ { file: "governance-standards.md", template: "templates/standards/governance-standards.md", default: "# [ATABEY] Agent Atabey — Governance & Nizam Standards" },
39
37
  // ── Core Engineering Standards ────────────────────────────────────────────
40
- { file: "crud-governance.md", template: "templates/standards/crud-governance.md", default: "# 🏛️ Corporate CRUD and Governance Standards" },
38
+ { file: "crud-governance.md", template: "templates/standards/crud-governance.md", default: "# [GOV] Corporate CRUD and Governance Standards" },
41
39
  { file: "architecture-standards.md", template: "templates/standards/architecture-standards.md", default: "# 📐 Corporate Architecture Standards" },
42
40
  { file: "frontend-standards.md", template: "templates/standards/frontend-standards.md", default: "# 🎨 Corporate Frontend Standards" },
41
+ { file: "vite-standards.md", template: "templates/standards/vite-standards.md", default: "# ⚡ Corporate Vite Standards" },
42
+ { file: "nextjs-standards.md", template: "templates/standards/nextjs-standards.md", default: "# ⚛️ Corporate Next.js Standards" },
43
43
  { file: "tailwind-standards.md", template: "templates/standards/tailwind-standards.md", default: "# 🌊 Corporate Tailwind Standards" },
44
44
  { file: "mobile-standards.md", template: "templates/standards/mobile-standards.md", default: "# 📱 Corporate Mobile Standards" },
45
- { file: "security-standards.md", template: "templates/standards/security-standards.md", default: "# 🛡️ Corporate Security Standards" },
45
+ { file: "security-standards.md", template: "templates/standards/security-standards.md", default: "# [SECURITY] Corporate Security Standards" },
46
46
  { file: "quality-standards.md", template: "templates/standards/quality-standards.md", default: "# ⚖️ Corporate Code Quality Standards" },
47
47
  { file: "logging-and-secrets.md", template: "templates/standards/logging-and-secrets.md", default: "# 🪵 Corporate Logging Standards" },
48
- { file: "testing-standards.md", template: "templates/standards/testing-standards.md", default: "# 🧪 Corporate Testing Standards" },
48
+ { file: "testing-standards.md", template: "templates/standards/testing-standards.md", default: "# [SKILL] Corporate Testing Standards" },
49
49
  { file: "i18n-standards.md", template: "templates/standards/i18n-standards.md", default: "# 🌐 Corporate i18n Standards" },
50
- { file: "llm-governance.md", template: "templates/standards/llm-governance.md", default: "# 🤖 LLM Governance Standards" },
50
+ { file: "llm-governance.md", template: "templates/standards/llm-governance.md", default: "# [AI] LLM Governance Standards" },
51
51
  { file: "observability-standards.md", template: "templates/standards/observability-standards.md", default: "# 📈 Corporate Observability Standards" },
52
- { file: "deployment-standards.md", template: "templates/standards/deployment-standards.md", default: "# 🚀 Corporate Deployment Standards" },
52
+ { file: "deployment-standards.md", template: "templates/standards/deployment-standards.md", default: "# [START] Corporate Deployment Standards" },
53
53
  { file: "performance-standards.md", template: "templates/standards/performance-standards.md", default: "# ⚡ Corporate Performance Standards" },
54
54
  { file: "security-audit-standards.md", template: "templates/standards/security-audit-standards.md", default: "# 🔍 Corporate Security Audit Standards" }
55
55
  ];
56
-
57
56
  for (const std of standards) {
58
57
  let content = std.default;
59
58
  try {
@@ -61,7 +60,8 @@ This document outlines the strict ESLint coding standards for Agent Atabey proje
61
60
  if (fs.existsSync(fullTemplatePath)) {
62
61
  content = fs.readFileSync(fullTemplatePath, "utf8");
63
62
  }
64
- } catch { /* fallback to default */ }
63
+ }
64
+ catch { /* fallback to default */ }
65
65
  writeTextFile(path.join(knowledgePath, std.file), content);
66
66
  }
67
67
  }
@@ -1,37 +1,17 @@
1
1
  import path from "path";
2
2
  import readline from "readline";
3
-
4
- import {
5
- resolveAdapter,
6
- runAdapterPostInit,
7
- scaffoldAgents,
8
- resolveAgentsDir,
9
- mirrorUnifiedAgentsToNative,
10
- ADAPTER_IDS,
11
- type AdapterId,
12
- } from "../adapters/index.js";
3
+ import { resolveAdapter, runAdapterPostInit, scaffoldAgents, resolveAgentsDir, mirrorUnifiedAgentsToNative, ADAPTER_IDS, } from "../adapters/index.js";
13
4
  import { ensureDir } from "../utils/fs.js";
14
5
  import { initializeMemory, getConfiguredPaths } from "../utils/memory.js";
15
- import { getPackageVersion } from "../utils/pkg.js";
6
+ import { getPackageVersion, getPackageRoot, mergePackageJson } from "../utils/pkg.js";
16
7
  import { UI } from "../utils/ui.js";
17
-
18
8
  import { ALL_AGENTS } from "../../modules/agents/definitions.js";
19
- import {
20
- scaffoldConstitution,
21
- scaffoldFrameworkConfigs,
22
- scaffoldShims
23
- } from "./init/scaffold-core.js";
24
- import {
25
- scaffoldSkills,
26
- scaffoldStandards
27
- } from "./init/scaffold-standards.js";
9
+ import { scaffoldConstitution, scaffoldFrameworkConfigs, scaffoldShims } from "./init/scaffold-core.js";
10
+ import { scaffoldSkills, scaffoldStandards } from "./init/scaffold-standards.js";
28
11
  import { scaffoldOps } from "./init/scaffold-ops.js";
29
12
  import { scaffoldProjectDocs } from "./init/scaffold-docs.js";
30
-
31
- import { TRANSLATIONS, type SupportedLanguage } from "../utils/i18n.js";
32
-
13
+ import { TRANSLATIONS } from "../utils/i18n.js";
33
14
  const FRAMEWORK_NAME = "Agent Atabey";
34
-
35
15
  const FRAMEWORK_SUBDIRS = [
36
16
  "agents",
37
17
  "skills",
@@ -43,151 +23,145 @@ const FRAMEWORK_SUBDIRS = [
43
23
  "observability",
44
24
  "rules",
45
25
  ];
46
-
47
- async function runInteractiveInit(): Promise<{ selectedDirs: string[], selectedAgents: string[], selectedPalette: string, backendLanguage: string, language: SupportedLanguage }> {
26
+ async function runInteractiveInit() {
48
27
  const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
49
- const question = (query: string): Promise<string> => new Promise((resolve) => rl.question(query, resolve));
50
-
28
+ const question = (query) => new Promise((resolve) => rl.question(query, resolve));
51
29
  try {
52
30
  console.warn("\n🌐 Select Framework Language / Dil Seçimi:");
53
31
  console.warn("1. Türkçe");
54
32
  console.warn("2. English");
55
33
  const langInput = await question("\nSelect (1-2) or Enter for 'tr': ");
56
- const language: SupportedLanguage = langInput.trim() === "2" ? "en" : "tr";
34
+ const language = langInput.trim() === "2" ? "en" : "tr";
57
35
  const t = TRANSLATIONS[language];
58
-
59
- console.warn(`\n🚀 ${t.welcome}`);
60
-
36
+ console.warn(`\n[START] ${t.welcome}`);
61
37
  console.warn(`\n${t.select_backend}:`);
62
38
  const languages = ["Node.js (TypeScript)", "Go", "Java (Spring Boot)", "Python (FastAPI)", ".NET"];
63
39
  languages.forEach((l, i) => console.warn(`${i + 1}. ${l}`));
64
40
  const bLangInput = await question("\nSelect (1-5) or Enter for \"Node.js\": ");
65
41
  const backendLanguage = languages[parseInt(bLangInput.trim()) - 1] || "Node.js (TypeScript)";
66
-
42
+ console.warn(`\n${t.select_frontend}:`);
43
+ const frontendFrameworks = ["Vite (React)", "Next.js (App Router)", "Vanilla HTML/JS"];
44
+ frontendFrameworks.forEach((f, i) => console.warn(`${i + 1}. ${f}`));
45
+ const fFrameInput = await question("\nSelect (1-3) or Enter for \"Vite (React)\": ");
46
+ const frontendFramework = frontendFrameworks[parseInt(fFrameInput.trim()) - 1] || "Vite (React)";
67
47
  console.warn("\nAvailable Framework Directories:");
68
48
  FRAMEWORK_SUBDIRS.forEach((d, i) => console.warn(`${i + 1}. ${d}`));
69
49
  const dirInput = await question(`\n${t.select_dirs} `);
70
50
  const selectedDirs = dirInput ? dirInput.split(",").map(n => FRAMEWORK_SUBDIRS[parseInt(n.trim()) - 1]).filter(Boolean) : [...FRAMEWORK_SUBDIRS];
71
-
72
51
  console.warn("\nAvailable Core Agents:");
73
52
  ALL_AGENTS.forEach((a, i) => console.warn(`${i + 1}. ${a.name}`));
74
53
  const agentInput = await question(`\n${t.select_agents} `);
75
54
  const selectedAgents = agentInput ? agentInput.split(",").map(n => ALL_AGENTS[parseInt(n.trim()) - 1].name).filter(Boolean) : ALL_AGENTS.map(a => a.name);
76
-
77
55
  console.warn("\nAvailable Color Palettes:");
78
56
  const palettes = ["Modern Blue", "Enterprise Slate", "Deep Purple"];
79
57
  palettes.forEach((p, i) => console.warn(`${i + 1}. ${p}`));
80
58
  const palInput = await question(`\n${t.select_palette} `);
81
59
  const selectedPalette = palettes[parseInt(palInput.trim()) - 1] || "Modern Blue";
82
-
83
- return { selectedDirs, selectedAgents, selectedPalette, backendLanguage, language };
84
- } finally { rl.close(); }
60
+ return { selectedDirs, selectedAgents, selectedPalette, backendLanguage, frontendFramework, language };
61
+ }
62
+ finally {
63
+ rl.close();
64
+ }
85
65
  }
86
-
87
- export async function initCommand(adapterName: string, options: { unified?: boolean, dryRun?: boolean, yes?: boolean }) {
88
- const adapterId = (adapterName || "gemini") as AdapterId;
66
+ export async function initCommand(adapterName, options) {
67
+ const adapterId = (adapterName || "gemini");
89
68
  const adapter = resolveAdapter(adapterId);
90
-
91
69
  if (!adapter) {
92
70
  UI.error(`Unknown adapter: ${adapterId}`);
93
71
  process.exit(1);
94
72
  }
95
-
96
73
  const projectRoot = process.cwd();
97
74
  const isUnified = options.unified || false;
98
-
99
75
  // STRICT ISOLATION STRATEGY
100
76
  const coreDir = ".atabey"; // Pure Memory & Knowledge
101
77
  const aiToolDir = isUnified ? ".agents" : adapter.frameworkDir; // Pure Agents & Skills
102
-
103
78
  const dryRun = options.dryRun || false;
104
79
  const forceYes = options.yes || false;
105
-
106
80
  UI.intent("Atabey Initialization", `Bootstrapping ${FRAMEWORK_NAME} (v${getPackageVersion()}) with ${adapterId} adapter...`);
107
-
108
- let selectedDirs: string[];
109
- let selectedAgents: string[];
110
- let selectedPalette: string;
111
- let backendLanguage: string;
112
- let language: SupportedLanguage;
113
-
81
+ let selectedDirs;
82
+ let selectedAgents;
83
+ let selectedPalette;
84
+ let backendLanguage;
85
+ let frontendFramework;
86
+ let language;
114
87
  if (forceYes) {
115
88
  selectedDirs = ["knowledge", "prompts", "memory", "router", "registry", "observability", "rules"];
116
89
  selectedAgents = ALL_AGENTS.map(a => a.name);
117
90
  selectedPalette = "Modern Blue";
118
91
  backendLanguage = "Node.js (TypeScript)";
92
+ frontendFramework = "Vite (React)";
119
93
  language = "tr";
120
- UI.success("Non-interactive mode: Using default configurations (Language: tr, Backend: Node.js).");
121
- } else {
94
+ UI.success("Non-interactive mode: Using default configurations (Language: tr, Backend: Node.js, Frontend: Vite).");
95
+ }
96
+ else {
122
97
  const result = await runInteractiveInit();
123
98
  selectedDirs = result.selectedDirs.filter(d => d !== "agents" && d !== "skills");
124
99
  selectedAgents = result.selectedAgents;
125
100
  selectedPalette = result.selectedPalette;
126
101
  backendLanguage = result.backendLanguage;
102
+ frontendFramework = result.frontendFramework;
127
103
  language = result.language;
128
104
  }
129
-
130
105
  const t = TRANSLATIONS[language];
131
-
132
106
  ensureDir(path.join(projectRoot, coreDir), dryRun);
133
107
  selectedDirs.forEach(dir => {
134
108
  ensureDir(path.join(projectRoot, coreDir, dir), dryRun);
135
109
  });
136
-
137
110
  ensureDir(path.join(projectRoot, aiToolDir), dryRun);
138
111
  if (adapter.nestedDirs) {
139
112
  adapter.nestedDirs.forEach(dir => ensureDir(path.join(projectRoot, aiToolDir, dir), dryRun));
140
113
  }
141
-
142
114
  scaffoldConstitution(projectRoot, coreDir, adapterId, dryRun, language);
143
115
  scaffoldFrameworkConfigs(projectRoot, coreDir, adapter, dryRun, selectedPalette, {
144
116
  unified: isUnified,
145
117
  adapters: isUnified ? [...ADAPTER_IDS] : [adapterId],
146
118
  backendLanguage,
119
+ frontendFramework,
147
120
  language
148
121
  });
149
-
150
122
  scaffoldStandards(path.join(projectRoot, coreDir), dryRun);
151
-
152
123
  const pathsMap = getConfiguredPaths();
153
-
154
124
  if (isUnified) {
155
125
  // Scaffold ALL agents for ALL adapters under unified hub
156
126
  for (const id of ADAPTER_IDS) {
157
- const adapterId = id as AdapterId;
127
+ const adapterId = id;
158
128
  const dest = resolveAgentsDir(adapterId, true, aiToolDir);
159
129
  scaffoldAgents(projectRoot, adapterId, dryRun, selectedAgents, dest.agentsDir, dest.agentsExt, pathsMap, backendLanguage, language);
160
- if (!dryRun) mirrorUnifiedAgentsToNative(projectRoot, adapterId);
130
+ if (!dryRun)
131
+ mirrorUnifiedAgentsToNative(projectRoot, adapterId);
161
132
  }
162
- UI.success(`✅ Scaffolding complete for all adapters under ${aiToolDir}/ with native mirrors.`);
163
- } else {
133
+ UI.success(`[OK] Scaffolding complete for all adapters under ${aiToolDir}/ with native mirrors.`);
134
+ }
135
+ else {
164
136
  // Standard single-adapter scaffold
165
137
  const dest = resolveAgentsDir(adapterId, false);
166
138
  scaffoldAgents(projectRoot, adapterId, dryRun, selectedAgents, dest.agentsDir, dest.agentsExt, pathsMap, backendLanguage, language);
167
- UI.success(`✅ Generated agent definitions under ${dest.agentsDir}/`);
139
+ UI.success(`[OK] Generated agent definitions under ${dest.agentsDir}/`);
168
140
  }
169
-
170
141
  const skillsBaseDir = path.join(projectRoot, aiToolDir, "skills");
171
142
  scaffoldSkills(skillsBaseDir, dryRun);
172
143
  scaffoldOps(path.join(projectRoot, coreDir), dryRun);
173
- scaffoldProjectDocs(projectRoot, { backendLanguage }, dryRun);
144
+ scaffoldProjectDocs(projectRoot, { backendLanguage, frontendFramework }, dryRun);
174
145
  scaffoldShims(projectRoot, coreDir, adapterId, adapter, dryRun, isUnified);
175
-
176
146
  // Initialize runtime directories
177
147
  if (!dryRun) {
178
148
  ensureDir(path.join(projectRoot, coreDir, "messages"));
179
149
  ensureDir(path.join(projectRoot, coreDir, "logs"));
180
150
  ensureDir(path.join(projectRoot, coreDir, "memory-graph"));
181
151
  }
182
-
183
152
  initializeMemory(path.join(projectRoot, coreDir), dryRun);
153
+ // Scaffolding package.json
154
+ if (!dryRun) {
155
+ const pkgJsonPath = path.join(projectRoot, "package.json");
156
+ const sourcePkgPath = path.join(getPackageRoot(), "package.json");
157
+ mergePackageJson(pkgJsonPath, sourcePkgPath);
158
+ }
184
159
  runAdapterPostInit(adapter, projectRoot);
185
-
186
- UI.success(`\n🚀 ${FRAMEWORK_NAME} (v${getPackageVersion()}) ${t.init_success}`);
160
+ UI.success(`\n[START] ${FRAMEWORK_NAME} (v${getPackageVersion()}) ${t.init_success}`);
187
161
  console.warn(`\n- Brain & Memory Hub (Protected): ${coreDir}/`);
188
162
  console.warn(`- AI Agent Commands (Active): ${aiToolDir}/`);
189
163
  console.warn(`\n${t.next_steps}`);
190
- console.warn(" 1. Run 'atabey status' to verify the environment.");
191
- console.warn(` 2. Open ${adapterId === "claude" ? "Claude Desktop" : "your AI Assistant"} and start commanding the Army.`);
164
+ console.warn(" 1. Run 'npm install' (or pnpm/yarn) to install dependencies.");
165
+ console.warn(" 2. Run 'atabey status' to verify the environment.");
166
+ console.warn(` 3. Open ${adapterId === "claude" ? "Claude Desktop" : "your AI Assistant"} and start commanding the Army.`);
192
167
  }
193
-