atabey 0.0.37 → 0.1.0

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 (513) hide show
  1. package/ATABEY.md +1 -1
  2. package/PRIVACY.md +2 -2
  3. package/README.md +58 -46
  4. package/bin/completion.sh +1 -1
  5. package/dist/atabey/src/cli/commands/api.d.ts +1 -0
  6. package/dist/atabey/src/cli/commands/api.js +90 -0
  7. package/dist/atabey/src/cli/commands/api.js.map +1 -0
  8. package/dist/atabey/src/cli/commands/audit.d.ts +9 -0
  9. package/dist/atabey/src/cli/commands/audit.js +73 -0
  10. package/dist/atabey/src/cli/commands/audit.js.map +1 -0
  11. package/dist/atabey/src/cli/commands/check.js +15 -6
  12. package/dist/atabey/src/cli/commands/check.js.map +1 -1
  13. package/dist/atabey/src/cli/commands/contract.js +51 -8
  14. package/dist/atabey/src/cli/commands/contract.js.map +1 -1
  15. package/dist/atabey/src/cli/commands/coverage.js +17 -12
  16. package/dist/atabey/src/cli/commands/coverage.js.map +1 -1
  17. package/dist/atabey/src/cli/commands/dashboard.js +101 -16
  18. package/dist/atabey/src/cli/commands/dashboard.js.map +1 -1
  19. package/dist/atabey/src/cli/commands/db.d.ts +1 -0
  20. package/dist/atabey/src/cli/commands/db.js +58 -0
  21. package/dist/atabey/src/cli/commands/db.js.map +1 -0
  22. package/dist/atabey/src/cli/commands/hitl.js +2 -1
  23. package/dist/atabey/src/cli/commands/hitl.js.map +1 -1
  24. package/dist/atabey/src/cli/commands/index-codebase.js +10 -0
  25. package/dist/atabey/src/cli/commands/index-codebase.js.map +1 -1
  26. package/dist/atabey/src/cli/commands/init/scaffold-app.js +82 -7
  27. package/dist/atabey/src/cli/commands/init/scaffold-app.js.map +1 -1
  28. package/dist/atabey/src/cli/commands/init/scaffold-core.js +3 -3
  29. package/dist/atabey/src/cli/commands/init/scaffold-core.js.map +1 -1
  30. package/dist/atabey/src/cli/commands/init/scaffold-docs.js +1 -1
  31. package/dist/atabey/src/cli/commands/init/scaffold-docs.js.map +1 -1
  32. package/dist/atabey/src/cli/commands/init/scaffold-ops.js +47 -7
  33. package/dist/atabey/src/cli/commands/init/scaffold-ops.js.map +1 -1
  34. package/dist/atabey/src/cli/commands/init/scaffold-standards.js +8 -15
  35. package/dist/atabey/src/cli/commands/init/scaffold-standards.js.map +1 -1
  36. package/dist/atabey/src/cli/commands/init.js +28 -62
  37. package/dist/atabey/src/cli/commands/init.js.map +1 -1
  38. package/dist/atabey/src/cli/commands/lint.d.ts +2 -1
  39. package/dist/atabey/src/cli/commands/lint.js +20 -1
  40. package/dist/atabey/src/cli/commands/lint.js.map +1 -1
  41. package/dist/atabey/src/cli/commands/mcp.js +71 -33
  42. package/dist/atabey/src/cli/commands/mcp.js.map +1 -1
  43. package/dist/atabey/src/cli/commands/orchestrate.d.ts +4 -4
  44. package/dist/atabey/src/cli/commands/orchestrate.js +1 -1
  45. package/dist/atabey/src/cli/commands/orchestrate.js.map +1 -1
  46. package/dist/atabey/src/cli/commands/plan.d.ts +1 -1
  47. package/dist/atabey/src/cli/commands/plan.js +10 -0
  48. package/dist/atabey/src/cli/commands/plan.js.map +1 -1
  49. package/dist/atabey/src/cli/commands/quickstart.js +1 -1
  50. package/dist/atabey/src/cli/commands/quickstart.js.map +1 -1
  51. package/dist/atabey/src/cli/commands/script.js +4 -0
  52. package/dist/atabey/src/cli/commands/script.js.map +1 -1
  53. package/dist/atabey/src/cli/commands/secrets.d.ts +1 -0
  54. package/dist/atabey/src/cli/commands/secrets.js +146 -0
  55. package/dist/atabey/src/cli/commands/secrets.js.map +1 -0
  56. package/dist/atabey/src/cli/commands/worktree.d.ts +10 -0
  57. package/dist/atabey/src/cli/commands/worktree.js +90 -0
  58. package/dist/atabey/src/cli/commands/worktree.js.map +1 -0
  59. package/dist/atabey/src/cli/index.js +75 -16
  60. package/dist/atabey/src/cli/index.js.map +1 -1
  61. package/dist/atabey/src/cli/platforms/core.d.ts +0 -1
  62. package/dist/atabey/src/cli/platforms/core.js +0 -14
  63. package/dist/atabey/src/cli/platforms/core.js.map +1 -1
  64. package/dist/atabey/src/cli/platforms/index.d.ts +2 -2
  65. package/dist/atabey/src/cli/platforms/index.js +1 -1
  66. package/dist/atabey/src/cli/platforms/index.js.map +1 -1
  67. package/dist/atabey/src/cli/platforms/paths.d.ts +0 -2
  68. package/dist/atabey/src/cli/platforms/paths.js +1 -8
  69. package/dist/atabey/src/cli/platforms/paths.js.map +1 -1
  70. package/dist/atabey/src/cli/platforms/scaffold.js +1 -1
  71. package/dist/atabey/src/cli/platforms/scaffold.js.map +1 -1
  72. package/dist/atabey/src/cli/utils/claude.js +6 -0
  73. package/dist/atabey/src/cli/utils/claude.js.map +1 -1
  74. package/dist/atabey/src/cli/utils/compliance.d.ts +1 -1
  75. package/dist/atabey/src/cli/utils/compliance.js +33 -20
  76. package/dist/atabey/src/cli/utils/compliance.js.map +1 -1
  77. package/dist/atabey/src/cli/utils/fs.js +1 -1
  78. package/dist/atabey/src/cli/utils/fs.js.map +1 -1
  79. package/dist/atabey/src/cli/utils/i18n.js +2 -2
  80. package/dist/atabey/src/cli/utils/i18n.js.map +1 -1
  81. package/dist/atabey/src/cli/utils/memory.js +27 -16
  82. package/dist/atabey/src/cli/utils/memory.js.map +1 -1
  83. package/dist/atabey/src/cli/utils/pkg.js +5 -2
  84. package/dist/atabey/src/cli/utils/pkg.js.map +1 -1
  85. package/dist/atabey/src/cli/utils/quality.d.ts +1 -1
  86. package/dist/atabey/src/cli/utils/ui.d.ts +1 -1
  87. package/dist/atabey/src/cli/utils/ui.js +1 -1
  88. package/dist/atabey/src/modules/agents/definitions.d.ts +1 -1
  89. package/dist/atabey/src/modules/agents/definitions.js +13 -9
  90. package/dist/atabey/src/modules/agents/definitions.js.map +1 -1
  91. package/dist/atabey/src/modules/agents/registry/analyst.js +0 -2
  92. package/dist/atabey/src/modules/agents/registry/analyst.js.map +1 -1
  93. package/dist/atabey/src/modules/agents/registry/architect.js +0 -2
  94. package/dist/atabey/src/modules/agents/registry/architect.js.map +1 -1
  95. package/dist/atabey/src/modules/agents/registry/backend.js +0 -2
  96. package/dist/atabey/src/modules/agents/registry/backend.js.map +1 -1
  97. package/dist/atabey/src/modules/agents/registry/database.js +0 -2
  98. package/dist/atabey/src/modules/agents/registry/database.js.map +1 -1
  99. package/dist/atabey/src/modules/agents/registry/devops.js +0 -2
  100. package/dist/atabey/src/modules/agents/registry/devops.js.map +1 -1
  101. package/dist/atabey/src/modules/agents/registry/explorer.js +0 -2
  102. package/dist/atabey/src/modules/agents/registry/explorer.js.map +1 -1
  103. package/dist/atabey/src/modules/agents/registry/frontend.js +0 -2
  104. package/dist/atabey/src/modules/agents/registry/frontend.js.map +1 -1
  105. package/dist/atabey/src/modules/agents/registry/git.js +0 -2
  106. package/dist/atabey/src/modules/agents/registry/git.js.map +1 -1
  107. package/dist/atabey/src/modules/agents/registry/manager.js +0 -3
  108. package/dist/atabey/src/modules/agents/registry/manager.js.map +1 -1
  109. package/dist/atabey/src/modules/agents/registry/mobile.js +0 -2
  110. package/dist/atabey/src/modules/agents/registry/mobile.js.map +1 -1
  111. package/dist/atabey/src/modules/agents/registry/native.js +0 -2
  112. package/dist/atabey/src/modules/agents/registry/native.js.map +1 -1
  113. package/dist/atabey/src/modules/agents/registry/quality.js +3 -5
  114. package/dist/atabey/src/modules/agents/registry/quality.js.map +1 -1
  115. package/dist/atabey/src/modules/agents/registry/security.js +0 -2
  116. package/dist/atabey/src/modules/agents/registry/security.js.map +1 -1
  117. package/dist/atabey/src/modules/agents/types.d.ts +0 -1
  118. package/dist/atabey/src/modules/audit/export.d.ts +22 -0
  119. package/dist/atabey/src/modules/audit/export.js +58 -0
  120. package/dist/atabey/src/modules/audit/export.js.map +1 -0
  121. package/dist/atabey/src/modules/contracts/api.d.ts +2 -2
  122. package/dist/atabey/src/modules/engines/agent-executor.js +37 -0
  123. package/dist/atabey/src/modules/engines/agent-executor.js.map +1 -1
  124. package/dist/atabey/src/modules/engines/evaluation-engine.js +10 -0
  125. package/dist/atabey/src/modules/engines/evaluation-engine.js.map +1 -1
  126. package/dist/atabey/src/modules/engines/quality-gate.js +2 -2
  127. package/dist/atabey/src/modules/engines/quality-gate.js.map +1 -1
  128. package/dist/atabey/src/modules/engines/routing-engine.js +1 -1
  129. package/dist/atabey/src/modules/engines/routing-engine.js.map +1 -1
  130. package/dist/atabey/src/modules/memory/code-graph.d.ts +44 -0
  131. package/dist/atabey/src/modules/memory/code-graph.js +180 -0
  132. package/dist/atabey/src/modules/memory/code-graph.js.map +1 -0
  133. package/dist/atabey/src/modules/memory/context-assembler.d.ts +50 -0
  134. package/dist/atabey/src/modules/memory/context-assembler.js +146 -0
  135. package/dist/atabey/src/modules/memory/context-assembler.js.map +1 -0
  136. package/dist/atabey/src/modules/providers/definitions.js +78 -41
  137. package/dist/atabey/src/modules/providers/definitions.js.map +1 -1
  138. package/dist/atabey/src/modules/providers/shared.d.ts +1 -1
  139. package/dist/atabey/src/modules/providers/shared.js +34 -15
  140. package/dist/atabey/src/modules/providers/shared.js.map +1 -1
  141. package/dist/atabey/src/modules/providers/types.d.ts +0 -4
  142. package/dist/atabey/src/modules/runtime/adapters/headless-cli.d.ts +35 -0
  143. package/dist/atabey/src/modules/runtime/adapters/headless-cli.js +115 -0
  144. package/dist/atabey/src/modules/runtime/adapters/headless-cli.js.map +1 -0
  145. package/dist/atabey/src/modules/runtime/adapters/index.d.ts +2 -0
  146. package/dist/atabey/src/modules/runtime/adapters/index.js +3 -0
  147. package/dist/atabey/src/modules/runtime/adapters/index.js.map +1 -0
  148. package/dist/atabey/src/modules/runtime/adapters/types.d.ts +48 -0
  149. package/dist/atabey/src/modules/runtime/adapters/types.js +12 -0
  150. package/dist/atabey/src/modules/runtime/adapters/types.js.map +1 -0
  151. package/dist/atabey/src/modules/runtime/agent-runtime.d.ts +54 -0
  152. package/dist/atabey/src/modules/runtime/agent-runtime.js +203 -0
  153. package/dist/atabey/src/modules/runtime/agent-runtime.js.map +1 -0
  154. package/dist/atabey/src/modules/runtime/dispatcher.d.ts +75 -0
  155. package/dist/atabey/src/modules/runtime/dispatcher.js +255 -0
  156. package/dist/atabey/src/modules/runtime/dispatcher.js.map +1 -0
  157. package/dist/atabey/src/modules/runtime/evidence.d.ts +39 -0
  158. package/dist/atabey/src/modules/runtime/evidence.js +53 -0
  159. package/dist/atabey/src/modules/runtime/evidence.js.map +1 -0
  160. package/dist/atabey/src/modules/runtime/worktree.d.ts +44 -0
  161. package/dist/atabey/src/modules/runtime/worktree.js +259 -0
  162. package/dist/atabey/src/modules/runtime/worktree.js.map +1 -0
  163. package/dist/atabey/src/modules/skills/adapter-skills.d.ts +0 -29
  164. package/dist/atabey/src/modules/skills/adapter-skills.js +0 -61
  165. package/dist/atabey/src/modules/skills/adapter-skills.js.map +1 -1
  166. package/dist/atabey/src/modules/skills/definitions.d.ts +1 -1
  167. package/dist/atabey/src/modules/skills/definitions.js +8 -8
  168. package/dist/atabey/src/schema/agent-lifecycle.d.ts +36 -0
  169. package/dist/atabey/src/schema/agent-lifecycle.js +96 -0
  170. package/dist/atabey/src/schema/agent-lifecycle.js.map +1 -0
  171. package/dist/atabey-mcp/src/mcp/utils/ast-scan.d.ts +21 -0
  172. package/dist/atabey-mcp/src/mcp/utils/ast-scan.js +64 -0
  173. package/dist/atabey-mcp/src/mcp/utils/ast-scan.js.map +1 -0
  174. package/dist/atabey-mcp/src/mcp/utils/auth.d.ts +73 -0
  175. package/dist/atabey-mcp/src/mcp/utils/auth.js +316 -0
  176. package/dist/atabey-mcp/src/mcp/utils/auth.js.map +1 -0
  177. package/dist/atabey-mcp/src/mcp/utils/auto-rollback.d.ts +83 -0
  178. package/dist/atabey-mcp/src/mcp/utils/auto-rollback.js +418 -0
  179. package/dist/atabey-mcp/src/mcp/utils/auto-rollback.js.map +1 -0
  180. package/dist/atabey-mcp/src/mcp/utils/context-optimizer.d.ts +85 -0
  181. package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js +296 -0
  182. package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js.map +1 -0
  183. package/dist/atabey-mcp/src/mcp/utils/discipline.d.ts +72 -0
  184. package/dist/atabey-mcp/src/mcp/utils/discipline.js +385 -0
  185. package/dist/atabey-mcp/src/mcp/utils/discipline.js.map +1 -0
  186. package/dist/atabey-mcp/src/mcp/utils/finops.d.ts +81 -0
  187. package/dist/atabey-mcp/src/mcp/utils/finops.js +274 -0
  188. package/dist/atabey-mcp/src/mcp/utils/finops.js.map +1 -0
  189. package/dist/atabey-mcp/src/mcp/utils/loop-detector.d.ts +106 -0
  190. package/dist/atabey-mcp/src/mcp/utils/loop-detector.js +419 -0
  191. package/dist/atabey-mcp/src/mcp/utils/loop-detector.js.map +1 -0
  192. package/dist/atabey-mcp/src/mcp/utils/rules-engine.d.ts +80 -0
  193. package/dist/atabey-mcp/src/mcp/utils/rules-engine.js +296 -0
  194. package/dist/atabey-mcp/src/mcp/utils/rules-engine.js.map +1 -0
  195. package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.d.ts +133 -0
  196. package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.js +400 -0
  197. package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.js.map +1 -0
  198. package/dist/atabey-mcp/src/shared/logger.d.ts +1 -0
  199. package/dist/atabey-mcp/src/shared/logger.js +2 -0
  200. package/dist/atabey-mcp/src/shared/logger.js.map +1 -0
  201. package/dist/atabey-mcp/src/shared/pii.d.ts +1 -0
  202. package/dist/atabey-mcp/src/shared/pii.js +2 -0
  203. package/dist/atabey-mcp/src/shared/pii.js.map +1 -0
  204. package/dist/atabey-mcp/src/shared/storage.d.ts +2 -0
  205. package/dist/atabey-mcp/src/shared/storage.js +3 -0
  206. package/dist/atabey-mcp/src/shared/storage.js.map +1 -0
  207. package/dist/shared/src/agent-identity.d.ts +1 -0
  208. package/dist/shared/src/agent-identity.js +2 -0
  209. package/dist/shared/src/agent-identity.js.map +1 -0
  210. package/dist/shared/src/api-catalog.d.ts +1 -0
  211. package/dist/shared/src/api-catalog.js +2 -0
  212. package/dist/shared/src/api-catalog.js.map +1 -0
  213. package/dist/shared/src/audit-chain.d.ts +1 -51
  214. package/dist/shared/src/audit-chain.js +1 -84
  215. package/dist/shared/src/audit-chain.js.map +1 -1
  216. package/dist/shared/src/audit.d.ts +1 -113
  217. package/dist/shared/src/audit.js +1 -284
  218. package/dist/shared/src/audit.js.map +1 -1
  219. package/dist/shared/src/constants.d.ts +1 -152
  220. package/dist/shared/src/constants.js +1 -215
  221. package/dist/shared/src/constants.js.map +1 -1
  222. package/dist/shared/src/database.d.ts +1 -5
  223. package/dist/shared/src/database.js +1 -12
  224. package/dist/shared/src/database.js.map +1 -1
  225. package/dist/shared/src/errors.d.ts +1 -46
  226. package/dist/shared/src/errors.js +1 -68
  227. package/dist/shared/src/errors.js.map +1 -1
  228. package/dist/shared/src/file-lock.d.ts +1 -88
  229. package/dist/shared/src/file-lock.js +1 -250
  230. package/dist/shared/src/file-lock.js.map +1 -1
  231. package/dist/shared/src/fs.d.ts +1 -9
  232. package/dist/shared/src/fs.js +1 -53
  233. package/dist/shared/src/fs.js.map +1 -1
  234. package/dist/shared/src/index.d.ts +2 -22
  235. package/dist/shared/src/index.js +2 -22
  236. package/dist/shared/src/index.js.map +1 -1
  237. package/dist/shared/src/job-queue.d.ts +1 -53
  238. package/dist/shared/src/job-queue.js +1 -126
  239. package/dist/shared/src/job-queue.js.map +1 -1
  240. package/dist/shared/src/lock.d.ts +1 -82
  241. package/dist/shared/src/lock.js +1 -158
  242. package/dist/shared/src/lock.js.map +1 -1
  243. package/dist/shared/src/logger.d.ts +1 -30
  244. package/dist/shared/src/logger.js +1 -126
  245. package/dist/shared/src/logger.js.map +1 -1
  246. package/dist/shared/src/memory-prune.d.ts +1 -0
  247. package/dist/shared/src/memory-prune.js +2 -0
  248. package/dist/shared/src/memory-prune.js.map +1 -0
  249. package/dist/shared/src/migrations.d.ts +1 -0
  250. package/dist/shared/src/migrations.js +2 -0
  251. package/dist/shared/src/migrations.js.map +1 -0
  252. package/dist/shared/src/modules/agent/agent-identity.d.ts +34 -0
  253. package/dist/shared/src/modules/agent/agent-identity.js +77 -0
  254. package/dist/shared/src/modules/agent/agent-identity.js.map +1 -0
  255. package/dist/shared/src/modules/agent/api-catalog.d.ts +57 -0
  256. package/dist/shared/src/modules/agent/api-catalog.js +254 -0
  257. package/dist/shared/src/modules/agent/api-catalog.js.map +1 -0
  258. package/dist/shared/src/modules/agent/index.d.ts +3 -0
  259. package/dist/shared/src/modules/agent/index.js +4 -0
  260. package/dist/shared/src/modules/agent/index.js.map +1 -0
  261. package/dist/shared/src/modules/agent/tokenizer.d.ts +54 -0
  262. package/dist/shared/src/modules/agent/tokenizer.js +272 -0
  263. package/dist/shared/src/modules/agent/tokenizer.js.map +1 -0
  264. package/dist/shared/src/modules/concurrency/file-lock.d.ts +93 -0
  265. package/dist/shared/src/modules/concurrency/file-lock.js +240 -0
  266. package/dist/shared/src/modules/concurrency/file-lock.js.map +1 -0
  267. package/dist/shared/src/modules/concurrency/index.d.ts +6 -0
  268. package/dist/shared/src/modules/concurrency/index.js +7 -0
  269. package/dist/shared/src/modules/concurrency/index.js.map +1 -0
  270. package/dist/shared/src/modules/concurrency/job-queue.d.ts +76 -0
  271. package/dist/shared/src/modules/concurrency/job-queue.js +200 -0
  272. package/dist/shared/src/modules/concurrency/job-queue.js.map +1 -0
  273. package/dist/shared/src/modules/concurrency/lock.d.ts +82 -0
  274. package/dist/shared/src/modules/concurrency/lock.js +159 -0
  275. package/dist/shared/src/modules/concurrency/lock.js.map +1 -0
  276. package/dist/shared/src/modules/concurrency/resilience.d.ts +84 -0
  277. package/dist/shared/src/modules/concurrency/resilience.js +217 -0
  278. package/dist/shared/src/modules/concurrency/resilience.js.map +1 -0
  279. package/dist/shared/src/modules/concurrency/worker-pool.d.ts +52 -0
  280. package/dist/shared/src/modules/concurrency/worker-pool.js +229 -0
  281. package/dist/shared/src/modules/concurrency/worker-pool.js.map +1 -0
  282. package/dist/shared/src/modules/concurrency/worker-thread.d.ts +21 -0
  283. package/dist/shared/src/modules/concurrency/worker-thread.js +67 -0
  284. package/dist/shared/src/modules/concurrency/worker-thread.js.map +1 -0
  285. package/dist/shared/src/modules/index.d.ts +14 -0
  286. package/dist/shared/src/modules/index.js +15 -0
  287. package/dist/shared/src/modules/index.js.map +1 -0
  288. package/dist/shared/src/modules/observability/audit-chain.d.ts +80 -0
  289. package/dist/shared/src/modules/observability/audit-chain.js +262 -0
  290. package/dist/shared/src/modules/observability/audit-chain.js.map +1 -0
  291. package/dist/shared/src/modules/observability/audit.d.ts +121 -0
  292. package/dist/shared/src/modules/observability/audit.js +322 -0
  293. package/dist/shared/src/modules/observability/audit.js.map +1 -0
  294. package/dist/shared/src/modules/observability/index.d.ts +4 -0
  295. package/dist/shared/src/modules/observability/index.js +5 -0
  296. package/dist/shared/src/modules/observability/index.js.map +1 -0
  297. package/dist/shared/src/modules/observability/logger.d.ts +31 -0
  298. package/dist/shared/src/modules/observability/logger.js +153 -0
  299. package/dist/shared/src/modules/observability/logger.js.map +1 -0
  300. package/dist/shared/src/modules/observability/otel.d.ts +39 -0
  301. package/dist/shared/src/modules/observability/otel.js +93 -0
  302. package/dist/shared/src/modules/observability/otel.js.map +1 -0
  303. package/dist/shared/src/modules/primitives/constants.d.ts +150 -0
  304. package/dist/shared/src/modules/primitives/constants.js +212 -0
  305. package/dist/shared/src/modules/primitives/constants.js.map +1 -0
  306. package/dist/shared/src/modules/primitives/errors.d.ts +46 -0
  307. package/dist/shared/src/modules/primitives/errors.js +69 -0
  308. package/dist/shared/src/modules/primitives/errors.js.map +1 -0
  309. package/dist/shared/src/modules/primitives/fs.d.ts +9 -0
  310. package/dist/shared/src/modules/primitives/fs.js +54 -0
  311. package/dist/shared/src/modules/primitives/fs.js.map +1 -0
  312. package/dist/shared/src/modules/primitives/index.d.ts +7 -0
  313. package/dist/shared/src/modules/primitives/index.js +8 -0
  314. package/dist/shared/src/modules/primitives/index.js.map +1 -0
  315. package/dist/shared/src/modules/primitives/outbound-http.d.ts +32 -0
  316. package/dist/shared/src/modules/primitives/outbound-http.js +88 -0
  317. package/dist/shared/src/modules/primitives/outbound-http.js.map +1 -0
  318. package/dist/shared/src/modules/primitives/string.d.ts +1 -0
  319. package/dist/shared/src/modules/primitives/string.js +30 -0
  320. package/dist/shared/src/modules/primitives/string.js.map +1 -0
  321. package/dist/shared/src/modules/primitives/time.d.ts +5 -0
  322. package/dist/shared/src/modules/primitives/time.js +35 -0
  323. package/dist/shared/src/modules/primitives/time.js.map +1 -0
  324. package/dist/shared/src/modules/primitives/types.d.ts +27 -0
  325. package/dist/shared/src/modules/primitives/types.js +17 -0
  326. package/dist/shared/src/modules/primitives/types.js.map +1 -0
  327. package/dist/shared/src/modules/sandbox/index.d.ts +3 -0
  328. package/dist/shared/src/modules/sandbox/index.js +4 -0
  329. package/dist/shared/src/modules/sandbox/index.js.map +1 -0
  330. package/dist/shared/src/modules/sandbox/sandbox-fs.d.ts +28 -0
  331. package/dist/shared/src/modules/sandbox/sandbox-fs.js +143 -0
  332. package/dist/shared/src/modules/sandbox/sandbox-fs.js.map +1 -0
  333. package/dist/shared/src/modules/sandbox/sandbox-runtime.d.ts +78 -0
  334. package/dist/shared/src/modules/sandbox/sandbox-runtime.js +282 -0
  335. package/dist/shared/src/modules/sandbox/sandbox-runtime.js.map +1 -0
  336. package/dist/shared/src/modules/sandbox/sandbox.d.ts +54 -0
  337. package/dist/shared/src/modules/sandbox/sandbox.js +179 -0
  338. package/dist/shared/src/modules/sandbox/sandbox.js.map +1 -0
  339. package/dist/shared/src/modules/security/index.d.ts +5 -0
  340. package/dist/shared/src/modules/security/index.js +6 -0
  341. package/dist/shared/src/modules/security/index.js.map +1 -0
  342. package/dist/shared/src/modules/security/pii.d.ts +70 -0
  343. package/dist/shared/src/modules/security/pii.js +276 -0
  344. package/dist/shared/src/modules/security/pii.js.map +1 -0
  345. package/dist/shared/src/modules/security/policy-gate.d.ts +42 -0
  346. package/dist/shared/src/modules/security/policy-gate.js +172 -0
  347. package/dist/shared/src/modules/security/policy-gate.js.map +1 -0
  348. package/dist/shared/src/modules/security/retention.d.ts +68 -0
  349. package/dist/shared/src/modules/security/retention.js +218 -0
  350. package/dist/shared/src/modules/security/retention.js.map +1 -0
  351. package/dist/shared/src/modules/security/secrets.d.ts +99 -0
  352. package/dist/shared/src/modules/security/secrets.js +371 -0
  353. package/dist/shared/src/modules/security/secrets.js.map +1 -0
  354. package/dist/shared/src/modules/security/tls.d.ts +87 -0
  355. package/dist/shared/src/modules/security/tls.js +154 -0
  356. package/dist/shared/src/modules/security/tls.js.map +1 -0
  357. package/dist/shared/src/modules/storage/database.d.ts +6 -0
  358. package/dist/shared/src/modules/storage/database.js +16 -0
  359. package/dist/shared/src/modules/storage/database.js.map +1 -0
  360. package/dist/shared/src/modules/storage/index.d.ts +4 -0
  361. package/dist/shared/src/modules/storage/index.js +5 -0
  362. package/dist/shared/src/modules/storage/index.js.map +1 -0
  363. package/dist/shared/src/modules/storage/memory-prune.d.ts +18 -0
  364. package/dist/shared/src/modules/storage/memory-prune.js +48 -0
  365. package/dist/shared/src/modules/storage/memory-prune.js.map +1 -0
  366. package/dist/shared/src/modules/storage/migrations.d.ts +69 -0
  367. package/dist/shared/src/modules/storage/migrations.js +394 -0
  368. package/dist/shared/src/modules/storage/migrations.js.map +1 -0
  369. package/dist/shared/src/modules/storage/storage.d.ts +341 -0
  370. package/dist/shared/src/modules/storage/storage.js +1004 -0
  371. package/dist/shared/src/modules/storage/storage.js.map +1 -0
  372. package/dist/shared/src/otel.d.ts +1 -0
  373. package/dist/shared/src/otel.js +2 -0
  374. package/dist/shared/src/otel.js.map +1 -0
  375. package/dist/shared/src/outbound-http.d.ts +1 -0
  376. package/dist/shared/src/outbound-http.js +2 -0
  377. package/dist/shared/src/outbound-http.js.map +1 -0
  378. package/dist/shared/src/pii.d.ts +1 -69
  379. package/dist/shared/src/pii.js +1 -219
  380. package/dist/shared/src/pii.js.map +1 -1
  381. package/dist/shared/src/policy-gate.d.ts +1 -42
  382. package/dist/shared/src/policy-gate.js +1 -147
  383. package/dist/shared/src/policy-gate.js.map +1 -1
  384. package/dist/shared/src/resilience.d.ts +1 -84
  385. package/dist/shared/src/resilience.js +1 -216
  386. package/dist/shared/src/resilience.js.map +1 -1
  387. package/dist/shared/src/retention.d.ts +1 -63
  388. package/dist/shared/src/retention.js +1 -170
  389. package/dist/shared/src/retention.js.map +1 -1
  390. package/dist/shared/src/sandbox-fs.d.ts +1 -28
  391. package/dist/shared/src/sandbox-fs.js +1 -149
  392. package/dist/shared/src/sandbox-fs.js.map +1 -1
  393. package/dist/shared/src/sandbox-runtime.d.ts +1 -85
  394. package/dist/shared/src/sandbox-runtime.js +1 -249
  395. package/dist/shared/src/sandbox-runtime.js.map +1 -1
  396. package/dist/shared/src/sandbox.d.ts +1 -54
  397. package/dist/shared/src/sandbox.js +1 -178
  398. package/dist/shared/src/sandbox.js.map +1 -1
  399. package/dist/shared/src/secrets.d.ts +1 -0
  400. package/dist/shared/src/secrets.js +2 -0
  401. package/dist/shared/src/secrets.js.map +1 -0
  402. package/dist/shared/src/storage.d.ts +1 -274
  403. package/dist/shared/src/storage.js +1 -723
  404. package/dist/shared/src/storage.js.map +1 -1
  405. package/dist/shared/src/string.d.ts +1 -1
  406. package/dist/shared/src/string.js +1 -29
  407. package/dist/shared/src/string.js.map +1 -1
  408. package/dist/shared/src/time.d.ts +1 -5
  409. package/dist/shared/src/time.js +1 -30
  410. package/dist/shared/src/time.js.map +1 -1
  411. package/dist/shared/src/tls.d.ts +1 -0
  412. package/dist/shared/src/tls.js +2 -0
  413. package/dist/shared/src/tls.js.map +1 -0
  414. package/dist/shared/src/tokenizer.d.ts +1 -0
  415. package/dist/shared/src/tokenizer.js +2 -0
  416. package/dist/shared/src/tokenizer.js.map +1 -0
  417. package/dist/shared/src/types.d.ts +1 -27
  418. package/dist/shared/src/types.js +1 -16
  419. package/dist/shared/src/types.js.map +1 -1
  420. package/dist/shared/src/worker-pool.d.ts +1 -52
  421. package/dist/shared/src/worker-pool.js +1 -209
  422. package/dist/shared/src/worker-pool.js.map +1 -1
  423. package/dist/shared/src/worker-thread.d.ts +1 -21
  424. package/dist/shared/src/worker-thread.js +1 -66
  425. package/dist/shared/src/worker-thread.js.map +1 -1
  426. package/package.json +4 -6
  427. package/templates/docs/tech-stack.md +21 -0
  428. package/templates/full/ATABEY_FULL.md +38 -50
  429. package/templates/prompts/security-audit-recipe.md +1 -1
  430. package/templates/standards/architecture-standards.md +6 -4
  431. package/templates/standards/crud-governance.md +1 -1
  432. package/templates/standards/deployment-standards.md +1 -1
  433. package/templates/standards/enterprise-systems-standards.md +5 -1
  434. package/templates/standards/eslint-standards.md +10 -0
  435. package/templates/standards/frontend-standards.md +2 -2
  436. package/templates/standards/governance-standards.md +2 -2
  437. package/templates/standards/i18n-standards.md +1 -1
  438. package/templates/standards/logging-and-secrets.md +1 -1
  439. package/templates/standards/native-standards.md +1 -1
  440. package/templates/standards/quality-standards.md +1 -1
  441. package/templates/standards/security-audit-standards.md +1 -1
  442. package/templates/standards/security-standards.md +1 -1
  443. package/templates/standards/testing-standards.md +1 -1
  444. package/templates/standards/token-economy.md +27 -0
  445. package/dist/atabey/src/cli/commands/init/create-agent.d.ts +0 -4
  446. package/dist/atabey/src/cli/commands/init/create-agent.js +0 -59
  447. package/dist/atabey/src/cli/commands/init/create-agent.js.map +0 -1
  448. package/dist/atabey/src/cli/utils/config-schema.d.ts +0 -213
  449. package/dist/atabey/src/cli/utils/config-schema.js +0 -58
  450. package/dist/atabey/src/cli/utils/config-schema.js.map +0 -1
  451. package/dist/atabey/src/cli/utils/schemas.d.ts +0 -49
  452. package/dist/atabey/src/cli/utils/schemas.js +0 -20
  453. package/dist/atabey/src/cli/utils/schemas.js.map +0 -1
  454. package/dist/atabey/src/contracts/index.d.ts +0 -1
  455. package/dist/atabey/src/contracts/index.js +0 -2
  456. package/dist/atabey/src/contracts/index.js.map +0 -1
  457. package/dist/atabey/src/contracts/tasks.d.ts +0 -44
  458. package/dist/atabey/src/contracts/tasks.js +0 -21
  459. package/dist/atabey/src/contracts/tasks.js.map +0 -1
  460. package/dist/atabey/src/modules/contracts/index.d.ts +0 -5
  461. package/dist/atabey/src/modules/contracts/index.js +0 -6
  462. package/dist/atabey/src/modules/contracts/index.js.map +0 -1
  463. package/dist/atabey/src/modules/engines/contract-engine.d.ts +0 -46
  464. package/dist/atabey/src/modules/engines/contract-engine.js +0 -116
  465. package/dist/atabey/src/modules/engines/contract-engine.js.map +0 -1
  466. package/dist/atabey/src/modules/engines/discovery-engine.d.ts +0 -42
  467. package/dist/atabey/src/modules/engines/discovery-engine.js +0 -161
  468. package/dist/atabey/src/modules/engines/discovery-engine.js.map +0 -1
  469. package/dist/atabey/src/modules/engines/file-lock.d.ts +0 -56
  470. package/dist/atabey/src/modules/engines/file-lock.js +0 -171
  471. package/dist/atabey/src/modules/engines/file-lock.js.map +0 -1
  472. package/dist/atabey/src/modules/engines/phase-engine.d.ts +0 -82
  473. package/dist/atabey/src/modules/engines/phase-engine.js +0 -204
  474. package/dist/atabey/src/modules/engines/phase-engine.js.map +0 -1
  475. package/dist/atabey/src/modules/engines/policy-engine.d.ts +0 -63
  476. package/dist/atabey/src/modules/engines/policy-engine.js +0 -188
  477. package/dist/atabey/src/modules/engines/policy-engine.js.map +0 -1
  478. package/dist/atabey/src/modules/engines/sandbox.d.ts +0 -31
  479. package/dist/atabey/src/modules/engines/sandbox.js +0 -57
  480. package/dist/atabey/src/modules/engines/sandbox.js.map +0 -1
  481. package/dist/atabey/src/modules/engines/session-engine.d.ts +0 -68
  482. package/dist/atabey/src/modules/engines/session-engine.js +0 -141
  483. package/dist/atabey/src/modules/engines/session-engine.js.map +0 -1
  484. package/dist/atabey/src/modules/engines/worker-pool.d.ts +0 -8
  485. package/dist/atabey/src/modules/engines/worker-pool.js +0 -9
  486. package/dist/atabey/src/modules/engines/worker-pool.js.map +0 -1
  487. package/dist/atabey/src/modules/providers/llm-provider.d.ts +0 -87
  488. package/dist/atabey/src/modules/providers/llm-provider.js +0 -242
  489. package/dist/atabey/src/modules/providers/llm-provider.js.map +0 -1
  490. package/dist/atabey/src/shared/file-lock.d.ts +0 -1
  491. package/dist/atabey/src/shared/file-lock.js +0 -2
  492. package/dist/atabey/src/shared/file-lock.js.map +0 -1
  493. package/dist/atabey/src/shared/job-queue.d.ts +0 -1
  494. package/dist/atabey/src/shared/job-queue.js +0 -2
  495. package/dist/atabey/src/shared/job-queue.js.map +0 -1
  496. package/dist/atabey/src/shared/lock.d.ts +0 -1
  497. package/dist/atabey/src/shared/lock.js +0 -2
  498. package/dist/atabey/src/shared/lock.js.map +0 -1
  499. package/dist/atabey/src/shared/resilience.d.ts +0 -1
  500. package/dist/atabey/src/shared/resilience.js +0 -2
  501. package/dist/atabey/src/shared/resilience.js.map +0 -1
  502. package/dist/atabey/src/shared/retention.d.ts +0 -1
  503. package/dist/atabey/src/shared/retention.js +0 -2
  504. package/dist/atabey/src/shared/retention.js.map +0 -1
  505. package/dist/atabey/src/shared/sandbox-runtime.d.ts +0 -1
  506. package/dist/atabey/src/shared/sandbox-runtime.js +0 -2
  507. package/dist/atabey/src/shared/sandbox-runtime.js.map +0 -1
  508. package/dist/atabey/src/shared/sandbox.d.ts +0 -1
  509. package/dist/atabey/src/shared/sandbox.js +0 -2
  510. package/dist/atabey/src/shared/sandbox.js.map +0 -1
  511. package/dist/atabey/src/shared/worker-pool.d.ts +0 -1
  512. package/dist/atabey/src/shared/worker-pool.js +0 -2
  513. package/dist/atabey/src/shared/worker-pool.js.map +0 -1
