agentera 3.0.0-dev.6 → 3.0.0-dev.69

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.
Files changed (696) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +118 -22
  3. package/bundle/CHANGELOG.md +1361 -0
  4. package/bundle/DESIGN.md +229 -0
  5. package/bundle/LICENSE +201 -0
  6. package/bundle/README.md +143 -0
  7. package/bundle/UPGRADE.md +252 -0
  8. package/bundle/extract-corpus-parity.json +21 -0
  9. package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
  10. package/bundle/references/adapters/package-publication.json +488 -0
  11. package/bundle/references/adapters/package-registry.yaml +435 -188
  12. package/bundle/references/adapters/package-surface-characterization.md +66 -34
  13. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +74 -0
  14. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +62 -0
  15. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  16. package/bundle/references/adapters/runtime-retired-resources.yaml +333 -0
  17. package/bundle/references/analysis/evidence-tier-authority.yaml +518 -0
  18. package/bundle/references/analysis/verification-policy.yaml +266 -0
  19. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +20 -10
  20. package/bundle/references/artifacts/glossary-entry-contract.yaml +1254 -0
  21. package/bundle/references/artifacts/state-storage-authority.yaml +3061 -0
  22. package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
  23. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +7 -8
  24. package/bundle/references/cli/capability-instruction-contract.yaml +11 -14
  25. package/bundle/references/cli/hybrid-route-contract.yaml +438 -0
  26. package/bundle/references/cli/routing-model.md +155 -0
  27. package/bundle/references/cli/trigger-schema-enrichment.md +147 -0
  28. package/bundle/references/cli/update-channels.yaml +19 -2
  29. package/bundle/references/cli/vocabulary-index.yaml +20 -17
  30. package/bundle/references/cli/vocabulary.md +325 -362
  31. package/bundle/references/meta/retained-reference-authority.yaml +151 -0
  32. package/bundle/registry.json +13 -13
  33. package/bundle/skills/agentera/SKILL.md +226 -422
  34. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +84 -0
  35. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +2 -2
  36. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +25 -0
  37. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +37 -18
  38. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +103 -0
  39. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +8 -6
  40. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +27 -0
  41. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +184 -0
  42. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +12 -12
  43. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +5 -5
  44. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +16 -0
  45. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +7 -7
  46. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +51 -0
  47. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +2 -2
  48. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +20 -0
  49. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +144 -0
  50. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +80 -0
  51. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +16 -0
  52. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +18 -18
  53. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +18 -18
  54. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +2 -2
  55. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +16 -0
  56. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +9 -9
  57. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +76 -0
  58. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +9 -7
  59. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +23 -0
  60. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +121 -0
  61. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +66 -0
  62. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
  63. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +23 -0
  64. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +121 -0
  65. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +23 -0
  66. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +6 -5
  67. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +20 -0
  68. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +115 -0
  69. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +24 -0
  70. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +16 -0
  71. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
  72. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +73 -0
  73. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +22 -0
  74. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
  75. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +16 -16
  76. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +7 -6
  77. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +23 -0
  78. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +18 -20
  79. package/bundle/skills/agentera/capability_schema_contract.yaml +178 -34
  80. package/bundle/skills/agentera/protocol.yaml +31 -31
  81. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  82. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +5 -4
  83. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +39 -21
  84. package/bundle/skills/agentera/schemas/artifacts/design.yaml +5 -4
  85. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +15 -19
  86. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +145 -14
  87. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
  88. package/bundle/skills/agentera/schemas/artifacts/health.yaml +58 -21
  89. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +22 -8
  90. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +461 -36
  91. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +133 -20
  92. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +342 -42
  93. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
  94. package/dist/analytics/extractCorpus/cli.js +101 -12
  95. package/dist/analytics/extractCorpus/copilotSessions.js +53 -9
  96. package/dist/analytics/extractCorpus/core.js +59 -24
  97. package/dist/analytics/extractCorpus/corpus.js +58 -23
  98. package/dist/analytics/extractCorpus/coverageAudit.js +260 -0
  99. package/dist/analytics/extractCorpus/cursorSessions.js +12 -7
  100. package/dist/analytics/extractCorpus/evidenceTiers.js +603 -0
  101. package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
  102. package/dist/analytics/extractCorpus/filesystemSources.js +1 -5
  103. package/dist/analytics/extractCorpus/index.js +6 -1
  104. package/dist/analytics/extractCorpus/jsonlSessions.js +24 -5
  105. package/dist/analytics/extractCorpus/sqliteCaps.js +43 -0
  106. package/dist/analytics/extractCorpus/sqliteSessions.js +98 -6
  107. package/dist/analytics/extractCorpus/tierReader.js +108 -0
  108. package/dist/analytics/extractCorpus.js +0 -1
  109. package/dist/analytics/glossaryAdviceResolution.js +166 -0
  110. package/dist/analytics/glossaryInputAcquisition.js +319 -0
  111. package/dist/analytics/personalGlossaryAdmission.js +133 -0
  112. package/dist/analytics/personalGlossaryProfile.js +219 -0
  113. package/dist/analytics/profileSignals.js +211 -0
  114. package/dist/analytics/usageStats.js +169 -42
  115. package/dist/audit/terminologyDrift.js +281 -0
  116. package/dist/bin/agentera.js +3 -2
  117. package/dist/capabilities/audit/instructions.js +16 -0
  118. package/dist/capabilities/build/instructions.js +59 -0
  119. package/dist/capabilities/design/instructions.js +4 -0
  120. package/dist/capabilities/discuss/instructions.js +29 -0
  121. package/dist/capabilities/document/instructions.js +11 -0
  122. package/dist/capabilities/index.js +29 -27
  123. package/dist/capabilities/optimize/instructions.js +14 -0
  124. package/dist/capabilities/orchestrate/instructions.js +42 -0
  125. package/dist/capabilities/plan/instructions.js +33 -0
  126. package/dist/capabilities/profile/instructions.js +70 -0
  127. package/dist/capabilities/research/instructions.js +5 -0
  128. package/dist/capabilities/status/instructions.js +15 -0
  129. package/dist/capabilities/status/startupInstructions.js +34 -0
  130. package/dist/capabilities/vision/instructions.js +4 -0
  131. package/dist/cli/appContext.js +30 -24
  132. package/dist/cli/argvalidate.js +0 -1
  133. package/dist/cli/capabilityContext/benchmark.js +25 -17
  134. package/dist/cli/capabilityContext/bespoke.js +31 -12
  135. package/dist/cli/capabilityContext/build.js +251 -0
  136. package/dist/cli/capabilityContext/closeout.js +33 -30
  137. package/dist/cli/capabilityContext/contract.js +39 -46
  138. package/dist/cli/capabilityContext/evidence.js +90 -73
  139. package/dist/cli/capabilityContext/index.js +1 -2
  140. package/dist/cli/capabilityContext/orchestration.js +45 -21
  141. package/dist/cli/capabilityContext/planState.js +93 -100
  142. package/dist/cli/capabilityContext/progress.js +60 -14
  143. package/dist/cli/capabilityContext/projectVerification.js +409 -0
  144. package/dist/cli/capabilityContext/shared.js +9 -20
  145. package/dist/cli/capabilityContext/slim.js +56 -10
  146. package/dist/cli/capabilityContext/startup.js +57 -115
  147. package/dist/cli/capabilityContext/startupAggregation.js +68 -0
  148. package/dist/cli/capabilityContext/types.js +37 -24
  149. package/dist/cli/capabilityContext.js +1 -2
  150. package/dist/cli/commands/appHome.js +22 -0
  151. package/dist/cli/commands/capability.js +4 -4
  152. package/dist/cli/commands/compact.js +163 -13
  153. package/dist/cli/commands/doctor.js +122 -114
  154. package/dist/cli/commands/durability.js +81 -0
  155. package/dist/cli/commands/glossaryAdvice.js +138 -0
  156. package/dist/cli/commands/lint.js +22 -8
  157. package/dist/cli/commands/personalGlossary.js +176 -0
  158. package/dist/cli/commands/prime/briefOrientation.js +746 -0
  159. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  160. package/dist/cli/commands/prime/bundleStatus.js +190 -0
  161. package/dist/cli/commands/prime/collectEntityOrientation.js +326 -0
  162. package/dist/cli/commands/prime/collectOrientationState.js +219 -0
  163. package/dist/cli/commands/prime/orientationOutput.js +421 -0
  164. package/dist/cli/commands/prime/types.js +1 -0
  165. package/dist/cli/commands/prime/v1Migration.js +38 -0
  166. package/dist/cli/commands/prime.js +80 -558
  167. package/dist/cli/commands/profileGrounding.js +55 -0
  168. package/dist/cli/commands/query.js +77 -52
  169. package/dist/cli/commands/report.js +88 -26
  170. package/dist/cli/commands/route.js +142 -0
  171. package/dist/cli/commands/schema.js +266 -142
  172. package/dist/cli/commands/state/decisions.js +51 -61
  173. package/dist/cli/commands/state/docs.js +63 -86
  174. package/dist/cli/commands/state/experimentRecords.js +151 -0
  175. package/dist/cli/commands/state/experiments.js +11 -64
  176. package/dist/cli/commands/state/get.js +129 -0
  177. package/dist/cli/commands/state/health.js +11 -111
  178. package/dist/cli/commands/state/index.js +6 -41
  179. package/dist/cli/commands/state/list.js +194 -0
  180. package/dist/cli/commands/state/objective.js +21 -64
  181. package/dist/cli/commands/state/plan.js +11 -169
  182. package/dist/cli/commands/state/planTasks.js +154 -0
  183. package/dist/cli/commands/state/plans.js +154 -0
  184. package/dist/cli/commands/state/progress.js +11 -45
  185. package/dist/cli/commands/state/shared.js +0 -1
  186. package/dist/cli/commands/state/todo.js +29 -108
  187. package/dist/cli/commands/state/write.js +433 -0
  188. package/dist/cli/commands/upgrade.js +146 -5
  189. package/dist/cli/commands/upgradeVerify.js +118 -0
  190. package/dist/cli/commands/validate.js +246 -211
  191. package/dist/cli/commands/verify.js +24 -9
  192. package/dist/cli/contracts/bundleStatus.js +1 -0
  193. package/dist/cli/contracts/orientationState.js +1 -0
  194. package/dist/cli/dispatch/argvParser.js +32 -0
  195. package/dist/cli/dispatch/check.js +94 -50
  196. package/dist/cli/dispatch/commands.js +27 -0
  197. package/dist/cli/dispatch/index.js +82 -52
  198. package/dist/cli/dispatch/lifecycle.js +268 -108
  199. package/dist/cli/dispatch/prime.js +68 -29
  200. package/dist/cli/dispatch/projections.js +17 -0
  201. package/dist/cli/dispatch/shared.js +1 -2
  202. package/dist/cli/dispatch/state.js +68 -77
  203. package/dist/cli/dispatch.js +0 -1
  204. package/dist/cli/errors.js +16 -17
  205. package/dist/cli/help.js +395 -41
  206. package/dist/cli/migrationRequired.js +122 -0
  207. package/dist/cli/orientation/attention.js +61 -0
  208. package/dist/cli/orientation/corpusCoverage.js +102 -0
  209. package/dist/cli/orientation.js +438 -170
  210. package/dist/cli/planArtifacts.js +350 -0
  211. package/dist/cli/planEvidence.js +157 -0
  212. package/dist/cli/planLifecycleState.js +36 -0
  213. package/dist/cli/planTaskIndex.js +11 -0
  214. package/dist/cli/preCutoverCommand.js +32 -0
  215. package/dist/cli/prime-blob.js +71 -3
  216. package/dist/cli/profileAcquisition.js +167 -0
  217. package/dist/cli/startupCompletenessContract.js +59 -0
  218. package/dist/cli/stateQuery.js +56 -14
  219. package/dist/cli/structured.js +0 -1
  220. package/dist/cli/todoMarkdown.js +25 -12
  221. package/dist/cli/todoReadinessSelection.js +192 -0
  222. package/dist/cli/todoSeverity.js +18 -0
  223. package/dist/core/atomicWriter.js +20 -0
  224. package/dist/core/developmentChannel.js +1 -0
  225. package/dist/core/developmentInvocation.js +374 -0
  226. package/dist/core/difflib.js +0 -1
  227. package/dist/core/envPaths.js +20 -0
  228. package/dist/core/jsonValue.js +5 -0
  229. package/dist/core/paths.js +0 -1
  230. package/dist/core/pyjson.js +67 -3
  231. package/dist/core/shell.js +4 -0
  232. package/dist/core/skillIdentity.js +23 -0
  233. package/dist/core/sourceRoot.js +9 -12
  234. package/dist/core/text.js +10 -0
  235. package/dist/core/toml.js +0 -1
  236. package/dist/core/yaml.js +8 -1
  237. package/dist/eval/evalSkills.js +30 -26
  238. package/dist/eval/hybridRouteEvaluation.js +155 -0
  239. package/dist/eval/semanticEval.js +43 -20
  240. package/dist/eval/semanticFixtures.js +16 -5
  241. package/dist/hooks/common.js +3 -56
  242. package/dist/hooks/compaction/apply.js +252 -50
  243. package/dist/hooks/compaction/dryRun.js +7 -4
  244. package/dist/hooks/compaction/index.js +5 -6
  245. package/dist/hooks/compaction/parse.js +201 -5
  246. package/dist/hooks/compaction/retention.js +30 -25
  247. package/dist/hooks/compaction/status.js +149 -32
  248. package/dist/hooks/compaction/types.js +0 -1
  249. package/dist/hooks/validateArtifact/agentFacing.js +0 -1
  250. package/dist/hooks/validateArtifact/index.js +7 -64
  251. package/dist/hooks/validateArtifact/markdown.js +57 -7
  252. package/dist/hooks/validateArtifact/schema.js +110 -19
  253. package/dist/hooks/validateArtifact/traversal.js +13 -11
  254. package/dist/hooks/validateArtifact/violations.js +7 -5
  255. package/dist/migrate/v2HandoffManifest.js +127 -8
  256. package/dist/registries/activationContract.js +2 -0
  257. package/dist/registries/activationTuples.js +108 -0
  258. package/dist/registries/artifactProtocolIds.js +2 -1
  259. package/dist/registries/artifactRegistry.js +224 -63
  260. package/dist/registries/artifactSchemaProjection.js +45 -0
  261. package/dist/registries/capabilityContract.js +129 -2
  262. package/dist/registries/evaluatorHandoffContract.js +2 -3
  263. package/dist/registries/evidenceTierContract.js +371 -0
  264. package/dist/registries/glossaryAdviceContract.js +79 -0
  265. package/dist/registries/glossaryCaveatContract.js +67 -0
  266. package/dist/registries/glossaryConsumerContractValidation.js +787 -0
  267. package/dist/registries/glossaryEntryContract.js +757 -0
  268. package/dist/registries/glossaryTermIdentity.js +17 -0
  269. package/dist/registries/glossaryTermOccurrence.js +20 -0
  270. package/dist/registries/hybridRoute.js +274 -0
  271. package/dist/registries/hybridRouteReceipt.js +221 -0
  272. package/dist/registries/packagePublication.js +273 -0
  273. package/dist/registries/packageRegistry.js +187 -211
  274. package/dist/registries/todoReadinessContract.js +448 -0
  275. package/dist/registries/triggerLoader.js +174 -0
  276. package/dist/registries/verbosityBudgetContract.js +205 -0
  277. package/dist/release/releaseMetadata.js +156 -6
  278. package/dist/runtime/lifecycleAdapterContract.js +457 -0
  279. package/dist/runtime/lifecycleAdapters.js +777 -0
  280. package/dist/runtime/lifecycleAuthority.js +453 -0
  281. package/dist/runtime/lifecycleOperationContract.js +123 -0
  282. package/dist/runtime/lifecycleOperations.js +634 -0
  283. package/dist/runtime/lifecycleOwnershipJournal.js +622 -0
  284. package/dist/runtime/lifecyclePublication.js +415 -0
  285. package/dist/runtime/lifecycleSnapshot.js +438 -0
  286. package/dist/runtime/nativeResourceCleanup.js +502 -0
  287. package/dist/setup/opencode.js +20 -13
  288. package/dist/setup/opencodeConstants.js +1 -0
  289. package/dist/setup/sharedSkill.js +45 -0
  290. package/dist/setup/smokeChecks.js +21 -82
  291. package/dist/state/archiveDiscovery.js +580 -0
  292. package/dist/state/archivePublication.js +225 -0
  293. package/dist/state/archiveRecovery.js +237 -0
  294. package/dist/state/archiveReplay.js +53 -0
  295. package/dist/state/canonicalMigrationRecord.js +36 -0
  296. package/dist/state/changelog.js +221 -0
  297. package/dist/state/decisionEntities.js +367 -0
  298. package/dist/state/decisionLegacyValidation.js +215 -0
  299. package/dist/state/decisionMigrationProvenance.js +199 -0
  300. package/dist/state/decisionOverlay.js +254 -0
  301. package/dist/state/decisionRevision.js +256 -0
  302. package/dist/state/decisionRevisionMigration.js +89 -0
  303. package/dist/state/directRetrieval.js +323 -0
  304. package/dist/state/durability.js +324 -0
  305. package/dist/state/entityCutover.js +459 -0
  306. package/dist/state/entityCutoverGit.js +127 -0
  307. package/dist/state/entityGlossaryAuthority.js +13 -0
  308. package/dist/state/entityListProjection.js +187 -0
  309. package/dist/state/entityListRuntimeRegistry.js +85 -0
  310. package/dist/state/entityMigrationCausality.js +97 -0
  311. package/dist/state/entityMigrationIdentity.js +5 -0
  312. package/dist/state/entityMigrationPreview.js +840 -0
  313. package/dist/state/entityMigrationTodo.js +133 -0
  314. package/dist/state/entityPublicationContext.js +859 -0
  315. package/dist/state/entityRetrievalHelp.js +506 -0
  316. package/dist/state/entityStorage.js +899 -0
  317. package/dist/state/exactReplacementRecovery.js +18 -0
  318. package/dist/state/experimentArchive.js +63 -0
  319. package/dist/state/experimentIdentity.js +202 -0
  320. package/dist/state/healthEntities.js +262 -0
  321. package/dist/state/healthEntityValidation.js +18 -0
  322. package/dist/state/healthRepair.js +69 -0
  323. package/dist/state/installRoot.js +64 -25
  324. package/dist/state/legacyEntityCutoverEvidence.js +65 -0
  325. package/dist/state/legacyIdentity.js +47 -0
  326. package/dist/state/legacySummaryRecord.js +6 -0
  327. package/dist/state/listAccounting.js +54 -0
  328. package/dist/state/listClassification.js +17 -0
  329. package/dist/state/listCursor.js +42 -0
  330. package/dist/state/listRetrieval.js +781 -0
  331. package/dist/state/migrationSourceBinding.js +30 -0
  332. package/dist/state/objectiveExperimentEntities.js +322 -0
  333. package/dist/state/planEntities.js +1027 -0
  334. package/dist/state/planIdentity.js +47 -0
  335. package/dist/state/planLineageValidation.js +52 -0
  336. package/dist/state/planReplacementTransaction.js +475 -0
  337. package/dist/state/planRetrieval.js +313 -0
  338. package/dist/state/planTaskRetrieval.js +294 -0
  339. package/dist/state/progressEntities.js +512 -0
  340. package/dist/state/progressGlossaryCaveat.js +168 -0
  341. package/dist/state/progressPublicationOrder.js +19 -0
  342. package/dist/state/progressWritePolicy.js +33 -0
  343. package/dist/state/projectRoot.js +62 -0
  344. package/dist/state/projectionPolicy.js +190 -0
  345. package/dist/state/retrievalAuthority.js +156 -0
  346. package/dist/state/safeProjectFile.js +155 -0
  347. package/dist/state/startupAnalysis/benchmark.js +92 -27
  348. package/dist/state/startupAnalysis/contract.js +48 -10
  349. package/dist/state/startupAnalysis/helpers.js +27 -73
  350. package/dist/state/startupAnalysis/index.js +0 -1
  351. package/dist/state/startupAnalysis/metrics.js +25 -19
  352. package/dist/state/startupAnalysis/records.js +13 -10
  353. package/dist/state/startupAnalysis/report.js +26 -38
  354. package/dist/state/startupAnalysis/threshold.js +19 -7
  355. package/dist/state/startupAnalysis.js +0 -1
  356. package/dist/state/startupProjection.js +499 -0
  357. package/dist/state/stateMode.js +222 -0
  358. package/dist/state/stateStorageAuthority.js +47 -0
  359. package/dist/state/summaryEntityRead.js +25 -0
  360. package/dist/state/summaryMigrationProvenance.js +66 -0
  361. package/dist/state/summarySourceRowAuthority.js +36 -0
  362. package/dist/state/todoActivationSafety.js +58 -0
  363. package/dist/state/todoDocsEntities.js +1124 -0
  364. package/dist/state/todoDocsEntityValidation.js +158 -0
  365. package/dist/state/todoMarkdownProjection.js +51 -0
  366. package/dist/state/todoReconciliationActivation.js +182 -0
  367. package/dist/state/todoReconciliationInspection.js +171 -0
  368. package/dist/state/todoReconciliationRepair.js +318 -0
  369. package/dist/state/todoReconciliationTransaction.js +595 -0
  370. package/dist/state/write/assign.js +20 -0
  371. package/dist/state/write/candidateMutation.js +269 -0
  372. package/dist/state/write/errors.js +11 -0
  373. package/dist/state/write/experimentPublication.js +192 -0
  374. package/dist/state/write/explain.js +377 -0
  375. package/dist/state/write/fields.js +61 -0
  376. package/dist/state/write/glossaryPublication.js +263 -0
  377. package/dist/state/write/grammar.js +285 -0
  378. package/dist/state/write/helpers.js +29 -0
  379. package/dist/state/write/index.js +12 -0
  380. package/dist/state/write/input.js +391 -0
  381. package/dist/state/write/lock.js +837 -0
  382. package/dist/state/write/mutation.js +234 -0
  383. package/dist/state/write/operations.js +170 -0
  384. package/dist/state/write/planEvaluation.js +128 -0
  385. package/dist/state/write/planPublication.js +179 -0
  386. package/dist/state/write/runtimeOperations.js +146 -0
  387. package/dist/state/write/serialize.js +1 -0
  388. package/dist/state/write/transaction.js +57 -0
  389. package/dist/state/write/validate.js +7 -0
  390. package/dist/upgrade/appContentRefresh.js +383 -0
  391. package/dist/upgrade/appModel.js +8 -7
  392. package/dist/upgrade/atomicWriter.js +1 -0
  393. package/dist/upgrade/bundleEvidence.js +33 -0
  394. package/dist/upgrade/channels.js +12 -8
  395. package/dist/upgrade/compatibility.js +56 -21
  396. package/dist/upgrade/doctor.js +165 -199
  397. package/dist/upgrade/doctorClassifier.js +187 -0
  398. package/dist/upgrade/installedHooksRetirement.js +196 -0
  399. package/dist/upgrade/legacyAgentCleanup.js +282 -0
  400. package/dist/upgrade/lifecycleUpgrade.js +113 -0
  401. package/dist/upgrade/migrateArtifactsV2ToV3.js +375 -79
  402. package/dist/upgrade/migrationPublication.js +122 -0
  403. package/dist/upgrade/nextMajorDoctor.js +29 -10
  404. package/dist/upgrade/npxPlatformStatus.js +22 -0
  405. package/dist/upgrade/projectIntegration.js +145 -189
  406. package/dist/upgrade/projectIntegrationDecision.js +50 -0
  407. package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
  408. package/dist/upgrade/runtimeMigration.js +272 -373
  409. package/dist/upgrade/upgradeCommands.js +14 -1
  410. package/dist/upgrade/upgradeLock.js +85 -0
  411. package/dist/upgrade/upgradeOrchestrator.js +263 -59
  412. package/dist/upgrade/v3CapabilitySurface.js +2 -3
  413. package/dist/upgrade/versionResolution.js +2 -3
  414. package/dist/validate/activationArtifactEvidence.js +852 -0
  415. package/dist/validate/activationArtifactEvidenceTypes.js +12 -0
  416. package/dist/validate/activationConjunction.js +816 -0
  417. package/dist/validate/activationEvidenceManifest.js +531 -0
  418. package/dist/validate/activationPackageSemantics.js +29 -0
  419. package/dist/validate/appHomeContract.js +2 -8
  420. package/dist/validate/bootstrapAuthority.js +44 -0
  421. package/dist/validate/capability.js +133 -12
  422. package/dist/validate/crossCapability.js +15 -10
  423. package/dist/validate/retainedReferenceAuthority.js +879 -0
  424. package/dist/validate/selfAudit.js +39 -45
  425. package/dist/validate/v1LegacyCruft.js +131 -0
  426. package/dist/validate/vocabularyAuthority.js +18 -13
  427. package/package.json +60 -29
  428. package/bundle/references/adapters/cursor.md +0 -213
  429. package/bundle/references/adapters/opencode.md +0 -530
  430. package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
  431. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  432. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  433. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -548
  434. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  435. package/bundle/references/analysis/benchmark.md +0 -267
  436. package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
  437. package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
  438. package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -369
  439. package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -250
  440. package/bundle/references/cli/capability-tool-classification.yaml +0 -53
  441. package/bundle/references/cli/coexistence-probe.yaml +0 -9
  442. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
  443. package/bundle/references/cli/single-name-protocol.yaml +0 -42
  444. package/bundle/references/cli/upgrade-repair-wording.md +0 -31
  445. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +0 -98
  446. package/bundle/references/meta/documentation-inventory.md +0 -49
  447. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  448. package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
  449. package/bundle/skills/agentera/agents/hej.toml +0 -6
  450. package/bundle/skills/agentera/agents/inspektera.toml +0 -6
  451. package/bundle/skills/agentera/agents/inspirera.toml +0 -6
  452. package/bundle/skills/agentera/agents/optimera.toml +0 -6
  453. package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
  454. package/bundle/skills/agentera/agents/planera.toml +0 -6
  455. package/bundle/skills/agentera/agents/profilera.toml +0 -6
  456. package/bundle/skills/agentera/agents/realisera.toml +0 -6
  457. package/bundle/skills/agentera/agents/resonera.toml +0 -6
  458. package/bundle/skills/agentera/agents/visionera.toml +0 -6
  459. package/bundle/skills/agentera/agents/visualisera.toml +0 -6
  460. package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +0 -73
  461. package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +0 -35
  462. package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +0 -69
  463. package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +0 -58
  464. package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +0 -76
  465. package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +0 -38
  466. package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +0 -24
  467. package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +0 -34
  468. package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +0 -39
  469. package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +0 -64
  470. package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +0 -42
  471. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +0 -120
  472. package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +0 -62
  473. package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +0 -34
  474. package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +0 -61
  475. package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +0 -18
  476. package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +0 -45
  477. package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +0 -57
  478. package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +0 -80
  479. package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +0 -39
  480. package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +0 -110
  481. package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +0 -47
  482. package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +0 -46
  483. package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +0 -77
  484. package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +0 -41
  485. package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +0 -33
  486. package/bundle/skills/agentera/references/contract.md +0 -1039
  487. package/dist/analytics/extractCorpus/cli.js.map +0 -1
  488. package/dist/analytics/extractCorpus/copilotSessions.js.map +0 -1
  489. package/dist/analytics/extractCorpus/core.js.map +0 -1
  490. package/dist/analytics/extractCorpus/corpus.js.map +0 -1
  491. package/dist/analytics/extractCorpus/cursorSessions.js.map +0 -1
  492. package/dist/analytics/extractCorpus/filesystemSources.js.map +0 -1
  493. package/dist/analytics/extractCorpus/index.js.map +0 -1
  494. package/dist/analytics/extractCorpus/jsonlSessions.js.map +0 -1
  495. package/dist/analytics/extractCorpus/sqliteSessions.js.map +0 -1
  496. package/dist/analytics/extractCorpus.js.map +0 -1
  497. package/dist/analytics/usageStats.js.map +0 -1
  498. package/dist/bin/agentera.js.map +0 -1
  499. package/dist/capabilities/dokumentera/instructions.js +0 -6
  500. package/dist/capabilities/dokumentera/instructions.js.map +0 -1
  501. package/dist/capabilities/hej/instructions.js +0 -6
  502. package/dist/capabilities/hej/instructions.js.map +0 -1
  503. package/dist/capabilities/index.js.map +0 -1
  504. package/dist/capabilities/inspektera/instructions.js +0 -6
  505. package/dist/capabilities/inspektera/instructions.js.map +0 -1
  506. package/dist/capabilities/inspirera/instructions.js +0 -6
  507. package/dist/capabilities/inspirera/instructions.js.map +0 -1
  508. package/dist/capabilities/optimera/instructions.js +0 -6
  509. package/dist/capabilities/optimera/instructions.js.map +0 -1
  510. package/dist/capabilities/orkestrera/instructions.js +0 -6
  511. package/dist/capabilities/orkestrera/instructions.js.map +0 -1
  512. package/dist/capabilities/planera/instructions.js +0 -6
  513. package/dist/capabilities/planera/instructions.js.map +0 -1
  514. package/dist/capabilities/profilera/instructions.js +0 -6
  515. package/dist/capabilities/profilera/instructions.js.map +0 -1
  516. package/dist/capabilities/realisera/instructions.js +0 -6
  517. package/dist/capabilities/realisera/instructions.js.map +0 -1
  518. package/dist/capabilities/resonera/instructions.js +0 -6
  519. package/dist/capabilities/resonera/instructions.js.map +0 -1
  520. package/dist/capabilities/visionera/instructions.js +0 -6
  521. package/dist/capabilities/visionera/instructions.js.map +0 -1
  522. package/dist/capabilities/visualisera/instructions.js +0 -6
  523. package/dist/capabilities/visualisera/instructions.js.map +0 -1
  524. package/dist/cli/appContext.js.map +0 -1
  525. package/dist/cli/argvalidate.js.map +0 -1
  526. package/dist/cli/capabilityContext/benchmark.js.map +0 -1
  527. package/dist/cli/capabilityContext/bespoke.js.map +0 -1
  528. package/dist/cli/capabilityContext/closeout.js.map +0 -1
  529. package/dist/cli/capabilityContext/contract.js.map +0 -1
  530. package/dist/cli/capabilityContext/evidence.js.map +0 -1
  531. package/dist/cli/capabilityContext/index.js.map +0 -1
  532. package/dist/cli/capabilityContext/orchestration.js.map +0 -1
  533. package/dist/cli/capabilityContext/planState.js.map +0 -1
  534. package/dist/cli/capabilityContext/progress.js.map +0 -1
  535. package/dist/cli/capabilityContext/realisera.js +0 -174
  536. package/dist/cli/capabilityContext/realisera.js.map +0 -1
  537. package/dist/cli/capabilityContext/shared.js.map +0 -1
  538. package/dist/cli/capabilityContext/slim.js.map +0 -1
  539. package/dist/cli/capabilityContext/startup.js.map +0 -1
  540. package/dist/cli/capabilityContext/types.js.map +0 -1
  541. package/dist/cli/capabilityContext.js.map +0 -1
  542. package/dist/cli/commands/backfill.js +0 -84
  543. package/dist/cli/commands/backfill.js.map +0 -1
  544. package/dist/cli/commands/capability.js.map +0 -1
  545. package/dist/cli/commands/compact.js.map +0 -1
  546. package/dist/cli/commands/doctor.js.map +0 -1
  547. package/dist/cli/commands/lint.js.map +0 -1
  548. package/dist/cli/commands/prime.js.map +0 -1
  549. package/dist/cli/commands/query.js.map +0 -1
  550. package/dist/cli/commands/report.js.map +0 -1
  551. package/dist/cli/commands/schema.js.map +0 -1
  552. package/dist/cli/commands/state/decisions.js.map +0 -1
  553. package/dist/cli/commands/state/docs.js.map +0 -1
  554. package/dist/cli/commands/state/experiments.js.map +0 -1
  555. package/dist/cli/commands/state/health.js.map +0 -1
  556. package/dist/cli/commands/state/index.js.map +0 -1
  557. package/dist/cli/commands/state/objective.js.map +0 -1
  558. package/dist/cli/commands/state/plan.js.map +0 -1
  559. package/dist/cli/commands/state/progress.js.map +0 -1
  560. package/dist/cli/commands/state/shared.js.map +0 -1
  561. package/dist/cli/commands/state/todo.js.map +0 -1
  562. package/dist/cli/commands/state.js +0 -1023
  563. package/dist/cli/commands/state.js.map +0 -1
  564. package/dist/cli/commands/upgrade.js.map +0 -1
  565. package/dist/cli/commands/validate.js.map +0 -1
  566. package/dist/cli/commands/verify.js.map +0 -1
  567. package/dist/cli/dispatch/check.js.map +0 -1
  568. package/dist/cli/dispatch/index.js.map +0 -1
  569. package/dist/cli/dispatch/lifecycle.js.map +0 -1
  570. package/dist/cli/dispatch/prime.js.map +0 -1
  571. package/dist/cli/dispatch/shared.js.map +0 -1
  572. package/dist/cli/dispatch/state.js.map +0 -1
  573. package/dist/cli/dispatch.js.map +0 -1
  574. package/dist/cli/errors.js.map +0 -1
  575. package/dist/cli/help.js.map +0 -1
  576. package/dist/cli/orientation.js.map +0 -1
  577. package/dist/cli/prime-blob.js.map +0 -1
  578. package/dist/cli/stateQuery.js.map +0 -1
  579. package/dist/cli/structured.js.map +0 -1
  580. package/dist/cli/todoMarkdown.js.map +0 -1
  581. package/dist/core/difflib.js.map +0 -1
  582. package/dist/core/git.js +0 -43
  583. package/dist/core/git.js.map +0 -1
  584. package/dist/core/paths.js.map +0 -1
  585. package/dist/core/pyjson.js.map +0 -1
  586. package/dist/core/sourceRoot.js.map +0 -1
  587. package/dist/core/toml.js.map +0 -1
  588. package/dist/core/yaml.js.map +0 -1
  589. package/dist/eval/evalSkills.js.map +0 -1
  590. package/dist/eval/semanticEval.js.map +0 -1
  591. package/dist/eval/semanticFixtures.js.map +0 -1
  592. package/dist/hooks/common.js.map +0 -1
  593. package/dist/hooks/compaction/apply.js.map +0 -1
  594. package/dist/hooks/compaction/dryRun.js.map +0 -1
  595. package/dist/hooks/compaction/index.js.map +0 -1
  596. package/dist/hooks/compaction/parse.js.map +0 -1
  597. package/dist/hooks/compaction/retention.js.map +0 -1
  598. package/dist/hooks/compaction/status.js.map +0 -1
  599. package/dist/hooks/compaction/types.js.map +0 -1
  600. package/dist/hooks/compaction.js +0 -935
  601. package/dist/hooks/compaction.js.map +0 -1
  602. package/dist/hooks/cursorPreToolUse.js +0 -19
  603. package/dist/hooks/cursorPreToolUse.js.map +0 -1
  604. package/dist/hooks/cursorSessionStart.js +0 -71
  605. package/dist/hooks/cursorSessionStart.js.map +0 -1
  606. package/dist/hooks/sessionStart.js +0 -209
  607. package/dist/hooks/sessionStart.js.map +0 -1
  608. package/dist/hooks/sessionStop.js +0 -203
  609. package/dist/hooks/sessionStop.js.map +0 -1
  610. package/dist/hooks/validateArtifact/agentFacing.js.map +0 -1
  611. package/dist/hooks/validateArtifact/index.js.map +0 -1
  612. package/dist/hooks/validateArtifact/markdown.js.map +0 -1
  613. package/dist/hooks/validateArtifact/runtime.js +0 -83
  614. package/dist/hooks/validateArtifact/runtime.js.map +0 -1
  615. package/dist/hooks/validateArtifact/schema.js.map +0 -1
  616. package/dist/hooks/validateArtifact/traversal.js.map +0 -1
  617. package/dist/hooks/validateArtifact/violations.js.map +0 -1
  618. package/dist/hooks/validateArtifact.js +0 -924
  619. package/dist/hooks/validateArtifact.js.map +0 -1
  620. package/dist/migrate/v2HandoffManifest.js.map +0 -1
  621. package/dist/registries/artifactProtocolIds.js.map +0 -1
  622. package/dist/registries/artifactRegistry.js.map +0 -1
  623. package/dist/registries/capabilityContract.js.map +0 -1
  624. package/dist/registries/evaluatorHandoffContract.js.map +0 -1
  625. package/dist/registries/packageRegistry.js.map +0 -1
  626. package/dist/registries/runtimeAdapterRegistry.js +0 -315
  627. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  628. package/dist/release/releaseMetadata.js.map +0 -1
  629. package/dist/setup/codex/agents.js +0 -96
  630. package/dist/setup/codex/agents.js.map +0 -1
  631. package/dist/setup/codex/cli.js +0 -161
  632. package/dist/setup/codex/cli.js.map +0 -1
  633. package/dist/setup/codex/configToml.js +0 -644
  634. package/dist/setup/codex/configToml.js.map +0 -1
  635. package/dist/setup/codex/constants.js +0 -29
  636. package/dist/setup/codex/constants.js.map +0 -1
  637. package/dist/setup/codex/installRoot.js +0 -64
  638. package/dist/setup/codex/installRoot.js.map +0 -1
  639. package/dist/setup/codex/state.js +0 -270
  640. package/dist/setup/codex/state.js.map +0 -1
  641. package/dist/setup/codex.js +0 -12
  642. package/dist/setup/codex.js.map +0 -1
  643. package/dist/setup/copilot.js +0 -227
  644. package/dist/setup/copilot.js.map +0 -1
  645. package/dist/setup/cursor.js +0 -127
  646. package/dist/setup/cursor.js.map +0 -1
  647. package/dist/setup/doctor/core.js +0 -300
  648. package/dist/setup/doctor/core.js.map +0 -1
  649. package/dist/setup/doctor/diagnostics.js +0 -247
  650. package/dist/setup/doctor/diagnostics.js.map +0 -1
  651. package/dist/setup/doctor/opencode.js +0 -281
  652. package/dist/setup/doctor/opencode.js.map +0 -1
  653. package/dist/setup/doctor/report.js +0 -474
  654. package/dist/setup/doctor/report.js.map +0 -1
  655. package/dist/setup/doctor.js +0 -10
  656. package/dist/setup/doctor.js.map +0 -1
  657. package/dist/setup/opencode.js.map +0 -1
  658. package/dist/setup/smokeChecks.js.map +0 -1
  659. package/dist/state/installRoot.js.map +0 -1
  660. package/dist/state/progressCommit.js +0 -289
  661. package/dist/state/progressCommit.js.map +0 -1
  662. package/dist/state/startupAnalysis/benchmark.js.map +0 -1
  663. package/dist/state/startupAnalysis/contract.js.map +0 -1
  664. package/dist/state/startupAnalysis/helpers.js.map +0 -1
  665. package/dist/state/startupAnalysis/index.js.map +0 -1
  666. package/dist/state/startupAnalysis/metrics.js.map +0 -1
  667. package/dist/state/startupAnalysis/records.js.map +0 -1
  668. package/dist/state/startupAnalysis/report.js.map +0 -1
  669. package/dist/state/startupAnalysis/threshold.js.map +0 -1
  670. package/dist/state/startupAnalysis.js.map +0 -1
  671. package/dist/upgrade/appModel.js.map +0 -1
  672. package/dist/upgrade/channels.js.map +0 -1
  673. package/dist/upgrade/coexistenceProbe.js +0 -83
  674. package/dist/upgrade/coexistenceProbe.js.map +0 -1
  675. package/dist/upgrade/compatibility.js.map +0 -1
  676. package/dist/upgrade/doctor.js.map +0 -1
  677. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -570
  678. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  679. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
  680. package/dist/upgrade/nextMajorDoctor.js.map +0 -1
  681. package/dist/upgrade/projectIntegration.js.map +0 -1
  682. package/dist/upgrade/runtimeMigration.js.map +0 -1
  683. package/dist/upgrade/upgradeCommands.js.map +0 -1
  684. package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
  685. package/dist/upgrade/v3CapabilitySurface.js.map +0 -1
  686. package/dist/upgrade/versionResolution.js.map +0 -1
  687. package/dist/validate/appHomeContract.js.map +0 -1
  688. package/dist/validate/capability.js.map +0 -1
  689. package/dist/validate/crossCapability.js.map +0 -1
  690. package/dist/validate/lifecycleAdapters.js +0 -772
  691. package/dist/validate/lifecycleAdapters.js.map +0 -1
  692. package/dist/validate/selfAudit.js.map +0 -1
  693. package/dist/validate/vocabularyAuthority.js.map +0 -1
  694. /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
  695. /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
  696. /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 { resolveArtifactPath } from "../../registries/artifactRegistry.js";
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, recentCycles, sourceMetadata, structuredState, validateFilterValues, } from "../stateQuery.js";
8
+ import { COMMAND_FILTERS, emitStateStructured, extractEntries, filterByFieldValue, filterByTopic, formatEntry, loadArtifact, missingSchemaError, sourceMetadata, structuredState, validateFilterValues, } from "../stateQuery.js";
9
9
  import { displayFields, queryTodo } from "./state/index.js";
