agentera 3.0.0-dev.23 → 3.0.0-dev.26
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 +18 -22
- package/bundle/CHANGELOG.md +25 -27
- package/bundle/README.md +22 -42
- package/bundle/UPGRADE.md +71 -179
- package/bundle/references/adapters/package-manifest-interface-model.yaml +41 -240
- package/bundle/references/adapters/package-registry.yaml +9 -145
- package/bundle/references/adapters/package-surface-characterization.md +13 -38
- 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/artifacts/state-storage-authority.yaml +729 -412
- package/bundle/references/cli/agent-ready-state-contract.yaml +12 -12
- 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 +28 -98
- package/bundle/references/cli/routing-execution-vocabulary.yaml +4 -22
- package/bundle/references/cli/update-channels.yaml +4 -2
- 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 +22 -27
- package/bundle/references/meta/documentation-inventory.md +1 -1
- package/bundle/skills/agentera/SKILL.md +28 -14
- package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +12 -12
- package/bundle/skills/agentera/capabilities/audit/schemas/validation.yaml +2 -2
- package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +12 -12
- package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +8 -8
- package/bundle/skills/agentera/capabilities/design/schemas/artifacts.yaml +6 -6
- package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +7 -7
- package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +12 -12
- package/bundle/skills/agentera/capabilities/optimize/schemas/artifacts.yaml +9 -9
- package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +11 -11
- package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +9 -9
- package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +2 -2
- package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +3 -3
- package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +11 -11
- package/bundle/skills/agentera/capabilities/vision/schemas/artifacts.yaml +8 -8
- package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +15 -2
- package/bundle/skills/agentera/schemas/artifacts/docs.yaml +7 -12
- package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +21 -21
- package/bundle/skills/agentera/schemas/artifacts/health.yaml +15 -2
- package/bundle/skills/agentera/schemas/artifacts/plan.yaml +36 -15
- package/bundle/skills/agentera/schemas/artifacts/progress.yaml +15 -2
- package/bundle/skills/agentera/schemas/artifacts/todo.yaml +4 -4
- package/dist/capabilities/audit/instructions.js +13 -1
- package/dist/capabilities/audit/instructions.js.map +1 -1
- package/dist/capabilities/build/instructions.js +14 -1
- package/dist/capabilities/build/instructions.js.map +1 -1
- package/dist/capabilities/discuss/instructions.js +11 -1
- package/dist/capabilities/discuss/instructions.js.map +1 -1
- package/dist/capabilities/document/instructions.js +9 -1
- package/dist/capabilities/document/instructions.js.map +1 -1
- package/dist/capabilities/index.js +7 -7
- package/dist/capabilities/index.js.map +1 -1
- package/dist/capabilities/optimize/instructions.js +10 -1
- package/dist/capabilities/optimize/instructions.js.map +1 -1
- package/dist/capabilities/orchestrate/instructions.js +13 -2
- package/dist/capabilities/orchestrate/instructions.js.map +1 -1
- package/dist/capabilities/plan/instructions.js +10 -1
- package/dist/capabilities/plan/instructions.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/closeout.js +3 -3
- package/dist/cli/capabilityContext/closeout.js.map +1 -1
- package/dist/cli/capabilityContext/contract.js +10 -15
- package/dist/cli/capabilityContext/contract.js.map +1 -1
- package/dist/cli/capabilityContext/evidence.js +55 -43
- package/dist/cli/capabilityContext/evidence.js.map +1 -1
- package/dist/cli/capabilityContext/planState.js +5 -5
- package/dist/cli/capabilityContext/planState.js.map +1 -1
- package/dist/cli/capabilityContext/progress.js +1 -1
- package/dist/cli/capabilityContext/progress.js.map +1 -1
- package/dist/cli/capabilityContext/shared.js +8 -2
- package/dist/cli/capabilityContext/shared.js.map +1 -1
- package/dist/cli/capabilityContext/slim.js +2 -1
- package/dist/cli/capabilityContext/slim.js.map +1 -1
- package/dist/cli/capabilityContext/startup.js +19 -8
- package/dist/cli/capabilityContext/startup.js.map +1 -1
- package/dist/cli/capabilityContext/types.js +4 -4
- package/dist/cli/capabilityContext/types.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 +27 -30
- package/dist/cli/commands/durability.js.map +1 -1
- package/dist/cli/commands/entityMigrate.js +128 -0
- package/dist/cli/commands/entityMigrate.js.map +1 -0
- package/dist/cli/commands/prime/briefOrientation.js +7 -22
- 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 +161 -0
- package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -0
- package/dist/cli/commands/prime/collectOrientationState.js +32 -59
- package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
- package/dist/cli/commands/prime/orientationOutput.js +4 -12
- package/dist/cli/commands/prime/orientationOutput.js.map +1 -1
- package/dist/cli/commands/prime.js +2 -5
- package/dist/cli/commands/prime.js.map +1 -1
- package/dist/cli/commands/query.js +43 -49
- package/dist/cli/commands/query.js.map +1 -1
- package/dist/cli/commands/schema.js +26 -83
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/state/decisions.js +14 -47
- package/dist/cli/commands/state/decisions.js.map +1 -1
- package/dist/cli/commands/state/docs.js +58 -84
- package/dist/cli/commands/state/docs.js.map +1 -1
- package/dist/cli/commands/state/experimentRecords.js +27 -44
- package/dist/cli/commands/state/experimentRecords.js.map +1 -1
- package/dist/cli/commands/state/experiments.js +11 -64
- package/dist/cli/commands/state/experiments.js.map +1 -1
- package/dist/cli/commands/state/get.js +74 -88
- package/dist/cli/commands/state/get.js.map +1 -1
- package/dist/cli/commands/state/health.js +11 -112
- package/dist/cli/commands/state/health.js.map +1 -1
- package/dist/cli/commands/state/index.js +11 -2
- package/dist/cli/commands/state/index.js.map +1 -1
- package/dist/cli/commands/state/list.js +30 -13
- package/dist/cli/commands/state/list.js.map +1 -1
- package/dist/cli/commands/state/objective.js +21 -64
- package/dist/cli/commands/state/objective.js.map +1 -1
- package/dist/cli/commands/state/plan.js +11 -376
- package/dist/cli/commands/state/plan.js.map +1 -1
- package/dist/cli/commands/state/planTasks.js +58 -80
- package/dist/cli/commands/state/planTasks.js.map +1 -1
- package/dist/cli/commands/state/plans.js +27 -38
- package/dist/cli/commands/state/plans.js.map +1 -1
- package/dist/cli/commands/state/progress.js +11 -44
- 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 +27 -106
- package/dist/cli/commands/state/todo.js.map +1 -1
- package/dist/cli/commands/state/write.js +57 -4
- package/dist/cli/commands/state/write.js.map +1 -1
- package/dist/cli/commands/upgrade.js +99 -35
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/commands/upgradeVerify.js +52 -14
- package/dist/cli/commands/upgradeVerify.js.map +1 -1
- package/dist/cli/commands/validate.js +66 -9
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/dispatch/check.js +13 -13
- package/dist/cli/dispatch/check.js.map +1 -1
- package/dist/cli/dispatch/index.js +35 -28
- package/dist/cli/dispatch/index.js.map +1 -1
- package/dist/cli/dispatch/lifecycle.js +23 -43
- package/dist/cli/dispatch/lifecycle.js.map +1 -1
- package/dist/cli/dispatch/prime.js +15 -0
- package/dist/cli/dispatch/prime.js.map +1 -1
- package/dist/cli/dispatch/state.js +7 -1
- package/dist/cli/dispatch/state.js.map +1 -1
- package/dist/cli/help.js +90 -112
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/migrationRequired.js +87 -0
- package/dist/cli/migrationRequired.js.map +1 -0
- package/dist/cli/orientation/attention.js +3 -99
- package/dist/cli/orientation/attention.js.map +1 -1
- package/dist/cli/orientation.js +10 -7
- package/dist/cli/orientation.js.map +1 -1
- package/dist/cli/planArtifacts.js +192 -42
- package/dist/cli/planArtifacts.js.map +1 -1
- package/dist/cli/prime-blob.js +5 -5
- package/dist/cli/prime-blob.js.map +1 -1
- package/dist/cli/stateQuery.js +6 -7
- package/dist/cli/stateQuery.js.map +1 -1
- package/dist/core/skillIdentity.js +24 -0
- package/dist/core/skillIdentity.js.map +1 -0
- package/dist/hooks/common.js +1 -1
- package/dist/hooks/common.js.map +1 -1
- package/dist/hooks/compaction/status.js +27 -2
- package/dist/hooks/compaction/status.js.map +1 -1
- package/dist/hooks/cursorSessionStart.js +4 -19
- 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 +58 -212
- 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/traversal.js +1 -1
- package/dist/hooks/validateArtifact/traversal.js.map +1 -1
- package/dist/registries/artifactRegistry.js +24 -14
- package/dist/registries/artifactRegistry.js.map +1 -1
- package/dist/registries/packageRegistry.js +58 -232
- package/dist/registries/packageRegistry.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/lifecyclePublication.js +21 -0
- package/dist/runtime/lifecyclePublication.js.map +1 -1
- package/dist/setup/opencode.js +20 -12
- package/dist/setup/opencode.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/archivePublication.js +3 -2
- package/dist/state/archivePublication.js.map +1 -1
- package/dist/state/decisionEntities.js +282 -0
- package/dist/state/decisionEntities.js.map +1 -0
- package/dist/state/decisionOverlay.js +2 -2
- package/dist/state/decisionOverlay.js.map +1 -1
- package/dist/state/decisionRevision.js +44 -34
- package/dist/state/decisionRevision.js.map +1 -1
- package/dist/state/directRetrieval.js.map +1 -1
- package/dist/state/durability.js +81 -226
- package/dist/state/durability.js.map +1 -1
- package/dist/state/entityCutover.js +294 -0
- package/dist/state/entityCutover.js.map +1 -0
- package/dist/state/entityCutoverGit.js +128 -0
- package/dist/state/entityCutoverGit.js.map +1 -0
- package/dist/state/entityMigrationPreview.js +803 -0
- package/dist/state/entityMigrationPreview.js.map +1 -0
- package/dist/state/entityPublicationContext.js +612 -0
- package/dist/state/entityPublicationContext.js.map +1 -0
- package/dist/state/entityStorage.js +826 -0
- package/dist/state/entityStorage.js.map +1 -0
- package/dist/state/experimentIdentity.js +23 -11
- package/dist/state/experimentIdentity.js.map +1 -1
- package/dist/state/healthEntities.js +230 -0
- package/dist/state/healthEntities.js.map +1 -0
- package/dist/state/healthEntityValidation.js +6 -0
- package/dist/state/healthEntityValidation.js.map +1 -0
- package/dist/state/legacyEntityCutoverEvidence.js +66 -0
- package/dist/state/legacyEntityCutoverEvidence.js.map +1 -0
- package/dist/state/listRetrieval.js.map +1 -1
- package/dist/state/objectiveExperimentEntities.js +323 -0
- package/dist/state/objectiveExperimentEntities.js.map +1 -0
- package/dist/state/planEntities.js +362 -0
- package/dist/state/planEntities.js.map +1 -0
- package/dist/state/progressEntities.js +384 -0
- package/dist/state/progressEntities.js.map +1 -0
- package/dist/state/projectRoot.js +63 -0
- package/dist/state/projectRoot.js.map +1 -0
- package/dist/state/retrievalAuthority.js +13 -6
- package/dist/state/retrievalAuthority.js.map +1 -1
- package/dist/state/safeProjectFile.js +153 -0
- package/dist/state/safeProjectFile.js.map +1 -0
- package/dist/state/startupProjection.js +3 -2
- package/dist/state/startupProjection.js.map +1 -1
- package/dist/state/stateMode.js +83 -0
- package/dist/state/stateMode.js.map +1 -0
- package/dist/state/todoDocsEntities.js +225 -0
- package/dist/state/todoDocsEntities.js.map +1 -0
- package/dist/state/todoDocsEntityValidation.js +26 -0
- package/dist/state/todoDocsEntityValidation.js.map +1 -0
- package/dist/state/write/candidateMutation.js +5 -55
- package/dist/state/write/candidateMutation.js.map +1 -1
- package/dist/state/write/explain.js +119 -28
- package/dist/state/write/explain.js.map +1 -1
- package/dist/state/write/lock.js +794 -87
- package/dist/state/write/lock.js.map +1 -1
- package/dist/state/write/mutation.js +5 -2
- package/dist/state/write/mutation.js.map +1 -1
- package/dist/state/write/operations.js +52 -7
- package/dist/state/write/operations.js.map +1 -1
- package/dist/state/write/planEvaluation.js +107 -0
- package/dist/state/write/planEvaluation.js.map +1 -0
- package/dist/state/write/planPublication.js +11 -55
- package/dist/state/write/planPublication.js.map +1 -1
- package/dist/state/write/transaction.js +32 -455
- package/dist/state/write/transaction.js.map +1 -1
- package/dist/upgrade/appContentRefresh.js +43 -28
- package/dist/upgrade/appContentRefresh.js.map +1 -1
- package/dist/upgrade/compatibility.js +4 -4
- 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/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 +164 -66
- 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/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 +181 -145
- package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
- package/dist/upgrade/v3CapabilitySurface.js +2 -2
- package/dist/validate/appHomeContract.js +0 -4
- package/dist/validate/appHomeContract.js.map +1 -1
- package/dist/validate/crossCapability.js +2 -2
- package/dist/validate/crossCapability.js.map +1 -1
- package/package.json +8 -6
- 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 -194
- package/dist/cli/commands/backfill.js.map +0 -1
- package/dist/cli/commands/migrate.js +0 -677
- 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/upgrade/migrateArtifactsV1ToV2.js +0 -568
- package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
- package/dist/upgrade/upgradeSnapshot.js +0 -93
- package/dist/upgrade/upgradeSnapshot.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,8 +1,13 @@
|
|
|
1
1
|
import YAML from "yaml";
|
|
2
|
-
import { emitStructured } from "../../structured.js";
|
|
3
2
|
import { resolveSourceRoot } from "../../../core/sourceRoot.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { StateRetrievalFailure } from "../../../state/directRetrieval.js";
|
|
4
|
+
import { getDecisionEntity } from "../../../state/decisionEntities.js";
|
|
5
|
+
import { getHealthEntity } from "../../../state/healthEntities.js";
|
|
6
|
+
import { getObjectiveEntity } from "../../../state/objectiveExperimentEntities.js";
|
|
7
|
+
import { getProgressEntity } from "../../../state/progressEntities.js";
|
|
8
|
+
import { getTodoDocsEntity } from "../../../state/todoDocsEntities.js";
|
|
9
|
+
import { emitStructured } from "../../structured.js";
|
|
10
|
+
const ENTITY_GET_ARTIFACTS = ["progress", "decisions", "health", "objective", "todo", "docs"];
|
|
6
11
|
function requestedFormat(argv) {
|
|
7
12
|
for (let index = 0; index < argv.length; index += 1) {
|
|
8
13
|
const token = argv[index];
|
|
@@ -19,21 +24,18 @@ function requestedFormat(argv) {
|
|
|
19
24
|
}
|
|
20
25
|
return "text";
|
|
21
26
|
}
|
|
22
|
-
function
|
|
23
|
-
const syntax = `agentera state ${artifactId ?? "<artifact-id>"} get --number N --format json`;
|
|
24
|
-
const example = `agentera state ${artifactId ?? "progress"} get --number ${entryNumber ?? 1} --format json`;
|
|
27
|
+
function failure(message, id, artifact = "progress") {
|
|
25
28
|
return new StateRetrievalFailure({
|
|
26
29
|
schemaVersion: "agentera.stateFailure.v1",
|
|
27
30
|
status: "fail",
|
|
28
31
|
error: {
|
|
29
|
-
class:
|
|
32
|
+
class: "invalid_request",
|
|
30
33
|
message,
|
|
31
|
-
syntax
|
|
32
|
-
example
|
|
33
|
-
recovery:
|
|
34
|
-
|
|
35
|
-
...(
|
|
36
|
-
...(validValues ? { valid_values: validValues } : {}),
|
|
34
|
+
syntax: `agentera state ${artifact} get --id ID --format json`,
|
|
35
|
+
example: `agentera state ${artifact} get --id ${id ?? "qjtrmnpvka"} --format json`,
|
|
36
|
+
recovery: `Use a bare ten-letter ${artifact} ID returned by append or list; no state was changed.`,
|
|
37
|
+
artifact,
|
|
38
|
+
...(id ? { id } : {}),
|
|
37
39
|
},
|
|
38
40
|
}, 2);
|
|
39
41
|
}
|
|
@@ -46,96 +48,80 @@ function readValue(argv, index, name) {
|
|
|
46
48
|
throw new Error(`${name} requires a value`);
|
|
47
49
|
return { value, next: index + 2 };
|
|
48
50
|
}
|
|
49
|
-
function
|
|
50
|
-
const validValues = numberedArchiveArtifacts(sourceRoot);
|
|
51
|
-
if (!validValues.includes(artifactId)) {
|
|
52
|
-
throw parseFailure("unsupported_artifact", `unsupported state artifact '${artifactId}'`, artifactId, undefined, validValues);
|
|
53
|
-
}
|
|
54
|
-
let number;
|
|
55
|
-
let format = "text";
|
|
56
|
-
for (let index = 0; index < argv.length;) {
|
|
57
|
-
const token = argv[index];
|
|
58
|
-
if (token !== "--number" && !token.startsWith("--number=") && token !== "--format" && !token.startsWith("--format=")) {
|
|
59
|
-
throw parseFailure("invalid_request", `unrecognized argument '${token}'`, artifactId, number);
|
|
60
|
-
}
|
|
61
|
-
const name = token.startsWith("--number") ? "--number" : "--format";
|
|
62
|
-
let parsed;
|
|
63
|
-
try {
|
|
64
|
-
parsed = readValue(argv, index, name);
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
throw parseFailure("invalid_request", error.message, artifactId, number);
|
|
68
|
-
}
|
|
69
|
-
index = parsed.next;
|
|
70
|
-
if (name === "--number") {
|
|
71
|
-
if (number !== undefined)
|
|
72
|
-
throw parseFailure("invalid_request", "--number may only be supplied once", artifactId, number);
|
|
73
|
-
if (!/^[1-9][0-9]*$/.test(parsed.value)) {
|
|
74
|
-
throw parseFailure("invalid_request", `argument --number: expected a positive canonical integer, got '${parsed.value}'`, artifactId);
|
|
75
|
-
}
|
|
76
|
-
const parsedNumber = Number(parsed.value);
|
|
77
|
-
if (!Number.isSafeInteger(parsedNumber) || parsedNumber < 1) {
|
|
78
|
-
throw parseFailure("invalid_request", `argument --number is outside the supported safe integer range: '${parsed.value}'`, artifactId);
|
|
79
|
-
}
|
|
80
|
-
number = parsedNumber;
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
if (parsed.value !== "text" && parsed.value !== "json" && parsed.value !== "yaml") {
|
|
84
|
-
throw parseFailure("invalid_request", `argument --format: invalid choice: '${parsed.value}'`, artifactId, number, ["text", "json", "yaml"]);
|
|
85
|
-
}
|
|
86
|
-
format = parsed.value;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
if (number === undefined)
|
|
90
|
-
throw parseFailure("invalid_request", "the required selector --number N is missing", artifactId);
|
|
91
|
-
return { number, format };
|
|
92
|
-
}
|
|
93
|
-
function emitFailure(failure, format, io) {
|
|
94
|
-
const out = io.out ?? ((text) => process.stdout.write(text));
|
|
95
|
-
const err = io.err ?? ((text) => process.stderr.write(text));
|
|
51
|
+
function emitFailure(error, format, io) {
|
|
96
52
|
if (format === "json" || format === "yaml") {
|
|
97
|
-
emitStructured(
|
|
53
|
+
emitStructured(error.body, format, io.out ?? ((text) => process.stdout.write(text)));
|
|
98
54
|
}
|
|
99
55
|
else {
|
|
100
|
-
const
|
|
101
|
-
err([
|
|
102
|
-
`Error: ${
|
|
103
|
-
`Syntax: ${
|
|
104
|
-
`Example: ${
|
|
105
|
-
`Recovery: ${
|
|
56
|
+
const detail = error.body.error;
|
|
57
|
+
(io.err ?? ((text) => process.stderr.write(text)))([
|
|
58
|
+
`Error: ${detail.message}`,
|
|
59
|
+
`Syntax: ${detail.syntax}`,
|
|
60
|
+
`Example: ${detail.example}`,
|
|
61
|
+
`Recovery: ${detail.recovery}`,
|
|
106
62
|
].join("\n") + "\n");
|
|
107
63
|
}
|
|
108
|
-
return
|
|
64
|
+
return error.exitCode;
|
|
109
65
|
}
|
|
110
|
-
export function runStateGet(artifactId, argv, io) {
|
|
66
|
+
export function runStateGet(artifactId, argv, io, projectRoot = process.cwd()) {
|
|
111
67
|
const format = requestedFormat(argv);
|
|
112
68
|
const sourceRoot = resolveSourceRoot();
|
|
113
69
|
try {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
70
|
+
if (!ENTITY_GET_ARTIFACTS.includes(artifactId))
|
|
71
|
+
throw failure(`unsupported state artifact '${artifactId}'`, undefined, artifactId);
|
|
72
|
+
let id;
|
|
73
|
+
let entityFormat = "text";
|
|
74
|
+
let formatSupplied = false;
|
|
75
|
+
for (let index = 0; index < argv.length;) {
|
|
76
|
+
const token = argv[index];
|
|
77
|
+
if (token !== "--id" && !token.startsWith("--id=") && token !== "--format" && !token.startsWith("--format=")) {
|
|
78
|
+
throw failure(`unrecognized argument '${token}'; entity-mode ${artifactId} retrieval requires --id ID`, id, artifactId);
|
|
79
|
+
}
|
|
80
|
+
const name = token.startsWith("--id") ? "--id" : "--format";
|
|
81
|
+
let parsed;
|
|
82
|
+
try {
|
|
83
|
+
parsed = readValue(argv, index, name);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
throw failure(error.message, id, artifactId);
|
|
87
|
+
}
|
|
88
|
+
index = parsed.next;
|
|
89
|
+
if (name === "--id") {
|
|
90
|
+
if (id !== undefined)
|
|
91
|
+
throw failure("--id may only be supplied once", id, artifactId);
|
|
92
|
+
id = parsed.value;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
if (formatSupplied)
|
|
96
|
+
throw failure("--format may only be supplied once", id, artifactId);
|
|
97
|
+
formatSupplied = true;
|
|
98
|
+
if (parsed.value !== "text" && parsed.value !== "json" && parsed.value !== "yaml")
|
|
99
|
+
throw failure(`invalid --format '${parsed.value}'`, id, artifactId);
|
|
100
|
+
entityFormat = parsed.value;
|
|
101
|
+
}
|
|
122
102
|
}
|
|
103
|
+
if (!id)
|
|
104
|
+
throw failure(`--id is required for entity-mode ${artifactId} retrieval`, id, artifactId);
|
|
105
|
+
const response = artifactId === "progress"
|
|
106
|
+
? getProgressEntity(projectRoot, id, sourceRoot)
|
|
107
|
+
: artifactId === "decisions"
|
|
108
|
+
? getDecisionEntity(projectRoot, id, sourceRoot)
|
|
109
|
+
: artifactId === "health"
|
|
110
|
+
? getHealthEntity(projectRoot, id, sourceRoot)
|
|
111
|
+
: artifactId === "objective"
|
|
112
|
+
? getObjectiveEntity(projectRoot, id, sourceRoot)
|
|
113
|
+
: getTodoDocsEntity(projectRoot, artifactId, id, sourceRoot);
|
|
114
|
+
const output = io.out ?? ((text) => process.stdout.write(text));
|
|
115
|
+
if (entityFormat === "json" || entityFormat === "yaml")
|
|
116
|
+
emitStructured(response, entityFormat, output);
|
|
117
|
+
else
|
|
118
|
+
output(YAML.stringify(response));
|
|
123
119
|
return 0;
|
|
124
120
|
}
|
|
125
121
|
catch (error) {
|
|
126
122
|
if (error instanceof StateRetrievalFailure)
|
|
127
123
|
return emitFailure(error, format, io);
|
|
128
|
-
return emitFailure(
|
|
129
|
-
schemaVersion: "agentera.stateFailure.v1",
|
|
130
|
-
status: "fail",
|
|
131
|
-
error: {
|
|
132
|
-
class: "unsupported_state",
|
|
133
|
-
message: error.message,
|
|
134
|
-
syntax: `agentera state ${artifactId} get --number N --format json`,
|
|
135
|
-
example: `agentera state ${artifactId} get --number 1 --format json`,
|
|
136
|
-
recovery: "Use a state format supported by the storage authority, then retry.",
|
|
137
|
-
},
|
|
138
|
-
}, 1), format, io);
|
|
124
|
+
return emitFailure(failure(error.message, undefined, artifactId), format, io);
|
|
139
125
|
}
|
|
140
126
|
}
|
|
141
127
|
//# sourceMappingURL=get.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/cli/commands/state/get.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/cli/commands/state/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,116 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*/
|
|
7
|
-
import { asList, emitStateStructured, extractEntries, loadArtifact, missingSchemaError, sourceMetadata, structuredState, } from "../../stateQuery.js";
|
|
8
|
-
import { artifactPath } from "../../appContext.js";
|
|
9
|
-
import { out, err } from "./shared.js";
|
|
10
|
-
export function healthAuditNumber(entry) {
|
|
11
|
-
const number = entry.number;
|
|
12
|
-
if (typeof number === "number" && Number.isInteger(number))
|
|
13
|
-
return number;
|
|
14
|
-
if (typeof number === "string" && /^\d+$/.test(number))
|
|
15
|
-
return parseInt(number, 10);
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
export function latestHealthAudit(entries) {
|
|
19
|
-
if (entries.length === 0)
|
|
20
|
-
return null;
|
|
21
|
-
let best = null;
|
|
22
|
-
let bestNumber = -1;
|
|
23
|
-
for (const entry of entries) {
|
|
24
|
-
const number = healthAuditNumber(entry);
|
|
25
|
-
if (number === null)
|
|
26
|
-
continue;
|
|
27
|
-
if (number > bestNumber) {
|
|
28
|
-
bestNumber = number;
|
|
29
|
-
best = entry;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return best !== null ? best : entries[entries.length - 1];
|
|
33
|
-
}
|
|
34
|
-
export function queryHealth(args, schemas, io) {
|
|
35
|
-
const o = out(io);
|
|
36
|
-
const e = err(io);
|
|
37
|
-
const info = schemas.health;
|
|
38
|
-
if (!info) {
|
|
39
|
-
e(missingSchemaError("health") + "\n");
|
|
40
|
-
return 1;
|
|
41
|
-
}
|
|
42
|
-
const p = artifactPath(info, "health");
|
|
43
|
-
const data = loadArtifact(p);
|
|
44
|
-
const entries = extractEntries(data);
|
|
45
|
-
const dimension = args.dimension ?? null;
|
|
46
|
-
let latest = latestHealthAudit(entries);
|
|
47
|
-
let latestEntries = latest ? [latest] : [];
|
|
48
|
-
if (dimension && latestEntries.length > 0) {
|
|
49
|
-
latest = latestEntries[0];
|
|
50
|
-
const dimLower = dimension.toLowerCase();
|
|
51
|
-
let matched = false;
|
|
52
|
-
const grades = latest.grades;
|
|
53
|
-
if (grades && typeof grades === "object" && !Array.isArray(grades)) {
|
|
54
|
-
matched = Object.keys(grades).some((gk) => String(gk).toLowerCase().includes(dimLower));
|
|
55
|
-
}
|
|
56
|
-
const details = latest.dimensions_detail;
|
|
57
|
-
if (Array.isArray(details)) {
|
|
58
|
-
matched =
|
|
59
|
-
matched ||
|
|
60
|
-
details.some((d) => d && typeof d === "object" && !Array.isArray(d) && String(d.name ?? "").toLowerCase().includes(dimLower));
|
|
61
|
-
}
|
|
62
|
-
if (!matched)
|
|
63
|
-
latestEntries = [];
|
|
64
|
-
}
|
|
1
|
+
import { emitStructured } from "../../structured.js";
|
|
2
|
+
import { listHealthEntities } from "../../../state/healthEntities.js";
|
|
3
|
+
import YAML from "yaml";
|
|
4
|
+
import { out } from "./shared.js";
|
|
5
|
+
export function queryHealth(args, _schemas, io) {
|
|
65
6
|
const format = args.format ?? "text";
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
if (entries.length === 0)
|
|
73
|
-
return 0;
|
|
74
|
-
latest = latestHealthAudit(entries);
|
|
75
|
-
if (!latest)
|
|
76
|
-
return 0;
|
|
77
|
-
if (dimension) {
|
|
78
|
-
const dimLower = dimension.toLowerCase();
|
|
79
|
-
// cast: latest.grades is read from a parsed health.yaml audit entry (IO boundary)
|
|
80
|
-
const grades = (latest.grades ?? {});
|
|
81
|
-
let matched = false;
|
|
82
|
-
for (const [gk, gv] of Object.entries(grades)) {
|
|
83
|
-
if (String(gk).toLowerCase().includes(dimLower)) {
|
|
84
|
-
o(`${gk}: ${gv}\n`);
|
|
85
|
-
matched = true;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
const details = asList(latest.dimensions_detail);
|
|
89
|
-
for (const d of details) {
|
|
90
|
-
const dn = String(d.name ?? "");
|
|
91
|
-
if (dn.toLowerCase().includes(dimLower)) {
|
|
92
|
-
const summary = d.summary ?? "";
|
|
93
|
-
if (summary)
|
|
94
|
-
o(` ${summary}\n`);
|
|
95
|
-
for (const f of asList(d.findings)) {
|
|
96
|
-
o(` [${f.severity ?? ""}] ${f.heading ?? ""}\n`);
|
|
97
|
-
}
|
|
98
|
-
matched = true;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
if (!matched)
|
|
102
|
-
return 0;
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
const num = latest.number ?? "?";
|
|
106
|
-
const traj = latest.trajectory ?? "";
|
|
107
|
-
o(`Audit ${num}: ${traj}\n`);
|
|
108
|
-
// cast: latest.grades is read from a parsed health.yaml audit entry (IO boundary)
|
|
109
|
-
const grades = (latest.grades ?? {});
|
|
110
|
-
for (const [gk, gv] of Object.entries(grades)) {
|
|
111
|
-
o(` ${gk}: ${gv}\n`);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
7
|
+
const response = listHealthEntities(process.cwd(), args.limit ?? 1, args.dimension ?? undefined, args.cursor ?? undefined, { format });
|
|
8
|
+
const output = out(io);
|
|
9
|
+
if (format === "text")
|
|
10
|
+
output(YAML.stringify(response));
|
|
11
|
+
else
|
|
12
|
+
emitStructured(response, format, output);
|
|
114
13
|
return 0;
|
|
115
14
|
}
|
|
116
15
|
//# sourceMappingURL=health.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../../../src/cli/commands/state/health.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../../../src/cli/commands/state/health.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,GAAG,EAA2B,MAAM,aAAa,CAAC;AAE3D,MAAM,UAAU,WAAW,CAAC,IAAe,EAAE,QAAoC,EAAE,EAAM;IACvF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IACrC,MAAM,QAAQ,GAAG,kBAAkB,CACjC,OAAO,CAAC,GAAG,EAAE,EACb,IAAI,CAAC,KAAK,IAAI,CAAC,EACf,IAAI,CAAC,SAAS,IAAI,SAAS,EAC3B,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,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;;QACnD,cAAc,CAAC,QAAQ,EAAE,MAAyB,EAAE,MAAM,CAAC,CAAC;IACjE,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -12,13 +12,15 @@ import { loadSchemas, discoverSchemasDir } from "../../appContext.js";
|
|
|
12
12
|
import { err } from "./shared.js";
|
|
13
13
|
import { queryProgress } from "./progress.js";
|
|
14
14
|
import { queryPlan } from "./plan.js";
|
|
15
|
-
import { queryHealth
|
|
15
|
+
import { queryHealth } from "./health.js";
|
|
16
16
|
import { queryDocs } from "./docs.js";
|
|
17
17
|
import { queryObjective } from "./objective.js";
|
|
18
18
|
import { queryExperiments } from "./experiments.js";
|
|
19
19
|
import { queryTodo, normalizeSeverity } from "./todo.js";
|
|
20
20
|
import { queryDecisions, decisionContextEntry, decisionSatisfactionContext, decisionSourceContract, extractDecisionEntries, hydrateDecisionEntries, displayFields, } from "./decisions.js";
|
|
21
|
-
|
|
21
|
+
import { StateRetrievalFailure } from "../../../state/directRetrieval.js";
|
|
22
|
+
import { emitStructured } from "../../structured.js";
|
|
23
|
+
export { queryProgress, queryPlan, queryHealth, queryDocs, queryObjective, queryExperiments, queryTodo, queryDecisions, normalizeSeverity, decisionContextEntry, decisionSatisfactionContext, decisionSourceContract, extractDecisionEntries, hydrateDecisionEntries, displayFields, };
|
|
22
24
|
const STATE_COMMAND_HANDLERS = {
|
|
23
25
|
progress: queryProgress,
|
|
24
26
|
plan: queryPlan,
|
|
@@ -44,6 +46,13 @@ export function cmdState(args, io) {
|
|
|
44
46
|
return handler(args, schemas, io);
|
|
45
47
|
}
|
|
46
48
|
catch (exc) {
|
|
49
|
+
if (exc instanceof StateRetrievalFailure) {
|
|
50
|
+
if (args.format === "json" || args.format === "yaml")
|
|
51
|
+
emitStructured(exc.body, args.format, io.out ?? ((text) => process.stdout.write(text)));
|
|
52
|
+
else
|
|
53
|
+
e(`Error: ${exc.body.error.message}\nSyntax: ${exc.body.error.syntax}\nRecovery: ${exc.body.error.recovery}\n`);
|
|
54
|
+
return exc.exitCode;
|
|
55
|
+
}
|
|
47
56
|
e(`Error: ${exc.message}\n`);
|
|
48
57
|
return 2;
|
|
49
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/state/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAiB,GAAG,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/state/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAiB,GAAG,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EACL,aAAa,EACb,SAAS,EACT,WAAW,EACX,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,GACd,CAAC;AAEF,MAAM,sBAAsB,GAGxB;IACF,QAAQ,EAAE,aAAa;IACvB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,WAAW;IACnB,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,cAAc;IACzB,WAAW,EAAE,gBAAgB;IAC7B,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,cAAc;CAC1B,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,OAAO,OAAO,IAAI,sBAAsB,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAe,EAAE,EAAM;IAC9C,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,IAAI,CAAC;QACH,oBAAoB,CAAC,IAAW,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;gBAAE,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;gBACzI,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,aAAa,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;YACrH,OAAO,GAAG,CAAC,QAAQ,CAAC;QACtB,CAAC;QACD,CAAC,CAAC,UAAW,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { resolveSourceRoot } from "../../../core/sourceRoot.js";
|
|
2
|
-
import { listStateEntries, boundStateList, renderStateListText, } from "../../../state/listRetrieval.js";
|
|
3
|
-
import { numberedArchiveArtifacts } from "../../../state/archiveDiscovery.js";
|
|
4
2
|
import { StateRetrievalFailure } from "../../../state/directRetrieval.js";
|
|
5
3
|
import { emitStructured } from "../../structured.js";
|
|
4
|
+
import { listProgressEntities, renderProgressEntityListText } from "../../../state/progressEntities.js";
|
|
5
|
+
import { listDecisionEntities } from "../../../state/decisionEntities.js";
|
|
6
|
+
import { listHealthEntities } from "../../../state/healthEntities.js";
|
|
7
|
+
import { listObjectiveEntities } from "../../../state/objectiveExperimentEntities.js";
|
|
8
|
+
import { listTodoDocsEntities } from "../../../state/todoDocsEntities.js";
|
|
9
|
+
import YAML from "yaml";
|
|
10
|
+
const ENTITY_LIST_ARTIFACTS = ["progress", "decisions", "health", "objective", "todo", "docs"];
|
|
6
11
|
function requestedFormat(argv) {
|
|
7
12
|
for (let index = 0; index < argv.length; index += 1) {
|
|
8
13
|
const token = argv[index];
|
|
@@ -46,8 +51,8 @@ function readValue(argv, index, name) {
|
|
|
46
51
|
throw new Error(`${name} requires a value`);
|
|
47
52
|
return { value, next: index + 2 };
|
|
48
53
|
}
|
|
49
|
-
function parseListArgs(artifactId, argv
|
|
50
|
-
const validValues =
|
|
54
|
+
function parseListArgs(artifactId, argv) {
|
|
55
|
+
const validValues = ENTITY_LIST_ARTIFACTS;
|
|
51
56
|
if (!validValues.includes(artifactId)) {
|
|
52
57
|
throw failure("unsupported_artifact", artifactId, `unsupported state artifact '${artifactId}'`, undefined, validValues);
|
|
53
58
|
}
|
|
@@ -55,7 +60,7 @@ function parseListArgs(artifactId, argv, sourceRoot) {
|
|
|
55
60
|
let cursor;
|
|
56
61
|
let format = "text";
|
|
57
62
|
const filters = {};
|
|
58
|
-
const allowedFilters = artifactId === "progress" ? new Set(["--topic", "--status"]) : artifactId === "decisions" ? new Set(["--topic"]) : new Set(["--dimension"]);
|
|
63
|
+
const allowedFilters = artifactId === "progress" ? new Set(["--topic", "--status"]) : artifactId === "decisions" ? new Set(["--topic"]) : artifactId === "todo" ? new Set(["--severity", "--status"]) : artifactId === "docs" ? new Set(["--topic", "--status"]) : artifactId === "objective" ? new Set() : new Set(["--dimension"]);
|
|
59
64
|
let limitSupplied = false;
|
|
60
65
|
let cursorSupplied = false;
|
|
61
66
|
let formatSupplied = false;
|
|
@@ -127,22 +132,34 @@ function emitFailure(error, format, io) {
|
|
|
127
132
|
}
|
|
128
133
|
return error.exitCode;
|
|
129
134
|
}
|
|
130
|
-
export function runStateList(artifactId, argv, io) {
|
|
135
|
+
export function runStateList(artifactId, argv, io, projectRoot = process.cwd()) {
|
|
131
136
|
const format = requestedFormat(argv);
|
|
132
137
|
const sourceRoot = resolveSourceRoot();
|
|
133
138
|
try {
|
|
134
|
-
const args = parseListArgs(artifactId, argv
|
|
135
|
-
const response =
|
|
136
|
-
|
|
139
|
+
const args = parseListArgs(artifactId, argv);
|
|
140
|
+
const response = artifactId === "progress"
|
|
141
|
+
? listProgressEntities(projectRoot, args.limit, args.filters, args.cursor, { sourceRoot, format: args.format })
|
|
142
|
+
: artifactId === "decisions"
|
|
143
|
+
? listDecisionEntities(projectRoot, args.limit, args.filters.topic ?? undefined, args.cursor, { sourceRoot, format: args.format })
|
|
144
|
+
: artifactId === "health"
|
|
145
|
+
? listHealthEntities(projectRoot, args.limit, args.filters.dimension ?? undefined, args.cursor, { sourceRoot, format: args.format })
|
|
146
|
+
: artifactId === "objective"
|
|
147
|
+
? listObjectiveEntities(projectRoot, args.limit, args.cursor, { sourceRoot, format: args.format })
|
|
148
|
+
: listTodoDocsEntities(projectRoot, artifactId, args.limit, args.cursor, args.filters, { sourceRoot, format: args.format });
|
|
149
|
+
const output = io.out ?? ((text) => process.stdout.write(text));
|
|
137
150
|
if (args.format === "text")
|
|
138
|
-
|
|
151
|
+
output(artifactId === "progress" ? renderProgressEntityListText(response) : YAML.stringify(response));
|
|
139
152
|
else
|
|
140
|
-
emitStructured(response, args.format,
|
|
153
|
+
emitStructured(response, args.format, output);
|
|
141
154
|
return 0;
|
|
142
155
|
}
|
|
143
156
|
catch (error) {
|
|
144
|
-
if (error instanceof StateRetrievalFailure)
|
|
145
|
-
|
|
157
|
+
if (error instanceof StateRetrievalFailure) {
|
|
158
|
+
const body = structuredClone(error.body);
|
|
159
|
+
delete body.error.artifact_id;
|
|
160
|
+
body.error.artifact = artifactId;
|
|
161
|
+
return emitFailure(new StateRetrievalFailure(body, error.exitCode), format, io);
|
|
162
|
+
}
|
|
146
163
|
return emitFailure(new StateRetrievalFailure({
|
|
147
164
|
schemaVersion: "agentera.stateFailure.v1",
|
|
148
165
|
status: "fail",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/cli/commands/state/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/cli/commands/state/list.ts"],"names":[],"mappings":"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"}
|