atabey 0.0.18 → 0.0.19
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 +14 -2
- package/dist/atabey/src/cli/commands/check.js +2 -3
- package/dist/atabey/src/cli/commands/check.js.map +1 -1
- package/dist/atabey/src/cli/commands/explorer.js.map +1 -1
- package/dist/atabey/src/cli/commands/index-codebase.js +13 -2
- package/dist/atabey/src/cli/commands/index-codebase.js.map +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-core.js +22 -0
- package/dist/atabey/src/cli/commands/init/scaffold-core.js.map +1 -1
- package/dist/atabey/src/cli/commands/orchestrate.d.ts +11 -10
- package/dist/atabey/src/cli/commands/orchestrate.js +49 -24
- package/dist/atabey/src/cli/commands/orchestrate.js.map +1 -1
- package/dist/atabey/src/cli/index.js +7 -0
- package/dist/atabey/src/cli/index.js.map +1 -1
- package/dist/atabey/src/cli/utils/config-schema.d.ts +28 -0
- package/dist/atabey/src/cli/utils/config-schema.js +6 -1
- package/dist/atabey/src/cli/utils/config-schema.js.map +1 -1
- package/dist/atabey/src/cli/utils/memory.js +26 -0
- package/dist/atabey/src/cli/utils/memory.js.map +1 -1
- package/dist/atabey/src/cli/utils/quality.js +2 -7
- package/dist/atabey/src/cli/utils/quality.js.map +1 -1
- package/dist/atabey/src/cli/utils/schemas.d.ts +8 -8
- package/dist/atabey/src/contracts/tasks.d.ts +6 -6
- package/dist/atabey/src/modules/agents/definitions.js +9 -14
- package/dist/atabey/src/modules/agents/definitions.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/manager.js +1 -1
- package/dist/atabey/src/modules/agents/registry/manager.js.map +1 -1
- package/dist/atabey/src/modules/engines/crud-governance.d.ts +4 -2
- package/dist/atabey/src/modules/engines/crud-governance.js +41 -6
- package/dist/atabey/src/modules/engines/crud-governance.js.map +1 -1
- package/dist/atabey/src/modules/skills/adapter-skills.d.ts +2 -0
- package/dist/atabey/src/modules/skills/adapter-skills.js.map +1 -1
- package/dist/atabey/src/shared/audit.d.ts +1 -105
- package/dist/atabey/src/shared/audit.js +1 -220
- package/dist/atabey/src/shared/audit.js.map +1 -1
- package/dist/atabey/src/shared/constants.d.ts +1 -120
- package/dist/atabey/src/shared/constants.js +1 -187
- package/dist/atabey/src/shared/constants.js.map +1 -1
- package/dist/atabey/src/shared/errors.d.ts +1 -46
- package/dist/atabey/src/shared/errors.js +1 -68
- package/dist/atabey/src/shared/errors.js.map +1 -1
- package/dist/atabey/src/shared/fs.d.ts +1 -9
- package/dist/atabey/src/shared/fs.js +1 -53
- package/dist/atabey/src/shared/fs.js.map +1 -1
- package/dist/atabey/src/shared/lock.d.ts +1 -82
- package/dist/atabey/src/shared/lock.js +1 -159
- package/dist/atabey/src/shared/lock.js.map +1 -1
- package/dist/atabey/src/shared/logger.d.ts +1 -30
- package/dist/atabey/src/shared/logger.js +1 -126
- package/dist/atabey/src/shared/logger.js.map +1 -1
- package/dist/atabey/src/shared/pii.d.ts +1 -69
- package/dist/atabey/src/shared/pii.js +1 -212
- package/dist/atabey/src/shared/pii.js.map +1 -1
- package/dist/atabey/src/shared/retention.d.ts +1 -63
- package/dist/atabey/src/shared/retention.js +1 -170
- package/dist/atabey/src/shared/retention.js.map +1 -1
- package/dist/atabey/src/shared/storage.js +7 -3
- package/dist/atabey/src/shared/storage.js.map +1 -1
- package/dist/atabey/src/shared/string.d.ts +1 -1
- package/dist/atabey/src/shared/string.js +1 -29
- package/dist/atabey/src/shared/string.js.map +1 -1
- package/dist/atabey/src/shared/types.d.ts +1 -27
- package/dist/atabey/src/shared/types.js +1 -16
- package/dist/atabey/src/shared/types.js.map +1 -1
- package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js +1 -1
- package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js.map +1 -1
- package/dist/atabey-mcp/src/shared/logger.d.ts +1 -30
- package/dist/atabey-mcp/src/shared/logger.js +1 -126
- package/dist/atabey-mcp/src/shared/logger.js.map +1 -1
- package/dist/atabey-mcp/src/shared/pii.d.ts +1 -69
- package/dist/atabey-mcp/src/shared/pii.js +1 -212
- package/dist/atabey-mcp/src/shared/pii.js.map +1 -1
- package/dist/atabey-mcp/src/shared/storage.js +3 -1
- package/dist/atabey-mcp/src/shared/storage.js.map +1 -1
- package/dist/atabey-mcp/src/shared/types.d.ts +1 -27
- package/dist/atabey-mcp/src/shared/types.js +1 -16
- package/dist/atabey-mcp/src/shared/types.js.map +1 -1
- package/dist/{src/shared → shared/src}/audit.js +8 -8
- package/dist/shared/src/audit.js.map +1 -0
- package/dist/shared/src/constants.js.map +1 -0
- package/dist/shared/src/database.d.ts +5 -0
- package/dist/shared/src/database.js +13 -0
- package/dist/shared/src/database.js.map +1 -0
- package/dist/shared/src/errors.js.map +1 -0
- package/dist/shared/src/fs.js.map +1 -0
- package/dist/shared/src/index.d.ts +11 -0
- package/dist/shared/src/index.js +12 -0
- package/dist/shared/src/index.js.map +1 -0
- package/dist/{src/shared → shared/src}/lock.js +22 -26
- package/dist/shared/src/lock.js.map +1 -0
- package/dist/shared/src/logger.js.map +1 -0
- package/dist/{src/shared → shared/src}/pii.js +4 -1
- package/dist/shared/src/pii.js.map +1 -0
- package/dist/{src/shared → shared/src}/retention.js +6 -6
- package/dist/shared/src/retention.js.map +1 -0
- package/dist/shared/src/string.js.map +1 -0
- package/dist/shared/src/types.js.map +1 -0
- package/package.json +7 -2
- package/dist/atabey-mcp/src/mcp/utils/quality.d.ts +0 -19
- package/dist/atabey-mcp/src/mcp/utils/quality.js +0 -125
- package/dist/atabey-mcp/src/mcp/utils/quality.js.map +0 -1
- package/dist/atabey-mcp/src/shared/fs.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 -197
- 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 -52
- 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 -129
- 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 -362
- 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 -132
- 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 -61
- package/dist/src/cli/commands/orchestrate.js +0 -238
- 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 -282
- package/dist/src/cli/index.js.map +0 -1
- package/dist/src/cli/platforms/core.d.ts +0 -12
- package/dist/src/cli/platforms/core.js +0 -73
- 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 -139
- package/dist/src/cli/utils/config-schema.js +0 -43
- 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 -39
- package/dist/src/cli/utils/memory.js +0 -281
- package/dist/src/cli/utils/memory.js.map +0 -1
- package/dist/src/cli/utils/pkg.d.ts +0 -43
- package/dist/src/cli/utils/pkg.js +0 -283
- package/dist/src/cli/utils/pkg.js.map +0 -1
- package/dist/src/cli/utils/quality.d.ts +0 -8
- package/dist/src/cli/utils/quality.js +0 -8
- 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/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 -564
- 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 -64
- package/dist/src/modules/engines/crud-governance.js +0 -184
- 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 -68
- 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.js.map +0 -1
- package/dist/src/shared/constants.js.map +0 -1
- package/dist/src/shared/errors.js.map +0 -1
- package/dist/src/shared/fs.d.ts +0 -9
- package/dist/src/shared/fs.js +0 -54
- package/dist/src/shared/fs.js.map +0 -1
- package/dist/src/shared/lock.js.map +0 -1
- package/dist/src/shared/logger.js.map +0 -1
- package/dist/src/shared/pii.js.map +0 -1
- 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 -326
- package/dist/src/shared/storage.js.map +0 -1
- package/dist/src/shared/string.js.map +0 -1
- package/dist/src/shared/types.js.map +0 -1
- package/dist/tests/adapter.test.d.ts +0 -1
- package/dist/tests/adapter.test.js +0 -130
- package/dist/tests/adapter.test.js.map +0 -1
- package/dist/tests/adapters/paths.test.d.ts +0 -1
- package/dist/tests/adapters/paths.test.js +0 -63
- package/dist/tests/adapters/paths.test.js.map +0 -1
- package/dist/tests/agent-memory-v2.test.d.ts +0 -1
- package/dist/tests/agent-memory-v2.test.js +0 -68
- package/dist/tests/agent-memory-v2.test.js.map +0 -1
- package/dist/tests/agents-definitions.test.d.ts +0 -1
- package/dist/tests/agents-definitions.test.js +0 -103
- package/dist/tests/agents-definitions.test.js.map +0 -1
- package/dist/tests/approve.test.d.ts +0 -1
- package/dist/tests/approve.test.js +0 -52
- package/dist/tests/approve.test.js.map +0 -1
- package/dist/tests/cli/commands/check.test.d.ts +0 -1
- package/dist/tests/cli/commands/check.test.js +0 -9
- package/dist/tests/cli/commands/check.test.js.map +0 -1
- package/dist/tests/cli/commands/coverage.test.d.ts +0 -1
- package/dist/tests/cli/commands/coverage.test.js +0 -9
- package/dist/tests/cli/commands/coverage.test.js.map +0 -1
- package/dist/tests/cli/commands/dashboard-coverage.test.d.ts +0 -1
- package/dist/tests/cli/commands/dashboard-coverage.test.js +0 -90
- package/dist/tests/cli/commands/dashboard-coverage.test.js.map +0 -1
- package/dist/tests/cli/commands/exports.test.d.ts +0 -1
- package/dist/tests/cli/commands/exports.test.js +0 -61
- package/dist/tests/cli/commands/exports.test.js.map +0 -1
- package/dist/tests/cli/commands/lint.test.d.ts +0 -1
- package/dist/tests/cli/commands/lint.test.js +0 -9
- package/dist/tests/cli/commands/lint.test.js.map +0 -1
- package/dist/tests/cli/init/adapter_init.test.d.ts +0 -1
- package/dist/tests/cli/init/adapter_init.test.js +0 -49
- package/dist/tests/cli/init/adapter_init.test.js.map +0 -1
- package/dist/tests/cli/init/unified_init.test.d.ts +0 -1
- package/dist/tests/cli/init/unified_init.test.js +0 -56
- package/dist/tests/cli/init/unified_init.test.js.map +0 -1
- package/dist/tests/core-memory.test.d.ts +0 -1
- package/dist/tests/core-memory.test.js +0 -78
- package/dist/tests/core-memory.test.js.map +0 -1
- package/dist/tests/embedding.test.d.ts +0 -1
- package/dist/tests/embedding.test.js +0 -82
- package/dist/tests/embedding.test.js.map +0 -1
- package/dist/tests/engines/evaluation-engine.test.d.ts +0 -1
- package/dist/tests/engines/evaluation-engine.test.js +0 -71
- package/dist/tests/engines/evaluation-engine.test.js.map +0 -1
- package/dist/tests/engines/planning-engine.test.d.ts +0 -1
- package/dist/tests/engines/planning-engine.test.js +0 -100
- package/dist/tests/engines/planning-engine.test.js.map +0 -1
- package/dist/tests/engines/quality-gate.test.d.ts +0 -1
- package/dist/tests/engines/quality-gate.test.js +0 -59
- package/dist/tests/engines/quality-gate.test.js.map +0 -1
- package/dist/tests/engines/risk-engine.test.d.ts +0 -1
- package/dist/tests/engines/risk-engine.test.js +0 -80
- package/dist/tests/engines/risk-engine.test.js.map +0 -1
- package/dist/tests/engines/routing-engine.test.d.ts +0 -1
- package/dist/tests/engines/routing-engine.test.js +0 -78
- package/dist/tests/engines/routing-engine.test.js.map +0 -1
- package/dist/tests/errors.test.d.ts +0 -1
- package/dist/tests/errors.test.js +0 -64
- package/dist/tests/errors.test.js.map +0 -1
- package/dist/tests/fs-utils.test.d.ts +0 -1
- package/dist/tests/fs-utils.test.js +0 -101
- package/dist/tests/fs-utils.test.js.map +0 -1
- package/dist/tests/integration/agent_flow.test.d.ts +0 -1
- package/dist/tests/integration/agent_flow.test.js +0 -69
- package/dist/tests/integration/agent_flow.test.js.map +0 -1
- package/dist/tests/integration/hermes_locking.test.d.ts +0 -1
- package/dist/tests/integration/hermes_locking.test.js +0 -62
- package/dist/tests/integration/hermes_locking.test.js.map +0 -1
- package/dist/tests/logger.test.d.ts +0 -1
- package/dist/tests/logger.test.js +0 -81
- package/dist/tests/logger.test.js.map +0 -1
- package/dist/tests/memory-utils.test.d.ts +0 -1
- package/dist/tests/memory-utils.test.js +0 -59
- package/dist/tests/memory-utils.test.js.map +0 -1
- package/dist/tests/modules/adapters/adapters.test.d.ts +0 -1
- package/dist/tests/modules/adapters/adapters.test.js +0 -30
- package/dist/tests/modules/adapters/adapters.test.js.map +0 -1
- package/dist/tests/modules/contracts/contracts.test.d.ts +0 -1
- package/dist/tests/modules/contracts/contracts.test.js +0 -73
- package/dist/tests/modules/contracts/contracts.test.js.map +0 -1
- package/dist/tests/modules/engines/agent-executor.test.d.ts +0 -1
- package/dist/tests/modules/engines/agent-executor.test.js +0 -61
- package/dist/tests/modules/engines/agent-executor.test.js.map +0 -1
- package/dist/tests/modules/engines/evaluation-engine.test.d.ts +0 -1
- package/dist/tests/modules/engines/evaluation-engine.test.js +0 -45
- package/dist/tests/modules/engines/evaluation-engine.test.js.map +0 -1
- package/dist/tests/modules/engines/health-engine.test.d.ts +0 -1
- package/dist/tests/modules/engines/health-engine.test.js +0 -56
- package/dist/tests/modules/engines/health-engine.test.js.map +0 -1
- package/dist/tests/modules/engines/planning-engine.test.d.ts +0 -1
- package/dist/tests/modules/engines/planning-engine.test.js +0 -75
- package/dist/tests/modules/engines/planning-engine.test.js.map +0 -1
- package/dist/tests/modules/engines/risk-engine.test.d.ts +0 -1
- package/dist/tests/modules/engines/risk-engine.test.js +0 -61
- package/dist/tests/modules/engines/risk-engine.test.js.map +0 -1
- package/dist/tests/modules/engines/routing-engine.test.d.ts +0 -1
- package/dist/tests/modules/engines/routing-engine.test.js +0 -56
- package/dist/tests/modules/engines/routing-engine.test.js.map +0 -1
- package/dist/tests/modules/memory/vector-store.test.d.ts +0 -1
- package/dist/tests/modules/memory/vector-store.test.js +0 -109
- package/dist/tests/modules/memory/vector-store.test.js.map +0 -1
- package/dist/tests/orchestrate.test.d.ts +0 -1
- package/dist/tests/orchestrate.test.js +0 -71
- package/dist/tests/orchestrate.test.js.map +0 -1
- package/dist/tests/orchestrator-dependencies.test.d.ts +0 -1
- package/dist/tests/orchestrator-dependencies.test.js +0 -70
- package/dist/tests/orchestrator-dependencies.test.js.map +0 -1
- package/dist/tests/plan.test.d.ts +0 -1
- package/dist/tests/plan.test.js +0 -63
- package/dist/tests/plan.test.js.map +0 -1
- package/dist/tests/shared/audit.test.d.ts +0 -1
- package/dist/tests/shared/audit.test.js +0 -53
- package/dist/tests/shared/audit.test.js.map +0 -1
- package/dist/tests/shared/constants.test.d.ts +0 -1
- package/dist/tests/shared/constants.test.js +0 -17
- package/dist/tests/shared/constants.test.js.map +0 -1
- package/dist/tests/shared/lock.test.d.ts +0 -1
- package/dist/tests/shared/lock.test.js +0 -95
- package/dist/tests/shared/lock.test.js.map +0 -1
- package/dist/tests/shared/pii.test.d.ts +0 -1
- package/dist/tests/shared/pii.test.js +0 -183
- package/dist/tests/shared/pii.test.js.map +0 -1
- package/dist/tests/skills-definitions.test.d.ts +0 -1
- package/dist/tests/skills-definitions.test.js +0 -34
- package/dist/tests/skills-definitions.test.js.map +0 -1
- package/dist/tests/status-cost.test.d.ts +0 -1
- package/dist/tests/status-cost.test.js +0 -47
- package/dist/tests/status-cost.test.js.map +0 -1
- package/dist/tests/status.test.d.ts +0 -1
- package/dist/tests/status.test.js +0 -49
- package/dist/tests/status.test.js.map +0 -1
- package/dist/tests/storage-operations.test.d.ts +0 -1
- package/dist/tests/storage-operations.test.js +0 -143
- package/dist/tests/storage-operations.test.js.map +0 -1
- package/dist/tests/string.test.d.ts +0 -1
- package/dist/tests/string.test.js +0 -89
- package/dist/tests/string.test.js.map +0 -1
- package/dist/tests/time.test.d.ts +0 -1
- package/dist/tests/time.test.js +0 -48
- package/dist/tests/time.test.js.map +0 -1
- package/dist/tests/trace-replay.test.d.ts +0 -1
- package/dist/tests/trace-replay.test.js +0 -59
- package/dist/tests/trace-replay.test.js.map +0 -1
- package/dist/tests/trace.test.d.ts +0 -1
- package/dist/tests/trace.test.js +0 -35
- package/dist/tests/trace.test.js.map +0 -1
- /package/dist/{src/shared → shared/src}/audit.d.ts +0 -0
- /package/dist/{src/shared → shared/src}/constants.d.ts +0 -0
- /package/dist/{src/shared → shared/src}/constants.js +0 -0
- /package/dist/{src/shared → shared/src}/errors.d.ts +0 -0
- /package/dist/{src/shared → shared/src}/errors.js +0 -0
- /package/dist/{atabey-mcp/src/shared → shared/src}/fs.d.ts +0 -0
- /package/dist/{atabey-mcp/src/shared → shared/src}/fs.js +0 -0
- /package/dist/{src/shared → shared/src}/lock.d.ts +0 -0
- /package/dist/{src/shared → shared/src}/logger.d.ts +0 -0
- /package/dist/{src/shared → shared/src}/logger.js +0 -0
- /package/dist/{src/shared → shared/src}/pii.d.ts +0 -0
- /package/dist/{src/shared → shared/src}/retention.d.ts +0 -0
- /package/dist/{src/shared → shared/src}/string.d.ts +0 -0
- /package/dist/{src/shared → shared/src}/string.js +0 -0
- /package/dist/{src/shared → shared/src}/types.d.ts +0 -0
- /package/dist/{src/shared → shared/src}/types.js +0 -0
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* [ENGINE] AgentLoop — Real-time Hermes Message Consumer
|
|
3
|
-
*
|
|
4
|
-
* Runs as a background loop polling and consuming DELEGATION messages from the
|
|
5
|
-
* Hermes queue and forwarding them to agents for acknowledgment.
|
|
6
|
-
*
|
|
7
|
-
* Acts as a message-polling and workflow enforcer, ensuring task messages are
|
|
8
|
-
* routed to their designated target agents, which then get processed by the AI client interface.
|
|
9
|
-
*
|
|
10
|
-
* v0.0.14: First real implementation. Agents are now reliably acknowledged and routed.
|
|
11
|
-
*/
|
|
12
|
-
export declare class AgentLoop {
|
|
13
|
-
private static loopHandle;
|
|
14
|
-
private static running;
|
|
15
|
-
/**
|
|
16
|
-
* Start the agent dispatch loop.
|
|
17
|
-
* @param activeAgents - Agent names to process (empty = all registered agents)
|
|
18
|
-
* @param intervalMs - Poll interval in milliseconds (default: 1000ms)
|
|
19
|
-
*/
|
|
20
|
-
static start(activeAgents?: string[], intervalMs?: number): void;
|
|
21
|
-
/**
|
|
22
|
-
* Stop the agent dispatch loop gracefully.
|
|
23
|
-
*/
|
|
24
|
-
static stop(): void;
|
|
25
|
-
/**
|
|
26
|
-
* Returns whether the loop is currently running.
|
|
27
|
-
*/
|
|
28
|
-
static isRunning(): boolean;
|
|
29
|
-
/**
|
|
30
|
-
* Single dispatch cycle — reads pending DELEGATION messages and executes them.
|
|
31
|
-
* Marks each message as PROCESSED immediately to prevent duplicate dispatch.
|
|
32
|
-
*/
|
|
33
|
-
private static processDelegations;
|
|
34
|
-
}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { logger } from "../../shared/logger.js";
|
|
2
|
-
import { AtabeyStorage } from "../../shared/storage.js";
|
|
3
|
-
import { AgentExecutor } from "./agent-executor.js";
|
|
4
|
-
/**
|
|
5
|
-
* [ENGINE] AgentLoop — Real-time Hermes Message Consumer
|
|
6
|
-
*
|
|
7
|
-
* Runs as a background loop polling and consuming DELEGATION messages from the
|
|
8
|
-
* Hermes queue and forwarding them to agents for acknowledgment.
|
|
9
|
-
*
|
|
10
|
-
* Acts as a message-polling and workflow enforcer, ensuring task messages are
|
|
11
|
-
* routed to their designated target agents, which then get processed by the AI client interface.
|
|
12
|
-
*
|
|
13
|
-
* v0.0.14: First real implementation. Agents are now reliably acknowledged and routed.
|
|
14
|
-
*/
|
|
15
|
-
export class AgentLoop {
|
|
16
|
-
static loopHandle = null;
|
|
17
|
-
static running = false;
|
|
18
|
-
/**
|
|
19
|
-
* Start the agent dispatch loop.
|
|
20
|
-
* @param activeAgents - Agent names to process (empty = all registered agents)
|
|
21
|
-
* @param intervalMs - Poll interval in milliseconds (default: 1000ms)
|
|
22
|
-
*/
|
|
23
|
-
static start(activeAgents = [], intervalMs = 1000) {
|
|
24
|
-
if (this.running) {
|
|
25
|
-
logger.warn("[AGENT_LOOP] Loop already running. Ignoring duplicate start.");
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
this.running = true;
|
|
29
|
-
logger.info(`[AGENT_LOOP] Starting. Active agents: ${activeAgents.length === 0 ? "all" : activeAgents.join(", ")} | Interval: ${intervalMs}ms`);
|
|
30
|
-
this.loopHandle = setInterval(() => {
|
|
31
|
-
this.processDelegations(activeAgents).catch((err) => {
|
|
32
|
-
logger.error("[AGENT_LOOP] Error in dispatch cycle", {
|
|
33
|
-
error: err.message,
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
}, intervalMs);
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Stop the agent dispatch loop gracefully.
|
|
40
|
-
*/
|
|
41
|
-
static stop() {
|
|
42
|
-
if (this.loopHandle) {
|
|
43
|
-
clearInterval(this.loopHandle);
|
|
44
|
-
this.loopHandle = null;
|
|
45
|
-
}
|
|
46
|
-
this.running = false;
|
|
47
|
-
logger.info("[AGENT_LOOP] Stopped.");
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Returns whether the loop is currently running.
|
|
51
|
-
*/
|
|
52
|
-
static isRunning() {
|
|
53
|
-
return this.running;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Single dispatch cycle — reads pending DELEGATION messages and executes them.
|
|
57
|
-
* Marks each message as PROCESSED immediately to prevent duplicate dispatch.
|
|
58
|
-
*/
|
|
59
|
-
static async processDelegations(activeAgents) {
|
|
60
|
-
const pendingMessages = AtabeyStorage.getPendingMessages();
|
|
61
|
-
const delegations = pendingMessages.filter(m => m.category === "DELEGATION" && m.status === "PENDING");
|
|
62
|
-
if (delegations.length === 0)
|
|
63
|
-
return;
|
|
64
|
-
logger.debug(`[AGENT_LOOP] Processing ${delegations.length} pending DELEGATION(s)`);
|
|
65
|
-
for (const msg of delegations) {
|
|
66
|
-
const rawTarget = String(msg.to);
|
|
67
|
-
const agentName = rawTarget.startsWith("@") ? rawTarget : `@${rawTarget}`;
|
|
68
|
-
// If activeAgents is specified, only process those agents
|
|
69
|
-
if (activeAgents.length > 0 && !activeAgents.includes(agentName)) {
|
|
70
|
-
continue;
|
|
71
|
-
}
|
|
72
|
-
// Mark as PROCESSED immediately to prevent duplicate processing
|
|
73
|
-
if (msg.id !== undefined) {
|
|
74
|
-
AtabeyStorage.updateMessageStatus(msg.id, "PROCESSED");
|
|
75
|
-
}
|
|
76
|
-
// Parse task from message content (may be JSON or plain text)
|
|
77
|
-
let taskDescription = msg.content;
|
|
78
|
-
try {
|
|
79
|
-
const parsed = JSON.parse(msg.content);
|
|
80
|
-
if (parsed.task)
|
|
81
|
-
taskDescription = parsed.task;
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
// Content is plain text task description — use as-is
|
|
85
|
-
}
|
|
86
|
-
logger.info(`[AGENT_LOOP] Dispatching → ${agentName}`, {
|
|
87
|
-
traceId: String(msg.traceId),
|
|
88
|
-
task: taskDescription.substring(0, 80),
|
|
89
|
-
});
|
|
90
|
-
try {
|
|
91
|
-
await AgentExecutor.executeForAgent(agentName, taskDescription, String(msg.traceId));
|
|
92
|
-
}
|
|
93
|
-
catch (err) {
|
|
94
|
-
logger.error(`[AGENT_LOOP] Failed to execute task for ${agentName}`, {
|
|
95
|
-
error: err.message,
|
|
96
|
-
traceId: String(msg.traceId),
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=agent-loop.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../../../src/modules/engines/agent-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* [ENGINE] Contract Engine — API Versioning & Contract-First Enforcement
|
|
3
|
-
*
|
|
4
|
-
* Implements:
|
|
5
|
-
* - API Versioning Strategy: /api/v1/... URL versioning, contract.version.json
|
|
6
|
-
* - Contract-First: atabey verify-contract, contract_hash validation, auto-rollback
|
|
7
|
-
*/
|
|
8
|
-
export interface ContractVersion {
|
|
9
|
-
version: string;
|
|
10
|
-
lastUpdated: string;
|
|
11
|
-
contractHash: string;
|
|
12
|
-
breakingChanges: Array<{
|
|
13
|
-
version: string;
|
|
14
|
-
description: string;
|
|
15
|
-
}>;
|
|
16
|
-
deprecatedVersions: string[];
|
|
17
|
-
}
|
|
18
|
-
export declare class ContractEngine {
|
|
19
|
-
private static readonly CONTRACT_FILE;
|
|
20
|
-
/**
|
|
21
|
-
* Loads the contract.version.json file.
|
|
22
|
-
*/
|
|
23
|
-
static loadContract(projectRoot: string): ContractVersion | null;
|
|
24
|
-
/**
|
|
25
|
-
* Computes SHA-256 hash of all shared type files in src/contracts or src/shared/types.
|
|
26
|
-
*/
|
|
27
|
-
static computeHash(projectRoot: string): string;
|
|
28
|
-
/**
|
|
29
|
-
* Verifies contract integrity. If hash changed, auto-triggers rollback.
|
|
30
|
-
*/
|
|
31
|
-
static verifyContract(projectRoot: string): Promise<{
|
|
32
|
-
valid: boolean;
|
|
33
|
-
hash: string;
|
|
34
|
-
previousHash: string;
|
|
35
|
-
message: string;
|
|
36
|
-
}>;
|
|
37
|
-
/**
|
|
38
|
-
* Updates contract.version.json with current hash.
|
|
39
|
-
*/
|
|
40
|
-
static updateContract(projectRoot: string, breaking: boolean): Promise<ContractVersion>;
|
|
41
|
-
/**
|
|
42
|
-
* Validates that work is allowed in current phase before writing contracts.
|
|
43
|
-
*/
|
|
44
|
-
static validatePhaseForContract(workDescription: string): boolean;
|
|
45
|
-
private static bumpVersion;
|
|
46
|
-
}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* [ENGINE] Contract Engine — API Versioning & Contract-First Enforcement
|
|
3
|
-
*
|
|
4
|
-
* Implements:
|
|
5
|
-
* - API Versioning Strategy: /api/v1/... URL versioning, contract.version.json
|
|
6
|
-
* - Contract-First: atabey verify-contract, contract_hash validation, auto-rollback
|
|
7
|
-
*/
|
|
8
|
-
import crypto from "crypto";
|
|
9
|
-
import fs from "fs";
|
|
10
|
-
import path from "path";
|
|
11
|
-
import { logger } from "../../shared/logger.js";
|
|
12
|
-
import { AtabeyStorage } from "../../shared/storage.js";
|
|
13
|
-
import { PhaseEngine } from "./phase-engine.js";
|
|
14
|
-
export class ContractEngine {
|
|
15
|
-
static CONTRACT_FILE = "contract.version.json";
|
|
16
|
-
/**
|
|
17
|
-
* Loads the contract.version.json file.
|
|
18
|
-
*/
|
|
19
|
-
static loadContract(projectRoot) {
|
|
20
|
-
const contractPath = path.join(projectRoot, ContractEngine.CONTRACT_FILE);
|
|
21
|
-
if (!fs.existsSync(contractPath))
|
|
22
|
-
return null;
|
|
23
|
-
try {
|
|
24
|
-
return JSON.parse(fs.readFileSync(contractPath, "utf8"));
|
|
25
|
-
}
|
|
26
|
-
catch {
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Computes SHA-256 hash of all shared type files in src/contracts or src/shared/types.
|
|
32
|
-
*/
|
|
33
|
-
static computeHash(projectRoot) {
|
|
34
|
-
const hash = crypto.createHash("sha256");
|
|
35
|
-
const dirs = ["src/contracts", "src/shared/types", "src/types", "apps/backend/src/types"];
|
|
36
|
-
for (const dir of dirs) {
|
|
37
|
-
const fullPath = path.join(projectRoot, dir);
|
|
38
|
-
if (fs.existsSync(fullPath)) {
|
|
39
|
-
const files = fs.readdirSync(fullPath).filter(f => f.endsWith(".ts"));
|
|
40
|
-
for (const file of files.sort()) {
|
|
41
|
-
const content = fs.readFileSync(path.join(fullPath, file), "utf8");
|
|
42
|
-
hash.update(content);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return hash.digest("hex").substring(0, 16);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Verifies contract integrity. If hash changed, auto-triggers rollback.
|
|
50
|
-
*/
|
|
51
|
-
static async verifyContract(projectRoot) {
|
|
52
|
-
const contract = ContractEngine.loadContract(projectRoot);
|
|
53
|
-
const currentHash = ContractEngine.computeHash(projectRoot);
|
|
54
|
-
if (!contract) {
|
|
55
|
-
return { valid: false, hash: currentHash, previousHash: "", message: "contract.version.json not found. Create one with `atabey verify-contract --init`." };
|
|
56
|
-
}
|
|
57
|
-
const previousHash = contract.contractHash;
|
|
58
|
-
const valid = currentHash === previousHash;
|
|
59
|
-
if (!valid) {
|
|
60
|
-
logger.warn(`[CONTRACT] Hash mismatch: ${previousHash} → ${currentHash}. Contracts changed!`);
|
|
61
|
-
await PhaseEngine.detectBrokenContracts("@contract-engine");
|
|
62
|
-
AtabeyStorage.saveLog({
|
|
63
|
-
agent: "@architect",
|
|
64
|
-
action: "CONTRACT_HASH_MISMATCH",
|
|
65
|
-
trace_id: AtabeyStorage.getMetadata("traceId") || "N/A",
|
|
66
|
-
status: "FAILED",
|
|
67
|
-
summary: `Contract hash changed: ${previousHash} → ${currentHash}. Rollback triggered.`
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
return { valid, hash: currentHash, previousHash, message: valid ? "Contracts valid." : "Contract hash mismatch! Run rollback." };
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Updates contract.version.json with current hash.
|
|
74
|
-
*/
|
|
75
|
-
static async updateContract(projectRoot, breaking) {
|
|
76
|
-
const existing = ContractEngine.loadContract(projectRoot);
|
|
77
|
-
const newHash = ContractEngine.computeHash(projectRoot);
|
|
78
|
-
const contract = {
|
|
79
|
-
version: existing ? ContractEngine.bumpVersion(existing.version, breaking) : "1.0",
|
|
80
|
-
lastUpdated: new Date().toISOString(),
|
|
81
|
-
contractHash: newHash,
|
|
82
|
-
breakingChanges: existing?.breakingChanges || [],
|
|
83
|
-
deprecatedVersions: existing?.deprecatedVersions || [],
|
|
84
|
-
};
|
|
85
|
-
if (breaking) {
|
|
86
|
-
contract.breakingChanges.push({ version: contract.version, description: "Breaking change" });
|
|
87
|
-
}
|
|
88
|
-
fs.writeFileSync(path.join(projectRoot, ContractEngine.CONTRACT_FILE), JSON.stringify(contract, null, 2));
|
|
89
|
-
AtabeyStorage.saveLog({
|
|
90
|
-
agent: "@architect",
|
|
91
|
-
action: "CONTRACT_UPDATED",
|
|
92
|
-
trace_id: AtabeyStorage.getMetadata("traceId") || "N/A",
|
|
93
|
-
status: "SUCCESS",
|
|
94
|
-
summary: `Contract updated to v${contract.version} (hash: ${newHash})`
|
|
95
|
-
});
|
|
96
|
-
return contract;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Validates that work is allowed in current phase before writing contracts.
|
|
100
|
-
*/
|
|
101
|
-
static validatePhaseForContract(workDescription) {
|
|
102
|
-
const phase = PhaseEngine.getCurrentPhase();
|
|
103
|
-
if (phase === "PHASE_0" || phase === "PHASE_3" || phase === "PHASE_4") {
|
|
104
|
-
logger.warn(`[CONTRACT] Phase ${phase} does not allow contract changes: ${workDescription}`);
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
return true;
|
|
108
|
-
}
|
|
109
|
-
static bumpVersion(current, breaking) {
|
|
110
|
-
const [major, minor] = current.split(".").map(Number);
|
|
111
|
-
if (breaking)
|
|
112
|
-
return `${major + 1}.0`;
|
|
113
|
-
return `${major}.${minor + 1}`;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=contract-engine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contract-engine.js","sourceRoot":"","sources":["../../../../src/modules/engines/contract-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* [GOV] CRUD Governance Engine — Enterprise Administrative Operation Gate
|
|
3
|
-
*
|
|
4
|
-
* Implements the CRUD governance standards from templates/standards/crud-governance.md.
|
|
5
|
-
* Prevents specialist agents from performing high-risk operations autonomously.
|
|
6
|
-
*
|
|
7
|
-
* High-risk operations requiring @manager + human approval:
|
|
8
|
-
* 1. Database schema changes (DDL)
|
|
9
|
-
* 2. Bulk data deletion/purge
|
|
10
|
-
* 3. User authorization/role changes
|
|
11
|
-
* 4. Payment/billing integrations
|
|
12
|
-
* 5. PII export
|
|
13
|
-
* 6. Environment variable/secret changes
|
|
14
|
-
* 7. Production deployment
|
|
15
|
-
* 8. Force-push to shared branches
|
|
16
|
-
*/
|
|
17
|
-
export type HighRiskOperation = "SCHEMA_CHANGE" | "BULK_DELETE" | "ROLE_CHANGE" | "BILLING_CHANGE" | "PII_EXPORT" | "ENV_CHANGE" | "PRODUCTION_DEPLOY" | "FORCE_PUSH";
|
|
18
|
-
export interface HighRiskRequest {
|
|
19
|
-
operation: HighRiskOperation;
|
|
20
|
-
agent: string;
|
|
21
|
-
description: string;
|
|
22
|
-
traceId: string;
|
|
23
|
-
target?: string;
|
|
24
|
-
reason: string;
|
|
25
|
-
}
|
|
26
|
-
export interface GovernanceDecision {
|
|
27
|
-
allowed: boolean;
|
|
28
|
-
requiresApproval: boolean;
|
|
29
|
-
reason: string;
|
|
30
|
-
escalatedTo: string | null;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* CRUD Governance — enforces the enterprise administrative operation policy.
|
|
34
|
-
*
|
|
35
|
-
* Flow:
|
|
36
|
-
* 1. Agent requests a high-risk operation
|
|
37
|
-
* 2. GovernanceEngine checks if the agent is authorized
|
|
38
|
-
* 3. Unauthorized → escalates to @manager, sets requiresApproval=true
|
|
39
|
-
* 4. @manager reviews → if approved → human approval via `atabey approve`
|
|
40
|
-
* 5. Only after human approval → operation proceeds
|
|
41
|
-
*/
|
|
42
|
-
export declare class GovernanceEngine {
|
|
43
|
-
private static AUTHORIZED_AGENTS;
|
|
44
|
-
private static OPERATION_RISK;
|
|
45
|
-
/**
|
|
46
|
-
* Evaluates whether an agent is allowed to perform a high-risk operation.
|
|
47
|
-
* If unauthorized, escalates to @manager and requires human approval.
|
|
48
|
-
*/
|
|
49
|
-
static evaluate(agent: string, operation: HighRiskOperation, description: string, traceId: string): Promise<GovernanceDecision>;
|
|
50
|
-
/**
|
|
51
|
-
* Approves a previously escalated high-risk operation.
|
|
52
|
-
* Called by `atabey approve <traceId>` CLI command.
|
|
53
|
-
*/
|
|
54
|
-
static approve(operation: HighRiskOperation, traceId: string): Promise<boolean>;
|
|
55
|
-
/**
|
|
56
|
-
* Rejects a previously escalated high-risk operation.
|
|
57
|
-
*/
|
|
58
|
-
static reject(operation: HighRiskOperation, traceId: string, reason?: string): Promise<boolean>;
|
|
59
|
-
/**
|
|
60
|
-
* Detects high-risk operations from a natural language task description.
|
|
61
|
-
* Uses keyword matching to classify the operation type.
|
|
62
|
-
*/
|
|
63
|
-
static classifyTask(task: string): HighRiskOperation | null;
|
|
64
|
-
}
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* [GOV] CRUD Governance Engine — Enterprise Administrative Operation Gate
|
|
3
|
-
*
|
|
4
|
-
* Implements the CRUD governance standards from templates/standards/crud-governance.md.
|
|
5
|
-
* Prevents specialist agents from performing high-risk operations autonomously.
|
|
6
|
-
*
|
|
7
|
-
* High-risk operations requiring @manager + human approval:
|
|
8
|
-
* 1. Database schema changes (DDL)
|
|
9
|
-
* 2. Bulk data deletion/purge
|
|
10
|
-
* 3. User authorization/role changes
|
|
11
|
-
* 4. Payment/billing integrations
|
|
12
|
-
* 5. PII export
|
|
13
|
-
* 6. Environment variable/secret changes
|
|
14
|
-
* 7. Production deployment
|
|
15
|
-
* 8. Force-push to shared branches
|
|
16
|
-
*/
|
|
17
|
-
import { logger } from "../../shared/logger.js";
|
|
18
|
-
import { AtabeyStorage } from "../../shared/storage.js";
|
|
19
|
-
import { asAgentID, asTraceID } from "../../shared/types.js";
|
|
20
|
-
/**
|
|
21
|
-
* CRUD Governance — enforces the enterprise administrative operation policy.
|
|
22
|
-
*
|
|
23
|
-
* Flow:
|
|
24
|
-
* 1. Agent requests a high-risk operation
|
|
25
|
-
* 2. GovernanceEngine checks if the agent is authorized
|
|
26
|
-
* 3. Unauthorized → escalates to @manager, sets requiresApproval=true
|
|
27
|
-
* 4. @manager reviews → if approved → human approval via `atabey approve`
|
|
28
|
-
* 5. Only after human approval → operation proceeds
|
|
29
|
-
*/
|
|
30
|
-
export class GovernanceEngine {
|
|
31
|
-
// Agents authorized to perform each operation type
|
|
32
|
-
static AUTHORIZED_AGENTS = {
|
|
33
|
-
SCHEMA_CHANGE: ["@manager", "@database", "@architect"],
|
|
34
|
-
BULK_DELETE: ["@manager"],
|
|
35
|
-
ROLE_CHANGE: ["@manager"],
|
|
36
|
-
BILLING_CHANGE: ["@manager"],
|
|
37
|
-
PII_EXPORT: ["@manager", "@security"],
|
|
38
|
-
ENV_CHANGE: ["@manager", "@devops"],
|
|
39
|
-
PRODUCTION_DEPLOY: ["@manager", "@devops"],
|
|
40
|
-
FORCE_PUSH: ["@manager", "@git"],
|
|
41
|
-
};
|
|
42
|
-
// Risk weight for each operation (used by RiskEngine)
|
|
43
|
-
static OPERATION_RISK = {
|
|
44
|
-
SCHEMA_CHANGE: 70,
|
|
45
|
-
BULK_DELETE: 90,
|
|
46
|
-
ROLE_CHANGE: 80,
|
|
47
|
-
BILLING_CHANGE: 85,
|
|
48
|
-
PII_EXPORT: 95,
|
|
49
|
-
ENV_CHANGE: 75,
|
|
50
|
-
PRODUCTION_DEPLOY: 80,
|
|
51
|
-
FORCE_PUSH: 60,
|
|
52
|
-
};
|
|
53
|
-
/**
|
|
54
|
-
* Evaluates whether an agent is allowed to perform a high-risk operation.
|
|
55
|
-
* If unauthorized, escalates to @manager and requires human approval.
|
|
56
|
-
*/
|
|
57
|
-
static async evaluate(agent, operation, description, traceId) {
|
|
58
|
-
const normalizedAgent = agent.startsWith("@") ? agent : `@${agent}`;
|
|
59
|
-
const authorizedAgents = GovernanceEngine.AUTHORIZED_AGENTS[operation];
|
|
60
|
-
// Check if agent is authorized
|
|
61
|
-
if (!authorizedAgents.includes(normalizedAgent)) {
|
|
62
|
-
const escalationMsg = `[GOV] ${normalizedAgent} attempted ${operation} — UNAUTHORIZED. Escalated to @manager.`;
|
|
63
|
-
logger.warn(escalationMsg);
|
|
64
|
-
// Log the violation
|
|
65
|
-
AtabeyStorage.saveLog({
|
|
66
|
-
agent: normalizedAgent.replace("@", ""),
|
|
67
|
-
action: "GOVERNANCE_VIOLATION",
|
|
68
|
-
trace_id: traceId,
|
|
69
|
-
status: "BLOCKED",
|
|
70
|
-
summary: `${normalizedAgent} attempted unauthorized ${operation}: ${description}`
|
|
71
|
-
});
|
|
72
|
-
// Escalate to @manager via Hermes
|
|
73
|
-
AtabeyStorage.saveMessage({
|
|
74
|
-
from: asAgentID(normalizedAgent),
|
|
75
|
-
to: asAgentID("@manager"),
|
|
76
|
-
category: "ALERT",
|
|
77
|
-
content: `[GOVERNANCE] High-risk operation ${operation} requested by ${normalizedAgent}: ${description}. Requires your review and human approval.`,
|
|
78
|
-
traceId: asTraceID(traceId),
|
|
79
|
-
timestamp: new Date().toISOString(),
|
|
80
|
-
status: "PENDING",
|
|
81
|
-
priority: "HIGH",
|
|
82
|
-
requiresApproval: true,
|
|
83
|
-
});
|
|
84
|
-
return {
|
|
85
|
-
allowed: false,
|
|
86
|
-
requiresApproval: true,
|
|
87
|
-
reason: `${normalizedAgent} is not authorized for ${operation}. Escalated to @manager. Human approval required.`,
|
|
88
|
-
escalatedTo: "@manager",
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
// Authorized but still high-risk — requires human approval
|
|
92
|
-
const riskScore = GovernanceEngine.OPERATION_RISK[operation];
|
|
93
|
-
AtabeyStorage.saveLog({
|
|
94
|
-
agent: normalizedAgent.replace("@", ""),
|
|
95
|
-
action: "GOVERNANCE_APPROVAL_REQUIRED",
|
|
96
|
-
trace_id: traceId,
|
|
97
|
-
status: "PENDING",
|
|
98
|
-
summary: `${normalizedAgent} requested ${operation} (risk: ${riskScore}). Human approval required.`
|
|
99
|
-
});
|
|
100
|
-
// Send approval request to @manager
|
|
101
|
-
AtabeyStorage.saveMessage({
|
|
102
|
-
from: asAgentID(normalizedAgent),
|
|
103
|
-
to: asAgentID("@manager"),
|
|
104
|
-
category: "ACTION",
|
|
105
|
-
content: `[APPROVAL REQUIRED] ${operation}: ${description} (risk score: ${riskScore}). Agent: ${normalizedAgent}`,
|
|
106
|
-
traceId: asTraceID(traceId),
|
|
107
|
-
timestamp: new Date().toISOString(),
|
|
108
|
-
status: "PENDING",
|
|
109
|
-
priority: "HIGH",
|
|
110
|
-
requiresApproval: true,
|
|
111
|
-
});
|
|
112
|
-
return {
|
|
113
|
-
allowed: false,
|
|
114
|
-
requiresApproval: true,
|
|
115
|
-
reason: `${operation} requires human approval (risk score: ${riskScore}). Approval request sent to @manager.`,
|
|
116
|
-
escalatedTo: "@manager",
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Approves a previously escalated high-risk operation.
|
|
121
|
-
* Called by `atabey approve <traceId>` CLI command.
|
|
122
|
-
*/
|
|
123
|
-
static async approve(operation, traceId) {
|
|
124
|
-
logger.info(`[GOV] Operation ${operation} approved for trace ${traceId}`);
|
|
125
|
-
AtabeyStorage.saveLog({
|
|
126
|
-
agent: "@human",
|
|
127
|
-
action: "GOVERNANCE_APPROVED",
|
|
128
|
-
trace_id: traceId,
|
|
129
|
-
status: "SUCCESS",
|
|
130
|
-
summary: `Human approved ${operation} for trace ${traceId}`
|
|
131
|
-
});
|
|
132
|
-
return true;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Rejects a previously escalated high-risk operation.
|
|
136
|
-
*/
|
|
137
|
-
static async reject(operation, traceId, reason) {
|
|
138
|
-
logger.warn(`[GOV] Operation ${operation} REJECTED for trace ${traceId}: ${reason || "No reason given"}`);
|
|
139
|
-
AtabeyStorage.saveLog({
|
|
140
|
-
agent: "@human",
|
|
141
|
-
action: "GOVERNANCE_REJECTED",
|
|
142
|
-
trace_id: traceId,
|
|
143
|
-
status: "FAILED",
|
|
144
|
-
summary: `Human rejected ${operation} for trace ${traceId}: ${reason || "No reason"}`
|
|
145
|
-
});
|
|
146
|
-
return false;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Detects high-risk operations from a natural language task description.
|
|
150
|
-
* Uses keyword matching to classify the operation type.
|
|
151
|
-
*/
|
|
152
|
-
static classifyTask(task) {
|
|
153
|
-
const lower = task.toLowerCase();
|
|
154
|
-
if (/\b(drop|truncate|alter|create\s+table|migration|schema)\b/i.test(task) &&
|
|
155
|
-
/\b(database|table|column|index)\b/i.test(lower)) {
|
|
156
|
-
return "SCHEMA_CHANGE";
|
|
157
|
-
}
|
|
158
|
-
if (/\b(delete\s+all|purge\s+all|bulk\s+delete|clear\s+all|truncate)\b/i.test(task)) {
|
|
159
|
-
return "BULK_DELETE";
|
|
160
|
-
}
|
|
161
|
-
if (/\b(role|permission|authorization|user\s+role|admin)\b/i.test(task) &&
|
|
162
|
-
/\b(change|modify|update|create|delete|assign)\b/i.test(lower)) {
|
|
163
|
-
return "ROLE_CHANGE";
|
|
164
|
-
}
|
|
165
|
-
if (/\b(billing|payment|invoice|subscription|pricing)\b/i.test(task)) {
|
|
166
|
-
return "BILLING_CHANGE";
|
|
167
|
-
}
|
|
168
|
-
if (/\b(pii|personal\s+data|export\s+user|gdpr|kvkk|privacy)\b/i.test(task)) {
|
|
169
|
-
return "PII_EXPORT";
|
|
170
|
-
}
|
|
171
|
-
if (/\b(environment|env\s+var|secret|api\s+key)\b/i.test(task) &&
|
|
172
|
-
/\b(change|update|modify|rotate|set)\b/i.test(lower)) {
|
|
173
|
-
return "ENV_CHANGE";
|
|
174
|
-
}
|
|
175
|
-
if (/\b(deploy|release|production|prod)\b/i.test(task)) {
|
|
176
|
-
return "PRODUCTION_DEPLOY";
|
|
177
|
-
}
|
|
178
|
-
if (/\b(force\s+push|rewrite\s+history|git\s+push\s+--force)\b/i.test(task)) {
|
|
179
|
-
return "FORCE_PUSH";
|
|
180
|
-
}
|
|
181
|
-
return null;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
//# sourceMappingURL=crud-governance.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crud-governance.js","sourceRoot":"","sources":["../../../../src/modules/engines/crud-governance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* [ENGINE] Architecture Discovery Protocol (ADP)
|
|
3
|
-
*
|
|
4
|
-
* Implements the ADP from ATABEY_FULL.md:
|
|
5
|
-
* 1. Entry Point Hunt — find main entry points (index.ts, main.ts, server.ts)
|
|
6
|
-
* 2. Business Logic Mapping — search for service/repository/controller patterns
|
|
7
|
-
* 3. Contract Analysis — locate type definitions and API schemas
|
|
8
|
-
* 4. Adaptive Scaffolding — propose architectural improvements before coding
|
|
9
|
-
*/
|
|
10
|
-
export interface DiscoveryResult {
|
|
11
|
-
entryPoints: string[];
|
|
12
|
-
businessLogic: string[];
|
|
13
|
-
contracts: string[];
|
|
14
|
-
architecture: string;
|
|
15
|
-
recommendations: string[];
|
|
16
|
-
}
|
|
17
|
-
export declare class DiscoveryEngine {
|
|
18
|
-
/**
|
|
19
|
-
* Runs the full Architecture Discovery Protocol on a project.
|
|
20
|
-
*/
|
|
21
|
-
static discover(projectRoot: string): Promise<DiscoveryResult>;
|
|
22
|
-
/**
|
|
23
|
-
* Step 1: Entry Point Hunt — find main entry points.
|
|
24
|
-
*/
|
|
25
|
-
static findEntryPoints(projectRoot: string): string[];
|
|
26
|
-
/**
|
|
27
|
-
* Step 2: Business Logic Mapping — find service/repository/controller patterns.
|
|
28
|
-
*/
|
|
29
|
-
static mapBusinessLogic(projectRoot: string): string[];
|
|
30
|
-
/**
|
|
31
|
-
* Step 3: Contract Analysis — find type definitions and API schemas.
|
|
32
|
-
*/
|
|
33
|
-
static analyzeContracts(projectRoot: string): string[];
|
|
34
|
-
/**
|
|
35
|
-
* Detects the project architecture type.
|
|
36
|
-
*/
|
|
37
|
-
static detectArchitecture(projectRoot: string): string;
|
|
38
|
-
/**
|
|
39
|
-
* Generates recommendations based on discovery results.
|
|
40
|
-
*/
|
|
41
|
-
static generateRecommendations(entryPoints: string[], businessLogic: string[], contracts: string[], architecture: string): string[];
|
|
42
|
-
}
|