atabey 0.0.18 → 0.0.20

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 (570) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +14 -2
  3. package/dist/atabey/src/cli/commands/check.js +150 -13
  4. package/dist/atabey/src/cli/commands/check.js.map +1 -1
  5. package/dist/atabey/src/cli/commands/explorer.js.map +1 -1
  6. package/dist/atabey/src/cli/commands/index-codebase.js +13 -2
  7. package/dist/atabey/src/cli/commands/index-codebase.js.map +1 -1
  8. package/dist/atabey/src/cli/commands/init/scaffold-core.js +67 -8
  9. package/dist/atabey/src/cli/commands/init/scaffold-core.js.map +1 -1
  10. package/dist/atabey/src/cli/commands/init.js +12 -4
  11. package/dist/atabey/src/cli/commands/init.js.map +1 -1
  12. package/dist/atabey/src/cli/commands/mcp.js +21 -25
  13. package/dist/atabey/src/cli/commands/mcp.js.map +1 -1
  14. package/dist/atabey/src/cli/commands/orchestrate.d.ts +11 -10
  15. package/dist/atabey/src/cli/commands/orchestrate.js +49 -24
  16. package/dist/atabey/src/cli/commands/orchestrate.js.map +1 -1
  17. package/dist/atabey/src/cli/index.js +8 -1
  18. package/dist/atabey/src/cli/index.js.map +1 -1
  19. package/dist/atabey/src/cli/platforms/core.d.ts +4 -0
  20. package/dist/atabey/src/cli/platforms/core.js +12 -8
  21. package/dist/atabey/src/cli/platforms/core.js.map +1 -1
  22. package/dist/atabey/src/cli/platforms/index.d.ts +1 -1
  23. package/dist/atabey/src/cli/platforms/index.js +1 -1
  24. package/dist/atabey/src/cli/platforms/index.js.map +1 -1
  25. package/dist/atabey/src/cli/utils/config-schema.d.ts +117 -0
  26. package/dist/atabey/src/cli/utils/config-schema.js +25 -1
  27. package/dist/atabey/src/cli/utils/config-schema.js.map +1 -1
  28. package/dist/atabey/src/cli/utils/memory.d.ts +13 -7
  29. package/dist/atabey/src/cli/utils/memory.js +74 -16
  30. package/dist/atabey/src/cli/utils/memory.js.map +1 -1
  31. package/dist/atabey/src/cli/utils/quality.js +2 -7
  32. package/dist/atabey/src/cli/utils/quality.js.map +1 -1
  33. package/dist/atabey/src/cli/utils/schemas.d.ts +8 -8
  34. package/dist/atabey/src/contracts/tasks.d.ts +6 -6
  35. package/dist/atabey/src/modules/agents/definitions.js +9 -14
  36. package/dist/atabey/src/modules/agents/definitions.js.map +1 -1
  37. package/dist/atabey/src/modules/agents/registry/manager.js +1 -1
  38. package/dist/atabey/src/modules/agents/registry/manager.js.map +1 -1
  39. package/dist/atabey/src/modules/engines/crud-governance.d.ts +4 -2
  40. package/dist/atabey/src/modules/engines/crud-governance.js +41 -6
  41. package/dist/atabey/src/modules/engines/crud-governance.js.map +1 -1
  42. package/dist/atabey/src/modules/skills/adapter-skills.d.ts +2 -0
  43. package/dist/atabey/src/modules/skills/adapter-skills.js.map +1 -1
  44. package/dist/atabey/src/shared/audit.d.ts +1 -105
  45. package/dist/atabey/src/shared/audit.js +1 -220
  46. package/dist/atabey/src/shared/audit.js.map +1 -1
  47. package/dist/atabey/src/shared/constants.d.ts +1 -120
  48. package/dist/atabey/src/shared/constants.js +1 -187
  49. package/dist/atabey/src/shared/constants.js.map +1 -1
  50. package/dist/atabey/src/shared/errors.d.ts +1 -46
  51. package/dist/atabey/src/shared/errors.js +1 -68
  52. package/dist/atabey/src/shared/errors.js.map +1 -1
  53. package/dist/atabey/src/shared/fs.d.ts +1 -9
  54. package/dist/atabey/src/shared/fs.js +1 -53
  55. package/dist/atabey/src/shared/fs.js.map +1 -1
  56. package/dist/atabey/src/shared/lock.d.ts +1 -82
  57. package/dist/atabey/src/shared/lock.js +1 -159
  58. package/dist/atabey/src/shared/lock.js.map +1 -1
  59. package/dist/atabey/src/shared/logger.d.ts +1 -30
  60. package/dist/atabey/src/shared/logger.js +1 -126
  61. package/dist/atabey/src/shared/logger.js.map +1 -1
  62. package/dist/atabey/src/shared/pii.d.ts +1 -69
  63. package/dist/atabey/src/shared/pii.js +1 -212
  64. package/dist/atabey/src/shared/pii.js.map +1 -1
  65. package/dist/atabey/src/shared/retention.d.ts +1 -63
  66. package/dist/atabey/src/shared/retention.js +1 -170
  67. package/dist/atabey/src/shared/retention.js.map +1 -1
  68. package/dist/atabey/src/shared/storage.js +7 -3
  69. package/dist/atabey/src/shared/storage.js.map +1 -1
  70. package/dist/atabey/src/shared/string.d.ts +1 -1
  71. package/dist/atabey/src/shared/string.js +1 -29
  72. package/dist/atabey/src/shared/string.js.map +1 -1
  73. package/dist/atabey/src/shared/types.d.ts +1 -27
  74. package/dist/atabey/src/shared/types.js +1 -16
  75. package/dist/atabey/src/shared/types.js.map +1 -1
  76. package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js +1 -1
  77. package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js.map +1 -1
  78. package/dist/atabey-mcp/src/mcp/utils/finops.d.ts +7 -11
  79. package/dist/atabey-mcp/src/mcp/utils/finops.js +24 -26
  80. package/dist/atabey-mcp/src/mcp/utils/finops.js.map +1 -1
  81. package/dist/atabey-mcp/src/shared/logger.d.ts +1 -30
  82. package/dist/atabey-mcp/src/shared/logger.js +1 -126
  83. package/dist/atabey-mcp/src/shared/logger.js.map +1 -1
  84. package/dist/atabey-mcp/src/shared/pii.d.ts +1 -69
  85. package/dist/atabey-mcp/src/shared/pii.js +1 -212
  86. package/dist/atabey-mcp/src/shared/pii.js.map +1 -1
  87. package/dist/atabey-mcp/src/shared/storage.js +3 -1
  88. package/dist/atabey-mcp/src/shared/storage.js.map +1 -1
  89. package/dist/atabey-mcp/src/shared/types.d.ts +1 -27
  90. package/dist/atabey-mcp/src/shared/types.js +1 -16
  91. package/dist/atabey-mcp/src/shared/types.js.map +1 -1
  92. package/dist/{src/shared → shared/src}/audit.js +8 -8
  93. package/dist/shared/src/audit.js.map +1 -0
  94. package/dist/{src/shared → shared/src}/constants.d.ts +30 -1
  95. package/dist/{src/shared → shared/src}/constants.js +25 -2
  96. package/dist/shared/src/constants.js.map +1 -0
  97. package/dist/shared/src/database.d.ts +5 -0
  98. package/dist/shared/src/database.js +13 -0
  99. package/dist/shared/src/database.js.map +1 -0
  100. package/dist/shared/src/errors.js.map +1 -0
  101. package/dist/shared/src/fs.js.map +1 -0
  102. package/dist/shared/src/index.d.ts +11 -0
  103. package/dist/shared/src/index.js +12 -0
  104. package/dist/shared/src/index.js.map +1 -0
  105. package/dist/{src/shared → shared/src}/lock.js +22 -26
  106. package/dist/shared/src/lock.js.map +1 -0
  107. package/dist/shared/src/logger.js.map +1 -0
  108. package/dist/{src/shared → shared/src}/pii.js +4 -1
  109. package/dist/shared/src/pii.js.map +1 -0
  110. package/dist/{src/shared → shared/src}/retention.js +6 -6
  111. package/dist/shared/src/retention.js.map +1 -0
  112. package/dist/shared/src/string.js.map +1 -0
  113. package/dist/shared/src/types.js.map +1 -0
  114. package/package.json +19 -3
  115. package/dist/atabey-mcp/src/mcp/utils/quality.d.ts +0 -19
  116. package/dist/atabey-mcp/src/mcp/utils/quality.js +0 -125
  117. package/dist/atabey-mcp/src/mcp/utils/quality.js.map +0 -1
  118. package/dist/atabey-mcp/src/shared/fs.js.map +0 -1
  119. package/dist/src/cli/commands/approve.d.ts +0 -1
  120. package/dist/src/cli/commands/approve.js +0 -64
  121. package/dist/src/cli/commands/approve.js.map +0 -1
  122. package/dist/src/cli/commands/check.d.ts +0 -1
  123. package/dist/src/cli/commands/check.js +0 -197
  124. package/dist/src/cli/commands/check.js.map +0 -1
  125. package/dist/src/cli/commands/compliance.d.ts +0 -5
  126. package/dist/src/cli/commands/compliance.js +0 -43
  127. package/dist/src/cli/commands/compliance.js.map +0 -1
  128. package/dist/src/cli/commands/contract.d.ts +0 -10
  129. package/dist/src/cli/commands/contract.js +0 -52
  130. package/dist/src/cli/commands/contract.js.map +0 -1
  131. package/dist/src/cli/commands/coverage.d.ts +0 -1
  132. package/dist/src/cli/commands/coverage.js +0 -121
  133. package/dist/src/cli/commands/coverage.js.map +0 -1
  134. package/dist/src/cli/commands/dashboard.d.ts +0 -5
  135. package/dist/src/cli/commands/dashboard.js +0 -753
  136. package/dist/src/cli/commands/dashboard.js.map +0 -1
  137. package/dist/src/cli/commands/explorer.d.ts +0 -2
  138. package/dist/src/cli/commands/explorer.js +0 -44
  139. package/dist/src/cli/commands/explorer.js.map +0 -1
  140. package/dist/src/cli/commands/git.d.ts +0 -2
  141. package/dist/src/cli/commands/git.js +0 -40
  142. package/dist/src/cli/commands/git.js.map +0 -1
  143. package/dist/src/cli/commands/index-codebase.d.ts +0 -4
  144. package/dist/src/cli/commands/index-codebase.js +0 -52
  145. package/dist/src/cli/commands/index-codebase.js.map +0 -1
  146. package/dist/src/cli/commands/init/create-agent.d.ts +0 -4
  147. package/dist/src/cli/commands/init/create-agent.js +0 -59
  148. package/dist/src/cli/commands/init/create-agent.js.map +0 -1
  149. package/dist/src/cli/commands/init/scaffold-core.d.ts +0 -13
  150. package/dist/src/cli/commands/init/scaffold-core.js +0 -129
  151. package/dist/src/cli/commands/init/scaffold-core.js.map +0 -1
  152. package/dist/src/cli/commands/init/scaffold-docs.d.ts +0 -4
  153. package/dist/src/cli/commands/init/scaffold-docs.js +0 -36
  154. package/dist/src/cli/commands/init/scaffold-docs.js.map +0 -1
  155. package/dist/src/cli/commands/init/scaffold-ops.d.ts +0 -1
  156. package/dist/src/cli/commands/init/scaffold-ops.js +0 -81
  157. package/dist/src/cli/commands/init/scaffold-ops.js.map +0 -1
  158. package/dist/src/cli/commands/init/scaffold-standards.d.ts +0 -2
  159. package/dist/src/cli/commands/init/scaffold-standards.js +0 -84
  160. package/dist/src/cli/commands/init/scaffold-standards.js.map +0 -1
  161. package/dist/src/cli/commands/init.d.ts +0 -11
  162. package/dist/src/cli/commands/init.js +0 -362
  163. package/dist/src/cli/commands/init.js.map +0 -1
  164. package/dist/src/cli/commands/knowledge.d.ts +0 -2
  165. package/dist/src/cli/commands/knowledge.js +0 -16
  166. package/dist/src/cli/commands/knowledge.js.map +0 -1
  167. package/dist/src/cli/commands/lint.d.ts +0 -4
  168. package/dist/src/cli/commands/lint.js +0 -24
  169. package/dist/src/cli/commands/lint.js.map +0 -1
  170. package/dist/src/cli/commands/log.d.ts +0 -10
  171. package/dist/src/cli/commands/log.js +0 -14
  172. package/dist/src/cli/commands/log.js.map +0 -1
  173. package/dist/src/cli/commands/mcp.d.ts +0 -11
  174. package/dist/src/cli/commands/mcp.js +0 -132
  175. package/dist/src/cli/commands/mcp.js.map +0 -1
  176. package/dist/src/cli/commands/memory.d.ts +0 -1
  177. package/dist/src/cli/commands/memory.js +0 -5
  178. package/dist/src/cli/commands/memory.js.map +0 -1
  179. package/dist/src/cli/commands/orchestrate.d.ts +0 -61
  180. package/dist/src/cli/commands/orchestrate.js +0 -238
  181. package/dist/src/cli/commands/orchestrate.js.map +0 -1
  182. package/dist/src/cli/commands/plan.d.ts +0 -11
  183. package/dist/src/cli/commands/plan.js +0 -120
  184. package/dist/src/cli/commands/plan.js.map +0 -1
  185. package/dist/src/cli/commands/quickstart.d.ts +0 -9
  186. package/dist/src/cli/commands/quickstart.js +0 -60
  187. package/dist/src/cli/commands/quickstart.js.map +0 -1
  188. package/dist/src/cli/commands/script.d.ts +0 -1
  189. package/dist/src/cli/commands/script.js +0 -28
  190. package/dist/src/cli/commands/script.js.map +0 -1
  191. package/dist/src/cli/commands/security.d.ts +0 -1
  192. package/dist/src/cli/commands/security.js +0 -34
  193. package/dist/src/cli/commands/security.js.map +0 -1
  194. package/dist/src/cli/commands/status.d.ts +0 -4
  195. package/dist/src/cli/commands/status.js +0 -122
  196. package/dist/src/cli/commands/status.js.map +0 -1
  197. package/dist/src/cli/commands/trace.d.ts +0 -10
  198. package/dist/src/cli/commands/trace.js +0 -108
  199. package/dist/src/cli/commands/trace.js.map +0 -1
  200. package/dist/src/cli/index.d.ts +0 -2
  201. package/dist/src/cli/index.js +0 -282
  202. package/dist/src/cli/index.js.map +0 -1
  203. package/dist/src/cli/platforms/core.d.ts +0 -12
  204. package/dist/src/cli/platforms/core.js +0 -73
  205. package/dist/src/cli/platforms/core.js.map +0 -1
  206. package/dist/src/cli/platforms/index.d.ts +0 -5
  207. package/dist/src/cli/platforms/index.js +0 -6
  208. package/dist/src/cli/platforms/index.js.map +0 -1
  209. package/dist/src/cli/platforms/paths.d.ts +0 -15
  210. package/dist/src/cli/platforms/paths.js +0 -102
  211. package/dist/src/cli/platforms/paths.js.map +0 -1
  212. package/dist/src/cli/platforms/scaffold.d.ts +0 -2
  213. package/dist/src/cli/platforms/scaffold.js +0 -73
  214. package/dist/src/cli/platforms/scaffold.js.map +0 -1
  215. package/dist/src/cli/platforms/utils.d.ts +0 -4
  216. package/dist/src/cli/platforms/utils.js +0 -76
  217. package/dist/src/cli/platforms/utils.js.map +0 -1
  218. package/dist/src/cli/shims.d.ts +0 -1
  219. package/dist/src/cli/shims.js +0 -67
  220. package/dist/src/cli/shims.js.map +0 -1
  221. package/dist/src/cli/utils/claude.d.ts +0 -8
  222. package/dist/src/cli/utils/claude.js +0 -58
  223. package/dist/src/cli/utils/claude.js.map +0 -1
  224. package/dist/src/cli/utils/compliance.d.ts +0 -42
  225. package/dist/src/cli/utils/compliance.js +0 -150
  226. package/dist/src/cli/utils/compliance.js.map +0 -1
  227. package/dist/src/cli/utils/config-schema.d.ts +0 -139
  228. package/dist/src/cli/utils/config-schema.js +0 -43
  229. package/dist/src/cli/utils/config-schema.js.map +0 -1
  230. package/dist/src/cli/utils/fs.d.ts +0 -10
  231. package/dist/src/cli/utils/fs.js +0 -139
  232. package/dist/src/cli/utils/fs.js.map +0 -1
  233. package/dist/src/cli/utils/i18n.d.ts +0 -21
  234. package/dist/src/cli/utils/i18n.js +0 -36
  235. package/dist/src/cli/utils/i18n.js.map +0 -1
  236. package/dist/src/cli/utils/memory.d.ts +0 -39
  237. package/dist/src/cli/utils/memory.js +0 -281
  238. package/dist/src/cli/utils/memory.js.map +0 -1
  239. package/dist/src/cli/utils/pkg.d.ts +0 -43
  240. package/dist/src/cli/utils/pkg.js +0 -283
  241. package/dist/src/cli/utils/pkg.js.map +0 -1
  242. package/dist/src/cli/utils/quality.d.ts +0 -8
  243. package/dist/src/cli/utils/quality.js +0 -8
  244. package/dist/src/cli/utils/quality.js.map +0 -1
  245. package/dist/src/cli/utils/schemas.d.ts +0 -49
  246. package/dist/src/cli/utils/schemas.js +0 -20
  247. package/dist/src/cli/utils/schemas.js.map +0 -1
  248. package/dist/src/cli/utils/string.d.ts +0 -7
  249. package/dist/src/cli/utils/string.js +0 -50
  250. package/dist/src/cli/utils/string.js.map +0 -1
  251. package/dist/src/cli/utils/time.d.ts +0 -2
  252. package/dist/src/cli/utils/time.js +0 -28
  253. package/dist/src/cli/utils/time.js.map +0 -1
  254. package/dist/src/cli/utils/ui.d.ts +0 -53
  255. package/dist/src/cli/utils/ui.js +0 -101
  256. package/dist/src/cli/utils/ui.js.map +0 -1
  257. package/dist/src/contracts/index.d.ts +0 -1
  258. package/dist/src/contracts/index.js +0 -2
  259. package/dist/src/contracts/index.js.map +0 -1
  260. package/dist/src/contracts/tasks.d.ts +0 -44
  261. package/dist/src/contracts/tasks.js +0 -21
  262. package/dist/src/contracts/tasks.js.map +0 -1
  263. package/dist/src/modules/agents/definitions.d.ts +0 -26
  264. package/dist/src/modules/agents/definitions.js +0 -564
  265. package/dist/src/modules/agents/definitions.js.map +0 -1
  266. package/dist/src/modules/agents/registry/analyst.d.ts +0 -2
  267. package/dist/src/modules/agents/registry/analyst.js +0 -40
  268. package/dist/src/modules/agents/registry/analyst.js.map +0 -1
  269. package/dist/src/modules/agents/registry/architect.d.ts +0 -2
  270. package/dist/src/modules/agents/registry/architect.js +0 -43
  271. package/dist/src/modules/agents/registry/architect.js.map +0 -1
  272. package/dist/src/modules/agents/registry/backend.d.ts +0 -2
  273. package/dist/src/modules/agents/registry/backend.js +0 -51
  274. package/dist/src/modules/agents/registry/backend.js.map +0 -1
  275. package/dist/src/modules/agents/registry/database.d.ts +0 -2
  276. package/dist/src/modules/agents/registry/database.js +0 -46
  277. package/dist/src/modules/agents/registry/database.js.map +0 -1
  278. package/dist/src/modules/agents/registry/devops.d.ts +0 -2
  279. package/dist/src/modules/agents/registry/devops.js +0 -46
  280. package/dist/src/modules/agents/registry/devops.js.map +0 -1
  281. package/dist/src/modules/agents/registry/explorer.d.ts +0 -2
  282. package/dist/src/modules/agents/registry/explorer.js +0 -38
  283. package/dist/src/modules/agents/registry/explorer.js.map +0 -1
  284. package/dist/src/modules/agents/registry/frontend.d.ts +0 -2
  285. package/dist/src/modules/agents/registry/frontend.js +0 -53
  286. package/dist/src/modules/agents/registry/frontend.js.map +0 -1
  287. package/dist/src/modules/agents/registry/git.d.ts +0 -2
  288. package/dist/src/modules/agents/registry/git.js +0 -37
  289. package/dist/src/modules/agents/registry/git.js.map +0 -1
  290. package/dist/src/modules/agents/registry/manager.d.ts +0 -2
  291. package/dist/src/modules/agents/registry/manager.js +0 -65
  292. package/dist/src/modules/agents/registry/manager.js.map +0 -1
  293. package/dist/src/modules/agents/registry/mobile.d.ts +0 -2
  294. package/dist/src/modules/agents/registry/mobile.js +0 -42
  295. package/dist/src/modules/agents/registry/mobile.js.map +0 -1
  296. package/dist/src/modules/agents/registry/native.d.ts +0 -2
  297. package/dist/src/modules/agents/registry/native.js +0 -42
  298. package/dist/src/modules/agents/registry/native.js.map +0 -1
  299. package/dist/src/modules/agents/registry/quality.d.ts +0 -2
  300. package/dist/src/modules/agents/registry/quality.js +0 -44
  301. package/dist/src/modules/agents/registry/quality.js.map +0 -1
  302. package/dist/src/modules/agents/registry/security.d.ts +0 -2
  303. package/dist/src/modules/agents/registry/security.js +0 -43
  304. package/dist/src/modules/agents/registry/security.js.map +0 -1
  305. package/dist/src/modules/agents/types.d.ts +0 -33
  306. package/dist/src/modules/agents/types.js +0 -2
  307. package/dist/src/modules/agents/types.js.map +0 -1
  308. package/dist/src/modules/contracts/api.d.ts +0 -178
  309. package/dist/src/modules/contracts/api.js +0 -56
  310. package/dist/src/modules/contracts/api.js.map +0 -1
  311. package/dist/src/modules/contracts/index.d.ts +0 -5
  312. package/dist/src/modules/contracts/index.js +0 -6
  313. package/dist/src/modules/contracts/index.js.map +0 -1
  314. package/dist/src/modules/engines/agent-executor.d.ts +0 -46
  315. package/dist/src/modules/engines/agent-executor.js +0 -241
  316. package/dist/src/modules/engines/agent-executor.js.map +0 -1
  317. package/dist/src/modules/engines/agent-loop.d.ts +0 -34
  318. package/dist/src/modules/engines/agent-loop.js +0 -102
  319. package/dist/src/modules/engines/agent-loop.js.map +0 -1
  320. package/dist/src/modules/engines/contract-engine.d.ts +0 -46
  321. package/dist/src/modules/engines/contract-engine.js +0 -116
  322. package/dist/src/modules/engines/contract-engine.js.map +0 -1
  323. package/dist/src/modules/engines/crud-governance.d.ts +0 -64
  324. package/dist/src/modules/engines/crud-governance.js +0 -184
  325. package/dist/src/modules/engines/crud-governance.js.map +0 -1
  326. package/dist/src/modules/engines/discovery-engine.d.ts +0 -42
  327. package/dist/src/modules/engines/discovery-engine.js +0 -161
  328. package/dist/src/modules/engines/discovery-engine.js.map +0 -1
  329. package/dist/src/modules/engines/evaluation-engine.d.ts +0 -18
  330. package/dist/src/modules/engines/evaluation-engine.js +0 -171
  331. package/dist/src/modules/engines/evaluation-engine.js.map +0 -1
  332. package/dist/src/modules/engines/file-lock.d.ts +0 -41
  333. package/dist/src/modules/engines/file-lock.js +0 -168
  334. package/dist/src/modules/engines/file-lock.js.map +0 -1
  335. package/dist/src/modules/engines/health-engine.d.ts +0 -22
  336. package/dist/src/modules/engines/health-engine.js +0 -127
  337. package/dist/src/modules/engines/health-engine.js.map +0 -1
  338. package/dist/src/modules/engines/phase-engine.d.ts +0 -82
  339. package/dist/src/modules/engines/phase-engine.js +0 -211
  340. package/dist/src/modules/engines/phase-engine.js.map +0 -1
  341. package/dist/src/modules/engines/planning-engine.d.ts +0 -25
  342. package/dist/src/modules/engines/planning-engine.js +0 -80
  343. package/dist/src/modules/engines/planning-engine.js.map +0 -1
  344. package/dist/src/modules/engines/policy-engine.d.ts +0 -63
  345. package/dist/src/modules/engines/policy-engine.js +0 -186
  346. package/dist/src/modules/engines/policy-engine.js.map +0 -1
  347. package/dist/src/modules/engines/quality-gate.d.ts +0 -31
  348. package/dist/src/modules/engines/quality-gate.js +0 -95
  349. package/dist/src/modules/engines/quality-gate.js.map +0 -1
  350. package/dist/src/modules/engines/risk-engine.d.ts +0 -34
  351. package/dist/src/modules/engines/risk-engine.js +0 -201
  352. package/dist/src/modules/engines/risk-engine.js.map +0 -1
  353. package/dist/src/modules/engines/routing-engine.d.ts +0 -96
  354. package/dist/src/modules/engines/routing-engine.js +0 -505
  355. package/dist/src/modules/engines/routing-engine.js.map +0 -1
  356. package/dist/src/modules/engines/session-engine.d.ts +0 -68
  357. package/dist/src/modules/engines/session-engine.js +0 -141
  358. package/dist/src/modules/engines/session-engine.js.map +0 -1
  359. package/dist/src/modules/engines/types.d.ts +0 -51
  360. package/dist/src/modules/engines/types.js +0 -2
  361. package/dist/src/modules/engines/types.js.map +0 -1
  362. package/dist/src/modules/memory/core.d.ts +0 -42
  363. package/dist/src/modules/memory/core.js +0 -100
  364. package/dist/src/modules/memory/core.js.map +0 -1
  365. package/dist/src/modules/memory/embedding.d.ts +0 -28
  366. package/dist/src/modules/memory/embedding.js +0 -131
  367. package/dist/src/modules/memory/embedding.js.map +0 -1
  368. package/dist/src/modules/memory/types.d.ts +0 -18
  369. package/dist/src/modules/memory/types.js +0 -2
  370. package/dist/src/modules/memory/types.js.map +0 -1
  371. package/dist/src/modules/memory/vector-store.d.ts +0 -13
  372. package/dist/src/modules/memory/vector-store.js +0 -75
  373. package/dist/src/modules/memory/vector-store.js.map +0 -1
  374. package/dist/src/modules/providers/definitions.d.ts +0 -9
  375. package/dist/src/modules/providers/definitions.js +0 -141
  376. package/dist/src/modules/providers/definitions.js.map +0 -1
  377. package/dist/src/modules/providers/llm-provider.d.ts +0 -87
  378. package/dist/src/modules/providers/llm-provider.js +0 -242
  379. package/dist/src/modules/providers/llm-provider.js.map +0 -1
  380. package/dist/src/modules/providers/registry.d.ts +0 -12
  381. package/dist/src/modules/providers/registry.js +0 -19
  382. package/dist/src/modules/providers/registry.js.map +0 -1
  383. package/dist/src/modules/providers/shared.d.ts +0 -1
  384. package/dist/src/modules/providers/shared.js +0 -104
  385. package/dist/src/modules/providers/shared.js.map +0 -1
  386. package/dist/src/modules/providers/types.d.ts +0 -14
  387. package/dist/src/modules/providers/types.js +0 -2
  388. package/dist/src/modules/providers/types.js.map +0 -1
  389. package/dist/src/modules/skills/adapter-skills.d.ts +0 -68
  390. package/dist/src/modules/skills/adapter-skills.js +0 -450
  391. package/dist/src/modules/skills/adapter-skills.js.map +0 -1
  392. package/dist/src/modules/skills/definitions.d.ts +0 -48
  393. package/dist/src/modules/skills/definitions.js +0 -71
  394. package/dist/src/modules/skills/definitions.js.map +0 -1
  395. package/dist/src/shared/audit.js.map +0 -1
  396. package/dist/src/shared/constants.js.map +0 -1
  397. package/dist/src/shared/errors.js.map +0 -1
  398. package/dist/src/shared/fs.d.ts +0 -9
  399. package/dist/src/shared/fs.js +0 -54
  400. package/dist/src/shared/fs.js.map +0 -1
  401. package/dist/src/shared/lock.js.map +0 -1
  402. package/dist/src/shared/logger.js.map +0 -1
  403. package/dist/src/shared/pii.js.map +0 -1
  404. package/dist/src/shared/retention.js.map +0 -1
  405. package/dist/src/shared/storage.d.ts +0 -141
  406. package/dist/src/shared/storage.js +0 -326
  407. package/dist/src/shared/storage.js.map +0 -1
  408. package/dist/src/shared/string.js.map +0 -1
  409. package/dist/src/shared/types.js.map +0 -1
  410. package/dist/tests/adapter.test.d.ts +0 -1
  411. package/dist/tests/adapter.test.js +0 -130
  412. package/dist/tests/adapter.test.js.map +0 -1
  413. package/dist/tests/adapters/paths.test.d.ts +0 -1
  414. package/dist/tests/adapters/paths.test.js +0 -63
  415. package/dist/tests/adapters/paths.test.js.map +0 -1
  416. package/dist/tests/agent-memory-v2.test.d.ts +0 -1
  417. package/dist/tests/agent-memory-v2.test.js +0 -68
  418. package/dist/tests/agent-memory-v2.test.js.map +0 -1
  419. package/dist/tests/agents-definitions.test.d.ts +0 -1
  420. package/dist/tests/agents-definitions.test.js +0 -103
  421. package/dist/tests/agents-definitions.test.js.map +0 -1
  422. package/dist/tests/approve.test.d.ts +0 -1
  423. package/dist/tests/approve.test.js +0 -52
  424. package/dist/tests/approve.test.js.map +0 -1
  425. package/dist/tests/cli/commands/check.test.d.ts +0 -1
  426. package/dist/tests/cli/commands/check.test.js +0 -9
  427. package/dist/tests/cli/commands/check.test.js.map +0 -1
  428. package/dist/tests/cli/commands/coverage.test.d.ts +0 -1
  429. package/dist/tests/cli/commands/coverage.test.js +0 -9
  430. package/dist/tests/cli/commands/coverage.test.js.map +0 -1
  431. package/dist/tests/cli/commands/dashboard-coverage.test.d.ts +0 -1
  432. package/dist/tests/cli/commands/dashboard-coverage.test.js +0 -90
  433. package/dist/tests/cli/commands/dashboard-coverage.test.js.map +0 -1
  434. package/dist/tests/cli/commands/exports.test.d.ts +0 -1
  435. package/dist/tests/cli/commands/exports.test.js +0 -61
  436. package/dist/tests/cli/commands/exports.test.js.map +0 -1
  437. package/dist/tests/cli/commands/lint.test.d.ts +0 -1
  438. package/dist/tests/cli/commands/lint.test.js +0 -9
  439. package/dist/tests/cli/commands/lint.test.js.map +0 -1
  440. package/dist/tests/cli/init/adapter_init.test.d.ts +0 -1
  441. package/dist/tests/cli/init/adapter_init.test.js +0 -49
  442. package/dist/tests/cli/init/adapter_init.test.js.map +0 -1
  443. package/dist/tests/cli/init/unified_init.test.d.ts +0 -1
  444. package/dist/tests/cli/init/unified_init.test.js +0 -56
  445. package/dist/tests/cli/init/unified_init.test.js.map +0 -1
  446. package/dist/tests/core-memory.test.d.ts +0 -1
  447. package/dist/tests/core-memory.test.js +0 -78
  448. package/dist/tests/core-memory.test.js.map +0 -1
  449. package/dist/tests/embedding.test.d.ts +0 -1
  450. package/dist/tests/embedding.test.js +0 -82
  451. package/dist/tests/embedding.test.js.map +0 -1
  452. package/dist/tests/engines/evaluation-engine.test.d.ts +0 -1
  453. package/dist/tests/engines/evaluation-engine.test.js +0 -71
  454. package/dist/tests/engines/evaluation-engine.test.js.map +0 -1
  455. package/dist/tests/engines/planning-engine.test.d.ts +0 -1
  456. package/dist/tests/engines/planning-engine.test.js +0 -100
  457. package/dist/tests/engines/planning-engine.test.js.map +0 -1
  458. package/dist/tests/engines/quality-gate.test.d.ts +0 -1
  459. package/dist/tests/engines/quality-gate.test.js +0 -59
  460. package/dist/tests/engines/quality-gate.test.js.map +0 -1
  461. package/dist/tests/engines/risk-engine.test.d.ts +0 -1
  462. package/dist/tests/engines/risk-engine.test.js +0 -80
  463. package/dist/tests/engines/risk-engine.test.js.map +0 -1
  464. package/dist/tests/engines/routing-engine.test.d.ts +0 -1
  465. package/dist/tests/engines/routing-engine.test.js +0 -78
  466. package/dist/tests/engines/routing-engine.test.js.map +0 -1
  467. package/dist/tests/errors.test.d.ts +0 -1
  468. package/dist/tests/errors.test.js +0 -64
  469. package/dist/tests/errors.test.js.map +0 -1
  470. package/dist/tests/fs-utils.test.d.ts +0 -1
  471. package/dist/tests/fs-utils.test.js +0 -101
  472. package/dist/tests/fs-utils.test.js.map +0 -1
  473. package/dist/tests/integration/agent_flow.test.d.ts +0 -1
  474. package/dist/tests/integration/agent_flow.test.js +0 -69
  475. package/dist/tests/integration/agent_flow.test.js.map +0 -1
  476. package/dist/tests/integration/hermes_locking.test.d.ts +0 -1
  477. package/dist/tests/integration/hermes_locking.test.js +0 -62
  478. package/dist/tests/integration/hermes_locking.test.js.map +0 -1
  479. package/dist/tests/logger.test.d.ts +0 -1
  480. package/dist/tests/logger.test.js +0 -81
  481. package/dist/tests/logger.test.js.map +0 -1
  482. package/dist/tests/memory-utils.test.d.ts +0 -1
  483. package/dist/tests/memory-utils.test.js +0 -59
  484. package/dist/tests/memory-utils.test.js.map +0 -1
  485. package/dist/tests/modules/adapters/adapters.test.d.ts +0 -1
  486. package/dist/tests/modules/adapters/adapters.test.js +0 -30
  487. package/dist/tests/modules/adapters/adapters.test.js.map +0 -1
  488. package/dist/tests/modules/contracts/contracts.test.d.ts +0 -1
  489. package/dist/tests/modules/contracts/contracts.test.js +0 -73
  490. package/dist/tests/modules/contracts/contracts.test.js.map +0 -1
  491. package/dist/tests/modules/engines/agent-executor.test.d.ts +0 -1
  492. package/dist/tests/modules/engines/agent-executor.test.js +0 -61
  493. package/dist/tests/modules/engines/agent-executor.test.js.map +0 -1
  494. package/dist/tests/modules/engines/evaluation-engine.test.d.ts +0 -1
  495. package/dist/tests/modules/engines/evaluation-engine.test.js +0 -45
  496. package/dist/tests/modules/engines/evaluation-engine.test.js.map +0 -1
  497. package/dist/tests/modules/engines/health-engine.test.d.ts +0 -1
  498. package/dist/tests/modules/engines/health-engine.test.js +0 -56
  499. package/dist/tests/modules/engines/health-engine.test.js.map +0 -1
  500. package/dist/tests/modules/engines/planning-engine.test.d.ts +0 -1
  501. package/dist/tests/modules/engines/planning-engine.test.js +0 -75
  502. package/dist/tests/modules/engines/planning-engine.test.js.map +0 -1
  503. package/dist/tests/modules/engines/risk-engine.test.d.ts +0 -1
  504. package/dist/tests/modules/engines/risk-engine.test.js +0 -61
  505. package/dist/tests/modules/engines/risk-engine.test.js.map +0 -1
  506. package/dist/tests/modules/engines/routing-engine.test.d.ts +0 -1
  507. package/dist/tests/modules/engines/routing-engine.test.js +0 -56
  508. package/dist/tests/modules/engines/routing-engine.test.js.map +0 -1
  509. package/dist/tests/modules/memory/vector-store.test.d.ts +0 -1
  510. package/dist/tests/modules/memory/vector-store.test.js +0 -109
  511. package/dist/tests/modules/memory/vector-store.test.js.map +0 -1
  512. package/dist/tests/orchestrate.test.d.ts +0 -1
  513. package/dist/tests/orchestrate.test.js +0 -71
  514. package/dist/tests/orchestrate.test.js.map +0 -1
  515. package/dist/tests/orchestrator-dependencies.test.d.ts +0 -1
  516. package/dist/tests/orchestrator-dependencies.test.js +0 -70
  517. package/dist/tests/orchestrator-dependencies.test.js.map +0 -1
  518. package/dist/tests/plan.test.d.ts +0 -1
  519. package/dist/tests/plan.test.js +0 -63
  520. package/dist/tests/plan.test.js.map +0 -1
  521. package/dist/tests/shared/audit.test.d.ts +0 -1
  522. package/dist/tests/shared/audit.test.js +0 -53
  523. package/dist/tests/shared/audit.test.js.map +0 -1
  524. package/dist/tests/shared/constants.test.d.ts +0 -1
  525. package/dist/tests/shared/constants.test.js +0 -17
  526. package/dist/tests/shared/constants.test.js.map +0 -1
  527. package/dist/tests/shared/lock.test.d.ts +0 -1
  528. package/dist/tests/shared/lock.test.js +0 -95
  529. package/dist/tests/shared/lock.test.js.map +0 -1
  530. package/dist/tests/shared/pii.test.d.ts +0 -1
  531. package/dist/tests/shared/pii.test.js +0 -183
  532. package/dist/tests/shared/pii.test.js.map +0 -1
  533. package/dist/tests/skills-definitions.test.d.ts +0 -1
  534. package/dist/tests/skills-definitions.test.js +0 -34
  535. package/dist/tests/skills-definitions.test.js.map +0 -1
  536. package/dist/tests/status-cost.test.d.ts +0 -1
  537. package/dist/tests/status-cost.test.js +0 -47
  538. package/dist/tests/status-cost.test.js.map +0 -1
  539. package/dist/tests/status.test.d.ts +0 -1
  540. package/dist/tests/status.test.js +0 -49
  541. package/dist/tests/status.test.js.map +0 -1
  542. package/dist/tests/storage-operations.test.d.ts +0 -1
  543. package/dist/tests/storage-operations.test.js +0 -143
  544. package/dist/tests/storage-operations.test.js.map +0 -1
  545. package/dist/tests/string.test.d.ts +0 -1
  546. package/dist/tests/string.test.js +0 -89
  547. package/dist/tests/string.test.js.map +0 -1
  548. package/dist/tests/time.test.d.ts +0 -1
  549. package/dist/tests/time.test.js +0 -48
  550. package/dist/tests/time.test.js.map +0 -1
  551. package/dist/tests/trace-replay.test.d.ts +0 -1
  552. package/dist/tests/trace-replay.test.js +0 -59
  553. package/dist/tests/trace-replay.test.js.map +0 -1
  554. package/dist/tests/trace.test.d.ts +0 -1
  555. package/dist/tests/trace.test.js +0 -35
  556. package/dist/tests/trace.test.js.map +0 -1
  557. /package/dist/{src/shared → shared/src}/audit.d.ts +0 -0
  558. /package/dist/{src/shared → shared/src}/errors.d.ts +0 -0
  559. /package/dist/{src/shared → shared/src}/errors.js +0 -0
  560. /package/dist/{atabey-mcp/src/shared → shared/src}/fs.d.ts +0 -0
  561. /package/dist/{atabey-mcp/src/shared → shared/src}/fs.js +0 -0
  562. /package/dist/{src/shared → shared/src}/lock.d.ts +0 -0
  563. /package/dist/{src/shared → shared/src}/logger.d.ts +0 -0
  564. /package/dist/{src/shared → shared/src}/logger.js +0 -0
  565. /package/dist/{src/shared → shared/src}/pii.d.ts +0 -0
  566. /package/dist/{src/shared → shared/src}/retention.d.ts +0 -0
  567. /package/dist/{src/shared → shared/src}/string.d.ts +0 -0
  568. /package/dist/{src/shared → shared/src}/string.js +0 -0
  569. /package/dist/{src/shared → shared/src}/types.d.ts +0 -0
  570. /package/dist/{src/shared → shared/src}/types.js +0 -0
