atabey 0.0.37 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ATABEY.md +1 -1
- package/PRIVACY.md +2 -2
- package/README.md +58 -46
- package/bin/completion.sh +1 -1
- package/dist/atabey/src/cli/commands/api.d.ts +1 -0
- package/dist/atabey/src/cli/commands/api.js +90 -0
- package/dist/atabey/src/cli/commands/api.js.map +1 -0
- package/dist/atabey/src/cli/commands/audit.d.ts +9 -0
- package/dist/atabey/src/cli/commands/audit.js +73 -0
- package/dist/atabey/src/cli/commands/audit.js.map +1 -0
- package/dist/atabey/src/cli/commands/check.js +15 -6
- package/dist/atabey/src/cli/commands/check.js.map +1 -1
- package/dist/atabey/src/cli/commands/contract.js +51 -8
- package/dist/atabey/src/cli/commands/contract.js.map +1 -1
- package/dist/atabey/src/cli/commands/coverage.js +17 -12
- package/dist/atabey/src/cli/commands/coverage.js.map +1 -1
- package/dist/atabey/src/cli/commands/dashboard.js +101 -16
- package/dist/atabey/src/cli/commands/dashboard.js.map +1 -1
- package/dist/atabey/src/cli/commands/db.d.ts +1 -0
- package/dist/atabey/src/cli/commands/db.js +58 -0
- package/dist/atabey/src/cli/commands/db.js.map +1 -0
- package/dist/atabey/src/cli/commands/hitl.js +2 -1
- package/dist/atabey/src/cli/commands/hitl.js.map +1 -1
- package/dist/atabey/src/cli/commands/index-codebase.js +10 -0
- package/dist/atabey/src/cli/commands/index-codebase.js.map +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-app.js +82 -7
- package/dist/atabey/src/cli/commands/init/scaffold-app.js.map +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-core.js +3 -3
- package/dist/atabey/src/cli/commands/init/scaffold-core.js.map +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-docs.js +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-docs.js.map +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-ops.js +47 -7
- package/dist/atabey/src/cli/commands/init/scaffold-ops.js.map +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-standards.js +8 -15
- package/dist/atabey/src/cli/commands/init/scaffold-standards.js.map +1 -1
- package/dist/atabey/src/cli/commands/init.js +28 -62
- package/dist/atabey/src/cli/commands/init.js.map +1 -1
- package/dist/atabey/src/cli/commands/lint.d.ts +2 -1
- package/dist/atabey/src/cli/commands/lint.js +20 -1
- package/dist/atabey/src/cli/commands/lint.js.map +1 -1
- package/dist/atabey/src/cli/commands/mcp.js +71 -33
- package/dist/atabey/src/cli/commands/mcp.js.map +1 -1
- package/dist/atabey/src/cli/commands/orchestrate.d.ts +4 -4
- package/dist/atabey/src/cli/commands/orchestrate.js +1 -1
- package/dist/atabey/src/cli/commands/orchestrate.js.map +1 -1
- package/dist/atabey/src/cli/commands/plan.d.ts +1 -1
- package/dist/atabey/src/cli/commands/plan.js +10 -0
- package/dist/atabey/src/cli/commands/plan.js.map +1 -1
- package/dist/atabey/src/cli/commands/quickstart.js +1 -1
- package/dist/atabey/src/cli/commands/quickstart.js.map +1 -1
- package/dist/atabey/src/cli/commands/script.js +4 -0
- package/dist/atabey/src/cli/commands/script.js.map +1 -1
- package/dist/atabey/src/cli/commands/secrets.d.ts +1 -0
- package/dist/atabey/src/cli/commands/secrets.js +146 -0
- package/dist/atabey/src/cli/commands/secrets.js.map +1 -0
- package/dist/atabey/src/cli/commands/worktree.d.ts +10 -0
- package/dist/atabey/src/cli/commands/worktree.js +90 -0
- package/dist/atabey/src/cli/commands/worktree.js.map +1 -0
- package/dist/atabey/src/cli/index.js +75 -16
- package/dist/atabey/src/cli/index.js.map +1 -1
- package/dist/atabey/src/cli/platforms/core.d.ts +0 -1
- package/dist/atabey/src/cli/platforms/core.js +0 -14
- package/dist/atabey/src/cli/platforms/core.js.map +1 -1
- package/dist/atabey/src/cli/platforms/index.d.ts +2 -2
- package/dist/atabey/src/cli/platforms/index.js +1 -1
- package/dist/atabey/src/cli/platforms/index.js.map +1 -1
- package/dist/atabey/src/cli/platforms/paths.d.ts +0 -2
- package/dist/atabey/src/cli/platforms/paths.js +1 -8
- package/dist/atabey/src/cli/platforms/paths.js.map +1 -1
- package/dist/atabey/src/cli/platforms/scaffold.js +1 -1
- package/dist/atabey/src/cli/platforms/scaffold.js.map +1 -1
- package/dist/atabey/src/cli/utils/claude.js +6 -0
- package/dist/atabey/src/cli/utils/claude.js.map +1 -1
- package/dist/atabey/src/cli/utils/compliance.d.ts +1 -1
- package/dist/atabey/src/cli/utils/compliance.js +33 -20
- package/dist/atabey/src/cli/utils/compliance.js.map +1 -1
- package/dist/atabey/src/cli/utils/fs.js +1 -1
- package/dist/atabey/src/cli/utils/fs.js.map +1 -1
- package/dist/atabey/src/cli/utils/i18n.js +2 -2
- package/dist/atabey/src/cli/utils/i18n.js.map +1 -1
- package/dist/atabey/src/cli/utils/memory.js +27 -16
- package/dist/atabey/src/cli/utils/memory.js.map +1 -1
- package/dist/atabey/src/cli/utils/pkg.js +5 -2
- package/dist/atabey/src/cli/utils/pkg.js.map +1 -1
- package/dist/atabey/src/cli/utils/quality.d.ts +1 -1
- package/dist/atabey/src/cli/utils/ui.d.ts +1 -1
- package/dist/atabey/src/cli/utils/ui.js +1 -1
- package/dist/atabey/src/modules/agents/definitions.d.ts +1 -1
- package/dist/atabey/src/modules/agents/definitions.js +13 -9
- package/dist/atabey/src/modules/agents/definitions.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/analyst.js +0 -2
- package/dist/atabey/src/modules/agents/registry/analyst.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/architect.js +0 -2
- package/dist/atabey/src/modules/agents/registry/architect.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/backend.js +0 -2
- package/dist/atabey/src/modules/agents/registry/backend.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/database.js +0 -2
- package/dist/atabey/src/modules/agents/registry/database.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/devops.js +0 -2
- package/dist/atabey/src/modules/agents/registry/devops.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/explorer.js +0 -2
- package/dist/atabey/src/modules/agents/registry/explorer.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/frontend.js +0 -2
- package/dist/atabey/src/modules/agents/registry/frontend.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/git.js +0 -2
- package/dist/atabey/src/modules/agents/registry/git.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/manager.js +0 -3
- package/dist/atabey/src/modules/agents/registry/manager.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/mobile.js +0 -2
- package/dist/atabey/src/modules/agents/registry/mobile.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/native.js +0 -2
- package/dist/atabey/src/modules/agents/registry/native.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/quality.js +3 -5
- package/dist/atabey/src/modules/agents/registry/quality.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/security.js +0 -2
- package/dist/atabey/src/modules/agents/registry/security.js.map +1 -1
- package/dist/atabey/src/modules/agents/types.d.ts +0 -1
- package/dist/atabey/src/modules/audit/export.d.ts +22 -0
- package/dist/atabey/src/modules/audit/export.js +58 -0
- package/dist/atabey/src/modules/audit/export.js.map +1 -0
- package/dist/atabey/src/modules/contracts/api.d.ts +2 -2
- package/dist/atabey/src/modules/engines/agent-executor.js +37 -0
- package/dist/atabey/src/modules/engines/agent-executor.js.map +1 -1
- package/dist/atabey/src/modules/engines/evaluation-engine.js +10 -0
- package/dist/atabey/src/modules/engines/evaluation-engine.js.map +1 -1
- package/dist/atabey/src/modules/engines/quality-gate.js +2 -2
- package/dist/atabey/src/modules/engines/quality-gate.js.map +1 -1
- package/dist/atabey/src/modules/engines/routing-engine.js +1 -1
- package/dist/atabey/src/modules/engines/routing-engine.js.map +1 -1
- package/dist/atabey/src/modules/memory/code-graph.d.ts +44 -0
- package/dist/atabey/src/modules/memory/code-graph.js +180 -0
- package/dist/atabey/src/modules/memory/code-graph.js.map +1 -0
- package/dist/atabey/src/modules/memory/context-assembler.d.ts +50 -0
- package/dist/atabey/src/modules/memory/context-assembler.js +146 -0
- package/dist/atabey/src/modules/memory/context-assembler.js.map +1 -0
- package/dist/atabey/src/modules/providers/definitions.js +78 -41
- package/dist/atabey/src/modules/providers/definitions.js.map +1 -1
- package/dist/atabey/src/modules/providers/shared.d.ts +1 -1
- package/dist/atabey/src/modules/providers/shared.js +34 -15
- package/dist/atabey/src/modules/providers/shared.js.map +1 -1
- package/dist/atabey/src/modules/providers/types.d.ts +0 -4
- package/dist/atabey/src/modules/runtime/adapters/headless-cli.d.ts +35 -0
- package/dist/atabey/src/modules/runtime/adapters/headless-cli.js +115 -0
- package/dist/atabey/src/modules/runtime/adapters/headless-cli.js.map +1 -0
- package/dist/atabey/src/modules/runtime/adapters/index.d.ts +2 -0
- package/dist/atabey/src/modules/runtime/adapters/index.js +3 -0
- package/dist/atabey/src/modules/runtime/adapters/index.js.map +1 -0
- package/dist/atabey/src/modules/runtime/adapters/types.d.ts +48 -0
- package/dist/atabey/src/modules/runtime/adapters/types.js +12 -0
- package/dist/atabey/src/modules/runtime/adapters/types.js.map +1 -0
- package/dist/atabey/src/modules/runtime/agent-runtime.d.ts +54 -0
- package/dist/atabey/src/modules/runtime/agent-runtime.js +203 -0
- package/dist/atabey/src/modules/runtime/agent-runtime.js.map +1 -0
- package/dist/atabey/src/modules/runtime/dispatcher.d.ts +75 -0
- package/dist/atabey/src/modules/runtime/dispatcher.js +255 -0
- package/dist/atabey/src/modules/runtime/dispatcher.js.map +1 -0
- package/dist/atabey/src/modules/runtime/evidence.d.ts +39 -0
- package/dist/atabey/src/modules/runtime/evidence.js +53 -0
- package/dist/atabey/src/modules/runtime/evidence.js.map +1 -0
- package/dist/atabey/src/modules/runtime/worktree.d.ts +44 -0
- package/dist/atabey/src/modules/runtime/worktree.js +259 -0
- package/dist/atabey/src/modules/runtime/worktree.js.map +1 -0
- package/dist/atabey/src/modules/skills/adapter-skills.d.ts +0 -29
- package/dist/atabey/src/modules/skills/adapter-skills.js +0 -61
- package/dist/atabey/src/modules/skills/adapter-skills.js.map +1 -1
- package/dist/atabey/src/modules/skills/definitions.d.ts +1 -1
- package/dist/atabey/src/modules/skills/definitions.js +8 -8
- package/dist/atabey/src/schema/agent-lifecycle.d.ts +36 -0
- package/dist/atabey/src/schema/agent-lifecycle.js +96 -0
- package/dist/atabey/src/schema/agent-lifecycle.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/ast-scan.d.ts +21 -0
- package/dist/atabey-mcp/src/mcp/utils/ast-scan.js +64 -0
- package/dist/atabey-mcp/src/mcp/utils/ast-scan.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/auth.d.ts +73 -0
- package/dist/atabey-mcp/src/mcp/utils/auth.js +316 -0
- package/dist/atabey-mcp/src/mcp/utils/auth.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/auto-rollback.d.ts +83 -0
- package/dist/atabey-mcp/src/mcp/utils/auto-rollback.js +418 -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 +85 -0
- package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js +296 -0
- package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/discipline.d.ts +72 -0
- package/dist/atabey-mcp/src/mcp/utils/discipline.js +385 -0
- package/dist/atabey-mcp/src/mcp/utils/discipline.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/finops.d.ts +81 -0
- package/dist/atabey-mcp/src/mcp/utils/finops.js +274 -0
- package/dist/atabey-mcp/src/mcp/utils/finops.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/loop-detector.d.ts +106 -0
- package/dist/atabey-mcp/src/mcp/utils/loop-detector.js +419 -0
- package/dist/atabey-mcp/src/mcp/utils/loop-detector.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/rules-engine.d.ts +80 -0
- package/dist/atabey-mcp/src/mcp/utils/rules-engine.js +296 -0
- package/dist/atabey-mcp/src/mcp/utils/rules-engine.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.d.ts +133 -0
- package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.js +400 -0
- package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.js.map +1 -0
- package/dist/atabey-mcp/src/shared/logger.d.ts +1 -0
- package/dist/atabey-mcp/src/shared/logger.js +2 -0
- package/dist/atabey-mcp/src/shared/logger.js.map +1 -0
- package/dist/atabey-mcp/src/shared/pii.d.ts +1 -0
- package/dist/atabey-mcp/src/shared/pii.js +2 -0
- package/dist/atabey-mcp/src/shared/pii.js.map +1 -0
- package/dist/atabey-mcp/src/shared/storage.d.ts +2 -0
- package/dist/atabey-mcp/src/shared/storage.js +3 -0
- package/dist/atabey-mcp/src/shared/storage.js.map +1 -0
- package/dist/shared/src/agent-identity.d.ts +1 -0
- package/dist/shared/src/agent-identity.js +2 -0
- package/dist/shared/src/agent-identity.js.map +1 -0
- package/dist/shared/src/api-catalog.d.ts +1 -0
- package/dist/shared/src/api-catalog.js +2 -0
- package/dist/shared/src/api-catalog.js.map +1 -0
- package/dist/shared/src/audit-chain.d.ts +1 -51
- package/dist/shared/src/audit-chain.js +1 -84
- package/dist/shared/src/audit-chain.js.map +1 -1
- package/dist/shared/src/audit.d.ts +1 -113
- package/dist/shared/src/audit.js +1 -284
- package/dist/shared/src/audit.js.map +1 -1
- package/dist/shared/src/constants.d.ts +1 -152
- package/dist/shared/src/constants.js +1 -215
- package/dist/shared/src/constants.js.map +1 -1
- package/dist/shared/src/database.d.ts +1 -5
- package/dist/shared/src/database.js +1 -12
- package/dist/shared/src/database.js.map +1 -1
- package/dist/shared/src/errors.d.ts +1 -46
- package/dist/shared/src/errors.js +1 -68
- package/dist/shared/src/errors.js.map +1 -1
- package/dist/shared/src/file-lock.d.ts +1 -88
- package/dist/shared/src/file-lock.js +1 -250
- package/dist/shared/src/file-lock.js.map +1 -1
- package/dist/shared/src/fs.d.ts +1 -9
- package/dist/shared/src/fs.js +1 -53
- package/dist/shared/src/fs.js.map +1 -1
- package/dist/shared/src/index.d.ts +2 -22
- package/dist/shared/src/index.js +2 -22
- package/dist/shared/src/index.js.map +1 -1
- package/dist/shared/src/job-queue.d.ts +1 -53
- package/dist/shared/src/job-queue.js +1 -126
- package/dist/shared/src/job-queue.js.map +1 -1
- package/dist/shared/src/lock.d.ts +1 -82
- package/dist/shared/src/lock.js +1 -158
- package/dist/shared/src/lock.js.map +1 -1
- package/dist/shared/src/logger.d.ts +1 -30
- package/dist/shared/src/logger.js +1 -126
- package/dist/shared/src/logger.js.map +1 -1
- package/dist/shared/src/memory-prune.d.ts +1 -0
- package/dist/shared/src/memory-prune.js +2 -0
- package/dist/shared/src/memory-prune.js.map +1 -0
- package/dist/shared/src/migrations.d.ts +1 -0
- package/dist/shared/src/migrations.js +2 -0
- package/dist/shared/src/migrations.js.map +1 -0
- package/dist/shared/src/modules/agent/agent-identity.d.ts +34 -0
- package/dist/shared/src/modules/agent/agent-identity.js +77 -0
- package/dist/shared/src/modules/agent/agent-identity.js.map +1 -0
- package/dist/shared/src/modules/agent/api-catalog.d.ts +57 -0
- package/dist/shared/src/modules/agent/api-catalog.js +254 -0
- package/dist/shared/src/modules/agent/api-catalog.js.map +1 -0
- package/dist/shared/src/modules/agent/index.d.ts +3 -0
- package/dist/shared/src/modules/agent/index.js +4 -0
- package/dist/shared/src/modules/agent/index.js.map +1 -0
- package/dist/shared/src/modules/agent/tokenizer.d.ts +54 -0
- package/dist/shared/src/modules/agent/tokenizer.js +272 -0
- package/dist/shared/src/modules/agent/tokenizer.js.map +1 -0
- package/dist/shared/src/modules/concurrency/file-lock.d.ts +93 -0
- package/dist/shared/src/modules/concurrency/file-lock.js +240 -0
- package/dist/shared/src/modules/concurrency/file-lock.js.map +1 -0
- package/dist/shared/src/modules/concurrency/index.d.ts +6 -0
- package/dist/shared/src/modules/concurrency/index.js +7 -0
- package/dist/shared/src/modules/concurrency/index.js.map +1 -0
- package/dist/shared/src/modules/concurrency/job-queue.d.ts +76 -0
- package/dist/shared/src/modules/concurrency/job-queue.js +200 -0
- package/dist/shared/src/modules/concurrency/job-queue.js.map +1 -0
- package/dist/shared/src/modules/concurrency/lock.d.ts +82 -0
- package/dist/shared/src/modules/concurrency/lock.js +159 -0
- package/dist/shared/src/modules/concurrency/lock.js.map +1 -0
- package/dist/shared/src/modules/concurrency/resilience.d.ts +84 -0
- package/dist/shared/src/modules/concurrency/resilience.js +217 -0
- package/dist/shared/src/modules/concurrency/resilience.js.map +1 -0
- package/dist/shared/src/modules/concurrency/worker-pool.d.ts +52 -0
- package/dist/shared/src/modules/concurrency/worker-pool.js +229 -0
- package/dist/shared/src/modules/concurrency/worker-pool.js.map +1 -0
- package/dist/shared/src/modules/concurrency/worker-thread.d.ts +21 -0
- package/dist/shared/src/modules/concurrency/worker-thread.js +67 -0
- package/dist/shared/src/modules/concurrency/worker-thread.js.map +1 -0
- package/dist/shared/src/modules/index.d.ts +14 -0
- package/dist/shared/src/modules/index.js +15 -0
- package/dist/shared/src/modules/index.js.map +1 -0
- package/dist/shared/src/modules/observability/audit-chain.d.ts +80 -0
- package/dist/shared/src/modules/observability/audit-chain.js +262 -0
- package/dist/shared/src/modules/observability/audit-chain.js.map +1 -0
- package/dist/shared/src/modules/observability/audit.d.ts +121 -0
- package/dist/shared/src/modules/observability/audit.js +322 -0
- package/dist/shared/src/modules/observability/audit.js.map +1 -0
- package/dist/shared/src/modules/observability/index.d.ts +4 -0
- package/dist/shared/src/modules/observability/index.js +5 -0
- package/dist/shared/src/modules/observability/index.js.map +1 -0
- package/dist/shared/src/modules/observability/logger.d.ts +31 -0
- package/dist/shared/src/modules/observability/logger.js +153 -0
- package/dist/shared/src/modules/observability/logger.js.map +1 -0
- package/dist/shared/src/modules/observability/otel.d.ts +39 -0
- package/dist/shared/src/modules/observability/otel.js +93 -0
- package/dist/shared/src/modules/observability/otel.js.map +1 -0
- package/dist/shared/src/modules/primitives/constants.d.ts +150 -0
- package/dist/shared/src/modules/primitives/constants.js +212 -0
- package/dist/shared/src/modules/primitives/constants.js.map +1 -0
- package/dist/shared/src/modules/primitives/errors.d.ts +46 -0
- package/dist/shared/src/modules/primitives/errors.js +69 -0
- package/dist/shared/src/modules/primitives/errors.js.map +1 -0
- package/dist/shared/src/modules/primitives/fs.d.ts +9 -0
- package/dist/shared/src/modules/primitives/fs.js +54 -0
- package/dist/shared/src/modules/primitives/fs.js.map +1 -0
- package/dist/shared/src/modules/primitives/index.d.ts +7 -0
- package/dist/shared/src/modules/primitives/index.js +8 -0
- package/dist/shared/src/modules/primitives/index.js.map +1 -0
- package/dist/shared/src/modules/primitives/outbound-http.d.ts +32 -0
- package/dist/shared/src/modules/primitives/outbound-http.js +88 -0
- package/dist/shared/src/modules/primitives/outbound-http.js.map +1 -0
- package/dist/shared/src/modules/primitives/string.d.ts +1 -0
- package/dist/shared/src/modules/primitives/string.js +30 -0
- package/dist/shared/src/modules/primitives/string.js.map +1 -0
- package/dist/shared/src/modules/primitives/time.d.ts +5 -0
- package/dist/shared/src/modules/primitives/time.js +35 -0
- package/dist/shared/src/modules/primitives/time.js.map +1 -0
- package/dist/shared/src/modules/primitives/types.d.ts +27 -0
- package/dist/shared/src/modules/primitives/types.js +17 -0
- package/dist/shared/src/modules/primitives/types.js.map +1 -0
- package/dist/shared/src/modules/sandbox/index.d.ts +3 -0
- package/dist/shared/src/modules/sandbox/index.js +4 -0
- package/dist/shared/src/modules/sandbox/index.js.map +1 -0
- package/dist/shared/src/modules/sandbox/sandbox-fs.d.ts +28 -0
- package/dist/shared/src/modules/sandbox/sandbox-fs.js +143 -0
- package/dist/shared/src/modules/sandbox/sandbox-fs.js.map +1 -0
- package/dist/shared/src/modules/sandbox/sandbox-runtime.d.ts +78 -0
- package/dist/shared/src/modules/sandbox/sandbox-runtime.js +282 -0
- package/dist/shared/src/modules/sandbox/sandbox-runtime.js.map +1 -0
- package/dist/shared/src/modules/sandbox/sandbox.d.ts +54 -0
- package/dist/shared/src/modules/sandbox/sandbox.js +179 -0
- package/dist/shared/src/modules/sandbox/sandbox.js.map +1 -0
- package/dist/shared/src/modules/security/index.d.ts +5 -0
- package/dist/shared/src/modules/security/index.js +6 -0
- package/dist/shared/src/modules/security/index.js.map +1 -0
- package/dist/shared/src/modules/security/pii.d.ts +70 -0
- package/dist/shared/src/modules/security/pii.js +276 -0
- package/dist/shared/src/modules/security/pii.js.map +1 -0
- package/dist/shared/src/modules/security/policy-gate.d.ts +42 -0
- package/dist/shared/src/modules/security/policy-gate.js +172 -0
- package/dist/shared/src/modules/security/policy-gate.js.map +1 -0
- package/dist/shared/src/modules/security/retention.d.ts +68 -0
- package/dist/shared/src/modules/security/retention.js +218 -0
- package/dist/shared/src/modules/security/retention.js.map +1 -0
- package/dist/shared/src/modules/security/secrets.d.ts +99 -0
- package/dist/shared/src/modules/security/secrets.js +371 -0
- package/dist/shared/src/modules/security/secrets.js.map +1 -0
- package/dist/shared/src/modules/security/tls.d.ts +87 -0
- package/dist/shared/src/modules/security/tls.js +154 -0
- package/dist/shared/src/modules/security/tls.js.map +1 -0
- package/dist/shared/src/modules/storage/database.d.ts +6 -0
- package/dist/shared/src/modules/storage/database.js +16 -0
- package/dist/shared/src/modules/storage/database.js.map +1 -0
- package/dist/shared/src/modules/storage/index.d.ts +4 -0
- package/dist/shared/src/modules/storage/index.js +5 -0
- package/dist/shared/src/modules/storage/index.js.map +1 -0
- package/dist/shared/src/modules/storage/memory-prune.d.ts +18 -0
- package/dist/shared/src/modules/storage/memory-prune.js +48 -0
- package/dist/shared/src/modules/storage/memory-prune.js.map +1 -0
- package/dist/shared/src/modules/storage/migrations.d.ts +69 -0
- package/dist/shared/src/modules/storage/migrations.js +394 -0
- package/dist/shared/src/modules/storage/migrations.js.map +1 -0
- package/dist/shared/src/modules/storage/storage.d.ts +341 -0
- package/dist/shared/src/modules/storage/storage.js +1004 -0
- package/dist/shared/src/modules/storage/storage.js.map +1 -0
- package/dist/shared/src/otel.d.ts +1 -0
- package/dist/shared/src/otel.js +2 -0
- package/dist/shared/src/otel.js.map +1 -0
- package/dist/shared/src/outbound-http.d.ts +1 -0
- package/dist/shared/src/outbound-http.js +2 -0
- package/dist/shared/src/outbound-http.js.map +1 -0
- package/dist/shared/src/pii.d.ts +1 -69
- package/dist/shared/src/pii.js +1 -219
- package/dist/shared/src/pii.js.map +1 -1
- package/dist/shared/src/policy-gate.d.ts +1 -42
- package/dist/shared/src/policy-gate.js +1 -147
- package/dist/shared/src/policy-gate.js.map +1 -1
- package/dist/shared/src/resilience.d.ts +1 -84
- package/dist/shared/src/resilience.js +1 -216
- package/dist/shared/src/resilience.js.map +1 -1
- package/dist/shared/src/retention.d.ts +1 -63
- package/dist/shared/src/retention.js +1 -170
- package/dist/shared/src/retention.js.map +1 -1
- package/dist/shared/src/sandbox-fs.d.ts +1 -28
- package/dist/shared/src/sandbox-fs.js +1 -149
- package/dist/shared/src/sandbox-fs.js.map +1 -1
- package/dist/shared/src/sandbox-runtime.d.ts +1 -85
- package/dist/shared/src/sandbox-runtime.js +1 -249
- package/dist/shared/src/sandbox-runtime.js.map +1 -1
- package/dist/shared/src/sandbox.d.ts +1 -54
- package/dist/shared/src/sandbox.js +1 -178
- package/dist/shared/src/sandbox.js.map +1 -1
- package/dist/shared/src/secrets.d.ts +1 -0
- package/dist/shared/src/secrets.js +2 -0
- package/dist/shared/src/secrets.js.map +1 -0
- package/dist/shared/src/storage.d.ts +1 -274
- package/dist/shared/src/storage.js +1 -723
- package/dist/shared/src/storage.js.map +1 -1
- package/dist/shared/src/string.d.ts +1 -1
- package/dist/shared/src/string.js +1 -29
- package/dist/shared/src/string.js.map +1 -1
- package/dist/shared/src/time.d.ts +1 -5
- package/dist/shared/src/time.js +1 -30
- package/dist/shared/src/time.js.map +1 -1
- package/dist/shared/src/tls.d.ts +1 -0
- package/dist/shared/src/tls.js +2 -0
- package/dist/shared/src/tls.js.map +1 -0
- package/dist/shared/src/tokenizer.d.ts +1 -0
- package/dist/shared/src/tokenizer.js +2 -0
- package/dist/shared/src/tokenizer.js.map +1 -0
- package/dist/shared/src/types.d.ts +1 -27
- package/dist/shared/src/types.js +1 -16
- package/dist/shared/src/types.js.map +1 -1
- package/dist/shared/src/worker-pool.d.ts +1 -52
- package/dist/shared/src/worker-pool.js +1 -209
- package/dist/shared/src/worker-pool.js.map +1 -1
- package/dist/shared/src/worker-thread.d.ts +1 -21
- package/dist/shared/src/worker-thread.js +1 -66
- package/dist/shared/src/worker-thread.js.map +1 -1
- package/package.json +4 -6
- package/templates/docs/tech-stack.md +21 -0
- package/templates/full/ATABEY_FULL.md +38 -50
- package/templates/prompts/security-audit-recipe.md +1 -1
- package/templates/standards/architecture-standards.md +6 -4
- package/templates/standards/crud-governance.md +1 -1
- package/templates/standards/deployment-standards.md +1 -1
- package/templates/standards/enterprise-systems-standards.md +5 -1
- package/templates/standards/eslint-standards.md +10 -0
- package/templates/standards/frontend-standards.md +2 -2
- package/templates/standards/governance-standards.md +2 -2
- package/templates/standards/i18n-standards.md +1 -1
- package/templates/standards/logging-and-secrets.md +1 -1
- package/templates/standards/native-standards.md +1 -1
- package/templates/standards/quality-standards.md +1 -1
- package/templates/standards/security-audit-standards.md +1 -1
- package/templates/standards/security-standards.md +1 -1
- package/templates/standards/testing-standards.md +1 -1
- package/templates/standards/token-economy.md +27 -0
- package/dist/atabey/src/cli/commands/init/create-agent.d.ts +0 -4
- package/dist/atabey/src/cli/commands/init/create-agent.js +0 -59
- package/dist/atabey/src/cli/commands/init/create-agent.js.map +0 -1
- package/dist/atabey/src/cli/utils/config-schema.d.ts +0 -213
- package/dist/atabey/src/cli/utils/config-schema.js +0 -58
- package/dist/atabey/src/cli/utils/config-schema.js.map +0 -1
- package/dist/atabey/src/cli/utils/schemas.d.ts +0 -49
- package/dist/atabey/src/cli/utils/schemas.js +0 -20
- package/dist/atabey/src/cli/utils/schemas.js.map +0 -1
- package/dist/atabey/src/contracts/index.d.ts +0 -1
- package/dist/atabey/src/contracts/index.js +0 -2
- package/dist/atabey/src/contracts/index.js.map +0 -1
- package/dist/atabey/src/contracts/tasks.d.ts +0 -44
- package/dist/atabey/src/contracts/tasks.js +0 -21
- package/dist/atabey/src/contracts/tasks.js.map +0 -1
- package/dist/atabey/src/modules/contracts/index.d.ts +0 -5
- package/dist/atabey/src/modules/contracts/index.js +0 -6
- package/dist/atabey/src/modules/contracts/index.js.map +0 -1
- package/dist/atabey/src/modules/engines/contract-engine.d.ts +0 -46
- package/dist/atabey/src/modules/engines/contract-engine.js +0 -116
- package/dist/atabey/src/modules/engines/contract-engine.js.map +0 -1
- package/dist/atabey/src/modules/engines/discovery-engine.d.ts +0 -42
- package/dist/atabey/src/modules/engines/discovery-engine.js +0 -161
- package/dist/atabey/src/modules/engines/discovery-engine.js.map +0 -1
- package/dist/atabey/src/modules/engines/file-lock.d.ts +0 -56
- package/dist/atabey/src/modules/engines/file-lock.js +0 -171
- package/dist/atabey/src/modules/engines/file-lock.js.map +0 -1
- package/dist/atabey/src/modules/engines/phase-engine.d.ts +0 -82
- package/dist/atabey/src/modules/engines/phase-engine.js +0 -204
- package/dist/atabey/src/modules/engines/phase-engine.js.map +0 -1
- package/dist/atabey/src/modules/engines/policy-engine.d.ts +0 -63
- package/dist/atabey/src/modules/engines/policy-engine.js +0 -188
- package/dist/atabey/src/modules/engines/policy-engine.js.map +0 -1
- package/dist/atabey/src/modules/engines/sandbox.d.ts +0 -31
- package/dist/atabey/src/modules/engines/sandbox.js +0 -57
- package/dist/atabey/src/modules/engines/sandbox.js.map +0 -1
- package/dist/atabey/src/modules/engines/session-engine.d.ts +0 -68
- package/dist/atabey/src/modules/engines/session-engine.js +0 -141
- package/dist/atabey/src/modules/engines/session-engine.js.map +0 -1
- package/dist/atabey/src/modules/engines/worker-pool.d.ts +0 -8
- package/dist/atabey/src/modules/engines/worker-pool.js +0 -9
- package/dist/atabey/src/modules/engines/worker-pool.js.map +0 -1
- package/dist/atabey/src/modules/providers/llm-provider.d.ts +0 -87
- package/dist/atabey/src/modules/providers/llm-provider.js +0 -242
- package/dist/atabey/src/modules/providers/llm-provider.js.map +0 -1
- package/dist/atabey/src/shared/file-lock.d.ts +0 -1
- package/dist/atabey/src/shared/file-lock.js +0 -2
- package/dist/atabey/src/shared/file-lock.js.map +0 -1
- package/dist/atabey/src/shared/job-queue.d.ts +0 -1
- package/dist/atabey/src/shared/job-queue.js +0 -2
- package/dist/atabey/src/shared/job-queue.js.map +0 -1
- package/dist/atabey/src/shared/lock.d.ts +0 -1
- package/dist/atabey/src/shared/lock.js +0 -2
- package/dist/atabey/src/shared/lock.js.map +0 -1
- package/dist/atabey/src/shared/resilience.d.ts +0 -1
- package/dist/atabey/src/shared/resilience.js +0 -2
- package/dist/atabey/src/shared/resilience.js.map +0 -1
- package/dist/atabey/src/shared/retention.d.ts +0 -1
- package/dist/atabey/src/shared/retention.js +0 -2
- package/dist/atabey/src/shared/retention.js.map +0 -1
- package/dist/atabey/src/shared/sandbox-runtime.d.ts +0 -1
- package/dist/atabey/src/shared/sandbox-runtime.js +0 -2
- package/dist/atabey/src/shared/sandbox-runtime.js.map +0 -1
- package/dist/atabey/src/shared/sandbox.d.ts +0 -1
- package/dist/atabey/src/shared/sandbox.js +0 -2
- package/dist/atabey/src/shared/sandbox.js.map +0 -1
- package/dist/atabey/src/shared/worker-pool.d.ts +0 -1
- package/dist/atabey/src/shared/worker-pool.js +0 -2
- package/dist/atabey/src/shared/worker-pool.js.map +0 -1
|
@@ -0,0 +1,296 @@
|
|
|
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
|
+
import { scanSourceForViolations } from "./ast-scan.js";
|
|
20
|
+
// ─── Built-in Governance Rules ────────────────────────────────────
|
|
21
|
+
const GOVERNANCE_RULES = [
|
|
22
|
+
// ── CRITICAL (P0) Rules ────────────────────────────────────
|
|
23
|
+
{
|
|
24
|
+
id: "no-any-types",
|
|
25
|
+
name: "Zero Any Type Policy",
|
|
26
|
+
description: "TypeScript 'any' type is strictly forbidden",
|
|
27
|
+
priority: "CRITICAL",
|
|
28
|
+
detectPattern: /:\s*any\b/g,
|
|
29
|
+
appliesToExtensions: [".ts", ".tsx"],
|
|
30
|
+
errorMessage: "CRITICAL: 'any' type is forbidden. Use 'unknown' with proper type guards instead.",
|
|
31
|
+
bypassable: false,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
id: "no-console-log",
|
|
35
|
+
name: "No Console Log",
|
|
36
|
+
description: "console.log/error/warn is forbidden (use logger instead)",
|
|
37
|
+
priority: "CRITICAL",
|
|
38
|
+
detectPattern: /console\.(log|error|warn|debug|info)\s*\(/g,
|
|
39
|
+
appliesToExtensions: [".ts", ".tsx", ".js", ".jsx"],
|
|
40
|
+
errorMessage: "CRITICAL: console.log/error/warn is forbidden. Use the project's logger instead.",
|
|
41
|
+
bypassable: false,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: "pii-masking",
|
|
45
|
+
name: "PII Masking Required",
|
|
46
|
+
description: "Sensitive data must be masked before logging or storing",
|
|
47
|
+
priority: "CRITICAL",
|
|
48
|
+
errorMessage: "CRITICAL: Detected potential PII in unmasked form. Use maskText() / maskObject() from pii.ts.",
|
|
49
|
+
bypassable: false,
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: "no-ts-directives",
|
|
53
|
+
name: "No TypeScript Suppression Directives",
|
|
54
|
+
description: "@ts-ignore / @ts-nocheck / @ts-expect-error are forbidden",
|
|
55
|
+
priority: "CRITICAL",
|
|
56
|
+
errorMessage: "CRITICAL: TypeScript suppression directives are forbidden. Fix the underlying type error.",
|
|
57
|
+
bypassable: false,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: "no-debugger",
|
|
61
|
+
name: "No Debugger Statement",
|
|
62
|
+
description: "`debugger` statements must not be committed",
|
|
63
|
+
priority: "CRITICAL",
|
|
64
|
+
errorMessage: "CRITICAL: `debugger` statement detected. Remove it before committing.",
|
|
65
|
+
bypassable: false,
|
|
66
|
+
},
|
|
67
|
+
// ── HIGH (P1) Rules ────────────────────────────────────────
|
|
68
|
+
{
|
|
69
|
+
id: "no-hardcoded-secrets",
|
|
70
|
+
name: "No Hardcoded Secrets",
|
|
71
|
+
description: "API keys, tokens, passwords must use environment variables",
|
|
72
|
+
priority: "HIGH",
|
|
73
|
+
detectPattern: /(['"])sk-[a-zA-Z0-9]{20,}['"]|(['"])ghp_[a-zA-Z0-9]{36,}['"]|(['"])AIza[0-9A-Za-z_-]{35}['"]/g,
|
|
74
|
+
appliesToExtensions: [".ts", ".tsx", ".js", ".jsx", ".py", ".go", ".java", ".yaml", ".yml", ".env.example"],
|
|
75
|
+
errorMessage: "HIGH: Hardcoded API keys/tokens detected. Use environment variables (process.env.*).",
|
|
76
|
+
bypassable: false,
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
id: "no-commented-code",
|
|
80
|
+
name: "No Commented-Out Code",
|
|
81
|
+
description: "Dead code should be removed, not commented out",
|
|
82
|
+
priority: "HIGH",
|
|
83
|
+
// Only flag comments that actually look like commented-out code, not
|
|
84
|
+
// every `// ...` (which previously matched URLs and prose comments).
|
|
85
|
+
detectPattern: /\/\/\s*(?:const|let|var|function|return|import|export|if|for|while|switch|class|interface|type)\b/g,
|
|
86
|
+
appliesToExtensions: [".ts", ".tsx", ".js", ".jsx"],
|
|
87
|
+
errorMessage: "HIGH: Commented-out code detected. Remove dead code instead of commenting.",
|
|
88
|
+
bypassable: true,
|
|
89
|
+
},
|
|
90
|
+
// ── MEDIUM (P2) Rules ──────────────────────────────────────
|
|
91
|
+
{
|
|
92
|
+
id: "no-console-in-jsx",
|
|
93
|
+
name: "No Console in JSX",
|
|
94
|
+
description: "Avoid console statements inside JSX/TSX components",
|
|
95
|
+
priority: "MEDIUM",
|
|
96
|
+
detectPattern: /{.*console\.(log|error|warn)\(.*}/g,
|
|
97
|
+
appliesToExtensions: [".tsx", ".jsx"],
|
|
98
|
+
errorMessage: "MEDIUM: Console statement inside JSX detected. Move to event handler or useEffect.",
|
|
99
|
+
bypassable: true,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
id: "i18n-usage",
|
|
103
|
+
name: "Internationalization Required",
|
|
104
|
+
description: "Use i18n for user-facing strings",
|
|
105
|
+
priority: "MEDIUM",
|
|
106
|
+
detectPattern: /(['"])([A-Z][a-z]+ [a-z]+ [a-z]+)['"]/g,
|
|
107
|
+
appliesToExtensions: [".tsx", ".jsx"],
|
|
108
|
+
errorMessage: "MEDIUM: User-facing string detected. Use i18n translation function instead.",
|
|
109
|
+
bypassable: true,
|
|
110
|
+
},
|
|
111
|
+
];
|
|
112
|
+
// ─── Rule Engine ──────────────────────────────────────────────────
|
|
113
|
+
let rulesMap = null;
|
|
114
|
+
function getRulesMap() {
|
|
115
|
+
if (!rulesMap) {
|
|
116
|
+
rulesMap = new Map();
|
|
117
|
+
for (const rule of GOVERNANCE_RULES) {
|
|
118
|
+
rulesMap.set(rule.id, rule);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return rulesMap;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get all governance rules.
|
|
125
|
+
*/
|
|
126
|
+
export function getAllRules() {
|
|
127
|
+
return [...GOVERNANCE_RULES];
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Get rules by priority level.
|
|
131
|
+
*/
|
|
132
|
+
export function getRulesByPriority(priority) {
|
|
133
|
+
return GOVERNANCE_RULES.filter(r => r.priority === priority);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Get non-bypassable rules (CRITICAL + HIGH non-bypassable).
|
|
137
|
+
*/
|
|
138
|
+
export function getNonBypassableRules() {
|
|
139
|
+
return GOVERNANCE_RULES.filter(r => !r.bypassable);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Scan file content for rule violations.
|
|
143
|
+
* Returns array of violations found.
|
|
144
|
+
*/
|
|
145
|
+
export function scanFileForViolations(filePath, content, options = {}) {
|
|
146
|
+
const includeBypassable = options.includeBypassable ?? true;
|
|
147
|
+
const ext = path.extname(filePath);
|
|
148
|
+
const violations = [];
|
|
149
|
+
const lines = content.split("\n");
|
|
150
|
+
for (const rule of GOVERNANCE_RULES) {
|
|
151
|
+
if (!includeBypassable && rule.bypassable)
|
|
152
|
+
continue;
|
|
153
|
+
// Check if rule applies to this file extension
|
|
154
|
+
if (rule.appliesToExtensions && !rule.appliesToExtensions.includes(ext)) {
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
// Check if rule has a detect pattern
|
|
158
|
+
if (!rule.detectPattern)
|
|
159
|
+
continue;
|
|
160
|
+
// Scan each line
|
|
161
|
+
for (let i = 0; i < lines.length; i++) {
|
|
162
|
+
// Reset lastIndex for stateful /g regexes before each line.
|
|
163
|
+
rule.detectPattern.lastIndex = 0;
|
|
164
|
+
const match = lines[i].match(rule.detectPattern);
|
|
165
|
+
if (match) {
|
|
166
|
+
violations.push({
|
|
167
|
+
rule,
|
|
168
|
+
match: match[0],
|
|
169
|
+
line: i + 1,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// [REAL AST] For TS/JS, augment regex findings with TypeScript Compiler API
|
|
175
|
+
// results (catches `Array<any>`, type aliases, console.* in expressions, and
|
|
176
|
+
// avoids false positives from comments/strings).
|
|
177
|
+
if ([".ts", ".tsx", ".js", ".jsx"].includes(ext)) {
|
|
178
|
+
const astViolations = scanSourceForViolations(filePath, content);
|
|
179
|
+
for (const av of astViolations) {
|
|
180
|
+
const rule = getRulesMap().get(av.ruleId);
|
|
181
|
+
if (!rule)
|
|
182
|
+
continue;
|
|
183
|
+
if (!includeBypassable && rule.bypassable)
|
|
184
|
+
continue;
|
|
185
|
+
const already = violations.some((v) => v.rule.id === rule.id && v.line === av.line);
|
|
186
|
+
if (already)
|
|
187
|
+
continue;
|
|
188
|
+
violations.push({ rule, match: av.text, line: av.line });
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return violations;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Collect the user-supplied content to scan across every write-style tool shape.
|
|
195
|
+
*/
|
|
196
|
+
function collectScannableContent(args) {
|
|
197
|
+
const contents = [];
|
|
198
|
+
for (const key of ["content", "newText", "newContent", "replacement"]) {
|
|
199
|
+
const v = args[key];
|
|
200
|
+
if (typeof v === "string" && v)
|
|
201
|
+
contents.push(v);
|
|
202
|
+
}
|
|
203
|
+
if (Array.isArray(args.edits)) {
|
|
204
|
+
for (const edit of args.edits) {
|
|
205
|
+
if (edit && typeof edit === "object") {
|
|
206
|
+
const obj = edit;
|
|
207
|
+
for (const key of ["newText", "newContent", "content", "replacement"]) {
|
|
208
|
+
const v = obj[key];
|
|
209
|
+
if (typeof v === "string" && v)
|
|
210
|
+
contents.push(v);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return contents;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Validate tool arguments against governance rules.
|
|
219
|
+
* Returns violation messages if any critical rule is violated.
|
|
220
|
+
*/
|
|
221
|
+
export function validateArgsAgainstRules(toolName, args) {
|
|
222
|
+
// Content-bearing write tools all route through here (not just write_file).
|
|
223
|
+
const contents = collectScannableContent(args);
|
|
224
|
+
if (contents.length === 0)
|
|
225
|
+
return null;
|
|
226
|
+
const filePath = args.path || "unknown.ts";
|
|
227
|
+
const violations = contents
|
|
228
|
+
.flatMap((content) => scanFileForViolations(filePath, content, { includeBypassable: false }))
|
|
229
|
+
.filter((v) => !v.rule.appliesToTools || v.rule.appliesToTools.includes(toolName));
|
|
230
|
+
if (violations.length === 0)
|
|
231
|
+
return null;
|
|
232
|
+
const details = violations.map(v => ` Line ${v.line}: ${v.match} (${v.rule.name} - ${v.rule.priority})`).join("\n");
|
|
233
|
+
const top = violations[0].rule;
|
|
234
|
+
return [
|
|
235
|
+
`[GOVERNANCE] ${top.priority} rule violation: ${top.name}`,
|
|
236
|
+
`${top.errorMessage}`,
|
|
237
|
+
"\nViolations:",
|
|
238
|
+
details,
|
|
239
|
+
].join("\n");
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Validate tool response for governance violations.
|
|
243
|
+
* Returns violation messages if found.
|
|
244
|
+
*/
|
|
245
|
+
export function validateResponseAgainstRules(toolName, responseText) {
|
|
246
|
+
// For file reads, check if the content contains PII or secrets
|
|
247
|
+
if (toolName === "read_file" && responseText.length > 0) {
|
|
248
|
+
const criticalRules = getNonBypassableRules();
|
|
249
|
+
for (const rule of criticalRules) {
|
|
250
|
+
if (!rule.detectPattern)
|
|
251
|
+
continue;
|
|
252
|
+
// Stateful /g regexes keep lastIndex between calls — reset it.
|
|
253
|
+
rule.detectPattern.lastIndex = 0;
|
|
254
|
+
if (rule.detectPattern.test(responseText)) {
|
|
255
|
+
return `[GOVERNANCE] ${rule.priority} violation detected in response: ${rule.name}. ${rule.errorMessage}`;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return null;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Build system prompt override block for CLI initialization.
|
|
263
|
+
* This is injected into the AI's system prompt at MCP connect time.
|
|
264
|
+
*/
|
|
265
|
+
export function buildSystemPromptOverride() {
|
|
266
|
+
const criticalRules = getRulesByPriority("CRITICAL");
|
|
267
|
+
const highRules = getRulesByPriority("HIGH");
|
|
268
|
+
return [
|
|
269
|
+
"## [ATABEY GOVERNANCE] Critical Rules — DO NOT OVERRIDE",
|
|
270
|
+
"",
|
|
271
|
+
"The following rules are ENFORCED by the Atabey Governance Layer.",
|
|
272
|
+
"They CANNOT be bypassed or disabled.",
|
|
273
|
+
"",
|
|
274
|
+
"### Critical Rules (Non-Bypassable)",
|
|
275
|
+
...criticalRules.map(r => `- 🔴 ${r.name}: ${r.description}`),
|
|
276
|
+
"",
|
|
277
|
+
"### High Priority Rules",
|
|
278
|
+
...highRules.map(r => `- 🟠 ${r.name}: ${r.description}`),
|
|
279
|
+
"",
|
|
280
|
+
"> These rules are injected at the MCP middleware layer and enforced",
|
|
281
|
+
"> at both pre-execution and post-execution stages.",
|
|
282
|
+
"",
|
|
283
|
+
].join("\n");
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Add a custom governance rule at runtime.
|
|
287
|
+
*/
|
|
288
|
+
export function addRule(rule) {
|
|
289
|
+
const map = getRulesMap();
|
|
290
|
+
if (!map.has(rule.id)) {
|
|
291
|
+
GOVERNANCE_RULES.push(rule);
|
|
292
|
+
map.set(rule.id, rule);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
export { GOVERNANCE_RULES as DefaultGovernanceRules };
|
|
296
|
+
//# sourceMappingURL=rules-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules-engine.js","sourceRoot":"","sources":["../../../../../../atabey-mcp/src/mcp/utils/rules-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ─── ASYNCHRONOUS TELEMETRY STREAMER ───────────────────────────────
|
|
3
|
+
*
|
|
4
|
+
* Streams local audit logs, metrics, and governance events to the
|
|
5
|
+
* central enterprise server asynchronously without blocking the
|
|
6
|
+
* developer's AI CLI workflow.
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Batch streaming (accumulates events, sends in batches)
|
|
10
|
+
* - Retry with exponential backoff
|
|
11
|
+
* - Queue persistence (survives process restarts)
|
|
12
|
+
* - Bandwidth throttling (max N events per minute)
|
|
13
|
+
* - PII masking before transmission (GDPR/KVKK)
|
|
14
|
+
* - Connection health monitoring
|
|
15
|
+
*
|
|
16
|
+
* Architecture:
|
|
17
|
+
* [Local MCP] → SQLite Queue → Batch Processor → HTTPS/WS → [Enterprise Server]
|
|
18
|
+
*
|
|
19
|
+
* [KVKK/GDPR] All PII is masked BEFORE leaving the local machine.
|
|
20
|
+
*/
|
|
21
|
+
declare const CONFIG: {
|
|
22
|
+
/** Enterprise server URL (e.g., https://atabey.company.com) */
|
|
23
|
+
SERVER_URL: string;
|
|
24
|
+
/** Auth token for enterprise server */
|
|
25
|
+
AUTH_TOKEN: string;
|
|
26
|
+
/** Max events per batch */
|
|
27
|
+
BATCH_SIZE: number;
|
|
28
|
+
/** Flush interval in ms */
|
|
29
|
+
FLUSH_INTERVAL_MS: number;
|
|
30
|
+
/** Max retries per batch */
|
|
31
|
+
MAX_RETRIES: number;
|
|
32
|
+
/** Retry base delay (exponential backoff) */
|
|
33
|
+
RETRY_BASE_DELAY_MS: number;
|
|
34
|
+
/** Max events per minute (throttle) */
|
|
35
|
+
MAX_EVENTS_PER_MINUTE: number;
|
|
36
|
+
/** Enable/disable telemetry */
|
|
37
|
+
ENABLED: boolean;
|
|
38
|
+
/** Use WebSocket for real-time streaming (fallback to HTTPS) */
|
|
39
|
+
USE_WEBSOCKET: boolean;
|
|
40
|
+
};
|
|
41
|
+
export interface TelemetryEvent {
|
|
42
|
+
id: string;
|
|
43
|
+
type: "tool_call" | "governance_violation" | "risk_blocked" | "approval" | "error" | "metric" | "heartbeat";
|
|
44
|
+
timestamp: string;
|
|
45
|
+
agent: string;
|
|
46
|
+
machineId: string;
|
|
47
|
+
projectHash: string;
|
|
48
|
+
payload: Record<string, unknown>;
|
|
49
|
+
}
|
|
50
|
+
export declare class TelemetryStreamer {
|
|
51
|
+
private static instance;
|
|
52
|
+
private queue;
|
|
53
|
+
private flushTimer;
|
|
54
|
+
private ws;
|
|
55
|
+
private wsReconnectTimer;
|
|
56
|
+
private eventCountThisMinute;
|
|
57
|
+
private minuteResetTimer;
|
|
58
|
+
private machineId;
|
|
59
|
+
private projectHash;
|
|
60
|
+
private isFlushing;
|
|
61
|
+
private constructor();
|
|
62
|
+
static getInstance(): TelemetryStreamer;
|
|
63
|
+
/**
|
|
64
|
+
* Start the telemetry streamer.
|
|
65
|
+
* Begins periodic flush and WebSocket connection if configured.
|
|
66
|
+
*/
|
|
67
|
+
start(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Stop the telemetry streamer.
|
|
70
|
+
*/
|
|
71
|
+
stop(): void;
|
|
72
|
+
/**
|
|
73
|
+
* Enqueue a telemetry event for streaming.
|
|
74
|
+
* Events are batched and sent asynchronously.
|
|
75
|
+
*/
|
|
76
|
+
enqueue(event: Omit<TelemetryEvent, "id" | "machineId" | "projectHash">): void;
|
|
77
|
+
/**
|
|
78
|
+
* Convenience method for logging tool calls.
|
|
79
|
+
*/
|
|
80
|
+
logToolCall(agent: string, toolName: string, tokens: number, traceId: string, durationMs: number): void;
|
|
81
|
+
/**
|
|
82
|
+
* Convenience method for logging governance violations.
|
|
83
|
+
*/
|
|
84
|
+
logGovernanceViolation(agent: string, toolName: string, error: string): void;
|
|
85
|
+
/**
|
|
86
|
+
* Convenience method for logging errors.
|
|
87
|
+
*/
|
|
88
|
+
logError(agent: string, action: string, error: string): void;
|
|
89
|
+
/**
|
|
90
|
+
* Flush queued events to the enterprise server.
|
|
91
|
+
*/
|
|
92
|
+
private flush;
|
|
93
|
+
/**
|
|
94
|
+
* Synchronous flush (for process exit).
|
|
95
|
+
*/
|
|
96
|
+
private flushSync;
|
|
97
|
+
/**
|
|
98
|
+
* Send a batch of events to the enterprise server via HTTPS.
|
|
99
|
+
*/
|
|
100
|
+
private sendBatch;
|
|
101
|
+
/**
|
|
102
|
+
* Connect to enterprise server via WebSocket for real-time streaming.
|
|
103
|
+
*/
|
|
104
|
+
private connectWebSocket;
|
|
105
|
+
/**
|
|
106
|
+
* Save event to local fallback file (when server is unreachable).
|
|
107
|
+
*/
|
|
108
|
+
private saveToLocalFallback;
|
|
109
|
+
/**
|
|
110
|
+
* Generate a unique machine ID.
|
|
111
|
+
*/
|
|
112
|
+
private generateMachineId;
|
|
113
|
+
/**
|
|
114
|
+
* Generate a project hash for grouping.
|
|
115
|
+
*/
|
|
116
|
+
private generateProjectHash;
|
|
117
|
+
/**
|
|
118
|
+
* Simple string hash.
|
|
119
|
+
*/
|
|
120
|
+
private simpleHash;
|
|
121
|
+
/**
|
|
122
|
+
* Get streamer status.
|
|
123
|
+
*/
|
|
124
|
+
getStatus(): {
|
|
125
|
+
enabled: boolean;
|
|
126
|
+
serverUrl: string;
|
|
127
|
+
queueSize: number;
|
|
128
|
+
wsConnected: boolean;
|
|
129
|
+
eventsThisMinute: number;
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
export declare const telemetryStreamer: TelemetryStreamer;
|
|
133
|
+
export { CONFIG as TelemetryConfig };
|