agentera 3.0.0-dev.4 → 3.0.0-dev.46
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 +108 -22
- package/bundle/.agentera-npx-bundle.json +1 -1
- package/bundle/CHANGELOG.md +1351 -0
- package/bundle/DESIGN.md +229 -0
- package/bundle/LICENSE +201 -0
- package/bundle/README.md +143 -0
- package/bundle/UPGRADE.md +236 -0
- package/bundle/extract-corpus-parity.json +21 -0
- package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
- package/bundle/references/adapters/package-publication.json +437 -0
- package/bundle/references/adapters/package-registry.yaml +434 -189
- package/bundle/references/adapters/package-surface-characterization.md +66 -35
- 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 +518 -0
- package/bundle/references/analysis/verification-policy.yaml +191 -0
- package/bundle/references/artifacts/artifact-registry-interface-model.yaml +20 -10
- package/bundle/references/artifacts/glossary-entry-contract.yaml +1254 -0
- package/bundle/references/artifacts/state-storage-authority.yaml +2982 -0
- package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
- package/bundle/references/cli/app-lifecycle-vocabulary.yaml +7 -8
- package/bundle/references/cli/capability-instruction-contract.yaml +97 -59
- package/bundle/references/cli/hybrid-route-contract.yaml +438 -0
- package/bundle/references/cli/routing-model.md +155 -0
- package/bundle/references/cli/trigger-schema-enrichment.md +147 -0
- package/bundle/references/cli/update-channels.yaml +35 -2
- package/bundle/references/cli/vocabulary-index.yaml +23 -20
- package/bundle/references/cli/vocabulary.md +337 -366
- package/bundle/references/meta/retained-reference-authority.yaml +151 -0
- package/bundle/registry.json +14 -14
- package/bundle/skills/agentera/SKILL.md +218 -408
- package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +84 -0
- package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +2 -2
- package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +25 -0
- package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +37 -18
- package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +102 -0
- package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +6 -5
- package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +27 -0
- package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +176 -0
- package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +12 -12
- package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +5 -5
- package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +16 -0
- package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +7 -7
- package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +51 -0
- package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +2 -2
- package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +20 -0
- package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +144 -0
- package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +80 -0
- package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +16 -0
- package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +18 -18
- package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +18 -18
- package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +2 -2
- package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +16 -0
- package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +9 -9
- package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +76 -0
- package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +9 -7
- package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +23 -0
- package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +121 -0
- package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +66 -0
- package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
- package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +23 -0
- package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +121 -0
- package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +23 -0
- package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +6 -5
- package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +20 -0
- package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +115 -0
- package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +24 -0
- package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +16 -0
- package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
- package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +73 -0
- package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +22 -0
- package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
- package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +16 -16
- package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +7 -6
- package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +23 -0
- package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +18 -20
- package/bundle/skills/agentera/capability_schema_contract.yaml +200 -37
- package/bundle/skills/agentera/protocol.yaml +31 -31
- package/bundle/skills/agentera/route-phrases.yaml +81 -0
- package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +5 -4
- package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +40 -22
- package/bundle/skills/agentera/schemas/artifacts/design.yaml +5 -4
- package/bundle/skills/agentera/schemas/artifacts/docs.yaml +15 -19
- package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +145 -14
- package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
- package/bundle/skills/agentera/schemas/artifacts/health.yaml +58 -21
- package/bundle/skills/agentera/schemas/artifacts/objective.yaml +22 -8
- package/bundle/skills/agentera/schemas/artifacts/plan.yaml +421 -33
- package/bundle/skills/agentera/schemas/artifacts/progress.yaml +143 -53
- package/bundle/skills/agentera/schemas/artifacts/todo.yaml +345 -31
- package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
- package/dist/analytics/extractCorpus/cli.js +190 -0
- package/dist/analytics/extractCorpus/copilotSessions.js +275 -0
- package/dist/analytics/extractCorpus/core.js +392 -0
- package/dist/analytics/extractCorpus/corpus.js +167 -0
- package/dist/analytics/extractCorpus/coverageAudit.js +260 -0
- package/dist/analytics/extractCorpus/cursorSessions.js +425 -0
- package/dist/analytics/extractCorpus/evidenceTiers.js +603 -0
- package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
- package/dist/analytics/extractCorpus/filesystemSources.js +118 -0
- package/dist/analytics/extractCorpus/index.js +14 -0
- package/dist/analytics/extractCorpus/jsonlSessions.js +204 -0
- package/dist/analytics/extractCorpus/sqliteCaps.js +43 -0
- package/dist/analytics/extractCorpus/sqliteSessions.js +367 -0
- package/dist/analytics/extractCorpus/tierReader.js +108 -0
- package/dist/analytics/extractCorpus.js +2 -1791
- package/dist/analytics/glossaryAdviceResolution.js +166 -0
- package/dist/analytics/glossaryInputAcquisition.js +319 -0
- package/dist/analytics/personalGlossaryAdmission.js +133 -0
- package/dist/analytics/personalGlossaryProfile.js +219 -0
- package/dist/analytics/profileSignals.js +211 -0
- package/dist/analytics/usageStats.js +169 -42
- package/dist/audit/terminologyDrift.js +281 -0
- package/dist/bin/agentera.js +3 -2
- package/dist/capabilities/audit/instructions.js +16 -0
- package/dist/capabilities/build/instructions.js +56 -0
- package/dist/capabilities/design/instructions.js +4 -0
- package/dist/capabilities/discuss/instructions.js +29 -0
- package/dist/capabilities/document/instructions.js +11 -0
- package/dist/capabilities/index.js +40 -0
- package/dist/capabilities/optimize/instructions.js +14 -0
- package/dist/capabilities/orchestrate/instructions.js +40 -0
- package/dist/capabilities/plan/instructions.js +32 -0
- package/dist/capabilities/profile/instructions.js +70 -0
- package/dist/capabilities/research/instructions.js +5 -0
- package/dist/capabilities/status/instructions.js +11 -0
- package/dist/capabilities/status/startupInstructions.js +34 -0
- package/dist/capabilities/vision/instructions.js +4 -0
- package/dist/cli/appContext.js +30 -24
- package/dist/cli/argvalidate.js +0 -1
- package/dist/cli/capabilityContext/benchmark.js +565 -0
- package/dist/cli/capabilityContext/bespoke.js +44 -0
- package/dist/cli/capabilityContext/build.js +242 -0
- package/dist/cli/capabilityContext/closeout.js +233 -0
- package/dist/cli/capabilityContext/contract.js +179 -0
- package/dist/cli/capabilityContext/evidence.js +463 -0
- package/dist/cli/capabilityContext/index.js +3 -0
- package/dist/cli/capabilityContext/orchestration.js +131 -0
- package/dist/cli/capabilityContext/planState.js +260 -0
- package/dist/cli/capabilityContext/progress.js +142 -0
- package/dist/cli/capabilityContext/projectVerification.js +409 -0
- package/dist/cli/capabilityContext/shared.js +83 -0
- package/dist/cli/capabilityContext/slim.js +152 -0
- package/dist/cli/capabilityContext/startup.js +150 -0
- package/dist/cli/capabilityContext/startupAggregation.js +68 -0
- package/dist/cli/capabilityContext/types.js +56 -0
- package/dist/cli/capabilityContext.js +1 -2421
- package/dist/cli/commands/appHome.js +22 -0
- package/dist/cli/commands/capability.js +5 -12
- package/dist/cli/commands/compact.js +41 -13
- package/dist/cli/commands/doctor.js +127 -97
- package/dist/cli/commands/durability.js +81 -0
- package/dist/cli/commands/glossaryAdvice.js +138 -0
- package/dist/cli/commands/lint.js +26 -44
- package/dist/cli/commands/personalGlossary.js +176 -0
- package/dist/cli/commands/prime/briefOrientation.js +747 -0
- package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
- package/dist/cli/commands/prime/bundleStatus.js +190 -0
- package/dist/cli/commands/prime/collectEntityOrientation.js +311 -0
- package/dist/cli/commands/prime/collectOrientationState.js +212 -0
- package/dist/cli/commands/prime/orientationOutput.js +397 -0
- package/dist/cli/commands/prime/types.js +1 -0
- package/dist/cli/commands/prime/v1Migration.js +38 -0
- package/dist/cli/commands/prime.js +80 -558
- package/dist/cli/commands/profileGrounding.js +55 -0
- package/dist/cli/commands/query.js +78 -53
- package/dist/cli/commands/report.js +96 -25
- package/dist/cli/commands/route.js +142 -0
- package/dist/cli/commands/schema.js +266 -143
- package/dist/cli/commands/state/decisions.js +387 -0
- package/dist/cli/commands/state/docs.js +70 -0
- package/dist/cli/commands/state/experimentRecords.js +151 -0
- package/dist/cli/commands/state/experiments.js +14 -0
- package/dist/cli/commands/state/get.js +129 -0
- package/dist/cli/commands/state/health.js +14 -0
- package/dist/cli/commands/state/index.js +16 -0
- package/dist/cli/commands/state/list.js +194 -0
- package/dist/cli/commands/state/objective.js +25 -0
- package/dist/cli/commands/state/plan.js +14 -0
- 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 +13 -0
- package/dist/cli/commands/state/shared.js +14 -0
- package/dist/cli/commands/state/todo.js +42 -0
- package/dist/cli/commands/state/write.js +434 -0
- package/dist/cli/commands/upgrade.js +146 -5
- package/dist/cli/commands/upgradeVerify.js +118 -0
- package/dist/cli/commands/validate.js +272 -213
- package/dist/cli/commands/verify.js +24 -9
- package/dist/cli/contracts/bundleStatus.js +1 -0
- package/dist/cli/contracts/orientationState.js +1 -0
- package/dist/cli/dispatch/argvParser.js +32 -0
- package/dist/cli/dispatch/check.js +372 -0
- package/dist/cli/dispatch/commands.js +27 -0
- package/dist/cli/dispatch/index.js +207 -0
- package/dist/cli/dispatch/lifecycle.js +652 -0
- package/dist/cli/dispatch/prime.js +139 -0
- package/dist/cli/dispatch/projections.js +17 -0
- package/dist/cli/dispatch/shared.js +63 -0
- package/dist/cli/dispatch/state.js +140 -0
- package/dist/cli/dispatch.js +1 -996
- package/dist/cli/errors.js +52 -0
- package/dist/cli/help.js +390 -43
- package/dist/cli/migrationRequired.js +87 -0
- package/dist/cli/orientation/attention.js +59 -0
- package/dist/cli/orientation/corpusCoverage.js +102 -0
- package/dist/cli/orientation.js +444 -173
- 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 +59 -0
- package/dist/cli/stateQuery.js +63 -14
- package/dist/cli/structured.js +0 -1
- package/dist/cli/todoMarkdown.js +46 -0
- package/dist/cli/todoReadinessSelection.js +192 -0
- package/dist/cli/todoSeverity.js +18 -0
- package/dist/core/atomicWriter.js +20 -0
- package/dist/core/developmentChannel.js +1 -0
- package/dist/core/developmentInvocation.js +374 -0
- package/dist/core/difflib.js +0 -1
- package/dist/core/envPaths.js +20 -0
- package/dist/core/jsonValue.js +5 -0
- package/dist/core/paths.js +0 -1
- package/dist/core/pyjson.js +67 -3
- 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 +8 -1
- package/dist/eval/evalSkills.js +30 -26
- package/dist/eval/hybridRouteEvaluation.js +155 -0
- package/dist/eval/semanticEval.js +43 -20
- package/dist/eval/semanticFixtures.js +16 -5
- package/dist/hooks/common.js +11 -81
- package/dist/hooks/compaction/apply.js +446 -0
- package/dist/hooks/compaction/dryRun.js +184 -0
- package/dist/hooks/compaction/index.js +22 -0
- package/dist/hooks/compaction/parse.js +325 -0
- package/dist/hooks/compaction/retention.js +202 -0
- package/dist/hooks/compaction/status.js +360 -0
- package/dist/hooks/compaction/types.js +5 -0
- package/dist/hooks/validateArtifact/agentFacing.js +9 -0
- package/dist/hooks/validateArtifact/index.js +92 -0
- package/dist/hooks/validateArtifact/markdown.js +145 -0
- package/dist/hooks/validateArtifact/schema.js +546 -0
- package/dist/hooks/validateArtifact/traversal.js +107 -0
- package/dist/hooks/validateArtifact/violations.js +107 -0
- package/dist/migrate/v2HandoffManifest.js +452 -0
- package/dist/registries/activationContract.js +2 -0
- package/dist/registries/activationTuples.js +106 -0
- package/dist/registries/artifactProtocolIds.js +78 -0
- package/dist/registries/artifactRegistry.js +224 -63
- package/dist/registries/artifactSchemaProjection.js +45 -0
- package/dist/registries/capabilityContract.js +141 -13
- package/dist/registries/evaluatorHandoffContract.js +170 -0
- package/dist/registries/evidenceTierContract.js +371 -0
- package/dist/registries/glossaryAdviceContract.js +79 -0
- package/dist/registries/glossaryCaveatContract.js +67 -0
- package/dist/registries/glossaryConsumerContractValidation.js +787 -0
- package/dist/registries/glossaryEntryContract.js +757 -0
- package/dist/registries/glossaryTermIdentity.js +17 -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 +229 -0
- package/dist/registries/packageRegistry.js +187 -211
- package/dist/registries/todoReadinessContract.js +448 -0
- package/dist/registries/triggerLoader.js +174 -0
- package/dist/registries/verbosityBudgetContract.js +205 -0
- package/dist/release/releaseMetadata.js +385 -0
- 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 -0
- package/dist/setup/opencodeConstants.js +1 -0
- package/dist/setup/sharedSkill.js +45 -0
- package/dist/setup/smokeChecks.js +21 -82
- 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 +846 -0
- package/dist/state/entityMigrationTodo.js +133 -0
- package/dist/state/entityPublicationContext.js +806 -0
- package/dist/state/entityRetrievalHelp.js +506 -0
- package/dist/state/entityStorage.js +896 -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 +64 -25
- 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 +530 -0
- package/dist/state/planIdentity.js +47 -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/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 +432 -0
- package/dist/state/startupAnalysis/contract.js +160 -0
- package/dist/state/startupAnalysis/helpers.js +286 -0
- package/dist/state/startupAnalysis/index.js +6 -0
- package/dist/state/startupAnalysis/metrics.js +340 -0
- package/dist/state/startupAnalysis/records.js +198 -0
- package/dist/state/startupAnalysis/report.js +111 -0
- package/dist/state/startupAnalysis/threshold.js +512 -0
- package/dist/state/startupAnalysis.js +2 -1953
- package/dist/state/startupProjection.js +499 -0
- package/dist/state/stateMode.js +85 -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/todoDocsEntities.js +1064 -0
- package/dist/state/todoDocsEntityValidation.js +158 -0
- package/dist/state/todoMarkdownProjection.js +51 -0
- package/dist/state/todoReconciliationActivation.js +132 -0
- package/dist/state/todoReconciliationInspection.js +173 -0
- package/dist/state/todoReconciliationRepair.js +170 -0
- package/dist/state/todoReconciliationTransaction.js +582 -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 +332 -0
- package/dist/state/write/fields.js +61 -0
- package/dist/state/write/glossaryPublication.js +263 -0
- package/dist/state/write/grammar.js +280 -0
- package/dist/state/write/helpers.js +29 -0
- package/dist/state/write/index.js +12 -0
- package/dist/state/write/input.js +367 -0
- package/dist/state/write/lock.js +837 -0
- package/dist/state/write/mutation.js +234 -0
- package/dist/state/write/operations.js +169 -0
- package/dist/state/write/planEvaluation.js +128 -0
- package/dist/state/write/planPublication.js +179 -0
- package/dist/state/write/runtimeOperations.js +142 -0
- package/dist/state/write/serialize.js +1 -0
- package/dist/state/write/transaction.js +52 -0
- package/dist/state/write/validate.js +7 -0
- package/dist/upgrade/appContentRefresh.js +383 -0
- package/dist/upgrade/appModel.js +8 -7
- package/dist/upgrade/atomicWriter.js +1 -0
- package/dist/upgrade/bundleEvidence.js +33 -0
- package/dist/upgrade/channels.js +12 -8
- package/dist/upgrade/compatibility.js +56 -21
- package/dist/upgrade/doctor.js +197 -192
- package/dist/upgrade/doctorClassifier.js +187 -0
- package/dist/upgrade/installedHooksRetirement.js +196 -0
- package/dist/upgrade/legacyAgentCleanup.js +282 -0
- package/dist/upgrade/lifecycleUpgrade.js +113 -0
- package/dist/upgrade/migrateArtifactsV2ToV3.js +367 -149
- package/dist/upgrade/migrationPublication.js +122 -0
- package/dist/upgrade/nextMajorDoctor.js +155 -0
- package/dist/upgrade/npxPlatformStatus.js +22 -0
- package/dist/upgrade/projectIntegration.js +145 -187
- package/dist/upgrade/projectIntegrationDecision.js +50 -0
- package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
- package/dist/upgrade/runtimeMigration.js +278 -352
- 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 +14 -0
- package/dist/upgrade/versionResolution.js +12 -5
- package/dist/validate/activationArtifactEvidence.js +844 -0
- package/dist/validate/activationConjunction.js +816 -0
- package/dist/validate/activationEvidenceManifest.js +515 -0
- package/dist/validate/activationPackageSemantics.js +29 -0
- package/dist/validate/appHomeContract.js +5 -11
- package/dist/validate/bootstrapAuthority.js +44 -0
- package/dist/validate/capability.js +144 -15
- package/dist/validate/crossCapability.js +15 -10
- package/dist/validate/retainedReferenceAuthority.js +879 -0
- package/dist/validate/selfAudit.js +73 -37
- package/dist/validate/v1LegacyCruft.js +131 -0
- package/dist/validate/vocabularyAuthority.js +303 -0
- package/package.json +53 -27
- package/bundle/references/adapters/cursor.md +0 -213
- 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 -548
- 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 -355
- package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -278
- package/bundle/references/cli/capability-tool-classification.yaml +0 -53
- package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
- package/bundle/references/meta/documentation-inventory.md +0 -43
- package/bundle/references/v1-section-mapping.md +0 -47
- package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
- package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
- package/bundle/skills/agentera/agents/hej.toml +0 -6
- package/bundle/skills/agentera/agents/inspektera.toml +0 -6
- package/bundle/skills/agentera/agents/inspirera.toml +0 -6
- package/bundle/skills/agentera/agents/optimera.toml +0 -6
- package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
- package/bundle/skills/agentera/agents/planera.toml +0 -6
- package/bundle/skills/agentera/agents/profilera.toml +0 -6
- package/bundle/skills/agentera/agents/realisera.toml +0 -6
- package/bundle/skills/agentera/agents/resonera.toml +0 -6
- package/bundle/skills/agentera/agents/visionera.toml +0 -6
- package/bundle/skills/agentera/agents/visualisera.toml +0 -6
- package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +0 -428
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +0 -73
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +0 -35
- package/bundle/skills/agentera/capabilities/hej/instructions.md +0 -331
- package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +0 -69
- package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +0 -58
- package/bundle/skills/agentera/capabilities/inspektera/instructions.md +0 -514
- package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +0 -76
- package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +0 -38
- package/bundle/skills/agentera/capabilities/inspirera/instructions.md +0 -280
- package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +0 -24
- package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +0 -34
- package/bundle/skills/agentera/capabilities/optimera/instructions.md +0 -437
- package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +0 -39
- package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +0 -433
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +0 -64
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +0 -42
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +0 -107
- package/bundle/skills/agentera/capabilities/planera/instructions.md +0 -368
- package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +0 -62
- package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +0 -34
- package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +0 -61
- package/bundle/skills/agentera/capabilities/profilera/instructions.md +0 -419
- package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +0 -18
- package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +0 -45
- package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +0 -57
- package/bundle/skills/agentera/capabilities/realisera/instructions.md +0 -403
- package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +0 -80
- package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +0 -39
- package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +0 -110
- package/bundle/skills/agentera/capabilities/resonera/instructions.md +0 -329
- package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +0 -47
- package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +0 -46
- package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +0 -77
- package/bundle/skills/agentera/capabilities/visionera/instructions.md +0 -309
- package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +0 -41
- package/bundle/skills/agentera/capabilities/visualisera/instructions.md +0 -400
- package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +0 -33
- package/bundle/skills/agentera/references/contract.md +0 -1039
- package/bundle/skills/hej/.claude-plugin/plugin.json +0 -6
- package/bundle/skills/hej/SKILL.md +0 -69
- package/bundle/skills/hej/agents/hej.toml +0 -11
- package/bundle/skills/hej/agents/openai.yaml +0 -8
- 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/cli/appContext.js.map +0 -1
- package/dist/cli/argvalidate.js.map +0 -1
- package/dist/cli/capabilityContext.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.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.js +0 -1012
- 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/dispatch.js.map +0 -1
- package/dist/cli/help.js.map +0 -1
- package/dist/cli/orientation.js.map +0 -1
- package/dist/cli/prime-blob.js.map +0 -1
- package/dist/cli/stateQuery.js.map +0 -1
- package/dist/cli/structured.js.map +0 -1
- package/dist/core/difflib.js.map +0 -1
- package/dist/core/git.js +0 -43
- package/dist/core/git.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.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 -71
- package/dist/hooks/cursorSessionStart.js.map +0 -1
- package/dist/hooks/sessionStart.js +0 -209
- package/dist/hooks/sessionStart.js.map +0 -1
- package/dist/hooks/sessionStop.js +0 -212
- package/dist/hooks/sessionStop.js.map +0 -1
- package/dist/hooks/validateArtifact.js +0 -933
- package/dist/hooks/validateArtifact.js.map +0 -1
- package/dist/registries/artifactRegistry.js.map +0 -1
- package/dist/registries/capabilityContract.js.map +0 -1
- package/dist/registries/packageRegistry.js.map +0 -1
- package/dist/registries/runtimeAdapterRegistry.js +0 -315
- package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
- package/dist/setup/codex.js +0 -1056
- 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 -127
- package/dist/setup/cursor.js.map +0 -1
- package/dist/setup/doctor.js +0 -1297
- package/dist/setup/doctor.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.js.map +0 -1
- package/dist/upgrade/appModel.js.map +0 -1
- package/dist/upgrade/channels.js.map +0 -1
- package/dist/upgrade/compatibility.js.map +0 -1
- package/dist/upgrade/doctor.js.map +0 -1
- package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -571
- package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
- package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
- package/dist/upgrade/projectIntegration.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/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.js +0 -772
- package/dist/validate/lifecycleAdapters.js.map +0 -1
- package/dist/validate/selfAudit.js.map +0 -1
- /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
- /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
- /package/bundle/skills/agentera/capabilities/{hej → status}/schemas/exit.yaml +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { personalProfileGroundingContract } from "../../registries/glossaryEntryContract.js";
|
|
2
|
+
import { emitInvalidInput } from "../errors.js";
|
|
3
|
+
import { acquireProfile } from "../profileAcquisition.js";
|
|
4
|
+
import { emitStructured } from "../structured.js";
|
|
5
|
+
const COMMAND = "agentera report profile-grounding --format json";
|
|
6
|
+
const REQUEST_RECOVERY = `Run ${COMMAND}; no profile bytes were changed.`;
|
|
7
|
+
const INVALID_PROFILE_MESSAGE = "PROFILE.md is unavailable for bounded profile grounding.";
|
|
8
|
+
function invalid(io, body, recovery) {
|
|
9
|
+
return emitInvalidInput(io, { format: "json", body: { ...body, recovery } });
|
|
10
|
+
}
|
|
11
|
+
export function runProfileGroundingCommand(argv, io) {
|
|
12
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
13
|
+
const argument = argv[index];
|
|
14
|
+
const [name, inline] = argument.split("=", 2);
|
|
15
|
+
if (name !== "--format") {
|
|
16
|
+
return invalid(io, { class: "unrecognized_argument", message: "profile-grounding accepts only --format json", syntax: COMMAND }, REQUEST_RECOVERY);
|
|
17
|
+
}
|
|
18
|
+
const value = inline ?? argv[++index];
|
|
19
|
+
if (value !== "json") {
|
|
20
|
+
return invalid(io, { class: "invalid_choice", message: "profile-grounding requires --format json", valid_values: ["json"] }, REQUEST_RECOVERY);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const contract = personalProfileGroundingContract();
|
|
24
|
+
const acquired = acquireProfile();
|
|
25
|
+
const output = io.out ?? ((text) => process.stdout.write(text));
|
|
26
|
+
if (acquired.validity.status !== "valid" || acquired.groundingContent === null) {
|
|
27
|
+
emitStructured({
|
|
28
|
+
schemaVersion: contract.schemaVersion,
|
|
29
|
+
command: "report profile-grounding",
|
|
30
|
+
status: acquired.validity.status,
|
|
31
|
+
validity: acquired.validity,
|
|
32
|
+
freshness: acquired.freshness,
|
|
33
|
+
content: null,
|
|
34
|
+
recovery: acquired.validity.recovery,
|
|
35
|
+
error: {
|
|
36
|
+
class: "profile_unavailable",
|
|
37
|
+
message: INVALID_PROFILE_MESSAGE,
|
|
38
|
+
recovery: acquired.validity.recovery,
|
|
39
|
+
},
|
|
40
|
+
}, "json", output);
|
|
41
|
+
return 2;
|
|
42
|
+
}
|
|
43
|
+
emitStructured({
|
|
44
|
+
schemaVersion: contract.schemaVersion,
|
|
45
|
+
command: "report profile-grounding",
|
|
46
|
+
status: "ok",
|
|
47
|
+
validity: acquired.validity,
|
|
48
|
+
freshness: acquired.freshness,
|
|
49
|
+
content: acquired.groundingContent,
|
|
50
|
+
content_utf8_bytes: Buffer.byteLength(acquired.groundingContent),
|
|
51
|
+
excluded: "owned_personal_glossary_section",
|
|
52
|
+
recovery: null,
|
|
53
|
+
}, "json", output);
|
|
54
|
+
return 0;
|
|
55
|
+
}
|
|
@@ -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,
|
|
9
|
-
import { displayFields, queryTodo } from "./state.js";
|
|
8
|
+
import { COMMAND_FILTERS, emitStateStructured, extractEntries, filterByFieldValue, filterByTopic, formatEntry, loadArtifact, missingSchemaError, sourceMetadata, structuredState, validateFilterValues, } from "../stateQuery.js";
|
|
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,21 +87,23 @@ 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 : {};
|
|
93
|
+
// cast: schema.meta is read from a parsed artifact schema (YAML IO boundary)
|
|
73
94
|
const meta = (schema.meta ?? {});
|
|
74
95
|
const schemaFile = path.join(schemasDir, `${name}.yaml`);
|
|
75
96
|
const artifactId = record !== null ? record.artifactId : name;
|
|
76
97
|
const displayName = record !== null ? record.displayName : String(meta.name ?? name);
|
|
77
98
|
const defaultPath = record !== null ? record.defaultPath : String(info.path ?? "");
|
|
78
|
-
|
|
79
|
-
|
|
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";
|
|
80
106
|
const caveats = [];
|
|
81
|
-
if (record !== null && record.docsYamlCanOverridePath && record.displayName in docsOverrides) {
|
|
82
|
-
mappedPath = docsOverrides[record.displayName];
|
|
83
|
-
resolutionSource = ".agentera/docs.yaml mapping";
|
|
84
|
-
}
|
|
85
107
|
const objectiveName = activeObjectiveName();
|
|
86
108
|
let resolvedPath = null;
|
|
87
109
|
if (record !== null && record.pathTemplate && mappedPath.includes("<name>") && !objectiveName) {
|
|
@@ -103,14 +125,15 @@ function artifactLocationRecord(name, info, schemasDir, docsOverrides) {
|
|
|
103
125
|
display_path: resolvedPath !== null ? projectRelativeOrAbsolute(resolvedPath) : mappedPath,
|
|
104
126
|
resolution_source: resolutionSource,
|
|
105
127
|
exists: resolvedPath !== null ? fs.existsSync(resolvedPath) : false,
|
|
106
|
-
docs_yaml_can_override_path: record
|
|
128
|
+
docs_yaml_can_override_path: record?.docsYamlCanOverridePath ?? false,
|
|
107
129
|
project_boundary_check: resolvedPath !== null ? "enforced" : "not_resolved",
|
|
108
130
|
};
|
|
109
131
|
return {
|
|
110
|
-
|
|
132
|
+
artifact: artifactId,
|
|
111
133
|
name: artifactId,
|
|
112
134
|
display_name: displayName,
|
|
113
135
|
artifact_type: record !== null ? record.artifactType : meta.artifact_type ?? "unknown",
|
|
136
|
+
implementation_status: record !== null ? record.implementationStatus : meta.implementation_status ?? "implemented",
|
|
114
137
|
format: typeof meta === "object" ? meta.format ?? "unknown" : "unknown",
|
|
115
138
|
producer: record !== null ? [...record.producers].sort() : meta.producer ?? "unknown",
|
|
116
139
|
consumers: record !== null ? [...record.consumers].sort() : meta.consumers ?? "unknown",
|
|
@@ -129,17 +152,16 @@ function fileExists(p) {
|
|
|
129
152
|
}
|
|
130
153
|
}
|
|
131
154
|
export function artifactLocationContract(schemasDir, schemas) {
|
|
132
|
-
const docsOverrides = loadDocsPathOverrides(process.cwd());
|
|
133
155
|
const names = Object.keys(schemas).sort();
|
|
134
|
-
const records = names.map((name) => artifactLocationRecord(name, schemas[name], schemasDir
|
|
156
|
+
const records = names.map((name) => artifactLocationRecord(name, schemas[name], schemasDir));
|
|
157
|
+
// cast: record.caveats is built from schema/registry path resolution (IO boundary)
|
|
135
158
|
const caveats = records.flatMap((record) => record.caveats);
|
|
136
159
|
return {
|
|
137
160
|
schemaVersion: "agentera.artifact_locations.v1",
|
|
138
161
|
status: dirExists(schemasDir) ? "complete" : "missing_schemas",
|
|
139
162
|
source: {
|
|
140
163
|
schemas_dir: schemasDir,
|
|
141
|
-
|
|
142
|
-
docs_yaml_overrides_loaded: Object.keys(docsOverrides).length > 0,
|
|
164
|
+
path_overrides: "disabled_for_entity_authority",
|
|
143
165
|
},
|
|
144
166
|
source_contract: {
|
|
145
167
|
raw_artifact_reads_required_for_discovery: false,
|
|
@@ -211,30 +233,35 @@ function queryGeneric(args, schemas, name, io) {
|
|
|
211
233
|
}
|
|
212
234
|
return 0;
|
|
213
235
|
}
|
|
214
|
-
function
|
|
215
|
-
|
|
216
|
-
|
|
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) {
|
|
217
242
|
const format = args.format ?? "text";
|
|
218
|
-
const
|
|
219
|
-
if (
|
|
220
|
-
|
|
221
|
-
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));
|
|
222
246
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
if (entries.length === 0) {
|
|
226
|
-
if (format !== "text")
|
|
227
|
-
emitStructured(null, format, o);
|
|
228
|
-
return 0;
|
|
247
|
+
else {
|
|
248
|
+
err(io)(`Unsupported routine query: ${query}. Use \`${command}\` instead.\n`);
|
|
229
249
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
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`);
|
|
235
262
|
}
|
|
236
|
-
|
|
237
|
-
|
|
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);
|
|
238
265
|
return 0;
|
|
239
266
|
}
|
|
240
267
|
function queryDesign(args, schemas, io) {
|
|
@@ -279,6 +306,7 @@ export function cmdQuery(args, io) {
|
|
|
279
306
|
const o = out(io);
|
|
280
307
|
const e = err(io);
|
|
281
308
|
const format = args.format ?? "text";
|
|
309
|
+
// cast: args are parsed CLI argv values passed to the filter validator (external-input boundary)
|
|
282
310
|
validateFilterValues(args, COMMAND_FILTERS.query);
|
|
283
311
|
if (args.limit !== null && args.limit !== undefined && args.limit < 0) {
|
|
284
312
|
throw new Error("limit must be zero or greater");
|
|
@@ -314,10 +342,6 @@ export function cmdQuery(args, io) {
|
|
|
314
342
|
if (query.includes("/") || query.includes("\\") || query === "." || query === ".." || ENCODED_TRAVERSAL_RE.test(query)) {
|
|
315
343
|
throw new Error(`unsupported artifact/query name ${pyRepr(query)}; path-like values are not artifact names`);
|
|
316
344
|
}
|
|
317
|
-
if (STATE_COMMAND_NAMES.has(query)) {
|
|
318
|
-
e(`Unsupported routine query: ${query}. Use \`agentera ${query}\` instead.\n`);
|
|
319
|
-
return 1;
|
|
320
|
-
}
|
|
321
345
|
const schemas = loadSchemas(discoverSchemasDir());
|
|
322
346
|
const stateArgs = args;
|
|
323
347
|
const handlers = {
|
|
@@ -326,16 +350,18 @@ export function cmdQuery(args, io) {
|
|
|
326
350
|
"open-todos": (a, s, ioo) => queryTodo({ ...a, command: "todo" }, s, ioo, true),
|
|
327
351
|
};
|
|
328
352
|
if (query in handlers) {
|
|
329
|
-
if (format
|
|
330
|
-
return
|
|
331
|
-
return handlers[query](args, schemas, io);
|
|
353
|
+
if (format === "text" || !(query in schemas))
|
|
354
|
+
return handlers[query](args, schemas, io);
|
|
332
355
|
}
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
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);
|
|
338
363
|
}
|
|
364
|
+
return queryGeneric(args, schemas, name, io);
|
|
339
365
|
}
|
|
340
366
|
e(`Unknown query: ${query}\n`);
|
|
341
367
|
return 1;
|
|
@@ -343,4 +369,3 @@ export function cmdQuery(args, io) {
|
|
|
343
369
|
function pyRepr(value) {
|
|
344
370
|
return value.includes("'") && !value.includes('"') ? `"${value}"` : `'${value}'`;
|
|
345
371
|
}
|
|
346
|
-
//# sourceMappingURL=query.js.map
|
|
@@ -1,16 +1,26 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
|
+
import { resolveProfileDirOverride, resolveXdgDataHome } from "../../core/envPaths.js";
|
|
5
|
+
import { expanduser } from "../../core/paths.js";
|
|
4
6
|
import { usageMain, corpusTooLargeReason } from "../../analytics/usageStats.js";
|
|
5
7
|
import { extractCorpusMain } from "../../analytics/extractCorpus.js";
|
|
8
|
+
import { tiersDirForCorpusPath, assessTiers, readBoundedMetadata, } from "../../analytics/extractCorpus/index.js";
|
|
6
9
|
function buildExtractArgv(args, corpusPath) {
|
|
7
|
-
|
|
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)];
|
|
8
16
|
for (const root of args.projectRoot ?? [])
|
|
9
17
|
argv.push("--project-root", root);
|
|
10
18
|
if (args.codexSessionsDir)
|
|
11
19
|
argv.push("--codex-sessions-dir", args.codexSessionsDir);
|
|
12
20
|
if (args.claudeProjectsDir)
|
|
13
21
|
argv.push("--claude-projects-dir", args.claudeProjectsDir);
|
|
22
|
+
for (const source of args.importSources ?? [])
|
|
23
|
+
argv.push("--import-source", source);
|
|
14
24
|
if (args.opencodeConversationsDir)
|
|
15
25
|
argv.push("--opencode-conversations-dir", args.opencodeConversationsDir);
|
|
16
26
|
if (args.copilotConversationsDir)
|
|
@@ -21,18 +31,20 @@ function buildExtractArgv(args, corpusPath) {
|
|
|
21
31
|
argv.push("--cursor-chats-dir", args.cursorChatsDir);
|
|
22
32
|
if (args.noCodex)
|
|
23
33
|
argv.push("--no-codex");
|
|
24
|
-
if (args.noClaude)
|
|
25
|
-
argv.push("--no-claude");
|
|
26
34
|
if (args.noOpencode)
|
|
27
35
|
argv.push("--no-opencode");
|
|
28
36
|
if (args.noCopilot)
|
|
29
37
|
argv.push("--no-copilot");
|
|
30
38
|
if (args.noCursor)
|
|
31
39
|
argv.push("--no-cursor");
|
|
40
|
+
if (args.acceptCoverageGap)
|
|
41
|
+
argv.push("--accept-coverage-gap");
|
|
42
|
+
if (args.coverageAuditOnly)
|
|
43
|
+
argv.push("--coverage-audit-only");
|
|
32
44
|
return argv;
|
|
33
45
|
}
|
|
34
46
|
function usageSyntax() {
|
|
35
|
-
return "agentera usage [--format text|json] [--corpus PATH] [--project VALUE]";
|
|
47
|
+
return "agentera usage [--format text|json] [--corpus PATH] [--project VALUE] [--sources active|all]";
|
|
36
48
|
}
|
|
37
49
|
function usageExample() {
|
|
38
50
|
return "agentera usage --format json --project agentera";
|
|
@@ -47,50 +59,82 @@ function validateUsageRequest(format) {
|
|
|
47
59
|
}
|
|
48
60
|
/** Faithful port of `_stats_corpus_path`. */
|
|
49
61
|
export function statsCorpusPath(env = process.env, platform = process.platform) {
|
|
50
|
-
const
|
|
51
|
-
if (
|
|
52
|
-
return path.join(
|
|
62
|
+
const profileOverride = resolveProfileDirOverride(env);
|
|
63
|
+
if (profileOverride)
|
|
64
|
+
return path.join(expanduser(profileOverride), "intermediate", "corpus.json");
|
|
53
65
|
const appHome = env.AGENTERA_HOME;
|
|
54
66
|
if (appHome)
|
|
55
|
-
return path.join(appHome, "intermediate", "corpus.json");
|
|
67
|
+
return path.join(expanduser(appHome), "intermediate", "corpus.json");
|
|
56
68
|
let base;
|
|
57
69
|
if (platform === "darwin") {
|
|
58
70
|
base = path.join(os.homedir(), "Library", "Application Support", "agentera");
|
|
59
71
|
}
|
|
60
72
|
else if (platform === "win32") {
|
|
61
|
-
base = path.join(env.APPDATA || path.join(os.homedir(), "AppData", "Roaming"), "agentera");
|
|
73
|
+
base = path.join(expanduser(env.APPDATA || path.join(os.homedir(), "AppData", "Roaming")), "agentera");
|
|
62
74
|
}
|
|
63
75
|
else {
|
|
64
|
-
base = path.join(env
|
|
76
|
+
base = path.join(resolveXdgDataHome(env), "agentera");
|
|
65
77
|
}
|
|
66
78
|
return path.join(base, "intermediate", "corpus.json");
|
|
67
79
|
}
|
|
68
80
|
/** Faithful port of `_stats_existing_corpus_status`. */
|
|
69
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.
|
|
70
113
|
if (!fs.existsSync(corpusPath)) {
|
|
71
114
|
return { status: "missing", path: corpusPath, reason: "corpus file does not exist" };
|
|
72
115
|
}
|
|
73
116
|
const tooLarge = corpusTooLargeReason(corpusPath);
|
|
74
117
|
if (tooLarge) {
|
|
75
|
-
return { status: "stale", path: corpusPath, reason: tooLarge };
|
|
118
|
+
return { status: "stale", path: corpusPath, tier_state: "legacy", reason: tooLarge };
|
|
76
119
|
}
|
|
77
120
|
let data;
|
|
78
121
|
try {
|
|
79
122
|
data = JSON.parse(fs.readFileSync(corpusPath, "utf8"));
|
|
80
123
|
}
|
|
81
124
|
catch (exc) {
|
|
82
|
-
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}` };
|
|
83
126
|
}
|
|
84
127
|
const records = data && typeof data === "object" && !Array.isArray(data) ? data.records ?? [] : [];
|
|
85
128
|
const hasTurn = Array.isArray(records) &&
|
|
86
129
|
records.some((r) => r && typeof r === "object" && r.source_kind === "conversation_turn");
|
|
87
130
|
if (!hasTurn) {
|
|
88
|
-
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" };
|
|
89
132
|
}
|
|
90
133
|
const metadata = data.metadata && typeof data.metadata === "object" ? data.metadata : {};
|
|
91
134
|
return {
|
|
92
135
|
status: "ready",
|
|
93
136
|
path: corpusPath,
|
|
137
|
+
tier_state: "legacy",
|
|
94
138
|
reason: "existing corpus has conversation_turn records",
|
|
95
139
|
extracted_at: metadata.extracted_at ?? null,
|
|
96
140
|
total_records: records.length,
|
|
@@ -99,9 +143,9 @@ export function statsExistingCorpusStatus(corpusPath) {
|
|
|
99
143
|
/**
|
|
100
144
|
* Faithful port of scripts/agentera `cmd_stats` (canonical command is `report`;
|
|
101
145
|
* `stats` is the deprecated alias and shares this logic). The plain read path
|
|
102
|
-
* reuses the ported usage engine
|
|
103
|
-
*
|
|
104
|
-
*
|
|
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.
|
|
105
149
|
*/
|
|
106
150
|
export function cmdReport(args, io = {}) {
|
|
107
151
|
const out = io.out ?? ((t) => process.stdout.write(t));
|
|
@@ -134,39 +178,65 @@ export function cmdReport(args, io = {}) {
|
|
|
134
178
|
const payload = {
|
|
135
179
|
command: "stats refresh",
|
|
136
180
|
status: "dry_run",
|
|
137
|
-
privacy: {
|
|
181
|
+
privacy: {
|
|
182
|
+
local_history_read: false,
|
|
183
|
+
local_history_write: false,
|
|
184
|
+
tier_write: false,
|
|
185
|
+
required_consent: "local-history",
|
|
186
|
+
provided_consent: null,
|
|
187
|
+
},
|
|
138
188
|
corpus_path: corpusPath,
|
|
189
|
+
tier_path: tiersDirForCorpusPath(corpusPath),
|
|
139
190
|
engine: { command: engineCommand },
|
|
140
|
-
diagnostics: [
|
|
191
|
+
diagnostics: [
|
|
192
|
+
"dry-run does not read runtime history or write tier files",
|
|
193
|
+
"published tiers are internal state for stats at $AGENTERA_PROFILE_DIR/intermediate/tiers",
|
|
194
|
+
...(args.importSources?.includes("claude")
|
|
195
|
+
? ["Claude historical import can contain secrets, file contents, and command output; apply stays local and read-only"]
|
|
196
|
+
: []),
|
|
197
|
+
],
|
|
141
198
|
};
|
|
142
199
|
if (outputFormat === "json") {
|
|
143
200
|
out(JSON.stringify(payload, null, 2) + "\n");
|
|
144
201
|
}
|
|
145
202
|
else {
|
|
146
|
-
out(`agentera stats refresh: dry_run\ncorpus=${corpusPath}\nengine=${engineCommand.join(" ")}\n`);
|
|
147
|
-
out("privacy=local_history_read=false,
|
|
203
|
+
out(`agentera stats refresh: dry_run\ncorpus=${corpusPath}\ntiers=${tiersDirForCorpusPath(corpusPath)}\nengine=${engineCommand.join(" ")}\n`);
|
|
204
|
+
out("privacy=local_history_read=false, tier_write=false, required_consent=local-history\n");
|
|
148
205
|
}
|
|
149
206
|
return 0;
|
|
150
207
|
}
|
|
151
|
-
// consent === "local-history":
|
|
208
|
+
// consent === "local-history": extract local history into bounded tiers.
|
|
152
209
|
let engineOut = "";
|
|
153
210
|
let engineErr = "";
|
|
154
211
|
const rc = extractCorpusMain(engineArgv, {
|
|
155
212
|
out: (t) => (engineOut += t + "\n"),
|
|
156
213
|
err: (t) => (engineErr += t + "\n"),
|
|
157
214
|
});
|
|
215
|
+
const refreshStatus = rc === 0 ? "pass" : rc === 4 ? "flagged" : "fail";
|
|
158
216
|
const payload = {
|
|
159
217
|
command: "stats refresh",
|
|
160
|
-
status:
|
|
161
|
-
|
|
218
|
+
status: refreshStatus,
|
|
219
|
+
exit_signal: rc === 4 ? "EX2" : null,
|
|
220
|
+
privacy: {
|
|
221
|
+
local_history_read: true,
|
|
222
|
+
local_history_write: false,
|
|
223
|
+
tier_write: rc === 0,
|
|
224
|
+
required_consent: "local-history",
|
|
225
|
+
provided_consent: "local-history",
|
|
226
|
+
historical_imports: args.importSources ?? [],
|
|
227
|
+
historical_import_warning: args.importSources?.includes("claude")
|
|
228
|
+
? "Claude transcripts can contain secrets, file contents, and command output. Import is local and read-only."
|
|
229
|
+
: null,
|
|
230
|
+
},
|
|
162
231
|
corpus_path: corpusPath,
|
|
232
|
+
tier_path: tiersDirForCorpusPath(corpusPath),
|
|
163
233
|
engine: { command: engineCommand, exit_code: rc, stdout: engineOut.split("\n").filter((l) => l), stderr: engineErr.split("\n").filter((l) => l) },
|
|
164
234
|
};
|
|
165
235
|
if (outputFormat === "json") {
|
|
166
236
|
out(JSON.stringify(payload, null, 2) + "\n");
|
|
167
237
|
}
|
|
168
238
|
else {
|
|
169
|
-
out(`agentera stats refresh: ${payload.status}\ncorpus=${corpusPath}\n`);
|
|
239
|
+
out(`agentera stats refresh: ${payload.status}\ncorpus=${corpusPath}\ntiers=${tiersDirForCorpusPath(corpusPath)}\n`);
|
|
170
240
|
if (engineOut)
|
|
171
241
|
out(engineOut);
|
|
172
242
|
if (engineErr)
|
|
@@ -204,6 +274,8 @@ export function cmdReport(args, io = {}) {
|
|
|
204
274
|
const engineArgs = ["--corpus", corpusPath];
|
|
205
275
|
if (args.project)
|
|
206
276
|
engineArgs.push("--project", args.project);
|
|
277
|
+
if (args.sources)
|
|
278
|
+
engineArgs.push("--sources", args.sources);
|
|
207
279
|
if (outputFormat === "json")
|
|
208
280
|
engineArgs.push("--json");
|
|
209
281
|
return usageMain(engineArgs, {
|
|
@@ -211,4 +283,3 @@ export function cmdReport(args, io = {}) {
|
|
|
211
283
|
err: (t) => err(t + "\n"),
|
|
212
284
|
});
|
|
213
285
|
}
|
|
214
|
-
//# sourceMappingURL=report.js.map
|