agentera 3.0.0-dev.7 → 3.0.0-dev.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +229 -22
- package/bundle/.agentera-build-source.json +8 -0
- package/bundle/CHANGELOG.md +1361 -0
- package/bundle/DESIGN.md +229 -0
- package/bundle/LICENSE +201 -0
- package/bundle/README.md +143 -0
- package/bundle/UPGRADE.md +252 -0
- package/bundle/extract-corpus-parity.json +2 -4
- package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
- package/bundle/references/adapters/package-publication.json +484 -0
- package/bundle/references/adapters/package-registry.yaml +439 -188
- package/bundle/references/adapters/package-surface-characterization.md +68 -34
- package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +74 -0
- package/bundle/references/adapters/runtime-lifecycle-authority.yaml +62 -0
- package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
- package/bundle/references/adapters/runtime-retired-resources.yaml +333 -0
- package/bundle/references/analysis/evidence-tier-authority.yaml +559 -0
- package/bundle/references/analysis/personal-glossary-evaluation-authority.yaml +175 -0
- package/bundle/references/analysis/personal-glossary-evaluation-corpus.yaml +291 -0
- package/bundle/references/analysis/personal-glossary-holdout.yaml +192 -0
- package/bundle/references/analysis/verification-policy.yaml +266 -0
- package/bundle/references/artifacts/artifact-registry-interface-model.yaml +17 -8
- package/bundle/references/artifacts/glossary-entry-contract.yaml +2752 -0
- package/bundle/references/artifacts/state-storage-authority.yaml +3061 -0
- package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
- package/bundle/references/cli/app-lifecycle-vocabulary.yaml +3 -4
- package/bundle/references/cli/capability-instruction-contract.yaml +11 -14
- package/bundle/references/cli/hybrid-route-contract.yaml +438 -0
- package/bundle/references/cli/routing-model.md +152 -93
- package/bundle/references/cli/trigger-schema-enrichment.md +57 -46
- package/bundle/references/cli/update-channels.yaml +6 -4
- package/bundle/references/cli/vocabulary-index.yaml +5 -7
- package/bundle/references/cli/vocabulary.md +52 -94
- package/bundle/references/meta/retained-reference-authority.yaml +166 -0
- package/bundle/skills/agentera/SKILL.md +183 -63
- package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +27 -19
- package/bundle/skills/agentera/capabilities/audit/schemas/exit.yaml +2 -2
- package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +13 -35
- package/bundle/skills/agentera/capabilities/audit/schemas/validation.yaml +30 -11
- package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +44 -21
- package/bundle/skills/agentera/capabilities/build/schemas/exit.yaml +8 -6
- package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +14 -36
- package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +95 -21
- package/bundle/skills/agentera/capabilities/design/schemas/artifacts.yaml +6 -6
- package/bundle/skills/agentera/capabilities/design/schemas/exit.yaml +5 -5
- package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +5 -34
- package/bundle/skills/agentera/capabilities/design/schemas/validation.yaml +2 -2
- package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +17 -13
- package/bundle/skills/agentera/capabilities/discuss/schemas/exit.yaml +2 -2
- package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +6 -40
- package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +72 -5
- package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +24 -17
- package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +5 -35
- package/bundle/skills/agentera/capabilities/document/schemas/validation.yaml +13 -13
- package/bundle/skills/agentera/capabilities/optimize/schemas/artifacts.yaml +10 -10
- package/bundle/skills/agentera/capabilities/optimize/schemas/exit.yaml +2 -2
- package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +4 -35
- package/bundle/skills/agentera/capabilities/optimize/schemas/validation.yaml +3 -3
- package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +34 -22
- package/bundle/skills/agentera/capabilities/orchestrate/schemas/exit.yaml +9 -7
- package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +5 -37
- package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +38 -37
- package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +20 -16
- package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +8 -31
- package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +66 -6
- package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +13 -4
- package/bundle/skills/agentera/capabilities/profile/schemas/exit.yaml +8 -5
- package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +8 -37
- package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +67 -3
- package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +6 -6
- package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +5 -29
- package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +13 -12
- package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +7 -49
- package/bundle/skills/agentera/capabilities/vision/schemas/artifacts.yaml +8 -8
- package/bundle/skills/agentera/capabilities/vision/schemas/exit.yaml +7 -6
- package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +7 -39
- package/bundle/skills/agentera/capabilities/vision/schemas/validation.yaml +14 -16
- package/bundle/skills/agentera/capability_schema_contract.yaml +32 -32
- package/bundle/skills/agentera/protocol.yaml +4 -4
- package/bundle/skills/agentera/route-phrases.yaml +81 -0
- package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +1 -0
- package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +30 -12
- package/bundle/skills/agentera/schemas/artifacts/design.yaml +1 -0
- package/bundle/skills/agentera/schemas/artifacts/docs.yaml +7 -12
- package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +140 -9
- package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +87 -0
- package/bundle/skills/agentera/schemas/artifacts/health.yaml +56 -19
- package/bundle/skills/agentera/schemas/artifacts/objective.yaml +18 -4
- package/bundle/skills/agentera/schemas/artifacts/plan.yaml +464 -32
- package/bundle/skills/agentera/schemas/artifacts/progress.yaml +131 -18
- package/bundle/skills/agentera/schemas/artifacts/todo.yaml +302 -7
- package/dist/.agentera-build-source.json +8 -0
- package/dist/analytics/extractCorpus/cli.js +52 -11
- package/dist/analytics/extractCorpus/copilotSessions.js +19 -8
- package/dist/analytics/extractCorpus/core.js +262 -14
- package/dist/analytics/extractCorpus/corpus.js +57 -18
- package/dist/analytics/extractCorpus/coverageAudit.js +44 -45
- package/dist/analytics/extractCorpus/cursorSessions.js +28 -8
- package/dist/analytics/extractCorpus/evidenceTiers.js +709 -0
- package/dist/analytics/extractCorpus/extractCorpusParity.js +4 -4
- package/dist/analytics/extractCorpus/filesystemSources.js +5 -5
- package/dist/analytics/extractCorpus/index.js +4 -2
- package/dist/analytics/extractCorpus/jsonlSessions.js +76 -8
- package/dist/analytics/extractCorpus/sqliteCaps.js +0 -1
- package/dist/analytics/extractCorpus/sqliteSessions.js +12 -4
- package/dist/analytics/extractCorpus/tierReader.js +108 -0
- package/dist/analytics/extractCorpus.js +0 -1
- package/dist/analytics/glossaryAdviceResolution.js +166 -0
- package/dist/analytics/glossaryInputAcquisition.js +319 -0
- package/dist/analytics/personalGlossaryAdmission.js +113 -0
- package/dist/analytics/personalGlossaryCandidateProjection.js +692 -0
- package/dist/analytics/personalGlossaryCandidateProjectionExcerpts.js +144 -0
- package/dist/analytics/personalGlossaryCandidateReadView.js +23 -0
- package/dist/analytics/personalGlossaryCurrentGeneration.js +25 -0
- package/dist/analytics/personalGlossaryDecision.js +203 -0
- package/dist/analytics/personalGlossaryExplicit.js +788 -0
- package/dist/analytics/personalGlossaryExplicitMining.js +285 -0
- package/dist/analytics/personalGlossaryExplicitScope.js +41 -0
- package/dist/analytics/personalGlossaryExplicitSegments.js +418 -0
- package/dist/analytics/personalGlossaryExplicitTypes.js +26 -0
- package/dist/analytics/personalGlossaryLexicalClassifier.js +175 -0
- package/dist/analytics/personalGlossaryProfile.js +229 -0
- package/dist/analytics/personalGlossaryRecurrence.js +618 -0
- package/dist/analytics/personalGlossaryReviewRecordStorage.js +428 -0
- package/dist/analytics/personalGlossaryReviewRecords.js +332 -0
- package/dist/analytics/profileSignals.js +211 -0
- package/dist/analytics/usageStats.js +150 -23
- package/dist/audit/terminologyDrift.js +281 -0
- package/dist/bin/agentera.js +3 -2
- package/dist/capabilities/audit/instructions.js +16 -6
- package/dist/capabilities/build/instructions.js +59 -6
- package/dist/capabilities/design/instructions.js +3 -4
- package/dist/capabilities/discuss/instructions.js +29 -6
- package/dist/capabilities/document/instructions.js +11 -6
- package/dist/capabilities/index.js +20 -14
- package/dist/capabilities/optimize/instructions.js +14 -6
- package/dist/capabilities/orchestrate/instructions.js +42 -6
- package/dist/capabilities/plan/instructions.js +30 -3
- package/dist/capabilities/profile/instructions.js +104 -5
- package/dist/capabilities/research/instructions.js +4 -5
- package/dist/capabilities/status/instructions.js +15 -6
- package/dist/capabilities/status/startupInstructions.js +34 -0
- package/dist/capabilities/vision/instructions.js +3 -5
- package/dist/cli/appContext.js +14 -7
- package/dist/cli/argvalidate.js +0 -1
- package/dist/cli/capabilityContext/benchmark.js +5 -4
- package/dist/cli/capabilityContext/bespoke.js +14 -6
- package/dist/cli/capabilityContext/build.js +116 -42
- package/dist/cli/capabilityContext/closeout.js +30 -27
- package/dist/cli/capabilityContext/contract.js +18 -27
- package/dist/cli/capabilityContext/evidence.js +84 -77
- package/dist/cli/capabilityContext/index.js +0 -1
- package/dist/cli/capabilityContext/orchestration.js +42 -18
- package/dist/cli/capabilityContext/planState.js +89 -96
- package/dist/cli/capabilityContext/progress.js +51 -12
- package/dist/cli/capabilityContext/projectVerification.js +409 -0
- package/dist/cli/capabilityContext/shared.js +9 -20
- package/dist/cli/capabilityContext/slim.js +52 -8
- package/dist/cli/capabilityContext/startup.js +51 -114
- package/dist/cli/capabilityContext/startupAggregation.js +68 -0
- package/dist/cli/capabilityContext/types.js +26 -10
- package/dist/cli/capabilityContext.js +0 -1
- package/dist/cli/commands/appHome.js +0 -1
- package/dist/cli/commands/capability.js +2 -2
- package/dist/cli/commands/compact.js +163 -13
- package/dist/cli/commands/doctor.js +117 -11
- package/dist/cli/commands/durability.js +81 -0
- package/dist/cli/commands/glossaryAdvice.js +138 -0
- package/dist/cli/commands/lint.js +22 -8
- package/dist/cli/commands/personalGlossaryCandidateReads.js +744 -0
- package/dist/cli/commands/personalGlossaryDecision.js +349 -0
- package/dist/cli/commands/personalGlossaryPublish.js +484 -0
- package/dist/cli/commands/personalGlossaryReviewRecordReads.js +209 -0
- package/dist/cli/commands/personalGlossaryReviewRecords.js +623 -0
- package/dist/cli/commands/prime/briefOrientation.js +845 -0
- package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
- package/dist/cli/commands/prime/bundleStatus.js +54 -4
- package/dist/cli/commands/prime/collectEntityOrientation.js +326 -0
- package/dist/cli/commands/prime/collectOrientationState.js +126 -63
- package/dist/cli/commands/prime/orientationOutput.js +267 -56
- package/dist/cli/commands/prime/types.js +0 -1
- package/dist/cli/commands/prime/v1Migration.js +0 -1
- package/dist/cli/commands/prime.js +76 -11
- package/dist/cli/commands/profileGrounding.js +55 -0
- package/dist/cli/commands/query.js +74 -52
- package/dist/cli/commands/report.js +91 -21
- package/dist/cli/commands/route.js +142 -0
- package/dist/cli/commands/schema.js +436 -138
- package/dist/cli/commands/state/decisions.js +40 -56
- package/dist/cli/commands/state/docs.js +58 -85
- package/dist/cli/commands/state/experimentRecords.js +151 -0
- package/dist/cli/commands/state/experiments.js +11 -65
- package/dist/cli/commands/state/get.js +129 -0
- package/dist/cli/commands/state/health.js +11 -113
- package/dist/cli/commands/state/index.js +6 -41
- package/dist/cli/commands/state/list.js +194 -0
- package/dist/cli/commands/state/objective.js +21 -65
- package/dist/cli/commands/state/plan.js +11 -170
- package/dist/cli/commands/state/planTasks.js +154 -0
- package/dist/cli/commands/state/plans.js +154 -0
- package/dist/cli/commands/state/progress.js +11 -45
- package/dist/cli/commands/state/shared.js +0 -1
- package/dist/cli/commands/state/todo.js +28 -107
- package/dist/cli/commands/state/write.js +433 -0
- package/dist/cli/commands/upgrade.js +146 -5
- package/dist/cli/commands/upgradeVerify.js +118 -0
- package/dist/cli/commands/validate.js +235 -136
- package/dist/cli/commands/verify.js +73 -16
- package/dist/cli/contracts/bundleStatus.js +0 -1
- package/dist/cli/contracts/orientationState.js +0 -1
- package/dist/cli/dispatch/argvParser.js +0 -1
- package/dist/cli/dispatch/check.js +84 -40
- package/dist/cli/dispatch/commands.js +3 -3
- package/dist/cli/dispatch/index.js +77 -52
- package/dist/cli/dispatch/lifecycle.js +162 -62
- package/dist/cli/dispatch/prime.js +37 -2
- package/dist/cli/dispatch/projections.js +17 -0
- package/dist/cli/dispatch/shared.js +1 -2
- package/dist/cli/dispatch/state.js +62 -66
- package/dist/cli/dispatch.js +0 -1
- package/dist/cli/errors.js +16 -17
- package/dist/cli/help.js +404 -39
- package/dist/cli/migrationRequired.js +125 -0
- package/dist/cli/orientation/attention.js +19 -19
- package/dist/cli/orientation/corpusCoverage.js +32 -1
- package/dist/cli/orientation.js +346 -129
- package/dist/cli/planArtifacts.js +350 -0
- package/dist/cli/planEvidence.js +157 -0
- package/dist/cli/planLifecycleState.js +36 -0
- package/dist/cli/planTaskIndex.js +11 -0
- package/dist/cli/preCutoverCommand.js +32 -0
- package/dist/cli/prime-blob.js +71 -3
- package/dist/cli/profileAcquisition.js +167 -0
- package/dist/cli/startupCompletenessContract.js +11 -8
- package/dist/cli/stateQuery.js +47 -12
- package/dist/cli/structured.js +0 -1
- package/dist/cli/todoMarkdown.js +25 -12
- package/dist/cli/todoReadinessSelection.js +192 -0
- package/dist/cli/todoSeverity.js +0 -1
- package/dist/core/atomicWriter.js +23 -0
- package/dist/core/developmentChannel.js +1 -0
- package/dist/core/developmentInvocation.js +377 -0
- package/dist/core/difflib.js +0 -1
- package/dist/core/envPaths.js +0 -1
- package/dist/core/jsonValue.js +0 -1
- package/dist/core/paths.js +0 -1
- package/dist/core/pyjson.js +0 -1
- package/dist/core/shell.js +4 -0
- package/dist/core/skillIdentity.js +23 -0
- package/dist/core/sourceRoot.js +9 -12
- package/dist/core/text.js +10 -0
- package/dist/core/toml.js +0 -1
- package/dist/core/yaml.js +61 -2
- package/dist/eval/evalSkills.js +13 -14
- package/dist/eval/glossaryEvaluation.js +751 -0
- package/dist/eval/glossaryEvaluationProcess.js +29 -0
- package/dist/eval/glossaryEvaluationRunner.js +571 -0
- package/dist/eval/glossaryEvaluationSuccessReport.js +297 -0
- package/dist/eval/hybridRouteEvaluation.js +155 -0
- package/dist/eval/semanticEval.js +0 -1
- package/dist/eval/semanticFixtures.js +0 -1
- package/dist/hooks/common.js +3 -56
- package/dist/hooks/compaction/apply.js +224 -47
- package/dist/hooks/compaction/dryRun.js +2 -1
- package/dist/hooks/compaction/index.js +5 -6
- package/dist/hooks/compaction/parse.js +73 -6
- package/dist/hooks/compaction/retention.js +28 -25
- package/dist/hooks/compaction/status.js +145 -26
- package/dist/hooks/compaction/types.js +0 -1
- package/dist/hooks/validateArtifact/agentFacing.js +0 -1
- package/dist/hooks/validateArtifact/index.js +6 -65
- package/dist/hooks/validateArtifact/markdown.js +9 -10
- package/dist/hooks/validateArtifact/schema.js +96 -9
- package/dist/hooks/validateArtifact/traversal.js +12 -11
- package/dist/hooks/validateArtifact/violations.js +5 -3
- package/dist/migrate/v2HandoffManifest.js +8 -3
- package/dist/registries/activationContract.js +2 -0
- package/dist/registries/activationTuples.js +136 -0
- package/dist/registries/artifactProtocolIds.js +2 -1
- package/dist/registries/artifactRegistry.js +207 -60
- package/dist/registries/artifactSchemaProjection.js +45 -0
- package/dist/registries/capabilityContract.js +5 -21
- package/dist/registries/evaluatorHandoffContract.js +0 -1
- package/dist/registries/evidenceTierContract.js +375 -0
- package/dist/registries/explicitSegmentGrammarContract.js +619 -0
- package/dist/registries/glossaryAdviceContract.js +79 -0
- package/dist/registries/glossaryCandidateContractPaths.js +6 -0
- package/dist/registries/glossaryCandidateContracts.js +820 -0
- package/dist/registries/glossaryCandidateDecisionAuthority.js +119 -0
- package/dist/registries/glossaryCandidateDecisionContract.js +62 -0
- package/dist/registries/glossaryCandidateProjectionAuthority.js +197 -0
- package/dist/registries/glossaryCandidateProjectionContract.js +104 -0
- package/dist/registries/glossaryCaveatContract.js +67 -0
- package/dist/registries/glossaryConsumerContractValidation.js +787 -0
- package/dist/registries/glossaryEntryContract.js +759 -0
- package/dist/registries/glossaryEntryTemporal.js +12 -0
- package/dist/registries/glossaryMiningAuthority.js +764 -0
- package/dist/registries/glossaryProfileFullContract.js +24 -0
- package/dist/registries/glossaryReviewRecordsAuthority.js +426 -0
- package/dist/registries/glossaryReviewRecordsContract.js +129 -0
- package/dist/registries/glossaryTermIdentity.js +139 -0
- package/dist/registries/glossaryTermOccurrence.js +20 -0
- package/dist/registries/hybridRoute.js +274 -0
- package/dist/registries/hybridRouteReceipt.js +221 -0
- package/dist/registries/packagePublication.js +273 -0
- package/dist/registries/packageRegistry.js +184 -209
- package/dist/registries/personalGlossaryContracts.js +1 -0
- package/dist/registries/todoReadinessContract.js +448 -0
- package/dist/registries/triggerLoader.js +7 -44
- package/dist/registries/verbosityBudgetContract.js +205 -0
- package/dist/release/releaseMetadata.js +167 -10
- package/dist/runtime/lifecycleAdapterContract.js +457 -0
- package/dist/runtime/lifecycleAdapters.js +777 -0
- package/dist/runtime/lifecycleAuthority.js +453 -0
- package/dist/runtime/lifecycleOperationContract.js +123 -0
- package/dist/runtime/lifecycleOperations.js +634 -0
- package/dist/runtime/lifecycleOwnershipJournal.js +622 -0
- package/dist/runtime/lifecyclePublication.js +415 -0
- package/dist/runtime/lifecycleSnapshot.js +438 -0
- package/dist/runtime/nativeResourceCleanup.js +502 -0
- package/dist/setup/opencode.js +20 -13
- package/dist/setup/opencodeConstants.js +1 -0
- package/dist/setup/sharedSkill.js +45 -0
- package/dist/setup/smokeChecks.js +14 -75
- package/dist/state/archiveDiscovery.js +580 -0
- package/dist/state/archivePublication.js +225 -0
- package/dist/state/archiveRecovery.js +237 -0
- package/dist/state/archiveReplay.js +53 -0
- package/dist/state/canonicalMigrationRecord.js +36 -0
- package/dist/state/changelog.js +221 -0
- package/dist/state/decisionEntities.js +367 -0
- package/dist/state/decisionLegacyValidation.js +215 -0
- package/dist/state/decisionMigrationProvenance.js +199 -0
- package/dist/state/decisionOverlay.js +254 -0
- package/dist/state/decisionRevision.js +256 -0
- package/dist/state/decisionRevisionMigration.js +89 -0
- package/dist/state/directRetrieval.js +323 -0
- package/dist/state/durability.js +324 -0
- package/dist/state/entityCutover.js +459 -0
- package/dist/state/entityCutoverGit.js +127 -0
- package/dist/state/entityGlossaryAuthority.js +13 -0
- package/dist/state/entityListProjection.js +187 -0
- package/dist/state/entityListRuntimeRegistry.js +85 -0
- package/dist/state/entityMigrationCausality.js +97 -0
- package/dist/state/entityMigrationIdentity.js +5 -0
- package/dist/state/entityMigrationPreview.js +840 -0
- package/dist/state/entityMigrationTodo.js +133 -0
- package/dist/state/entityPublicationContext.js +859 -0
- package/dist/state/entityRetrievalHelp.js +506 -0
- package/dist/state/entityStorage.js +899 -0
- package/dist/state/exactReplacementRecovery.js +18 -0
- package/dist/state/experimentArchive.js +63 -0
- package/dist/state/experimentIdentity.js +202 -0
- package/dist/state/healthEntities.js +262 -0
- package/dist/state/healthEntityValidation.js +18 -0
- package/dist/state/healthRepair.js +69 -0
- package/dist/state/installRoot.js +15 -7
- package/dist/state/legacyEntityCutoverEvidence.js +65 -0
- package/dist/state/legacyIdentity.js +47 -0
- package/dist/state/legacySummaryRecord.js +6 -0
- package/dist/state/listAccounting.js +54 -0
- package/dist/state/listClassification.js +17 -0
- package/dist/state/listCursor.js +42 -0
- package/dist/state/listRetrieval.js +781 -0
- package/dist/state/migrationSourceBinding.js +30 -0
- package/dist/state/objectiveExperimentEntities.js +322 -0
- package/dist/state/planEntities.js +1027 -0
- package/dist/state/planIdentity.js +47 -0
- package/dist/state/planLineageValidation.js +52 -0
- package/dist/state/planReplacementTransaction.js +475 -0
- package/dist/state/planRetrieval.js +313 -0
- package/dist/state/planTaskRetrieval.js +294 -0
- package/dist/state/progressEntities.js +512 -0
- package/dist/state/progressGlossaryCaveat.js +168 -0
- package/dist/state/progressPublicationOrder.js +19 -0
- package/dist/state/progressWritePolicy.js +33 -0
- package/dist/state/projectRoot.js +62 -0
- package/dist/state/projectionPolicy.js +190 -0
- package/dist/state/retrievalAuthority.js +156 -0
- package/dist/state/safeProjectFile.js +155 -0
- package/dist/state/startupAnalysis/benchmark.js +70 -9
- package/dist/state/startupAnalysis/contract.js +44 -10
- package/dist/state/startupAnalysis/helpers.js +1 -2
- package/dist/state/startupAnalysis/index.js +0 -1
- package/dist/state/startupAnalysis/metrics.js +0 -1
- package/dist/state/startupAnalysis/records.js +0 -1
- package/dist/state/startupAnalysis/report.js +0 -1
- package/dist/state/startupAnalysis/threshold.js +13 -1
- package/dist/state/startupAnalysis.js +0 -1
- package/dist/state/startupProjection.js +499 -0
- package/dist/state/stateMode.js +222 -0
- package/dist/state/stateStorageAuthority.js +47 -0
- package/dist/state/summaryEntityRead.js +25 -0
- package/dist/state/summaryMigrationProvenance.js +66 -0
- package/dist/state/summarySourceRowAuthority.js +36 -0
- package/dist/state/todoActivationSafety.js +58 -0
- package/dist/state/todoDocsEntities.js +1124 -0
- package/dist/state/todoDocsEntityValidation.js +158 -0
- package/dist/state/todoMarkdownProjection.js +51 -0
- package/dist/state/todoReconciliationActivation.js +182 -0
- package/dist/state/todoReconciliationInspection.js +171 -0
- package/dist/state/todoReconciliationRepair.js +318 -0
- package/dist/state/todoReconciliationTransaction.js +595 -0
- package/dist/state/write/assign.js +20 -0
- package/dist/state/write/candidateMutation.js +269 -0
- package/dist/state/write/errors.js +11 -0
- package/dist/state/write/experimentPublication.js +192 -0
- package/dist/state/write/explain.js +377 -0
- package/dist/state/write/fields.js +61 -0
- package/dist/state/write/glossaryPublication.js +263 -0
- package/dist/state/write/grammar.js +285 -0
- package/dist/state/write/helpers.js +29 -0
- package/dist/state/write/index.js +12 -0
- package/dist/state/write/input.js +391 -0
- package/dist/state/write/lock.js +837 -0
- package/dist/state/write/mutation.js +234 -0
- package/dist/state/write/operations.js +170 -0
- package/dist/state/write/planEvaluation.js +128 -0
- package/dist/state/write/planPublication.js +179 -0
- package/dist/state/write/runtimeOperations.js +146 -0
- package/dist/state/write/serialize.js +1 -0
- package/dist/state/write/transaction.js +57 -0
- package/dist/state/write/validate.js +7 -0
- package/dist/upgrade/appContentRefresh.js +77 -36
- package/dist/upgrade/appModel.js +0 -1
- package/dist/upgrade/atomicWriter.js +1 -0
- package/dist/upgrade/bundleEvidence.js +0 -1
- package/dist/upgrade/channels.js +6 -9
- package/dist/upgrade/compatibility.js +43 -17
- package/dist/upgrade/doctor.js +55 -32
- package/dist/upgrade/doctorClassifier.js +11 -1
- package/dist/upgrade/installedHooksRetirement.js +46 -40
- package/dist/upgrade/legacyAgentCleanup.js +187 -21
- package/dist/upgrade/lifecycleUpgrade.js +113 -0
- package/dist/upgrade/migrateArtifactsV2ToV3.js +334 -64
- package/dist/upgrade/migrationPublication.js +122 -0
- package/dist/upgrade/nextMajorDoctor.js +0 -1
- package/dist/upgrade/npxPlatformStatus.js +2 -2
- package/dist/upgrade/projectIntegration.js +128 -160
- package/dist/upgrade/projectIntegrationDecision.js +42 -85
- package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
- package/dist/upgrade/runtimeMigration.js +262 -453
- package/dist/upgrade/upgradeCommands.js +14 -1
- package/dist/upgrade/upgradeLock.js +85 -0
- package/dist/upgrade/upgradeOrchestrator.js +263 -59
- package/dist/upgrade/v3CapabilitySurface.js +2 -3
- package/dist/upgrade/versionResolution.js +0 -1
- package/dist/validate/activationArtifactEvidence.js +866 -0
- package/dist/validate/activationArtifactEvidenceTypes.js +12 -0
- package/dist/validate/activationConjunction.js +816 -0
- package/dist/validate/activationEvidenceManifest.js +610 -0
- package/dist/validate/activationPackageSemantics.js +29 -0
- package/dist/validate/appHomeContract.js +1 -7
- package/dist/validate/bootstrapAuthority.js +44 -0
- package/dist/validate/capability.js +11 -3
- package/dist/validate/crossCapability.js +14 -9
- package/dist/validate/retainedReferenceAuthority.js +879 -0
- package/dist/validate/selfAudit.js +39 -45
- package/dist/validate/v1LegacyCruft.js +131 -0
- package/dist/validate/vocabularyAuthority.js +8 -8
- package/package.json +39 -13
- package/bundle/references/adapters/cursor.md +0 -214
- package/bundle/references/adapters/opencode.md +0 -530
- package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
- package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
- package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
- package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -554
- package/bundle/references/adapters/runtime-feature-parity.md +0 -189
- package/bundle/references/analysis/benchmark.md +0 -267
- package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
- package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
- package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -369
- package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -250
- package/bundle/references/cli/capability-tool-classification.yaml +0 -53
- package/bundle/references/cli/coexistence-probe.yaml +0 -13
- package/bundle/references/cli/parity-expected-actual-template.md +0 -30
- package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
- package/bundle/references/cli/single-name-protocol.yaml +0 -42
- package/bundle/references/cli/upgrade-repair-wording.md +0 -45
- package/bundle/references/cli/v3-handoff-manifest.schema.yaml +0 -98
- package/bundle/references/meta/documentation-inventory.md +0 -49
- package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
- package/bundle/skills/agentera/agents/audit.toml +0 -6
- package/bundle/skills/agentera/agents/build.toml +0 -6
- package/bundle/skills/agentera/agents/design.toml +0 -6
- package/bundle/skills/agentera/agents/discuss.toml +0 -6
- package/bundle/skills/agentera/agents/document.toml +0 -6
- package/bundle/skills/agentera/agents/optimize.toml +0 -6
- package/bundle/skills/agentera/agents/orchestrate.toml +0 -6
- package/bundle/skills/agentera/agents/plan.toml +0 -6
- package/bundle/skills/agentera/agents/profile.toml +0 -6
- package/bundle/skills/agentera/agents/research.toml +0 -6
- package/bundle/skills/agentera/agents/status.toml +0 -6
- package/bundle/skills/agentera/agents/vision.toml +0 -6
- package/bundle/skills/agentera/references/contract.md +0 -1048
- package/dist/analytics/extractCorpus/cli.js.map +0 -1
- package/dist/analytics/extractCorpus/copilotSessions.js.map +0 -1
- package/dist/analytics/extractCorpus/core.js.map +0 -1
- package/dist/analytics/extractCorpus/corpus.js.map +0 -1
- package/dist/analytics/extractCorpus/coverageAudit.js.map +0 -1
- package/dist/analytics/extractCorpus/cursorSessions.js.map +0 -1
- package/dist/analytics/extractCorpus/extractCorpusParity.js.map +0 -1
- package/dist/analytics/extractCorpus/filesystemSources.js.map +0 -1
- package/dist/analytics/extractCorpus/index.js.map +0 -1
- package/dist/analytics/extractCorpus/jsonlSessions.js.map +0 -1
- package/dist/analytics/extractCorpus/sqliteCaps.js.map +0 -1
- package/dist/analytics/extractCorpus/sqliteSessions.js.map +0 -1
- package/dist/analytics/extractCorpus.js.map +0 -1
- package/dist/analytics/usageStats.js.map +0 -1
- package/dist/bin/agentera.js.map +0 -1
- package/dist/capabilities/audit/instructions.js.map +0 -1
- package/dist/capabilities/build/instructions.js.map +0 -1
- package/dist/capabilities/design/instructions.js.map +0 -1
- package/dist/capabilities/discuss/instructions.js.map +0 -1
- package/dist/capabilities/document/instructions.js.map +0 -1
- package/dist/capabilities/dokumentera/instructions.js +0 -6
- package/dist/capabilities/dokumentera/instructions.js.map +0 -1
- package/dist/capabilities/hej/instructions.js +0 -6
- package/dist/capabilities/hej/instructions.js.map +0 -1
- package/dist/capabilities/index.js.map +0 -1
- package/dist/capabilities/inspektera/instructions.js +0 -6
- package/dist/capabilities/inspektera/instructions.js.map +0 -1
- package/dist/capabilities/inspirera/instructions.js +0 -6
- package/dist/capabilities/inspirera/instructions.js.map +0 -1
- package/dist/capabilities/optimera/instructions.js +0 -6
- package/dist/capabilities/optimera/instructions.js.map +0 -1
- package/dist/capabilities/optimize/instructions.js.map +0 -1
- package/dist/capabilities/orchestrate/instructions.js.map +0 -1
- package/dist/capabilities/orkestrera/instructions.js +0 -6
- package/dist/capabilities/orkestrera/instructions.js.map +0 -1
- package/dist/capabilities/plan/instructions.js.map +0 -1
- package/dist/capabilities/planera/instructions.js +0 -6
- package/dist/capabilities/planera/instructions.js.map +0 -1
- package/dist/capabilities/profile/instructions.js.map +0 -1
- package/dist/capabilities/profilera/instructions.js +0 -6
- package/dist/capabilities/profilera/instructions.js.map +0 -1
- package/dist/capabilities/realisera/instructions.js +0 -6
- package/dist/capabilities/realisera/instructions.js.map +0 -1
- package/dist/capabilities/research/instructions.js.map +0 -1
- package/dist/capabilities/resonera/instructions.js +0 -6
- package/dist/capabilities/resonera/instructions.js.map +0 -1
- package/dist/capabilities/status/instructions.js.map +0 -1
- package/dist/capabilities/vision/instructions.js.map +0 -1
- package/dist/capabilities/visionera/instructions.js +0 -6
- package/dist/capabilities/visionera/instructions.js.map +0 -1
- package/dist/capabilities/visualisera/instructions.js +0 -5
- package/dist/capabilities/visualisera/instructions.js.map +0 -1
- package/dist/cli/appContext.js.map +0 -1
- package/dist/cli/argvalidate.js.map +0 -1
- package/dist/cli/capabilityContext/benchmark.js.map +0 -1
- package/dist/cli/capabilityContext/bespoke.js.map +0 -1
- package/dist/cli/capabilityContext/build.js.map +0 -1
- package/dist/cli/capabilityContext/closeout.js.map +0 -1
- package/dist/cli/capabilityContext/contract.js.map +0 -1
- package/dist/cli/capabilityContext/evidence.js.map +0 -1
- package/dist/cli/capabilityContext/index.js.map +0 -1
- package/dist/cli/capabilityContext/orchestration.js.map +0 -1
- package/dist/cli/capabilityContext/planState.js.map +0 -1
- package/dist/cli/capabilityContext/progress.js.map +0 -1
- package/dist/cli/capabilityContext/realisera.js +0 -174
- package/dist/cli/capabilityContext/realisera.js.map +0 -1
- package/dist/cli/capabilityContext/shared.js.map +0 -1
- package/dist/cli/capabilityContext/slim.js.map +0 -1
- package/dist/cli/capabilityContext/startup.js.map +0 -1
- package/dist/cli/capabilityContext/types.js.map +0 -1
- package/dist/cli/capabilityContext.js.map +0 -1
- package/dist/cli/commands/appHome.js.map +0 -1
- package/dist/cli/commands/backfill.js +0 -84
- package/dist/cli/commands/backfill.js.map +0 -1
- package/dist/cli/commands/capability.js.map +0 -1
- package/dist/cli/commands/compact.js.map +0 -1
- package/dist/cli/commands/doctor.js.map +0 -1
- package/dist/cli/commands/lint.js.map +0 -1
- package/dist/cli/commands/prime/bundleStatus.js.map +0 -1
- package/dist/cli/commands/prime/collectOrientationState.js.map +0 -1
- package/dist/cli/commands/prime/orientationOutput.js.map +0 -1
- package/dist/cli/commands/prime/routeOutput.js +0 -50
- package/dist/cli/commands/prime/routeOutput.js.map +0 -1
- package/dist/cli/commands/prime/types.js.map +0 -1
- package/dist/cli/commands/prime/v1Migration.js.map +0 -1
- package/dist/cli/commands/prime.js.map +0 -1
- package/dist/cli/commands/query.js.map +0 -1
- package/dist/cli/commands/report.js.map +0 -1
- package/dist/cli/commands/schema.js.map +0 -1
- package/dist/cli/commands/state/decisions.js.map +0 -1
- package/dist/cli/commands/state/docs.js.map +0 -1
- package/dist/cli/commands/state/experiments.js.map +0 -1
- package/dist/cli/commands/state/health.js.map +0 -1
- package/dist/cli/commands/state/index.js.map +0 -1
- package/dist/cli/commands/state/objective.js.map +0 -1
- package/dist/cli/commands/state/plan.js.map +0 -1
- package/dist/cli/commands/state/progress.js.map +0 -1
- package/dist/cli/commands/state/shared.js.map +0 -1
- package/dist/cli/commands/state/todo.js.map +0 -1
- package/dist/cli/commands/state.js +0 -1023
- package/dist/cli/commands/state.js.map +0 -1
- package/dist/cli/commands/upgrade.js.map +0 -1
- package/dist/cli/commands/validate.js.map +0 -1
- package/dist/cli/commands/verify.js.map +0 -1
- package/dist/cli/contracts/bundleStatus.js.map +0 -1
- package/dist/cli/contracts/orientationState.js.map +0 -1
- package/dist/cli/dispatch/argvParser.js.map +0 -1
- package/dist/cli/dispatch/check.js.map +0 -1
- package/dist/cli/dispatch/commands.js.map +0 -1
- package/dist/cli/dispatch/index.js.map +0 -1
- package/dist/cli/dispatch/lifecycle.js.map +0 -1
- package/dist/cli/dispatch/prime.js.map +0 -1
- package/dist/cli/dispatch/shared.js.map +0 -1
- package/dist/cli/dispatch/state.js.map +0 -1
- package/dist/cli/dispatch.js.map +0 -1
- package/dist/cli/errors.js.map +0 -1
- package/dist/cli/help.js.map +0 -1
- package/dist/cli/orientation/attention.js.map +0 -1
- package/dist/cli/orientation/corpusCoverage.js.map +0 -1
- package/dist/cli/orientation.js.map +0 -1
- package/dist/cli/prime-blob.js.map +0 -1
- package/dist/cli/startupCompletenessContract.js.map +0 -1
- package/dist/cli/stateQuery.js.map +0 -1
- package/dist/cli/structured.js.map +0 -1
- package/dist/cli/todoMarkdown.js.map +0 -1
- package/dist/cli/todoSeverity.js.map +0 -1
- package/dist/core/difflib.js.map +0 -1
- package/dist/core/envPaths.js.map +0 -1
- package/dist/core/git.js +0 -43
- package/dist/core/git.js.map +0 -1
- package/dist/core/jsonValue.js.map +0 -1
- package/dist/core/paths.js.map +0 -1
- package/dist/core/pyjson.js.map +0 -1
- package/dist/core/sourceRoot.js.map +0 -1
- package/dist/core/toml.js.map +0 -1
- package/dist/core/yaml.js.map +0 -1
- package/dist/eval/evalSkills.js.map +0 -1
- package/dist/eval/semanticEval.js.map +0 -1
- package/dist/eval/semanticFixtures.js.map +0 -1
- package/dist/hooks/common.js.map +0 -1
- package/dist/hooks/compaction/apply.js.map +0 -1
- package/dist/hooks/compaction/dryRun.js.map +0 -1
- package/dist/hooks/compaction/index.js.map +0 -1
- package/dist/hooks/compaction/parse.js.map +0 -1
- package/dist/hooks/compaction/retention.js.map +0 -1
- package/dist/hooks/compaction/status.js.map +0 -1
- package/dist/hooks/compaction/todoResolved.js +0 -137
- package/dist/hooks/compaction/todoResolved.js.map +0 -1
- package/dist/hooks/compaction/types.js.map +0 -1
- package/dist/hooks/compaction.js +0 -935
- package/dist/hooks/compaction.js.map +0 -1
- package/dist/hooks/cursorPreToolUse.js +0 -19
- package/dist/hooks/cursorPreToolUse.js.map +0 -1
- package/dist/hooks/cursorSessionStart.js +0 -79
- package/dist/hooks/cursorSessionStart.js.map +0 -1
- package/dist/hooks/sessionStart.js +0 -216
- package/dist/hooks/sessionStart.js.map +0 -1
- package/dist/hooks/sessionStop.js +0 -206
- package/dist/hooks/sessionStop.js.map +0 -1
- package/dist/hooks/todoLayout.js +0 -177
- package/dist/hooks/todoLayout.js.map +0 -1
- package/dist/hooks/validateArtifact/agentFacing.js.map +0 -1
- package/dist/hooks/validateArtifact/index.js.map +0 -1
- package/dist/hooks/validateArtifact/markdown.js.map +0 -1
- package/dist/hooks/validateArtifact/runtime.js +0 -86
- package/dist/hooks/validateArtifact/runtime.js.map +0 -1
- package/dist/hooks/validateArtifact/schema.js.map +0 -1
- package/dist/hooks/validateArtifact/traversal.js.map +0 -1
- package/dist/hooks/validateArtifact/violations.js.map +0 -1
- package/dist/hooks/validateArtifact.js +0 -924
- package/dist/hooks/validateArtifact.js.map +0 -1
- package/dist/migrate/v2HandoffManifest.js.map +0 -1
- package/dist/registries/artifactProtocolIds.js.map +0 -1
- package/dist/registries/artifactRegistry.js.map +0 -1
- package/dist/registries/capabilityContract.js.map +0 -1
- package/dist/registries/evaluatorHandoffContract.js.map +0 -1
- package/dist/registries/packageRegistry.js.map +0 -1
- package/dist/registries/runtimeAdapterRegistry.js +0 -316
- package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
- package/dist/registries/triggerLoader.js.map +0 -1
- package/dist/release/releaseMetadata.js.map +0 -1
- package/dist/routing/index.js +0 -2
- package/dist/routing/index.js.map +0 -1
- package/dist/routing/routeEngine.js +0 -189
- package/dist/routing/routeEngine.js.map +0 -1
- package/dist/setup/codex/agents.js +0 -96
- package/dist/setup/codex/agents.js.map +0 -1
- package/dist/setup/codex/cli.js +0 -161
- package/dist/setup/codex/cli.js.map +0 -1
- package/dist/setup/codex/configToml.js +0 -639
- package/dist/setup/codex/configToml.js.map +0 -1
- package/dist/setup/codex/constants.js +0 -29
- package/dist/setup/codex/constants.js.map +0 -1
- package/dist/setup/codex/installRoot.js +0 -64
- package/dist/setup/codex/installRoot.js.map +0 -1
- package/dist/setup/codex/state.js +0 -270
- package/dist/setup/codex/state.js.map +0 -1
- package/dist/setup/codex.js +0 -12
- package/dist/setup/codex.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 -300
- package/dist/setup/doctor/core.js.map +0 -1
- package/dist/setup/doctor/diagnostics.js +0 -240
- package/dist/setup/doctor/diagnostics.js.map +0 -1
- package/dist/setup/doctor/opencode.js +0 -313
- 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/setup/opencode.js.map +0 -1
- package/dist/setup/smokeChecks.js.map +0 -1
- package/dist/state/installRoot.js.map +0 -1
- package/dist/state/progressCommit.js +0 -289
- package/dist/state/progressCommit.js.map +0 -1
- package/dist/state/startupAnalysis/benchmark.js.map +0 -1
- package/dist/state/startupAnalysis/contract.js.map +0 -1
- package/dist/state/startupAnalysis/helpers.js.map +0 -1
- package/dist/state/startupAnalysis/index.js.map +0 -1
- package/dist/state/startupAnalysis/metrics.js.map +0 -1
- package/dist/state/startupAnalysis/records.js.map +0 -1
- package/dist/state/startupAnalysis/report.js.map +0 -1
- package/dist/state/startupAnalysis/threshold.js.map +0 -1
- package/dist/state/startupAnalysis.js.map +0 -1
- package/dist/upgrade/appContentRefresh.js.map +0 -1
- package/dist/upgrade/appModel.js.map +0 -1
- package/dist/upgrade/bundleEvidence.js.map +0 -1
- package/dist/upgrade/channels.js.map +0 -1
- package/dist/upgrade/cliProbe.js +0 -22
- package/dist/upgrade/cliProbe.js.map +0 -1
- package/dist/upgrade/coexistenceProbe.js +0 -107
- package/dist/upgrade/coexistenceProbe.js.map +0 -1
- package/dist/upgrade/compatibility.js.map +0 -1
- package/dist/upgrade/doctor.js.map +0 -1
- package/dist/upgrade/doctorClassifier.js.map +0 -1
- package/dist/upgrade/installedHooksRetirement.js.map +0 -1
- package/dist/upgrade/legacyAgentCleanup.js.map +0 -1
- package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -570
- package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
- package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
- package/dist/upgrade/nextMajorDoctor.js.map +0 -1
- package/dist/upgrade/npxPlatformStatus.js.map +0 -1
- package/dist/upgrade/projectIntegration.js.map +0 -1
- package/dist/upgrade/projectIntegrationDecision.js.map +0 -1
- package/dist/upgrade/runtimeMigration.js.map +0 -1
- package/dist/upgrade/upgradeCommands.js.map +0 -1
- package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
- package/dist/upgrade/v3CapabilitySurface.js.map +0 -1
- package/dist/upgrade/versionResolution.js.map +0 -1
- package/dist/validate/appHomeContract.js.map +0 -1
- package/dist/validate/capability.js.map +0 -1
- package/dist/validate/crossCapability.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/nodeFormChecks.js +0 -488
- 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 -62
- package/dist/validate/lifecycleAdapters.js.map +0 -1
- package/dist/validate/selfAudit.js.map +0 -1
- package/dist/validate/vocabularyAuthority.js.map +0 -1
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import {
|
|
3
|
+
import { preCutoverCommand } from "../preCutoverCommand.js";
|
|
4
|
+
import { loadDocsPathOverrides, resolveArtifactPath, } from "../../registries/artifactRegistry.js";
|
|
4
5
|
import { activeObjectiveName, artifactPath, discoverSchemasDir, loadSchemas, resolveArtifactPathLocal, } from "../appContext.js";
|
|
5
6
|
import { validateAgentString } from "../argvalidate.js";
|
|
6
|
-
import { loadDocsPathOverrides } from "../../registries/artifactRegistry.js";
|
|
7
7
|
import { emitStructured } from "../structured.js";
|
|
8
|
-
import { COMMAND_FILTERS, emitStateStructured, extractEntries, filterByFieldValue, filterByTopic, formatEntry, loadArtifact, missingSchemaError,
|
|
8
|
+
import { COMMAND_FILTERS, emitStateStructured, extractEntries, filterByFieldValue, filterByTopic, formatEntry, loadArtifact, missingSchemaError, sourceMetadata, structuredState, validateFilterValues, } from "../stateQuery.js";
|
|
9
9
|
import { displayFields, queryTodo } from "./state/index.js";
|
|
10
|
+
import { STATE_FAMILY_GET_COMMANDS, STATE_FAMILY_LIST_COMMANDS } from "../capabilityContext/types.js";
|
|
11
|
+
import { entityPublicRetrieval } from "../../state/retrievalAuthority.js";
|
|
12
|
+
import { listProgressEntities } from "../../state/progressEntities.js";
|
|
13
|
+
import { readChangelog } from "../../state/changelog.js";
|
|
10
14
|
const ENCODED_TRAVERSAL_RE = /%(?:2e|2f|5c)/i;
|
|
11
15
|
const ALLOWED_RAW_ARTIFACT_USES = [
|
|
12
16
|
"artifact writes",
|
|
@@ -17,7 +21,7 @@ const ALLOWED_RAW_ARTIFACT_USES = [
|
|
|
17
21
|
"unavailable or incomplete CLI state after CLI fallbacks",
|
|
18
22
|
"benchmark analysis",
|
|
19
23
|
];
|
|
20
|
-
const BENCHMARK_CONTEXT_COMMAND = "
|
|
24
|
+
const BENCHMARK_CONTEXT_COMMAND = preCutoverCommand("prime --context optimize --format json");
|
|
21
25
|
const STATE_COMMAND_NAMES = new Set([
|
|
22
26
|
"decisions",
|
|
23
27
|
"docs",
|
|
@@ -43,7 +47,16 @@ function projectRelativeOrAbsolute(p) {
|
|
|
43
47
|
}
|
|
44
48
|
function artifactReadInterfaces(name, record) {
|
|
45
49
|
const artifactId = record !== null ? record.artifactId : name;
|
|
46
|
-
const
|
|
50
|
+
const retrieval = (entityPublicRetrieval().commands ?? {});
|
|
51
|
+
const experimentList = retrieval.experiments.list
|
|
52
|
+
.replace(" [--limit N] [--cursor TOKEN]", " --limit 20");
|
|
53
|
+
const routineCommand = artifactId === "experiments"
|
|
54
|
+
? experimentList
|
|
55
|
+
: STATE_FAMILY_LIST_COMMANDS[artifactId] ?? (STATE_COMMAND_NAMES.has(artifactId) ? `agentera state ${artifactId} --format json` : null);
|
|
56
|
+
const requiredSelectors = artifactId === "experiments" ? ["--objective OBJECTIVE_ID"] : [];
|
|
57
|
+
const detailCommand = artifactId === "experiments"
|
|
58
|
+
? retrieval.experiments.get
|
|
59
|
+
: STATE_FAMILY_GET_COMMANDS[artifactId] ?? null;
|
|
47
60
|
let advancedCommand;
|
|
48
61
|
if (artifactId === "benchmark_context")
|
|
49
62
|
advancedCommand = BENCHMARK_CONTEXT_COMMAND;
|
|
@@ -52,7 +65,11 @@ function artifactReadInterfaces(name, record) {
|
|
|
52
65
|
else
|
|
53
66
|
advancedCommand = `agentera query ${artifactId} --format json`;
|
|
54
67
|
let policy;
|
|
55
|
-
if (
|
|
68
|
+
if (artifactId === "experiments")
|
|
69
|
+
policy = "Replace OBJECTIVE_ID with one stable objective identity, use the objective-scoped bounded list for discovery, and use exact get for detail; no selector-free normal read exists.";
|
|
70
|
+
else if (STATE_FAMILY_LIST_COMMANDS[artifactId])
|
|
71
|
+
policy = "Use bounded state list for discovery and exact state get for detail before any raw artifact access.";
|
|
72
|
+
else if (routineCommand)
|
|
56
73
|
policy = "Use the routine state command for normal content reads before any raw artifact access.";
|
|
57
74
|
else if (advancedCommand)
|
|
58
75
|
policy = "Use the listed CLI discovery/query surface before any last-resort raw artifact access.";
|
|
@@ -60,6 +77,9 @@ function artifactReadInterfaces(name, record) {
|
|
|
60
77
|
policy = "No normal content-read command is registered; raw access is limited to allowed boundary cases.";
|
|
61
78
|
return {
|
|
62
79
|
normal_read_command: routineCommand,
|
|
80
|
+
normal_read_required_selectors: requiredSelectors,
|
|
81
|
+
normal_detail_command: detailCommand,
|
|
82
|
+
normal_read_guidance: policy,
|
|
63
83
|
advanced_query_command: advancedCommand,
|
|
64
84
|
raw_access_boundary: {
|
|
65
85
|
normal_policy: policy,
|
|
@@ -67,7 +87,7 @@ function artifactReadInterfaces(name, record) {
|
|
|
67
87
|
},
|
|
68
88
|
};
|
|
69
89
|
}
|
|
70
|
-
function artifactLocationRecord(name, info, schemasDir
|
|
90
|
+
function artifactLocationRecord(name, info, schemasDir) {
|
|
71
91
|
const record = info.record ?? null;
|
|
72
92
|
const schema = info.schema && typeof info.schema === "object" ? info.schema : {};
|
|
73
93
|
// cast: schema.meta is read from a parsed artifact schema (YAML IO boundary)
|
|
@@ -76,13 +96,14 @@ function artifactLocationRecord(name, info, schemasDir, docsOverrides) {
|
|
|
76
96
|
const artifactId = record !== null ? record.artifactId : name;
|
|
77
97
|
const displayName = record !== null ? record.displayName : String(meta.name ?? name);
|
|
78
98
|
const defaultPath = record !== null ? record.defaultPath : String(info.path ?? "");
|
|
79
|
-
|
|
80
|
-
|
|
99
|
+
const docsOverrides = record !== null ? loadDocsPathOverrides(process.cwd()) : {};
|
|
100
|
+
const mappedPath = record !== null && record.docsYamlCanOverridePath && record.displayName in docsOverrides
|
|
101
|
+
? docsOverrides[record.displayName]
|
|
102
|
+
: defaultPath;
|
|
103
|
+
const resolutionSource = record !== null
|
|
104
|
+
? mappedPath === defaultPath ? "registry default" : "docs mapping for registry identity"
|
|
105
|
+
: "schema metadata";
|
|
81
106
|
const caveats = [];
|
|
82
|
-
if (record !== null && record.docsYamlCanOverridePath && record.displayName in docsOverrides) {
|
|
83
|
-
mappedPath = docsOverrides[record.displayName];
|
|
84
|
-
resolutionSource = ".agentera/docs.yaml mapping";
|
|
85
|
-
}
|
|
86
107
|
const objectiveName = activeObjectiveName();
|
|
87
108
|
let resolvedPath = null;
|
|
88
109
|
if (record !== null && record.pathTemplate && mappedPath.includes("<name>") && !objectiveName) {
|
|
@@ -104,14 +125,15 @@ function artifactLocationRecord(name, info, schemasDir, docsOverrides) {
|
|
|
104
125
|
display_path: resolvedPath !== null ? projectRelativeOrAbsolute(resolvedPath) : mappedPath,
|
|
105
126
|
resolution_source: resolutionSource,
|
|
106
127
|
exists: resolvedPath !== null ? fs.existsSync(resolvedPath) : false,
|
|
107
|
-
docs_yaml_can_override_path: record
|
|
128
|
+
docs_yaml_can_override_path: record?.docsYamlCanOverridePath ?? false,
|
|
108
129
|
project_boundary_check: resolvedPath !== null ? "enforced" : "not_resolved",
|
|
109
130
|
};
|
|
110
131
|
return {
|
|
111
|
-
|
|
132
|
+
artifact: artifactId,
|
|
112
133
|
name: artifactId,
|
|
113
134
|
display_name: displayName,
|
|
114
135
|
artifact_type: record !== null ? record.artifactType : meta.artifact_type ?? "unknown",
|
|
136
|
+
implementation_status: record !== null ? record.implementationStatus : meta.implementation_status ?? "implemented",
|
|
115
137
|
format: typeof meta === "object" ? meta.format ?? "unknown" : "unknown",
|
|
116
138
|
producer: record !== null ? [...record.producers].sort() : meta.producer ?? "unknown",
|
|
117
139
|
consumers: record !== null ? [...record.consumers].sort() : meta.consumers ?? "unknown",
|
|
@@ -130,9 +152,8 @@ function fileExists(p) {
|
|
|
130
152
|
}
|
|
131
153
|
}
|
|
132
154
|
export function artifactLocationContract(schemasDir, schemas) {
|
|
133
|
-
const docsOverrides = loadDocsPathOverrides(process.cwd());
|
|
134
155
|
const names = Object.keys(schemas).sort();
|
|
135
|
-
const records = names.map((name) => artifactLocationRecord(name, schemas[name], schemasDir
|
|
156
|
+
const records = names.map((name) => artifactLocationRecord(name, schemas[name], schemasDir));
|
|
136
157
|
// cast: record.caveats is built from schema/registry path resolution (IO boundary)
|
|
137
158
|
const caveats = records.flatMap((record) => record.caveats);
|
|
138
159
|
return {
|
|
@@ -140,8 +161,7 @@ export function artifactLocationContract(schemasDir, schemas) {
|
|
|
140
161
|
status: dirExists(schemasDir) ? "complete" : "missing_schemas",
|
|
141
162
|
source: {
|
|
142
163
|
schemas_dir: schemasDir,
|
|
143
|
-
|
|
144
|
-
docs_yaml_overrides_loaded: Object.keys(docsOverrides).length > 0,
|
|
164
|
+
path_overrides: "disabled_for_entity_authority",
|
|
145
165
|
},
|
|
146
166
|
source_contract: {
|
|
147
167
|
raw_artifact_reads_required_for_discovery: false,
|
|
@@ -213,30 +233,35 @@ function queryGeneric(args, schemas, name, io) {
|
|
|
213
233
|
}
|
|
214
234
|
return 0;
|
|
215
235
|
}
|
|
216
|
-
function
|
|
217
|
-
|
|
218
|
-
|
|
236
|
+
function matchedSchemaName(schemas, query) {
|
|
237
|
+
if (query in schemas)
|
|
238
|
+
return query;
|
|
239
|
+
return Object.keys(schemas).find((name) => query === name.replace(/s$/, "") || query === `${name}s`) ?? null;
|
|
240
|
+
}
|
|
241
|
+
function rejectEntityAggregateQuery(args, name, query, io) {
|
|
219
242
|
const format = args.format ?? "text";
|
|
220
|
-
const
|
|
221
|
-
if (
|
|
222
|
-
|
|
223
|
-
return 1;
|
|
243
|
+
const command = `agentera state ${name} --format ${format}`;
|
|
244
|
+
if (format !== "text") {
|
|
245
|
+
emitStructured({ schemaVersion: "agentera.stateFailure.v1", status: "fail", error: { class: "unsupported_target", message: `routine artifact alias '${query}' is not available through state query`, syntax: command, example: command, recovery: `Use the canonical entity-aware command: ${command}` } }, format, out(io));
|
|
224
246
|
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
if (entries.length === 0) {
|
|
228
|
-
if (format !== "text")
|
|
229
|
-
emitStructured(null, format, o);
|
|
230
|
-
return 0;
|
|
247
|
+
else {
|
|
248
|
+
err(io)(`Unsupported routine query: ${query}. Use \`${command}\` instead.\n`);
|
|
231
249
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
250
|
+
return 1;
|
|
251
|
+
}
|
|
252
|
+
function queryLastPhase(args, schemas, io) {
|
|
253
|
+
const o = out(io);
|
|
254
|
+
const format = args.format ?? "text";
|
|
255
|
+
const response = listProgressEntities(process.cwd(), 1, {}, undefined, { format: format });
|
|
256
|
+
const entry = Array.isArray(response.entries) ? response.entries[0] : undefined;
|
|
257
|
+
const record = entry?.record;
|
|
258
|
+
const phase = String(record?.phase ?? "");
|
|
259
|
+
if (format === "text") {
|
|
260
|
+
if (phase)
|
|
261
|
+
o(`${phase}\n`);
|
|
237
262
|
}
|
|
238
|
-
|
|
239
|
-
|
|
263
|
+
else
|
|
264
|
+
emitStructured(entry ? { phase, id: entry.id, artifact: entry.artifact, provenance: entry.provenance, snapshot: response.snapshot, retrieval: { get: `agentera state progress get --id ${entry.id} --format json` } } : null, format, o);
|
|
240
265
|
return 0;
|
|
241
266
|
}
|
|
242
267
|
function queryDesign(args, schemas, io) {
|
|
@@ -317,10 +342,6 @@ export function cmdQuery(args, io) {
|
|
|
317
342
|
if (query.includes("/") || query.includes("\\") || query === "." || query === ".." || ENCODED_TRAVERSAL_RE.test(query)) {
|
|
318
343
|
throw new Error(`unsupported artifact/query name ${pyRepr(query)}; path-like values are not artifact names`);
|
|
319
344
|
}
|
|
320
|
-
if (STATE_COMMAND_NAMES.has(query)) {
|
|
321
|
-
e(`Unsupported routine query: ${query}. Use \`agentera ${query}\` instead.\n`);
|
|
322
|
-
return 1;
|
|
323
|
-
}
|
|
324
345
|
const schemas = loadSchemas(discoverSchemasDir());
|
|
325
346
|
const stateArgs = args;
|
|
326
347
|
const handlers = {
|
|
@@ -329,16 +350,18 @@ export function cmdQuery(args, io) {
|
|
|
329
350
|
"open-todos": (a, s, ioo) => queryTodo({ ...a, command: "todo" }, s, ioo, true),
|
|
330
351
|
};
|
|
331
352
|
if (query in handlers) {
|
|
332
|
-
if (format
|
|
333
|
-
return
|
|
334
|
-
return handlers[query](args, schemas, io);
|
|
353
|
+
if (format === "text" || !(query in schemas))
|
|
354
|
+
return handlers[query](args, schemas, io);
|
|
335
355
|
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
356
|
+
const name = matchedSchemaName(schemas, query);
|
|
357
|
+
if (name !== null) {
|
|
358
|
+
if (STATE_COMMAND_NAMES.has(name)) {
|
|
359
|
+
return rejectEntityAggregateQuery(args, name, query, io);
|
|
360
|
+
}
|
|
361
|
+
if (name === "changelog" && format !== "text") {
|
|
362
|
+
return emitStateStructured(name, readChangelog(process.cwd()).projection, format, args.fields, o, e);
|
|
341
363
|
}
|
|
364
|
+
return queryGeneric(args, schemas, name, io);
|
|
342
365
|
}
|
|
343
366
|
e(`Unknown query: ${query}\n`);
|
|
344
367
|
return 1;
|
|
@@ -346,4 +369,3 @@ export function cmdQuery(args, io) {
|
|
|
346
369
|
function pyRepr(value) {
|
|
347
370
|
return value.includes("'") && !value.includes('"') ? `"${value}"` : `'${value}'`;
|
|
348
371
|
}
|
|
349
|
-
//# sourceMappingURL=query.js.map
|
|
@@ -5,14 +5,22 @@ import { resolveProfileDirOverride, resolveXdgDataHome } from "../../core/envPat
|
|
|
5
5
|
import { expanduser } from "../../core/paths.js";
|
|
6
6
|
import { usageMain, corpusTooLargeReason } from "../../analytics/usageStats.js";
|
|
7
7
|
import { extractCorpusMain } from "../../analytics/extractCorpus.js";
|
|
8
|
+
import { tiersDirForCorpusPath, assessTiers, readBoundedMetadata, } from "../../analytics/extractCorpus/index.js";
|
|
8
9
|
function buildExtractArgv(args, corpusPath) {
|
|
9
|
-
|
|
10
|
+
// Refresh publishes bounded evidence tiers to the directory co-located with
|
|
11
|
+
// the canonical corpus path (`<dir>/tiers`); the extract engine no longer
|
|
12
|
+
// accepts the monolithic `--output corpusPath` write target (tiers are the
|
|
13
|
+
// only canonical output). Passing `--tier-output` makes the displayed
|
|
14
|
+
// `corpus_path`/`tier_path` truthful: tiers land at `dirname(corpusPath)/tiers`.
|
|
15
|
+
const argv = ["--tier-output", tiersDirForCorpusPath(corpusPath)];
|
|
10
16
|
for (const root of args.projectRoot ?? [])
|
|
11
17
|
argv.push("--project-root", root);
|
|
12
18
|
if (args.codexSessionsDir)
|
|
13
19
|
argv.push("--codex-sessions-dir", args.codexSessionsDir);
|
|
14
20
|
if (args.claudeProjectsDir)
|
|
15
21
|
argv.push("--claude-projects-dir", args.claudeProjectsDir);
|
|
22
|
+
for (const source of args.importSources ?? [])
|
|
23
|
+
argv.push("--import-source", source);
|
|
16
24
|
if (args.opencodeConversationsDir)
|
|
17
25
|
argv.push("--opencode-conversations-dir", args.opencodeConversationsDir);
|
|
18
26
|
if (args.copilotConversationsDir)
|
|
@@ -23,8 +31,6 @@ function buildExtractArgv(args, corpusPath) {
|
|
|
23
31
|
argv.push("--cursor-chats-dir", args.cursorChatsDir);
|
|
24
32
|
if (args.noCodex)
|
|
25
33
|
argv.push("--no-codex");
|
|
26
|
-
if (args.noClaude)
|
|
27
|
-
argv.push("--no-claude");
|
|
28
34
|
if (args.noOpencode)
|
|
29
35
|
argv.push("--no-opencode");
|
|
30
36
|
if (args.noCopilot)
|
|
@@ -38,7 +44,7 @@ function buildExtractArgv(args, corpusPath) {
|
|
|
38
44
|
return argv;
|
|
39
45
|
}
|
|
40
46
|
function usageSyntax() {
|
|
41
|
-
return "agentera usage [--format text|json] [--corpus PATH] [--project VALUE]";
|
|
47
|
+
return "agentera usage [--format text|json] [--corpus PATH] [--project VALUE] [--sources active|all]";
|
|
42
48
|
}
|
|
43
49
|
function usageExample() {
|
|
44
50
|
return "agentera usage --format json --project agentera";
|
|
@@ -73,30 +79,62 @@ export function statsCorpusPath(env = process.env, platform = process.platform)
|
|
|
73
79
|
}
|
|
74
80
|
/** Faithful port of `_stats_existing_corpus_status`. */
|
|
75
81
|
export function statsExistingCorpusStatus(corpusPath) {
|
|
82
|
+
// Bounded tier path: when tiers are published, report readiness from the
|
|
83
|
+
// manifest + retained corpus metadata without reading full evidence. The
|
|
84
|
+
// documented `tier_state`/`tier_path` fields extend the legacy shape;
|
|
85
|
+
// existing `status`/`reason`/`extracted_at`/`total_records` are preserved.
|
|
86
|
+
const tiersDir = tiersDirForCorpusPath(corpusPath);
|
|
87
|
+
const assessment = assessTiers(tiersDir, corpusPath);
|
|
88
|
+
if (assessment.analyzable) {
|
|
89
|
+
const meta = readBoundedMetadata(tiersDir);
|
|
90
|
+
const manifest = meta.manifest;
|
|
91
|
+
const extractedAt = meta.corpusMetadata?.extracted_at ?? null;
|
|
92
|
+
return {
|
|
93
|
+
status: "ready",
|
|
94
|
+
path: corpusPath,
|
|
95
|
+
tier_path: tiersDir,
|
|
96
|
+
tier_state: assessment.state,
|
|
97
|
+
reason: "bounded evidence tier published",
|
|
98
|
+
extracted_at: extractedAt ?? (manifest?.published_at ?? null),
|
|
99
|
+
total_records: manifest?.total_records ?? 0,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
if (assessment.state === "oversized" || assessment.state === "corrupt") {
|
|
103
|
+
return {
|
|
104
|
+
status: "stale",
|
|
105
|
+
path: corpusPath,
|
|
106
|
+
tier_path: tiersDir,
|
|
107
|
+
tier_state: assessment.state,
|
|
108
|
+
reason: assessment.recovery ?? `${assessment.state} evidence tier`,
|
|
109
|
+
...(assessment.artifact ? { artifact: assessment.artifact } : {}),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
// Legacy or missing: preserve the corpus-envelope status behavior.
|
|
76
113
|
if (!fs.existsSync(corpusPath)) {
|
|
77
114
|
return { status: "missing", path: corpusPath, reason: "corpus file does not exist" };
|
|
78
115
|
}
|
|
79
116
|
const tooLarge = corpusTooLargeReason(corpusPath);
|
|
80
117
|
if (tooLarge) {
|
|
81
|
-
return { status: "stale", path: corpusPath, reason: tooLarge };
|
|
118
|
+
return { status: "stale", path: corpusPath, tier_state: "legacy", reason: tooLarge };
|
|
82
119
|
}
|
|
83
120
|
let data;
|
|
84
121
|
try {
|
|
85
122
|
data = JSON.parse(fs.readFileSync(corpusPath, "utf8"));
|
|
86
123
|
}
|
|
87
124
|
catch (exc) {
|
|
88
|
-
return { status: "stale", path: corpusPath, reason: `corpus is not readable JSON: ${exc.message}` };
|
|
125
|
+
return { status: "stale", path: corpusPath, tier_state: "legacy", reason: `corpus is not readable JSON: ${exc.message}` };
|
|
89
126
|
}
|
|
90
127
|
const records = data && typeof data === "object" && !Array.isArray(data) ? data.records ?? [] : [];
|
|
91
128
|
const hasTurn = Array.isArray(records) &&
|
|
92
129
|
records.some((r) => r && typeof r === "object" && r.source_kind === "conversation_turn");
|
|
93
130
|
if (!hasTurn) {
|
|
94
|
-
return { status: "stale", path: corpusPath, reason: "corpus has no conversation_turn records" };
|
|
131
|
+
return { status: "stale", path: corpusPath, tier_state: "legacy", reason: "corpus has no conversation_turn records" };
|
|
95
132
|
}
|
|
96
133
|
const metadata = data.metadata && typeof data.metadata === "object" ? data.metadata : {};
|
|
97
134
|
return {
|
|
98
135
|
status: "ready",
|
|
99
136
|
path: corpusPath,
|
|
137
|
+
tier_state: "legacy",
|
|
100
138
|
reason: "existing corpus has conversation_turn records",
|
|
101
139
|
extracted_at: metadata.extracted_at ?? null,
|
|
102
140
|
total_records: records.length,
|
|
@@ -105,9 +143,9 @@ export function statsExistingCorpusStatus(corpusPath) {
|
|
|
105
143
|
/**
|
|
106
144
|
* Faithful port of scripts/agentera `cmd_stats` (canonical command is `report`;
|
|
107
145
|
* `stats` is the deprecated alias and shares this logic). The plain read path
|
|
108
|
-
* reuses the ported usage engine
|
|
109
|
-
*
|
|
110
|
-
*
|
|
146
|
+
* reuses the ported usage engine over bounded tiers (with a legacy
|
|
147
|
+
* corpus.json fallback when no tiers are published). `stats refresh` publishes
|
|
148
|
+
* bounded tiers from local runtime history under explicit consent.
|
|
111
149
|
*/
|
|
112
150
|
export function cmdReport(args, io = {}) {
|
|
113
151
|
const out = io.out ?? ((t) => process.stdout.write(t));
|
|
@@ -129,8 +167,24 @@ export function cmdReport(args, io = {}) {
|
|
|
129
167
|
return 2;
|
|
130
168
|
}
|
|
131
169
|
if (!dryRun && consent !== "local-history") {
|
|
132
|
-
|
|
133
|
-
|
|
170
|
+
const recovery = "agentera report refresh --consent local-history";
|
|
171
|
+
const message = "Error: agentera stats refresh requires explicit --consent local-history to read local runtime history. " +
|
|
172
|
+
"Preview first with agentera stats refresh --dry-run";
|
|
173
|
+
if (outputFormat === "json") {
|
|
174
|
+
out(JSON.stringify({
|
|
175
|
+
command: "stats refresh",
|
|
176
|
+
status: "degraded_consent_required",
|
|
177
|
+
recovery,
|
|
178
|
+
privacy: {
|
|
179
|
+
local_history_read: false,
|
|
180
|
+
local_history_write: false,
|
|
181
|
+
tier_write: false,
|
|
182
|
+
required_consent: "local-history",
|
|
183
|
+
provided_consent: consent,
|
|
184
|
+
},
|
|
185
|
+
}, null, 2) + "\n");
|
|
186
|
+
}
|
|
187
|
+
err(`${message}\nRecovery: ${recovery}\n`);
|
|
134
188
|
return 2;
|
|
135
189
|
}
|
|
136
190
|
const corpusPath = args.output || statsCorpusPath();
|
|
@@ -143,27 +197,31 @@ export function cmdReport(args, io = {}) {
|
|
|
143
197
|
privacy: {
|
|
144
198
|
local_history_read: false,
|
|
145
199
|
local_history_write: false,
|
|
146
|
-
|
|
200
|
+
tier_write: false,
|
|
147
201
|
required_consent: "local-history",
|
|
148
202
|
provided_consent: null,
|
|
149
203
|
},
|
|
150
204
|
corpus_path: corpusPath,
|
|
205
|
+
tier_path: tiersDirForCorpusPath(corpusPath),
|
|
151
206
|
engine: { command: engineCommand },
|
|
152
207
|
diagnostics: [
|
|
153
|
-
"dry-run does not read runtime history or write
|
|
154
|
-
"
|
|
208
|
+
"dry-run does not read runtime history or write tier files",
|
|
209
|
+
"published tiers are internal state for stats at $AGENTERA_PROFILE_DIR/intermediate/tiers",
|
|
210
|
+
...(args.importSources?.includes("claude")
|
|
211
|
+
? ["Claude historical import can contain secrets, file contents, and command output; apply stays local and read-only"]
|
|
212
|
+
: []),
|
|
155
213
|
],
|
|
156
214
|
};
|
|
157
215
|
if (outputFormat === "json") {
|
|
158
216
|
out(JSON.stringify(payload, null, 2) + "\n");
|
|
159
217
|
}
|
|
160
218
|
else {
|
|
161
|
-
out(`agentera stats refresh: dry_run\ncorpus=${corpusPath}\nengine=${engineCommand.join(" ")}\n`);
|
|
162
|
-
out("privacy=local_history_read=false,
|
|
219
|
+
out(`agentera stats refresh: dry_run\ncorpus=${corpusPath}\ntiers=${tiersDirForCorpusPath(corpusPath)}\nengine=${engineCommand.join(" ")}\n`);
|
|
220
|
+
out("privacy=local_history_read=false, tier_write=false, required_consent=local-history\n");
|
|
163
221
|
}
|
|
164
222
|
return 0;
|
|
165
223
|
}
|
|
166
|
-
// consent === "local-history":
|
|
224
|
+
// consent === "local-history": extract local history into bounded tiers.
|
|
167
225
|
let engineOut = "";
|
|
168
226
|
let engineErr = "";
|
|
169
227
|
const rc = extractCorpusMain(engineArgv, {
|
|
@@ -175,15 +233,26 @@ export function cmdReport(args, io = {}) {
|
|
|
175
233
|
command: "stats refresh",
|
|
176
234
|
status: refreshStatus,
|
|
177
235
|
exit_signal: rc === 4 ? "EX2" : null,
|
|
178
|
-
privacy: {
|
|
236
|
+
privacy: {
|
|
237
|
+
local_history_read: true,
|
|
238
|
+
local_history_write: false,
|
|
239
|
+
tier_write: rc === 0,
|
|
240
|
+
required_consent: "local-history",
|
|
241
|
+
provided_consent: "local-history",
|
|
242
|
+
historical_imports: args.importSources ?? [],
|
|
243
|
+
historical_import_warning: args.importSources?.includes("claude")
|
|
244
|
+
? "Claude transcripts can contain secrets, file contents, and command output. Import is local and read-only."
|
|
245
|
+
: null,
|
|
246
|
+
},
|
|
179
247
|
corpus_path: corpusPath,
|
|
248
|
+
tier_path: tiersDirForCorpusPath(corpusPath),
|
|
180
249
|
engine: { command: engineCommand, exit_code: rc, stdout: engineOut.split("\n").filter((l) => l), stderr: engineErr.split("\n").filter((l) => l) },
|
|
181
250
|
};
|
|
182
251
|
if (outputFormat === "json") {
|
|
183
252
|
out(JSON.stringify(payload, null, 2) + "\n");
|
|
184
253
|
}
|
|
185
254
|
else {
|
|
186
|
-
out(`agentera stats refresh: ${payload.status}\ncorpus=${corpusPath}\n`);
|
|
255
|
+
out(`agentera stats refresh: ${payload.status}\ncorpus=${corpusPath}\ntiers=${tiersDirForCorpusPath(corpusPath)}\n`);
|
|
187
256
|
if (engineOut)
|
|
188
257
|
out(engineOut);
|
|
189
258
|
if (engineErr)
|
|
@@ -221,6 +290,8 @@ export function cmdReport(args, io = {}) {
|
|
|
221
290
|
const engineArgs = ["--corpus", corpusPath];
|
|
222
291
|
if (args.project)
|
|
223
292
|
engineArgs.push("--project", args.project);
|
|
293
|
+
if (args.sources)
|
|
294
|
+
engineArgs.push("--sources", args.sources);
|
|
224
295
|
if (outputFormat === "json")
|
|
225
296
|
engineArgs.push("--json");
|
|
226
297
|
return usageMain(engineArgs, {
|
|
@@ -228,4 +299,3 @@ export function cmdReport(args, io = {}) {
|
|
|
228
299
|
err: (t) => err(t + "\n"),
|
|
229
300
|
});
|
|
230
301
|
}
|
|
231
|
-
//# sourceMappingURL=report.js.map
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import { loadYamlMapping } from "../../core/yaml.js";
|
|
3
|
+
import { HybridRouteRegistryError, resolveRouteRequest } from "../../registries/hybridRoute.js";
|
|
4
|
+
import { RouteReceiptValidationError, validateRouteReceiptSubmission } from "../../registries/hybridRouteReceipt.js";
|
|
5
|
+
import { evaluateHybridRoute } from "../../eval/hybridRouteEvaluation.js";
|
|
6
|
+
import { emitStructured } from "../structured.js";
|
|
7
|
+
import { emitInvalidInput } from "../errors.js";
|
|
8
|
+
import { preCutoverCommand } from "../preCutoverCommand.js";
|
|
9
|
+
/** A conformance report that fails is a failed CLI gate, not a successful invocation. */
|
|
10
|
+
export const ROUTE_EVALUATION_FAILED_EXIT_CODE = 1;
|
|
11
|
+
export function routeEvaluationExitCode(report) {
|
|
12
|
+
return report.status === "fail" ? ROUTE_EVALUATION_FAILED_EXIT_CODE : 0;
|
|
13
|
+
}
|
|
14
|
+
function decodeRouteInput(bytes) {
|
|
15
|
+
return new TextDecoder("utf-8", { fatal: true }).decode(bytes);
|
|
16
|
+
}
|
|
17
|
+
function loadRouteInput(source, readStdin) {
|
|
18
|
+
let bytes;
|
|
19
|
+
try {
|
|
20
|
+
if (source === "-") {
|
|
21
|
+
const stdin = readStdin();
|
|
22
|
+
bytes = typeof stdin === "string" ? Buffer.from(stdin, "utf8") : stdin;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
bytes = fs.readFileSync(source);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
throw new Error("route request input is not readable");
|
|
30
|
+
}
|
|
31
|
+
return loadYamlMapping(decodeRouteInput(bytes));
|
|
32
|
+
}
|
|
33
|
+
function invalidRouteInput(io, body) {
|
|
34
|
+
return emitInvalidInput({ out: io.out, err: io.err }, { format: "json", body });
|
|
35
|
+
}
|
|
36
|
+
function parse(argv) {
|
|
37
|
+
let input;
|
|
38
|
+
let format = "json";
|
|
39
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
40
|
+
const argument = argv[index];
|
|
41
|
+
const [name, inline] = argument.split("=", 2);
|
|
42
|
+
if (name === "--input" || name === "--format") {
|
|
43
|
+
const value = inline ?? argv[++index];
|
|
44
|
+
if (!value || value.startsWith("--"))
|
|
45
|
+
return { class: "missing_argument", message: `${name} requires a value`, syntax: `${name} VALUE` };
|
|
46
|
+
if (name === "--input") {
|
|
47
|
+
if (input)
|
|
48
|
+
return { class: "mutually_exclusive", message: "--input may only be supplied once" };
|
|
49
|
+
input = value;
|
|
50
|
+
}
|
|
51
|
+
else if (value !== "json") {
|
|
52
|
+
return { class: "invalid_choice", message: `argument --format: invalid choice: '${value}' (choose from 'json')`, valid_values: ["json"] };
|
|
53
|
+
}
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
return { class: "unrecognized_argument", message: "unrecognized route argument; request text must be supplied through --input" };
|
|
57
|
+
}
|
|
58
|
+
if (!input)
|
|
59
|
+
return { class: "missing_argument", message: "--input is required so request text is not placed in argv", syntax: "--input PATH", example: preCutoverCommand("route request --input - --format json") };
|
|
60
|
+
return { input, format };
|
|
61
|
+
}
|
|
62
|
+
export function runRouteRequest(argv, io) {
|
|
63
|
+
const parsed = parse(argv);
|
|
64
|
+
if ("class" in parsed)
|
|
65
|
+
return invalidRouteInput(io, parsed);
|
|
66
|
+
let input;
|
|
67
|
+
try {
|
|
68
|
+
input = loadRouteInput(parsed.input, io.stdin ?? readStdin);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return invalidRouteInput(io, { class: "invalid_format", message: "route request input must be a readable YAML or JSON mapping", syntax: "--input PATH" });
|
|
72
|
+
}
|
|
73
|
+
if (Object.keys(input).some((key) => key !== "version" && key !== "request")) {
|
|
74
|
+
return invalidRouteInput(io, { class: "schema_violation", message: "route request input contains unsupported fields" });
|
|
75
|
+
}
|
|
76
|
+
if (input.version !== undefined && input.version !== "agentera.route_request.v1") {
|
|
77
|
+
return invalidRouteInput(io, { class: "schema_violation", message: "route request version must be agentera.route_request.v1" });
|
|
78
|
+
}
|
|
79
|
+
if (typeof input.request !== "string") {
|
|
80
|
+
return invalidRouteInput(io, { class: "invalid_request", message: "route request input requires a string request field" });
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
emitStructured(resolveRouteRequest(input.request), parsed.format, io.out ?? ((text) => process.stdout.write(text)));
|
|
84
|
+
return 0;
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
if (error instanceof HybridRouteRegistryError) {
|
|
88
|
+
return invalidRouteInput(io, { class: "conflict", message: "routing authority validation failed before routing" });
|
|
89
|
+
}
|
|
90
|
+
return invalidRouteInput(io, { class: "invalid_request", message: "route request could not be resolved" });
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export function runRouteReceipt(argv, io) {
|
|
94
|
+
const parsed = parse(argv);
|
|
95
|
+
if ("class" in parsed)
|
|
96
|
+
return invalidRouteInput(io, parsed);
|
|
97
|
+
let input;
|
|
98
|
+
try {
|
|
99
|
+
input = loadRouteInput(parsed.input, io.stdin ?? readStdin);
|
|
100
|
+
emitStructured(validateRouteReceiptSubmission(input), parsed.format, io.out ?? ((text) => process.stdout.write(text)));
|
|
101
|
+
return 0;
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
const message = error instanceof RouteReceiptValidationError
|
|
105
|
+
? `invalid route receipt at ${error.field}: ${error.message}`
|
|
106
|
+
: "route receipt input must be a readable UTF-8 YAML or JSON mapping";
|
|
107
|
+
return emitInvalidInput({ out: io.out, err: io.err }, {
|
|
108
|
+
format: "json",
|
|
109
|
+
body: {
|
|
110
|
+
class: "invalid_receipt",
|
|
111
|
+
message,
|
|
112
|
+
recovery: "Submit the original request and a complete nullable host receipt through --input; no capability was started.",
|
|
113
|
+
},
|
|
114
|
+
exitCode: 64,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/** Run the contract-owned frozen synthetic corpus without invoking a semantic host. */
|
|
119
|
+
export function runRouteEvaluation(argv, io) {
|
|
120
|
+
if (argv.length !== 2 || argv[0] !== "--format" || argv[1] !== "json") {
|
|
121
|
+
return invalidRouteInput(io, {
|
|
122
|
+
class: "unrecognized_argument",
|
|
123
|
+
message: "route evaluation accepts only --format json and never accepts request text or corpus overrides",
|
|
124
|
+
syntax: preCutoverCommand("route evaluate --format json"),
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
const report = evaluateHybridRoute();
|
|
129
|
+
emitStructured(report, "json", io.out ?? ((text) => process.stdout.write(text)));
|
|
130
|
+
return routeEvaluationExitCode(report);
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
return invalidRouteInput(io, {
|
|
134
|
+
class: "conflict",
|
|
135
|
+
message: "routing evaluation authority validation failed before evaluation",
|
|
136
|
+
recovery: "Restore the contract-owned corpus and authorities, then retry; no request was sent or persisted.",
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function readStdin() {
|
|
141
|
+
return process.stdin.isTTY ? Buffer.alloc(0) : fs.readFileSync(0);
|
|
142
|
+
}
|