agentera 3.0.0-dev.25 → 3.0.0-dev.27
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/LICENSE +201 -0
- package/README.md +29 -23
- package/bundle/CHANGELOG.md +18 -25
- package/bundle/README.md +13 -34
- package/bundle/UPGRADE.md +71 -165
- package/bundle/references/adapters/package-manifest-interface-model.yaml +40 -241
- package/bundle/references/adapters/package-registry.yaml +0 -145
- package/bundle/references/adapters/package-surface-characterization.md +22 -42
- package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +5 -219
- package/bundle/references/adapters/runtime-lifecycle-authority.yaml +2 -29
- package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +1 -1
- package/bundle/references/analysis/analytics-boundary-proportional-2026-07-20.yaml +74 -0
- package/bundle/references/analysis/benchmark.md +11 -0
- package/bundle/references/analysis/evidence/analytics-boundary-proportional-2026-07-20/source-focused-1.json.gz +0 -0
- package/bundle/references/analysis/evidence/analytics-boundary-proportional-2026-07-20/source-focused-2.json.gz +0 -0
- package/bundle/references/analysis/evidence/analytics-boundary-proportional-2026-07-20/source-focused-3.json.gz +0 -0
- package/bundle/references/analysis/evidence/migration-pagination-proportional-2026-07-20/source-focused-1.json.gz +0 -0
- package/bundle/references/analysis/evidence/migration-pagination-proportional-2026-07-20/source-focused-2.json.gz +0 -0
- package/bundle/references/analysis/evidence/migration-pagination-proportional-2026-07-20/source-focused-3.json.gz +0 -0
- package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/precommit-cli-route.log.gz +0 -0
- package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/precommit-cli.log.gz +0 -0
- package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/precommit-documentation.log.gz +0 -0
- package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/recompute.mjs +98 -0
- package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/source-1.json.gz +0 -0
- package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/source-2.json.gz +0 -0
- package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/source-3.json.gz +0 -0
- package/bundle/references/analysis/migration-pagination-proportional-2026-07-20.yaml +64 -0
- package/bundle/references/analysis/verification-baseline-2026-07-20.yaml +313 -0
- package/bundle/references/analysis/verification-final-proof-2026-07-21.yaml +340 -0
- package/bundle/references/analysis/verification-policy.yaml +142 -0
- package/bundle/references/analysis/worker-policy-2026-07-21.yaml +207 -0
- package/bundle/references/artifacts/state-storage-authority.yaml +48 -448
- package/bundle/references/cli/agent-ready-state-contract.yaml +9 -9
- package/bundle/references/cli/app-lifecycle-vocabulary.yaml +3 -4
- package/bundle/references/cli/bundle-skill-vocabulary.yaml +9 -18
- package/bundle/references/cli/capability-tool-classification.yaml +2 -2
- package/bundle/references/cli/prime-consumer-compatibility.yaml +86 -112
- package/bundle/references/cli/routing-execution-vocabulary.yaml +4 -22
- package/bundle/references/cli/upgrade-repair-wording.md +8 -28
- package/bundle/references/cli/v3-handoff-manifest.schema.yaml +2 -3
- package/bundle/references/cli/vocabulary.md +18 -23
- package/bundle/references/meta/documentation-inventory.md +3 -1
- package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +3 -2
- package/bundle/skills/agentera/capabilities/orchestrate/schemas/exit.yaml +1 -1
- package/bundle/skills/agentera/schemas/artifacts/docs.yaml +3 -11
- package/bundle/skills/agentera/schemas/artifacts/plan.yaml +23 -5
- package/dist/analytics/extractCorpus/cli.js.map +1 -1
- package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -1
- package/dist/analytics/extractCorpus/core.js.map +1 -1
- package/dist/analytics/extractCorpus/corpus.js.map +1 -1
- package/dist/analytics/extractCorpus/coverageAudit.js.map +1 -1
- package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -1
- package/dist/analytics/extractCorpus/evidenceTiers.js.map +1 -1
- package/dist/analytics/extractCorpus/extractCorpusParity.js +1 -1
- package/dist/analytics/extractCorpus/extractCorpusParity.js.map +1 -1
- package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -1
- package/dist/analytics/extractCorpus/index.js.map +1 -1
- package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -1
- package/dist/analytics/extractCorpus/sqliteCaps.js.map +1 -1
- package/dist/analytics/extractCorpus/sqliteSessions.js.map +1 -1
- package/dist/analytics/extractCorpus/tierReader.js.map +1 -1
- package/dist/analytics/extractCorpus.js.map +1 -1
- package/dist/analytics/profileSignals.js.map +1 -1
- package/dist/analytics/usageStats.js.map +1 -1
- package/dist/bin/agentera.js.map +1 -1
- package/dist/capabilities/audit/instructions.js.map +1 -1
- package/dist/capabilities/build/instructions.js.map +1 -1
- package/dist/capabilities/design/instructions.js.map +1 -1
- package/dist/capabilities/discuss/instructions.js.map +1 -1
- package/dist/capabilities/document/instructions.js.map +1 -1
- package/dist/capabilities/index.js.map +1 -1
- package/dist/capabilities/optimize/instructions.js.map +1 -1
- package/dist/capabilities/orchestrate/instructions.js +1 -1
- package/dist/capabilities/orchestrate/instructions.js.map +1 -1
- package/dist/capabilities/plan/instructions.js.map +1 -1
- package/dist/capabilities/profile/instructions.js.map +1 -1
- package/dist/capabilities/research/instructions.js.map +1 -1
- package/dist/capabilities/status/instructions.js.map +1 -1
- package/dist/capabilities/status/startupInstructions.js.map +1 -1
- package/dist/capabilities/vision/instructions.js.map +1 -1
- package/dist/cli/appContext.js.map +1 -1
- package/dist/cli/argvalidate.js.map +1 -1
- package/dist/cli/capabilityContext/benchmark.js.map +1 -1
- package/dist/cli/capabilityContext/bespoke.js +8 -2
- package/dist/cli/capabilityContext/bespoke.js.map +1 -1
- package/dist/cli/capabilityContext/build.js.map +1 -1
- package/dist/cli/capabilityContext/closeout.js +3 -3
- package/dist/cli/capabilityContext/closeout.js.map +1 -1
- package/dist/cli/capabilityContext/contract.js.map +1 -1
- package/dist/cli/capabilityContext/evidence.js +52 -40
- package/dist/cli/capabilityContext/evidence.js.map +1 -1
- package/dist/cli/capabilityContext/index.js.map +1 -1
- package/dist/cli/capabilityContext/orchestration.js +15 -5
- package/dist/cli/capabilityContext/orchestration.js.map +1 -1
- package/dist/cli/capabilityContext/planState.js +1 -1
- package/dist/cli/capabilityContext/planState.js.map +1 -1
- package/dist/cli/capabilityContext/progress.js.map +1 -1
- package/dist/cli/capabilityContext/shared.js.map +1 -1
- package/dist/cli/capabilityContext/slim.js +16 -3
- package/dist/cli/capabilityContext/slim.js.map +1 -1
- package/dist/cli/capabilityContext/startup.js +4 -1
- package/dist/cli/capabilityContext/startup.js.map +1 -1
- package/dist/cli/capabilityContext/types.js.map +1 -1
- package/dist/cli/capabilityContext.js.map +1 -1
- package/dist/cli/commands/appHome.js.map +1 -1
- package/dist/cli/commands/capability.js.map +1 -1
- package/dist/cli/commands/compact.js.map +1 -1
- package/dist/cli/commands/doctor.js +6 -64
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/durability.js +12 -48
- package/dist/cli/commands/durability.js.map +1 -1
- package/dist/cli/commands/entityMigrate.js.map +1 -1
- package/dist/cli/commands/lint.js.map +1 -1
- package/dist/cli/commands/prime/briefOrientation.js +25 -24
- package/dist/cli/commands/prime/briefOrientation.js.map +1 -1
- package/dist/cli/commands/prime/bundleStatus.js +8 -2
- package/dist/cli/commands/prime/bundleStatus.js.map +1 -1
- package/dist/cli/commands/prime/collectEntityOrientation.js +76 -24
- package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -1
- package/dist/cli/commands/prime/collectOrientationState.js +34 -53
- package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
- package/dist/cli/commands/prime/orientationOutput.js +9 -14
- package/dist/cli/commands/prime/orientationOutput.js.map +1 -1
- package/dist/cli/commands/prime/types.js.map +1 -1
- package/dist/cli/commands/prime/v1Migration.js.map +1 -1
- package/dist/cli/commands/prime.js +43 -25
- package/dist/cli/commands/prime.js.map +1 -1
- package/dist/cli/commands/query.js +17 -49
- package/dist/cli/commands/query.js.map +1 -1
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/schema.js +19 -78
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/state/decisions.js +11 -57
- package/dist/cli/commands/state/decisions.js.map +1 -1
- package/dist/cli/commands/state/docs.js +56 -120
- package/dist/cli/commands/state/docs.js.map +1 -1
- package/dist/cli/commands/state/experimentRecords.js +22 -121
- package/dist/cli/commands/state/experimentRecords.js.map +1 -1
- package/dist/cli/commands/state/experiments.js +9 -75
- package/dist/cli/commands/state/experiments.js.map +1 -1
- package/dist/cli/commands/state/get.js +62 -143
- package/dist/cli/commands/state/get.js.map +1 -1
- package/dist/cli/commands/state/health.js +9 -123
- package/dist/cli/commands/state/health.js.map +1 -1
- package/dist/cli/commands/state/index.js +2 -2
- package/dist/cli/commands/state/index.js.map +1 -1
- package/dist/cli/commands/state/list.js +20 -36
- package/dist/cli/commands/state/list.js.map +1 -1
- package/dist/cli/commands/state/objective.js +19 -86
- package/dist/cli/commands/state/objective.js.map +1 -1
- package/dist/cli/commands/state/plan.js +9 -388
- package/dist/cli/commands/state/plan.js.map +1 -1
- package/dist/cli/commands/state/planTasks.js +58 -93
- package/dist/cli/commands/state/planTasks.js.map +1 -1
- package/dist/cli/commands/state/plans.js +13 -40
- package/dist/cli/commands/state/plans.js.map +1 -1
- package/dist/cli/commands/state/progress.js +10 -55
- package/dist/cli/commands/state/progress.js.map +1 -1
- package/dist/cli/commands/state/shared.js.map +1 -1
- package/dist/cli/commands/state/todo.js +24 -133
- package/dist/cli/commands/state/todo.js.map +1 -1
- package/dist/cli/commands/state/write.js +13 -35
- package/dist/cli/commands/state/write.js.map +1 -1
- package/dist/cli/commands/upgrade.js +48 -18
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/commands/upgradeVerify.js +21 -15
- package/dist/cli/commands/upgradeVerify.js.map +1 -1
- package/dist/cli/commands/validate.js +1 -9
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/contracts/bundleStatus.js.map +1 -1
- package/dist/cli/contracts/orientationState.js.map +1 -1
- package/dist/cli/dispatch/argvParser.js.map +1 -1
- package/dist/cli/dispatch/check.js +5 -12
- package/dist/cli/dispatch/check.js.map +1 -1
- package/dist/cli/dispatch/commands.js.map +1 -1
- package/dist/cli/dispatch/index.js +30 -29
- package/dist/cli/dispatch/index.js.map +1 -1
- package/dist/cli/dispatch/lifecycle.js +23 -40
- package/dist/cli/dispatch/lifecycle.js.map +1 -1
- package/dist/cli/dispatch/prime.js.map +1 -1
- package/dist/cli/dispatch/shared.js.map +1 -1
- package/dist/cli/dispatch/state.js.map +1 -1
- package/dist/cli/dispatch.js.map +1 -1
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/help.js +20 -100
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/migrationRequired.js +22 -19
- package/dist/cli/migrationRequired.js.map +1 -1
- package/dist/cli/orientation/attention.js +1 -97
- package/dist/cli/orientation/attention.js.map +1 -1
- package/dist/cli/orientation/corpusCoverage.js.map +1 -1
- package/dist/cli/orientation.js +18 -4
- package/dist/cli/orientation.js.map +1 -1
- package/dist/cli/planArtifacts.js.map +1 -1
- package/dist/cli/planEvidence.js.map +1 -1
- package/dist/cli/planLifecycleState.js.map +1 -1
- package/dist/cli/planTaskIndex.js +12 -0
- package/dist/cli/planTaskIndex.js.map +1 -0
- package/dist/cli/prime-blob.js +1 -1
- package/dist/cli/prime-blob.js.map +1 -1
- package/dist/cli/startupCompletenessContract.js.map +1 -1
- package/dist/cli/stateQuery.js +1 -2
- package/dist/cli/stateQuery.js.map +1 -1
- package/dist/cli/structured.js.map +1 -1
- package/dist/cli/todoMarkdown.js.map +1 -1
- package/dist/cli/todoSeverity.js.map +1 -1
- package/dist/core/atomicWriter.js.map +1 -1
- package/dist/core/difflib.js.map +1 -1
- package/dist/core/envPaths.js.map +1 -1
- package/dist/core/jsonValue.js.map +1 -1
- package/dist/core/paths.js.map +1 -1
- package/dist/core/pyjson.js.map +1 -1
- package/dist/core/skillIdentity.js +24 -0
- package/dist/core/skillIdentity.js.map +1 -0
- package/dist/core/sourceRoot.js.map +1 -1
- package/dist/core/text.js.map +1 -1
- package/dist/core/toml.js.map +1 -1
- package/dist/core/yaml.js.map +1 -1
- package/dist/eval/evalSkills.js.map +1 -1
- package/dist/eval/semanticEval.js.map +1 -1
- package/dist/eval/semanticFixtures.js.map +1 -1
- package/dist/hooks/common.js +1 -1
- package/dist/hooks/common.js.map +1 -1
- package/dist/hooks/compaction/apply.js.map +1 -1
- package/dist/hooks/compaction/dryRun.js.map +1 -1
- package/dist/hooks/compaction/index.js.map +1 -1
- package/dist/hooks/compaction/parse.js.map +1 -1
- package/dist/hooks/compaction/retention.js.map +1 -1
- package/dist/hooks/compaction/status.js +2 -1
- package/dist/hooks/compaction/status.js.map +1 -1
- package/dist/hooks/compaction/types.js.map +1 -1
- package/dist/hooks/cursorPreToolUse.js.map +1 -1
- package/dist/hooks/cursorSessionStart.js +4 -25
- package/dist/hooks/cursorSessionStart.js.map +1 -1
- package/dist/hooks/projectHookInput.js +26 -0
- package/dist/hooks/projectHookInput.js.map +1 -0
- package/dist/hooks/sessionStart.js +23 -239
- package/dist/hooks/sessionStart.js.map +1 -1
- package/dist/hooks/sessionStop.js +4 -12
- package/dist/hooks/sessionStop.js.map +1 -1
- package/dist/hooks/validateArtifact/agentFacing.js.map +1 -1
- package/dist/hooks/validateArtifact/index.js.map +1 -1
- package/dist/hooks/validateArtifact/markdown.js.map +1 -1
- package/dist/hooks/validateArtifact/runtime.js.map +1 -1
- package/dist/hooks/validateArtifact/schema.js.map +1 -1
- package/dist/hooks/validateArtifact/traversal.js +1 -1
- package/dist/hooks/validateArtifact/traversal.js.map +1 -1
- package/dist/hooks/validateArtifact/violations.js.map +1 -1
- package/dist/migrate/v2HandoffManifest.js.map +1 -1
- package/dist/registries/artifactProtocolIds.js.map +1 -1
- package/dist/registries/artifactRegistry.js +2 -1
- package/dist/registries/artifactRegistry.js.map +1 -1
- package/dist/registries/capabilityContract.js.map +1 -1
- package/dist/registries/evaluatorHandoffContract.js.map +1 -1
- package/dist/registries/evidenceTierContract.js.map +1 -1
- package/dist/registries/packageRegistry.js +57 -231
- package/dist/registries/packageRegistry.js.map +1 -1
- package/dist/registries/triggerLoader.js.map +1 -1
- package/dist/registries/verbosityBudgetContract.js.map +1 -1
- package/dist/release/releaseMetadata.js +1 -13
- package/dist/release/releaseMetadata.js.map +1 -1
- package/dist/runtime/lifecycleAdapterContract.js +4 -4
- package/dist/runtime/lifecycleAdapterContract.js.map +1 -1
- package/dist/runtime/lifecycleAdapters.js +14 -2
- package/dist/runtime/lifecycleAdapters.js.map +1 -1
- package/dist/runtime/lifecycleAuthority.js +5 -43
- package/dist/runtime/lifecycleAuthority.js.map +1 -1
- package/dist/runtime/lifecycleOperationContract.js +3 -2
- package/dist/runtime/lifecycleOperationContract.js.map +1 -1
- package/dist/runtime/lifecycleOperations.js.map +1 -1
- package/dist/runtime/lifecycleOwnershipJournal.js.map +1 -1
- package/dist/runtime/lifecyclePublication.js +21 -0
- package/dist/runtime/lifecyclePublication.js.map +1 -1
- package/dist/runtime/lifecycleSnapshot.js.map +1 -1
- package/dist/runtime/retiredRuntimeCleanup.js.map +1 -1
- package/dist/setup/codex/agents.js.map +1 -1
- package/dist/setup/codex/cli.js.map +1 -1
- package/dist/setup/codex/configToml.js.map +1 -1
- package/dist/setup/codex/constants.js.map +1 -1
- package/dist/setup/codex/installRoot.js.map +1 -1
- package/dist/setup/codex/state.js.map +1 -1
- package/dist/setup/codex.js.map +1 -1
- package/dist/setup/opencode.js +20 -12
- package/dist/setup/opencode.js.map +1 -1
- package/dist/setup/opencodeConstants.js.map +1 -1
- package/dist/setup/sharedSkill.js +46 -0
- package/dist/setup/sharedSkill.js.map +1 -0
- package/dist/setup/smokeChecks.js +16 -43
- package/dist/setup/smokeChecks.js.map +1 -1
- package/dist/state/archiveDiscovery.js.map +1 -1
- package/dist/state/archivePublication.js.map +1 -1
- package/dist/state/archiveRecovery.js.map +1 -1
- package/dist/state/archiveReplay.js.map +1 -1
- package/dist/state/decisionEntities.js +7 -4
- package/dist/state/decisionEntities.js.map +1 -1
- package/dist/state/decisionLegacyValidation.js.map +1 -1
- package/dist/state/decisionOverlay.js.map +1 -1
- package/dist/state/decisionRevision.js.map +1 -1
- package/dist/state/decisionRevisionPublication.js.map +1 -1
- package/dist/state/directRetrieval.js.map +1 -1
- package/dist/state/durability.js +4 -240
- package/dist/state/durability.js.map +1 -1
- package/dist/state/entityCutover.js +90 -186
- package/dist/state/entityCutover.js.map +1 -1
- package/dist/state/entityCutoverGit.js.map +1 -1
- package/dist/state/entityMigrationPreview.js +3 -3
- package/dist/state/entityMigrationPreview.js.map +1 -1
- package/dist/state/entityPublicationContext.js.map +1 -1
- package/dist/state/entityStorage.js +49 -10
- package/dist/state/entityStorage.js.map +1 -1
- package/dist/state/experimentArchive.js.map +1 -1
- package/dist/state/experimentIdentity.js.map +1 -1
- package/dist/state/experimentRetrieval.js.map +1 -1
- package/dist/state/healthEntities.js +7 -4
- package/dist/state/healthEntities.js.map +1 -1
- package/dist/state/healthEntityValidation.js.map +1 -1
- package/dist/state/healthRepair.js.map +1 -1
- package/dist/state/installRoot.js.map +1 -1
- package/dist/state/legacyEntityCutoverEvidence.js.map +1 -1
- package/dist/state/legacyIdentity.js.map +1 -1
- package/dist/state/listAccounting.js.map +1 -1
- package/dist/state/listClassification.js.map +1 -1
- package/dist/state/listRetrieval.js.map +1 -1
- package/dist/state/objectiveExperimentEntities.js +7 -5
- package/dist/state/objectiveExperimentEntities.js.map +1 -1
- package/dist/state/planEntities.js +60 -12
- package/dist/state/planEntities.js.map +1 -1
- package/dist/state/planIdentity.js.map +1 -1
- package/dist/state/planRetrieval.js.map +1 -1
- package/dist/state/planTaskRetrieval.js.map +1 -1
- package/dist/state/progressEntities.js +4 -2
- package/dist/state/progressEntities.js.map +1 -1
- package/dist/state/projectRoot.js.map +1 -1
- package/dist/state/projectionPolicy.js.map +1 -1
- package/dist/state/retrievalAuthority.js.map +1 -1
- package/dist/state/safeProjectFile.js.map +1 -1
- package/dist/state/startupAnalysis/benchmark.js.map +1 -1
- package/dist/state/startupAnalysis/contract.js.map +1 -1
- package/dist/state/startupAnalysis/helpers.js.map +1 -1
- package/dist/state/startupAnalysis/index.js.map +1 -1
- package/dist/state/startupAnalysis/metrics.js.map +1 -1
- package/dist/state/startupAnalysis/records.js.map +1 -1
- package/dist/state/startupAnalysis/report.js.map +1 -1
- package/dist/state/startupAnalysis/threshold.js.map +1 -1
- package/dist/state/startupAnalysis.js.map +1 -1
- package/dist/state/startupProjection.js +5 -3
- package/dist/state/startupProjection.js.map +1 -1
- package/dist/state/stateMode.js +7 -0
- package/dist/state/stateMode.js.map +1 -1
- package/dist/state/todoDocsEntities.js +6 -4
- package/dist/state/todoDocsEntities.js.map +1 -1
- package/dist/state/todoDocsEntityValidation.js.map +1 -1
- package/dist/state/write/assign.js.map +1 -1
- package/dist/state/write/candidateMutation.js.map +1 -1
- package/dist/state/write/errors.js.map +1 -1
- package/dist/state/write/experimentPublication.js.map +1 -1
- package/dist/state/write/explain.js +10 -12
- package/dist/state/write/explain.js.map +1 -1
- package/dist/state/write/fields.js.map +1 -1
- package/dist/state/write/helpers.js.map +1 -1
- package/dist/state/write/index.js.map +1 -1
- package/dist/state/write/input.js.map +1 -1
- package/dist/state/write/lock.js.map +1 -1
- package/dist/state/write/mutation.js.map +1 -1
- package/dist/state/write/operations.js +6 -0
- package/dist/state/write/operations.js.map +1 -1
- package/dist/state/write/planEvaluation.js +19 -5
- package/dist/state/write/planEvaluation.js.map +1 -1
- package/dist/state/write/planPublication.js +7 -0
- package/dist/state/write/planPublication.js.map +1 -1
- package/dist/state/write/serialize.js.map +1 -1
- package/dist/state/write/transaction.js +23 -532
- package/dist/state/write/transaction.js.map +1 -1
- package/dist/state/write/validate.js.map +1 -1
- package/dist/upgrade/appContentRefresh.js +54 -44
- package/dist/upgrade/appContentRefresh.js.map +1 -1
- package/dist/upgrade/appModel.js.map +1 -1
- package/dist/upgrade/atomicWriter.js.map +1 -1
- package/dist/upgrade/bundleEvidence.js.map +1 -1
- package/dist/upgrade/channels.js.map +1 -1
- package/dist/upgrade/coexistenceProbe.js.map +1 -1
- package/dist/upgrade/compatibility.js.map +1 -1
- package/dist/upgrade/doctor.js +5 -1
- package/dist/upgrade/doctor.js.map +1 -1
- package/dist/upgrade/doctorClassifier.js.map +1 -1
- package/dist/upgrade/installedHooksRetirement.js +46 -39
- package/dist/upgrade/installedHooksRetirement.js.map +1 -1
- package/dist/upgrade/legacyAgentCleanup.js +132 -32
- package/dist/upgrade/legacyAgentCleanup.js.map +1 -1
- package/dist/upgrade/lifecycleUpgrade.js +65 -378
- package/dist/upgrade/lifecycleUpgrade.js.map +1 -1
- package/dist/upgrade/migrateArtifactsV2ToV3.js +151 -52
- package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
- package/dist/upgrade/migrationPublication.js +123 -0
- package/dist/upgrade/migrationPublication.js.map +1 -0
- package/dist/upgrade/nextMajorDoctor.js.map +1 -1
- package/dist/upgrade/npxPlatformStatus.js.map +1 -1
- package/dist/upgrade/projectIntegration.js +46 -113
- package/dist/upgrade/projectIntegration.js.map +1 -1
- package/dist/upgrade/projectIntegrationDecision.js +6 -96
- package/dist/upgrade/projectIntegrationDecision.js.map +1 -1
- package/dist/upgrade/runtimeMigration.js +222 -402
- package/dist/upgrade/runtimeMigration.js.map +1 -1
- package/dist/upgrade/upgradeCommands.js +5 -4
- package/dist/upgrade/upgradeCommands.js.map +1 -1
- package/dist/upgrade/upgradeLock.js +73 -41
- package/dist/upgrade/upgradeLock.js.map +1 -1
- package/dist/upgrade/upgradeOrchestrator.js +91 -158
- package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
- package/dist/upgrade/v3CapabilitySurface.js +2 -2
- package/dist/upgrade/v3CapabilitySurface.js.map +1 -1
- package/dist/upgrade/versionResolution.js.map +1 -1
- package/dist/validate/appHomeContract.js +0 -4
- package/dist/validate/appHomeContract.js.map +1 -1
- package/dist/validate/capability.js.map +1 -1
- package/dist/validate/crossCapability.js.map +1 -1
- package/dist/validate/selfAudit.js.map +1 -1
- package/dist/validate/vocabularyAuthority.js.map +1 -1
- package/package.json +23 -8
- package/bundle/.codex-plugin/plugin.json +0 -92
- package/bundle/.cursor/agents/agentera.md +0 -7
- package/bundle/.cursor/hooks.json +0 -32
- package/bundle/.cursor-plugin/plugin.json +0 -34
- package/bundle/.github/hooks/postToolUse.json +0 -9
- package/bundle/.github/hooks/preToolUse.json +0 -8
- package/bundle/.github/hooks/sessionEnd.json +0 -8
- package/bundle/.github/hooks/sessionStart.json +0 -8
- package/bundle/.github/plugin/plugin.json +0 -7
- package/bundle/.opencode/agents/agentera.md +0 -12
- package/bundle/.opencode/commands/agentera.md +0 -5
- package/bundle/.opencode/package.json +0 -31
- package/bundle/.opencode/plugins/agentera.js +0 -820
- package/bundle/agents/openai.yaml +0 -87
- package/bundle/hooks/codex-hooks.json +0 -31
- package/bundle/hooks/codex-plugin-hooks.json +0 -31
- package/bundle/plugin.json +0 -13
- package/bundle/references/adapters/cursor.md +0 -224
- package/bundle/references/adapters/opencode.md +0 -529
- package/bundle/references/adapters/runtime-adapter-characterization.md +0 -44
- package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
- package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -387
- package/bundle/references/adapters/runtime-feature-parity.md +0 -129
- package/dist/cli/commands/backfill.js +0 -231
- package/dist/cli/commands/backfill.js.map +0 -1
- package/dist/cli/commands/migrate.js +0 -681
- package/dist/cli/commands/migrate.js.map +0 -1
- package/dist/registries/runtimeAdapterRegistry.js +0 -324
- package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
- package/dist/setup/copilot.js +0 -227
- package/dist/setup/copilot.js.map +0 -1
- package/dist/setup/cursor.js +0 -129
- package/dist/setup/cursor.js.map +0 -1
- package/dist/setup/cursorSurfaces.js +0 -67
- package/dist/setup/cursorSurfaces.js.map +0 -1
- package/dist/setup/doctor/core.js +0 -296
- package/dist/setup/doctor/core.js.map +0 -1
- package/dist/setup/doctor/diagnostics.js +0 -201
- package/dist/setup/doctor/diagnostics.js.map +0 -1
- package/dist/setup/doctor/opencode.js +0 -301
- package/dist/setup/doctor/opencode.js.map +0 -1
- package/dist/setup/doctor/report.js +0 -425
- package/dist/setup/doctor/report.js.map +0 -1
- package/dist/setup/doctor.js +0 -10
- package/dist/setup/doctor.js.map +0 -1
- package/dist/state/gitBackfill.js +0 -561
- package/dist/state/gitBackfill.js.map +0 -1
- package/dist/state/gitBackfillAuthority.js +0 -141
- package/dist/state/gitBackfillAuthority.js.map +0 -1
- package/dist/state/gitBackfillHistory.js +0 -278
- package/dist/state/gitBackfillHistory.js.map +0 -1
- package/dist/state/gitBackfillOutput.js +0 -209
- package/dist/state/gitBackfillOutput.js.map +0 -1
- package/dist/state/legacyMigration.js +0 -516
- package/dist/state/legacyMigration.js.map +0 -1
- package/dist/state/legacyMigrationParser.js +0 -489
- package/dist/state/legacyMigrationParser.js.map +0 -1
- package/dist/state/migrationAuthority.js +0 -413
- package/dist/state/migrationAuthority.js.map +0 -1
- package/dist/state/migrationEnrichment.js +0 -35
- package/dist/state/migrationEnrichment.js.map +0 -1
- package/dist/state/projectionRecovery.js +0 -458
- package/dist/state/projectionRecovery.js.map +0 -1
- package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -568
- package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
- package/dist/validate/lifecycleAdapters/legacyPythonParity.js +0 -93
- package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +0 -1
- package/dist/validate/lifecycleAdapters/lifecycleMain.js +0 -154
- package/dist/validate/lifecycleAdapters/lifecycleMain.js.map +0 -1
- package/dist/validate/lifecycleAdapters/nodeFormChecks.js +0 -481
- package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +0 -1
- package/dist/validate/lifecycleAdapters/shared.js +0 -198
- package/dist/validate/lifecycleAdapters/shared.js.map +0 -1
- package/dist/validate/lifecycleAdapters.js +0 -10
- package/dist/validate/lifecycleAdapters.js.map +0 -1
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
# Runtime feature parity
|
|
2
|
-
|
|
3
|
-
Release-relevant behavior is governed by
|
|
4
|
-
`runtime-lifecycle-authority.yaml` and `runtime-lifecycle-adapters.yaml`.
|
|
5
|
-
Active runtime IDs are exactly `opencode`, `codex`, `cursor`, and `copilot`.
|
|
6
|
-
|
|
7
|
-
`cursor-agent` is an inactive compatibility alias and Cursor CLI source-product
|
|
8
|
-
name beneath the single `cursor` identity. It is never an active runtime ID.
|
|
9
|
-
Claude Code is a retired migration and consent-gated historical-import source,
|
|
10
|
-
not a supported runtime.
|
|
11
|
-
|
|
12
|
-
## Lifecycle identity and support floor
|
|
13
|
-
|
|
14
|
-
| Runtime | Required surface | Conditional surface | Canonical skill |
|
|
15
|
-
| --- | --- | --- | --- |
|
|
16
|
-
| OpenCode | host | — | `~/.agents/skills/agentera` |
|
|
17
|
-
| Codex | CLI | — | `~/.agents/skills/agentera` |
|
|
18
|
-
| Cursor | Agent CLI | IDE | `~/.agents/skills/agentera` |
|
|
19
|
-
| GitHub Copilot | CLI | — | `~/.agents/skills/agentera` |
|
|
20
|
-
|
|
21
|
-
The support floor requires the canonical skill, complete diagnosis, and
|
|
22
|
-
resolved mandatory evidence. Unknown or missing mandatory evidence and denied
|
|
23
|
-
trust block release. A known false installation or enablement state is
|
|
24
|
-
diagnosed as degraded. An unobserved conditional Cursor IDE is
|
|
25
|
-
`not_applicable` and does not block CLI support.
|
|
26
|
-
|
|
27
|
-
`prime` projects a bounded summary from this lifecycle snapshot. `doctor`
|
|
28
|
-
projects detailed evidence and exact actions from the same snapshot. The
|
|
29
|
-
`status` projection and project-integration recommendation consume that same
|
|
30
|
-
snapshot, so runtime identities, counts, blockers, and next actions do not
|
|
31
|
-
drift between surfaces.
|
|
32
|
-
|
|
33
|
-
## Common adapter contract
|
|
34
|
-
|
|
35
|
-
Every active runtime reports the same eight categories:
|
|
36
|
-
|
|
37
|
-
| Category | Meaning |
|
|
38
|
-
| --- | --- |
|
|
39
|
-
| skills | Canonical and additional skill discovery locations |
|
|
40
|
-
| plugins | Agentera plugin package or host plugin state |
|
|
41
|
-
| hooks | Session and tool lifecycle wiring |
|
|
42
|
-
| agents | Runtime-native Agentera descriptors |
|
|
43
|
-
| configuration | User or project configuration evidence |
|
|
44
|
-
| enablement | Whether the host has enabled the integration |
|
|
45
|
-
| trust | Observed trust state; never inferred or approved |
|
|
46
|
-
| native actions | Exact user-owned host/package-manager steps |
|
|
47
|
-
|
|
48
|
-
Each runtime/surface/category claim declares capability, evidence, and
|
|
49
|
-
remediation. Unsupported or unverified host behavior cannot satisfy a mandatory
|
|
50
|
-
support floor.
|
|
51
|
-
|
|
52
|
-
## Host behavior
|
|
53
|
-
|
|
54
|
-
| Runtime | Skill/package source | Hook and validation behavior | Agent behavior |
|
|
55
|
-
| --- | --- | --- | --- |
|
|
56
|
-
| OpenCode | Portable skill plus `.opencode/plugins/agentera.js` | Conditional hard gate for reconstructable write/edit candidates; sparse or unreconstructed patches remain advisory | Single Agentera descriptor in `.opencode/agents/agentera.md` |
|
|
57
|
-
| Codex | `.codex-plugin/plugin.json`, shared skill, and marketplace entry | Plugin and copied-hook sources validate `apply_patch` paths before/after use; final patch content is not reconstructed | Capability TOML descriptors under `skills/agentera/agents/` |
|
|
58
|
-
| Cursor | One identity spanning Agent CLI and optional IDE plugin | IDE hooks provide session context and conditional hard-gate validation for reconstructable Write/Edit candidates | One IDE Agentera descriptor; CLI uses the Cursor-owned binary surface |
|
|
59
|
-
| GitHub Copilot | Root and repository plugin manifests | `sessionStart`, `sessionEnd`, `preToolUse`, and `postToolUse`; reconstructable candidates are denied before mutation | Host-managed dispatch; no Agentera-specific Copilot agent descriptor |
|
|
60
|
-
|
|
61
|
-
The validated hard-gate claims retain their exact scope:
|
|
62
|
-
|
|
63
|
-
- OpenCode: Conditional hard gate for reconstructable write and edit candidates. Sparse payloads and apply_patch patchText without reconstructed full content are allowed.
|
|
64
|
-
- GitHub Copilot: Conditional hard gate via preToolUse. Malformed, sparse, or non-reconstructable toolArgs are allowed.
|
|
65
|
-
- Cursor: Conditional hard gate for reconstructable Write and Edit candidates via preToolUse; verified after live preToolUse Write smoke (2026-05-24). Malformed, sparse, or non-reconstructable tool_input payloads are allowed.
|
|
66
|
-
|
|
67
|
-
Agentera never upgrades a runtime binary, runs a native marketplace/package
|
|
68
|
-
manager, authenticates, enables a plugin, or approves trust. Those operations
|
|
69
|
-
are emitted as `action_required`.
|
|
70
|
-
|
|
71
|
-
## Lifecycle repair
|
|
72
|
-
|
|
73
|
-
On the v3 development channel, a dry-run without `--runtime` previews all
|
|
74
|
-
active runtimes. Applying without a selector remains the existing app-only
|
|
75
|
-
operation; runtime apply requires an explicit selector and `--yes`:
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
agentera upgrade --dry-run --channel development
|
|
79
|
-
agentera upgrade --runtime all --dry-run
|
|
80
|
-
agentera upgrade --runtime all --yes
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
Preview is side-effect free. Apply is limited to declared Agentera-owned
|
|
84
|
-
resources with matching ownership-journal evidence. Secure automatic
|
|
85
|
-
publication currently requires Linux `/proc/self/fd`; other platforms receive
|
|
86
|
-
the same plan as explicit actions.
|
|
87
|
-
|
|
88
|
-
Outcomes are `applied`, `noop`, `failed`, `blocked_unowned`,
|
|
89
|
-
`skipped_dependency`, and `action_required`. Independent operations continue
|
|
90
|
-
after a local failure, and retries re-observe state so completed work becomes
|
|
91
|
-
`noop`.
|
|
92
|
-
|
|
93
|
-
## Corpus sources
|
|
94
|
-
|
|
95
|
-
| Runtime identity | Source product | Default analytics |
|
|
96
|
-
| --- | --- | --- |
|
|
97
|
-
| Codex | Codex session JSONL | included |
|
|
98
|
-
| OpenCode | OpenCode SQLite store | included |
|
|
99
|
-
| Cursor | Cursor IDE JSONL | included |
|
|
100
|
-
| Cursor | Cursor Agent CLI SQLite source (`cursor-agent`) | included as Cursor gap-fill |
|
|
101
|
-
| GitHub Copilot | Copilot session SQLite store | included |
|
|
102
|
-
| none | Claude Code JSONL | excluded; requires `--import-source claude` |
|
|
103
|
-
|
|
104
|
-
Claude imports use `historical_import` provenance and `active_runtime: false`.
|
|
105
|
-
They never add Claude to runtime inventories, readiness, or default analytics.
|
|
106
|
-
|
|
107
|
-
## Package release surface
|
|
108
|
-
|
|
109
|
-
The npm bundle contains the shared skill and contract data plus every declared
|
|
110
|
-
runtime source:
|
|
111
|
-
|
|
112
|
-
- OpenCode package, plugin, command, and agent files;
|
|
113
|
-
- Codex plugin manifest, plugin hooks, copied-hook fallback, and capability agents;
|
|
114
|
-
- Cursor plugin manifest, IDE hooks, and agent descriptor;
|
|
115
|
-
- GitHub Copilot root/repository manifests and lifecycle hook files.
|
|
116
|
-
|
|
117
|
-
`.claude-plugin/marketplace.json` is retired and must not be packaged.
|
|
118
|
-
|
|
119
|
-
## Validation boundary
|
|
120
|
-
|
|
121
|
-
`agentera check validate lifecycle-adapters` validates:
|
|
122
|
-
|
|
123
|
-
- lifecycle authority and exact four-runtime identity parity;
|
|
124
|
-
- all eight categories and every declared runtime surface;
|
|
125
|
-
- package-manifest coverage for all active runtimes;
|
|
126
|
-
- npm-bundle coverage for every lifecycle source and runtime manifest;
|
|
127
|
-
- 3.0.0 suite mirrors and the development package core;
|
|
128
|
-
- runtime-specific hook and documentation claims;
|
|
129
|
-
- absence of retired Claude package manifests.
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
import { emitInvalidInput } from "../errors.js";
|
|
2
|
-
import { emitStructured } from "../structured.js";
|
|
3
|
-
import { resolvePath } from "../../core/paths.js";
|
|
4
|
-
import { resolveSourceRoot } from "../../core/sourceRoot.js";
|
|
5
|
-
import { StateRetrievalFailure, } from "../../state/directRetrieval.js";
|
|
6
|
-
import { numberedArchiveArtifacts } from "../../state/archiveDiscovery.js";
|
|
7
|
-
import { stateGitBackfillContract } from "../../state/gitBackfillAuthority.js";
|
|
8
|
-
import { applyGitBackfill, inspectGitBackfill, previewGitBackfill, } from "../../state/gitBackfill.js";
|
|
9
|
-
import { renderGitBackfillText } from "../../state/gitBackfillOutput.js";
|
|
10
|
-
import { applyProjectionRecovery, previewProjectionRecovery } from "../../state/projectionRecovery.js";
|
|
11
|
-
const BACKFILL_SYNTAX = "agentera state backfill [--recover-projections] [--recovery-digest SHA256] [--project PATH] [--artifact ARTIFACT] [--number N] [--commit HASH] [--path PATH] [--limit N] [--dry-run|--apply --force] --format {text,json,yaml}";
|
|
12
|
-
const BACKFILL_DRY_RUN_EXAMPLE = "agentera state backfill --project PATH --artifact progress --number 1 --dry-run --format json";
|
|
13
|
-
const BACKFILL_APPLY_EXAMPLE = "agentera state backfill --project PATH --artifact progress --number 1 --apply --force --format json";
|
|
14
|
-
export function requestedBackfillFormat(argv) {
|
|
15
|
-
for (let index = 0; index < argv.length; index += 1) {
|
|
16
|
-
if (argv[index] === "--format") {
|
|
17
|
-
const value = argv[index + 1];
|
|
18
|
-
if (value === "json" || value === "yaml")
|
|
19
|
-
return value;
|
|
20
|
-
}
|
|
21
|
-
if (argv[index].startsWith("--format=")) {
|
|
22
|
-
const value = argv[index].slice("--format=".length);
|
|
23
|
-
if (value === "json" || value === "yaml")
|
|
24
|
-
return value;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return "text";
|
|
28
|
-
}
|
|
29
|
-
function failure(message, format, syntax = BACKFILL_SYNTAX, validValues, example = BACKFILL_DRY_RUN_EXAMPLE) {
|
|
30
|
-
return {
|
|
31
|
-
format,
|
|
32
|
-
body: {
|
|
33
|
-
class: "invalid_request",
|
|
34
|
-
message,
|
|
35
|
-
syntax,
|
|
36
|
-
example,
|
|
37
|
-
...(validValues ? { valid_values: validValues } : {}),
|
|
38
|
-
},
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
function authorityFailure(error) {
|
|
42
|
-
const body = {
|
|
43
|
-
schemaVersion: "agentera.stateFailure.v1",
|
|
44
|
-
status: "fail",
|
|
45
|
-
error: {
|
|
46
|
-
class: "unsupported_state",
|
|
47
|
-
message: `Git backfill authority could not be loaded: ${error.message}`,
|
|
48
|
-
syntax: BACKFILL_SYNTAX,
|
|
49
|
-
example: BACKFILL_DRY_RUN_EXAMPLE,
|
|
50
|
-
recovery: "Repair references/artifacts/state-storage-authority.yaml and retry; no state was changed.",
|
|
51
|
-
details: { authority: "references/artifacts/state-storage-authority.yaml" },
|
|
52
|
-
},
|
|
53
|
-
};
|
|
54
|
-
return new StateRetrievalFailure(body, 1);
|
|
55
|
-
}
|
|
56
|
-
function emitAuthorityFailure(failure, format, io) {
|
|
57
|
-
const out = io.out ?? ((text) => process.stdout.write(text));
|
|
58
|
-
const err = io.err ?? ((text) => process.stderr.write(text));
|
|
59
|
-
if (format === "json" || format === "yaml")
|
|
60
|
-
emitStructured(failure.body, format, out);
|
|
61
|
-
else
|
|
62
|
-
err(`Error: ${failure.body.error.message}\nSyntax: ${failure.body.error.syntax}\nRecovery: ${failure.body.error.recovery}\n`);
|
|
63
|
-
return failure.exitCode;
|
|
64
|
-
}
|
|
65
|
-
export function parseBackfillArgs(argv) {
|
|
66
|
-
const args = { project: null, artifact: null, format: "text" };
|
|
67
|
-
const valueFlags = ["--project", "--artifact", "--number", "--limit", "--commit", "--path", "--recovery-digest", "--format"];
|
|
68
|
-
for (let index = 0; index < argv.length; index += 1) {
|
|
69
|
-
const token = argv[index];
|
|
70
|
-
const flag = valueFlags.find((candidate) => token === candidate || token.startsWith(`${candidate}=`));
|
|
71
|
-
if (flag) {
|
|
72
|
-
const inline = token.startsWith(`${flag}=`);
|
|
73
|
-
const parsed = inline ? token.slice(flag.length + 1) : argv[++index];
|
|
74
|
-
if (parsed === undefined || parsed === "")
|
|
75
|
-
return { error: `argument ${flag}: expected a value` };
|
|
76
|
-
if (flag === "--project")
|
|
77
|
-
args.project = parsed;
|
|
78
|
-
else if (flag === "--artifact")
|
|
79
|
-
args.artifact = parsed;
|
|
80
|
-
else if (flag === "--commit")
|
|
81
|
-
args.commit = parsed;
|
|
82
|
-
else if (flag === "--path")
|
|
83
|
-
args.path = parsed;
|
|
84
|
-
else if (flag === "--recovery-digest")
|
|
85
|
-
args.recoveryDigest = parsed;
|
|
86
|
-
else if (flag === "--format") {
|
|
87
|
-
if (parsed !== "text" && parsed !== "json" && parsed !== "yaml") {
|
|
88
|
-
return { error: `argument --format: invalid choice: '${parsed}'` };
|
|
89
|
-
}
|
|
90
|
-
args.format = parsed;
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
if (!/^[1-9][0-9]*$/.test(parsed))
|
|
94
|
-
return { error: `argument ${flag}: invalid int value: '${parsed}'` };
|
|
95
|
-
const number = Number(parsed);
|
|
96
|
-
if (!Number.isSafeInteger(number))
|
|
97
|
-
return { error: `argument ${flag}: invalid int value: '${parsed}'` };
|
|
98
|
-
if (flag === "--number")
|
|
99
|
-
args.number = number;
|
|
100
|
-
else
|
|
101
|
-
args.limit = number;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
else if (token === "--dry-run")
|
|
105
|
-
args.dryRun = true;
|
|
106
|
-
else if (token === "--apply")
|
|
107
|
-
args.apply = true;
|
|
108
|
-
else if (token === "--force")
|
|
109
|
-
args.force = true;
|
|
110
|
-
else if (token === "--recover-projections")
|
|
111
|
-
args.recoverProjections = true;
|
|
112
|
-
else
|
|
113
|
-
return { error: `unrecognized arguments: ${token}` };
|
|
114
|
-
}
|
|
115
|
-
return args;
|
|
116
|
-
}
|
|
117
|
-
function validateBackfillArgs(args, sourceRoot) {
|
|
118
|
-
const contract = stateGitBackfillContract(sourceRoot);
|
|
119
|
-
const artifacts = numberedArchiveArtifacts(sourceRoot);
|
|
120
|
-
if (args.recoverProjections) {
|
|
121
|
-
if (args.artifact || args.number !== undefined || args.commit || args.path || args.limit !== undefined)
|
|
122
|
-
return "--recover-projections is a whole-batch operation and cannot be combined with entry selectors";
|
|
123
|
-
if (args.apply && !args.force)
|
|
124
|
-
return "--apply requires explicit --force intent";
|
|
125
|
-
if (args.force && !args.apply)
|
|
126
|
-
return "--force requires --apply";
|
|
127
|
-
if (args.apply && !args.project)
|
|
128
|
-
return "--apply requires explicit --project PATH";
|
|
129
|
-
if (args.apply && args.dryRun)
|
|
130
|
-
return "--apply and --dry-run are mutually exclusive";
|
|
131
|
-
if (args.recoveryDigest && (!args.apply || !/^[a-f0-9]{64}$/.test(args.recoveryDigest)))
|
|
132
|
-
return "--recovery-digest must be a lowercase SHA-256 supplied with --apply";
|
|
133
|
-
return null;
|
|
134
|
-
}
|
|
135
|
-
if (args.recoveryDigest)
|
|
136
|
-
return "--recovery-digest is only valid with --recover-projections --apply";
|
|
137
|
-
if (args.artifact && !artifacts.includes(args.artifact)) {
|
|
138
|
-
return `unsupported artifact '${args.artifact}'`;
|
|
139
|
-
}
|
|
140
|
-
if (args.number !== undefined && !args.artifact)
|
|
141
|
-
return "argument --number requires --artifact";
|
|
142
|
-
if (args.commit && (!args.artifact || args.number === undefined)) {
|
|
143
|
-
return "argument --commit requires --artifact and --number";
|
|
144
|
-
}
|
|
145
|
-
if (args.path && (!args.artifact || args.number === undefined)) {
|
|
146
|
-
return "argument --path requires --artifact and --number";
|
|
147
|
-
}
|
|
148
|
-
if (args.limit !== undefined && (args.limit < 1 || args.limit > contract.maximumLimit)) {
|
|
149
|
-
return `argument --limit must be between 1 and ${contract.maximumLimit}`;
|
|
150
|
-
}
|
|
151
|
-
if (args.apply && args.dryRun)
|
|
152
|
-
return "--apply and --dry-run are mutually exclusive";
|
|
153
|
-
if (args.apply && !args.force)
|
|
154
|
-
return "--apply requires explicit --force intent";
|
|
155
|
-
if (args.force && !args.apply)
|
|
156
|
-
return "--force requires --apply";
|
|
157
|
-
if (args.apply && contract.applyRequires.includes("--project PATH") && !args.project) {
|
|
158
|
-
return "--apply requires explicit --project PATH";
|
|
159
|
-
}
|
|
160
|
-
if (args.apply && (!args.artifact || args.number === undefined)) {
|
|
161
|
-
return "--apply requires exactly one --artifact and --number selector";
|
|
162
|
-
}
|
|
163
|
-
return null;
|
|
164
|
-
}
|
|
165
|
-
export function runBackfill(argv, io, sourceRootOverride) {
|
|
166
|
-
const format = requestedBackfillFormat(argv);
|
|
167
|
-
const sourceRoot = sourceRootOverride ?? resolveSourceRoot();
|
|
168
|
-
let contract;
|
|
169
|
-
try {
|
|
170
|
-
contract = stateGitBackfillContract(sourceRoot);
|
|
171
|
-
}
|
|
172
|
-
catch (error) {
|
|
173
|
-
return emitAuthorityFailure(authorityFailure(error), format, io);
|
|
174
|
-
}
|
|
175
|
-
const parsed = parseBackfillArgs(argv);
|
|
176
|
-
if ("error" in parsed) {
|
|
177
|
-
const invalid = failure(parsed.error, format === "yaml" ? "text" : format, contract.command);
|
|
178
|
-
return emitInvalidInput(io, invalid);
|
|
179
|
-
}
|
|
180
|
-
let validation;
|
|
181
|
-
try {
|
|
182
|
-
validation = validateBackfillArgs(parsed, sourceRoot);
|
|
183
|
-
}
|
|
184
|
-
catch (error) {
|
|
185
|
-
return emitAuthorityFailure(authorityFailure(error), format, io);
|
|
186
|
-
}
|
|
187
|
-
if (validation) {
|
|
188
|
-
const invalid = failure(validation, format === "yaml" ? "text" : format, contract.command, numberedArchiveArtifacts(sourceRoot), parsed.apply ? BACKFILL_APPLY_EXAMPLE : undefined);
|
|
189
|
-
return emitInvalidInput(io, invalid);
|
|
190
|
-
}
|
|
191
|
-
const mode = parsed.apply ? "apply" : parsed.dryRun ? "preview" : "inventory";
|
|
192
|
-
if (parsed.recoverProjections) {
|
|
193
|
-
try {
|
|
194
|
-
const project = resolvePath(parsed.project ?? process.cwd());
|
|
195
|
-
const response = parsed.apply ? applyProjectionRecovery(project, sourceRoot, parsed.recoveryDigest) : previewProjectionRecovery(project, sourceRoot);
|
|
196
|
-
const out = io.out ?? ((text) => process.stdout.write(text));
|
|
197
|
-
if (format === "json" || format === "yaml")
|
|
198
|
-
emitStructured(response, format, out);
|
|
199
|
-
else
|
|
200
|
-
out(`${response.status}: selected=${response.counts.selected} ready=${response.counts.ready} refused=${response.counts.refused} applied=${response.counts.applied}\n`);
|
|
201
|
-
return response.status === "blocked" ? 1 : 0;
|
|
202
|
-
}
|
|
203
|
-
catch (error) {
|
|
204
|
-
return emitInvalidInput(io, failure(error.message, format === "yaml" ? "text" : format));
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
let response;
|
|
208
|
-
try {
|
|
209
|
-
const project = resolvePath(parsed.project ?? process.cwd());
|
|
210
|
-
const options = { sourceRoot };
|
|
211
|
-
if (mode === "apply")
|
|
212
|
-
response = applyGitBackfill(project, parsed, options);
|
|
213
|
-
else if (mode === "preview")
|
|
214
|
-
response = previewGitBackfill(project, parsed, options);
|
|
215
|
-
else
|
|
216
|
-
response = inspectGitBackfill(project, parsed, options);
|
|
217
|
-
}
|
|
218
|
-
catch (error) {
|
|
219
|
-
if (error instanceof StateRetrievalFailure)
|
|
220
|
-
return emitAuthorityFailure(error, format, io);
|
|
221
|
-
const invalid = failure(error.message, format === "yaml" ? "text" : format, contract.command, undefined, parsed.apply ? BACKFILL_APPLY_EXAMPLE : undefined);
|
|
222
|
-
return emitInvalidInput(io, invalid);
|
|
223
|
-
}
|
|
224
|
-
const out = io.out ?? ((text) => process.stdout.write(text));
|
|
225
|
-
if (format === "json" || format === "yaml")
|
|
226
|
-
emitStructured(response, format, out);
|
|
227
|
-
else
|
|
228
|
-
renderGitBackfillText(response, out);
|
|
229
|
-
return mode === "apply" && response.status !== "complete" ? 1 : 0;
|
|
230
|
-
}
|
|
231
|
-
//# sourceMappingURL=backfill.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../../src/cli/commands/backfill.ts"],"names":[],"mappings":"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"}
|