atabey 0.0.32 → 0.0.34

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 (440) hide show
  1. package/bin/cli.js +5 -5
  2. package/dist/atabey/src/cli/commands/check.js +4 -1
  3. package/dist/atabey/src/cli/commands/check.js.map +1 -1
  4. package/dist/atabey/src/cli/commands/dashboard.js +60 -21
  5. package/dist/atabey/src/cli/commands/dashboard.js.map +1 -1
  6. package/dist/atabey/src/cli/commands/hitl.d.ts +16 -0
  7. package/dist/atabey/src/cli/commands/hitl.js +152 -0
  8. package/dist/atabey/src/cli/commands/hitl.js.map +1 -0
  9. package/dist/atabey/src/cli/commands/init/languages.d.ts +33 -0
  10. package/dist/atabey/src/cli/commands/init/languages.js +114 -0
  11. package/dist/atabey/src/cli/commands/init/languages.js.map +1 -0
  12. package/dist/atabey/src/cli/commands/init/scaffold-app.d.ts +26 -0
  13. package/dist/atabey/src/cli/commands/init/scaffold-app.js +555 -0
  14. package/dist/atabey/src/cli/commands/init/scaffold-app.js.map +1 -0
  15. package/dist/atabey/src/cli/commands/init/scaffold-core.d.ts +1 -0
  16. package/dist/atabey/src/cli/commands/init/scaffold-core.js +1 -0
  17. package/dist/atabey/src/cli/commands/init/scaffold-core.js.map +1 -1
  18. package/dist/atabey/src/cli/commands/init/scaffold-standards.js +1 -0
  19. package/dist/atabey/src/cli/commands/init/scaffold-standards.js.map +1 -1
  20. package/dist/atabey/src/cli/commands/init.d.ts +3 -0
  21. package/dist/atabey/src/cli/commands/init.js +49 -20
  22. package/dist/atabey/src/cli/commands/init.js.map +1 -1
  23. package/dist/atabey/src/cli/commands/knowledge.js +37 -5
  24. package/dist/atabey/src/cli/commands/knowledge.js.map +1 -1
  25. package/dist/atabey/src/cli/commands/log.d.ts +4 -0
  26. package/dist/atabey/src/cli/commands/log.js +33 -1
  27. package/dist/atabey/src/cli/commands/log.js.map +1 -1
  28. package/dist/atabey/src/cli/commands/orchestrate.d.ts +6 -6
  29. package/dist/atabey/src/cli/index.js +68 -10
  30. package/dist/atabey/src/cli/index.js.map +1 -1
  31. package/dist/atabey/src/cli/platforms/core.d.ts +1 -1
  32. package/dist/atabey/src/cli/platforms/core.js +1 -0
  33. package/dist/atabey/src/cli/platforms/core.js.map +1 -1
  34. package/dist/atabey/src/cli/platforms/scaffold.js +4 -1
  35. package/dist/atabey/src/cli/platforms/scaffold.js.map +1 -1
  36. package/dist/atabey/src/cli/platforms/utils.js +7 -1
  37. package/dist/atabey/src/cli/platforms/utils.js.map +1 -1
  38. package/dist/atabey/src/cli/shims.js +10 -0
  39. package/dist/atabey/src/cli/shims.js.map +1 -1
  40. package/dist/atabey/src/cli/utils/config-schema.d.ts +1 -1
  41. package/dist/atabey/src/cli/utils/pkg.js +3 -4
  42. package/dist/atabey/src/cli/utils/pkg.js.map +1 -1
  43. package/dist/atabey/src/cli/utils/schemas.d.ts +10 -10
  44. package/dist/atabey/src/contracts/tasks.d.ts +2 -2
  45. package/dist/atabey/src/modules/agents/definitions.d.ts +2 -1
  46. package/dist/atabey/src/modules/agents/definitions.js +18 -0
  47. package/dist/atabey/src/modules/agents/definitions.js.map +1 -1
  48. package/dist/atabey/src/modules/agents/registry/native.js +14 -8
  49. package/dist/atabey/src/modules/agents/registry/native.js.map +1 -1
  50. package/dist/atabey/src/modules/contracts/api.d.ts +6 -6
  51. package/dist/atabey/src/modules/engines/quality-gate.js +4 -4
  52. package/dist/atabey/src/modules/engines/quality-gate.js.map +1 -1
  53. package/dist/atabey/src/modules/engines/risk-engine.js +10 -0
  54. package/dist/atabey/src/modules/engines/risk-engine.js.map +1 -1
  55. package/dist/atabey/src/modules/engines/routing-engine.js +8 -0
  56. package/dist/atabey/src/modules/engines/routing-engine.js.map +1 -1
  57. package/dist/atabey/src/modules/memory/core.js +12 -3
  58. package/dist/atabey/src/modules/memory/core.js.map +1 -1
  59. package/dist/atabey/src/modules/providers/definitions.js +51 -0
  60. package/dist/atabey/src/modules/providers/definitions.js.map +1 -1
  61. package/dist/atabey/src/modules/providers/types.d.ts +1 -1
  62. package/dist/atabey/src/modules/providers/types.js +1 -1
  63. package/dist/atabey/src/modules/providers/types.js.map +1 -1
  64. package/dist/atabey/src/modules/skills/adapter-skills.js +81 -0
  65. package/dist/atabey/src/modules/skills/adapter-skills.js.map +1 -1
  66. package/dist/atabey/src/shared/storage.d.ts +2 -149
  67. package/dist/atabey/src/shared/storage.js +2 -342
  68. package/dist/atabey/src/shared/storage.js.map +1 -1
  69. package/dist/shared/src/constants.d.ts +5 -2
  70. package/dist/shared/src/constants.js +5 -0
  71. package/dist/shared/src/constants.js.map +1 -1
  72. package/dist/shared/src/index.d.ts +1 -0
  73. package/dist/shared/src/index.js +1 -0
  74. package/dist/shared/src/index.js.map +1 -1
  75. package/dist/shared/src/lock.js +6 -3
  76. package/dist/shared/src/lock.js.map +1 -1
  77. package/dist/shared/src/pii.js +16 -12
  78. package/dist/shared/src/pii.js.map +1 -1
  79. package/dist/{atabey-mcp/src/shared → shared/src}/storage.d.ts +98 -0
  80. package/dist/shared/src/storage.js +724 -0
  81. package/dist/shared/src/storage.js.map +1 -0
  82. package/package.json +7 -7
  83. package/templates/standards/llm-governance.md +1 -0
  84. package/templates/standards/native-standards.md +67 -0
  85. package/dist/atabey/src/modules/engines/worker-script.d.ts +0 -8
  86. package/dist/atabey/src/modules/engines/worker-script.js +0 -99
  87. package/dist/atabey/src/modules/engines/worker-script.js.map +0 -1
  88. package/dist/atabey-mcp/src/mcp/utils/auth.d.ts +0 -40
  89. package/dist/atabey-mcp/src/mcp/utils/auth.js +0 -154
  90. package/dist/atabey-mcp/src/mcp/utils/auth.js.map +0 -1
  91. package/dist/atabey-mcp/src/mcp/utils/auto-rollback.d.ts +0 -71
  92. package/dist/atabey-mcp/src/mcp/utils/auto-rollback.js +0 -375
  93. package/dist/atabey-mcp/src/mcp/utils/auto-rollback.js.map +0 -1
  94. package/dist/atabey-mcp/src/mcp/utils/context-optimizer.d.ts +0 -110
  95. package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js +0 -391
  96. package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js.map +0 -1
  97. package/dist/atabey-mcp/src/mcp/utils/discipline.d.ts +0 -69
  98. package/dist/atabey-mcp/src/mcp/utils/discipline.js +0 -257
  99. package/dist/atabey-mcp/src/mcp/utils/discipline.js.map +0 -1
  100. package/dist/atabey-mcp/src/mcp/utils/finops.d.ts +0 -139
  101. package/dist/atabey-mcp/src/mcp/utils/finops.js +0 -324
  102. package/dist/atabey-mcp/src/mcp/utils/finops.js.map +0 -1
  103. package/dist/atabey-mcp/src/mcp/utils/license-scanner.d.ts +0 -71
  104. package/dist/atabey-mcp/src/mcp/utils/license-scanner.js +0 -284
  105. package/dist/atabey-mcp/src/mcp/utils/license-scanner.js.map +0 -1
  106. package/dist/atabey-mcp/src/mcp/utils/loop-detector.d.ts +0 -106
  107. package/dist/atabey-mcp/src/mcp/utils/loop-detector.js +0 -413
  108. package/dist/atabey-mcp/src/mcp/utils/loop-detector.js.map +0 -1
  109. package/dist/atabey-mcp/src/mcp/utils/memory.d.ts +0 -3
  110. package/dist/atabey-mcp/src/mcp/utils/memory.js +0 -75
  111. package/dist/atabey-mcp/src/mcp/utils/memory.js.map +0 -1
  112. package/dist/atabey-mcp/src/mcp/utils/rules-engine.d.ts +0 -78
  113. package/dist/atabey-mcp/src/mcp/utils/rules-engine.js +0 -232
  114. package/dist/atabey-mcp/src/mcp/utils/rules-engine.js.map +0 -1
  115. package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.d.ts +0 -133
  116. package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.js +0 -397
  117. package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.js.map +0 -1
  118. package/dist/atabey-mcp/src/shared/logger.d.ts +0 -1
  119. package/dist/atabey-mcp/src/shared/logger.js +0 -2
  120. package/dist/atabey-mcp/src/shared/logger.js.map +0 -1
  121. package/dist/atabey-mcp/src/shared/pii.d.ts +0 -1
  122. package/dist/atabey-mcp/src/shared/pii.js +0 -2
  123. package/dist/atabey-mcp/src/shared/pii.js.map +0 -1
  124. package/dist/atabey-mcp/src/shared/storage.js +0 -346
  125. package/dist/atabey-mcp/src/shared/storage.js.map +0 -1
  126. package/dist/atabey-mcp/src/shared/types.d.ts +0 -1
  127. package/dist/atabey-mcp/src/shared/types.js +0 -2
  128. package/dist/atabey-mcp/src/shared/types.js.map +0 -1
  129. package/dist/src/cli/commands/approve.d.ts +0 -1
  130. package/dist/src/cli/commands/approve.js +0 -64
  131. package/dist/src/cli/commands/approve.js.map +0 -1
  132. package/dist/src/cli/commands/check.d.ts +0 -1
  133. package/dist/src/cli/commands/check.js +0 -339
  134. package/dist/src/cli/commands/check.js.map +0 -1
  135. package/dist/src/cli/commands/compliance.d.ts +0 -5
  136. package/dist/src/cli/commands/compliance.js +0 -43
  137. package/dist/src/cli/commands/compliance.js.map +0 -1
  138. package/dist/src/cli/commands/contract.d.ts +0 -10
  139. package/dist/src/cli/commands/contract.js +0 -52
  140. package/dist/src/cli/commands/contract.js.map +0 -1
  141. package/dist/src/cli/commands/coverage.d.ts +0 -1
  142. package/dist/src/cli/commands/coverage.js +0 -121
  143. package/dist/src/cli/commands/coverage.js.map +0 -1
  144. package/dist/src/cli/commands/dashboard.d.ts +0 -5
  145. package/dist/src/cli/commands/dashboard.js +0 -753
  146. package/dist/src/cli/commands/dashboard.js.map +0 -1
  147. package/dist/src/cli/commands/explorer.d.ts +0 -2
  148. package/dist/src/cli/commands/explorer.js +0 -44
  149. package/dist/src/cli/commands/explorer.js.map +0 -1
  150. package/dist/src/cli/commands/git.d.ts +0 -2
  151. package/dist/src/cli/commands/git.js +0 -40
  152. package/dist/src/cli/commands/git.js.map +0 -1
  153. package/dist/src/cli/commands/index-codebase.d.ts +0 -4
  154. package/dist/src/cli/commands/index-codebase.js +0 -63
  155. package/dist/src/cli/commands/index-codebase.js.map +0 -1
  156. package/dist/src/cli/commands/init/create-agent.d.ts +0 -4
  157. package/dist/src/cli/commands/init/create-agent.js +0 -59
  158. package/dist/src/cli/commands/init/create-agent.js.map +0 -1
  159. package/dist/src/cli/commands/init/scaffold-core.d.ts +0 -13
  160. package/dist/src/cli/commands/init/scaffold-core.js +0 -188
  161. package/dist/src/cli/commands/init/scaffold-core.js.map +0 -1
  162. package/dist/src/cli/commands/init/scaffold-docs.d.ts +0 -4
  163. package/dist/src/cli/commands/init/scaffold-docs.js +0 -36
  164. package/dist/src/cli/commands/init/scaffold-docs.js.map +0 -1
  165. package/dist/src/cli/commands/init/scaffold-ops.d.ts +0 -1
  166. package/dist/src/cli/commands/init/scaffold-ops.js +0 -81
  167. package/dist/src/cli/commands/init/scaffold-ops.js.map +0 -1
  168. package/dist/src/cli/commands/init/scaffold-standards.d.ts +0 -2
  169. package/dist/src/cli/commands/init/scaffold-standards.js +0 -84
  170. package/dist/src/cli/commands/init/scaffold-standards.js.map +0 -1
  171. package/dist/src/cli/commands/init.d.ts +0 -11
  172. package/dist/src/cli/commands/init.js +0 -371
  173. package/dist/src/cli/commands/init.js.map +0 -1
  174. package/dist/src/cli/commands/knowledge.d.ts +0 -2
  175. package/dist/src/cli/commands/knowledge.js +0 -16
  176. package/dist/src/cli/commands/knowledge.js.map +0 -1
  177. package/dist/src/cli/commands/lint.d.ts +0 -4
  178. package/dist/src/cli/commands/lint.js +0 -24
  179. package/dist/src/cli/commands/lint.js.map +0 -1
  180. package/dist/src/cli/commands/log.d.ts +0 -10
  181. package/dist/src/cli/commands/log.js +0 -14
  182. package/dist/src/cli/commands/log.js.map +0 -1
  183. package/dist/src/cli/commands/mcp.d.ts +0 -11
  184. package/dist/src/cli/commands/mcp.js +0 -128
  185. package/dist/src/cli/commands/mcp.js.map +0 -1
  186. package/dist/src/cli/commands/memory.d.ts +0 -1
  187. package/dist/src/cli/commands/memory.js +0 -5
  188. package/dist/src/cli/commands/memory.js.map +0 -1
  189. package/dist/src/cli/commands/orchestrate.d.ts +0 -62
  190. package/dist/src/cli/commands/orchestrate.js +0 -263
  191. package/dist/src/cli/commands/orchestrate.js.map +0 -1
  192. package/dist/src/cli/commands/plan.d.ts +0 -11
  193. package/dist/src/cli/commands/plan.js +0 -120
  194. package/dist/src/cli/commands/plan.js.map +0 -1
  195. package/dist/src/cli/commands/quickstart.d.ts +0 -9
  196. package/dist/src/cli/commands/quickstart.js +0 -60
  197. package/dist/src/cli/commands/quickstart.js.map +0 -1
  198. package/dist/src/cli/commands/script.d.ts +0 -1
  199. package/dist/src/cli/commands/script.js +0 -28
  200. package/dist/src/cli/commands/script.js.map +0 -1
  201. package/dist/src/cli/commands/security.d.ts +0 -1
  202. package/dist/src/cli/commands/security.js +0 -34
  203. package/dist/src/cli/commands/security.js.map +0 -1
  204. package/dist/src/cli/commands/status.d.ts +0 -4
  205. package/dist/src/cli/commands/status.js +0 -122
  206. package/dist/src/cli/commands/status.js.map +0 -1
  207. package/dist/src/cli/commands/trace.d.ts +0 -10
  208. package/dist/src/cli/commands/trace.js +0 -108
  209. package/dist/src/cli/commands/trace.js.map +0 -1
  210. package/dist/src/cli/index.d.ts +0 -2
  211. package/dist/src/cli/index.js +0 -289
  212. package/dist/src/cli/index.js.map +0 -1
  213. package/dist/src/cli/platforms/core.d.ts +0 -16
  214. package/dist/src/cli/platforms/core.js +0 -77
  215. package/dist/src/cli/platforms/core.js.map +0 -1
  216. package/dist/src/cli/platforms/index.d.ts +0 -5
  217. package/dist/src/cli/platforms/index.js +0 -6
  218. package/dist/src/cli/platforms/index.js.map +0 -1
  219. package/dist/src/cli/platforms/paths.d.ts +0 -15
  220. package/dist/src/cli/platforms/paths.js +0 -102
  221. package/dist/src/cli/platforms/paths.js.map +0 -1
  222. package/dist/src/cli/platforms/scaffold.d.ts +0 -2
  223. package/dist/src/cli/platforms/scaffold.js +0 -73
  224. package/dist/src/cli/platforms/scaffold.js.map +0 -1
  225. package/dist/src/cli/platforms/utils.d.ts +0 -4
  226. package/dist/src/cli/platforms/utils.js +0 -76
  227. package/dist/src/cli/platforms/utils.js.map +0 -1
  228. package/dist/src/cli/shims.d.ts +0 -1
  229. package/dist/src/cli/shims.js +0 -67
  230. package/dist/src/cli/shims.js.map +0 -1
  231. package/dist/src/cli/utils/claude.d.ts +0 -8
  232. package/dist/src/cli/utils/claude.js +0 -58
  233. package/dist/src/cli/utils/claude.js.map +0 -1
  234. package/dist/src/cli/utils/compliance.d.ts +0 -42
  235. package/dist/src/cli/utils/compliance.js +0 -150
  236. package/dist/src/cli/utils/compliance.js.map +0 -1
  237. package/dist/src/cli/utils/config-schema.d.ts +0 -256
  238. package/dist/src/cli/utils/config-schema.js +0 -67
  239. package/dist/src/cli/utils/config-schema.js.map +0 -1
  240. package/dist/src/cli/utils/fs.d.ts +0 -10
  241. package/dist/src/cli/utils/fs.js +0 -139
  242. package/dist/src/cli/utils/fs.js.map +0 -1
  243. package/dist/src/cli/utils/i18n.d.ts +0 -21
  244. package/dist/src/cli/utils/i18n.js +0 -36
  245. package/dist/src/cli/utils/i18n.js.map +0 -1
  246. package/dist/src/cli/utils/memory.d.ts +0 -45
  247. package/dist/src/cli/utils/memory.js +0 -339
  248. package/dist/src/cli/utils/memory.js.map +0 -1
  249. package/dist/src/cli/utils/pkg.d.ts +0 -42
  250. package/dist/src/cli/utils/pkg.js +0 -281
  251. package/dist/src/cli/utils/pkg.js.map +0 -1
  252. package/dist/src/cli/utils/quality.d.ts +0 -25
  253. package/dist/src/cli/utils/quality.js +0 -61
  254. package/dist/src/cli/utils/quality.js.map +0 -1
  255. package/dist/src/cli/utils/schemas.d.ts +0 -49
  256. package/dist/src/cli/utils/schemas.js +0 -20
  257. package/dist/src/cli/utils/schemas.js.map +0 -1
  258. package/dist/src/cli/utils/string.d.ts +0 -7
  259. package/dist/src/cli/utils/string.js +0 -50
  260. package/dist/src/cli/utils/string.js.map +0 -1
  261. package/dist/src/cli/utils/time.d.ts +0 -2
  262. package/dist/src/cli/utils/time.js +0 -28
  263. package/dist/src/cli/utils/time.js.map +0 -1
  264. package/dist/src/cli/utils/ui.d.ts +0 -53
  265. package/dist/src/cli/utils/ui.js +0 -101
  266. package/dist/src/cli/utils/ui.js.map +0 -1
  267. package/dist/src/cli/utils/validate-registry.d.ts +0 -4
  268. package/dist/src/cli/utils/validate-registry.js +0 -130
  269. package/dist/src/cli/utils/validate-registry.js.map +0 -1
  270. package/dist/src/contracts/index.d.ts +0 -1
  271. package/dist/src/contracts/index.js +0 -2
  272. package/dist/src/contracts/index.js.map +0 -1
  273. package/dist/src/contracts/tasks.d.ts +0 -44
  274. package/dist/src/contracts/tasks.js +0 -21
  275. package/dist/src/contracts/tasks.js.map +0 -1
  276. package/dist/src/modules/agents/definitions.d.ts +0 -26
  277. package/dist/src/modules/agents/definitions.js +0 -559
  278. package/dist/src/modules/agents/definitions.js.map +0 -1
  279. package/dist/src/modules/agents/registry/analyst.d.ts +0 -2
  280. package/dist/src/modules/agents/registry/analyst.js +0 -40
  281. package/dist/src/modules/agents/registry/analyst.js.map +0 -1
  282. package/dist/src/modules/agents/registry/architect.d.ts +0 -2
  283. package/dist/src/modules/agents/registry/architect.js +0 -43
  284. package/dist/src/modules/agents/registry/architect.js.map +0 -1
  285. package/dist/src/modules/agents/registry/backend.d.ts +0 -2
  286. package/dist/src/modules/agents/registry/backend.js +0 -51
  287. package/dist/src/modules/agents/registry/backend.js.map +0 -1
  288. package/dist/src/modules/agents/registry/database.d.ts +0 -2
  289. package/dist/src/modules/agents/registry/database.js +0 -46
  290. package/dist/src/modules/agents/registry/database.js.map +0 -1
  291. package/dist/src/modules/agents/registry/devops.d.ts +0 -2
  292. package/dist/src/modules/agents/registry/devops.js +0 -46
  293. package/dist/src/modules/agents/registry/devops.js.map +0 -1
  294. package/dist/src/modules/agents/registry/explorer.d.ts +0 -2
  295. package/dist/src/modules/agents/registry/explorer.js +0 -38
  296. package/dist/src/modules/agents/registry/explorer.js.map +0 -1
  297. package/dist/src/modules/agents/registry/frontend.d.ts +0 -2
  298. package/dist/src/modules/agents/registry/frontend.js +0 -53
  299. package/dist/src/modules/agents/registry/frontend.js.map +0 -1
  300. package/dist/src/modules/agents/registry/git.d.ts +0 -2
  301. package/dist/src/modules/agents/registry/git.js +0 -37
  302. package/dist/src/modules/agents/registry/git.js.map +0 -1
  303. package/dist/src/modules/agents/registry/manager.d.ts +0 -2
  304. package/dist/src/modules/agents/registry/manager.js +0 -65
  305. package/dist/src/modules/agents/registry/manager.js.map +0 -1
  306. package/dist/src/modules/agents/registry/mobile.d.ts +0 -2
  307. package/dist/src/modules/agents/registry/mobile.js +0 -42
  308. package/dist/src/modules/agents/registry/mobile.js.map +0 -1
  309. package/dist/src/modules/agents/registry/native.d.ts +0 -2
  310. package/dist/src/modules/agents/registry/native.js +0 -42
  311. package/dist/src/modules/agents/registry/native.js.map +0 -1
  312. package/dist/src/modules/agents/registry/quality.d.ts +0 -2
  313. package/dist/src/modules/agents/registry/quality.js +0 -44
  314. package/dist/src/modules/agents/registry/quality.js.map +0 -1
  315. package/dist/src/modules/agents/registry/security.d.ts +0 -2
  316. package/dist/src/modules/agents/registry/security.js +0 -43
  317. package/dist/src/modules/agents/registry/security.js.map +0 -1
  318. package/dist/src/modules/agents/types.d.ts +0 -33
  319. package/dist/src/modules/agents/types.js +0 -2
  320. package/dist/src/modules/agents/types.js.map +0 -1
  321. package/dist/src/modules/contracts/api.d.ts +0 -178
  322. package/dist/src/modules/contracts/api.js +0 -56
  323. package/dist/src/modules/contracts/api.js.map +0 -1
  324. package/dist/src/modules/contracts/index.d.ts +0 -5
  325. package/dist/src/modules/contracts/index.js +0 -6
  326. package/dist/src/modules/contracts/index.js.map +0 -1
  327. package/dist/src/modules/engines/agent-executor.d.ts +0 -46
  328. package/dist/src/modules/engines/agent-executor.js +0 -241
  329. package/dist/src/modules/engines/agent-executor.js.map +0 -1
  330. package/dist/src/modules/engines/agent-loop.d.ts +0 -34
  331. package/dist/src/modules/engines/agent-loop.js +0 -102
  332. package/dist/src/modules/engines/agent-loop.js.map +0 -1
  333. package/dist/src/modules/engines/contract-engine.d.ts +0 -46
  334. package/dist/src/modules/engines/contract-engine.js +0 -116
  335. package/dist/src/modules/engines/contract-engine.js.map +0 -1
  336. package/dist/src/modules/engines/crud-governance.d.ts +0 -66
  337. package/dist/src/modules/engines/crud-governance.js +0 -219
  338. package/dist/src/modules/engines/crud-governance.js.map +0 -1
  339. package/dist/src/modules/engines/discovery-engine.d.ts +0 -42
  340. package/dist/src/modules/engines/discovery-engine.js +0 -161
  341. package/dist/src/modules/engines/discovery-engine.js.map +0 -1
  342. package/dist/src/modules/engines/evaluation-engine.d.ts +0 -18
  343. package/dist/src/modules/engines/evaluation-engine.js +0 -171
  344. package/dist/src/modules/engines/evaluation-engine.js.map +0 -1
  345. package/dist/src/modules/engines/file-lock.d.ts +0 -41
  346. package/dist/src/modules/engines/file-lock.js +0 -168
  347. package/dist/src/modules/engines/file-lock.js.map +0 -1
  348. package/dist/src/modules/engines/health-engine.d.ts +0 -22
  349. package/dist/src/modules/engines/health-engine.js +0 -127
  350. package/dist/src/modules/engines/health-engine.js.map +0 -1
  351. package/dist/src/modules/engines/phase-engine.d.ts +0 -82
  352. package/dist/src/modules/engines/phase-engine.js +0 -211
  353. package/dist/src/modules/engines/phase-engine.js.map +0 -1
  354. package/dist/src/modules/engines/planning-engine.d.ts +0 -25
  355. package/dist/src/modules/engines/planning-engine.js +0 -80
  356. package/dist/src/modules/engines/planning-engine.js.map +0 -1
  357. package/dist/src/modules/engines/policy-engine.d.ts +0 -63
  358. package/dist/src/modules/engines/policy-engine.js +0 -186
  359. package/dist/src/modules/engines/policy-engine.js.map +0 -1
  360. package/dist/src/modules/engines/quality-gate.d.ts +0 -31
  361. package/dist/src/modules/engines/quality-gate.js +0 -95
  362. package/dist/src/modules/engines/quality-gate.js.map +0 -1
  363. package/dist/src/modules/engines/risk-engine.d.ts +0 -34
  364. package/dist/src/modules/engines/risk-engine.js +0 -201
  365. package/dist/src/modules/engines/risk-engine.js.map +0 -1
  366. package/dist/src/modules/engines/routing-engine.d.ts +0 -96
  367. package/dist/src/modules/engines/routing-engine.js +0 -505
  368. package/dist/src/modules/engines/routing-engine.js.map +0 -1
  369. package/dist/src/modules/engines/session-engine.d.ts +0 -68
  370. package/dist/src/modules/engines/session-engine.js +0 -141
  371. package/dist/src/modules/engines/session-engine.js.map +0 -1
  372. package/dist/src/modules/engines/types.d.ts +0 -51
  373. package/dist/src/modules/engines/types.js +0 -2
  374. package/dist/src/modules/engines/types.js.map +0 -1
  375. package/dist/src/modules/memory/core.d.ts +0 -42
  376. package/dist/src/modules/memory/core.js +0 -100
  377. package/dist/src/modules/memory/core.js.map +0 -1
  378. package/dist/src/modules/memory/embedding.d.ts +0 -28
  379. package/dist/src/modules/memory/embedding.js +0 -131
  380. package/dist/src/modules/memory/embedding.js.map +0 -1
  381. package/dist/src/modules/memory/types.d.ts +0 -18
  382. package/dist/src/modules/memory/types.js +0 -2
  383. package/dist/src/modules/memory/types.js.map +0 -1
  384. package/dist/src/modules/memory/vector-store.d.ts +0 -13
  385. package/dist/src/modules/memory/vector-store.js +0 -75
  386. package/dist/src/modules/memory/vector-store.js.map +0 -1
  387. package/dist/src/modules/providers/definitions.d.ts +0 -9
  388. package/dist/src/modules/providers/definitions.js +0 -141
  389. package/dist/src/modules/providers/definitions.js.map +0 -1
  390. package/dist/src/modules/providers/llm-provider.d.ts +0 -87
  391. package/dist/src/modules/providers/llm-provider.js +0 -242
  392. package/dist/src/modules/providers/llm-provider.js.map +0 -1
  393. package/dist/src/modules/providers/registry.d.ts +0 -12
  394. package/dist/src/modules/providers/registry.js +0 -19
  395. package/dist/src/modules/providers/registry.js.map +0 -1
  396. package/dist/src/modules/providers/shared.d.ts +0 -1
  397. package/dist/src/modules/providers/shared.js +0 -104
  398. package/dist/src/modules/providers/shared.js.map +0 -1
  399. package/dist/src/modules/providers/types.d.ts +0 -14
  400. package/dist/src/modules/providers/types.js +0 -2
  401. package/dist/src/modules/providers/types.js.map +0 -1
  402. package/dist/src/modules/skills/adapter-skills.d.ts +0 -70
  403. package/dist/src/modules/skills/adapter-skills.js +0 -450
  404. package/dist/src/modules/skills/adapter-skills.js.map +0 -1
  405. package/dist/src/modules/skills/definitions.d.ts +0 -48
  406. package/dist/src/modules/skills/definitions.js +0 -71
  407. package/dist/src/modules/skills/definitions.js.map +0 -1
  408. package/dist/src/shared/audit.d.ts +0 -1
  409. package/dist/src/shared/audit.js +0 -2
  410. package/dist/src/shared/audit.js.map +0 -1
  411. package/dist/src/shared/constants.d.ts +0 -1
  412. package/dist/src/shared/constants.js +0 -2
  413. package/dist/src/shared/constants.js.map +0 -1
  414. package/dist/src/shared/errors.d.ts +0 -1
  415. package/dist/src/shared/errors.js +0 -2
  416. package/dist/src/shared/errors.js.map +0 -1
  417. package/dist/src/shared/fs.d.ts +0 -1
  418. package/dist/src/shared/fs.js +0 -2
  419. package/dist/src/shared/fs.js.map +0 -1
  420. package/dist/src/shared/lock.d.ts +0 -1
  421. package/dist/src/shared/lock.js +0 -2
  422. package/dist/src/shared/lock.js.map +0 -1
  423. package/dist/src/shared/logger.d.ts +0 -1
  424. package/dist/src/shared/logger.js +0 -2
  425. package/dist/src/shared/logger.js.map +0 -1
  426. package/dist/src/shared/pii.d.ts +0 -1
  427. package/dist/src/shared/pii.js +0 -2
  428. package/dist/src/shared/pii.js.map +0 -1
  429. package/dist/src/shared/retention.d.ts +0 -1
  430. package/dist/src/shared/retention.js +0 -2
  431. package/dist/src/shared/retention.js.map +0 -1
  432. package/dist/src/shared/storage.d.ts +0 -141
  433. package/dist/src/shared/storage.js +0 -332
  434. package/dist/src/shared/storage.js.map +0 -1
  435. package/dist/src/shared/string.d.ts +0 -1
  436. package/dist/src/shared/string.js +0 -2
  437. package/dist/src/shared/string.js.map +0 -1
  438. package/dist/src/shared/types.d.ts +0 -1
  439. package/dist/src/shared/types.js +0 -2
  440. package/dist/src/shared/types.js.map +0 -1