@@ -1,84 +1 @@
1
- /**
2
- * Polly-style resilience primitives — no external deps.
3
- *
4
- * - withRetry: exponential backoff + jitter for transient failures
5
- * - CircuitBreaker: closed → open → half-open state machine
6
- * - withResilience: compose retry + circuit breaker
7
- *
8
- * Typical use: LLM provider rate limits, timeouts, 5xx, network blips.
9
- */
10
- export type CircuitState = "closed" | "open" | "half-open";
11
- export interface RetryOptions {
12
- /** Max attempts including the first try. Default: 3 */
13
- maxAttempts?: number;
14
- /** Initial delay in ms. Default: 100 */
15
- baseDelayMs?: number;
16
- /** Cap on delay in ms. Default: 10_000 */
17
- maxDelayMs?: number;
18
- /** Exponential factor. Default: 2 */
19
- factor?: number;
20
- /** Add random jitter [0, delay). Default: true */
21
- jitter?: boolean;
22
- /** Return true to retry this error. Default: retry all */
23
- retryIf?: (error: unknown, attempt: number) => boolean;
24
- /** Optional hook before each sleep */
25
- onRetry?: (error: unknown, attempt: number, delayMs: number) => void;
26
- /** Optional abort signal */
27
- signal?: AbortSignal;
28
- }
29
- export interface CircuitBreakerOptions {
30
- /** Failures in closed state before opening. Default: 5 */
31
- failureThreshold?: number;
32
- /** Successes in half-open before closing. Default: 2 */
33
- successThreshold?: number;
34
- /** Time to wait in open before half-open probe. Default: 30_000 */
35
- openMs?: number;
36
- /** Optional name for error messages */
37
- name?: string;
38
- }
39
- export declare class CircuitOpenError extends Error {
40
- readonly circuit: string;
41
- readonly retryAfterMs: number;
42
- constructor(circuit: string, retryAfterMs: number);
43
- }
44
- export declare class CircuitBreaker {
45
- private state;
46
- private failures;
47
- private successes;
48
- private openedAt;
49
- private readonly failureThreshold;
50
- private readonly successThreshold;
51
- private readonly openMs;
52
- private readonly name;
53
- constructor(options?: CircuitBreakerOptions);
54
- getState(): CircuitState;
55
- getStats(): {
56
- state: CircuitState;
57
- failures: number;
58
- successes: number;
59
- name: string;
60
- };
61
- /** Manual reset (e.g. after operator intervention). */
62
- reset(): void;
63
- exec<T>(fn: () => Promise<T>): Promise<T>;
64
- private maybeTransitionToHalfOpen;
65
- private onSuccess;
66
- private onFailure;
67
- private trip;
68
- }
69
- export declare function computeBackoffDelay(attempt: number, options?: Pick<RetryOptions, "baseDelayMs" | "maxDelayMs" | "factor" | "jitter">): number;
70
- export declare function withRetry<T>(fn: (attempt: number) => Promise<T>, options?: RetryOptions): Promise<T>;
71
- export interface ResilienceOptions {
72
- retry?: RetryOptions;
73
- circuitBreaker?: CircuitBreaker;
74
- /** If true, CircuitOpenError is not retried (default true). */
75
- skipRetryOnOpenCircuit?: boolean;
76
- }
77
- /**
78
- * Execute `fn` through optional circuit breaker + retry with exponential backoff.
79
- */
80
- export declare function withResilience<T>(fn: (attempt: number) => Promise<T>, options?: ResilienceOptions): Promise<T>;
81
- /** Heuristic: retry rate limits, timeouts, and common transient network errors. */
82
- export declare function isTransientError(error: unknown): boolean;
83
- export declare function getCircuitBreaker(name: string, options?: CircuitBreakerOptions): CircuitBreaker;
84
- export declare function resetAllCircuitBreakers(): void;
1
+ export * from "./modules/concurrency/resilience.js";
@@ -1,217 +1,2 @@
1
- /**
2
- * Polly-style resilience primitives — no external deps.
3
- *
4
- * - withRetry: exponential backoff + jitter for transient failures
5
- * - CircuitBreaker: closed → open → half-open state machine
6
- * - withResilience: compose retry + circuit breaker
7
- *
8
- * Typical use: LLM provider rate limits, timeouts, 5xx, network blips.
9
- */
10
- export class CircuitOpenError extends Error {
11
- circuit;
12
- retryAfterMs;
13
- constructor(circuit, retryAfterMs) {
14
- super(`[CircuitBreaker:${circuit}] Circuit is OPEN — rejecting call. Retry after ~${retryAfterMs}ms`);
15
- this.name = "CircuitOpenError";
16
- this.circuit = circuit;
17
- this.retryAfterMs = retryAfterMs;
18
- }
19
- }
20
- export class CircuitBreaker {
21
- state = "closed";
22
- failures = 0;
23
- successes = 0;
24
- openedAt = 0;
25
- failureThreshold;
26
- successThreshold;
27
- openMs;
28
- name;
29
- constructor(options = {}) {
30
- this.failureThreshold = options.failureThreshold ?? 5;
31
- this.successThreshold = options.successThreshold ?? 2;
32
- this.openMs = options.openMs ?? 30_000;
33
- this.name = options.name ?? "default";
34
- }
35
- getState() {
36
- this.maybeTransitionToHalfOpen();
37
- return this.state;
38
- }
39
- getStats() {
40
- return {
41
- state: this.getState(),
42
- failures: this.failures,
43
- successes: this.successes,
44
- name: this.name,
45
- };
46
- }
47
- /** Manual reset (e.g. after operator intervention). */
48
- reset() {
49
- this.state = "closed";
50
- this.failures = 0;
51
- this.successes = 0;
52
- this.openedAt = 0;
53
- }
54
- async exec(fn) {
55
- this.maybeTransitionToHalfOpen();
56
- if (this.state === "open") {
57
- const retryAfterMs = Math.max(0, this.openMs - (Date.now() - this.openedAt));
58
- throw new CircuitOpenError(this.name, retryAfterMs);
59
- }
60
- try {
61
- const result = await fn();
62
- this.onSuccess();
63
- return result;
64
- }
65
- catch (err) {
66
- this.onFailure();
67
- throw err;
68
- }
69
- }
70
- maybeTransitionToHalfOpen() {
71
- if (this.state === "open" && Date.now() - this.openedAt >= this.openMs) {
72
- this.state = "half-open";
73
- this.successes = 0;
74
- }
75
- }
76
- onSuccess() {
77
- if (this.state === "half-open") {
78
- this.successes++;
79
- if (this.successes >= this.successThreshold) {
80
- this.state = "closed";
81
- this.failures = 0;
82
- this.successes = 0;
83
- }
84
- return;
85
- }
86
- // closed: decay failure count on success
87
- this.failures = 0;
88
- }
89
- onFailure() {
90
- this.failures++;
91
- this.successes = 0;
92
- if (this.state === "half-open") {
93
- this.trip();
94
- return;
95
- }
96
- if (this.failures >= this.failureThreshold) {
97
- this.trip();
98
- }
99
- }
100
- trip() {
101
- this.state = "open";
102
- this.openedAt = Date.now();
103
- }
104
- }
105
- export function computeBackoffDelay(attempt, options = {}) {
106
- const base = options.baseDelayMs ?? 100;
107
- const max = options.maxDelayMs ?? 10_000;
108
- const factor = options.factor ?? 2;
109
- const jitter = options.jitter !== false;
110
- // attempt is 1-based for first retry after failure → attempt 1 => base * factor^0
111
- const exp = Math.max(0, attempt - 1);
112
- let delay = Math.min(max, base * Math.pow(factor, exp));
113
- if (jitter) {
114
- delay = Math.floor(Math.random() * delay);
115
- }
116
- return delay;
117
- }
118
- export async function withRetry(fn, options = {}) {
119
- const maxAttempts = Math.max(1, options.maxAttempts ?? 3);
120
- const retryIf = options.retryIf ?? (() => true);
121
- let lastError;
122
- for (let attempt = 1; attempt <= maxAttempts; attempt++) {
123
- if (options.signal?.aborted) {
124
- throw options.signal.reason ?? new Error("Aborted");
125
- }
126
- try {
127
- return await fn(attempt);
128
- }
129
- catch (err) {
130
- lastError = err;
131
- const isLast = attempt >= maxAttempts;
132
- if (isLast || !retryIf(err, attempt)) {
133
- throw err;
134
- }
135
- const delay = computeBackoffDelay(attempt, options);
136
- options.onRetry?.(err, attempt, delay);
137
- await sleep(delay, options.signal);
138
- }
139
- }
140
- throw lastError;
141
- }
142
- /**
143
- * Execute `fn` through optional circuit breaker + retry with exponential backoff.
144
- */
145
- export async function withResilience(fn, options = {}) {
146
- const breaker = options.circuitBreaker;
147
- const skipOpen = options.skipRetryOnOpenCircuit !== false;
148
- const retryOpts = {
149
- ...options.retry,
150
- retryIf: (err, attempt) => {
151
- if (skipOpen && err instanceof CircuitOpenError)
152
- return false;
153
- return options.retry?.retryIf ? options.retry.retryIf(err, attempt) : true;
154
- },
155
- };
156
- return withRetry(async (attempt) => {
157
- if (breaker) {
158
- return breaker.exec(() => fn(attempt));
159
- }
160
- return fn(attempt);
161
- }, retryOpts);
162
- }
163
- /** Heuristic: retry rate limits, timeouts, and common transient network errors. */
164
- export function isTransientError(error) {
165
- if (error instanceof CircuitOpenError)
166
- return false;
167
- if (!error)
168
- return false;
169
- const msg = error instanceof Error ? error.message : String(error);
170
- const lower = msg.toLowerCase();
171
- const code = error.code;
172
- const status = error.status;
173
- if (status === 429 || status === 502 || status === 503 || status === 504)
174
- return true;
175
- if (code === "ETIMEDOUT" || code === "ECONNRESET" || code === "EAI_AGAIN" || code === "ENOTFOUND") {
176
- return true;
177
- }
178
- if (lower.includes("rate limit") ||
179
- lower.includes("too many requests") ||
180
- lower.includes("timeout") ||
181
- lower.includes("temporar") ||
182
- lower.includes("econnreset") ||
183
- lower.includes("socket hang up")) {
184
- return true;
185
- }
186
- return false;
187
- }
188
- /** Shared breakers for common services (lazy). */
189
- const breakers = new Map();
190
- export function getCircuitBreaker(name, options) {
191
- let b = breakers.get(name);
192
- if (!b) {
193
- b = new CircuitBreaker({ name, ...options });
194
- breakers.set(name, b);
195
- }
196
- return b;
197
- }
198
- export function resetAllCircuitBreakers() {
199
- for (const b of breakers.values())
200
- b.reset();
201
- breakers.clear();
202
- }
203
- function sleep(ms, signal) {
204
- return new Promise((resolve, reject) => {
205
- if (signal?.aborted) {
206
- reject(signal.reason ?? new Error("Aborted"));
207
- return;
208
- }
209
- const timer = setTimeout(resolve, ms);
210
- const onAbort = () => {
211
- clearTimeout(timer);
212
- reject(signal?.reason ?? new Error("Aborted"));
213
- };
214
- signal?.addEventListener("abort", onAbort, { once: true });
215
- });
216
- }
1
+ export * from "./modules/concurrency/resilience.js";
217
2
  //# sourceMappingURL=resilience.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resilience.js","sourceRoot":"","sources":["../../../../shared/src/resilience.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resilience.js","sourceRoot":"","sources":["../../../../shared/src/resilience.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC"}
