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,207 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ─── RBAC PERMISSION MATRIX ───────────────────────────────────────────────
|
|
3
|
-
*
|
|
4
|
-
* Enforces agent-scoped file system permissions at the MCP tool layer.
|
|
5
|
-
* This is the file-level RBAC enforcement point for:
|
|
6
|
-
* - Claude Code (calls write_file / read_file via MCP sub-agents)
|
|
7
|
-
* - Gemini CLI (calls write_file / read_file via MCP server)
|
|
8
|
-
* - Cursor (calls write_file / read_file via MCP rules)
|
|
9
|
-
* - Codex CLI (calls write_file / read_file via agent allowed-tools)
|
|
10
|
-
* - Antigravity (calls write_file / read_file via customAgentSpec tools)
|
|
11
|
-
*
|
|
12
|
-
* Permission matrix is stored in `.atabey/permission-matrix.json`:
|
|
13
|
-
* {
|
|
14
|
-
* "@frontend": { "write": ["apps/web/**"], "read": ["apps/web/**", "docs/**"] },
|
|
15
|
-
* "@backend": { "write": ["apps/backend/**"], "read": ["apps/backend/**", "apps/web/types/**"] }
|
|
16
|
-
* }
|
|
17
|
-
*
|
|
18
|
-
* Agent Tier enforcement:
|
|
19
|
-
* supreme (@manager, @security) — no write/read restrictions (omnipotent)
|
|
20
|
-
* core (@backend, @frontend, ...) — matrix-enforced
|
|
21
|
-
* recon (@explorer, @git, @analyst, @native) — read-only by default,
|
|
22
|
-
* write requires explicit matrix entry
|
|
23
|
-
*/
|
|
24
|
-
import fs from "fs";
|
|
25
|
-
import path from "path";
|
|
26
|
-
import { resolveFrameworkDir } from "./security.js";
|
|
27
|
-
// ─── Tier hierarchy ─────────────────────────────────────────────────────────
|
|
28
|
-
/** Well-known tier for agents defined in the built-in registry */
|
|
29
|
-
const AGENT_TIER_MAP = {
|
|
30
|
-
"@manager": "supreme",
|
|
31
|
-
"@security": "supreme",
|
|
32
|
-
"@backend": "core",
|
|
33
|
-
"@frontend": "core",
|
|
34
|
-
"@mobile": "core",
|
|
35
|
-
"@quality": "core",
|
|
36
|
-
"@database": "core",
|
|
37
|
-
"@devops": "core",
|
|
38
|
-
"@architect": "core",
|
|
39
|
-
"@explorer": "recon",
|
|
40
|
-
"@git": "recon",
|
|
41
|
-
"@analyst": "recon",
|
|
42
|
-
"@native": "recon",
|
|
43
|
-
};
|
|
44
|
-
export function getAgentTier(agentName) {
|
|
45
|
-
return AGENT_TIER_MAP[agentName] ?? "core"; // unknown agents default to core
|
|
46
|
-
}
|
|
47
|
-
// ─── Glob → RegExp ──────────────────────────────────────────────────────────
|
|
48
|
-
function globToRegex(glob) {
|
|
49
|
-
const escaped = glob.replace(/[.+^${}()|[\]\\]/g, "\\$&");
|
|
50
|
-
const step1 = escaped.replace(/\*\*/g, "__DBL_STR__");
|
|
51
|
-
const step2 = step1.replace(/\*/g, "[^/]*");
|
|
52
|
-
const regexStr = "^" + step2.replace(/__DBL_STR__/g, ".*") + "$";
|
|
53
|
-
return new RegExp(regexStr);
|
|
54
|
-
}
|
|
55
|
-
// ─── Active Agent Resolution ─────────────────────────────────────────────────
|
|
56
|
-
/**
|
|
57
|
-
* Resolves the active agent for the current operation.
|
|
58
|
-
*
|
|
59
|
-
* Priority order:
|
|
60
|
-
* 1. ATABEY_ACTIVE_AGENT env var (set by AgentLoop per-invocation — most reliable)
|
|
61
|
-
* 2. `.atabey/memory/status.json` first EXECUTING agent (legacy fallback)
|
|
62
|
-
*
|
|
63
|
-
* Note: The traceId-scoped approach is preferred when AgentLoop sets
|
|
64
|
-
* ATABEY_ACTIVE_AGENT before spawning the MCP tool call.
|
|
65
|
-
*/
|
|
66
|
-
export function resolveActiveAgent(frameworkDir) {
|
|
67
|
-
// 1. Env var (highest reliability — set by orchestration layer)
|
|
68
|
-
const envAgent = process.env.ATABEY_ACTIVE_AGENT?.trim();
|
|
69
|
-
if (envAgent) {
|
|
70
|
-
return envAgent.startsWith("@") ? envAgent : `@${envAgent}`;
|
|
71
|
-
}
|
|
72
|
-
// 2. status.json fallback
|
|
73
|
-
const statusPath = path.join(frameworkDir, "memory", "status.json");
|
|
74
|
-
if (!fs.existsSync(statusPath))
|
|
75
|
-
return null;
|
|
76
|
-
try {
|
|
77
|
-
const status = JSON.parse(fs.readFileSync(statusPath, "utf8"));
|
|
78
|
-
for (const [agentName, info] of Object.entries(status)) {
|
|
79
|
-
if (info.state === "EXECUTING") {
|
|
80
|
-
return agentName.startsWith("@") ? agentName : `@${agentName}`;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
catch (e) {
|
|
85
|
-
process.stderr.write(`[Permissions] Warning: Failed to read status.json: ${String(e)}\n`);
|
|
86
|
-
}
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
// ─── Matrix Loader ───────────────────────────────────────────────────────────
|
|
90
|
-
function loadMatrix(frameworkDir) {
|
|
91
|
-
const matrixPath = path.join(frameworkDir, "permission-matrix.json");
|
|
92
|
-
if (!fs.existsSync(matrixPath))
|
|
93
|
-
return null;
|
|
94
|
-
try {
|
|
95
|
-
return JSON.parse(fs.readFileSync(matrixPath, "utf8"));
|
|
96
|
-
}
|
|
97
|
-
catch (e) {
|
|
98
|
-
throw new Error(`Failed to parse permission-matrix.json: ${String(e)}`, { cause: e });
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Internal enforcement logic for both read and write operations.
|
|
103
|
-
*
|
|
104
|
-
* Enforcement logic per tier:
|
|
105
|
-
* - supreme: always allowed (no matrix needed)
|
|
106
|
-
* - core: enforced by matrix; if no rule defined → default-allow
|
|
107
|
-
* - recon: write → always denied unless explicit matrix allow
|
|
108
|
-
* read → allowed by default (recon agents must be able to explore)
|
|
109
|
-
*/
|
|
110
|
-
function enforcePermission(projectRoot, targetFilePath, accessType) {
|
|
111
|
-
const frameworkDir = resolveFrameworkDir(projectRoot);
|
|
112
|
-
const absoluteFrameworkPath = path.isAbsolute(frameworkDir)
|
|
113
|
-
? frameworkDir
|
|
114
|
-
: path.resolve(projectRoot, frameworkDir);
|
|
115
|
-
const activeAgent = resolveActiveAgent(absoluteFrameworkPath);
|
|
116
|
-
// No active agent identified → default-allow (non-agent call, e.g. CLI tools)
|
|
117
|
-
if (!activeAgent)
|
|
118
|
-
return;
|
|
119
|
-
const tier = getAgentTier(activeAgent);
|
|
120
|
-
// Supreme agents are omnipotent — no matrix enforcement
|
|
121
|
-
if (tier === "supreme")
|
|
122
|
-
return;
|
|
123
|
-
// Recon agents: block writes unless explicitly allowed in matrix
|
|
124
|
-
if (tier === "recon" && accessType === "write") {
|
|
125
|
-
const matrix = loadMatrix(absoluteFrameworkPath);
|
|
126
|
-
if (!matrix) {
|
|
127
|
-
throw new Error(`Permission Denied: Agent ${activeAgent} (tier: recon) cannot write files. ` +
|
|
128
|
-
"Recon agents (@explorer, @git, @analyst, @native) are read-only by default. " +
|
|
129
|
-
"Add an explicit write rule to permission-matrix.json to grant write access.");
|
|
130
|
-
}
|
|
131
|
-
const agentRules = matrix[activeAgent];
|
|
132
|
-
if (!agentRules?.write?.length) {
|
|
133
|
-
throw new Error(`Permission Denied: Agent ${activeAgent} (tier: recon) has no write rules in permission-matrix.json. ` +
|
|
134
|
-
"Recon agents are read-only by default.");
|
|
135
|
-
}
|
|
136
|
-
// Fall through to glob check below
|
|
137
|
-
}
|
|
138
|
-
const matrix = loadMatrix(absoluteFrameworkPath);
|
|
139
|
-
// No matrix file → default-allow (matrix is opt-in)
|
|
140
|
-
if (!matrix)
|
|
141
|
-
return;
|
|
142
|
-
const agentRules = matrix[activeAgent];
|
|
143
|
-
// No rules for this agent → default-allow
|
|
144
|
-
if (!agentRules)
|
|
145
|
-
return;
|
|
146
|
-
const rules = accessType === "write" ? agentRules.write : (agentRules.read ?? null);
|
|
147
|
-
// No rule for this access type → default-allow
|
|
148
|
-
if (!rules)
|
|
149
|
-
return;
|
|
150
|
-
const relativeTargetPath = path.relative(projectRoot, path.resolve(projectRoot, targetFilePath));
|
|
151
|
-
const allowed = rules.some(glob => globToRegex(glob).test(relativeTargetPath));
|
|
152
|
-
if (!allowed) {
|
|
153
|
-
throw new Error(`Permission Denied: Agent ${activeAgent} (tier: ${tier}) is not authorized to ` +
|
|
154
|
-
`${accessType} "${relativeTargetPath}". ` +
|
|
155
|
-
`Matrix rules restrict ${accessType} to: [${rules.join(", ")}].`);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
// ─── Public API ─────────────────────────────────────────────────────────────
|
|
159
|
-
/**
|
|
160
|
-
* Verifies that the active agent has WRITE permission for the target file.
|
|
161
|
-
* Called by: write_file, replace_text, batch_surgical_edit, patch_file
|
|
162
|
-
*
|
|
163
|
-
* Throws a descriptive error if permission is denied.
|
|
164
|
-
*/
|
|
165
|
-
export function verifyWritePermission(projectRoot, targetFilePath) {
|
|
166
|
-
enforcePermission(projectRoot, targetFilePath, "write");
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Verifies that the active agent has READ permission for the target file.
|
|
170
|
-
* Called by: read_file, view_file (alias)
|
|
171
|
-
*
|
|
172
|
-
* Throws a descriptive error if permission is denied.
|
|
173
|
-
* Note: read enforcement is SOFTER than write — recon agents can read freely
|
|
174
|
-
* unless an explicit read matrix restriction is defined.
|
|
175
|
-
*/
|
|
176
|
-
export function verifyReadPermission(projectRoot, targetFilePath) {
|
|
177
|
-
enforcePermission(projectRoot, targetFilePath, "read");
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Verifies that the sender agent is allowed to send messages to the target agent
|
|
181
|
-
* based on the AgentTier hierarchy.
|
|
182
|
-
*
|
|
183
|
-
* Messaging rules (AI IDE governance layer):
|
|
184
|
-
* - Any tier → supreme: allowed (escalation always permitted)
|
|
185
|
-
* - core → core: allowed
|
|
186
|
-
* - recon → core: allowed (recon can delegate up)
|
|
187
|
-
* - recon → supreme: allowed
|
|
188
|
-
* - core → recon: BLOCKED (core agents should not delegate down to recon)
|
|
189
|
-
* - supreme → any: allowed
|
|
190
|
-
*
|
|
191
|
-
* Rationale: Recon agents (@explorer, @git) are information-gatherers.
|
|
192
|
-
* If a core agent delegates to a recon agent, it bypasses the quality gate
|
|
193
|
-
* and risk engine — a potential governance gap.
|
|
194
|
-
*/
|
|
195
|
-
export function verifyMessagingPermission(fromAgent, toAgent) {
|
|
196
|
-
const fromTier = getAgentTier(fromAgent);
|
|
197
|
-
const toTier = getAgentTier(toAgent);
|
|
198
|
-
// supreme senders: unrestricted
|
|
199
|
-
if (fromTier === "supreme")
|
|
200
|
-
return;
|
|
201
|
-
// core → recon: block (prevents quality-gate bypass via recon delegation)
|
|
202
|
-
if (fromTier === "core" && toTier === "recon") {
|
|
203
|
-
throw new Error(`[RBAC] Messaging violation: Agent ${fromAgent} (tier: core) cannot delegate to ` +
|
|
204
|
-
`${toAgent} (tier: recon). Core agents must delegate up to @manager or peer core agents. ` +
|
|
205
|
-
"Recon agents are read-only information gatherers and cannot execute delegated tasks.");
|
|
206
|
-
}
|
|
207
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ─── PROMPT INJECTION PROTECTION ENGINE ────────────────────────────
|
|
3
|
-
*
|
|
4
|
-
* Scans, detects, and neutralizes prompt injection payloads in tool outputs
|
|
5
|
-
* before they are returned to the AI assistant's context.
|
|
6
|
-
*
|
|
7
|
-
* This prevents malicious files, code comments, or external resources from
|
|
8
|
-
* hijacking the AI client (e.g., instructing it to delete files or ignore safety).
|
|
9
|
-
*/
|
|
10
|
-
import { logger } from "../../../src/shared/logger.js";
|
|
11
|
-
// Common prompt injection signatures
|
|
12
|
-
const INJECTION_PATTERNS = [
|
|
13
|
-
/ignore\s+(?:all\s+)?instructions/gi,
|
|
14
|
-
/system\s+override/gi,
|
|
15
|
-
/you\s+must\s+now/gi,
|
|
16
|
-
/you\s+are\s+now/gi,
|
|
17
|
-
/bypass\s+governance/gi,
|
|
18
|
-
/bypass\s+safety/gi,
|
|
19
|
-
/bypass\s+atabey/gi,
|
|
20
|
-
/dan\s+mode/gi,
|
|
21
|
-
/developer\s+mode/gi,
|
|
22
|
-
/override\s+system\s+instructions/gi,
|
|
23
|
-
/ignore\s+safety\s+rules/gi,
|
|
24
|
-
/\[system\s+prompt\]/gi,
|
|
25
|
-
/<system_prompt>/gi,
|
|
26
|
-
/disable\s+restrictions/gi
|
|
27
|
-
];
|
|
28
|
-
export class PromptInjectionProtection {
|
|
29
|
-
/**
|
|
30
|
-
* Scan tool response text for injection patterns.
|
|
31
|
-
* Replaces any matches with a redirection block and logs it.
|
|
32
|
-
*/
|
|
33
|
-
static sanitizeResponse(text) {
|
|
34
|
-
if (!text) {
|
|
35
|
-
return { sanitized: text, detected: false, patterns: [] };
|
|
36
|
-
}
|
|
37
|
-
let detected = false;
|
|
38
|
-
const patternsMatched = [];
|
|
39
|
-
let sanitized = text;
|
|
40
|
-
for (const pattern of INJECTION_PATTERNS) {
|
|
41
|
-
if (pattern.test(sanitized)) {
|
|
42
|
-
detected = true;
|
|
43
|
-
const matches = text.match(pattern);
|
|
44
|
-
if (matches) {
|
|
45
|
-
matches.forEach(m => {
|
|
46
|
-
if (!patternsMatched.includes(m)) {
|
|
47
|
-
patternsMatched.push(m);
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
sanitized = sanitized.replace(pattern, "[REDACTED PROMPT INJECTION]");
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
if (detected) {
|
|
55
|
-
logger.warn(`[INJECTION PROTECTION] Blocked prompt injection pattern in tool response: ${patternsMatched.join(", ")}`);
|
|
56
|
-
}
|
|
57
|
-
return {
|
|
58
|
-
sanitized,
|
|
59
|
-
detected,
|
|
60
|
-
patterns: patternsMatched
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
/**
|
|
4
|
-
* Shared Code Quality Heuristic Scanner
|
|
5
|
-
* Evaluates functions lengths, nesting depth, and usage of the forbidden 'any' type.
|
|
6
|
-
*/
|
|
7
|
-
export function analyzePathQuality(projectRoot, targetPath) {
|
|
8
|
-
const absolutePath = path.resolve(projectRoot, targetPath);
|
|
9
|
-
const files = [];
|
|
10
|
-
function collectFilesSync(dir, exts) {
|
|
11
|
-
if (!fs.existsSync(dir))
|
|
12
|
-
return;
|
|
13
|
-
try {
|
|
14
|
-
const stat = fs.statSync(dir);
|
|
15
|
-
if (stat.isFile()) {
|
|
16
|
-
if (exts.some(ext => dir.endsWith(ext))) {
|
|
17
|
-
files.push(dir);
|
|
18
|
-
}
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
22
|
-
for (const entry of entries) {
|
|
23
|
-
const fullPath = path.join(dir, entry.name);
|
|
24
|
-
if (entry.isDirectory() && !entry.name.startsWith("node_modules") && !entry.name.startsWith(".")) {
|
|
25
|
-
collectFilesSync(fullPath, exts);
|
|
26
|
-
}
|
|
27
|
-
else if (entry.isFile() && exts.some(ext => entry.name.endsWith(ext))) {
|
|
28
|
-
files.push(fullPath);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
// Ignore errors reading files/dirs
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
collectFilesSync(absolutePath, [".ts", ".tsx"]);
|
|
37
|
-
const issues = [];
|
|
38
|
-
let longFunctions = 0;
|
|
39
|
-
let deepNesting = 0;
|
|
40
|
-
let anyTypes = 0;
|
|
41
|
-
files.forEach((f) => {
|
|
42
|
-
try {
|
|
43
|
-
const content = fs.readFileSync(f, "utf8");
|
|
44
|
-
const lines = content.split("\n");
|
|
45
|
-
const relativePath = path.relative(projectRoot, f);
|
|
46
|
-
// Check for `any` type
|
|
47
|
-
lines.forEach((line, idx) => {
|
|
48
|
-
if (line.trim().startsWith("//") || line.trim().startsWith("/*"))
|
|
49
|
-
return;
|
|
50
|
-
if (line.match(/\bany\b/) && !line.includes("// eslint-disable") && !line.includes("as any")) {
|
|
51
|
-
anyTypes++;
|
|
52
|
-
issues.push({
|
|
53
|
-
file: relativePath,
|
|
54
|
-
line: idx + 1,
|
|
55
|
-
type: "any-type",
|
|
56
|
-
message: `Line ${idx + 1}: Usage of 'any' type`
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
// Check for long functions
|
|
61
|
-
let inFunction = false;
|
|
62
|
-
let funcLines = 0;
|
|
63
|
-
let startLine = 0;
|
|
64
|
-
let funcName = "anonymous";
|
|
65
|
-
for (let i = 0; i < lines.length; i++) {
|
|
66
|
-
const line = lines[i];
|
|
67
|
-
// Detect function/method starts using regex
|
|
68
|
-
const funcMatch = line.match(/(?:public|private|protected|static\s+)?(?:async\s+)?(?:function\s+)?(\w+)\s*\([^)]*\)\s*{/);
|
|
69
|
-
const methodMatch = !funcMatch ? line.match(/^\s*(?:public|private|protected|static\s+)?(\w+)\s*\([^)]*\)\s*{/) : null;
|
|
70
|
-
const arrowMatch = !funcMatch && !methodMatch ? line.match(/(?:const|let|var)?\s*(\w+)?\s*=\s*(?:async\s*)?\([^)]*\)\s*=>\s*{/) : null;
|
|
71
|
-
if (funcMatch || methodMatch || arrowMatch) {
|
|
72
|
-
inFunction = true;
|
|
73
|
-
funcLines = 1;
|
|
74
|
-
startLine = i + 1;
|
|
75
|
-
funcName = (funcMatch?.[1] || methodMatch?.[1] || arrowMatch?.[1] || "anonymous").trim();
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
if (inFunction) {
|
|
79
|
-
funcLines++;
|
|
80
|
-
if (line.includes("}")) {
|
|
81
|
-
if (funcLines > 50) {
|
|
82
|
-
longFunctions++;
|
|
83
|
-
issues.push({
|
|
84
|
-
file: relativePath,
|
|
85
|
-
line: startLine,
|
|
86
|
-
type: "complexity",
|
|
87
|
-
message: `Function '${funcName}' is ${funcLines} lines long (max: 50)`
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
inFunction = false;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
// Check nesting depth
|
|
95
|
-
lines.forEach((line, idx) => {
|
|
96
|
-
const leadingSpaces = line.match(/^(\s*)/)?.[0].length || 0;
|
|
97
|
-
if (leadingSpaces >= 10 && !line.trim().startsWith("//") && !line.trim().startsWith("*")) {
|
|
98
|
-
const indentSize = (leadingSpaces % 4 === 0) ? 4 : 2;
|
|
99
|
-
const depth = Math.floor(leadingSpaces / indentSize);
|
|
100
|
-
if (depth > 4) {
|
|
101
|
-
deepNesting++;
|
|
102
|
-
issues.push({
|
|
103
|
-
file: relativePath,
|
|
104
|
-
line: idx + 1,
|
|
105
|
-
type: "complexity",
|
|
106
|
-
message: `Line ${idx + 1}: Nesting depth ${depth}`
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
catch {
|
|
113
|
-
// Ignore files that can't be read
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
return {
|
|
117
|
-
totalFiles: files.length,
|
|
118
|
-
totalIssues: issues.length,
|
|
119
|
-
longFunctions,
|
|
120
|
-
deepNesting,
|
|
121
|
-
anyTypes,
|
|
122
|
-
issues
|
|
123
|
-
};
|
|
124
|
-
}
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ─── RULES ENGINE (Prompt Conflict Resolution) ────────────────────
|
|
3
|
-
*
|
|
4
|
-
* Resolves conflicts between AI CLI built-in prompts and Atabey governance rules.
|
|
5
|
-
* Ensures Atabey's critical rules ALWAYS override CLI-level instructions.
|
|
6
|
-
*
|
|
7
|
-
* Priority System:
|
|
8
|
-
* - CRITICAL (P0): Non-bypassable rules (zero any, no console.log, PII masking)
|
|
9
|
-
* - HIGH (P1): Important rules that should not be violated
|
|
10
|
-
* - MEDIUM (P2): Standard best practices
|
|
11
|
-
* - LOW (P3): Recommendations only
|
|
12
|
-
*
|
|
13
|
-
* Enforcement Mechanisms:
|
|
14
|
-
* 1. Pre-execution: Rule validation BEFORE tool runs
|
|
15
|
-
* 2. Post-execution: Scan changed files for violations → auto-rollback
|
|
16
|
-
* 3. CLI System Prompt Override: Inject critical rules at MCP initialization
|
|
17
|
-
*/
|
|
18
|
-
import path from "path";
|
|
19
|
-
// ─── Built-in Governance Rules ────────────────────────────────────
|
|
20
|
-
const GOVERNANCE_RULES = [
|
|
21
|
-
// ── CRITICAL (P0) Rules ────────────────────────────────────
|
|
22
|
-
{
|
|
23
|
-
id: "no-any-types",
|
|
24
|
-
name: "Zero Any Type Policy",
|
|
25
|
-
description: "TypeScript 'any' type is strictly forbidden",
|
|
26
|
-
priority: "CRITICAL",
|
|
27
|
-
detectPattern: /:\s*any\b/g,
|
|
28
|
-
appliesToExtensions: [".ts", ".tsx"],
|
|
29
|
-
errorMessage: "CRITICAL: 'any' type is forbidden. Use 'unknown' with proper type guards instead.",
|
|
30
|
-
bypassable: false,
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
id: "no-console-log",
|
|
34
|
-
name: "No Console Log",
|
|
35
|
-
description: "console.log/error/warn is forbidden (use logger instead)",
|
|
36
|
-
priority: "CRITICAL",
|
|
37
|
-
detectPattern: /console\.(log|error|warn|debug|info)\s*\(/g,
|
|
38
|
-
appliesToExtensions: [".ts", ".tsx", ".js", ".jsx"],
|
|
39
|
-
errorMessage: "CRITICAL: console.log/error/warn is forbidden. Use the project's logger instead.",
|
|
40
|
-
bypassable: false,
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
id: "pii-masking",
|
|
44
|
-
name: "PII Masking Required",
|
|
45
|
-
description: "Sensitive data must be masked before logging or storing",
|
|
46
|
-
priority: "CRITICAL",
|
|
47
|
-
errorMessage: "CRITICAL: Detected potential PII in unmasked form. Use maskText() / maskObject() from pii.ts.",
|
|
48
|
-
bypassable: false,
|
|
49
|
-
},
|
|
50
|
-
// ── HIGH (P1) Rules ────────────────────────────────────────
|
|
51
|
-
{
|
|
52
|
-
id: "no-hardcoded-secrets",
|
|
53
|
-
name: "No Hardcoded Secrets",
|
|
54
|
-
description: "API keys, tokens, passwords must use environment variables",
|
|
55
|
-
priority: "HIGH",
|
|
56
|
-
detectPattern: /(['"])sk-[a-zA-Z0-9]{20,}['"]|(['"])ghp_[a-zA-Z0-9]{36,}['"]|(['"])AIza[0-9A-Za-z_-]{35}['"]/g,
|
|
57
|
-
appliesToExtensions: [".ts", ".tsx", ".js", ".jsx", ".py", ".go", ".java", ".yaml", ".yml", ".env.example"],
|
|
58
|
-
errorMessage: "HIGH: Hardcoded API keys/tokens detected. Use environment variables (process.env.*).",
|
|
59
|
-
bypassable: false,
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
id: "no-commented-code",
|
|
63
|
-
name: "No Commented-Out Code",
|
|
64
|
-
description: "Dead code should be removed, not commented out",
|
|
65
|
-
priority: "HIGH",
|
|
66
|
-
detectPattern: /\/\/\s*.{10,}/g,
|
|
67
|
-
appliesToExtensions: [".ts", ".tsx", ".js", ".jsx"],
|
|
68
|
-
errorMessage: "HIGH: Commented-out code detected. Remove dead code instead of commenting.",
|
|
69
|
-
bypassable: true,
|
|
70
|
-
},
|
|
71
|
-
// ── MEDIUM (P2) Rules ──────────────────────────────────────
|
|
72
|
-
{
|
|
73
|
-
id: "no-console-in-jsx",
|
|
74
|
-
name: "No Console in JSX",
|
|
75
|
-
description: "Avoid console statements inside JSX/TSX components",
|
|
76
|
-
priority: "MEDIUM",
|
|
77
|
-
detectPattern: /{.*console\.(log|error|warn)\(.*}/g,
|
|
78
|
-
appliesToExtensions: [".tsx", ".jsx"],
|
|
79
|
-
errorMessage: "MEDIUM: Console statement inside JSX detected. Move to event handler or useEffect.",
|
|
80
|
-
bypassable: true,
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
id: "i18n-usage",
|
|
84
|
-
name: "Internationalization Required",
|
|
85
|
-
description: "Use i18n for user-facing strings",
|
|
86
|
-
priority: "MEDIUM",
|
|
87
|
-
detectPattern: /(['"])([A-Z][a-z]+ [a-z]+ [a-z]+)['"]/g,
|
|
88
|
-
appliesToExtensions: [".tsx", ".jsx"],
|
|
89
|
-
errorMessage: "MEDIUM: User-facing string detected. Use i18n translation function instead.",
|
|
90
|
-
bypassable: true,
|
|
91
|
-
},
|
|
92
|
-
];
|
|
93
|
-
// ─── Rule Engine ──────────────────────────────────────────────────
|
|
94
|
-
let rulesMap = null;
|
|
95
|
-
function getRulesMap() {
|
|
96
|
-
if (!rulesMap) {
|
|
97
|
-
rulesMap = new Map();
|
|
98
|
-
for (const rule of GOVERNANCE_RULES) {
|
|
99
|
-
rulesMap.set(rule.id, rule);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return rulesMap;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Get all governance rules.
|
|
106
|
-
*/
|
|
107
|
-
export function getAllRules() {
|
|
108
|
-
return [...GOVERNANCE_RULES];
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Get rules by priority level.
|
|
112
|
-
*/
|
|
113
|
-
export function getRulesByPriority(priority) {
|
|
114
|
-
return GOVERNANCE_RULES.filter(r => r.priority === priority);
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Get non-bypassable rules (CRITICAL + HIGH non-bypassable).
|
|
118
|
-
*/
|
|
119
|
-
export function getNonBypassableRules() {
|
|
120
|
-
return GOVERNANCE_RULES.filter(r => !r.bypassable);
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Scan file content for rule violations.
|
|
124
|
-
* Returns array of violations found.
|
|
125
|
-
*/
|
|
126
|
-
export function scanFileForViolations(filePath, content) {
|
|
127
|
-
const ext = path.extname(filePath);
|
|
128
|
-
const violations = [];
|
|
129
|
-
const lines = content.split("\n");
|
|
130
|
-
for (const rule of GOVERNANCE_RULES) {
|
|
131
|
-
// Check if rule applies to this file extension
|
|
132
|
-
if (rule.appliesToExtensions && !rule.appliesToExtensions.includes(ext)) {
|
|
133
|
-
continue;
|
|
134
|
-
}
|
|
135
|
-
// Check if rule has a detect pattern
|
|
136
|
-
if (!rule.detectPattern)
|
|
137
|
-
continue;
|
|
138
|
-
// Scan each line
|
|
139
|
-
for (let i = 0; i < lines.length; i++) {
|
|
140
|
-
const match = lines[i].match(rule.detectPattern);
|
|
141
|
-
if (match) {
|
|
142
|
-
violations.push({
|
|
143
|
-
rule,
|
|
144
|
-
match: match[0],
|
|
145
|
-
line: i + 1,
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return violations;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Validate tool arguments against governance rules.
|
|
154
|
-
* Returns violation messages if any critical rule is violated.
|
|
155
|
-
*/
|
|
156
|
-
export function validateArgsAgainstRules(toolName, args) {
|
|
157
|
-
const nonBypassable = getNonBypassableRules();
|
|
158
|
-
for (const rule of nonBypassable) {
|
|
159
|
-
// Check if rule applies to this tool
|
|
160
|
-
if (rule.appliesToTools && !rule.appliesToTools.includes(toolName)) {
|
|
161
|
-
continue;
|
|
162
|
-
}
|
|
163
|
-
// For write_file and replace_text, check content for violations
|
|
164
|
-
if ((toolName === "write_file" || toolName === "replace_text") && args.content) {
|
|
165
|
-
const content = args.content;
|
|
166
|
-
const filePath = args.path || "unknown.ts";
|
|
167
|
-
const violations = scanFileForViolations(filePath, content);
|
|
168
|
-
if (violations.length > 0) {
|
|
169
|
-
const details = violations.map(v => ` Line ${v.line}: ${v.match} (${v.rule.name} - ${v.rule.priority})`).join("\n");
|
|
170
|
-
return [
|
|
171
|
-
`[GOVERNANCE] ${rule.priority} rule violation: ${rule.name}`,
|
|
172
|
-
`${rule.errorMessage}`,
|
|
173
|
-
"\nViolations:",
|
|
174
|
-
details,
|
|
175
|
-
].join("\n");
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
return null;
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Validate tool response for governance violations.
|
|
183
|
-
* Returns violation messages if found.
|
|
184
|
-
*/
|
|
185
|
-
export function validateResponseAgainstRules(toolName, responseText) {
|
|
186
|
-
// For file reads, check if the content contains PII or secrets
|
|
187
|
-
if (toolName === "read_file" && responseText.length > 0) {
|
|
188
|
-
const criticalRules = getNonBypassableRules();
|
|
189
|
-
for (const rule of criticalRules) {
|
|
190
|
-
if (rule.detectPattern && rule.detectPattern.test(responseText)) {
|
|
191
|
-
return `[GOVERNANCE] ${rule.priority} violation detected in response: ${rule.name}. ${rule.errorMessage}`;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
return null;
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Build system prompt override block for CLI initialization.
|
|
199
|
-
* This is injected into the AI's system prompt at MCP connect time.
|
|
200
|
-
*/
|
|
201
|
-
export function buildSystemPromptOverride() {
|
|
202
|
-
const criticalRules = getRulesByPriority("CRITICAL");
|
|
203
|
-
const highRules = getRulesByPriority("HIGH");
|
|
204
|
-
return [
|
|
205
|
-
"## [ATABEY GOVERNANCE] Critical Rules — DO NOT OVERRIDE",
|
|
206
|
-
"",
|
|
207
|
-
"The following rules are ENFORCED by the Atabey Governance Layer.",
|
|
208
|
-
"They CANNOT be bypassed or disabled.",
|
|
209
|
-
"",
|
|
210
|
-
"### Critical Rules (Non-Bypassable)",
|
|
211
|
-
...criticalRules.map(r => `- 🔴 ${r.name}: ${r.description}`),
|
|
212
|
-
"",
|
|
213
|
-
"### High Priority Rules",
|
|
214
|
-
...highRules.map(r => `- 🟠 ${r.name}: ${r.description}`),
|
|
215
|
-
"",
|
|
216
|
-
"> These rules are injected at the MCP middleware layer and enforced",
|
|
217
|
-
"> at both pre-execution and post-execution stages.",
|
|
218
|
-
"",
|
|
219
|
-
].join("\n");
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Add a custom governance rule at runtime.
|
|
223
|
-
*/
|
|
224
|
-
export function addRule(rule) {
|
|
225
|
-
const map = getRulesMap();
|
|
226
|
-
if (!map.has(rule.id)) {
|
|
227
|
-
GOVERNANCE_RULES.push(rule);
|
|
228
|
-
map.set(rule.id, rule);
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
export { GOVERNANCE_RULES as DefaultGovernanceRules };
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import path from "path";
|
|
2
|
-
import fs from "fs";
|
|
3
|
-
import { FRAMEWORK, MCP, UNIFIED_HUB_DIR } from "../constants.js"; // New import
|
|
4
|
-
import os from "os"; // Need os.homedir()
|
|
5
|
-
/**
|
|
6
|
-
* Validates and resolves a user-provided path to prevent path traversal attacks.
|
|
7
|
-
* Ensures the resolved path stays within the project root boundary.
|
|
8
|
-
*/
|
|
9
|
-
export function safePath(projectRoot, userPath) {
|
|
10
|
-
const resolved = path.resolve(projectRoot, userPath);
|
|
11
|
-
const normalizedRoot = path.resolve(projectRoot);
|
|
12
|
-
if (!resolved.startsWith(normalizedRoot + path.sep) && resolved !== normalizedRoot) {
|
|
13
|
-
throw new Error(`Access denied: path "${userPath}" escapes project root.`);
|
|
14
|
-
}
|
|
15
|
-
return resolved;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Resolves the active framework directory.
|
|
19
|
-
* Priority: ATABEY_TEST_DIR (env) -> package.json `atabey.frameworkDir` -> `.atabey` -> other adapter dirs -> global HOME.
|
|
20
|
-
*/
|
|
21
|
-
export function resolveFrameworkDir(projectRoot) {
|
|
22
|
-
// For test environments, use the explicitly set test directory.
|
|
23
|
-
const testDir = process.env[MCP.TEST_DIR_ENV];
|
|
24
|
-
if (testDir)
|
|
25
|
-
return testDir;
|
|
26
|
-
// 1. Authoritative source: read from package.json if present
|
|
27
|
-
try {
|
|
28
|
-
const pkgPath = path.join(projectRoot, "package.json");
|
|
29
|
-
if (fs.existsSync(pkgPath)) {
|
|
30
|
-
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
|
|
31
|
-
const atabeyConfig = pkg["atabey"];
|
|
32
|
-
if (atabeyConfig && typeof atabeyConfig["frameworkDir"] === "string") {
|
|
33
|
-
// Ensure the path is relative if it's within the project, otherwise use as-is.
|
|
34
|
-
const resolvedDir = path.resolve(projectRoot, atabeyConfig["frameworkDir"]);
|
|
35
|
-
if (resolvedDir.startsWith(path.resolve(projectRoot))) {
|
|
36
|
-
return path.relative(projectRoot, resolvedDir);
|
|
37
|
-
}
|
|
38
|
-
return atabeyConfig["frameworkDir"];
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
// ignore — fall through to filesystem scan
|
|
44
|
-
}
|
|
45
|
-
// 2. Filesystem scan in projectRoot for common framework directories
|
|
46
|
-
const localCandidates = [
|
|
47
|
-
FRAMEWORK.CORE_DIR, // .atabey
|
|
48
|
-
UNIFIED_HUB_DIR, // .agents
|
|
49
|
-
// Add other adapter specific directories if needed, or remove if unified is strictly enforced
|
|
50
|
-
];
|
|
51
|
-
for (const candidate of localCandidates) {
|
|
52
|
-
const candidatePath = path.join(projectRoot, candidate);
|
|
53
|
-
if (fs.existsSync(candidatePath)) {
|
|
54
|
-
return candidate;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
// 3. Fallback to global home directory.
|
|
58
|
-
const homeDir = os.homedir();
|
|
59
|
-
return path.join(homeDir, FRAMEWORK.CORE_DIR);
|
|
60
|
-
}
|