atabey 0.0.37 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ATABEY.md +1 -1
- package/PRIVACY.md +2 -2
- package/README.md +58 -46
- package/bin/completion.sh +1 -1
- package/dist/atabey/src/cli/commands/api.d.ts +1 -0
- package/dist/atabey/src/cli/commands/api.js +90 -0
- package/dist/atabey/src/cli/commands/api.js.map +1 -0
- package/dist/atabey/src/cli/commands/audit.d.ts +9 -0
- package/dist/atabey/src/cli/commands/audit.js +73 -0
- package/dist/atabey/src/cli/commands/audit.js.map +1 -0
- package/dist/atabey/src/cli/commands/check.js +15 -6
- package/dist/atabey/src/cli/commands/check.js.map +1 -1
- package/dist/atabey/src/cli/commands/contract.js +51 -8
- package/dist/atabey/src/cli/commands/contract.js.map +1 -1
- package/dist/atabey/src/cli/commands/coverage.js +17 -12
- package/dist/atabey/src/cli/commands/coverage.js.map +1 -1
- package/dist/atabey/src/cli/commands/dashboard.js +101 -16
- package/dist/atabey/src/cli/commands/dashboard.js.map +1 -1
- package/dist/atabey/src/cli/commands/db.d.ts +1 -0
- package/dist/atabey/src/cli/commands/db.js +58 -0
- package/dist/atabey/src/cli/commands/db.js.map +1 -0
- package/dist/atabey/src/cli/commands/hitl.js +2 -1
- package/dist/atabey/src/cli/commands/hitl.js.map +1 -1
- package/dist/atabey/src/cli/commands/index-codebase.js +10 -0
- package/dist/atabey/src/cli/commands/index-codebase.js.map +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-app.js +82 -7
- package/dist/atabey/src/cli/commands/init/scaffold-app.js.map +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-core.js +3 -3
- package/dist/atabey/src/cli/commands/init/scaffold-core.js.map +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-docs.js +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-docs.js.map +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-ops.js +47 -7
- package/dist/atabey/src/cli/commands/init/scaffold-ops.js.map +1 -1
- package/dist/atabey/src/cli/commands/init/scaffold-standards.js +8 -15
- package/dist/atabey/src/cli/commands/init/scaffold-standards.js.map +1 -1
- package/dist/atabey/src/cli/commands/init.js +28 -62
- package/dist/atabey/src/cli/commands/init.js.map +1 -1
- package/dist/atabey/src/cli/commands/lint.d.ts +2 -1
- package/dist/atabey/src/cli/commands/lint.js +20 -1
- package/dist/atabey/src/cli/commands/lint.js.map +1 -1
- package/dist/atabey/src/cli/commands/mcp.js +71 -33
- package/dist/atabey/src/cli/commands/mcp.js.map +1 -1
- package/dist/atabey/src/cli/commands/orchestrate.d.ts +4 -4
- package/dist/atabey/src/cli/commands/orchestrate.js +1 -1
- package/dist/atabey/src/cli/commands/orchestrate.js.map +1 -1
- package/dist/atabey/src/cli/commands/plan.d.ts +1 -1
- package/dist/atabey/src/cli/commands/plan.js +10 -0
- package/dist/atabey/src/cli/commands/plan.js.map +1 -1
- package/dist/atabey/src/cli/commands/quickstart.js +1 -1
- package/dist/atabey/src/cli/commands/quickstart.js.map +1 -1
- package/dist/atabey/src/cli/commands/script.js +4 -0
- package/dist/atabey/src/cli/commands/script.js.map +1 -1
- package/dist/atabey/src/cli/commands/secrets.d.ts +1 -0
- package/dist/atabey/src/cli/commands/secrets.js +146 -0
- package/dist/atabey/src/cli/commands/secrets.js.map +1 -0
- package/dist/atabey/src/cli/commands/worktree.d.ts +10 -0
- package/dist/atabey/src/cli/commands/worktree.js +90 -0
- package/dist/atabey/src/cli/commands/worktree.js.map +1 -0
- package/dist/atabey/src/cli/index.js +75 -16
- package/dist/atabey/src/cli/index.js.map +1 -1
- package/dist/atabey/src/cli/platforms/core.d.ts +0 -1
- package/dist/atabey/src/cli/platforms/core.js +0 -14
- package/dist/atabey/src/cli/platforms/core.js.map +1 -1
- package/dist/atabey/src/cli/platforms/index.d.ts +2 -2
- package/dist/atabey/src/cli/platforms/index.js +1 -1
- package/dist/atabey/src/cli/platforms/index.js.map +1 -1
- package/dist/atabey/src/cli/platforms/paths.d.ts +0 -2
- package/dist/atabey/src/cli/platforms/paths.js +1 -8
- package/dist/atabey/src/cli/platforms/paths.js.map +1 -1
- package/dist/atabey/src/cli/platforms/scaffold.js +1 -1
- package/dist/atabey/src/cli/platforms/scaffold.js.map +1 -1
- package/dist/atabey/src/cli/utils/claude.js +6 -0
- package/dist/atabey/src/cli/utils/claude.js.map +1 -1
- package/dist/atabey/src/cli/utils/compliance.d.ts +1 -1
- package/dist/atabey/src/cli/utils/compliance.js +33 -20
- package/dist/atabey/src/cli/utils/compliance.js.map +1 -1
- package/dist/atabey/src/cli/utils/fs.js +1 -1
- package/dist/atabey/src/cli/utils/fs.js.map +1 -1
- package/dist/atabey/src/cli/utils/i18n.js +2 -2
- package/dist/atabey/src/cli/utils/i18n.js.map +1 -1
- package/dist/atabey/src/cli/utils/memory.js +27 -16
- package/dist/atabey/src/cli/utils/memory.js.map +1 -1
- package/dist/atabey/src/cli/utils/pkg.js +5 -2
- package/dist/atabey/src/cli/utils/pkg.js.map +1 -1
- package/dist/atabey/src/cli/utils/quality.d.ts +1 -1
- package/dist/atabey/src/cli/utils/ui.d.ts +1 -1
- package/dist/atabey/src/cli/utils/ui.js +1 -1
- package/dist/atabey/src/modules/agents/definitions.d.ts +1 -1
- package/dist/atabey/src/modules/agents/definitions.js +13 -9
- package/dist/atabey/src/modules/agents/definitions.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/analyst.js +0 -2
- package/dist/atabey/src/modules/agents/registry/analyst.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/architect.js +0 -2
- package/dist/atabey/src/modules/agents/registry/architect.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/backend.js +0 -2
- package/dist/atabey/src/modules/agents/registry/backend.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/database.js +0 -2
- package/dist/atabey/src/modules/agents/registry/database.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/devops.js +0 -2
- package/dist/atabey/src/modules/agents/registry/devops.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/explorer.js +0 -2
- package/dist/atabey/src/modules/agents/registry/explorer.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/frontend.js +0 -2
- package/dist/atabey/src/modules/agents/registry/frontend.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/git.js +0 -2
- package/dist/atabey/src/modules/agents/registry/git.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/manager.js +0 -3
- package/dist/atabey/src/modules/agents/registry/manager.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/mobile.js +0 -2
- package/dist/atabey/src/modules/agents/registry/mobile.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/native.js +0 -2
- package/dist/atabey/src/modules/agents/registry/native.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/quality.js +3 -5
- package/dist/atabey/src/modules/agents/registry/quality.js.map +1 -1
- package/dist/atabey/src/modules/agents/registry/security.js +0 -2
- package/dist/atabey/src/modules/agents/registry/security.js.map +1 -1
- package/dist/atabey/src/modules/agents/types.d.ts +0 -1
- package/dist/atabey/src/modules/audit/export.d.ts +22 -0
- package/dist/atabey/src/modules/audit/export.js +58 -0
- package/dist/atabey/src/modules/audit/export.js.map +1 -0
- package/dist/atabey/src/modules/contracts/api.d.ts +2 -2
- package/dist/atabey/src/modules/engines/agent-executor.js +37 -0
- package/dist/atabey/src/modules/engines/agent-executor.js.map +1 -1
- package/dist/atabey/src/modules/engines/evaluation-engine.js +10 -0
- package/dist/atabey/src/modules/engines/evaluation-engine.js.map +1 -1
- package/dist/atabey/src/modules/engines/quality-gate.js +2 -2
- package/dist/atabey/src/modules/engines/quality-gate.js.map +1 -1
- package/dist/atabey/src/modules/engines/routing-engine.js +1 -1
- package/dist/atabey/src/modules/engines/routing-engine.js.map +1 -1
- package/dist/atabey/src/modules/memory/code-graph.d.ts +44 -0
- package/dist/atabey/src/modules/memory/code-graph.js +180 -0
- package/dist/atabey/src/modules/memory/code-graph.js.map +1 -0
- package/dist/atabey/src/modules/memory/context-assembler.d.ts +50 -0
- package/dist/atabey/src/modules/memory/context-assembler.js +146 -0
- package/dist/atabey/src/modules/memory/context-assembler.js.map +1 -0
- package/dist/atabey/src/modules/providers/definitions.js +78 -41
- package/dist/atabey/src/modules/providers/definitions.js.map +1 -1
- package/dist/atabey/src/modules/providers/shared.d.ts +1 -1
- package/dist/atabey/src/modules/providers/shared.js +34 -15
- package/dist/atabey/src/modules/providers/shared.js.map +1 -1
- package/dist/atabey/src/modules/providers/types.d.ts +0 -4
- package/dist/atabey/src/modules/runtime/adapters/headless-cli.d.ts +35 -0
- package/dist/atabey/src/modules/runtime/adapters/headless-cli.js +115 -0
- package/dist/atabey/src/modules/runtime/adapters/headless-cli.js.map +1 -0
- package/dist/atabey/src/modules/runtime/adapters/index.d.ts +2 -0
- package/dist/atabey/src/modules/runtime/adapters/index.js +3 -0
- package/dist/atabey/src/modules/runtime/adapters/index.js.map +1 -0
- package/dist/atabey/src/modules/runtime/adapters/types.d.ts +48 -0
- package/dist/atabey/src/modules/runtime/adapters/types.js +12 -0
- package/dist/atabey/src/modules/runtime/adapters/types.js.map +1 -0
- package/dist/atabey/src/modules/runtime/agent-runtime.d.ts +54 -0
- package/dist/atabey/src/modules/runtime/agent-runtime.js +203 -0
- package/dist/atabey/src/modules/runtime/agent-runtime.js.map +1 -0
- package/dist/atabey/src/modules/runtime/dispatcher.d.ts +75 -0
- package/dist/atabey/src/modules/runtime/dispatcher.js +255 -0
- package/dist/atabey/src/modules/runtime/dispatcher.js.map +1 -0
- package/dist/atabey/src/modules/runtime/evidence.d.ts +39 -0
- package/dist/atabey/src/modules/runtime/evidence.js +53 -0
- package/dist/atabey/src/modules/runtime/evidence.js.map +1 -0
- package/dist/atabey/src/modules/runtime/worktree.d.ts +44 -0
- package/dist/atabey/src/modules/runtime/worktree.js +259 -0
- package/dist/atabey/src/modules/runtime/worktree.js.map +1 -0
- package/dist/atabey/src/modules/skills/adapter-skills.d.ts +0 -29
- package/dist/atabey/src/modules/skills/adapter-skills.js +0 -61
- package/dist/atabey/src/modules/skills/adapter-skills.js.map +1 -1
- package/dist/atabey/src/modules/skills/definitions.d.ts +1 -1
- package/dist/atabey/src/modules/skills/definitions.js +8 -8
- package/dist/atabey/src/schema/agent-lifecycle.d.ts +36 -0
- package/dist/atabey/src/schema/agent-lifecycle.js +96 -0
- package/dist/atabey/src/schema/agent-lifecycle.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/ast-scan.d.ts +21 -0
- package/dist/atabey-mcp/src/mcp/utils/ast-scan.js +64 -0
- package/dist/atabey-mcp/src/mcp/utils/ast-scan.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/auth.d.ts +73 -0
- package/dist/atabey-mcp/src/mcp/utils/auth.js +316 -0
- package/dist/atabey-mcp/src/mcp/utils/auth.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/auto-rollback.d.ts +83 -0
- package/dist/atabey-mcp/src/mcp/utils/auto-rollback.js +418 -0
- package/dist/atabey-mcp/src/mcp/utils/auto-rollback.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/context-optimizer.d.ts +85 -0
- package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js +296 -0
- package/dist/atabey-mcp/src/mcp/utils/context-optimizer.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/discipline.d.ts +72 -0
- package/dist/atabey-mcp/src/mcp/utils/discipline.js +385 -0
- package/dist/atabey-mcp/src/mcp/utils/discipline.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/finops.d.ts +81 -0
- package/dist/atabey-mcp/src/mcp/utils/finops.js +274 -0
- package/dist/atabey-mcp/src/mcp/utils/finops.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/loop-detector.d.ts +106 -0
- package/dist/atabey-mcp/src/mcp/utils/loop-detector.js +419 -0
- package/dist/atabey-mcp/src/mcp/utils/loop-detector.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/rules-engine.d.ts +80 -0
- package/dist/atabey-mcp/src/mcp/utils/rules-engine.js +296 -0
- package/dist/atabey-mcp/src/mcp/utils/rules-engine.js.map +1 -0
- package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.d.ts +133 -0
- package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.js +400 -0
- package/dist/atabey-mcp/src/mcp/utils/telemetry-streamer.js.map +1 -0
- package/dist/atabey-mcp/src/shared/logger.d.ts +1 -0
- package/dist/atabey-mcp/src/shared/logger.js +2 -0
- package/dist/atabey-mcp/src/shared/logger.js.map +1 -0
- package/dist/atabey-mcp/src/shared/pii.d.ts +1 -0
- package/dist/atabey-mcp/src/shared/pii.js +2 -0
- package/dist/atabey-mcp/src/shared/pii.js.map +1 -0
- package/dist/atabey-mcp/src/shared/storage.d.ts +2 -0
- package/dist/atabey-mcp/src/shared/storage.js +3 -0
- package/dist/atabey-mcp/src/shared/storage.js.map +1 -0
- package/dist/shared/src/agent-identity.d.ts +1 -0
- package/dist/shared/src/agent-identity.js +2 -0
- package/dist/shared/src/agent-identity.js.map +1 -0
- package/dist/shared/src/api-catalog.d.ts +1 -0
- package/dist/shared/src/api-catalog.js +2 -0
- package/dist/shared/src/api-catalog.js.map +1 -0
- package/dist/shared/src/audit-chain.d.ts +1 -51
- package/dist/shared/src/audit-chain.js +1 -84
- package/dist/shared/src/audit-chain.js.map +1 -1
- package/dist/shared/src/audit.d.ts +1 -113
- package/dist/shared/src/audit.js +1 -284
- package/dist/shared/src/audit.js.map +1 -1
- package/dist/shared/src/constants.d.ts +1 -152
- package/dist/shared/src/constants.js +1 -215
- package/dist/shared/src/constants.js.map +1 -1
- package/dist/shared/src/database.d.ts +1 -5
- package/dist/shared/src/database.js +1 -12
- package/dist/shared/src/database.js.map +1 -1
- package/dist/shared/src/errors.d.ts +1 -46
- package/dist/shared/src/errors.js +1 -68
- package/dist/shared/src/errors.js.map +1 -1
- package/dist/shared/src/file-lock.d.ts +1 -88
- package/dist/shared/src/file-lock.js +1 -250
- package/dist/shared/src/file-lock.js.map +1 -1
- package/dist/shared/src/fs.d.ts +1 -9
- package/dist/shared/src/fs.js +1 -53
- package/dist/shared/src/fs.js.map +1 -1
- package/dist/shared/src/index.d.ts +2 -22
- package/dist/shared/src/index.js +2 -22
- package/dist/shared/src/index.js.map +1 -1
- package/dist/shared/src/job-queue.d.ts +1 -53
- package/dist/shared/src/job-queue.js +1 -126
- package/dist/shared/src/job-queue.js.map +1 -1
- package/dist/shared/src/lock.d.ts +1 -82
- package/dist/shared/src/lock.js +1 -158
- package/dist/shared/src/lock.js.map +1 -1
- package/dist/shared/src/logger.d.ts +1 -30
- package/dist/shared/src/logger.js +1 -126
- package/dist/shared/src/logger.js.map +1 -1
- package/dist/shared/src/memory-prune.d.ts +1 -0
- package/dist/shared/src/memory-prune.js +2 -0
- package/dist/shared/src/memory-prune.js.map +1 -0
- package/dist/shared/src/migrations.d.ts +1 -0
- package/dist/shared/src/migrations.js +2 -0
- package/dist/shared/src/migrations.js.map +1 -0
- package/dist/shared/src/modules/agent/agent-identity.d.ts +34 -0
- package/dist/shared/src/modules/agent/agent-identity.js +77 -0
- package/dist/shared/src/modules/agent/agent-identity.js.map +1 -0
- package/dist/shared/src/modules/agent/api-catalog.d.ts +57 -0
- package/dist/shared/src/modules/agent/api-catalog.js +254 -0
- package/dist/shared/src/modules/agent/api-catalog.js.map +1 -0
- package/dist/shared/src/modules/agent/index.d.ts +3 -0
- package/dist/shared/src/modules/agent/index.js +4 -0
- package/dist/shared/src/modules/agent/index.js.map +1 -0
- package/dist/shared/src/modules/agent/tokenizer.d.ts +54 -0
- package/dist/shared/src/modules/agent/tokenizer.js +272 -0
- package/dist/shared/src/modules/agent/tokenizer.js.map +1 -0
- package/dist/shared/src/modules/concurrency/file-lock.d.ts +93 -0
- package/dist/shared/src/modules/concurrency/file-lock.js +240 -0
- package/dist/shared/src/modules/concurrency/file-lock.js.map +1 -0
- package/dist/shared/src/modules/concurrency/index.d.ts +6 -0
- package/dist/shared/src/modules/concurrency/index.js +7 -0
- package/dist/shared/src/modules/concurrency/index.js.map +1 -0
- package/dist/shared/src/modules/concurrency/job-queue.d.ts +76 -0
- package/dist/shared/src/modules/concurrency/job-queue.js +200 -0
- package/dist/shared/src/modules/concurrency/job-queue.js.map +1 -0
- package/dist/shared/src/modules/concurrency/lock.d.ts +82 -0
- package/dist/shared/src/modules/concurrency/lock.js +159 -0
- package/dist/shared/src/modules/concurrency/lock.js.map +1 -0
- package/dist/shared/src/modules/concurrency/resilience.d.ts +84 -0
- package/dist/shared/src/modules/concurrency/resilience.js +217 -0
- package/dist/shared/src/modules/concurrency/resilience.js.map +1 -0
- package/dist/shared/src/modules/concurrency/worker-pool.d.ts +52 -0
- package/dist/shared/src/modules/concurrency/worker-pool.js +229 -0
- package/dist/shared/src/modules/concurrency/worker-pool.js.map +1 -0
- package/dist/shared/src/modules/concurrency/worker-thread.d.ts +21 -0
- package/dist/shared/src/modules/concurrency/worker-thread.js +67 -0
- package/dist/shared/src/modules/concurrency/worker-thread.js.map +1 -0
- package/dist/shared/src/modules/index.d.ts +14 -0
- package/dist/shared/src/modules/index.js +15 -0
- package/dist/shared/src/modules/index.js.map +1 -0
- package/dist/shared/src/modules/observability/audit-chain.d.ts +80 -0
- package/dist/shared/src/modules/observability/audit-chain.js +262 -0
- package/dist/shared/src/modules/observability/audit-chain.js.map +1 -0
- package/dist/shared/src/modules/observability/audit.d.ts +121 -0
- package/dist/shared/src/modules/observability/audit.js +322 -0
- package/dist/shared/src/modules/observability/audit.js.map +1 -0
- package/dist/shared/src/modules/observability/index.d.ts +4 -0
- package/dist/shared/src/modules/observability/index.js +5 -0
- package/dist/shared/src/modules/observability/index.js.map +1 -0
- package/dist/shared/src/modules/observability/logger.d.ts +31 -0
- package/dist/shared/src/modules/observability/logger.js +153 -0
- package/dist/shared/src/modules/observability/logger.js.map +1 -0
- package/dist/shared/src/modules/observability/otel.d.ts +39 -0
- package/dist/shared/src/modules/observability/otel.js +93 -0
- package/dist/shared/src/modules/observability/otel.js.map +1 -0
- package/dist/shared/src/modules/primitives/constants.d.ts +150 -0
- package/dist/shared/src/modules/primitives/constants.js +212 -0
- package/dist/shared/src/modules/primitives/constants.js.map +1 -0
- package/dist/shared/src/modules/primitives/errors.d.ts +46 -0
- package/dist/shared/src/modules/primitives/errors.js +69 -0
- package/dist/shared/src/modules/primitives/errors.js.map +1 -0
- package/dist/shared/src/modules/primitives/fs.d.ts +9 -0
- package/dist/shared/src/modules/primitives/fs.js +54 -0
- package/dist/shared/src/modules/primitives/fs.js.map +1 -0
- package/dist/shared/src/modules/primitives/index.d.ts +7 -0
- package/dist/shared/src/modules/primitives/index.js +8 -0
- package/dist/shared/src/modules/primitives/index.js.map +1 -0
- package/dist/shared/src/modules/primitives/outbound-http.d.ts +32 -0
- package/dist/shared/src/modules/primitives/outbound-http.js +88 -0
- package/dist/shared/src/modules/primitives/outbound-http.js.map +1 -0
- package/dist/shared/src/modules/primitives/string.d.ts +1 -0
- package/dist/shared/src/modules/primitives/string.js +30 -0
- package/dist/shared/src/modules/primitives/string.js.map +1 -0
- package/dist/shared/src/modules/primitives/time.d.ts +5 -0
- package/dist/shared/src/modules/primitives/time.js +35 -0
- package/dist/shared/src/modules/primitives/time.js.map +1 -0
- package/dist/shared/src/modules/primitives/types.d.ts +27 -0
- package/dist/shared/src/modules/primitives/types.js +17 -0
- package/dist/shared/src/modules/primitives/types.js.map +1 -0
- package/dist/shared/src/modules/sandbox/index.d.ts +3 -0
- package/dist/shared/src/modules/sandbox/index.js +4 -0
- package/dist/shared/src/modules/sandbox/index.js.map +1 -0
- package/dist/shared/src/modules/sandbox/sandbox-fs.d.ts +28 -0
- package/dist/shared/src/modules/sandbox/sandbox-fs.js +143 -0
- package/dist/shared/src/modules/sandbox/sandbox-fs.js.map +1 -0
- package/dist/shared/src/modules/sandbox/sandbox-runtime.d.ts +78 -0
- package/dist/shared/src/modules/sandbox/sandbox-runtime.js +282 -0
- package/dist/shared/src/modules/sandbox/sandbox-runtime.js.map +1 -0
- package/dist/shared/src/modules/sandbox/sandbox.d.ts +54 -0
- package/dist/shared/src/modules/sandbox/sandbox.js +179 -0
- package/dist/shared/src/modules/sandbox/sandbox.js.map +1 -0
- package/dist/shared/src/modules/security/index.d.ts +5 -0
- package/dist/shared/src/modules/security/index.js +6 -0
- package/dist/shared/src/modules/security/index.js.map +1 -0
- package/dist/shared/src/modules/security/pii.d.ts +70 -0
- package/dist/shared/src/modules/security/pii.js +276 -0
- package/dist/shared/src/modules/security/pii.js.map +1 -0
- package/dist/shared/src/modules/security/policy-gate.d.ts +42 -0
- package/dist/shared/src/modules/security/policy-gate.js +172 -0
- package/dist/shared/src/modules/security/policy-gate.js.map +1 -0
- package/dist/shared/src/modules/security/retention.d.ts +68 -0
- package/dist/shared/src/modules/security/retention.js +218 -0
- package/dist/shared/src/modules/security/retention.js.map +1 -0
- package/dist/shared/src/modules/security/secrets.d.ts +99 -0
- package/dist/shared/src/modules/security/secrets.js +371 -0
- package/dist/shared/src/modules/security/secrets.js.map +1 -0
- package/dist/shared/src/modules/security/tls.d.ts +87 -0
- package/dist/shared/src/modules/security/tls.js +154 -0
- package/dist/shared/src/modules/security/tls.js.map +1 -0
- package/dist/shared/src/modules/storage/database.d.ts +6 -0
- package/dist/shared/src/modules/storage/database.js +16 -0
- package/dist/shared/src/modules/storage/database.js.map +1 -0
- package/dist/shared/src/modules/storage/index.d.ts +4 -0
- package/dist/shared/src/modules/storage/index.js +5 -0
- package/dist/shared/src/modules/storage/index.js.map +1 -0
- package/dist/shared/src/modules/storage/memory-prune.d.ts +18 -0
- package/dist/shared/src/modules/storage/memory-prune.js +48 -0
- package/dist/shared/src/modules/storage/memory-prune.js.map +1 -0
- package/dist/shared/src/modules/storage/migrations.d.ts +69 -0
- package/dist/shared/src/modules/storage/migrations.js +394 -0
- package/dist/shared/src/modules/storage/migrations.js.map +1 -0
- package/dist/shared/src/modules/storage/storage.d.ts +341 -0
- package/dist/shared/src/modules/storage/storage.js +1004 -0
- package/dist/shared/src/modules/storage/storage.js.map +1 -0
- package/dist/shared/src/otel.d.ts +1 -0
- package/dist/shared/src/otel.js +2 -0
- package/dist/shared/src/otel.js.map +1 -0
- package/dist/shared/src/outbound-http.d.ts +1 -0
- package/dist/shared/src/outbound-http.js +2 -0
- package/dist/shared/src/outbound-http.js.map +1 -0
- package/dist/shared/src/pii.d.ts +1 -69
- package/dist/shared/src/pii.js +1 -219
- package/dist/shared/src/pii.js.map +1 -1
- package/dist/shared/src/policy-gate.d.ts +1 -42
- package/dist/shared/src/policy-gate.js +1 -147
- package/dist/shared/src/policy-gate.js.map +1 -1
- package/dist/shared/src/resilience.d.ts +1 -84
- package/dist/shared/src/resilience.js +1 -216
- package/dist/shared/src/resilience.js.map +1 -1
- package/dist/shared/src/retention.d.ts +1 -63
- package/dist/shared/src/retention.js +1 -170
- package/dist/shared/src/retention.js.map +1 -1
- package/dist/shared/src/sandbox-fs.d.ts +1 -28
- package/dist/shared/src/sandbox-fs.js +1 -149
- package/dist/shared/src/sandbox-fs.js.map +1 -1
- package/dist/shared/src/sandbox-runtime.d.ts +1 -85
- package/dist/shared/src/sandbox-runtime.js +1 -249
- package/dist/shared/src/sandbox-runtime.js.map +1 -1
- package/dist/shared/src/sandbox.d.ts +1 -54
- package/dist/shared/src/sandbox.js +1 -178
- package/dist/shared/src/sandbox.js.map +1 -1
- package/dist/shared/src/secrets.d.ts +1 -0
- package/dist/shared/src/secrets.js +2 -0
- package/dist/shared/src/secrets.js.map +1 -0
- package/dist/shared/src/storage.d.ts +1 -274
- package/dist/shared/src/storage.js +1 -723
- package/dist/shared/src/storage.js.map +1 -1
- package/dist/shared/src/string.d.ts +1 -1
- package/dist/shared/src/string.js +1 -29
- package/dist/shared/src/string.js.map +1 -1
- package/dist/shared/src/time.d.ts +1 -5
- package/dist/shared/src/time.js +1 -30
- package/dist/shared/src/time.js.map +1 -1
- package/dist/shared/src/tls.d.ts +1 -0
- package/dist/shared/src/tls.js +2 -0
- package/dist/shared/src/tls.js.map +1 -0
- package/dist/shared/src/tokenizer.d.ts +1 -0
- package/dist/shared/src/tokenizer.js +2 -0
- package/dist/shared/src/tokenizer.js.map +1 -0
- package/dist/shared/src/types.d.ts +1 -27
- package/dist/shared/src/types.js +1 -16
- package/dist/shared/src/types.js.map +1 -1
- package/dist/shared/src/worker-pool.d.ts +1 -52
- package/dist/shared/src/worker-pool.js +1 -209
- package/dist/shared/src/worker-pool.js.map +1 -1
- package/dist/shared/src/worker-thread.d.ts +1 -21
- package/dist/shared/src/worker-thread.js +1 -66
- package/dist/shared/src/worker-thread.js.map +1 -1
- package/package.json +4 -6
- package/templates/docs/tech-stack.md +21 -0
- package/templates/full/ATABEY_FULL.md +38 -50
- package/templates/prompts/security-audit-recipe.md +1 -1
- package/templates/standards/architecture-standards.md +6 -4
- package/templates/standards/crud-governance.md +1 -1
- package/templates/standards/deployment-standards.md +1 -1
- package/templates/standards/enterprise-systems-standards.md +5 -1
- package/templates/standards/eslint-standards.md +10 -0
- package/templates/standards/frontend-standards.md +2 -2
- package/templates/standards/governance-standards.md +2 -2
- package/templates/standards/i18n-standards.md +1 -1
- package/templates/standards/logging-and-secrets.md +1 -1
- package/templates/standards/native-standards.md +1 -1
- package/templates/standards/quality-standards.md +1 -1
- package/templates/standards/security-audit-standards.md +1 -1
- package/templates/standards/security-standards.md +1 -1
- package/templates/standards/testing-standards.md +1 -1
- package/templates/standards/token-economy.md +27 -0
- package/dist/atabey/src/cli/commands/init/create-agent.d.ts +0 -4
- package/dist/atabey/src/cli/commands/init/create-agent.js +0 -59
- package/dist/atabey/src/cli/commands/init/create-agent.js.map +0 -1
- package/dist/atabey/src/cli/utils/config-schema.d.ts +0 -213
- package/dist/atabey/src/cli/utils/config-schema.js +0 -58
- package/dist/atabey/src/cli/utils/config-schema.js.map +0 -1
- package/dist/atabey/src/cli/utils/schemas.d.ts +0 -49
- package/dist/atabey/src/cli/utils/schemas.js +0 -20
- package/dist/atabey/src/cli/utils/schemas.js.map +0 -1
- package/dist/atabey/src/contracts/index.d.ts +0 -1
- package/dist/atabey/src/contracts/index.js +0 -2
- package/dist/atabey/src/contracts/index.js.map +0 -1
- package/dist/atabey/src/contracts/tasks.d.ts +0 -44
- package/dist/atabey/src/contracts/tasks.js +0 -21
- package/dist/atabey/src/contracts/tasks.js.map +0 -1
- package/dist/atabey/src/modules/contracts/index.d.ts +0 -5
- package/dist/atabey/src/modules/contracts/index.js +0 -6
- package/dist/atabey/src/modules/contracts/index.js.map +0 -1
- package/dist/atabey/src/modules/engines/contract-engine.d.ts +0 -46
- package/dist/atabey/src/modules/engines/contract-engine.js +0 -116
- package/dist/atabey/src/modules/engines/contract-engine.js.map +0 -1
- package/dist/atabey/src/modules/engines/discovery-engine.d.ts +0 -42
- package/dist/atabey/src/modules/engines/discovery-engine.js +0 -161
- package/dist/atabey/src/modules/engines/discovery-engine.js.map +0 -1
- package/dist/atabey/src/modules/engines/file-lock.d.ts +0 -56
- package/dist/atabey/src/modules/engines/file-lock.js +0 -171
- package/dist/atabey/src/modules/engines/file-lock.js.map +0 -1
- package/dist/atabey/src/modules/engines/phase-engine.d.ts +0 -82
- package/dist/atabey/src/modules/engines/phase-engine.js +0 -204
- package/dist/atabey/src/modules/engines/phase-engine.js.map +0 -1
- package/dist/atabey/src/modules/engines/policy-engine.d.ts +0 -63
- package/dist/atabey/src/modules/engines/policy-engine.js +0 -188
- package/dist/atabey/src/modules/engines/policy-engine.js.map +0 -1
- package/dist/atabey/src/modules/engines/sandbox.d.ts +0 -31
- package/dist/atabey/src/modules/engines/sandbox.js +0 -57
- package/dist/atabey/src/modules/engines/sandbox.js.map +0 -1
- package/dist/atabey/src/modules/engines/session-engine.d.ts +0 -68
- package/dist/atabey/src/modules/engines/session-engine.js +0 -141
- package/dist/atabey/src/modules/engines/session-engine.js.map +0 -1
- package/dist/atabey/src/modules/engines/worker-pool.d.ts +0 -8
- package/dist/atabey/src/modules/engines/worker-pool.js +0 -9
- package/dist/atabey/src/modules/engines/worker-pool.js.map +0 -1
- package/dist/atabey/src/modules/providers/llm-provider.d.ts +0 -87
- package/dist/atabey/src/modules/providers/llm-provider.js +0 -242
- package/dist/atabey/src/modules/providers/llm-provider.js.map +0 -1
- package/dist/atabey/src/shared/file-lock.d.ts +0 -1
- package/dist/atabey/src/shared/file-lock.js +0 -2
- package/dist/atabey/src/shared/file-lock.js.map +0 -1
- package/dist/atabey/src/shared/job-queue.d.ts +0 -1
- package/dist/atabey/src/shared/job-queue.js +0 -2
- package/dist/atabey/src/shared/job-queue.js.map +0 -1
- package/dist/atabey/src/shared/lock.d.ts +0 -1
- package/dist/atabey/src/shared/lock.js +0 -2
- package/dist/atabey/src/shared/lock.js.map +0 -1
- package/dist/atabey/src/shared/resilience.d.ts +0 -1
- package/dist/atabey/src/shared/resilience.js +0 -2
- package/dist/atabey/src/shared/resilience.js.map +0 -1
- package/dist/atabey/src/shared/retention.d.ts +0 -1
- package/dist/atabey/src/shared/retention.js +0 -2
- package/dist/atabey/src/shared/retention.js.map +0 -1
- package/dist/atabey/src/shared/sandbox-runtime.d.ts +0 -1
- package/dist/atabey/src/shared/sandbox-runtime.js +0 -2
- package/dist/atabey/src/shared/sandbox-runtime.js.map +0 -1
- package/dist/atabey/src/shared/sandbox.d.ts +0 -1
- package/dist/atabey/src/shared/sandbox.js +0 -2
- package/dist/atabey/src/shared/sandbox.js.map +0 -1
- package/dist/atabey/src/shared/worker-pool.d.ts +0 -1
- package/dist/atabey/src/shared/worker-pool.js +0 -2
- package/dist/atabey/src/shared/worker-pool.js.map +0 -1
|
@@ -1,161 +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
|
-
import fs from "fs";
|
|
11
|
-
import path from "path";
|
|
12
|
-
import { logger } from "../../shared/logger.js";
|
|
13
|
-
import { AtabeyStorage } from "../../shared/storage.js";
|
|
14
|
-
export class DiscoveryEngine {
|
|
15
|
-
/**
|
|
16
|
-
* Runs the full Architecture Discovery Protocol on a project.
|
|
17
|
-
*/
|
|
18
|
-
static async discover(projectRoot) {
|
|
19
|
-
logger.info(`[ADP] Starting Architecture Discovery Protocol for ${projectRoot}`);
|
|
20
|
-
const entryPoints = DiscoveryEngine.findEntryPoints(projectRoot);
|
|
21
|
-
const businessLogic = DiscoveryEngine.mapBusinessLogic(projectRoot);
|
|
22
|
-
const contracts = DiscoveryEngine.analyzeContracts(projectRoot);
|
|
23
|
-
const architecture = DiscoveryEngine.detectArchitecture(projectRoot);
|
|
24
|
-
const recommendations = DiscoveryEngine.generateRecommendations(entryPoints, businessLogic, contracts, architecture);
|
|
25
|
-
// Log discovery results
|
|
26
|
-
AtabeyStorage.saveLog({
|
|
27
|
-
agent: "@explorer",
|
|
28
|
-
action: "ARCHITECTURE_DISCOVERY",
|
|
29
|
-
trace_id: AtabeyStorage.getMetadata("traceId") || "N/A",
|
|
30
|
-
status: "SUCCESS",
|
|
31
|
-
summary: `ADP complete: ${entryPoints.length} entry points, ${businessLogic.length} logic files, ${contracts.length} contracts`
|
|
32
|
-
});
|
|
33
|
-
return { entryPoints, businessLogic, contracts, architecture, recommendations };
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Step 1: Entry Point Hunt — find main entry points.
|
|
37
|
-
*/
|
|
38
|
-
static findEntryPoints(projectRoot) {
|
|
39
|
-
const entryPoints = [];
|
|
40
|
-
const patterns = ["index.ts", "main.ts", "server.ts", "app.ts", "index.js", "main.js", "server.js"];
|
|
41
|
-
const searchDir = (dir, depth) => {
|
|
42
|
-
if (depth > 3)
|
|
43
|
-
return; // Limit depth
|
|
44
|
-
try {
|
|
45
|
-
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
46
|
-
for (const entry of entries) {
|
|
47
|
-
if (entry.isDirectory() && !entry.name.startsWith(".") && entry.name !== "node_modules") {
|
|
48
|
-
searchDir(path.join(dir, entry.name), depth + 1);
|
|
49
|
-
}
|
|
50
|
-
else if (patterns.includes(entry.name)) {
|
|
51
|
-
entryPoints.push(path.relative(projectRoot, path.join(dir, entry.name)));
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
catch { /* skip unreadable */ }
|
|
56
|
-
};
|
|
57
|
-
searchDir(projectRoot, 0);
|
|
58
|
-
return entryPoints;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Step 2: Business Logic Mapping — find service/repository/controller patterns.
|
|
62
|
-
*/
|
|
63
|
-
static mapBusinessLogic(projectRoot) {
|
|
64
|
-
const logicFiles = [];
|
|
65
|
-
const patterns = ["service", "repository", "controller", "handler", "use-case", "domain"];
|
|
66
|
-
const searchDir = (dir) => {
|
|
67
|
-
try {
|
|
68
|
-
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
69
|
-
for (const entry of entries) {
|
|
70
|
-
const fullPath = path.join(dir, entry.name);
|
|
71
|
-
if (entry.isDirectory() && !entry.name.startsWith(".") && entry.name !== "node_modules") {
|
|
72
|
-
searchDir(fullPath);
|
|
73
|
-
}
|
|
74
|
-
else if (entry.isFile() && (entry.name.endsWith(".ts") || entry.name.endsWith(".js"))) {
|
|
75
|
-
const lower = entry.name.toLowerCase();
|
|
76
|
-
if (patterns.some(p => lower.includes(p))) {
|
|
77
|
-
logicFiles.push(path.relative(projectRoot, fullPath));
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
catch { /* skip unreadable */ }
|
|
83
|
-
};
|
|
84
|
-
searchDir(projectRoot);
|
|
85
|
-
return logicFiles;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Step 3: Contract Analysis — find type definitions and API schemas.
|
|
89
|
-
*/
|
|
90
|
-
static analyzeContracts(projectRoot) {
|
|
91
|
-
const contractFiles = [];
|
|
92
|
-
const patterns = ["types.ts", "schema.ts", "contract.ts", "interface.ts", "dto.ts", "api.ts"];
|
|
93
|
-
const searchDir = (dir) => {
|
|
94
|
-
try {
|
|
95
|
-
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
96
|
-
for (const entry of entries) {
|
|
97
|
-
const fullPath = path.join(dir, entry.name);
|
|
98
|
-
if (entry.isDirectory() && !entry.name.startsWith(".") && entry.name !== "node_modules") {
|
|
99
|
-
searchDir(fullPath);
|
|
100
|
-
}
|
|
101
|
-
else if (entry.isFile() && (entry.name.endsWith(".ts") || entry.name.endsWith(".d.ts"))) {
|
|
102
|
-
const lower = entry.name.toLowerCase();
|
|
103
|
-
if (patterns.some(p => lower.includes(p))) {
|
|
104
|
-
contractFiles.push(path.relative(projectRoot, fullPath));
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
catch { /* skip unreadable */ }
|
|
110
|
-
};
|
|
111
|
-
searchDir(projectRoot);
|
|
112
|
-
return contractFiles;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Detects the project architecture type.
|
|
116
|
-
*/
|
|
117
|
-
static detectArchitecture(projectRoot) {
|
|
118
|
-
const hasSrc = fs.existsSync(path.join(projectRoot, "src"));
|
|
119
|
-
const hasApps = fs.existsSync(path.join(projectRoot, "apps"));
|
|
120
|
-
const hasPackages = fs.existsSync(path.join(projectRoot, "packages"));
|
|
121
|
-
const hasBackend = fs.existsSync(path.join(projectRoot, "backend")) || fs.existsSync(path.join(projectRoot, "server"));
|
|
122
|
-
const hasFrontend = fs.existsSync(path.join(projectRoot, "frontend")) || fs.existsSync(path.join(projectRoot, "web"));
|
|
123
|
-
const hasPackageJson = fs.existsSync(path.join(projectRoot, "package.json"));
|
|
124
|
-
if (hasApps || hasPackages)
|
|
125
|
-
return "monorepo";
|
|
126
|
-
if (hasSrc && hasBackend && hasFrontend)
|
|
127
|
-
return "fullstack-src";
|
|
128
|
-
if (hasBackend && hasFrontend)
|
|
129
|
-
return "fullstack";
|
|
130
|
-
if (hasBackend)
|
|
131
|
-
return "backend-only";
|
|
132
|
-
if (hasFrontend)
|
|
133
|
-
return "frontend-only";
|
|
134
|
-
if (hasSrc)
|
|
135
|
-
return "src-based";
|
|
136
|
-
if (hasPackageJson)
|
|
137
|
-
return "simple-node";
|
|
138
|
-
return "unknown";
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Generates recommendations based on discovery results.
|
|
142
|
-
*/
|
|
143
|
-
static generateRecommendations(entryPoints, businessLogic, contracts, architecture) {
|
|
144
|
-
const recommendations = [];
|
|
145
|
-
if (entryPoints.length === 0) {
|
|
146
|
-
recommendations.push("No entry point found. Consider creating a standard entry point (index.ts, main.ts).");
|
|
147
|
-
}
|
|
148
|
-
if (businessLogic.length === 0) {
|
|
149
|
-
recommendations.push("No business logic files found. Consider using service/repository pattern.");
|
|
150
|
-
}
|
|
151
|
-
if (contracts.length === 0) {
|
|
152
|
-
recommendations.push("No contract/type files found. Define shared types before implementation.");
|
|
153
|
-
}
|
|
154
|
-
if (architecture === "unknown") {
|
|
155
|
-
recommendations.push("Architecture type undetected. Run `atabey init` to scaffold project structure.");
|
|
156
|
-
}
|
|
157
|
-
recommendations.push(`Detected architecture: ${architecture}`);
|
|
158
|
-
return recommendations;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
//# sourceMappingURL=discovery-engine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"discovery-engine.js","sourceRoot":"","sources":["../../../../../src/modules/engines/discovery-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* [ENGINE] File Lock — Conflict Resolution for Multi-Agent File Access
|
|
3
|
-
*
|
|
4
|
-
* Prevents two agents from writing to the same file simultaneously.
|
|
5
|
-
* Uses atomic exclusive create (`fs.openSync(path, "wx")`) under `.atabey/locks/`.
|
|
6
|
-
*
|
|
7
|
-
* Flow:
|
|
8
|
-
* 1. Agent A acquires lock on src/file.ts → exclusive .lock file created
|
|
9
|
-
* 2. Agent B tries same path → EEXIST → WAITING / false
|
|
10
|
-
* 3. Agent A releases → unlink → Agent B can proceed
|
|
11
|
-
*
|
|
12
|
-
* Stale lock detection: locks older than TTL (default 5 min) are reclaimed.
|
|
13
|
-
*/
|
|
14
|
-
export declare class FileLock {
|
|
15
|
-
private static STALE_TIMEOUT_MS;
|
|
16
|
-
/** Prefer ATABEY_PROJECT_ROOT (MCP) over process.cwd(). */
|
|
17
|
-
private static projectRoot;
|
|
18
|
-
private static locksDir;
|
|
19
|
-
private static locker;
|
|
20
|
-
/**
|
|
21
|
-
* Attempts to acquire a lock for a file on behalf of an agent.
|
|
22
|
-
* Returns true if lock acquired, false if another agent holds it.
|
|
23
|
-
*/
|
|
24
|
-
static acquire(agentName: string, filePath: string): boolean;
|
|
25
|
-
/**
|
|
26
|
-
* Async acquire with retry until timeout (default 10s).
|
|
27
|
-
*/
|
|
28
|
-
static acquireAsync(agentName: string, filePath: string, timeoutMs?: number): Promise<boolean>;
|
|
29
|
-
/**
|
|
30
|
-
* Releases a lock held by an agent.
|
|
31
|
-
* Only the lock-owning agent can release (others get warning).
|
|
32
|
-
*/
|
|
33
|
-
static release(agentName: string, filePath: string): boolean;
|
|
34
|
-
/**
|
|
35
|
-
* Checks if a file is currently locked.
|
|
36
|
-
* Returns the locking agent name or null.
|
|
37
|
-
*/
|
|
38
|
-
static isLocked(filePath: string): string | null;
|
|
39
|
-
/**
|
|
40
|
-
* Run fn while holding an exclusive lock on filePath.
|
|
41
|
-
* Always releases in finally (even if fn throws) — prevents stuck .lock deadlocks.
|
|
42
|
-
*/
|
|
43
|
-
static withLock<T>(agentName: string, filePath: string, fn: () => Promise<T> | T, timeoutMs?: number): Promise<T>;
|
|
44
|
-
/**
|
|
45
|
-
* Synchronous withLock — same try/finally release guarantee.
|
|
46
|
-
*/
|
|
47
|
-
static withLockSync<T>(agentName: string, filePath: string, fn: () => T): T;
|
|
48
|
-
/**
|
|
49
|
-
* Lists all currently active locks under `.atabey/locks`.
|
|
50
|
-
*/
|
|
51
|
-
static listLocks(): Array<{
|
|
52
|
-
agent: string;
|
|
53
|
-
file: string;
|
|
54
|
-
acquiredAt: string;
|
|
55
|
-
}>;
|
|
56
|
-
}
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { AtomicFileLock } from "atabey-shared/file-lock.js";
|
|
4
|
-
import { logger } from "../../shared/logger.js";
|
|
5
|
-
import { AtabeyStorage } from "../../shared/storage.js";
|
|
6
|
-
/**
|
|
7
|
-
* [ENGINE] File Lock — Conflict Resolution for Multi-Agent File Access
|
|
8
|
-
*
|
|
9
|
-
* Prevents two agents from writing to the same file simultaneously.
|
|
10
|
-
* Uses atomic exclusive create (`fs.openSync(path, "wx")`) under `.atabey/locks/`.
|
|
11
|
-
*
|
|
12
|
-
* Flow:
|
|
13
|
-
* 1. Agent A acquires lock on src/file.ts → exclusive .lock file created
|
|
14
|
-
* 2. Agent B tries same path → EEXIST → WAITING / false
|
|
15
|
-
* 3. Agent A releases → unlink → Agent B can proceed
|
|
16
|
-
*
|
|
17
|
-
* Stale lock detection: locks older than TTL (default 5 min) are reclaimed.
|
|
18
|
-
*/
|
|
19
|
-
export class FileLock {
|
|
20
|
-
static STALE_TIMEOUT_MS = 5 * 60 * 1000;
|
|
21
|
-
/** Prefer ATABEY_PROJECT_ROOT (MCP) over process.cwd(). */
|
|
22
|
-
static projectRoot() {
|
|
23
|
-
return process.env.ATABEY_PROJECT_ROOT || process.cwd();
|
|
24
|
-
}
|
|
25
|
-
static locksDir() {
|
|
26
|
-
return path.join(FileLock.projectRoot(), ".atabey", "locks");
|
|
27
|
-
}
|
|
28
|
-
static locker() {
|
|
29
|
-
const projectRoot = FileLock.projectRoot();
|
|
30
|
-
return new AtomicFileLock({
|
|
31
|
-
projectRoot,
|
|
32
|
-
locksDir: FileLock.locksDir(),
|
|
33
|
-
ttlMs: FileLock.STALE_TIMEOUT_MS,
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Attempts to acquire a lock for a file on behalf of an agent.
|
|
38
|
-
* Returns true if lock acquired, false if another agent holds it.
|
|
39
|
-
*/
|
|
40
|
-
static acquire(agentName, filePath) {
|
|
41
|
-
const lock = FileLock.locker();
|
|
42
|
-
const result = lock.tryAcquire(filePath, agentName, "multi-agent file write");
|
|
43
|
-
if (result.acquired) {
|
|
44
|
-
logger.debug(`[FILE_LOCK] ${agentName} acquired lock on ${filePath}`);
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
const heldBy = result.heldBy?.ownerId ?? "unknown";
|
|
48
|
-
logger.warn(`[FILE_LOCK] CONFLICT: ${agentName} cannot write ${filePath} — locked by ${heldBy}`);
|
|
49
|
-
AtabeyStorage.saveLog({
|
|
50
|
-
agent: agentName,
|
|
51
|
-
action: "FILE_LOCK_CONFLICT",
|
|
52
|
-
trace_id: AtabeyStorage.getMetadata("traceId") || "N/A",
|
|
53
|
-
status: "BLOCKED",
|
|
54
|
-
summary: `File ${filePath} is locked by ${heldBy}. Waiting for release.`,
|
|
55
|
-
});
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Async acquire with retry until timeout (default 10s).
|
|
60
|
-
*/
|
|
61
|
-
static async acquireAsync(agentName, filePath, timeoutMs = 10_000) {
|
|
62
|
-
const lock = FileLock.locker();
|
|
63
|
-
try {
|
|
64
|
-
await lock.acquireAsync(filePath, agentName, {
|
|
65
|
-
reason: "multi-agent file write",
|
|
66
|
-
timeoutMs,
|
|
67
|
-
});
|
|
68
|
-
logger.debug(`[FILE_LOCK] ${agentName} acquired lock (async) on ${filePath}`);
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
catch (err) {
|
|
72
|
-
logger.warn(`[FILE_LOCK] ${agentName} timed out waiting for ${filePath}: ${err.message}`);
|
|
73
|
-
AtabeyStorage.saveLog({
|
|
74
|
-
agent: agentName,
|
|
75
|
-
action: "FILE_LOCK_TIMEOUT",
|
|
76
|
-
trace_id: AtabeyStorage.getMetadata("traceId") || "N/A",
|
|
77
|
-
status: "BLOCKED",
|
|
78
|
-
summary: err.message,
|
|
79
|
-
});
|
|
80
|
-
return false;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Releases a lock held by an agent.
|
|
85
|
-
* Only the lock-owning agent can release (others get warning).
|
|
86
|
-
*/
|
|
87
|
-
static release(agentName, filePath) {
|
|
88
|
-
const lock = FileLock.locker();
|
|
89
|
-
const released = lock.release(filePath, agentName);
|
|
90
|
-
if (!released) {
|
|
91
|
-
const held = lock.isLocked(filePath);
|
|
92
|
-
if (held) {
|
|
93
|
-
logger.warn(`[FILE_LOCK] ${agentName} tried to release lock held by ${held.ownerId} on ${filePath}`);
|
|
94
|
-
}
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
logger.debug(`[FILE_LOCK] ${agentName} released lock on ${filePath}`);
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Checks if a file is currently locked.
|
|
102
|
-
* Returns the locking agent name or null.
|
|
103
|
-
*/
|
|
104
|
-
static isLocked(filePath) {
|
|
105
|
-
const meta = FileLock.locker().isLocked(filePath);
|
|
106
|
-
return meta?.ownerId ?? null;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Run fn while holding an exclusive lock on filePath.
|
|
110
|
-
* Always releases in finally (even if fn throws) — prevents stuck .lock deadlocks.
|
|
111
|
-
*/
|
|
112
|
-
static async withLock(agentName, filePath, fn, timeoutMs = 10_000) {
|
|
113
|
-
return FileLock.locker().withLock(filePath, agentName, fn, {
|
|
114
|
-
reason: "multi-agent file write",
|
|
115
|
-
timeoutMs,
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Synchronous withLock — same try/finally release guarantee.
|
|
120
|
-
*/
|
|
121
|
-
static withLockSync(agentName, filePath, fn) {
|
|
122
|
-
return FileLock.locker().withLockSync(filePath, agentName, fn, {
|
|
123
|
-
reason: "multi-agent file write",
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Lists all currently active locks under `.atabey/locks`.
|
|
128
|
-
*/
|
|
129
|
-
static listLocks() {
|
|
130
|
-
const locksDir = FileLock.locksDir();
|
|
131
|
-
if (!fs.existsSync(locksDir))
|
|
132
|
-
return [];
|
|
133
|
-
const locks = [];
|
|
134
|
-
const walkDir = (dir) => {
|
|
135
|
-
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
136
|
-
for (const entry of entries) {
|
|
137
|
-
const fullPath = path.join(dir, entry.name);
|
|
138
|
-
if (entry.isDirectory()) {
|
|
139
|
-
walkDir(fullPath);
|
|
140
|
-
}
|
|
141
|
-
else if (entry.name.endsWith(".lock")) {
|
|
142
|
-
try {
|
|
143
|
-
const data = JSON.parse(fs.readFileSync(fullPath, "utf8"));
|
|
144
|
-
const exp = Date.parse(data.expiresAt);
|
|
145
|
-
if (!Number.isNaN(exp) && Date.now() > exp) {
|
|
146
|
-
try {
|
|
147
|
-
fs.unlinkSync(fullPath);
|
|
148
|
-
}
|
|
149
|
-
catch { /* ignore */ }
|
|
150
|
-
continue;
|
|
151
|
-
}
|
|
152
|
-
locks.push({
|
|
153
|
-
agent: data.ownerId,
|
|
154
|
-
file: data.resource,
|
|
155
|
-
acquiredAt: data.acquiredAt,
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
catch {
|
|
159
|
-
try {
|
|
160
|
-
fs.unlinkSync(fullPath);
|
|
161
|
-
}
|
|
162
|
-
catch { /* ignore */ }
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
walkDir(locksDir);
|
|
168
|
-
return locks;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
//# sourceMappingURL=file-lock.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-lock.js","sourceRoot":"","sources":["../../../../../src/modules/engines/file-lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* [ENGINE] Phase Engine — State Machine for Development Lifecycle
|
|
3
|
-
*
|
|
4
|
-
* Implements the PHASE_0 → PHASE_4 state machine from ATABEY.md.
|
|
5
|
-
* Prevents phase skipping and enforces rollback when contracts break.
|
|
6
|
-
*
|
|
7
|
-
* Phases:
|
|
8
|
-
* PHASE_0 (Discovery & Setup) → Requirements analysis, docs validation
|
|
9
|
-
* PHASE_1 (Architecture & Contracts) → Data models, API schemas, types
|
|
10
|
-
* PHASE_2 (Core Development) → Feature implementation
|
|
11
|
-
* PHASE_3 (Integration & Testing) → System integration, QA
|
|
12
|
-
* PHASE_4 (Optimization & Deployment) → Performance audit, deploy
|
|
13
|
-
*
|
|
14
|
-
* Rollback:
|
|
15
|
-
* If contracts break during PHASE_2+ → auto rollback to PHASE_1
|
|
16
|
-
*/
|
|
17
|
-
export type Phase = "PHASE_0" | "PHASE_1" | "PHASE_2" | "PHASE_3" | "PHASE_4" | "ROLLBACK_PHASE_1";
|
|
18
|
-
export interface PhaseTransition {
|
|
19
|
-
from: Phase;
|
|
20
|
-
to: Phase;
|
|
21
|
-
timestamp: string;
|
|
22
|
-
reason: string;
|
|
23
|
-
triggeredBy: string;
|
|
24
|
-
}
|
|
25
|
-
export interface PhaseRequirements {
|
|
26
|
-
phase: Phase;
|
|
27
|
-
name: string;
|
|
28
|
-
allowedWork: string[];
|
|
29
|
-
successCriteria: string[];
|
|
30
|
-
prohibitedWork: string[];
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Phase Engine — manages the development lifecycle state machine.
|
|
34
|
-
* Stored in Storage metadata under "phase" key.
|
|
35
|
-
* Transition history stored in `.atabey/logs/phase-transitions.json`.
|
|
36
|
-
*/
|
|
37
|
-
export declare class PhaseEngine {
|
|
38
|
-
private static readonly VALID_TRANSITIONS;
|
|
39
|
-
private static readonly PHASE_DEFINITIONS;
|
|
40
|
-
/**
|
|
41
|
-
* Returns the current phase from storage.
|
|
42
|
-
*/
|
|
43
|
-
static getCurrentPhase(): Phase;
|
|
44
|
-
/**
|
|
45
|
-
* Attempts to transition to a new phase.
|
|
46
|
-
* Validates that the transition is allowed by the state machine.
|
|
47
|
-
*/
|
|
48
|
-
static transitionTo(targetPhase: Phase, reason: string, triggeredBy: string): Promise<{
|
|
49
|
-
success: boolean;
|
|
50
|
-
from: Phase;
|
|
51
|
-
to: Phase;
|
|
52
|
-
error?: string;
|
|
53
|
-
}>;
|
|
54
|
-
/**
|
|
55
|
-
* Checks if a given work type is allowed in the current phase.
|
|
56
|
-
*/
|
|
57
|
-
static isWorkAllowed(work: string): boolean;
|
|
58
|
-
/**
|
|
59
|
-
* Returns the requirements for the current phase.
|
|
60
|
-
*/
|
|
61
|
-
static getCurrentPhaseRequirements(): PhaseRequirements;
|
|
62
|
-
/**
|
|
63
|
-
* Checks if all success criteria for the current phase are met.
|
|
64
|
-
*/
|
|
65
|
-
static checkPhaseCompletion(): Promise<{
|
|
66
|
-
complete: boolean;
|
|
67
|
-
missingCriteria: string[];
|
|
68
|
-
}>;
|
|
69
|
-
/**
|
|
70
|
-
* Marks a success criterion as completed.
|
|
71
|
-
*/
|
|
72
|
-
static markCriteriaMet(criteria: string, agent: string): Promise<void>;
|
|
73
|
-
/**
|
|
74
|
-
* Detects if contracts are broken and auto-triggers rollback.
|
|
75
|
-
* Called by ContractEngine when contract_hash changes unexpectedly.
|
|
76
|
-
*/
|
|
77
|
-
static detectBrokenContracts(triggeredBy: string): Promise<void>;
|
|
78
|
-
/**
|
|
79
|
-
* Notifies all agents to switch to WAITING state during rollback.
|
|
80
|
-
*/
|
|
81
|
-
private static notifyAgentsOfRollback;
|
|
82
|
-
}
|