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,8 +1,7 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
1
|
import os from "node:os";
|
|
3
2
|
import path from "node:path";
|
|
4
|
-
import { pyJsonIndent } from "../../core/pyjson.js";
|
|
5
3
|
import { defaultOutputPath, } from "./core.js";
|
|
4
|
+
import { defaultTiersDir, publishEvidenceTiers } from "./evidenceTiers.js";
|
|
6
5
|
import { buildCorpus } from "./corpus.js";
|
|
7
6
|
import { COVERAGE_EXIT_FLAGGED, corpusEnvelopeCoverage, formatCoverageSummaryText, runCoverageAudit, } from "./coverageAudit.js";
|
|
8
7
|
import { formatTruncationWarnings, resolveSqliteCaps } from "./sqliteCaps.js";
|
|
@@ -11,6 +10,7 @@ export function parseExtractArgs(argv, env = process.env, platform = process.pla
|
|
|
11
10
|
const home = env.HOME || (platform === "win32" ? env.USERPROFILE : undefined) || os.homedir();
|
|
12
11
|
const args = {
|
|
13
12
|
output: defaultOutputPath(env, platform),
|
|
13
|
+
tierOutput: null,
|
|
14
14
|
projectRoot: [],
|
|
15
15
|
codexSessionsDir: path.join(home, ".codex", "sessions"),
|
|
16
16
|
claudeProjectsDir: path.join(home, ".claude", "projects"),
|
|
@@ -19,7 +19,7 @@ export function parseExtractArgs(argv, env = process.env, platform = process.pla
|
|
|
19
19
|
cursorProjectsDir: null,
|
|
20
20
|
cursorChatsDir: null,
|
|
21
21
|
noCodex: false,
|
|
22
|
-
|
|
22
|
+
importSources: [],
|
|
23
23
|
noOpencode: false,
|
|
24
24
|
noCopilot: false,
|
|
25
25
|
noCursor: false,
|
|
@@ -27,6 +27,7 @@ export function parseExtractArgs(argv, env = process.env, platform = process.pla
|
|
|
27
27
|
coverageAuditOnly: false,
|
|
28
28
|
format: "text",
|
|
29
29
|
};
|
|
30
|
+
let claudeProjectsDirExplicit = false;
|
|
30
31
|
for (let i = 0; i < argv.length; i++) {
|
|
31
32
|
const a = argv[i];
|
|
32
33
|
const val = (name) => {
|
|
@@ -37,14 +38,28 @@ export function parseExtractArgs(argv, env = process.env, platform = process.pla
|
|
|
37
38
|
return null;
|
|
38
39
|
};
|
|
39
40
|
let v;
|
|
41
|
+
// `--output` is a deprecated no-op for back-compat: it targeted the
|
|
42
|
+
// eliminated monolithic corpus.json write. Refresh now publishes bounded
|
|
43
|
+
// tiers via `--tier-output` (default: `defaultTiersDir`). `--output` is
|
|
44
|
+
// accepted to keep older callers from hard-crashing but has no effect.
|
|
40
45
|
if ((v = val("--output")) !== null)
|
|
41
46
|
args.output = v;
|
|
47
|
+
else if ((v = val("--tier-output")) !== null)
|
|
48
|
+
args.tierOutput = v;
|
|
42
49
|
else if ((v = val("--project-root")) !== null)
|
|
43
50
|
args.projectRoot.push(v);
|
|
44
51
|
else if ((v = val("--codex-sessions-dir")) !== null)
|
|
45
52
|
args.codexSessionsDir = v;
|
|
46
|
-
else if ((v = val("--claude-projects-dir")) !== null)
|
|
53
|
+
else if ((v = val("--claude-projects-dir")) !== null) {
|
|
47
54
|
args.claudeProjectsDir = v;
|
|
55
|
+
claudeProjectsDirExplicit = true;
|
|
56
|
+
}
|
|
57
|
+
else if ((v = val("--import-source")) !== null) {
|
|
58
|
+
if (v !== "claude")
|
|
59
|
+
throw new Error(`extract-corpus: unsupported historical import source '${v}'; valid source: claude`);
|
|
60
|
+
if (!args.importSources.includes(v))
|
|
61
|
+
args.importSources.push(v);
|
|
62
|
+
}
|
|
48
63
|
else if ((v = val("--opencode-conversations-dir")) !== null)
|
|
49
64
|
args.opencodeConversationsDir = v;
|
|
50
65
|
else if ((v = val("--copilot-conversations-dir")) !== null)
|
|
@@ -55,8 +70,6 @@ export function parseExtractArgs(argv, env = process.env, platform = process.pla
|
|
|
55
70
|
args.cursorChatsDir = v;
|
|
56
71
|
else if (a === "--no-codex")
|
|
57
72
|
args.noCodex = true;
|
|
58
|
-
else if (a === "--no-claude")
|
|
59
|
-
args.noClaude = true;
|
|
60
73
|
else if (a === "--no-opencode")
|
|
61
74
|
args.noOpencode = true;
|
|
62
75
|
else if (a === "--no-copilot")
|
|
@@ -87,6 +100,9 @@ export function parseExtractArgs(argv, env = process.env, platform = process.pla
|
|
|
87
100
|
else
|
|
88
101
|
throw new Error(`extract-corpus: unrecognized argument: ${a}`);
|
|
89
102
|
}
|
|
103
|
+
if (claudeProjectsDirExplicit && !args.importSources.includes("claude")) {
|
|
104
|
+
throw new Error("extract-corpus: --claude-projects-dir requires explicit --import-source claude");
|
|
105
|
+
}
|
|
90
106
|
return args;
|
|
91
107
|
}
|
|
92
108
|
/** Engine entry point mirroring scripts/extract_corpus.py main(). */
|
|
@@ -105,6 +121,10 @@ export function extractCorpusMain(argv, io = {}) {
|
|
|
105
121
|
return 2;
|
|
106
122
|
}
|
|
107
123
|
const projectRoots = args.projectRoot.length > 0 ? args.projectRoot : [cwd];
|
|
124
|
+
if (args.importSources.includes("claude")) {
|
|
125
|
+
err("Historical import warning: Claude transcripts can contain secrets, file contents, and command output. " +
|
|
126
|
+
"Import is local and read-only; records are labeled historical_import and excluded from active-runtime analytics.");
|
|
127
|
+
}
|
|
108
128
|
const audit = runCoverageAudit(args, env, platform, args.acceptCoverageGap);
|
|
109
129
|
if (args.format === "json") {
|
|
110
130
|
out(JSON.stringify({ coverage_audit: audit }, null, 2));
|
|
@@ -126,7 +146,7 @@ export function extractCorpusMain(argv, io = {}) {
|
|
|
126
146
|
const corpus = buildCorpus({
|
|
127
147
|
projectRoots,
|
|
128
148
|
codexSessionsDir: args.noCodex ? null : args.codexSessionsDir,
|
|
129
|
-
claudeProjectsDir: args.
|
|
149
|
+
claudeProjectsDir: args.importSources.includes("claude") ? args.claudeProjectsDir : null,
|
|
130
150
|
opencodeConversationsDir: args.noOpencode ? null : args.opencodeConversationsDir || resolveOpencodeDbPath(env),
|
|
131
151
|
copilotConversationsDir: args.noCopilot ? null : args.copilotConversationsDir || resolveCopilotStorePath(env),
|
|
132
152
|
cursorProjectsDir: skipCursor ? null : args.cursorProjectsDir || resolveCursorProjectsPath(env),
|
|
@@ -134,8 +154,6 @@ export function extractCorpusMain(argv, io = {}) {
|
|
|
134
154
|
coverage: corpusEnvelopeCoverage(audit),
|
|
135
155
|
sqliteCaps,
|
|
136
156
|
});
|
|
137
|
-
fs.mkdirSync(path.dirname(args.output), { recursive: true });
|
|
138
|
-
fs.writeFileSync(args.output, pyJsonIndent(corpus) + "\n", "utf-8");
|
|
139
157
|
const truncationWarning = formatTruncationWarnings(corpus.metadata.runtime_statuses);
|
|
140
158
|
if (truncationWarning)
|
|
141
159
|
err(truncationWarning);
|
|
@@ -143,7 +161,30 @@ export function extractCorpusMain(argv, io = {}) {
|
|
|
143
161
|
const familyBits = Object.entries(corpus.metadata.families)
|
|
144
162
|
.map(([name, summary]) => `${name}=${summary.count}`)
|
|
145
163
|
.join(", ");
|
|
146
|
-
|
|
164
|
+
// Publish bounded evidence tiers as the canonical bounded publication output.
|
|
165
|
+
// The monolithic corpus envelope write is eliminated: all bounded consumers
|
|
166
|
+
// (usage, report, prime coverage, startup analysis, profile synthesis) read
|
|
167
|
+
// the signal tier and full-evidence shards directly. Legacy monolithic state
|
|
168
|
+
// receives deterministic refresh guidance rather than read compatibility.
|
|
169
|
+
const tiersDir = args.tierOutput ?? defaultTiersDir(env, platform);
|
|
170
|
+
const publication = publishEvidenceTiers(corpus.records, {
|
|
171
|
+
tiersDir,
|
|
172
|
+
adapterVersion: corpus.metadata.adapter_version,
|
|
173
|
+
runtimeStatuses: corpus.metadata.runtime_statuses,
|
|
174
|
+
env,
|
|
175
|
+
platform,
|
|
176
|
+
corpusMetadata: {
|
|
177
|
+
extracted_at: corpus.metadata.extracted_at,
|
|
178
|
+
runtime_statuses: corpus.metadata.runtime_statuses,
|
|
179
|
+
coverage_envelope: {
|
|
180
|
+
available_runtimes: corpus.metadata.available_runtimes,
|
|
181
|
+
selected_runtimes: corpus.metadata.selected_runtimes,
|
|
182
|
+
available_but_not_selected: corpus.metadata.available_but_not_selected,
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
});
|
|
186
|
+
out(`published tiers: ${tiersDir} (generation ${publication.generation}; ` +
|
|
187
|
+
`${publication.shard_count} shards; ${publication.signal_count} signals; ` +
|
|
188
|
+
`${publication.signal_bytes} bytes${publication.signal_selection.capped ? "; selection applied" : ""}) [${total} records; ${familyBits}]`);
|
|
147
189
|
return 0;
|
|
148
190
|
}
|
|
149
|
-
//# sourceMappingURL=cli.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import { resolvePath } from "../../core/paths.js";
|
|
3
|
-
import { isoFromMtime, record, signalType, textFromContent, } from "./core.js";
|
|
3
|
+
import { authorClassForRole, isoFromMtime, record, signalType, textFromContent, transportProvenance, } from "./core.js";
|
|
4
4
|
import { isPlainObject, rglob, isFilePath } from "./core.js";
|
|
5
5
|
import { resolveSqliteCaps, } from "./sqliteCaps.js";
|
|
6
|
-
import { PermissionDeniedError, openSqlite, sqliteTimestamp, tableColumns, firstColumn, qualified, } from "./sqliteSessions.js";
|
|
6
|
+
import { PermissionDeniedError, openSqlite, jsonDict, sqliteTimestamp, tableColumns, firstColumn, qualified, } from "./sqliteSessions.js";
|
|
7
7
|
function copilotDbCandidates(storePath) {
|
|
8
8
|
if (isFilePath(storePath))
|
|
9
9
|
return [storePath];
|
|
@@ -208,15 +208,18 @@ export function extractCopilotSessions(storePath, errors, ctx) {
|
|
|
208
208
|
let index = 0;
|
|
209
209
|
for (const row of rows) {
|
|
210
210
|
index += 1;
|
|
211
|
-
|
|
212
|
-
if (role !== "user" && role !== "assistant")
|
|
211
|
+
if (typeof row.role !== "string" || row.role.length === 0)
|
|
213
212
|
continue;
|
|
213
|
+
const role = row.role.toLowerCase();
|
|
214
214
|
const content = textFromContent(row.turn_text);
|
|
215
215
|
const toolItems = copilotRowTools(row, errors);
|
|
216
216
|
if (!content && toolItems.length === 0)
|
|
217
217
|
continue;
|
|
218
218
|
const projectPath = row.project_path ? String(row.project_path) : null;
|
|
219
219
|
const timestamp = sqliteTimestamp(row.turn_time || row.session_time, fallbackTimestamp);
|
|
220
|
+
const transport = transportProvenance(row, jsonDict(row.turn_data));
|
|
221
|
+
const originId = transport.originId;
|
|
222
|
+
const authorClass = authorClassForRole(role, transport.authorClass, transport.originId);
|
|
220
223
|
if (content) {
|
|
221
224
|
const data = { actor: role, content };
|
|
222
225
|
if (role === "user") {
|
|
@@ -233,9 +236,13 @@ export function extractCopilotSessions(storePath, errors, ctx) {
|
|
|
233
236
|
sourceKind: "conversation_turn",
|
|
234
237
|
timestamp,
|
|
235
238
|
projectPath,
|
|
236
|
-
runtime: "
|
|
239
|
+
runtime: "copilot",
|
|
240
|
+
sourceProduct: "github-copilot",
|
|
237
241
|
sourceParts: [resolvePath(dbPath), index, role, content.slice(0, 80)],
|
|
238
242
|
sessionId: String(row.session_id),
|
|
243
|
+
originId,
|
|
244
|
+
authorClass,
|
|
245
|
+
content,
|
|
239
246
|
data,
|
|
240
247
|
}));
|
|
241
248
|
}
|
|
@@ -246,7 +253,8 @@ export function extractCopilotSessions(storePath, errors, ctx) {
|
|
|
246
253
|
sourceKind: "tool_call",
|
|
247
254
|
timestamp,
|
|
248
255
|
projectPath,
|
|
249
|
-
runtime: "
|
|
256
|
+
runtime: "copilot",
|
|
257
|
+
sourceProduct: "github-copilot",
|
|
250
258
|
sourceParts: [resolvePath(dbPath), index, toolIndex, "tool", toolItem.tool_name, row.turn_id],
|
|
251
259
|
sessionId: String(row.session_id),
|
|
252
260
|
data: { tool_name: String(toolItem.tool_name), arguments: toolItem.arguments || {} },
|
|
@@ -259,9 +267,13 @@ export function extractCopilotSessions(storePath, errors, ctx) {
|
|
|
259
267
|
sourceKind: "history_prompt",
|
|
260
268
|
timestamp,
|
|
261
269
|
projectPath,
|
|
262
|
-
runtime: "
|
|
270
|
+
runtime: "copilot",
|
|
271
|
+
sourceProduct: "github-copilot",
|
|
263
272
|
sourceParts: [resolvePath(dbPath), index, "history", content.slice(0, 120)],
|
|
264
273
|
sessionId: String(row.session_id),
|
|
274
|
+
originId,
|
|
275
|
+
authorClass,
|
|
276
|
+
content,
|
|
265
277
|
data: { prompt: content, signal_type: sig },
|
|
266
278
|
}));
|
|
267
279
|
}
|
|
@@ -270,4 +282,3 @@ export function extractCopilotSessions(storePath, errors, ctx) {
|
|
|
270
282
|
}
|
|
271
283
|
return records;
|
|
272
284
|
}
|
|
273
|
-
//# sourceMappingURL=copilotSessions.js.map
|
|
@@ -5,7 +5,7 @@ import { resolveProfileDirOverride, resolveXdgDataHome } from "../../core/envPat
|
|
|
5
5
|
import { expanduser } from "../../core/paths.js";
|
|
6
6
|
import crypto from "node:crypto";
|
|
7
7
|
import { resolvePath } from "../../core/paths.js";
|
|
8
|
-
export const ADAPTER_VERSION = "agentera-
|
|
8
|
+
export const ADAPTER_VERSION = "agentera-v3-corpus-3";
|
|
9
9
|
export const FAMILIES = [
|
|
10
10
|
"instruction_document",
|
|
11
11
|
"history_prompt",
|
|
@@ -15,16 +15,31 @@ export const FAMILIES = [
|
|
|
15
15
|
];
|
|
16
16
|
export const RUNTIME_STORE_GLOBS = {
|
|
17
17
|
codex: "*.jsonl",
|
|
18
|
-
"claude-code": "*.jsonl",
|
|
19
18
|
cursor: "*.jsonl",
|
|
20
|
-
"cursor-agent": "store.db",
|
|
21
19
|
opencode: "opencode.db",
|
|
22
|
-
|
|
20
|
+
copilot: "session-store.db",
|
|
21
|
+
};
|
|
22
|
+
export const HISTORICAL_IMPORT_STORE_GLOBS = {
|
|
23
|
+
"claude-code": "*.jsonl",
|
|
23
24
|
};
|
|
25
|
+
const ACTIVE_ANALYTICS_RUNTIMES = new Set(["opencode", "codex", "cursor", "copilot"]);
|
|
24
26
|
export const MAX_TOOL_ARG_TEXT = 500;
|
|
25
27
|
export const MAX_SQLITE_ROWS = 100_000;
|
|
26
28
|
export const MAX_SQLITE_SESSIONS = 60;
|
|
27
29
|
export const COPILOT_SPARSE_REMEDIATION = "/chronicle reindex";
|
|
30
|
+
const ORIGIN_ID_RE = /^[a-f0-9]{64}$/;
|
|
31
|
+
const CONTENT_FINGERPRINT_RE = /^[a-f0-9]{64}$/;
|
|
32
|
+
const CONVERSATION_SOURCE_KINDS = new Set(["conversation_turn", "history_prompt"]);
|
|
33
|
+
const PROVENANCE_NESTED_KEYS = ["payload", "item", "metadata", "meta", "provenance", "source"];
|
|
34
|
+
const PROVENANCE_ORIGIN_KEYS = [
|
|
35
|
+
"origin_id",
|
|
36
|
+
"original_origin_id",
|
|
37
|
+
"original_origin",
|
|
38
|
+
"origin",
|
|
39
|
+
"source_origin",
|
|
40
|
+
"instruction_origin",
|
|
41
|
+
];
|
|
42
|
+
const PROVENANCE_AUTHOR_KEYS = ["author_class", "authorClass", "author"];
|
|
28
43
|
const DECISION_RE = /\b(decide|decision|prefer|preference|instead|avoid|don't|do not|should|trade[- ]?off|scope|plan|commit|review|fix|why|question|blocked|stuck|approve|reject|change|keep|remove)\b/i;
|
|
29
44
|
const CORRECTION_RE = /\b(no|not quite|actually|rather|instead|wrong|correction|that's not|that is not|don't|do not)\b/i;
|
|
30
45
|
const QUESTION_RE = /\?|^\s*(why|what|how|should|can|could|would)\b/i;
|
|
@@ -42,6 +57,195 @@ export function stableId(...parts) {
|
|
|
42
57
|
const raw = parts.map((p) => pyStr(p)).join("\0");
|
|
43
58
|
return crypto.createHash("sha256").update(raw, "utf-8").digest("hex").slice(0, 24);
|
|
44
59
|
}
|
|
60
|
+
/** A bounded, deterministic identity for the source that originally supplied a record. */
|
|
61
|
+
export function originIdentity(origin) {
|
|
62
|
+
if (typeof origin !== "string" || origin.length === 0) {
|
|
63
|
+
throw new TypeError("origin must be a non-empty string");
|
|
64
|
+
}
|
|
65
|
+
return crypto
|
|
66
|
+
.createHash("sha256")
|
|
67
|
+
.update("agentera.corpus.origin.v1\0", "utf-8")
|
|
68
|
+
.update(origin, "utf-8")
|
|
69
|
+
.digest("hex");
|
|
70
|
+
}
|
|
71
|
+
/** A lowercase SHA-256 of the exact source text, without normalization or truncation. */
|
|
72
|
+
export function contentFingerprint(content) {
|
|
73
|
+
if (typeof content !== "string")
|
|
74
|
+
throw new TypeError("content must be a string");
|
|
75
|
+
return crypto.createHash("sha256").update(content, "utf-8").digest("hex");
|
|
76
|
+
}
|
|
77
|
+
function nonEmptyString(value) {
|
|
78
|
+
return typeof value === "string" && value.length > 0;
|
|
79
|
+
}
|
|
80
|
+
function provenanceObjects(sources) {
|
|
81
|
+
const out = [];
|
|
82
|
+
const pending = sources.slice();
|
|
83
|
+
const seen = new Set();
|
|
84
|
+
while (pending.length > 0 && out.length < 24) {
|
|
85
|
+
const value = pending.shift();
|
|
86
|
+
if (!isPlainObject(value) || seen.has(value))
|
|
87
|
+
continue;
|
|
88
|
+
seen.add(value);
|
|
89
|
+
out.push(value);
|
|
90
|
+
for (const key of PROVENANCE_NESTED_KEYS) {
|
|
91
|
+
const nested = value[key];
|
|
92
|
+
if (isPlainObject(nested))
|
|
93
|
+
pending.push(nested);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return out;
|
|
97
|
+
}
|
|
98
|
+
function inspectStringField(sources, keys) {
|
|
99
|
+
for (const source of sources) {
|
|
100
|
+
for (const key of keys) {
|
|
101
|
+
if (!Object.prototype.hasOwnProperty.call(source, key))
|
|
102
|
+
continue;
|
|
103
|
+
const value = source[key];
|
|
104
|
+
return nonEmptyString(value)
|
|
105
|
+
? { state: "valid", key, value }
|
|
106
|
+
: { state: "invalid", key, value: null };
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return { state: "absent", key: null, value: null };
|
|
110
|
+
}
|
|
111
|
+
function transportOriginId(key, value) {
|
|
112
|
+
return ORIGIN_ID_RE.test(value) && key.endsWith("_id") ? value : originIdentity(value);
|
|
113
|
+
}
|
|
114
|
+
/** Inspect the first explicit transport fields without collapsing malformed values into absence. */
|
|
115
|
+
export function inspectTransportProvenance(...sources) {
|
|
116
|
+
const objects = provenanceObjects(sources);
|
|
117
|
+
const origin = inspectStringField(objects, PROVENANCE_ORIGIN_KEYS);
|
|
118
|
+
const author = inspectStringField(objects, PROVENANCE_AUTHOR_KEYS);
|
|
119
|
+
return {
|
|
120
|
+
originId: origin.state === "valid" ? transportOriginId(origin.key, origin.value) : null,
|
|
121
|
+
authorClass: author.state === "valid" ? author.value : null,
|
|
122
|
+
originState: origin.state,
|
|
123
|
+
authorState: author.state,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Read only explicit transport metadata. Content is never inspected to infer
|
|
128
|
+
* either ownership or origin. An adapter may provide an origin digest directly,
|
|
129
|
+
* or a bounded source label that is converted to one.
|
|
130
|
+
*/
|
|
131
|
+
export function transportProvenance(...sources) {
|
|
132
|
+
let origin = null;
|
|
133
|
+
let authorClass = null;
|
|
134
|
+
for (const source of provenanceObjects(sources)) {
|
|
135
|
+
if (origin === null) {
|
|
136
|
+
for (const key of PROVENANCE_ORIGIN_KEYS) {
|
|
137
|
+
const value = source[key];
|
|
138
|
+
if (nonEmptyString(value)) {
|
|
139
|
+
origin = transportOriginId(key, value);
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (authorClass === null) {
|
|
145
|
+
for (const key of PROVENANCE_AUTHOR_KEYS) {
|
|
146
|
+
const value = source[key];
|
|
147
|
+
if (nonEmptyString(value)) {
|
|
148
|
+
authorClass = value;
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (origin !== null && authorClass !== null)
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
return { originId: origin, authorClass };
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Map a transport role to a source-author class without examining its text.
|
|
160
|
+
* A claimed transported origin requires the original author to be explicit;
|
|
161
|
+
* the envelope role is not evidence for the source that was transported.
|
|
162
|
+
*/
|
|
163
|
+
export function authorClassForRole(role, explicitAuthorClass = null, transportedOriginId = null) {
|
|
164
|
+
const explicit = nonEmptyString(explicitAuthorClass);
|
|
165
|
+
if (!explicit && nonEmptyString(transportedOriginId))
|
|
166
|
+
return null;
|
|
167
|
+
const value = explicit ? explicitAuthorClass : nonEmptyString(role) ? role : null;
|
|
168
|
+
if (value === null)
|
|
169
|
+
return null;
|
|
170
|
+
switch (value.toLowerCase()) {
|
|
171
|
+
case "user":
|
|
172
|
+
return "user";
|
|
173
|
+
case "assistant":
|
|
174
|
+
case "model":
|
|
175
|
+
case "tool":
|
|
176
|
+
return "agent";
|
|
177
|
+
case "system":
|
|
178
|
+
case "developer":
|
|
179
|
+
case "instruction":
|
|
180
|
+
return "injected_instruction";
|
|
181
|
+
default:
|
|
182
|
+
return explicit ? value : null;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/** Return the bounded provenance fields missing from one retained record. */
|
|
186
|
+
export function missingProvenanceFields(item) {
|
|
187
|
+
const missing = [];
|
|
188
|
+
const required = [
|
|
189
|
+
["source_id", nonEmptyString(item.source_id)],
|
|
190
|
+
["source_kind", nonEmptyString(item.source_kind)],
|
|
191
|
+
["timestamp", nonEmptyString(item.timestamp)],
|
|
192
|
+
["project_id", nonEmptyString(item.project_id)],
|
|
193
|
+
["source_class", nonEmptyString(item.source_class)],
|
|
194
|
+
["source_product", nonEmptyString(item.source_product)],
|
|
195
|
+
["adapter_version", nonEmptyString(item.adapter_version)],
|
|
196
|
+
["data", isPlainObject(item.data)],
|
|
197
|
+
];
|
|
198
|
+
for (const [field, present] of required)
|
|
199
|
+
if (!present)
|
|
200
|
+
missing.push(field);
|
|
201
|
+
if (typeof item.runtime !== "string" && item.runtime !== null)
|
|
202
|
+
missing.push("runtime");
|
|
203
|
+
if (typeof item.active_runtime !== "boolean")
|
|
204
|
+
missing.push("active_runtime");
|
|
205
|
+
if (CONVERSATION_SOURCE_KINDS.has(String(item.source_kind))) {
|
|
206
|
+
if (!ORIGIN_ID_RE.test(String(item.origin_id ?? "")))
|
|
207
|
+
missing.push("origin_id");
|
|
208
|
+
if (!nonEmptyString(item.author_class))
|
|
209
|
+
missing.push("author_class");
|
|
210
|
+
if (!CONTENT_FINGERPRINT_RE.test(String(item.content_fingerprint ?? ""))) {
|
|
211
|
+
missing.push("content_fingerprint");
|
|
212
|
+
}
|
|
213
|
+
if (!nonEmptyString(item.session_id))
|
|
214
|
+
missing.push("session_id");
|
|
215
|
+
}
|
|
216
|
+
return [...new Set(missing)];
|
|
217
|
+
}
|
|
218
|
+
export function assessProvenance(records) {
|
|
219
|
+
const fields = new Set();
|
|
220
|
+
let missingRecords = 0;
|
|
221
|
+
for (const record of records) {
|
|
222
|
+
const missing = missingProvenanceFields(record);
|
|
223
|
+
if (missing.length === 0)
|
|
224
|
+
continue;
|
|
225
|
+
missingRecords += 1;
|
|
226
|
+
for (const field of missing)
|
|
227
|
+
fields.add(field);
|
|
228
|
+
}
|
|
229
|
+
return { complete: missingRecords === 0, missingFields: [...fields].sort(), missingRecords };
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Count independent conversation origins without using record IDs or copy
|
|
233
|
+
* counts. Repeated transport of one origin and fingerprint contributes once;
|
|
234
|
+
* a different origin remains independent even when its text is identical.
|
|
235
|
+
*/
|
|
236
|
+
export function countIndependentOrigins(records) {
|
|
237
|
+
const identities = new Set();
|
|
238
|
+
for (const record of records) {
|
|
239
|
+
if (!CONVERSATION_SOURCE_KINDS.has(String(record.source_kind)))
|
|
240
|
+
continue;
|
|
241
|
+
const originId = record.origin_id;
|
|
242
|
+
const fingerprint = record.content_fingerprint;
|
|
243
|
+
if (!ORIGIN_ID_RE.test(String(originId ?? "")) || !CONTENT_FINGERPRINT_RE.test(String(fingerprint ?? "")))
|
|
244
|
+
continue;
|
|
245
|
+
identities.add(`${originId}\0${fingerprint}`);
|
|
246
|
+
}
|
|
247
|
+
return identities.size;
|
|
248
|
+
}
|
|
45
249
|
/** Python str() for the scalar/None values stable_id receives. */
|
|
46
250
|
function pyStr(value) {
|
|
47
251
|
if (value === null || value === undefined)
|
|
@@ -85,7 +289,15 @@ export function defaultOutputPath(env = process.env, platform = process.platform
|
|
|
85
289
|
return path.join(defaultProfileDir(env, platform), "intermediate", "corpus.json");
|
|
86
290
|
}
|
|
87
291
|
export function runtimeStatus(runtime, opts) {
|
|
88
|
-
const
|
|
292
|
+
const activeRuntime = opts.activeRuntime ?? (runtime !== null && ACTIVE_ANALYTICS_RUNTIMES.has(runtime));
|
|
293
|
+
const item = {
|
|
294
|
+
runtime,
|
|
295
|
+
source_class: opts.sourceClass ?? (activeRuntime ? "active_runtime" : "historical_import"),
|
|
296
|
+
source_product: opts.sourceProduct ?? runtime ?? "unknown",
|
|
297
|
+
active_runtime: activeRuntime,
|
|
298
|
+
status: opts.status,
|
|
299
|
+
reason: opts.reason,
|
|
300
|
+
};
|
|
89
301
|
if (opts.storePath !== null && opts.storePath !== undefined)
|
|
90
302
|
item.store_path = opts.storePath;
|
|
91
303
|
if (opts.fileCount !== null && opts.fileCount !== undefined)
|
|
@@ -102,6 +314,12 @@ export function runtimeStatus(runtime, opts) {
|
|
|
102
314
|
item.truncation_cap = opts.truncationCap;
|
|
103
315
|
if (opts.truncationLimit !== null && opts.truncationLimit !== undefined)
|
|
104
316
|
item.truncation_limit = opts.truncationLimit;
|
|
317
|
+
if (opts.provenanceMissingFields && opts.provenanceMissingFields.length > 0) {
|
|
318
|
+
item.provenance_missing_fields = opts.provenanceMissingFields;
|
|
319
|
+
}
|
|
320
|
+
if (opts.provenanceMissingRecords !== null && opts.provenanceMissingRecords !== undefined) {
|
|
321
|
+
item.provenance_missing_records = opts.provenanceMissingRecords;
|
|
322
|
+
}
|
|
105
323
|
return item;
|
|
106
324
|
}
|
|
107
325
|
function isDir(p) {
|
|
@@ -146,35 +364,45 @@ function rglob(root, pattern) {
|
|
|
146
364
|
walk(root);
|
|
147
365
|
return out.sort();
|
|
148
366
|
}
|
|
149
|
-
export function discoverRuntimeStore(runtime, storePath) {
|
|
367
|
+
export function discoverRuntimeStore(runtime, storePath, opts = {}) {
|
|
368
|
+
const statusOpts = {
|
|
369
|
+
sourceProduct: opts.sourceProduct,
|
|
370
|
+
sourceClass: opts.sourceClass,
|
|
371
|
+
activeRuntime: opts.activeRuntime,
|
|
372
|
+
};
|
|
150
373
|
if (storePath === null) {
|
|
151
|
-
return runtimeStatus(runtime, { status: "skipped", reason: "disabled", storePath: null });
|
|
374
|
+
return runtimeStatus(runtime, { status: "skipped", reason: "disabled", storePath: null, ...statusOpts });
|
|
152
375
|
}
|
|
153
376
|
if (!fs.existsSync(storePath)) {
|
|
154
377
|
return runtimeStatus(runtime, {
|
|
155
378
|
status: "missing",
|
|
156
379
|
reason: "store_absent",
|
|
157
380
|
storePath,
|
|
158
|
-
remediationLabels: runtime === "
|
|
381
|
+
remediationLabels: runtime === "copilot" ? [COPILOT_SPARSE_REMEDIATION] : null,
|
|
382
|
+
...statusOpts,
|
|
159
383
|
});
|
|
160
384
|
}
|
|
161
|
-
if (
|
|
385
|
+
if (isFilePath(storePath)) {
|
|
162
386
|
return runtimeStatus(runtime, {
|
|
163
387
|
status: "available",
|
|
164
388
|
reason: "candidate_files_found",
|
|
165
389
|
storePath,
|
|
166
390
|
fileCount: 1,
|
|
391
|
+
...statusOpts,
|
|
167
392
|
});
|
|
168
393
|
}
|
|
169
394
|
if (!isDir(storePath)) {
|
|
170
|
-
return runtimeStatus(runtime, { status: "degraded", reason: "store_not_directory", storePath });
|
|
395
|
+
return runtimeStatus(runtime, { status: "degraded", reason: "store_not_directory", storePath, ...statusOpts });
|
|
171
396
|
}
|
|
172
397
|
let candidates;
|
|
173
398
|
try {
|
|
174
|
-
|
|
399
|
+
const pattern = opts.pattern ?? (runtime === null ? undefined : RUNTIME_STORE_GLOBS[runtime]);
|
|
400
|
+
if (!pattern)
|
|
401
|
+
throw new Error("no declared store pattern");
|
|
402
|
+
candidates = rglob(storePath, pattern);
|
|
175
403
|
}
|
|
176
404
|
catch {
|
|
177
|
-
return runtimeStatus(runtime, { status: "degraded", reason: "store_unreadable", storePath });
|
|
405
|
+
return runtimeStatus(runtime, { status: "degraded", reason: "store_unreadable", storePath, ...statusOpts });
|
|
178
406
|
}
|
|
179
407
|
if (candidates.length === 0) {
|
|
180
408
|
return runtimeStatus(runtime, {
|
|
@@ -182,7 +410,8 @@ export function discoverRuntimeStore(runtime, storePath) {
|
|
|
182
410
|
reason: "no_candidate_files",
|
|
183
411
|
storePath,
|
|
184
412
|
fileCount: 0,
|
|
185
|
-
remediationLabels: runtime === "
|
|
413
|
+
remediationLabels: runtime === "copilot" ? [COPILOT_SPARSE_REMEDIATION] : null,
|
|
414
|
+
...statusOpts,
|
|
186
415
|
});
|
|
187
416
|
}
|
|
188
417
|
return runtimeStatus(runtime, {
|
|
@@ -190,6 +419,7 @@ export function discoverRuntimeStore(runtime, storePath) {
|
|
|
190
419
|
reason: "candidate_files_found",
|
|
191
420
|
storePath,
|
|
192
421
|
fileCount: candidates.length,
|
|
422
|
+
...statusOpts,
|
|
193
423
|
});
|
|
194
424
|
}
|
|
195
425
|
// ── record builders + content helpers ──────────────────────────────
|
|
@@ -200,12 +430,16 @@ export function splitLines(text) {
|
|
|
200
430
|
return parts;
|
|
201
431
|
}
|
|
202
432
|
export function record(opts) {
|
|
433
|
+
const activeRuntime = opts.activeRuntime ?? (opts.runtime !== null && ACTIVE_ANALYTICS_RUNTIMES.has(opts.runtime));
|
|
203
434
|
const item = {
|
|
204
435
|
source_id: stableId(opts.sourceKind, ...opts.sourceParts),
|
|
205
436
|
timestamp: opts.timestamp,
|
|
206
437
|
project_id: projectIdFromPath(opts.projectPath),
|
|
207
438
|
source_kind: opts.sourceKind,
|
|
208
439
|
runtime: opts.runtime,
|
|
440
|
+
source_class: opts.sourceClass ?? (activeRuntime ? "active_runtime" : "project"),
|
|
441
|
+
source_product: opts.sourceProduct ?? opts.runtime ?? "unknown",
|
|
442
|
+
active_runtime: activeRuntime,
|
|
209
443
|
adapter_version: ADAPTER_VERSION,
|
|
210
444
|
data: opts.data,
|
|
211
445
|
};
|
|
@@ -215,6 +449,16 @@ export function record(opts) {
|
|
|
215
449
|
item.session_id = opts.sessionId;
|
|
216
450
|
item.conversation_key = opts.sessionId;
|
|
217
451
|
}
|
|
452
|
+
if (opts.originId)
|
|
453
|
+
item.origin_id = opts.originId;
|
|
454
|
+
else if (opts.origin)
|
|
455
|
+
item.origin_id = originIdentity(opts.origin);
|
|
456
|
+
else if (opts.sessionId)
|
|
457
|
+
item.origin_id = originIdentity(`session:${opts.sessionId}`);
|
|
458
|
+
if (opts.authorClass)
|
|
459
|
+
item.author_class = opts.authorClass;
|
|
460
|
+
if (typeof opts.content === "string")
|
|
461
|
+
item.content_fingerprint = contentFingerprint(opts.content);
|
|
218
462
|
return item;
|
|
219
463
|
}
|
|
220
464
|
function isPlainObject(v) {
|
|
@@ -352,8 +596,13 @@ export function toolCallRecordFromItem(args) {
|
|
|
352
596
|
timestamp: eventTimestamp(event, args.fallbackTimestamp),
|
|
353
597
|
projectPath: args.projectPath,
|
|
354
598
|
runtime: args.runtime,
|
|
599
|
+
sourceClass: args.sourceClass,
|
|
600
|
+
sourceProduct: args.sourceProduct,
|
|
601
|
+
activeRuntime: args.activeRuntime,
|
|
355
602
|
sourceParts: [resolvePath(args.sourcePath), args.index, "tool", toolName],
|
|
356
603
|
sessionId: args.sessionId,
|
|
604
|
+
originId: transportProvenance(args.event, args.item).originId,
|
|
605
|
+
authorClass: "agent",
|
|
357
606
|
data: { tool_name: toolName, arguments: argumentsVal }, // cast: parsed JSON IO boundary
|
|
358
607
|
});
|
|
359
608
|
}
|
|
@@ -361,4 +610,3 @@ export function toolCallRecord(args) {
|
|
|
361
610
|
return toolCallRecordFromItem({ ...args, item: payloadItem(args.event) });
|
|
362
611
|
}
|
|
363
612
|
export { isPlainObject, rglob, isDir, isFilePath };
|
|
364
|
-
//# sourceMappingURL=core.js.map
|