@@ -1,753 +0,0 @@
1
- import fs from "fs";
2
- import http from "http";
3
- import path from "path";
4
- import { fileURLToPath } from "url";
5
- import { WebSocket, WebSocketServer } from "ws";
6
- import { Audit } from "../../shared/audit.js";
7
- import { FRAMEWORK } from "../../shared/constants.js";
8
- import { appendFile } from "../../shared/fs.js";
9
- import { Storage } from "../../shared/storage.js";
10
- import { asTraceID } from "../../shared/types.js";
11
- import { scanProjectCompliance } from "../utils/compliance.js";
12
- import { getFrameworkDir } from "../utils/memory.js";
13
- import { analyzePathQuality } from "../utils/quality.js";
14
- import { UI } from "../utils/ui.js";
15
- /**
16
- * Serves a JSON response.
17
- */
18
- function serveJson(res, statusCode, data) {
19
- res.writeHead(statusCode, { "Content-Type": "application/json" });
20
- res.end(JSON.stringify(data));
21
- }
22
- /**
23
- * Serves a file with specific content type.
24
- */
25
- function serveFile(res, filePath, contentType) {
26
- if (fs.existsSync(filePath)) {
27
- try {
28
- const content = fs.readFileSync(filePath);
29
- res.writeHead(200, { "Content-Type": contentType });
30
- res.end(content);
31
- }
32
- catch (e) {
33
- res.writeHead(500);
34
- res.end(e.message);
35
- }
36
- }
37
- else {
38
- res.writeHead(404);
39
- res.end("Not Found");
40
- }
41
- }
42
- /**
43
- * Parses the URL path and query parameters.
44
- */
45
- function parseUrl(url) {
46
- const [pathname, queryString] = url.split("?");
47
- const params = {};
48
- if (queryString) {
49
- queryString.split("&").forEach((pair) => {
50
- const [key, value] = pair.split("=");
51
- params[decodeURIComponent(key)] = decodeURIComponent(value || "");
52
- });
53
- }
54
- return { pathname, params };
55
- }
56
- /**
57
- * WebSocket clients store for real-time updates.
58
- */
59
- const wsClients = new Set();
60
- function broadcastWS(type, payload) {
61
- const msg = JSON.stringify({ type, payload });
62
- wsClients.forEach((ws) => {
63
- if (ws.readyState === WebSocket.OPEN) {
64
- try {
65
- ws.send(msg);
66
- }
67
- catch {
68
- wsClients.delete(ws);
69
- }
70
- }
71
- else {
72
- wsClients.delete(ws);
73
- }
74
- });
75
- }
76
- /**
77
- * [SERVER] Hermes Visual Control Plane (Dashboard Server) — Extended
78
- * Serves the framework state as a JSON API and the bundled Web UI.
79
- */
80
- export async function dashboardCommand(port = FRAMEWORK.DASHBOARD_PORT) {
81
- const frameworkDir = getFrameworkDir();
82
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
83
- const projectRoot = path.resolve(__dirname, "../../../../");
84
- const uiDistPath = path.join(projectRoot, "atabey-mcp/dashboard/dist");
85
- const server = http.createServer(async (req, res) => {
86
- // CORS & Cache Headers
87
- res.setHeader("Access-Control-Allow-Origin", "*");
88
- res.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
89
- res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
90
- res.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, proxy-revalidate");
91
- res.setHeader("Pragma", "no-cache");
92
- res.setHeader("Expires", "0");
93
- if (req.method === "OPTIONS") {
94
- res.writeHead(204);
95
- res.end();
96
- return;
97
- }
98
- const url = req.url || "/";
99
- const { pathname, params } = parseUrl(url);
100
- // [SECURITY] Authentication check for API routes
101
- // Skip auth for static UI and health endpoints
102
- const needsAuth = pathname.startsWith("/api/");
103
- const isPublicPath = pathname === "/api/health";
104
- if (needsAuth && !isPublicPath) {
105
- try {
106
- const { authenticate } = await import("atabey-mcp/src/mcp/utils/auth.js");
107
- const auth = authenticate(req);
108
- if (!auth.authenticated) {
109
- serveJson(res, 401, { error: "Unauthorized. Provide Authorization: Bearer <token> header. Set MCP_AUTH_TOKEN env var to configure." });
110
- return;
111
- }
112
- }
113
- catch (e) {
114
- UI.warning(`[AUTH-WARNING] Auth module error: ${e.message}`);
115
- }
116
- }
117
- // ─── API Routes ────────────────────────────────────────────────
118
- // Health check
119
- if (pathname === "/api/health") {
120
- serveJson(res, 200, { status: "healthy", version: "0.0.6", frameworkDir });
121
- return;
122
- }
123
- // System status
124
- if (pathname === "/api/status") {
125
- const statusPath = path.join(frameworkDir, "memory", "status.json");
126
- serveFile(res, statusPath, "application/json");
127
- return;
128
- }
129
- // Project memory (Markdown)
130
- if (pathname === "/api/memory") {
131
- const memoryPath = path.join(frameworkDir, "memory", "PROJECT_MEMORY.md");
132
- serveFile(res, memoryPath, "text/markdown");
133
- return;
134
- }
135
- // Memory Search (Vector Embeddings)
136
- if (pathname === "/api/memory/search") {
137
- try {
138
- const query = params.q || "";
139
- const limit = parseInt(params.limit || "10", 10);
140
- if (!query) {
141
- const db = Storage.getDB();
142
- const rows = db.prepare("SELECT * FROM vector_memory ORDER BY created_at DESC LIMIT ?").all(limit);
143
- const results = rows.map(row => {
144
- const meta = JSON.parse(row.metadata || "{}");
145
- return {
146
- id: row.id,
147
- content: row.content,
148
- type: row.category || meta.category || "memory",
149
- timestamp: meta.createdAt || row.created_at,
150
- relevance: 1.0
151
- };
152
- });
153
- serveJson(res, 200, { success: true, data: results });
154
- return;
155
- }
156
- import("../../modules/memory/core.js").then(async ({ CoreMemory }) => {
157
- const results = await CoreMemory.recall(query, { limit });
158
- const flattened = results.map(r => ({
159
- id: r.entry.id,
160
- content: r.entry.content,
161
- type: r.entry.metadata.category || "memory",
162
- timestamp: r.entry.metadata.createdAt || new Date().toISOString(),
163
- relevance: r.score
164
- }));
165
- serveJson(res, 200, { success: true, data: flattened });
166
- }).catch(e => {
167
- serveJson(res, 500, { success: false, error: "Failed to load memory module: " + e.message });
168
- });
169
- }
170
- catch (e) {
171
- serveJson(res, 500, { success: false, error: e.message });
172
- }
173
- return;
174
- }
175
- // Agent & System Logs (SQLite)
176
- if (pathname.startsWith("/api/logs")) {
177
- try {
178
- const logs = Storage.getLogs();
179
- // Optionally filter by agent if /api/logs/:agent is requested
180
- const agent = pathname.split("/api/logs/")[1];
181
- const filteredLogs = agent ? logs.filter(l => l.agent === agent) : logs;
182
- serveJson(res, 200, { success: true, data: filteredLogs });
183
- }
184
- catch (e) {
185
- serveJson(res, 500, { success: false, error: e.message });
186
- }
187
- return;
188
- }
189
- // GDPR & KVKK Audit Logs (SQLite)
190
- if (pathname === "/api/audit") {
191
- try {
192
- Audit.initialize();
193
- const stats = Audit.getStats();
194
- const entries = Audit.query({ limit: 100 });
195
- serveJson(res, 200, { success: true, data: { stats, entries } });
196
- }
197
- catch (e) {
198
- serveJson(res, 500, { success: false, error: e.message });
199
- }
200
- return;
201
- }
202
- // GDPR / KVKK Right to Erasure Request (Unutulma Hakkı)
203
- if (pathname === "/api/audit/erase" && req.method === "POST") {
204
- try {
205
- Audit.initialize();
206
- let body = "";
207
- req.on("data", chunk => { body += chunk.toString(); });
208
- req.on("end", () => {
209
- try {
210
- const parsed = JSON.parse(body);
211
- const confirmation = parsed.confirmationCode || "";
212
- const changes = Audit.clearAll(confirmation);
213
- serveJson(res, 200, { success: true, message: `${changes} records cleared under GDPR Art. 17 / KVKK Art. 7 right to erasure.` });
214
- }
215
- catch (err) {
216
- serveJson(res, 400, { success: false, error: err.message });
217
- }
218
- });
219
- }
220
- catch (e) {
221
- serveJson(res, 500, { success: false, error: e.message });
222
- }
223
- return;
224
- }
225
- // ─── Messages API ──────────────────────────────────────────────
226
- if (pathname === "/api/messages") {
227
- try {
228
- const messages = Storage.getPendingMessages();
229
- serveJson(res, 200, { success: true, data: messages });
230
- }
231
- catch (e) {
232
- serveJson(res, 500, { success: false, error: e.message });
233
- }
234
- return;
235
- }
236
- // ─── Tasks API ─────────────────────────────────────────────────
237
- if (pathname === "/api/tasks") {
238
- try {
239
- const traceId = params.traceId ? asTraceID(params.traceId) : undefined;
240
- const tasks = Storage.getTasks(traceId);
241
- serveJson(res, 200, { success: true, data: tasks });
242
- }
243
- catch (e) {
244
- serveJson(res, 500, { success: false, error: e.message });
245
- }
246
- return;
247
- }
248
- // ─── Agents API ────────────────────────────────────────────────
249
- if (pathname === "/api/agents") {
250
- try {
251
- const agents = Storage.getAllAgents();
252
- serveJson(res, 200, { success: true, data: agents });
253
- }
254
- catch (e) {
255
- serveJson(res, 500, { success: false, error: e.message });
256
- }
257
- return;
258
- }
259
- // ─── Approvals GET API ──────────────────────────────────────────
260
- if (pathname === "/api/approvals") {
261
- try {
262
- const allMessages = Storage.getPendingMessages();
263
- const approvals = allMessages.filter(m => m.category === "ALERT" || m.category === "ACTION").map(m => ({
264
- id: String(m.id || m.traceId),
265
- traceId: m.traceId,
266
- description: m.content ? (typeof m.content === "string" ? m.content : JSON.stringify(m.content)) : "Approval required",
267
- status: m.status || "PENDING",
268
- timestamp: m.timestamp || new Date().toISOString()
269
- }));
270
- serveJson(res, 200, { success: true, data: approvals });
271
- }
272
- catch (e) {
273
- serveJson(res, 500, { success: false, error: e.message });
274
- }
275
- return;
276
- }
277
- // ─── Approval API ──────────────────────────────────────────────
278
- if (pathname.startsWith("/api/approve/") && req.method === "POST") {
279
- const traceId = pathname.replace("/api/approve/", "");
280
- if (!traceId) {
281
- serveJson(res, 400, { success: false, error: "Trace ID is required" });
282
- return;
283
- }
284
- try {
285
- // Approval process via storage abstraction
286
- const pendingMessages = Storage.getPendingMessages().filter(m => m.traceId === traceId && (m.category === "ALERT" || m.category === "ACTION"));
287
- if (pendingMessages.length === 0) {
288
- serveJson(res, 404, { success: false, error: "No pending approval found for this trace ID" });
289
- return;
290
- }
291
- pendingMessages.forEach((msg) => {
292
- if (msg.id !== undefined) {
293
- Storage.updateMessageStatus(msg.id, "APPROVED");
294
- }
295
- });
296
- // Log approval to audit — atomic appendFile kullan
297
- const auditPath = path.join(frameworkDir, "observability/audit_log.md");
298
- if (fs.existsSync(auditPath)) {
299
- const logEntry = "\n- **[" + new Date().toISOString() + "]** USER -> @manager | APPROVED | Trace: " + traceId;
300
- appendFile(auditPath, logEntry);
301
- }
302
- // Notify WS clients
303
- broadcastWS("approval", { traceId, status: "APPROVED" });
304
- serveJson(res, 200, { success: true, message: `Trace ${traceId} approved successfully`, approved: pendingMessages.length });
305
- }
306
- catch (e) {
307
- serveJson(res, 500, { success: false, error: e.message });
308
- }
309
- return;
310
- }
311
- // ─── Rejection API ─────────────────────────────────────────────
312
- if (pathname.startsWith("/api/reject/") && req.method === "POST") {
313
- const traceId = pathname.replace("/api/reject/", "");
314
- if (!traceId) {
315
- serveJson(res, 400, { success: false, error: "Trace ID is required" });
316
- return;
317
- }
318
- try {
319
- const pendingMessages = Storage.getPendingMessages().filter(m => m.traceId === traceId && (m.category === "ALERT" || m.category === "ACTION"));
320
- if (pendingMessages.length === 0) {
321
- serveJson(res, 404, { success: false, error: "No pending approval found for this trace ID" });
322
- return;
323
- }
324
- pendingMessages.forEach((msg) => {
325
- if (msg.id !== undefined) {
326
- Storage.updateMessageStatus(msg.id, "REJECTED");
327
- }
328
- });
329
- // Log rejection to audit
330
- const auditPath = path.join(frameworkDir, "observability/audit_log.md");
331
- if (fs.existsSync(auditPath)) {
332
- const logEntry = "\n- **[" + new Date().toISOString() + "]** USER -> @manager | REJECTED | Trace: " + traceId;
333
- appendFile(auditPath, logEntry);
334
- }
335
- // Notify WS clients
336
- broadcastWS("approval", { traceId, status: "REJECTED" });
337
- serveJson(res, 200, { success: true, message: `Trace ${traceId} rejected successfully`, rejected: pendingMessages.length });
338
- }
339
- catch (e) {
340
- serveJson(res, 500, { success: false, error: e.message });
341
- }
342
- return;
343
- }
344
- // ─── Hermes Message Queue Stats ────────────────────────────────
345
- if (pathname === "/api/hermes/stats") {
346
- try {
347
- const messages = Storage.getPendingMessages();
348
- const totalMessages = Storage.getDB().prepare("SELECT COUNT(*) as count FROM messages").get();
349
- const byCategory = {};
350
- const byStatus = {};
351
- messages.forEach(m => {
352
- byCategory[m.category] = (byCategory[m.category] || 0) + 1;
353
- byStatus[m.status] = (byStatus[m.status] || 0) + 1;
354
- });
355
- serveJson(res, 200, {
356
- success: true,
357
- data: {
358
- total: totalMessages.count,
359
- pending: messages.length,
360
- byCategory,
361
- byStatus,
362
- lastMessage: messages.length > 0 ? messages[messages.length - 1] : null,
363
- }
364
- });
365
- }
366
- catch (e) {
367
- serveJson(res, 500, { success: false, error: e.message });
368
- }
369
- return;
370
- }
371
- // ─── Code Quality API ──────────────────────────────────────────
372
- if (pathname === "/api/quality") {
373
- try {
374
- const targetPath = params.path || "src";
375
- const result = analyzePathQuality(projectRoot, targetPath);
376
- serveJson(res, 200, {
377
- success: true,
378
- data: {
379
- totalFiles: result.totalFiles,
380
- totalIssues: result.totalIssues,
381
- longFunctions: result.longFunctions,
382
- deepNesting: result.deepNesting,
383
- anyTypes: result.anyTypes,
384
- issues: result.issues.slice(0, 50),
385
- }
386
- });
387
- }
388
- catch (e) {
389
- serveJson(res, 500, { success: false, error: e.message });
390
- }
391
- return;
392
- }
393
- // ─── Adapter-Skills API ─────────────────────────────────────────
394
- if (pathname === "/api/adapters/skills") {
395
- import("../../modules/skills/adapter-skills.js")
396
- .then(({ ADAPTER_SKILLS }) => {
397
- const summary = Object.entries(ADAPTER_SKILLS).map(([id, config]) => ({
398
- id,
399
- skillCount: Object.keys(config.enabledSkills).length,
400
- toolsCount: config.toolMapping ? Object.keys(config.toolMapping).length : 0,
401
- skills: Object.keys(config.enabledSkills),
402
- }));
403
- serveJson(res, 200, { success: true, data: summary });
404
- })
405
- .catch((e) => {
406
- serveJson(res, 500, { success: false, error: e.message });
407
- });
408
- return;
409
- }
410
- // ─── Compliance API ────────────────────────────────────────────
411
- if (pathname === "/api/compliance") {
412
- try {
413
- const targetPath = params.path || "src";
414
- const scanPath = path.join(projectRoot, targetPath);
415
- // Use the core AST-based scanner to find violations
416
- const rawIssues = scanProjectCompliance(scanPath);
417
- const violations = rawIssues.map(issue => {
418
- const ruleLower = issue.rule.toLowerCase();
419
- const type = ruleLower.includes("any") ? "any-type"
420
- : ruleLower.includes("console") ? "console-log"
421
- : "other";
422
- return {
423
- file: path.relative(projectRoot, issue.file),
424
- line: issue.line,
425
- type,
426
- message: issue.rule.replace(/^\[ERROR\]\s*Corporate\s*Compliance\s*Breach:\s*/i, "")
427
- };
428
- });
429
- const violatingFiles = new Set(violations.map(v => v.file));
430
- const summary = {
431
- totalFiles: violatingFiles.size,
432
- totalViolations: violations.length,
433
- byType: {
434
- "any-type": violations.filter((v) => v.type === "any-type").length,
435
- "console-log": violations.filter((v) => v.type === "console-log").length,
436
- },
437
- };
438
- serveJson(res, 200, { success: true, data: { summary, violations } });
439
- }
440
- catch (e) {
441
- serveJson(res, 500, { success: false, error: e.message });
442
- }
443
- return;
444
- }
445
- // MCP Sessions
446
- if (pathname === "/api/mcp/sessions") {
447
- serveJson(res, 200, { success: true, data: { total: 0, sessions: [] } });
448
- return;
449
- }
450
- // Discipline Stats
451
- if (pathname === "/api/discipline") {
452
- try {
453
- const { getAllDisciplineStats } = await import("atabey-mcp/src/mcp/utils/discipline.js");
454
- const stats = getAllDisciplineStats();
455
- serveJson(res, 200, { success: true, data: stats });
456
- }
457
- catch (e) {
458
- serveJson(res, 500, { success: false, error: e.message });
459
- }
460
- return;
461
- }
462
- // Telemetry Status
463
- if (pathname === "/api/telemetry") {
464
- try {
465
- const { telemetryStreamer, TelemetryConfig } = await import("atabey-mcp/src/mcp/utils/telemetry-streamer.js");
466
- const status = telemetryStreamer.getStatus();
467
- serveJson(res, 200, { success: true, data: { ...status, config: { ...TelemetryConfig, AUTH_TOKEN: TelemetryConfig.AUTH_TOKEN ? "***" : "" } } });
468
- }
469
- catch (e) {
470
- serveJson(res, 500, { success: false, error: e.message });
471
- }
472
- return;
473
- }
474
- // Loop Detection Stats
475
- if (pathname === "/api/loop-detector") {
476
- try {
477
- const { getAllLoopStats } = await import("atabey-mcp/src/mcp/utils/loop-detector.js");
478
- const agent = params.agent;
479
- const stats = agent
480
- ? (await import("atabey-mcp/src/mcp/utils/loop-detector.js")).getLoopStats(agent)
481
- : getAllLoopStats();
482
- serveJson(res, 200, { success: true, data: stats });
483
- }
484
- catch (e) {
485
- serveJson(res, 500, { success: false, error: e.message });
486
- }
487
- return;
488
- }
489
- // Clear Loop Cooldown
490
- if (pathname.startsWith("/api/loop-detector/clear/") && req.method === "POST") {
491
- const agent = decodeURIComponent(pathname.replace("/api/loop-detector/clear/", ""));
492
- try {
493
- const { clearCooldown } = await import("atabey-mcp/src/mcp/utils/loop-detector.js");
494
- const cleared = clearCooldown(agent);
495
- serveJson(res, 200, { success: true, data: { agent, cleared } });
496
- }
497
- catch (e) {
498
- serveJson(res, 500, { success: false, error: e.message });
499
- }
500
- return;
501
- }
502
- // Budget / FinOps Status
503
- if (pathname === "/api/finops") {
504
- try {
505
- const { budgetManager } = await import("atabey-mcp/src/mcp/utils/finops.js");
506
- const state = budgetManager.getState();
507
- serveJson(res, 200, { success: true, data: state });
508
- }
509
- catch (e) {
510
- serveJson(res, 500, { success: false, error: e.message });
511
- }
512
- return;
513
- }
514
- // Budget Check for an agent
515
- if (pathname === "/api/finops/check") {
516
- try {
517
- const agent = params.agent || "default";
518
- const { budgetManager } = await import("atabey-mcp/src/mcp/utils/finops.js");
519
- const result = budgetManager.checkBudget(agent);
520
- serveJson(res, 200, { success: true, data: result });
521
- }
522
- catch (e) {
523
- serveJson(res, 500, { success: false, error: e.message });
524
- }
525
- return;
526
- }
527
- // Budget Reset
528
- if (pathname === "/api/finops/reset" && req.method === "POST") {
529
- try {
530
- const { budgetManager } = await import("atabey-mcp/src/mcp/utils/finops.js");
531
- budgetManager.resetPeriod();
532
- serveJson(res, 200, { success: true, message: "Budget period reset." });
533
- }
534
- catch (e) {
535
- serveJson(res, 500, { success: false, error: e.message });
536
- }
537
- return;
538
- }
539
- // License Scanner
540
- if (pathname === "/api/license") {
541
- try {
542
- const { scanForLicenses, getLicenseSeveritySummary, LicenseScannerConfig } = await import("atabey-mcp/src/mcp/utils/license-scanner.js");
543
- const filePath = params.path || "";
544
- const content = params.content || "";
545
- const matches = filePath && content ? scanForLicenses(filePath, content) : [];
546
- const summary = matches.length > 0 ? getLicenseSeveritySummary(matches) : null;
547
- serveJson(res, 200, {
548
- success: true, data: {
549
- matches,
550
- summary,
551
- config: LicenseScannerConfig,
552
- }
553
- });
554
- }
555
- catch (e) {
556
- serveJson(res, 500, { success: false, error: e.message });
557
- }
558
- return;
559
- }
560
- // Auto-Rollback Stats
561
- if (pathname === "/api/rollback") {
562
- try {
563
- const { AutoRollbackEngine } = await import("atabey-mcp/src/mcp/utils/auto-rollback.js");
564
- const stats = AutoRollbackEngine.getSnapshotStats();
565
- serveJson(res, 200, { success: true, data: stats });
566
- }
567
- catch (e) {
568
- serveJson(res, 500, { success: false, error: e.message });
569
- }
570
- return;
571
- }
572
- // All Governance Stats (combined endpoint)
573
- if (pathname === "/api/governance") {
574
- try {
575
- const { getAllDisciplineStats } = await import("atabey-mcp/src/mcp/utils/discipline.js");
576
- const { getAllTokenBudgetStats } = await import("atabey-mcp/src/mcp/utils/context-optimizer.js");
577
- const { getAllLoopStats } = await import("atabey-mcp/src/mcp/utils/loop-detector.js");
578
- const { getAllRules } = await import("atabey-mcp/src/mcp/utils/rules-engine.js");
579
- const { AutoRollbackEngine } = await import("atabey-mcp/src/mcp/utils/auto-rollback.js");
580
- const { budgetManager } = await import("atabey-mcp/src/mcp/utils/finops.js");
581
- serveJson(res, 200, {
582
- success: true, data: {
583
- discipline: getAllDisciplineStats(),
584
- tokenBudget: getAllTokenBudgetStats(),
585
- loopDetection: getAllLoopStats(),
586
- rules: getAllRules().map(r => ({ id: r.id, name: r.name, priority: r.priority, bypassable: r.bypassable })),
587
- rollback: AutoRollbackEngine.getSnapshotStats(),
588
- budget: budgetManager.getState(),
589
- telemetry: (await import("atabey-mcp/src/mcp/utils/telemetry-streamer.js")).telemetryStreamer.getStatus(),
590
- }
591
- });
592
- }
593
- catch (e) {
594
- serveJson(res, 500, { success: false, error: e.message });
595
- }
596
- return;
597
- }
598
- // ─── Token Economy / Metrics API ────────────────────────────────
599
- if (pathname === "/api/metrics") {
600
- try {
601
- const frameworkDir = getFrameworkDir();
602
- const metricsPath = path.join(projectRoot, frameworkDir, "observability/metrics.json");
603
- let entries = [];
604
- if (fs.existsSync(metricsPath)) {
605
- entries = JSON.parse(fs.readFileSync(metricsPath, "utf8"));
606
- }
607
- const byAgent = {};
608
- const byAction = {};
609
- let totalTokens = 0;
610
- for (const entry of entries) {
611
- const agent = entry.agent || "unknown";
612
- const action = entry.action || "unknown";
613
- const tokens = entry.estimatedTokens || 0;
614
- if (!byAgent[agent])
615
- byAgent[agent] = { calls: 0, tokens: 0, cost: 0 };
616
- byAgent[agent].calls++;
617
- byAgent[agent].tokens += tokens;
618
- byAgent[agent].cost = +(byAgent[agent].tokens / 1000 * 0.003).toFixed(4);
619
- if (!byAction[action])
620
- byAction[action] = { calls: 0, tokens: 0 };
621
- byAction[action].calls++;
622
- byAction[action].tokens += tokens;
623
- totalTokens += tokens;
624
- }
625
- serveJson(res, 200, {
626
- success: true,
627
- data: {
628
- totalToolCalls: entries.length,
629
- totalEstimatedTokens: totalTokens,
630
- totalEstimatedCost: +(totalTokens / 1000 * 0.003).toFixed(4),
631
- byAgent,
632
- byAction,
633
- recentEntries: entries.slice(-100),
634
- }
635
- });
636
- }
637
- catch (e) {
638
- serveJson(res, 500, { success: false, error: e.message });
639
- }
640
- return;
641
- }
642
- // ─── SSE (Server-Sent Events) — Legacy support ─────────────────
643
- if (pathname === "/api/events") {
644
- res.writeHead(200, {
645
- "Content-Type": "text/event-stream",
646
- "Cache-Control": "no-cache",
647
- "Connection": "keep-alive",
648
- "Access-Control-Allow-Origin": "*",
649
- });
650
- // Send initial keepalive
651
- res.write(": connected\n\n");
652
- // Keep connection alive
653
- const keepAlive = setInterval(() => res.write(": keepalive\n\n"), 30000);
654
- req.on("close", () => clearInterval(keepAlive));
655
- return;
656
- }
657
- // ─── Static UI Serving ─────────────────────────────────────────
658
- let filePath = path.join(uiDistPath, pathname === "/" ? "index.html" : pathname);
659
- // Fallback to index.html for SPA routing if file not found
660
- if (!fs.existsSync(filePath) && !pathname.startsWith("/api")) {
661
- filePath = path.join(uiDistPath, "index.html");
662
- }
663
- if (fs.existsSync(filePath) && !fs.statSync(filePath).isDirectory()) {
664
- const ext = path.extname(filePath).toLowerCase();
665
- const mimeTypes = {
666
- ".html": "text/html",
667
- ".js": "application/javascript",
668
- ".css": "text/css",
669
- ".json": "application/json",
670
- ".png": "image/png",
671
- ".jpg": "image/jpg",
672
- ".gif": "image/gif",
673
- ".svg": "image/svg+xml",
674
- ".ico": "image/x-icon",
675
- };
676
- const contentType = mimeTypes[ext] || "application/octet-stream";
677
- serveFile(res, filePath, contentType);
678
- }
679
- else {
680
- serveJson(res, 404, { error: "Not Found", message: "Route not found" });
681
- }
682
- });
683
- // ─── WebSocket Server ──────────────────────────────────────────────
684
- const wss = new WebSocketServer({ server, path: "/ws" });
685
- wss.on("connection", (ws) => {
686
- wsClients.add(ws);
687
- // Send full state immediately on connect
688
- const agents = Storage.getAllAgents();
689
- const messages = Storage.getPendingMessages();
690
- broadcastWS("agent_update", agents);
691
- broadcastWS("message", messages);
692
- ws.on("close", () => wsClients.delete(ws));
693
- ws.on("message", (data) => {
694
- try {
695
- const msg = JSON.parse(data.toString());
696
- if (msg.type === "ping") {
697
- ws.send(JSON.stringify({ type: "pong" }));
698
- }
699
- }
700
- catch { /* ignore */ }
701
- });
702
- });
703
- // ─── Periodic Live Broadcast (every 5s) ────────────────────────────
704
- const broadcastInterval = setInterval(() => {
705
- try {
706
- // Agents
707
- const agents = Storage.getAllAgents();
708
- broadcastWS("agent_update", { agents, timestamp: new Date().toISOString() });
709
- // Pending Messages
710
- const messages = Storage.getPendingMessages();
711
- broadcastWS("message", { messages, timestamp: new Date().toISOString() });
712
- // Approvals (pending) — via storage abstraction
713
- const allMessages = Storage.getPendingMessages();
714
- const approvals = allMessages.filter(m => m.category === "ALERT" || m.category === "ACTION");
715
- broadcastWS("approval", { approvals, timestamp: new Date().toISOString() });
716
- // Logs
717
- const logs = Storage.getLogs().slice(-10);
718
- broadcastWS("log", { logs, timestamp: new Date().toISOString() });
719
- }
720
- catch { /* silent */ }
721
- }, 5000);
722
- // Cleanup on server close
723
- server.on("close", () => {
724
- clearInterval(broadcastInterval);
725
- wsClients.clear();
726
- });
727
- server.listen(port, () => {
728
- UI.success("\n[START] Hermes Visual Control Plane is running!");
729
- UI.success(`[INFO] Web UI: http://localhost:${port}`);
730
- UI.success(`[DATA] API Base: http://localhost:${port}/api`);
731
- UI.success(`[WS] WebSocket: ws://localhost:${port}/ws`);
732
- UI.success("[ENDPOINTS]");
733
- UI.success(" GET /api/health → System health check");
734
- UI.success(" GET /api/status → Agent statuses");
735
- UI.success(" GET /api/memory → Project memory (Markdown)");
736
- UI.success(" GET /api/messages → Pending Hermes messages");
737
- UI.success(" GET /api/tasks → Active tasks (?traceId=...)");
738
- UI.success(" GET /api/agents → All registered agents");
739
- UI.success(" POST /api/approve/:id → Approve a trace");
740
- UI.success(" GET /api/compliance → Compliance violations (?path=...)");
741
- UI.success(" GET /api/events → SSE (legacy)");
742
- UI.success(" WS /ws → WebSocket real-time (5s interval)");
743
- UI.success("[LIVE MODULES]");
744
- UI.success(" 🤖 Agents → agent_update (every 5s)");
745
- UI.success(" 📨 Messages → message (every 5s)");
746
- UI.success(" 🔐 Approvals → approval (every 5s)");
747
- UI.success(" 🧠 Memory → Memory API (on request)");
748
- UI.success(" 🛡️ Compliance → Compliance API (on request)");
749
- UI.success(" 📝 Logs → log (every 5s)");
750
- UI.warning("\n(Press Ctrl+C to stop the server)\n");
751
- });
752
- }
753
- //# sourceMappingURL=dashboard.js.map