atabey 0.0.12 → 0.0.14

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 (432) hide show
  1. package/ATABEY.md +45 -499
  2. package/PRIVACY.md +161 -0
  3. package/README.md +553 -88
  4. package/bin/validate-al-registry.js +4 -4
  5. package/dist/framework-mcp/src/index.js +914 -62
  6. package/dist/framework-mcp/src/index.js.map +1 -1
  7. package/dist/framework-mcp/src/tools/compliance/mask_pii.d.ts +17 -0
  8. package/dist/framework-mcp/src/tools/compliance/mask_pii.js +56 -0
  9. package/dist/framework-mcp/src/tools/compliance/mask_pii.js.map +1 -0
  10. package/dist/framework-mcp/src/tools/definitions.js +24 -1
  11. package/dist/framework-mcp/src/tools/definitions.js.map +1 -1
  12. package/dist/framework-mcp/src/tools/framework/run_tests.js +25 -0
  13. package/dist/framework-mcp/src/tools/framework/run_tests.js.map +1 -1
  14. package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.d.ts +19 -0
  15. package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js +138 -0
  16. package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js.map +1 -0
  17. package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.d.ts +8 -0
  18. package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js +91 -0
  19. package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js.map +1 -0
  20. package/dist/framework-mcp/src/tools/index.d.ts +1 -1
  21. package/dist/framework-mcp/src/tools/index.js +34 -20
  22. package/dist/framework-mcp/src/tools/index.js.map +1 -1
  23. package/dist/framework-mcp/src/tools/messaging/approve_operation.d.ts +22 -0
  24. package/dist/framework-mcp/src/tools/messaging/approve_operation.js +81 -0
  25. package/dist/framework-mcp/src/tools/messaging/approve_operation.js.map +1 -0
  26. package/dist/framework-mcp/src/tools/messaging/ask_human.d.ts +15 -0
  27. package/dist/framework-mcp/src/tools/messaging/ask_human.js +89 -20
  28. package/dist/framework-mcp/src/tools/messaging/ask_human.js.map +1 -1
  29. package/dist/framework-mcp/src/tools/observability/check_ports.js +3 -1
  30. package/dist/framework-mcp/src/tools/observability/check_ports.js.map +1 -1
  31. package/dist/framework-mcp/src/tools/quality/analyze_code_quality.d.ts +11 -0
  32. package/dist/framework-mcp/src/tools/quality/analyze_code_quality.js +115 -0
  33. package/dist/framework-mcp/src/tools/quality/analyze_code_quality.js.map +1 -0
  34. package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.d.ts +11 -0
  35. package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js +135 -0
  36. package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js.map +1 -0
  37. package/dist/framework-mcp/src/tools/schemas.d.ts +90 -15
  38. package/dist/framework-mcp/src/tools/schemas.js +32 -7
  39. package/dist/framework-mcp/src/tools/schemas.js.map +1 -1
  40. package/dist/framework-mcp/src/tools/shell/run_command.js +12 -2
  41. package/dist/framework-mcp/src/tools/shell/run_command.js.map +1 -1
  42. package/dist/framework-mcp/src/tools/types.d.ts +11 -105
  43. package/dist/framework-mcp/src/tools/types.js +1 -0
  44. package/dist/framework-mcp/src/tools/types.js.map +1 -1
  45. package/dist/framework-mcp/src/utils/auth.d.ts +36 -0
  46. package/dist/framework-mcp/src/utils/auth.js +79 -0
  47. package/dist/framework-mcp/src/utils/auth.js.map +1 -0
  48. package/dist/framework-mcp/src/utils/auto-rollback.d.ts +71 -0
  49. package/dist/framework-mcp/src/utils/auto-rollback.js +266 -0
  50. package/dist/framework-mcp/src/utils/auto-rollback.js.map +1 -0
  51. package/dist/framework-mcp/src/utils/compliance.js +12 -4
  52. package/dist/framework-mcp/src/utils/compliance.js.map +1 -1
  53. package/dist/framework-mcp/src/utils/context-optimizer.d.ts +69 -0
  54. package/dist/framework-mcp/src/utils/context-optimizer.js +157 -0
  55. package/dist/framework-mcp/src/utils/context-optimizer.js.map +1 -0
  56. package/dist/framework-mcp/src/utils/discipline.d.ts +68 -0
  57. package/dist/framework-mcp/src/utils/discipline.js +218 -0
  58. package/dist/framework-mcp/src/utils/discipline.js.map +1 -0
  59. package/dist/framework-mcp/src/utils/finops.d.ts +143 -0
  60. package/dist/framework-mcp/src/utils/finops.js +326 -0
  61. package/dist/framework-mcp/src/utils/finops.js.map +1 -0
  62. package/dist/framework-mcp/src/utils/human-in-loop.d.ts +95 -0
  63. package/dist/framework-mcp/src/utils/human-in-loop.js +216 -0
  64. package/dist/framework-mcp/src/utils/human-in-loop.js.map +1 -0
  65. package/dist/framework-mcp/src/utils/license-scanner.d.ts +71 -0
  66. package/dist/framework-mcp/src/utils/license-scanner.js +284 -0
  67. package/dist/framework-mcp/src/utils/license-scanner.js.map +1 -0
  68. package/dist/framework-mcp/src/utils/loop-detector.d.ts +105 -0
  69. package/dist/framework-mcp/src/utils/loop-detector.js +362 -0
  70. package/dist/framework-mcp/src/utils/loop-detector.js.map +1 -0
  71. package/dist/framework-mcp/src/utils/quality.d.ts +19 -0
  72. package/dist/framework-mcp/src/utils/quality.js +124 -0
  73. package/dist/framework-mcp/src/utils/quality.js.map +1 -0
  74. package/dist/framework-mcp/src/utils/rules-engine.d.ts +78 -0
  75. package/dist/framework-mcp/src/utils/rules-engine.js +232 -0
  76. package/dist/framework-mcp/src/utils/rules-engine.js.map +1 -0
  77. package/dist/framework-mcp/src/utils/silent-router.d.ts +47 -0
  78. package/dist/framework-mcp/src/utils/silent-router.js +129 -0
  79. package/dist/framework-mcp/src/utils/silent-router.js.map +1 -0
  80. package/dist/framework-mcp/src/utils/storage.d.ts +1 -0
  81. package/dist/framework-mcp/src/utils/storage.js +2 -2
  82. package/dist/framework-mcp/src/utils/storage.js.map +1 -1
  83. package/dist/framework-mcp/src/utils/telemetry-streamer.d.ts +133 -0
  84. package/dist/framework-mcp/src/utils/telemetry-streamer.js +397 -0
  85. package/dist/framework-mcp/src/utils/telemetry-streamer.js.map +1 -0
  86. package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js +2 -2
  87. package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js.map +1 -1
  88. package/dist/framework-mcp/tests/tools/framework/run_tests.test.d.ts +1 -0
  89. package/dist/framework-mcp/tests/tools/framework/run_tests.test.js +49 -0
  90. package/dist/framework-mcp/tests/tools/framework/run_tests.test.js.map +1 -0
  91. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js +14 -5
  92. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js.map +1 -1
  93. package/dist/framework-mcp/tests/tools/observability/check_ports.test.d.ts +1 -0
  94. package/dist/framework-mcp/tests/tools/observability/check_ports.test.js +30 -0
  95. package/dist/framework-mcp/tests/tools/observability/check_ports.test.js.map +1 -0
  96. package/dist/framework-mcp/tests/tools/shell/run_command.test.js +7 -0
  97. package/dist/framework-mcp/tests/tools/shell/run_command.test.js.map +1 -1
  98. package/dist/framework-mcp/tests/utils/auto-rollback.test.d.ts +7 -0
  99. package/dist/framework-mcp/tests/utils/auto-rollback.test.js +178 -0
  100. package/dist/framework-mcp/tests/utils/auto-rollback.test.js.map +1 -0
  101. package/dist/framework-mcp/tests/utils/context-optimizer.test.d.ts +1 -0
  102. package/dist/framework-mcp/tests/utils/context-optimizer.test.js +62 -0
  103. package/dist/framework-mcp/tests/utils/context-optimizer.test.js.map +1 -0
  104. package/dist/framework-mcp/tests/utils/finops.test.d.ts +7 -0
  105. package/dist/framework-mcp/tests/utils/finops.test.js +157 -0
  106. package/dist/framework-mcp/tests/utils/finops.test.js.map +1 -0
  107. package/dist/framework-mcp/tests/utils/human-in-loop.test.d.ts +1 -0
  108. package/dist/framework-mcp/tests/utils/human-in-loop.test.js +59 -0
  109. package/dist/framework-mcp/tests/utils/human-in-loop.test.js.map +1 -0
  110. package/dist/framework-mcp/tests/utils/license-scanner.test.d.ts +7 -0
  111. package/dist/framework-mcp/tests/utils/license-scanner.test.js +131 -0
  112. package/dist/framework-mcp/tests/utils/license-scanner.test.js.map +1 -0
  113. package/dist/framework-mcp/tests/utils/loop-detector.test.d.ts +7 -0
  114. package/dist/framework-mcp/tests/utils/loop-detector.test.js +204 -0
  115. package/dist/framework-mcp/tests/utils/loop-detector.test.js.map +1 -0
  116. package/dist/framework-mcp/tests/utils/rules-engine.test.d.ts +1 -0
  117. package/dist/framework-mcp/tests/utils/rules-engine.test.js +106 -0
  118. package/dist/framework-mcp/tests/utils/rules-engine.test.js.map +1 -0
  119. package/dist/framework-mcp/tests/utils/telemetry-streamer.test.d.ts +7 -0
  120. package/dist/framework-mcp/tests/utils/telemetry-streamer.test.js +201 -0
  121. package/dist/framework-mcp/tests/utils/telemetry-streamer.test.js.map +1 -0
  122. package/dist/src/cli/commands/check.js +18 -3
  123. package/dist/src/cli/commands/check.js.map +1 -1
  124. package/dist/src/cli/commands/dashboard.d.ts +1 -1
  125. package/dist/src/cli/commands/dashboard.js +343 -96
  126. package/dist/src/cli/commands/dashboard.js.map +1 -1
  127. package/dist/src/cli/commands/gateway.d.ts +1 -0
  128. package/dist/src/cli/commands/gateway.js +172 -0
  129. package/dist/src/cli/commands/gateway.js.map +1 -0
  130. package/dist/src/cli/commands/init/create-agent.js +3 -3
  131. package/dist/src/cli/commands/init/create-agent.js.map +1 -1
  132. package/dist/src/cli/commands/init/scaffold-core.d.ts +3 -1
  133. package/dist/src/cli/commands/init/scaffold-core.js +17 -2
  134. package/dist/src/cli/commands/init/scaffold-core.js.map +1 -1
  135. package/dist/src/cli/commands/init/scaffold-ops.js +2 -2
  136. package/dist/src/cli/commands/init/scaffold-ops.js.map +1 -1
  137. package/dist/src/cli/commands/init/scaffold-standards.js +13 -1
  138. package/dist/src/cli/commands/init/scaffold-standards.js.map +1 -1
  139. package/dist/src/cli/commands/init.d.ts +6 -0
  140. package/dist/src/cli/commands/init.js +163 -25
  141. package/dist/src/cli/commands/init.js.map +1 -1
  142. package/dist/src/cli/commands/mcp.d.ts +7 -0
  143. package/dist/src/cli/commands/mcp.js +45 -22
  144. package/dist/src/cli/commands/mcp.js.map +1 -1
  145. package/dist/src/cli/commands/orchestrate.d.ts +8 -7
  146. package/dist/src/cli/commands/orchestrate.js +2 -1
  147. package/dist/src/cli/commands/orchestrate.js.map +1 -1
  148. package/dist/src/cli/commands/quickstart.d.ts +5 -5
  149. package/dist/src/cli/commands/quickstart.js +30 -42
  150. package/dist/src/cli/commands/quickstart.js.map +1 -1
  151. package/dist/src/cli/index.js +228 -317
  152. package/dist/src/cli/index.js.map +1 -1
  153. package/dist/src/cli/platforms/core.d.ts +12 -0
  154. package/dist/src/cli/platforms/core.js +73 -0
  155. package/dist/src/cli/platforms/core.js.map +1 -0
  156. package/dist/src/cli/platforms/index.d.ts +5 -0
  157. package/dist/src/cli/platforms/index.js +6 -0
  158. package/dist/src/cli/platforms/index.js.map +1 -0
  159. package/dist/src/cli/platforms/paths.d.ts +15 -0
  160. package/dist/src/cli/platforms/paths.js +102 -0
  161. package/dist/src/cli/platforms/paths.js.map +1 -0
  162. package/dist/src/cli/platforms/scaffold.d.ts +2 -0
  163. package/dist/src/cli/platforms/scaffold.js +73 -0
  164. package/dist/src/cli/platforms/scaffold.js.map +1 -0
  165. package/dist/src/cli/platforms/utils.d.ts +4 -0
  166. package/dist/src/cli/platforms/utils.js +76 -0
  167. package/dist/src/cli/platforms/utils.js.map +1 -0
  168. package/dist/src/cli/shims.js +11 -11
  169. package/dist/src/cli/utils/fs.d.ts +1 -1
  170. package/dist/src/cli/utils/fs.js +1 -1
  171. package/dist/src/cli/utils/fs.js.map +1 -1
  172. package/dist/src/cli/utils/pkg.js +2 -3
  173. package/dist/src/cli/utils/pkg.js.map +1 -1
  174. package/dist/src/cli/utils/quality.d.ts +10 -0
  175. package/dist/src/cli/utils/quality.js +10 -0
  176. package/dist/src/cli/utils/quality.js.map +1 -0
  177. package/dist/src/modules/agents/definitions.d.ts +2 -2
  178. package/dist/src/modules/agents/definitions.js +104 -63
  179. package/dist/src/modules/agents/definitions.js.map +1 -1
  180. package/dist/src/modules/agents/registry/manager.js +6 -1
  181. package/dist/src/modules/agents/registry/manager.js.map +1 -1
  182. package/dist/src/modules/contracts/api.d.ts +178 -0
  183. package/dist/src/modules/contracts/api.js +56 -0
  184. package/dist/src/modules/contracts/api.js.map +1 -0
  185. package/dist/src/modules/contracts/index.d.ts +5 -0
  186. package/dist/src/modules/contracts/index.js +6 -0
  187. package/dist/src/modules/contracts/index.js.map +1 -0
  188. package/dist/src/modules/engines/agent-executor.d.ts +25 -30
  189. package/dist/src/modules/engines/agent-executor.js +133 -73
  190. package/dist/src/modules/engines/agent-executor.js.map +1 -1
  191. package/dist/src/modules/engines/agent-loop.d.ts +34 -0
  192. package/dist/src/modules/engines/agent-loop.js +102 -0
  193. package/dist/src/modules/engines/agent-loop.js.map +1 -0
  194. package/dist/src/modules/engines/evaluation-engine.js +2 -2
  195. package/dist/src/modules/engines/evaluation-engine.js.map +1 -1
  196. package/dist/src/modules/engines/quality-gate.d.ts +16 -8
  197. package/dist/src/modules/engines/quality-gate.js +42 -34
  198. package/dist/src/modules/engines/quality-gate.js.map +1 -1
  199. package/dist/src/modules/engines/routing-engine.d.ts +21 -28
  200. package/dist/src/modules/engines/routing-engine.js +83 -50
  201. package/dist/src/modules/engines/routing-engine.js.map +1 -1
  202. package/dist/src/modules/gateway/circuit-breaker.d.ts +40 -0
  203. package/dist/src/modules/gateway/circuit-breaker.js +163 -0
  204. package/dist/src/modules/gateway/circuit-breaker.js.map +1 -0
  205. package/dist/src/modules/gateway/cost-tracker.d.ts +60 -0
  206. package/dist/src/modules/gateway/cost-tracker.js +198 -0
  207. package/dist/src/modules/gateway/cost-tracker.js.map +1 -0
  208. package/dist/src/modules/gateway/gateway.d.ts +72 -0
  209. package/dist/src/modules/gateway/gateway.js +243 -0
  210. package/dist/src/modules/gateway/gateway.js.map +1 -0
  211. package/dist/src/modules/gateway/index.d.ts +19 -0
  212. package/dist/src/modules/gateway/index.js +19 -0
  213. package/dist/src/modules/gateway/index.js.map +1 -0
  214. package/dist/src/modules/gateway/load-balancer.d.ts +86 -0
  215. package/dist/src/modules/gateway/load-balancer.js +230 -0
  216. package/dist/src/modules/gateway/load-balancer.js.map +1 -0
  217. package/dist/src/modules/gateway/providers/anthropic.d.ts +14 -0
  218. package/dist/src/modules/gateway/providers/anthropic.js +169 -0
  219. package/dist/src/modules/gateway/providers/anthropic.js.map +1 -0
  220. package/dist/src/modules/gateway/providers/base.d.ts +38 -0
  221. package/dist/src/modules/gateway/providers/base.js +42 -0
  222. package/dist/src/modules/gateway/providers/base.js.map +1 -0
  223. package/dist/src/modules/gateway/providers/google.d.ts +18 -0
  224. package/dist/src/modules/gateway/providers/google.js +176 -0
  225. package/dist/src/modules/gateway/providers/google.js.map +1 -0
  226. package/dist/src/modules/gateway/providers/grok.d.ts +14 -0
  227. package/dist/src/modules/gateway/providers/grok.js +166 -0
  228. package/dist/src/modules/gateway/providers/grok.js.map +1 -0
  229. package/dist/src/modules/gateway/providers/index.d.ts +21 -0
  230. package/dist/src/modules/gateway/providers/index.js +38 -0
  231. package/dist/src/modules/gateway/providers/index.js.map +1 -0
  232. package/dist/src/modules/gateway/providers/ollama.d.ts +23 -0
  233. package/dist/src/modules/gateway/providers/ollama.js +187 -0
  234. package/dist/src/modules/gateway/providers/ollama.js.map +1 -0
  235. package/dist/src/modules/gateway/providers/openai.d.ts +14 -0
  236. package/dist/src/modules/gateway/providers/openai.js +170 -0
  237. package/dist/src/modules/gateway/providers/openai.js.map +1 -0
  238. package/dist/src/modules/gateway/rate-limiter.d.ts +41 -0
  239. package/dist/src/modules/gateway/rate-limiter.js +119 -0
  240. package/dist/src/modules/gateway/rate-limiter.js.map +1 -0
  241. package/dist/src/modules/gateway/types.d.ts +114 -0
  242. package/dist/src/modules/gateway/types.js +8 -0
  243. package/dist/src/modules/gateway/types.js.map +1 -0
  244. package/dist/src/modules/memory/core.d.ts +4 -12
  245. package/dist/src/modules/memory/core.js +10 -17
  246. package/dist/src/modules/memory/core.js.map +1 -1
  247. package/dist/src/modules/memory/embedding.d.ts +28 -0
  248. package/dist/src/modules/memory/embedding.js +131 -0
  249. package/dist/src/modules/memory/embedding.js.map +1 -0
  250. package/dist/src/modules/providers/definitions.d.ts +9 -0
  251. package/dist/src/modules/providers/definitions.js +141 -0
  252. package/dist/src/modules/providers/definitions.js.map +1 -0
  253. package/dist/src/modules/providers/registry.d.ts +12 -0
  254. package/dist/src/modules/providers/registry.js +19 -0
  255. package/dist/src/modules/providers/registry.js.map +1 -0
  256. package/dist/src/modules/providers/shared.d.ts +1 -0
  257. package/dist/src/modules/providers/shared.js +105 -0
  258. package/dist/src/modules/providers/shared.js.map +1 -0
  259. package/dist/src/modules/providers/types.d.ts +14 -0
  260. package/dist/src/modules/providers/types.js +2 -0
  261. package/dist/src/modules/providers/types.js.map +1 -0
  262. package/dist/src/modules/skills/adapter-skills.d.ts +68 -0
  263. package/dist/src/modules/skills/adapter-skills.js +450 -0
  264. package/dist/src/modules/skills/adapter-skills.js.map +1 -0
  265. package/dist/src/shared/audit.d.ts +105 -0
  266. package/dist/src/shared/audit.js +221 -0
  267. package/dist/src/shared/audit.js.map +1 -0
  268. package/dist/src/shared/fs.js +4 -2
  269. package/dist/src/shared/fs.js.map +1 -1
  270. package/dist/src/shared/lock.d.ts +82 -0
  271. package/dist/src/shared/lock.js +160 -0
  272. package/dist/src/shared/lock.js.map +1 -0
  273. package/dist/src/shared/logger.d.ts +2 -0
  274. package/dist/src/shared/logger.js +15 -5
  275. package/dist/src/shared/logger.js.map +1 -1
  276. package/dist/src/shared/pii.d.ts +69 -0
  277. package/dist/src/shared/pii.js +213 -0
  278. package/dist/src/shared/pii.js.map +1 -0
  279. package/dist/src/shared/retention.d.ts +63 -0
  280. package/dist/src/shared/retention.js +171 -0
  281. package/dist/src/shared/retention.js.map +1 -0
  282. package/dist/src/shared/storage.d.ts +22 -1
  283. package/dist/src/shared/storage.js +49 -7
  284. package/dist/src/shared/storage.js.map +1 -1
  285. package/dist/tests/adapter.test.js +1 -1
  286. package/dist/tests/adapter.test.js.map +1 -1
  287. package/dist/tests/adapters/paths.test.js +4 -4
  288. package/dist/tests/adapters/paths.test.js.map +1 -1
  289. package/dist/tests/cli/commands/dashboard-coverage.test.d.ts +1 -0
  290. package/dist/tests/cli/commands/dashboard-coverage.test.js +88 -0
  291. package/dist/tests/cli/commands/dashboard-coverage.test.js.map +1 -0
  292. package/dist/tests/cli/init/adapter_init.test.js +4 -5
  293. package/dist/tests/cli/init/adapter_init.test.js.map +1 -1
  294. package/dist/tests/cli/init/unified_init.test.js +5 -7
  295. package/dist/tests/cli/init/unified_init.test.js.map +1 -1
  296. package/dist/tests/embedding.test.d.ts +1 -0
  297. package/dist/tests/embedding.test.js +82 -0
  298. package/dist/tests/embedding.test.js.map +1 -0
  299. package/dist/tests/engines/evaluation-engine.test.d.ts +1 -0
  300. package/dist/tests/engines/evaluation-engine.test.js +71 -0
  301. package/dist/tests/engines/evaluation-engine.test.js.map +1 -0
  302. package/dist/tests/engines/planning-engine.test.d.ts +1 -0
  303. package/dist/tests/engines/planning-engine.test.js +100 -0
  304. package/dist/tests/engines/planning-engine.test.js.map +1 -0
  305. package/dist/tests/engines/quality-gate.test.d.ts +1 -0
  306. package/dist/tests/engines/quality-gate.test.js +59 -0
  307. package/dist/tests/engines/quality-gate.test.js.map +1 -0
  308. package/dist/tests/engines/risk-engine.test.d.ts +1 -0
  309. package/dist/tests/engines/risk-engine.test.js +80 -0
  310. package/dist/tests/engines/risk-engine.test.js.map +1 -0
  311. package/dist/tests/engines/routing-engine.test.d.ts +1 -0
  312. package/dist/tests/engines/routing-engine.test.js +78 -0
  313. package/dist/tests/engines/routing-engine.test.js.map +1 -0
  314. package/dist/tests/integration/agent_flow.test.js +14 -8
  315. package/dist/tests/integration/agent_flow.test.js.map +1 -1
  316. package/dist/tests/integration/hermes_locking.test.js +1 -0
  317. package/dist/tests/integration/hermes_locking.test.js.map +1 -1
  318. package/dist/tests/modules/adapters/adapters.test.js +2 -2
  319. package/dist/tests/modules/adapters/adapters.test.js.map +1 -1
  320. package/dist/tests/modules/contracts/contracts.test.d.ts +1 -0
  321. package/dist/tests/modules/contracts/contracts.test.js +73 -0
  322. package/dist/tests/modules/contracts/contracts.test.js.map +1 -0
  323. package/dist/tests/modules/engines/agent-executor.test.js +30 -23
  324. package/dist/tests/modules/engines/agent-executor.test.js.map +1 -1
  325. package/dist/tests/modules/gateway/circuit-breaker.test.d.ts +1 -0
  326. package/dist/tests/modules/gateway/circuit-breaker.test.js +124 -0
  327. package/dist/tests/modules/gateway/circuit-breaker.test.js.map +1 -0
  328. package/dist/tests/modules/gateway/cost-tracker.test.d.ts +1 -0
  329. package/dist/tests/modules/gateway/cost-tracker.test.js +93 -0
  330. package/dist/tests/modules/gateway/cost-tracker.test.js.map +1 -0
  331. package/dist/tests/modules/gateway/load-balancer.test.d.ts +1 -0
  332. package/dist/tests/modules/gateway/load-balancer.test.js +70 -0
  333. package/dist/tests/modules/gateway/load-balancer.test.js.map +1 -0
  334. package/dist/tests/modules/gateway/rate-limiter.test.d.ts +1 -0
  335. package/dist/tests/modules/gateway/rate-limiter.test.js +62 -0
  336. package/dist/tests/modules/gateway/rate-limiter.test.js.map +1 -0
  337. package/dist/tests/orchestrator-dependencies.test.js +23 -6
  338. package/dist/tests/orchestrator-dependencies.test.js.map +1 -1
  339. package/dist/tests/shared/audit.test.d.ts +1 -0
  340. package/dist/tests/shared/audit.test.js +53 -0
  341. package/dist/tests/shared/audit.test.js.map +1 -0
  342. package/dist/tests/shared/lock.test.d.ts +1 -0
  343. package/dist/tests/shared/lock.test.js +95 -0
  344. package/dist/tests/shared/lock.test.js.map +1 -0
  345. package/dist/tests/shared/pii.test.d.ts +1 -0
  346. package/dist/tests/shared/pii.test.js +183 -0
  347. package/dist/tests/shared/pii.test.js.map +1 -0
  348. package/dist/tests/storage-operations.test.d.ts +1 -0
  349. package/dist/tests/storage-operations.test.js +116 -0
  350. package/dist/tests/storage-operations.test.js.map +1 -0
  351. package/framework-mcp/README.md +596 -77
  352. package/framework-mcp/dist/dashboard/assets/index-B2mYld0c.js +1221 -0
  353. package/framework-mcp/dist/dashboard/index.html +15 -0
  354. package/framework-mcp/dist/framework-mcp/src/index.js +914 -62
  355. package/framework-mcp/dist/framework-mcp/src/tools/compliance/mask_pii.js +55 -0
  356. package/framework-mcp/dist/framework-mcp/src/tools/definitions.js +24 -1
  357. package/framework-mcp/dist/framework-mcp/src/tools/framework/run_tests.js +25 -0
  358. package/framework-mcp/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js +137 -0
  359. package/framework-mcp/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js +90 -0
  360. package/framework-mcp/dist/framework-mcp/src/tools/index.js +34 -20
  361. package/framework-mcp/dist/framework-mcp/src/tools/messaging/approve_operation.js +80 -0
  362. package/framework-mcp/dist/framework-mcp/src/tools/messaging/ask_human.js +89 -20
  363. package/framework-mcp/dist/framework-mcp/src/tools/observability/check_ports.js +3 -1
  364. package/framework-mcp/dist/framework-mcp/src/tools/quality/analyze_code_quality.js +114 -0
  365. package/framework-mcp/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js +134 -0
  366. package/framework-mcp/dist/framework-mcp/src/tools/schemas.js +32 -7
  367. package/framework-mcp/dist/framework-mcp/src/tools/shell/run_command.js +12 -2
  368. package/framework-mcp/dist/framework-mcp/src/tools/types.js +1 -0
  369. package/framework-mcp/dist/framework-mcp/src/utils/auth.js +78 -0
  370. package/framework-mcp/dist/framework-mcp/src/utils/auto-rollback.js +265 -0
  371. package/framework-mcp/dist/framework-mcp/src/utils/compliance.js +12 -4
  372. package/framework-mcp/dist/framework-mcp/src/utils/context-optimizer.js +156 -0
  373. package/framework-mcp/dist/framework-mcp/src/utils/discipline.js +217 -0
  374. package/framework-mcp/dist/framework-mcp/src/utils/finops.js +325 -0
  375. package/framework-mcp/dist/framework-mcp/src/utils/human-in-loop.js +215 -0
  376. package/framework-mcp/dist/framework-mcp/src/utils/license-scanner.js +283 -0
  377. package/framework-mcp/dist/framework-mcp/src/utils/loop-detector.js +361 -0
  378. package/framework-mcp/dist/framework-mcp/src/utils/quality.js +123 -0
  379. package/framework-mcp/dist/framework-mcp/src/utils/rules-engine.js +231 -0
  380. package/framework-mcp/dist/framework-mcp/src/utils/silent-router.js +128 -0
  381. package/framework-mcp/dist/framework-mcp/src/utils/storage.js +2 -2
  382. package/framework-mcp/dist/framework-mcp/src/utils/telemetry-streamer.js +396 -0
  383. package/framework-mcp/dist/src/cli/platforms/core.js +72 -0
  384. package/framework-mcp/dist/src/cli/platforms/index.js +5 -0
  385. package/framework-mcp/dist/src/cli/platforms/paths.js +101 -0
  386. package/framework-mcp/dist/src/cli/platforms/scaffold.js +72 -0
  387. package/framework-mcp/dist/src/cli/platforms/utils.js +75 -0
  388. package/framework-mcp/dist/src/cli/utils/claude.js +57 -0
  389. package/framework-mcp/dist/src/cli/utils/compliance.js +12 -0
  390. package/framework-mcp/dist/src/cli/utils/fs.js +138 -0
  391. package/framework-mcp/dist/src/cli/utils/pkg.js +282 -0
  392. package/framework-mcp/dist/src/cli/utils/quality.js +9 -0
  393. package/framework-mcp/dist/src/modules/agents/definitions.js +563 -0
  394. package/framework-mcp/dist/src/modules/agents/registry/analyst.js +39 -0
  395. package/framework-mcp/dist/src/modules/agents/registry/architect.js +42 -0
  396. package/framework-mcp/dist/src/modules/agents/registry/backend.js +50 -0
  397. package/framework-mcp/dist/src/modules/agents/registry/database.js +45 -0
  398. package/framework-mcp/dist/src/modules/agents/registry/devops.js +45 -0
  399. package/framework-mcp/dist/src/modules/agents/registry/explorer.js +37 -0
  400. package/framework-mcp/dist/src/modules/agents/registry/frontend.js +52 -0
  401. package/framework-mcp/dist/src/modules/agents/registry/git.js +36 -0
  402. package/framework-mcp/dist/src/modules/agents/registry/manager.js +64 -0
  403. package/framework-mcp/dist/src/modules/agents/registry/mobile.js +41 -0
  404. package/framework-mcp/dist/src/modules/agents/registry/native.js +41 -0
  405. package/framework-mcp/dist/src/modules/agents/registry/quality.js +43 -0
  406. package/framework-mcp/dist/src/modules/agents/registry/security.js +42 -0
  407. package/framework-mcp/dist/src/modules/agents/types.js +1 -0
  408. package/framework-mcp/dist/src/modules/engines/quality-gate.js +92 -0
  409. package/framework-mcp/dist/src/modules/engines/risk-engine.js +105 -0
  410. package/framework-mcp/dist/src/modules/engines/routing-engine.js +408 -0
  411. package/framework-mcp/dist/src/modules/engines/types.js +1 -0
  412. package/framework-mcp/dist/src/modules/memory/core.js +10 -17
  413. package/framework-mcp/dist/src/modules/memory/embedding.js +130 -0
  414. package/framework-mcp/dist/src/modules/providers/definitions.js +140 -0
  415. package/framework-mcp/dist/src/modules/providers/registry.js +18 -0
  416. package/framework-mcp/dist/src/modules/providers/shared.js +104 -0
  417. package/framework-mcp/dist/src/modules/providers/types.js +1 -0
  418. package/framework-mcp/dist/src/modules/skills/adapter-skills.js +449 -0
  419. package/framework-mcp/dist/src/modules/skills/definitions.js +70 -0
  420. package/framework-mcp/dist/src/shared/audit.js +220 -0
  421. package/framework-mcp/dist/src/shared/errors.js +68 -0
  422. package/framework-mcp/dist/src/shared/fs.js +4 -2
  423. package/framework-mcp/dist/src/shared/lock.js +159 -0
  424. package/framework-mcp/dist/src/shared/logger.js +15 -5
  425. package/framework-mcp/dist/src/shared/pii.js +212 -0
  426. package/framework-mcp/dist/src/shared/retention.js +170 -0
  427. package/framework-mcp/dist/src/shared/storage.js +49 -7
  428. package/framework-mcp/dist/src/shared/string.js +29 -0
  429. package/framework-mcp/package.json +8 -2
  430. package/mcp.json +11 -6
  431. package/package.json +22 -9
  432. package/templates/full/ATABEY_FULL.md +515 -0