@@ -1,391 +0,0 @@
1
- /**
2
- * ─── CONTEXT OPTIMIZER v2 ─────────────────────────────────────────────
3
- *
4
- * Solves IDE/CLI limit problems:
5
- * - Token limits (Claude 200K, GPT 128K, Cursor context)
6
- * - Context window overflow
7
- * - Rate limiting (tokens/min, calls/min)
8
- * - File read size limits
9
- * - Response size limits
10
- * - Session context persistence (recovery after disconnect)
11
- * - Smart prompt compression
12
- *
13
- * Multi-provider support: each IDE/CLI has different limits.
14
- *
15
- * ─── Provider Limits ──────────────────────────────────────────────
16
- * | Platform | Context | Max Call | Rate (min) | Rate (hour) |
17
- * |-------------|---------|----------|------------|-------------|
18
- * | Claude Code | 200K | 8K | 100K | 500K |
19
- * | Cursor | 100K | 4K | 50K | 250K |
20
- * | Gemini CLI | 1M | 32K | 500K | 2M |
21
- * | VS Code | 64K | 4K | 30K | 150K |
22
- * | GitHub Copilot | 64K | 4K | 30K | 150K |
23
- */
24
- import crypto from "crypto";
25
- import fs from "fs";
26
- import path from "path";
27
- const PROVIDER_LIMITS = {
28
- "claude": { maxContextTokens: 200000, maxResponseTokens: 8192, maxTokensPerMinute: 100000, maxTokensPerHour: 500000, maxFileReadSize: 204800, maxFileLines: 400, charsPerToken: 3.5, maxToolCallsPerMinute: 60 },
29
- "cursor": { maxContextTokens: 100000, maxResponseTokens: 4096, maxTokensPerMinute: 50000, maxTokensPerHour: 250000, maxFileReadSize: 102400, maxFileLines: 200, charsPerToken: 4, maxToolCallsPerMinute: 30 },
30
- "gemini": { maxContextTokens: 1000000, maxResponseTokens: 32768, maxTokensPerMinute: 500000, maxTokensPerHour: 2000000, maxFileReadSize: 512000, maxFileLines: 1000, charsPerToken: 3, maxToolCallsPerMinute: 120 },
31
- "vscode": { maxContextTokens: 64000, maxResponseTokens: 4096, maxTokensPerMinute: 30000, maxTokensPerHour: 150000, maxFileReadSize: 102400, maxFileLines: 200, charsPerToken: 4, maxToolCallsPerMinute: 20 },
32
- "copilot": { maxContextTokens: 64000, maxResponseTokens: 4096, maxTokensPerMinute: 30000, maxTokensPerHour: 150000, maxFileReadSize: 102400, maxFileLines: 200, charsPerToken: 4, maxToolCallsPerMinute: 20 },
33
- "default": { maxContextTokens: 100000, maxResponseTokens: 4000, maxTokensPerMinute: 20000, maxTokensPerHour: 100000, maxFileReadSize: 102400, maxFileLines: 200, charsPerToken: 4, maxToolCallsPerMinute: 30 },
34
- };
35
- // ─── Environment Overrides ────────────────────────────────────────
36
- function getProviderLimits(provider) {
37
- const base = PROVIDER_LIMITS[provider] || PROVIDER_LIMITS["default"];
38
- return {
39
- maxContextTokens: parseInt(process.env.MCP_MAX_CONTEXT_TOKENS || String(base.maxContextTokens), 10),
40
- maxResponseTokens: parseInt(process.env.MCP_MAX_RESPONSE_TOKENS || String(base.maxResponseTokens), 10),
41
- maxTokensPerMinute: parseInt(process.env.MCP_MAX_TOKENS_PER_MINUTE || String(base.maxTokensPerMinute), 10),
42
- maxTokensPerHour: parseInt(process.env.MCP_MAX_TOKENS_PER_HOUR || String(base.maxTokensPerHour), 10),
43
- maxFileReadSize: parseInt(process.env.MCP_MAX_FILE_READ_SIZE || String(base.maxFileReadSize), 10),
44
- maxFileLines: parseInt(process.env.MCP_MAX_FILE_LINES || String(base.maxFileLines), 10),
45
- charsPerToken: parseFloat(process.env.MCP_CHARS_PER_TOKEN || String(base.charsPerToken)),
46
- maxToolCallsPerMinute: parseInt(process.env.MCP_MAX_TOOL_CALLS_PER_MINUTE || String(base.maxToolCallsPerMinute), 10),
47
- };
48
- }
49
- const sessions = new Map();
50
- const TOOL_CALL_RECORDS = new Map();
51
- /**
52
- * Detect provider from environment or client name.
53
- */
54
- export function detectProvider(clientName) {
55
- const name = clientName.toLowerCase();
56
- if (name.includes("claude"))
57
- return "claude";
58
- if (name.includes("cursor"))
59
- return "cursor";
60
- if (name.includes("gemini"))
61
- return "gemini";
62
- if (name.includes("vscode") || name.includes("visual studio"))
63
- return "vscode";
64
- if (name.includes("copilot") || name.includes("github"))
65
- return "copilot";
66
- return process.env.MCP_PROVIDER || "default";
67
- }
68
- /**
69
- * Estimate token count from text (provider-aware).
70
- */
71
- export function estimateTokens(text, provider = "default") {
72
- if (!text)
73
- return 0;
74
- const limits = getProviderLimits(provider);
75
- return Math.ceil(text.length / limits.charsPerToken);
76
- }
77
- // ─── Context Window Management ────────────────────────────────────
78
- /**
79
- * Get or create a context session for an agent.
80
- */
81
- function getSession(agent) {
82
- if (!sessions.has(agent)) {
83
- sessions.set(agent, { agent, blocks: [], totalTokens: 0, lastAccess: Date.now(), createdAt: Date.now() });
84
- }
85
- const session = sessions.get(agent);
86
- session.lastAccess = Date.now();
87
- return session;
88
- }
89
- /**
90
- * Add a block to the agent's context window.
91
- * Automatically evicts low-priority blocks when context is full.
92
- */
93
- export function addContextBlock(agent, type, content, priority = 5, ttl = null) {
94
- const session = getSession(agent);
95
- const provider = detectProvider(agent);
96
- const limits = getProviderLimits(provider);
97
- const tokens = estimateTokens(content, provider);
98
- const evicted = [];
99
- const block = {
100
- id: crypto.randomBytes(4).toString("hex"),
101
- type,
102
- content,
103
- tokens,
104
- priority,
105
- timestamp: Date.now(),
106
- ttl,
107
- };
108
- // If this single block exceeds context, truncate it
109
- if (tokens > limits.maxContextTokens * 0.5) {
110
- const ratio = limits.maxContextTokens * 0.5 / tokens;
111
- const maxChars = Math.floor(content.length * ratio);
112
- block.content = content.substring(0, maxChars) + `\n[... TRUNCATED: ${content.length - maxChars} chars, ${tokens - Math.floor(maxChars / limits.charsPerToken)} tokens]`;
113
- block.tokens = estimateTokens(block.content, provider);
114
- }
115
- // Evict low-priority or expired blocks if needed
116
- const available = limits.maxContextTokens - session.totalTokens;
117
- if (block.tokens > available) {
118
- // Sort blocks by priority (asc), then by TTL (expired first)
119
- const sorted = [...session.blocks].sort((a, b) => {
120
- if (a.priority !== b.priority)
121
- return a.priority - b.priority;
122
- if (a.ttl && Date.now() - a.timestamp > a.ttl)
123
- return -1;
124
- if (b.ttl && Date.now() - b.timestamp > b.ttl)
125
- return 1;
126
- return a.timestamp - b.timestamp;
127
- });
128
- let freed = available;
129
- for (const blk of sorted) {
130
- if (freed >= block.tokens)
131
- break;
132
- if (blk.priority >= block.priority && blk.type !== "system")
133
- continue; // Don't evict same/higher priority
134
- session.totalTokens -= blk.tokens;
135
- session.blocks = session.blocks.filter(b => b.id !== blk.id);
136
- freed += blk.tokens;
137
- evicted.push(blk.type);
138
- }
139
- }
140
- // Add block
141
- session.blocks.push(block);
142
- session.totalTokens += block.tokens;
143
- // Remove expired TTL blocks
144
- session.blocks = session.blocks.filter(b => !b.ttl || Date.now() - b.timestamp < b.ttl);
145
- session.totalTokens = session.blocks.reduce((sum, b) => sum + b.tokens, 0);
146
- return { added: true, evicted };
147
- }
148
- /**
149
- * Get current context usage stats.
150
- */
151
- export function getContextStats(agent) {
152
- const provider = detectProvider(agent);
153
- const limits = getProviderLimits(provider);
154
- const session = sessions.get(agent);
155
- if (!session) {
156
- return { totalTokens: 0, maxTokens: limits.maxContextTokens, usagePercent: 0, blockCount: 0, blocks: [] };
157
- }
158
- return {
159
- totalTokens: session.totalTokens,
160
- maxTokens: limits.maxContextTokens,
161
- usagePercent: Math.round(session.totalTokens / limits.maxContextTokens * 100),
162
- blockCount: session.blocks.length,
163
- blocks: session.blocks.map(b => ({ type: b.type, tokens: b.tokens, priority: b.priority })),
164
- };
165
- }
166
- /**
167
- * Compress context by summarizing low-priority blocks.
168
- */
169
- export function compressContext(agent, targetPercent = 70) {
170
- const session = getSession(agent);
171
- const limits = getProviderLimits(detectProvider(agent));
172
- const targetTokens = Math.floor(limits.maxContextTokens * targetPercent / 100);
173
- if (session.totalTokens <= targetTokens) {
174
- return { compressed: 0, summary: "Context within limits. No compression needed." };
175
- }
176
- const excess = session.totalTokens - targetTokens;
177
- let compressed = 0;
178
- // Compress low-priority blocks first
179
- const sorted = [...session.blocks].sort((a, b) => a.priority - b.priority);
180
- for (const block of sorted) {
181
- if (compressed >= excess)
182
- break;
183
- if (block.type === "system")
184
- continue; // Never compress system blocks
185
- const originalTokens = block.tokens;
186
- const summaryLength = Math.max(100, Math.floor(block.content.length * 0.3));
187
- block.content = "[COMPRESSED] " + block.content.substring(0, summaryLength) + `[... (original: ${originalTokens} tokens)]`;
188
- block.tokens = estimateTokens(block.content, detectProvider(agent));
189
- compressed += originalTokens - block.tokens;
190
- }
191
- session.totalTokens = session.blocks.reduce((sum, b) => sum + b.tokens, 0);
192
- return { compressed, summary: `Compressed ${compressed} tokens. Current: ${session.totalTokens}/${limits.maxContextTokens} (${Math.round(session.totalTokens / limits.maxContextTokens * 100)}%)` };
193
- }
194
- /**
195
- * Persist session to disk for recovery after disconnect.
196
- */
197
- export function persistSession(agent) {
198
- const session = sessions.get(agent);
199
- if (!session)
200
- return;
201
- const persistDir = path.join(process.cwd(), ".atabey", "context-sessions");
202
- if (!fs.existsSync(persistDir))
203
- fs.mkdirSync(persistDir, { recursive: true });
204
- const filePath = path.join(persistDir, `${agent.replace(/[^a-z0-9]/gi, "_")}.json`);
205
- fs.writeFileSync(filePath, JSON.stringify({
206
- agent: session.agent,
207
- blocks: session.blocks.map(b => ({ type: b.type, content: b.content, priority: b.priority, timestamp: b.timestamp })),
208
- totalTokens: session.totalTokens,
209
- createdAt: session.createdAt,
210
- }, null, 2));
211
- }
212
- /**
213
- * Restore session from disk.
214
- */
215
- export function restoreSession(agent) {
216
- const persistDir = path.join(process.cwd(), ".atabey", "context-sessions");
217
- const filePath = path.join(persistDir, `${agent.replace(/[^a-z0-9]/gi, "_")}.json`);
218
- if (!fs.existsSync(filePath))
219
- return false;
220
- try {
221
- const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
222
- const session = getSession(agent);
223
- session.blocks = data.blocks.map((b) => ({
224
- ...b,
225
- id: crypto.randomBytes(4).toString("hex"),
226
- tokens: estimateTokens(b.content, detectProvider(agent)),
227
- ttl: null,
228
- }));
229
- session.totalTokens = session.blocks.reduce((sum, b) => sum + b.tokens, 0);
230
- return true;
231
- }
232
- catch {
233
- return false;
234
- }
235
- }
236
- /**
237
- * Smart file truncation — preserves imports, type definitions, and function signatures.
238
- */
239
- export function smartTruncateFile(content, filePath, provider = "default") {
240
- const limits = getProviderLimits(provider);
241
- const estimatedTokens = estimateTokens(content, provider);
242
- if (estimatedTokens <= limits.maxResponseTokens)
243
- return content;
244
- const lines = content.split("\n");
245
- const maxLines = limits.maxFileLines;
246
- // Smart truncation: keep imports + type defs + first/last functions
247
- const importantLines = [];
248
- const summaryLines = [];
249
- for (let i = 0; i < lines.length; i++) {
250
- const line = lines[i];
251
- const trimmed = line.trim();
252
- // Keep imports
253
- if (trimmed.startsWith("import ") || trimmed.startsWith("export ")) {
254
- importantLines.push(i);
255
- continue;
256
- }
257
- // Keep type/interface definitions
258
- if (trimmed.startsWith("type ") || trimmed.startsWith("interface ") || trimmed.startsWith("enum ")) {
259
- importantLines.push(i);
260
- // Also keep the next line (body start)
261
- if (i + 1 < lines.length)
262
- importantLines.push(i + 1);
263
- continue;
264
- }
265
- // Keep function/class signatures
266
- if (/^\s*(?:export\s+)?(?:async\s+)?(?:function|class|const\s+\w+\s*(?::|=)\s*(?:async\s+)?\()/.test(trimmed)) {
267
- importantLines.push(i);
268
- continue;
269
- }
270
- // Keep JSDoc comments
271
- if (trimmed.startsWith("/**") || trimmed.startsWith("* ") || trimmed.startsWith("*/")) {
272
- importantLines.push(i);
273
- continue;
274
- }
275
- }
276
- // Build truncated content from important lines
277
- const importantSet = new Set(importantLines);
278
- const result = [];
279
- let lastKept = -1;
280
- for (let i = 0; i < Math.min(lines.length, maxLines * 2); i++) {
281
- if (importantSet.has(i)) {
282
- if (i - lastKept > 3) {
283
- result.push(`// ... ${i - lastKept - 1} lines omitted ...`);
284
- }
285
- result.push(lines[i]);
286
- lastKept = i;
287
- }
288
- }
289
- // Add remaining lines from the end of the file (last 10% or 50 lines)
290
- const tailCount = Math.min(50, Math.floor(lines.length * 0.1));
291
- if (tailCount > 0 && lastKept < lines.length - tailCount) {
292
- result.push(`// ... ${lines.length - lastKept - 1} lines omitted ...`);
293
- result.push(`// === LAST ${tailCount} LINES ===`);
294
- for (let i = lines.length - tailCount; i < lines.length; i++) {
295
- result.push(lines[i]);
296
- }
297
- }
298
- const truncated = result.join("\n");
299
- const newTokens = estimateTokens(truncated, provider);
300
- return `[SMART TRUNCATED] File "${filePath}" reduced from ${lines.length} lines (~${estimatedTokens} tokens) to ${result.length} lines (~${newTokens} tokens). Preserved imports, types, and function signatures.\n\n${truncated}`;
301
- }
302
- // ─── Token Budget Check (enhanced) ────────────────────────────────
303
- /**
304
- * Enhanced token budget check with provider awareness.
305
- */
306
- export function checkTokenBudget(agent, toolName, responseText, provider) {
307
- const resolvedProvider = provider || detectProvider(agent);
308
- const limits = getProviderLimits(resolvedProvider);
309
- const budget = getOrCreateBudget(agent);
310
- const estimatedTokens = estimateTokens(responseText, resolvedProvider);
311
- // Check if agent is currently blocked
312
- if (budget.blockedUntil && Date.now() < budget.blockedUntil) {
313
- const remaining = Math.ceil((budget.blockedUntil - Date.now()) / 1000);
314
- return `[TOKEN BUDGET] Agent ${agent} blocked for ${remaining}s (${resolvedProvider} limit). Reduce request size or wait.`;
315
- }
316
- // 1. Per-call limit
317
- if (estimatedTokens > limits.maxResponseTokens) {
318
- return `[TOKEN BUDGET] Response ~${estimatedTokens} tokens exceeds ${resolvedProvider} limit of ${limits.maxResponseTokens}. Use smartTruncateFile.`;
319
- }
320
- // Record usage
321
- budget.records.push({ tokens: estimatedTokens, timestamp: Date.now(), toolName });
322
- budget.totalTokens += estimatedTokens;
323
- pruneOldRecords(budget);
324
- // 2. Per-minute limit
325
- const minuteTokens = sumTokensInWindow(budget, 60000);
326
- if (minuteTokens > limits.maxTokensPerMinute) {
327
- budget.blockedUntil = Date.now() + 30000;
328
- return `[TOKEN BUDGET] ${resolvedProvider} minute limit (${limits.maxTokensPerMinute}) exceeded. Cooldown 30s.`;
329
- }
330
- // 3. Per-hour limit
331
- const hourTokens = sumTokensInWindow(budget, 3600000);
332
- if (hourTokens > limits.maxTokensPerHour) {
333
- budget.blockedUntil = Date.now() + 120000;
334
- return `[TOKEN BUDGET] ${resolvedProvider} hour limit (${limits.maxTokensPerHour}) exceeded. Cooldown 2min.`;
335
- }
336
- // 4. Tool call rate limit
337
- const now = Date.now();
338
- const calls = TOOL_CALL_RECORDS.get(agent) || [];
339
- const recentCalls = calls.filter(t => now - t < 60000);
340
- if (recentCalls.length > limits.maxToolCallsPerMinute) {
341
- budget.blockedUntil = Date.now() + 15000;
342
- return `[RATE LIMIT] ${resolvedProvider} tool call limit (${limits.maxToolCallsPerMinute}/min) exceeded. Cooldown 15s.`;
343
- }
344
- recentCalls.push(now);
345
- TOOL_CALL_RECORDS.set(agent, recentCalls);
346
- // 5. Context window warning
347
- const contextStats = getContextStats(agent);
348
- if (contextStats.usagePercent > 90) {
349
- process.stderr.write(`[CONTEXT WARNING] ${agent} at ${contextStats.usagePercent}% of ${resolvedProvider} context window (${contextStats.totalTokens}/${contextStats.maxTokens}). Consider compressContext().\n`);
350
- }
351
- return null;
352
- }
353
- const agentBudgets = new Map();
354
- function getOrCreateBudget(agent) {
355
- if (!agentBudgets.has(agent)) {
356
- agentBudgets.set(agent, { records: [], totalTokens: 0, lastWarning: 0, blockedUntil: null });
357
- }
358
- return agentBudgets.get(agent);
359
- }
360
- function pruneOldRecords(budget) {
361
- const oneHourAgo = Date.now() - 3600000;
362
- budget.records = budget.records.filter(r => r.timestamp > oneHourAgo);
363
- }
364
- function sumTokensInWindow(budget, windowMs) {
365
- const cutoff = Date.now() - windowMs;
366
- return budget.records.filter(r => r.timestamp > cutoff).reduce((sum, r) => sum + r.tokens, 0);
367
- }
368
- export function getTokenBudgetStats(agent) {
369
- const budget = agentBudgets.get(agent);
370
- if (!budget)
371
- return { totalTokens: 0, recentMinute: 0, recentHour: 0, blocked: false, blockedRemaining: 0, callCount: 0 };
372
- pruneOldRecords(budget);
373
- return {
374
- totalTokens: budget.totalTokens,
375
- recentMinute: sumTokensInWindow(budget, 60000),
376
- recentHour: sumTokensInWindow(budget, 3600000),
377
- blocked: budget.blockedUntil !== null && Date.now() < budget.blockedUntil,
378
- blockedRemaining: budget.blockedUntil ? Math.max(0, budget.blockedUntil - Date.now()) : 0,
379
- callCount: budget.records.length,
380
- };
381
- }
382
- export function getAllTokenBudgetStats() {
383
- const stats = {};
384
- for (const [agent] of agentBudgets)
385
- stats[agent] = getTokenBudgetStats(agent);
386
- return stats;
387
- }
388
- export function resetTokenBudgets() { agentBudgets.clear(); sessions.clear(); TOOL_CALL_RECORDS.clear(); }
389
- export function updateTokenBudgetConfig(_newConfig) { }
390
- export function getTokenBudgetConfig() { return { ...PROVIDER_LIMITS }; }
391
- //# sourceMappingURL=context-optimizer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-optimizer.js","sourceRoot":"","sources":["../../../../../../atabey-mcp/src/mcp/utils/context-optimizer.ts"],"names":[],"mappings":"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"}
@@ -1,69 +0,0 @@
1
- /**
2
- * ─── AI DISCIPLINE ENGINE ─────────────────────────────────────────
3
- *
4
- * Enforces strict rules on AI behavior at the MCP middleware layer.
5
- * Unlike agent instructions (which AI can ignore), these are enforced
6
- * at the tool level - AI cannot bypass them.
7
- *
8
- * Features:
9
- * - Tool call rate limiting (prevents abuse)
10
- * - File size limits (prevents reading/writing huge files)
11
- * - Call frequency tracking (detects loops)
12
- * - Tool blacklist per agent
13
- * - Agent-based tool whitelist
14
- * - Response content validation
15
- * - Max concurrent operations
16
- */
17
- declare const CONFIG: {
18
- MAX_CALLS_PER_MINUTE: number;
19
- MAX_TOTAL_CALLS: number;
20
- MAX_FILE_SIZE: number;
21
- MAX_ARGS_SIZE: number;
22
- COOLDOWN_MS: number;
23
- MAX_RESPONSE_SIZE: number;
24
- MAX_CONSECUTIVE_SAME_TOOL: number;
25
- RESTRICTED_TOOLS: string[];
26
- AGENT_TOOL_WHITELIST: Map<string, Set<string>>;
27
- };
28
- /**
29
- * Enforce discipline on a tool call before execution.
30
- * Returns error message if blocked, null if allowed.
31
- */
32
- export declare function enforceDiscipline(agent: string, toolName: string, args: Record<string, unknown>): Promise<string | null>;
33
- /**
34
- * Validate tool response content before returning to AI.
35
- * Blocks: oversized responses, binary data, and prompt injection attempts.
36
- * Returns error message if blocked, null if allowed.
37
- */
38
- export declare function validateResponse(toolName: string, result: {
39
- content: Array<{
40
- type: string;
41
- text: string;
42
- }>;
43
- }): string | null;
44
- /**
45
- * Get discipline stats for an agent.
46
- */
47
- export declare function getDisciplineStats(agent: string): {
48
- totalCalls: number;
49
- recentCalls: number;
50
- inCooldown: boolean;
51
- cooldownRemaining: number;
52
- violations: number;
53
- lastViolation: string | null;
54
- };
55
- /**
56
- * Get all agents' discipline stats.
57
- */
58
- export declare function getAllDisciplineStats(): Record<string, {
59
- totalCalls: number;
60
- recentCalls: number;
61
- inCooldown: boolean;
62
- violations: number;
63
- lastViolation: string | null;
64
- }>;
65
- /**
66
- * Reset discipline for all agents.
67
- */
68
- export declare function resetDiscipline(): void;
69
- export { CONFIG as DisciplineConfig };