10
+ import { STATE_FAMILY_GET_COMMANDS, STATE_FAMILY_LIST_COMMANDS } from "../capabilityContext/types.js";
11
+ import { entityPublicRetrieval } from "../../state/retrievalAuthority.js";
12
+ import { listProgressEntities } from "../../state/progressEntities.js";
13
+ import { readChangelog } from "../../state/changelog.js";
10
14
  const ENCODED_TRAVERSAL_RE = /%(?:2e|2f|5c)/i;
11
15
  const ALLOWED_RAW_ARTIFACT_USES = [
12
16
  "artifact writes",
@@ -17,7 +21,7 @@ const ALLOWED_RAW_ARTIFACT_USES = [
17
21
  "unavailable or incomplete CLI state after CLI fallbacks",
18
22
  "benchmark analysis",
19
23
  ];
20
- const BENCHMARK_CONTEXT_COMMAND = "agentera prime --context optimera --format json";
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 routineCommand = STATE_COMMAND_NAMES.has(artifactId) ? `agentera ${artifactId} --format json` : null;
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 (routineCommand)
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, docsOverrides) {
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
- let mappedPath = defaultPath;
79
- let resolutionSource = record !== null ? "registry default" : "schema metadata";
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 !== null ? record.docsYamlCanOverridePath : false,
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
- artifact_id: artifactId,
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, docsOverrides));
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
- docs_yaml_path: path.join(process.cwd(), ".agentera", "docs.yaml"),
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 queryLastPhase(args, schemas, io) {
215
- const o = out(io);
216
- const e = err(io);
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 info = schemas.progress;
219
- if (!info) {
220
- e(missingSchemaError("progress") + "\n");
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
- const data = loadArtifact(artifactPath(info, "progress"));
224
- const entries = extractEntries(data);
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
- const last = recentCycles(entries, 1)[0];
231
- const phase = last.phase ?? "";
232
- if (format !== "text") {
233
- emitStructured({ phase }, format, o);
234
- return 0;
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
- if (phase)
237
- o(phase + "\n");
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 !== "text" && query in schemas)
330
- return queryGeneric(args, schemas, query, io);
331
- return handlers[query](args, schemas, io);
353
+ if (format === "text" || !(query in schemas))
354
+ return handlers[query](args, schemas, io);
332
355
  }
333
- if (query in schemas)
334
- return queryGeneric(args, schemas, query, io);
335
- for (const name of Object.keys(schemas)) {
336
- if (query === name || query === name.replace(/s$/, "") || query === name + "s") {
337
- return queryGeneric(args, schemas, name, io);
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
- const argv = ["--output", corpusPath];
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 override = env.PROFILERA_PROFILE_DIR;
51
- if (override)
52
- return path.join(override, "intermediate", "corpus.json");
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.XDG_DATA_HOME || path.join(os.homedir(), ".local", "share"), "agentera");
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; corpus refresh (which would run the maintainer
103
- * extractor over local runtime history) is reported as unavailable in the
104
- * self-contained package.
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));
@@ -137,45 +181,62 @@ export function cmdReport(args, io = {}) {
137
181
  privacy: {
138
182
  local_history_read: false,
139
183
  local_history_write: false,
140
- corpus_write: false,
184
+ tier_write: false,
141
185
  required_consent: "local-history",
142
186
  provided_consent: null,
143
187
  },
144
188
  corpus_path: corpusPath,
189
+ tier_path: tiersDirForCorpusPath(corpusPath),
145
190
  engine: { command: engineCommand },
146
191
  diagnostics: [
147
- "dry-run does not read runtime history or write corpus files",
148
- "generated corpus is internal state for stats at $PROFILERA_PROFILE_DIR/intermediate/corpus.json",
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
+ : []),
149
197
  ],