@@ -1,35 +1,39 @@
1
+ import { handleMaskPII } from "./compliance/mask_pii.js";
2
+ import { handleAcquireLock, handleReleaseLock } from "./control_plane/locking.js";
3
+ import { handleRegisterAgent } from "./control_plane/registry.js";
1
4
  import { TOOLS } from "./definitions.js";
2
- import { handleReadFile } from "./file_system/read_file.js";
3
- import { handleWriteFile } from "./file_system/write_file.js";
4
- import { handleReplaceText } from "./file_system/replace_text.js";
5
5
  import { handleBatchSurgicalEdit } from "./file_system/batch_surgical_edit.js";
6
6
  import { handlePatchFile } from "./file_system/patch_file.js";
7
- import { handleGrepSearch } from "./search/grep_search.js";
8
- import { handleListDir } from "./search/list_dir.js";
9
- import { handleGetProjectGaps } from "./search/get_gaps.js";
10
- import { handleGetProjectMap } from "./search/get_map.js";
11
- import { handleGetFrameworkStatus } from "./framework/get_status.js";
12
- import { handleUpdateProjectMemory } from "./framework/update_memory.js";
7
+ import { handleReadFile } from "./file_system/read_file.js";
8
+ import { handleReplaceText } from "./file_system/replace_text.js";
9
+ import { handleWriteFile } from "./file_system/write_file.js";
13
10
  import { handleAuditDependencies } from "./framework/audit_deps.js";
