atabey 0.0.22 → 0.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ATABEY.md +6 -1
- package/README.md +3 -3
- package/dist/atabey/src/cli/commands/dashboard.js +20 -19
- package/dist/atabey/src/cli/commands/dashboard.js.map +1 -1
- package/dist/atabey/src/cli/commands/index-codebase.js +1 -1
- package/dist/atabey/src/cli/commands/index-codebase.js.map +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-core.js +10 -1
- package/dist/atabey/src/cli/commands/init/scaffold-core.js.map +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-docs.js +2 -2
- package/dist/atabey/src/cli/commands/init/scaffold-docs.js.map +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-standards.js +1 -1
- package/dist/atabey/src/cli/commands/init.js +12 -18
- package/dist/atabey/src/cli/commands/init.js.map +1 -1
- package/dist/atabey/src/cli/commands/mcp.js +1 -1
- package/dist/atabey/src/cli/commands/mcp.js.map +1 -1
- package/dist/atabey/src/cli/commands/orchestrate.d.ts +8 -8
- package/dist/atabey/src/cli/index.js +50 -3
- package/dist/atabey/src/cli/index.js.map +1 -1
- package/dist/atabey/src/cli/utils/config-schema.d.ts +19 -19
- package/dist/atabey/src/cli/utils/i18n.d.ts +9 -4
- package/dist/atabey/src/cli/utils/i18n.js +26 -31
- package/dist/atabey/src/cli/utils/i18n.js.map +1 -1
- package/dist/atabey/src/cli/utils/pkg.js +3 -2
- package/dist/atabey/src/cli/utils/pkg.js.map +1 -1
- package/dist/atabey/src/cli/utils/schemas.d.ts +6 -6
- package/dist/atabey/src/cli/utils/validate-registry.js +5 -4
- package/dist/atabey/src/cli/utils/validate-registry.js.map +1 -1
- package/dist/atabey/src/contracts/tasks.d.ts +4 -4
- package/dist/atabey/src/modules/agents/registry/manager.js +1 -1
- package/dist/atabey/src/modules/agents/registry/security.js +1 -1
- package/dist/atabey/src/modules/agents/registry/security.js.map +1 -1
- package/dist/atabey/src/modules/contracts/api.d.ts +6 -6
- package/dist/atabey/src/modules/engines/agent-executor.js +82 -47
- package/dist/atabey/src/modules/engines/agent-executor.js.map +1 -1
- package/dist/atabey/src/modules/engines/agent-loop.d.ts +5 -2
- package/dist/atabey/src/modules/engines/agent-loop.js +39 -13
- package/dist/atabey/src/modules/engines/agent-loop.js.map +1 -1
- package/dist/atabey/src/modules/engines/file-lock.d.ts +18 -8
- package/dist/atabey/src/modules/engines/file-lock.js +95 -101
- package/dist/atabey/src/modules/engines/file-lock.js.map +1 -1
- package/dist/atabey/src/modules/engines/policy-engine.js +5 -3
- package/dist/atabey/src/modules/engines/policy-engine.js.map +1 -1
- package/dist/atabey/src/modules/engines/routing-engine.d.ts +3 -0
- package/dist/atabey/src/modules/engines/routing-engine.js +14 -4
- package/dist/atabey/src/modules/engines/routing-engine.js.map +1 -1
- package/dist/atabey/src/modules/engines/sandbox.d.ts +31 -0
- package/dist/atabey/src/modules/engines/sandbox.js +57 -0
- package/dist/atabey/src/modules/engines/sandbox.js.map +1 -0
- package/dist/atabey/src/modules/engines/worker-pool.d.ts +8 -0
- package/dist/atabey/src/modules/engines/worker-pool.js +9 -0
- package/dist/atabey/src/modules/engines/worker-pool.js.map +1 -0
- package/dist/atabey/src/modules/engines/worker-script.d.ts +8 -0
- package/dist/atabey/src/modules/engines/worker-script.js +99 -0
- package/dist/atabey/src/modules/engines/worker-script.js.map +1 -0
- package/dist/atabey/src/modules/memory/core.js +1 -1
- package/dist/atabey/src/modules/memory/core.js.map +1 -1
- package/dist/atabey/src/shared/file-lock.d.ts +1 -0
- package/dist/atabey/src/shared/file-lock.js +2 -0
- package/dist/atabey/src/shared/file-lock.js.map +1 -0
- package/dist/atabey/src/shared/job-queue.d.ts +1 -0
- package/dist/atabey/src/shared/job-queue.js +2 -0
- package/dist/atabey/src/shared/job-queue.js.map +1 -0
- package/dist/atabey/src/shared/resilience.d.ts +1 -0
- package/dist/atabey/src/shared/resilience.js +2 -0
- package/dist/atabey/src/shared/resilience.js.map +1 -0
- package/dist/atabey/src/shared/sandbox-runtime.d.ts +1 -0
- package/dist/atabey/src/shared/sandbox-runtime.js +2 -0
- package/dist/atabey/src/shared/sandbox-runtime.js.map +1 -0
- package/dist/atabey/src/shared/sandbox.d.ts +1 -0
- package/dist/atabey/src/shared/sandbox.js +2 -0
- package/dist/atabey/src/shared/sandbox.js.map +1 -0
- package/dist/atabey/src/shared/storage.d.ts +8 -0
- package/dist/atabey/src/shared/storage.js +51 -40
- package/dist/atabey/src/shared/storage.js.map +1 -1
- package/dist/atabey/src/shared/worker-pool.d.ts +1 -0
- package/dist/atabey/src/shared/worker-pool.js +2 -0
- package/dist/atabey/src/shared/worker-pool.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/auto-rollback.js +114 -5
- package/dist/atabey-mcp/src/mcp/utils/auto-rollback.js.map +1 -1
- package/dist/atabey-mcp/src/mcp/utils/loop-detector.d.ts +1 -0
- package/dist/atabey-mcp/src/mcp/utils/loop-detector.js +57 -6
- package/dist/atabey-mcp/src/mcp/utils/loop-detector.js.map +1 -1
- package/dist/atabey-mcp/src/shared/storage.d.ts +9 -0
- package/dist/atabey-mcp/src/shared/storage.js +51 -0
- package/dist/atabey-mcp/src/shared/storage.js.map +1 -1
- package/dist/shared/src/audit-chain.d.ts +51 -0
- package/dist/shared/src/audit-chain.js +85 -0
- package/dist/shared/src/audit-chain.js.map +1 -0
- package/dist/shared/src/audit.d.ts +8 -0
- package/dist/shared/src/audit.js +82 -18
- package/dist/shared/src/audit.js.map +1 -1
- package/dist/shared/src/file-lock.d.ts +85 -0
- package/dist/shared/src/file-lock.js +246 -0
- package/dist/shared/src/file-lock.js.map +1 -0
- package/dist/shared/src/index.d.ts +9 -0
- package/dist/shared/src/index.js +9 -0
- package/dist/shared/src/index.js.map +1 -1
- package/dist/shared/src/job-queue.d.ts +53 -0
- package/dist/shared/src/job-queue.js +127 -0
- package/dist/shared/src/job-queue.js.map +1 -0
- package/dist/shared/src/policy-gate.d.ts +42 -0
- package/dist/shared/src/policy-gate.js +148 -0
- package/dist/shared/src/policy-gate.js.map +1 -0
- package/dist/shared/src/resilience.d.ts +84 -0
- package/dist/shared/src/resilience.js +217 -0
- package/dist/shared/src/resilience.js.map +1 -0
- package/dist/shared/src/sandbox-fs.d.ts +28 -0
- package/dist/shared/src/sandbox-fs.js +148 -0
- package/dist/shared/src/sandbox-fs.js.map +1 -0
- package/dist/shared/src/sandbox-runtime.d.ts +85 -0
- package/dist/shared/src/sandbox-runtime.js +250 -0
- package/dist/shared/src/sandbox-runtime.js.map +1 -0
- package/dist/shared/src/sandbox.d.ts +54 -0
- package/dist/shared/src/sandbox.js +179 -0
- package/dist/shared/src/sandbox.js.map +1 -0
- package/dist/shared/src/worker-pool.d.ts +52 -0
- package/dist/shared/src/worker-pool.js +210 -0
- package/dist/shared/src/worker-pool.js.map +1 -0
- package/dist/shared/src/worker-thread.d.ts +21 -0
- package/dist/shared/src/worker-thread.js +67 -0
- package/dist/shared/src/worker-thread.js.map +1 -0
- package/dist/src/cli/commands/approve.d.ts +1 -0
- package/dist/src/cli/commands/approve.js +64 -0
- package/dist/src/cli/commands/approve.js.map +1 -0
- package/dist/src/cli/commands/check.d.ts +1 -0
- package/dist/src/cli/commands/check.js +339 -0
- package/dist/src/cli/commands/check.js.map +1 -0
- package/dist/src/cli/commands/compliance.d.ts +5 -0
- package/dist/src/cli/commands/compliance.js +43 -0
- package/dist/src/cli/commands/compliance.js.map +1 -0
- package/dist/src/cli/commands/contract.d.ts +10 -0
- package/dist/src/cli/commands/contract.js +52 -0
- package/dist/src/cli/commands/contract.js.map +1 -0
- package/dist/src/cli/commands/coverage.d.ts +1 -0
- package/dist/src/cli/commands/coverage.js +121 -0
- package/dist/src/cli/commands/coverage.js.map +1 -0
- package/dist/src/cli/commands/dashboard.d.ts +5 -0
- package/dist/src/cli/commands/dashboard.js +753 -0
- package/dist/src/cli/commands/dashboard.js.map +1 -0
- package/dist/src/cli/commands/explorer.d.ts +2 -0
- package/dist/src/cli/commands/explorer.js +44 -0
- package/dist/src/cli/commands/explorer.js.map +1 -0
- package/dist/src/cli/commands/git.d.ts +2 -0
- package/dist/src/cli/commands/git.js +40 -0
- package/dist/src/cli/commands/git.js.map +1 -0
- package/dist/src/cli/commands/index-codebase.d.ts +4 -0
- package/dist/src/cli/commands/index-codebase.js +63 -0
- package/dist/src/cli/commands/index-codebase.js.map +1 -0
- package/dist/src/cli/commands/init/create-agent.d.ts +4 -0
- package/dist/src/cli/commands/init/create-agent.js +59 -0
- package/dist/src/cli/commands/init/create-agent.js.map +1 -0
- package/dist/src/cli/commands/init/scaffold-core.d.ts +13 -0
- package/dist/src/cli/commands/init/scaffold-core.js +188 -0
- package/dist/src/cli/commands/init/scaffold-core.js.map +1 -0
- package/dist/src/cli/commands/init/scaffold-docs.d.ts +4 -0
- package/dist/src/cli/commands/init/scaffold-docs.js +36 -0
- package/dist/src/cli/commands/init/scaffold-docs.js.map +1 -0
- package/dist/src/cli/commands/init/scaffold-ops.d.ts +1 -0
- package/dist/src/cli/commands/init/scaffold-ops.js +81 -0
- package/dist/src/cli/commands/init/scaffold-ops.js.map +1 -0
- package/dist/src/cli/commands/init/scaffold-standards.d.ts +2 -0
- package/dist/src/cli/commands/init/scaffold-standards.js +84 -0
- package/dist/src/cli/commands/init/scaffold-standards.js.map +1 -0
- package/dist/src/cli/commands/init.d.ts +11 -0
- package/dist/src/cli/commands/init.js +371 -0
- package/dist/src/cli/commands/init.js.map +1 -0
- package/dist/src/cli/commands/knowledge.d.ts +2 -0
- package/dist/src/cli/commands/knowledge.js +16 -0
- package/dist/src/cli/commands/knowledge.js.map +1 -0
- package/dist/src/cli/commands/lint.d.ts +4 -0
- package/dist/src/cli/commands/lint.js +24 -0
- package/dist/src/cli/commands/lint.js.map +1 -0
- package/dist/src/cli/commands/log.d.ts +10 -0
- package/dist/src/cli/commands/log.js +14 -0
- package/dist/src/cli/commands/log.js.map +1 -0
- package/dist/src/cli/commands/mcp.d.ts +11 -0
- package/dist/src/cli/commands/mcp.js +128 -0
- package/dist/src/cli/commands/mcp.js.map +1 -0
- package/dist/src/cli/commands/memory.d.ts +1 -0
- package/dist/src/cli/commands/memory.js +5 -0
- package/dist/src/cli/commands/memory.js.map +1 -0
- package/dist/src/cli/commands/orchestrate.d.ts +62 -0
- package/dist/src/cli/commands/orchestrate.js +263 -0
- package/dist/src/cli/commands/orchestrate.js.map +1 -0
- package/dist/src/cli/commands/plan.d.ts +11 -0
- package/dist/src/cli/commands/plan.js +120 -0
- package/dist/src/cli/commands/plan.js.map +1 -0
- package/dist/src/cli/commands/quickstart.d.ts +9 -0
- package/dist/src/cli/commands/quickstart.js +60 -0
- package/dist/src/cli/commands/quickstart.js.map +1 -0
- package/dist/src/cli/commands/script.d.ts +1 -0
- package/dist/src/cli/commands/script.js +28 -0
- package/dist/src/cli/commands/script.js.map +1 -0
- package/dist/src/cli/commands/security.d.ts +1 -0
- package/dist/src/cli/commands/security.js +34 -0
- package/dist/src/cli/commands/security.js.map +1 -0
- package/dist/src/cli/commands/status.d.ts +4 -0
- package/dist/src/cli/commands/status.js +122 -0
- package/dist/src/cli/commands/status.js.map +1 -0
- package/dist/src/cli/commands/trace.d.ts +10 -0
- package/dist/src/cli/commands/trace.js +108 -0
- package/dist/src/cli/commands/trace.js.map +1 -0
- package/dist/src/cli/index.d.ts +2 -0
- package/dist/src/cli/index.js +289 -0
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cli/platforms/core.d.ts +16 -0
- package/dist/src/cli/platforms/core.js +77 -0
- package/dist/src/cli/platforms/core.js.map +1 -0
- package/dist/src/cli/platforms/index.d.ts +5 -0
- package/dist/src/cli/platforms/index.js +6 -0
- package/dist/src/cli/platforms/index.js.map +1 -0
- package/dist/src/cli/platforms/paths.d.ts +15 -0
- package/dist/src/cli/platforms/paths.js +102 -0
- package/dist/src/cli/platforms/paths.js.map +1 -0
- package/dist/src/cli/platforms/scaffold.d.ts +2 -0
- package/dist/src/cli/platforms/scaffold.js +73 -0
- package/dist/src/cli/platforms/scaffold.js.map +1 -0
- package/dist/src/cli/platforms/utils.d.ts +4 -0
- package/dist/src/cli/platforms/utils.js +76 -0
- package/dist/src/cli/platforms/utils.js.map +1 -0
- package/dist/src/cli/shims.d.ts +1 -0
- package/dist/src/cli/shims.js +67 -0
- package/dist/src/cli/shims.js.map +1 -0
- package/dist/src/cli/utils/claude.d.ts +8 -0
- package/dist/src/cli/utils/claude.js +58 -0
- package/dist/src/cli/utils/claude.js.map +1 -0
- package/dist/src/cli/utils/compliance.d.ts +42 -0
- package/dist/src/cli/utils/compliance.js +150 -0
- package/dist/src/cli/utils/compliance.js.map +1 -0
- package/dist/src/cli/utils/config-schema.d.ts +256 -0
- package/dist/src/cli/utils/config-schema.js +67 -0
- package/dist/src/cli/utils/config-schema.js.map +1 -0
- package/dist/src/cli/utils/fs.d.ts +10 -0
- package/dist/src/cli/utils/fs.js +139 -0
- package/dist/src/cli/utils/fs.js.map +1 -0
- package/dist/src/cli/utils/i18n.d.ts +21 -0
- package/dist/src/cli/utils/i18n.js +36 -0
- package/dist/src/cli/utils/i18n.js.map +1 -0
- package/dist/src/cli/utils/memory.d.ts +45 -0
- package/dist/src/cli/utils/memory.js +339 -0
- package/dist/src/cli/utils/memory.js.map +1 -0
- package/dist/src/cli/utils/pkg.d.ts +42 -0
- package/dist/src/cli/utils/pkg.js +281 -0
- package/dist/src/cli/utils/pkg.js.map +1 -0
- package/dist/src/cli/utils/quality.d.ts +25 -0
- package/dist/src/cli/utils/quality.js +61 -0
- package/dist/src/cli/utils/quality.js.map +1 -0
- package/dist/src/cli/utils/schemas.d.ts +49 -0
- package/dist/src/cli/utils/schemas.js +20 -0
- package/dist/src/cli/utils/schemas.js.map +1 -0
- package/dist/src/cli/utils/string.d.ts +7 -0
- package/dist/src/cli/utils/string.js +50 -0
- package/dist/src/cli/utils/string.js.map +1 -0
- package/dist/src/cli/utils/time.d.ts +2 -0
- package/dist/src/cli/utils/time.js +28 -0
- package/dist/src/cli/utils/time.js.map +1 -0
- package/dist/src/cli/utils/ui.d.ts +53 -0
- package/dist/src/cli/utils/ui.js +101 -0
- package/dist/src/cli/utils/ui.js.map +1 -0
- package/dist/src/cli/utils/validate-registry.d.ts +4 -0
- package/dist/src/cli/utils/validate-registry.js +130 -0
- package/dist/src/cli/utils/validate-registry.js.map +1 -0
- package/dist/src/contracts/index.d.ts +1 -0
- package/dist/src/contracts/index.js +2 -0
- package/dist/src/contracts/index.js.map +1 -0
- package/dist/src/contracts/tasks.d.ts +44 -0
- package/dist/src/contracts/tasks.js +21 -0
- package/dist/src/contracts/tasks.js.map +1 -0
- package/dist/src/modules/agents/definitions.d.ts +26 -0
- package/dist/src/modules/agents/definitions.js +559 -0
- package/dist/src/modules/agents/definitions.js.map +1 -0
- package/dist/src/modules/agents/registry/analyst.d.ts +2 -0
- package/dist/src/modules/agents/registry/analyst.js +40 -0
- package/dist/src/modules/agents/registry/analyst.js.map +1 -0
- package/dist/src/modules/agents/registry/architect.d.ts +2 -0
- package/dist/src/modules/agents/registry/architect.js +43 -0
- package/dist/src/modules/agents/registry/architect.js.map +1 -0
- package/dist/src/modules/agents/registry/backend.d.ts +2 -0
- package/dist/src/modules/agents/registry/backend.js +51 -0
- package/dist/src/modules/agents/registry/backend.js.map +1 -0
- package/dist/src/modules/agents/registry/database.d.ts +2 -0
- package/dist/src/modules/agents/registry/database.js +46 -0
- package/dist/src/modules/agents/registry/database.js.map +1 -0
- package/dist/src/modules/agents/registry/devops.d.ts +2 -0
- package/dist/src/modules/agents/registry/devops.js +46 -0
- package/dist/src/modules/agents/registry/devops.js.map +1 -0
- package/dist/src/modules/agents/registry/explorer.d.ts +2 -0
- package/dist/src/modules/agents/registry/explorer.js +38 -0
- package/dist/src/modules/agents/registry/explorer.js.map +1 -0
- package/dist/src/modules/agents/registry/frontend.d.ts +2 -0
- package/dist/src/modules/agents/registry/frontend.js +53 -0
- package/dist/src/modules/agents/registry/frontend.js.map +1 -0
- package/dist/src/modules/agents/registry/git.d.ts +2 -0
- package/dist/src/modules/agents/registry/git.js +37 -0
- package/dist/src/modules/agents/registry/git.js.map +1 -0
- package/dist/src/modules/agents/registry/manager.d.ts +2 -0
- package/dist/src/modules/agents/registry/manager.js +65 -0
- package/dist/src/modules/agents/registry/manager.js.map +1 -0
- package/dist/src/modules/agents/registry/mobile.d.ts +2 -0
- package/dist/src/modules/agents/registry/mobile.js +42 -0
- package/dist/src/modules/agents/registry/mobile.js.map +1 -0
- package/dist/src/modules/agents/registry/native.d.ts +2 -0
- package/dist/src/modules/agents/registry/native.js +42 -0
- package/dist/src/modules/agents/registry/native.js.map +1 -0
- package/dist/src/modules/agents/registry/quality.d.ts +2 -0
- package/dist/src/modules/agents/registry/quality.js +44 -0
- package/dist/src/modules/agents/registry/quality.js.map +1 -0
- package/dist/src/modules/agents/registry/security.d.ts +2 -0
- package/dist/src/modules/agents/registry/security.js +43 -0
- package/dist/src/modules/agents/registry/security.js.map +1 -0
- package/dist/src/modules/agents/types.d.ts +33 -0
- package/dist/src/modules/agents/types.js +2 -0
- package/dist/src/modules/agents/types.js.map +1 -0
- package/dist/src/modules/contracts/api.d.ts +178 -0
- package/dist/src/modules/contracts/api.js +56 -0
- package/dist/src/modules/contracts/api.js.map +1 -0
- package/dist/src/modules/contracts/index.d.ts +5 -0
- package/dist/src/modules/contracts/index.js +6 -0
- package/dist/src/modules/contracts/index.js.map +1 -0
- package/dist/src/modules/engines/agent-executor.d.ts +46 -0
- package/dist/src/modules/engines/agent-executor.js +241 -0
- package/dist/src/modules/engines/agent-executor.js.map +1 -0
- package/dist/src/modules/engines/agent-loop.d.ts +34 -0
- package/dist/src/modules/engines/agent-loop.js +102 -0
- package/dist/src/modules/engines/agent-loop.js.map +1 -0
- package/dist/src/modules/engines/contract-engine.d.ts +46 -0
- package/dist/src/modules/engines/contract-engine.js +116 -0
- package/dist/src/modules/engines/contract-engine.js.map +1 -0
- package/dist/src/modules/engines/crud-governance.d.ts +66 -0
- package/dist/src/modules/engines/crud-governance.js +219 -0
- package/dist/src/modules/engines/crud-governance.js.map +1 -0
- package/dist/src/modules/engines/discovery-engine.d.ts +42 -0
- package/dist/src/modules/engines/discovery-engine.js +161 -0
- package/dist/src/modules/engines/discovery-engine.js.map +1 -0
- package/dist/src/modules/engines/evaluation-engine.d.ts +18 -0
- package/dist/src/modules/engines/evaluation-engine.js +171 -0
- package/dist/src/modules/engines/evaluation-engine.js.map +1 -0
- package/dist/src/modules/engines/file-lock.d.ts +41 -0
- package/dist/src/modules/engines/file-lock.js +168 -0
- package/dist/src/modules/engines/file-lock.js.map +1 -0
- package/dist/src/modules/engines/health-engine.d.ts +22 -0
- package/dist/src/modules/engines/health-engine.js +127 -0
- package/dist/src/modules/engines/health-engine.js.map +1 -0
- package/dist/src/modules/engines/phase-engine.d.ts +82 -0
- package/dist/src/modules/engines/phase-engine.js +211 -0
- package/dist/src/modules/engines/phase-engine.js.map +1 -0
- package/dist/src/modules/engines/planning-engine.d.ts +25 -0
- package/dist/src/modules/engines/planning-engine.js +80 -0
- package/dist/src/modules/engines/planning-engine.js.map +1 -0
- package/dist/src/modules/engines/policy-engine.d.ts +63 -0
- package/dist/src/modules/engines/policy-engine.js +186 -0
- package/dist/src/modules/engines/policy-engine.js.map +1 -0
- package/dist/src/modules/engines/quality-gate.d.ts +31 -0
- package/dist/src/modules/engines/quality-gate.js +95 -0
- package/dist/src/modules/engines/quality-gate.js.map +1 -0
- package/dist/src/modules/engines/risk-engine.d.ts +34 -0
- package/dist/src/modules/engines/risk-engine.js +201 -0
- package/dist/src/modules/engines/risk-engine.js.map +1 -0
- package/dist/src/modules/engines/routing-engine.d.ts +96 -0
- package/dist/src/modules/engines/routing-engine.js +505 -0
- package/dist/src/modules/engines/routing-engine.js.map +1 -0
- package/dist/src/modules/engines/session-engine.d.ts +68 -0
- package/dist/src/modules/engines/session-engine.js +141 -0
- package/dist/src/modules/engines/session-engine.js.map +1 -0
- package/dist/src/modules/engines/types.d.ts +51 -0
- package/dist/src/modules/engines/types.js +2 -0
- package/dist/src/modules/engines/types.js.map +1 -0
- package/dist/src/modules/memory/core.d.ts +42 -0
- package/dist/src/modules/memory/core.js +100 -0
- package/dist/src/modules/memory/core.js.map +1 -0
- package/dist/src/modules/memory/embedding.d.ts +28 -0
- package/dist/src/modules/memory/embedding.js +131 -0
- package/dist/src/modules/memory/embedding.js.map +1 -0
- package/dist/src/modules/memory/types.d.ts +18 -0
- package/dist/src/modules/memory/types.js +2 -0
- package/dist/src/modules/memory/types.js.map +1 -0
- package/dist/src/modules/memory/vector-store.d.ts +13 -0
- package/dist/src/modules/memory/vector-store.js +75 -0
- package/dist/src/modules/memory/vector-store.js.map +1 -0
- package/dist/src/modules/providers/definitions.d.ts +9 -0
- package/dist/src/modules/providers/definitions.js +141 -0
- package/dist/src/modules/providers/definitions.js.map +1 -0
- package/dist/src/modules/providers/llm-provider.d.ts +87 -0
- package/dist/src/modules/providers/llm-provider.js +242 -0
- package/dist/src/modules/providers/llm-provider.js.map +1 -0
- package/dist/src/modules/providers/registry.d.ts +12 -0
- package/dist/src/modules/providers/registry.js +19 -0
- package/dist/src/modules/providers/registry.js.map +1 -0
- package/dist/src/modules/providers/shared.d.ts +1 -0
- package/dist/src/modules/providers/shared.js +104 -0
- package/dist/src/modules/providers/shared.js.map +1 -0
- package/dist/src/modules/providers/types.d.ts +14 -0
- package/dist/src/modules/providers/types.js +2 -0
- package/dist/src/modules/providers/types.js.map +1 -0
- package/dist/src/modules/skills/adapter-skills.d.ts +70 -0
- package/dist/src/modules/skills/adapter-skills.js +450 -0
- package/dist/src/modules/skills/adapter-skills.js.map +1 -0
- package/dist/src/modules/skills/definitions.d.ts +48 -0
- package/dist/src/modules/skills/definitions.js +71 -0
- package/dist/src/modules/skills/definitions.js.map +1 -0
- package/dist/src/shared/audit.d.ts +1 -0
- package/dist/src/shared/audit.js +2 -0
- package/dist/src/shared/audit.js.map +1 -0
- package/dist/src/shared/constants.d.ts +1 -0
- package/dist/src/shared/constants.js +2 -0
- package/dist/src/shared/constants.js.map +1 -0
- package/dist/src/shared/errors.d.ts +1 -0
- package/dist/src/shared/errors.js +2 -0
- package/dist/src/shared/errors.js.map +1 -0
- package/dist/src/shared/fs.d.ts +1 -0
- package/dist/src/shared/fs.js +2 -0
- package/dist/src/shared/fs.js.map +1 -0
- package/dist/src/shared/lock.d.ts +1 -0
- package/dist/src/shared/lock.js +2 -0
- package/dist/src/shared/lock.js.map +1 -0
- package/dist/src/shared/logger.d.ts +1 -0
- package/dist/src/shared/logger.js +2 -0
- package/dist/src/shared/logger.js.map +1 -0
- package/dist/src/shared/pii.d.ts +1 -0
- package/dist/src/shared/pii.js +2 -0
- package/dist/src/shared/pii.js.map +1 -0
- package/dist/src/shared/retention.d.ts +1 -0
- package/dist/src/shared/retention.js +2 -0
- package/dist/src/shared/retention.js.map +1 -0
- package/dist/src/shared/storage.d.ts +141 -0
- package/dist/src/shared/storage.js +332 -0
- package/dist/src/shared/storage.js.map +1 -0
- package/dist/src/shared/string.d.ts +1 -0
- package/dist/src/shared/string.js +2 -0
- package/dist/src/shared/string.js.map +1 -0
- package/dist/src/shared/types.d.ts +1 -0
- package/dist/src/shared/types.js +2 -0
- package/dist/src/shared/types.js.map +1 -0
- package/package.json +3 -5
- package/templates/full/ATABEY_FULL.md +5 -3
- package/templates/prompts/new-feature-recipe.md +1 -1
- package/templates/standards/architecture-standards.md +1 -1
- package/templates/standards/governance-standards.md +3 -3
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
const STATE_MACHINE = "../schema/agent-lifecycle-schema.json";
|
|
2
|
+
export const security = {
|
|
3
|
+
name: "security",
|
|
4
|
+
displayName: "Security Specialist",
|
|
5
|
+
role: "Security Enforcement",
|
|
6
|
+
description: "Auth, Encryption, and Safety enforcement specialist. " +
|
|
7
|
+
"Guardian of the Nizam — blocks any action that endangers the project.",
|
|
8
|
+
capability: 10,
|
|
9
|
+
tier: "supreme",
|
|
10
|
+
tags: ["core", "security"],
|
|
11
|
+
stateMachine: STATE_MACHINE,
|
|
12
|
+
tools: [
|
|
13
|
+
"read_file",
|
|
14
|
+
"replace_text",
|
|
15
|
+
"grep_search",
|
|
16
|
+
"send_agent_message",
|
|
17
|
+
"get_memory_insights",
|
|
18
|
+
"log_agent_action",
|
|
19
|
+
],
|
|
20
|
+
instructions: {
|
|
21
|
+
identity: "Security Guardian and Zero-Trust Enforcer",
|
|
22
|
+
mission: "Protect the empire's data and infrastructure — no secret leaks, " +
|
|
23
|
+
"no raw SQL, no unenforced RLS.",
|
|
24
|
+
chainOfThought: "1. Analyze: Read the task, context, and relevant governance documents.\n" +
|
|
25
|
+
"2. Validate: Cross-reference with project rules, contracts, and architecture standards.\n" +
|
|
26
|
+
"3. Plan: Break down the task into small, atomic, and verifiable steps.\n" +
|
|
27
|
+
"4. Execute: Perform the task using approved tools, adhering to quality and security constraints.",
|
|
28
|
+
rules: [
|
|
29
|
+
"RLS ENFORCEMENT: Verify multi-tenant Row Level Security policies are active on every database table.",
|
|
30
|
+
"NO SECRETS: Block any commit containing hardcoded secrets (API keys, passwords). Force '.env' usage.",
|
|
31
|
+
"RAW SQL FORBIDDEN: Reject any query that bypasses Kysely — zero exceptions.",
|
|
32
|
+
"AUDIT LOGS: Monitor and log all high-risk administrative actions via 'log_agent_action'.",
|
|
33
|
+
],
|
|
34
|
+
knowledgeFiles: ["security-standards.md", "security-audit-standards.md", "auth-standards.md", "logging-and-secrets.md"],
|
|
35
|
+
},
|
|
36
|
+
specialties: {
|
|
37
|
+
security: 10,
|
|
38
|
+
audit: 10,
|
|
39
|
+
auth: 10,
|
|
40
|
+
token: 9,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../../../../src/modules/agents/registry/security.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,uCAAgD,CAAC;AAEvE,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACrC,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,qBAAqB;IAClC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EACb,uDAAuD;QACvD,uEAAuE;IACrE,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;IAC1B,YAAY,EAAE,aAAa;IAC3B,KAAK,EAAE;QACH,WAAW;QACX,cAAc;QACd,aAAa;QACb,oBAAoB;QACpB,qBAAqB;QACrB,kBAAkB;KACrB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,2CAA2C;QACrD,OAAO,EACX,kEAAkE;YAClE,gCAAgC;QAC5B,cAAc,EACV,0EAA0E;YAC1E,2FAA2F;YAC3F,0EAA0E;YAC1E,kGAAkG;QACtG,KAAK,EAAE;YACH,sGAAsG;YACtG,sGAAsG;YACtG,6EAA6E;YAC7E,0FAA0F;SAC7F;QACD,cAAc,EAAE,CAAC,uBAAuB,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,wBAAwB,CAAC;KAC1H;IACD,WAAW,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,CAAC;KACX;CACJ,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type AgentTier = "supreme" | "core" | "recon";
|
|
2
|
+
export type AgentTag = "core" | "orchestration" | "governance" | "security" | "design" | "logic" | "ui" | "mobile" | "native" | "audit" | "discipline" | "data" | "infra" | "recon" | "logistics" | "strategy";
|
|
3
|
+
export interface AgentInstructions {
|
|
4
|
+
/** One-line identity statement surfaced to the agent as its persona. */
|
|
5
|
+
identity: string;
|
|
6
|
+
/** The agent's primary mission objective. */
|
|
7
|
+
mission: string;
|
|
8
|
+
/** Chain of Thought protocol the agent must follow. */
|
|
9
|
+
chainOfThought: string;
|
|
10
|
+
/** Mandatory, ordered discipline rules the agent must enforce. */
|
|
11
|
+
rules: string[];
|
|
12
|
+
/**
|
|
13
|
+
* Optional: skill documents the agent MUST read before acting.
|
|
14
|
+
* Paths are relative to the framework's knowledge directory.
|
|
15
|
+
*/
|
|
16
|
+
knowledgeFiles?: string[];
|
|
17
|
+
}
|
|
18
|
+
export interface AgentDefinition {
|
|
19
|
+
/** Machine identifier — used in routing and send_agent_message targets. */
|
|
20
|
+
name: string;
|
|
21
|
+
displayName: string;
|
|
22
|
+
role: string;
|
|
23
|
+
description: string;
|
|
24
|
+
/** Capability score 1–10. Determines orchestration authority. */
|
|
25
|
+
capability: 10 | 9 | 8;
|
|
26
|
+
tier: AgentTier;
|
|
27
|
+
tags: AgentTag[];
|
|
28
|
+
stateMachine: string;
|
|
29
|
+
tools: string[];
|
|
30
|
+
instructions: AgentInstructions;
|
|
31
|
+
/** Sub-specialty weights mapping (e.g. { "postgres": 10, "redis": 8, "react": 9 }) */
|
|
32
|
+
specialties?: Record<string, number>;
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/modules/agents/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* API Contract — Contract between Backend and Frontend.
|
|
4
|
+
* All API endpoints must conform to these schemas.
|
|
5
|
+
*/
|
|
6
|
+
export declare const ApiResponseSchema: <T extends z.ZodTypeAny>(dataSchema: T) => z.ZodObject<{
|
|
7
|
+
success: z.ZodBoolean;
|
|
8
|
+
data: z.ZodOptional<T>;
|
|
9
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
10
|
+
code: z.ZodString;
|
|
11
|
+
message: z.ZodString;
|
|
12
|
+
details: z.ZodOptional<z.ZodUnknown>;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
code: string;
|
|
15
|
+
message: string;
|
|
16
|
+
details?: unknown;
|
|
17
|
+
}, {
|
|
18
|
+
code: string;
|
|
19
|
+
message: string;
|
|
20
|
+
details?: unknown;
|
|
21
|
+
}>>;
|
|
22
|
+
meta: z.ZodOptional<z.ZodObject<{
|
|
23
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
25
|
+
total: z.ZodOptional<z.ZodNumber>;
|
|
26
|
+
timestamp: z.ZodString;
|
|
27
|
+
}, "strip", z.ZodTypeAny, {
|
|
28
|
+
timestamp: string;
|
|
29
|
+
page?: number | undefined;
|
|
30
|
+
total?: number | undefined;
|
|
31
|
+
limit?: number | undefined;
|
|
32
|
+
}, {
|
|
33
|
+
timestamp: string;
|
|
34
|
+
page?: number | undefined;
|
|
35
|
+
total?: number | undefined;
|
|
36
|
+
limit?: number | undefined;
|
|
37
|
+
}>>;
|
|
38
|
+
}, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
|
|
39
|
+
success: z.ZodBoolean;
|
|
40
|
+
data: z.ZodOptional<T>;
|
|
41
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
42
|
+
code: z.ZodString;
|
|
43
|
+
message: z.ZodString;
|
|
44
|
+
details: z.ZodOptional<z.ZodUnknown>;
|
|
45
|
+
}, "strip", z.ZodTypeAny, {
|
|
46
|
+
code: string;
|
|
47
|
+
message: string;
|
|
48
|
+
details?: unknown;
|
|
49
|
+
}, {
|
|
50
|
+
code: string;
|
|
51
|
+
message: string;
|
|
52
|
+
details?: unknown;
|
|
53
|
+
}>>;
|
|
54
|
+
meta: z.ZodOptional<z.ZodObject<{
|
|
55
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
56
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
57
|
+
total: z.ZodOptional<z.ZodNumber>;
|
|
58
|
+
timestamp: z.ZodString;
|
|
59
|
+
}, "strip", z.ZodTypeAny, {
|
|
60
|
+
timestamp: string;
|
|
61
|
+
page?: number | undefined;
|
|
62
|
+
total?: number | undefined;
|
|
63
|
+
limit?: number | undefined;
|
|
64
|
+
}, {
|
|
65
|
+
timestamp: string;
|
|
66
|
+
page?: number | undefined;
|
|
67
|
+
total?: number | undefined;
|
|
68
|
+
limit?: number | undefined;
|
|
69
|
+
}>>;
|
|
70
|
+
}>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<{
|
|
71
|
+
success: z.ZodBoolean;
|
|
72
|
+
data: z.ZodOptional<T>;
|
|
73
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
74
|
+
code: z.ZodString;
|
|
75
|
+
message: z.ZodString;
|
|
76
|
+
details: z.ZodOptional<z.ZodUnknown>;
|
|
77
|
+
}, "strip", z.ZodTypeAny, {
|
|
78
|
+
code: string;
|
|
79
|
+
message: string;
|
|
80
|
+
details?: unknown;
|
|
81
|
+
}, {
|
|
82
|
+
code: string;
|
|
83
|
+
message: string;
|
|
84
|
+
details?: unknown;
|
|
85
|
+
}>>;
|
|
86
|
+
meta: z.ZodOptional<z.ZodObject<{
|
|
87
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
88
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
89
|
+
total: z.ZodOptional<z.ZodNumber>;
|
|
90
|
+
timestamp: z.ZodString;
|
|
91
|
+
}, "strip", z.ZodTypeAny, {
|
|
92
|
+
timestamp: string;
|
|
93
|
+
page?: number | undefined;
|
|
94
|
+
total?: number | undefined;
|
|
95
|
+
limit?: number | undefined;
|
|
96
|
+
}, {
|
|
97
|
+
timestamp: string;
|
|
98
|
+
page?: number | undefined;
|
|
99
|
+
total?: number | undefined;
|
|
100
|
+
limit?: number | undefined;
|
|
101
|
+
}>>;
|
|
102
|
+
}> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
|
|
103
|
+
export type ApiResponse<T = unknown> = z.infer<ReturnType<typeof ApiResponseSchema<z.ZodType<T>>>>;
|
|
104
|
+
export declare const PaginationSchema: z.ZodObject<{
|
|
105
|
+
page: z.ZodDefault<z.ZodNumber>;
|
|
106
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
107
|
+
sort: z.ZodOptional<z.ZodString>;
|
|
108
|
+
order: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
|
|
109
|
+
}, "strip", z.ZodTypeAny, {
|
|
110
|
+
page: number;
|
|
111
|
+
limit: number;
|
|
112
|
+
order: "asc" | "desc";
|
|
113
|
+
sort?: string | undefined;
|
|
114
|
+
}, {
|
|
115
|
+
sort?: string | undefined;
|
|
116
|
+
page?: number | undefined;
|
|
117
|
+
limit?: number | undefined;
|
|
118
|
+
order?: "asc" | "desc" | undefined;
|
|
119
|
+
}>;
|
|
120
|
+
export type Pagination = z.infer<typeof PaginationSchema>;
|
|
121
|
+
export declare const CrudOperationSchema: z.ZodEnum<["CREATE", "READ", "UPDATE", "DELETE", "LIST"]>;
|
|
122
|
+
export type CrudOperation = z.infer<typeof CrudOperationSchema>;
|
|
123
|
+
/**
|
|
124
|
+
* CRUD endpoint response contract.
|
|
125
|
+
* Standard response format for each CRUD operation.
|
|
126
|
+
*/
|
|
127
|
+
export declare const CrudResponseSchema: z.ZodObject<{
|
|
128
|
+
operation: z.ZodEnum<["CREATE", "READ", "UPDATE", "DELETE", "LIST"]>;
|
|
129
|
+
resource: z.ZodString;
|
|
130
|
+
id: z.ZodOptional<z.ZodString>;
|
|
131
|
+
affectedCount: z.ZodOptional<z.ZodNumber>;
|
|
132
|
+
timestamp: z.ZodString;
|
|
133
|
+
}, "strip", z.ZodTypeAny, {
|
|
134
|
+
timestamp: string;
|
|
135
|
+
operation: "CREATE" | "READ" | "UPDATE" | "DELETE" | "LIST";
|
|
136
|
+
resource: string;
|
|
137
|
+
id?: string | undefined;
|
|
138
|
+
affectedCount?: number | undefined;
|
|
139
|
+
}, {
|
|
140
|
+
timestamp: string;
|
|
141
|
+
operation: "CREATE" | "READ" | "UPDATE" | "DELETE" | "LIST";
|
|
142
|
+
resource: string;
|
|
143
|
+
id?: string | undefined;
|
|
144
|
+
affectedCount?: number | undefined;
|
|
145
|
+
}>;
|
|
146
|
+
export type CrudResponse = z.infer<typeof CrudResponseSchema>;
|
|
147
|
+
export declare const HealthCheckSchema: z.ZodObject<{
|
|
148
|
+
status: z.ZodEnum<["healthy", "degraded", "unhealthy"]>;
|
|
149
|
+
version: z.ZodString;
|
|
150
|
+
uptime: z.ZodNumber;
|
|
151
|
+
checks: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
152
|
+
status: z.ZodEnum<["pass", "fail"]>;
|
|
153
|
+
message: z.ZodOptional<z.ZodString>;
|
|
154
|
+
}, "strip", z.ZodTypeAny, {
|
|
155
|
+
status: "pass" | "fail";
|
|
156
|
+
message?: string | undefined;
|
|
157
|
+
}, {
|
|
158
|
+
status: "pass" | "fail";
|
|
159
|
+
message?: string | undefined;
|
|
160
|
+
}>>;
|
|
161
|
+
}, "strip", z.ZodTypeAny, {
|
|
162
|
+
status: "healthy" | "degraded" | "unhealthy";
|
|
163
|
+
version: string;
|
|
164
|
+
uptime: number;
|
|
165
|
+
checks: Record<string, {
|
|
166
|
+
status: "pass" | "fail";
|
|
167
|
+
message?: string | undefined;
|
|
168
|
+
}>;
|
|
169
|
+
}, {
|
|
170
|
+
status: "healthy" | "degraded" | "unhealthy";
|
|
171
|
+
version: string;
|
|
172
|
+
uptime: number;
|
|
173
|
+
checks: Record<string, {
|
|
174
|
+
status: "pass" | "fail";
|
|
175
|
+
message?: string | undefined;
|
|
176
|
+
}>;
|
|
177
|
+
}>;
|
|
178
|
+
export type HealthCheck = z.infer<typeof HealthCheckSchema>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* API Contract — Contract between Backend and Frontend.
|
|
4
|
+
* All API endpoints must conform to these schemas.
|
|
5
|
+
*/
|
|
6
|
+
// ─── Standart API Response ─────────────────────────────────────────────────────
|
|
7
|
+
export const ApiResponseSchema = (dataSchema) => z.object({
|
|
8
|
+
success: z.boolean(),
|
|
9
|
+
data: dataSchema.optional(),
|
|
10
|
+
error: z
|
|
11
|
+
.object({
|
|
12
|
+
code: z.string(),
|
|
13
|
+
message: z.string(),
|
|
14
|
+
details: z.unknown().optional(),
|
|
15
|
+
})
|
|
16
|
+
.optional(),
|
|
17
|
+
meta: z
|
|
18
|
+
.object({
|
|
19
|
+
page: z.number().int().positive().optional(),
|
|
20
|
+
limit: z.number().int().positive().optional(),
|
|
21
|
+
total: z.number().int().nonnegative().optional(),
|
|
22
|
+
timestamp: z.string().datetime(),
|
|
23
|
+
})
|
|
24
|
+
.optional(),
|
|
25
|
+
});
|
|
26
|
+
// ─── Pagination ────────────────────────────────────────────────────────────────
|
|
27
|
+
export const PaginationSchema = z.object({
|
|
28
|
+
page: z.number().int().positive().default(1),
|
|
29
|
+
limit: z.number().int().positive().max(100).default(20),
|
|
30
|
+
sort: z.string().optional(),
|
|
31
|
+
order: z.enum(["asc", "desc"]).default("asc"),
|
|
32
|
+
});
|
|
33
|
+
// ─── CRUD Contract ─────────────────────────────────────────────────────────────
|
|
34
|
+
export const CrudOperationSchema = z.enum(["CREATE", "READ", "UPDATE", "DELETE", "LIST"]);
|
|
35
|
+
/**
|
|
36
|
+
* CRUD endpoint response contract.
|
|
37
|
+
* Standard response format for each CRUD operation.
|
|
38
|
+
*/
|
|
39
|
+
export const CrudResponseSchema = z.object({
|
|
40
|
+
operation: CrudOperationSchema,
|
|
41
|
+
resource: z.string(),
|
|
42
|
+
id: z.string().optional(),
|
|
43
|
+
affectedCount: z.number().int().nonnegative().optional(),
|
|
44
|
+
timestamp: z.string().datetime(),
|
|
45
|
+
});
|
|
46
|
+
// ─── Health Check ──────────────────────────────────────────────────────────────
|
|
47
|
+
export const HealthCheckSchema = z.object({
|
|
48
|
+
status: z.enum(["healthy", "degraded", "unhealthy"]),
|
|
49
|
+
version: z.string(),
|
|
50
|
+
uptime: z.number().nonnegative(),
|
|
51
|
+
checks: z.record(z.object({
|
|
52
|
+
status: z.enum(["pass", "fail"]),
|
|
53
|
+
message: z.string().optional(),
|
|
54
|
+
})),
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/modules/contracts/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/contracts/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [ENGINE] Agent Executor — Production Implementation
|
|
3
|
+
*
|
|
4
|
+
* Manages real agent calls through the Hermes messaging system.
|
|
5
|
+
* Distributes tasks to agents, collects results, passes through quality gate,
|
|
6
|
+
* and saves to memory.
|
|
7
|
+
*
|
|
8
|
+
* Uses real Hermes message queue (not simulated).
|
|
9
|
+
*/
|
|
10
|
+
export declare class AgentExecutor {
|
|
11
|
+
/**
|
|
12
|
+
* Distributes a task to the relevant agent and executes it.
|
|
13
|
+
* 1. Select the best agent via Routing Engine
|
|
14
|
+
* 2. Send Hermes message
|
|
15
|
+
* 3. Wait for agent response (polling)
|
|
16
|
+
* 4. Pass through quality check
|
|
17
|
+
* 5. Save result to memory
|
|
18
|
+
*/
|
|
19
|
+
static execute(taskDescription: string, traceId: string): Promise<{
|
|
20
|
+
success: boolean;
|
|
21
|
+
agent: string;
|
|
22
|
+
output: string;
|
|
23
|
+
attempts: number;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Directly acknowledges a task for a specific agent.
|
|
27
|
+
* Called by AgentLoop when a DELEGATION message is received.
|
|
28
|
+
* LLM execution is handled by the AI interface (Claude Code / Gemini CLI / Cursor).
|
|
29
|
+
* Writes a RESPONSE message back to Hermes for the executor to pick up.
|
|
30
|
+
*/
|
|
31
|
+
static executeForAgent(agentName: string, task: string, traceId: string): Promise<string>;
|
|
32
|
+
private static runAgentTask;
|
|
33
|
+
/**
|
|
34
|
+
* Polls for agent response from the Hermes message queue.
|
|
35
|
+
*
|
|
36
|
+
* Polling strategy:
|
|
37
|
+
* - Check every 500ms
|
|
38
|
+
* - Max 10 seconds wait (20 attempts)
|
|
39
|
+
* - Return response if found, timeout if not
|
|
40
|
+
*/
|
|
41
|
+
private static pollForAgentResponse;
|
|
42
|
+
/**
|
|
43
|
+
* Saves the task result to memory.
|
|
44
|
+
*/
|
|
45
|
+
private static saveToMemory;
|
|
46
|
+
}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { logger } from "../../shared/logger.js";
|
|
2
|
+
import { maskObject, maskText } from "../../shared/pii.js";
|
|
3
|
+
import { AtabeyStorage } from "../../shared/storage.js";
|
|
4
|
+
import { asAgentID, asTraceID } from "../../shared/types.js";
|
|
5
|
+
import { CoreMemory } from "../memory/core.js";
|
|
6
|
+
import { EvaluationEngine } from "./evaluation-engine.js";
|
|
7
|
+
import { QualityGate } from "./quality-gate.js";
|
|
8
|
+
import { RoutingEngine } from "./routing-engine.js";
|
|
9
|
+
/**
|
|
10
|
+
* [ENGINE] Agent Executor — Production Implementation
|
|
11
|
+
*
|
|
12
|
+
* Manages real agent calls through the Hermes messaging system.
|
|
13
|
+
* Distributes tasks to agents, collects results, passes through quality gate,
|
|
14
|
+
* and saves to memory.
|
|
15
|
+
*
|
|
16
|
+
* Uses real Hermes message queue (not simulated).
|
|
17
|
+
*/
|
|
18
|
+
export class AgentExecutor {
|
|
19
|
+
/**
|
|
20
|
+
* Distributes a task to the relevant agent and executes it.
|
|
21
|
+
* 1. Select the best agent via Routing Engine
|
|
22
|
+
* 2. Send Hermes message
|
|
23
|
+
* 3. Wait for agent response (polling)
|
|
24
|
+
* 4. Pass through quality check
|
|
25
|
+
* 5. Save result to memory
|
|
26
|
+
*/
|
|
27
|
+
static async execute(taskDescription, traceId) {
|
|
28
|
+
// 1. Route the task to the best agent
|
|
29
|
+
const routingResult = RoutingEngine.resolveWithDetails(taskDescription);
|
|
30
|
+
const agent = routingResult.agent;
|
|
31
|
+
const subTasks = routingResult.subTasks;
|
|
32
|
+
logger.info(`[EXECUTOR] Routing: ${taskDescription.substring(0, 80)}... → ${agent} (confidence: ${routingResult.confidence})`);
|
|
33
|
+
// 2. Execute with retry logic (max 3 attempts)
|
|
34
|
+
let lastOutput = "";
|
|
35
|
+
let lastError = "";
|
|
36
|
+
for (let attempt = 1; attempt <= 3; attempt++) {
|
|
37
|
+
const startTime = Date.now();
|
|
38
|
+
try {
|
|
39
|
+
logger.info(`[EXECUTOR] Attempt ${attempt}/3: ${agent} executing...`);
|
|
40
|
+
// Execute the agent task via Hermes messaging
|
|
41
|
+
const output = await AgentExecutor.runAgentTask(agent, taskDescription, subTasks, traceId);
|
|
42
|
+
lastOutput = output;
|
|
43
|
+
// 3. Quality check
|
|
44
|
+
const qualityResult = await QualityGate.check(agent, output, taskDescription);
|
|
45
|
+
if (qualityResult.passed) {
|
|
46
|
+
const durationMs = Date.now() - startTime;
|
|
47
|
+
logger.info(`[EXECUTOR] ${agent} task PASSED quality check (attempt ${attempt})`);
|
|
48
|
+
// 4. Save to memory
|
|
49
|
+
await AgentExecutor.saveToMemory(agent, taskDescription, output, traceId);
|
|
50
|
+
// Update agent status
|
|
51
|
+
AtabeyStorage.updateAgentStatus(agent.replace("@", ""), "COMPLETED", taskDescription);
|
|
52
|
+
// Evaluate task to update specialty memory
|
|
53
|
+
try {
|
|
54
|
+
EvaluationEngine.evaluateTask(traceId, agent, durationMs, taskDescription);
|
|
55
|
+
}
|
|
56
|
+
catch (evalErr) {
|
|
57
|
+
logger.error(`[EXECUTOR] Failed to evaluate task for ${agent}: ${evalErr.message}`);
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
success: true,
|
|
61
|
+
agent,
|
|
62
|
+
output,
|
|
63
|
+
attempts: attempt,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
lastError = qualityResult.reason;
|
|
67
|
+
logger.warn(`[EXECUTOR] Quality check FAILED: ${qualityResult.reason}`, { agent, attempt });
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
lastError = err.message;
|
|
71
|
+
logger.error(`[EXECUTOR] Agent execution error: ${lastError}`, { agent, attempt });
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// All attempts failed
|
|
75
|
+
logger.error(`[EXECUTOR] ${agent} FAILED after 3 attempts. Last error: ${lastError}`);
|
|
76
|
+
AtabeyStorage.updateAgentStatus(agent.replace("@", ""), "BLOCKED", `Failed: ${taskDescription.substring(0, 60)}`);
|
|
77
|
+
return {
|
|
78
|
+
success: false,
|
|
79
|
+
agent,
|
|
80
|
+
output: lastOutput,
|
|
81
|
+
attempts: 3,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Directly acknowledges a task for a specific agent.
|
|
86
|
+
* Called by AgentLoop when a DELEGATION message is received.
|
|
87
|
+
* LLM execution is handled by the AI interface (Claude Code / Gemini CLI / Cursor).
|
|
88
|
+
* Writes a RESPONSE message back to Hermes for the executor to pick up.
|
|
89
|
+
*/
|
|
90
|
+
static async executeForAgent(agentName, task, traceId) {
|
|
91
|
+
const normalizedName = agentName.replace("@", "");
|
|
92
|
+
logger.info(`[EXECUTOR] executeForAgent: ${agentName} acknowledged`, {
|
|
93
|
+
agent: agentName,
|
|
94
|
+
traceId,
|
|
95
|
+
task: task.substring(0, 80),
|
|
96
|
+
});
|
|
97
|
+
AtabeyStorage.updateAgentStatus(normalizedName, "EXECUTING", task);
|
|
98
|
+
// LLM execution is handled by the AI interface (Claude Code / Gemini CLI / Cursor)
|
|
99
|
+
// Atabey acts as the MCP tool server — the AI interface calls the tools directly
|
|
100
|
+
const responseContent = `[AGENT:${agentName}] Task acknowledged. The AI interface (Claude Code / Gemini CLI / Cursor) will handle execution via MCP tools. Task: ${task}`;
|
|
101
|
+
logger.info(`[EXECUTOR] Task acknowledged for ${agentName}`, { traceId });
|
|
102
|
+
// Write RESPONSE back to Hermes so pollForAgentResponse can pick it up
|
|
103
|
+
AtabeyStorage.saveMessage({
|
|
104
|
+
from: asAgentID(agentName),
|
|
105
|
+
to: asAgentID("@manager"),
|
|
106
|
+
category: "RESPONSE",
|
|
107
|
+
content: responseContent,
|
|
108
|
+
traceId: asTraceID(traceId),
|
|
109
|
+
timestamp: new Date().toISOString(),
|
|
110
|
+
status: "PENDING",
|
|
111
|
+
priority: "HIGH",
|
|
112
|
+
requiresApproval: false,
|
|
113
|
+
});
|
|
114
|
+
AtabeyStorage.updateAgentStatus(normalizedName, "ACKNOWLEDGED", task);
|
|
115
|
+
return responseContent;
|
|
116
|
+
}
|
|
117
|
+
static async runAgentTask(agent, taskDescription, subTasks, traceId) {
|
|
118
|
+
const agentName = agent.replace("@", "");
|
|
119
|
+
const from = "@manager";
|
|
120
|
+
// ─── 1. Send Hermes Message ──────────────────────────────────────
|
|
121
|
+
// [KVKK/GDPR] Mask PII in task description before sending to message queue
|
|
122
|
+
const maskedTask = maskText(taskDescription);
|
|
123
|
+
const maskedSubTasks = subTasks.map(st => maskText(st));
|
|
124
|
+
// [KVKK/GDPR] Strict mode: mask any object fields that may contain PII
|
|
125
|
+
const safePayload = maskObject({
|
|
126
|
+
type: "DELEGATION",
|
|
127
|
+
task: maskedTask,
|
|
128
|
+
subTasks: maskedSubTasks,
|
|
129
|
+
traceId,
|
|
130
|
+
from,
|
|
131
|
+
}, 0, true);
|
|
132
|
+
const messagePayload = JSON.stringify(safePayload);
|
|
133
|
+
AtabeyStorage.saveMessage({
|
|
134
|
+
from: asAgentID(from),
|
|
135
|
+
to: asAgentID(agent),
|
|
136
|
+
category: "DELEGATION",
|
|
137
|
+
content: messagePayload,
|
|
138
|
+
traceId: asTraceID(traceId),
|
|
139
|
+
timestamp: new Date().toISOString(),
|
|
140
|
+
status: "PENDING",
|
|
141
|
+
priority: "HIGH",
|
|
142
|
+
requiresApproval: false,
|
|
143
|
+
});
|
|
144
|
+
// Update agent status
|
|
145
|
+
AtabeyStorage.updateAgentStatus(agentName, "EXECUTING", taskDescription);
|
|
146
|
+
AtabeyStorage.saveLog({
|
|
147
|
+
agent: agentName,
|
|
148
|
+
action: "DELEGATION_SENT",
|
|
149
|
+
trace_id: traceId,
|
|
150
|
+
status: "IN_PROGRESS",
|
|
151
|
+
summary: maskedTask.substring(0, 200)
|
|
152
|
+
});
|
|
153
|
+
logger.info(`[HERMES] Delegation sent to ${agent} (trace: ${traceId})`);
|
|
154
|
+
// ─── 2. Wait for Agent Response (Polling) ────────────────────────
|
|
155
|
+
const output = await AgentExecutor.pollForAgentResponse(agentName, traceId);
|
|
156
|
+
return output;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Polls for agent response from the Hermes message queue.
|
|
160
|
+
*
|
|
161
|
+
* Polling strategy:
|
|
162
|
+
* - Check every 500ms
|
|
163
|
+
* - Max 10 seconds wait (20 attempts)
|
|
164
|
+
* - Return response if found, timeout if not
|
|
165
|
+
*/
|
|
166
|
+
static async pollForAgentResponse(agentName, traceId) {
|
|
167
|
+
const maxAttempts = 20; // 10 seconds (500ms * 20) — AgentLoop responds much faster
|
|
168
|
+
const pollInterval = 500; // 500ms
|
|
169
|
+
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
170
|
+
// Check RESPONSE messages sent by the agent
|
|
171
|
+
const messages = AtabeyStorage.getPendingMessages();
|
|
172
|
+
const response = messages.find(m => m.from.replace("@", "") === agentName
|
|
173
|
+
&& m.category === "RESPONSE"
|
|
174
|
+
&& m.traceId === traceId
|
|
175
|
+
&& m.status === "PENDING");
|
|
176
|
+
if (response) {
|
|
177
|
+
// Mark message as processed
|
|
178
|
+
if (response.id !== undefined) {
|
|
179
|
+
AtabeyStorage.updateMessageStatus(response.id, "PROCESSED");
|
|
180
|
+
}
|
|
181
|
+
// [KVKK/GDPR] Mask PII in response content before logging and returning
|
|
182
|
+
const maskedResponse = maskText(response.content);
|
|
183
|
+
AtabeyStorage.saveLog({
|
|
184
|
+
agent: agentName,
|
|
185
|
+
action: "RESPONSE_RECEIVED",
|
|
186
|
+
trace_id: traceId,
|
|
187
|
+
status: "SUCCESS",
|
|
188
|
+
summary: maskedResponse.substring(0, 200)
|
|
189
|
+
});
|
|
190
|
+
logger.info(`[HERMES] Response received from @${agentName} (trace: ${traceId})`);
|
|
191
|
+
return maskedResponse;
|
|
192
|
+
}
|
|
193
|
+
// Short delay before next poll
|
|
194
|
+
await new Promise(resolve => setTimeout(resolve, pollInterval));
|
|
195
|
+
}
|
|
196
|
+
// Timeout — agent did not respond
|
|
197
|
+
const timeoutMsg = `[TIMEOUT] @${agentName} did not respond within ${(maxAttempts * pollInterval) / 1000}s. Ensure AgentLoop is running or a provider is configured.`;
|
|
198
|
+
logger.warn(`[HERMES] ${timeoutMsg} (trace: ${traceId})`);
|
|
199
|
+
AtabeyStorage.saveLog({
|
|
200
|
+
agent: agentName,
|
|
201
|
+
action: "RESPONSE_TIMEOUT",
|
|
202
|
+
trace_id: traceId,
|
|
203
|
+
status: "FAILED",
|
|
204
|
+
summary: timeoutMsg
|
|
205
|
+
});
|
|
206
|
+
return timeoutMsg;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Saves the task result to memory.
|
|
210
|
+
*/
|
|
211
|
+
static async saveToMemory(agent, taskDescription, output, traceId) {
|
|
212
|
+
// [KVKK/GDPR] Mask PII before saving to memory
|
|
213
|
+
const maskedTask = maskText(taskDescription);
|
|
214
|
+
const maskedOutput = maskText(output);
|
|
215
|
+
// Save to Vector Memory
|
|
216
|
+
await CoreMemory.remember({
|
|
217
|
+
content: `${agent}: ${maskedTask}\nResult: ${maskedOutput}`,
|
|
218
|
+
category: "TASK_HISTORY",
|
|
219
|
+
traceId: asTraceID(traceId),
|
|
220
|
+
tags: [agent.replace("@", ""), "task-execution"],
|
|
221
|
+
});
|
|
222
|
+
// Save to SQLite logs
|
|
223
|
+
AtabeyStorage.saveLog({
|
|
224
|
+
agent: agent.replace("@", ""),
|
|
225
|
+
action: "COMPLETED",
|
|
226
|
+
trace_id: traceId,
|
|
227
|
+
status: "SUCCESS",
|
|
228
|
+
summary: maskedOutput.substring(0, 200)
|
|
229
|
+
});
|
|
230
|
+
// Update task status
|
|
231
|
+
const tasks = AtabeyStorage.getTasks(asTraceID(traceId));
|
|
232
|
+
const pendingTask = tasks.find(t => t.status === "IN_PROGRESS");
|
|
233
|
+
if (pendingTask) {
|
|
234
|
+
AtabeyStorage.saveTask({
|
|
235
|
+
...pendingTask,
|
|
236
|
+
status: "COMPLETED",
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=agent-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-executor.js","sourceRoot":"","sources":["../../../../src/modules/engines/agent-executor.ts"],"names":[],"mappings":"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"}
|