agent-enderun 1.1.8 → 1.1.10
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 +18 -277
- package/bin/enderun-dashboard.js +13 -13
- package/bin/utils/docgen.ts +24 -0
- package/dist/src/cli/adapters/core.d.ts +12 -0
- package/dist/src/cli/adapters/core.js +44 -0
- package/dist/src/cli/adapters/core.js.map +1 -0
- package/dist/src/cli/adapters/index.d.ts +4 -0
- package/dist/src/cli/adapters/index.js +5 -0
- package/dist/src/cli/adapters/index.js.map +1 -0
- package/dist/src/cli/adapters/scaffold.d.ts +2 -0
- package/dist/src/cli/adapters/scaffold.js +64 -0
- package/dist/src/cli/adapters/scaffold.js.map +1 -0
- package/dist/src/cli/adapters/utils.d.ts +4 -0
- package/dist/src/cli/adapters/utils.js +77 -0
- package/dist/src/cli/adapters/utils.js.map +1 -0
- package/dist/src/cli/commands/check.js +10 -62
- package/dist/src/cli/commands/check.js.map +1 -1
- package/dist/src/cli/commands/init.js +13 -22
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/orchestrate.d.ts +9 -9
- package/dist/src/cli/commands/orchestrate.js +58 -89
- package/dist/src/cli/commands/orchestrate.js.map +1 -1
- package/dist/src/cli/commands/plan.d.ts +4 -0
- package/dist/src/cli/commands/plan.js +40 -0
- package/dist/src/cli/commands/plan.js.map +1 -0
- package/dist/src/cli/commands/status.js +27 -78
- package/dist/src/cli/commands/status.js.map +1 -1
- package/dist/src/cli/commands/trace.js +18 -31
- package/dist/src/cli/commands/trace.js.map +1 -1
- package/dist/src/cli/index.js +6 -2
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/utils/compliance.d.ts +7 -0
- package/dist/src/cli/utils/compliance.js +50 -0
- package/dist/src/cli/utils/compliance.js.map +1 -0
- package/dist/src/cli/utils/fs.d.ts +1 -1
- 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 +12 -4
- package/dist/src/cli/utils/memory.js +111 -147
- package/dist/src/cli/utils/memory.js.map +1 -1
- package/dist/src/cli/utils/pkg.js +1 -1
- package/dist/src/cli/utils/schemas.d.ts +49 -0
- package/dist/src/cli/utils/schemas.js +20 -0
- package/dist/src/cli/utils/schemas.js.map +1 -0
- package/dist/src/cli/utils/string.d.ts +1 -0
- package/dist/src/cli/utils/string.js +10 -4
- package/dist/src/cli/utils/string.js.map +1 -1
- package/dist/src/cli/utils/ui.js +7 -4
- package/dist/src/cli/utils/ui.js.map +1 -1
- package/dist/src/contracts/index.d.ts +1 -0
- package/dist/src/contracts/index.js +2 -0
- package/dist/src/contracts/index.js.map +1 -0
- package/dist/src/contracts/tasks.d.ts +44 -0
- package/dist/src/contracts/tasks.js +21 -0
- package/dist/src/contracts/tasks.js.map +1 -0
- package/dist/src/modules/adapters/definitions.d.ts +1 -1
- package/dist/src/modules/adapters/shared.js +9 -3
- package/dist/src/modules/adapters/shared.js.map +1 -1
- package/dist/src/modules/adapters/types.d.ts +2 -2
- package/dist/src/modules/agents/definitions.d.ts +38 -5
- package/dist/src/modules/agents/definitions.js +696 -93
- package/dist/src/modules/agents/definitions.js.map +1 -1
- package/dist/src/shared/fs.d.ts +1 -0
- package/dist/src/shared/fs.js +8 -0
- package/dist/src/shared/fs.js.map +1 -1
- package/dist/src/shared/logger.js +3 -6
- package/dist/src/shared/logger.js.map +1 -1
- package/dist/tests/adapter.test.js +1 -1
- package/dist/tests/adapter.test.js.map +1 -1
- package/dist/tests/agents-definitions.test.js +19 -13
- package/dist/tests/agents-definitions.test.js.map +1 -1
- package/dist/tests/approve.test.js +24 -58
- package/dist/tests/approve.test.js.map +1 -1
- package/dist/tests/cli/init/adapter_init.test.js +39 -0
- package/dist/tests/cli/init/adapter_init.test.js.map +1 -0
- package/dist/tests/integration/agent_flow.test.js +53 -0
- package/dist/tests/integration/agent_flow.test.js.map +1 -0
- package/dist/tests/memory-utils.test.js +28 -144
- package/dist/tests/memory-utils.test.js.map +1 -1
- package/dist/tests/modules/adapters/adapters.test.js +30 -0
- package/dist/tests/modules/adapters/adapters.test.js.map +1 -0
- package/dist/tests/orchestrate.test.js +28 -92
- package/dist/tests/orchestrate.test.js.map +1 -1
- package/dist/tests/status.test.js +27 -85
- package/dist/tests/status.test.js.map +1 -1
- package/dist/tests/time.test.js +1 -1
- package/dist/tests/trace.test.js +15 -48
- package/dist/tests/trace.test.js.map +1 -1
- package/package.json +5 -18
- package/src/cli/adapters/core.ts +54 -0
- package/src/cli/adapters/index.ts +4 -0
- package/src/cli/adapters/scaffold.ts +77 -0
- package/src/cli/adapters/utils.ts +87 -0
- package/src/cli/commands/check.ts +10 -62
- package/src/cli/commands/init.ts +13 -22
- package/src/cli/commands/orchestrate.ts +62 -88
- package/src/cli/commands/plan.ts +47 -0
- package/src/cli/commands/status.ts +26 -74
- package/src/cli/commands/trace.ts +18 -33
- package/src/cli/index.ts +6 -2
- package/src/cli/utils/compliance.ts +66 -0
- package/src/cli/utils/fs.ts +2 -2
- package/src/cli/utils/memory.ts +118 -156
- package/src/cli/utils/pkg.ts +1 -1
- package/src/cli/utils/schemas.ts +22 -0
- package/src/cli/utils/string.ts +11 -4
- package/src/cli/utils/ui.ts +7 -4
- package/src/contracts/index.ts +1 -0
- package/src/contracts/tasks.ts +26 -0
- package/src/modules/adapters/definitions.ts +1 -1
- package/src/modules/adapters/shared.ts +9 -3
- package/src/modules/adapters/types.ts +2 -2
- package/src/modules/agents/definitions.ts +816 -103
- package/src/shared/fs.ts +9 -0
- package/src/shared/logger.ts +3 -6
- package/.github/workflows/ci.yml +0 -40
- package/ENDERUN.md +0 -264
- package/bin/compile.js +0 -21
- package/bin/generate-cursor-rules.js +0 -78
- package/bin/hermes-sandbox.js +0 -145
- package/bin/run-multi-test.js +0 -77
- package/bin/test-init-run.js +0 -147
- package/bin/watch-memory.js +0 -54
- package/dist/init-adapters/antigravity-cli/.agents/BRAIN_DASHBOARD.md +0 -11
- package/dist/init-adapters/antigravity-cli/.agents/STATUS.md +0 -3
- package/dist/init-adapters/antigravity-cli/.agents/agents/analyst/agent.json +0 -28
- package/dist/init-adapters/antigravity-cli/.agents/agents/architect/agent.json +0 -30
- package/dist/init-adapters/antigravity-cli/.agents/agents/backend/agent.json +0 -30
- package/dist/init-adapters/antigravity-cli/.agents/agents/database/agent.json +0 -29
- package/dist/init-adapters/antigravity-cli/.agents/agents/devops/agent.json +0 -28
- package/dist/init-adapters/antigravity-cli/.agents/agents/explorer/agent.json +0 -29
- package/dist/init-adapters/antigravity-cli/.agents/agents/frontend/agent.json +0 -29
- package/dist/init-adapters/antigravity-cli/.agents/agents/git/agent.json +0 -28
- package/dist/init-adapters/antigravity-cli/.agents/agents/manager/agent.json +0 -30
- package/dist/init-adapters/antigravity-cli/.agents/agents/mobile/agent.json +0 -29
- package/dist/init-adapters/antigravity-cli/.agents/agents/native/agent.json +0 -29
- package/dist/init-adapters/antigravity-cli/.agents/agents/quality/agent.json +0 -29
- package/dist/init-adapters/antigravity-cli/.agents/agents/security/agent.json +0 -29
- package/dist/init-adapters/antigravity-cli/.agents/cli-commands.json +0 -32
- package/dist/init-adapters/antigravity-cli/.agents/config.json +0 -12
- package/dist/init-adapters/antigravity-cli/.agents/knowledge/agents-manifest.md +0 -79
- package/dist/init-adapters/antigravity-cli/.agents/knowledge/approval-flows.md +0 -61
- package/dist/init-adapters/antigravity-cli/.agents/knowledge/component-patterns.md +0 -91
- package/dist/init-adapters/antigravity-cli/.agents/knowledge/data-fetching-patterns.md +0 -13
- package/dist/init-adapters/antigravity-cli/.agents/knowledge/design-system.md +0 -31
- package/dist/init-adapters/antigravity-cli/.agents/knowledge/enterprise-architecture.md +0 -69
- package/dist/init-adapters/antigravity-cli/.agents/knowledge/error-handling.md +0 -74
- package/dist/init-adapters/antigravity-cli/.agents/knowledge/eslint-standards.md +0 -10
- package/dist/init-adapters/antigravity-cli/.agents/knowledge/logging.md +0 -7
- package/dist/init-adapters/antigravity-cli/.agents/knowledge/tech-stack.md +0 -9
- package/dist/init-adapters/antigravity-cli/.agents/mcp_config.json +0 -13
- package/dist/init-adapters/antigravity-cli/.agents/memory/DECISIONS.md +0 -10
- package/dist/init-adapters/antigravity-cli/.agents/memory/PROJECT_MEMORY.md +0 -8
- package/dist/init-adapters/antigravity-cli/.agents/observability/audit_log.md +0 -5
- package/dist/init-adapters/antigravity-cli/.agents/observability/telemetry.md +0 -6
- package/dist/init-adapters/antigravity-cli/.agents/registry/agent_registry.md +0 -18
- package/dist/init-adapters/antigravity-cli/.agents/router/routing_rules.md +0 -8
- package/dist/init-adapters/antigravity-cli/.agents/rules/analyst.md +0 -16
- package/dist/init-adapters/antigravity-cli/.agents/rules/architect.md +0 -16
- package/dist/init-adapters/antigravity-cli/.agents/rules/backend.md +0 -16
- package/dist/init-adapters/antigravity-cli/.agents/rules/database.md +0 -16
- package/dist/init-adapters/antigravity-cli/.agents/rules/devops.md +0 -16
- package/dist/init-adapters/antigravity-cli/.agents/rules/explorer.md +0 -16
- package/dist/init-adapters/antigravity-cli/.agents/rules/frontend.md +0 -16
- package/dist/init-adapters/antigravity-cli/.agents/rules/git.md +0 -16
- package/dist/init-adapters/antigravity-cli/.agents/rules/manager.md +0 -16
- package/dist/init-adapters/antigravity-cli/.agents/rules/mobile.md +0 -16
- package/dist/init-adapters/antigravity-cli/.agents/rules/native.md +0 -16
- package/dist/init-adapters/antigravity-cli/.agents/rules/quality.md +0 -16
- package/dist/init-adapters/antigravity-cli/.agents/rules/security.md +0 -16
- package/dist/init-adapters/antigravity-cli/.agents/skills/discovery.md +0 -3
- package/dist/init-adapters/antigravity-cli/.agents/skills/editing.md +0 -3
- package/dist/init-adapters/antigravity-cli/.agents/skills/execution.md +0 -4
- package/dist/init-adapters/antigravity-cli/.agents/skills/file_system.md +0 -4
- package/dist/init-adapters/antigravity-cli/.agents/skills/orchestration.md +0 -3
- package/dist/init-adapters/antigravity-cli/AGENTS.md +0 -8
- package/dist/init-adapters/antigravity-cli/ENDERUN.md +0 -261
- package/dist/init-adapters/antigravity-cli/docs/README.md +0 -6
- package/dist/init-adapters/antigravity-cli/docs/getting-started.md +0 -4
- package/dist/init-adapters/antigravity-cli/mcp.json +0 -13
- package/dist/init-adapters/antigravity-cli/package.json +0 -5
- package/dist/init-adapters/antigravity-cli/panda.config.ts +0 -2
- package/dist/init-adapters/claude/.claude/BRAIN_DASHBOARD.md +0 -11
- package/dist/init-adapters/claude/.claude/STATUS.md +0 -3
- package/dist/init-adapters/claude/.claude/agents/analyst.md +0 -17
- package/dist/init-adapters/claude/.claude/agents/architect.md +0 -17
- package/dist/init-adapters/claude/.claude/agents/backend.md +0 -17
- package/dist/init-adapters/claude/.claude/agents/database.md +0 -17
- package/dist/init-adapters/claude/.claude/agents/devops.md +0 -17
- package/dist/init-adapters/claude/.claude/agents/explorer.md +0 -17
- package/dist/init-adapters/claude/.claude/agents/frontend.md +0 -17
- package/dist/init-adapters/claude/.claude/agents/git.md +0 -17
- package/dist/init-adapters/claude/.claude/agents/manager.md +0 -17
- package/dist/init-adapters/claude/.claude/agents/mobile.md +0 -17
- package/dist/init-adapters/claude/.claude/agents/native.md +0 -17
- package/dist/init-adapters/claude/.claude/agents/quality.md +0 -17
- package/dist/init-adapters/claude/.claude/agents/security.md +0 -17
- package/dist/init-adapters/claude/.claude/cli-commands.json +0 -32
- package/dist/init-adapters/claude/.claude/config.json +0 -12
- package/dist/init-adapters/claude/.claude/knowledge/agents-manifest.md +0 -79
- package/dist/init-adapters/claude/.claude/knowledge/approval-flows.md +0 -61
- package/dist/init-adapters/claude/.claude/knowledge/component-patterns.md +0 -91
- package/dist/init-adapters/claude/.claude/knowledge/data-fetching-patterns.md +0 -13
- package/dist/init-adapters/claude/.claude/knowledge/design-system.md +0 -31
- package/dist/init-adapters/claude/.claude/knowledge/enterprise-architecture.md +0 -69
- package/dist/init-adapters/claude/.claude/knowledge/error-handling.md +0 -74
- package/dist/init-adapters/claude/.claude/knowledge/eslint-standards.md +0 -10
- package/dist/init-adapters/claude/.claude/knowledge/logging.md +0 -7
- package/dist/init-adapters/claude/.claude/knowledge/tech-stack.md +0 -9
- package/dist/init-adapters/claude/.claude/mcp_config.json +0 -13
- package/dist/init-adapters/claude/.claude/memory/DECISIONS.md +0 -10
- package/dist/init-adapters/claude/.claude/memory/PROJECT_MEMORY.md +0 -8
- package/dist/init-adapters/claude/.claude/observability/audit_log.md +0 -5
- package/dist/init-adapters/claude/.claude/observability/telemetry.md +0 -6
- package/dist/init-adapters/claude/.claude/registry/agent_registry.md +0 -18
- package/dist/init-adapters/claude/.claude/router/routing_rules.md +0 -8
- package/dist/init-adapters/claude/.claude/rules/analyst.md +0 -16
- package/dist/init-adapters/claude/.claude/rules/architect.md +0 -16
- package/dist/init-adapters/claude/.claude/rules/backend.md +0 -16
- package/dist/init-adapters/claude/.claude/rules/database.md +0 -16
- package/dist/init-adapters/claude/.claude/rules/devops.md +0 -16
- package/dist/init-adapters/claude/.claude/rules/explorer.md +0 -16
- package/dist/init-adapters/claude/.claude/rules/frontend.md +0 -16
- package/dist/init-adapters/claude/.claude/rules/git.md +0 -16
- package/dist/init-adapters/claude/.claude/rules/manager.md +0 -16
- package/dist/init-adapters/claude/.claude/rules/mobile.md +0 -16
- package/dist/init-adapters/claude/.claude/rules/native.md +0 -16
- package/dist/init-adapters/claude/.claude/rules/quality.md +0 -16
- package/dist/init-adapters/claude/.claude/rules/security.md +0 -16
- package/dist/init-adapters/claude/.claude/skills/discovery.md +0 -3
- package/dist/init-adapters/claude/.claude/skills/editing.md +0 -3
- package/dist/init-adapters/claude/.claude/skills/execution.md +0 -4
- package/dist/init-adapters/claude/.claude/skills/file_system.md +0 -4
- package/dist/init-adapters/claude/.claude/skills/orchestration.md +0 -3
- package/dist/init-adapters/claude/.mcp.json +0 -13
- package/dist/init-adapters/claude/CLAUDE.md +0 -8
- package/dist/init-adapters/claude/ENDERUN.md +0 -261
- package/dist/init-adapters/claude/docs/README.md +0 -6
- package/dist/init-adapters/claude/docs/getting-started.md +0 -4
- package/dist/init-adapters/claude/mcp.json +0 -13
- package/dist/init-adapters/claude/package.json +0 -5
- package/dist/init-adapters/claude/panda.config.ts +0 -2
- package/dist/init-adapters/codex/.github/BRAIN_DASHBOARD.md +0 -11
- package/dist/init-adapters/codex/.github/STATUS.md +0 -3
- package/dist/init-adapters/codex/.github/agents/analyst.md +0 -17
- package/dist/init-adapters/codex/.github/agents/architect.md +0 -17
- package/dist/init-adapters/codex/.github/agents/backend.md +0 -17
- package/dist/init-adapters/codex/.github/agents/database.md +0 -17
- package/dist/init-adapters/codex/.github/agents/devops.md +0 -17
- package/dist/init-adapters/codex/.github/agents/explorer.md +0 -17
- package/dist/init-adapters/codex/.github/agents/frontend.md +0 -17
- package/dist/init-adapters/codex/.github/agents/git.md +0 -17
- package/dist/init-adapters/codex/.github/agents/manager.md +0 -17
- package/dist/init-adapters/codex/.github/agents/mobile.md +0 -17
- package/dist/init-adapters/codex/.github/agents/native.md +0 -17
- package/dist/init-adapters/codex/.github/agents/quality.md +0 -17
- package/dist/init-adapters/codex/.github/agents/security.md +0 -17
- package/dist/init-adapters/codex/.github/cli-commands.json +0 -32
- package/dist/init-adapters/codex/.github/config.json +0 -12
- package/dist/init-adapters/codex/.github/instructions/agents-manifest.md +0 -79
- package/dist/init-adapters/codex/.github/instructions/analyst.md +0 -16
- package/dist/init-adapters/codex/.github/instructions/approval-flows.md +0 -61
- package/dist/init-adapters/codex/.github/instructions/architect.md +0 -16
- package/dist/init-adapters/codex/.github/instructions/backend.md +0 -16
- package/dist/init-adapters/codex/.github/instructions/component-patterns.md +0 -91
- package/dist/init-adapters/codex/.github/instructions/data-fetching-patterns.md +0 -13
- package/dist/init-adapters/codex/.github/instructions/database.md +0 -16
- package/dist/init-adapters/codex/.github/instructions/design-system.md +0 -31
- package/dist/init-adapters/codex/.github/instructions/devops.md +0 -16
- package/dist/init-adapters/codex/.github/instructions/enterprise-architecture.md +0 -69
- package/dist/init-adapters/codex/.github/instructions/error-handling.md +0 -74
- package/dist/init-adapters/codex/.github/instructions/eslint-standards.md +0 -10
- package/dist/init-adapters/codex/.github/instructions/explorer.md +0 -16
- package/dist/init-adapters/codex/.github/instructions/frontend.md +0 -16
- package/dist/init-adapters/codex/.github/instructions/git.md +0 -16
- package/dist/init-adapters/codex/.github/instructions/logging.md +0 -7
- package/dist/init-adapters/codex/.github/instructions/manager.md +0 -16
- package/dist/init-adapters/codex/.github/instructions/mobile.md +0 -16
- package/dist/init-adapters/codex/.github/instructions/native.md +0 -16
- package/dist/init-adapters/codex/.github/instructions/quality.md +0 -16
- package/dist/init-adapters/codex/.github/instructions/security.md +0 -16
- package/dist/init-adapters/codex/.github/instructions/tech-stack.md +0 -9
- package/dist/init-adapters/codex/.github/mcp_config.json +0 -13
- package/dist/init-adapters/codex/.github/memory/DECISIONS.md +0 -10
- package/dist/init-adapters/codex/.github/memory/PROJECT_MEMORY.md +0 -8
- package/dist/init-adapters/codex/.github/observability/audit_log.md +0 -5
- package/dist/init-adapters/codex/.github/observability/telemetry.md +0 -6
- package/dist/init-adapters/codex/.github/registry/agent_registry.md +0 -18
- package/dist/init-adapters/codex/.github/router/routing_rules.md +0 -8
- package/dist/init-adapters/codex/.github/skills/discovery.md +0 -3
- package/dist/init-adapters/codex/.github/skills/editing.md +0 -3
- package/dist/init-adapters/codex/.github/skills/execution.md +0 -4
- package/dist/init-adapters/codex/.github/skills/file_system.md +0 -4
- package/dist/init-adapters/codex/.github/skills/orchestration.md +0 -3
- package/dist/init-adapters/codex/.mcp.json +0 -13
- package/dist/init-adapters/codex/.vscode/mcp.json +0 -13
- package/dist/init-adapters/codex/ENDERUN.md +0 -261
- package/dist/init-adapters/codex/copilot-instructions.md +0 -7
- package/dist/init-adapters/codex/docs/README.md +0 -6
- package/dist/init-adapters/codex/docs/getting-started.md +0 -4
- package/dist/init-adapters/codex/mcp.json +0 -13
- package/dist/init-adapters/codex/package.json +0 -5
- package/dist/init-adapters/codex/panda.config.ts +0 -2
- package/dist/init-adapters/cursor/.cursor/BRAIN_DASHBOARD.md +0 -11
- package/dist/init-adapters/cursor/.cursor/STATUS.md +0 -3
- package/dist/init-adapters/cursor/.cursor/agents/analyst.md +0 -17
- package/dist/init-adapters/cursor/.cursor/agents/architect.md +0 -17
- package/dist/init-adapters/cursor/.cursor/agents/backend.md +0 -17
- package/dist/init-adapters/cursor/.cursor/agents/database.md +0 -17
- package/dist/init-adapters/cursor/.cursor/agents/devops.md +0 -17
- package/dist/init-adapters/cursor/.cursor/agents/explorer.md +0 -17
- package/dist/init-adapters/cursor/.cursor/agents/frontend.md +0 -17
- package/dist/init-adapters/cursor/.cursor/agents/git.md +0 -17
- package/dist/init-adapters/cursor/.cursor/agents/manager.md +0 -17
- package/dist/init-adapters/cursor/.cursor/agents/mobile.md +0 -17
- package/dist/init-adapters/cursor/.cursor/agents/native.md +0 -17
- package/dist/init-adapters/cursor/.cursor/agents/quality.md +0 -17
- package/dist/init-adapters/cursor/.cursor/agents/security.md +0 -17
- package/dist/init-adapters/cursor/.cursor/cli-commands.json +0 -32
- package/dist/init-adapters/cursor/.cursor/config.json +0 -12
- package/dist/init-adapters/cursor/.cursor/knowledge/agents-manifest.md +0 -79
- package/dist/init-adapters/cursor/.cursor/knowledge/approval-flows.md +0 -61
- package/dist/init-adapters/cursor/.cursor/knowledge/component-patterns.md +0 -91
- package/dist/init-adapters/cursor/.cursor/knowledge/data-fetching-patterns.md +0 -13
- package/dist/init-adapters/cursor/.cursor/knowledge/design-system.md +0 -31
- package/dist/init-adapters/cursor/.cursor/knowledge/enterprise-architecture.md +0 -69
- package/dist/init-adapters/cursor/.cursor/knowledge/error-handling.md +0 -74
- package/dist/init-adapters/cursor/.cursor/knowledge/eslint-standards.md +0 -10
- package/dist/init-adapters/cursor/.cursor/knowledge/logging.md +0 -7
- package/dist/init-adapters/cursor/.cursor/knowledge/tech-stack.md +0 -9
- package/dist/init-adapters/cursor/.cursor/mcp.json +0 -13
- package/dist/init-adapters/cursor/.cursor/memory/DECISIONS.md +0 -10
- package/dist/init-adapters/cursor/.cursor/memory/PROJECT_MEMORY.md +0 -8
- package/dist/init-adapters/cursor/.cursor/observability/audit_log.md +0 -5
- package/dist/init-adapters/cursor/.cursor/observability/telemetry.md +0 -6
- package/dist/init-adapters/cursor/.cursor/registry/agent_registry.md +0 -18
- package/dist/init-adapters/cursor/.cursor/router/routing_rules.md +0 -8
- package/dist/init-adapters/cursor/.cursor/rules/analyst.mdc +0 -22
- package/dist/init-adapters/cursor/.cursor/rules/architect.mdc +0 -22
- package/dist/init-adapters/cursor/.cursor/rules/backend.mdc +0 -22
- package/dist/init-adapters/cursor/.cursor/rules/database.mdc +0 -22
- package/dist/init-adapters/cursor/.cursor/rules/devops.mdc +0 -22
- package/dist/init-adapters/cursor/.cursor/rules/explorer.mdc +0 -22
- package/dist/init-adapters/cursor/.cursor/rules/frontend.mdc +0 -22
- package/dist/init-adapters/cursor/.cursor/rules/git.mdc +0 -22
- package/dist/init-adapters/cursor/.cursor/rules/manager.mdc +0 -22
- package/dist/init-adapters/cursor/.cursor/rules/mobile.mdc +0 -22
- package/dist/init-adapters/cursor/.cursor/rules/native.mdc +0 -22
- package/dist/init-adapters/cursor/.cursor/rules/quality.mdc +0 -22
- package/dist/init-adapters/cursor/.cursor/rules/security.mdc +0 -22
- package/dist/init-adapters/cursor/.cursor/skills/discovery.md +0 -3
- package/dist/init-adapters/cursor/.cursor/skills/editing.md +0 -3
- package/dist/init-adapters/cursor/.cursor/skills/execution.md +0 -4
- package/dist/init-adapters/cursor/.cursor/skills/file_system.md +0 -4
- package/dist/init-adapters/cursor/.cursor/skills/orchestration.md +0 -3
- package/dist/init-adapters/cursor/CURSOR.md +0 -7
- package/dist/init-adapters/cursor/ENDERUN.md +0 -261
- package/dist/init-adapters/cursor/docs/README.md +0 -6
- package/dist/init-adapters/cursor/docs/getting-started.md +0 -4
- package/dist/init-adapters/cursor/mcp.json +0 -13
- package/dist/init-adapters/cursor/package.json +0 -5
- package/dist/init-adapters/cursor/panda.config.ts +0 -2
- package/dist/init-adapters/gemini/.gemini/BRAIN_DASHBOARD.md +0 -11
- package/dist/init-adapters/gemini/.gemini/STATUS.md +0 -3
- package/dist/init-adapters/gemini/.gemini/agents/analyst.md +0 -17
- package/dist/init-adapters/gemini/.gemini/agents/architect.md +0 -17
- package/dist/init-adapters/gemini/.gemini/agents/backend.md +0 -17
- package/dist/init-adapters/gemini/.gemini/agents/database.md +0 -17
- package/dist/init-adapters/gemini/.gemini/agents/devops.md +0 -17
- package/dist/init-adapters/gemini/.gemini/agents/explorer.md +0 -17
- package/dist/init-adapters/gemini/.gemini/agents/frontend.md +0 -17
- package/dist/init-adapters/gemini/.gemini/agents/git.md +0 -17
- package/dist/init-adapters/gemini/.gemini/agents/manager.md +0 -17
- package/dist/init-adapters/gemini/.gemini/agents/mobile.md +0 -17
- package/dist/init-adapters/gemini/.gemini/agents/native.md +0 -17
- package/dist/init-adapters/gemini/.gemini/agents/quality.md +0 -17
- package/dist/init-adapters/gemini/.gemini/agents/security.md +0 -17
- package/dist/init-adapters/gemini/.gemini/cli-commands.json +0 -32
- package/dist/init-adapters/gemini/.gemini/config.json +0 -12
- package/dist/init-adapters/gemini/.gemini/knowledge/agents-manifest.md +0 -79
- package/dist/init-adapters/gemini/.gemini/knowledge/approval-flows.md +0 -61
- package/dist/init-adapters/gemini/.gemini/knowledge/component-patterns.md +0 -91
- package/dist/init-adapters/gemini/.gemini/knowledge/data-fetching-patterns.md +0 -13
- package/dist/init-adapters/gemini/.gemini/knowledge/design-system.md +0 -31
- package/dist/init-adapters/gemini/.gemini/knowledge/enterprise-architecture.md +0 -69
- package/dist/init-adapters/gemini/.gemini/knowledge/error-handling.md +0 -74
- package/dist/init-adapters/gemini/.gemini/knowledge/eslint-standards.md +0 -10
- package/dist/init-adapters/gemini/.gemini/knowledge/logging.md +0 -7
- package/dist/init-adapters/gemini/.gemini/knowledge/tech-stack.md +0 -9
- package/dist/init-adapters/gemini/.gemini/mcp.json +0 -13
- package/dist/init-adapters/gemini/.gemini/memory/DECISIONS.md +0 -10
- package/dist/init-adapters/gemini/.gemini/memory/PROJECT_MEMORY.md +0 -8
- package/dist/init-adapters/gemini/.gemini/observability/audit_log.md +0 -5
- package/dist/init-adapters/gemini/.gemini/observability/telemetry.md +0 -6
- package/dist/init-adapters/gemini/.gemini/registry/agent_registry.md +0 -18
- package/dist/init-adapters/gemini/.gemini/router/routing_rules.md +0 -8
- package/dist/init-adapters/gemini/.gemini/rules/analyst.md +0 -16
- package/dist/init-adapters/gemini/.gemini/rules/architect.md +0 -16
- package/dist/init-adapters/gemini/.gemini/rules/backend.md +0 -16
- package/dist/init-adapters/gemini/.gemini/rules/database.md +0 -16
- package/dist/init-adapters/gemini/.gemini/rules/devops.md +0 -16
- package/dist/init-adapters/gemini/.gemini/rules/explorer.md +0 -16
- package/dist/init-adapters/gemini/.gemini/rules/frontend.md +0 -16
- package/dist/init-adapters/gemini/.gemini/rules/git.md +0 -16
- package/dist/init-adapters/gemini/.gemini/rules/manager.md +0 -16
- package/dist/init-adapters/gemini/.gemini/rules/mobile.md +0 -16
- package/dist/init-adapters/gemini/.gemini/rules/native.md +0 -16
- package/dist/init-adapters/gemini/.gemini/rules/quality.md +0 -16
- package/dist/init-adapters/gemini/.gemini/rules/security.md +0 -16
- package/dist/init-adapters/gemini/.gemini/skills/discovery.md +0 -3
- package/dist/init-adapters/gemini/.gemini/skills/editing.md +0 -3
- package/dist/init-adapters/gemini/.gemini/skills/execution.md +0 -4
- package/dist/init-adapters/gemini/.gemini/skills/file_system.md +0 -4
- package/dist/init-adapters/gemini/.gemini/skills/orchestration.md +0 -3
- package/dist/init-adapters/gemini/ENDERUN.md +0 -261
- package/dist/init-adapters/gemini/GEMINI.md +0 -8
- package/dist/init-adapters/gemini/docs/README.md +0 -6
- package/dist/init-adapters/gemini/docs/getting-started.md +0 -4
- package/dist/init-adapters/gemini/mcp.json +0 -13
- package/dist/init-adapters/gemini/package.json +0 -5
- package/dist/init-adapters/gemini/panda.config.ts +0 -2
- package/dist/init-adapters/grok/.grok/BRAIN_DASHBOARD.md +0 -11
- package/dist/init-adapters/grok/.grok/STATUS.md +0 -3
- package/dist/init-adapters/grok/.grok/agents/analyst.md +0 -17
- package/dist/init-adapters/grok/.grok/agents/architect.md +0 -17
- package/dist/init-adapters/grok/.grok/agents/backend.md +0 -17
- package/dist/init-adapters/grok/.grok/agents/database.md +0 -17
- package/dist/init-adapters/grok/.grok/agents/devops.md +0 -17
- package/dist/init-adapters/grok/.grok/agents/explorer.md +0 -17
- package/dist/init-adapters/grok/.grok/agents/frontend.md +0 -17
- package/dist/init-adapters/grok/.grok/agents/git.md +0 -17
- package/dist/init-adapters/grok/.grok/agents/manager.md +0 -17
- package/dist/init-adapters/grok/.grok/agents/mobile.md +0 -17
- package/dist/init-adapters/grok/.grok/agents/native.md +0 -17
- package/dist/init-adapters/grok/.grok/agents/quality.md +0 -17
- package/dist/init-adapters/grok/.grok/agents/security.md +0 -17
- package/dist/init-adapters/grok/.grok/cli-commands.json +0 -32
- package/dist/init-adapters/grok/.grok/config.json +0 -12
- package/dist/init-adapters/grok/.grok/knowledge/agents-manifest.md +0 -79
- package/dist/init-adapters/grok/.grok/knowledge/approval-flows.md +0 -61
- package/dist/init-adapters/grok/.grok/knowledge/component-patterns.md +0 -91
- package/dist/init-adapters/grok/.grok/knowledge/data-fetching-patterns.md +0 -13
- package/dist/init-adapters/grok/.grok/knowledge/design-system.md +0 -31
- package/dist/init-adapters/grok/.grok/knowledge/enterprise-architecture.md +0 -69
- package/dist/init-adapters/grok/.grok/knowledge/error-handling.md +0 -74
- package/dist/init-adapters/grok/.grok/knowledge/eslint-standards.md +0 -10
- package/dist/init-adapters/grok/.grok/knowledge/logging.md +0 -7
- package/dist/init-adapters/grok/.grok/knowledge/tech-stack.md +0 -9
- package/dist/init-adapters/grok/.grok/mcp_config.json +0 -13
- package/dist/init-adapters/grok/.grok/memory/DECISIONS.md +0 -10
- package/dist/init-adapters/grok/.grok/memory/PROJECT_MEMORY.md +0 -8
- package/dist/init-adapters/grok/.grok/observability/audit_log.md +0 -5
- package/dist/init-adapters/grok/.grok/observability/telemetry.md +0 -6
- package/dist/init-adapters/grok/.grok/registry/agent_registry.md +0 -18
- package/dist/init-adapters/grok/.grok/router/routing_rules.md +0 -8
- package/dist/init-adapters/grok/.grok/rules/analyst.md +0 -16
- package/dist/init-adapters/grok/.grok/rules/architect.md +0 -16
- package/dist/init-adapters/grok/.grok/rules/backend.md +0 -16
- package/dist/init-adapters/grok/.grok/rules/database.md +0 -16
- package/dist/init-adapters/grok/.grok/rules/devops.md +0 -16
- package/dist/init-adapters/grok/.grok/rules/explorer.md +0 -16
- package/dist/init-adapters/grok/.grok/rules/frontend.md +0 -16
- package/dist/init-adapters/grok/.grok/rules/git.md +0 -16
- package/dist/init-adapters/grok/.grok/rules/manager.md +0 -16
- package/dist/init-adapters/grok/.grok/rules/mobile.md +0 -16
- package/dist/init-adapters/grok/.grok/rules/native.md +0 -16
- package/dist/init-adapters/grok/.grok/rules/quality.md +0 -16
- package/dist/init-adapters/grok/.grok/rules/security.md +0 -16
- package/dist/init-adapters/grok/.grok/skills/discovery.md +0 -3
- package/dist/init-adapters/grok/.grok/skills/editing.md +0 -3
- package/dist/init-adapters/grok/.grok/skills/execution.md +0 -4
- package/dist/init-adapters/grok/.grok/skills/file_system.md +0 -4
- package/dist/init-adapters/grok/.grok/skills/orchestration.md +0 -3
- package/dist/init-adapters/grok/ENDERUN.md +0 -261
- package/dist/init-adapters/grok/GROK.md +0 -7
- package/dist/init-adapters/grok/docs/README.md +0 -6
- package/dist/init-adapters/grok/docs/getting-started.md +0 -4
- package/dist/init-adapters/grok/mcp.json +0 -13
- package/dist/init-adapters/grok/package.json +0 -5
- package/dist/init-adapters/grok/panda.config.ts +0 -2
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/mcp.json +0 -13
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/mcp_config.json +0 -13
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/analyst/agent.json +0 -28
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/analyst.json +0 -28
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/architect/agent.json +0 -30
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/architect.json +0 -30
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/backend/agent.json +0 -30
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/backend.json +0 -30
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/database/agent.json +0 -29
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/database.json +0 -29
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/devops/agent.json +0 -28
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/devops.json +0 -28
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/explorer/agent.json +0 -29
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/explorer.json +0 -29
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/frontend/agent.json +0 -29
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/frontend.json +0 -29
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/git/agent.json +0 -28
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/git.json +0 -28
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/manager/agent.json +0 -30
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/manager.json +0 -30
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/mobile/agent.json +0 -29
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/mobile.json +0 -29
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/native/agent.json +0 -29
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/native.json +0 -29
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/quality/agent.json +0 -29
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/quality.json +0 -29
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/security/agent.json +0 -29
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/security.json +0 -29
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/hooks.json +0 -4
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/mcp.json +0 -13
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/mcp_config.json +0 -13
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/plugin.json +0 -5
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/analyst.md +0 -11
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/architect.md +0 -11
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/backend.md +0 -11
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/database.md +0 -11
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/devops.md +0 -11
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/explorer.md +0 -11
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/frontend.md +0 -11
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/git.md +0 -11
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/manager.md +0 -11
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/mobile.md +0 -11
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/native.md +0 -11
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/quality.md +0 -11
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/security.md +0 -11
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/skills/discovery.md +0 -3
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/skills/editing.md +0 -3
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/skills/execution.md +0 -4
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/skills/file_system.md +0 -4
- package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/skills/orchestration.md +0 -3
- package/dist/init-adapters/mock-home/Library/Application Support/Claude/claude_desktop_config.json +0 -13
- package/dist/src/cli/adapters/types.d.ts +0 -14
- package/dist/src/cli/adapters/types.js +0 -2
- package/dist/src/cli/adapters/types.js.map +0 -1
- package/dist/src/cli/adapters.d.ts +0 -16
- package/dist/src/cli/adapters.js +0 -223
- package/dist/src/cli/adapters.js.map +0 -1
- package/dist/src/modules/adapters/antigravity-cli.d.ts +0 -3
- package/dist/src/modules/adapters/antigravity-cli.js +0 -21
- package/dist/src/modules/adapters/antigravity-cli.js.map +0 -1
- package/dist/src/modules/adapters/claude.d.ts +0 -3
- package/dist/src/modules/adapters/claude.js +0 -36
- package/dist/src/modules/adapters/claude.js.map +0 -1
- package/dist/src/modules/adapters/codex.d.ts +0 -3
- package/dist/src/modules/adapters/codex.js +0 -20
- package/dist/src/modules/adapters/codex.js.map +0 -1
- package/dist/src/modules/adapters/cursor.d.ts +0 -3
- package/dist/src/modules/adapters/cursor.js +0 -20
- package/dist/src/modules/adapters/cursor.js.map +0 -1
- package/dist/src/modules/adapters/gemini.d.ts +0 -3
- package/dist/src/modules/adapters/gemini.js +0 -23
- package/dist/src/modules/adapters/gemini.js.map +0 -1
- package/dist/src/modules/adapters/grok.d.ts +0 -3
- package/dist/src/modules/adapters/grok.js +0 -18
- package/dist/src/modules/adapters/grok.js.map +0 -1
- package/dist/src/shared/config.d.ts +0 -41
- package/dist/src/shared/config.js +0 -61
- package/dist/src/shared/config.js.map +0 -1
- package/dist/src/shared/container.d.ts +0 -25
- package/dist/src/shared/container.js +0 -56
- package/dist/src/shared/container.js.map +0 -1
- package/dist/tests/config.test.js +0 -58
- package/dist/tests/config.test.js.map +0 -1
- package/dist/tests/container.runner.js +0 -68
- package/dist/tests/container.runner.js.map +0 -1
- package/dist/tests/container.test.js +0 -73
- package/dist/tests/container.test.js.map +0 -1
- package/dist/tests/mock-project/apps/web/panda.config.d.ts +0 -4
- package/dist/tests/mock-project/apps/web/panda.config.js +0 -3
- package/dist/tests/mock-project/apps/web/panda.config.js.map +0 -1
- package/dist/tests/shared.test.d.ts +0 -1
- package/dist/tests/shared.test.js +0 -80
- package/dist/tests/shared.test.js.map +0 -1
- package/docs/README.md +0 -44
- package/docs/getting-started.md +0 -4
- package/docs/user/action-plan-2026.md +0 -9
- package/docs/user/corporate-governance.md +0 -25
- package/docs/user/getting-started.md +0 -13
- package/docs/user/roadmap.md +0 -13
- package/eslint.config.js +0 -92
- package/framework-mcp/dist/index.js +0 -76
- package/framework-mcp/dist/tools/control_plane/locking.js +0 -64
- package/framework-mcp/dist/tools/control_plane/registry.js +0 -34
- package/framework-mcp/dist/tools/dashboard/start_dashboard.js +0 -29
- package/framework-mcp/dist/tools/definitions.js +0 -270
- package/framework-mcp/dist/tools/file_system/batch_surgical_edit.js +0 -50
- package/framework-mcp/dist/tools/file_system/patch_file.js +0 -21
- package/framework-mcp/dist/tools/file_system/read_file.js +0 -34
- package/framework-mcp/dist/tools/file_system/replace_text.js +0 -38
- package/framework-mcp/dist/tools/file_system/write_file.js +0 -26
- package/framework-mcp/dist/tools/framework/audit_deps.js +0 -41
- package/framework-mcp/dist/tools/framework/get_status.js +0 -5
- package/framework-mcp/dist/tools/framework/orchestrate.js +0 -5
- package/framework-mcp/dist/tools/framework/run_tests.js +0 -25
- package/framework-mcp/dist/tools/framework/update_contract_hash.js +0 -5
- package/framework-mcp/dist/tools/framework/update_memory.js +0 -8
- package/framework-mcp/dist/tools/index.js +0 -54
- package/framework-mcp/dist/tools/memory/get_insights.js +0 -34
- package/framework-mcp/dist/tools/memory/read_memory.js +0 -28
- package/framework-mcp/dist/tools/messaging/log_action.js +0 -22
- package/framework-mcp/dist/tools/messaging/send_message.js +0 -74
- package/framework-mcp/dist/tools/observability/check_ports.js +0 -26
- package/framework-mcp/dist/tools/observability/get_health.js +0 -19
- package/framework-mcp/dist/tools/search/get_gaps.js +0 -48
- package/framework-mcp/dist/tools/search/get_map.js +0 -43
- package/framework-mcp/dist/tools/search/grep_search.js +0 -59
- package/framework-mcp/dist/tools/search/list_dir.js +0 -28
- package/framework-mcp/dist/tools/types.js +0 -1
- package/framework-mcp/dist/utils/cli.js +0 -20
- package/framework-mcp/dist/utils/compliance.js +0 -29
- package/framework-mcp/dist/utils/metrics.js +0 -38
- package/framework-mcp/dist/utils/security.js +0 -57
- package/framework-mcp/package.json +0 -19
- package/framework-mcp/src/declarations.d.ts +0 -17
- package/framework-mcp/src/index.ts +0 -95
- package/framework-mcp/src/tools/control_plane/locking.ts +0 -77
- package/framework-mcp/src/tools/control_plane/registry.ts +0 -44
- package/framework-mcp/src/tools/dashboard/start_dashboard.ts +0 -33
- package/framework-mcp/src/tools/definitions.ts +0 -272
- package/framework-mcp/src/tools/file_system/batch_surgical_edit.ts +0 -70
- package/framework-mcp/src/tools/file_system/patch_file.ts +0 -29
- package/framework-mcp/src/tools/file_system/read_file.ts +0 -39
- package/framework-mcp/src/tools/file_system/replace_text.ts +0 -50
- package/framework-mcp/src/tools/file_system/write_file.ts +0 -33
- package/framework-mcp/src/tools/framework/audit_deps.ts +0 -49
- package/framework-mcp/src/tools/framework/get_status.ts +0 -7
- package/framework-mcp/src/tools/framework/orchestrate.ts +0 -7
- package/framework-mcp/src/tools/framework/run_tests.ts +0 -28
- package/framework-mcp/src/tools/framework/update_contract_hash.ts +0 -7
- package/framework-mcp/src/tools/framework/update_memory.ts +0 -10
- package/framework-mcp/src/tools/index.ts +0 -60
- package/framework-mcp/src/tools/memory/get_insights.ts +0 -41
- package/framework-mcp/src/tools/memory/read_memory.ts +0 -31
- package/framework-mcp/src/tools/messaging/log_action.ts +0 -28
- package/framework-mcp/src/tools/messaging/send_message.ts +0 -76
- package/framework-mcp/src/tools/observability/check_ports.ts +0 -30
- package/framework-mcp/src/tools/observability/get_health.ts +0 -24
- package/framework-mcp/src/tools/search/get_gaps.ts +0 -54
- package/framework-mcp/src/tools/search/get_map.ts +0 -48
- package/framework-mcp/src/tools/search/grep_search.ts +0 -65
- package/framework-mcp/src/tools/search/list_dir.ts +0 -34
- package/framework-mcp/src/tools/types.ts +0 -54
- package/framework-mcp/src/utils/cli.ts +0 -20
- package/framework-mcp/src/utils/compliance.ts +0 -37
- package/framework-mcp/src/utils/metrics.ts +0 -53
- package/framework-mcp/src/utils/security.ts +0 -64
- package/framework-mcp/tests/tools/file_system/file_system_tools.test.ts +0 -206
- package/framework-mcp/tests/tools/messaging/send_message.test.ts +0 -136
- package/framework-mcp/tsconfig.json +0 -14
- package/src/cli/adapters/types.ts +0 -16
- package/src/cli/adapters.ts +0 -244
- package/src/shared/config.ts +0 -73
- package/src/shared/container.ts +0 -67
- package/templates/prompts/bug-fix-recipe.md +0 -20
- package/templates/prompts/new-feature-recipe.md +0 -19
- package/templates/prompts/refactoring-recipe.md +0 -21
- package/templates/standards/architecture-standards.md +0 -23
- package/templates/standards/crud-governance.md +0 -21
- package/templates/standards/frontend-standards.md +0 -38
- package/templates/standards/i18n-standards.md +0 -17
- package/templates/standards/logging-and-secrets.md +0 -29
- package/templates/standards/mobile-standards.md +0 -24
- package/templates/standards/quality-standards.md +0 -31
- package/templates/standards/security-standards.md +0 -21
- package/templates/standards/tailwind-standards.md +0 -20
- package/templates/standards/testing-standards.md +0 -31
- package/tsconfig.json +0 -24
- /package/dist/tests/{config.test.d.ts → cli/init/adapter_init.test.d.ts} +0 -0
- /package/dist/tests/{container.runner.d.ts → integration/agent_flow.test.d.ts} +0 -0
- /package/dist/tests/{container.test.d.ts → modules/adapters/adapters.test.d.ts} +0 -0
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { resolveFrameworkDir } from "../../utils/security.js";
|
|
4
|
-
/**
|
|
5
|
-
* Reads the project's central memory (PROJECT_MEMORY.md).
|
|
6
|
-
* This is the "brain" of the project.
|
|
7
|
-
*/
|
|
8
|
-
export function handleReadProjectMemory(projectRoot, _args) {
|
|
9
|
-
try {
|
|
10
|
-
const frameworkDir = resolveFrameworkDir(projectRoot);
|
|
11
|
-
const memoryPath = path.join(projectRoot, frameworkDir, "memory/PROJECT_MEMORY.md");
|
|
12
|
-
if (!fs.existsSync(memoryPath)) {
|
|
13
|
-
return {
|
|
14
|
-
content: [{ type: "text", text: "ℹ️ Project memory file not found. It might be a new project." }]
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
const content = fs.readFileSync(memoryPath, "utf8");
|
|
18
|
-
return {
|
|
19
|
-
content: [{ type: "text", text: content }]
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
catch (e) {
|
|
23
|
-
return {
|
|
24
|
-
isError: true,
|
|
25
|
-
content: [{ type: "text", text: `Failed to read project memory: ${String(e)}` }]
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { resolveFrameworkDir } from "../../utils/security.js";
|
|
4
|
-
export function handleLogAgentAction(projectRoot, args) {
|
|
5
|
-
const { agent, action, traceId, status, summary } = args;
|
|
6
|
-
const findings = args.findings ? args.findings.split(",").map(f => f.trim()) : [];
|
|
7
|
-
const frameworkDir = resolveFrameworkDir(projectRoot);
|
|
8
|
-
const agentName = agent.replace("@", "");
|
|
9
|
-
const logPath = path.join(projectRoot, frameworkDir, "logs", `${agentName}.json`);
|
|
10
|
-
const logEntry = {
|
|
11
|
-
timestamp: new Date().toISOString(),
|
|
12
|
-
agent,
|
|
13
|
-
action,
|
|
14
|
-
requestId: traceId,
|
|
15
|
-
status,
|
|
16
|
-
summary,
|
|
17
|
-
findings
|
|
18
|
-
};
|
|
19
|
-
fs.mkdirSync(path.dirname(logPath), { recursive: true });
|
|
20
|
-
fs.appendFileSync(logPath, JSON.stringify(logEntry) + "\n");
|
|
21
|
-
return { content: [{ type: "text", text: `✅ Action logged for ${agent} to ${path.join(frameworkDir, "logs", `${agentName}.json`)}` }] };
|
|
22
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { resolveFrameworkDir } from "../../utils/security.js";
|
|
4
|
-
export async function handleSendAgentMessage(projectRoot, args) {
|
|
5
|
-
const { to, category, content, traceId } = args;
|
|
6
|
-
const from = args.from || "@mcp";
|
|
7
|
-
const frameworkDir = resolveFrameworkDir(projectRoot);
|
|
8
|
-
const messagesDir = path.join(projectRoot, frameworkDir, "messages");
|
|
9
|
-
const agentName = to.replace("@", "");
|
|
10
|
-
const messagePath = path.join(messagesDir, `${agentName}.json`);
|
|
11
|
-
const lockPath = path.join(messagesDir, `${agentName}.lock`);
|
|
12
|
-
// Hermes Lock Protocol: Retry 3 times with 500ms delay
|
|
13
|
-
let retries = 3;
|
|
14
|
-
let acquired = false;
|
|
15
|
-
while (retries > 0) {
|
|
16
|
-
try {
|
|
17
|
-
if (fs.existsSync(lockPath)) {
|
|
18
|
-
try {
|
|
19
|
-
const stats = fs.statSync(lockPath);
|
|
20
|
-
if (Date.now() - stats.mtimeMs > 5000) {
|
|
21
|
-
fs.unlinkSync(lockPath);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
catch {
|
|
25
|
-
// ignore if concurrently unlinked
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
fs.mkdirSync(messagesDir, { recursive: true });
|
|
29
|
-
fs.writeFileSync(lockPath, `Locked by ${from} at ${new Date().toISOString()}`, { flag: "wx" });
|
|
30
|
-
acquired = true;
|
|
31
|
-
break;
|
|
32
|
-
}
|
|
33
|
-
catch (err) {
|
|
34
|
-
const error = err;
|
|
35
|
-
if (error.code === "EEXIST") {
|
|
36
|
-
retries--;
|
|
37
|
-
if (retries > 0) {
|
|
38
|
-
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
return { content: [{ type: "text", text: `❌ Unexpected lock acquisition error: ${error.message || String(err)}` }], isError: true };
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
if (!acquired) {
|
|
47
|
-
return { content: [{ type: "text", text: `❌ Could not send message to ${to}: Hermes lock is busy.` }], isError: true };
|
|
48
|
-
}
|
|
49
|
-
try {
|
|
50
|
-
const defaultPriority = (category === "ALERT" || category === "ACTION") ? "HIGH" : "NORMAL";
|
|
51
|
-
const message = {
|
|
52
|
-
timestamp: new Date().toISOString(),
|
|
53
|
-
from,
|
|
54
|
-
to,
|
|
55
|
-
category,
|
|
56
|
-
traceId,
|
|
57
|
-
content,
|
|
58
|
-
priority: args.priority || defaultPriority,
|
|
59
|
-
status: "PENDING"
|
|
60
|
-
};
|
|
61
|
-
fs.appendFileSync(messagePath, JSON.stringify(message) + "\n");
|
|
62
|
-
return { content: [{ type: "text", text: `✅ Message sent to ${to} (from: ${from})` }] };
|
|
63
|
-
}
|
|
64
|
-
finally {
|
|
65
|
-
if (acquired && fs.existsSync(lockPath)) {
|
|
66
|
-
try {
|
|
67
|
-
fs.unlinkSync(lockPath);
|
|
68
|
-
}
|
|
69
|
-
catch {
|
|
70
|
-
// ignore
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { execSync } from "child_process";
|
|
2
|
-
/**
|
|
3
|
-
* Checks for active network ports and their status.
|
|
4
|
-
*/
|
|
5
|
-
export function handleCheckPorts(projectRoot, args) {
|
|
6
|
-
const filter = args.filter || ""; // Optional filter (e.g., ":3000")
|
|
7
|
-
try {
|
|
8
|
-
// Using 'lsof -i -P -n' to list open files and network connections
|
|
9
|
-
// Note: may require permissions or behave differently on non-Unix systems
|
|
10
|
-
const command = process.platform === "win32"
|
|
11
|
-
? `netstat -ano | findstr LISTENING ${filter ? `| findstr ${filter}` : ""}`
|
|
12
|
-
: `lsof -i -P -n | grep LISTEN ${filter ? `| grep ${filter}` : ""}`;
|
|
13
|
-
const output = execSync(command, { encoding: "utf8" });
|
|
14
|
-
return {
|
|
15
|
-
content: [{
|
|
16
|
-
type: "text",
|
|
17
|
-
text: `📡 **Active Listening Ports:**\n\n${output || "No active listening ports found matching filter."}`
|
|
18
|
-
}]
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
catch (_e) {
|
|
22
|
-
return {
|
|
23
|
-
content: [{ type: "text", text: "ℹ️ No active ports found or command failed (this is normal if nothing is listening)." }]
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import os from "os";
|
|
2
|
-
/**
|
|
3
|
-
* Retrieves system health metrics including CPU load and memory usage.
|
|
4
|
-
*/
|
|
5
|
-
export function handleGetSystemHealth(_projectRoot, _args) {
|
|
6
|
-
const totalMem = os.totalmem();
|
|
7
|
-
const freeMem = os.freemem();
|
|
8
|
-
const usedMem = totalMem - freeMem;
|
|
9
|
-
const memUsagePercent = ((usedMem / totalMem) * 100).toFixed(2);
|
|
10
|
-
const loadAvg = os.loadavg(); // [1, 5, 15] minute averages
|
|
11
|
-
const healthReport = `🖥️ **System Health Report**
|
|
12
|
-
- **Memory:** ${memUsagePercent}% used (${(usedMem / 1024 / 1024 / 1024).toFixed(2)} GB / ${(totalMem / 1024 / 1024 / 1024).toFixed(2)} GB)
|
|
13
|
-
- **CPU Load (1m, 5m, 15m):** ${loadAvg.map(l => l.toFixed(2)).join(", ")}
|
|
14
|
-
- **Platform:** ${os.platform()} (${os.release()})
|
|
15
|
-
- **Uptime:** ${(os.uptime() / 3600).toFixed(2)} hours`;
|
|
16
|
-
return {
|
|
17
|
-
content: [{ type: "text", text: healthReport }]
|
|
18
|
-
};
|
|
19
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { safePath } from "../../utils/security.js";
|
|
4
|
-
/**
|
|
5
|
-
* Scans the codebase for TODOs, FIXMEs, and empty function bodies.
|
|
6
|
-
* Helps identify what's left and where the agent might have skipped logic.
|
|
7
|
-
*/
|
|
8
|
-
export function handleGetProjectGaps(projectRoot, args) {
|
|
9
|
-
const srcDir = safePath(projectRoot, args.path || "src");
|
|
10
|
-
const results = [];
|
|
11
|
-
const walk = (dir) => {
|
|
12
|
-
if (!fs.existsSync(dir))
|
|
13
|
-
return;
|
|
14
|
-
const files = fs.readdirSync(dir);
|
|
15
|
-
for (const file of files) {
|
|
16
|
-
const fullPath = path.join(dir, file);
|
|
17
|
-
const relativePath = path.relative(projectRoot, fullPath);
|
|
18
|
-
if (fs.statSync(fullPath).isDirectory()) {
|
|
19
|
-
if (file !== "node_modules" && file !== "dist" && !file.startsWith(".")) {
|
|
20
|
-
walk(fullPath);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
else if (file.endsWith(".ts") || file.endsWith(".tsx")) {
|
|
24
|
-
const content = fs.readFileSync(fullPath, "utf8");
|
|
25
|
-
const lines = content.split("\n");
|
|
26
|
-
lines.forEach((line, index) => {
|
|
27
|
-
// 1. Scan for markers
|
|
28
|
-
if (line.includes("TODO") || line.includes("FIXME") || line.includes("!!!")) {
|
|
29
|
-
results.push(`[${relativePath}:${index + 1}] Marker found: ${line.trim()}`);
|
|
30
|
-
}
|
|
31
|
-
// 2. Scan for empty function placeholders (heuristic)
|
|
32
|
-
if (line.includes("throw new Error(\"Not implemented") || line.includes("// ... rest of code")) {
|
|
33
|
-
results.push(`[${relativePath}:${index + 1}] Gap found: ${line.trim()}`);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
walk(srcDir);
|
|
40
|
-
return {
|
|
41
|
-
content: [{
|
|
42
|
-
type: "text",
|
|
43
|
-
text: results.length > 0
|
|
44
|
-
? `Found ${results.length} gaps/todos:\n\n${results.join("\n")}`
|
|
45
|
-
: "✅ No major gaps or TODOs found in the scanned directory."
|
|
46
|
-
}]
|
|
47
|
-
};
|
|
48
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
/**
|
|
4
|
-
* Generates a tree-view map of the project structure.
|
|
5
|
-
* Helps agents visualize the entire project layout quickly.
|
|
6
|
-
*/
|
|
7
|
-
export function handleGetProjectMap(projectRoot, args) {
|
|
8
|
-
const maxDepth = Number(args.maxDepth) || 3;
|
|
9
|
-
const includeFiles = args.includeFiles !== false;
|
|
10
|
-
const buildTree = (dir, depth) => {
|
|
11
|
-
if (depth > maxDepth)
|
|
12
|
-
return [];
|
|
13
|
-
const results = [];
|
|
14
|
-
const files = fs.readdirSync(dir);
|
|
15
|
-
files.forEach(file => {
|
|
16
|
-
if (file === "node_modules" || file === ".git" || file === "dist" || file.startsWith("."))
|
|
17
|
-
return;
|
|
18
|
-
const fullPath = path.join(dir, file);
|
|
19
|
-
const stat = fs.statSync(fullPath);
|
|
20
|
-
const indent = " ".repeat(depth);
|
|
21
|
-
if (stat.isDirectory()) {
|
|
22
|
-
results.push(`${indent}📁 ${file}/`);
|
|
23
|
-
results.push(...buildTree(fullPath, depth + 1));
|
|
24
|
-
}
|
|
25
|
-
else if (includeFiles) {
|
|
26
|
-
results.push(`${indent}📄 ${file}`);
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
return results;
|
|
30
|
-
};
|
|
31
|
-
try {
|
|
32
|
-
const tree = buildTree(projectRoot, 0);
|
|
33
|
-
return {
|
|
34
|
-
content: [{
|
|
35
|
-
type: "text",
|
|
36
|
-
text: `🗺️ **Project Map (Depth: ${maxDepth})**\n\n${tree.join("\n")}`
|
|
37
|
-
}]
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
catch (e) {
|
|
41
|
-
return { isError: true, content: [{ type: "text", text: `Failed to map project: ${String(e)}` }] };
|
|
42
|
-
}
|
|
43
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
/**
|
|
4
|
-
* Searches for a regex pattern within files in the project.
|
|
5
|
-
*/
|
|
6
|
-
export function handleGrepSearch(projectRoot, args) {
|
|
7
|
-
const pattern = args.pattern;
|
|
8
|
-
const includePattern = args.includePattern || ""; // e.g., ".ts"
|
|
9
|
-
const excludePattern = args.excludePattern || "node_modules";
|
|
10
|
-
if (!pattern) {
|
|
11
|
-
throw new Error("Search pattern is required.");
|
|
12
|
-
}
|
|
13
|
-
const results = [];
|
|
14
|
-
const regex = new RegExp(pattern, "g");
|
|
15
|
-
const walk = (dir) => {
|
|
16
|
-
const files = fs.readdirSync(dir);
|
|
17
|
-
for (const file of files) {
|
|
18
|
-
const fullPath = path.join(dir, file);
|
|
19
|
-
const relativePath = path.relative(projectRoot, fullPath);
|
|
20
|
-
// Skip excluded directories/files
|
|
21
|
-
if (relativePath.includes(excludePattern))
|
|
22
|
-
continue;
|
|
23
|
-
try {
|
|
24
|
-
const stat = fs.statSync(fullPath);
|
|
25
|
-
if (stat.isDirectory()) {
|
|
26
|
-
walk(fullPath);
|
|
27
|
-
}
|
|
28
|
-
else if (stat.isFile()) {
|
|
29
|
-
// Check include pattern
|
|
30
|
-
if (includePattern && !file.endsWith(includePattern))
|
|
31
|
-
continue;
|
|
32
|
-
const content = fs.readFileSync(fullPath, "utf8");
|
|
33
|
-
const lines = content.split("\n");
|
|
34
|
-
lines.forEach((line, index) => {
|
|
35
|
-
if (regex.test(line)) {
|
|
36
|
-
results.push(`${relativePath}:${index + 1}: ${line.trim()}`);
|
|
37
|
-
// Reset regex lastIndex because of 'g' flag
|
|
38
|
-
regex.lastIndex = 0;
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
// Ignore read errors
|
|
45
|
-
}
|
|
46
|
-
if (results.length > 100)
|
|
47
|
-
break; // Limit results
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
walk(projectRoot);
|
|
51
|
-
return {
|
|
52
|
-
content: [{
|
|
53
|
-
type: "text",
|
|
54
|
-
text: results.length > 0
|
|
55
|
-
? `Found ${results.length} matches:\n\n${results.join("\n")}`
|
|
56
|
-
: "No matches found."
|
|
57
|
-
}]
|
|
58
|
-
};
|
|
59
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { safePath } from "../../utils/security.js";
|
|
4
|
-
/**
|
|
5
|
-
* Lists the contents of a directory.
|
|
6
|
-
*/
|
|
7
|
-
export function handleListDir(projectRoot, args) {
|
|
8
|
-
const dirPath = safePath(projectRoot, args.path || ".");
|
|
9
|
-
if (!fs.existsSync(dirPath)) {
|
|
10
|
-
throw new Error(`Directory not found: ${args.path}`);
|
|
11
|
-
}
|
|
12
|
-
const stats = fs.statSync(dirPath);
|
|
13
|
-
if (!stats.isDirectory()) {
|
|
14
|
-
throw new Error(`Path is not a directory: ${args.path}`);
|
|
15
|
-
}
|
|
16
|
-
const files = fs.readdirSync(dirPath);
|
|
17
|
-
const results = files.map(file => {
|
|
18
|
-
const fullPath = path.join(dirPath, file);
|
|
19
|
-
const isDir = fs.statSync(fullPath).isDirectory();
|
|
20
|
-
return `${isDir ? "[DIR] " : " "}${file}`;
|
|
21
|
-
});
|
|
22
|
-
return {
|
|
23
|
-
content: [{
|
|
24
|
-
type: "text",
|
|
25
|
-
text: `Directory listing for ${args.path || "."}:\n\n${results.join("\n")}`
|
|
26
|
-
}]
|
|
27
|
-
};
|
|
28
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { execFileSync } from "child_process";
|
|
2
|
-
/**
|
|
3
|
-
* Executes a CLI command safely using execFileSync (no shell injection risk).
|
|
4
|
-
* Captures stderr gracefully to prevent stream crashes.
|
|
5
|
-
*/
|
|
6
|
-
export function safeExec(command, args, cwd, timeout) {
|
|
7
|
-
try {
|
|
8
|
-
return execFileSync(command, args, {
|
|
9
|
-
cwd,
|
|
10
|
-
encoding: "utf8",
|
|
11
|
-
timeout: timeout || 30000,
|
|
12
|
-
maxBuffer: 1024 * 1024,
|
|
13
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
catch (error) {
|
|
17
|
-
const err = error;
|
|
18
|
-
throw new Error(err.stderr || err.message || "Command execution failed", { cause: error });
|
|
19
|
-
}
|
|
20
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Enterprise Compliance Guardrail
|
|
3
|
-
* Checks content against corporate standards before allowing file mutations.
|
|
4
|
-
*/
|
|
5
|
-
export function verifyCorporateCompliance(content, filePath) {
|
|
6
|
-
// 1. Zero Console Policy
|
|
7
|
-
if (content.includes("console.log(") || content.includes("console.warn(") || content.includes("console.error(")) {
|
|
8
|
-
if (!filePath.includes("logger.ts") && !filePath.includes("check.ts") && !filePath.includes("cli.ts")) {
|
|
9
|
-
throw new Error("❌ Corporate Compliance Breach: 'console.log/warn/error' usage is forbidden. " +
|
|
10
|
-
"Use the 'logger' system from '@/shared/logger' instead.");
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
// 2. No Explicit Any Policy
|
|
14
|
-
const anyRegex = /[:<]\s*any\b|\bas\s+any\b/g;
|
|
15
|
-
if (anyRegex.test(content)) {
|
|
16
|
-
if (!filePath.includes("definitions.ts") && !filePath.includes("types.ts")) {
|
|
17
|
-
throw new Error("❌ Corporate Compliance Breach: 'any' type is forbidden. " +
|
|
18
|
-
"Use 'unknown', 'generics', or proper interfaces for type safety.");
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
// 3. Hardcoded Secrets Guard (Simple heuristic)
|
|
22
|
-
const secretKeywords = [/API_KEY\s*=\s*['"][^'"]+['"]/i, /SECRET\s*=\s*['"][^'"]+['"]/i, /PASSWORD\s*=\s*['"][^'"]+['"]/i];
|
|
23
|
-
for (const regex of secretKeywords) {
|
|
24
|
-
if (regex.test(content) && !filePath.endsWith(".env.example")) {
|
|
25
|
-
throw new Error("❌ Corporate Compliance Breach: Hardcoded secrets detected. " +
|
|
26
|
-
"All sensitive data must be managed via '.env' files.");
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { resolveFrameworkDir } from "./security.js";
|
|
4
|
-
export const Metrics = {
|
|
5
|
-
/**
|
|
6
|
-
* Estimates tokens based on character count (rough heuristic: 1 token ~= 4 chars).
|
|
7
|
-
*/
|
|
8
|
-
estimateTokens: (text) => {
|
|
9
|
-
return Math.ceil(text.length / 4);
|
|
10
|
-
},
|
|
11
|
-
/**
|
|
12
|
-
* Logs the token usage and action to the observability metrics file.
|
|
13
|
-
*/
|
|
14
|
-
logUsage: (projectRoot, agent, action, tokens) => {
|
|
15
|
-
const frameworkDir = resolveFrameworkDir(projectRoot);
|
|
16
|
-
const metricsPath = path.join(projectRoot, frameworkDir, "observability/metrics.json");
|
|
17
|
-
try {
|
|
18
|
-
const metricsDir = path.dirname(metricsPath);
|
|
19
|
-
if (!fs.existsSync(metricsDir))
|
|
20
|
-
fs.mkdirSync(metricsDir, { recursive: true });
|
|
21
|
-
let currentMetrics = [];
|
|
22
|
-
if (fs.existsSync(metricsPath)) {
|
|
23
|
-
currentMetrics = JSON.parse(fs.readFileSync(metricsPath, "utf8"));
|
|
24
|
-
}
|
|
25
|
-
currentMetrics.push({
|
|
26
|
-
timestamp: new Date().toISOString(),
|
|
27
|
-
agent,
|
|
28
|
-
action,
|
|
29
|
-
estimatedTokens: tokens
|
|
30
|
-
});
|
|
31
|
-
// Keep only last 100 entries to save space
|
|
32
|
-
if (currentMetrics.length > 100)
|
|
33
|
-
currentMetrics.shift();
|
|
34
|
-
fs.writeFileSync(metricsPath, JSON.stringify(currentMetrics, null, 2));
|
|
35
|
-
}
|
|
36
|
-
catch { /* ignore: metrics should not block the main process */ }
|
|
37
|
-
}
|
|
38
|
-
};
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import path from "path";
|
|
2
|
-
import fs from "fs";
|
|
3
|
-
/**
|
|
4
|
-
* Validates and resolves a user-provided path to prevent path traversal attacks.
|
|
5
|
-
* Ensures the resolved path stays within the project root boundary.
|
|
6
|
-
*/
|
|
7
|
-
export function safePath(projectRoot, userPath) {
|
|
8
|
-
const resolved = path.resolve(projectRoot, userPath);
|
|
9
|
-
const normalizedRoot = path.resolve(projectRoot);
|
|
10
|
-
if (!resolved.startsWith(normalizedRoot + path.sep) && resolved !== normalizedRoot) {
|
|
11
|
-
throw new Error(`Access denied: path "${userPath}" escapes project root.`);
|
|
12
|
-
}
|
|
13
|
-
return resolved;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Resolves the active framework directory.
|
|
17
|
-
* Priority: package.json `enderun.frameworkDir` → `.enderun` → adapter dirs.
|
|
18
|
-
* This ensures the canonical framework directory is always used,
|
|
19
|
-
* even when adapter-specific dirs (e.g. `.gemini`) exist alongside it.
|
|
20
|
-
*/
|
|
21
|
-
export function resolveFrameworkDir(projectRoot) {
|
|
22
|
-
// 1. Authoritative source: read from package.json if present
|
|
23
|
-
try {
|
|
24
|
-
const pkgPath = path.join(projectRoot, "package.json");
|
|
25
|
-
if (fs.existsSync(pkgPath)) {
|
|
26
|
-
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
|
|
27
|
-
const enderunConfig = pkg["enderun"];
|
|
28
|
-
if (enderunConfig && typeof enderunConfig["frameworkDir"] === "string") {
|
|
29
|
-
return enderunConfig["frameworkDir"];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
catch {
|
|
34
|
-
// ignore — fall through to filesystem scan
|
|
35
|
-
}
|
|
36
|
-
// 2. Filesystem scan
|
|
37
|
-
const candidates = [
|
|
38
|
-
".enderun",
|
|
39
|
-
".cursor",
|
|
40
|
-
".claude",
|
|
41
|
-
".github",
|
|
42
|
-
".grok",
|
|
43
|
-
".windsurf",
|
|
44
|
-
".antigravity",
|
|
45
|
-
".agent",
|
|
46
|
-
".gemini/antigravity-cli",
|
|
47
|
-
".gemini",
|
|
48
|
-
".agents",
|
|
49
|
-
];
|
|
50
|
-
for (const candidate of candidates) {
|
|
51
|
-
const candidatePath = path.join(projectRoot, candidate);
|
|
52
|
-
if (fs.existsSync(candidatePath)) {
|
|
53
|
-
return candidate;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return ".gemini";
|
|
57
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@agent-enderun/mcp",
|
|
3
|
-
"version": "1.1.8",
|
|
4
|
-
"description": "Agent Enderun Model Context Protocol (MCP) Server",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"build": "npx tsc",
|
|
8
|
-
"start": "node dist/index.js",
|
|
9
|
-
"dev": "tsx src/index.ts"
|
|
10
|
-
},
|
|
11
|
-
"dependencies": {
|
|
12
|
-
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
13
|
-
"zod": "^3.24.2"
|
|
14
|
-
},
|
|
15
|
-
"devDependencies": {
|
|
16
|
-
"@types/node": "^25.9.1",
|
|
17
|
-
"typescript": "^6.0.3"
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
declare module "@modelcontextprotocol/sdk/server/index.js" {
|
|
2
|
-
export class Server {
|
|
3
|
-
constructor(info: { name: string; version: string }, options: { capabilities: { tools: Record<string, never> } });
|
|
4
|
-
setRequestHandler(schema: unknown, handler: (request: unknown) => Promise<unknown>): void;
|
|
5
|
-
connect(transport: unknown): Promise<void>;
|
|
6
|
-
close(): Promise<void>;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
declare module "@modelcontextprotocol/sdk/server/stdio.js" {
|
|
11
|
-
export class StdioServerTransport {}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
declare module "@modelcontextprotocol/sdk/types.js" {
|
|
15
|
-
export const ListToolsRequestSchema: unknown;
|
|
16
|
-
export const CallToolRequestSchema: unknown;
|
|
17
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { fileURLToPath } from "url";
|
|
4
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
5
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
6
|
-
import {
|
|
7
|
-
CallToolRequestSchema,
|
|
8
|
-
ListToolsRequestSchema,
|
|
9
|
-
} from "@modelcontextprotocol/sdk/types.js";
|
|
10
|
-
|
|
11
|
-
import { CallToolRequest } from "./tools/types.js";
|
|
12
|
-
import { TOOLS, toolHandlers } from "./tools/index.js";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
// ─── Server Setup ─────────────────────────────────────────────────
|
|
16
|
-
|
|
17
|
-
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
18
|
-
const pkg = JSON.parse(fs.readFileSync(path.join(__dirname, "../package.json"), "utf8"));
|
|
19
|
-
const serverVersion = pkg.version || "1.1.5";
|
|
20
|
-
|
|
21
|
-
const server = new Server(
|
|
22
|
-
{
|
|
23
|
-
name: "@agent-enderun/mcp",
|
|
24
|
-
version: serverVersion,
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
capabilities: {
|
|
28
|
-
tools: {},
|
|
29
|
-
},
|
|
30
|
-
}
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
34
|
-
return { tools: TOOLS };
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
38
|
-
const typedRequest = request as CallToolRequest;
|
|
39
|
-
const { name, arguments: args } = typedRequest.params;
|
|
40
|
-
const projectRoot = process.env.ENDERUN_PROJECT_ROOT || process.cwd();
|
|
41
|
-
|
|
42
|
-
try {
|
|
43
|
-
const handler = toolHandlers[name];
|
|
44
|
-
if (!handler) {
|
|
45
|
-
return {
|
|
46
|
-
isError: true,
|
|
47
|
-
content: [{ type: "text" as const, text: `Unknown tool: ${name}` }],
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
return handler(projectRoot, args || {});
|
|
51
|
-
} catch (error: unknown) {
|
|
52
|
-
const message = error instanceof Error ? error.message : "Unknown error occurred";
|
|
53
|
-
return {
|
|
54
|
-
isError: true,
|
|
55
|
-
content: [{ type: "text" as const, text: message }],
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
// ─── Graceful Startup & Shutdown ──────────────────────────────────
|
|
61
|
-
|
|
62
|
-
async function run() {
|
|
63
|
-
const transport = new StdioServerTransport();
|
|
64
|
-
|
|
65
|
-
// Prevent unhandled errors from crashing the MCP stream
|
|
66
|
-
process.on("uncaughtException", (error: Error) => {
|
|
67
|
-
process.stderr.write(`[agent-enderun-mcp] Uncaught exception: ${error.message}
|
|
68
|
-
`);
|
|
69
|
-
});
|
|
70
|
-
process.on("unhandledRejection", (reason: unknown) => {
|
|
71
|
-
const message = reason instanceof Error ? reason.message : String(reason);
|
|
72
|
-
process.stderr.write(`[agent-enderun-mcp] Unhandled rejection: ${message}
|
|
73
|
-
`);
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
// Graceful shutdown on SIGINT/SIGTERM
|
|
77
|
-
const shutdown = async () => {
|
|
78
|
-
try {
|
|
79
|
-
await server.close();
|
|
80
|
-
} catch {
|
|
81
|
-
// Already closed or failed — safe to ignore
|
|
82
|
-
}
|
|
83
|
-
process.exit(0);
|
|
84
|
-
};
|
|
85
|
-
process.on("SIGINT", shutdown);
|
|
86
|
-
process.on("SIGTERM", shutdown);
|
|
87
|
-
|
|
88
|
-
await server.connect(transport);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
run().catch((error: Error) => {
|
|
92
|
-
process.stderr.write(`[agent-enderun-mcp] Fatal startup error: ${error.message}
|
|
93
|
-
`);
|
|
94
|
-
process.exit(1);
|
|
95
|
-
});
|