atabey 0.0.16 → 0.0.17
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/dist/atabey/src/cli/commands/approve.d.ts +1 -0
- package/dist/atabey/src/cli/commands/approve.js +64 -0
- package/dist/atabey/src/cli/commands/approve.js.map +1 -0
- package/dist/atabey/src/cli/commands/check.d.ts +1 -0
- package/dist/atabey/src/cli/commands/check.js +197 -0
- package/dist/atabey/src/cli/commands/check.js.map +1 -0
- package/dist/atabey/src/cli/commands/compliance.d.ts +5 -0
- package/dist/atabey/src/cli/commands/compliance.js +43 -0
- package/dist/atabey/src/cli/commands/compliance.js.map +1 -0
- package/dist/atabey/src/cli/commands/contract.d.ts +10 -0
- package/dist/atabey/src/cli/commands/contract.js +52 -0
- package/dist/atabey/src/cli/commands/contract.js.map +1 -0
- package/dist/atabey/src/cli/commands/coverage.d.ts +1 -0
- package/dist/atabey/src/cli/commands/coverage.js +121 -0
- package/dist/atabey/src/cli/commands/coverage.js.map +1 -0
- package/dist/atabey/src/cli/commands/dashboard.d.ts +5 -0
- package/dist/atabey/src/cli/commands/dashboard.js +753 -0
- package/dist/atabey/src/cli/commands/dashboard.js.map +1 -0
- package/dist/atabey/src/cli/commands/explorer.d.ts +2 -0
- package/dist/atabey/src/cli/commands/explorer.js +44 -0
- package/dist/atabey/src/cli/commands/explorer.js.map +1 -0
- package/dist/atabey/src/cli/commands/git.d.ts +2 -0
- package/dist/atabey/src/cli/commands/git.js +40 -0
- package/dist/atabey/src/cli/commands/git.js.map +1 -0
- package/dist/atabey/src/cli/commands/index-codebase.d.ts +4 -0
- package/dist/atabey/src/cli/commands/index-codebase.js +52 -0
- package/dist/atabey/src/cli/commands/index-codebase.js.map +1 -0
- package/dist/atabey/src/cli/commands/init/create-agent.d.ts +4 -0
- package/dist/atabey/src/cli/commands/init/create-agent.js +59 -0
- package/dist/atabey/src/cli/commands/init/create-agent.js.map +1 -0
- package/dist/atabey/src/cli/commands/init/scaffold-core.d.ts +13 -0
- package/dist/atabey/src/cli/commands/init/scaffold-core.js +129 -0
- package/dist/atabey/src/cli/commands/init/scaffold-core.js.map +1 -0
- package/dist/atabey/src/cli/commands/init/scaffold-docs.d.ts +4 -0
- package/dist/atabey/src/cli/commands/init/scaffold-docs.js +36 -0
- package/dist/atabey/src/cli/commands/init/scaffold-docs.js.map +1 -0
- package/dist/atabey/src/cli/commands/init/scaffold-ops.d.ts +1 -0
- package/dist/atabey/src/cli/commands/init/scaffold-ops.js +81 -0
- package/dist/atabey/src/cli/commands/init/scaffold-ops.js.map +1 -0
- package/dist/atabey/src/cli/commands/init/scaffold-standards.d.ts +2 -0
- package/dist/atabey/src/cli/commands/init/scaffold-standards.js +84 -0
- package/dist/atabey/src/cli/commands/init/scaffold-standards.js.map +1 -0
- package/dist/atabey/src/cli/commands/init.d.ts +11 -0
- package/dist/atabey/src/cli/commands/init.js +362 -0
- package/dist/atabey/src/cli/commands/init.js.map +1 -0
- package/dist/atabey/src/cli/commands/knowledge.d.ts +2 -0
- package/dist/atabey/src/cli/commands/knowledge.js +16 -0
- package/dist/atabey/src/cli/commands/knowledge.js.map +1 -0
- package/dist/atabey/src/cli/commands/lint.d.ts +4 -0
- package/dist/atabey/src/cli/commands/lint.js +24 -0
- package/dist/atabey/src/cli/commands/lint.js.map +1 -0
- package/dist/atabey/src/cli/commands/log.d.ts +10 -0
- package/dist/atabey/src/cli/commands/log.js +14 -0
- package/dist/atabey/src/cli/commands/log.js.map +1 -0
- package/dist/atabey/src/cli/commands/mcp.d.ts +11 -0
- package/dist/atabey/src/cli/commands/mcp.js +132 -0
- package/dist/atabey/src/cli/commands/mcp.js.map +1 -0
- package/dist/atabey/src/cli/commands/memory.d.ts +1 -0
- package/dist/atabey/src/cli/commands/memory.js +5 -0
- package/dist/atabey/src/cli/commands/memory.js.map +1 -0
- package/dist/atabey/src/cli/commands/orchestrate.d.ts +61 -0
- package/dist/atabey/src/cli/commands/orchestrate.js +238 -0
- package/dist/atabey/src/cli/commands/orchestrate.js.map +1 -0
- package/dist/atabey/src/cli/commands/plan.d.ts +11 -0
- package/dist/atabey/src/cli/commands/plan.js +120 -0
- package/dist/atabey/src/cli/commands/plan.js.map +1 -0
- package/dist/atabey/src/cli/commands/quickstart.d.ts +9 -0
- package/dist/atabey/src/cli/commands/quickstart.js +60 -0
- package/dist/atabey/src/cli/commands/quickstart.js.map +1 -0
- package/dist/atabey/src/cli/commands/script.d.ts +1 -0
- package/dist/atabey/src/cli/commands/script.js +28 -0
- package/dist/atabey/src/cli/commands/script.js.map +1 -0
- package/dist/atabey/src/cli/commands/security.d.ts +1 -0
- package/dist/atabey/src/cli/commands/security.js +34 -0
- package/dist/atabey/src/cli/commands/security.js.map +1 -0
- package/dist/atabey/src/cli/commands/status.d.ts +4 -0
- package/dist/atabey/src/cli/commands/status.js +122 -0
- package/dist/atabey/src/cli/commands/status.js.map +1 -0
- package/dist/atabey/src/cli/commands/trace.d.ts +10 -0
- package/dist/atabey/src/cli/commands/trace.js +108 -0
- package/dist/atabey/src/cli/commands/trace.js.map +1 -0
- package/dist/atabey/src/cli/index.js +282 -0
- package/dist/atabey/src/cli/index.js.map +1 -0
- package/dist/atabey/src/cli/platforms/core.d.ts +12 -0
- package/dist/atabey/src/cli/platforms/core.js +73 -0
- package/dist/atabey/src/cli/platforms/core.js.map +1 -0
- package/dist/atabey/src/cli/platforms/index.d.ts +5 -0
- package/dist/atabey/src/cli/platforms/index.js +6 -0
- package/dist/atabey/src/cli/platforms/index.js.map +1 -0
- package/dist/atabey/src/cli/platforms/paths.d.ts +15 -0
- package/dist/atabey/src/cli/platforms/paths.js +102 -0
- package/dist/atabey/src/cli/platforms/paths.js.map +1 -0
- package/dist/atabey/src/cli/platforms/scaffold.d.ts +2 -0
- package/dist/atabey/src/cli/platforms/scaffold.js +73 -0
- package/dist/atabey/src/cli/platforms/scaffold.js.map +1 -0
- package/dist/atabey/src/cli/platforms/utils.d.ts +4 -0
- package/dist/atabey/src/cli/platforms/utils.js.map +1 -0
- package/dist/atabey/src/cli/shims.d.ts +1 -0
- package/dist/atabey/src/cli/shims.js +67 -0
- package/dist/atabey/src/cli/shims.js.map +1 -0
- package/dist/atabey/src/cli/utils/claude.d.ts +8 -0
- package/dist/atabey/src/cli/utils/claude.js +58 -0
- package/dist/atabey/src/cli/utils/claude.js.map +1 -0
- package/dist/atabey/src/cli/utils/compliance.d.ts +42 -0
- package/dist/atabey/src/cli/utils/compliance.js +150 -0
- package/dist/atabey/src/cli/utils/compliance.js.map +1 -0
- package/dist/atabey/src/cli/utils/config-schema.d.ts +139 -0
- package/dist/atabey/src/cli/utils/config-schema.js +43 -0
- package/dist/atabey/src/cli/utils/config-schema.js.map +1 -0
- package/dist/atabey/src/cli/utils/fs.d.ts +10 -0
- package/dist/atabey/src/cli/utils/fs.js +139 -0
- package/dist/atabey/src/cli/utils/fs.js.map +1 -0
- package/dist/atabey/src/cli/utils/i18n.d.ts +21 -0
- package/dist/atabey/src/cli/utils/i18n.js +36 -0
- package/dist/atabey/src/cli/utils/i18n.js.map +1 -0
- package/dist/atabey/src/cli/utils/memory.d.ts +39 -0
- package/dist/atabey/src/cli/utils/memory.js +281 -0
- package/dist/atabey/src/cli/utils/memory.js.map +1 -0
- package/dist/atabey/src/cli/utils/pkg.d.ts +43 -0
- package/dist/atabey/src/cli/utils/pkg.js +283 -0
- package/dist/atabey/src/cli/utils/pkg.js.map +1 -0
- package/dist/atabey/src/cli/utils/quality.d.ts +25 -0
- package/dist/atabey/src/cli/utils/quality.js +66 -0
- package/dist/atabey/src/cli/utils/quality.js.map +1 -0
- package/dist/atabey/src/cli/utils/schemas.d.ts +49 -0
- package/dist/atabey/src/cli/utils/schemas.js +20 -0
- package/dist/atabey/src/cli/utils/schemas.js.map +1 -0
- package/dist/atabey/src/cli/utils/string.d.ts +7 -0
- package/dist/atabey/src/cli/utils/string.js +50 -0
- package/dist/atabey/src/cli/utils/string.js.map +1 -0
- package/dist/atabey/src/cli/utils/time.d.ts +2 -0
- package/dist/atabey/src/cli/utils/time.js +28 -0
- package/dist/atabey/src/cli/utils/time.js.map +1 -0
- package/dist/atabey/src/cli/utils/ui.d.ts +53 -0
- package/dist/atabey/src/cli/utils/ui.js +101 -0
- package/dist/atabey/src/cli/utils/ui.js.map +1 -0
- package/dist/atabey/src/contracts/index.d.ts +1 -0
- package/dist/atabey/src/contracts/index.js +2 -0
- package/dist/atabey/src/contracts/index.js.map +1 -0
- package/dist/atabey/src/contracts/tasks.d.ts +44 -0
- package/dist/atabey/src/contracts/tasks.js +21 -0
- package/dist/atabey/src/contracts/tasks.js.map +1 -0
- package/dist/atabey/src/modules/agents/definitions.d.ts +26 -0
- package/dist/atabey/src/modules/agents/definitions.js +564 -0
- package/dist/atabey/src/modules/agents/definitions.js.map +1 -0
- package/dist/atabey/src/modules/agents/registry/analyst.d.ts +2 -0
- package/dist/atabey/src/modules/agents/registry/analyst.js +40 -0
- package/dist/atabey/src/modules/agents/registry/analyst.js.map +1 -0
- package/dist/atabey/src/modules/agents/registry/architect.d.ts +2 -0
- package/dist/atabey/src/modules/agents/registry/architect.js +43 -0
- package/dist/atabey/src/modules/agents/registry/architect.js.map +1 -0
- package/dist/atabey/src/modules/agents/registry/backend.d.ts +2 -0
- package/dist/atabey/src/modules/agents/registry/backend.js +51 -0
- package/dist/atabey/src/modules/agents/registry/backend.js.map +1 -0
- package/dist/atabey/src/modules/agents/registry/database.d.ts +2 -0
- package/dist/atabey/src/modules/agents/registry/database.js +46 -0
- package/dist/atabey/src/modules/agents/registry/database.js.map +1 -0
- package/dist/atabey/src/modules/agents/registry/devops.d.ts +2 -0
- package/dist/atabey/src/modules/agents/registry/devops.js +46 -0
- package/dist/atabey/src/modules/agents/registry/devops.js.map +1 -0
- package/dist/atabey/src/modules/agents/registry/explorer.d.ts +2 -0
- package/dist/atabey/src/modules/agents/registry/explorer.js +38 -0
- package/dist/atabey/src/modules/agents/registry/explorer.js.map +1 -0
- package/dist/atabey/src/modules/agents/registry/frontend.d.ts +2 -0
- package/dist/atabey/src/modules/agents/registry/frontend.js +53 -0
- package/dist/atabey/src/modules/agents/registry/frontend.js.map +1 -0
- package/dist/atabey/src/modules/agents/registry/git.d.ts +2 -0
- package/dist/atabey/src/modules/agents/registry/git.js +37 -0
- package/dist/atabey/src/modules/agents/registry/git.js.map +1 -0
- package/dist/atabey/src/modules/agents/registry/manager.d.ts +2 -0
- package/dist/atabey/src/modules/agents/registry/manager.js +65 -0
- package/dist/atabey/src/modules/agents/registry/manager.js.map +1 -0
- package/dist/atabey/src/modules/agents/registry/mobile.d.ts +2 -0
- package/dist/atabey/src/modules/agents/registry/mobile.js +42 -0
- package/dist/atabey/src/modules/agents/registry/mobile.js.map +1 -0
- package/dist/atabey/src/modules/agents/registry/native.d.ts +2 -0
- package/dist/atabey/src/modules/agents/registry/native.js +42 -0
- package/dist/atabey/src/modules/agents/registry/native.js.map +1 -0
- package/dist/atabey/src/modules/agents/registry/quality.d.ts +2 -0
- package/dist/atabey/src/modules/agents/registry/quality.js +44 -0
- package/dist/atabey/src/modules/agents/registry/quality.js.map +1 -0
- package/dist/atabey/src/modules/agents/registry/security.d.ts +2 -0
- package/dist/atabey/src/modules/agents/registry/security.js +43 -0
- package/dist/atabey/src/modules/agents/registry/security.js.map +1 -0
- package/dist/atabey/src/modules/agents/types.d.ts +33 -0
- package/dist/atabey/src/modules/agents/types.js +2 -0
- package/dist/atabey/src/modules/agents/types.js.map +1 -0
- package/dist/atabey/src/modules/contracts/api.d.ts +178 -0
- package/dist/atabey/src/modules/contracts/api.js +56 -0
- package/dist/atabey/src/modules/contracts/api.js.map +1 -0
- package/dist/atabey/src/modules/contracts/index.d.ts +5 -0
- package/dist/atabey/src/modules/contracts/index.js +6 -0
- package/dist/atabey/src/modules/contracts/index.js.map +1 -0
- package/dist/atabey/src/modules/engines/agent-executor.d.ts +46 -0
- package/dist/atabey/src/modules/engines/agent-executor.js +241 -0
- package/dist/atabey/src/modules/engines/agent-executor.js.map +1 -0
- package/dist/atabey/src/modules/engines/agent-loop.d.ts +34 -0
- package/dist/atabey/src/modules/engines/agent-loop.js +102 -0
- package/dist/atabey/src/modules/engines/agent-loop.js.map +1 -0
- package/dist/atabey/src/modules/engines/contract-engine.d.ts +46 -0
- package/dist/atabey/src/modules/engines/contract-engine.js +116 -0
- package/dist/atabey/src/modules/engines/contract-engine.js.map +1 -0
- package/dist/atabey/src/modules/engines/crud-governance.d.ts +64 -0
- package/dist/atabey/src/modules/engines/crud-governance.js +184 -0
- package/dist/atabey/src/modules/engines/crud-governance.js.map +1 -0
- package/dist/atabey/src/modules/engines/discovery-engine.d.ts +42 -0
- package/dist/atabey/src/modules/engines/discovery-engine.js +161 -0
- package/dist/atabey/src/modules/engines/discovery-engine.js.map +1 -0
- package/dist/atabey/src/modules/engines/evaluation-engine.d.ts +18 -0
- package/dist/atabey/src/modules/engines/evaluation-engine.js +171 -0
- package/dist/atabey/src/modules/engines/evaluation-engine.js.map +1 -0
- package/dist/atabey/src/modules/engines/file-lock.d.ts +41 -0
- package/dist/atabey/src/modules/engines/file-lock.js +168 -0
- package/dist/atabey/src/modules/engines/file-lock.js.map +1 -0
- package/dist/atabey/src/modules/engines/health-engine.d.ts +22 -0
- package/dist/atabey/src/modules/engines/health-engine.js +127 -0
- package/dist/atabey/src/modules/engines/health-engine.js.map +1 -0
- package/dist/atabey/src/modules/engines/phase-engine.d.ts +82 -0
- package/dist/atabey/src/modules/engines/phase-engine.js +211 -0
- package/dist/atabey/src/modules/engines/phase-engine.js.map +1 -0
- package/dist/atabey/src/modules/engines/planning-engine.d.ts +25 -0
- package/dist/atabey/src/modules/engines/planning-engine.js +80 -0
- package/dist/atabey/src/modules/engines/planning-engine.js.map +1 -0
- package/dist/atabey/src/modules/engines/policy-engine.d.ts +63 -0
- package/dist/atabey/src/modules/engines/policy-engine.js +186 -0
- package/dist/atabey/src/modules/engines/policy-engine.js.map +1 -0
- package/dist/atabey/src/modules/engines/quality-gate.d.ts +31 -0
- package/dist/atabey/src/modules/engines/quality-gate.js +95 -0
- package/dist/atabey/src/modules/engines/quality-gate.js.map +1 -0
- package/dist/atabey/src/modules/engines/risk-engine.d.ts +34 -0
- package/dist/atabey/src/modules/engines/risk-engine.js +201 -0
- package/dist/atabey/src/modules/engines/risk-engine.js.map +1 -0
- package/dist/atabey/src/modules/engines/routing-engine.d.ts +96 -0
- package/dist/atabey/src/modules/engines/routing-engine.js +505 -0
- package/dist/atabey/src/modules/engines/routing-engine.js.map +1 -0
- package/dist/atabey/src/modules/engines/session-engine.d.ts +68 -0
- package/dist/atabey/src/modules/engines/session-engine.js +141 -0
- package/dist/atabey/src/modules/engines/session-engine.js.map +1 -0
- package/dist/atabey/src/modules/engines/types.d.ts +51 -0
- package/dist/atabey/src/modules/engines/types.js +2 -0
- package/dist/atabey/src/modules/engines/types.js.map +1 -0
- package/dist/atabey/src/modules/memory/core.d.ts +42 -0
- package/dist/atabey/src/modules/memory/core.js +100 -0
- package/dist/atabey/src/modules/memory/core.js.map +1 -0
- package/dist/atabey/src/modules/memory/embedding.d.ts +28 -0
- package/dist/atabey/src/modules/memory/embedding.js +131 -0
- package/dist/atabey/src/modules/memory/embedding.js.map +1 -0
- package/dist/atabey/src/modules/memory/types.d.ts +18 -0
- package/dist/atabey/src/modules/memory/types.js +2 -0
- package/dist/atabey/src/modules/memory/types.js.map +1 -0
- package/dist/atabey/src/modules/memory/vector-store.d.ts +13 -0
- package/dist/atabey/src/modules/memory/vector-store.js +75 -0
- package/dist/atabey/src/modules/memory/vector-store.js.map +1 -0
- package/dist/atabey/src/modules/providers/definitions.js.map +1 -0
- package/dist/atabey/src/modules/providers/llm-provider.d.ts +87 -0
- package/dist/atabey/src/modules/providers/llm-provider.js +242 -0
- package/dist/atabey/src/modules/providers/llm-provider.js.map +1 -0
- package/dist/atabey/src/modules/providers/registry.js.map +1 -0
- package/dist/atabey/src/modules/providers/shared.js +104 -0
- package/dist/atabey/src/modules/providers/shared.js.map +1 -0
- package/dist/atabey/src/modules/providers/types.js.map +1 -0
- package/dist/atabey/src/modules/skills/adapter-skills.d.ts +68 -0
- package/dist/atabey/src/modules/skills/adapter-skills.js +450 -0
- package/dist/atabey/src/modules/skills/adapter-skills.js.map +1 -0
- package/dist/atabey/src/modules/skills/definitions.d.ts +48 -0
- package/dist/atabey/src/modules/skills/definitions.js +71 -0
- package/dist/atabey/src/modules/skills/definitions.js.map +1 -0
- package/dist/atabey/src/shared/audit.d.ts +105 -0
- package/dist/atabey/src/shared/audit.js +221 -0
- package/dist/atabey/src/shared/audit.js.map +1 -0
- package/dist/atabey/src/shared/constants.d.ts +120 -0
- package/dist/atabey/src/shared/constants.js +188 -0
- package/dist/atabey/src/shared/constants.js.map +1 -0
- package/dist/atabey/src/shared/errors.js.map +1 -0
- package/dist/atabey/src/shared/fs.d.ts +9 -0
- package/dist/atabey/src/shared/fs.js +54 -0
- package/dist/atabey/src/shared/fs.js.map +1 -0
- package/dist/atabey/src/shared/lock.d.ts +82 -0
- package/dist/atabey/src/shared/lock.js +160 -0
- package/dist/atabey/src/shared/lock.js.map +1 -0
- package/dist/atabey/src/shared/logger.d.ts +30 -0
- package/dist/atabey/src/shared/logger.js +127 -0
- package/dist/atabey/src/shared/logger.js.map +1 -0
- package/dist/atabey/src/shared/pii.d.ts +69 -0
- package/dist/atabey/src/shared/pii.js +213 -0
- package/dist/atabey/src/shared/pii.js.map +1 -0
- package/dist/atabey/src/shared/retention.d.ts +63 -0
- package/dist/atabey/src/shared/retention.js +171 -0
- package/dist/atabey/src/shared/retention.js.map +1 -0
- package/dist/atabey/src/shared/storage.d.ts +141 -0
- package/dist/atabey/src/shared/storage.js +326 -0
- package/dist/atabey/src/shared/storage.js.map +1 -0
- package/dist/atabey/src/shared/string.d.ts +1 -0
- package/dist/atabey/src/shared/string.js +30 -0
- package/dist/atabey/src/shared/string.js.map +1 -0
- package/dist/atabey/src/shared/types.d.ts +27 -0
- package/dist/atabey/src/shared/types.js +17 -0
- package/dist/atabey/src/shared/types.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/auth.d.ts +40 -0
- package/dist/atabey-mcp/src/mcp/utils/auth.js +154 -0
- package/dist/atabey-mcp/src/mcp/utils/auth.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/auto-rollback.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/context-optimizer.d.ts +110 -0
- package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js +391 -0
- package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/discipline.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/finops.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/license-scanner.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/loop-detector.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/memory.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/quality.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/rules-engine.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.js +397 -0
- package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.js.map +1 -0
- package/dist/atabey-mcp/src/shared/fs.d.ts +9 -0
- package/dist/atabey-mcp/src/shared/fs.js +54 -0
- package/dist/atabey-mcp/src/shared/fs.js.map +1 -0
- package/dist/atabey-mcp/src/shared/logger.d.ts +30 -0
- package/dist/atabey-mcp/src/shared/logger.js +127 -0
- package/dist/atabey-mcp/src/shared/logger.js.map +1 -0
- package/dist/atabey-mcp/src/shared/pii.d.ts +69 -0
- package/dist/atabey-mcp/src/shared/pii.js +213 -0
- package/dist/atabey-mcp/src/shared/pii.js.map +1 -0
- package/dist/atabey-mcp/src/shared/storage.d.ts +167 -0
- package/dist/atabey-mcp/src/shared/storage.js +293 -0
- package/dist/atabey-mcp/src/shared/storage.js.map +1 -0
- package/dist/atabey-mcp/src/shared/types.js.map +1 -0
- package/dist/src/cli/commands/check.js +1 -1
- package/dist/src/cli/commands/check.js.map +1 -1
- package/dist/src/cli/commands/dashboard.js +19 -19
- package/dist/src/cli/commands/dashboard.js.map +1 -1
- package/dist/src/cli/commands/mcp.js +3 -3
- package/dist/src/cli/commands/mcp.js.map +1 -1
- package/dist/src/cli/commands/orchestrate.d.ts +4 -4
- package/dist/src/cli/utils/compliance.d.ts +37 -7
- package/dist/src/cli/utils/compliance.js +144 -7
- package/dist/src/cli/utils/compliance.js.map +1 -1
- package/dist/src/cli/utils/pkg.js +1 -1
- package/dist/src/cli/utils/pkg.js.map +1 -1
- package/dist/src/cli/utils/quality.d.ts +4 -6
- package/dist/src/cli/utils/quality.js +3 -5
- package/dist/src/cli/utils/quality.js.map +1 -1
- package/dist/src/cli/utils/schemas.d.ts +2 -2
- package/dist/src/contracts/tasks.d.ts +2 -2
- package/dist/src/modules/contracts/api.d.ts +6 -6
- package/dist/src/modules/engines/contract-engine.d.ts +46 -0
- package/dist/src/modules/engines/contract-engine.js +116 -0
- package/dist/src/modules/engines/contract-engine.js.map +1 -0
- package/dist/src/modules/engines/crud-governance.d.ts +64 -0
- package/dist/src/modules/engines/crud-governance.js +184 -0
- package/dist/src/modules/engines/crud-governance.js.map +1 -0
- package/dist/src/modules/engines/discovery-engine.d.ts +42 -0
- package/dist/src/modules/engines/discovery-engine.js +161 -0
- package/dist/src/modules/engines/discovery-engine.js.map +1 -0
- package/dist/src/modules/engines/file-lock.d.ts +41 -0
- package/dist/src/modules/engines/file-lock.js +168 -0
- package/dist/src/modules/engines/file-lock.js.map +1 -0
- package/dist/src/modules/engines/phase-engine.d.ts +82 -0
- package/dist/src/modules/engines/phase-engine.js +211 -0
- package/dist/src/modules/engines/phase-engine.js.map +1 -0
- package/dist/src/modules/engines/policy-engine.d.ts +63 -0
- package/dist/src/modules/engines/policy-engine.js +186 -0
- package/dist/src/modules/engines/policy-engine.js.map +1 -0
- package/dist/src/modules/engines/session-engine.d.ts +68 -0
- package/dist/src/modules/engines/session-engine.js +141 -0
- package/dist/src/modules/engines/session-engine.js.map +1 -0
- package/dist/src/modules/providers/llm-provider.d.ts +87 -0
- package/dist/src/modules/providers/llm-provider.js +242 -0
- package/dist/src/modules/providers/llm-provider.js.map +1 -0
- package/dist/src/shared/constants.d.ts +1 -1
- package/dist/src/shared/constants.js +1 -1
- package/dist/src/shared/constants.js.map +1 -1
- package/package.json +12 -54
- package/LICENSE +0 -672
- package/README.md +0 -782
- package/dist/framework-mcp/src/constants.d.ts +0 -47
- package/dist/framework-mcp/src/constants.js +0 -65
- package/dist/framework-mcp/src/constants.js.map +0 -1
- package/dist/framework-mcp/src/index.js +0 -1141
- package/dist/framework-mcp/src/index.js.map +0 -1
- package/dist/framework-mcp/src/resources/index.d.ts +0 -10
- package/dist/framework-mcp/src/resources/index.js +0 -59
- package/dist/framework-mcp/src/resources/index.js.map +0 -1
- package/dist/framework-mcp/src/tools/compliance/mask_pii.d.ts +0 -17
- package/dist/framework-mcp/src/tools/compliance/mask_pii.js +0 -56
- package/dist/framework-mcp/src/tools/compliance/mask_pii.js.map +0 -1
- package/dist/framework-mcp/src/tools/control_plane/locking.d.ts +0 -9
- package/dist/framework-mcp/src/tools/control_plane/locking.js +0 -85
- package/dist/framework-mcp/src/tools/control_plane/locking.js.map +0 -1
- package/dist/framework-mcp/src/tools/control_plane/registry.d.ts +0 -6
- package/dist/framework-mcp/src/tools/control_plane/registry.js +0 -84
- package/dist/framework-mcp/src/tools/control_plane/registry.js.map +0 -1
- package/dist/framework-mcp/src/tools/definitions.d.ts +0 -7
- package/dist/framework-mcp/src/tools/definitions.js +0 -199
- package/dist/framework-mcp/src/tools/definitions.js.map +0 -1
- package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.d.ts +0 -5
- package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js +0 -65
- package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js.map +0 -1
- package/dist/framework-mcp/src/tools/file_system/patch_file.d.ts +0 -2
- package/dist/framework-mcp/src/tools/file_system/patch_file.js +0 -35
- package/dist/framework-mcp/src/tools/file_system/patch_file.js.map +0 -1
- package/dist/framework-mcp/src/tools/file_system/read_file.d.ts +0 -2
- package/dist/framework-mcp/src/tools/file_system/read_file.js +0 -57
- package/dist/framework-mcp/src/tools/file_system/read_file.js.map +0 -1
- package/dist/framework-mcp/src/tools/file_system/replace_text.d.ts +0 -2
- package/dist/framework-mcp/src/tools/file_system/replace_text.js +0 -51
- package/dist/framework-mcp/src/tools/file_system/replace_text.js.map +0 -1
- package/dist/framework-mcp/src/tools/file_system/write_file.d.ts +0 -2
- package/dist/framework-mcp/src/tools/file_system/write_file.js +0 -56
- package/dist/framework-mcp/src/tools/file_system/write_file.js.map +0 -1
- package/dist/framework-mcp/src/tools/framework/audit_deps.d.ts +0 -6
- package/dist/framework-mcp/src/tools/framework/audit_deps.js +0 -42
- package/dist/framework-mcp/src/tools/framework/audit_deps.js.map +0 -1
- package/dist/framework-mcp/src/tools/framework/get_status.d.ts +0 -2
- package/dist/framework-mcp/src/tools/framework/get_status.js +0 -6
- package/dist/framework-mcp/src/tools/framework/get_status.js.map +0 -1
- package/dist/framework-mcp/src/tools/framework/orchestrate.d.ts +0 -2
- package/dist/framework-mcp/src/tools/framework/orchestrate.js +0 -6
- package/dist/framework-mcp/src/tools/framework/orchestrate.js.map +0 -1
- package/dist/framework-mcp/src/tools/framework/run_tests.d.ts +0 -5
- package/dist/framework-mcp/src/tools/framework/run_tests.js +0 -53
- package/dist/framework-mcp/src/tools/framework/run_tests.js.map +0 -1
- package/dist/framework-mcp/src/tools/framework/submit_plan.d.ts +0 -11
- package/dist/framework-mcp/src/tools/framework/submit_plan.js +0 -14
- package/dist/framework-mcp/src/tools/framework/submit_plan.js.map +0 -1
- package/dist/framework-mcp/src/tools/framework/update_contract_hash.d.ts +0 -2
- package/dist/framework-mcp/src/tools/framework/update_contract_hash.js +0 -6
- package/dist/framework-mcp/src/tools/framework/update_contract_hash.js.map +0 -1
- package/dist/framework-mcp/src/tools/framework/update_memory.d.ts +0 -2
- package/dist/framework-mcp/src/tools/framework/update_memory.js +0 -9
- package/dist/framework-mcp/src/tools/framework/update_memory.js.map +0 -1
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.d.ts +0 -19
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js +0 -138
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js.map +0 -1
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.d.ts +0 -8
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js +0 -91
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js.map +0 -1
- package/dist/framework-mcp/src/tools/index.d.ts +0 -6
- package/dist/framework-mcp/src/tools/index.js +0 -126
- package/dist/framework-mcp/src/tools/index.js.map +0 -1
- package/dist/framework-mcp/src/tools/memory/delete_knowledge.d.ts +0 -8
- package/dist/framework-mcp/src/tools/memory/delete_knowledge.js +0 -29
- package/dist/framework-mcp/src/tools/memory/delete_knowledge.js.map +0 -1
- package/dist/framework-mcp/src/tools/memory/get_insights.d.ts +0 -6
- package/dist/framework-mcp/src/tools/memory/get_insights.js +0 -23
- package/dist/framework-mcp/src/tools/memory/get_insights.js.map +0 -1
- package/dist/framework-mcp/src/tools/memory/read_memory.d.ts +0 -6
- package/dist/framework-mcp/src/tools/memory/read_memory.js +0 -29
- package/dist/framework-mcp/src/tools/memory/read_memory.js.map +0 -1
- package/dist/framework-mcp/src/tools/memory/search_knowledge.d.ts +0 -8
- package/dist/framework-mcp/src/tools/memory/search_knowledge.js +0 -49
- package/dist/framework-mcp/src/tools/memory/search_knowledge.js.map +0 -1
- package/dist/framework-mcp/src/tools/memory/store_knowledge.d.ts +0 -10
- package/dist/framework-mcp/src/tools/memory/store_knowledge.js +0 -31
- package/dist/framework-mcp/src/tools/memory/store_knowledge.js.map +0 -1
- package/dist/framework-mcp/src/tools/messaging/approve_operation.d.ts +0 -24
- package/dist/framework-mcp/src/tools/messaging/approve_operation.js +0 -81
- package/dist/framework-mcp/src/tools/messaging/approve_operation.js.map +0 -1
- package/dist/framework-mcp/src/tools/messaging/ask_human.d.ts +0 -21
- package/dist/framework-mcp/src/tools/messaging/ask_human.js +0 -100
- package/dist/framework-mcp/src/tools/messaging/ask_human.js.map +0 -1
- package/dist/framework-mcp/src/tools/messaging/log_action.d.ts +0 -2
- package/dist/framework-mcp/src/tools/messaging/log_action.js +0 -23
- package/dist/framework-mcp/src/tools/messaging/log_action.js.map +0 -1
- package/dist/framework-mcp/src/tools/messaging/send_message.d.ts +0 -2
- package/dist/framework-mcp/src/tools/messaging/send_message.js +0 -111
- package/dist/framework-mcp/src/tools/messaging/send_message.js.map +0 -1
- package/dist/framework-mcp/src/tools/observability/check_ports.d.ts +0 -6
- package/dist/framework-mcp/src/tools/observability/check_ports.js +0 -43
- package/dist/framework-mcp/src/tools/observability/check_ports.js.map +0 -1
- package/dist/framework-mcp/src/tools/observability/get_health.d.ts +0 -5
- package/dist/framework-mcp/src/tools/observability/get_health.js +0 -20
- package/dist/framework-mcp/src/tools/observability/get_health.js.map +0 -1
- package/dist/framework-mcp/src/tools/quality/analyze_code_quality.d.ts +0 -11
- package/dist/framework-mcp/src/tools/quality/analyze_code_quality.js +0 -115
- package/dist/framework-mcp/src/tools/quality/analyze_code_quality.js.map +0 -1
- package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.d.ts +0 -11
- package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js +0 -135
- package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js.map +0 -1
- package/dist/framework-mcp/src/tools/quality/check_lint.d.ts +0 -5
- package/dist/framework-mcp/src/tools/quality/check_lint.js +0 -31
- package/dist/framework-mcp/src/tools/quality/check_lint.js.map +0 -1
- package/dist/framework-mcp/src/tools/schemas.d.ts +0 -434
- package/dist/framework-mcp/src/tools/schemas.js +0 -179
- package/dist/framework-mcp/src/tools/schemas.js.map +0 -1
- package/dist/framework-mcp/src/tools/search/get_gaps.d.ts +0 -6
- package/dist/framework-mcp/src/tools/search/get_gaps.js +0 -49
- package/dist/framework-mcp/src/tools/search/get_gaps.js.map +0 -1
- package/dist/framework-mcp/src/tools/search/get_map.d.ts +0 -6
- package/dist/framework-mcp/src/tools/search/get_map.js +0 -44
- package/dist/framework-mcp/src/tools/search/get_map.js.map +0 -1
- package/dist/framework-mcp/src/tools/search/grep_search.d.ts +0 -5
- package/dist/framework-mcp/src/tools/search/grep_search.js +0 -86
- package/dist/framework-mcp/src/tools/search/grep_search.js.map +0 -1
- package/dist/framework-mcp/src/tools/search/list_dir.d.ts +0 -5
- package/dist/framework-mcp/src/tools/search/list_dir.js +0 -32
- package/dist/framework-mcp/src/tools/search/list_dir.js.map +0 -1
- package/dist/framework-mcp/src/tools/shell/run_command.d.ts +0 -2
- package/dist/framework-mcp/src/tools/shell/run_command.js +0 -224
- package/dist/framework-mcp/src/tools/shell/run_command.js.map +0 -1
- package/dist/framework-mcp/src/tools/types.d.ts +0 -28
- package/dist/framework-mcp/src/tools/types.js +0 -3
- package/dist/framework-mcp/src/tools/types.js.map +0 -1
- package/dist/framework-mcp/src/utils/auth.d.ts +0 -60
- package/dist/framework-mcp/src/utils/auth.js +0 -146
- package/dist/framework-mcp/src/utils/auth.js.map +0 -1
- package/dist/framework-mcp/src/utils/auto-rollback.js.map +0 -1
- package/dist/framework-mcp/src/utils/cli.d.ts +0 -16
- package/dist/framework-mcp/src/utils/cli.js +0 -60
- package/dist/framework-mcp/src/utils/cli.js.map +0 -1
- package/dist/framework-mcp/src/utils/compliance.d.ts +0 -21
- package/dist/framework-mcp/src/utils/compliance.js +0 -333
- package/dist/framework-mcp/src/utils/compliance.js.map +0 -1
- package/dist/framework-mcp/src/utils/context-optimizer.d.ts +0 -69
- package/dist/framework-mcp/src/utils/context-optimizer.js +0 -157
- package/dist/framework-mcp/src/utils/context-optimizer.js.map +0 -1
- package/dist/framework-mcp/src/utils/discipline.js.map +0 -1
- package/dist/framework-mcp/src/utils/errors.js.map +0 -1
- package/dist/framework-mcp/src/utils/finops.js.map +0 -1
- package/dist/framework-mcp/src/utils/fs.d.ts +0 -19
- package/dist/framework-mcp/src/utils/fs.js +0 -48
- package/dist/framework-mcp/src/utils/fs.js.map +0 -1
- package/dist/framework-mcp/src/utils/human-in-loop.d.ts +0 -128
- package/dist/framework-mcp/src/utils/human-in-loop.js +0 -320
- package/dist/framework-mcp/src/utils/human-in-loop.js.map +0 -1
- package/dist/framework-mcp/src/utils/license-scanner.js.map +0 -1
- package/dist/framework-mcp/src/utils/loop-detector.js.map +0 -1
- package/dist/framework-mcp/src/utils/memory.js.map +0 -1
- package/dist/framework-mcp/src/utils/metrics.d.ts +0 -30
- package/dist/framework-mcp/src/utils/metrics.js +0 -57
- package/dist/framework-mcp/src/utils/metrics.js.map +0 -1
- package/dist/framework-mcp/src/utils/permissions.d.ts +0 -76
- package/dist/framework-mcp/src/utils/permissions.js +0 -208
- package/dist/framework-mcp/src/utils/permissions.js.map +0 -1
- package/dist/framework-mcp/src/utils/prompt-injection.d.ts +0 -20
- package/dist/framework-mcp/src/utils/prompt-injection.js +0 -64
- package/dist/framework-mcp/src/utils/prompt-injection.js.map +0 -1
- package/dist/framework-mcp/src/utils/quality.js.map +0 -1
- package/dist/framework-mcp/src/utils/rules-engine.js.map +0 -1
- package/dist/framework-mcp/src/utils/security.d.ts +0 -10
- package/dist/framework-mcp/src/utils/security.js +0 -61
- package/dist/framework-mcp/src/utils/security.js.map +0 -1
- package/dist/framework-mcp/src/utils/silent-router.d.ts +0 -49
- package/dist/framework-mcp/src/utils/silent-router.js +0 -155
- package/dist/framework-mcp/src/utils/silent-router.js.map +0 -1
- package/dist/framework-mcp/src/utils/storage.d.ts +0 -61
- package/dist/framework-mcp/src/utils/storage.js +0 -208
- package/dist/framework-mcp/src/utils/storage.js.map +0 -1
- package/dist/framework-mcp/src/utils/telemetry-streamer.js +0 -397
- package/dist/framework-mcp/src/utils/telemetry-streamer.js.map +0 -1
- package/dist/framework-mcp/src/utils/types.js.map +0 -1
- package/dist/framework-mcp/src/utils/zod-to-mcp.d.ts +0 -10
- package/dist/framework-mcp/src/utils/zod-to-mcp.js +0 -80
- package/dist/framework-mcp/src/utils/zod-to-mcp.js.map +0 -1
- package/dist/framework-mcp/tests/tools/file_system/compliance-risk.test.d.ts +0 -1
- package/dist/framework-mcp/tests/tools/file_system/compliance-risk.test.js +0 -84
- package/dist/framework-mcp/tests/tools/file_system/compliance-risk.test.js.map +0 -1
- package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.d.ts +0 -1
- package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js +0 -192
- package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js.map +0 -1
- package/dist/framework-mcp/tests/tools/file_system/permissions.test.d.ts +0 -1
- package/dist/framework-mcp/tests/tools/file_system/permissions.test.js +0 -195
- package/dist/framework-mcp/tests/tools/file_system/permissions.test.js.map +0 -1
- package/dist/framework-mcp/tests/tools/framework/run_tests.test.d.ts +0 -1
- package/dist/framework-mcp/tests/tools/framework/run_tests.test.js +0 -49
- package/dist/framework-mcp/tests/tools/framework/run_tests.test.js.map +0 -1
- package/dist/framework-mcp/tests/tools/messaging/send_message.test.d.ts +0 -1
- package/dist/framework-mcp/tests/tools/messaging/send_message.test.js +0 -131
- package/dist/framework-mcp/tests/tools/messaging/send_message.test.js.map +0 -1
- package/dist/framework-mcp/tests/tools/observability/check_ports.test.d.ts +0 -1
- package/dist/framework-mcp/tests/tools/observability/check_ports.test.js +0 -44
- package/dist/framework-mcp/tests/tools/observability/check_ports.test.js.map +0 -1
- package/dist/framework-mcp/tests/tools/quality/check_lint.test.d.ts +0 -1
- package/dist/framework-mcp/tests/tools/quality/check_lint.test.js +0 -36
- package/dist/framework-mcp/tests/tools/quality/check_lint.test.js.map +0 -1
- package/dist/framework-mcp/tests/tools/shell/run_command.test.d.ts +0 -1
- package/dist/framework-mcp/tests/tools/shell/run_command.test.js +0 -73
- package/dist/framework-mcp/tests/tools/shell/run_command.test.js.map +0 -1
- package/dist/framework-mcp/tests/utils/auto-rollback.test.d.ts +0 -7
- package/dist/framework-mcp/tests/utils/auto-rollback.test.js +0 -178
- package/dist/framework-mcp/tests/utils/auto-rollback.test.js.map +0 -1
- package/dist/framework-mcp/tests/utils/context-optimizer.test.d.ts +0 -1
- package/dist/framework-mcp/tests/utils/context-optimizer.test.js +0 -62
- package/dist/framework-mcp/tests/utils/context-optimizer.test.js.map +0 -1
- package/dist/framework-mcp/tests/utils/finops.test.d.ts +0 -7
- package/dist/framework-mcp/tests/utils/finops.test.js +0 -157
- package/dist/framework-mcp/tests/utils/finops.test.js.map +0 -1
- package/dist/framework-mcp/tests/utils/human-in-loop.test.d.ts +0 -1
- package/dist/framework-mcp/tests/utils/human-in-loop.test.js +0 -207
- package/dist/framework-mcp/tests/utils/human-in-loop.test.js.map +0 -1
- package/dist/framework-mcp/tests/utils/license-scanner.test.d.ts +0 -7
- package/dist/framework-mcp/tests/utils/license-scanner.test.js +0 -131
- package/dist/framework-mcp/tests/utils/license-scanner.test.js.map +0 -1
- package/dist/framework-mcp/tests/utils/loop-detector.test.d.ts +0 -7
- package/dist/framework-mcp/tests/utils/loop-detector.test.js +0 -202
- package/dist/framework-mcp/tests/utils/loop-detector.test.js.map +0 -1
- package/dist/framework-mcp/tests/utils/prompt-injection.test.d.ts +0 -1
- package/dist/framework-mcp/tests/utils/prompt-injection.test.js +0 -43
- package/dist/framework-mcp/tests/utils/prompt-injection.test.js.map +0 -1
- package/dist/framework-mcp/tests/utils/rules-engine.test.d.ts +0 -1
- package/dist/framework-mcp/tests/utils/rules-engine.test.js +0 -106
- package/dist/framework-mcp/tests/utils/rules-engine.test.js.map +0 -1
- package/dist/framework-mcp/tests/utils/telemetry-streamer.test.d.ts +0 -7
- package/dist/framework-mcp/tests/utils/telemetry-streamer.test.js +0 -201
- package/dist/framework-mcp/tests/utils/telemetry-streamer.test.js.map +0 -1
- package/dist/src/cli/adapters/core.d.ts +0 -12
- package/dist/src/cli/adapters/core.js +0 -73
- package/dist/src/cli/adapters/core.js.map +0 -1
- package/dist/src/cli/adapters/index.d.ts +0 -5
- package/dist/src/cli/adapters/index.js +0 -6
- package/dist/src/cli/adapters/index.js.map +0 -1
- package/dist/src/cli/adapters/paths.d.ts +0 -15
- package/dist/src/cli/adapters/paths.js +0 -102
- package/dist/src/cli/adapters/paths.js.map +0 -1
- package/dist/src/cli/adapters/scaffold.d.ts +0 -2
- package/dist/src/cli/adapters/scaffold.js +0 -73
- package/dist/src/cli/adapters/scaffold.js.map +0 -1
- package/dist/src/cli/adapters/utils.d.ts +0 -4
- package/dist/src/cli/adapters/utils.js.map +0 -1
- package/dist/src/cli/commands/gateway.d.ts +0 -1
- package/dist/src/cli/commands/gateway.js +0 -172
- package/dist/src/cli/commands/gateway.js.map +0 -1
- package/dist/src/dashboard/src/hooks/useApi.d.ts +0 -18
- package/dist/src/dashboard/src/hooks/useApi.js +0 -47
- package/dist/src/dashboard/src/hooks/useApi.js.map +0 -1
- package/dist/src/dashboard/src/hooks/useSSE.d.ts +0 -12
- package/dist/src/dashboard/src/hooks/useSSE.js +0 -60
- package/dist/src/dashboard/src/hooks/useSSE.js.map +0 -1
- package/dist/src/dashboard/vite.config.d.ts +0 -2
- package/dist/src/dashboard/vite.config.js +0 -16
- package/dist/src/dashboard/vite.config.js.map +0 -1
- package/dist/src/modules/adapters/definitions.js.map +0 -1
- package/dist/src/modules/adapters/registry.js.map +0 -1
- package/dist/src/modules/adapters/shared.js +0 -105
- package/dist/src/modules/adapters/shared.js.map +0 -1
- package/dist/src/modules/adapters/types.js.map +0 -1
- package/dist/src/modules/gateway/circuit-breaker.d.ts +0 -40
- package/dist/src/modules/gateway/circuit-breaker.js +0 -163
- package/dist/src/modules/gateway/circuit-breaker.js.map +0 -1
- package/dist/src/modules/gateway/cost-tracker.d.ts +0 -60
- package/dist/src/modules/gateway/cost-tracker.js +0 -198
- package/dist/src/modules/gateway/cost-tracker.js.map +0 -1
- package/dist/src/modules/gateway/gateway.d.ts +0 -72
- package/dist/src/modules/gateway/gateway.js +0 -243
- package/dist/src/modules/gateway/gateway.js.map +0 -1
- package/dist/src/modules/gateway/index.d.ts +0 -19
- package/dist/src/modules/gateway/index.js +0 -19
- package/dist/src/modules/gateway/index.js.map +0 -1
- package/dist/src/modules/gateway/load-balancer.d.ts +0 -86
- package/dist/src/modules/gateway/load-balancer.js +0 -230
- package/dist/src/modules/gateway/load-balancer.js.map +0 -1
- package/dist/src/modules/gateway/providers/anthropic.d.ts +0 -14
- package/dist/src/modules/gateway/providers/anthropic.js +0 -169
- package/dist/src/modules/gateway/providers/anthropic.js.map +0 -1
- package/dist/src/modules/gateway/providers/base.d.ts +0 -38
- package/dist/src/modules/gateway/providers/base.js +0 -42
- package/dist/src/modules/gateway/providers/base.js.map +0 -1
- package/dist/src/modules/gateway/providers/google.d.ts +0 -18
- package/dist/src/modules/gateway/providers/google.js +0 -176
- package/dist/src/modules/gateway/providers/google.js.map +0 -1
- package/dist/src/modules/gateway/providers/grok.d.ts +0 -14
- package/dist/src/modules/gateway/providers/grok.js +0 -166
- package/dist/src/modules/gateway/providers/grok.js.map +0 -1
- package/dist/src/modules/gateway/providers/index.d.ts +0 -21
- package/dist/src/modules/gateway/providers/index.js +0 -38
- package/dist/src/modules/gateway/providers/index.js.map +0 -1
- package/dist/src/modules/gateway/providers/ollama.d.ts +0 -23
- package/dist/src/modules/gateway/providers/ollama.js +0 -187
- package/dist/src/modules/gateway/providers/ollama.js.map +0 -1
- package/dist/src/modules/gateway/providers/openai.d.ts +0 -14
- package/dist/src/modules/gateway/providers/openai.js +0 -170
- package/dist/src/modules/gateway/providers/openai.js.map +0 -1
- package/dist/src/modules/gateway/rate-limiter.d.ts +0 -41
- package/dist/src/modules/gateway/rate-limiter.js +0 -119
- package/dist/src/modules/gateway/rate-limiter.js.map +0 -1
- package/dist/src/modules/gateway/types.d.ts +0 -114
- package/dist/src/modules/gateway/types.js +0 -8
- package/dist/src/modules/gateway/types.js.map +0 -1
- package/dist/tests/dashboard.test.d.ts +0 -1
- package/dist/tests/dashboard.test.js +0 -116
- package/dist/tests/dashboard.test.js.map +0 -1
- package/dist/tests/modules/gateway/circuit-breaker.test.d.ts +0 -1
- package/dist/tests/modules/gateway/circuit-breaker.test.js +0 -124
- package/dist/tests/modules/gateway/circuit-breaker.test.js.map +0 -1
- package/dist/tests/modules/gateway/cost-tracker.test.d.ts +0 -1
- package/dist/tests/modules/gateway/cost-tracker.test.js +0 -93
- package/dist/tests/modules/gateway/cost-tracker.test.js.map +0 -1
- package/dist/tests/modules/gateway/load-balancer.test.d.ts +0 -1
- package/dist/tests/modules/gateway/load-balancer.test.js +0 -70
- package/dist/tests/modules/gateway/load-balancer.test.js.map +0 -1
- package/dist/tests/modules/gateway/rate-limiter.test.d.ts +0 -1
- package/dist/tests/modules/gateway/rate-limiter.test.js +0 -62
- package/dist/tests/modules/gateway/rate-limiter.test.js.map +0 -1
- package/dist/tests/planning-engine.test.d.ts +0 -1
- package/dist/tests/planning-engine.test.js +0 -51
- package/dist/tests/planning-engine.test.js.map +0 -1
- package/dist/tests/risk-engine.test.d.ts +0 -1
- package/dist/tests/risk-engine.test.js +0 -44
- package/dist/tests/risk-engine.test.js.map +0 -1
- package/dist/ui/assets/index-B-d2ejS8.js +0 -519
- package/dist/ui/assets/index-CyXywq5G.css +0 -1
- package/dist/ui/index.html +0 -14
- package/dist/vitest.config.d.ts +0 -2
- package/dist/vitest.config.js +0 -22
- package/dist/vitest.config.js.map +0 -1
- package/framework-mcp/README.md +0 -620
- package/framework-mcp/dist/constants.js +0 -64
- package/framework-mcp/dist/dashboard/assets/index-B-Eu7_J9.js +0 -1260
- package/framework-mcp/dist/dashboard/index.html +0 -15
- package/framework-mcp/dist/framework-mcp/src/constants.js +0 -64
- package/framework-mcp/dist/framework-mcp/src/index.js +0 -1140
- package/framework-mcp/dist/framework-mcp/src/resources/index.js +0 -58
- package/framework-mcp/dist/framework-mcp/src/tools/compliance/mask_pii.js +0 -55
- package/framework-mcp/dist/framework-mcp/src/tools/control_plane/locking.js +0 -84
- package/framework-mcp/dist/framework-mcp/src/tools/control_plane/registry.js +0 -83
- package/framework-mcp/dist/framework-mcp/src/tools/definitions.js +0 -198
- package/framework-mcp/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js +0 -64
- package/framework-mcp/dist/framework-mcp/src/tools/file_system/patch_file.js +0 -34
- package/framework-mcp/dist/framework-mcp/src/tools/file_system/read_file.js +0 -56
- package/framework-mcp/dist/framework-mcp/src/tools/file_system/replace_text.js +0 -50
- package/framework-mcp/dist/framework-mcp/src/tools/file_system/write_file.js +0 -55
- package/framework-mcp/dist/framework-mcp/src/tools/framework/audit_deps.js +0 -41
- package/framework-mcp/dist/framework-mcp/src/tools/framework/get_status.js +0 -5
- package/framework-mcp/dist/framework-mcp/src/tools/framework/orchestrate.js +0 -5
- package/framework-mcp/dist/framework-mcp/src/tools/framework/run_tests.js +0 -52
- package/framework-mcp/dist/framework-mcp/src/tools/framework/submit_plan.js +0 -13
- package/framework-mcp/dist/framework-mcp/src/tools/framework/update_contract_hash.js +0 -5
- package/framework-mcp/dist/framework-mcp/src/tools/framework/update_memory.js +0 -8
- package/framework-mcp/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js +0 -137
- package/framework-mcp/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js +0 -90
- package/framework-mcp/dist/framework-mcp/src/tools/index.js +0 -125
- package/framework-mcp/dist/framework-mcp/src/tools/memory/delete_knowledge.js +0 -28
- package/framework-mcp/dist/framework-mcp/src/tools/memory/get_insights.js +0 -22
- package/framework-mcp/dist/framework-mcp/src/tools/memory/read_memory.js +0 -28
- package/framework-mcp/dist/framework-mcp/src/tools/memory/search_knowledge.js +0 -48
- package/framework-mcp/dist/framework-mcp/src/tools/memory/store_knowledge.js +0 -30
- package/framework-mcp/dist/framework-mcp/src/tools/messaging/approve_operation.js +0 -80
- package/framework-mcp/dist/framework-mcp/src/tools/messaging/ask_human.js +0 -99
- package/framework-mcp/dist/framework-mcp/src/tools/messaging/log_action.js +0 -22
- package/framework-mcp/dist/framework-mcp/src/tools/messaging/send_message.js +0 -110
- package/framework-mcp/dist/framework-mcp/src/tools/observability/check_ports.js +0 -42
- package/framework-mcp/dist/framework-mcp/src/tools/observability/get_health.js +0 -19
- package/framework-mcp/dist/framework-mcp/src/tools/quality/analyze_code_quality.js +0 -114
- package/framework-mcp/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js +0 -134
- package/framework-mcp/dist/framework-mcp/src/tools/quality/check_lint.js +0 -30
- package/framework-mcp/dist/framework-mcp/src/tools/schemas.js +0 -178
- package/framework-mcp/dist/framework-mcp/src/tools/search/get_gaps.js +0 -48
- package/framework-mcp/dist/framework-mcp/src/tools/search/get_map.js +0 -43
- package/framework-mcp/dist/framework-mcp/src/tools/search/grep_search.js +0 -85
- package/framework-mcp/dist/framework-mcp/src/tools/search/list_dir.js +0 -31
- package/framework-mcp/dist/framework-mcp/src/tools/shell/run_command.js +0 -223
- package/framework-mcp/dist/framework-mcp/src/tools/types.js +0 -2
- package/framework-mcp/dist/framework-mcp/src/utils/auth.js +0 -145
- package/framework-mcp/dist/framework-mcp/src/utils/auto-rollback.js +0 -265
- package/framework-mcp/dist/framework-mcp/src/utils/cli.js +0 -59
- package/framework-mcp/dist/framework-mcp/src/utils/compliance.js +0 -332
- package/framework-mcp/dist/framework-mcp/src/utils/context-optimizer.js +0 -156
- package/framework-mcp/dist/framework-mcp/src/utils/discipline.js +0 -256
- package/framework-mcp/dist/framework-mcp/src/utils/errors.js +0 -68
- package/framework-mcp/dist/framework-mcp/src/utils/finops.js +0 -325
- package/framework-mcp/dist/framework-mcp/src/utils/fs.js +0 -47
- package/framework-mcp/dist/framework-mcp/src/utils/human-in-loop.js +0 -319
- package/framework-mcp/dist/framework-mcp/src/utils/license-scanner.js +0 -283
- package/framework-mcp/dist/framework-mcp/src/utils/loop-detector.js +0 -361
- package/framework-mcp/dist/framework-mcp/src/utils/memory.js +0 -74
- package/framework-mcp/dist/framework-mcp/src/utils/metrics.js +0 -56
- package/framework-mcp/dist/framework-mcp/src/utils/permissions.js +0 -207
- package/framework-mcp/dist/framework-mcp/src/utils/prompt-injection.js +0 -63
- package/framework-mcp/dist/framework-mcp/src/utils/quality.js +0 -124
- package/framework-mcp/dist/framework-mcp/src/utils/rules-engine.js +0 -231
- package/framework-mcp/dist/framework-mcp/src/utils/security.js +0 -60
- package/framework-mcp/dist/framework-mcp/src/utils/silent-router.js +0 -154
- package/framework-mcp/dist/framework-mcp/src/utils/storage.js +0 -207
- package/framework-mcp/dist/framework-mcp/src/utils/telemetry-streamer.js +0 -396
- package/framework-mcp/dist/framework-mcp/src/utils/types.js +0 -16
- package/framework-mcp/dist/framework-mcp/src/utils/zod-to-mcp.js +0 -79
- package/framework-mcp/dist/index.js +0 -156
- package/framework-mcp/dist/resources/index.js +0 -58
- package/framework-mcp/dist/src/cli/platforms/core.js +0 -72
- package/framework-mcp/dist/src/cli/platforms/index.js +0 -5
- package/framework-mcp/dist/src/cli/platforms/paths.js +0 -101
- package/framework-mcp/dist/src/cli/platforms/scaffold.js +0 -72
- package/framework-mcp/dist/src/cli/platforms/utils.js +0 -75
- package/framework-mcp/dist/src/cli/utils/claude.js +0 -57
- package/framework-mcp/dist/src/cli/utils/compliance.js +0 -12
- package/framework-mcp/dist/src/cli/utils/fs.js +0 -138
- package/framework-mcp/dist/src/cli/utils/memory.js +0 -280
- package/framework-mcp/dist/src/cli/utils/pkg.js +0 -282
- package/framework-mcp/dist/src/cli/utils/quality.js +0 -9
- package/framework-mcp/dist/src/cli/utils/time.js +0 -27
- package/framework-mcp/dist/src/cli/utils/ui.js +0 -100
- package/framework-mcp/dist/src/modules/agents/definitions.js +0 -563
- package/framework-mcp/dist/src/modules/agents/registry/analyst.js +0 -39
- package/framework-mcp/dist/src/modules/agents/registry/architect.js +0 -42
- package/framework-mcp/dist/src/modules/agents/registry/backend.js +0 -50
- package/framework-mcp/dist/src/modules/agents/registry/database.js +0 -45
- package/framework-mcp/dist/src/modules/agents/registry/devops.js +0 -45
- package/framework-mcp/dist/src/modules/agents/registry/explorer.js +0 -37
- package/framework-mcp/dist/src/modules/agents/registry/frontend.js +0 -52
- package/framework-mcp/dist/src/modules/agents/registry/git.js +0 -36
- package/framework-mcp/dist/src/modules/agents/registry/manager.js +0 -64
- package/framework-mcp/dist/src/modules/agents/registry/mobile.js +0 -41
- package/framework-mcp/dist/src/modules/agents/registry/native.js +0 -41
- package/framework-mcp/dist/src/modules/agents/registry/quality.js +0 -43
- package/framework-mcp/dist/src/modules/agents/registry/security.js +0 -42
- package/framework-mcp/dist/src/modules/agents/types.js +0 -1
- package/framework-mcp/dist/src/modules/engines/evaluation-engine.js +0 -170
- package/framework-mcp/dist/src/modules/engines/quality-gate.js +0 -94
- package/framework-mcp/dist/src/modules/engines/risk-engine.js +0 -200
- package/framework-mcp/dist/src/modules/engines/routing-engine.js +0 -504
- package/framework-mcp/dist/src/modules/engines/types.js +0 -1
- package/framework-mcp/dist/src/modules/memory/core.js +0 -99
- package/framework-mcp/dist/src/modules/memory/embedding.js +0 -130
- package/framework-mcp/dist/src/modules/memory/types.js +0 -1
- package/framework-mcp/dist/src/modules/memory/vector-store.js +0 -74
- package/framework-mcp/dist/src/modules/providers/definitions.js +0 -140
- package/framework-mcp/dist/src/modules/providers/registry.js +0 -18
- package/framework-mcp/dist/src/modules/providers/shared.js +0 -103
- package/framework-mcp/dist/src/modules/providers/types.js +0 -1
- package/framework-mcp/dist/src/modules/skills/adapter-skills.js +0 -449
- package/framework-mcp/dist/src/modules/skills/definitions.js +0 -70
- package/framework-mcp/dist/src/shared/audit.js +0 -220
- package/framework-mcp/dist/src/shared/constants.js +0 -187
- package/framework-mcp/dist/src/shared/errors.js +0 -68
- package/framework-mcp/dist/src/shared/fs.js +0 -53
- package/framework-mcp/dist/src/shared/lock.js +0 -159
- package/framework-mcp/dist/src/shared/logger.js +0 -126
- package/framework-mcp/dist/src/shared/pii.js +0 -212
- package/framework-mcp/dist/src/shared/retention.js +0 -170
- package/framework-mcp/dist/src/shared/storage.js +0 -325
- package/framework-mcp/dist/src/shared/string.js +0 -29
- package/framework-mcp/dist/src/shared/types.js +0 -16
- package/framework-mcp/dist/tools/control_plane/locking.js +0 -82
- package/framework-mcp/dist/tools/control_plane/registry.js +0 -35
- package/framework-mcp/dist/tools/definitions.js +0 -154
- package/framework-mcp/dist/tools/file_system/batch_surgical_edit.js +0 -64
- package/framework-mcp/dist/tools/file_system/patch_file.js +0 -34
- package/framework-mcp/dist/tools/file_system/read_file.js +0 -51
- package/framework-mcp/dist/tools/file_system/replace_text.js +0 -50
- package/framework-mcp/dist/tools/file_system/write_file.js +0 -55
- 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 -27
- package/framework-mcp/dist/tools/framework/submit_plan.js +0 -13
- 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 -99
- package/framework-mcp/dist/tools/memory/get_insights.js +0 -22
- 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 -94
- 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/quality/check_lint.js +0 -30
- package/framework-mcp/dist/tools/schemas.js +0 -133
- 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 -75
- package/framework-mcp/dist/tools/search/list_dir.js +0 -28
- package/framework-mcp/dist/tools/shell/run_command.js +0 -56
- package/framework-mcp/dist/tools/types.js +0 -1
- package/framework-mcp/dist/utils/cli.js +0 -59
- package/framework-mcp/dist/utils/compliance.js +0 -231
- package/framework-mcp/dist/utils/errors.js +0 -68
- package/framework-mcp/dist/utils/fs.js +0 -44
- package/framework-mcp/dist/utils/memory.js +0 -74
- package/framework-mcp/dist/utils/metrics.js +0 -56
- package/framework-mcp/dist/utils/permissions.js +0 -71
- package/framework-mcp/dist/utils/security.js +0 -60
- package/framework-mcp/dist/utils/storage.js +0 -207
- package/framework-mcp/dist/utils/types.js +0 -16
- package/framework-mcp/dist/utils/zod-to-mcp.js +0 -77
- package/framework-mcp/package.json +0 -46
- package/mcp.json +0 -20
- /package/dist/{framework-mcp/src → atabey/src/cli}/index.d.ts +0 -0
- /package/dist/{src/cli/adapters → atabey/src/cli/platforms}/utils.js +0 -0
- /package/dist/{src/modules/adapters → atabey/src/modules/providers}/definitions.d.ts +0 -0
- /package/dist/{src/modules/adapters → atabey/src/modules/providers}/definitions.js +0 -0
- /package/dist/{src/modules/adapters → atabey/src/modules/providers}/registry.d.ts +0 -0
- /package/dist/{src/modules/adapters → atabey/src/modules/providers}/registry.js +0 -0
- /package/dist/{src/modules/adapters → atabey/src/modules/providers}/shared.d.ts +0 -0
- /package/dist/{src/modules/adapters → atabey/src/modules/providers}/types.d.ts +0 -0
- /package/dist/{src/modules/adapters → atabey/src/modules/providers}/types.js +0 -0
- /package/dist/{framework-mcp/src/utils → atabey/src/shared}/errors.d.ts +0 -0
- /package/dist/{framework-mcp/src/utils → atabey/src/shared}/errors.js +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/auto-rollback.d.ts +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/auto-rollback.js +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/discipline.d.ts +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/discipline.js +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/finops.d.ts +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/finops.js +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/license-scanner.d.ts +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/license-scanner.js +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/loop-detector.d.ts +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/loop-detector.js +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/memory.d.ts +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/memory.js +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/quality.d.ts +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/quality.js +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/rules-engine.d.ts +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/rules-engine.js +0 -0
- /package/dist/{framework-mcp/src → atabey-mcp/src/mcp}/utils/telemetry-streamer.d.ts +0 -0
- /package/dist/{framework-mcp/src/utils → atabey-mcp/src/shared}/types.d.ts +0 -0
- /package/dist/{framework-mcp/src/utils → atabey-mcp/src/shared}/types.js +0 -0
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
import { spawn } from "child_process";
|
|
2
|
-
import { Metrics } from "../../utils/metrics.js";
|
|
3
|
-
import { resolveActiveAgent, getAgentTier } from "../../utils/permissions.js";
|
|
4
|
-
import { resolveFrameworkDir } from "../../utils/security.js";
|
|
5
|
-
import path from "path";
|
|
6
|
-
// Each entry defines the executable and its allowed args prefix
|
|
7
|
-
const COMMAND_ALLOW_LIST = [
|
|
8
|
-
// Package managers
|
|
9
|
-
{ cmd: "npm", args: ["test"] },
|
|
10
|
-
{ cmd: "npm", args: ["run"] },
|
|
11
|
-
{ cmd: "npm", args: ["install"] },
|
|
12
|
-
{ cmd: "npm", args: ["ci"] },
|
|
13
|
-
{ cmd: "npm", args: ["audit"] },
|
|
14
|
-
{ cmd: "npx", args: ["vitest"] },
|
|
15
|
-
{ cmd: "npx", args: ["tsc"] },
|
|
16
|
-
{ cmd: "npx", args: ["eslint"] },
|
|
17
|
-
{ cmd: "yarn", args: ["test"] },
|
|
18
|
-
{ cmd: "yarn", args: ["run"] },
|
|
19
|
-
{ cmd: "yarn", args: ["install"] },
|
|
20
|
-
{ cmd: "pnpm", args: ["test"] },
|
|
21
|
-
{ cmd: "pnpm", args: ["run"] },
|
|
22
|
-
{ cmd: "pnpm", args: ["install"] },
|
|
23
|
-
// Git
|
|
24
|
-
{ cmd: "git", args: ["status"] },
|
|
25
|
-
{ cmd: "git", args: ["diff"] },
|
|
26
|
-
{ cmd: "git", args: ["log"] },
|
|
27
|
-
{ cmd: "git", args: ["branch"] },
|
|
28
|
-
{ cmd: "git", args: ["stash"] },
|
|
29
|
-
{ cmd: "git", args: ["add"] },
|
|
30
|
-
{ cmd: "git", args: ["commit"] },
|
|
31
|
-
{ cmd: "git", args: ["push"] },
|
|
32
|
-
{ cmd: "git", args: ["pull"] },
|
|
33
|
-
{ cmd: "git", args: ["fetch"] },
|
|
34
|
-
{ cmd: "git", args: ["merge"] },
|
|
35
|
-
{ cmd: "git", args: ["rebase"] },
|
|
36
|
-
{ cmd: "git", args: ["checkout"] },
|
|
37
|
-
{ cmd: "git", args: ["reset"] },
|
|
38
|
-
// Build tools
|
|
39
|
-
{ cmd: "make" },
|
|
40
|
-
{ cmd: "cmake" },
|
|
41
|
-
{ cmd: "dotnet", args: ["test"] },
|
|
42
|
-
{ cmd: "dotnet", args: ["format"] },
|
|
43
|
-
{ cmd: "dotnet", args: ["build"] },
|
|
44
|
-
{ cmd: "dotnet", args: ["run"] },
|
|
45
|
-
{ cmd: "dotnet", args: ["restore"] },
|
|
46
|
-
{ cmd: "go", args: ["test"] },
|
|
47
|
-
{ cmd: "go", args: ["fmt"] },
|
|
48
|
-
{ cmd: "go", args: ["build"] },
|
|
49
|
-
{ cmd: "go", args: ["run"] },
|
|
50
|
-
{ cmd: "go", args: ["vet"] },
|
|
51
|
-
{ cmd: "go", args: ["mod"] },
|
|
52
|
-
{ cmd: "pytest" },
|
|
53
|
-
{ cmd: "ruff", args: ["check"] },
|
|
54
|
-
{ cmd: "ruff", args: ["format"] },
|
|
55
|
-
{ cmd: "mvn" },
|
|
56
|
-
{ cmd: "./gradlew" },
|
|
57
|
-
{ cmd: "cargo", args: ["test"] },
|
|
58
|
-
{ cmd: "cargo", args: ["build"] },
|
|
59
|
-
{ cmd: "cargo", args: ["check"] },
|
|
60
|
-
{ cmd: "cargo", args: ["fmt"] },
|
|
61
|
-
// File operations (safe) — spawn prevents shell injection
|
|
62
|
-
{ cmd: "mkdir" },
|
|
63
|
-
{ cmd: "cp" },
|
|
64
|
-
{ cmd: "mv" },
|
|
65
|
-
{ cmd: "rmdir" },
|
|
66
|
-
{ cmd: "cat" },
|
|
67
|
-
{ cmd: "ls" },
|
|
68
|
-
{ cmd: "touch" },
|
|
69
|
-
{ cmd: "head" },
|
|
70
|
-
{ cmd: "tail" },
|
|
71
|
-
{ cmd: "wc" },
|
|
72
|
-
{ cmd: "grep" },
|
|
73
|
-
{ cmd: "find" },
|
|
74
|
-
{ cmd: "sort" },
|
|
75
|
-
{ cmd: "uniq" },
|
|
76
|
-
{ cmd: "echo" },
|
|
77
|
-
{ cmd: "pwd" },
|
|
78
|
-
{ cmd: "which" },
|
|
79
|
-
{ cmd: "file" },
|
|
80
|
-
{ cmd: "du" },
|
|
81
|
-
{ cmd: "df" },
|
|
82
|
-
];
|
|
83
|
-
const TIMEOUT = parseInt(process.env.MCP_COMMAND_TIMEOUT_MS || "30000", 10);
|
|
84
|
-
/**
|
|
85
|
-
* Checks if a parsed command represents a state-mutating (write) operation.
|
|
86
|
-
*/
|
|
87
|
-
function isWriteCommand(parsed) {
|
|
88
|
-
const cmd = parsed.cmd;
|
|
89
|
-
const firstArg = parsed.args[0] || "";
|
|
90
|
-
const writeCmds = ["mkdir", "cp", "mv", "rmdir", "touch", "make", "cmake", "./gradlew", "mvn"];
|
|
91
|
-
if (writeCmds.includes(cmd))
|
|
92
|
-
return true;
|
|
93
|
-
if (cmd === "npm" && ["install", "ci", "audit", "run"].includes(firstArg))
|
|
94
|
-
return true;
|
|
95
|
-
if (cmd === "yarn" && ["install", "run"].includes(firstArg))
|
|
96
|
-
return true;
|
|
97
|
-
if (cmd === "pnpm" && ["install", "run"].includes(firstArg))
|
|
98
|
-
return true;
|
|
99
|
-
if (cmd === "git" && ["add", "commit", "push", "pull", "merge", "rebase", "checkout", "reset"].includes(firstArg))
|
|
100
|
-
return true;
|
|
101
|
-
if (cmd === "dotnet" && ["build", "run", "restore"].includes(firstArg))
|
|
102
|
-
return true;
|
|
103
|
-
if (cmd === "go" && ["build", "run", "mod"].includes(firstArg))
|
|
104
|
-
return true;
|
|
105
|
-
if (cmd === "cargo" && ["build", "check"].includes(firstArg))
|
|
106
|
-
return true;
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Parse a command string into executable + args array.
|
|
111
|
-
* Uses spawn for safety (no shell injection).
|
|
112
|
-
*/
|
|
113
|
-
function parseCommand(cmdString) {
|
|
114
|
-
const parts = cmdString.trim().split(/\s+/);
|
|
115
|
-
if (parts.length === 0)
|
|
116
|
-
return null;
|
|
117
|
-
return { cmd: parts[0], args: parts.slice(1) };
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Check if a parsed command matches the allow list.
|
|
121
|
-
*/
|
|
122
|
-
function isAllowed(parsed) {
|
|
123
|
-
return COMMAND_ALLOW_LIST.some(entry => {
|
|
124
|
-
if (entry.cmd !== parsed.cmd)
|
|
125
|
-
return false;
|
|
126
|
-
if (!entry.args)
|
|
127
|
-
return true; // Any args allowed for this cmd
|
|
128
|
-
if (!parsed.args || parsed.args.length < entry.args.length)
|
|
129
|
-
return false;
|
|
130
|
-
// Check that args start with the allowed prefix
|
|
131
|
-
return entry.args.every((arg, i) => parsed.args[i] === arg);
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
export function handleRunCommand(projectRoot, args) {
|
|
135
|
-
const command = args.command;
|
|
136
|
-
// Parse command into executable + args
|
|
137
|
-
const parsed = parseCommand(command);
|
|
138
|
-
if (!parsed) {
|
|
139
|
-
return Promise.resolve({
|
|
140
|
-
content: [{ type: "text", text: "ERROR: Empty command." }],
|
|
141
|
-
isError: true,
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
// Resolve active agent and tier to check command permission
|
|
145
|
-
const frameworkDir = resolveFrameworkDir(projectRoot);
|
|
146
|
-
const absoluteFrameworkPath = path.isAbsolute(frameworkDir)
|
|
147
|
-
? frameworkDir
|
|
148
|
-
: path.resolve(projectRoot, frameworkDir);
|
|
149
|
-
const activeAgent = resolveActiveAgent(absoluteFrameworkPath);
|
|
150
|
-
if (activeAgent) {
|
|
151
|
-
const tier = getAgentTier(activeAgent);
|
|
152
|
-
if (tier === "recon" && isWriteCommand(parsed)) {
|
|
153
|
-
return Promise.resolve({
|
|
154
|
-
isError: true,
|
|
155
|
-
content: [{
|
|
156
|
-
type: "text",
|
|
157
|
-
text: `[RBAC] Permission Denied: Agent ${activeAgent} (tier: recon) is not allowed to run write/build command "${command}". Recon agents are restricted to read-only commands.`
|
|
158
|
-
}]
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
if (!isAllowed(parsed)) {
|
|
163
|
-
const allowedList = COMMAND_ALLOW_LIST.map(e => e.args ? `${e.cmd} ${e.args.join(" ")}` : e.cmd);
|
|
164
|
-
const errorMsg = `Command not allowed: "${command}". Only the following are allowed: ${allowedList.join(", ")}`;
|
|
165
|
-
Metrics.logError(projectRoot, "@mcp", `run_shell_command: ${command} (denied)`, errorMsg);
|
|
166
|
-
return Promise.resolve({
|
|
167
|
-
content: [{ type: "text", text: `ERROR: ${errorMsg}` }],
|
|
168
|
-
isError: true,
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
// Reject any args containing shell metacharacters
|
|
172
|
-
const hasShellMetacharacters = parsed.args.some(a => /[;&|><$`\n\r]/.test(a));
|
|
173
|
-
if (hasShellMetacharacters) {
|
|
174
|
-
const errorMsg = "Command rejected: Shell metacharacters are forbidden to prevent command injection.";
|
|
175
|
-
Metrics.logError(projectRoot, "@mcp", `run_shell_command: ${command} (denied: metacharacters)`, errorMsg);
|
|
176
|
-
return Promise.resolve({
|
|
177
|
-
content: [{ type: "text", text: `ERROR: ${errorMsg}` }],
|
|
178
|
-
isError: true,
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
return new Promise((resolve) => {
|
|
182
|
-
const child = spawn(parsed.cmd, parsed.args, {
|
|
183
|
-
cwd: projectRoot,
|
|
184
|
-
timeout: TIMEOUT,
|
|
185
|
-
shell: false,
|
|
186
|
-
stdio: ["ignore", "pipe", "pipe"],
|
|
187
|
-
});
|
|
188
|
-
let stdout = "";
|
|
189
|
-
let stderr = "";
|
|
190
|
-
child.stdout.on("data", (data) => { stdout += data.toString(); });
|
|
191
|
-
child.stderr.on("data", (data) => { stderr += data.toString(); });
|
|
192
|
-
child.on("error", (err) => {
|
|
193
|
-
const errorMsg = `Failed to start command: ${err.message}`;
|
|
194
|
-
Metrics.logError(projectRoot, "@mcp", `run_shell_command: ${command}`, errorMsg);
|
|
195
|
-
resolve({
|
|
196
|
-
content: [{ type: "text", text: `ERROR: ${errorMsg}` }],
|
|
197
|
-
isError: true,
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
child.on("close", (code) => {
|
|
201
|
-
const output = stdout + stderr;
|
|
202
|
-
const tokens = Metrics.estimateTokens(output);
|
|
203
|
-
Metrics.logUsage(projectRoot, "@mcp", `run_shell_command: ${command}`, tokens);
|
|
204
|
-
if (code !== 0) {
|
|
205
|
-
const errorMsg = `Command failed with exit code ${code}.`;
|
|
206
|
-
Metrics.logError(projectRoot, "@mcp", `run_shell_command: ${command}`, errorMsg);
|
|
207
|
-
resolve({
|
|
208
|
-
content: [{ type: "text", text: `ERROR: ${errorMsg}. Output: ${output}` }],
|
|
209
|
-
isError: true,
|
|
210
|
-
});
|
|
211
|
-
return;
|
|
212
|
-
}
|
|
213
|
-
// Truncate long outputs
|
|
214
|
-
const MAX_OUTPUT_LENGTH = 5000;
|
|
215
|
-
const truncatedOutput = output.length > MAX_OUTPUT_LENGTH
|
|
216
|
-
? output.substring(0, MAX_OUTPUT_LENGTH) + "... [TRUNCATED] ..."
|
|
217
|
-
: output;
|
|
218
|
-
resolve({
|
|
219
|
-
content: [{ type: "text", text: truncatedOutput }],
|
|
220
|
-
});
|
|
221
|
-
});
|
|
222
|
-
});
|
|
223
|
-
}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ─── MCP AUTHENTICATION ──────────────────────────────────────────
|
|
3
|
-
*
|
|
4
|
-
* Simple API key authentication for MCP server.
|
|
5
|
-
* When MCP_AUTH_TOKEN is set, all MCP and API requests require
|
|
6
|
-
* Authorization: Bearer <token> header.
|
|
7
|
-
*
|
|
8
|
-
* Supports multi-user setup via MCP_AUTH_USERS:
|
|
9
|
-
* MCP_AUTH_USERS=alice:key1,bob:key2,cmdr:key3
|
|
10
|
-
*
|
|
11
|
-
* Each user gets their own API key. Tool calls and audit logs
|
|
12
|
-
* are tagged with the authenticated user's name.
|
|
13
|
-
*
|
|
14
|
-
* Environment Variables:
|
|
15
|
-
* MCP_AUTH_TOKEN - Master API key for admin access (optional)
|
|
16
|
-
* MCP_AUTH_USERS - Comma-separated list of user:token pairs (optional)
|
|
17
|
-
* Example: "alice:key1,bob:key2"
|
|
18
|
-
*
|
|
19
|
-
* If neither is set, authentication is disabled (open access / anonymous).
|
|
20
|
-
*/
|
|
21
|
-
let authUsers = [];
|
|
22
|
-
let masterToken = null;
|
|
23
|
-
/**
|
|
24
|
-
* Initialize authentication from environment variables.
|
|
25
|
-
*/
|
|
26
|
-
export function initAuth() {
|
|
27
|
-
masterToken = process.env.MCP_AUTH_TOKEN || null;
|
|
28
|
-
const usersStr = process.env.MCP_AUTH_USERS || "";
|
|
29
|
-
if (usersStr) {
|
|
30
|
-
authUsers = usersStr.split(",").map(pair => {
|
|
31
|
-
const [name, token] = pair.split(":");
|
|
32
|
-
return { name: name?.trim() || "unknown", token: token?.trim() || "" };
|
|
33
|
-
}).filter(u => u.token);
|
|
34
|
-
}
|
|
35
|
-
if (masterToken) {
|
|
36
|
-
process.stderr.write(`[AUTH] Master token configured (${masterToken.length} chars)\n`);
|
|
37
|
-
}
|
|
38
|
-
if (authUsers.length > 0) {
|
|
39
|
-
process.stderr.write(`[AUTH] ${authUsers.length} user(s) configured: ${authUsers.map(u => u.name).join(", ")}\n`);
|
|
40
|
-
}
|
|
41
|
-
if (!masterToken && authUsers.length === 0) {
|
|
42
|
-
process.stderr.write("[AUTH] No authentication configured - OPEN ACCESS (anonymous users)\n");
|
|
43
|
-
process.stderr.write("[AUTH] Set MCP_AUTH_TOKEN=<key> or MCP_AUTH_USERS=user1:key1,user2:key2 to enable\n");
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Authenticate a request using the Authorization header.
|
|
48
|
-
* Returns the authenticated user name or null if unauthorized.
|
|
49
|
-
*/
|
|
50
|
-
export function authenticate(req) {
|
|
51
|
-
if (!masterToken && authUsers.length === 0) {
|
|
52
|
-
// Auth disabled - allow all as anonymous
|
|
53
|
-
return { authenticated: true, user: "anonymous" };
|
|
54
|
-
}
|
|
55
|
-
const authHeader = req.headers["authorization"];
|
|
56
|
-
if (!authHeader) {
|
|
57
|
-
return { authenticated: false, user: "" };
|
|
58
|
-
}
|
|
59
|
-
// Support both "Bearer <key>" and "<key>" formats
|
|
60
|
-
const token = authHeader.startsWith("Bearer ") ? authHeader.slice(7) : authHeader;
|
|
61
|
-
// Check master token first
|
|
62
|
-
if (masterToken && token === masterToken) {
|
|
63
|
-
return { authenticated: true, user: "admin" };
|
|
64
|
-
}
|
|
65
|
-
// Check user tokens
|
|
66
|
-
for (const user of authUsers) {
|
|
67
|
-
if (token === user.token) {
|
|
68
|
-
return { authenticated: true, user: user.name };
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return { authenticated: false, user: "" };
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Authenticate using a raw token string (for MCP stdio mode).
|
|
75
|
-
* In stdio mode, the user identity is set via environment.
|
|
76
|
-
*/
|
|
77
|
-
export function authenticateToken(token) {
|
|
78
|
-
if (!masterToken && authUsers.length === 0) {
|
|
79
|
-
return { authenticated: true, user: "anonymous" };
|
|
80
|
-
}
|
|
81
|
-
// Check master token
|
|
82
|
-
if (masterToken && token === masterToken) {
|
|
83
|
-
return { authenticated: true, user: "admin" };
|
|
84
|
-
}
|
|
85
|
-
// Check user tokens
|
|
86
|
-
for (const user of authUsers) {
|
|
87
|
-
if (token === user.token) {
|
|
88
|
-
return { authenticated: true, user: user.name };
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return { authenticated: false, user: "" };
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Get the current authenticated user identity for stdio mode.
|
|
95
|
-
* Reads from environment or returns "anonymous".
|
|
96
|
-
* For HTTP/SSE mode, use authenticate() on the request.
|
|
97
|
-
*/
|
|
98
|
-
export function getCurrentUser() {
|
|
99
|
-
// Stdio mode: user identity comes from env or git config
|
|
100
|
-
const envUser = process.env.MCP_USER;
|
|
101
|
-
if (envUser)
|
|
102
|
-
return envUser;
|
|
103
|
-
// Try to get from git config
|
|
104
|
-
try {
|
|
105
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
106
|
-
const { execSync } = require("child_process");
|
|
107
|
-
const gitUser = execSync("git config user.name", { encoding: "utf8" }).trim();
|
|
108
|
-
if (gitUser)
|
|
109
|
-
return gitUser;
|
|
110
|
-
}
|
|
111
|
-
catch {
|
|
112
|
-
// git not available
|
|
113
|
-
}
|
|
114
|
-
// Try system user
|
|
115
|
-
const systemUser = process.env.USER || process.env.USERNAME;
|
|
116
|
-
if (systemUser)
|
|
117
|
-
return systemUser;
|
|
118
|
-
return "anonymous";
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Generate authentication headers for MCP client configuration.
|
|
122
|
-
*/
|
|
123
|
-
export function getAuthHeader(user, token) {
|
|
124
|
-
return `Bearer ${token}`;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Check if authentication is enabled.
|
|
128
|
-
*/
|
|
129
|
-
export function isAuthEnabled() {
|
|
130
|
-
return !!masterToken || authUsers.length > 0;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Get list of configured users (without tokens).
|
|
134
|
-
*/
|
|
135
|
-
export function getConfiguredUsers() {
|
|
136
|
-
if (authUsers.length > 0) {
|
|
137
|
-
return authUsers.map(u => u.name);
|
|
138
|
-
}
|
|
139
|
-
if (masterToken) {
|
|
140
|
-
return ["admin"];
|
|
141
|
-
}
|
|
142
|
-
return ["anonymous"];
|
|
143
|
-
}
|
|
144
|
-
// Auto-initialize on load
|
|
145
|
-
initAuth();
|
|
@@ -1,265 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ─── AUTO-ROLLBACK + REGENERATE ───────────────────────────────────
|
|
3
|
-
*
|
|
4
|
-
* When the AI generates code that violates governance rules (e.g., `any` type,
|
|
5
|
-
* console.log, copyleft license), this module:
|
|
6
|
-
* 1. Captures the file content before the write
|
|
7
|
-
* 2. Validates the new content against governance rules
|
|
8
|
-
* 3. If violation found: blocks the write, restores original, and sends
|
|
9
|
-
* a regenerate instruction back to the AI via MCP notification
|
|
10
|
-
*
|
|
11
|
-
* Flow:
|
|
12
|
-
* [Pre-Write Snapshot] → [Validate Content] → [Violation?] ─yes→ [Rollback] → [Notify AI]
|
|
13
|
-
* └─no─→ [Allow Write]
|
|
14
|
-
*
|
|
15
|
-
* Key Innovation: Unlike simple blocking, this tells the AI WHY it was
|
|
16
|
-
* blocked and gives it specific instructions to self-correct.
|
|
17
|
-
*/
|
|
18
|
-
import fs from "fs";
|
|
19
|
-
import path from "path";
|
|
20
|
-
class SnapshotManager {
|
|
21
|
-
snapshots = new Map();
|
|
22
|
-
/**
|
|
23
|
-
* Capture a pre-write snapshot of a file.
|
|
24
|
-
*/
|
|
25
|
-
capture(filePath, traceId) {
|
|
26
|
-
const resolvedPath = path.resolve(filePath);
|
|
27
|
-
let originalContent = null;
|
|
28
|
-
try {
|
|
29
|
-
if (fs.existsSync(resolvedPath)) {
|
|
30
|
-
originalContent = fs.readFileSync(resolvedPath, "utf8");
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
catch { /* file doesn't exist yet (new file) */ }
|
|
34
|
-
this.snapshots.set(resolvedPath, {
|
|
35
|
-
filePath: resolvedPath,
|
|
36
|
-
originalContent,
|
|
37
|
-
timestamp: Date.now(),
|
|
38
|
-
traceId,
|
|
39
|
-
restored: false,
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Get a snapshot for a file.
|
|
44
|
-
*/
|
|
45
|
-
get(filePath) {
|
|
46
|
-
return this.snapshots.get(path.resolve(filePath));
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Restore a file to its pre-write state.
|
|
50
|
-
* Returns true if restored, false if no snapshot exists.
|
|
51
|
-
*/
|
|
52
|
-
restore(filePath) {
|
|
53
|
-
const resolvedPath = path.resolve(filePath);
|
|
54
|
-
const snapshot = this.snapshots.get(resolvedPath);
|
|
55
|
-
if (!snapshot || snapshot.restored)
|
|
56
|
-
return false;
|
|
57
|
-
try {
|
|
58
|
-
if (snapshot.originalContent !== null) {
|
|
59
|
-
// File existed before – restore original
|
|
60
|
-
fs.writeFileSync(resolvedPath, snapshot.originalContent, "utf8");
|
|
61
|
-
process.stderr.write(`[ROLLBACK] Restored: ${path.relative(process.cwd(), resolvedPath)}\n`);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
// File was new – delete it
|
|
65
|
-
if (fs.existsSync(resolvedPath)) {
|
|
66
|
-
fs.unlinkSync(resolvedPath);
|
|
67
|
-
process.stderr.write(`[ROLLBACK] Deleted (new file): ${path.relative(process.cwd(), resolvedPath)}\n`);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
snapshot.restored = true;
|
|
71
|
-
return true;
|
|
72
|
-
}
|
|
73
|
-
catch (error) {
|
|
74
|
-
process.stderr.write(`[ROLLBACK] Failed to restore ${resolvedPath}: ${error}\n`);
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Clean up old snapshots.
|
|
80
|
-
*/
|
|
81
|
-
cleanup(maxAgeMs = 300000) {
|
|
82
|
-
const cutoff = Date.now() - maxAgeMs;
|
|
83
|
-
for (const [filePath, snapshot] of this.snapshots) {
|
|
84
|
-
if (snapshot.timestamp < cutoff) {
|
|
85
|
-
this.snapshots.delete(filePath);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Get all active snapshots.
|
|
91
|
-
*/
|
|
92
|
-
getAll() {
|
|
93
|
-
return Array.from(this.snapshots.values());
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
// ─── Auto-Rollback Engine ─────────────────────────────────────────
|
|
97
|
-
export class AutoRollback {
|
|
98
|
-
static snapshots = new SnapshotManager();
|
|
99
|
-
/**
|
|
100
|
-
* Initialize the auto-rollback system.
|
|
101
|
-
* Sets up file watcher cleanup.
|
|
102
|
-
*/
|
|
103
|
-
static initialize() {
|
|
104
|
-
// Periodic cleanup of old snapshots (every 5 minutes)
|
|
105
|
-
setInterval(() => {
|
|
106
|
-
AutoRollback.snapshots.cleanup();
|
|
107
|
-
}, 300000);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Prepare for a file write by capturing the current state.
|
|
111
|
-
* Call this BEFORE the tool handler writes to the file.
|
|
112
|
-
*/
|
|
113
|
-
static prepareWrite(filePath, traceId) {
|
|
114
|
-
AutoRollback.snapshots.capture(filePath, traceId);
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Validate content and rollback if violations are found.
|
|
118
|
-
* This is called after the tool handler writes the file, but
|
|
119
|
-
* BEFORE the response is returned to the AI.
|
|
120
|
-
*
|
|
121
|
-
* Returns:
|
|
122
|
-
* - null if content is clean
|
|
123
|
-
* - ViolationRecord[] if violations were found and rolled back
|
|
124
|
-
*/
|
|
125
|
-
static validateAndRollback(filePath, content, violations) {
|
|
126
|
-
if (violations.length === 0)
|
|
127
|
-
return null;
|
|
128
|
-
// Restore the original file
|
|
129
|
-
const restored = AutoRollback.snapshots.restore(filePath);
|
|
130
|
-
if (restored) {
|
|
131
|
-
process.stderr.write(`[ROLLBACK] Rolled back ${path.relative(process.cwd(), filePath)} due to ${violations.length} violation(s)\n`);
|
|
132
|
-
}
|
|
133
|
-
return violations;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Build a regenerate instruction for the AI.
|
|
137
|
-
* This is what gets sent back to the AI to tell it to fix its output.
|
|
138
|
-
*/
|
|
139
|
-
static buildRegenerateInstruction(violations, toolName) {
|
|
140
|
-
const criticalViolations = violations.filter(v => v.severity === "CRITICAL");
|
|
141
|
-
const lines = [
|
|
142
|
-
"## ⛔ AI Output Blocked – Governance Violation",
|
|
143
|
-
"",
|
|
144
|
-
`The code you generated for tool "${toolName}" has been BLOCKED and ROLLED BACK.`,
|
|
145
|
-
"The file has been restored to its previous state.",
|
|
146
|
-
"",
|
|
147
|
-
];
|
|
148
|
-
if (criticalViolations.length > 0) {
|
|
149
|
-
lines.push(`### 🔴 Critical Violations (${criticalViolations.length})`);
|
|
150
|
-
lines.push("");
|
|
151
|
-
for (const v of criticalViolations) {
|
|
152
|
-
lines.push(`- **${v.rule}** (${v.filePath}:${v.line})`);
|
|
153
|
-
lines.push(` - Detail: ${v.detail}`);
|
|
154
|
-
lines.push(` - Fix: ${v.regenerateInstruction}`);
|
|
155
|
-
lines.push("");
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
const otherViolations = violations.filter(v => v.severity !== "CRITICAL");
|
|
159
|
-
if (otherViolations.length > 0) {
|
|
160
|
-
lines.push(`### 🟠 Other Violations (${otherViolations.length})`);
|
|
161
|
-
lines.push("");
|
|
162
|
-
for (const v of otherViolations) {
|
|
163
|
-
lines.push(`- **${v.rule}** (${v.filePath}:${v.line})`);
|
|
164
|
-
lines.push(` - Detail: ${v.detail}`);
|
|
165
|
-
lines.push(` - Fix: ${v.regenerateInstruction}`);
|
|
166
|
-
lines.push("");
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
lines.push("---");
|
|
170
|
-
lines.push("> **Instruction:** Please regenerate the code for this operation.");
|
|
171
|
-
lines.push("> Address ALL violations listed above.");
|
|
172
|
-
lines.push("> Do NOT reintroduce the same violations.");
|
|
173
|
-
return lines.join("\n");
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Validate tool response content against governance rules.
|
|
177
|
-
* Used by the MCP middleware to check file write content before returning.
|
|
178
|
-
*/
|
|
179
|
-
static checkWriteContent(filePath, content, traceId) {
|
|
180
|
-
const ext = path.extname(filePath).toLowerCase();
|
|
181
|
-
const violations = [];
|
|
182
|
-
// Only check source files
|
|
183
|
-
if (![".ts", ".tsx", ".js", ".jsx", ".py", ".go", ".java", ".rs", ".swift", ".kt"].includes(ext)) {
|
|
184
|
-
return { allowed: true, violations: [], instruction: null };
|
|
185
|
-
}
|
|
186
|
-
const lines = content.split("\n");
|
|
187
|
-
// 1. Check for `any` type (CRITICAL)
|
|
188
|
-
if ([".ts", ".tsx"].includes(ext)) {
|
|
189
|
-
for (let i = 0; i < lines.length; i++) {
|
|
190
|
-
const anyMatch = lines[i].match(/:\s*any\b/);
|
|
191
|
-
if (anyMatch) {
|
|
192
|
-
violations.push({
|
|
193
|
-
rule: "No `any` Type",
|
|
194
|
-
severity: "CRITICAL",
|
|
195
|
-
filePath,
|
|
196
|
-
line: i + 1,
|
|
197
|
-
detail: `Line ${i + 1}: ${anyMatch[0].substring(0, 60)}`,
|
|
198
|
-
regenerateInstruction: "Replace `any` with `unknown` and add proper type guards. Or use a specific interface/type.",
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
// 2. Check for console.log (CRITICAL)
|
|
204
|
-
for (let i = 0; i < lines.length; i++) {
|
|
205
|
-
const consoleMatch = lines[i].match(/console\.(log|error|warn|debug)\s*\(/);
|
|
206
|
-
if (consoleMatch) {
|
|
207
|
-
// Check if file is exempt
|
|
208
|
-
if (!filePath.includes("logger.ts") && !filePath.includes("cli.ts") && !filePath.includes("compliance.ts")) {
|
|
209
|
-
violations.push({
|
|
210
|
-
rule: "No Console Log",
|
|
211
|
-
severity: "CRITICAL",
|
|
212
|
-
filePath,
|
|
213
|
-
line: i + 1,
|
|
214
|
-
detail: `Line ${i + 1}: ${consoleMatch[0].substring(0, 60)}`,
|
|
215
|
-
regenerateInstruction: "Replace with the project's logger (import from the appropriate logger module).",
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
// 3. Check for hardcoded secrets (HIGH)
|
|
221
|
-
const secretPatterns = [
|
|
222
|
-
{ pattern: /(['"])sk-[a-zA-Z0-9]{20,}['"]/, name: "OpenAI API Key" },
|
|
223
|
-
{ pattern: /(['"])ghp_[a-zA-Z0-9]{36,}['"]/, name: "GitHub Token" },
|
|
224
|
-
{ pattern: /(['"])AIza[0-9A-Za-z_-]{35}['"]/, name: "Google API Key" },
|
|
225
|
-
];
|
|
226
|
-
for (let i = 0; i < lines.length; i++) {
|
|
227
|
-
for (const { pattern, name } of secretPatterns) {
|
|
228
|
-
if (pattern.test(lines[i])) {
|
|
229
|
-
violations.push({
|
|
230
|
-
rule: `Hardcoded Secret: ${name}`,
|
|
231
|
-
severity: "HIGH",
|
|
232
|
-
filePath,
|
|
233
|
-
line: i + 1,
|
|
234
|
-
detail: `Potential ${name} hardcoded at line ${i + 1}`,
|
|
235
|
-
regenerateInstruction: `Use environment variables (process.env.*) instead of hardcoding ${name}.`,
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
// If violations found, prepare snapshot and rollback
|
|
241
|
-
if (violations.length > 0) {
|
|
242
|
-
AutoRollback.prepareWrite(filePath, traceId);
|
|
243
|
-
const rolledBack = AutoRollback.validateAndRollback(filePath, content, violations);
|
|
244
|
-
const instruction = AutoRollback.buildRegenerateInstruction(violations, "write_file");
|
|
245
|
-
return {
|
|
246
|
-
allowed: false,
|
|
247
|
-
violations: rolledBack || violations,
|
|
248
|
-
instruction,
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
|
-
return { allowed: true, violations: [], instruction: null };
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Get snapshot stats.
|
|
255
|
-
*/
|
|
256
|
-
static getSnapshotStats() {
|
|
257
|
-
const all = AutoRollback.snapshots.getAll();
|
|
258
|
-
return {
|
|
259
|
-
total: all.length,
|
|
260
|
-
restored: all.filter(s => s.restored).length,
|
|
261
|
-
pending: all.filter(s => !s.restored).length,
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
export { AutoRollback as AutoRollbackEngine };
|