150
198
  };
151
199
  if (outputFormat === "json") {
152
200
  out(JSON.stringify(payload, null, 2) + "\n");
153
201
  }
154
202
  else {
155
- out(`agentera stats refresh: dry_run\ncorpus=${corpusPath}\nengine=${engineCommand.join(" ")}\n`);
156
- out("privacy=local_history_read=false, corpus_write=false, required_consent=local-history\n");
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");
157
205
  }
158
206
  return 0;
159
207
  }
160
- // consent === "local-history": run the corpus extractor over local history.
208
+ // consent === "local-history": extract local history into bounded tiers.
161
209
  let engineOut = "";
162
210
  let engineErr = "";
163
211
  const rc = extractCorpusMain(engineArgv, {
164
212
  out: (t) => (engineOut += t + "\n"),
165
213
  err: (t) => (engineErr += t + "\n"),
166
214
  });
215
+ const refreshStatus = rc === 0 ? "pass" : rc === 4 ? "flagged" : "fail";
167
216
  const payload = {
168
217
  command: "stats refresh",
169
- status: rc === 0 ? "pass" : "fail",
170
- privacy: { local_history_read: true, local_history_write: false, corpus_write: true, required_consent: "local-history", provided_consent: "local-history" },
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
+ },
171
231
  corpus_path: corpusPath,
