atabey 0.0.11 → 0.0.12
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/ATABEY.md +272 -15
- package/README.md +112 -162
- package/bin/completion.sh +30 -0
- package/bin/{validate-agent-army.js → validate-al-registry.js} +2 -2
- package/dist/framework-mcp/src/index.js +14 -2
- package/dist/framework-mcp/src/index.js.map +1 -1
- package/dist/framework-mcp/src/resources/index.js +5 -5
- package/dist/framework-mcp/src/resources/index.js.map +1 -1
- package/dist/framework-mcp/src/tools/control_plane/locking.d.ts +1 -1
- package/dist/framework-mcp/src/tools/control_plane/locking.js +11 -9
- package/dist/framework-mcp/src/tools/control_plane/locking.js.map +1 -1
- package/dist/framework-mcp/src/tools/definitions.d.ts +5 -0
- package/dist/framework-mcp/src/tools/definitions.js +99 -246
- package/dist/framework-mcp/src/tools/definitions.js.map +1 -1
- package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js +4 -4
- package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js.map +1 -1
- package/dist/framework-mcp/src/tools/file_system/read_file.js +1 -1
- package/dist/framework-mcp/src/tools/file_system/replace_text.js +3 -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 +1 -1
- package/dist/framework-mcp/src/tools/file_system/write_file.js +4 -4
- package/dist/framework-mcp/src/tools/file_system/write_file.js.map +1 -1
- package/dist/framework-mcp/src/tools/framework/audit_deps.js +1 -1
- package/dist/framework-mcp/src/tools/framework/audit_deps.js.map +1 -1
- package/dist/framework-mcp/src/tools/framework/submit_plan.d.ts +4 -3
- package/dist/framework-mcp/src/tools/framework/submit_plan.js.map +1 -1
- package/dist/framework-mcp/src/tools/index.d.ts +2 -0
- package/dist/framework-mcp/src/tools/index.js +49 -0
- package/dist/framework-mcp/src/tools/index.js.map +1 -1
- package/dist/framework-mcp/src/tools/memory/delete_knowledge.d.ts +8 -0
- package/dist/framework-mcp/src/tools/memory/delete_knowledge.js +29 -0
- package/dist/framework-mcp/src/tools/memory/delete_knowledge.js.map +1 -0
- package/dist/framework-mcp/src/tools/memory/read_memory.js +1 -1
- package/dist/framework-mcp/src/tools/memory/read_memory.js.map +1 -1
- package/dist/framework-mcp/src/tools/memory/search_knowledge.d.ts +8 -0
- package/dist/framework-mcp/src/tools/memory/search_knowledge.js +49 -0
- package/dist/framework-mcp/src/tools/memory/search_knowledge.js.map +1 -0
- package/dist/framework-mcp/src/tools/memory/store_knowledge.d.ts +10 -0
- package/dist/framework-mcp/src/tools/memory/store_knowledge.js +31 -0
- package/dist/framework-mcp/src/tools/memory/store_knowledge.js.map +1 -0
- package/dist/framework-mcp/src/tools/messaging/ask_human.d.ts +6 -0
- package/dist/framework-mcp/src/tools/messaging/ask_human.js +31 -0
- package/dist/framework-mcp/src/tools/messaging/ask_human.js.map +1 -0
- package/dist/framework-mcp/src/tools/observability/check_ports.js +1 -1
- package/dist/framework-mcp/src/tools/observability/check_ports.js.map +1 -1
- package/dist/framework-mcp/src/tools/observability/get_health.js +1 -1
- package/dist/framework-mcp/src/tools/schemas.d.ts +359 -0
- package/dist/framework-mcp/src/tools/schemas.js +154 -0
- package/dist/framework-mcp/src/tools/schemas.js.map +1 -0
- package/dist/framework-mcp/src/tools/search/get_map.js +2 -2
- package/dist/framework-mcp/src/tools/search/get_map.js.map +1 -1
- package/dist/framework-mcp/src/tools/search/grep_search.js +10 -7
- package/dist/framework-mcp/src/tools/search/grep_search.js.map +1 -1
- package/dist/framework-mcp/src/tools/shell/run_command.js +72 -7
- package/dist/framework-mcp/src/tools/shell/run_command.js.map +1 -1
- package/dist/framework-mcp/src/tools/types.d.ts +10 -9
- package/dist/framework-mcp/src/utils/compliance.d.ts +10 -0
- package/dist/framework-mcp/src/utils/compliance.js +102 -41
- package/dist/framework-mcp/src/utils/compliance.js.map +1 -1
- package/dist/framework-mcp/src/utils/fs.d.ts +10 -7
- package/dist/framework-mcp/src/utils/fs.js +10 -7
- package/dist/framework-mcp/src/utils/fs.js.map +1 -1
- package/dist/framework-mcp/src/utils/types.d.ts +8 -0
- package/dist/framework-mcp/src/utils/types.js +4 -0
- package/dist/framework-mcp/src/utils/types.js.map +1 -1
- package/dist/framework-mcp/src/utils/zod-to-mcp.d.ts +10 -0
- package/dist/framework-mcp/src/utils/zod-to-mcp.js +80 -0
- package/dist/framework-mcp/src/utils/zod-to-mcp.js.map +1 -0
- package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js +4 -4
- 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 +17 -16
- package/dist/framework-mcp/tests/tools/messaging/send_message.test.js.map +1 -1
- package/dist/src/cli/adapters/core.js +2 -1
- package/dist/src/cli/adapters/core.js.map +1 -1
- package/dist/src/cli/adapters/scaffold.js +2 -1
- package/dist/src/cli/adapters/scaffold.js.map +1 -1
- package/dist/src/cli/commands/check.js +17 -17
- package/dist/src/cli/commands/check.js.map +1 -1
- package/dist/src/cli/commands/compliance.d.ts +5 -1
- package/dist/src/cli/commands/compliance.js +34 -42
- package/dist/src/cli/commands/compliance.js.map +1 -1
- package/dist/src/cli/commands/contract.js +6 -5
- package/dist/src/cli/commands/contract.js.map +1 -1
- package/dist/src/cli/commands/coverage.d.ts +1 -0
- package/dist/src/cli/commands/coverage.js +121 -0
- package/dist/src/cli/commands/coverage.js.map +1 -0
- package/dist/src/cli/commands/dashboard.d.ts +1 -1
- package/dist/src/cli/commands/dashboard.js +255 -38
- package/dist/src/cli/commands/dashboard.js.map +1 -1
- package/dist/src/cli/commands/explorer.js +8 -7
- package/dist/src/cli/commands/explorer.js.map +1 -1
- package/dist/src/cli/commands/git.js +8 -9
- package/dist/src/cli/commands/git.js.map +1 -1
- package/dist/src/cli/commands/index-codebase.d.ts +4 -0
- package/dist/src/cli/commands/index-codebase.js +52 -0
- package/dist/src/cli/commands/index-codebase.js.map +1 -0
- package/dist/src/cli/commands/init/scaffold-core.js +7 -6
- package/dist/src/cli/commands/init/scaffold-core.js.map +1 -1
- package/dist/src/cli/commands/init/scaffold-docs.js +4 -3
- package/dist/src/cli/commands/init/scaffold-docs.js.map +1 -1
- package/dist/src/cli/commands/init/scaffold-ops.js +3 -3
- package/dist/src/cli/commands/init/scaffold-ops.js.map +1 -1
- package/dist/src/cli/commands/init/scaffold-standards.js +11 -7
- package/dist/src/cli/commands/init/scaffold-standards.js.map +1 -1
- package/dist/src/cli/commands/init.js +27 -27
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/knowledge.js +5 -32
- package/dist/src/cli/commands/knowledge.js.map +1 -1
- package/dist/src/cli/commands/lint.js +5 -4
- package/dist/src/cli/commands/lint.js.map +1 -1
- package/dist/src/cli/commands/mcp.d.ts +4 -0
- package/dist/src/cli/commands/mcp.js +107 -0
- package/dist/src/cli/commands/mcp.js.map +1 -0
- package/dist/src/cli/commands/orchestrate.d.ts +11 -11
- package/dist/src/cli/commands/orchestrate.js +131 -66
- package/dist/src/cli/commands/orchestrate.js.map +1 -1
- package/dist/src/cli/commands/plan.js +16 -14
- package/dist/src/cli/commands/plan.js.map +1 -1
- package/dist/src/cli/commands/quickstart.d.ts +9 -0
- package/dist/src/cli/commands/quickstart.js +72 -0
- package/dist/src/cli/commands/quickstart.js.map +1 -0
- package/dist/src/cli/commands/script.js +6 -5
- package/dist/src/cli/commands/script.js.map +1 -1
- package/dist/src/cli/commands/security.js +5 -8
- package/dist/src/cli/commands/security.js.map +1 -1
- package/dist/src/cli/commands/status.js +23 -19
- package/dist/src/cli/commands/status.js.map +1 -1
- package/dist/src/cli/commands/trace.d.ts +2 -0
- package/dist/src/cli/commands/trace.js +59 -61
- package/dist/src/cli/commands/trace.js.map +1 -1
- package/dist/src/cli/index.js +38 -6
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/shims.js +2 -2
- package/dist/src/cli/utils/claude.js +2 -1
- package/dist/src/cli/utils/claude.js.map +1 -1
- package/dist/src/cli/utils/compliance.d.ts +10 -9
- package/dist/src/cli/utils/compliance.js +10 -171
- package/dist/src/cli/utils/compliance.js.map +1 -1
- package/dist/src/cli/utils/fs.d.ts +2 -2
- package/dist/src/cli/utils/fs.js +7 -6
- package/dist/src/cli/utils/fs.js.map +1 -1
- package/dist/src/cli/utils/i18n.d.ts +5 -0
- package/dist/src/cli/utils/i18n.js +5 -0
- package/dist/src/cli/utils/i18n.js.map +1 -1
- package/dist/src/cli/utils/memory.js +9 -6
- package/dist/src/cli/utils/memory.js.map +1 -1
- package/dist/src/cli/utils/pkg.js +8 -7
- package/dist/src/cli/utils/pkg.js.map +1 -1
- package/dist/src/cli/utils/schemas.d.ts +4 -4
- package/dist/src/cli/utils/ui.d.ts +23 -0
- package/dist/src/cli/utils/ui.js +42 -0
- package/dist/src/cli/utils/ui.js.map +1 -1
- package/dist/src/contracts/tasks.d.ts +4 -4
- package/dist/src/dashboard/src/hooks/useApi.d.ts +18 -0
- package/dist/src/dashboard/src/hooks/useApi.js +47 -0
- package/dist/src/dashboard/src/hooks/useApi.js.map +1 -0
- package/dist/src/dashboard/src/hooks/useSSE.d.ts +12 -0
- package/dist/src/dashboard/src/hooks/useSSE.js +60 -0
- package/dist/src/dashboard/src/hooks/useSSE.js.map +1 -0
- package/dist/src/modules/adapters/shared.js +3 -3
- package/dist/src/modules/adapters/shared.js.map +1 -1
- package/dist/src/modules/agents/definitions.d.ts +5 -13
- package/dist/src/modules/agents/definitions.js +143 -78
- package/dist/src/modules/agents/definitions.js.map +1 -1
- package/dist/src/modules/agents/registry/analyst.js +2 -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 +8 -6
- package/dist/src/modules/agents/registry/backend.js.map +1 -1
- package/dist/src/modules/agents/registry/database.js.map +1 -1
- package/dist/src/modules/agents/registry/devops.js.map +1 -1
- package/dist/src/modules/agents/registry/explorer.js +2 -0
- package/dist/src/modules/agents/registry/explorer.js.map +1 -1
- package/dist/src/modules/agents/registry/frontend.js +8 -6
- package/dist/src/modules/agents/registry/frontend.js.map +1 -1
- package/dist/src/modules/agents/registry/git.js.map +1 -1
- package/dist/src/modules/agents/registry/manager.js +11 -4
- package/dist/src/modules/agents/registry/manager.js.map +1 -1
- package/dist/src/modules/agents/registry/mobile.js +7 -5
- package/dist/src/modules/agents/registry/mobile.js.map +1 -1
- package/dist/src/modules/agents/registry/native.js +7 -5
- package/dist/src/modules/agents/registry/native.js.map +1 -1
- package/dist/src/modules/agents/registry/quality.js +11 -8
- package/dist/src/modules/agents/registry/quality.js.map +1 -1
- package/dist/src/modules/agents/registry/security.js.map +1 -1
- package/dist/src/modules/engines/agent-executor.d.ts +51 -0
- package/dist/src/modules/engines/agent-executor.js +160 -0
- package/dist/src/modules/engines/agent-executor.js.map +1 -0
- package/dist/src/modules/engines/health-engine.d.ts +7 -1
- package/dist/src/modules/engines/health-engine.js +85 -8
- package/dist/src/modules/engines/health-engine.js.map +1 -1
- package/dist/src/modules/engines/planning-engine.d.ts +1 -1
- package/dist/src/modules/engines/planning-engine.js +5 -4
- package/dist/src/modules/engines/planning-engine.js.map +1 -1
- package/dist/src/modules/engines/quality-gate.d.ts +23 -0
- package/dist/src/modules/engines/quality-gate.js +85 -0
- package/dist/src/modules/engines/quality-gate.js.map +1 -0
- package/dist/src/modules/engines/risk-engine.js +6 -6
- package/dist/src/modules/engines/risk-engine.js.map +1 -1
- package/dist/src/modules/engines/routing-engine.d.ts +68 -1
- package/dist/src/modules/engines/routing-engine.js +328 -26
- package/dist/src/modules/engines/routing-engine.js.map +1 -1
- package/dist/src/modules/engines/types.d.ts +7 -3
- package/dist/src/modules/memory/core.d.ts +50 -0
- package/dist/src/modules/memory/core.js +107 -0
- package/dist/src/modules/memory/core.js.map +1 -0
- package/dist/src/modules/memory/types.d.ts +18 -0
- package/dist/src/modules/memory/types.js +2 -0
- package/dist/src/modules/memory/types.js.map +1 -0
- package/dist/src/modules/memory/vector-store.d.ts +13 -0
- package/dist/src/modules/memory/vector-store.js +75 -0
- package/dist/src/modules/memory/vector-store.js.map +1 -0
- package/dist/src/shared/constants.d.ts +11 -11
- package/dist/src/shared/constants.js +3 -3
- package/dist/src/shared/constants.js.map +1 -1
- package/dist/src/shared/storage.d.ts +10 -10
- package/dist/src/shared/storage.js +15 -13
- package/dist/src/shared/storage.js.map +1 -1
- package/dist/src/shared/string.d.ts +1 -0
- package/dist/src/shared/string.js +30 -0
- package/dist/src/shared/string.js.map +1 -0
- package/dist/src/shared/types.d.ts +8 -0
- package/dist/src/shared/types.js +4 -0
- package/dist/src/shared/types.js.map +1 -1
- package/dist/tests/adapter.test.js +2 -1
- package/dist/tests/adapter.test.js.map +1 -1
- package/dist/tests/cli/commands/check.test.d.ts +1 -0
- package/dist/tests/cli/commands/check.test.js +9 -0
- package/dist/tests/cli/commands/check.test.js.map +1 -0
- package/dist/tests/cli/commands/coverage.test.d.ts +1 -0
- package/dist/tests/cli/commands/coverage.test.js +9 -0
- package/dist/tests/cli/commands/coverage.test.js.map +1 -0
- package/dist/tests/cli/commands/exports.test.d.ts +1 -0
- package/dist/tests/cli/commands/exports.test.js +61 -0
- package/dist/tests/cli/commands/exports.test.js.map +1 -0
- package/dist/tests/cli/commands/lint.test.d.ts +1 -0
- package/dist/tests/cli/commands/lint.test.js +9 -0
- package/dist/tests/cli/commands/lint.test.js.map +1 -0
- package/dist/tests/core-memory.test.d.ts +1 -0
- package/dist/tests/core-memory.test.js +78 -0
- package/dist/tests/core-memory.test.js.map +1 -0
- package/dist/tests/dashboard.test.d.ts +1 -0
- package/dist/tests/dashboard.test.js +116 -0
- package/dist/tests/dashboard.test.js.map +1 -0
- package/dist/tests/fs-utils.test.js +5 -5
- package/dist/tests/fs-utils.test.js.map +1 -1
- package/dist/tests/integration/agent_flow.test.js +18 -10
- package/dist/tests/integration/agent_flow.test.js.map +1 -1
- package/dist/tests/modules/engines/agent-executor.test.d.ts +1 -0
- package/dist/tests/modules/engines/agent-executor.test.js +54 -0
- package/dist/tests/modules/engines/agent-executor.test.js.map +1 -0
- package/dist/tests/modules/engines/evaluation-engine.test.d.ts +1 -0
- package/dist/tests/modules/engines/evaluation-engine.test.js +45 -0
- package/dist/tests/modules/engines/evaluation-engine.test.js.map +1 -0
- package/dist/tests/modules/engines/health-engine.test.d.ts +1 -0
- package/dist/tests/modules/engines/health-engine.test.js +56 -0
- package/dist/tests/modules/engines/health-engine.test.js.map +1 -0
- package/dist/tests/modules/engines/planning-engine.test.d.ts +1 -0
- package/dist/tests/modules/engines/planning-engine.test.js +75 -0
- package/dist/tests/modules/engines/planning-engine.test.js.map +1 -0
- package/dist/tests/modules/engines/risk-engine.test.d.ts +1 -0
- package/dist/tests/modules/engines/risk-engine.test.js +61 -0
- package/dist/tests/modules/engines/risk-engine.test.js.map +1 -0
- package/dist/tests/modules/engines/routing-engine.test.d.ts +1 -0
- package/dist/tests/modules/engines/routing-engine.test.js +56 -0
- package/dist/tests/modules/engines/routing-engine.test.js.map +1 -0
- package/dist/tests/modules/memory/vector-store.test.d.ts +1 -0
- package/dist/tests/modules/memory/vector-store.test.js +109 -0
- package/dist/tests/modules/memory/vector-store.test.js.map +1 -0
- package/dist/tests/orchestrator-dependencies.test.js +17 -16
- package/dist/tests/orchestrator-dependencies.test.js.map +1 -1
- package/dist/tests/planning-engine.test.js +9 -8
- package/dist/tests/planning-engine.test.js.map +1 -1
- package/dist/tests/risk-engine.test.d.ts +1 -0
- package/dist/tests/risk-engine.test.js +44 -0
- package/dist/tests/risk-engine.test.js.map +1 -0
- package/dist/tests/status-cost.test.js +15 -24
- package/dist/tests/status-cost.test.js.map +1 -1
- package/dist/tests/status.test.js +16 -17
- package/dist/tests/status.test.js.map +1 -1
- package/dist/tests/trace-replay.test.js +34 -40
- package/dist/tests/trace-replay.test.js.map +1 -1
- package/dist/ui/assets/index-B-d2ejS8.js +519 -0
- package/dist/ui/assets/index-CyXywq5G.css +1 -0
- package/dist/ui/index.html +2 -2
- package/dist/vitest.config.js +5 -5
- package/dist/vitest.config.js.map +1 -1
- package/framework-mcp/README.md +96 -29
- package/framework-mcp/dist/framework-mcp/src/constants.js +64 -0
- package/framework-mcp/dist/framework-mcp/src/index.js +156 -0
- package/framework-mcp/dist/framework-mcp/src/resources/index.js +58 -0
- package/framework-mcp/dist/framework-mcp/src/tools/control_plane/locking.js +84 -0
- package/framework-mcp/dist/framework-mcp/src/tools/control_plane/registry.js +35 -0
- package/framework-mcp/dist/framework-mcp/src/tools/definitions.js +175 -0
- package/framework-mcp/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js +64 -0
- package/framework-mcp/dist/framework-mcp/src/tools/file_system/patch_file.js +34 -0
- package/framework-mcp/dist/framework-mcp/src/tools/file_system/read_file.js +51 -0
- package/framework-mcp/dist/framework-mcp/src/tools/file_system/replace_text.js +50 -0
- package/framework-mcp/dist/framework-mcp/src/tools/file_system/write_file.js +55 -0
- package/framework-mcp/dist/framework-mcp/src/tools/framework/audit_deps.js +41 -0
- package/framework-mcp/dist/framework-mcp/src/tools/framework/get_status.js +5 -0
- package/framework-mcp/dist/framework-mcp/src/tools/framework/orchestrate.js +5 -0
- package/framework-mcp/dist/framework-mcp/src/tools/framework/run_tests.js +27 -0
- package/framework-mcp/dist/framework-mcp/src/tools/framework/submit_plan.js +13 -0
- package/framework-mcp/dist/framework-mcp/src/tools/framework/update_contract_hash.js +5 -0
- package/framework-mcp/dist/framework-mcp/src/tools/framework/update_memory.js +8 -0
- package/framework-mcp/dist/framework-mcp/src/tools/index.js +111 -0
- package/framework-mcp/dist/framework-mcp/src/tools/memory/delete_knowledge.js +28 -0
- package/framework-mcp/dist/framework-mcp/src/tools/memory/get_insights.js +22 -0
- package/framework-mcp/dist/framework-mcp/src/tools/memory/read_memory.js +28 -0
- package/framework-mcp/dist/framework-mcp/src/tools/memory/search_knowledge.js +48 -0
- package/framework-mcp/dist/framework-mcp/src/tools/memory/store_knowledge.js +30 -0
- package/framework-mcp/dist/framework-mcp/src/tools/messaging/ask_human.js +30 -0
- package/framework-mcp/dist/framework-mcp/src/tools/messaging/log_action.js +22 -0
- package/framework-mcp/dist/framework-mcp/src/tools/messaging/send_message.js +94 -0
- package/framework-mcp/dist/framework-mcp/src/tools/observability/check_ports.js +26 -0
- package/framework-mcp/dist/framework-mcp/src/tools/observability/get_health.js +19 -0
- package/framework-mcp/dist/framework-mcp/src/tools/quality/check_lint.js +30 -0
- package/framework-mcp/dist/framework-mcp/src/tools/schemas.js +153 -0
- package/framework-mcp/dist/framework-mcp/src/tools/search/get_gaps.js +48 -0
- package/framework-mcp/dist/framework-mcp/src/tools/search/get_map.js +43 -0
- package/framework-mcp/dist/framework-mcp/src/tools/search/grep_search.js +78 -0
- package/framework-mcp/dist/framework-mcp/src/tools/search/list_dir.js +28 -0
- package/framework-mcp/dist/framework-mcp/src/tools/shell/run_command.js +121 -0
- package/framework-mcp/dist/framework-mcp/src/tools/types.js +1 -0
- package/framework-mcp/dist/framework-mcp/src/utils/cli.js +59 -0
- package/framework-mcp/dist/framework-mcp/src/utils/compliance.js +292 -0
- package/framework-mcp/dist/framework-mcp/src/utils/errors.js +68 -0
- package/framework-mcp/dist/framework-mcp/src/utils/fs.js +47 -0
- package/framework-mcp/dist/framework-mcp/src/utils/memory.js +74 -0
- package/framework-mcp/dist/framework-mcp/src/utils/metrics.js +56 -0
- package/framework-mcp/dist/framework-mcp/src/utils/permissions.js +71 -0
- package/framework-mcp/dist/framework-mcp/src/utils/security.js +60 -0
- package/framework-mcp/dist/framework-mcp/src/utils/storage.js +207 -0
- package/framework-mcp/dist/framework-mcp/src/utils/types.js +16 -0
- package/framework-mcp/dist/framework-mcp/src/utils/zod-to-mcp.js +79 -0
- package/framework-mcp/dist/index.js +14 -2
- package/framework-mcp/dist/src/cli/utils/memory.js +279 -0
- package/framework-mcp/dist/src/cli/utils/time.js +27 -0
- package/framework-mcp/dist/src/cli/utils/ui.js +100 -0
- package/framework-mcp/dist/src/modules/memory/core.js +106 -0
- package/framework-mcp/dist/src/modules/memory/types.js +1 -0
- package/framework-mcp/dist/src/modules/memory/vector-store.js +74 -0
- package/framework-mcp/dist/src/shared/constants.js +187 -0
- package/framework-mcp/dist/src/shared/fs.js +51 -0
- package/framework-mcp/dist/src/shared/logger.js +116 -0
- package/framework-mcp/dist/src/shared/storage.js +209 -0
- package/framework-mcp/dist/src/shared/types.js +16 -0
- package/framework-mcp/dist/tools/definitions.js +79 -247
- package/framework-mcp/dist/tools/index.js +37 -0
- package/framework-mcp/dist/tools/schemas.js +133 -0
- package/framework-mcp/dist/utils/types.js +4 -0
- package/framework-mcp/dist/utils/zod-to-mcp.js +77 -0
- package/framework-mcp/package.json +2 -2
- package/mcp.json +5 -4
- package/package.json +10 -14
- package/templates/standards/crud-governance.md +1 -1
- package/templates/standards/logging-and-secrets.md +1 -1
- package/templates/standards/performance-standards.md +2 -2
- package/templates/standards/quality-standards.md +1 -1
- package/dist/ui/assets/index-Bkt7APzu.css +0 -1
- package/dist/ui/assets/index-CeX-06mI.js +0 -49
|
@@ -1,323 +1,176 @@
|
|
|
1
|
+
import * as schemas from "./schemas.js";
|
|
2
|
+
import { zodToMcpSchema } from "../utils/zod-to-mcp.js";
|
|
3
|
+
/**
|
|
4
|
+
* ─── SUPREME TOOL REGISTRY ─────────────────────────────────────────
|
|
5
|
+
* Every tool is dynamically generated from its Zod schema.
|
|
6
|
+
* ZERO manual JSON schema maintenance permitted.
|
|
7
|
+
*/
|
|
1
8
|
export const TOOLS = [
|
|
9
|
+
// File System
|
|
2
10
|
{
|
|
3
11
|
name: "read_file",
|
|
4
12
|
description: "Read the content of a file within the project. Supports optional line range reading to prevent stream overload.",
|
|
5
|
-
inputSchema:
|
|
6
|
-
type: "object",
|
|
7
|
-
properties: {
|
|
8
|
-
path: { type: "string", description: "Path to the file relative to project root" },
|
|
9
|
-
startLine: { type: "number", description: "Optional starting line number (1-indexed)" },
|
|
10
|
-
endLine: { type: "number", description: "Optional ending line number (inclusive)" },
|
|
11
|
-
},
|
|
12
|
-
required: ["path"],
|
|
13
|
-
},
|
|
13
|
+
inputSchema: zodToMcpSchema(schemas.ReadFileSchema),
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
|
-
name: "
|
|
17
|
-
description: "
|
|
18
|
-
inputSchema:
|
|
19
|
-
type: "object",
|
|
20
|
-
properties: {
|
|
21
|
-
path: { type: "string", description: "Path to the directory relative to project root (default: '.')" },
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
name: "grep_search",
|
|
27
|
-
description: "Perform a recursive regex search across the codebase to find functions, variables, or patterns.",
|
|
28
|
-
inputSchema: {
|
|
29
|
-
type: "object",
|
|
30
|
-
properties: {
|
|
31
|
-
pattern: { type: "string", description: "The regex pattern to search for" },
|
|
32
|
-
includePattern: { type: "string", description: "Optional: Filter files by extension (e.g., '.ts')" },
|
|
33
|
-
excludePattern: { type: "string", description: "Optional: Directory pattern to exclude (default: 'node_modules')" },
|
|
34
|
-
},
|
|
35
|
-
required: ["pattern"],
|
|
36
|
-
},
|
|
16
|
+
name: "view_file",
|
|
17
|
+
description: "Alias for read_file. Reads the content of a file within the project.",
|
|
18
|
+
inputSchema: zodToMcpSchema(schemas.ReadFileSchema),
|
|
37
19
|
},
|
|
38
20
|
{
|
|
39
21
|
name: "write_file",
|
|
40
22
|
description: "Write content to a file. Creates directories if missing.",
|
|
41
|
-
inputSchema:
|
|
42
|
-
type: "object",
|
|
43
|
-
properties: {
|
|
44
|
-
path: { type: "string", description: "Path to the file relative to project root" },
|
|
45
|
-
content: { type: "string", description: "Complete content of the file" },
|
|
46
|
-
},
|
|
47
|
-
required: ["path", "content"],
|
|
48
|
-
},
|
|
23
|
+
inputSchema: zodToMcpSchema(schemas.WriteFileSchema),
|
|
49
24
|
},
|
|
50
25
|
{
|
|
51
26
|
name: "replace_text",
|
|
52
27
|
description: "Surgically replace a string in a file with another string.",
|
|
53
|
-
inputSchema:
|
|
54
|
-
type: "object",
|
|
55
|
-
properties: {
|
|
56
|
-
path: { type: "string", description: "Path to the file" },
|
|
57
|
-
oldText: { type: "string", description: "The exact text to find" },
|
|
58
|
-
newText: { type: "string", description: "The text to replace it with" },
|
|
59
|
-
allowMultiple: { type: "boolean", description: "Allow multiple replacements if oldText is not unique." }
|
|
60
|
-
},
|
|
61
|
-
required: ["path", "oldText", "newText"],
|
|
62
|
-
},
|
|
28
|
+
inputSchema: zodToMcpSchema(schemas.ReplaceTextSchema),
|
|
63
29
|
},
|
|
64
30
|
{
|
|
65
31
|
name: "batch_surgical_edit",
|
|
66
|
-
description: "Perform multiple surgical text replacements across multiple files in a single batch request.
|
|
67
|
-
inputSchema:
|
|
68
|
-
type: "object",
|
|
69
|
-
properties: {
|
|
70
|
-
edits: {
|
|
71
|
-
type: "array",
|
|
72
|
-
items: {
|
|
73
|
-
type: "object",
|
|
74
|
-
properties: {
|
|
75
|
-
path: { type: "string", description: "Path to the file" },
|
|
76
|
-
oldText: { type: "string", description: "The exact text to find" },
|
|
77
|
-
newText: { type: "string", description: "The text to replace it with" },
|
|
78
|
-
allowMultiple: { type: "boolean", description: "Allow multiple replacements in this file." }
|
|
79
|
-
},
|
|
80
|
-
required: ["path", "oldText", "newText"]
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
},
|
|
84
|
-
required: ["edits"],
|
|
85
|
-
},
|
|
32
|
+
description: "Perform multiple surgical text replacements across multiple files in a single batch request.",
|
|
33
|
+
inputSchema: zodToMcpSchema(schemas.BatchSurgicalEditSchema),
|
|
86
34
|
},
|
|
87
35
|
{
|
|
88
36
|
name: "patch_file",
|
|
89
37
|
description: "Safely update a file by replacing a specific line range with new content.",
|
|
90
|
-
inputSchema:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
38
|
+
inputSchema: zodToMcpSchema(schemas.PatchFileSchema),
|
|
39
|
+
},
|
|
40
|
+
// Search & Exploration
|
|
41
|
+
{
|
|
42
|
+
name: "list_dir",
|
|
43
|
+
description: "List the contents of a directory. Essential for codebase exploration.",
|
|
44
|
+
inputSchema: zodToMcpSchema(schemas.ListDirSchema),
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "grep_search",
|
|
48
|
+
description: "Perform a recursive regex search across the codebase.",
|
|
49
|
+
inputSchema: zodToMcpSchema(schemas.GrepSearchSchema),
|
|
100
50
|
},
|
|
101
51
|
{
|
|
102
52
|
name: "get_project_map",
|
|
103
|
-
description: "Generate a tree-view map of the project structure
|
|
104
|
-
inputSchema:
|
|
105
|
-
type: "object",
|
|
106
|
-
properties: {
|
|
107
|
-
maxDepth: { type: "number", description: "Maximum directory depth to scan (default: 3)" },
|
|
108
|
-
includeFiles: { type: "boolean", description: "Whether to include files in the map (default: true)" }
|
|
109
|
-
}
|
|
110
|
-
}
|
|
53
|
+
description: "Generate a tree-view map of the project structure.",
|
|
54
|
+
inputSchema: zodToMcpSchema(schemas.GetProjectMapSchema),
|
|
111
55
|
},
|
|
112
56
|
{
|
|
113
57
|
name: "get_project_gaps",
|
|
114
|
-
description: "Scans the codebase for TODOs, FIXMEs, and empty function bodies.
|
|
115
|
-
inputSchema:
|
|
116
|
-
type: "object",
|
|
117
|
-
properties: {
|
|
118
|
-
path: { type: "string", description: "Path to the source directory (default: 'src')" },
|
|
119
|
-
},
|
|
120
|
-
},
|
|
58
|
+
description: "Scans the codebase for TODOs, FIXMEs, and empty function bodies.",
|
|
59
|
+
inputSchema: zodToMcpSchema(schemas.GetProjectGapsSchema),
|
|
121
60
|
},
|
|
61
|
+
// Framework & System
|
|
122
62
|
{
|
|
123
|
-
name: "
|
|
124
|
-
description: "
|
|
125
|
-
inputSchema:
|
|
63
|
+
name: "run_shell_command",
|
|
64
|
+
description: "Execute a shell command. Restricted for security.",
|
|
65
|
+
inputSchema: zodToMcpSchema(schemas.RunShellCommandSchema),
|
|
126
66
|
},
|
|
127
67
|
{
|
|
128
68
|
name: "run_tests",
|
|
129
|
-
description: "Execute project test suites
|
|
130
|
-
inputSchema:
|
|
131
|
-
type: "object",
|
|
132
|
-
properties: {
|
|
133
|
-
command: { type: "string", description: "The test command to run (default: project's standard test command)" }
|
|
134
|
-
}
|
|
135
|
-
}
|
|
69
|
+
description: "Execute project test suites and capture pass/fail reports.",
|
|
70
|
+
inputSchema: zodToMcpSchema(schemas.RunTestsSchema),
|
|
136
71
|
},
|
|
137
72
|
{
|
|
138
73
|
name: "get_system_health",
|
|
139
|
-
description: "Retrieve real-time system metrics
|
|
140
|
-
inputSchema:
|
|
74
|
+
description: "Retrieve real-time system metrics (CPU, RAM).",
|
|
75
|
+
inputSchema: zodToMcpSchema(schemas.GetSystemHealthSchema),
|
|
141
76
|
},
|
|
142
77
|
{
|
|
143
78
|
name: "check_active_ports",
|
|
144
|
-
description: "Identify which network ports are currently active
|
|
145
|
-
inputSchema:
|
|
146
|
-
type: "object",
|
|
147
|
-
properties: {
|
|
148
|
-
filter: { type: "string", description: "Optional: Filter results by port number or service name (e.g., ':3000')" }
|
|
149
|
-
}
|
|
150
|
-
}
|
|
79
|
+
description: "Identify which network ports are currently active.",
|
|
80
|
+
inputSchema: zodToMcpSchema(schemas.CheckPortsSchema),
|
|
151
81
|
},
|
|
152
82
|
{
|
|
153
83
|
name: "get_framework_status",
|
|
154
84
|
description: "Get the current project phase, active traces, and agent states.",
|
|
155
|
-
inputSchema:
|
|
85
|
+
inputSchema: zodToMcpSchema(schemas.GetFrameworkStatusSchema),
|
|
156
86
|
},
|
|
157
87
|
{
|
|
158
88
|
name: "read_project_memory",
|
|
159
|
-
description: "Read the full project central memory (PROJECT_MEMORY.md).
|
|
160
|
-
inputSchema:
|
|
89
|
+
description: "Read the full project central memory (PROJECT_MEMORY.md).",
|
|
90
|
+
inputSchema: zodToMcpSchema(schemas.ReadProjectMemorySchema),
|
|
161
91
|
},
|
|
162
92
|
{
|
|
163
93
|
name: "get_memory_insights",
|
|
164
|
-
description: "Retrieve a summarized version of the project memory
|
|
165
|
-
inputSchema:
|
|
94
|
+
description: "Retrieve a summarized version of the project memory.",
|
|
95
|
+
inputSchema: zodToMcpSchema(schemas.GetMemoryInsightsSchema),
|
|
166
96
|
},
|
|
167
97
|
{
|
|
168
98
|
name: "update_project_memory",
|
|
169
99
|
description: "Update a specific section in PROJECT_MEMORY.md.",
|
|
170
|
-
inputSchema:
|
|
171
|
-
type: "object",
|
|
172
|
-
properties: {
|
|
173
|
-
section: { type: "string", description: "Section name (e.g., HISTORY, ACTIVE TASKS)" },
|
|
174
|
-
content: { type: "string", description: "Markdown content to append or set" },
|
|
175
|
-
},
|
|
176
|
-
required: ["section", "content"],
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
name: "orchestrate_loop",
|
|
181
|
-
description: "Process the pending Hermes messages and trigger dynamic state transitions.",
|
|
182
|
-
inputSchema: { type: "object", properties: {} },
|
|
100
|
+
inputSchema: zodToMcpSchema(schemas.UpdateProjectMemorySchema),
|
|
183
101
|
},
|
|
102
|
+
// Memory (Core Memory)
|
|
184
103
|
{
|
|
185
|
-
name: "
|
|
186
|
-
description: "
|
|
187
|
-
inputSchema:
|
|
188
|
-
type: "object",
|
|
189
|
-
properties: {
|
|
190
|
-
from: { type: "string", description: "Sender agent (e.g., @manager, @backend)." },
|
|
191
|
-
to: { type: "string", description: "Target agent (e.g., @backend, @quality)." },
|
|
192
|
-
category: { type: "string", enum: ["ACTION", "DELEGATION", "SUBTASK", "REPLY", "ALERT"], description: "Message type." },
|
|
193
|
-
content: { type: "string", description: "Task description or message content." },
|
|
194
|
-
traceId: { type: "string", description: "Active Trace ID." },
|
|
195
|
-
parentId: { type: "string", description: "Optional parent task trace ID for hierarchical tracking." },
|
|
196
|
-
priority: { type: "string", enum: ["HIGH", "NORMAL", "LOW"], description: "Optional priority level (HIGH, NORMAL, LOW). Defaults to HIGH for ALERT/ACTION." },
|
|
197
|
-
requiresApproval: { type: "boolean", description: "If true, this message will require manager approval before being processed." },
|
|
198
|
-
},
|
|
199
|
-
required: ["from", "to", "category", "content", "traceId"],
|
|
200
|
-
},
|
|
104
|
+
name: "store_knowledge",
|
|
105
|
+
description: "Store a new piece of project knowledge, decision, or code snippet into the vector-based core memory.",
|
|
106
|
+
inputSchema: zodToMcpSchema(schemas.StoreKnowledgeSchema),
|
|
201
107
|
},
|
|
202
108
|
{
|
|
203
|
-
name: "
|
|
204
|
-
description: "
|
|
205
|
-
inputSchema:
|
|
206
|
-
type: "object",
|
|
207
|
-
properties: {
|
|
208
|
-
resource: { type: "string", description: "The resource name or path to lock (e.g., 'memory')." },
|
|
209
|
-
agent: { type: "string", description: "The agent requesting the lock (e.g., '@backend')." },
|
|
210
|
-
ttl: { type: "number", description: "Time-to-live in seconds before the lock auto-expires (default: 60)." }
|
|
211
|
-
},
|
|
212
|
-
required: ["resource", "agent"]
|
|
213
|
-
}
|
|
109
|
+
name: "search_knowledge",
|
|
110
|
+
description: "Search the vector-based core memory for relevant project knowledge, past decisions, or rules.",
|
|
111
|
+
inputSchema: zodToMcpSchema(schemas.SearchKnowledgeSchema),
|
|
214
112
|
},
|
|
215
113
|
{
|
|
216
|
-
name: "
|
|
217
|
-
description: "
|
|
218
|
-
inputSchema:
|
|
219
|
-
type: "object",
|
|
220
|
-
properties: {
|
|
221
|
-
resource: { type: "string", description: "The resource name or path." },
|
|
222
|
-
agent: { type: "string", description: "The agent releasing the lock." }
|
|
223
|
-
},
|
|
224
|
-
required: ["resource", "agent"]
|
|
225
|
-
}
|
|
114
|
+
name: "delete_knowledge",
|
|
115
|
+
description: "Delete an obsolete or incorrect knowledge entry from the Core Memory.",
|
|
116
|
+
inputSchema: zodToMcpSchema(schemas.DeleteKnowledgeSchema),
|
|
226
117
|
},
|
|
227
118
|
{
|
|
228
|
-
name: "
|
|
229
|
-
description: "
|
|
230
|
-
inputSchema:
|
|
231
|
-
type: "object",
|
|
232
|
-
properties: {
|
|
233
|
-
agent: { type: "string", description: "The agent name (e.g., '@backend')." },
|
|
234
|
-
role: { type: "string", description: "The role of the agent." },
|
|
235
|
-
capability: { type: "number", description: "The capability score (1-10)." },
|
|
236
|
-
specialties: {
|
|
237
|
-
type: "object",
|
|
238
|
-
additionalProperties: { type: "number" },
|
|
239
|
-
description: "Sub-specialty weights mapping (e.g. {\"postgres\": 10, \"redis\": 8})"
|
|
240
|
-
}
|
|
241
|
-
},
|
|
242
|
-
required: ["agent", "role"]
|
|
243
|
-
}
|
|
119
|
+
name: "orchestrate_loop",
|
|
120
|
+
description: "Process pending Hermes messages and trigger transitions.",
|
|
121
|
+
inputSchema: zodToMcpSchema(schemas.OrchestrateLoopSchema),
|
|
244
122
|
},
|
|
245
123
|
{
|
|
246
|
-
name: "
|
|
247
|
-
description: "
|
|
248
|
-
inputSchema:
|
|
249
|
-
type: "object",
|
|
250
|
-
properties: {
|
|
251
|
-
agent: { type: "string", description: "The agent name (e.g., @manager, @backend)" },
|
|
252
|
-
action: { type: "string", description: "Action type or name" },
|
|
253
|
-
traceId: { type: "string", description: "The active Trace ID" },
|
|
254
|
-
status: { type: "string", enum: ["SUCCESS", "FAILURE"], description: "The status of the action" },
|
|
255
|
-
summary: { type: "string", description: "Brief description of the action taken" },
|
|
256
|
-
findings: { type: "string", description: "Optional comma-separated findings or details" }
|
|
257
|
-
},
|
|
258
|
-
required: ["agent", "action", "traceId", "status", "summary"]
|
|
259
|
-
}
|
|
124
|
+
name: "submit_plan",
|
|
125
|
+
description: "Submit a structured DAG plan of tasks for the project.",
|
|
126
|
+
inputSchema: zodToMcpSchema(schemas.SubmitPlanSchema),
|
|
260
127
|
},
|
|
261
128
|
{
|
|
262
129
|
name: "update_contract_hash",
|
|
263
130
|
description: "Re-generate and synchronize the backend contract SHA-256 hash.",
|
|
264
|
-
inputSchema:
|
|
131
|
+
inputSchema: zodToMcpSchema(schemas.UpdateContractHashSchema),
|
|
265
132
|
},
|
|
266
133
|
{
|
|
267
|
-
name: "
|
|
268
|
-
description: "
|
|
269
|
-
inputSchema:
|
|
270
|
-
type: "object",
|
|
271
|
-
properties: {
|
|
272
|
-
command: { type: "string", description: "The shell command to execute." },
|
|
273
|
-
},
|
|
274
|
-
required: ["command"],
|
|
275
|
-
},
|
|
134
|
+
name: "audit_dependencies",
|
|
135
|
+
description: "Audits package.json for unused or redundant packages.",
|
|
136
|
+
inputSchema: zodToMcpSchema(schemas.AuditDependenciesSchema),
|
|
276
137
|
},
|
|
277
138
|
{
|
|
278
139
|
name: "check_lint",
|
|
279
|
-
description: "Run the project's linter (e.g., ESLint)
|
|
280
|
-
inputSchema:
|
|
140
|
+
description: "Run the project's linter (e.g., ESLint).",
|
|
141
|
+
inputSchema: zodToMcpSchema(schemas.CheckLintSchema),
|
|
281
142
|
},
|
|
143
|
+
// Control Plane
|
|
282
144
|
{
|
|
283
|
-
name: "
|
|
284
|
-
description: "
|
|
285
|
-
inputSchema:
|
|
286
|
-
type: "object",
|
|
287
|
-
properties: {
|
|
288
|
-
tasks: {
|
|
289
|
-
type: "array",
|
|
290
|
-
items: {
|
|
291
|
-
type: "object",
|
|
292
|
-
properties: {
|
|
293
|
-
id: { type: "string", description: "Unique task ID (e.g. TASK_01)" },
|
|
294
|
-
agent: { type: "string", description: "The agent responsible for the task (e.g. @backend)" },
|
|
295
|
-
task: { type: "string", description: "The task description" },
|
|
296
|
-
dependencies: {
|
|
297
|
-
type: "array",
|
|
298
|
-
items: { type: "string" },
|
|
299
|
-
description: "List of task IDs that must be completed before this task."
|
|
300
|
-
}
|
|
301
|
-
},
|
|
302
|
-
required: ["id", "agent", "task"]
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
},
|
|
306
|
-
required: ["tasks"],
|
|
307
|
-
},
|
|
145
|
+
name: "acquire_lock",
|
|
146
|
+
description: "Acquire a stateful lock on a shared resource.",
|
|
147
|
+
inputSchema: zodToMcpSchema(schemas.AcquireLockSchema),
|
|
308
148
|
},
|
|
309
149
|
{
|
|
310
|
-
name: "
|
|
311
|
-
description: "
|
|
312
|
-
inputSchema:
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
150
|
+
name: "release_lock",
|
|
151
|
+
description: "Release a previously acquired lock.",
|
|
152
|
+
inputSchema: zodToMcpSchema(schemas.ReleaseLockSchema),
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: "register_agent",
|
|
156
|
+
description: "Register an agent instance with the Control Plane.",
|
|
157
|
+
inputSchema: zodToMcpSchema(schemas.RegisterAgentSchema),
|
|
158
|
+
},
|
|
159
|
+
// Messaging (Hermes)
|
|
160
|
+
{
|
|
161
|
+
name: "send_agent_message",
|
|
162
|
+
description: "Send a Hermes protocol message to another agent.",
|
|
163
|
+
inputSchema: zodToMcpSchema(schemas.SendAgentMessageSchema),
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
name: "log_agent_action",
|
|
167
|
+
description: "Log an agent action to the framework logs.",
|
|
168
|
+
inputSchema: zodToMcpSchema(schemas.LogAgentActionSchema),
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
name: "ask_human",
|
|
172
|
+
description: "Pause execution and ask the human developer a clarifying question via the terminal.",
|
|
173
|
+
inputSchema: zodToMcpSchema(schemas.AskHumanSchema),
|
|
174
|
+
},
|
|
322
175
|
];
|
|
323
176
|
//# sourceMappingURL=definitions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../../framework-mcp/src/tools/definitions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../../framework-mcp/src/tools/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
|
-
import { safePath } from "../../utils/security.js";
|
|
3
|
-
import { writeTextFileAtomic } from "../../utils/fs.js";
|
|
4
|
-
import { Metrics } from "../../utils/metrics.js";
|
|
5
2
|
import { verifyCorporateCompliance, verifyRiskAndAwaitApproval } from "../../utils/compliance.js";
|
|
3
|
+
import { writeTextFile } from "../../utils/fs.js";
|
|
4
|
+
import { Metrics } from "../../utils/metrics.js";
|
|
6
5
|
import { verifyWritePermission } from "../../utils/permissions.js";
|
|
6
|
+
import { safePath } from "../../utils/security.js";
|
|
7
7
|
/**
|
|
8
8
|
* Performs multiple surgical text replacements across multiple files in a single batch.
|
|
9
9
|
*/
|
|
@@ -49,7 +49,7 @@ export async function handleBatchSurgicalEdit(projectRoot, args) {
|
|
|
49
49
|
verifyCorporateCompliance(newContent, edit.path);
|
|
50
50
|
// ENFORCE RISK & HUMAN APPROVAL GATEWAY
|
|
51
51
|
await verifyRiskAndAwaitApproval(projectRoot, newContent, edit.path);
|
|
52
|
-
|
|
52
|
+
writeTextFile(filePath, newContent);
|
|
53
53
|
const tokens = Metrics.estimateTokens(newText);
|
|
54
54
|
totalTokens += tokens;
|
|
55
55
|
results.push(`[OK] Edited ${edit.path}`);
|
|
@@ -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,
|
|
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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"}
|
|
@@ -27,7 +27,7 @@ export function handleReadFile(projectRoot, args) {
|
|
|
27
27
|
return { content: [{ type: "text", text: sliced }] };
|
|
28
28
|
}
|
|
29
29
|
// ENFORCE TOKEN ECONOMY: Hard Limit for large files
|
|
30
|
-
const HARD_LIMIT_LINES =
|
|
30
|
+
const HARD_LIMIT_LINES = 300;
|
|
31
31
|
if (lines.length > HARD_LIMIT_LINES && (startLine === undefined || endLine === undefined)) {
|
|
32
32
|
const errMsg = `[TOKEN ECONOMY GUARD] File '${args.path}' is too large (${lines.length} lines). To prevent context overflow and token waste, you MUST provide both 'startLine' and 'endLine' parameters to read specific sections of this file.`;
|
|
33
33
|
Metrics.logError(projectRoot, "@mcp", `read_file: ${args.path} (blocked)`, errMsg);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
|
-
import {
|
|
3
|
-
import { writeTextFileAtomic } from "../../utils/fs.js";
|
|
2
|
+
import { writeTextFile } from "../../utils/fs.js";
|
|
4
3
|
import { Metrics } from "../../utils/metrics.js";
|
|
4
|
+
import { safePath } from "../../utils/security.js";
|
|
5
5
|
import { verifyCorporateCompliance, verifyRiskAndAwaitApproval } from "../../utils/compliance.js";
|
|
6
6
|
import { verifyWritePermission } from "../../utils/permissions.js";
|
|
7
7
|
export async function handleReplaceText(projectRoot, args) {
|
|
@@ -43,7 +43,7 @@ export async function handleReplaceText(projectRoot, args) {
|
|
|
43
43
|
verifyCorporateCompliance(newContent, args.path);
|
|
44
44
|
// ENFORCE RISK & HUMAN APPROVAL GATEWAY
|
|
45
45
|
await verifyRiskAndAwaitApproval(projectRoot, newContent, args.path);
|
|
46
|
-
|
|
46
|
+
writeTextFile(filePath, newContent);
|
|
47
47
|
const tokens = Metrics.estimateTokens(newText);
|
|
48
48
|
Metrics.logUsage(projectRoot, "@mcp", `replace_text: ${args.path}`, tokens);
|
|
49
49
|
return { content: [{ type: "text", text: `[OK] Surgical edit successful in ${args.path}` }] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replace_text.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/file_system/replace_text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"replace_text.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/file_system/replace_text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGnD,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,WAAmB,EAAE,IAAqB;IAC9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAElD,4BAA4B;IAC5B,qBAAqB,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC,mBAAmB;IAEtE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,2BAA2B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;QAClE,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,wFAAwF;IACxF,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAC5G,MAAM,GAAG,GAAG,2BAA2B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,KAAK,aAAa,IAAI,CAAC,IAAI,IAAI;gBAC5F,0EAA0E,CAAC;YACvF,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,0EAA0E;IAC1E,yEAAyE;IACzE,IAAI,UAAkB,CAAC;IACvB,IAAI,aAAa,EAAE,CAAC;QAChB,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;IACjH,CAAC;SAAM,CAAC;QACJ,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,+BAA+B;IAC/B,yBAAyB,CAAC,UAAU,EAAE,IAAI,CAAC,IAAc,CAAC,CAAC;IAE3D,wCAAwC;IACxC,MAAM,0BAA0B,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAErE,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEpC,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IAE5E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oCAAoC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;AAClG,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ToolResult, WriteFileArgs } from "../types.js";
|
|
2
2
|
export declare function handleWriteFile(projectRoot: string, args: WriteFileArgs): Promise<ToolResult>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import path from "path";
|
|
3
|
-
import {
|
|
4
|
-
import { writeTextFileAtomic, appendFileSafe } from "../../utils/fs.js";
|
|
3
|
+
import { appendFile, writeTextFile } from "../../utils/fs.js";
|
|
5
4
|
import { Metrics } from "../../utils/metrics.js";
|
|
5
|
+
import { resolveFrameworkDir, safePath } from "../../utils/security.js";
|
|
6
6
|
import { verifyCorporateCompliance, verifyRiskAndAwaitApproval } from "../../utils/compliance.js";
|
|
7
7
|
import { verifyWritePermission } from "../../utils/permissions.js";
|
|
8
8
|
export async function handleWriteFile(projectRoot, args) {
|
|
@@ -32,7 +32,7 @@ export async function handleWriteFile(projectRoot, args) {
|
|
|
32
32
|
verifyCorporateCompliance(content, args.path);
|
|
33
33
|
// ENFORCE RISK & HUMAN APPROVAL GATEWAY
|
|
34
34
|
await verifyRiskAndAwaitApproval(projectRoot, content, args.path);
|
|
35
|
-
|
|
35
|
+
writeTextFile(filePath, content);
|
|
36
36
|
// AUTO-LOGGING & METRICS
|
|
37
37
|
const tokens = Metrics.estimateTokens(content);
|
|
38
38
|
Metrics.logUsage(projectRoot, "@mcp", `write_file: ${args.path}`, tokens);
|
|
@@ -41,7 +41,7 @@ export async function handleWriteFile(projectRoot, args) {
|
|
|
41
41
|
const memoryPath = path.join(projectRoot, frameworkDir, "memory/PROJECT_MEMORY.md");
|
|
42
42
|
if (fs.existsSync(memoryPath)) {
|
|
43
43
|
const entry = `\n### ${new Date().toISOString().split("T")[0]} — Auto-Update\n- **Action:** wrote file \`${args.path}\` (${tokens} tokens estimated).\n`;
|
|
44
|
-
|
|
44
|
+
appendFile(memoryPath, entry);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
catch { /* ignore memory logging errors */ }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write_file.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/file_system/write_file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"write_file.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/file_system/write_file.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ export function handleAuditDependencies(projectRoot, _args) {
|
|
|
28
28
|
// 2. Scan for "any" usage in package names (bad practice markers)
|
|
29
29
|
const legacyDeps = depNames.filter(d => d.includes("legacy") || d.includes("compat"));
|
|
30
30
|
if (legacyDeps.length > 0) {
|
|
31
|
-
results.push(
|
|
31
|
+
results.push(`[INFO] Legacy compatibility packages detected: ${legacyDeps.join(", ")}`);
|
|
32
32
|
}
|
|
33
33
|
return {
|
|
34
34
|
content: [{
|