atabey 0.0.1

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 (558) hide show
  1. package/ATABEY.md +258 -0
  2. package/LICENSE +21 -0
  3. package/README.md +190 -0
  4. package/bin/cli.js +26 -0
  5. package/bin/validate-agent-army.js +145 -0
  6. package/dist/framework-mcp/src/constants.d.ts +47 -0
  7. package/dist/framework-mcp/src/constants.js +65 -0
  8. package/dist/framework-mcp/src/constants.js.map +1 -0
  9. package/dist/framework-mcp/src/index.d.ts +1 -0
  10. package/dist/framework-mcp/src/index.js +120 -0
  11. package/dist/framework-mcp/src/index.js.map +1 -0
  12. package/dist/framework-mcp/src/tools/control_plane/locking.d.ts +9 -0
  13. package/dist/framework-mcp/src/tools/control_plane/locking.js +83 -0
  14. package/dist/framework-mcp/src/tools/control_plane/locking.js.map +1 -0
  15. package/dist/framework-mcp/src/tools/control_plane/registry.d.ts +6 -0
  16. package/dist/framework-mcp/src/tools/control_plane/registry.js +35 -0
  17. package/dist/framework-mcp/src/tools/control_plane/registry.js.map +1 -0
  18. package/dist/framework-mcp/src/tools/definitions.d.ts +2 -0
  19. package/dist/framework-mcp/src/tools/definitions.js +291 -0
  20. package/dist/framework-mcp/src/tools/definitions.js.map +1 -0
  21. package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.d.ts +5 -0
  22. package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js +60 -0
  23. package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js.map +1 -0
  24. package/dist/framework-mcp/src/tools/file_system/patch_file.d.ts +2 -0
  25. package/dist/framework-mcp/src/tools/file_system/patch_file.js +26 -0
  26. package/dist/framework-mcp/src/tools/file_system/patch_file.js.map +1 -0
  27. package/dist/framework-mcp/src/tools/file_system/read_file.d.ts +2 -0
  28. package/dist/framework-mcp/src/tools/file_system/read_file.js +52 -0
  29. package/dist/framework-mcp/src/tools/file_system/read_file.js.map +1 -0
  30. package/dist/framework-mcp/src/tools/file_system/replace_text.d.ts +2 -0
  31. package/dist/framework-mcp/src/tools/file_system/replace_text.js +46 -0
  32. package/dist/framework-mcp/src/tools/file_system/replace_text.js.map +1 -0
  33. package/dist/framework-mcp/src/tools/file_system/write_file.d.ts +2 -0
  34. package/dist/framework-mcp/src/tools/file_system/write_file.js +39 -0
  35. package/dist/framework-mcp/src/tools/file_system/write_file.js.map +1 -0
  36. package/dist/framework-mcp/src/tools/framework/audit_deps.d.ts +6 -0
  37. package/dist/framework-mcp/src/tools/framework/audit_deps.js +42 -0
  38. package/dist/framework-mcp/src/tools/framework/audit_deps.js.map +1 -0
  39. package/dist/framework-mcp/src/tools/framework/get_status.d.ts +2 -0
  40. package/dist/framework-mcp/src/tools/framework/get_status.js +6 -0
  41. package/dist/framework-mcp/src/tools/framework/get_status.js.map +1 -0
  42. package/dist/framework-mcp/src/tools/framework/orchestrate.d.ts +2 -0
  43. package/dist/framework-mcp/src/tools/framework/orchestrate.js +6 -0
  44. package/dist/framework-mcp/src/tools/framework/orchestrate.js.map +1 -0
  45. package/dist/framework-mcp/src/tools/framework/run_tests.d.ts +5 -0
  46. package/dist/framework-mcp/src/tools/framework/run_tests.js +26 -0
  47. package/dist/framework-mcp/src/tools/framework/run_tests.js.map +1 -0
  48. package/dist/framework-mcp/src/tools/framework/update_contract_hash.d.ts +2 -0
  49. package/dist/framework-mcp/src/tools/framework/update_contract_hash.js +6 -0
  50. package/dist/framework-mcp/src/tools/framework/update_contract_hash.js.map +1 -0
  51. package/dist/framework-mcp/src/tools/framework/update_memory.d.ts +2 -0
  52. package/dist/framework-mcp/src/tools/framework/update_memory.js +9 -0
  53. package/dist/framework-mcp/src/tools/framework/update_memory.js.map +1 -0
  54. package/dist/framework-mcp/src/tools/index.d.ts +4 -0
  55. package/dist/framework-mcp/src/tools/index.js +61 -0
  56. package/dist/framework-mcp/src/tools/index.js.map +1 -0
  57. package/dist/framework-mcp/src/tools/memory/get_insights.d.ts +6 -0
  58. package/dist/framework-mcp/src/tools/memory/get_insights.js +35 -0
  59. package/dist/framework-mcp/src/tools/memory/get_insights.js.map +1 -0
  60. package/dist/framework-mcp/src/tools/memory/read_memory.d.ts +6 -0
  61. package/dist/framework-mcp/src/tools/memory/read_memory.js +29 -0
  62. package/dist/framework-mcp/src/tools/memory/read_memory.js.map +1 -0
  63. package/dist/framework-mcp/src/tools/messaging/log_action.d.ts +2 -0
  64. package/dist/framework-mcp/src/tools/messaging/log_action.js +23 -0
  65. package/dist/framework-mcp/src/tools/messaging/log_action.js.map +1 -0
  66. package/dist/framework-mcp/src/tools/messaging/send_message.d.ts +2 -0
  67. package/dist/framework-mcp/src/tools/messaging/send_message.js +95 -0
  68. package/dist/framework-mcp/src/tools/messaging/send_message.js.map +1 -0
  69. package/dist/framework-mcp/src/tools/observability/check_ports.d.ts +5 -0
  70. package/dist/framework-mcp/src/tools/observability/check_ports.js +27 -0
  71. package/dist/framework-mcp/src/tools/observability/check_ports.js.map +1 -0
  72. package/dist/framework-mcp/src/tools/observability/get_health.d.ts +5 -0
  73. package/dist/framework-mcp/src/tools/observability/get_health.js +20 -0
  74. package/dist/framework-mcp/src/tools/observability/get_health.js.map +1 -0
  75. package/dist/framework-mcp/src/tools/quality/check_lint.d.ts +5 -0
  76. package/dist/framework-mcp/src/tools/quality/check_lint.js +29 -0
  77. package/dist/framework-mcp/src/tools/quality/check_lint.js.map +1 -0
  78. package/dist/framework-mcp/src/tools/search/get_gaps.d.ts +6 -0
  79. package/dist/framework-mcp/src/tools/search/get_gaps.js +49 -0
  80. package/dist/framework-mcp/src/tools/search/get_gaps.js.map +1 -0
  81. package/dist/framework-mcp/src/tools/search/get_map.d.ts +6 -0
  82. package/dist/framework-mcp/src/tools/search/get_map.js +44 -0
  83. package/dist/framework-mcp/src/tools/search/get_map.js.map +1 -0
  84. package/dist/framework-mcp/src/tools/search/grep_search.d.ts +5 -0
  85. package/dist/framework-mcp/src/tools/search/grep_search.js +76 -0
  86. package/dist/framework-mcp/src/tools/search/grep_search.js.map +1 -0
  87. package/dist/framework-mcp/src/tools/search/list_dir.d.ts +5 -0
  88. package/dist/framework-mcp/src/tools/search/list_dir.js +29 -0
  89. package/dist/framework-mcp/src/tools/search/list_dir.js.map +1 -0
  90. package/dist/framework-mcp/src/tools/shell/run_command.d.ts +2 -0
  91. package/dist/framework-mcp/src/tools/shell/run_command.js +47 -0
  92. package/dist/framework-mcp/src/tools/shell/run_command.js.map +1 -0
  93. package/dist/framework-mcp/src/tools/types.d.ts +120 -0
  94. package/dist/framework-mcp/src/tools/types.js +2 -0
  95. package/dist/framework-mcp/src/tools/types.js.map +1 -0
  96. package/dist/framework-mcp/src/utils/cli.d.ts +5 -0
  97. package/dist/framework-mcp/src/utils/cli.js +21 -0
  98. package/dist/framework-mcp/src/utils/cli.js.map +1 -0
  99. package/dist/framework-mcp/src/utils/compliance.d.ts +5 -0
  100. package/dist/framework-mcp/src/utils/compliance.js +79 -0
  101. package/dist/framework-mcp/src/utils/compliance.js.map +1 -0
  102. package/dist/framework-mcp/src/utils/fs.d.ts +16 -0
  103. package/dist/framework-mcp/src/utils/fs.js +45 -0
  104. package/dist/framework-mcp/src/utils/fs.js.map +1 -0
  105. package/dist/framework-mcp/src/utils/metrics.d.ts +30 -0
  106. package/dist/framework-mcp/src/utils/metrics.js +57 -0
  107. package/dist/framework-mcp/src/utils/metrics.js.map +1 -0
  108. package/dist/framework-mcp/src/utils/security.d.ts +10 -0
  109. package/dist/framework-mcp/src/utils/security.js +61 -0
  110. package/dist/framework-mcp/src/utils/security.js.map +1 -0
  111. package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.d.ts +1 -0
  112. package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js +192 -0
  113. package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js.map +1 -0
  114. package/dist/framework-mcp/tests/tools/messaging/send_message.test.d.ts +1 -0
  115. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js +115 -0
  116. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js.map +1 -0
  117. package/dist/framework-mcp/tests/tools/quality/check_lint.test.d.ts +1 -0
  118. package/dist/framework-mcp/tests/tools/quality/check_lint.test.js +36 -0
  119. package/dist/framework-mcp/tests/tools/quality/check_lint.test.js.map +1 -0
  120. package/dist/framework-mcp/tests/tools/shell/run_command.test.d.ts +1 -0
  121. package/dist/framework-mcp/tests/tools/shell/run_command.test.js +43 -0
  122. package/dist/framework-mcp/tests/tools/shell/run_command.test.js.map +1 -0
  123. package/dist/src/cli/adapters/core.d.ts +12 -0
  124. package/dist/src/cli/adapters/core.js +55 -0
  125. package/dist/src/cli/adapters/core.js.map +1 -0
  126. package/dist/src/cli/adapters/index.d.ts +5 -0
  127. package/dist/src/cli/adapters/index.js +6 -0
  128. package/dist/src/cli/adapters/index.js.map +1 -0
  129. package/dist/src/cli/adapters/paths.d.ts +15 -0
  130. package/dist/src/cli/adapters/paths.js +102 -0
  131. package/dist/src/cli/adapters/paths.js.map +1 -0
  132. package/dist/src/cli/adapters/scaffold.d.ts +2 -0
  133. package/dist/src/cli/adapters/scaffold.js +72 -0
  134. package/dist/src/cli/adapters/scaffold.js.map +1 -0
  135. package/dist/src/cli/adapters/utils.d.ts +4 -0
  136. package/dist/src/cli/adapters/utils.js +76 -0
  137. package/dist/src/cli/adapters/utils.js.map +1 -0
  138. package/dist/src/cli/commands/approve.d.ts +1 -0
  139. package/dist/src/cli/commands/approve.js +64 -0
  140. package/dist/src/cli/commands/approve.js.map +1 -0
  141. package/dist/src/cli/commands/check.d.ts +1 -0
  142. package/dist/src/cli/commands/check.js +180 -0
  143. package/dist/src/cli/commands/check.js.map +1 -0
  144. package/dist/src/cli/commands/compliance.d.ts +1 -0
  145. package/dist/src/cli/commands/compliance.js +51 -0
  146. package/dist/src/cli/commands/compliance.js.map +1 -0
  147. package/dist/src/cli/commands/contract.d.ts +10 -0
  148. package/dist/src/cli/commands/contract.js +51 -0
  149. package/dist/src/cli/commands/contract.js.map +1 -0
  150. package/dist/src/cli/commands/explorer.d.ts +2 -0
  151. package/dist/src/cli/commands/explorer.js +43 -0
  152. package/dist/src/cli/commands/explorer.js.map +1 -0
  153. package/dist/src/cli/commands/git.d.ts +2 -0
  154. package/dist/src/cli/commands/git.js +41 -0
  155. package/dist/src/cli/commands/git.js.map +1 -0
  156. package/dist/src/cli/commands/init/scaffold-core.d.ts +7 -0
  157. package/dist/src/cli/commands/init/scaffold-core.js +102 -0
  158. package/dist/src/cli/commands/init/scaffold-core.js.map +1 -0
  159. package/dist/src/cli/commands/init/scaffold-ops.d.ts +1 -0
  160. package/dist/src/cli/commands/init/scaffold-ops.js +81 -0
  161. package/dist/src/cli/commands/init/scaffold-ops.js.map +1 -0
  162. package/dist/src/cli/commands/init/scaffold-standards.d.ts +2 -0
  163. package/dist/src/cli/commands/init/scaffold-standards.js +66 -0
  164. package/dist/src/cli/commands/init/scaffold-standards.js.map +1 -0
  165. package/dist/src/cli/commands/init.d.ts +5 -0
  166. package/dist/src/cli/commands/init.js +128 -0
  167. package/dist/src/cli/commands/init.js.map +1 -0
  168. package/dist/src/cli/commands/knowledge.d.ts +2 -0
  169. package/dist/src/cli/commands/knowledge.js +43 -0
  170. package/dist/src/cli/commands/knowledge.js.map +1 -0
  171. package/dist/src/cli/commands/lint.d.ts +4 -0
  172. package/dist/src/cli/commands/lint.js +23 -0
  173. package/dist/src/cli/commands/lint.js.map +1 -0
  174. package/dist/src/cli/commands/log.d.ts +10 -0
  175. package/dist/src/cli/commands/log.js +33 -0
  176. package/dist/src/cli/commands/log.js.map +1 -0
  177. package/dist/src/cli/commands/memory.d.ts +1 -0
  178. package/dist/src/cli/commands/memory.js +5 -0
  179. package/dist/src/cli/commands/memory.js.map +1 -0
  180. package/dist/src/cli/commands/orchestrate.d.ts +67 -0
  181. package/dist/src/cli/commands/orchestrate.js +414 -0
  182. package/dist/src/cli/commands/orchestrate.js.map +1 -0
  183. package/dist/src/cli/commands/plan.d.ts +6 -0
  184. package/dist/src/cli/commands/plan.js +97 -0
  185. package/dist/src/cli/commands/plan.js.map +1 -0
  186. package/dist/src/cli/commands/script.d.ts +1 -0
  187. package/dist/src/cli/commands/script.js +20 -0
  188. package/dist/src/cli/commands/script.js.map +1 -0
  189. package/dist/src/cli/commands/security.d.ts +1 -0
  190. package/dist/src/cli/commands/security.js +37 -0
  191. package/dist/src/cli/commands/security.js.map +1 -0
  192. package/dist/src/cli/commands/status.d.ts +4 -0
  193. package/dist/src/cli/commands/status.js +41 -0
  194. package/dist/src/cli/commands/status.js.map +1 -0
  195. package/dist/src/cli/commands/trace.d.ts +4 -0
  196. package/dist/src/cli/commands/trace.js +29 -0
  197. package/dist/src/cli/commands/trace.js.map +1 -0
  198. package/dist/src/cli/index.d.ts +2 -0
  199. package/dist/src/cli/index.js +289 -0
  200. package/dist/src/cli/index.js.map +1 -0
  201. package/dist/src/cli/shims.d.ts +1 -0
  202. package/dist/src/cli/shims.js +67 -0
  203. package/dist/src/cli/shims.js.map +1 -0
  204. package/dist/src/cli/utils/claude.d.ts +8 -0
  205. package/dist/src/cli/utils/claude.js +57 -0
  206. package/dist/src/cli/utils/claude.js.map +1 -0
  207. package/dist/src/cli/utils/compliance.d.ts +11 -0
  208. package/dist/src/cli/utils/compliance.js +168 -0
  209. package/dist/src/cli/utils/compliance.js.map +1 -0
  210. package/dist/src/cli/utils/config-schema.d.ts +139 -0
  211. package/dist/src/cli/utils/config-schema.js +43 -0
  212. package/dist/src/cli/utils/config-schema.js.map +1 -0
  213. package/dist/src/cli/utils/fs.d.ts +10 -0
  214. package/dist/src/cli/utils/fs.js +138 -0
  215. package/dist/src/cli/utils/fs.js.map +1 -0
  216. package/dist/src/cli/utils/memory.d.ts +30 -0
  217. package/dist/src/cli/utils/memory.js +269 -0
  218. package/dist/src/cli/utils/memory.js.map +1 -0
  219. package/dist/src/cli/utils/pkg.d.ts +43 -0
  220. package/dist/src/cli/utils/pkg.js +283 -0
  221. package/dist/src/cli/utils/pkg.js.map +1 -0
  222. package/dist/src/cli/utils/schemas.d.ts +49 -0
  223. package/dist/src/cli/utils/schemas.js +20 -0
  224. package/dist/src/cli/utils/schemas.js.map +1 -0
  225. package/dist/src/cli/utils/string.d.ts +7 -0
  226. package/dist/src/cli/utils/string.js +50 -0
  227. package/dist/src/cli/utils/string.js.map +1 -0
  228. package/dist/src/cli/utils/time.d.ts +2 -0
  229. package/dist/src/cli/utils/time.js +28 -0
  230. package/dist/src/cli/utils/time.js.map +1 -0
  231. package/dist/src/cli/utils/ui.d.ts +30 -0
  232. package/dist/src/cli/utils/ui.js +59 -0
  233. package/dist/src/cli/utils/ui.js.map +1 -0
  234. package/dist/src/contracts/index.d.ts +1 -0
  235. package/dist/src/contracts/index.js +2 -0
  236. package/dist/src/contracts/index.js.map +1 -0
  237. package/dist/src/contracts/tasks.d.ts +44 -0
  238. package/dist/src/contracts/tasks.js +21 -0
  239. package/dist/src/contracts/tasks.js.map +1 -0
  240. package/dist/src/modules/adapters/definitions.d.ts +9 -0
  241. package/dist/src/modules/adapters/definitions.js +141 -0
  242. package/dist/src/modules/adapters/definitions.js.map +1 -0
  243. package/dist/src/modules/adapters/registry.d.ts +12 -0
  244. package/dist/src/modules/adapters/registry.js +19 -0
  245. package/dist/src/modules/adapters/registry.js.map +1 -0
  246. package/dist/src/modules/adapters/shared.d.ts +1 -0
  247. package/dist/src/modules/adapters/shared.js +105 -0
  248. package/dist/src/modules/adapters/shared.js.map +1 -0
  249. package/dist/src/modules/adapters/types.d.ts +14 -0
  250. package/dist/src/modules/adapters/types.js +2 -0
  251. package/dist/src/modules/adapters/types.js.map +1 -0
  252. package/dist/src/modules/agents/definitions.d.ts +15 -0
  253. package/dist/src/modules/agents/definitions.js +401 -0
  254. package/dist/src/modules/agents/definitions.js.map +1 -0
  255. package/dist/src/modules/agents/registry/analyst.d.ts +2 -0
  256. package/dist/src/modules/agents/registry/analyst.js +40 -0
  257. package/dist/src/modules/agents/registry/analyst.js.map +1 -0
  258. package/dist/src/modules/agents/registry/architect.d.ts +2 -0
  259. package/dist/src/modules/agents/registry/architect.js +43 -0
  260. package/dist/src/modules/agents/registry/architect.js.map +1 -0
  261. package/dist/src/modules/agents/registry/backend.d.ts +2 -0
  262. package/dist/src/modules/agents/registry/backend.js +43 -0
  263. package/dist/src/modules/agents/registry/backend.js.map +1 -0
  264. package/dist/src/modules/agents/registry/database.d.ts +2 -0
  265. package/dist/src/modules/agents/registry/database.js +39 -0
  266. package/dist/src/modules/agents/registry/database.js.map +1 -0
  267. package/dist/src/modules/agents/registry/devops.d.ts +2 -0
  268. package/dist/src/modules/agents/registry/devops.js +40 -0
  269. package/dist/src/modules/agents/registry/devops.js.map +1 -0
  270. package/dist/src/modules/agents/registry/explorer.d.ts +2 -0
  271. package/dist/src/modules/agents/registry/explorer.js +37 -0
  272. package/dist/src/modules/agents/registry/explorer.js.map +1 -0
  273. package/dist/src/modules/agents/registry/frontend.d.ts +2 -0
  274. package/dist/src/modules/agents/registry/frontend.js +44 -0
  275. package/dist/src/modules/agents/registry/frontend.js.map +1 -0
  276. package/dist/src/modules/agents/registry/git.d.ts +2 -0
  277. package/dist/src/modules/agents/registry/git.js +37 -0
  278. package/dist/src/modules/agents/registry/git.js.map +1 -0
  279. package/dist/src/modules/agents/registry/manager.d.ts +2 -0
  280. package/dist/src/modules/agents/registry/manager.js +54 -0
  281. package/dist/src/modules/agents/registry/manager.js.map +1 -0
  282. package/dist/src/modules/agents/registry/mobile.d.ts +2 -0
  283. package/dist/src/modules/agents/registry/mobile.js +40 -0
  284. package/dist/src/modules/agents/registry/mobile.js.map +1 -0
  285. package/dist/src/modules/agents/registry/native.d.ts +2 -0
  286. package/dist/src/modules/agents/registry/native.js +40 -0
  287. package/dist/src/modules/agents/registry/native.js.map +1 -0
  288. package/dist/src/modules/agents/registry/quality.d.ts +2 -0
  289. package/dist/src/modules/agents/registry/quality.js +42 -0
  290. package/dist/src/modules/agents/registry/quality.js.map +1 -0
  291. package/dist/src/modules/agents/registry/security.d.ts +2 -0
  292. package/dist/src/modules/agents/registry/security.js +38 -0
  293. package/dist/src/modules/agents/registry/security.js.map +1 -0
  294. package/dist/src/modules/agents/types.d.ts +31 -0
  295. package/dist/src/modules/agents/types.js +2 -0
  296. package/dist/src/modules/agents/types.js.map +1 -0
  297. package/dist/src/modules/skills/definitions.d.ts +48 -0
  298. package/dist/src/modules/skills/definitions.js +71 -0
  299. package/dist/src/modules/skills/definitions.js.map +1 -0
  300. package/dist/src/shared/constants.d.ts +116 -0
  301. package/dist/src/shared/constants.js +184 -0
  302. package/dist/src/shared/constants.js.map +1 -0
  303. package/dist/src/shared/errors.d.ts +46 -0
  304. package/dist/src/shared/errors.js +69 -0
  305. package/dist/src/shared/errors.js.map +1 -0
  306. package/dist/src/shared/fs.d.ts +8 -0
  307. package/dist/src/shared/fs.js +48 -0
  308. package/dist/src/shared/fs.js.map +1 -0
  309. package/dist/src/shared/logger.d.ts +28 -0
  310. package/dist/src/shared/logger.js +117 -0
  311. package/dist/src/shared/logger.js.map +1 -0
  312. package/dist/src/shared/types.d.ts +19 -0
  313. package/dist/src/shared/types.js +13 -0
  314. package/dist/src/shared/types.js.map +1 -0
  315. package/dist/tests/adapter.test.d.ts +1 -0
  316. package/dist/tests/adapter.test.js +128 -0
  317. package/dist/tests/adapter.test.js.map +1 -0
  318. package/dist/tests/adapters/paths.test.d.ts +1 -0
  319. package/dist/tests/adapters/paths.test.js +63 -0
  320. package/dist/tests/adapters/paths.test.js.map +1 -0
  321. package/dist/tests/agents-definitions.test.d.ts +1 -0
  322. package/dist/tests/agents-definitions.test.js +61 -0
  323. package/dist/tests/agents-definitions.test.js.map +1 -0
  324. package/dist/tests/approve.test.d.ts +1 -0
  325. package/dist/tests/approve.test.js +52 -0
  326. package/dist/tests/approve.test.js.map +1 -0
  327. package/dist/tests/cli/init/adapter_init.test.d.ts +1 -0
  328. package/dist/tests/cli/init/adapter_init.test.js +50 -0
  329. package/dist/tests/cli/init/adapter_init.test.js.map +1 -0
  330. package/dist/tests/cli/init/unified_init.test.d.ts +1 -0
  331. package/dist/tests/cli/init/unified_init.test.js +58 -0
  332. package/dist/tests/cli/init/unified_init.test.js.map +1 -0
  333. package/dist/tests/errors.test.d.ts +1 -0
  334. package/dist/tests/errors.test.js +64 -0
  335. package/dist/tests/errors.test.js.map +1 -0
  336. package/dist/tests/fs-utils.test.d.ts +1 -0
  337. package/dist/tests/fs-utils.test.js +101 -0
  338. package/dist/tests/fs-utils.test.js.map +1 -0
  339. package/dist/tests/integration/agent_flow.test.d.ts +1 -0
  340. package/dist/tests/integration/agent_flow.test.js +55 -0
  341. package/dist/tests/integration/agent_flow.test.js.map +1 -0
  342. package/dist/tests/integration/hermes_locking.test.d.ts +1 -0
  343. package/dist/tests/integration/hermes_locking.test.js +64 -0
  344. package/dist/tests/integration/hermes_locking.test.js.map +1 -0
  345. package/dist/tests/logger.test.d.ts +1 -0
  346. package/dist/tests/logger.test.js +81 -0
  347. package/dist/tests/logger.test.js.map +1 -0
  348. package/dist/tests/memory-utils.test.d.ts +1 -0
  349. package/dist/tests/memory-utils.test.js +59 -0
  350. package/dist/tests/memory-utils.test.js.map +1 -0
  351. package/dist/tests/modules/adapters/adapters.test.d.ts +1 -0
  352. package/dist/tests/modules/adapters/adapters.test.js +30 -0
  353. package/dist/tests/modules/adapters/adapters.test.js.map +1 -0
  354. package/dist/tests/orchestrate.test.d.ts +1 -0
  355. package/dist/tests/orchestrate.test.js +67 -0
  356. package/dist/tests/orchestrate.test.js.map +1 -0
  357. package/dist/tests/shared/constants.test.d.ts +1 -0
  358. package/dist/tests/shared/constants.test.js +17 -0
  359. package/dist/tests/shared/constants.test.js.map +1 -0
  360. package/dist/tests/skills-definitions.test.d.ts +1 -0
  361. package/dist/tests/skills-definitions.test.js +34 -0
  362. package/dist/tests/skills-definitions.test.js.map +1 -0
  363. package/dist/tests/status.test.d.ts +1 -0
  364. package/dist/tests/status.test.js +49 -0
  365. package/dist/tests/status.test.js.map +1 -0
  366. package/dist/tests/string.test.d.ts +1 -0
  367. package/dist/tests/string.test.js +89 -0
  368. package/dist/tests/string.test.js.map +1 -0
  369. package/dist/tests/time.test.d.ts +1 -0
  370. package/dist/tests/time.test.js +48 -0
  371. package/dist/tests/time.test.js.map +1 -0
  372. package/dist/tests/trace.test.d.ts +1 -0
  373. package/dist/tests/trace.test.js +28 -0
  374. package/dist/tests/trace.test.js.map +1 -0
  375. package/dist/vitest.config.d.ts +2 -0
  376. package/dist/vitest.config.js +20 -0
  377. package/dist/vitest.config.js.map +1 -0
  378. package/framework-mcp/dist/constants.js +64 -0
  379. package/framework-mcp/dist/index.js +119 -0
  380. package/framework-mcp/dist/tools/control_plane/locking.js +82 -0
  381. package/framework-mcp/dist/tools/control_plane/registry.js +34 -0
  382. package/framework-mcp/dist/tools/definitions.js +290 -0
  383. package/framework-mcp/dist/tools/file_system/batch_surgical_edit.js +59 -0
  384. package/framework-mcp/dist/tools/file_system/patch_file.js +25 -0
  385. package/framework-mcp/dist/tools/file_system/read_file.js +51 -0
  386. package/framework-mcp/dist/tools/file_system/replace_text.js +45 -0
  387. package/framework-mcp/dist/tools/file_system/write_file.js +38 -0
  388. package/framework-mcp/dist/tools/framework/audit_deps.js +41 -0
  389. package/framework-mcp/dist/tools/framework/get_status.js +5 -0
  390. package/framework-mcp/dist/tools/framework/orchestrate.js +5 -0
  391. package/framework-mcp/dist/tools/framework/run_tests.js +25 -0
  392. package/framework-mcp/dist/tools/framework/update_contract_hash.js +5 -0
  393. package/framework-mcp/dist/tools/framework/update_memory.js +8 -0
  394. package/framework-mcp/dist/tools/index.js +60 -0
  395. package/framework-mcp/dist/tools/memory/get_insights.js +34 -0
  396. package/framework-mcp/dist/tools/memory/read_memory.js +28 -0
  397. package/framework-mcp/dist/tools/messaging/log_action.js +22 -0
  398. package/framework-mcp/dist/tools/messaging/send_message.js +94 -0
  399. package/framework-mcp/dist/tools/observability/check_ports.js +26 -0
  400. package/framework-mcp/dist/tools/observability/get_health.js +19 -0
  401. package/framework-mcp/dist/tools/quality/check_lint.js +28 -0
  402. package/framework-mcp/dist/tools/search/get_gaps.js +48 -0
  403. package/framework-mcp/dist/tools/search/get_map.js +43 -0
  404. package/framework-mcp/dist/tools/search/grep_search.js +75 -0
  405. package/framework-mcp/dist/tools/search/list_dir.js +28 -0
  406. package/framework-mcp/dist/tools/shell/run_command.js +46 -0
  407. package/framework-mcp/dist/tools/types.js +1 -0
  408. package/framework-mcp/dist/utils/cli.js +20 -0
  409. package/framework-mcp/dist/utils/compliance.js +78 -0
  410. package/framework-mcp/dist/utils/fs.js +44 -0
  411. package/framework-mcp/dist/utils/metrics.js +56 -0
  412. package/framework-mcp/dist/utils/security.js +60 -0
  413. package/framework-mcp/package-lock.json +1191 -0
  414. package/framework-mcp/package.json +26 -0
  415. package/framework-mcp/src/constants.ts +78 -0
  416. package/framework-mcp/src/declarations.d.ts +17 -0
  417. package/framework-mcp/src/index.ts +144 -0
  418. package/framework-mcp/src/tools/control_plane/locking.ts +89 -0
  419. package/framework-mcp/src/tools/control_plane/registry.ts +38 -0
  420. package/framework-mcp/src/tools/definitions.ts +292 -0
  421. package/framework-mcp/src/tools/file_system/batch_surgical_edit.ts +79 -0
  422. package/framework-mcp/src/tools/file_system/patch_file.ts +33 -0
  423. package/framework-mcp/src/tools/file_system/read_file.ts +58 -0
  424. package/framework-mcp/src/tools/file_system/replace_text.ts +54 -0
  425. package/framework-mcp/src/tools/file_system/write_file.ts +45 -0
  426. package/framework-mcp/src/tools/framework/audit_deps.ts +49 -0
  427. package/framework-mcp/src/tools/framework/get_status.ts +7 -0
  428. package/framework-mcp/src/tools/framework/orchestrate.ts +7 -0
  429. package/framework-mcp/src/tools/framework/run_tests.ts +28 -0
  430. package/framework-mcp/src/tools/framework/update_contract_hash.ts +7 -0
  431. package/framework-mcp/src/tools/framework/update_memory.ts +10 -0
  432. package/framework-mcp/src/tools/index.ts +64 -0
  433. package/framework-mcp/src/tools/memory/get_insights.ts +41 -0
  434. package/framework-mcp/src/tools/memory/read_memory.ts +31 -0
  435. package/framework-mcp/src/tools/messaging/log_action.ts +28 -0
  436. package/framework-mcp/src/tools/messaging/send_message.ts +97 -0
  437. package/framework-mcp/src/tools/observability/check_ports.ts +30 -0
  438. package/framework-mcp/src/tools/observability/get_health.ts +24 -0
  439. package/framework-mcp/src/tools/quality/check_lint.ts +33 -0
  440. package/framework-mcp/src/tools/search/get_gaps.ts +54 -0
  441. package/framework-mcp/src/tools/search/get_map.ts +48 -0
  442. package/framework-mcp/src/tools/search/grep_search.ts +75 -0
  443. package/framework-mcp/src/tools/search/list_dir.ts +34 -0
  444. package/framework-mcp/src/tools/shell/run_command.ts +56 -0
  445. package/framework-mcp/src/tools/types.ts +89 -0
  446. package/framework-mcp/src/utils/cli.ts +20 -0
  447. package/framework-mcp/src/utils/compliance.ts +95 -0
  448. package/framework-mcp/src/utils/fs.ts +45 -0
  449. package/framework-mcp/src/utils/metrics.ts +73 -0
  450. package/framework-mcp/src/utils/security.ts +66 -0
  451. package/framework-mcp/tests/tools/file_system/file_system_tools.test.ts +212 -0
  452. package/framework-mcp/tests/tools/messaging/send_message.test.ts +136 -0
  453. package/framework-mcp/tests/tools/quality/check_lint.test.ts +46 -0
  454. package/framework-mcp/tests/tools/shell/run_command.test.ts +55 -0
  455. package/framework-mcp/tsconfig.json +14 -0
  456. package/mcp.json +13 -0
  457. package/package.json +89 -0
  458. package/src/cli/adapters/core.ts +67 -0
  459. package/src/cli/adapters/index.ts +5 -0
  460. package/src/cli/adapters/paths.ts +135 -0
  461. package/src/cli/adapters/scaffold.ts +93 -0
  462. package/src/cli/adapters/utils.ts +87 -0
  463. package/src/cli/commands/approve.ts +73 -0
  464. package/src/cli/commands/check.ts +188 -0
  465. package/src/cli/commands/compliance.ts +55 -0
  466. package/src/cli/commands/contract.ts +68 -0
  467. package/src/cli/commands/explorer.ts +45 -0
  468. package/src/cli/commands/git.ts +39 -0
  469. package/src/cli/commands/init/scaffold-core.ts +128 -0
  470. package/src/cli/commands/init/scaffold-ops.ts +83 -0
  471. package/src/cli/commands/init/scaffold-standards.ts +67 -0
  472. package/src/cli/commands/init.ts +163 -0
  473. package/src/cli/commands/knowledge.ts +44 -0
  474. package/src/cli/commands/lint.ts +23 -0
  475. package/src/cli/commands/log.ts +37 -0
  476. package/src/cli/commands/memory.ts +6 -0
  477. package/src/cli/commands/orchestrate.ts +456 -0
  478. package/src/cli/commands/plan.ts +113 -0
  479. package/src/cli/commands/script.ts +20 -0
  480. package/src/cli/commands/security.ts +38 -0
  481. package/src/cli/commands/status.ts +44 -0
  482. package/src/cli/commands/trace.ts +31 -0
  483. package/src/cli/index.ts +322 -0
  484. package/src/cli/shims.ts +66 -0
  485. package/src/cli/utils/claude.ts +63 -0
  486. package/src/cli/utils/compliance.ts +191 -0
  487. package/src/cli/utils/config-schema.ts +48 -0
  488. package/src/cli/utils/fs.ts +170 -0
  489. package/src/cli/utils/memory.ts +303 -0
  490. package/src/cli/utils/pkg.ts +317 -0
  491. package/src/cli/utils/schemas.ts +22 -0
  492. package/src/cli/utils/string.ts +55 -0
  493. package/src/cli/utils/time.ts +27 -0
  494. package/src/cli/utils/ui.ts +66 -0
  495. package/src/contracts/index.ts +1 -0
  496. package/src/contracts/tasks.ts +26 -0
  497. package/src/modules/adapters/definitions.ts +171 -0
  498. package/src/modules/adapters/registry.ts +27 -0
  499. package/src/modules/adapters/shared.ts +120 -0
  500. package/src/modules/adapters/types.ts +16 -0
  501. package/src/modules/agents/definitions.ts +454 -0
  502. package/src/modules/agents/registry/analyst.ts +44 -0
  503. package/src/modules/agents/registry/architect.ts +47 -0
  504. package/src/modules/agents/registry/backend.ts +47 -0
  505. package/src/modules/agents/registry/database.ts +43 -0
  506. package/src/modules/agents/registry/devops.ts +44 -0
  507. package/src/modules/agents/registry/explorer.ts +41 -0
  508. package/src/modules/agents/registry/frontend.ts +48 -0
  509. package/src/modules/agents/registry/git.ts +41 -0
  510. package/src/modules/agents/registry/manager.ts +58 -0
  511. package/src/modules/agents/registry/mobile.ts +44 -0
  512. package/src/modules/agents/registry/native.ts +44 -0
  513. package/src/modules/agents/registry/quality.ts +46 -0
  514. package/src/modules/agents/registry/security.ts +42 -0
  515. package/src/modules/agents/types.ts +37 -0
  516. package/src/modules/skills/definitions.ts +71 -0
  517. package/src/schema/agent-lifecycle-schema.json +59 -0
  518. package/src/shared/constants.ts +218 -0
  519. package/src/shared/errors.ts +75 -0
  520. package/src/shared/fs.ts +50 -0
  521. package/src/shared/logger.ts +139 -0
  522. package/src/shared/types.ts +20 -0
  523. package/templates/prompts/bug-fix-recipe.md +20 -0
  524. package/templates/prompts/contract-design-recipe.md +21 -0
  525. package/templates/prompts/db-management-recipe.md +25 -0
  526. package/templates/prompts/deployment-recipe.md +23 -0
  527. package/templates/prompts/new-feature-recipe.md +19 -0
  528. package/templates/prompts/performance-optimization-recipe.md +23 -0
  529. package/templates/prompts/pull-request-template.md +21 -0
  530. package/templates/prompts/refactoring-recipe.md +21 -0
  531. package/templates/prompts/security-audit-recipe.md +20 -0
  532. package/templates/standards/architecture-standards.md +23 -0
  533. package/templates/standards/auth-standards.md +125 -0
  534. package/templates/standards/crud-governance.md +21 -0
  535. package/templates/standards/deployment-standards.md +21 -0
  536. package/templates/standards/frontend-standards.md +42 -0
  537. package/templates/standards/github-actions-standards.md +43 -0
  538. package/templates/standards/governance-standards.md +147 -0
  539. package/templates/standards/i18n-standards.md +29 -0
  540. package/templates/standards/kysely-standards.md +47 -0
  541. package/templates/standards/llm-governance.md +29 -0
  542. package/templates/standards/logging-and-secrets.md +34 -0
  543. package/templates/standards/mobile-standards.md +23 -0
  544. package/templates/standards/observability-standards.md +29 -0
  545. package/templates/standards/performance-standards.md +29 -0
  546. package/templates/standards/pino-standards.md +46 -0
  547. package/templates/standards/playwright-standards.md +54 -0
  548. package/templates/standards/quality-standards.md +32 -0
  549. package/templates/standards/react-query-standards.md +72 -0
  550. package/templates/standards/react-router-standards.md +62 -0
  551. package/templates/standards/security-audit-standards.md +33 -0
  552. package/templates/standards/security-standards.md +21 -0
  553. package/templates/standards/swagger-standards.md +50 -0
  554. package/templates/standards/tailwind-standards.md +29 -0
  555. package/templates/standards/testing-standards.md +31 -0
  556. package/templates/standards/token-economy.md +27 -0
  557. package/templates/standards/typeorm-standards.md +49 -0
  558. package/templates/standards/vitest-standards.md +110 -0
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Agent Atabey โ€” Single Source of Truth for framework constants.
3
+ * Import from here instead of hardcoding paths, phases, or directory names.
4
+ */
5
+
6
+ // โ”€โ”€โ”€ Framework identity โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
7
+
8
+ export const FRAMEWORK = {
9
+ NAME: "Agent Atabey",
10
+ CORE_DIR: ".atabey",
11
+ UNIFIED_HUB_DIR: ".agents",
12
+ CONSTITUTION_FILE: "ATABEY.md",
13
+ DEFAULT_TRACE_ID: "T-000",
14
+ DEFAULT_PHASE: "PHASE_0",
15
+ DEFAULT_MANAGER_STATE: "ACTIVE",
16
+ } as const;
17
+
18
+ export const PROJECT_PHASES = [
19
+ "PHASE_0",
20
+ "PHASE_1",
21
+ "PHASE_2",
22
+ "PHASE_3",
23
+ "PHASE_4",
24
+ ] as const;
25
+
26
+ // โ”€โ”€โ”€ Adapter platform directories (native / legacy) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
27
+
28
+ export const ADAPTER_DIRS = {
29
+ GEMINI: ".gemini",
30
+ CLAUDE: ".claude",
31
+ GROK: ".grok",
32
+ CURSOR: ".cursor",
33
+ CODEX: ".agents",
34
+ ANTIGRAVITY: ".antigravity",
35
+ LOCAL: ".atabey",
36
+ LEGACY_AGENT: ".agent",
37
+ } as const;
38
+
39
+ /** Priority order for framework directory resolution (CLI + MCP). */
40
+ export const FRAMEWORK_DIR_CANDIDATES = [
41
+ FRAMEWORK.CORE_DIR,
42
+ ADAPTER_DIRS.CODEX,
43
+ ADAPTER_DIRS.CLAUDE,
44
+ ADAPTER_DIRS.GEMINI,
45
+ ADAPTER_DIRS.GROK,
46
+ ADAPTER_DIRS.CURSOR,
47
+ ADAPTER_DIRS.ANTIGRAVITY,
48
+ ADAPTER_DIRS.LOCAL,
49
+ ] as const;
50
+
51
+ /** Slug under `.agents/{slug}/` for each adapter in unified mode. */
52
+ export const UNIFIED_ADAPTER_SLUG = {
53
+ gemini: "gemini",
54
+ claude: "claude",
55
+ grok: "grok",
56
+ cursor: "cursor",
57
+ codex: "codex",
58
+ local: "local",
59
+ "antigravity-cli": "antigravity",
60
+ } as const;
61
+
62
+ export type UnifiedAdapterSlug = keyof typeof UNIFIED_ADAPTER_SLUG;
63
+
64
+ // โ”€โ”€โ”€ Native agent instruction paths (legacy tool compatibility) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
65
+
66
+ export const NATIVE_AGENT_PATHS = {
67
+ gemini: pathJoin(ADAPTER_DIRS.GEMINI, "agents"),
68
+ claude: pathJoin(ADAPTER_DIRS.CLAUDE, "agents"),
69
+ grok: pathJoin(ADAPTER_DIRS.GROK, "agents"),
70
+ cursor: pathJoin(ADAPTER_DIRS.CURSOR, "rules"),
71
+ codex: pathJoin(ADAPTER_DIRS.CODEX, "instructions"),
72
+ local: pathJoin(ADAPTER_DIRS.LOCAL, "agents"),
73
+ "antigravity-cli": pathJoin(ADAPTER_DIRS.ANTIGRAVITY, "agents"),
74
+ } as const;
75
+
76
+ /** Legacy layout bases used by `check` and discovery (non-unified installs). */
77
+ export const LEGACY_AGENT_LAYOUT_BASES = [
78
+ NATIVE_AGENT_PATHS.gemini,
79
+ NATIVE_AGENT_PATHS.claude,
80
+ NATIVE_AGENT_PATHS.cursor,
81
+ NATIVE_AGENT_PATHS.grok,
82
+ NATIVE_AGENT_PATHS.codex,
83
+ NATIVE_AGENT_PATHS.local,
84
+ NATIVE_AGENT_PATHS["antigravity-cli"],
85
+ ] as const;
86
+
87
+ // โ”€โ”€โ”€ Framework internal subdirectories (under `.atabey/`) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
88
+
89
+ export const FRAMEWORK_SUBDIRS = {
90
+ AGENTS: "agents",
91
+ SKILLS: "skills",
92
+ KNOWLEDGE: "knowledge",
93
+ PROMPTS: "prompts",
94
+ MEMORY: "memory",
95
+ ROUTER: "router",
96
+ REGISTRY: "registry",
97
+ OBSERVABILITY: "observability",
98
+ RULES: "rules",
99
+ MESSAGES: "messages",
100
+ LOGS: "logs",
101
+ MEMORY_GRAPH: "memory-graph",
102
+ } as const;
103
+
104
+ export const CORE_SCAFFOLD_SUBDIRS = [
105
+ FRAMEWORK_SUBDIRS.KNOWLEDGE,
106
+ FRAMEWORK_SUBDIRS.PROMPTS,
107
+ FRAMEWORK_SUBDIRS.MEMORY,
108
+ FRAMEWORK_SUBDIRS.ROUTER,
109
+ FRAMEWORK_SUBDIRS.REGISTRY,
110
+ FRAMEWORK_SUBDIRS.OBSERVABILITY,
111
+ FRAMEWORK_SUBDIRS.RULES,
112
+ ] as const;
113
+
114
+ export const RUNTIME_SUBDIRS = [
115
+ FRAMEWORK_SUBDIRS.MESSAGES,
116
+ FRAMEWORK_SUBDIRS.LOGS,
117
+ FRAMEWORK_SUBDIRS.MEMORY_GRAPH,
118
+ ] as const;
119
+
120
+ export const MEMORY_SUBDIRS = {
121
+ TASKS: "tasks",
122
+ HISTORY: "history",
123
+ } as const;
124
+
125
+ export const MEMORY_FILES = {
126
+ STATE: "state.json",
127
+ STATUS: "status.json",
128
+ PROJECT_MEMORY: "PROJECT_MEMORY.md",
129
+ SHARED_FACTS: "shared-facts.json",
130
+ } as const;
131
+
132
+ // โ”€โ”€โ”€ Monorepo default paths โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
133
+
134
+ export const DEFAULT_MONOREPO_PATHS = {
135
+ backend: "apps/backend",
136
+ frontend: "apps/web",
137
+ mobile: "apps/mobile",
138
+ docs: "docs",
139
+ tests: "tests",
140
+ } as const;
141
+
142
+ /** Cursor rule globs per agent role (enterprise monorepo layout). */
143
+ export const CURSOR_AGENT_GLOBS: Record<string, string> = {
144
+ manager: "**/*",
145
+ security: "**/*",
146
+ architect: "**/*",
147
+ backend: `${DEFAULT_MONOREPO_PATHS.backend}/**/*`,
148
+ frontend: `${DEFAULT_MONOREPO_PATHS.frontend}/**/*`,
149
+ mobile: `${DEFAULT_MONOREPO_PATHS.mobile}/**/*`,
150
+ native: "apps/native/**/*",
151
+ database: `${DEFAULT_MONOREPO_PATHS.backend}/src/database/**/*`,
152
+ devops: "{.github,docker,infra,scripts,*.yml,*.yaml,Dockerfile*}",
153
+ quality: "**/*",
154
+ analyst: "{docs,specs,contracts}/**/*",
155
+ explorer: "**/*",
156
+ git: "**/*",
157
+ };
158
+
159
+ // โ”€โ”€โ”€ MCP & environment โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
160
+
161
+ export const MCP = {
162
+ SERVER_NAME: "atabey",
163
+ ROOT_CONFIG_FILE: "mcp.json",
164
+ PROJECT_ROOT_ENV: "ATABEY_PROJECT_ROOT",
165
+ TEST_DIR_ENV: "ATABEY_TEST_DIR",
166
+ } as const;
167
+
168
+ export const ROOT_CONFIG_FILES = {
169
+ MCP: MCP.ROOT_CONFIG_FILE,
170
+ DOT_MCP: ".mcp.json",
171
+ ENV_EXAMPLE: ".env.example",
172
+ VSCODE_MCP: ".vscode/mcp.json",
173
+ } as const;
174
+
175
+ // โ”€โ”€โ”€ Shim template placeholders โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
176
+
177
+ export const TEMPLATE_PLACEHOLDERS = {
178
+ FRAMEWORK_DIR: "{{FRAMEWORK_DIR}}",
179
+ ADAPTER: "{{ADAPTER}}",
180
+ BACKEND_DIR: "{{BACKEND_DIR}}",
181
+ FRONTEND_DIR: "{{FRONTEND_DIR}}",
182
+ DOCS_DIR: "{{DOCS_DIR}}",
183
+ TESTS_DIR: "{{TESTS_DIR}}",
184
+ } as const;
185
+
186
+ // โ”€โ”€โ”€ File extensions โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
187
+
188
+ export const AGENT_FILE_EXT = {
189
+ MARKDOWN: ".md",
190
+ CURSOR_RULE: ".mdc",
191
+ } as const;
192
+
193
+ // โ”€โ”€โ”€ Path helpers โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
194
+
195
+ export function pathJoin(...segments: string[]): string {
196
+ return segments.filter(Boolean).join("/");
197
+ }
198
+
199
+ export function corePath(...segments: string[]): string {
200
+ return pathJoin(FRAMEWORK.CORE_DIR, ...segments);
201
+ }
202
+
203
+ export function unifiedHubPath(...segments: string[]): string {
204
+ return pathJoin(FRAMEWORK.UNIFIED_HUB_DIR, ...segments);
205
+ }
206
+
207
+ export function unifiedAdapterPath(slug: string, ...segments: string[]): string {
208
+ return unifiedHubPath(slug, ...segments);
209
+ }
210
+
211
+ export function knowledgePath(filename: string): string {
212
+ return corePath(FRAMEWORK_SUBDIRS.KNOWLEDGE, filename);
213
+ }
214
+
215
+ /** Backward-compatible aliases */
216
+ export const CORE_FRAMEWORK_DIR = FRAMEWORK.CORE_DIR;
217
+ export const UNIFIED_HUB_DIR = FRAMEWORK.UNIFIED_HUB_DIR;
218
+ export const SKILLS_HUB_PATH = pathJoin(UNIFIED_HUB_DIR, FRAMEWORK_SUBDIRS.SKILLS);
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Enterprise Base Error class for the Agent Atabey Framework.
3
+ */
4
+ export class AtabeyBaseError extends Error {
5
+ public readonly code: string;
6
+ public readonly timestamp: Date;
7
+ public readonly details?: unknown;
8
+ public readonly solution?: string;
9
+
10
+ constructor(message: string, code = "ATABEY_INTERNAL_ERROR", details?: unknown, solution?: string) {
11
+ super(message);
12
+ this.name = this.constructor.name;
13
+ this.code = code;
14
+ this.timestamp = new Date();
15
+ this.details = details;
16
+ this.solution = solution;
17
+
18
+ // Ensure proper prototype chain and capture stack trace
19
+ Object.setPrototypeOf(this, new.target.prototype);
20
+ if (Error.captureStackTrace) {
21
+ Error.captureStackTrace(this, this.constructor);
22
+ }
23
+ }
24
+
25
+ /**
26
+ * Converts the error into a structured JSON log format.
27
+ */
28
+ public toJSON() {
29
+ return {
30
+ name: this.name,
31
+ message: this.message,
32
+ code: this.code,
33
+ timestamp: this.timestamp.toISOString(),
34
+ details: this.details,
35
+ solution: this.solution,
36
+ stack: this.stack,
37
+ };
38
+ }
39
+ }
40
+
41
+ /**
42
+ * Thrown when configuration loading or validation fails.
43
+ */
44
+ export class ConfigurationError extends AtabeyBaseError {
45
+ constructor(message: string, details?: unknown, solution?: string) {
46
+ super(message, "CONFIGURATION_ERROR", details, solution);
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Thrown when data schema or payload validation fails.
52
+ */
53
+ export class ValidationError extends AtabeyBaseError {
54
+ constructor(message: string, details?: unknown, solution?: string) {
55
+ super(message, "VALIDATION_ERROR", details, solution);
56
+ }
57
+ }
58
+
59
+ /**
60
+ * Thrown when adapter initialization or execution fails.
61
+ */
62
+ export class AdapterError extends AtabeyBaseError {
63
+ constructor(message: string, adapterId: string, details?: unknown, solution?: string) {
64
+ super(`Adapter '${adapterId}' failure: ${message}`, "ADAPTER_ERROR", details, solution);
65
+ }
66
+ }
67
+
68
+ /**
69
+ * Thrown when orchestration or agent communication fails.
70
+ */
71
+ export class OrchestrationError extends AtabeyBaseError {
72
+ constructor(message: string, details?: unknown, solution?: string) {
73
+ super(message, "ORCHESTRATION_ERROR", details, solution);
74
+ }
75
+ }
@@ -0,0 +1,50 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import { logger } from "./logger.js";
4
+
5
+ export function ensureDir(dirPath: string, dryRun = false): void {
6
+ if (!fs.existsSync(dirPath)) {
7
+ if (dryRun) {
8
+ logger.info(`[DRY RUN] Would create directory: ${dirPath}`);
9
+ } else {
10
+ fs.mkdirSync(dirPath, { recursive: true });
11
+ }
12
+ }
13
+ }
14
+
15
+ /**
16
+ * Writes content to a file atomically by using a temporary file.
17
+ * This prevents data corruption during unexpected system failures.
18
+ */
19
+ export function writeTextFile(filePath: string, content: string, dryRun = false): void {
20
+ if (dryRun) {
21
+ logger.info(`[DRY RUN] Would write file: ${filePath}`);
22
+ return;
23
+ }
24
+ const dir = path.dirname(filePath);
25
+ ensureDir(dir);
26
+
27
+ const tempPath = `${filePath}.${Math.random().toString(36).slice(2, 9)}.tmp`;
28
+ const finalContent = content.endsWith("\n") ? content : `${content}\n`;
29
+
30
+ try {
31
+ fs.writeFileSync(tempPath, finalContent, "utf8");
32
+ fs.renameSync(tempPath, filePath);
33
+ } catch (err) {
34
+ if (fs.existsSync(tempPath)) fs.unlinkSync(tempPath);
35
+ throw err;
36
+ }
37
+ }
38
+
39
+ export function appendFile(filePath: string, content: string, dryRun = false): void {
40
+ if (dryRun) {
41
+ logger.info(`[DRY RUN] Would append to file: ${filePath}`);
42
+ return;
43
+ }
44
+ ensureDir(path.dirname(filePath));
45
+ fs.appendFileSync(filePath, content, "utf8");
46
+ }
47
+
48
+ export function writeJsonFile(filePath: string, value: unknown, dryRun = false): void {
49
+ writeTextFile(filePath, JSON.stringify(value, null, 2), dryRun);
50
+ }
@@ -0,0 +1,139 @@
1
+ import chalk from "chalk";
2
+ import path from "path";
3
+ import { ensureDir, appendFile } from "./fs.js";
4
+
5
+ export enum LogLevel {
6
+ DEBUG = 0,
7
+ INFO = 1,
8
+ WARN = 2,
9
+ ERROR = 3,
10
+ FATAL = 4,
11
+ }
12
+
13
+ export interface LoggerConfig {
14
+ minLevel: LogLevel;
15
+ enableColors: boolean;
16
+ jsonFormat: boolean;
17
+ logFile?: string;
18
+ }
19
+
20
+ export class EnterpriseLogger {
21
+ private config: LoggerConfig;
22
+ private static instance: EnterpriseLogger;
23
+
24
+ private constructor() {
25
+ const isProd = process.env.NODE_ENV === "production";
26
+ this.config = {
27
+ minLevel: isProd ? LogLevel.INFO : LogLevel.DEBUG,
28
+ enableColors: !isProd,
29
+ jsonFormat: isProd,
30
+ };
31
+ }
32
+
33
+ public static getInstance(): EnterpriseLogger {
34
+ if (!EnterpriseLogger.instance) {
35
+ EnterpriseLogger.instance = new EnterpriseLogger();
36
+ }
37
+ return EnterpriseLogger.instance;
38
+ }
39
+
40
+ public configure(config: Partial<LoggerConfig>): void {
41
+ this.config = { ...this.config, ...config };
42
+
43
+ if (this.config.logFile) {
44
+ try {
45
+ ensureDir(path.dirname(this.config.logFile));
46
+ } catch (err) {
47
+ // Directly write to stderr โ€” using console here would be circular
48
+ process.stderr.write(`[Logger] Failed to create log directory: ${err}\n`);
49
+ }
50
+ }
51
+ }
52
+
53
+ private formatMessage(level: LogLevel, message: string, meta?: unknown): string {
54
+ const timestamp = new Date().toISOString();
55
+ const pid = process.pid;
56
+
57
+ if (this.config.jsonFormat) {
58
+ return JSON.stringify({
59
+ timestamp,
60
+ level: LogLevel[level],
61
+ pid,
62
+ message,
63
+ meta,
64
+ });
65
+ }
66
+
67
+ const levelName = LogLevel[level].padEnd(5);
68
+ let coloredLevel = levelName;
69
+
70
+ if (this.config.enableColors) {
71
+ switch (level) {
72
+ case LogLevel.DEBUG:
73
+ coloredLevel = chalk.blue(levelName);
74
+ break;
75
+ case LogLevel.INFO:
76
+ coloredLevel = chalk.green(levelName);
77
+ break;
78
+ case LogLevel.WARN:
79
+ coloredLevel = chalk.yellow(levelName);
80
+ break;
81
+ case LogLevel.ERROR:
82
+ coloredLevel = chalk.red(levelName);
83
+ break;
84
+ case LogLevel.FATAL:
85
+ coloredLevel = chalk.bgRed.white.bold(levelName);
86
+ break;
87
+ }
88
+ }
89
+
90
+ const metaStr = meta ? ` | Meta: ${JSON.stringify(meta)}` : "";
91
+ return `[${timestamp}] [PID:${pid}] [${coloredLevel}]: ${message}${metaStr}`;
92
+ }
93
+
94
+ private log(level: LogLevel, message: string, meta?: unknown): void {
95
+ if (level < this.config.minLevel) return;
96
+
97
+ const formatted = this.formatMessage(level, message, meta);
98
+
99
+ // Route to stderr for ERROR/FATAL, stdout otherwise.
100
+ // Using process.write directly here is intentional โ€” this IS the logger.
101
+ if (level >= LogLevel.ERROR) {
102
+ process.stderr.write(formatted + "\n");
103
+ } else {
104
+ process.stdout.write(formatted + "\n");
105
+ }
106
+
107
+ // Output to file if configured
108
+ if (this.config.logFile) {
109
+ try {
110
+ appendFile(this.config.logFile, formatted + "\n");
111
+ } catch (err) {
112
+ // Directly write to stderr โ€” using console here would be circular
113
+ process.stderr.write(`[Logger] Failed to write to log file: ${err}\n`);
114
+ }
115
+ }
116
+ }
117
+
118
+ public debug(message: string, meta?: unknown): void {
119
+ this.log(LogLevel.DEBUG, message, meta);
120
+ }
121
+
122
+ public info(message: string, meta?: unknown): void {
123
+ this.log(LogLevel.INFO, message, meta);
124
+ }
125
+
126
+ public warn(message: string, meta?: unknown): void {
127
+ this.log(LogLevel.WARN, message, meta);
128
+ }
129
+
130
+ public error(message: string, meta?: unknown): void {
131
+ this.log(LogLevel.ERROR, message, meta);
132
+ }
133
+
134
+ public fatal(message: string, meta?: unknown): void {
135
+ this.log(LogLevel.FATAL, message, meta);
136
+ }
137
+ }
138
+
139
+ export const logger = EnterpriseLogger.getInstance();
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Agent Atabey Framework โ€” Internal Branded Types
3
+ * Used to enforce absolute type safety within the core orchestration logic.
4
+ */
5
+
6
+ export type Brand<K, T> = K & { __brand: T };
7
+
8
+ export type TraceID = Brand<string, "TraceID">;
9
+ export type AgentID = Brand<string, "AgentID">;
10
+ export type PhaseID = Brand<string, "PhaseID">;
11
+ export type ProjectPath = Brand<string, "ProjectPath">;
12
+
13
+ /**
14
+ * Casts a raw string to a Branded Type.
15
+ * Use this only at the boundaries of the system.
16
+ */
17
+ export function asTraceID(val: string): TraceID { return val as TraceID; }
18
+ export function asAgentID(val: string): AgentID { return val as AgentID; }
19
+ export function asPhaseID(val: string): PhaseID { return val as PhaseID; }
20
+ export function asProjectPath(val: string): ProjectPath { return val as ProjectPath; }
@@ -0,0 +1,20 @@
1
+ # ๐Ÿž Scientific Debugging (Bug-Fix) Recipe
2
+
3
+ This recipe defines how to autonomously detect and permanently resolve a bug.
4
+
5
+ ## 1. Reproduction
6
+ - Analyze the logs (`audit_log.md`) that reported the error.
7
+ - Write the smallest test case (failing test) that triggers the error.
8
+
9
+ ## 2. Root Cause Analysis
10
+ - Check system resources with `get_system_health`.
11
+ - Verify the status of services with `check_active_ports`.
12
+ - Examine relevant code blocks line by line using `read_file`.
13
+
14
+ ## 3. Surgical Fix
15
+ - Perform only the surgical intervention that will fix the error.
16
+ - Check if there is a missing variable in ".env".
17
+
18
+ ## 4. Permanent Solution
19
+ - Verify that the test you wrote passes.
20
+ - If `quality-standards.md` needs to be updated to prevent similar errors, submit a proposal.
@@ -0,0 +1,21 @@
1
+ # ๐Ÿ“œ Engineering Recipe: Contract-First Design
2
+
3
+ This recipe governs the @architect agent's protocol for creating type-safe agreements between system layers.
4
+
5
+ ## ๐Ÿ Phase 1: Requirement Alignment
6
+ 1. **Analysis:** Read user requirements and Business Analyst (@analyst) reports.
7
+ 2. **Scope Discovery:** Identify the domain objects, actions, and events required for the feature.
8
+
9
+ ## ๐Ÿ“ Phase 2: Technical Modeling
10
+ 1. **Branded Types:** Define semantic IDs in `src/types/brands.ts` (e.g., `OrderId`, `ProductSKU`).
11
+ 2. **Domain Models:** Create or update interfaces in `src/types/models.ts`. Ensure they extend `BaseEntity`.
12
+ 3. **Constants:** Update `src/types/constants.ts` for enums and fixed state values.
13
+
14
+ ## ๐Ÿ” Phase 3: Hash Sealing
15
+ 1. **Integrity Check:** Run `atabey verify-contract` to check existing state.
16
+ 2. **Commitment:** Run `atabey update-contract` to generate new SHA-256 signatures for the updated types.
17
+ 3. **Audit:** Verify that `contract.version.json` accurately reflects the new architecture.
18
+
19
+ ## ๐Ÿ“ก Phase 4: Synchronization
20
+ 1. **Distribution:** Ensure the updated `src/types` directory is correctly linked or copied to both Frontend and Backend projects.
21
+ 2. **Verification:** Trigger @backend and @frontend agents to read the new contract and plan their implementations.
@@ -0,0 +1,25 @@
1
+ # ๐Ÿ—„๏ธ Engineering Recipe: Database Management & Migrations
2
+
3
+ This recipe governs the @database agent's protocol for schema creation, table modifications, and data integrity.
4
+
5
+ ## ๐Ÿ“ Phase 1: Contract-First Definition
6
+ 1. **Type Mapping:** Define the new table or column in `src/types/models.ts` using Branded Types for IDs.
7
+ 2. **Validation:** Ensure the interface extends `BaseEntity` (id, createdAt, updatedAt).
8
+
9
+ ## ๐Ÿš€ Phase 2: Migration Generation
10
+ 1. **Scripting:** Write a reversible migration (up/down) using the project's migration tool (e.g., Kysely or SQL).
11
+ 2. **Atomic Changes:** One migration per logical feature. Never bundle unrelated schema changes.
12
+ 3. **Naming:** Use timestamp-prefixed naming (e.g., `20240101_add_customers_table.ts`).
13
+
14
+ ## ๐Ÿงฑ Phase 3: Infrastructure Setup (If New DB)
15
+ 1. **Initialization:** Verify the connection string in `.env`.
16
+ 2. **Health Check:** Run `check_active_ports` to ensure the DB engine is reachable.
17
+
18
+ ## ๐Ÿ› ๏ธ Phase 4: Implementation & Repository Update
19
+ 1. **Repo Layer:** Create or update the Repository class to include the new query logic.
20
+ 2. **Strict Mode:** Ensure no raw SQL is used; leverage the query builder exclusively.
21
+
22
+ ## โœ… Phase 5: Verification & Zero-Downtime Audit
23
+ 1. **Dry Run:** If supported, dry-run the migration to check for locking issues.
24
+ 2. **Validation:** Run `atabey verify-contract` to ensure code and schema are synced.
25
+ 3. **Handoff:** Update `PROJECT_MEMORY.md` with the new schema version.
@@ -0,0 +1,23 @@
1
+ # ๐Ÿš€ Engineering Recipe: Infrastructure Deployment
2
+
3
+ This recipe governs the @devops agent's protocol for safe, traceable, and reversible system rollouts.
4
+
5
+ ## ๐Ÿ Phase 1: Pre-Deployment Environment Audit
6
+ 1. **Integrity Check:** Run `atabey check` to ensure all discipline rules are met.
7
+ 2. **Health Scan:** Execute `get_system_health` and `check_active_ports` on the target environment.
8
+ 3. **Config Sync:** Verify that all keys in `.env.example` are present in the target environment's secrets manager.
9
+
10
+ ## ๐Ÿงฑ Phase 2: Build & Validation
11
+ 1. **Compilation:** Run `npm run build` and capture any stderr.
12
+ 2. **Contract Verify:** Run `atabey verify-contract` to ensure FE/BE synchronization.
13
+ 3. **Test Suite:** Execute the full test battery. Failure in a single test blocks deployment.
14
+
15
+ ## ๐Ÿ“ก Phase 3: Controlled Rollout
16
+ 1. **Atomic Swap:** Deploy the new bundle/service using the project's orchestration scripts.
17
+ 2. **Database Sync:** If migrations are pending, follow the `db-management-recipe.md` first.
18
+ 3. **Log Monitoring:** Tail `logs/manager.json` for immediate post-deploy spikes in errors.
19
+
20
+ ## โœ… Phase 4: Post-Deploy & Rollback Readiness
21
+ 1. **Observability:** Verify system metrics stabilize within 5 minutes.
22
+ 2. **Traceability:** Record the deployment Trace ID and commit hash in `PROJECT_MEMORY.md`.
23
+ 3. **Rollback Check:** Ensure the previous stable version is tagged and reachable in Git.
@@ -0,0 +1,19 @@
1
+ # โœจ New Feature Development Recipe
2
+
3
+ The "Nizam-ฤฑ Atabey" steps to follow when adding a new module or feature.
4
+
5
+ ## 1. Contract Design (Phase 1)
6
+ - First, update the `contract.version.json` file and the relevant TypeScript types.
7
+ - Do not start writing code without getting approval from `@architect`.
8
+
9
+ ## 2. Mock-Free Development (Phase 2)
10
+ - Add the new feature to the correct directory under `apps/backend` or `apps/web`.
11
+ - If database changes are required, coordinate with the `@database` agent.
12
+
13
+ ## 3. Responsive & i18n (Phase 3)
14
+ - Use `{ base: '...', md: '...' }` responsive syntax in frontend developments.
15
+ - Move all texts to the `locales/` directory immediately.
16
+
17
+ ## 4. Completion (Phase 4)
18
+ - Ensure no TODOs remain using `get_project_gaps`.
19
+ - Verify that you haven't created any new package pollution with `audit_dependencies`.
@@ -0,0 +1,23 @@
1
+ # โšก Engineering Recipe: Performance Optimization
2
+
3
+ This recipe governs the protocol for identifying and resolving system bottlenecks (Frontend, Backend, or Database).
4
+
5
+ ## ๐Ÿ“Š Phase 1: Profiling & Bottleneck Identification
6
+ 1. **Metric Collection:** Read `observability/metrics.json` or run `get_system_health`.
7
+ 2. **Log Audit:** Scan `logs/manager.json` for slow actions or timeouts.
8
+ 3. **Trace Analysis:** Use `TraceID` to follow a slow request through all layers.
9
+
10
+ ## ๐Ÿง  Phase 2: Root Cause Analysis
11
+ 1. **SQL Audit:** Check for N+1 query patterns or missing indexes in `repository/` files.
12
+ 2. **Algorithm Audit:** Scan for O(nยฒ) loops or heavy synchronous operations.
13
+ 3. **Frontend Audit:** Check for unnecessary re-renders or massive bundle sizes.
14
+
15
+ ## ๐Ÿ› ๏ธ Phase 3: Surgical Optimization
16
+ 1. **DB Level:** Add missing indexes or refactor complex joins.
17
+ 2. **Logic Level:** Implement caching (e.g., Redis or in-memory) for frequent read operations.
18
+ 3. **UI Level:** Apply memoization, virtualization (FlashList), or code-splitting.
19
+
20
+ ## โœ… Phase 4: Validation & Comparison
21
+ 1. **Benchmarking:** Re-run the action and compare new metrics with the baseline.
22
+ 2. **Regression Check:** Run `atabey check` and existing tests to ensure logic is intact.
23
+ 3. **Knowledge Update:** Record the optimization strategy in `knowledge/performance-history.md`.
@@ -0,0 +1,21 @@
1
+ # ๐Ÿ“ฆ Pull Request Title: [TRC-{TraceId}] Brief Description
2
+
3
+ ## ๐Ÿ“ Summary
4
+ <!-- What did you change and why? -->
5
+
6
+ ## ๐Ÿ”— Related Tasks
7
+ - **Trace ID:** [Link to Trace/Task or ID]
8
+ - **Issue:** [Link to issue if applicable]
9
+
10
+ ## ๐Ÿ›ก๏ธ Governance & Compliance Checklist
11
+ - [ ] Code passes `npm run atabey:test`.
12
+ - [ ] Code passes `npm run atabey:check` (Compliance Scanner).
13
+ - [ ] No `any` type usage added.
14
+ - [ ] No secrets or hardcoded API keys.
15
+ - [ ] New functionality is registered in `src/modules/agents/definitions.ts` (if applicable).
16
+
17
+ ## ๐Ÿงช Testing Notes
18
+ <!-- How did you verify the fix? -->
19
+
20
+ ## ๐Ÿ› ๏ธ Risk Assessment
21
+ <!-- Any potential side effects? -->