agent-enderun 1.10.2 → 1.11.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.
- package/README.md +34 -44
- package/dist/framework-mcp/src/constants.d.ts +47 -0
- package/dist/framework-mcp/src/constants.js +65 -0
- package/dist/framework-mcp/src/constants.js.map +1 -0
- package/dist/framework-mcp/src/index.js +26 -5
- package/dist/framework-mcp/src/index.js.map +1 -1
- package/dist/framework-mcp/src/tools/control_plane/locking.d.ts +3 -9
- package/dist/framework-mcp/src/tools/control_plane/locking.js.map +1 -1
- package/dist/framework-mcp/src/tools/control_plane/registry.d.ts +2 -8
- package/dist/framework-mcp/src/tools/control_plane/registry.js.map +1 -1
- package/dist/framework-mcp/src/tools/dashboard/start_dashboard.d.ts +2 -2
- package/dist/framework-mcp/src/tools/dashboard/start_dashboard.js.map +1 -1
- package/dist/framework-mcp/src/tools/definitions.js +30 -0
- package/dist/framework-mcp/src/tools/definitions.js.map +1 -1
- package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.d.ts +2 -2
- package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js +12 -4
- package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js.map +1 -1
- package/dist/framework-mcp/src/tools/file_system/patch_file.d.ts +2 -2
- package/dist/framework-mcp/src/tools/file_system/patch_file.js +6 -2
- package/dist/framework-mcp/src/tools/file_system/patch_file.js.map +1 -1
- package/dist/framework-mcp/src/tools/file_system/read_file.d.ts +2 -2
- package/dist/framework-mcp/src/tools/file_system/read_file.js +43 -26
- package/dist/framework-mcp/src/tools/file_system/read_file.js.map +1 -1
- package/dist/framework-mcp/src/tools/file_system/replace_text.d.ts +2 -2
- package/dist/framework-mcp/src/tools/file_system/replace_text.js +7 -3
- package/dist/framework-mcp/src/tools/file_system/replace_text.js.map +1 -1
- package/dist/framework-mcp/src/tools/file_system/write_file.d.ts +2 -2
- package/dist/framework-mcp/src/tools/file_system/write_file.js +27 -15
- package/dist/framework-mcp/src/tools/file_system/write_file.js.map +1 -1
- package/dist/framework-mcp/src/tools/framework/get_status.d.ts +2 -2
- package/dist/framework-mcp/src/tools/framework/get_status.js.map +1 -1
- package/dist/framework-mcp/src/tools/framework/orchestrate.d.ts +2 -2
- package/dist/framework-mcp/src/tools/framework/orchestrate.js.map +1 -1
- package/dist/framework-mcp/src/tools/framework/run_tests.d.ts +2 -2
- package/dist/framework-mcp/src/tools/framework/run_tests.js.map +1 -1
- package/dist/framework-mcp/src/tools/framework/update_contract_hash.d.ts +2 -2
- package/dist/framework-mcp/src/tools/framework/update_contract_hash.js.map +1 -1
- package/dist/framework-mcp/src/tools/framework/update_memory.d.ts +2 -2
- package/dist/framework-mcp/src/tools/framework/update_memory.js +1 -1
- package/dist/framework-mcp/src/tools/framework/update_memory.js.map +1 -1
- package/dist/framework-mcp/src/tools/index.d.ts +1 -2
- package/dist/framework-mcp/src/tools/index.js +33 -25
- package/dist/framework-mcp/src/tools/index.js.map +1 -1
- package/dist/framework-mcp/src/tools/messaging/log_action.d.ts +2 -2
- package/dist/framework-mcp/src/tools/messaging/log_action.js.map +1 -1
- package/dist/framework-mcp/src/tools/messaging/send_message.d.ts +2 -2
- package/dist/framework-mcp/src/tools/messaging/send_message.js +14 -1
- package/dist/framework-mcp/src/tools/messaging/send_message.js.map +1 -1
- package/dist/framework-mcp/src/tools/observability/check_ports.d.ts +2 -2
- package/dist/framework-mcp/src/tools/observability/check_ports.js.map +1 -1
- package/dist/framework-mcp/src/tools/quality/check_lint.d.ts +5 -0
- package/dist/framework-mcp/src/tools/quality/check_lint.js +29 -0
- package/dist/framework-mcp/src/tools/quality/check_lint.js.map +1 -0
- package/dist/framework-mcp/src/tools/search/get_gaps.d.ts +2 -2
- package/dist/framework-mcp/src/tools/search/get_gaps.js.map +1 -1
- package/dist/framework-mcp/src/tools/search/get_map.d.ts +2 -2
- package/dist/framework-mcp/src/tools/search/get_map.js +1 -1
- package/dist/framework-mcp/src/tools/search/get_map.js.map +1 -1
- package/dist/framework-mcp/src/tools/search/grep_search.d.ts +2 -2
- package/dist/framework-mcp/src/tools/search/grep_search.js +45 -28
- package/dist/framework-mcp/src/tools/search/grep_search.js.map +1 -1
- package/dist/framework-mcp/src/tools/search/list_dir.d.ts +2 -2
- package/dist/framework-mcp/src/tools/search/list_dir.js.map +1 -1
- package/dist/framework-mcp/src/tools/shell/run_command.d.ts +2 -0
- package/dist/framework-mcp/src/tools/shell/run_command.js +47 -0
- package/dist/framework-mcp/src/tools/shell/run_command.js.map +1 -0
- package/dist/framework-mcp/src/tools/types.d.ts +95 -28
- package/dist/framework-mcp/src/utils/metrics.d.ts +20 -0
- package/dist/framework-mcp/src/utils/metrics.js +24 -6
- package/dist/framework-mcp/src/utils/metrics.js.map +1 -1
- package/dist/framework-mcp/src/utils/security.d.ts +1 -3
- package/dist/framework-mcp/src/utils/security.js +21 -18
- package/dist/framework-mcp/src/utils/security.js.map +1 -1
- package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js +19 -14
- package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js.map +1 -1
- package/dist/framework-mcp/tests/tools/messaging/send_message.test.js +1 -1
- package/dist/framework-mcp/tests/tools/messaging/send_message.test.js.map +1 -1
- package/dist/framework-mcp/tests/tools/quality/check_lint.test.d.ts +1 -0
- package/dist/framework-mcp/tests/tools/quality/check_lint.test.js +36 -0
- package/dist/framework-mcp/tests/tools/quality/check_lint.test.js.map +1 -0
- package/dist/framework-mcp/tests/tools/shell/run_command.test.d.ts +1 -0
- package/dist/framework-mcp/tests/tools/shell/run_command.test.js +43 -0
- package/dist/framework-mcp/tests/tools/shell/run_command.test.js.map +1 -0
- package/dist/src/cli/adapters/core.d.ts +1 -1
- package/dist/src/cli/adapters/core.js +4 -0
- package/dist/src/cli/adapters/core.js.map +1 -1
- package/dist/src/cli/adapters/index.d.ts +1 -0
- package/dist/src/cli/adapters/index.js +1 -0
- package/dist/src/cli/adapters/index.js.map +1 -1
- package/dist/src/cli/adapters/paths.d.ts +15 -0
- package/dist/src/cli/adapters/paths.js +101 -0
- package/dist/src/cli/adapters/paths.js.map +1 -0
- package/dist/src/cli/adapters/scaffold.d.ts +1 -1
- package/dist/src/cli/adapters/scaffold.js +10 -7
- package/dist/src/cli/adapters/scaffold.js.map +1 -1
- package/dist/src/cli/commands/check.js +15 -36
- package/dist/src/cli/commands/check.js.map +1 -1
- package/dist/src/cli/commands/dashboard/data-service.d.ts +8 -0
- package/dist/src/cli/commands/dashboard/data-service.js +37 -0
- package/dist/src/cli/commands/dashboard/data-service.js.map +1 -1
- package/dist/src/cli/commands/init/scaffold-core.d.ts +5 -2
- package/dist/src/cli/commands/init/scaffold-core.js +28 -6
- package/dist/src/cli/commands/init/scaffold-core.js.map +1 -1
- package/dist/src/cli/commands/init/scaffold-standards.js +6 -1
- package/dist/src/cli/commands/init/scaffold-standards.js.map +1 -1
- package/dist/src/cli/commands/init.js +30 -6
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/orchestrate.d.ts +11 -6
- package/dist/src/cli/commands/orchestrate.js +148 -128
- package/dist/src/cli/commands/orchestrate.js.map +1 -1
- package/dist/src/cli/commands/plan.d.ts +3 -1
- package/dist/src/cli/commands/plan.js +79 -22
- package/dist/src/cli/commands/plan.js.map +1 -1
- package/dist/src/cli/index.js +11 -15
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/utils/compliance.js +0 -1
- package/dist/src/cli/utils/compliance.js.map +1 -1
- package/dist/src/cli/utils/config-schema.d.ts +7 -7
- package/dist/src/cli/utils/fs.js +1 -1
- package/dist/src/cli/utils/fs.js.map +1 -1
- package/dist/src/cli/utils/memory.d.ts +1 -1
- package/dist/src/cli/utils/memory.js +28 -8
- package/dist/src/cli/utils/memory.js.map +1 -1
- package/dist/src/cli/utils/pkg.d.ts +19 -0
- package/dist/src/cli/utils/pkg.js +29 -5
- package/dist/src/cli/utils/pkg.js.map +1 -1
- package/dist/src/modules/adapters/definitions.js +3 -3
- package/dist/src/modules/adapters/definitions.js.map +1 -1
- package/dist/src/modules/agents/definitions.js +2 -1
- package/dist/src/modules/agents/definitions.js.map +1 -1
- package/dist/src/modules/agents/registry/analyst.js +1 -1
- package/dist/src/modules/agents/registry/analyst.js.map +1 -1
- package/dist/src/modules/agents/registry/architect.js +1 -0
- package/dist/src/modules/agents/registry/architect.js.map +1 -1
- package/dist/src/modules/agents/registry/backend.js +7 -6
- package/dist/src/modules/agents/registry/backend.js.map +1 -1
- package/dist/src/modules/agents/registry/database.js +4 -3
- package/dist/src/modules/agents/registry/database.js.map +1 -1
- package/dist/src/modules/agents/registry/devops.js +1 -1
- package/dist/src/modules/agents/registry/devops.js.map +1 -1
- package/dist/src/modules/agents/registry/git.js +1 -1
- package/dist/src/modules/agents/registry/git.js.map +1 -1
- package/dist/src/modules/agents/registry/manager.js +3 -2
- package/dist/src/modules/agents/registry/manager.js.map +1 -1
- package/dist/src/modules/agents/registry/native.js +1 -1
- package/dist/src/modules/agents/registry/native.js.map +1 -1
- package/dist/src/modules/agents/registry/quality.js +1 -0
- package/dist/src/modules/agents/registry/quality.js.map +1 -1
- package/dist/src/modules/agents/registry/security.js +1 -0
- package/dist/src/modules/agents/registry/security.js.map +1 -1
- package/dist/src/shared/constants.d.ts +113 -0
- package/dist/src/shared/constants.js +178 -0
- package/dist/src/shared/constants.js.map +1 -0
- package/dist/tests/adapters/paths.test.d.ts +1 -0
- package/dist/tests/adapters/paths.test.js +63 -0
- package/dist/tests/adapters/paths.test.js.map +1 -0
- package/dist/tests/approve.test.js +5 -9
- package/dist/tests/approve.test.js.map +1 -1
- package/dist/tests/cli/init/unified_init.test.d.ts +1 -0
- package/dist/tests/cli/init/unified_init.test.js +47 -0
- package/dist/tests/cli/init/unified_init.test.js.map +1 -0
- package/dist/tests/fs-utils.test.js +1 -1
- package/dist/tests/fs-utils.test.js.map +1 -1
- package/dist/tests/memory-utils.test.js +1 -1
- package/dist/tests/memory-utils.test.js.map +1 -1
- package/dist/tests/shared/constants.test.d.ts +1 -0
- package/dist/tests/shared/constants.test.js +17 -0
- package/dist/tests/shared/constants.test.js.map +1 -0
- package/dist/tests/trace.test.js +2 -2
- package/dist/tests/trace.test.js.map +1 -1
- package/framework-mcp/dist/constants.js +64 -0
- package/framework-mcp/dist/index.js +109 -0
- package/framework-mcp/dist/tools/control_plane/locking.js +64 -0
- package/framework-mcp/dist/tools/control_plane/registry.js +34 -0
- package/framework-mcp/dist/tools/dashboard/start_dashboard.js +29 -0
- package/framework-mcp/dist/tools/definitions.js +300 -0
- package/framework-mcp/dist/tools/file_system/batch_surgical_edit.js +59 -0
- package/framework-mcp/dist/tools/file_system/patch_file.js +25 -0
- package/framework-mcp/dist/tools/file_system/read_file.js +51 -0
- package/framework-mcp/dist/tools/file_system/replace_text.js +43 -0
- package/framework-mcp/dist/tools/file_system/write_file.js +38 -0
- package/framework-mcp/dist/tools/framework/audit_deps.js +41 -0
- package/framework-mcp/dist/tools/framework/get_status.js +5 -0
- package/framework-mcp/dist/tools/framework/orchestrate.js +5 -0
- package/framework-mcp/dist/tools/framework/run_tests.js +25 -0
- package/framework-mcp/dist/tools/framework/update_contract_hash.js +5 -0
- package/framework-mcp/dist/tools/framework/update_memory.js +8 -0
- package/framework-mcp/dist/tools/index.js +62 -0
- package/framework-mcp/dist/tools/memory/get_insights.js +34 -0
- package/framework-mcp/dist/tools/memory/read_memory.js +28 -0
- package/framework-mcp/dist/tools/messaging/log_action.js +22 -0
- package/framework-mcp/dist/tools/messaging/send_message.js +87 -0
- package/framework-mcp/dist/tools/observability/check_ports.js +26 -0
- package/framework-mcp/dist/tools/observability/get_health.js +19 -0
- package/framework-mcp/dist/tools/quality/check_lint.js +28 -0
- package/framework-mcp/dist/tools/search/get_gaps.js +48 -0
- package/framework-mcp/dist/tools/search/get_map.js +43 -0
- package/framework-mcp/dist/tools/search/grep_search.js +76 -0
- package/framework-mcp/dist/tools/search/list_dir.js +28 -0
- package/framework-mcp/dist/tools/shell/run_command.js +46 -0
- package/framework-mcp/dist/tools/types.js +1 -0
- package/framework-mcp/dist/utils/cli.js +20 -0
- package/framework-mcp/dist/utils/compliance.js +29 -0
- package/framework-mcp/dist/utils/fs.js +44 -0
- package/framework-mcp/dist/utils/metrics.js +56 -0
- package/framework-mcp/dist/utils/security.js +60 -0
- package/framework-mcp/package.json +19 -0
- package/framework-mcp/src/constants.ts +78 -0
- package/framework-mcp/src/declarations.d.ts +17 -0
- package/framework-mcp/src/index.ts +132 -0
- package/framework-mcp/src/tools/control_plane/locking.ts +71 -0
- package/framework-mcp/src/tools/control_plane/registry.ts +38 -0
- package/framework-mcp/src/tools/dashboard/start_dashboard.ts +33 -0
- package/framework-mcp/src/tools/definitions.ts +302 -0
- package/framework-mcp/src/tools/file_system/batch_surgical_edit.ts +79 -0
- package/framework-mcp/src/tools/file_system/patch_file.ts +33 -0
- package/framework-mcp/src/tools/file_system/read_file.ts +58 -0
- package/framework-mcp/src/tools/file_system/replace_text.ts +52 -0
- package/framework-mcp/src/tools/file_system/write_file.ts +45 -0
- package/framework-mcp/src/tools/framework/audit_deps.ts +49 -0
- package/framework-mcp/src/tools/framework/get_status.ts +7 -0
- package/framework-mcp/src/tools/framework/orchestrate.ts +7 -0
- package/framework-mcp/src/tools/framework/run_tests.ts +28 -0
- package/framework-mcp/src/tools/framework/update_contract_hash.ts +7 -0
- package/framework-mcp/src/tools/framework/update_memory.ts +10 -0
- package/framework-mcp/src/tools/index.ts +66 -0
- package/framework-mcp/src/tools/memory/get_insights.ts +41 -0
- package/framework-mcp/src/tools/memory/read_memory.ts +31 -0
- package/framework-mcp/src/tools/messaging/log_action.ts +28 -0
- package/framework-mcp/src/tools/messaging/send_message.ts +89 -0
- package/framework-mcp/src/tools/observability/check_ports.ts +30 -0
- package/framework-mcp/src/tools/observability/get_health.ts +24 -0
- package/framework-mcp/src/tools/quality/check_lint.ts +33 -0
- package/framework-mcp/src/tools/search/get_gaps.ts +54 -0
- package/framework-mcp/src/tools/search/get_map.ts +48 -0
- package/framework-mcp/src/tools/search/grep_search.ts +76 -0
- package/framework-mcp/src/tools/search/list_dir.ts +34 -0
- package/framework-mcp/src/tools/shell/run_command.ts +56 -0
- package/framework-mcp/src/tools/types.ts +89 -0
- package/framework-mcp/src/utils/cli.ts +20 -0
- package/framework-mcp/src/utils/compliance.ts +37 -0
- package/framework-mcp/src/utils/fs.ts +45 -0
- package/framework-mcp/src/utils/metrics.ts +73 -0
- package/framework-mcp/src/utils/security.ts +66 -0
- package/framework-mcp/tests/tools/file_system/file_system_tools.test.ts +212 -0
- package/framework-mcp/tests/tools/messaging/send_message.test.ts +136 -0
- package/framework-mcp/tests/tools/quality/check_lint.test.ts +46 -0
- package/framework-mcp/tests/tools/shell/run_command.test.ts +55 -0
- package/framework-mcp/tsconfig.json +14 -0
- package/package.json +9 -7
- package/src/cli/adapters/core.ts +7 -1
- package/src/cli/adapters/index.ts +1 -0
- package/src/cli/adapters/paths.ts +134 -0
- package/src/cli/adapters/scaffold.ts +17 -7
- package/src/cli/commands/check.ts +16 -38
- package/src/cli/commands/dashboard/data-service.ts +48 -0
- package/src/cli/commands/init/scaffold-core.ts +45 -6
- package/src/cli/commands/init/scaffold-standards.ts +6 -1
- package/src/cli/commands/init.ts +32 -6
- package/src/cli/commands/orchestrate.ts +151 -127
- package/src/cli/commands/plan.ts +89 -23
- package/src/cli/index.ts +14 -19
- package/src/cli/utils/compliance.ts +8 -9
- package/src/cli/utils/fs.ts +1 -1
- package/src/cli/utils/memory.ts +32 -7
- package/src/cli/utils/pkg.ts +42 -13
- package/src/modules/adapters/definitions.ts +4 -3
- package/src/modules/agents/definitions.ts +2 -1
- package/src/modules/agents/registry/analyst.ts +1 -1
- package/src/modules/agents/registry/architect.ts +1 -0
- package/src/modules/agents/registry/backend.ts +7 -6
- package/src/modules/agents/registry/database.ts +4 -3
- package/src/modules/agents/registry/devops.ts +1 -1
- package/src/modules/agents/registry/git.ts +1 -1
- package/src/modules/agents/registry/manager.ts +3 -2
- package/src/modules/agents/registry/native.ts +1 -1
- package/src/modules/agents/registry/quality.ts +1 -0
- package/src/modules/agents/registry/security.ts +1 -0
- package/src/shared/constants.ts +212 -0
- package/templates/prompts/bug-fix-recipe.md +20 -0
- package/templates/prompts/contract-design-recipe.md +21 -0
- package/templates/prompts/db-management-recipe.md +25 -0
- package/templates/prompts/deployment-recipe.md +23 -0
- package/templates/prompts/new-feature-recipe.md +19 -0
- package/templates/prompts/performance-optimization-recipe.md +23 -0
- package/templates/prompts/pull-request-template.md +21 -0
- package/templates/prompts/refactoring-recipe.md +21 -0
- package/templates/prompts/security-audit-recipe.md +20 -0
- package/templates/standards/architecture-standards.md +23 -0
- package/templates/standards/auth-standards.md +125 -0
- package/templates/standards/crud-governance.md +21 -0
- package/templates/standards/deployment-standards.md +21 -0
- package/templates/standards/frontend-standards.md +37 -0
- package/templates/standards/github-actions-standards.md +43 -0
- package/templates/standards/i18n-standards.md +17 -0
- package/templates/standards/kysely-standards.md +47 -0
- package/templates/standards/llm-governance.md +15 -0
- package/templates/standards/logging-and-secrets.md +34 -0
- package/templates/standards/mobile-standards.md +23 -0
- package/templates/standards/observability-standards.md +15 -0
- package/templates/standards/performance-standards.md +15 -0
- package/templates/standards/pino-standards.md +46 -0
- package/templates/standards/playwright-standards.md +54 -0
- package/templates/standards/quality-standards.md +31 -0
- package/templates/standards/react-query-standards.md +72 -0
- package/templates/standards/react-router-standards.md +62 -0
- package/templates/standards/security-audit-standards.md +16 -0
- package/templates/standards/security-standards.md +21 -0
- package/templates/standards/swagger-standards.md +50 -0
- package/templates/standards/tailwind-standards.md +20 -0
- package/templates/standards/testing-standards.md +31 -0
- package/templates/standards/typeorm-standards.md +49 -0
- package/templates/standards/vitest-standards.md +110 -0
- package/bin/validate-agent-army.js +0 -148
- package/src/cli/commands/app.ts +0 -56
- package/src/cli/utils/app-backend.ts +0 -257
- package/src/cli/utils/app-docs.ts +0 -83
- package/src/cli/utils/app-frontend.ts +0 -263
- package/src/cli/utils/app-inferrer.ts +0 -63
- package/src/cli/utils/app-mobile.ts +0 -113
- package/src/cli/utils/app-types.ts +0 -248
- package/src/cli/utils/app.ts +0 -6
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 🏛️ Agent Enderun — The Supreme AI Governance & Autonomous Orchestration Framework
|
|
2
2
|
|
|
3
|
-
> **Stable Release:** v1.
|
|
3
|
+
> **Stable Release:** v1.11.0 (Enterprise Orchestration Ready) — Build Compile: Clean | Type-Safety: 100% Verified | AL Compliance: 13/13 Agents
|
|
4
4
|
|
|
5
5
|
> **Author:** Yusuf BEKAR
|
|
6
6
|
> **Trace ID:** `01HGT8J5E2N0W0W0W0W0W0W0W5`
|
|
@@ -23,7 +23,7 @@ Yapay zeka kodlama yardımcıları (Claude Code, Gemini CLI, Grok Build vb.) gel
|
|
|
23
23
|
1. **Kontrolsüz ve Hatalı Değişiklikler (Rogue AI):** Ajanların tüm kod dosyasını baştan yazmasını engelleyerek **milyonlarca satırlık kodları cerrahi hassasiyetle (`replace_text` / `patch_file` üzerinden)** değiştirmeye zorlar. Token tüketimini ve hata oranını %90 azaltır.
|
|
24
24
|
2. **Kayıp Hafıza ve Bağlam Drifti:** Ajanlar oturum değiştirdikçe projenin geçmişini ve mimari kararlarını unutur. Enderun, **`.enderun/memory/PROJECT_MEMORY.md`** dosyasını projenin değişmez tek doğruluk kaynağı (SSOT) haline getirerek, seanslar arası bağlam kaybını tamamen engeller.
|
|
25
25
|
3. **Akıllı Delegasyon ve Doğal Dil:** Artık karmaşık komutlar yerine `agent-enderun "Projemi denetle"` gibi doğal dildeki istekler veya `agent-enderun @backend "Tablo oluştur"` gibi doğrudan delegasyonlar kullanılabilir.
|
|
26
|
-
4. **Çoklu Ajan Kaosu:** **
|
|
26
|
+
4. **Çoklu Ajan Kaosu:** **13** farklı uzman yapay zeka ajanı, olay tabanlı asenkron bir haberleşme protokolü olan **Hermes Message Broker** üzerinden koordine edilir. Ajanlar birbirine rastgele müdahale edemez; tüm görevler bir İş Dağılım Grafiği (DAG) üzerinden komuta edilir.
|
|
27
27
|
5. **Güvenli Haberleşme & Entegrasyon (Hermes Lock Protocol):** Ortak bellek dosyalarına veya kuyruklara yazarken olası dosya çakışmalarını işletim sistemi (OS) düzeyinde atomik dosya oluşturma (`flag: 'wx'`) yöntemiyle engeller. Kilit meşgulse otomatik olarak bekleyip (retry) sırayla kuyrukları işler.
|
|
28
28
|
6. **Kurumsal Yetki ve CRUD Yönetişimi (Corporate CRUD Governance):** Ajanların doğrudan kritik/idari veri mutasyonları (kullanıcı/rol atama, şema değiştirme, veritabanı göçü, toplu silme) yapmasını engeller. Bu işlemler `@manager` ajanı üzerinden onay kuyruğuna alınır ve insan denetçinin `agent-enderun approve` komutunu çalıştırmasıyla aktif hale getirilir.
|
|
29
29
|
|
|
@@ -31,9 +31,9 @@ Yapay zeka kodlama yardımcıları (Claude Code, Gemini CLI, Grok Build vb.) gel
|
|
|
31
31
|
|
|
32
32
|
### 📦 Güncel Sürüm / Current Release
|
|
33
33
|
|
|
34
|
-
**v1.
|
|
35
|
-
* **TR:**
|
|
36
|
-
* **EN:** Added
|
|
34
|
+
**v1.11.0** — Kararlı Sürüm (Performans & Standartlar).
|
|
35
|
+
* **TR:** Yeni enterprise standartlar eklendi (Kysely, TypeORM, Auth, Swagger, Pino, Vitest, CI/CD, React Query, Router, Playwright). Orkestrasyon döngüsü bellek içi önbellekleme (in-memory cache) ile optimize edildi. Planlama komutu (`plan`) eklendi.
|
|
36
|
+
* **EN:** Added enterprise standards (Kysely, TypeORM, Auth, Swagger, Pino, Vitest, CI/CD, React Query, Router, Playwright). Optimized orchestration loop with in-memory caching. Added planning command (`plan`).
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
|
@@ -95,7 +95,7 @@ Yapay zeka ajanları her oturumda veya görev atamasında şu akışı otonom ol
|
|
|
95
95
|
|
|
96
96
|
### 🛠️ Kurulum & Adaptör Entegrasyon Kılavuzu
|
|
97
97
|
> [!IMPORTANT]
|
|
98
|
-
> **Mimari Hatırlatma:** Model Context Protocol (MCP) araçları, **insan geliştirici (kullanıcı) tarafından manuel olarak çalıştırılmaz.** MCP sunucu araçları; yapay zeka ajanlarının (Claude Code, Gemini, Grok) projeniz üzerinde cerrahi kod yazma, durum sorgulama ve Hermes mesajlaşma gibi eylemleri **otonom olarak çalıştırabilmesi** için arka planda yapay zeka motorlarına bağlanır. İnsan geliştirici ise komuta sürecini CLI (`status`, `trace:new` vb.) üzerinden yönetir.
|
|
98
|
+
> **Mimari Hatırlatma:** Model Context Protocol (MCP) araçları, **insan geliştirici (kullanıcı) tarafından manuel olarak çalıştırılmaz.** MCP sunucu araçları; yapay zeka ajanlarının (Claude Code, Gemini, Grok, Cursor) projeniz üzerinde cerrahi kod yazma, durum sorgulama ve Hermes mesajlaşma gibi eylemleri **otonom olarak çalıştırabilmesi** için arka planda yapay zeka motorlarına bağlanır. İnsan geliştirici ise komuta sürecini CLI (`status`, `trace:new` vb.) üzerinden yönetir.
|
|
99
99
|
|
|
100
100
|
#### 1. Gemini Adaptörü Kurulumu
|
|
101
101
|
Gemini CLI veya Vertex AI entegrasyonu için proje dizininizde aşağıdaki komutu çalıştırın:
|
|
@@ -149,45 +149,22 @@ Sistem artık tüm zekasını ve persistence verilerini projenin kök dizininde
|
|
|
149
149
|
|
|
150
150
|
### 🕹️ CLI Komut Referansı ve Parametreleri
|
|
151
151
|
|
|
152
|
-
|
|
152
|
+
> [!TIP]
|
|
153
|
+
> **Kullanıcı genellikle CLI komutları yazmaz.** Doğrudan AI asistanınıza (Claude Code, Gemini, Grok, Cursor) konuşarak çalışırsınız. AI asistanı MCP araçlarını kullanarak komutları sizin yerinize çalıştırır.
|
|
153
154
|
|
|
154
155
|
* **`init [adapter] [--unified]`**: Seçilen adaptörü kurar. `--unified` kullanılırsa tüm asistan şimleri doğrudan `.enderun` altında birleşir; klasör kalabalığı sıfırlanır. Init sonrası **otomatik AL (Agent Lifecycle) validation** çalıştırılır.
|
|
155
156
|
* **`status`**: Projenin aktif fazını (Phase 0 - 4), aktif Trace ID'sini ve uzman ajanların durumlarını listeler.
|
|
156
157
|
* **`check`**: Anayasal uyumluluk denetimlerini + **otomatik AL Army Validation** (stateMachine + tags) gerçekleştirir.
|
|
157
|
-
* **`validate` / `validate-army` / `check:al`**: Bağımsız Agent Lifecycle (AL) ordu validasyonu çalıştırır
|
|
158
|
+
* **`validate` / `validate-army` / `check:al`**: Bağımsız Agent Lifecycle (AL) ordu validasyonu çalıştırır.
|
|
159
|
+
* **`plan`**: `docs/` dizini altındaki tüm `.md` dosyalarını okur, başlıkları ve görevleri tespit ederek planlama yapar.
|
|
158
160
|
* **`trace:new [description]`**: Belirli bir geliştirme zinciri için yeni bir Trace ID (ULID) tetikler.
|
|
159
161
|
* **`orchestrate` / `loop`**: Hermes Message Broker asenkron event-driven ajanlar arası iletişim döngüsünü canlı olarak başlatır.
|
|
160
162
|
* **`verify-contract`**: Frontend ve backend katmanları arasındaki tip bütünlüğünü denetler.
|
|
161
163
|
* **`update-contract`**: Backend tiplerinde yapılan değişiklikleri tarayarak `contract.version.json` üzerindeki SHA-256 hash imzalarını günceller.
|
|
162
|
-
* **`create-app [idea]`**: Doğal dildeki açıklamalardan; kurumsal standartlarda **Web, Mobil (Expo/React Native) veya Backend** tabanlı kontrat-tabanlı monorepo uygulaması üretir.
|
|
163
164
|
* **`approve [traceId]`**: Ajanlar tarafından gönderilen idari veya yüksek riskli işlemleri (şema değişiklikleri, toplu silme vb.) doğrulamak ve onaylamak için insan denetçi (Human-in-the-Loop) onay komutudur.
|
|
164
165
|
|
|
165
166
|
---
|
|
166
167
|
|
|
167
|
-
### 📦 Geliştirici & npm Link Test Altyapısı
|
|
168
|
-
|
|
169
|
-
Paketi npm'de yayınlamadan önce yerelinizde derlemek ve test etmek için:
|
|
170
|
-
```bash
|
|
171
|
-
# Proje bağımlılıklarını yükleyin
|
|
172
|
-
npm install
|
|
173
|
-
|
|
174
|
-
# framework-mcp (MCP Sunucusu) ve CLI derlemelerini tetikleyin
|
|
175
|
-
npm run enderun:build
|
|
176
|
-
|
|
177
|
-
# Paketi global NPM havuzunuza bağlayın
|
|
178
|
-
npm link
|
|
179
|
-
|
|
180
|
-
# Boş bir test dizini açıp aracı bağlayın
|
|
181
|
-
mkdir enderun-test && cd enderun-test
|
|
182
|
-
npm init -y
|
|
183
|
-
npm link agent-enderun
|
|
184
|
-
|
|
185
|
-
# Herhangi bir adaptör kurulumunu başlatın
|
|
186
|
-
npx agent-enderun init gemini --unified
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
---
|
|
191
168
|
|
|
192
169
|
## 🇺🇸 ENGLISH — Detailed Product Guide & Documentation
|
|
193
170
|
|
|
@@ -204,7 +181,7 @@ As AI coding assistants (Claude Code, Gemini CLI, Grok Build, etc.) become incre
|
|
|
204
181
|
1. **Rogue AI Prevention (Surgical Edits):** It strictly prohibits agents from rewriting entire files. Instead, it forces them to execute micro-targeted changes via **`replace_text` / `patch_file` tools**, reducing API token consumption by up to 90%.
|
|
205
182
|
2. **Context Loss Prevention (SSOT Memory):** AI agents naturally lose project history across chats. Enderun seals all project milestones, decisions, and tasks into a self-pruning **`.enderun/memory/PROJECT_MEMORY.md`** file, ensuring absolute context continuity.
|
|
206
183
|
3. **Contract-First Safety (Frontend-Backend Drift):** Before any user interface code is written, API models and branded types are sealed. The **autonomous** contract verification engine checks SHA-256 type definitions to prevent integration drifts.
|
|
207
|
-
4. **Symmetric Orchestration (Hermes Protocol):** **
|
|
184
|
+
4. **Symmetric Orchestration (Hermes Protocol):** **13** specialized expert agents communicate via an asynchronous, event-driven message broker (**Hermes**), preventing chaotic, uncoordinated AI behavior.
|
|
208
185
|
5. **Atomic Concurrency Safety (Hermes Lock Protocol):** Prevents concurrent file access and race conditions at the OS level using atomic lock file creation (`flag: 'wx'`). If a lock is active, writing agents wait and retry sequentially.
|
|
209
186
|
6. **Corporate CRUD & Admin Governance:** Strictly forbids specialist agents from performing critical/admin mutations (user/role creation, schema modifications, database migrations, bulk deletions) autonomously. These are routed as `ALERT` approvals to `@manager` and require human sign-off via the `approve` command.
|
|
210
187
|
|
|
@@ -212,19 +189,21 @@ As AI coding assistants (Claude Code, Gemini CLI, Grok Build, etc.) become incre
|
|
|
212
189
|
|
|
213
190
|
### 📦 Current Release / Güncel Sürüm
|
|
214
191
|
|
|
215
|
-
**v1.
|
|
216
|
-
* **EN:** Added
|
|
217
|
-
* **TR:**
|
|
192
|
+
**v1.11.0** — Stable Release (Performance & Standards).
|
|
193
|
+
* **EN:** Added enterprise standards (Kysely, TypeORM, Auth, Swagger, Pino, Vitest, CI/CD, React Query, Router, Playwright). Optimized orchestration loop with in-memory caching. Added planning command (`plan`).
|
|
194
|
+
* **TR:** Yeni enterprise standartlar eklendi (Kysely, TypeORM, Auth, Swagger, Pino, Vitest, CI/CD, React Query, Router, Playwright). Orkestrasyon döngüsü bellek içi önbellekleme (in-memory cache) ile optimize edildi. Planlama komutu (`plan`) eklendi.
|
|
218
195
|
|
|
219
196
|
---
|
|
220
197
|
|
|
221
|
-
### 💎 Strategic Platform Synergy (
|
|
198
|
+
### 💎 Strategic Platform Synergy (Six Major Powers)
|
|
222
199
|
|
|
223
200
|
Agent Enderun coordinates industry-leading AI environments by assigning each a specific strategic military role:
|
|
224
201
|
* **🚀 Claude Code (Operational Surgery):** The **Field Engineer**. Excels in executing precise, surgical, and autonomous codebase edits.
|
|
225
202
|
* **♊ Gemini & Vertex AI (Command Intelligence):** The **Command Center**. Analyzes project history, memory logs, and executes high-level strategic decisions.
|
|
226
203
|
* **🛸 Antigravity (Internal Discipline):** The **Military Academy**. Provides an isolated, high-discipline sandbox to preserve internal framework coding standards.
|
|
227
204
|
* **🤖 Grok / X.ai (Scouting Wing):** The **Scouting Specialist**. Explores futuristic agent behaviors and tests experimental protocols.
|
|
205
|
+
* **✍️ Cursor (Implementer / Developer):** The **Code Worker**. IDE integration for writing, fixing, and refactoring tasks.
|
|
206
|
+
* **💡 Codex (GitHub Copilot - Coding Assistant):** The **Assistant Developer**. VSCode integration for code completion, suggestions, and rapid prototyping.
|
|
228
207
|
|
|
229
208
|
---
|
|
230
209
|
|
|
@@ -274,7 +253,7 @@ Enderun specialists autonomously coordinate context loading using the following
|
|
|
274
253
|
|
|
275
254
|
### 🛠️ Adapter Scaffolding & Setup Guide
|
|
276
255
|
> [!IMPORTANT]
|
|
277
|
-
> **Architectural Note:** Model Context Protocol (MCP) tools are **not meant to be executed manually by the human developer (user).** Instead, the MCP server runs in the background, allowing AI Agents (Claude Code, Gemini, Grok) to **autonomously execute** our custom tools (like surgical editing, state reading, or Hermes messaging) on your codebase. The human developer controls and monitors this command loop using standard CLI commands (`status`, `trace:new`, etc.).
|
|
256
|
+
> **Architectural Note:** Model Context Protocol (MCP) tools are **not meant to be executed manually by the human developer (user).** Instead, the MCP server runs in the background, allowing AI Agents (Claude Code, Gemini, Grok, Cursor) to **autonomously execute** our custom tools (like surgical editing, state reading, or Hermes messaging) on your codebase. The human developer controls and monitors this command loop using standard CLI commands (`status`, `trace:new`, etc.).
|
|
278
257
|
|
|
279
258
|
#### 1. Gemini Adapter
|
|
280
259
|
Initialize the Gemini CLI / Vertex AI environment:
|
|
@@ -298,10 +277,22 @@ Scaffold for xAI Grok Build:
|
|
|
298
277
|
npx agent-enderun init grok
|
|
299
278
|
```
|
|
300
279
|
|
|
301
|
-
#### 4.
|
|
280
|
+
#### 4. Cursor Adapter
|
|
281
|
+
Initialize Cursor IDE rules and MCP integration:
|
|
282
|
+
```bash
|
|
283
|
+
npx agent-enderun init cursor
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
#### 5. Codex (GitHub Copilot) Adapter
|
|
287
|
+
Set up VSCode and GitHub Copilot instructions:
|
|
288
|
+
```bash
|
|
289
|
+
npx agent-enderun init codex
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
#### 6. Antigravity Adapter
|
|
302
293
|
Bootstrap the high-discipline sandbox for Antigravity IDE and CLI runtimes:
|
|
303
294
|
```bash
|
|
304
|
-
npx agent-enderun init antigravity
|
|
295
|
+
npx agent-enderun init antigravity-cli
|
|
305
296
|
```
|
|
306
297
|
|
|
307
298
|
---
|
|
@@ -319,10 +310,9 @@ Execute commands via `agent-enderun` (or `npx agent-enderun`):
|
|
|
319
310
|
* **`orchestrate` / `loop`**: Launch the Hermes live event-driven message-routing loop for asynchronous agent synchronization.
|
|
320
311
|
* **`verify-contract`**: Perform a contract audit to ensure frontend types match backend schemas.
|
|
321
312
|
* **`update-contract`**: Re-calculate type definitions and update `contract.version.json` with a new SHA-256 hash.
|
|
322
|
-
* **`
|
|
313
|
+
* **`plan`**: Read all `.md` files from `docs/` directory and create planning tasks for AI agents.
|
|
323
314
|
* **`approve [traceId]`**: Human-in-the-Loop command to sign off and approve high-risk/administrative tasks requested by agents.
|
|
324
315
|
|
|
325
|
-
|
|
326
316
|
---
|
|
327
317
|
|
|
328
|
-
Developed with absolute discipline | Developer **Yusuf BEKAR** | Framework Version **v1.
|
|
318
|
+
Developed with absolute discipline | Developer **Yusuf BEKAR** | Framework Version **v1.11.0** — Enterprise standards ready. Bloat removed. Corporate-ready.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Enderun — Single Source of Truth for framework constants.
|
|
3
|
+
* Import from here instead of hardcoding paths, phases, or directory names.
|
|
4
|
+
*/
|
|
5
|
+
export declare const FRAMEWORK: {
|
|
6
|
+
NAME: string;
|
|
7
|
+
CORE_DIR: string;
|
|
8
|
+
UNIFIED_HUB_DIR: string;
|
|
9
|
+
APPS_DIR: string;
|
|
10
|
+
SKILLS_DIR: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const FRAMEWORK_SUBDIRS: {
|
|
13
|
+
AGENTS: string;
|
|
14
|
+
SKILLS: string;
|
|
15
|
+
KNOWLEDGE: string;
|
|
16
|
+
MESSAGES: string;
|
|
17
|
+
MEMORY: string;
|
|
18
|
+
MEMORY_GRAPH: string;
|
|
19
|
+
LOGS: string;
|
|
20
|
+
CONFIG: string;
|
|
21
|
+
};
|
|
22
|
+
export declare const ROOT_CONFIG_FILES: {
|
|
23
|
+
MCP: string;
|
|
24
|
+
NATIVE_MODULES: string;
|
|
25
|
+
TSCONFIG: string;
|
|
26
|
+
ESLINT: string;
|
|
27
|
+
};
|
|
28
|
+
export declare const MCP: {
|
|
29
|
+
PROJECT_ROOT_ENV: string;
|
|
30
|
+
TEST_DIR_ENV: string;
|
|
31
|
+
};
|
|
32
|
+
export declare const MEMORY_FILES: {
|
|
33
|
+
STATE: string;
|
|
34
|
+
SHARED_FACTS: string;
|
|
35
|
+
};
|
|
36
|
+
export declare const NATIVE_AGENT_PATHS: {
|
|
37
|
+
gemini: string;
|
|
38
|
+
claude: string;
|
|
39
|
+
cursor: string;
|
|
40
|
+
codex: string;
|
|
41
|
+
grok: string;
|
|
42
|
+
"antigravity-cli": string;
|
|
43
|
+
};
|
|
44
|
+
export declare const CORE_FRAMEWORK_DIR: string;
|
|
45
|
+
export declare const UNIFIED_HUB_DIR: string;
|
|
46
|
+
export declare const SKILLS_HUB_PATH: string;
|
|
47
|
+
export declare function knowledgePath(filename: string): string;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
/**
|
|
3
|
+
* Agent Enderun — Single Source of Truth for framework constants.
|
|
4
|
+
* Import from here instead of hardcoding paths, phases, or directory names.
|
|
5
|
+
*/
|
|
6
|
+
// ─── Framework identity ───────────────────────────────────────────────────
|
|
7
|
+
export const FRAMEWORK = {
|
|
8
|
+
NAME: "Agent Enderun",
|
|
9
|
+
CORE_DIR: ".enderun",
|
|
10
|
+
// This is the hub for unified adapter layouts (e.g. .agents/gemini, .agents/claude)
|
|
11
|
+
UNIFIED_HUB_DIR: ".agents",
|
|
12
|
+
// This is the default directory to scaffold new apps into
|
|
13
|
+
APPS_DIR: "apps",
|
|
14
|
+
// This is where all skills are stored
|
|
15
|
+
SKILLS_DIR: "skills",
|
|
16
|
+
};
|
|
17
|
+
export const FRAMEWORK_SUBDIRS = {
|
|
18
|
+
AGENTS: "agents",
|
|
19
|
+
SKILLS: "skills",
|
|
20
|
+
KNOWLEDGE: "knowledge",
|
|
21
|
+
MESSAGES: "messages",
|
|
22
|
+
MEMORY: "memory",
|
|
23
|
+
MEMORY_GRAPH: "memory-graph",
|
|
24
|
+
LOGS: "logs",
|
|
25
|
+
CONFIG: "config",
|
|
26
|
+
};
|
|
27
|
+
export const ROOT_CONFIG_FILES = {
|
|
28
|
+
MCP: "mcp.json",
|
|
29
|
+
NATIVE_MODULES: "native-modules.json",
|
|
30
|
+
TSCONFIG: "tsconfig.json",
|
|
31
|
+
ESLINT: "eslint.config.js",
|
|
32
|
+
};
|
|
33
|
+
export const MCP = {
|
|
34
|
+
// Environment variable used by MCP to identify project root
|
|
35
|
+
PROJECT_ROOT_ENV: "ENDERUN_PROJECT_ROOT",
|
|
36
|
+
// Environment variable for test mode
|
|
37
|
+
TEST_DIR_ENV: "ENDERUN_TEST_DIR",
|
|
38
|
+
};
|
|
39
|
+
export const MEMORY_FILES = {
|
|
40
|
+
STATE: "state.json",
|
|
41
|
+
SHARED_FACTS: "shared_facts.json",
|
|
42
|
+
};
|
|
43
|
+
export const NATIVE_AGENT_PATHS = {
|
|
44
|
+
gemini: ".gemini/agents",
|
|
45
|
+
claude: ".claude/agents",
|
|
46
|
+
cursor: ".cursor/rules",
|
|
47
|
+
codex: ".agents/instructions",
|
|
48
|
+
grok: ".grok",
|
|
49
|
+
"antigravity-cli": ".antigravity/agents",
|
|
50
|
+
};
|
|
51
|
+
// ─── Backward-compatible aliases ──────────────────────────────────────────
|
|
52
|
+
export const CORE_FRAMEWORK_DIR = FRAMEWORK.CORE_DIR;
|
|
53
|
+
export const UNIFIED_HUB_DIR = FRAMEWORK.UNIFIED_HUB_DIR;
|
|
54
|
+
export const SKILLS_HUB_PATH = pathJoin(UNIFIED_HUB_DIR, FRAMEWORK_SUBDIRS.SKILLS);
|
|
55
|
+
// ─── Path Helpers ─────────────────────────────────────────────────────────
|
|
56
|
+
function pathJoin(...args) {
|
|
57
|
+
return path.join(...args);
|
|
58
|
+
}
|
|
59
|
+
function corePath(subdir, filename) {
|
|
60
|
+
return pathJoin(FRAMEWORK.CORE_DIR, subdir, filename);
|
|
61
|
+
}
|
|
62
|
+
export function knowledgePath(filename) {
|
|
63
|
+
return corePath(FRAMEWORK_SUBDIRS.KNOWLEDGE, filename);
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../framework-mcp/src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;GAGG;AAEH,6EAA6E;AAE7E,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,UAAU;IACpB,oFAAoF;IACpF,eAAe,EAAE,SAAS;IAC1B,0DAA0D;IAC1D,QAAQ,EAAE,MAAM;IAChB,sCAAsC;IACtC,UAAU,EAAE,QAAQ;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,cAAc;IAC5B,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,GAAG,EAAE,UAAU;IACf,cAAc,EAAE,qBAAqB;IACrC,QAAQ,EAAE,eAAe;IACzB,MAAM,EAAE,kBAAkB;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG;IACf,4DAA4D;IAC5D,gBAAgB,EAAE,sBAAsB;IACxC,qCAAqC;IACrC,YAAY,EAAE,kBAAkB;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,KAAK,EAAE,YAAY;IACnB,YAAY,EAAE,mBAAmB;CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,eAAe;IACvB,KAAK,EAAE,sBAAsB;IAC7B,IAAI,EAAE,OAAO;IACb,iBAAiB,EAAE,qBAAqB;CAC3C,CAAC;AAEF,6EAA6E;AAE7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC,QAAQ,CAAC;AACrD,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;AACzD,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAEnF,6EAA6E;AAE7E,SAAS,QAAQ,CAAC,GAAG,IAAc;IAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,QAAgB;IAC9C,OAAO,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC1C,OAAO,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -29,28 +29,49 @@ const server = new Server({
|
|
|
29
29
|
tools: {},
|
|
30
30
|
},
|
|
31
31
|
});
|
|
32
|
+
// Basic Schema Validator for Required Fields
|
|
33
|
+
function validateArgs(toolName, args) {
|
|
34
|
+
const definition = TOOLS.find(t => t.name === toolName);
|
|
35
|
+
if (!definition)
|
|
36
|
+
return `Unknown tool: ${toolName}`;
|
|
37
|
+
const required = definition.inputSchema.required || [];
|
|
38
|
+
for (const field of required) {
|
|
39
|
+
if (args[field] === undefined || args[field] === null || args[field] === "") {
|
|
40
|
+
return `Missing required argument: '${field}' for tool '${toolName}'`;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
32
45
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
33
46
|
return { tools: TOOLS };
|
|
34
47
|
});
|
|
35
48
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
36
|
-
const
|
|
37
|
-
const { name, arguments: args } =
|
|
49
|
+
const req = request;
|
|
50
|
+
const { name, arguments: args } = req.params;
|
|
38
51
|
const projectRoot = process.env.ENDERUN_PROJECT_ROOT || process.cwd();
|
|
39
52
|
try {
|
|
40
53
|
const handler = toolHandlers[name];
|
|
41
54
|
if (!handler) {
|
|
42
55
|
return {
|
|
43
56
|
isError: true,
|
|
44
|
-
content: [{ type: "text", text:
|
|
57
|
+
content: [{ type: "text", text: `❌ Unknown tool: ${name}` }],
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
// 🛡️ Runtime Validation
|
|
61
|
+
const validationError = validateArgs(name, args || {});
|
|
62
|
+
if (validationError) {
|
|
63
|
+
return {
|
|
64
|
+
isError: true,
|
|
65
|
+
content: [{ type: "text", text: `❌ Validation Error: ${validationError}` }],
|
|
45
66
|
};
|
|
46
67
|
}
|
|
47
|
-
return handler(projectRoot, args || {});
|
|
68
|
+
return await handler(projectRoot, args || {});
|
|
48
69
|
}
|
|
49
70
|
catch (error) {
|
|
50
71
|
const message = error instanceof Error ? error.message : "Unknown error occurred";
|
|
51
72
|
return {
|
|
52
73
|
isError: true,
|
|
53
|
-
content: [{ type: "text", text: message }],
|
|
74
|
+
content: [{ type: "text", text: `❌ Execution failed: ${message}` }],
|
|
54
75
|
};
|
|
55
76
|
}
|
|
56
77
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../framework-mcp/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACH,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGvD,qEAAqE;AAErE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,0DAA0D;AAC1D,SAAS,eAAe,CAAC,QAAgB;IACrC,IAAI,UAAU,GAAG,QAAQ,CAAC;IAC1B,OAAO,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACtD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;QAC3C,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;AAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AACzD,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC;AAElC,MAAM,MAAM,GAAG,IAAI,MAAM,CACrB;IACI,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,aAAa;CACzB,EACD;IACI,YAAY,EAAE;QACV,KAAK,EAAE,EAAE;KACZ;CACJ,CACJ,CAAC;AAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACxD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAC9D,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../framework-mcp/src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
import { ToolResult } from "../types.js";
|
|
2
|
-
interface LockArgs {
|
|
3
|
-
resource: string;
|
|
4
|
-
agent: string;
|
|
5
|
-
ttl?: number;
|
|
6
|
-
}
|
|
1
|
+
import { ToolResult, AcquireLockArgs, ReleaseLockArgs } from "../types.js";
|
|
7
2
|
/**
|
|
8
3
|
* Handles acquiring a stateful lock on a resource.
|
|
9
4
|
*/
|
|
10
|
-
export declare function handleAcquireLock(projectRoot: string, args:
|
|
5
|
+
export declare function handleAcquireLock(projectRoot: string, args: AcquireLockArgs): Promise<ToolResult>;
|
|
11
6
|
/**
|
|
12
7
|
* Handles releasing a lock.
|
|
13
8
|
*/
|
|
14
|
-
export declare function handleReleaseLock(projectRoot: string, args:
|
|
15
|
-
export {};
|
|
9
|
+
export declare function handleReleaseLock(projectRoot: string, args: ReleaseLockArgs): Promise<ToolResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locking.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/control_plane/locking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"locking.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/control_plane/locking.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
import { ToolResult } from "../types.js";
|
|
2
|
-
interface RegisterArgs {
|
|
3
|
-
agent: string;
|
|
4
|
-
role: string;
|
|
5
|
-
capability?: number;
|
|
6
|
-
}
|
|
1
|
+
import { ToolResult, RegisterAgentArgs } from "../types.js";
|
|
7
2
|
/**
|
|
8
3
|
* Handles agent registration with the Control Plane.
|
|
9
4
|
* This can be used to validate permissions and active status.
|
|
10
5
|
*/
|
|
11
|
-
export declare function handleRegisterAgent(projectRoot: string, args:
|
|
12
|
-
export {};
|
|
6
|
+
export declare function handleRegisterAgent(projectRoot: string, args: RegisterAgentArgs): Promise<ToolResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/control_plane/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/control_plane/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB,EAAE,IAAuB;IAClF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;IAC7C,MAAM,YAAY,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC;IAElF,IAAI,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhF,MAAM,SAAS,GAAG;YACd,KAAK;YACL,IAAI;YACJ,UAAU;YACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,QAAQ;SACnB,CAAC;QAEF,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEhE,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,KAAK,KAAK,IAAI,yDAAyD,EAAE,CAAC;SAC1H,CAAC;IACN,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6BAA6B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SAC9E,CAAC;IACN,CAAC;AACL,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { StartDashboardArgs, ToolResult } from "../types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Starts the Enderun Web Dashboard server.
|
|
4
4
|
*/
|
|
5
|
-
export declare function handleStartDashboard(projectRoot: string, args:
|
|
5
|
+
export declare function handleStartDashboard(projectRoot: string, args: StartDashboardArgs): ToolResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start_dashboard.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/dashboard/start_dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGrC;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"start_dashboard.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/dashboard/start_dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGrC;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB,EAAE,IAAwB;IAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;IAE3E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,CAAC;QACD,8CAA8C;QAC9C,IAAI,CAAC,SAAS,eAAe,GAAG,EAAE;YAC9B,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;SAC9C,CAAC,CAAC;QAEH,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,4EAA4E,IAAI,6FAA6F;iBACtL,CAAC;SACL,CAAC;IACN,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC3G,CAAC;AACL,CAAC"}
|
|
@@ -204,6 +204,7 @@ export const TOOLS = [
|
|
|
204
204
|
traceId: { type: "string", description: "Active Trace ID." },
|
|
205
205
|
parentId: { type: "string", description: "Optional parent task trace ID for hierarchical tracking." },
|
|
206
206
|
priority: { type: "string", enum: ["HIGH", "NORMAL", "LOW"], description: "Optional priority level (HIGH, NORMAL, LOW). Defaults to HIGH for ALERT/ACTION." },
|
|
207
|
+
requiresApproval: { type: "boolean", description: "If true, this message will require manager approval before being processed." },
|
|
207
208
|
},
|
|
208
209
|
required: ["from", "to", "category", "content", "traceId"],
|
|
209
210
|
},
|
|
@@ -266,6 +267,35 @@ export const TOOLS = [
|
|
|
266
267
|
name: "update_contract_hash",
|
|
267
268
|
description: "Re-generate and synchronize the backend contract SHA-256 hash.",
|
|
268
269
|
inputSchema: { type: "object", properties: {} }
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
name: "run_shell_command",
|
|
273
|
+
description: "Execute a shell command. For security, only a limited set of commands are allowed.",
|
|
274
|
+
inputSchema: {
|
|
275
|
+
type: "object",
|
|
276
|
+
properties: {
|
|
277
|
+
command: { type: "string", description: "The shell command to execute." },
|
|
278
|
+
},
|
|
279
|
+
required: ["command"],
|
|
280
|
+
},
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
name: "check_lint",
|
|
284
|
+
description: "Run the project's linter (e.g., ESLint) to check for code quality and style issues.",
|
|
285
|
+
inputSchema: { type: "object", properties: {} },
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
name: "view_file",
|
|
289
|
+
description: "Alias for read_file. Reads the content of a file within the project.",
|
|
290
|
+
inputSchema: {
|
|
291
|
+
type: "object",
|
|
292
|
+
properties: {
|
|
293
|
+
path: { type: "string", description: "Path to the file relative to project root" },
|
|
294
|
+
startLine: { type: "number", description: "Optional starting line number (1-indexed)" },
|
|
295
|
+
endLine: { type: "number", description: "Optional ending line number (inclusive)" },
|
|
296
|
+
},
|
|
297
|
+
required: ["path"],
|
|
298
|
+
},
|
|
269
299
|
}
|
|
270
300
|
];
|
|
271
301
|
//# sourceMappingURL=definitions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../../framework-mcp/src/tools/definitions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../../framework-mcp/src/tools/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BatchSurgicalEditArgs, ToolResult } from "../types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Performs multiple surgical text replacements across multiple files in a single batch.
|
|
4
4
|
*/
|
|
5
|
-
export declare function handleBatchSurgicalEdit(projectRoot: string, args:
|
|
5
|
+
export declare function handleBatchSurgicalEdit(projectRoot: string, args: BatchSurgicalEditArgs): ToolResult;
|
|
@@ -9,26 +9,34 @@ import { verifyCorporateCompliance } from "../../utils/compliance.js";
|
|
|
9
9
|
export function handleBatchSurgicalEdit(projectRoot, args) {
|
|
10
10
|
const edits = args.edits;
|
|
11
11
|
if (!Array.isArray(edits) || edits.length === 0) {
|
|
12
|
-
|
|
12
|
+
const err = "No edits provided in the batch request.";
|
|
13
|
+
Metrics.logError(projectRoot, "@mcp", "batch_surgical_edit", err);
|
|
14
|
+
throw new Error(err);
|
|
13
15
|
}
|
|
14
16
|
const results = [];
|
|
15
17
|
let totalTokens = 0;
|
|
16
18
|
for (const edit of edits) {
|
|
17
19
|
const filePath = safePath(projectRoot, edit.path);
|
|
18
20
|
if (!fs.existsSync(filePath)) {
|
|
19
|
-
|
|
21
|
+
const err = `File not found: ${edit.path}`;
|
|
22
|
+
Metrics.logError(projectRoot, "@mcp", `batch_surgical_edit:${edit.path}`, err);
|
|
23
|
+
throw new Error(err);
|
|
20
24
|
}
|
|
21
25
|
const content = fs.readFileSync(filePath, "utf8");
|
|
22
26
|
const { oldText, newText, allowMultiple = false } = edit;
|
|
23
27
|
if (!content.includes(oldText)) {
|
|
24
|
-
|
|
28
|
+
const err = `Text not found in file ${edit.path}`;
|
|
29
|
+
Metrics.logError(projectRoot, "@mcp", `batch_surgical_edit:${edit.path}`, err);
|
|
30
|
+
throw new Error(err);
|
|
25
31
|
}
|
|
26
32
|
// Surgical precision guard
|
|
27
33
|
if (!allowMultiple) {
|
|
28
34
|
const firstIndex = content.indexOf(oldText);
|
|
29
35
|
const lastIndex = content.lastIndexOf(oldText);
|
|
30
36
|
if (firstIndex !== lastIndex) {
|
|
31
|
-
|
|
37
|
+
const err = `Ambiguous replacement in ${edit.path}`;
|
|
38
|
+
Metrics.logError(projectRoot, "@mcp", `batch_surgical_edit:${edit.path}`, err);
|
|
39
|
+
throw new Error(err);
|
|
32
40
|
}
|
|
33
41
|
}
|
|
34
42
|
const newContent = allowMultiple
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch_surgical_edit.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/file_system/batch_surgical_edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAStE;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"batch_surgical_edit.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/file_system/batch_surgical_edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function handlePatchFile(projectRoot: string, args:
|
|
1
|
+
import { PatchFileArgs, ToolResult } from "../types.js";
|
|
2
|
+
export declare function handlePatchFile(projectRoot: string, args: PatchFileArgs): ToolResult;
|
|
@@ -8,10 +8,14 @@ export function handlePatchFile(projectRoot, args) {
|
|
|
8
8
|
const end = args.endLine;
|
|
9
9
|
const newContent = args.newContent.split("\n");
|
|
10
10
|
if (start < 0 || start > lines.length) {
|
|
11
|
-
|
|
11
|
+
const err = `Invalid start line: ${start + 1}. File has ${lines.length} lines.`;
|
|
12
|
+
Metrics.logError(projectRoot, "@mcp", `patch_file:${args.path}`, err);
|
|
13
|
+
throw new Error(err);
|
|
12
14
|
}
|
|
13
15
|
if (end < start + 1 || end > lines.length) {
|
|
14
|
-
|
|
16
|
+
const err = `Invalid end line: ${end}. Must be between ${start + 1} and ${lines.length}.`;
|
|
17
|
+
Metrics.logError(projectRoot, "@mcp", `patch_file:${args.path}`, err);
|
|
18
|
+
throw new Error(err);
|
|
15
19
|
}
|
|
16
20
|
lines.splice(start, end - start, ...newContent);
|
|
17
21
|
fs.writeFileSync(filePath, lines.join("\n"));
|