@@ -1,63 +1 @@
1
- /**
2
- * Data retention categories and default durations (days)
3
- */
4
- export declare const RETENTION_POLICIES: Record<string, number>;
5
- /**
6
- * [KVKK/GDPR] Data Retention Manager
7
- */
8
- export declare class DataRetention {
9
- private static cleanupInterval;
10
- /**
11
- * Initialize data retention with automatic cleanup.
12
- * Starts a periodic cleanup job.
13
- *
14
- * @param intervalMs Cleanup interval in milliseconds (default: 1 hour)
15
- */
16
- static initialize(intervalMs?: number): void;
17
- /**
18
- * Run cleanup for all data stores.
19
- * Cleans audit logs, messages, and logs based on retention policies.
20
- */
21
- static runCleanup(): {
22
- audit: number;
23
- messages: number;
24
- logs: number;
25
- };
26
- /**
27
- * [KVKK Art. 7] "Right to Erasure" — Deletes all data for a given trace ID.
28
- * Cleans audit records, messages, logs, and tasks.
29
- *
30
- * @param traceId Trace ID to erase
31
- * @returns Total number of deleted records
32
- */
33
- static eraseTraceData(traceId: string): number;
34
- /**
35
- * [KVKK Art. 11] Erases all data.
36
- * Only works with the confirmation code.
37
- */
38
- static eraseAllData(confirmationCode: string): number;
39
- /**
40
- * Get retention statistics.
41
- */
42
- static getStats(): {
43
- auditExpired: number;
44
- messageCount: number;
45
- logCount: number;
46
- taskCount: number;
47
- policies: Record<string, number>;
48
- };
49
- /**
50
- * Stop the periodic cleanup job.
51
- */
52
- static shutdown(): void;
53
- /**
54
- * Clean old messages from the Hermes queue.
55
- * Messages older than 30 days are removed.
56
- */
57
- private static cleanOldMessages;
58
- /**
59
- * Clean old logs.
60
- * Logs older than 30 days are removed.
61
- */
62
- private static cleanOldLogs;
63
- }
1
+ export * from "./modules/security/retention.js";
@@ -1,171 +1,2 @@
1
- /**
2
- * [KVKK/GDPR] Data Retention & Privacy Service
3
- *
4
- * KVKK Art. 4, 5, 7, 11 and GDPR Art. 5, 17 compliant data retention management.
5
- *
6
- * Features:
7
- * - Automatic expired record cleanup
8
- * - Data categorization (operational, user_data, api_call, security, compliance)
9
- * - "Right to Erasure" support
10
- * - Configurable retention policies
11
- * - Periodic cleanup cron job
12
- */
13
- import { Audit } from "./audit.js";
14
- import { logger } from "./logger.js";
15
- import { databaseHolder } from "./database.js";
16
- /**
17
- * Data retention categories and default durations (days)
18
- */
19
- export const RETENTION_POLICIES = {
20
- OPERATIONAL: 30, // Operational logs: 30 days
21
- USER_DATA: 90, // User data: 90 days (KVKK Art. 5)
22
- API_CALL: 180, // API call records: 180 days
23
- SECURITY: 365, // Security logs: 1 year
24
- COMPLIANCE: 730, // Compliance records: 2 years
25
- };
26
- /**
27
- * [KVKK/GDPR] Data Retention Manager
28
- */
29
- export class DataRetention {
30
- static cleanupInterval = null;
31
- /**
32
- * Initialize data retention with automatic cleanup.
33
- * Starts a periodic cleanup job.
34
- *
35
- * @param intervalMs Cleanup interval in milliseconds (default: 1 hour)
36
- */
37
- static initialize(intervalMs = 3600000) {
38
- // Run initial cleanup
39
- this.runCleanup();
40
- // Schedule periodic cleanup
41
- if (this.cleanupInterval) {
42
- clearInterval(this.cleanupInterval);
43
- }
44
- this.cleanupInterval = setInterval(() => this.runCleanup(), intervalMs);
45
- logger.info("[RETENTION] Data retention initialized. " +
46
- `Cleanup interval: ${intervalMs / 60000}min. ` +
47
- `Policies: ${Object.entries(RETENTION_POLICIES).map(([k, v]) => `${k}=${v}d`).join(", ")}`);
48
- }
49
- /**
50
- * Run cleanup for all data stores.
51
- * Cleans audit logs, messages, and logs based on retention policies.
52
- */
53
- static runCleanup() {
54
- const result = { audit: 0, messages: 0, logs: 0 };
55
- try {
56
- // 1. Clean audit logs
57
- result.audit = Audit.cleanExpired();
58
- // 2. Clean old messages (Hermes message queue)
59
- result.messages = this.cleanOldMessages();
60
- // 3. Clean old logs
61
- result.logs = this.cleanOldLogs();
62
- if (result.audit > 0 || result.messages > 0 || result.logs > 0) {
63
- logger.info("[RETENTION] Cleanup complete: " +
64
- `${result.audit} audit, ${result.messages} messages, ${result.logs} logs`);
65
- }
66
- }
67
- catch (error) {
68
- logger.error(`[RETENTION] Cleanup failed: ${error.message}`);
69
- }
70
- return result;
71
- }
72
- /**
73
- * [KVKK Art. 7] "Right to Erasure" — Deletes all data for a given trace ID.
74
- * Cleans audit records, messages, logs, and tasks.
75
- *
76
- * @param traceId Trace ID to erase
77
- * @returns Total number of deleted records
78
- */
79
- static eraseTraceData(traceId) {
80
- let total = 0;
81
- // Audit logs
82
- total += Audit.deleteByFilter({ traceId });
83
- // Messages
84
- const db = databaseHolder.getDB();
85
- const msgResult = db.prepare("DELETE FROM messages WHERE trace_id = ?").run(traceId);
86
- total += msgResult.changes;
87
- // Tasks
88
- const taskResult = db.prepare("DELETE FROM tasks WHERE trace_id = ?").run(traceId);
89
- total += taskResult.changes;
90
- // Logs
91
- const logResult = db.prepare("DELETE FROM logs WHERE trace_id = ?").run(traceId);
92
- total += logResult.changes;
93
- logger.info(`[RETENTION] Trace ${traceId} erased: ${total} records deleted (KVKK Article 7)`);
94
- return total;
95
- }
96
- /**
97
- * [KVKK Art. 11] Erases all data.
98
- * Only works with the confirmation code.
99
- */
100
- static eraseAllData(confirmationCode) {
101
- if (confirmationCode !== "KVKK-RIGHT-TO-ERASURE") {
102
- throw new Error("[RETENTION] Invalid confirmation code. Use 'KVKK-RIGHT-TO-ERASURE'");
103
- }
104
- let total = 0;
105
- const db = databaseHolder.getDB();
106
- total += Audit.clearAll(confirmationCode);
107
- total += db.prepare("DELETE FROM messages").run().changes;
108
- total += db.prepare("DELETE FROM tasks").run().changes;
109
- total += db.prepare("DELETE FROM logs").run().changes;
110
- total += db.prepare("DELETE FROM agents").run().changes;
111
- total += db.prepare("DELETE FROM metadata").run().changes;
112
- logger.warn(`[RETENTION] ALL DATA ERASED: ${total} records (KVKK Article 7 - Right to Erasure)`);
113
- return total;
114
- }
115
- /**
116
- * Get retention statistics.
117
- */
118
- static getStats() {
119
- const db = databaseHolder.getDB();
120
- const auditExpired = db.prepare(`
121
- SELECT COUNT(*) as count FROM audit_log
122
- WHERE retentionDays IS NOT NULL
123
- AND timestamp < datetime('now', '-' || retentionDays || ' days')
124
- `).get().count;
125
- const messageCount = db.prepare("SELECT COUNT(*) as count FROM messages").get().count;
126
- const logCount = db.prepare("SELECT COUNT(*) as count FROM logs").get().count;
127
- const taskCount = db.prepare("SELECT COUNT(*) as count FROM tasks").get().count;
128
- return {
129
- auditExpired,
130
- messageCount,
131
- logCount,
132
- taskCount,
133
- policies: { ...RETENTION_POLICIES },
134
- };
135
- }
136
- /**
137
- * Stop the periodic cleanup job.
138
- */
139
- static shutdown() {
140
- if (this.cleanupInterval) {
141
- clearInterval(this.cleanupInterval);
142
- this.cleanupInterval = null;
143
- logger.info("[RETENTION] Cleanup job stopped");
144
- }
145
- }
146
- /**
147
- * Clean old messages from the Hermes queue.
148
- * Messages older than 30 days are removed.
149
- */
150
- static cleanOldMessages() {
151
- const db = databaseHolder.getDB();
152
- const result = db.prepare(`
153
- DELETE FROM messages
154
- WHERE timestamp < datetime('now', '-30 days')
155
- `).run();
156
- return result.changes;
157
- }
158
- /**
159
- * Clean old logs.
160
- * Logs older than 30 days are removed.
161
- */
162
- static cleanOldLogs() {
163
- const db = databaseHolder.getDB();
164
- const result = db.prepare(`
165
- DELETE FROM logs
166
- WHERE timestamp < datetime('now', '-30 days')
167
- `).run();
168
- return result.changes;
169
- }
170
- }
1
+ export * from "./modules/security/retention.js";
171
2
  //# sourceMappingURL=retention.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"retention.js","sourceRoot":"","sources":["../../../../shared/src/retention.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retention.js","sourceRoot":"","sources":["../../../../shared/src/retention.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
