atabey 0.1.1-beta → 0.1.3

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 (230) hide show
  1. package/README.md +145 -79
  2. package/dist/atabey/src/cli/commands/coverage.js +17 -12
  3. package/dist/atabey/src/cli/commands/coverage.js.map +1 -1
  4. package/dist/atabey/src/cli/commands/lint.d.ts +2 -1
  5. package/dist/atabey/src/cli/commands/lint.js +20 -1
  6. package/dist/atabey/src/cli/commands/lint.js.map +1 -1
  7. package/dist/atabey/src/cli/commands/mcp.js +56 -23
  8. package/dist/atabey/src/cli/commands/mcp.js.map +1 -1
  9. package/dist/atabey/src/cli/commands/orchestrate.d.ts +6 -6
  10. package/dist/atabey/src/cli/index.js +1 -1
  11. package/dist/shared/src/agent-identity.d.ts +1 -34
  12. package/dist/shared/src/agent-identity.js +1 -76
  13. package/dist/shared/src/agent-identity.js.map +1 -1
  14. package/dist/shared/src/api-catalog.d.ts +1 -57
  15. package/dist/shared/src/api-catalog.js +1 -253
  16. package/dist/shared/src/api-catalog.js.map +1 -1
  17. package/dist/shared/src/audit-chain.d.ts +1 -80
  18. package/dist/shared/src/audit-chain.js +1 -261
  19. package/dist/shared/src/audit-chain.js.map +1 -1
  20. package/dist/shared/src/audit.d.ts +1 -121
  21. package/dist/shared/src/audit.js +1 -321
  22. package/dist/shared/src/audit.js.map +1 -1
  23. package/dist/shared/src/constants.d.ts +1 -150
  24. package/dist/shared/src/constants.js +1 -211
  25. package/dist/shared/src/constants.js.map +1 -1
  26. package/dist/shared/src/database.d.ts +1 -6
  27. package/dist/shared/src/database.js +1 -15
  28. package/dist/shared/src/database.js.map +1 -1
  29. package/dist/shared/src/errors.d.ts +1 -46
  30. package/dist/shared/src/errors.js +1 -68
  31. package/dist/shared/src/errors.js.map +1 -1
  32. package/dist/shared/src/file-lock.d.ts +1 -93
  33. package/dist/shared/src/file-lock.js +1 -239
  34. package/dist/shared/src/file-lock.js.map +1 -1
  35. package/dist/shared/src/fs.d.ts +1 -9
  36. package/dist/shared/src/fs.js +1 -53
  37. package/dist/shared/src/fs.js.map +1 -1
  38. package/dist/shared/src/index.d.ts +2 -31
  39. package/dist/shared/src/index.js +2 -31
  40. package/dist/shared/src/index.js.map +1 -1
  41. package/dist/shared/src/job-queue.d.ts +1 -76
  42. package/dist/shared/src/job-queue.js +1 -199
  43. package/dist/shared/src/job-queue.js.map +1 -1
  44. package/dist/shared/src/lock.d.ts +1 -82
  45. package/dist/shared/src/lock.js +1 -158
  46. package/dist/shared/src/lock.js.map +1 -1
  47. package/dist/shared/src/logger.d.ts +1 -31
  48. package/dist/shared/src/logger.js +1 -152
  49. package/dist/shared/src/logger.js.map +1 -1
  50. package/dist/shared/src/memory-prune.d.ts +1 -18
  51. package/dist/shared/src/memory-prune.js +1 -47
  52. package/dist/shared/src/memory-prune.js.map +1 -1
  53. package/dist/shared/src/migrations.d.ts +1 -69
  54. package/dist/shared/src/migrations.js +1 -393
  55. package/dist/shared/src/migrations.js.map +1 -1
  56. package/dist/shared/src/modules/agent/agent-identity.d.ts +34 -0
  57. package/dist/shared/src/modules/agent/agent-identity.js +77 -0
  58. package/dist/shared/src/modules/agent/agent-identity.js.map +1 -0
  59. package/dist/shared/src/modules/agent/api-catalog.d.ts +57 -0
  60. package/dist/shared/src/modules/agent/api-catalog.js +254 -0
  61. package/dist/shared/src/modules/agent/api-catalog.js.map +1 -0
  62. package/dist/shared/src/modules/agent/index.d.ts +3 -0
  63. package/dist/shared/src/modules/agent/index.js +4 -0
  64. package/dist/shared/src/modules/agent/index.js.map +1 -0
  65. package/dist/shared/src/modules/agent/tokenizer.d.ts +54 -0
  66. package/dist/shared/src/modules/agent/tokenizer.js +272 -0
  67. package/dist/shared/src/modules/agent/tokenizer.js.map +1 -0
  68. package/dist/shared/src/modules/concurrency/file-lock.d.ts +93 -0
  69. package/dist/shared/src/modules/concurrency/file-lock.js +240 -0
  70. package/dist/shared/src/modules/concurrency/file-lock.js.map +1 -0
  71. package/dist/shared/src/modules/concurrency/index.d.ts +6 -0
  72. package/dist/shared/src/modules/concurrency/index.js +7 -0
  73. package/dist/shared/src/modules/concurrency/index.js.map +1 -0
  74. package/dist/shared/src/modules/concurrency/job-queue.d.ts +76 -0
  75. package/dist/shared/src/modules/concurrency/job-queue.js +200 -0
  76. package/dist/shared/src/modules/concurrency/job-queue.js.map +1 -0
  77. package/dist/shared/src/modules/concurrency/lock.d.ts +82 -0
  78. package/dist/shared/src/modules/concurrency/lock.js +159 -0
  79. package/dist/shared/src/modules/concurrency/lock.js.map +1 -0
  80. package/dist/shared/src/modules/concurrency/resilience.d.ts +84 -0
  81. package/dist/shared/src/modules/concurrency/resilience.js +217 -0
  82. package/dist/shared/src/modules/concurrency/resilience.js.map +1 -0
  83. package/dist/shared/src/modules/concurrency/worker-pool.d.ts +52 -0
  84. package/dist/shared/src/modules/concurrency/worker-pool.js +229 -0
  85. package/dist/shared/src/modules/concurrency/worker-pool.js.map +1 -0
  86. package/dist/shared/src/modules/concurrency/worker-thread.d.ts +21 -0
  87. package/dist/shared/src/modules/concurrency/worker-thread.js +67 -0
  88. package/dist/shared/src/modules/concurrency/worker-thread.js.map +1 -0
  89. package/dist/shared/src/modules/index.d.ts +14 -0
  90. package/dist/shared/src/modules/index.js +15 -0
  91. package/dist/shared/src/modules/index.js.map +1 -0
  92. package/dist/shared/src/modules/observability/audit-chain.d.ts +80 -0
  93. package/dist/shared/src/modules/observability/audit-chain.js +262 -0
  94. package/dist/shared/src/modules/observability/audit-chain.js.map +1 -0
  95. package/dist/shared/src/modules/observability/audit.d.ts +121 -0
  96. package/dist/shared/src/modules/observability/audit.js +322 -0
  97. package/dist/shared/src/modules/observability/audit.js.map +1 -0
  98. package/dist/shared/src/modules/observability/index.d.ts +4 -0
  99. package/dist/shared/src/modules/observability/index.js +5 -0
  100. package/dist/shared/src/modules/observability/index.js.map +1 -0
  101. package/dist/shared/src/modules/observability/logger.d.ts +31 -0
  102. package/dist/shared/src/modules/observability/logger.js +153 -0
  103. package/dist/shared/src/modules/observability/logger.js.map +1 -0
  104. package/dist/shared/src/modules/observability/otel.d.ts +39 -0
  105. package/dist/shared/src/modules/observability/otel.js +93 -0
  106. package/dist/shared/src/modules/observability/otel.js.map +1 -0
  107. package/dist/shared/src/modules/primitives/constants.d.ts +150 -0
  108. package/dist/shared/src/modules/primitives/constants.js +212 -0
  109. package/dist/shared/src/modules/primitives/constants.js.map +1 -0
  110. package/dist/shared/src/modules/primitives/errors.d.ts +46 -0
  111. package/dist/shared/src/modules/primitives/errors.js +69 -0
  112. package/dist/shared/src/modules/primitives/errors.js.map +1 -0
  113. package/dist/shared/src/modules/primitives/fs.d.ts +9 -0
  114. package/dist/shared/src/modules/primitives/fs.js +54 -0
  115. package/dist/shared/src/modules/primitives/fs.js.map +1 -0
  116. package/dist/shared/src/modules/primitives/index.d.ts +7 -0
  117. package/dist/shared/src/modules/primitives/index.js +8 -0
  118. package/dist/shared/src/modules/primitives/index.js.map +1 -0
  119. package/dist/shared/src/modules/primitives/outbound-http.d.ts +32 -0
  120. package/dist/shared/src/modules/primitives/outbound-http.js +88 -0
  121. package/dist/shared/src/modules/primitives/outbound-http.js.map +1 -0
  122. package/dist/shared/src/modules/primitives/string.d.ts +1 -0
  123. package/dist/shared/src/modules/primitives/string.js +30 -0
  124. package/dist/shared/src/modules/primitives/string.js.map +1 -0
  125. package/dist/shared/src/modules/primitives/time.d.ts +5 -0
  126. package/dist/shared/src/modules/primitives/time.js +35 -0
  127. package/dist/shared/src/modules/primitives/time.js.map +1 -0
  128. package/dist/shared/src/modules/primitives/types.d.ts +27 -0
  129. package/dist/shared/src/modules/primitives/types.js +17 -0
  130. package/dist/shared/src/modules/primitives/types.js.map +1 -0
  131. package/dist/shared/src/modules/sandbox/index.d.ts +3 -0
  132. package/dist/shared/src/modules/sandbox/index.js +4 -0
  133. package/dist/shared/src/modules/sandbox/index.js.map +1 -0
  134. package/dist/shared/src/modules/sandbox/sandbox-fs.d.ts +28 -0
  135. package/dist/shared/src/modules/sandbox/sandbox-fs.js +143 -0
  136. package/dist/shared/src/modules/sandbox/sandbox-fs.js.map +1 -0
  137. package/dist/shared/src/modules/sandbox/sandbox-runtime.d.ts +78 -0
  138. package/dist/shared/src/modules/sandbox/sandbox-runtime.js +282 -0
  139. package/dist/shared/src/modules/sandbox/sandbox-runtime.js.map +1 -0
  140. package/dist/shared/src/modules/sandbox/sandbox.d.ts +54 -0
  141. package/dist/shared/src/modules/sandbox/sandbox.js +179 -0
  142. package/dist/shared/src/modules/sandbox/sandbox.js.map +1 -0
  143. package/dist/shared/src/modules/security/index.d.ts +5 -0
  144. package/dist/shared/src/modules/security/index.js +6 -0
  145. package/dist/shared/src/modules/security/index.js.map +1 -0
  146. package/dist/shared/src/modules/security/pii.d.ts +70 -0
  147. package/dist/shared/src/modules/security/pii.js +276 -0
  148. package/dist/shared/src/modules/security/pii.js.map +1 -0
  149. package/dist/shared/src/modules/security/policy-gate.d.ts +42 -0
  150. package/dist/shared/src/modules/security/policy-gate.js +172 -0
  151. package/dist/shared/src/modules/security/policy-gate.js.map +1 -0
  152. package/dist/shared/src/modules/security/retention.d.ts +68 -0
  153. package/dist/shared/src/modules/security/retention.js +218 -0
  154. package/dist/shared/src/modules/security/retention.js.map +1 -0
  155. package/dist/shared/src/modules/security/secrets.d.ts +99 -0
  156. package/dist/shared/src/modules/security/secrets.js +371 -0
  157. package/dist/shared/src/modules/security/secrets.js.map +1 -0
  158. package/dist/shared/src/modules/security/tls.d.ts +87 -0
  159. package/dist/shared/src/modules/security/tls.js +154 -0
  160. package/dist/shared/src/modules/security/tls.js.map +1 -0
  161. package/dist/shared/src/modules/storage/database.d.ts +6 -0
  162. package/dist/shared/src/modules/storage/database.js +16 -0
  163. package/dist/shared/src/modules/storage/database.js.map +1 -0
  164. package/dist/shared/src/modules/storage/index.d.ts +4 -0
  165. package/dist/shared/src/modules/storage/index.js +5 -0
  166. package/dist/shared/src/modules/storage/index.js.map +1 -0
  167. package/dist/shared/src/modules/storage/memory-prune.d.ts +18 -0
  168. package/dist/shared/src/modules/storage/memory-prune.js +48 -0
  169. package/dist/shared/src/modules/storage/memory-prune.js.map +1 -0
  170. package/dist/shared/src/modules/storage/migrations.d.ts +69 -0
  171. package/dist/shared/src/modules/storage/migrations.js +394 -0
  172. package/dist/shared/src/modules/storage/migrations.js.map +1 -0
  173. package/dist/shared/src/modules/storage/storage.d.ts +341 -0
  174. package/dist/shared/src/modules/storage/storage.js +1004 -0
  175. package/dist/shared/src/modules/storage/storage.js.map +1 -0
  176. package/dist/shared/src/otel.d.ts +1 -39
  177. package/dist/shared/src/otel.js +1 -92
  178. package/dist/shared/src/otel.js.map +1 -1
  179. package/dist/shared/src/outbound-http.d.ts +1 -32
  180. package/dist/shared/src/outbound-http.js +1 -87
  181. package/dist/shared/src/outbound-http.js.map +1 -1
  182. package/dist/shared/src/pii.d.ts +1 -70
  183. package/dist/shared/src/pii.js +1 -275
  184. package/dist/shared/src/pii.js.map +1 -1
  185. package/dist/shared/src/policy-gate.d.ts +1 -42
  186. package/dist/shared/src/policy-gate.js +1 -171
  187. package/dist/shared/src/policy-gate.js.map +1 -1
  188. package/dist/shared/src/resilience.d.ts +1 -84
  189. package/dist/shared/src/resilience.js +1 -216
  190. package/dist/shared/src/resilience.js.map +1 -1
  191. package/dist/shared/src/retention.d.ts +1 -68
  192. package/dist/shared/src/retention.js +1 -217
  193. package/dist/shared/src/retention.js.map +1 -1
  194. package/dist/shared/src/sandbox-fs.d.ts +1 -28
  195. package/dist/shared/src/sandbox-fs.js +1 -142
  196. package/dist/shared/src/sandbox-fs.js.map +1 -1
  197. package/dist/shared/src/sandbox-runtime.d.ts +1 -78
  198. package/dist/shared/src/sandbox-runtime.js +1 -281
  199. package/dist/shared/src/sandbox-runtime.js.map +1 -1
  200. package/dist/shared/src/sandbox.d.ts +1 -54
  201. package/dist/shared/src/sandbox.js +1 -178
  202. package/dist/shared/src/sandbox.js.map +1 -1
  203. package/dist/shared/src/secrets.d.ts +1 -99
  204. package/dist/shared/src/secrets.js +1 -370
  205. package/dist/shared/src/secrets.js.map +1 -1
  206. package/dist/shared/src/storage.d.ts +1 -341
  207. package/dist/shared/src/storage.js +1 -1003
  208. package/dist/shared/src/storage.js.map +1 -1
  209. package/dist/shared/src/string.d.ts +1 -1
  210. package/dist/shared/src/string.js +1 -29
  211. package/dist/shared/src/string.js.map +1 -1
  212. package/dist/shared/src/time.d.ts +1 -5
  213. package/dist/shared/src/time.js +1 -34
  214. package/dist/shared/src/time.js.map +1 -1
  215. package/dist/shared/src/tls.d.ts +1 -87
  216. package/dist/shared/src/tls.js +1 -153
  217. package/dist/shared/src/tls.js.map +1 -1
  218. package/dist/shared/src/tokenizer.d.ts +1 -54
  219. package/dist/shared/src/tokenizer.js +1 -271
  220. package/dist/shared/src/tokenizer.js.map +1 -1
  221. package/dist/shared/src/types.d.ts +1 -27
  222. package/dist/shared/src/types.js +1 -16
  223. package/dist/shared/src/types.js.map +1 -1
  224. package/dist/shared/src/worker-pool.d.ts +1 -52
  225. package/dist/shared/src/worker-pool.js +1 -228
  226. package/dist/shared/src/worker-pool.js.map +1 -1
  227. package/dist/shared/src/worker-thread.d.ts +1 -21
  228. package/dist/shared/src/worker-thread.js +1 -66
  229. package/dist/shared/src/worker-thread.js.map +1 -1
  230. package/package.json +4 -4
