agentera 3.0.0-dev.39 → 3.0.0-dev.41
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/README.md +1 -1
- package/bundle/CHANGELOG.md +55 -8
- package/bundle/README.md +3 -3
- package/bundle/references/artifacts/glossary-entry-contract.yaml +18 -5
- package/bundle/references/artifacts/state-storage-authority.yaml +865 -171
- package/bundle/references/cli/agent-ready-state-contract.yaml +12 -12
- package/bundle/references/cli/audience-namespace-cli-migration.yaml +5 -5
- package/bundle/references/cli/prime-consumer-compatibility.yaml +58 -18
- package/bundle/references/cli/vocabulary-index.yaml +1 -1
- package/bundle/references/cli/vocabulary.md +4 -3
- package/bundle/skills/agentera/SKILL.md +23 -4
- package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +3 -3
- package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +3 -1
- package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +2 -1
- package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +3 -1
- package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +2 -2
- package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +3 -1
- package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +3 -1
- package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +2 -1
- package/bundle/skills/agentera/capability_schema_contract.yaml +1 -1
- package/bundle/skills/agentera/schemas/artifacts/plan.yaml +89 -30
- package/bundle/skills/agentera/schemas/artifacts/todo.yaml +103 -20
- 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.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/glossaryAdviceResolution.js.map +1 -1
- package/dist/analytics/glossaryInputAcquisition.js.map +1 -1
- package/dist/analytics/personalGlossaryAdmission.js.map +1 -1
- package/dist/analytics/personalGlossaryProfile.js +2 -1
- package/dist/analytics/personalGlossaryProfile.js.map +1 -1
- package/dist/analytics/profileSignals.js.map +1 -1
- package/dist/analytics/usageStats.js.map +1 -1
- package/dist/audit/terminologyDrift.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 +2 -2
- package/dist/capabilities/build/instructions.js.map +1 -1
- package/dist/capabilities/design/instructions.js.map +1 -1
- package/dist/capabilities/discuss/instructions.js +2 -1
- package/dist/capabilities/discuss/instructions.js.map +1 -1
- package/dist/capabilities/document/instructions.js.map +1 -1
- package/dist/capabilities/index.js +1 -1
- package/dist/capabilities/index.js.map +1 -1
- package/dist/capabilities/optimize/instructions.js +1 -0
- package/dist/capabilities/optimize/instructions.js.map +1 -1
- package/dist/capabilities/orchestrate/instructions.js.map +1 -1
- package/dist/capabilities/plan/instructions.js +3 -2
- 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 +8 -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 +2 -1
- package/dist/cli/capabilityContext/benchmark.js.map +1 -1
- package/dist/cli/capabilityContext/bespoke.js.map +1 -1
- package/dist/cli/capabilityContext/build.js +6 -6
- package/dist/cli/capabilityContext/build.js.map +1 -1
- package/dist/cli/capabilityContext/closeout.js +11 -7
- package/dist/cli/capabilityContext/closeout.js.map +1 -1
- package/dist/cli/capabilityContext/contract.js +4 -4
- package/dist/cli/capabilityContext/contract.js.map +1 -1
- package/dist/cli/capabilityContext/evidence.js +4 -4
- package/dist/cli/capabilityContext/evidence.js.map +1 -1
- package/dist/cli/capabilityContext/index.js.map +1 -1
- package/dist/cli/capabilityContext/orchestration.js +12 -7
- package/dist/cli/capabilityContext/orchestration.js.map +1 -1
- package/dist/cli/capabilityContext/planState.js.map +1 -1
- package/dist/cli/capabilityContext/progress.js.map +1 -1
- package/dist/cli/capabilityContext/projectVerification.js.map +1 -1
- package/dist/cli/capabilityContext/shared.js +2 -2
- package/dist/cli/capabilityContext/shared.js.map +1 -1
- package/dist/cli/capabilityContext/slim.js.map +1 -1
- package/dist/cli/capabilityContext/startup.js +6 -2
- package/dist/cli/capabilityContext/startup.js.map +1 -1
- package/dist/cli/capabilityContext/types.js +19 -14
- 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.map +1 -1
- package/dist/cli/commands/durability.js.map +1 -1
- package/dist/cli/commands/entityMigrate.js.map +1 -1
- package/dist/cli/commands/glossaryAdvice.js.map +1 -1
- package/dist/cli/commands/lint.js.map +1 -1
- package/dist/cli/commands/personalGlossary.js.map +1 -1
- package/dist/cli/commands/prime/briefOrientation.js +260 -44
- package/dist/cli/commands/prime/briefOrientation.js.map +1 -1
- package/dist/cli/commands/prime/buildExecutionRequest.js.map +1 -1
- package/dist/cli/commands/prime/bundleStatus.js.map +1 -1
- package/dist/cli/commands/prime/collectEntityOrientation.js +22 -13
- package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -1
- package/dist/cli/commands/prime/collectOrientationState.js +20 -28
- package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
- package/dist/cli/commands/prime/orientationOutput.js +4 -5
- 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 +1 -1
- package/dist/cli/commands/prime.js.map +1 -1
- package/dist/cli/commands/profileGrounding.js +29 -50
- package/dist/cli/commands/profileGrounding.js.map +1 -1
- package/dist/cli/commands/query.js.map +1 -1
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/route.js.map +1 -1
- package/dist/cli/commands/schema.js +4 -43
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/state/decisions.js +1 -1
- package/dist/cli/commands/state/decisions.js.map +1 -1
- package/dist/cli/commands/state/docs.js.map +1 -1
- package/dist/cli/commands/state/experimentRecords.js +28 -15
- package/dist/cli/commands/state/experimentRecords.js.map +1 -1
- package/dist/cli/commands/state/experiments.js.map +1 -1
- package/dist/cli/commands/state/get.js +6 -3
- package/dist/cli/commands/state/get.js.map +1 -1
- package/dist/cli/commands/state/health.js.map +1 -1
- package/dist/cli/commands/state/index.js +3 -46
- package/dist/cli/commands/state/index.js.map +1 -1
- package/dist/cli/commands/state/list.js +41 -22
- package/dist/cli/commands/state/list.js.map +1 -1
- package/dist/cli/commands/state/objective.js.map +1 -1
- package/dist/cli/commands/state/plan.js.map +1 -1
- package/dist/cli/commands/state/planTasks.js +26 -13
- package/dist/cli/commands/state/planTasks.js.map +1 -1
- package/dist/cli/commands/state/plans.js +31 -19
- package/dist/cli/commands/state/plans.js.map +1 -1
- 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 +2 -1
- package/dist/cli/commands/state/todo.js.map +1 -1
- package/dist/cli/commands/state/write.js +52 -48
- package/dist/cli/commands/state/write.js.map +1 -1
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/commands/upgradeVerify.js.map +1 -1
- package/dist/cli/commands/validate.js +44 -4
- 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.map +1 -1
- package/dist/cli/dispatch/commands.js.map +1 -1
- package/dist/cli/dispatch/index.js +12 -4
- package/dist/cli/dispatch/index.js.map +1 -1
- 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 +53 -86
- 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 +134 -48
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/migrationRequired.js.map +1 -1
- package/dist/cli/orientation/attention.js +8 -5
- package/dist/cli/orientation/attention.js.map +1 -1
- package/dist/cli/orientation/corpusCoverage.js.map +1 -1
- package/dist/cli/orientation.js +61 -38
- 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 +3 -1
- package/dist/cli/planLifecycleState.js.map +1 -1
- package/dist/cli/planTaskIndex.js.map +1 -1
- package/dist/cli/prime-blob.js +2 -1
- package/dist/cli/prime-blob.js.map +1 -1
- package/dist/cli/profileAcquisition.js +168 -0
- package/dist/cli/profileAcquisition.js.map +1 -0
- package/dist/cli/startupCompletenessContract.js +5 -2
- package/dist/cli/startupCompletenessContract.js.map +1 -1
- package/dist/cli/stateQuery.js.map +1 -1
- package/dist/cli/structured.js.map +1 -1
- package/dist/cli/todoMarkdown.js +25 -11
- package/dist/cli/todoMarkdown.js.map +1 -1
- package/dist/cli/todoReadinessSelection.js +52 -17
- package/dist/cli/todoReadinessSelection.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/shell.js +5 -0
- package/dist/core/shell.js.map +1 -0
- package/dist/core/skillIdentity.js.map +1 -1
- 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/hybridRouteEvaluation.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.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.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.map +1 -1
- package/dist/hooks/projectHookInput.js.map +1 -1
- package/dist/hooks/sessionStart.js.map +1 -1
- 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 +6 -0
- package/dist/hooks/validateArtifact/schema.js.map +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.map +1 -1
- package/dist/registries/artifactSchemaProjection.js +46 -0
- package/dist/registries/artifactSchemaProjection.js.map +1 -0
- 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/glossaryAdviceContract.js.map +1 -1
- package/dist/registries/glossaryCaveatContract.js.map +1 -1
- package/dist/registries/glossaryConsumerContractValidation.js +1 -5
- package/dist/registries/glossaryConsumerContractValidation.js.map +1 -1
- package/dist/registries/glossaryEntryContract.js +10 -0
- package/dist/registries/glossaryEntryContract.js.map +1 -1
- package/dist/registries/glossaryTermIdentity.js.map +1 -1
- package/dist/registries/glossaryTermOccurrence.js.map +1 -1
- package/dist/registries/hybridRoute.js.map +1 -1
- package/dist/registries/hybridRouteReceipt.js.map +1 -1
- package/dist/registries/packageRegistry.js.map +1 -1
- package/dist/registries/todoReadinessContract.js +49 -6
- package/dist/registries/todoReadinessContract.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.map +1 -1
- package/dist/runtime/lifecycleAdapterContract.js.map +1 -1
- package/dist/runtime/lifecycleAdapters.js.map +1 -1
- package/dist/runtime/lifecycleAuthority.js.map +1 -1
- 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.map +1 -1
- package/dist/runtime/lifecycleSnapshot.js.map +1 -1
- package/dist/runtime/nativeResourceCleanup.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.map +1 -1
- package/dist/setup/opencodeConstants.js.map +1 -1
- package/dist/setup/sharedSkill.js.map +1 -1
- package/dist/setup/smokeChecks.js.map +1 -1
- package/dist/state/archiveDiscovery.js +8 -5
- 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/canonicalMigrationRecord.js.map +1 -1
- package/dist/state/changelog.js.map +1 -1
- package/dist/state/decisionEntities.js +59 -20
- package/dist/state/decisionEntities.js.map +1 -1
- package/dist/state/decisionLegacyValidation.js.map +1 -1
- package/dist/state/decisionMigrationProvenance.js.map +1 -1
- package/dist/state/decisionOverlay.js.map +1 -1
- package/dist/state/decisionRevision.js.map +1 -1
- package/dist/state/decisionRevisionMigration.js.map +1 -1
- package/dist/state/directRetrieval.js.map +1 -1
- package/dist/state/durability.js.map +1 -1
- package/dist/state/entityCutover.js.map +1 -1
- package/dist/state/entityCutoverGit.js.map +1 -1
- package/dist/state/entityGlossaryAuthority.js.map +1 -1
- package/dist/state/entityListProjection.js +188 -0
- package/dist/state/entityListProjection.js.map +1 -0
- package/dist/state/entityListRuntimeRegistry.js +50 -0
- package/dist/state/entityListRuntimeRegistry.js.map +1 -0
- package/dist/state/entityMigrationCausality.js.map +1 -1
- package/dist/state/entityMigrationIdentity.js.map +1 -1
- package/dist/state/entityMigrationPreview.js +32 -3
- package/dist/state/entityMigrationPreview.js.map +1 -1
- package/dist/state/entityPublicationContext.js +607 -765
- package/dist/state/entityPublicationContext.js.map +1 -1
- package/dist/state/entityRetrievalHelp.js +476 -0
- package/dist/state/entityRetrievalHelp.js.map +1 -0
- package/dist/state/entityStorage.js.map +1 -1
- package/dist/state/exactReplacementRecovery.js +19 -0
- package/dist/state/exactReplacementRecovery.js.map +1 -0
- package/dist/state/experimentArchive.js.map +1 -1
- package/dist/state/experimentIdentity.js.map +1 -1
- package/dist/state/healthEntities.js +15 -16
- 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/legacySummaryRecord.js.map +1 -1
- package/dist/state/listAccounting.js.map +1 -1
- package/dist/state/listClassification.js.map +1 -1
- package/dist/state/listCursor.js.map +1 -1
- package/dist/state/listRetrieval.js.map +1 -1
- package/dist/state/migrationSourceBinding.js.map +1 -1
- package/dist/state/objectiveExperimentEntities.js +22 -22
- package/dist/state/objectiveExperimentEntities.js.map +1 -1
- package/dist/state/planEntities.js +75 -29
- package/dist/state/planEntities.js.map +1 -1
- package/dist/state/planIdentity.js +4 -1
- package/dist/state/planIdentity.js.map +1 -1
- package/dist/state/planRetrieval.js.map +1 -1
- package/dist/state/planTaskRetrieval.js +41 -31
- package/dist/state/planTaskRetrieval.js.map +1 -1
- package/dist/state/progressEntities.js +40 -25
- package/dist/state/progressEntities.js.map +1 -1
- package/dist/state/progressGlossaryCaveat.js.map +1 -1
- package/dist/state/progressPublicationOrder.js.map +1 -1
- package/dist/state/projectRoot.js.map +1 -1
- package/dist/state/projectionPolicy.js +12 -5
- package/dist/state/projectionPolicy.js.map +1 -1
- package/dist/state/retrievalAuthority.js +86 -272
- 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.map +1 -1
- package/dist/state/stateMode.js +11 -8
- package/dist/state/stateMode.js.map +1 -1
- package/dist/state/stateStorageAuthority.js.map +1 -1
- package/dist/state/summaryEntityRead.js.map +1 -1
- package/dist/state/summaryMigrationProvenance.js.map +1 -1
- package/dist/state/summarySourceRowAuthority.js.map +1 -1
- package/dist/state/todoDocsEntities.js +811 -91
- package/dist/state/todoDocsEntities.js.map +1 -1
- package/dist/state/todoDocsEntityValidation.js +127 -2
- package/dist/state/todoDocsEntityValidation.js.map +1 -1
- package/dist/state/todoReconciliationActivation.js +63 -0
- package/dist/state/todoReconciliationActivation.js.map +1 -0
- package/dist/state/todoReconciliationTransaction.js +554 -0
- package/dist/state/todoReconciliationTransaction.js.map +1 -0
- package/dist/state/write/assign.js.map +1 -1
- package/dist/state/write/candidateMutation.js +1 -12
- 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 +198 -177
- package/dist/state/write/explain.js.map +1 -1
- package/dist/state/write/fields.js.map +1 -1
- package/dist/state/write/glossaryPublication.js.map +1 -1
- package/dist/state/write/grammar.js +271 -0
- package/dist/state/write/grammar.js.map +1 -0
- package/dist/state/write/helpers.js.map +1 -1
- package/dist/state/write/index.js.map +1 -1
- package/dist/state/write/input.js +351 -5
- 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 +140 -343
- package/dist/state/write/operations.js.map +1 -1
- package/dist/state/write/planEvaluation.js +4 -0
- package/dist/state/write/planEvaluation.js.map +1 -1
- package/dist/state/write/planPublication.js +48 -3
- package/dist/state/write/planPublication.js.map +1 -1
- package/dist/state/write/runtimeOperations.js +65 -0
- package/dist/state/write/runtimeOperations.js.map +1 -0
- package/dist/state/write/serialize.js.map +1 -1
- package/dist/state/write/transaction.js +13 -7
- package/dist/state/write/transaction.js.map +1 -1
- package/dist/state/write/validate.js.map +1 -1
- 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.map +1 -1
- package/dist/upgrade/doctorClassifier.js.map +1 -1
- package/dist/upgrade/installedHooksRetirement.js.map +1 -1
- package/dist/upgrade/legacyAgentCleanup.js.map +1 -1
- package/dist/upgrade/lifecycleUpgrade.js.map +1 -1
- package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
- package/dist/upgrade/migrationPublication.js.map +1 -1
- package/dist/upgrade/nextMajorDoctor.js.map +1 -1
- package/dist/upgrade/npxPlatformStatus.js.map +1 -1
- package/dist/upgrade/projectIntegration.js.map +1 -1
- package/dist/upgrade/projectIntegrationDecision.js.map +1 -1
- package/dist/upgrade/runtimeMigration.js.map +1 -1
- package/dist/upgrade/upgradeCommands.js.map +1 -1
- package/dist/upgrade/upgradeLock.js.map +1 -1
- package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
- package/dist/upgrade/v3CapabilitySurface.js.map +1 -1
- package/dist/upgrade/versionResolution.js.map +1 -1
- 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/v1LegacyCruft.js.map +1 -1
- package/dist/validate/vocabularyAuthority.js.map +1 -1
- package/package.json +2 -2
- package/dist/state/experimentRetrieval.js +0 -447
- package/dist/state/experimentRetrieval.js.map +0 -1
|
@@ -2,6 +2,7 @@ import YAML from "yaml";
|
|
|
2
2
|
import { StateRetrievalFailure } from "../../../state/directRetrieval.js";
|
|
3
3
|
import { getPlanTaskEntity, listPlanTaskEntities } from "../../../state/planEntities.js";
|
|
4
4
|
import { emitStructured } from "../../structured.js";
|
|
5
|
+
import { entityListFamily, entityListValidValues } from "../../../state/entityRetrievalHelp.js";
|
|
5
6
|
function requestedFormat(argv) {
|
|
6
7
|
for (let index = 0; index < argv.length; index += 1) {
|
|
7
8
|
const token = argv[index];
|
|
@@ -22,6 +23,7 @@ function readValue(argv, index, name) {
|
|
|
22
23
|
}
|
|
23
24
|
function failure(message, verb) {
|
|
24
25
|
const list = verb === "list";
|
|
26
|
+
const family = entityListFamily("plan_tasks");
|
|
25
27
|
return new StateRetrievalFailure({
|
|
26
28
|
schemaVersion: "agentera.stateFailure.v1",
|
|
27
29
|
status: "fail",
|
|
@@ -29,27 +31,36 @@ function failure(message, verb) {
|
|
|
29
31
|
class: "invalid_request",
|
|
30
32
|
message,
|
|
31
33
|
syntax: list
|
|
32
|
-
?
|
|
33
|
-
:
|
|
34
|
+
? family.syntax
|
|
35
|
+
: family.get,
|
|
34
36
|
example: list
|
|
35
|
-
?
|
|
37
|
+
? family.example
|
|
36
38
|
: "agentera state plan tasks get --id qjtrmnpvka --format json",
|
|
37
|
-
recovery: "Correct the command using one of the valid forms and retry; no state was changed.",
|
|
39
|
+
recovery: list ? `Run \`${family.example}\`; no state was changed.` : "Correct the command using one of the valid forms and retry; no state was changed.",
|
|
38
40
|
valid_values: list
|
|
39
|
-
?
|
|
41
|
+
? entityListValidValues(family)
|
|
40
42
|
: ["get", "--id ID", "--format text|json|yaml"],
|
|
41
43
|
},
|
|
42
44
|
}, 2);
|
|
43
45
|
}
|
|
44
46
|
function parse(argv, verb) {
|
|
47
|
+
const family = entityListFamily("plan_tasks");
|
|
45
48
|
let format = "text";
|
|
46
49
|
let plan;
|
|
47
|
-
let limit =
|
|
50
|
+
let limit = family.bounds.default;
|
|
48
51
|
let cursor;
|
|
49
52
|
let id;
|
|
53
|
+
const selector = {};
|
|
50
54
|
const seen = new Set();
|
|
51
55
|
for (let index = 0; index < argv.length;) {
|
|
52
56
|
const token = argv[index];
|
|
57
|
+
if (verb === "list" && token === "--ids-only") {
|
|
58
|
+
if (selector.idsOnly)
|
|
59
|
+
throw failure("--ids-only may only be supplied once", verb);
|
|
60
|
+
selector.idsOnly = true;
|
|
61
|
+
index += 1;
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
53
64
|
if (verb === "list" && !token.startsWith("--")) {
|
|
54
65
|
if (plan)
|
|
55
66
|
throw failure(`unrecognized argument '${token}'`, verb);
|
|
@@ -57,7 +68,7 @@ function parse(argv, verb) {
|
|
|
57
68
|
index += 1;
|
|
58
69
|
continue;
|
|
59
70
|
}
|
|
60
|
-
const allowed = verb === "list" ? ["--format", "--limit", "--cursor"] : ["--format", "--id"];
|
|
71
|
+
const allowed = verb === "list" ? ["--format", "--limit", "--cursor", "--fields"] : ["--format", "--id"];
|
|
61
72
|
const name = allowed.find((flag) => token === flag || token.startsWith(`${flag}=`));
|
|
62
73
|
if (!name)
|
|
63
74
|
throw failure(`unrecognized argument '${token}'`, verb);
|
|
@@ -73,23 +84,25 @@ function parse(argv, verb) {
|
|
|
73
84
|
}
|
|
74
85
|
index = parsed.next;
|
|
75
86
|
if (name === "--format") {
|
|
76
|
-
if (!
|
|
87
|
+
if (!family.formats.includes(parsed.value))
|
|
77
88
|
throw failure(`invalid --format '${parsed.value}'`, verb);
|
|
78
89
|
format = parsed.value;
|
|
79
90
|
}
|
|
80
91
|
else if (name === "--limit") {
|
|
81
|
-
if (!/^[1-9][0-9]*$/.test(parsed.value))
|
|
82
|
-
throw failure(
|
|
92
|
+
if (!/^[1-9][0-9]*$/.test(parsed.value) || Number(parsed.value) < family.bounds.minimum || Number(parsed.value) > family.bounds.maximum)
|
|
93
|
+
throw failure(`--limit must be an integer from ${family.bounds.minimum} through ${family.bounds.maximum}`, verb);
|
|
83
94
|
limit = Number(parsed.value);
|
|
84
95
|
}
|
|
85
96
|
else if (name === "--cursor")
|
|
86
97
|
cursor = parsed.value;
|
|
98
|
+
else if (name === "--fields")
|
|
99
|
+
selector.fields = parsed.value;
|
|
87
100
|
else
|
|
88
101
|
id = parsed.value;
|
|
89
102
|
}
|
|
90
103
|
if (verb === "get" && !id)
|
|
91
|
-
throw failure("entity mode requires
|
|
92
|
-
return { format, limit, ...(plan ? { plan } : {}), ...(cursor ? { cursor } : {}), ...(id ? { id } : {}) };
|
|
104
|
+
throw failure("entity mode requires a bare ten-letter --id selector", verb);
|
|
105
|
+
return { format, limit, ...(plan ? { plan } : {}), ...(cursor ? { cursor } : {}), ...(id ? { id } : {}), selector };
|
|
93
106
|
}
|
|
94
107
|
function emitFailure(error, format, io) {
|
|
95
108
|
if (format === "json" || format === "yaml")
|
|
@@ -114,7 +127,7 @@ export function runPlanTasks(argv, io) {
|
|
|
114
127
|
try {
|
|
115
128
|
const args = parse(argv.slice(1), verb);
|
|
116
129
|
const response = verb === "list"
|
|
117
|
-
? listPlanTaskEntities(process.cwd(), args.plan, args.limit, args.cursor, { format: args.format })
|
|
130
|
+
? listPlanTaskEntities(process.cwd(), args.plan, args.limit, args.cursor, { format: args.format, selector: args.selector })
|
|
118
131
|
: getPlanTaskEntity(process.cwd(), args.id);
|
|
119
132
|
const output = io.out ?? ((text) => process.stdout.write(text));
|
|
120
133
|
if (args.format === "json" || args.format === "yaml")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planTasks.js","sourceRoot":"","sources":["../../../../../../../home/jgabor/git/agentera/packages/cli/src/cli/commands/state/planTasks.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEzF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"planTasks.js","sourceRoot":"","sources":["../../../../../../../home/jgabor/git/agentera.release-publish-dev40/packages/cli/src/cli/commands/state/planTasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import YAML from "yaml";
|
|
|
2
2
|
import { StateRetrievalFailure } from "../../../state/directRetrieval.js";
|
|
3
3
|
import { getPlanEntity, listPlanEntities } from "../../../state/planEntities.js";
|
|
4
4
|
import { emitStructured } from "../../structured.js";
|
|
5
|
+
import { entityListFamily, entityListValidValues } from "../../../state/entityRetrievalHelp.js";
|
|
5
6
|
function requestedFormat(argv) {
|
|
6
7
|
for (let index = 0; index < argv.length; index += 1) {
|
|
7
8
|
const token = argv[index];
|
|
@@ -13,6 +14,7 @@ function requestedFormat(argv) {
|
|
|
13
14
|
}
|
|
14
15
|
function failure(message, verb) {
|
|
15
16
|
const list = verb === "list";
|
|
17
|
+
const family = entityListFamily("plans");
|
|
16
18
|
return new StateRetrievalFailure({
|
|
17
19
|
schemaVersion: "agentera.stateFailure.v1",
|
|
18
20
|
status: "fail",
|
|
@@ -20,14 +22,14 @@ function failure(message, verb) {
|
|
|
20
22
|
class: "invalid_request",
|
|
21
23
|
message,
|
|
22
24
|
syntax: list
|
|
23
|
-
?
|
|
24
|
-
:
|
|
25
|
+
? family.syntax
|
|
26
|
+
: family.get,
|
|
25
27
|
example: list
|
|
26
|
-
?
|
|
28
|
+
? family.example
|
|
27
29
|
: "agentera state plan get --id qjtrmnpvka --format json",
|
|
28
|
-
recovery: "Correct the command using one of the valid forms and retry; no state was changed.",
|
|
30
|
+
recovery: list ? `Run \`${family.example}\`; no state was changed.` : "Correct the command using one of the valid forms and retry; no state was changed.",
|
|
29
31
|
valid_values: list
|
|
30
|
-
?
|
|
32
|
+
? entityListValidValues(family)
|
|
31
33
|
: ["get", "--id ID", "--format text|json|yaml"],
|
|
32
34
|
},
|
|
33
35
|
}, 2);
|
|
@@ -42,17 +44,26 @@ function readValue(argv, index, name) {
|
|
|
42
44
|
return { value, next: index + 2 };
|
|
43
45
|
}
|
|
44
46
|
function parse(argv, verb) {
|
|
47
|
+
const family = entityListFamily("plans");
|
|
45
48
|
let format = "text";
|
|
46
|
-
let limit =
|
|
49
|
+
let limit = family.bounds.default;
|
|
47
50
|
let cursor;
|
|
48
|
-
let plan;
|
|
49
51
|
let id;
|
|
50
52
|
let status;
|
|
53
|
+
const selector = {};
|
|
51
54
|
const seen = new Set();
|
|
52
55
|
for (let index = 0; index < argv.length;) {
|
|
53
56
|
const token = argv[index];
|
|
54
|
-
|
|
55
|
-
|
|
57
|
+
if (verb === "list" && token === "--ids-only") {
|
|
58
|
+
if (selector.idsOnly)
|
|
59
|
+
throw failure("--ids-only may only be supplied once", verb);
|
|
60
|
+
selector.idsOnly = true;
|
|
61
|
+
index += 1;
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const allowed = verb === "list" ? ["--format", "--limit", "--cursor", "--status", "--fields"] : ["--format", "--id"];
|
|
65
|
+
const name = allowed.find((flag) => token === flag || token.startsWith(`${flag}=`));
|
|
66
|
+
if (!name) {
|
|
56
67
|
throw failure(`unrecognized argument '${token}'`, verb);
|
|
57
68
|
}
|
|
58
69
|
if (seen.has(name))
|
|
@@ -67,28 +78,29 @@ function parse(argv, verb) {
|
|
|
67
78
|
}
|
|
68
79
|
index = parsed.next;
|
|
69
80
|
if (name === "--format") {
|
|
70
|
-
if (!
|
|
81
|
+
if (!family.formats.includes(parsed.value))
|
|
71
82
|
throw failure(`invalid --format '${parsed.value}'`, verb);
|
|
72
83
|
format = parsed.value;
|
|
73
84
|
}
|
|
74
85
|
else if (name === "--limit") {
|
|
75
|
-
if (!/^[1-9][0-9]*$/.test(parsed.value))
|
|
76
|
-
throw failure(
|
|
86
|
+
if (!/^[1-9][0-9]*$/.test(parsed.value) || Number(parsed.value) < family.bounds.minimum || Number(parsed.value) > family.bounds.maximum)
|
|
87
|
+
throw failure(`--limit must be an integer from ${family.bounds.minimum} through ${family.bounds.maximum}`, verb);
|
|
77
88
|
limit = Number(parsed.value);
|
|
78
89
|
}
|
|
79
90
|
else if (name === "--cursor")
|
|
80
91
|
cursor = parsed.value;
|
|
92
|
+
else if (name === "--fields")
|
|
93
|
+
selector.fields = parsed.value;
|
|
81
94
|
else if (name === "--status") {
|
|
82
|
-
|
|
95
|
+
const validStatuses = family.filters.find(({ name }) => name === "status")?.values;
|
|
96
|
+
if (!Array.isArray(validStatuses) || !validStatuses.includes(parsed.value))
|
|
83
97
|
throw failure(`invalid --status '${parsed.value}'`, verb);
|
|
84
98
|
status = parsed.value;
|
|
85
99
|
}
|
|
86
|
-
else if (name === "--plan")
|
|
87
|
-
plan = parsed.value;
|
|
88
100
|
else
|
|
89
101
|
id = parsed.value;
|
|
90
102
|
}
|
|
91
|
-
return { format, limit, ...(cursor ? { cursor } : {}), ...(
|
|
103
|
+
return { format, limit, ...(cursor ? { cursor } : {}), ...(id ? { id } : {}), ...(status ? { status } : {}), selector };
|
|
92
104
|
}
|
|
93
105
|
function emitFailure(error, format, io) {
|
|
94
106
|
if (format === "json" || format === "yaml")
|
|
@@ -112,10 +124,10 @@ export function runPlans(argv, io) {
|
|
|
112
124
|
return emitFailure(failure(`expected 'list' or 'get', received '${verb ?? "nothing"}'`, "list"), format, io);
|
|
113
125
|
try {
|
|
114
126
|
const args = parse(argv.slice(1), verb);
|
|
115
|
-
if (verb === "get" &&
|
|
116
|
-
throw failure("entity mode requires --id ID
|
|
127
|
+
if (verb === "get" && !args.id)
|
|
128
|
+
throw failure("entity mode requires --id ID", verb);
|
|
117
129
|
const response = verb === "list"
|
|
118
|
-
? listPlanEntities(process.cwd(), args.limit, args.cursor, { format: args.format, ...(args.status ? { statuses: [args.status] } : {}) })
|
|
130
|
+
? listPlanEntities(process.cwd(), args.limit, args.cursor, { format: args.format, selector: args.selector, ...(args.status ? { statuses: [args.status] } : {}) })
|
|
119
131
|
: getPlanEntity(process.cwd(), args.id);
|
|
120
132
|
const output = io.out ?? ((text) => process.stdout.write(text));
|
|
121
133
|
if (args.format === "json" || args.format === "yaml")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../../../../../../home/jgabor/git/agentera/packages/cli/src/cli/commands/state/plans.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../../../../../../home/jgabor/git/agentera.release-publish-dev40/packages/cli/src/cli/commands/state/plans.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../../../../../home/jgabor/git/agentera/packages/cli/src/cli/commands/state/progress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AACxG,OAAO,EAAE,GAAG,EAA2B,MAAM,aAAa,CAAC;AAE3D,MAAM,UAAU,aAAa,CAAC,IAAe,EAAE,QAAoC,EAAE,EAAM;IACzF,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAA6B,CAAC;IACnE,MAAM,QAAQ,GAAG,oBAAoB,CACnC,OAAO,CAAC,GAAG,EAAE,EACb,IAAI,CAAC,KAAK,IAAI,SAAS,EACvB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAC1C,IAAI,CAAC,MAAM,IAAI,SAAS,EACxB,EAAE,MAAM,EAAE,CACX,CAAC;IACF,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IACvB,IAAI,MAAM,KAAK,MAAM;QAAE,MAAM,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC,CAAC;;QACjE,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../../../../../home/jgabor/git/agentera.release-publish-dev40/packages/cli/src/cli/commands/state/progress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AACxG,OAAO,EAAE,GAAG,EAA2B,MAAM,aAAa,CAAC;AAE3D,MAAM,UAAU,aAAa,CAAC,IAAe,EAAE,QAAoC,EAAE,EAAM;IACzF,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAA6B,CAAC;IACnE,MAAM,QAAQ,GAAG,oBAAoB,CACnC,OAAO,CAAC,GAAG,EAAE,EACb,IAAI,CAAC,KAAK,IAAI,SAAS,EACvB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAC1C,IAAI,CAAC,MAAM,IAAI,SAAS,EACxB,EAAE,MAAM,EAAE,CACX,CAAC;IACF,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IACvB,IAAI,MAAM,KAAK,MAAM;QAAE,MAAM,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC,CAAC;;QACjE,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../../../home/jgabor/git/agentera/packages/cli/src/cli/commands/state/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH,MAAM,UAAU,GAAG,CAAC,EAAM;IACxB,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,EAAM;IACxB,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC"}
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../../../home/jgabor/git/agentera.release-publish-dev40/packages/cli/src/cli/commands/state/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH,MAAM,UAAU,GAAG,CAAC,EAAM;IACxB,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,EAAM;IACxB,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { emitStructured } from "../../structured.js";
|
|
2
2
|
import { TODO_SEVERITY_ORDER_KEYS } from "../../todoSeverity.js";
|
|
3
|
+
import { renderTodoPublicRecord } from "../../todoMarkdown.js";
|
|
3
4
|
import { StateRetrievalFailure } from "../../../state/directRetrieval.js";
|
|
4
5
|
import { listTodoDocsEntities } from "../../../state/todoDocsEntities.js";
|
|
5
6
|
import YAML from "yaml";
|
|
@@ -25,7 +26,7 @@ export function queryTodo(args, _schemas, io, openOnly = false) {
|
|
|
25
26
|
emitStructured(response, format, output);
|
|
26
27
|
else
|
|
27
28
|
for (const entry of response.entries) {
|
|
28
|
-
output(`[${entry.record.severity}] ${entry.id} ${entry.record.status}: ${entry.record
|
|
29
|
+
output(`[${entry.record.severity}] ${entry.id} ${entry.record.status}: ${renderTodoPublicRecord(entry.record)}\n`);
|
|
29
30
|
}
|
|
30
31
|
return 0;
|
|
31
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo.js","sourceRoot":"","sources":["../../../../../../../home/jgabor/git/agentera/packages/cli/src/cli/commands/state/todo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,GAAG,EAA2B,MAAM,aAAa,CAAC;AAEhE,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,KAAK,GAAG,QAAQ;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,IAAe,EACf,QAAoC,EACpC,EAAM,EACN,QAAQ,GAAG,KAAK;IAEhB,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE,SAAS,EAAE;YAC/F,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACf,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM;YAAE,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;;YAChF,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"todo.js","sourceRoot":"","sources":["../../../../../../../home/jgabor/git/agentera.release-publish-dev40/packages/cli/src/cli/commands/state/todo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,GAAG,EAA2B,MAAM,aAAa,CAAC;AAEhE,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,KAAK,GAAG,QAAQ;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,IAAe,EACf,QAAoC,EACpC,EAAM,EACN,QAAQ,GAAG,KAAK;IAEhB,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE,SAAS,EAAE;YAC/F,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACf,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM;YAAE,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;;YAChF,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAwG,EAAE,CAAC;gBAC3I,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrH,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,qBAAqB,CAAC;YAAE,MAAM,KAAK,CAAC;QAC3D,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM;YAAE,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;;YAClF,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;AACH,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { emitInvalidInput } from "../../errors.js";
|
|
|
4
4
|
import { emitStructured } from "../../structured.js";
|
|
5
5
|
import { StateRetrievalFailure } from "../../../state/directRetrieval.js";
|
|
6
6
|
import { normalizeArtifactProtocolId, VALIDATE_ARTIFACT_PROTOCOL_IDS, } from "../../../registries/artifactProtocolIds.js";
|
|
7
|
-
import { buildExplain, exampleFor, executeStateWrite, isWritableArtifact, loadStructuredInput, operationSpec, projectedFields, renderExplainText, StateWriteInputError, verbsForArtifact, WRITABLE_ARTIFACTS, } from "../../../state/write/index.js";
|
|
7
|
+
import { buildExplain, buildExplainAll, assertMutationGrammarParity, exampleFor, executeStateWrite, isWritableArtifact, loadStructuredInput, operationSpec, projectedFields, renderExplainText, StateWriteInputError, verbsForArtifact, WRITABLE_ARTIFACTS, } from "../../../state/write/index.js";
|
|
8
8
|
function formatFromArgv(argv) {
|
|
9
9
|
for (let i = 0; i < argv.length; i++) {
|
|
10
10
|
if (argv[i] === "--format" && argv[i + 1] === "json")
|
|
@@ -42,6 +42,17 @@ function setNested(target, field, value) {
|
|
|
42
42
|
}
|
|
43
43
|
cursor[parts.at(-1)] = value;
|
|
44
44
|
}
|
|
45
|
+
function hasNested(target, field) {
|
|
46
|
+
let value = target;
|
|
47
|
+
for (const part of field.split(".")) {
|
|
48
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
49
|
+
return false;
|
|
50
|
+
if (!(part in value))
|
|
51
|
+
return false;
|
|
52
|
+
value = value[part];
|
|
53
|
+
}
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
45
56
|
function readFlag(argv, index) {
|
|
46
57
|
const token = argv[index];
|
|
47
58
|
const equals = token.indexOf("=");
|
|
@@ -50,7 +61,16 @@ function readFlag(argv, index) {
|
|
|
50
61
|
return { name: token, value: argv[index + 1] ?? null, consumed: 2 };
|
|
51
62
|
}
|
|
52
63
|
function converted(field, raw) {
|
|
53
|
-
if (field.kind === "
|
|
64
|
+
if (field.kind === "boolean") {
|
|
65
|
+
if (raw !== "true" && raw !== "false")
|
|
66
|
+
invalid({
|
|
67
|
+
class: "invalid_choice",
|
|
68
|
+
message: `argument ${field.flag}: expected true or false, got '${raw}'`,
|
|
69
|
+
valid_values: ["true", "false"],
|
|
70
|
+
});
|
|
71
|
+
return raw === "true";
|
|
72
|
+
}
|
|
73
|
+
if (field.kind === "integer") {
|
|
54
74
|
const number = Number(raw);
|
|
55
75
|
if (!Number.isInteger(number))
|
|
56
76
|
invalid({
|
|
@@ -58,7 +78,7 @@ function converted(field, raw) {
|
|
|
58
78
|
message: `argument ${field.flag}: invalid int value: '${raw}'`,
|
|
59
79
|
syntax: `${field.flag} N`,
|
|
60
80
|
});
|
|
61
|
-
return
|
|
81
|
+
return number;
|
|
62
82
|
}
|
|
63
83
|
if (field.kind === "date" && !/^\d{4}-\d{2}-\d{2}$/.test(raw)) {
|
|
64
84
|
invalid({
|
|
@@ -100,7 +120,7 @@ function artifactOrReject(raw) {
|
|
|
100
120
|
class: "unsupported_target",
|
|
101
121
|
message: `artifact "${normalized}" is read-only through the state writer`,
|
|
102
122
|
valid_values: [...WRITABLE_ARTIFACTS],
|
|
103
|
-
example:
|
|
123
|
+
example: "agentera state progress append --input progress.yaml --format json",
|
|
104
124
|
});
|
|
105
125
|
}
|
|
106
126
|
return normalized;
|
|
@@ -138,14 +158,7 @@ function parseWrite(artifactRaw, argv) {
|
|
|
138
158
|
else if (token.startsWith("--project="))
|
|
139
159
|
initialProjectRoot = path.resolve(token.slice("--project=".length));
|
|
140
160
|
}
|
|
141
|
-
const
|
|
142
|
-
let fields = projectedFields(spec);
|
|
143
|
-
if (entityPlan) {
|
|
144
|
-
fields = fields.filter((field) => field.flag !== "--task").map((field) => field.flag === "--depends-on" ? { ...field, kind: "string_list" } : field);
|
|
145
|
-
if (["update", "set-status", "supersede", "record-evaluation"].includes(verb))
|
|
146
|
-
fields.unshift({ flag: "--id", field: "id", kind: "string", required: true });
|
|
147
|
-
fields.unshift({ flag: "--plan", field: "plan", kind: "string" });
|
|
148
|
-
}
|
|
161
|
+
const fields = projectedFields(spec);
|
|
149
162
|
const byFlag = new Map(fields.map((field) => [field.flag, field]));
|
|
150
163
|
const values = {};
|
|
151
164
|
const callerPayload = {};
|
|
@@ -192,10 +205,12 @@ function parseWrite(artifactRaw, argv) {
|
|
|
192
205
|
continue;
|
|
193
206
|
}
|
|
194
207
|
if (parsed.name === "--input") {
|
|
208
|
+
if (inputSource !== null)
|
|
209
|
+
invalid({ class: "mutually_exclusive", message: "--input may only be supplied once" });
|
|
195
210
|
inputSource = parsed.value;
|
|
196
211
|
continue;
|
|
197
212
|
}
|
|
198
|
-
if (
|
|
213
|
+
if (artifact === "decisions" && verb === "append" && parsed.name === "--number") {
|
|
199
214
|
invalid({
|
|
200
215
|
class: "unrecognized_argument",
|
|
201
216
|
message: "--number is assigned by the CLI on append and cannot be supplied",
|
|
@@ -204,10 +219,12 @@ function parseWrite(artifactRaw, argv) {
|
|
|
204
219
|
}
|
|
205
220
|
const field = byFlag.get(parsed.name);
|
|
206
221
|
if (!field) {
|
|
207
|
-
if (spec.inputRoot)
|
|
222
|
+
if (spec.inputRoot && inputSource)
|
|
208
223
|
invalid({
|
|
209
224
|
class: "mutually_exclusive",
|
|
210
225
|
message: `--input cannot be combined with ${parsed.name}`,
|
|
226
|
+
syntax: "--input PATH",
|
|
227
|
+
example: exampleFor(artifact, verb),
|
|
211
228
|
});
|
|
212
229
|
invalid({
|
|
213
230
|
class: "unrecognized_argument",
|
|
@@ -252,22 +269,13 @@ function parseWrite(artifactRaw, argv) {
|
|
|
252
269
|
syntax: "--input PATH",
|
|
253
270
|
example: exampleFor(artifact, verb),
|
|
254
271
|
});
|
|
255
|
-
|
|
272
|
+
const selectorFields = new Set(spec.fields.filter((field) => spec.selectors.includes(field.flag)).map((field) => field.field));
|
|
273
|
+
if (spec.inputRoot && Object.keys(values).some((field) => !selectorFields.has(field)))
|
|
256
274
|
invalid({
|
|
257
275
|
class: "mutually_exclusive",
|
|
258
276
|
message: `--input cannot be combined with field flags for ${artifact} ${verb}`,
|
|
259
277
|
});
|
|
260
|
-
|
|
261
|
-
invalid({
|
|
262
|
-
class: "unsupported_target",
|
|
263
|
-
message: "canonical health audit entities are immutable and cannot be row-deduplicated",
|
|
264
|
-
syntax: "agentera check validate state",
|
|
265
|
-
example: "agentera check validate state --format json",
|
|
266
|
-
recovery: "Validate malformed envelopes, duplicate IDs, or conflicting ownership and repair the canonical entity files without inventing audit history.",
|
|
267
|
-
});
|
|
268
|
-
}
|
|
269
|
-
const entityExperiments = artifact === "experiments";
|
|
270
|
-
for (const field of fields.filter((candidate) => candidate.required && !(entityExperiments && candidate.field === "number"))) {
|
|
278
|
+
for (const field of fields.filter((candidate) => candidate.required)) {
|
|
271
279
|
if (mappingPath(values, field.field) === undefined) {
|
|
272
280
|
invalid({
|
|
273
281
|
class: "missing_argument",
|
|
@@ -291,9 +299,6 @@ function parseWrite(artifactRaw, argv) {
|
|
|
291
299
|
if (artifact === "plan" && verb !== "create") {
|
|
292
300
|
const taskVerb = ["update", "set-status", "supersede", "record-evaluation"].includes(verb);
|
|
293
301
|
const id = mappingPath(values, "id");
|
|
294
|
-
const task = mappingPath(values, "task");
|
|
295
|
-
if (task !== undefined)
|
|
296
|
-
invalid({ class: "unrecognized_argument", message: "numeric task selectors are unavailable in entity mode; use --id ID" });
|
|
297
302
|
if (taskVerb && id === undefined)
|
|
298
303
|
invalid({ class: "missing_argument", message: `--id is required for plan ${verb} in entity mode` });
|
|
299
304
|
if (force)
|
|
@@ -301,19 +306,6 @@ function parseWrite(artifactRaw, argv) {
|
|
|
301
306
|
}
|
|
302
307
|
if (artifact === "plan" && verb === "create" && force)
|
|
303
308
|
invalid({ class: "unrecognized_argument", message: "--force is unavailable for entity plan create because multiple open plans coexist" });
|
|
304
|
-
if (artifact === "experiments" && verb === "publish") {
|
|
305
|
-
const number = mappingPath(values, "number");
|
|
306
|
-
if (number !== undefined)
|
|
307
|
-
invalid({ class: "unrecognized_argument", message: "numeric experiment selectors are unavailable in entity mode; omit --number" });
|
|
308
|
-
}
|
|
309
|
-
if (verb === "update" &&
|
|
310
|
-
artifact === "plan" &&
|
|
311
|
-
Object.keys(values).every((key) => key === "task")) {
|
|
312
|
-
invalid({
|
|
313
|
-
class: "missing_argument",
|
|
314
|
-
message: "plan update requires at least one task field or --surprise",
|
|
315
|
-
});
|
|
316
|
-
}
|
|
317
309
|
return { artifact, spec, format, projectRoot, dryRun, force, values, callerPayload, inputSource };
|
|
318
310
|
}
|
|
319
311
|
function mappingPath(entry, field) {
|
|
@@ -329,7 +321,13 @@ function explainArgs(argv) {
|
|
|
329
321
|
let format = "text";
|
|
330
322
|
let project = process.cwd();
|
|
331
323
|
let verb = null;
|
|
324
|
+
let all = false;
|
|
332
325
|
for (let i = 1; i < argv.length;) {
|
|
326
|
+
if (argv[i] === "--all") {
|
|
327
|
+
all = true;
|
|
328
|
+
i += 1;
|
|
329
|
+
continue;
|
|
330
|
+
}
|
|
333
331
|
const parsed = readFlag(argv, i);
|
|
334
332
|
if (parsed.value === null || parsed.value.startsWith("--"))
|
|
335
333
|
invalid({ class: "missing_argument", message: `${parsed.name} requires a value` });
|
|
@@ -353,7 +351,9 @@ function explainArgs(argv) {
|
|
|
353
351
|
message: `unrecognized arguments: ${parsed.name}`,
|
|
354
352
|
});
|
|
355
353
|
}
|
|
356
|
-
|
|
354
|
+
if (all && verb)
|
|
355
|
+
invalid({ class: "mutually_exclusive", message: "--all cannot be combined with --verb" });
|
|
356
|
+
return { format, project, verb, all };
|
|
357
357
|
}
|
|
358
358
|
export function runStateWrite(artifactRaw, argv, io) {
|
|
359
359
|
const out = io.out ?? ((text) => process.stdout.write(text));
|
|
@@ -361,9 +361,12 @@ export function runStateWrite(artifactRaw, argv, io) {
|
|
|
361
361
|
const detectedFormat = formatFromArgv(argv);
|
|
362
362
|
try {
|
|
363
363
|
const artifact = artifactOrReject(artifactRaw);
|
|
364
|
+
assertMutationGrammarParity();
|
|
364
365
|
if (argv[0] === "explain") {
|
|
365
366
|
const args = explainArgs(argv);
|
|
366
|
-
const explanation =
|
|
367
|
+
const explanation = args.all
|
|
368
|
+
? buildExplainAll(artifact, args.project)
|
|
369
|
+
: buildExplain(artifact, args.project, args.verb);
|
|
367
370
|
if (args.format === "json")
|
|
368
371
|
out(JSON.stringify(explanation, null, 2) + "\n");
|
|
369
372
|
else
|
|
@@ -374,19 +377,20 @@ export function runStateWrite(artifactRaw, argv, io) {
|
|
|
374
377
|
let input = null;
|
|
375
378
|
if (parsed.inputSource) {
|
|
376
379
|
try {
|
|
377
|
-
input = loadStructuredInput(parsed.inputSource, io.stdin ?? (() => fsStdin()));
|
|
380
|
+
input = loadStructuredInput(parsed.inputSource, io.stdin ?? (() => fsStdin()), parsed.spec.inputMaxBytes);
|
|
378
381
|
}
|
|
379
382
|
catch (error) {
|
|
380
383
|
const message = error.message;
|
|
381
384
|
invalid({
|
|
382
|
-
class: message.startsWith("input file") ? "unsupported_target" : "invalid_format",
|
|
385
|
+
class: message.startsWith("input file") ? "unsupported_target" : message.includes("UTF-8 limit") ? "schema_violation" : "invalid_format",
|
|
383
386
|
message,
|
|
384
387
|
syntax: "--input PATH",
|
|
385
388
|
example: exampleFor(parsed.artifact, parsed.spec.verb),
|
|
389
|
+
...(message.includes("UTF-8 limit") ? { violations: [message] } : {}),
|
|
386
390
|
});
|
|
387
391
|
}
|
|
388
392
|
for (const owned of parsed.spec.cliOwnedFields ?? []) {
|
|
389
|
-
if (owned
|
|
393
|
+
if (hasNested(input, owned))
|
|
390
394
|
invalid({
|
|
391
395
|
class: "schema_violation",
|
|
392
396
|
message: `${parsed.artifact} ${parsed.spec.verb} assigns ${owned}; remove '${owned}' from the input document`,
|
|
@@ -416,6 +420,6 @@ export function runStateWrite(artifactRaw, argv, io) {
|
|
|
416
420
|
}
|
|
417
421
|
}
|
|
418
422
|
function fsStdin() {
|
|
419
|
-
return process.stdin.isTTY ?
|
|
423
|
+
return process.stdin.isTTY ? Buffer.alloc(0) : fs.readFileSync(0);
|
|
420
424
|
}
|
|
421
425
|
//# sourceMappingURL=write.js.map
|