14
- import { handleRunTests } from "./framework/run_tests.js";
15
- import { handleGetSystemHealth } from "./observability/get_health.js";
16
- import { handleCheckPorts } from "./observability/check_ports.js";
11
+ import { handleGetFrameworkStatus } from "./framework/get_status.js";
17
12
  import { handleOrchestrateLoop } from "./framework/orchestrate.js";
13
+ import { handleRunTests } from "./framework/run_tests.js";
18
14
  import { handleSubmitPlan } from "./framework/submit_plan.js";
19
15
  import { handleUpdateContractHash } from "./framework/update_contract_hash.js";
20
- import { handleReadProjectMemory } from "./memory/read_memory.js";
16
+ import { handleUpdateProjectMemory } from "./framework/update_memory.js";
17
+ import { handleDeleteKnowledge } from "./memory/delete_knowledge.js";
21
18
  import { handleGetMemoryInsights } from "./memory/get_insights.js";
22
- import { handleStoreKnowledge } from "./memory/store_knowledge.js";
19
+ import { handleReadProjectMemory } from "./memory/read_memory.js";
23
20
  import { handleSearchKnowledge } from "./memory/search_knowledge.js";
24
- import { handleDeleteKnowledge } from "./memory/delete_knowledge.js";
25
- import { handleSendAgentMessage } from "./messaging/send_message.js";
26
- import { handleLogAgentAction } from "./messaging/log_action.js";
21
+ import { handleStoreKnowledge } from "./memory/store_knowledge.js";
27
22
  import { handleAskHuman } from "./messaging/ask_human.js";
