atabey 0.0.2 → 0.0.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.
- package/README.md +6 -3
- package/dist/framework-mcp/src/tools/definitions.js +1 -1
- package/dist/framework-mcp/src/tools/definitions.js.map +1 -1
- package/dist/framework-mcp/src/tools/framework/run_tests.js +5 -3
- package/dist/framework-mcp/src/tools/framework/run_tests.js.map +1 -1
- package/dist/framework-mcp/src/tools/quality/check_lint.js +7 -5
- package/dist/framework-mcp/src/tools/quality/check_lint.js.map +1 -1
- package/dist/framework-mcp/src/tools/shell/run_command.js +12 -2
- package/dist/framework-mcp/src/tools/shell/run_command.js.map +1 -1
- package/dist/framework-mcp/src/utils/cli.d.ts +14 -3
- package/dist/framework-mcp/src/utils/cli.js +51 -13
- package/dist/framework-mcp/src/utils/cli.js.map +1 -1
- package/dist/src/cli/adapters/scaffold.d.ts +1 -1
- package/dist/src/cli/adapters/scaffold.js +8 -8
- package/dist/src/cli/adapters/scaffold.js.map +1 -1
- package/dist/src/cli/commands/init/scaffold-core.d.ts +4 -1
- package/dist/src/cli/commands/init/scaffold-core.js +12 -5
- package/dist/src/cli/commands/init/scaffold-core.js.map +1 -1
- package/dist/src/cli/commands/init/scaffold-docs.d.ts +3 -0
- package/dist/src/cli/commands/init/scaffold-docs.js +37 -0
- package/dist/src/cli/commands/init/scaffold-docs.js.map +1 -0
- package/dist/src/cli/commands/init.js +41 -17
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/utils/i18n.d.ts +15 -0
- package/dist/src/cli/utils/i18n.js +29 -0
- package/dist/src/cli/utils/i18n.js.map +1 -0
- package/dist/src/modules/agents/definitions.d.ts +6 -6
- package/dist/src/modules/agents/definitions.js +30 -26
- package/dist/src/modules/agents/definitions.js.map +1 -1
- package/dist/src/modules/agents/registry/backend.js +5 -6
- package/dist/src/modules/agents/registry/backend.js.map +1 -1
- package/dist/src/modules/agents/registry/database.js +2 -2
- package/dist/src/modules/agents/registry/database.js.map +1 -1
- package/framework-mcp/dist/tools/definitions.js +1 -1
- package/framework-mcp/dist/tools/framework/run_tests.js +5 -3
- package/framework-mcp/dist/tools/quality/check_lint.js +7 -5
- package/framework-mcp/dist/tools/shell/run_command.js +12 -2
- package/framework-mcp/dist/utils/cli.js +51 -13
- package/framework-mcp/package.json +1 -1
- package/framework-mcp/src/tools/definitions.ts +1 -1
- package/framework-mcp/src/tools/framework/run_tests.ts +5 -3
- package/framework-mcp/src/tools/quality/check_lint.ts +8 -5
- package/framework-mcp/src/tools/shell/run_command.ts +12 -2
- package/framework-mcp/src/utils/cli.ts +45 -13
- package/package.json +2 -2
- package/src/cli/adapters/scaffold.ts +10 -8
- package/src/cli/commands/init/scaffold-core.ts +14 -6
- package/src/cli/commands/init/scaffold-docs.ts +44 -0
- package/src/cli/commands/init.ts +48 -18
- package/src/cli/utils/i18n.ts +44 -0
- package/src/modules/agents/definitions.ts +32 -26
- package/src/modules/agents/registry/backend.ts +5 -6
- package/src/modules/agents/registry/database.ts +2 -2
package/README.md
CHANGED
|
@@ -18,6 +18,8 @@ Standart yapay zeka kod asistanları (Claude, Cursor, Aider vb.) bağımsız "ko
|
|
|
18
18
|
- **Kurumsal Kontrol Kaybı:** Denetimsiz CRUD işlemleri ve şema değişiklikleri.
|
|
19
19
|
|
|
20
20
|
### 🚀 Temel Özellikler
|
|
21
|
+
- **Çok Dilli İletişim (TR/EN):** Ajan ordusuyla Türkçe veya İngilizce iletişim kurma seçeneği.
|
|
22
|
+
- **Dil Bağımsız Backend Orkestrasyonu:** Go, Java, Python, .NET veya Node.js projeleri için özelleştirilmiş ajan yetenekleri.
|
|
21
23
|
- **Sıkı Yönetişim:** Kritik işlemler için "Human-in-the-Loop" onayı ve Trace ID tabanlı izleme.
|
|
22
24
|
- **Gelişmiş Hafıza Sistemi:** Bağlam kaymasını engelleyen 3 katmanlı hafıza mimarisi.
|
|
23
25
|
- **Token Ekonomisi:** %90'a varan tasarruf sağlayan "Cerrahi Müdahale" (Surgical Edits) mantığı.
|
|
@@ -39,6 +41,8 @@ Standard AI coding assistants act as independent "code writers". Without strict
|
|
|
39
41
|
- **Loss of Corporate Control:** Unsupervised CRUD operations and schema changes.
|
|
40
42
|
|
|
41
43
|
### 🚀 Core Features
|
|
44
|
+
- **Multi-Language Communication (TR/EN):** Option to interact with your agent army in Turkish or English.
|
|
45
|
+
- **Language-Agnostic Backend Orchestration:** Specialized agent capabilities for Go, Java, Python, .NET, or Node.js projects.
|
|
42
46
|
- **Strict Governance:** "Human-in-the-Loop" for critical operations and Trace ID tracking.
|
|
43
47
|
- **Advanced Memory System:** 3-tier architecture that prevents context drift.
|
|
44
48
|
- **Token Economy:** Up to 90% savings via "Surgical Edits" instead of full rewrites.
|
|
@@ -98,8 +102,6 @@ Agent Atabey **Open Core** modelini takip eder. Çekirdek çerçeve açık kayna
|
|
|
98
102
|
| **Security & RBAC** | Basic Access | Role-Based Workflows | Advanced RLS & SSO |
|
|
99
103
|
| **Support** | Community / GitHub | Standard Email Support | 24/7 SLA & Success Manager |
|
|
100
104
|
|
|
101
|
-
*Enterprise: [ybekar@msn.com](mailto:ybekar@msn.com)*
|
|
102
|
-
|
|
103
105
|
---
|
|
104
106
|
|
|
105
107
|
## 🛠️ Kurulum ve Başlatma / Initializing Framework
|
|
@@ -107,8 +109,9 @@ Agent Atabey **Open Core** modelini takip eder. Çekirdek çerçeve açık kayna
|
|
|
107
109
|
`atabey init` komutu, projenizi otonom ajan ordusu yönetimine hazır hale getirir. Kurulum esnasında anayasal kuralları (`ATABEY.md`), platform entegrasyon dosyalarını (shims), mesajlaşma kanallarını, bellek klasörlerini ve MCP (Model Context Protocol) sunucu yapılandırmasını otomatik olarak hazırlar.
|
|
108
110
|
|
|
109
111
|
### ⚙️ Kurulum Seçenekleri ve Parametreleri (Flags)
|
|
112
|
+
* **İnteraktif Kurulum:** `npx atabey init` komutuyla iletişim dilinizi ve backend teknolojinizi seçebilirsiniz.
|
|
110
113
|
* `--unified`: Tüm konfigürasyonu ve ajan tanımlarını tek bir `.atabey/` (veya `.agents/`) klasöründe toplar. Çalışma alanını temiz tutmak için kurumsal standarttır.
|
|
111
|
-
* `--yes` veya `-y`: Etkileşimli soruları atlayarak varsayılan değerlerle (Modern Mavi tema) hızlı kurulum yapar.
|
|
114
|
+
* `--yes` veya `-y`: Etkileşimli soruları atlayarak varsayılan değerlerle (TR dili, Node.js backend, Modern Mavi tema) hızlı kurulum yapar.
|
|
112
115
|
* `--dry-run`: Dosya yazmadan sadece kurulum adımlarını simüle eder.
|
|
113
116
|
|
|
114
117
|
### 🔌 Desteklenen Adaptör Kurulum Komutları
|
|
@@ -130,7 +130,7 @@ export const TOOLS = [
|
|
|
130
130
|
inputSchema: {
|
|
131
131
|
type: "object",
|
|
132
132
|
properties: {
|
|
133
|
-
command: { type: "string", description: "The test command to run (default: '
|
|
133
|
+
command: { type: "string", description: "The test command to run (default: project's standard test command)" }
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../../framework-mcp/src/tools/definitions.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAqB;IACnC;QACI,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,iHAAiH;QAC9H,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;gBAClF,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;gBACvF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;aACtF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACrB;KACJ;IACD;QACI,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+DAA+D,EAAE;aACzG;SACJ;KACJ;IACD;QACI,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,iGAAiG;QAC9G,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;gBAC3E,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mDAAmD,EAAE;gBACpG,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kEAAkE,EAAE;aACtH;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACxB;KACJ;IACD;QACI,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,0DAA0D;QACvE,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;gBAClF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;aAC3E;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;SAChC;KACJ;IACD;QACI,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,4DAA4D;QACzE,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;gBACzD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBAClE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;gBACvE,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uDAAuD,EAAE;aAC3G;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;SAC3C;KACJ;IACD;QACI,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,wIAAwI;QACrJ,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,KAAK,EAAE;oBACH,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;4BACzD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;4BAClE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;4BACvE,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2CAA2C,EAAE;yBAC/F;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;qBAC3C;iBACJ;aACJ;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACtB;KACJ;IACD;QACI,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,2EAA2E;QACxF,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;gBACzD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;gBAC9E,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;gBAC1E,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;aACzE;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC;SAC3D;KACJ;IACD;QACI,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,8HAA8H;QAC3I,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8CAA8C,EAAE;gBACzF,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qDAAqD,EAAE;aACxG;SACJ;KACJ;IACD;QACI,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,4IAA4I;QACzJ,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+CAA+C,EAAE;aACzF;SACJ;KACJ;IACD;QACI,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,0GAA0G;QACvH,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;KAClD;IACD;QACI,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,6GAA6G;QAC1H,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../../framework-mcp/src/tools/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { execSync } from "child_process";
|
|
2
|
+
import { getBackendLanguage, getDefaultTestCommand } from "../../utils/cli.js";
|
|
2
3
|
/**
|
|
3
4
|
* Executes project tests and returns results for agent analysis.
|
|
4
5
|
*/
|
|
5
6
|
export function handleRunTests(projectRoot, args) {
|
|
6
|
-
const
|
|
7
|
+
const language = getBackendLanguage(projectRoot);
|
|
8
|
+
const testCommand = args.command || getDefaultTestCommand(language);
|
|
7
9
|
try {
|
|
8
10
|
const output = execSync(testCommand, { cwd: projectRoot, encoding: "utf8", stdio: "pipe" });
|
|
9
11
|
return {
|
|
10
|
-
content: [{ type: "text", text: `✅ Tests passed successfully!\n\n${output}` }]
|
|
12
|
+
content: [{ type: "text", text: `✅ Tests passed successfully for ${language}!\n\n${output}` }]
|
|
11
13
|
};
|
|
12
14
|
}
|
|
13
15
|
catch (error) {
|
|
@@ -18,7 +20,7 @@ export function handleRunTests(projectRoot, args) {
|
|
|
18
20
|
isError: true,
|
|
19
21
|
content: [{
|
|
20
22
|
type: "text",
|
|
21
|
-
text: `❌ Tests FAILED!\n\n--- STDOUT ---\n${stdout}\n\n--- STDERR ---\n${stderr}`
|
|
23
|
+
text: `❌ Tests FAILED for ${language}!\n\n--- STDOUT ---\n${stdout}\n\n--- STDERR ---\n${stderr}`
|
|
22
24
|
}]
|
|
23
25
|
};
|
|
24
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run_tests.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/framework/run_tests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"run_tests.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/framework/run_tests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE/E;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,IAAkB;IAClE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAEpE,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5F,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,QAAQ,QAAQ,MAAM,EAAE,EAAE,CAAC;SACjG,CAAC;IACN,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,KAA6C,CAAC;QAC1D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAE5C,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,sBAAsB,QAAQ,wBAAwB,MAAM,uBAAuB,MAAM,EAAE;iBACpG,CAAC;SACL,CAAC;IACN,CAAC;AACL,CAAC"}
|
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
import { exec } from "child_process";
|
|
2
2
|
import { Metrics } from "../../utils/metrics.js";
|
|
3
|
-
|
|
3
|
+
import { getBackendLanguage, getDefaultLintCommand } from "../../utils/cli.js";
|
|
4
4
|
const TIMEOUT = 60000; // 60 seconds
|
|
5
5
|
/**
|
|
6
6
|
* Handles running the project's linter.
|
|
7
7
|
*/
|
|
8
8
|
export function handleCheckLint(projectRoot, _args) {
|
|
9
|
+
const language = getBackendLanguage(projectRoot);
|
|
10
|
+
const lintCommand = getDefaultLintCommand(language);
|
|
9
11
|
return new Promise((resolve) => {
|
|
10
|
-
exec(
|
|
12
|
+
exec(lintCommand, { cwd: projectRoot, timeout: TIMEOUT }, (error, stdout, stderr) => {
|
|
11
13
|
const output = stdout + stderr;
|
|
12
14
|
const tokens = Metrics.estimateTokens(output);
|
|
13
15
|
if (error) {
|
|
14
|
-
const err = `Linting failed: ${error.message}`;
|
|
16
|
+
const err = `Linting failed for ${language} with command: ${lintCommand}. ${error.message}`;
|
|
15
17
|
Metrics.logError(projectRoot, "@mcp", "check_lint", err);
|
|
16
18
|
resolve({
|
|
17
19
|
isError: true,
|
|
18
|
-
content: [{ type: "text", text: `❌ Lint Errors Found:\n\n${output}` }]
|
|
20
|
+
content: [{ type: "text", text: `❌ Lint Errors Found (${language}):\n\n${output}` }]
|
|
19
21
|
});
|
|
20
22
|
return;
|
|
21
23
|
}
|
|
22
24
|
Metrics.logUsage(projectRoot, "@mcp", "check_lint", tokens);
|
|
23
25
|
resolve({
|
|
24
|
-
content: [{ type: "text", text: `✅ Lint check passed successfully:\n\n${output}` }]
|
|
26
|
+
content: [{ type: "text", text: `✅ Lint check passed successfully for ${language}:\n\n${output}` }]
|
|
25
27
|
});
|
|
26
28
|
});
|
|
27
29
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check_lint.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/quality/check_lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"check_lint.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/quality/check_lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE/E,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,aAAa;AAEpC;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,KAAe;IAChE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAEpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAChF,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAE9C,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,GAAG,GAAG,sBAAsB,QAAQ,kBAAkB,WAAW,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC5F,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;gBACzD,OAAO,CAAC;oBACJ,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,QAAQ,SAAS,MAAM,EAAE,EAAE,CAAC;iBACvF,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YAED,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;YAC5D,OAAO,CAAC;gBACJ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wCAAwC,QAAQ,QAAQ,MAAM,EAAE,EAAE,CAAC;aACtG,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -3,10 +3,20 @@ import { Metrics } from "../../utils/metrics.js";
|
|
|
3
3
|
const COMMAND_ALLOW_LIST = [
|
|
4
4
|
"npm test",
|
|
5
5
|
"npm run lint",
|
|
6
|
+
"npm run build",
|
|
6
7
|
"git status",
|
|
7
8
|
"git diff",
|
|
8
|
-
"npx vitest run",
|
|
9
|
-
"
|
|
9
|
+
"npx vitest run",
|
|
10
|
+
"go test",
|
|
11
|
+
"go fmt",
|
|
12
|
+
"go build",
|
|
13
|
+
"pytest",
|
|
14
|
+
"ruff check",
|
|
15
|
+
"dotnet test",
|
|
16
|
+
"dotnet format",
|
|
17
|
+
"dotnet build",
|
|
18
|
+
"./gradlew",
|
|
19
|
+
"mvn",
|
|
10
20
|
];
|
|
11
21
|
const TIMEOUT = 30000; // 30 seconds
|
|
12
22
|
export function handleRunCommand(projectRoot, args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run_command.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/shell/run_command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,kBAAkB,GAAG;IACvB,UAAU;IACV,cAAc;IACd,YAAY;IACZ,UAAU;IACV,gBAAgB,
|
|
1
|
+
{"version":3,"file":"run_command.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/shell/run_command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,kBAAkB,GAAG;IACvB,UAAU;IACV,cAAc;IACd,eAAe;IACf,YAAY;IACZ,UAAU;IACV,gBAAgB;IAChB,SAAS;IACT,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,eAAe;IACf,cAAc;IACd,WAAW;IACX,KAAK;CACR,CAAC;AAEF,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,aAAa;AAEpC,MAAM,UAAU,gBAAgB,CAAC,WAAmB,EAAE,IAAoB;IACtE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAE7B,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAExF,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,yBAAyB,OAAO,6DAA6D,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9I,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,sBAAsB,OAAO,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC1F,OAAO,OAAO,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,QAAQ,EAAE,EAAE,CAAC;YACvD,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC;IACP,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5E,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,sBAAsB,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;YAE/E,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,QAAQ,GAAG,iCAAiC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,GAAG,CAAC;gBAClF,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,sBAAsB,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;gBACjF,OAAO,CAAC;oBACJ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,QAAQ,aAAa,MAAM,EAAE,EAAE,CAAC;oBAC1E,OAAO,EAAE,IAAI;iBAChB,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YAED,wBAAwB;YACxB,MAAM,iBAAiB,GAAG,IAAI,CAAC;YAC/B,IAAI,eAAe,GAAG,MAAM,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;gBACpC,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,iBAAiB,CAAC,GAAG,qBAAqB,CAAC,CAAC,aAAa;YACnG,CAAC;YAED,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Executes a
|
|
3
|
-
* Captures stderr gracefully to prevent stream crashes.
|
|
2
|
+
* Executes a command safely and returns the output.
|
|
4
3
|
*/
|
|
5
|
-
export declare function safeExec(
|
|
4
|
+
export declare function safeExec(cmd: string, args: string[], cwd: string, timeout?: number): string;
|
|
5
|
+
/**
|
|
6
|
+
* Detects the backend language from the framework configuration.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getBackendLanguage(projectRoot: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Returns the default lint command for the given language.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getDefaultLintCommand(language: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Returns the default test command for the given language.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getDefaultTestCommand(language: string): string;
|
|
@@ -1,21 +1,59 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
1
3
|
import { execFileSync } from "child_process";
|
|
2
4
|
/**
|
|
3
|
-
* Executes a
|
|
4
|
-
* Captures stderr gracefully to prevent stream crashes.
|
|
5
|
+
* Executes a command safely and returns the output.
|
|
5
6
|
*/
|
|
6
|
-
export function safeExec(
|
|
7
|
+
export function safeExec(cmd, args, cwd, timeout = 30000) {
|
|
7
8
|
try {
|
|
8
|
-
return execFileSync(
|
|
9
|
-
cwd,
|
|
10
|
-
encoding: "utf8",
|
|
11
|
-
timeout: timeout || 30000,
|
|
12
|
-
maxBuffer: 1024 * 1024,
|
|
13
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
14
|
-
});
|
|
9
|
+
return execFileSync(cmd, args, { cwd, timeout, encoding: "utf8", stdio: "pipe" });
|
|
15
10
|
}
|
|
16
|
-
catch (
|
|
17
|
-
|
|
18
|
-
throw new Error(err.stderr || err.message || "Command execution failed", { cause: error });
|
|
11
|
+
catch (err) {
|
|
12
|
+
return err.stdout?.toString() || err.stderr?.toString() || err.message;
|
|
19
13
|
}
|
|
20
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Detects the backend language from the framework configuration.
|
|
17
|
+
*/
|
|
18
|
+
export function getBackendLanguage(projectRoot) {
|
|
19
|
+
try {
|
|
20
|
+
const configPath = path.join(projectRoot, ".atabey", "config.json");
|
|
21
|
+
if (fs.existsSync(configPath)) {
|
|
22
|
+
const config = JSON.parse(fs.readFileSync(configPath, "utf8"));
|
|
23
|
+
return config.backendLanguage || "Node.js (TypeScript)";
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// Fallback to default
|
|
28
|
+
}
|
|
29
|
+
return "Node.js (TypeScript)";
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Returns the default lint command for the given language.
|
|
33
|
+
*/
|
|
34
|
+
export function getDefaultLintCommand(language) {
|
|
35
|
+
if (language.includes("Go"))
|
|
36
|
+
return "go fmt ./...";
|
|
37
|
+
if (language.includes("Java"))
|
|
38
|
+
return "./gradlew check"; // or mvn check
|
|
39
|
+
if (language.includes("Python"))
|
|
40
|
+
return "ruff check .";
|
|
41
|
+
if (language.includes(".NET"))
|
|
42
|
+
return "dotnet format";
|
|
43
|
+
return "npm run lint";
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Returns the default test command for the given language.
|
|
47
|
+
*/
|
|
48
|
+
export function getDefaultTestCommand(language) {
|
|
49
|
+
if (language.includes("Go"))
|
|
50
|
+
return "go test ./...";
|
|
51
|
+
if (language.includes("Java"))
|
|
52
|
+
return "./gradlew test"; // or mvn test
|
|
53
|
+
if (language.includes("Python"))
|
|
54
|
+
return "pytest";
|
|
55
|
+
if (language.includes(".NET"))
|
|
56
|
+
return "dotnet test";
|
|
57
|
+
return "npm test";
|
|
58
|
+
}
|
|
21
59
|
//# sourceMappingURL=cli.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../framework-mcp/src/utils/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../framework-mcp/src/utils/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,IAAc,EAAE,GAAW,EAAE,OAAO,GAAG,KAAK;IAC9E,IAAI,CAAC;QACD,OAAO,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACtF,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC;IAC3E,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IAClD,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACpE,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/D,OAAO,MAAM,CAAC,eAAe,IAAI,sBAAsB,CAAC;QAC5D,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,sBAAsB;IAC1B,CAAC;IACD,OAAO,sBAAsB,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IAClD,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,cAAc,CAAC;IACnD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,iBAAiB,CAAC,CAAC,eAAe;IACxE,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,cAAc,CAAC;IACvD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,eAAe,CAAC;IACtD,OAAO,cAAc,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IAClD,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,eAAe,CAAC;IACpD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,gBAAgB,CAAC,CAAC,cAAc;IACtE,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IACjD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,aAAa,CAAC;IACpD,OAAO,UAAU,CAAC;AACtB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { AdapterId } from "../../modules/adapters/types.js";
|
|
2
|
-
export declare function scaffoldAgents(projectRoot: string, adapterId: AdapterId, dryRun: boolean, agentsToScaffold?: string[], explicitDestDir?: string, explicitExt?: string, paths?: Record<string, string
|
|
2
|
+
export declare function scaffoldAgents(projectRoot: string, adapterId: AdapterId, dryRun: boolean, agentsToScaffold?: string[], explicitDestDir?: string, explicitExt?: string, paths?: Record<string, string>, backendLanguage?: string, language?: string): void;
|
|
@@ -4,7 +4,7 @@ import fs from "fs";
|
|
|
4
4
|
import { getPackageRoot } from "../utils/pkg.js";
|
|
5
5
|
import { ALL_AGENTS, toClaudeCodeMd, toGeminiCliMd, toCodexMd, toAntigravityJson, toCursorMdc } from "../../modules/agents/definitions.js";
|
|
6
6
|
import { ADAPTERS } from "./core.js";
|
|
7
|
-
export function scaffoldAgents(projectRoot, adapterId, dryRun, agentsToScaffold, explicitDestDir, explicitExt, paths) {
|
|
7
|
+
export function scaffoldAgents(projectRoot, adapterId, dryRun, agentsToScaffold, explicitDestDir, explicitExt, paths, backendLanguage, language) {
|
|
8
8
|
const adapter = ADAPTERS[adapterId];
|
|
9
9
|
if (!adapter)
|
|
10
10
|
return;
|
|
@@ -26,27 +26,27 @@ export function scaffoldAgents(projectRoot, adapterId, dryRun, agentsToScaffold,
|
|
|
26
26
|
let secondaryFileName = null;
|
|
27
27
|
switch (adapterId) {
|
|
28
28
|
case "gemini":
|
|
29
|
-
content = toGeminiCliMd(agent, baseKnowledgeDir, paths);
|
|
29
|
+
content = toGeminiCliMd(agent, baseKnowledgeDir, paths, backendLanguage);
|
|
30
30
|
break;
|
|
31
31
|
case "grok":
|
|
32
32
|
// Grok uses same Gemini-compatible YAML format
|
|
33
|
-
content = toGeminiCliMd(agent, baseKnowledgeDir, paths);
|
|
33
|
+
content = toGeminiCliMd(agent, baseKnowledgeDir, paths, backendLanguage);
|
|
34
34
|
break;
|
|
35
35
|
case "claude":
|
|
36
|
-
content = toClaudeCodeMd(agent, baseKnowledgeDir, paths);
|
|
36
|
+
content = toClaudeCodeMd(agent, baseKnowledgeDir, paths, backendLanguage);
|
|
37
37
|
break;
|
|
38
38
|
case "cursor":
|
|
39
|
-
content = toCursorMdc(agent, baseKnowledgeDir, paths);
|
|
39
|
+
content = toCursorMdc(agent, baseKnowledgeDir, paths, backendLanguage);
|
|
40
40
|
break;
|
|
41
41
|
case "codex":
|
|
42
|
-
content = toCodexMd(agent, baseKnowledgeDir, paths);
|
|
42
|
+
content = toCodexMd(agent, baseKnowledgeDir, paths, backendLanguage);
|
|
43
43
|
break;
|
|
44
44
|
case "antigravity-cli": {
|
|
45
45
|
// Antigravity uses nested folders: agents/{name}/agent.json and agents/{name}/agent.md
|
|
46
46
|
const agentDir = path.join(destAgentsDir, agent.name);
|
|
47
47
|
if (!dryRun)
|
|
48
48
|
fs.mkdirSync(agentDir, { recursive: true });
|
|
49
|
-
content = toAntigravityJson(agent, baseKnowledgeDir, paths);
|
|
49
|
+
content = toAntigravityJson(agent, baseKnowledgeDir, paths, backendLanguage);
|
|
50
50
|
fileName = path.join(agent.name, "agent.json");
|
|
51
51
|
secondaryContent = `# 🎖️ Agent Atabey — @${agent.name}\n\n${agent.instructions.identity}\n\n${agent.instructions.mission}`;
|
|
52
52
|
secondaryFileName = path.join(agent.name, "agent.md");
|
|
@@ -54,7 +54,7 @@ export function scaffoldAgents(projectRoot, adapterId, dryRun, agentsToScaffold,
|
|
|
54
54
|
}
|
|
55
55
|
default:
|
|
56
56
|
// Fallback to Gemini format
|
|
57
|
-
content = toGeminiCliMd(agent, baseKnowledgeDir, paths);
|
|
57
|
+
content = toGeminiCliMd(agent, baseKnowledgeDir, paths, backendLanguage);
|
|
58
58
|
break;
|
|
59
59
|
}
|
|
60
60
|
if (!dryRun) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../../src/cli/adapters/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACH,UAAU,EACV,cAAc,EACd,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,WAAW,EACd,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,UAAU,cAAc,CAC1B,WAAmB,EACnB,SAAoB,EACpB,MAAe,EACf,gBAA2B,EAC3B,eAAwB,EACxB,WAAoB,EACpB,KAA8B;
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../../src/cli/adapters/scaffold.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { type AdapterConfig, type AdapterId } from "../../adapters/index.js";
|
|
2
|
-
|
|
2
|
+
import { type SupportedLanguage } from "../../utils/i18n.js";
|
|
3
|
+
export declare function scaffoldConstitution(targetDir: string, frameworkDir: string, adapterId: AdapterId, dryRun: boolean, language?: SupportedLanguage): void;
|
|
3
4
|
export declare function scaffoldFrameworkConfigs(targetDir: string, fDir: string, adapter: AdapterConfig, dryRun: boolean, selectedPalette: string, options?: {
|
|
4
5
|
unified?: boolean;
|
|
5
6
|
adapters?: string[];
|
|
7
|
+
backendLanguage?: string;
|
|
8
|
+
language?: SupportedLanguage;
|
|
6
9
|
}): void;
|
|
7
10
|
export declare function scaffoldShims(projectRoot: string, coreDir: string, adapterId: AdapterId, adapter: AdapterConfig, dryRun: boolean, unified?: boolean): void;
|
|
@@ -5,16 +5,18 @@ import { SHIM_TEMPLATES } from "../../shims.js";
|
|
|
5
5
|
import { writeJsonFile, writeTextFile } from "../../utils/fs.js";
|
|
6
6
|
import { getPackageRoot, getPackageVersion } from "../../utils/pkg.js";
|
|
7
7
|
import { ALL_AGENTS } from "../../../modules/agents/definitions.js";
|
|
8
|
+
import { TRANSLATIONS } from "../../utils/i18n.js";
|
|
8
9
|
const FRAMEWORK_NAME = "Agent Atabey";
|
|
9
10
|
const COLOR_PALETTES = {
|
|
10
11
|
"Modern Blue": { primary: "#0ea5e9", secondary: "#64748b", accent: "#f43f5e" },
|
|
11
12
|
"Enterprise Slate": { primary: "#334155", secondary: "#94a3b8", accent: "#10b981" },
|
|
12
13
|
"Deep Purple": { primary: "#8b5cf6", secondary: "#d8b4fe", accent: "#f59e0b" }
|
|
13
14
|
};
|
|
14
|
-
export function scaffoldConstitution(targetDir, frameworkDir, adapterId, dryRun) {
|
|
15
|
+
export function scaffoldConstitution(targetDir, frameworkDir, adapterId, dryRun, language = "tr") {
|
|
15
16
|
if (dryRun)
|
|
16
17
|
return;
|
|
17
|
-
|
|
18
|
+
const t = TRANSLATIONS[language];
|
|
19
|
+
let content = `# 🎖️ ${t.constitution_title}\n\nDiscipline and Order.`;
|
|
18
20
|
let readSuccess = false;
|
|
19
21
|
try {
|
|
20
22
|
const templatePath = path.join(getPackageRoot(), "ATABEY.md");
|
|
@@ -36,11 +38,15 @@ export function scaffoldFrameworkConfigs(targetDir, fDir, adapter, dryRun, selec
|
|
|
36
38
|
return;
|
|
37
39
|
const frameworkDir = path.join(targetDir, fDir);
|
|
38
40
|
const palette = COLOR_PALETTES[selectedPalette] || COLOR_PALETTES["Modern Blue"];
|
|
41
|
+
const language = options?.language || "tr";
|
|
42
|
+
const t = TRANSLATIONS[language];
|
|
39
43
|
const config = {
|
|
40
44
|
name: FRAMEWORK_NAME,
|
|
41
45
|
version: getPackageVersion(),
|
|
42
46
|
unified: options?.unified || false,
|
|
43
47
|
adapters: options?.adapters || [adapter.id],
|
|
48
|
+
backendLanguage: options?.backendLanguage || "Node.js (TypeScript)",
|
|
49
|
+
language: language,
|
|
44
50
|
theme: {
|
|
45
51
|
palette: selectedPalette,
|
|
46
52
|
colors: palette
|
|
@@ -56,16 +62,17 @@ export function scaffoldFrameworkConfigs(targetDir, fDir, adapter, dryRun, selec
|
|
|
56
62
|
writeJsonFile(sharedFactsPath, {
|
|
57
63
|
project: FRAMEWORK_NAME,
|
|
58
64
|
initializedAt: new Date().toISOString(),
|
|
59
|
-
stack: [],
|
|
65
|
+
stack: [options?.backendLanguage || "Node.js (TypeScript)"],
|
|
66
|
+
language: language,
|
|
60
67
|
policies: []
|
|
61
68
|
}, dryRun);
|
|
62
69
|
}
|
|
63
|
-
let statusContent =
|
|
70
|
+
let statusContent = `# 🎖️ ${t.status_title}\n\n| Agent | State | Active Task | Last Updated | Notes | Extra | Backup |\n|---|---|---|---|---|---|---|\n`;
|
|
64
71
|
const activeAgents = ALL_AGENTS;
|
|
65
72
|
const initialStatusJson = {};
|
|
66
73
|
const now = new Date().toISOString();
|
|
67
74
|
for (const ag of activeAgents) {
|
|
68
|
-
statusContent += "| @" + ag.name + " |
|
|
75
|
+
statusContent += "| @" + ag.name + " | " + t.agent_ready + " | Idle | - | - | - | - |\n";
|
|
69
76
|
initialStatusJson[ag.name] = { state: "READY", task: "Idle", lastUpdated: now };
|
|
70
77
|
}
|
|
71
78
|
writeTextFile(path.join(frameworkDir, "STATUS.md"), statusContent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold-core.js","sourceRoot":"","sources":["../../../../../src/cli/commands/init/scaffold-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACH,qBAAqB,EAGrB,QAAQ,EACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEpE,MAAM,cAAc,GAAG,cAAc,CAAC;AAEtC,MAAM,cAAc,GAAG;IACnB,aAAa,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC9E,kBAAkB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IACnF,aAAa,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;CACjF,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,SAAiB,EAAE,YAAoB,EAAE,SAAoB,EAAE,MAAe;
|
|
1
|
+
{"version":3,"file":"scaffold-core.js","sourceRoot":"","sources":["../../../../../src/cli/commands/init/scaffold-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACH,qBAAqB,EAGrB,QAAQ,EACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAA0B,MAAM,qBAAqB,CAAC;AAE3E,MAAM,cAAc,GAAG,cAAc,CAAC;AAEtC,MAAM,cAAc,GAAG;IACnB,aAAa,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC9E,kBAAkB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IACnF,aAAa,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;CACjF,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,SAAiB,EAAE,YAAoB,EAAE,SAAoB,EAAE,MAAe,EAAE,WAA8B,IAAI;IACnJ,IAAI,MAAM;QAAE,OAAO;IACnB,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,OAAO,GAAG,SAAS,CAAC,CAAC,kBAAkB,2BAA2B,CAAC;IACvE,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,WAAW,CAAC,CAAC;QAC9D,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YAChD,WAAW,GAAG,IAAI,CAAC;QACvB,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IACjE,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEjC,OAAO,CAAC,IAAI,CAAC,uCAAuC,YAAY,aAAa,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC7H,CAAC;AAED,MAAM,UAAU,wBAAwB,CACpC,SAAiB,EACjB,IAAY,EACZ,OAAsB,EACtB,MAAe,EACf,eAAuB,EACvB,OAA4G;IAE5G,IAAI,MAAM;QAAE,OAAO;IACnB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,cAAc,CAAC,eAA8C,CAAC,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;IAChH,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC;IAC3C,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEjC,MAAM,MAAM,GAAG;QACX,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,iBAAiB,EAAE;QAC5B,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK;QAClC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,eAAe,EAAE,OAAO,EAAE,eAAe,IAAI,sBAAsB;QACnE,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE;YACH,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,OAAO;SAClB;KACJ,CAAC;IACF,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtE,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IACjE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAClC,aAAa,CAAC,eAAe,EAAE;YAC3B,OAAO,EAAE,cAAc;YACvB,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACvC,KAAK,EAAE,CAAC,OAAO,EAAE,eAAe,IAAI,sBAAsB,CAAC;YAC3D,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,EAAE;SACf,EAAE,MAAM,CAAC,CAAC;IACf,CAAC;IAED,IAAI,aAAa,GAAG,SAAS,CAAC,CAAC,YAAY,8GAA8G,CAAC;IAE1J,MAAM,YAAY,GAAG,UAAU,CAAC;IAEhC,MAAM,iBAAiB,GAAyE,EAAE,CAAC;IACnG,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;QAC5B,aAAa,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,WAAW,GAAG,6BAA6B,CAAC;QACzF,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;IACpF,CAAC;IACD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,CAAC;IAEnE,+BAA+B;IAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACxE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5H,aAAa,CAAC,cAAc,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,aAAa,CACzB,WAAmB,EACnB,OAAe,EACf,SAAoB,EACpB,OAAsB,EACtB,MAAe,EACf,UAAmB,KAAK;IAExB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC3D,8EAA8E;QAC9E,MAAM,iBAAiB,GAAG,IAAI,KAAK,SAAS;YACxC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAEjE,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YACvE,8DAA8D;YAC9D,2DAA2D;YAC3D,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAiB,CAAC,IAAI,OAAO,CAAC;YAC3D,MAAM,YAAY,GAAG,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC;gBAChD,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAG,0BAA0B;gBACnF,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAO,0BAA0B;YAExF,IAAI,CAAC,MAAM;gBAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC;YAC9E,IAAI,iBAAiB,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;YAC7D,CAAC;iBAAM,IAAI,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;YACnE,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { writeTextFile } from "../../utils/fs.js";
|
|
4
|
+
import { getPackageRoot } from "../../utils/pkg.js";
|
|
5
|
+
import { logger } from "../../../shared/logger.js";
|
|
6
|
+
export function scaffoldProjectDocs(projectRoot, options, dryRun) {
|
|
7
|
+
if (dryRun)
|
|
8
|
+
return;
|
|
9
|
+
const docsDir = path.join(projectRoot, "docs");
|
|
10
|
+
if (!fs.existsSync(docsDir))
|
|
11
|
+
fs.mkdirSync(docsDir, { recursive: true });
|
|
12
|
+
// Scaffold tech-stack.md with dynamic content
|
|
13
|
+
const techStackPath = path.join(docsDir, "tech-stack.md");
|
|
14
|
+
let techStackContent = "";
|
|
15
|
+
try {
|
|
16
|
+
const templatePath = path.join(getPackageRoot(), "docs/tech-stack.md");
|
|
17
|
+
if (fs.existsSync(templatePath)) {
|
|
18
|
+
techStackContent = fs.readFileSync(templatePath, "utf8");
|
|
19
|
+
// Replace the backend language in the template
|
|
20
|
+
// Assuming the template has a row like: | **Backend Altyapısı** | Node.js v20+ & TypeScript v5+ | ... |
|
|
21
|
+
// We'll use a more generic replacement or just append/update the specific section.
|
|
22
|
+
const lang = options.backendLanguage;
|
|
23
|
+
// If it's a new project, we can just rewrite the table or use a placeholder in the template.
|
|
24
|
+
// For now, let's assume we want to update the "Backend" or "Geliştirme Ortamı" row.
|
|
25
|
+
techStackContent = techStackContent.replace(/\| \*\*Geliştirme Ortamı\*\* \| .* \|/, `| **Geliştirme Ortamı** | ${lang} |`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
logger.debug("Failed to read tech-stack.md template", e);
|
|
30
|
+
}
|
|
31
|
+
if (!techStackContent) {
|
|
32
|
+
techStackContent = `# 🛠️ Project Tech Stack\n\n- **Backend Language:** ${options.backendLanguage}\n`;
|
|
33
|
+
}
|
|
34
|
+
writeTextFile(techStackPath, techStackContent);
|
|
35
|
+
console.warn(`✅ Project documentation updated: docs/tech-stack.md (Language: ${options.backendLanguage})`);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=scaffold-docs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold-docs.js","sourceRoot":"","sources":["../../../../../src/cli/commands/init/scaffold-docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,MAAM,UAAU,mBAAmB,CAAC,WAAmB,EAAE,OAAoC,EAAE,MAAe;IAC1G,IAAI,MAAM;QAAE,OAAO;IAEnB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAExE,8CAA8C;IAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC1D,IAAI,gBAAgB,GAAG,EAAE,CAAC;IAE1B,IAAI,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,oBAAoB,CAAC,CAAC;QACvE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,gBAAgB,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YAEzD,+CAA+C;YAC/C,wGAAwG;YACxG,mFAAmF;YACnF,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;YAErC,6FAA6F;YAC7F,oFAAoF;YACpF,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CACvC,uCAAuC,EACvC,6BAA6B,IAAI,IAAI,CACxC,CAAC;QACN,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,gBAAgB,GAAG,uDAAuD,OAAO,CAAC,eAAe,IAAI,CAAC;IAC1G,CAAC;IAED,aAAa,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,kEAAkE,OAAO,CAAC,eAAe,GAAG,CAAC,CAAC;AAC/G,CAAC"}
|