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
|
@@ -4,14 +4,39 @@ import { ValidationError } from "../../shared/errors.js";
|
|
|
4
4
|
import { computeTypesHash, writeJsonFile } from "../utils/fs.js";
|
|
5
5
|
import { getConfiguredPaths } from "../utils/memory.js";
|
|
6
6
|
import { UI } from "../utils/ui.js";
|
|
7
|
+
function resolveContractPaths(projectRoot) {
|
|
8
|
+
const pathsMap = getConfiguredPaths();
|
|
9
|
+
const consumerSharedDir = path.join(projectRoot, pathsMap.backend, "src/types");
|
|
10
|
+
const consumerContractPath = path.join(projectRoot, pathsMap.backend, "contract.version.json");
|
|
11
|
+
if (fs.existsSync(consumerSharedDir)) {
|
|
12
|
+
return { sharedDir: consumerSharedDir, contractPath: consumerContractPath };
|
|
13
|
+
}
|
|
14
|
+
const monorepoSharedDir = path.join(projectRoot, "packages/shared/src");
|
|
15
|
+
const rootPkgPath = path.join(projectRoot, "package.json");
|
|
16
|
+
let isMonorepo = false;
|
|
17
|
+
if (fs.existsSync(rootPkgPath)) {
|
|
18
|
+
try {
|
|
19
|
+
const pkg = JSON.parse(fs.readFileSync(rootPkgPath, "utf8"));
|
|
20
|
+
isMonorepo = Boolean(pkg.frameworkRepo || pkg.atabey?.frameworkRepo);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
isMonorepo = false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (isMonorepo && fs.existsSync(monorepoSharedDir)) {
|
|
27
|
+
return {
|
|
28
|
+
sharedDir: monorepoSharedDir,
|
|
29
|
+
contractPath: path.join(projectRoot, ".atabey/contract.version.json"),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return { sharedDir: consumerSharedDir, contractPath: consumerContractPath };
|
|
33
|
+
}
|
|
7
34
|
/**
|
|
8
35
|
* Verify type safety between backend and frontend contracts.
|
|
9
36
|
*/
|
|
10
37
|
export async function verifyApiContractCommand(options = {}) {
|
|
11
38
|
const projectRoot = process.cwd();
|
|
12
|
-
const
|
|
13
|
-
const sharedDir = path.join(projectRoot, pathsMap.backend, "src/types");
|
|
14
|
-
const contractPath = path.join(projectRoot, pathsMap.backend, "contract.version.json");
|
|
39
|
+
const { sharedDir, contractPath } = resolveContractPaths(projectRoot);
|
|
15
40
|
if (!fs.existsSync(sharedDir) || !fs.existsSync(contractPath)) {
|
|
16
41
|
if (options.silent)
|
|
17
42
|
return false;
|
|
@@ -20,14 +45,34 @@ export async function verifyApiContractCommand(options = {}) {
|
|
|
20
45
|
const currentHash = computeTypesHash(projectRoot, sharedDir);
|
|
21
46
|
const contract = JSON.parse(fs.readFileSync(contractPath, "utf8"));
|
|
22
47
|
if (contract.contract_hash === currentHash) {
|
|
23
|
-
if (!options.silent)
|
|
48
|
+
if (!options.silent) {
|
|
24
49
|
UI.success("Contract is valid and synchronized.");
|
|
50
|
+
await reportApiDrift(projectRoot);
|
|
51
|
+
}
|
|
25
52
|
return true;
|
|
26
53
|
}
|
|
27
54
|
else {
|
|
28
55
|
if (options.silent)
|
|
29
56
|
return false;
|
|
30
|
-
throw new ValidationError("Contract drift detected!", { stored: contract.contract_hash, actual: currentHash }, "Run 'npx atabey update
|
|
57
|
+
throw new ValidationError("Contract drift detected!", { stored: contract.contract_hash, actual: currentHash }, "Run 'npx atabey contract update' to re-synchronize the API contracts.");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Non-fatal API-catalog drift report (backend endpoints vs stored catalog).
|
|
62
|
+
*/
|
|
63
|
+
async function reportApiDrift(projectRoot) {
|
|
64
|
+
try {
|
|
65
|
+
const { dedupe, scanProjectForEndpoints, detectApiDrift, isApiDriftClean } = await import("atabey-shared/api-catalog.js");
|
|
66
|
+
const { Storage } = await import("atabey-shared/storage.js");
|
|
67
|
+
const current = dedupe(scanProjectForEndpoints(projectRoot));
|
|
68
|
+
const drift = detectApiDrift(Storage.getApiEndpoints(), current);
|
|
69
|
+
if (!isApiDriftClean(drift)) {
|
|
70
|
+
UI.warning(`API drift detected (+${drift.added.length} / -${drift.removed.length} / ~${drift.changed.length}). ` +
|
|
71
|
+
"Run 'atabey api scan' and update frontend consumers.");
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
/* API catalog is optional */
|
|
31
76
|
}
|
|
32
77
|
}
|
|
33
78
|
/**
|
|
@@ -35,9 +80,7 @@ export async function verifyApiContractCommand(options = {}) {
|
|
|
35
80
|
*/
|
|
36
81
|
export async function updateApiContractCommand() {
|
|
37
82
|
const projectRoot = process.cwd();
|
|
38
|
-
const
|
|
39
|
-
const sharedDir = path.join(projectRoot, pathsMap.backend, "src/types");
|
|
40
|
-
const contractPath = path.join(projectRoot, pathsMap.backend, "contract.version.json");
|
|
83
|
+
const { sharedDir, contractPath } = resolveContractPaths(projectRoot);
|
|
41
84
|
if (!fs.existsSync(sharedDir)) {
|
|
42
85
|
throw new ValidationError("API types directory missing.", null, "The directory specified for backend types does not exist. Check your framework configuration.");
|
|
43
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../../../src/cli/commands/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../../../src/cli/commands/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@ import path from "path";
|
|
|
4
4
|
import { logger } from "../../shared/logger.js";
|
|
5
5
|
import { getPackageRoot } from "../utils/pkg.js";
|
|
6
6
|
import { UI } from "../utils/ui.js";
|
|
7
|
-
function parseCoverageSummary() {
|
|
8
|
-
const coverageDir = path.join(
|
|
7
|
+
function parseCoverageSummary(root) {
|
|
8
|
+
const coverageDir = path.join(root, "coverage");
|
|
9
9
|
const summaryPath = path.join(coverageDir, "coverage-summary.json");
|
|
10
10
|
if (!fs.existsSync(summaryPath))
|
|
11
11
|
return null;
|
|
@@ -19,8 +19,8 @@ function parseCoverageSummary() {
|
|
|
19
19
|
return null;
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
function getFileCoverage() {
|
|
23
|
-
const coverageDir = path.join(
|
|
22
|
+
function getFileCoverage(root) {
|
|
23
|
+
const coverageDir = path.join(root, "coverage");
|
|
24
24
|
const summaryPath = path.join(coverageDir, "coverage-summary.json");
|
|
25
25
|
if (!fs.existsSync(summaryPath))
|
|
26
26
|
return [];
|
|
@@ -31,7 +31,7 @@ function getFileCoverage() {
|
|
|
31
31
|
if (filePath === "total")
|
|
32
32
|
continue;
|
|
33
33
|
const d = data;
|
|
34
|
-
files.push({ file: filePath.replace(
|
|
34
|
+
files.push({ file: filePath.replace(root + "/", ""), stmts: d.statements?.pct ?? 0, branch: d.branches?.pct ?? 0, funcs: d.functions?.pct ?? 0, lines: d.lines?.pct ?? 0, uncovered: [] });
|
|
35
35
|
}
|
|
36
36
|
return files.sort((a, b) => a.lines - b.lines);
|
|
37
37
|
}
|
|
@@ -40,8 +40,8 @@ function getFileCoverage() {
|
|
|
40
40
|
return [];
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
function getThresholdConfig() {
|
|
44
|
-
const vitestConfigPath = path.join(
|
|
43
|
+
function getThresholdConfig(root) {
|
|
44
|
+
const vitestConfigPath = path.join(root, "vitest.config.ts");
|
|
45
45
|
if (!fs.existsSync(vitestConfigPath))
|
|
46
46
|
return { lines: 80, functions: 80, branches: 80, statements: 80 };
|
|
47
47
|
try {
|
|
@@ -75,22 +75,27 @@ function suggestImprovements(lowCoverageFiles) {
|
|
|
75
75
|
}
|
|
76
76
|
export async function coverageCommand() {
|
|
77
77
|
const statusIcon = (current, threshold) => current >= threshold ? "[OK]" : "[LOW]";
|
|
78
|
-
|
|
78
|
+
// Analyze the user's current project (cwd); fall back to the Atabey package
|
|
79
|
+
// only when cwd is not a Node project.
|
|
80
|
+
const projectRoot = fs.existsSync(path.join(process.cwd(), "package.json"))
|
|
81
|
+
? process.cwd()
|
|
82
|
+
: getPackageRoot();
|
|
83
|
+
const coverageDir = path.join(projectRoot, "coverage");
|
|
79
84
|
if (!fs.existsSync(path.join(coverageDir, "coverage-summary.json"))) {
|
|
80
85
|
UI.info("Running tests with coverage...");
|
|
81
86
|
try {
|
|
82
|
-
execSync("npm run test:coverage", { stdio: "inherit", cwd:
|
|
87
|
+
execSync("npm run test:coverage", { stdio: "inherit", cwd: projectRoot });
|
|
83
88
|
}
|
|
84
89
|
catch (err) {
|
|
85
90
|
logger.warn("Coverage run failed (some tests may have failed), continuing with existing coverage data", err);
|
|
86
91
|
}
|
|
87
92
|
}
|
|
88
|
-
const summary = parseCoverageSummary();
|
|
93
|
+
const summary = parseCoverageSummary(projectRoot);
|
|
89
94
|
if (!summary) {
|
|
90
95
|
UI.info("No coverage data found. Run 'npm run test:coverage' first.");
|
|
91
96
|
return;
|
|
92
97
|
}
|
|
93
|
-
const thresholds = getThresholdConfig();
|
|
98
|
+
const thresholds = getThresholdConfig(projectRoot);
|
|
94
99
|
UI.info("Test Coverage Analysis");
|
|
95
100
|
const header = ` ${"Metric".padEnd(13)} | ${"Current".padEnd(7)} | ${"Threshold".padEnd(9)} | Status`;
|
|
96
101
|
const separator = " " + "-".repeat(header.length - 4);
|
|
@@ -100,7 +105,7 @@ export async function coverageCommand() {
|
|
|
100
105
|
const threshold = thresholds[name.toLowerCase()];
|
|
101
106
|
process.stdout.write(` ${name.padEnd(13)} | ${String(val).padStart(7)}% | ${String(threshold).padStart(9)}% | ${statusIcon(val, threshold)}\n`);
|
|
102
107
|
}
|
|
103
|
-
const files = getFileCoverage();
|
|
108
|
+
const files = getFileCoverage(projectRoot);
|
|
104
109
|
const lowCoverageFiles = getLowCoverageFiles(files, thresholds.lines);
|
|
105
110
|
if (lowCoverageFiles.length > 0) {
|
|
106
111
|
UI.info(`Low Coverage Files (below ${thresholds.lines}%):`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../../../../src/cli/commands/coverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAkBpC,SAAS,oBAAoB;
|
|
1
|
+
{"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../../../../src/cli/commands/coverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
|
-
import http from "http";
|
|
3
2
|
import path from "path";
|
|
4
3
|
import { fileURLToPath } from "url";
|
|
5
4
|
import { WebSocket, WebSocketServer } from "ws";
|
|
5
|
+
import { assertTransportSecurity, createHttpOrHttpsServer, describeTls, resolveTlsConfig, tlsScheme, wsScheme } from "atabey-shared/tls.js";
|
|
6
6
|
import { Audit } from "../../shared/audit.js";
|
|
7
7
|
import { FRAMEWORK } from "../../shared/constants.js";
|
|
8
8
|
import { appendFile } from "../../shared/fs.js";
|
|
@@ -10,8 +10,35 @@ import { Storage } from "../../shared/storage.js";
|
|
|
10
10
|
import { asTraceID } from "../../shared/types.js";
|
|
11
11
|
import { scanProjectCompliance } from "../utils/compliance.js";
|
|
12
12
|
import { getFrameworkDir } from "../utils/memory.js";
|
|
13
|
+
import { getPackageRoot } from "../utils/pkg.js";
|
|
13
14
|
import { analyzePathQuality } from "../utils/quality.js";
|
|
14
15
|
import { UI } from "../utils/ui.js";
|
|
16
|
+
/**
|
|
17
|
+
* Resolve the dashboard version from the nearest package.json (walks up from
|
|
18
|
+
* the compiled file) instead of a hardcoded, drift-prone string.
|
|
19
|
+
*/
|
|
20
|
+
function resolveDashboardVersion() {
|
|
21
|
+
try {
|
|
22
|
+
let dir = path.dirname(fileURLToPath(import.meta.url));
|
|
23
|
+
for (let i = 0; i < 8; i++) {
|
|
24
|
+
const candidate = path.join(dir, "package.json");
|
|
25
|
+
if (fs.existsSync(candidate)) {
|
|
26
|
+
const pkg = JSON.parse(fs.readFileSync(candidate, "utf8"));
|
|
27
|
+
if (pkg.version && (pkg.name === "atabey" || pkg.name === "atabey-mcp"))
|
|
28
|
+
return pkg.version;
|
|
29
|
+
}
|
|
30
|
+
const parent = path.dirname(dir);
|
|
31
|
+
if (parent === dir)
|
|
32
|
+
break;
|
|
33
|
+
dir = parent;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
/* fall through */
|
|
38
|
+
}
|
|
39
|
+
return "0.0.0";
|
|
40
|
+
}
|
|
41
|
+
const DASHBOARD_VERSION = resolveDashboardVersion();
|
|
15
42
|
/**
|
|
16
43
|
* Serves a JSON response.
|
|
17
44
|
*/
|
|
@@ -106,16 +133,25 @@ function parseJsonBody(req, maxBytes = 2 * 1024 * 1024) {
|
|
|
106
133
|
*/
|
|
107
134
|
export async function dashboardCommand(port = FRAMEWORK.DASHBOARD_PORT) {
|
|
108
135
|
const frameworkDir = getFrameworkDir();
|
|
109
|
-
const
|
|
110
|
-
const projectRoot =
|
|
136
|
+
const pkgRoot = getPackageRoot();
|
|
137
|
+
const projectRoot = process.cwd();
|
|
111
138
|
const possibleUiDistPaths = [
|
|
112
|
-
path.join(
|
|
113
|
-
path.join(
|
|
114
|
-
path.join(
|
|
115
|
-
path.join(
|
|
139
|
+
path.join(pkgRoot, "../atabey-mcp/dashboard/dist"),
|
|
140
|
+
path.join(pkgRoot, "../atabey-mcp/dist/dashboard"),
|
|
141
|
+
path.join(pkgRoot, "../../packages/atabey-mcp/dashboard/dist"),
|
|
142
|
+
path.join(pkgRoot, "../../packages/atabey-mcp/dist/dashboard"),
|
|
143
|
+
path.join(process.cwd(), "packages/atabey-mcp/dashboard/dist"),
|
|
144
|
+
path.join(process.cwd(), "packages/atabey-mcp/dist/dashboard"),
|
|
145
|
+
path.join(process.cwd(), "atabey-mcp/dashboard/dist"),
|
|
146
|
+
path.join(process.cwd(), "atabey-mcp/dist/dashboard"),
|
|
147
|
+
path.join(process.cwd(), "node_modules/atabey-mcp/dashboard/dist"),
|
|
148
|
+
path.join(process.cwd(), "node_modules/atabey-mcp/dist/dashboard"),
|
|
149
|
+
path.join(pkgRoot, "node_modules/atabey-mcp/dashboard/dist"),
|
|
150
|
+
path.join(pkgRoot, "node_modules/atabey-mcp/dist/dashboard"),
|
|
116
151
|
];
|
|
117
|
-
const uiDistPath = possibleUiDistPaths.find(p => fs.existsSync(p)) || possibleUiDistPaths[0];
|
|
118
|
-
const
|
|
152
|
+
const uiDistPath = possibleUiDistPaths.find(p => fs.existsSync(path.join(p, "index.html"))) || possibleUiDistPaths[0];
|
|
153
|
+
const tls = resolveTlsConfig();
|
|
154
|
+
const server = createHttpOrHttpsServer(tls, async (req, res) => {
|
|
119
155
|
// CORS & Cache Headers
|
|
120
156
|
const origin = req.headers.origin;
|
|
121
157
|
const isLocalOrigin = !origin ||
|
|
@@ -156,13 +192,16 @@ export async function dashboardCommand(port = FRAMEWORK.DASHBOARD_PORT) {
|
|
|
156
192
|
}
|
|
157
193
|
}
|
|
158
194
|
catch (e) {
|
|
159
|
-
|
|
195
|
+
// FAIL-CLOSED: if we cannot verify auth, deny rather than serve.
|
|
196
|
+
UI.warning(`[AUTH-WARNING] Auth module error: ${e.message}. Denying request (fail-closed).`);
|
|
197
|
+
serveJson(res, 500, { error: "Authentication subsystem unavailable; request denied." });
|
|
198
|
+
return;
|
|
160
199
|
}
|
|
161
200
|
}
|
|
162
201
|
// ─── API Routes ────────────────────────────────────────────────
|
|
163
202
|
// Health check
|
|
164
203
|
if (pathname === "/api/health") {
|
|
165
|
-
serveJson(res, 200, { status: "healthy", version:
|
|
204
|
+
serveJson(res, 200, { status: "healthy", version: DASHBOARD_VERSION, frameworkDir });
|
|
166
205
|
return;
|
|
167
206
|
}
|
|
168
207
|
// System status
|
|
@@ -310,6 +349,41 @@ export async function dashboardCommand(port = FRAMEWORK.DASHBOARD_PORT) {
|
|
|
310
349
|
}
|
|
311
350
|
return;
|
|
312
351
|
}
|
|
352
|
+
// ─── FinOps API ────────────────────────────────────────────────
|
|
353
|
+
if (pathname === "/api/finops" && req.method === "GET") {
|
|
354
|
+
try {
|
|
355
|
+
const { FinOpsManager } = await import("atabey-mcp/utils/finops.js");
|
|
356
|
+
const state = FinOpsManager.getBudgetState();
|
|
357
|
+
serveJson(res, 200, { success: true, data: state });
|
|
358
|
+
}
|
|
359
|
+
catch (e) {
|
|
360
|
+
serveJson(res, 500, { success: false, error: e.message });
|
|
361
|
+
}
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
if (pathname === "/api/finops/daily" && req.method === "GET") {
|
|
365
|
+
try {
|
|
366
|
+
const { FinOpsManager } = await import("atabey-mcp/utils/finops.js");
|
|
367
|
+
const days = parseInt(params.days || "7", 10) || 7;
|
|
368
|
+
const history = FinOpsManager.getDailyTokenHistory(days);
|
|
369
|
+
serveJson(res, 200, { success: true, data: history });
|
|
370
|
+
}
|
|
371
|
+
catch (e) {
|
|
372
|
+
serveJson(res, 500, { success: false, error: e.message });
|
|
373
|
+
}
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
376
|
+
if (pathname === "/api/finops/reset" && req.method === "POST") {
|
|
377
|
+
try {
|
|
378
|
+
const { FinOpsManager } = await import("atabey-mcp/utils/finops.js");
|
|
379
|
+
FinOpsManager.resetBudgetPeriod();
|
|
380
|
+
serveJson(res, 200, { success: true, message: "Budget period reset successfully." });
|
|
381
|
+
}
|
|
382
|
+
catch (e) {
|
|
383
|
+
serveJson(res, 500, { success: false, error: e.message });
|
|
384
|
+
}
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
313
387
|
// ─── Approval API ──────────────────────────────────────────────
|
|
314
388
|
if (pathname.startsWith("/api/approve/") && req.method === "POST") {
|
|
315
389
|
const traceId = pathname.replace("/api/approve/", "");
|
|
@@ -694,10 +768,17 @@ export async function dashboardCommand(port = FRAMEWORK.DASHBOARD_PORT) {
|
|
|
694
768
|
return;
|
|
695
769
|
}
|
|
696
770
|
// ─── Static UI Serving ─────────────────────────────────────────
|
|
697
|
-
|
|
771
|
+
// Confine served files to the UI dist directory (block ../ traversal).
|
|
772
|
+
const uiRoot = path.resolve(uiDistPath);
|
|
773
|
+
const requested = pathname === "/" ? "index.html" : decodeURIComponent(pathname).replace(/^\/+/, "");
|
|
774
|
+
let filePath = path.resolve(uiRoot, requested);
|
|
775
|
+
if (filePath !== uiRoot && !filePath.startsWith(uiRoot + path.sep)) {
|
|
776
|
+
serveJson(res, 403, { error: "Forbidden", message: "Path escapes the UI root" });
|
|
777
|
+
return;
|
|
778
|
+
}
|
|
698
779
|
// Fallback to index.html for SPA routing if file not found
|
|
699
780
|
if (!fs.existsSync(filePath) && !pathname.startsWith("/api")) {
|
|
700
|
-
filePath = path.join(
|
|
781
|
+
filePath = path.join(uiRoot, "index.html");
|
|
701
782
|
}
|
|
702
783
|
if (fs.existsSync(filePath) && !fs.statSync(filePath).isDirectory()) {
|
|
703
784
|
const ext = path.extname(filePath).toLowerCase();
|
|
@@ -779,11 +860,15 @@ export async function dashboardCommand(port = FRAMEWORK.DASHBOARD_PORT) {
|
|
|
779
860
|
}
|
|
780
861
|
});
|
|
781
862
|
const host = process.env.ATABEY_DASHBOARD_HOST || "127.0.0.1";
|
|
863
|
+
assertTransportSecurity(tls, host);
|
|
864
|
+
const scheme = tlsScheme(tls);
|
|
865
|
+
const wsProtocol = wsScheme(tls);
|
|
782
866
|
server.listen(port, host, () => {
|
|
783
867
|
UI.success("\n[START] Hermes Visual Control Plane is running!");
|
|
784
|
-
UI.success(`[INFO]
|
|
785
|
-
UI.success(`[
|
|
786
|
-
UI.success(`[
|
|
868
|
+
UI.success(`[INFO] Transport: ${describeTls(tls)}`);
|
|
869
|
+
UI.success(`[INFO] Web UI: ${scheme}://${host}:${port}`);
|
|
870
|
+
UI.success(`[DATA] API Base: ${scheme}://${host}:${port}/api`);
|
|
871
|
+
UI.success(`[WS] WebSocket: ${wsProtocol}://${host}:${port}/ws`);
|
|
787
872
|
UI.success("[ENDPOINTS]");
|
|
788
873
|
UI.success(" GET /api/health → System health check");
|
|
789
874
|
UI.success(" GET /api/status → Agent statuses");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAapC;;GAEG;AACH,SAAS,SAAS,CAAC,GAAwB,EAAE,UAAkB,EAAE,IAAa;IAC1E,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAClE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAwB,EAAE,QAAgB,EAAE,WAAmB;IAC9E,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC1C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;YACpD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW;IACzB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,WAAW,EAAE,CAAC;QACd,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,SAAS,GAAmB,IAAI,GAAG,EAAE,CAAC;AAE5C,SAAS,WAAW,CAAC,IAAY,EAAE,OAAgB;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9C,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACrB,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC;gBAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACJ,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAA8B,GAAyB,EAAE,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;IACrG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;YACtC,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;YACjF,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;gBACvB,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;gBAClE,OAAO;YACX,CAAC;YACD,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACf,IAAI,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,EAAQ,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;QACL,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAe,SAAS,CAAC,cAAc;IAC1E,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC5D,MAAM,mBAAmB,GAAG;QACxB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,2BAA2B,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,2BAA2B,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oCAAoC,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oCAAoC,CAAC;KAC/D,CAAC;IACF,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAE7F,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAChD,uBAAuB;QACvB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QAClC,MAAM,aAAa,GAAG,CAAC,MAAM;YACzB,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC;YACtC,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC;YACtC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC;YACvC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC;YACvC,MAAM,KAAK,MAAM,CAAC;QAEtB,IAAI,aAAa,EAAE,CAAC;YAChB,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;YAC3F,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;QACzD,CAAC;QACD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC;QACpE,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,6BAA6B,CAAC,CAAC;QAC7E,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,uDAAuD,CAAC,CAAC;QACxF,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAE9B,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;QAC3B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE3C,iDAAiD;QACjD,+CAA+C;QAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,QAAQ,KAAK,aAAa,CAAC;QAChD,IAAI,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;gBAClE,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACtB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,sGAAsG,EAAE,CAAC,CAAC;oBACvI,OAAO;gBACX,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,EAAE,CAAC,OAAO,CAAC,qCAAsC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5E,CAAC;QACL,CAAC;QAED,kEAAkE;QAElE,eAAe;QACf,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC7B,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;YAC3E,OAAO;QACX,CAAC;QAED,gBAAgB;QAChB,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;YACpE,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;YAC/C,OAAO;QACX,CAAC;QAED,4BAA4B;QAC5B,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;YAC1E,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;YAC5C,OAAO;QACX,CAAC;QAED,oCAAoC;QACpC,IAAI,QAAQ,KAAK,oBAAoB,EAAE,CAAC;YACpC,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;gBAEjD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;oBAC3B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC,GAAG,CAAC,KAAK,CAM/F,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;wBAC9C,OAAO;4BACH,EAAE,EAAE,GAAG,CAAC,EAAE;4BACV,OAAO,EAAE,GAAG,CAAC,OAAO;4BACpB,IAAI,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ;4BAC/C,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,UAAU;4BAC3C,SAAS,EAAE,GAAG;yBACjB,CAAC;oBACN,CAAC,CAAC,CAAC;oBACH,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;oBACtD,OAAO;gBACX,CAAC;gBAED,MAAM,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;oBACjE,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBAChC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;wBACd,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO;wBACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ;wBAC3C,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACjE,SAAS,EAAE,CAAC,CAAC,KAAK;qBACrB,CAAC,CAAC,CAAC;oBACJ,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC5D,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjG,CAAC,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,+BAA+B;QAC/B,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC/B,8DAA8D;gBAC9D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACxE,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,kCAAkC;QAClC,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACD,KAAK,CAAC,UAAU,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5C,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,+DAA+D;QAC/D,IAAI,QAAQ,KAAK,kBAAkB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3D,IAAI,CAAC;gBACD,KAAK,CAAC,UAAU,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAgC,GAAG,CAAC,CAAC;gBACvE,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC;gBACnD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC7C,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,qEAAqE,EAAE,CAAC,CAAC;YACrI,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,OAAO;QACX,CAAC;QAED,kEAAkE;QAClE,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBAC9C,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,kEAAkE;QAClE,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACvE,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACxC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,kEAAkE;QAClE,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;gBACtC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,mEAAmE;QACnE,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;YAChC,IAAI,CAAC;gBACD,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBACjD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CACzD,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACR,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC;oBAC7B,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB;oBACtH,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;oBAC7B,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACrD,CAAC,CAAC,CAAC;gBACJ,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,kEAAkE;QAClE,IAAI,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAChE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;gBACvE,OAAO;YACX,CAAC;YACD,IAAI,CAAC;gBACD,IAAI,aAAa,GAAG,CAAC,CAAC;gBAEtB,4CAA4C;gBAC5C,IAAI,CAAC;oBACD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC9C,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC5C,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;wBAClD,aAAa,EAAE,CAAC;oBACpB,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBAE7B,oCAAoC;gBACpC,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,MAAM,CACvD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CACpF,CAAC;gBACF,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC5B,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;wBACvB,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;wBAChD,aAAa,EAAE,CAAC;oBACpB,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,sDAAsD;gBACtD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;gBACxD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC7B,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;oBAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;4BACzB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;4BACvC,IAAI,CAAC;gCACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;gCACpD,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oCACtH,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;oCACzB,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oCAC3C,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;oCAC3D,aAAa,EAAE,CAAC;gCACpB,CAAC;4BACL,CAAC;4BAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;wBAC5B,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;oBACtB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC,CAAC;oBAC9F,OAAO;gBACX,CAAC;gBAED,mDAAmD;gBACnD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC;gBACxE,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3B,MAAM,QAAQ,GAAG,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,2CAA2C,GAAG,OAAO,CAAC;oBAC9G,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACpC,CAAC;gBAED,oBAAoB;gBACpB,WAAW,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;gBAEzD,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,OAAO,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;YACvH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,kEAAkE;QAClE,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/D,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;gBACvE,OAAO;YACX,CAAC;YACD,IAAI,CAAC;gBACD,IAAI,aAAa,GAAG,CAAC,CAAC;gBAEtB,4CAA4C;gBAC5C,IAAI,CAAC;oBACD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC9C,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC5C,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;wBAClD,aAAa,EAAE,CAAC;oBACpB,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBAE7B,oCAAoC;gBACpC,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,MAAM,CACvD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CACpF,CAAC;gBACF,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC5B,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;wBACvB,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;wBAChD,aAAa,EAAE,CAAC;oBACpB,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,sDAAsD;gBACtD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;gBACxD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC7B,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;oBAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;4BACzB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;4BACvC,IAAI,CAAC;gCACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;gCACpD,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oCACtH,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;oCACzB,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oCAC3C,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;oCAC3D,aAAa,EAAE,CAAC;gCACpB,CAAC;4BACL,CAAC;4BAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;wBAC5B,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;oBACtB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC,CAAC;oBAC9F,OAAO;gBACX,CAAC;gBAED,yBAAyB;gBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC;gBACxE,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3B,MAAM,QAAQ,GAAG,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,2CAA2C,GAAG,OAAO,CAAC;oBAC9G,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACpC,CAAC;gBAED,oBAAoB;gBACpB,WAAW,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;gBAEzD,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,OAAO,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;YACvH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,kEAAkE;QAClE,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;YACnC,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBAC9C,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EAAuB,CAAC;gBACnH,MAAM,UAAU,GAA2B,EAAE,CAAC;gBAC9C,MAAM,QAAQ,GAA2B,EAAE,CAAC;gBAC5C,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACjB,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC3D,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE;oBAChB,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE;wBACF,KAAK,EAAE,aAAa,CAAC,KAAK;wBAC1B,OAAO,EAAE,QAAQ,CAAC,MAAM;wBACxB,UAAU;wBACV,QAAQ;wBACR,WAAW,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;qBAC1E;iBACJ,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,kEAAkE;QAClE,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC;gBACxC,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBAE3D,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE;oBAChB,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE;wBACF,UAAU,EAAE,MAAM,CAAC,UAAU;wBAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;qBACrC;iBACJ,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,mEAAmE;QACnE,IAAI,QAAQ,KAAK,sBAAsB,EAAE,CAAC;YACtC,MAAM,CAAC,wCAAwC,CAAC;iBAC3C,IAAI,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE;gBACzB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;oBAClE,EAAE;oBACF,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM;oBACpD,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC3E,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;iBAC5C,CAAC,CAAC,CAAC;gBACJ,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1D,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;gBAChB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;YACP,OAAO;QACX,CAAC;QAED,kEAAkE;QAClE,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YACjC,IAAI,CAAC;gBACD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC;gBACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBAEpD,oDAAoD;gBACpD,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;gBAElD,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBACrC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;wBAC/C,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa;4BAC3C,CAAC,CAAC,OAAO,CAAC;oBAElB,OAAO;wBACH,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC;wBAC5C,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,IAAI;wBACJ,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,mDAAmD,EAAE,EAAE,CAAC;qBACvF,CAAC;gBACN,CAAC,CAAC,CAAC;gBAEH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAE5D,MAAM,OAAO,GAAG;oBACZ,UAAU,EAAE,cAAc,CAAC,IAAI;oBAC/B,eAAe,EAAE,UAAU,CAAC,MAAM;oBAClC,MAAM,EAAE;wBACJ,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,MAAM;wBAClE,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,MAAM;qBAC3E;iBACJ,CAAC;gBAEF,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;YAC1E,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,eAAe;QACf,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;YACnC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACzE,OAAO;QACX,CAAC;QAED,mBAAmB;QACnB,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YACjC,IAAI,CAAC;gBACD,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;gBACjF,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;gBACtC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,mBAAmB;QACnB,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;YAChC,IAAI,CAAC;gBACD,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;gBACtG,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,EAAE,CAAC;gBAC7C,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,eAAe,EAAE,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACrJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,uBAAuB;QACvB,IAAI,QAAQ,KAAK,oBAAoB,EAAE,CAAC;YACpC,IAAI,CAAC;gBACD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;gBAC9E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC3B,MAAM,KAAK,GAAG,KAAK;oBACf,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC;oBACzE,CAAC,CAAC,eAAe,EAAE,CAAC;gBACxB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,sBAAsB;QACtB,IAAI,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5E,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC,CAAC;YACpF,IAAI,CAAC;gBACD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;gBAC5E,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAGD,sBAAsB;QACtB,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;gBACjF,MAAM,KAAK,GAAG,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;gBACpD,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,2CAA2C;QAC3C,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YACjC,IAAI,CAAC;gBACD,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;gBACjF,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;gBACzF,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;gBAC9E,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;gBACzE,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;gBACjF,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE;oBAChB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;wBACjB,UAAU,EAAE,qBAAqB,EAAE;wBACnC,WAAW,EAAE,sBAAsB,EAAE;wBACrC,aAAa,EAAE,eAAe,EAAE;wBAChC,KAAK,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;wBAC3G,QAAQ,EAAE,kBAAkB,CAAC,gBAAgB,EAAE;wBAC/C,SAAS,EAAE,CAAC,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE;qBACpG;iBACJ,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,mEAAmE;QACnE,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;gBACvC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,4BAA4B,CAAC,CAAC;gBACvF,IAAI,OAAO,GAAkB,EAAE,CAAC;gBAChC,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC7B,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC/D,CAAC;gBAED,MAAM,OAAO,GAAoE,EAAE,CAAC;gBACpF,MAAM,QAAQ,GAAsD,EAAE,CAAC;gBACvE,IAAI,WAAW,GAAG,CAAC,CAAC;gBAEpB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC;oBACvC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC;oBACzC,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC;oBAE1C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;wBAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;oBACvE,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;oBACvB,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC;oBAChC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAEzE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;oBAClE,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;oBACzB,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC;oBAElC,WAAW,IAAI,MAAM,CAAC;gBAC1B,CAAC;gBAED,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE;oBAChB,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE;wBACF,cAAc,EAAE,OAAO,CAAC,MAAM;wBAC9B,oBAAoB,EAAE,WAAW;wBACjC,kBAAkB,EAAE,CAAC,CAAC,WAAW,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC5D,OAAO;wBACP,QAAQ;wBACR,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;qBACrC;iBACJ,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACX,CAAC;QAED,kEAAkE;QAClE,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC7B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACf,cAAc,EAAE,mBAAmB;gBACnC,eAAe,EAAE,UAAU;gBAC3B,YAAY,EAAE,YAAY;gBAC1B,6BAA6B,EAAE,GAAG;aACrC,CAAC,CAAC;YAEH,yBAAyB;YACzB,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAE7B,wBAAwB;YACxB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,CAAC;YACzE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;YAChD,OAAO;QACX,CAAC;QAED,kEAAkE;QAClE,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEjF,2DAA2D;QAC3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3D,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAClE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YACjD,MAAM,SAAS,GAA2B;gBACtC,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,wBAAwB;gBAC/B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,kBAAkB;gBAC3B,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,eAAe;gBACvB,MAAM,EAAE,cAAc;aACzB,CAAC;YACF,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;YACjE,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5E,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,sEAAsE;IACtE,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE;QACxB,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3C,wDAAwD;QACxD,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAC9C,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACnE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAExB,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACxC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACtB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC9C,CAAC;YACL,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,sEAAsE;IACtE,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,IAAI,CAAC;YACD,SAAS;YACT,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YACtC,WAAW,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAE7E,mBAAmB;YACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAC9C,WAAW,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAE1E,gDAAgD;YAChD,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CACzD,CAAC;YACF,WAAW,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAE5E,OAAO;YACP,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1C,WAAW,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC,EAAE,IAAI,CAAC,CAAC;IAET,0BAA0B;IAC1B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACpB,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACjC,SAAS,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;QAC9C,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC5B,EAAE,CAAC,KAAK,CAAC,kBAAkB,IAAI,wCAAwC,CAAC,CAAC;YACzE,EAAE,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,EAAE,CAAC,KAAK,CAAC,2BAA2B,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,WAAW,CAAC;IAC9D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC;QAChE,EAAE,CAAC,OAAO,CAAC,4BAA4B,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QACvD,EAAE,CAAC,OAAO,CAAC,4BAA4B,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC;QAC3D,EAAE,CAAC,OAAO,CAAC,0BAA0B,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC;QACxD,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1B,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;QAC/D,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;QAC1D,EAAE,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC;QACrE,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC;QACnE,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC;QACvE,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC;QACjE,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;QAC3D,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC;QAC7E,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;QACxD,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC;QAC7E,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC7B,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;QACxD,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QACnD,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;QACpD,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;QACxD,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC;QAC7D,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAC/C,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function dbCommand(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Storage } from "atabey-shared/storage.js";
|
|
2
|
+
import { runPendingMigrations } from "atabey-shared/migrations.js";
|
|
3
|
+
import { UI } from "../utils/ui.js";
|
|
4
|
+
export async function dbCommand(args) {
|
|
5
|
+
const sub = (args[0] || "status").toLowerCase();
|
|
6
|
+
if (sub === "status") {
|
|
7
|
+
const status = Storage.getMigrationStatus();
|
|
8
|
+
const integrity = Storage.verifyDatabaseIntegrity("quick");
|
|
9
|
+
UI.info(`SQLite Schema Version: v${status.currentVersion}`);
|
|
10
|
+
UI.info(`Integrity Check: ${integrity.ok ? "OK" : `FAILED (${integrity.messages.join("; ")})`}`);
|
|
11
|
+
UI.info(`Applied Migrations: ${status.applied.length}`);
|
|
12
|
+
for (const m of status.applied) {
|
|
13
|
+
process.stdout.write(` [v${m.version}] ${m.name} (${m.applied_at})\n`);
|
|
14
|
+
}
|
|
15
|
+
if (status.pending.length > 0) {
|
|
16
|
+
UI.warning(`Pending Migrations: ${status.pending.map((p) => `v${p.version}:${p.name}`).join(", ")}`);
|
|
17
|
+
}
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (sub === "migrate") {
|
|
21
|
+
const db = Storage.getDB();
|
|
22
|
+
const res = runPendingMigrations(db);
|
|
23
|
+
UI.success(`Migrations complete. Applied: ${res.applied.length} (current schema v${res.currentVersion}).`);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
if (sub === "verify") {
|
|
27
|
+
const res = Storage.verifyDatabaseIntegrity("full");
|
|
28
|
+
if (res.ok) {
|
|
29
|
+
UI.success("Database full integrity check passed (0 foreign-key violations).");
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
UI.error(`Database integrity check failed: ${res.messages.join("; ")} (FK violations: ${res.foreignKeyViolations})`);
|
|
33
|
+
process.exitCode = 1;
|
|
34
|
+
}
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (sub === "backup") {
|
|
38
|
+
const dest = args[1];
|
|
39
|
+
const result = Storage.backup(dest);
|
|
40
|
+
UI.success(`Database backup written to: ${result.backupPath}`);
|
|
41
|
+
UI.info(`SHA-256: ${result.sha256} (${result.sizeBytes} bytes, schema v${result.schemaVersion})`);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (sub === "restore") {
|
|
45
|
+
const src = args[1];
|
|
46
|
+
if (!src) {
|
|
47
|
+
UI.error("Usage: atabey db restore <backup-file> [target-db-path]");
|
|
48
|
+
process.exitCode = 64;
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const restored = Storage.restore(src, args[2]);
|
|
52
|
+
UI.success(`Database restored to: ${restored.restoredPath}`);
|
|
53
|
+
UI.info(`Verified SHA-256: ${restored.sha256} (schema v${restored.schemaVersion})`);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
UI.error("Usage: atabey db <status|migrate|verify|backup|restore> [path]");
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=db.js.map
|