28
- import { handleAcquireLock, handleReleaseLock } from "./control_plane/locking.js";
29
- import { handleRegisterAgent } from "./control_plane/registry.js";
30
- import { handleRunCommand } from "./shell/run_command.js";
23
+ import { handleApproveOperation } from "./messaging/approve_operation.js";
24
+ import { handleLogAgentAction } from "./messaging/log_action.js";
25
+ import { handleSendAgentMessage } from "./messaging/send_message.js";
26
+ import { handleCheckPorts } from "./observability/check_ports.js";
27
+ import { handleGetSystemHealth } from "./observability/get_health.js";
28
+ import { handleAnalyzeCodeQuality } from "./quality/analyze_code_quality.js";
29
+ import { handleCheckArchitectureCompliance } from "./quality/check_architecture_compliance.js";
31
30
  import { handleCheckLint } from "./quality/check_lint.js";
32
31
  import * as schemas from "./schemas.js";
32
+ import { handleGetProjectGaps } from "./search/get_gaps.js";
33
+ import { handleGetProjectMap } from "./search/get_map.js";
34
+ import { handleGrepSearch } from "./search/grep_search.js";
35
+ import { handleListDir } from "./search/list_dir.js";
36
+ import { handleRunCommand } from "./shell/run_command.js";
33
37
  // Map of tool names to their handler functions