232
+ tier_path: tiersDirForCorpusPath(corpusPath),
172
233
  engine: { command: engineCommand, exit_code: rc, stdout: engineOut.split("\n").filter((l) => l), stderr: engineErr.split("\n").filter((l) => l) },
173
234
  };
174
235
  if (outputFormat === "json") {
175
236
  out(JSON.stringify(payload, null, 2) + "\n");
176
237
  }
177
238
  else {
178
- out(`agentera stats refresh: ${payload.status}\ncorpus=${corpusPath}\n`);
239
+ out(`agentera stats refresh: ${payload.status}\ncorpus=${corpusPath}\ntiers=${tiersDirForCorpusPath(corpusPath)}\n`);
179
240
  if (engineOut)
180
241
  out(engineOut);
181
242
  if (engineErr)
@@ -213,6 +274,8 @@ export function cmdReport(args, io = {}) {
213
274
  const engineArgs = ["--corpus", corpusPath];
214
275
  if (args.project)
215
276
  engineArgs.push("--project", args.project);
277
+ if (args.sources)
278
+ engineArgs.push("--sources", args.sources);
216
279
  if (outputFormat === "json")
217
280
  engineArgs.push("--json");
218
281
  return usageMain(engineArgs, {
@@ -220,4 +283,3 @@ export function cmdReport(args, io = {}) {
220
283
  err: (t) => err(t + "\n"),
221
284
  });
222
285
  }
223
- //# sourceMappingURL=report.js.map