package/README.md CHANGED
@@ -1,10 +1,19 @@
1
- # [GOV] Atabey — AI Governance & Multi-Agent Platform / Orchestrator (Core Engine)
1
+ # Atabey — Local AI Control Plane & Discipline Layer (Core Engine)
2
2
 
3
- [![Version](https://img.shields.io/badge/Version-v0.1.0-beta.0-blue.svg)](https://github.com/ysf-bkr/atabey)
3
+ [![Version](https://img.shields.io/badge/Version-v0.1.3-blue.svg)](https://github.com/ysf-bkr/atabey)
4
4
  [![npm](https://img.shields.io/npm/v/atabey)](https://www.npmjs.com/package/atabey)
5
5
  [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
6
6
 
7
- **Atabey Core Engine** is the CLI and orchestration layer of the Atabey framework. It provides the multi-agent system, governance engines, routing engine, risk assessment, quality gates, evaluation and learning, contract management, phase management, memory systems, skill definitions, and provider integrations.
7
+ **Atabey Core Engine** is the CLI and orchestration layer of the Atabey framework: the multi-agent system, governance engines, routing engine, risk assessment, quality gates, evaluation & learning, contract management, phase management, memory systems, skill definitions and provider integrations.
8
+
9
+ **Atabey** is a **local AI control plane & discipline layer** that sits between your
10
+ codebase and your local AI coding assistants. It does **not** write code and does **not**
11
+ host an LLM — it **disciplines, bounds and coordinates** the assistant you already use
12
+ through the Model Context Protocol (MCP).
13
+
14
+ > "Order from Chaos" — keeps AI coding assistants focused, blocks destructive actions,
15
+ > rolls back broken edits, prevents runaway token loops, and records an audit trail.
16
+
8
17
 
9
18
  ---
10
19
 
@@ -12,14 +21,15 @@
12
21
 
13
22
  | Capability | Description |
14
23
  |-----------|-------------|
15
- | **CLI** | 30+ commands for initialization, orchestration, status, compliance, memory |
24
+ | **CLI** | 27 commands for initialization, orchestration, status, compliance and memory |
16
25
  | **Engines** | 9 engines: routing, risk, quality, evaluation, health, planning, agent-executor, agent-loop, crud-governance |
17
- | **Agents** | 13 specialized agent definitions with 3-tier hierarchy (Supreme/Core/Recon) |
26
+ | **Agents** | 13 specialized agent definitions with a 3-tier hierarchy (Supreme / Core / Recon) |
27
+ | **Runtime** | Headless CLI adapters, DAG dispatcher, git-worktree isolation, signed evidence bundles |
18
28
  | **Memory** | 3-layer memory: vector (TF-IDF/OpenAI), project, specialty |
19
- | **Skills** | 11 core skills with 8 platform adapter mappings |
29
+ | **Skills** | 11 core skills mapped across 8 platform adapters |
20
30
  | **Providers** | 8 platform adapters: Claude, Gemini, Cursor, Codex, Antigravity, Grok, Local LLM, OpenCode |
21
- | **Contracts** | Zod-schema task contracts, API contracts |
22
- | **Standards** | 30+ governance standard templates |
31
+ | **Contracts** | Zod-schema task contracts and API contracts |
32
+ | **Standards** | 33 governance standard templates |
23
33
 
24
34
  ---
25
35
 
@@ -32,10 +42,10 @@ npm install -g atabey
32
42
  ## Quick Start
33
43
 
34
44
  ```bash
35
- # Initialize in your project
45
+ # Initialize Atabey inside your project
36
46
  npx atabey init gemini --profile freelancer --yes
37
47
 
38
- # Verify installation
48
+ # Verify
39
49
  npx atabey status
40
50
  ```
41
51
 
@@ -54,7 +64,7 @@ npx atabey status
54
64
  | **@database** | Core | 9/10 | Database management, migrations, queries |
55
65
  | **@analyst** | Recon | 8/10 | Strategy analysis, requirements |
56
66
  | **@mobile** | Core | 8/10 | React Native mobile development |
57
- | **@native** | Recon | 8/10 | Native platform integration |
67
+ | **@native** | Recon | 8/10 | Native platform integration (Rust/Go only) |
58
68
  | **@devops** | Core | 8/10 | CI/CD, deploy, infrastructure |
59
69
  | **@explorer** | Recon | 8/10 | Codebase discovery, analysis |
60
70
  | **@git** | Recon | 8/10 | Version control, commit management |
@@ -65,30 +75,27 @@ npx atabey status
65
75
 
66
76
  | Engine | File | Description |
67
77
  |--------|------|-------------|
68
- | **RoutingEngine** | `routing-engine.ts` | TF-IDF + Semantic (cosine similarity) task routing with 60/40 blend |
69
- | **RiskEngine** | `risk-engine.ts` | Keyword + path + behavioral risk assessment (requiresApproval ≥ 60) |
78
+ | **RoutingEngine** | `routing-engine.ts` | TF-IDF + semantic (cosine similarity) task routing, 60/40 blend |
79
+ | **RiskEngine** | `risk-engine.ts` | Keyword + path + behavioral risk assessment (requires approval ≥ 60) |
70
80
  | **QualityGate** | `quality-gate.ts` | Compliance AST scan + lint + content validation |
71
- | **EvaluationEngine** | `evaluation-engine.ts` | Post-task scoring (0-100), specialty memory learning |
72
- | **HealthEngine** | `health-engine.ts` | Weighted project health: agent(30%), quality(25%), security(25%), architecture(20%) |
73
- | **PlanningEngine** | `planning-engine.ts` | DAG-based task plan creation + circular dependency detection |
81
+ | **EvaluationEngine** | `evaluation-engine.ts` | Post-task scoring (0–100), specialty-memory learning |
82
+ | **HealthEngine** | `health-engine.ts` | Weighted project health: agent 30% · quality 25% · security 25% · architecture 20% |
83
+ | **PlanningEngine** | `planning-engine.ts` | DAG-based task plan creation + circular-dependency detection |
74
84
  | **AgentExecutor** | `agent-executor.ts` | Hermes message-based agent task distribution with 3 retries |
75
85
  | **AgentLoop** | `agent-loop.ts` | Background polling loop consuming DELEGATION messages |
76
- | **CrudGovernance** | `crud-governance.ts` | CRUD operation governance rules |
86
+ | **CrudGovernance** | `crud-governance.ts` | CRUD / administrative operation governance rules |
77
87
 
78
- > Contract/policy/phase/session logic lives elsewhere (CLI commands, `atabey-shared`),
79
- > and file locking is `AtomicFileLock` in `packages/shared/src/file-lock.ts`.
88
+ > Contract, policy, phase and session logic lives in the CLI commands and `atabey-shared`;
89
+ > atomic file locking is `AtomicFileLock` in `packages/shared`.
80
90
 
81
- ---
82
-
83
- ## 🧠 3-Layer Memory System
91
+ ## 3-Layer Memory System
84
92
 
85
93
  | Layer | Storage | Technology | Purpose |
86
94
  |-------|---------|------------|---------|
87
- | **Vector Memory** | SQLite | TF-IDF / OpenAI embeddings + Cosine similarity | Semantic search across project knowledge |
95
+ | **Vector Memory** | SQLite | TF-IDF / OpenAI embeddings + cosine similarity | Semantic search across project knowledge |
88
96
  | **Project Memory** | Markdown | `PROJECT_MEMORY.md` | Central project state, synchronized every session |
89
97
  | **Specialty Memory** | Markdown | `.atabey/memory/specialties/{agent}.md` | Per-agent learned conventions from past tasks |
90
98
 
91
- ### Memory Flow
92
99
  ```
93
100
  Task → Evaluation Engine → Score (0-100)
94
101
  ├── Success → extractSuccessLesson() → updateSpecialtyMemory()
@@ -97,6 +104,7 @@ Task → Evaluation Engine → Score (0-100)
97
104
  Next session: readLearnedConventions() → injected into agent prompt
98
105
  ```
99
106
 
107
+
100
108
  ---
101
109
 
102
110
  ## 🎯 11 Core Skills
@@ -110,18 +118,23 @@ Task → Evaluation Engine → Score (0-100)
110
118
  | **QUALITY_ASSURANCE** | run_shell_command, read_file | Testing & code quality |
111
119
  | **DATABASE_MANAGEMENT** | read_file, replace_text, run_shell_command | DB & migrations |
112
120
  | **DEVOPS_INFRASTRUCTURE** | run_shell_command, read_file | CI/CD & deployment |
121
+ | **SECURITY_AUDIT** | grep_search, read_file, http_proxy_request | Vulnerability assessment |
122
+ | **FRONTEND_DEVELOPMENT** | write_file, replace_text, run_shell_command | UI & component design |
123
+ | **MOBILE_DEVELOPMENT** | write_file, replace_text | Mobile & cross-platform |
124
+ | **GIT_WORKFLOW** | run_shell_command, git | Version control discipline |
113
125
 
114
126
  ### Platform Adapter Skills
115
127
 
116
128
  | Platform | Skills | Tool Count |
117
129
  |----------|--------|:----------:|
118
- | **Claude Code** ⭐ | file_system, editing, orchestration, governance, quality, search, memory | 20 tools |
119
- | **Gemini CLI** | file_system, editing, orchestration, governance, quality, search | 14 tools |
120
- | **Cursor IDE** | file_system, editing, search, quality | 9 tools |
121
- | **Codex CLI** | file_system, editing, search, quality | 9 tools |
122
- | **Antigravity CLI** | file_system, editing, orchestration, governance, quality, search | 14 tools |
123
- | **Grok** | file_system, editing, search, quality | 9 tools |
124
- | **Local LLM** | file_system, editing, orchestration, governance, quality, search | 14 tools |
130
+ | **Claude Code** ⭐ | file_system, editing, orchestration, governance, quality, search, memory | 20 |
131
+ | **Gemini CLI** | file_system, editing, orchestration, governance, quality, search | 14 |
132
+ | **Cursor IDE** | file_system, editing, search, quality | 9 |
133
+ | **Codex CLI** | file_system, editing, search, quality | 9 |
134
+ | **Antigravity CLI** | file_system, editing, orchestration, governance, quality, search | 14 |
135
+ | **Grok** | file_system, editing, search, quality | 9 |
136
+ | **Local LLM** | file_system, editing, orchestration, governance, quality, search | 14 |
137
+ | **OpenCode** | file_system, editing, orchestration, governance, quality, search | 14 |
125
138
 
126
139
  ---
127
140
 
@@ -138,44 +151,56 @@ Task → Evaluation Engine → Score (0-100)
138
151
  | **Performance** | performance-standards, observability-standards |
139
152
  | **UI/UX** | tailwind-standards, react-query-standards, react-router-standards |
140
153
  | **Data** | typeorm-standards, vite-standards |
141
- | **Economics** | pino-standards, swagger-standards |
154
+ | **Reporting** | pino-standards, swagger-standards |
142
155
 
143
- ---
144
-
145
- ## 🔌 8 Platform Adapters
156
+ ## 8 Platform Adapters
146
157
 
147
158
  | Platform | Framework Dir | Agents Dir | Shim File |
148
159
  |----------|---------------|------------|-----------|
149
160
  | **Claude Code** | `.claude` | `.claude/agents/*.md` | `CLAUDE.md` |
150
161
  | **Gemini CLI** | `.gemini` | `.gemini/agents/*.md` | `GEMINI.md` |
151
162
  | **Cursor IDE** | `.cursor` | `.cursor/rules/*.mdc` | `CURSOR.md` |
152
- | **Codex CLI** | `.agents` | `.agents/instructions/*.md` | `copilot-instructions.md` |
163
+ | **Codex CLI / Copilot** | `.agents` | `.agents/instructions/*.md` | `copilot-instructions.md` |
153
164
  | **Antigravity CLI** | `.agents` | `.agents/agents/{name}/agent.json` | `AGENTS.md` |
154
165
  | **Grok** | `.grok` | `.grok/agents/*.md` | `GROK.md` |
155
- | **Local LLM** | `.atabey` | `.atabey/agents/*.md` | `LOCAL_AI.md` |
166
+ | **Local LLM / Ollama** | `.atabey` | `.atabey/agents/*.md` | `LOCAL_AI.md` |
156
167
  | **OpenCode** | `.opencode` | `.opencode/agents/*.md` | `OPENCODE.md` |
157
168
 
169
+ > `atabey init <platform> --unified` configures and mirrors agents across **all platforms simultaneously**.
170
+
171
+
158
172
  ---
159
173
 
160
174
  ## 📋 CLI Reference
161
175
 
162
176
  ```bash
163
177
  atabey init [adapter] Initialize Atabey (--profile freelancer|team|enterprise)
164
- atabey mcp start Start MCP server
165
- atabey mcp install Generate mcp.json config
166
- atabey status Show agent statuses and costs
178
+ atabey mcp start|install MCP server management
179
+ atabey status Show agent statuses and token usage
167
180
  atabey check Full health and compliance check
168
- atabey orchestrate Start orchestration workflow loop
181
+ atabey orchestrate Start the orchestration workflow loop
169
182
  atabey approve <traceId> Approve a blocked high-risk task
170
- atabey hitl answer "<text>" Answer a pending ask_human question
171
- atabey @agent "task" Send task directly to an agent
183
+ atabey hitl status|answer|approve|reject HITL responses & approvals
172
184
  atabey trace new|replay <id> Create/replay an execution trace
173
- atabey contract Verify contract integrity
174
- atabey plan [task] Create a task plan
175
- atabey memory update <sect> <content> Update project memory
176
- atabey log [agent] View agent logs
177
- atabey explorer graph|audit Explore / audit codebase
178
- atabey security [path] Run security audit
185
+ atabey plan [submit <json>] Create/submit a task plan
186
+ atabey memory update <sect> <content> Update project memory
187
+ atabey git commit|sync Git operations
188
+ atabey explorer graph|audit Explore / audit the codebase
189
+ atabey knowledge <query> Knowledge base search
190
+ atabey log [@agent] View agent logs
191
+ atabey script <name> [dir] Run a predefined script
192
+ atabey security [path] Run a security audit
193
+ atabey compliance [path] Run a compliance check
194
+ atabey contract verify|update Contract integrity (update re-syncs hash)
195
+ atabey lint Run ESLint
196
+ atabey db <status|migrate|verify|backup|restore> SQLite schema, integrity & backups
197
+ atabey secrets <list|set|get|delete|scan> AES-256-GCM secret vault & leak scan
198
+ atabey api <scan|list|drift|json> API endpoint catalog & contract drift
199
+ atabey audit export|erase Signed audit export / KVKK-GDPR erasure
200
+ atabey worktree <create|list|remove> [name] Isolated agent worktrees
201
+ atabey index [dir] Index the codebase for RAG
202
+ atabey coverage Test coverage reports
203
+ atabey quickstart Generate an example task file
179
204
  ```
180
205
 
181
206
  ### `atabey init [adapter]` Options
@@ -185,6 +210,7 @@ atabey security [path] Run security audit
185
210
  | `[adapter]` | `gemini`, `claude`, `cursor`, `grok`, `codex`, `local`, `antigravity-cli`, `opencode` | Target AI platform |
186
211
  | `--profile` | `freelancer`, `team`, `enterprise` | Preset agent group layout |
187
212
  | `--focus` | `fullstack`, `backend`, `frontend`, `mobile`, `mobile-fullstack` | Project type optimization |
213
+ | `--backend` / `--frontend` / `--native` | `node|go|java|python|dotnet|rust` / `vite|next|vanilla` / `rust|go` | Application-tier scaffolding |
188
214
  | `--lang` | `tr`, `en` | Constitution language |
189
215
  | `--unified` | Flag | Multi-platform export |
190
216
  | `--yes` | Flag | Non-interactive mode |
@@ -194,58 +220,98 @@ atabey security [path] Run security audit
194
220
  ## 🏗️ Architecture
195
221
 
196
222
  ```
197
- src/
198
- ├── cli/
199
- │ ├── commands/ # 30+ CLI commands
200
- │ ├── platforms/ # 8 platform adapters
201
- │ └── utils/ # CLI utilities (compliance, memory, pkg, config)
202
- ├── contracts/ # Zod schemas, task/API contracts
203
- ├── modules/
204
- │ ├── agents/ # 13 agent definitions + registry
205
- │ ├── contracts/ # Module-level contracts
206
- │ ├── engines/ # 9 governance/orchestration engines
207
- │ ├── memory/ # Vector, project, specialty memory
208
- │ ├── providers/ # 7 LLM provider adapters
209
- │ └── skills/ # 11 core skills + platform mappings
210
- ├── schema/ # JSON schemas
211
- ├── shared/ # Audit, storage, PII, logger, constants, types
223
+ packages/atabey/
224
+ ├── src/
225
+ │ ├── cli/
226
+ │ │ ├── commands/ # 27 CLI commands
227
+ │ │ ├── platforms/ # 8 platform adapters
228
+ │ │ └── utils/ # CLI utilities (compliance, memory, pkg, config)
229
+ │ ├── modules/
230
+ │ │ ├── agents/ # 13 agent definitions + registry
231
+ │ │ ├── audit/ # HMAC-signed audit export
232
+ │ │ ├── contracts/ # Task/API contracts (Zod)
233
+ │ │ ├── engines/ # 9 governance/orchestration engines
234
+ │ │ ├── memory/ # Vector, project, specialty memory
235
+ │ │ ├── providers/ # 8 platform provider adapters
236
+ │ │ ├── runtime/ # Headless CLI runtime, DAG dispatcher, worktrees
237
+ │ │ └── skills/ # 11 core skills
238
+ │ ├── schema/ # JSON schemas
239
+ │ └── shared/ # Audit, storage, PII, logger, constants, types
212
240
  └── templates/
213
241
  ├── prompts/ # 9 prompt recipes
214
- ├── standards/ # 30+ governance standards
242
+ ├── standards/ # 33 governance standards
215
243
  └── full/ # Full constitution template
216
244
  ```
217
245
 
218
- ---
246
+ ## 5 Core Capabilities
247
+
248
+ | # | Capability | Description |
249
+ |---|-----------|-------------|
250
+ | 🛠️ | **40 MCP Tools** | File system, search, messaging, governance, memory, quality, network, orchestration |
251
+ | 🧠 | **3-Layer Memory** | Vector (TF-IDF/OpenAI), project memory, specialty (agent learning) |
252
+ | 🤖 | **13 Role Profiles** | 3-tier hierarchy (Supreme / Core / Recon) injected into the host LLM |
253
+ | 🎯 | **11 Core Skills** | Platform-adaptive skills for AI coding environments |
254
+ | 📚 | **30+ Standards** | Governance, security, architecture, compliance, deployment |
219
255
 
220
- ## 🔒 Security & Technical Alignment
221
256
 
222
- ### KVKK/GDPR Alignment
257
+ ## Security & Compliance
258
+
259
+ ### Deterministic, fail-closed governance
260
+ - AST-based compliance scanning + strict TypeScript (**`any` is forbidden**, no `console.*` in production code)
261
+ - **Fail-closed PolicyGate** + deny-by-default RBAC permission matrix (protected paths: `.env*`, `.git/`, `.ssh/`, `.atabey/*`, keys)
262
+ - **Prompt-injection protection** (OWASP LLM01) on both input and response
263
+ - **Secret-leak redaction** on tool output + AES-256-GCM local secret vault
264
+ - **HMAC-SHA256** tamper-evident audit chain
265
+ - SSRF-guarded HTTP proxy (private IP / metadata / DNS-rebinding protection)
266
+ - **TLS 1.3 + optional mTLS** on the unified HTTP/SSE transport
267
+ - Human-in-the-Loop: risk score ≥ 60 requires approval
268
+
269
+ ### KVKK / GDPR technical alignment
223
270
 
224
271
  | Feature | KVKK | GDPR | Status |
225
272
  |---------|------|------|--------|
226
273
  | PII Masking (20+ patterns) | Art. 4, 5, 11, 12 | Art. 5, 32 | ✅ |
227
- | Data Retention (30/90 days) | Art. 5, 7 | Art. 5, 17 | ✅ |
228
- | Right to Erasure | Art. 7 | Art. 17 | ✅ |
274
+ | Data Retention (30–730 days, by category) | Art. 5, 7 | Art. 5, 17 | ✅ |
275
+ | Right to Erasure (`atabey audit erase`) | Art. 7 | Art. 17 | ✅ |
229
276
  | Audit Trail | Art. 11 | Art. 30 | ✅ |
230
277
  | Data Classification | Art. 6 | Art. 9 | ✅ |
231
278
 
232
- ### Zero Type Hole Policy
233
- - `any` type usage is **strictly forbidden**
234
- - All function inputs validated with Zod schemas
235
- - Type safety enforced in governance pipeline
279
+ > Technical compliance tooling — not legal certification. Pair with your DPO / counsel.
280
+
281
+
282
+ ## Token Efficiency
283
+
284
+ Atabey keeps token consumption low at three layers — **there is no monetary budget layer**:
285
+
286
+ 1. **Measurement** — every tool call is counted with the real `cl100k_base` BPE tokenizer (input/output split).
287
+ 2. **Limits** — per-provider context / response / per-minute / per-hour and tool-call rate ceilings (`context-optimizer.ts`). A breach sets a cooldown; hard blocking is opt-in via `ATABEY_TOKEN_BUDGET_ENFORCE=true`.
288
+ 3. **Savings** — `read_file` responses are smart-truncated (imports/types/signatures preserved), `http_proxy` caches + strips HTML, loop detection stops token-burning loops, and `get_task_context` / `get_symbol_outline` / `get_api_catalog` feed the AI pre-indexed context instead of forcing full-repo scans.
289
+
290
+ Tune limits with `MCP_MAX_TOKENS_PER_MINUTE`, `MCP_MAX_TOKENS_PER_HOUR`, `MCP_MAX_CONTEXT_TOKENS`, `MCP_MAX_FILE_READ_SIZE`.
291
+
236
292
 
237
293
  ---
238
294
 
239
295
  ## 📦 Dependencies
240
296
 
241
- - **atabey-mcp**: MCP Server for tool execution and governance pipeline
242
- - **@modelcontextprotocol/sdk**: MCP protocol implementation
243
- - **better-sqlite3**: SQLite database for memory, audit, tasks
297
+ - **atabey-shared**: Shared constants, storage, PII masking, audit and locking primitives
298
+ - **atabey-mcp** _(optional)_: MCP server enabling `atabey mcp start` and the HTTP/SSE transport
299
+ - **better-sqlite3**: SQLite database for memory, audit and tasks
244
300
  - **zod**: Runtime schema validation
245
301
  - **chalk**: Terminal UI styling
246
- - **ws**: WebSocket for real-time IPC and live event streaming
302
+ - **js-yaml**: YAML parsing for the agent-registry validator
303
+ - **typescript**: TypeScript Compiler API for AST compliance scanning
304
+
305
+ ## 🔗 Related Packages
306
+
307
+ | Package | Role | Links |
308
+ |---------|------|-------|
309
+ | **atabey** | Core engine — CLI, agents, engines, orchestrator | [npm](https://www.npmjs.com/package/atabey) · [source](https://github.com/ysf-bkr/atabey/tree/main/packages/atabey) |
310
+ | **atabey-mcp** | MCP server — 40 tools & governance pipeline | [npm](https://www.npmjs.com/package/atabey-mcp) · [source](https://github.com/ysf-bkr/atabey/tree/main/packages/atabey-mcp) |
311
+ | **atabey-shared** | Shared utilities — constants, storage, PII, audit, locks | [npm](https://www.npmjs.com/package/atabey-shared) · [source](https://github.com/ysf-bkr/atabey/tree/main/packages/shared) |
312
+
313
+ > Full bilingual documentation (TR + EN): **[github.com/ysf-bkr/atabey](https://github.com/ysf-bkr/atabey#readme)**
247
314
 
248
- ---
249
315
 
250
316
  ## License
251
317
 
@@ -4,8 +4,8 @@ import path from "path";
4
4
  import { logger } from "../../shared/logger.js";
5
5
  import { getPackageRoot } from "../utils/pkg.js";
6
6
  import { UI } from "../utils/ui.js";
7
- function parseCoverageSummary() {
8
- const coverageDir = path.join(getPackageRoot(), "coverage");
7
+ function parseCoverageSummary(root) {
8
+ const coverageDir = path.join(root, "coverage");
9
9
  const summaryPath = path.join(coverageDir, "coverage-summary.json");
10
10
  if (!fs.existsSync(summaryPath))
11
11
  return null;
@@ -19,8 +19,8 @@ function parseCoverageSummary() {
19
19
  return null;
20
20
  }
21
21
  }
22
- function getFileCoverage() {
23
- const coverageDir = path.join(getPackageRoot(), "coverage");
22
+ function getFileCoverage(root) {
23
+ const coverageDir = path.join(root, "coverage");
24
24
  const summaryPath = path.join(coverageDir, "coverage-summary.json");
25
25
  if (!fs.existsSync(summaryPath))
26
26
  return [];
@@ -31,7 +31,7 @@ function getFileCoverage() {
31
31
  if (filePath === "total")
32
32
  continue;
33
33
  const d = data;
34
- files.push({ file: filePath.replace(process.cwd() + "/", ""), stmts: d.statements?.pct ?? 0, branch: d.branches?.pct ?? 0, funcs: d.functions?.pct ?? 0, lines: d.lines?.pct ?? 0, uncovered: [] });
34
+ files.push({ file: filePath.replace(root + "/", ""), stmts: d.statements?.pct ?? 0, branch: d.branches?.pct ?? 0, funcs: d.functions?.pct ?? 0, lines: d.lines?.pct ?? 0, uncovered: [] });
35
35
  }
36
36
  return files.sort((a, b) => a.lines - b.lines);
37
37
  }
@@ -40,8 +40,8 @@ function getFileCoverage() {
40
40
  return [];
41
41
  }
42
42
  }
43
- function getThresholdConfig() {
44
- const vitestConfigPath = path.join(getPackageRoot(), "vitest.config.ts");
43
+ function getThresholdConfig(root) {
44
+ const vitestConfigPath = path.join(root, "vitest.config.ts");
45
45
  if (!fs.existsSync(vitestConfigPath))
46
46
  return { lines: 80, functions: 80, branches: 80, statements: 80 };
47
47
  try {
@@ -75,22 +75,27 @@ function suggestImprovements(lowCoverageFiles) {
75
75
  }
76
76
  export async function coverageCommand() {
77
77
  const statusIcon = (current, threshold) => current >= threshold ? "[OK]" : "[LOW]";
78
- const coverageDir = path.join(getPackageRoot(), "coverage");
78
+ // Analyze the user's current project (cwd); fall back to the Atabey package
79
+ // only when cwd is not a Node project.
80
+ const projectRoot = fs.existsSync(path.join(process.cwd(), "package.json"))
81
+ ? process.cwd()
82
+ : getPackageRoot();
83
+ const coverageDir = path.join(projectRoot, "coverage");
79
84
  if (!fs.existsSync(path.join(coverageDir, "coverage-summary.json"))) {
80
85
  UI.info("Running tests with coverage...");
81
86
  try {
82
- execSync("npm run test:coverage", { stdio: "inherit", cwd: getPackageRoot() });
87
+ execSync("npm run test:coverage", { stdio: "inherit", cwd: projectRoot });
83
88
  }
84
89
  catch (err) {
85
90
  logger.warn("Coverage run failed (some tests may have failed), continuing with existing coverage data", err);
86
91
  }
87
92
  }
88
- const summary = parseCoverageSummary();
93
+ const summary = parseCoverageSummary(projectRoot);
89
94
  if (!summary) {
90
95
  UI.info("No coverage data found. Run 'npm run test:coverage' first.");
91
96
  return;
92
97
  }
93
- const thresholds = getThresholdConfig();
98
+ const thresholds = getThresholdConfig(projectRoot);
94
99
  UI.info("Test Coverage Analysis");
95
100
  const header = ` ${"Metric".padEnd(13)} | ${"Current".padEnd(7)} | ${"Threshold".padEnd(9)} | Status`;
96
101
  const separator = " " + "-".repeat(header.length - 4);
@@ -100,7 +105,7 @@ export async function coverageCommand() {
100
105
  const threshold = thresholds[name.toLowerCase()];
101
106
  process.stdout.write(` ${name.padEnd(13)} | ${String(val).padStart(7)}% | ${String(threshold).padStart(9)}% | ${statusIcon(val, threshold)}\n`);
102
107
  }
103
- const files = getFileCoverage();
108
+ const files = getFileCoverage(projectRoot);
104
109
  const lowCoverageFiles = getLowCoverageFiles(files, thresholds.lines);
105
110
  if (lowCoverageFiles.length > 0) {
106
111
  UI.info(`Low Coverage Files (below ${thresholds.lines}%):`);
@@ -1 +1 @@
1
- {"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../../../../src/cli/commands/coverage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../../../../src/cli/commands/coverage.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  /**
2
- * Run ESLint for the project (same as npm run lint).
2
+ * Run ESLint for the current project (delegates to `npm run lint`).
3
+ * Gives a friendly message when the project has no `lint` script configured.
3
4
  */
4
5
  export declare function lintCommand(): Promise<void>;
@@ -1,12 +1,31 @@
1
1
  import { execSync } from "child_process";
2
+ import fs from "fs";
3
+ import path from "path";
2
4
  import { getPackageVersion } from "../utils/pkg.js";
3
5
  import { UI } from "../utils/ui.js";
4
6
  /**
5
- * Run ESLint for the project (same as npm run lint).
7
+ * Run ESLint for the current project (delegates to `npm run lint`).
8
+ * Gives a friendly message when the project has no `lint` script configured.
6
9
  */
7
10
  export async function lintCommand() {
8
11
  UI.info(`Running ESLint (v${getPackageVersion()})...`);
9
12
  const projectRoot = process.cwd();
13
+ let hasLintScript = false;
14
+ try {
15
+ const pkgPath = path.join(projectRoot, "package.json");
16
+ if (fs.existsSync(pkgPath)) {
17
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
18
+ hasLintScript = Boolean(pkg.scripts?.lint);
19
+ }
20
+ }
21
+ catch {
22
+ /* treat as no script */
23
+ }
24
+ if (!hasLintScript) {
25
+ UI.error("No \"lint\" script found in this project's package.json.");
26
+ UI.info("Add one (e.g. \"lint\": \"eslint .\") plus an eslint.config.js, then re-run `atabey lint`.");
27
+ process.exit(1);
28
+ }
10
29
  try {
11
30
  execSync("npm run lint", {
12
31
  cwd: projectRoot,
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../../../src/cli/commands/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC7B,EAAE,CAAC,IAAI,CAAC,oBAAoB,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,IAAI,CAAC;QACD,QAAQ,CAAC,cAAc,EAAE;YACrB,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;SACnB,CAAC,CAAC;QACH,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACL,EAAE,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QACtE,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../../../src/cli/commands/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC7B,EAAE,CAAC,IAAI,CAAC,oBAAoB,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAElC,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACvD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAyC,CAAC;YACjG,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,wBAAwB;IAC5B,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,EAAE,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QACrE,EAAE,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;QACtG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,CAAC;QACD,QAAQ,CAAC,cAAc,EAAE;YACrB,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;SACnB,CAAC,CAAC;QACH,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACL,EAAE,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QACtE,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC"}
@@ -64,29 +64,62 @@ async function startMcpServer() {
64
64
  : [mcpPath];
65
65
  UI.success("MCP Server starting via " + runner + "...");
66
66
  logger.info("[MCP] Starting MCP server", { runner, path: mcpPath });
67
- // MCP uses stdio transport:
68
- // - stdin/stdout: JSON-RPC protocol (clean pipe to AI interface)
69
- // - stderr: server diagnostics and logs
70
- const child = spawn(runner, args, {
71
- stdio: ["inherit", "inherit", "inherit"],
72
- env: {
73
- ...process.env,
74
- ATABEY_PROJECT_ROOT: process.cwd(),
75
- [MCP.TRANSPORT_ENV]: MCP.TRANSPORT_STDIO,
76
- ATABEY_AUTO_START_ORCHESTRATOR: "true",
77
- }
78
- });
79
- child.on("error", (err) => {
80
- UI.error(`Failed to start MCP Server: ${err.message}`);
81
- logger.error("[MCP] Failed to start server", err);
82
- process.exit(70);
83
- });
84
- child.on("exit", (code) => {
85
- if (code !== 0) {
86
- UI.error(`MCP Server exited with code ${code}`);
87
- process.exit(code || 70);
88
- }
89
- });
67
+ const MAX_RESTARTS = 5;
68
+ const STABLE_RUN_THRESHOLD_MS = 30000;
69
+ let restartCount = 0;
70
+ let isShuttingDown = false;
71
+ process.on("SIGINT", () => { isShuttingDown = true; process.exit(0); });
72
+ process.on("SIGTERM", () => { isShuttingDown = true; process.exit(0); });
73
+ function launchInstance() {
74
+ const startTime = Date.now();
75
+ const child = spawn(runner, args, {
76
+ stdio: ["inherit", "inherit", "inherit"],
77
+ env: {
78
+ ...process.env,
79
+ ATABEY_PROJECT_ROOT: process.cwd(),
80
+ [MCP.TRANSPORT_ENV]: MCP.TRANSPORT_STDIO,
81
+ ATABEY_AUTO_START_ORCHESTRATOR: "true",
82
+ }
83
+ });
84
+ child.on("error", (err) => {
85
+ UI.error(`Failed to start MCP Server: ${err.message}`);
86
+ logger.error("[MCP] Failed to start server", err);
87
+ if (!isShuttingDown && restartCount < MAX_RESTARTS) {
88
+ restartCount++;
89
+ UI.warning(`[MCP] Retrying startup in 1s (${restartCount}/${MAX_RESTARTS})...`);
90
+ setTimeout(launchInstance, 1000);
91
+ }
92
+ else {
93
+ process.exit(70);
94
+ }
95
+ });
96
+ child.on("exit", (code, signal) => {
97
+ if (isShuttingDown || code === 0 || signal === "SIGINT" || signal === "SIGTERM") {
98
+ process.exit(0);
99
+ }
100
+ const uptime = Date.now() - startTime;
101
+ if (uptime > STABLE_RUN_THRESHOLD_MS) {
102
+ restartCount = 0;
103
+ }
104
+ restartCount++;
105
+ const canRestart = process.env.ATABEY_AUTO_RESTART !== "false" && restartCount <= MAX_RESTARTS;
106
+ if (canRestart) {
107
+ UI.warning(`[MCP] Server crashed (exit code: ${code}). Auto-restarting in 1s (${restartCount}/${MAX_RESTARTS})...`);
108
+ logger.warn("[MCP] Auto-restarting crashed MCP server", { code, restartCount });
109
+ setTimeout(launchInstance, 1000);
110
+ }
111
+ else {
112
+ if (restartCount > MAX_RESTARTS) {
113
+ UI.error(`[MCP] Maximum restart attempts (${MAX_RESTARTS}) reached. Aborting.`);
114
+ }
115
+ else {
116
+ UI.error(`MCP Server exited with code ${code}`);
117
+ }
118
+ process.exit(code || 70);
119
+ }
120
+ });
121
+ }
122
+ launchInstance();
90
123
  }
91
124
  async function installMcpConfig() {
92
125
  process.stdout.write("[MCP] Installing Atabey MCP configuration...\n");