34
38
  const bind = (fn) => {
35
39
  return (root, args) => fn(root, args);
@@ -61,12 +65,16 @@ export const toolHandlers = {
61
65
  send_agent_message: bind(handleSendAgentMessage),
62
66
  log_agent_action: bind(handleLogAgentAction),
63
67
  ask_human: bind(handleAskHuman),
68
+ approve_operation: bind(handleApproveOperation),
64
69
  update_contract_hash: bind(handleUpdateContractHash),
65
70
  acquire_lock: bind(handleAcquireLock),
66
71
  release_lock: bind(handleReleaseLock),
67
72
  register_agent: bind(handleRegisterAgent),
68
73
  run_shell_command: bind(handleRunCommand),
69
74
  check_lint: bind(handleCheckLint),
75
+ analyze_code_quality: bind(handleAnalyzeCodeQuality),
76
+ check_architecture_compliance: bind(handleCheckArchitectureCompliance),
77
+ mask_pii: bind(handleMaskPII),
70
78
  };
71
79
  // Map of tool names to their Zod validation schemas
72
80
  export const toolSchemas = {
@@ -107,6 +115,12 @@ export const toolSchemas = {
107
115
  send_agent_message: schemas.SendAgentMessageSchema,
108
116
  log_agent_action: schemas.LogAgentActionSchema,
109
117
  ask_human: schemas.AskHumanSchema,
118
+ approve_operation: schemas.ApproveOperationSchema,
119
+ // Code Quality
120
+ analyze_code_quality: schemas.AnalyzeCodeQualitySchema,
121
+ check_architecture_compliance: schemas.CheckArchitectureComplianceSchema,
122
+ // PII / Compliance
123
+ mask_pii: schemas.MaskPIISchema,
110
124
  };
111
125
  export { TOOLS };
112
126
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../framework-mcp/src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../framework-mcp/src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { ToolResult } from "../types.js";
2
+ interface ApproveOperationArgs {
3
+ action: "approve" | "reject" | "list";
4
+ traceId?: string;
5
+ reason?: string;
6
+ }
7
+ /**
8
+ * ─── APPROVE OPERATION — In-Chat Risk Gate ──────────────────────────
9
+ *
10
+ * AI CLI kullanımında "atabey approve <traceId>" CLI komutu çalıştırmak mümkün
11
+ * değildir — chat'e yazılan şey CLI komutu olarak değil mesaj olarak işlenir.
12
+ *
13
+ * Bu tool, risk gate approval flow'unu doğrudan MCP tool çağrısına taşır:
14
+ *
15
+ * 1. Atabey yüksek riskli bir operasyonu bloklar
16
+ * 2. Geliştiriciye: "approve_operation tool'unu çağır" der
17
+ * 3. AI bu tool'u çağırır → operasyon onaylanır/reddedilir
18
+ *
19
+ * Geliştirici terminale geçmek zorunda kalmaz.
20
+ */
21
+ export declare function handleApproveOperation(_root: string, args: ApproveOperationArgs): Promise<ToolResult>;
22
+ export {};
@@ -0,0 +1,81 @@
1
+ import { approveOperation, rejectOperation, getPendingApprovals } from "../../utils/human-in-loop.js";
2
+ /**
3
+ * ─── APPROVE OPERATION — In-Chat Risk Gate ──────────────────────────
4
+ *
5
+ * AI CLI kullanımında "atabey approve <traceId>" CLI komutu çalıştırmak mümkün
6
+ * değildir — chat'e yazılan şey CLI komutu olarak değil mesaj olarak işlenir.
7
+ *
8
+ * Bu tool, risk gate approval flow'unu doğrudan MCP tool çağrısına taşır:
9
+ *
10
+ * 1. Atabey yüksek riskli bir operasyonu bloklar
11
+ * 2. Geliştiriciye: "approve_operation tool'unu çağır" der
12
+ * 3. AI bu tool'u çağırır → operasyon onaylanır/reddedilir
13
+ *
14
+ * Geliştirici terminale geçmek zorunda kalmaz.
15
+ */
16
+ export async function handleApproveOperation(_root, args) {
17
+ const { action, traceId, reason } = args;
18
+ // LIST: Bekleyen approval'ları göster
19
+ if (action === "list") {
20
+ const pending = getPendingApprovals();
21
+ if (pending.length === 0) {
22
+ return {
23
+ content: [{ type: "text", text: "[APPROVALS] No pending operations waiting for approval." }],
24
+ };
25
+ }
26
+ const lines = [
27
+ `[APPROVALS] ${pending.length} pending operation(s):\n`,
28
+ ...pending.map(req => [
29
+ " ─────────────────────────────────────",
30
+ ` Trace ID: ${req.traceId}`,
31
+ ` Tool: ${req.toolName}`,
32
+ ` Agent: ${req.agent}`,
33
+ ` Risk Score: ${req.riskScore}/100 (${req.riskLevel})`,
34
+ ` Reason: ${req.reason}`,
35
+ ` Expires: ${new Date(req.expiresAt).toISOString()}`,
36
+ ].join("\n")),
37
+ "",
38
+ "To approve: call approve_operation with action=\"approve\" and traceId=\"<id>\"",
39
+ "To reject: call approve_operation with action=\"reject\" and traceId=\"<id>\"",
40
+ ];
41
+ return {
42
+ content: [{ type: "text", text: lines.join("\n") }],
43
+ };
44
+ }
45
+ // APPROVE or REJECT: traceId zorunlu
46
+ if (!traceId) {
47
+ return {
48
+ isError: true,
49
+ content: [{ type: "text", text: `[ERROR] traceId is required for "${action}" action.` }],
50
+ };
51
+ }
52
+ if (action === "approve") {
53
+ const result = approveOperation(traceId);
54
+ return {
55
+ content: [{
56
+ type: "text",
57
+ text: result.success
58
+ ? `[APPROVED] ✅ ${result.message}\nYou may retry the blocked operation now.`
59
+ : `[ERROR] ${result.message}`,
60
+ }],
61
+ isError: !result.success,
62
+ };
63
+ }
64
+ if (action === "reject") {
65
+ const result = rejectOperation(traceId);
66
+ return {
67
+ content: [{
68
+ type: "text",
69
+ text: result.success
70
+ ? `[REJECTED] ⛔ ${result.message}${reason ? `\nReason: ${reason}` : ""}`
71
+ : `[ERROR] ${result.message}`,
72
+ }],
73
+ isError: !result.success,
74
+ };
75
+ }
76
+ return {
77
+ isError: true,
78
+ content: [{ type: "text", text: `[ERROR] Unknown action: "${String(action)}". Use "approve", "reject", or "list".` }],
79
+ };
80
+ }
81
+ //# sourceMappingURL=approve_operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approve_operation.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/messaging/approve_operation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,21 @@
1
1
  import { ToolResult } from "../types.js";
2
2
  interface AskHumanArgs {
3
3
  question: string;
4
+ timeoutSeconds?: number;
4
5
  }
6
+ /**
7
+ * ─── ASK HUMAN — File Bridge ─────────────────────────────────────────
8
+ *
9
+ * AI CLI'lar (Claude Code, Gemini CLI) MCP server'ı stdio subprocess olarak
10
+ * başlatır. Bu subprocess'te stdin isTTY=false olur (MCP JSON-RPC için kullanılır).
11
+ *
12
+ * Çözüm: File-based Q&A bridge.
13
+ * 1. Soru → .atabey/hitl/question.txt dosyasına yazılır
14
+ * 2. Geliştirici `atabey hitl` komutuyla cevap girer
15
+ * 3. Cevap → .atabey/hitl/answer.txt dosyasına yazılır
16
+ * 4. Bu handler cevabı okur ve AI'ya döner
17
+ *
18
+ * Dashboard: /api/approvals endpoint'i üzerinden web dashboard'dan da cevaplanabilir.
19
+ */
5
20
  export declare function handleAskHuman(root: string, args: AskHumanArgs): Promise<ToolResult>;
6
21
  export {};
@@ -1,30 +1,99 @@
1
- import chalk from "chalk";
1
+ import fs from "fs";
2
+ import path from "path";
3
+ /**
4
+ * ─── ASK HUMAN — File Bridge ─────────────────────────────────────────
5
+ *
6
+ * AI CLI'lar (Claude Code, Gemini CLI) MCP server'ı stdio subprocess olarak
7
+ * başlatır. Bu subprocess'te stdin isTTY=false olur (MCP JSON-RPC için kullanılır).
8
+ *
9
+ * Çözüm: File-based Q&A bridge.
10
+ * 1. Soru → .atabey/hitl/question.txt dosyasına yazılır
11
+ * 2. Geliştirici `atabey hitl` komutuyla cevap girer
12
+ * 3. Cevap → .atabey/hitl/answer.txt dosyasına yazılır
13
+ * 4. Bu handler cevabı okur ve AI'ya döner
14
+ *
15
+ * Dashboard: /api/approvals endpoint'i üzerinden web dashboard'dan da cevaplanabilir.
16
+ */
2
17
  export async function handleAskHuman(root, args) {
3
- if (process.env.ATABEY_TEST_DIR || !process.stdin.isTTY) {
4
- return { content: [{ type: "text", text: "[SKIPPED] Non-interactive environment. Cannot ask human." }] };
5
- }
18
+ const timeoutSeconds = args.timeoutSeconds ?? 120;
19
+ const hitlDir = path.join(root, ".atabey", "hitl");
20
+ const questionFile = path.join(hitlDir, "question.txt");
21
+ const answerFile = path.join(hitlDir, "answer.txt");
6
22
  try {
7
- const readline = await import("readline");
8
- const rl = readline.createInterface({
9
- input: process.stdin,
10
- output: process.stdout
11
- });
12
- return new Promise((resolve) => {
13
- process.stdout.write("\n" + chalk.bgMagenta.white.bold(" [HUMAN-IN-THE-LOOP REQUIRED] ") + "\n");
14
- process.stdout.write(chalk.magenta("An agent has paused execution to ask you a question:\n"));
15
- rl.question(`\n${chalk.bold(args.question)}\n${chalk.gray("> ")}`, (answer) => {
16
- rl.close();
17
- resolve({
18
- content: [{ type: "text", text: `[HUMAN RESPONSE] ${answer}` }]
19
- });
20
- });
21
- });
23
+ // Ensure hitl directory exists
24
+ fs.mkdirSync(hitlDir, { recursive: true });
25
+ // Clear any stale answer file
26
+ if (fs.existsSync(answerFile)) {
27
+ fs.unlinkSync(answerFile);
28
+ }
29
+ // Write the question with metadata
30
+ const questionPayload = JSON.stringify({
31
+ timestamp: new Date().toISOString(),
32
+ question: args.question,
33
+ timeoutAt: new Date(Date.now() + timeoutSeconds * 1000).toISOString(),
34
+ }, null, 2);
35
+ fs.writeFileSync(questionFile, questionPayload);
36
+ // Write human-readable prompt file alongside
37
+ fs.writeFileSync(path.join(hitlDir, "PENDING.txt"), [
38
+ "═══════════════════════════════════════════════════",
39
+ " [ATABEY] AGENT WAITING FOR YOUR ANSWER",
40
+ "═══════════════════════════════════════════════════",
41
+ "",
42
+ `QUESTION: ${args.question}`,
43
+ "",
44
+ "To answer, run in your terminal:",
45
+ " atabey hitl answer \"your answer here\"",
46
+ "",
47
+ "Or use the dashboard: http://localhost:5858",
48
+ "═══════════════════════════════════════════════════",
49
+ ].join("\n"));
50
+ process.stderr.write(`[HITL] Question written to ${questionFile}\n`);
51
+ process.stderr.write("[HITL] Run: atabey hitl answer \"your answer\"\n");
52
+ // Poll for answer file
53
+ const pollIntervalMs = 1000;
54
+ const maxAttempts = timeoutSeconds;
55
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
56
+ await new Promise(resolve => setTimeout(resolve, pollIntervalMs));
57
+ if (fs.existsSync(answerFile)) {
58
+ const answer = fs.readFileSync(answerFile, "utf8").trim();
59
+ // Clean up
60
+ try {
61
+ fs.unlinkSync(questionFile);
62
+ fs.unlinkSync(answerFile);
63
+ const pendingFile = path.join(hitlDir, "PENDING.txt");
64
+ if (fs.existsSync(pendingFile))
65
+ fs.unlinkSync(pendingFile);
66
+ }
67
+ catch { /* cleanup is best-effort */ }
68
+ process.stderr.write("[HITL] Answer received.\n");
69
+ return {
70
+ content: [{ type: "text", text: `[HUMAN RESPONSE] ${answer}` }],
71
+ };
72
+ }
73
+ }
74
+ // Timeout — clean up question file
75
+ try {
76
+ if (fs.existsSync(questionFile))
77
+ fs.unlinkSync(questionFile);
78
+ const pendingFile = path.join(hitlDir, "PENDING.txt");
79
+ if (fs.existsSync(pendingFile))
80
+ fs.unlinkSync(pendingFile);
81
+ }
82
+ catch { /* cleanup is best-effort */ }
83
+ return {
84
+ content: [{
85
+ type: "text",
86
+ text: `[HITL TIMEOUT] No answer received within ${timeoutSeconds}s.\n` +
87
+ `Question was: "${args.question}"\n` +
88
+ "To answer pending questions, run: atabey hitl answer \"your answer\"",
89
+ }],
90
+ };
22
91
  }
23
92
  catch (error) {
24
93
  const message = error instanceof Error ? error.message : String(error);
25
94
  return {
26
95
  isError: true,
27
- content: [{ type: "text", text: `[ERROR] Failed to ask human: ${message}` }]
96
+ content: [{ type: "text", text: `[ERROR] ask_human failed: ${message}` }],
28
97
  };
29
98
  }
30
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ask_human.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/messaging/ask_human.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,IAAkB;IACjE,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0DAA0D,EAAE,CAAC,EAAE,CAAC;IAC7G,CAAC;IAED,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAChC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACzB,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,GAAG,IAAI,CAAC,CAAC;YACjG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC,CAAC;YAE9F,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC1E,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC;oBACJ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,MAAM,EAAE,EAAE,CAAC;iBAClE,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,OAAO,EAAE,EAAE,CAAC;SAC/E,CAAC;IACN,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"ask_human.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/messaging/ask_human.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,9 @@ import { execSync } from "child_process";
3
3
  * Checks for active network ports and their status.
4
4
  */
5
5
  export function handleCheckPorts(projectRoot, args) {
6
- const filter = args.filter || ""; // Optional filter (e.g., ":3000")
6
+ const rawFilter = args.filter || "";
7
+ // Sanitize filter to prevent command injection (allow only alphanumeric, dots, colons, dashes, underscores)
8
+ const filter = rawFilter.replace(/[^a-zA-Z0-9.:_-]/g, "");
7
9
  try {
8
10
  // Using 'lsof -i -P -n' to list open files and network connections
9
11
  // Note: may require permissions or behave differently on non-Unix systems
@@ -1 +1 @@
1
- {"version":3,"file":"check_ports.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/observability/check_ports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB,EAAE,IAA0B;IAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,kCAAkC;IAEpE,IAAI,CAAC;QACD,mEAAmE;QACnE,0EAA0E;QAC1E,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;YACxC,CAAC,CAAC,oCAAoC,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3E,CAAC,CAAC,+BAA+B,MAAM,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAExE,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAEvD,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,2CAA2C,MAAM,IAAI,kDAAkD,EAAE;iBAClH,CAAC;SACL,CAAC;IACN,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACV,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0FAA0F,EAAE,CAAC;SAChI,CAAC;IACN,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"check_ports.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/observability/check_ports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB,EAAE,IAA0B;IAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACpC,4GAA4G;IAC5G,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAE1D,IAAI,CAAC;QACD,mEAAmE;QACnE,0EAA0E;QAC1E,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;YACxC,CAAC,CAAC,oCAAoC,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3E,CAAC,CAAC,+BAA+B,MAAM,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAExE,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAEvD,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,2CAA2C,MAAM,IAAI,kDAAkD,EAAE;iBAClH,CAAC;SACL,CAAC;IACN,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACV,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0FAA0F,EAAE,CAAC;SAChI,CAAC;IACN,CAAC;AACL,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { AnalyzeCodeQualityArgs } from "../schemas.js";
2
+ import { ToolResult } from "../types.js";
3
+ /**
4
+ * Code quality analysis tool for Atabey MCP.
5
+ *
6
+ * Performs three checks on the provided source code:
7
+ * - TypeScript type checking (checkTypes)
8
+ * - Lint checking (checkLint)
9
+ * - Code complexity analysis (checkComplexity)
10
+ */
11
+ export declare function handleAnalyzeCodeQuality(projectRoot: string, args: AnalyzeCodeQualityArgs): ToolResult;
@@ -0,0 +1,115 @@
1
+ import { execSync } from "child_process";
2
+ import fs from "fs";
3
+ import path from "path";
4
+ import { analyzePathQuality } from "../../utils/quality.js";
5
+ /**
6
+ * Code quality analysis tool for Atabey MCP.
7
+ *
8
+ * Performs three checks on the provided source code:
9
+ * - TypeScript type checking (checkTypes)
10
+ * - Lint checking (checkLint)
11
+ * - Code complexity analysis (checkComplexity)
12
+ */
13
+ export function handleAnalyzeCodeQuality(projectRoot, args) {
14
+ // Validate path parameter to prevent command injection
15
+ if (!/^[a-zA-Z0-9_./-]+$/.test(args.path)) {
16
+ return {
17
+ isError: true,
18
+ content: [{ type: "text", text: `[ERROR] Invalid path characters detected: ${args.path}` }]
19
+ };
20
+ }
21
+ const targetPath = path.resolve(projectRoot, args.path);
22
+ if (!fs.existsSync(targetPath)) {
23
+ return {
24
+ isError: true,
25
+ content: [{ type: "text", text: `[ERROR] Path does not exist: ${args.path}` }]
26
+ };
27
+ }
28
+ const results = ["# Code Quality Analysis Report", "", `**Target:** ${args.path}`, `**Timestamp:** ${new Date().toISOString()}`, ""];
29
+ let hasErrors = false;
30
+ // 1. TypeScript Type Check
31
+ if (args.checkTypes !== false) {
32
+ try {
33
+ execSync("npx tsc --noEmit", {
34
+ cwd: projectRoot,
35
+ stdio: "pipe",
36
+ timeout: 30000,
37
+ encoding: "utf8"
38
+ });
39
+ results.push("## ✅ TypeScript Check: PASSED");
40
+ results.push("No type errors found.");
41
+ }
42
+ catch (err) {
43
+ hasErrors = true;
44
+ const error = err;
45
+ const stderr = error.stderr || error.stdout || error.message || "Unknown error";
46
+ results.push("## ❌ TypeScript Check: FAILED");
47
+ results.push("```");
48
+ results.push(stderr.substring(0, 2000));
49
+ results.push("```");
50
+ }
51
+ results.push("");
52
+ }
53
+ // 2. Lint Check
54
+ if (args.checkLint !== false) {
55
+ try {
56
+ const lintOutput = execSync("npx eslint --format compact " + args.path, {
57
+ cwd: projectRoot,
58
+ stdio: "pipe",
59
+ timeout: 30000,
60
+ encoding: "utf8"
61
+ });
62
+ const lintStr = lintOutput.trim();
63
+ if (lintStr) {
64
+ results.push("## ⚠️ Lint Check: ISSUES FOUND");
65
+ results.push("```");
66
+ results.push(lintStr.substring(0, 2000));
67
+ results.push("```");
68
+ }
69
+ else {
70
+ results.push("## ✅ Lint Check: PASSED");
71
+ results.push("No lint issues found.");
72
+ }
73
+ }
74
+ catch (err) {
75
+ const error = err;
76
+ const stderr = error.stderr || error.stdout || error.message || "Unknown error";
77
+ // ESLint returns non-zero exit code when issues are found
78
+ if (stderr.includes("ESLint")) {
79
+ results.push("## ❌ Lint Check: FAILED");
80
+ results.push("```");
81
+ results.push(stderr.substring(0, 2000));
82
+ results.push("```");
83
+ }
84
+ else {
85
+ results.push("## ✅ Lint Check: PASSED (no ESLint config)");
86
+ }
87
+ }
88
+ results.push("");
89
+ }
90
+ // 3. Code Complexity Check (basic heuristic)
91
+ if (args.checkComplexity !== false) {
92
+ const qualityResult = analyzePathQuality(projectRoot, args.path);
93
+ const complexityIssues = qualityResult.issues.filter(issue => issue.type === "complexity");
94
+ if (complexityIssues.length > 0) {
95
+ hasErrors = true;
96
+ results.push(`## ⚠️ Code Complexity Issues (${complexityIssues.length})`);
97
+ complexityIssues.forEach(issue => {
98
+ results.push(`- ${issue.file}:${issue.line} — ${issue.message}`);
99
+ });
100
+ }
101
+ else {
102
+ results.push("## ✅ Code Complexity: OK");
103
+ results.push("No complexity issues found.");
104
+ }
105
+ results.push("");
106
+ }
107
+ // Summary
108
+ results.push("---");
109
+ results.push(`**Overall Status:** ${hasErrors ? "⚠️ Issues Found" : "✅ All Checks Passed"}`);
110
+ return {
111
+ content: [{ type: "text", text: results.join("\n") }],
112
+ isError: hasErrors
113
+ };
114
+ }
115
+ //# sourceMappingURL=analyze_code_quality.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze_code_quality.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/quality/analyze_code_quality.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { CheckArchitectureComplianceArgs } from "../schemas.js";
2
+ import { ToolResult } from "../types.js";
3
+ /**
4
+ * [TOOL] check_architecture_compliance
5
+ *
6
+ * Checks architectural compliance for code at the specified path:
7
+ * - Controller/Service/Repository layer separation
8
+ * - Import rules (controller → service → repository)
9
+ * - Circular dependencies
10
+ */
11
+ export declare function handleCheckArchitectureCompliance(projectRoot: string, args: CheckArchitectureComplianceArgs): ToolResult;