@@ -1,28 +1 @@
1
- /**
2
- * Sandboxed filesystem mutations — Phase 1.2.
3
- *
4
- * - Always holds AtomicFileLock (try/finally).
5
- * - When runtime=container: write via container stdin → /workspace/<path>
6
- * - When runtime=uid|none: write on host under projectRoot (safePath caller responsibility)
7
- * - ATABEY_SANDBOX_REQUIRED=true rejects writes if isolation is none
8
- */
9
- import { type SandboxRuntimeConfig } from "./sandbox-runtime.js";
10
- export interface SandboxFsWriteResult {
11
- absolutePath: string;
12
- relativePath: string;
13
- runtime: SandboxRuntimeConfig["effectiveMode"];
14
- isolationLabel: string;
15
- bytes: number;
16
- }
17
- /**
18
- * Normalize user path to a project-relative POSIX path.
19
- * Absolute paths are accepted only if they resolve inside projectRoot.
20
- */
21
- export declare function assertSafeRelativePath(userPath: string, projectRoot?: string): string;
22
- /**
23
- * Write file content under project root using the active sandbox runtime.
24
- */
25
- export declare function writeFileInSandbox(projectRoot: string, userPath: string, content: string, options?: {
26
- ownerId?: string;
27
- timeoutMs?: number;
28
- }): Promise<SandboxFsWriteResult>;
1
+ export * from "./modules/sandbox/sandbox-fs.js";