atabey 0.0.32 → 0.0.34
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/bin/cli.js +5 -5
- package/dist/atabey/src/cli/commands/check.js +4 -1
- package/dist/atabey/src/cli/commands/check.js.map +1 -1
- package/dist/atabey/src/cli/commands/dashboard.js +60 -21
- package/dist/atabey/src/cli/commands/dashboard.js.map +1 -1
- package/dist/atabey/src/cli/commands/hitl.d.ts +16 -0
- package/dist/atabey/src/cli/commands/hitl.js +152 -0
- package/dist/atabey/src/cli/commands/hitl.js.map +1 -0
- package/dist/atabey/src/cli/commands/init/languages.d.ts +33 -0
- package/dist/atabey/src/cli/commands/init/languages.js +114 -0
- package/dist/atabey/src/cli/commands/init/languages.js.map +1 -0
- package/dist/atabey/src/cli/commands/init/scaffold-app.d.ts +26 -0
- package/dist/atabey/src/cli/commands/init/scaffold-app.js +555 -0
- package/dist/atabey/src/cli/commands/init/scaffold-app.js.map +1 -0
- package/dist/atabey/src/cli/commands/init/scaffold-core.d.ts +1 -0
- package/dist/atabey/src/cli/commands/init/scaffold-core.js +1 -0
- package/dist/atabey/src/cli/commands/init/scaffold-core.js.map +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-standards.js +1 -0
- package/dist/atabey/src/cli/commands/init/scaffold-standards.js.map +1 -1
- package/dist/atabey/src/cli/commands/init.d.ts +3 -0
- package/dist/atabey/src/cli/commands/init.js +49 -20
- package/dist/atabey/src/cli/commands/init.js.map +1 -1
- package/dist/atabey/src/cli/commands/knowledge.js +37 -5
- package/dist/atabey/src/cli/commands/knowledge.js.map +1 -1
- package/dist/atabey/src/cli/commands/log.d.ts +4 -0
- package/dist/atabey/src/cli/commands/log.js +33 -1
- package/dist/atabey/src/cli/commands/log.js.map +1 -1
- package/dist/atabey/src/cli/commands/orchestrate.d.ts +6 -6
- package/dist/atabey/src/cli/index.js +68 -10
- package/dist/atabey/src/cli/index.js.map +1 -1
- package/dist/atabey/src/cli/platforms/core.d.ts +1 -1
- package/dist/atabey/src/cli/platforms/core.js +1 -0
- package/dist/atabey/src/cli/platforms/core.js.map +1 -1
- package/dist/atabey/src/cli/platforms/scaffold.js +4 -1
- package/dist/atabey/src/cli/platforms/scaffold.js.map +1 -1
- package/dist/atabey/src/cli/platforms/utils.js +7 -1
- package/dist/atabey/src/cli/platforms/utils.js.map +1 -1
- package/dist/atabey/src/cli/shims.js +10 -0
- package/dist/atabey/src/cli/shims.js.map +1 -1
- package/dist/atabey/src/cli/utils/config-schema.d.ts +1 -1
- package/dist/atabey/src/cli/utils/pkg.js +3 -4
- package/dist/atabey/src/cli/utils/pkg.js.map +1 -1
- package/dist/atabey/src/cli/utils/schemas.d.ts +10 -10
- package/dist/atabey/src/contracts/tasks.d.ts +2 -2
- package/dist/atabey/src/modules/agents/definitions.d.ts +2 -1
- package/dist/atabey/src/modules/agents/definitions.js +18 -0
- package/dist/atabey/src/modules/agents/definitions.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/native.js +14 -8
- package/dist/atabey/src/modules/agents/registry/native.js.map +1 -1
- package/dist/atabey/src/modules/contracts/api.d.ts +6 -6
- package/dist/atabey/src/modules/engines/quality-gate.js +4 -4
- package/dist/atabey/src/modules/engines/quality-gate.js.map +1 -1
- package/dist/atabey/src/modules/engines/risk-engine.js +10 -0
- package/dist/atabey/src/modules/engines/risk-engine.js.map +1 -1
- package/dist/atabey/src/modules/engines/routing-engine.js +8 -0
- package/dist/atabey/src/modules/engines/routing-engine.js.map +1 -1
- package/dist/atabey/src/modules/memory/core.js +12 -3
- package/dist/atabey/src/modules/memory/core.js.map +1 -1
- package/dist/atabey/src/modules/providers/definitions.js +51 -0
- package/dist/atabey/src/modules/providers/definitions.js.map +1 -1
- package/dist/atabey/src/modules/providers/types.d.ts +1 -1
- package/dist/atabey/src/modules/providers/types.js +1 -1
- package/dist/atabey/src/modules/providers/types.js.map +1 -1
- package/dist/atabey/src/modules/skills/adapter-skills.js +81 -0
- package/dist/atabey/src/modules/skills/adapter-skills.js.map +1 -1
- package/dist/atabey/src/shared/storage.d.ts +2 -149
- package/dist/atabey/src/shared/storage.js +2 -342
- package/dist/atabey/src/shared/storage.js.map +1 -1
- package/dist/shared/src/constants.d.ts +5 -2
- package/dist/shared/src/constants.js +5 -0
- package/dist/shared/src/constants.js.map +1 -1
- package/dist/shared/src/index.d.ts +1 -0
- package/dist/shared/src/index.js +1 -0
- package/dist/shared/src/index.js.map +1 -1
- package/dist/shared/src/lock.js +6 -3
- package/dist/shared/src/lock.js.map +1 -1
- package/dist/shared/src/pii.js +16 -12
- package/dist/shared/src/pii.js.map +1 -1
- package/dist/{atabey-mcp/src/shared → shared/src}/storage.d.ts +98 -0
- package/dist/shared/src/storage.js +724 -0
- package/dist/shared/src/storage.js.map +1 -0
- package/package.json +7 -7
- package/templates/standards/llm-governance.md +1 -0
- package/templates/standards/native-standards.md +67 -0
- package/dist/atabey/src/modules/engines/worker-script.d.ts +0 -8
- package/dist/atabey/src/modules/engines/worker-script.js +0 -99
- package/dist/atabey/src/modules/engines/worker-script.js.map +0 -1
- package/dist/atabey-mcp/src/mcp/utils/auth.d.ts +0 -40
- package/dist/atabey-mcp/src/mcp/utils/auth.js +0 -154
- package/dist/atabey-mcp/src/mcp/utils/auth.js.map +0 -1
- package/dist/atabey-mcp/src/mcp/utils/auto-rollback.d.ts +0 -71
- package/dist/atabey-mcp/src/mcp/utils/auto-rollback.js +0 -375
- package/dist/atabey-mcp/src/mcp/utils/auto-rollback.js.map +0 -1
- package/dist/atabey-mcp/src/mcp/utils/context-optimizer.d.ts +0 -110
- package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js +0 -391
- package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js.map +0 -1
- package/dist/atabey-mcp/src/mcp/utils/discipline.d.ts +0 -69
- package/dist/atabey-mcp/src/mcp/utils/discipline.js +0 -257
- package/dist/atabey-mcp/src/mcp/utils/discipline.js.map +0 -1
- package/dist/atabey-mcp/src/mcp/utils/finops.d.ts +0 -139
- package/dist/atabey-mcp/src/mcp/utils/finops.js +0 -324
- package/dist/atabey-mcp/src/mcp/utils/finops.js.map +0 -1
- package/dist/atabey-mcp/src/mcp/utils/license-scanner.d.ts +0 -71
- package/dist/atabey-mcp/src/mcp/utils/license-scanner.js +0 -284
- package/dist/atabey-mcp/src/mcp/utils/license-scanner.js.map +0 -1
- package/dist/atabey-mcp/src/mcp/utils/loop-detector.d.ts +0 -106
- package/dist/atabey-mcp/src/mcp/utils/loop-detector.js +0 -413
- package/dist/atabey-mcp/src/mcp/utils/loop-detector.js.map +0 -1
- package/dist/atabey-mcp/src/mcp/utils/memory.d.ts +0 -3
- package/dist/atabey-mcp/src/mcp/utils/memory.js +0 -75
- package/dist/atabey-mcp/src/mcp/utils/memory.js.map +0 -1
- package/dist/atabey-mcp/src/mcp/utils/rules-engine.d.ts +0 -78
- package/dist/atabey-mcp/src/mcp/utils/rules-engine.js +0 -232
- package/dist/atabey-mcp/src/mcp/utils/rules-engine.js.map +0 -1
- package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.d.ts +0 -133
- package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.js +0 -397
- package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.js.map +0 -1
- package/dist/atabey-mcp/src/shared/logger.d.ts +0 -1
- package/dist/atabey-mcp/src/shared/logger.js +0 -2
- package/dist/atabey-mcp/src/shared/logger.js.map +0 -1
- package/dist/atabey-mcp/src/shared/pii.d.ts +0 -1
- package/dist/atabey-mcp/src/shared/pii.js +0 -2
- package/dist/atabey-mcp/src/shared/pii.js.map +0 -1
- package/dist/atabey-mcp/src/shared/storage.js +0 -346
- package/dist/atabey-mcp/src/shared/storage.js.map +0 -1
- package/dist/atabey-mcp/src/shared/types.d.ts +0 -1
- package/dist/atabey-mcp/src/shared/types.js +0 -2
- package/dist/atabey-mcp/src/shared/types.js.map +0 -1
- package/dist/src/cli/commands/approve.d.ts +0 -1
- package/dist/src/cli/commands/approve.js +0 -64
- package/dist/src/cli/commands/approve.js.map +0 -1
- package/dist/src/cli/commands/check.d.ts +0 -1
- package/dist/src/cli/commands/check.js +0 -339
- package/dist/src/cli/commands/check.js.map +0 -1
- package/dist/src/cli/commands/compliance.d.ts +0 -5
- package/dist/src/cli/commands/compliance.js +0 -43
- package/dist/src/cli/commands/compliance.js.map +0 -1
- package/dist/src/cli/commands/contract.d.ts +0 -10
- package/dist/src/cli/commands/contract.js +0 -52
- package/dist/src/cli/commands/contract.js.map +0 -1
- package/dist/src/cli/commands/coverage.d.ts +0 -1
- package/dist/src/cli/commands/coverage.js +0 -121
- package/dist/src/cli/commands/coverage.js.map +0 -1
- package/dist/src/cli/commands/dashboard.d.ts +0 -5
- package/dist/src/cli/commands/dashboard.js +0 -753
- package/dist/src/cli/commands/dashboard.js.map +0 -1
- package/dist/src/cli/commands/explorer.d.ts +0 -2
- package/dist/src/cli/commands/explorer.js +0 -44
- package/dist/src/cli/commands/explorer.js.map +0 -1
- package/dist/src/cli/commands/git.d.ts +0 -2
- package/dist/src/cli/commands/git.js +0 -40
- package/dist/src/cli/commands/git.js.map +0 -1
- package/dist/src/cli/commands/index-codebase.d.ts +0 -4
- package/dist/src/cli/commands/index-codebase.js +0 -63
- package/dist/src/cli/commands/index-codebase.js.map +0 -1
- package/dist/src/cli/commands/init/create-agent.d.ts +0 -4
- package/dist/src/cli/commands/init/create-agent.js +0 -59
- package/dist/src/cli/commands/init/create-agent.js.map +0 -1
- package/dist/src/cli/commands/init/scaffold-core.d.ts +0 -13
- package/dist/src/cli/commands/init/scaffold-core.js +0 -188
- package/dist/src/cli/commands/init/scaffold-core.js.map +0 -1
- package/dist/src/cli/commands/init/scaffold-docs.d.ts +0 -4
- package/dist/src/cli/commands/init/scaffold-docs.js +0 -36
- package/dist/src/cli/commands/init/scaffold-docs.js.map +0 -1
- package/dist/src/cli/commands/init/scaffold-ops.d.ts +0 -1
- package/dist/src/cli/commands/init/scaffold-ops.js +0 -81
- package/dist/src/cli/commands/init/scaffold-ops.js.map +0 -1
- package/dist/src/cli/commands/init/scaffold-standards.d.ts +0 -2
- package/dist/src/cli/commands/init/scaffold-standards.js +0 -84
- package/dist/src/cli/commands/init/scaffold-standards.js.map +0 -1
- package/dist/src/cli/commands/init.d.ts +0 -11
- package/dist/src/cli/commands/init.js +0 -371
- package/dist/src/cli/commands/init.js.map +0 -1
- package/dist/src/cli/commands/knowledge.d.ts +0 -2
- package/dist/src/cli/commands/knowledge.js +0 -16
- package/dist/src/cli/commands/knowledge.js.map +0 -1
- package/dist/src/cli/commands/lint.d.ts +0 -4
- package/dist/src/cli/commands/lint.js +0 -24
- package/dist/src/cli/commands/lint.js.map +0 -1
- package/dist/src/cli/commands/log.d.ts +0 -10
- package/dist/src/cli/commands/log.js +0 -14
- package/dist/src/cli/commands/log.js.map +0 -1
- package/dist/src/cli/commands/mcp.d.ts +0 -11
- package/dist/src/cli/commands/mcp.js +0 -128
- package/dist/src/cli/commands/mcp.js.map +0 -1
- package/dist/src/cli/commands/memory.d.ts +0 -1
- package/dist/src/cli/commands/memory.js +0 -5
- package/dist/src/cli/commands/memory.js.map +0 -1
- package/dist/src/cli/commands/orchestrate.d.ts +0 -62
- package/dist/src/cli/commands/orchestrate.js +0 -263
- package/dist/src/cli/commands/orchestrate.js.map +0 -1
- package/dist/src/cli/commands/plan.d.ts +0 -11
- package/dist/src/cli/commands/plan.js +0 -120
- package/dist/src/cli/commands/plan.js.map +0 -1
- package/dist/src/cli/commands/quickstart.d.ts +0 -9
- package/dist/src/cli/commands/quickstart.js +0 -60
- package/dist/src/cli/commands/quickstart.js.map +0 -1
- package/dist/src/cli/commands/script.d.ts +0 -1
- package/dist/src/cli/commands/script.js +0 -28
- package/dist/src/cli/commands/script.js.map +0 -1
- package/dist/src/cli/commands/security.d.ts +0 -1
- package/dist/src/cli/commands/security.js +0 -34
- package/dist/src/cli/commands/security.js.map +0 -1
- package/dist/src/cli/commands/status.d.ts +0 -4
- package/dist/src/cli/commands/status.js +0 -122
- package/dist/src/cli/commands/status.js.map +0 -1
- package/dist/src/cli/commands/trace.d.ts +0 -10
- package/dist/src/cli/commands/trace.js +0 -108
- package/dist/src/cli/commands/trace.js.map +0 -1
- package/dist/src/cli/index.d.ts +0 -2
- package/dist/src/cli/index.js +0 -289
- package/dist/src/cli/index.js.map +0 -1
- package/dist/src/cli/platforms/core.d.ts +0 -16
- package/dist/src/cli/platforms/core.js +0 -77
- package/dist/src/cli/platforms/core.js.map +0 -1
- package/dist/src/cli/platforms/index.d.ts +0 -5
- package/dist/src/cli/platforms/index.js +0 -6
- package/dist/src/cli/platforms/index.js.map +0 -1
- package/dist/src/cli/platforms/paths.d.ts +0 -15
- package/dist/src/cli/platforms/paths.js +0 -102
- package/dist/src/cli/platforms/paths.js.map +0 -1
- package/dist/src/cli/platforms/scaffold.d.ts +0 -2
- package/dist/src/cli/platforms/scaffold.js +0 -73
- package/dist/src/cli/platforms/scaffold.js.map +0 -1
- package/dist/src/cli/platforms/utils.d.ts +0 -4
- package/dist/src/cli/platforms/utils.js +0 -76
- package/dist/src/cli/platforms/utils.js.map +0 -1
- package/dist/src/cli/shims.d.ts +0 -1
- package/dist/src/cli/shims.js +0 -67
- package/dist/src/cli/shims.js.map +0 -1
- package/dist/src/cli/utils/claude.d.ts +0 -8
- package/dist/src/cli/utils/claude.js +0 -58
- package/dist/src/cli/utils/claude.js.map +0 -1
- package/dist/src/cli/utils/compliance.d.ts +0 -42
- package/dist/src/cli/utils/compliance.js +0 -150
- package/dist/src/cli/utils/compliance.js.map +0 -1
- package/dist/src/cli/utils/config-schema.d.ts +0 -256
- package/dist/src/cli/utils/config-schema.js +0 -67
- package/dist/src/cli/utils/config-schema.js.map +0 -1
- package/dist/src/cli/utils/fs.d.ts +0 -10
- package/dist/src/cli/utils/fs.js +0 -139
- package/dist/src/cli/utils/fs.js.map +0 -1
- package/dist/src/cli/utils/i18n.d.ts +0 -21
- package/dist/src/cli/utils/i18n.js +0 -36
- package/dist/src/cli/utils/i18n.js.map +0 -1
- package/dist/src/cli/utils/memory.d.ts +0 -45
- package/dist/src/cli/utils/memory.js +0 -339
- package/dist/src/cli/utils/memory.js.map +0 -1
- package/dist/src/cli/utils/pkg.d.ts +0 -42
- package/dist/src/cli/utils/pkg.js +0 -281
- package/dist/src/cli/utils/pkg.js.map +0 -1
- package/dist/src/cli/utils/quality.d.ts +0 -25
- package/dist/src/cli/utils/quality.js +0 -61
- package/dist/src/cli/utils/quality.js.map +0 -1
- package/dist/src/cli/utils/schemas.d.ts +0 -49
- package/dist/src/cli/utils/schemas.js +0 -20
- package/dist/src/cli/utils/schemas.js.map +0 -1
- package/dist/src/cli/utils/string.d.ts +0 -7
- package/dist/src/cli/utils/string.js +0 -50
- package/dist/src/cli/utils/string.js.map +0 -1
- package/dist/src/cli/utils/time.d.ts +0 -2
- package/dist/src/cli/utils/time.js +0 -28
- package/dist/src/cli/utils/time.js.map +0 -1
- package/dist/src/cli/utils/ui.d.ts +0 -53
- package/dist/src/cli/utils/ui.js +0 -101
- package/dist/src/cli/utils/ui.js.map +0 -1
- package/dist/src/cli/utils/validate-registry.d.ts +0 -4
- package/dist/src/cli/utils/validate-registry.js +0 -130
- package/dist/src/cli/utils/validate-registry.js.map +0 -1
- package/dist/src/contracts/index.d.ts +0 -1
- package/dist/src/contracts/index.js +0 -2
- package/dist/src/contracts/index.js.map +0 -1
- package/dist/src/contracts/tasks.d.ts +0 -44
- package/dist/src/contracts/tasks.js +0 -21
- package/dist/src/contracts/tasks.js.map +0 -1
- package/dist/src/modules/agents/definitions.d.ts +0 -26
- package/dist/src/modules/agents/definitions.js +0 -559
- package/dist/src/modules/agents/definitions.js.map +0 -1
- package/dist/src/modules/agents/registry/analyst.d.ts +0 -2
- package/dist/src/modules/agents/registry/analyst.js +0 -40
- package/dist/src/modules/agents/registry/analyst.js.map +0 -1
- package/dist/src/modules/agents/registry/architect.d.ts +0 -2
- package/dist/src/modules/agents/registry/architect.js +0 -43
- package/dist/src/modules/agents/registry/architect.js.map +0 -1
- package/dist/src/modules/agents/registry/backend.d.ts +0 -2
- package/dist/src/modules/agents/registry/backend.js +0 -51
- package/dist/src/modules/agents/registry/backend.js.map +0 -1
- package/dist/src/modules/agents/registry/database.d.ts +0 -2
- package/dist/src/modules/agents/registry/database.js +0 -46
- package/dist/src/modules/agents/registry/database.js.map +0 -1
- package/dist/src/modules/agents/registry/devops.d.ts +0 -2
- package/dist/src/modules/agents/registry/devops.js +0 -46
- package/dist/src/modules/agents/registry/devops.js.map +0 -1
- package/dist/src/modules/agents/registry/explorer.d.ts +0 -2
- package/dist/src/modules/agents/registry/explorer.js +0 -38
- package/dist/src/modules/agents/registry/explorer.js.map +0 -1
- package/dist/src/modules/agents/registry/frontend.d.ts +0 -2
- package/dist/src/modules/agents/registry/frontend.js +0 -53
- package/dist/src/modules/agents/registry/frontend.js.map +0 -1
- package/dist/src/modules/agents/registry/git.d.ts +0 -2
- package/dist/src/modules/agents/registry/git.js +0 -37
- package/dist/src/modules/agents/registry/git.js.map +0 -1
- package/dist/src/modules/agents/registry/manager.d.ts +0 -2
- package/dist/src/modules/agents/registry/manager.js +0 -65
- package/dist/src/modules/agents/registry/manager.js.map +0 -1
- package/dist/src/modules/agents/registry/mobile.d.ts +0 -2
- package/dist/src/modules/agents/registry/mobile.js +0 -42
- package/dist/src/modules/agents/registry/mobile.js.map +0 -1
- package/dist/src/modules/agents/registry/native.d.ts +0 -2
- package/dist/src/modules/agents/registry/native.js +0 -42
- package/dist/src/modules/agents/registry/native.js.map +0 -1
- package/dist/src/modules/agents/registry/quality.d.ts +0 -2
- package/dist/src/modules/agents/registry/quality.js +0 -44
- package/dist/src/modules/agents/registry/quality.js.map +0 -1
- package/dist/src/modules/agents/registry/security.d.ts +0 -2
- package/dist/src/modules/agents/registry/security.js +0 -43
- package/dist/src/modules/agents/registry/security.js.map +0 -1
- package/dist/src/modules/agents/types.d.ts +0 -33
- package/dist/src/modules/agents/types.js +0 -2
- package/dist/src/modules/agents/types.js.map +0 -1
- package/dist/src/modules/contracts/api.d.ts +0 -178
- package/dist/src/modules/contracts/api.js +0 -56
- package/dist/src/modules/contracts/api.js.map +0 -1
- package/dist/src/modules/contracts/index.d.ts +0 -5
- package/dist/src/modules/contracts/index.js +0 -6
- package/dist/src/modules/contracts/index.js.map +0 -1
- package/dist/src/modules/engines/agent-executor.d.ts +0 -46
- package/dist/src/modules/engines/agent-executor.js +0 -241
- package/dist/src/modules/engines/agent-executor.js.map +0 -1
- package/dist/src/modules/engines/agent-loop.d.ts +0 -34
- package/dist/src/modules/engines/agent-loop.js +0 -102
- package/dist/src/modules/engines/agent-loop.js.map +0 -1
- package/dist/src/modules/engines/contract-engine.d.ts +0 -46
- package/dist/src/modules/engines/contract-engine.js +0 -116
- package/dist/src/modules/engines/contract-engine.js.map +0 -1
- package/dist/src/modules/engines/crud-governance.d.ts +0 -66
- package/dist/src/modules/engines/crud-governance.js +0 -219
- package/dist/src/modules/engines/crud-governance.js.map +0 -1
- package/dist/src/modules/engines/discovery-engine.d.ts +0 -42
- package/dist/src/modules/engines/discovery-engine.js +0 -161
- package/dist/src/modules/engines/discovery-engine.js.map +0 -1
- package/dist/src/modules/engines/evaluation-engine.d.ts +0 -18
- package/dist/src/modules/engines/evaluation-engine.js +0 -171
- package/dist/src/modules/engines/evaluation-engine.js.map +0 -1
- package/dist/src/modules/engines/file-lock.d.ts +0 -41
- package/dist/src/modules/engines/file-lock.js +0 -168
- package/dist/src/modules/engines/file-lock.js.map +0 -1
- package/dist/src/modules/engines/health-engine.d.ts +0 -22
- package/dist/src/modules/engines/health-engine.js +0 -127
- package/dist/src/modules/engines/health-engine.js.map +0 -1
- package/dist/src/modules/engines/phase-engine.d.ts +0 -82
- package/dist/src/modules/engines/phase-engine.js +0 -211
- package/dist/src/modules/engines/phase-engine.js.map +0 -1
- package/dist/src/modules/engines/planning-engine.d.ts +0 -25
- package/dist/src/modules/engines/planning-engine.js +0 -80
- package/dist/src/modules/engines/planning-engine.js.map +0 -1
- package/dist/src/modules/engines/policy-engine.d.ts +0 -63
- package/dist/src/modules/engines/policy-engine.js +0 -186
- package/dist/src/modules/engines/policy-engine.js.map +0 -1
- package/dist/src/modules/engines/quality-gate.d.ts +0 -31
- package/dist/src/modules/engines/quality-gate.js +0 -95
- package/dist/src/modules/engines/quality-gate.js.map +0 -1
- package/dist/src/modules/engines/risk-engine.d.ts +0 -34
- package/dist/src/modules/engines/risk-engine.js +0 -201
- package/dist/src/modules/engines/risk-engine.js.map +0 -1
- package/dist/src/modules/engines/routing-engine.d.ts +0 -96
- package/dist/src/modules/engines/routing-engine.js +0 -505
- package/dist/src/modules/engines/routing-engine.js.map +0 -1
- package/dist/src/modules/engines/session-engine.d.ts +0 -68
- package/dist/src/modules/engines/session-engine.js +0 -141
- package/dist/src/modules/engines/session-engine.js.map +0 -1
- package/dist/src/modules/engines/types.d.ts +0 -51
- package/dist/src/modules/engines/types.js +0 -2
- package/dist/src/modules/engines/types.js.map +0 -1
- package/dist/src/modules/memory/core.d.ts +0 -42
- package/dist/src/modules/memory/core.js +0 -100
- package/dist/src/modules/memory/core.js.map +0 -1
- package/dist/src/modules/memory/embedding.d.ts +0 -28
- package/dist/src/modules/memory/embedding.js +0 -131
- package/dist/src/modules/memory/embedding.js.map +0 -1
- package/dist/src/modules/memory/types.d.ts +0 -18
- package/dist/src/modules/memory/types.js +0 -2
- package/dist/src/modules/memory/types.js.map +0 -1
- package/dist/src/modules/memory/vector-store.d.ts +0 -13
- package/dist/src/modules/memory/vector-store.js +0 -75
- package/dist/src/modules/memory/vector-store.js.map +0 -1
- package/dist/src/modules/providers/definitions.d.ts +0 -9
- package/dist/src/modules/providers/definitions.js +0 -141
- package/dist/src/modules/providers/definitions.js.map +0 -1
- package/dist/src/modules/providers/llm-provider.d.ts +0 -87
- package/dist/src/modules/providers/llm-provider.js +0 -242
- package/dist/src/modules/providers/llm-provider.js.map +0 -1
- package/dist/src/modules/providers/registry.d.ts +0 -12
- package/dist/src/modules/providers/registry.js +0 -19
- package/dist/src/modules/providers/registry.js.map +0 -1
- package/dist/src/modules/providers/shared.d.ts +0 -1
- package/dist/src/modules/providers/shared.js +0 -104
- package/dist/src/modules/providers/shared.js.map +0 -1
- package/dist/src/modules/providers/types.d.ts +0 -14
- package/dist/src/modules/providers/types.js +0 -2
- package/dist/src/modules/providers/types.js.map +0 -1
- package/dist/src/modules/skills/adapter-skills.d.ts +0 -70
- package/dist/src/modules/skills/adapter-skills.js +0 -450
- package/dist/src/modules/skills/adapter-skills.js.map +0 -1
- package/dist/src/modules/skills/definitions.d.ts +0 -48
- package/dist/src/modules/skills/definitions.js +0 -71
- package/dist/src/modules/skills/definitions.js.map +0 -1
- package/dist/src/shared/audit.d.ts +0 -1
- package/dist/src/shared/audit.js +0 -2
- package/dist/src/shared/audit.js.map +0 -1
- package/dist/src/shared/constants.d.ts +0 -1
- package/dist/src/shared/constants.js +0 -2
- package/dist/src/shared/constants.js.map +0 -1
- package/dist/src/shared/errors.d.ts +0 -1
- package/dist/src/shared/errors.js +0 -2
- package/dist/src/shared/errors.js.map +0 -1
- package/dist/src/shared/fs.d.ts +0 -1
- package/dist/src/shared/fs.js +0 -2
- package/dist/src/shared/fs.js.map +0 -1
- package/dist/src/shared/lock.d.ts +0 -1
- package/dist/src/shared/lock.js +0 -2
- package/dist/src/shared/lock.js.map +0 -1
- package/dist/src/shared/logger.d.ts +0 -1
- package/dist/src/shared/logger.js +0 -2
- package/dist/src/shared/logger.js.map +0 -1
- package/dist/src/shared/pii.d.ts +0 -1
- package/dist/src/shared/pii.js +0 -2
- package/dist/src/shared/pii.js.map +0 -1
- package/dist/src/shared/retention.d.ts +0 -1
- package/dist/src/shared/retention.js +0 -2
- package/dist/src/shared/retention.js.map +0 -1
- package/dist/src/shared/storage.d.ts +0 -141
- package/dist/src/shared/storage.js +0 -332
- package/dist/src/shared/storage.js.map +0 -1
- package/dist/src/shared/string.d.ts +0 -1
- package/dist/src/shared/string.js +0 -2
- package/dist/src/shared/string.js.map +0 -1
- package/dist/src/shared/types.d.ts +0 -1
- package/dist/src/shared/types.js +0 -2
- package/dist/src/shared/types.js.map +0 -1
|
@@ -1,257 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ─── AI DISCIPLINE ENGINE ─────────────────────────────────────────
|
|
3
|
-
*
|
|
4
|
-
* Enforces strict rules on AI behavior at the MCP middleware layer.
|
|
5
|
-
* Unlike agent instructions (which AI can ignore), these are enforced
|
|
6
|
-
* at the tool level - AI cannot bypass them.
|
|
7
|
-
*
|
|
8
|
-
* Features:
|
|
9
|
-
* - Tool call rate limiting (prevents abuse)
|
|
10
|
-
* - File size limits (prevents reading/writing huge files)
|
|
11
|
-
* - Call frequency tracking (detects loops)
|
|
12
|
-
* - Tool blacklist per agent
|
|
13
|
-
* - Agent-based tool whitelist
|
|
14
|
-
* - Response content validation
|
|
15
|
-
* - Max concurrent operations
|
|
16
|
-
*/
|
|
17
|
-
import fs from "fs";
|
|
18
|
-
import path from "path";
|
|
19
|
-
// Per-agent discipline tracking
|
|
20
|
-
const agentDiscipline = new Map();
|
|
21
|
-
// ─── Configuration (from env or defaults) ─────────────────────────
|
|
22
|
-
const CONFIG = {
|
|
23
|
-
MAX_CALLS_PER_MINUTE: parseInt(process.env.MCP_MAX_CALLS_PER_MINUTE || "60", 10),
|
|
24
|
-
MAX_TOTAL_CALLS: parseInt(process.env.MCP_MAX_TOTAL_CALLS || "500", 10),
|
|
25
|
-
MAX_FILE_SIZE: parseInt(process.env.MCP_MAX_FILE_SIZE || "1048576", 10),
|
|
26
|
-
MAX_ARGS_SIZE: parseInt(process.env.MCP_MAX_ARGS_SIZE || "102400", 10),
|
|
27
|
-
COOLDOWN_MS: parseInt(process.env.MCP_COOLDOWN_MS || "30000", 10),
|
|
28
|
-
MAX_RESPONSE_SIZE: parseInt(process.env.MCP_MAX_RESPONSE_SIZE || "512000", 10), // 500KB max response
|
|
29
|
-
MAX_CONSECUTIVE_SAME_TOOL: parseInt(process.env.MCP_MAX_CONSECUTIVE_SAME_TOOL || "10", 10),
|
|
30
|
-
RESTRICTED_TOOLS: (process.env.MCP_RESTRICTED_TOOLS || "")
|
|
31
|
-
.split(",").map(t => t.trim()).filter(Boolean),
|
|
32
|
-
// Agent-based tool whitelist (format: agent1:tool1,tool2;agent2:tool3,tool4)
|
|
33
|
-
AGENT_TOOL_WHITELIST: parseAgentWhitelist(process.env.MCP_AGENT_TOOL_WHITELIST || ""),
|
|
34
|
-
};
|
|
35
|
-
function parseAgentWhitelist(input) {
|
|
36
|
-
const map = new Map();
|
|
37
|
-
if (!input)
|
|
38
|
-
return map;
|
|
39
|
-
input.split(";").forEach(pair => {
|
|
40
|
-
const [agent, tools] = pair.split(":");
|
|
41
|
-
if (agent && tools) {
|
|
42
|
-
map.set(agent.trim(), new Set(tools.split(",").map(t => t.trim())));
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
return map;
|
|
46
|
-
}
|
|
47
|
-
const cooldowns = new Map();
|
|
48
|
-
function getOrCreateAgent(agent) {
|
|
49
|
-
if (!agentDiscipline.has(agent)) {
|
|
50
|
-
const whitelist = CONFIG.AGENT_TOOL_WHITELIST.get(agent) || null;
|
|
51
|
-
agentDiscipline.set(agent, {
|
|
52
|
-
totalCalls: 0,
|
|
53
|
-
calls: [],
|
|
54
|
-
lastReset: Date.now(),
|
|
55
|
-
blacklistedTools: new Set(),
|
|
56
|
-
whitelistedTools: whitelist,
|
|
57
|
-
violations: 0,
|
|
58
|
-
lastViolation: null,
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
return agentDiscipline.get(agent);
|
|
62
|
-
}
|
|
63
|
-
function pruneOldCalls(agent, windowMs = 60000) {
|
|
64
|
-
const cutoff = Date.now() - windowMs;
|
|
65
|
-
agent.calls = agent.calls.filter(c => c.timestamp > cutoff);
|
|
66
|
-
}
|
|
67
|
-
function isInCooldown(agent) {
|
|
68
|
-
const until = cooldowns.get(agent);
|
|
69
|
-
if (!until)
|
|
70
|
-
return false;
|
|
71
|
-
if (Date.now() > until) {
|
|
72
|
-
cooldowns.delete(agent);
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
function recordViolation(agent, reason) {
|
|
78
|
-
const discipline = agentDiscipline.get(agent);
|
|
79
|
-
if (discipline) {
|
|
80
|
-
discipline.violations++;
|
|
81
|
-
discipline.lastViolation = reason;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Enforce discipline on a tool call before execution.
|
|
86
|
-
* Returns error message if blocked, null if allowed.
|
|
87
|
-
*/
|
|
88
|
-
export async function enforceDiscipline(agent, toolName, args) {
|
|
89
|
-
const discipline = getOrCreateAgent(agent);
|
|
90
|
-
// 1. Check cooldown
|
|
91
|
-
if (isInCooldown(agent)) {
|
|
92
|
-
const until = cooldowns.get(agent);
|
|
93
|
-
const remaining = Math.ceil((until - Date.now()) / 1000);
|
|
94
|
-
return `[DISCIPLINE] Agent ${agent} is in cooldown for ${remaining}s. Too many requests.`;
|
|
95
|
-
}
|
|
96
|
-
// 2. Check restricted tools (global blacklist)
|
|
97
|
-
if (CONFIG.RESTRICTED_TOOLS.includes(toolName)) {
|
|
98
|
-
recordViolation(agent, `Attempted to use restricted tool: ${toolName}`);
|
|
99
|
-
return `[DISCIPLINE] Tool "${toolName}" is restricted. Agent ${agent} cannot use it.`;
|
|
100
|
-
}
|
|
101
|
-
// 3. Check agent-specific whitelist
|
|
102
|
-
if (discipline.whitelistedTools && !discipline.whitelistedTools.has(toolName)) {
|
|
103
|
-
recordViolation(agent, `Attempted to use non-whitelisted tool: ${toolName}`);
|
|
104
|
-
const allowed = Array.from(discipline.whitelistedTools).join(", ");
|
|
105
|
-
return `[DISCIPLINE] Agent ${agent} is not allowed to use "${toolName}". Allowed tools: ${allowed}`;
|
|
106
|
-
}
|
|
107
|
-
// 4. Check total call limit
|
|
108
|
-
if (discipline.totalCalls >= CONFIG.MAX_TOTAL_CALLS) {
|
|
109
|
-
cooldowns.set(agent, Date.now() + CONFIG.COOLDOWN_MS);
|
|
110
|
-
recordViolation(agent, `Exceeded max total calls (${CONFIG.MAX_TOTAL_CALLS})`);
|
|
111
|
-
return `[DISCIPLINE] Agent ${agent} exceeded max total calls (${CONFIG.MAX_TOTAL_CALLS}). Cooldown ${CONFIG.COOLDOWN_MS / 1000}s.`;
|
|
112
|
-
}
|
|
113
|
-
// 5. Check rate limit (calls per minute)
|
|
114
|
-
pruneOldCalls(discipline);
|
|
115
|
-
if (discipline.calls.length >= CONFIG.MAX_CALLS_PER_MINUTE) {
|
|
116
|
-
cooldowns.set(agent, Date.now() + CONFIG.COOLDOWN_MS);
|
|
117
|
-
recordViolation(agent, `Rate limit exceeded (${CONFIG.MAX_CALLS_PER_MINUTE}/min)`);
|
|
118
|
-
return `[DISCIPLINE] Agent ${agent} exceeded rate limit (${CONFIG.MAX_CALLS_PER_MINUTE}/min). Cooldown ${CONFIG.COOLDOWN_MS / 1000}s.`;
|
|
119
|
-
}
|
|
120
|
-
// 6. Check consecutive same tool (prevents loops)
|
|
121
|
-
if (discipline.calls.length >= CONFIG.MAX_CONSECUTIVE_SAME_TOOL) {
|
|
122
|
-
const lastCalls = discipline.calls.slice(-CONFIG.MAX_CONSECUTIVE_SAME_TOOL);
|
|
123
|
-
const allSame = lastCalls.every(c => c.tool === toolName);
|
|
124
|
-
if (allSame) {
|
|
125
|
-
cooldowns.set(agent, Date.now() + CONFIG.COOLDOWN_MS);
|
|
126
|
-
recordViolation(agent, `Consecutive same tool limit: ${toolName} x${CONFIG.MAX_CONSECUTIVE_SAME_TOOL}`);
|
|
127
|
-
return `[DISCIPLINE] Agent ${agent} called "${toolName}" ${CONFIG.MAX_CONSECUTIVE_SAME_TOOL} times in a row. Possible loop. Cooldown.`;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
// 7. Check args size
|
|
131
|
-
const argsStr = JSON.stringify(args);
|
|
132
|
-
if (argsStr.length > CONFIG.MAX_ARGS_SIZE) {
|
|
133
|
-
recordViolation(agent, `Args too large: ${argsStr.length} bytes`);
|
|
134
|
-
return `[DISCIPLINE] Tool call args too large (${argsStr.length} bytes, max: ${CONFIG.MAX_ARGS_SIZE}).`;
|
|
135
|
-
}
|
|
136
|
-
// 8. Check file size for read/write operations
|
|
137
|
-
if ((toolName === "read_file" || toolName === "write_file") && args.path) {
|
|
138
|
-
try {
|
|
139
|
-
const projectRoot = process.env.ATABEY_PROJECT_ROOT || process.cwd();
|
|
140
|
-
const filePath = path.resolve(projectRoot, args.path);
|
|
141
|
-
if (fs.existsSync(filePath)) {
|
|
142
|
-
const stat = fs.statSync(filePath);
|
|
143
|
-
if (stat.size > CONFIG.MAX_FILE_SIZE) {
|
|
144
|
-
return `[DISCIPLINE] File too large (${(stat.size / 1024 / 1024).toFixed(1)}MB, max: ${(CONFIG.MAX_FILE_SIZE / 1024 / 1024).toFixed(1)}MB). Use grep_search instead.`;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
catch { /* ignore */ }
|
|
149
|
-
}
|
|
150
|
-
// Record the call
|
|
151
|
-
discipline.totalCalls++;
|
|
152
|
-
discipline.calls.push({
|
|
153
|
-
tool: toolName,
|
|
154
|
-
timestamp: Date.now(),
|
|
155
|
-
argsSize: argsStr.length,
|
|
156
|
-
});
|
|
157
|
-
return null;
|
|
158
|
-
}
|
|
159
|
-
// ─── Prompt Injection Patterns ─────────────────────────────────────────────
|
|
160
|
-
// Common adversarial patterns that attempt to override agent instructions.
|
|
161
|
-
// These are checked in tool responses to prevent exfiltrated injection payloads
|
|
162
|
-
// (e.g. from malicious file content, API responses, or external user input)
|
|
163
|
-
// from reaching the AI and overriding the system prompt.
|
|
164
|
-
const PROMPT_INJECTION_PATTERNS = [
|
|
165
|
-
{ pattern: /ignore\s+(previous|prior|above|all)\s+instructions?/i, label: "ignore-instructions" },
|
|
166
|
-
{ pattern: /disregard\s+(previous|prior|above|all)\s+instructions?/i, label: "disregard-instructions" },
|
|
167
|
-
{ pattern: /forget\s+(everything|all|prior|previous)/i, label: "forget-prior" },
|
|
168
|
-
{ pattern: /you\s+are\s+now\s+(a|an)\s+/i, label: "persona-override" },
|
|
169
|
-
{ pattern: /\bsystem\s*:\s*(you|your|ignore|forget|act)/i, label: "system-prompt-inject" },
|
|
170
|
-
{ pattern: /\bnew\s+instructions?\s*:/i, label: "new-instructions" },
|
|
171
|
-
{ pattern: /\bact\s+as\s+(if\s+you\s+are|a|an)\s+/i, label: "act-as-override" },
|
|
172
|
-
{ pattern: /\boverride\s+(safety|rules|guidelines|instructions)/i, label: "safety-override" },
|
|
173
|
-
{ pattern: /\bdo\s+not\s+follow\s+(your|the|any)\s+(rules|instructions)/i, label: "rule-bypass" },
|
|
174
|
-
{ pattern: /\bdeveloper\s+mode\s+(enabled|activated|on)/i, label: "developer-mode" },
|
|
175
|
-
{ pattern: /\bjailbreak/i, label: "jailbreak" },
|
|
176
|
-
{ pattern: /<\|.*?\|>/, label: "token-boundary-inject" },
|
|
177
|
-
{ pattern: /\[INST\]|\[\/?SYS\]|<<SYS>>/, label: "llm-template-inject" },
|
|
178
|
-
];
|
|
179
|
-
/**
|
|
180
|
-
* Scans a text block for known prompt injection patterns.
|
|
181
|
-
* Returns the matched pattern label if injection is detected, null otherwise.
|
|
182
|
-
*/
|
|
183
|
-
function scanForPromptInjection(text) {
|
|
184
|
-
for (const { pattern, label } of PROMPT_INJECTION_PATTERNS) {
|
|
185
|
-
if (pattern.test(text)) {
|
|
186
|
-
return label;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
return null;
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Validate tool response content before returning to AI.
|
|
193
|
-
* Blocks: oversized responses, binary data, and prompt injection attempts.
|
|
194
|
-
* Returns error message if blocked, null if allowed.
|
|
195
|
-
*/
|
|
196
|
-
export function validateResponse(toolName, result) {
|
|
197
|
-
if (!result || !result.content)
|
|
198
|
-
return null;
|
|
199
|
-
for (const block of result.content) {
|
|
200
|
-
if (block.type !== "text" || !block.text)
|
|
201
|
-
continue;
|
|
202
|
-
// 1. Check response size
|
|
203
|
-
if (block.text.length > CONFIG.MAX_RESPONSE_SIZE) {
|
|
204
|
-
return `[DISCIPLINE] Response too large (${(block.text.length / 1024).toFixed(1)}KB, max: ${(CONFIG.MAX_RESPONSE_SIZE / 1024).toFixed(1)}KB).`;
|
|
205
|
-
}
|
|
206
|
-
// 2. Block binary/gibberish content in text responses
|
|
207
|
-
const nonPrintable = (block.text.match(/[^\x20-\x7E\n\r\t]/g) || []).length;
|
|
208
|
-
if (nonPrintable > block.text.length * 0.3) {
|
|
209
|
-
return `[DISCIPLINE] Response contains too much binary data (${nonPrintable} non-printable chars). Blocked.`;
|
|
210
|
-
}
|
|
211
|
-
// 3. Prompt injection detection — scan for adversarial override patterns
|
|
212
|
-
// that may have been embedded in file content, API responses, or user input.
|
|
213
|
-
const injectionLabel = scanForPromptInjection(block.text);
|
|
214
|
-
if (injectionLabel) {
|
|
215
|
-
return `[DISCIPLINE] Prompt injection pattern detected in "${toolName}" response (pattern: ${injectionLabel}). Response blocked to protect agent integrity.`;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
return null;
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Get discipline stats for an agent.
|
|
222
|
-
*/
|
|
223
|
-
export function getDisciplineStats(agent) {
|
|
224
|
-
const discipline = agentDiscipline.get(agent);
|
|
225
|
-
if (!discipline) {
|
|
226
|
-
return { totalCalls: 0, recentCalls: 0, inCooldown: false, cooldownRemaining: 0, violations: 0, lastViolation: null };
|
|
227
|
-
}
|
|
228
|
-
pruneOldCalls(discipline);
|
|
229
|
-
const cooldownUntil = cooldowns.get(agent);
|
|
230
|
-
return {
|
|
231
|
-
totalCalls: discipline.totalCalls,
|
|
232
|
-
recentCalls: discipline.calls.length,
|
|
233
|
-
inCooldown: isInCooldown(agent),
|
|
234
|
-
cooldownRemaining: cooldownUntil ? Math.max(0, cooldownUntil - Date.now()) : 0,
|
|
235
|
-
violations: discipline.violations,
|
|
236
|
-
lastViolation: discipline.lastViolation,
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* Get all agents' discipline stats.
|
|
241
|
-
*/
|
|
242
|
-
export function getAllDisciplineStats() {
|
|
243
|
-
const stats = {};
|
|
244
|
-
for (const [agent] of agentDiscipline) {
|
|
245
|
-
stats[agent] = getDisciplineStats(agent);
|
|
246
|
-
}
|
|
247
|
-
return stats;
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Reset discipline for all agents.
|
|
251
|
-
*/
|
|
252
|
-
export function resetDiscipline() {
|
|
253
|
-
agentDiscipline.clear();
|
|
254
|
-
cooldowns.clear();
|
|
255
|
-
}
|
|
256
|
-
export { CONFIG as DisciplineConfig };
|
|
257
|
-
//# sourceMappingURL=discipline.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"discipline.js","sourceRoot":"","sources":["../../../../../../atabey-mcp/src/mcp/utils/discipline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ─── FINOPS / BUDGET ENFORCEMENT ──────────────────────────────────
|
|
3
|
-
*
|
|
4
|
-
* Enterprise budget management for AI token consumption.
|
|
5
|
-
* Enforces strict cost limits per team, agent, or project.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Team-based budget allocation (monthly/quarterly)
|
|
9
|
-
* - Per-agent spending limits
|
|
10
|
-
* - Automatic shutdown when budget exceeded
|
|
11
|
-
* - Central server sync for budget policies
|
|
12
|
-
* - Real-time cost tracking
|
|
13
|
-
* - Budget alerts at configurable thresholds (50%, 80%, 90%, 100%)
|
|
14
|
-
*
|
|
15
|
-
* Architecture:
|
|
16
|
-
* [Local MCP] → Budget Check → [Enterprise Server] → Shutdown Signal
|
|
17
|
-
*
|
|
18
|
-
* Environment Variables:
|
|
19
|
-
* ATABEY_BUDGET_TEAM - Team name for budget grouping
|
|
20
|
-
* ATABEY_BUDGET_MONTHLY - Monthly budget in USD (local override)
|
|
21
|
-
* ATABEY_BUDGET_AGENT_MAX - Max spend per agent in USD
|
|
22
|
-
* ATABEY_BUDGET_SYNC_URL - Enterprise server URL for budget sync
|
|
23
|
-
*/
|
|
24
|
-
interface FinOpsRuntimeConfig {
|
|
25
|
-
TEAM: string;
|
|
26
|
-
MONTHLY_BUDGET: number;
|
|
27
|
-
AGENT_MAX_BUDGET: number;
|
|
28
|
-
SYNC_URL: string;
|
|
29
|
-
SYNC_TOKEN: string;
|
|
30
|
-
ALERT_THRESHOLDS: number[];
|
|
31
|
-
COST_PER_1K_TOKENS: number;
|
|
32
|
-
SYNC_INTERVAL_MS: number;
|
|
33
|
-
/** Track usage and expose metrics */
|
|
34
|
-
ENABLED: boolean;
|
|
35
|
-
/** Block tool calls when budget exceeded */
|
|
36
|
-
ENFORCE_BLOCKING: boolean;
|
|
37
|
-
}
|
|
38
|
-
declare let CONFIG: FinOpsRuntimeConfig;
|
|
39
|
-
export declare function applyFinOpsRuntimeConfig(overrides: Partial<FinOpsRuntimeConfig>): void;
|
|
40
|
-
export interface BudgetState {
|
|
41
|
-
team: string;
|
|
42
|
-
/** Total spend this month in USD */
|
|
43
|
-
monthlySpend: number;
|
|
44
|
-
/** Per-agent spend this month */
|
|
45
|
-
agentSpend: Record<string, number>;
|
|
46
|
-
/** Budget period start (ISO date) */
|
|
47
|
-
periodStart: string;
|
|
48
|
-
/** Budget period end (ISO date) */
|
|
49
|
-
periodEnd: string;
|
|
50
|
-
/** Whether this team/agent is blocked */
|
|
51
|
-
blocked: boolean;
|
|
52
|
-
/** Block reason if blocked */
|
|
53
|
-
blockReason: string | null;
|
|
54
|
-
/** Last alert thresholds triggered */
|
|
55
|
-
triggeredAlerts: number[];
|
|
56
|
-
/** Last sync timestamp */
|
|
57
|
-
lastSync: string | null;
|
|
58
|
-
}
|
|
59
|
-
interface BudgetPolicy {
|
|
60
|
-
team: string;
|
|
61
|
-
monthlyBudget: number;
|
|
62
|
-
agentMaxBudget: number;
|
|
63
|
-
blocked: boolean;
|
|
64
|
-
blockReason: string | null;
|
|
65
|
-
updatedAt: string;
|
|
66
|
-
}
|
|
67
|
-
export declare class BudgetManager {
|
|
68
|
-
private static instance;
|
|
69
|
-
private state;
|
|
70
|
-
private syncTimer;
|
|
71
|
-
private localMetricsPath;
|
|
72
|
-
private constructor();
|
|
73
|
-
static getInstance(): BudgetManager;
|
|
74
|
-
/**
|
|
75
|
-
* Start the budget manager.
|
|
76
|
-
* Begins periodic sync with enterprise server.
|
|
77
|
-
*/
|
|
78
|
-
start(): void;
|
|
79
|
-
/**
|
|
80
|
-
* Stop the budget manager.
|
|
81
|
-
*/
|
|
82
|
-
stop(): void;
|
|
83
|
-
/**
|
|
84
|
-
* Record token usage and check budget.
|
|
85
|
-
* Returns error message if budget exceeded, null if allowed.
|
|
86
|
-
*/
|
|
87
|
-
recordUsage(agent: string, tokens: number): string | null;
|
|
88
|
-
/**
|
|
89
|
-
* Check if an agent is within budget without recording usage.
|
|
90
|
-
*/
|
|
91
|
-
checkBudget(agent: string): {
|
|
92
|
-
allowed: boolean;
|
|
93
|
-
monthlySpend: number;
|
|
94
|
-
monthlyBudget: number;
|
|
95
|
-
agentSpend: number;
|
|
96
|
-
agentMaxBudget: number;
|
|
97
|
-
usagePercent: number;
|
|
98
|
-
blocked: boolean;
|
|
99
|
-
blockReason: string | null;
|
|
100
|
-
};
|
|
101
|
-
/**
|
|
102
|
-
* Get full budget state.
|
|
103
|
-
*/
|
|
104
|
-
getState(): BudgetState;
|
|
105
|
-
/**
|
|
106
|
-
* Reset budget for new period.
|
|
107
|
-
*/
|
|
108
|
-
resetPeriod(): void;
|
|
109
|
-
/**
|
|
110
|
-
* Apply a budget policy from the enterprise server.
|
|
111
|
-
*/
|
|
112
|
-
applyPolicy(policy: BudgetPolicy): void;
|
|
113
|
-
/**
|
|
114
|
-
* Sync budget state with enterprise server.
|
|
115
|
-
*/
|
|
116
|
-
private syncWithServer;
|
|
117
|
-
/**
|
|
118
|
-
* Recalculate spend from local metrics file.
|
|
119
|
-
*/
|
|
120
|
-
private recalculateFromLocalMetrics;
|
|
121
|
-
/**
|
|
122
|
-
* Trigger a budget alert.
|
|
123
|
-
*/
|
|
124
|
-
private triggerAlert;
|
|
125
|
-
/**
|
|
126
|
-
* Save budget state to disk.
|
|
127
|
-
*/
|
|
128
|
-
private saveState;
|
|
129
|
-
/**
|
|
130
|
-
* Reset the singleton instance (for testing).
|
|
131
|
-
*/
|
|
132
|
-
static resetInstance(): void;
|
|
133
|
-
/**
|
|
134
|
-
* Load budget state from disk.
|
|
135
|
-
*/
|
|
136
|
-
private loadState;
|
|
137
|
-
}
|
|
138
|
-
export declare const budgetManager: BudgetManager;
|
|
139
|
-
export { CONFIG as FinOpsConfig };
|