agentera 3.0.0-dev.4 → 3.0.0-dev.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (585) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +108 -22
  3. package/bundle/.agentera-npx-bundle.json +1 -1
  4. package/bundle/CHANGELOG.md +1351 -0
  5. package/bundle/DESIGN.md +229 -0
  6. package/bundle/LICENSE +201 -0
  7. package/bundle/README.md +143 -0
  8. package/bundle/UPGRADE.md +236 -0
  9. package/bundle/extract-corpus-parity.json +21 -0
  10. package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
  11. package/bundle/references/adapters/package-publication.json +437 -0
  12. package/bundle/references/adapters/package-registry.yaml +434 -189
  13. package/bundle/references/adapters/package-surface-characterization.md +66 -35
  14. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +74 -0
  15. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +62 -0
  16. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  17. package/bundle/references/adapters/runtime-retired-resources.yaml +333 -0
  18. package/bundle/references/analysis/evidence-tier-authority.yaml +518 -0
  19. package/bundle/references/analysis/verification-policy.yaml +191 -0
  20. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +20 -10
  21. package/bundle/references/artifacts/glossary-entry-contract.yaml +1254 -0
  22. package/bundle/references/artifacts/state-storage-authority.yaml +2982 -0
  23. package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
  24. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +7 -8
  25. package/bundle/references/cli/capability-instruction-contract.yaml +97 -59
  26. package/bundle/references/cli/hybrid-route-contract.yaml +438 -0
  27. package/bundle/references/cli/routing-model.md +155 -0
  28. package/bundle/references/cli/trigger-schema-enrichment.md +147 -0
  29. package/bundle/references/cli/update-channels.yaml +35 -2
  30. package/bundle/references/cli/vocabulary-index.yaml +23 -20
  31. package/bundle/references/cli/vocabulary.md +337 -366
  32. package/bundle/references/meta/retained-reference-authority.yaml +151 -0
  33. package/bundle/registry.json +14 -14
  34. package/bundle/skills/agentera/SKILL.md +218 -408
  35. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +84 -0
  36. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +2 -2
  37. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +25 -0
  38. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +37 -18
  39. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +102 -0
  40. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +6 -5
  41. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +27 -0
  42. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +176 -0
  43. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +12 -12
  44. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +5 -5
  45. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +16 -0
  46. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +7 -7
  47. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +51 -0
  48. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +2 -2
  49. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +20 -0
  50. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +144 -0
  51. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +80 -0
  52. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +16 -0
  53. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +18 -18
  54. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +18 -18
  55. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +2 -2
  56. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +16 -0
  57. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +9 -9
  58. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +76 -0
  59. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +9 -7
  60. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +23 -0
  61. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +121 -0
  62. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +66 -0
  63. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
  64. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +23 -0
  65. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +121 -0
  66. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +23 -0
  67. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +6 -5
  68. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +20 -0
  69. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +115 -0
  70. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +24 -0
  71. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +16 -0
  72. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
  73. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +73 -0
  74. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +22 -0
  75. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
  76. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +16 -16
  77. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +7 -6
  78. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +23 -0
  79. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +18 -20
  80. package/bundle/skills/agentera/capability_schema_contract.yaml +200 -37
  81. package/bundle/skills/agentera/protocol.yaml +31 -31
  82. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  83. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +5 -4
  84. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +40 -22
  85. package/bundle/skills/agentera/schemas/artifacts/design.yaml +5 -4
  86. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +15 -19
  87. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +145 -14
  88. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
  89. package/bundle/skills/agentera/schemas/artifacts/health.yaml +58 -21
  90. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +22 -8
  91. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +421 -33
  92. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +143 -53
  93. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +345 -31
  94. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
  95. package/dist/analytics/extractCorpus/cli.js +190 -0
  96. package/dist/analytics/extractCorpus/copilotSessions.js +275 -0
  97. package/dist/analytics/extractCorpus/core.js +392 -0
  98. package/dist/analytics/extractCorpus/corpus.js +167 -0
  99. package/dist/analytics/extractCorpus/coverageAudit.js +260 -0
  100. package/dist/analytics/extractCorpus/cursorSessions.js +425 -0
  101. package/dist/analytics/extractCorpus/evidenceTiers.js +603 -0
  102. package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
  103. package/dist/analytics/extractCorpus/filesystemSources.js +118 -0
  104. package/dist/analytics/extractCorpus/index.js +14 -0
  105. package/dist/analytics/extractCorpus/jsonlSessions.js +204 -0
  106. package/dist/analytics/extractCorpus/sqliteCaps.js +43 -0
  107. package/dist/analytics/extractCorpus/sqliteSessions.js +367 -0
  108. package/dist/analytics/extractCorpus/tierReader.js +108 -0
  109. package/dist/analytics/extractCorpus.js +2 -1791
  110. package/dist/analytics/glossaryAdviceResolution.js +166 -0
  111. package/dist/analytics/glossaryInputAcquisition.js +319 -0
  112. package/dist/analytics/personalGlossaryAdmission.js +133 -0
  113. package/dist/analytics/personalGlossaryProfile.js +219 -0
  114. package/dist/analytics/profileSignals.js +211 -0
  115. package/dist/analytics/usageStats.js +169 -42
  116. package/dist/audit/terminologyDrift.js +281 -0
  117. package/dist/bin/agentera.js +3 -2
  118. package/dist/capabilities/audit/instructions.js +16 -0
  119. package/dist/capabilities/build/instructions.js +56 -0
  120. package/dist/capabilities/design/instructions.js +4 -0
  121. package/dist/capabilities/discuss/instructions.js +29 -0
  122. package/dist/capabilities/document/instructions.js +11 -0
  123. package/dist/capabilities/index.js +40 -0
  124. package/dist/capabilities/optimize/instructions.js +14 -0
  125. package/dist/capabilities/orchestrate/instructions.js +40 -0
  126. package/dist/capabilities/plan/instructions.js +32 -0
  127. package/dist/capabilities/profile/instructions.js +70 -0
  128. package/dist/capabilities/research/instructions.js +5 -0
  129. package/dist/capabilities/status/instructions.js +11 -0
  130. package/dist/capabilities/status/startupInstructions.js +34 -0
  131. package/dist/capabilities/vision/instructions.js +4 -0
  132. package/dist/cli/appContext.js +30 -24
  133. package/dist/cli/argvalidate.js +0 -1
  134. package/dist/cli/capabilityContext/benchmark.js +565 -0
  135. package/dist/cli/capabilityContext/bespoke.js +44 -0
  136. package/dist/cli/capabilityContext/build.js +242 -0
  137. package/dist/cli/capabilityContext/closeout.js +233 -0
  138. package/dist/cli/capabilityContext/contract.js +179 -0
  139. package/dist/cli/capabilityContext/evidence.js +463 -0
  140. package/dist/cli/capabilityContext/index.js +3 -0
  141. package/dist/cli/capabilityContext/orchestration.js +131 -0
  142. package/dist/cli/capabilityContext/planState.js +260 -0
  143. package/dist/cli/capabilityContext/progress.js +142 -0
  144. package/dist/cli/capabilityContext/projectVerification.js +409 -0
  145. package/dist/cli/capabilityContext/shared.js +83 -0
  146. package/dist/cli/capabilityContext/slim.js +152 -0
  147. package/dist/cli/capabilityContext/startup.js +150 -0
  148. package/dist/cli/capabilityContext/startupAggregation.js +68 -0
  149. package/dist/cli/capabilityContext/types.js +56 -0
  150. package/dist/cli/capabilityContext.js +1 -2421
  151. package/dist/cli/commands/appHome.js +22 -0
  152. package/dist/cli/commands/capability.js +5 -12
  153. package/dist/cli/commands/compact.js +41 -13
  154. package/dist/cli/commands/doctor.js +127 -97
  155. package/dist/cli/commands/durability.js +81 -0
  156. package/dist/cli/commands/glossaryAdvice.js +138 -0
  157. package/dist/cli/commands/lint.js +26 -44
  158. package/dist/cli/commands/personalGlossary.js +176 -0
  159. package/dist/cli/commands/prime/briefOrientation.js +747 -0
  160. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  161. package/dist/cli/commands/prime/bundleStatus.js +190 -0
  162. package/dist/cli/commands/prime/collectEntityOrientation.js +311 -0
  163. package/dist/cli/commands/prime/collectOrientationState.js +212 -0
  164. package/dist/cli/commands/prime/orientationOutput.js +397 -0
  165. package/dist/cli/commands/prime/types.js +1 -0
  166. package/dist/cli/commands/prime/v1Migration.js +38 -0
  167. package/dist/cli/commands/prime.js +80 -558
  168. package/dist/cli/commands/profileGrounding.js +55 -0
  169. package/dist/cli/commands/query.js +78 -53
  170. package/dist/cli/commands/report.js +96 -25
  171. package/dist/cli/commands/route.js +142 -0
  172. package/dist/cli/commands/schema.js +266 -143
  173. package/dist/cli/commands/state/decisions.js +387 -0
  174. package/dist/cli/commands/state/docs.js +70 -0
  175. package/dist/cli/commands/state/experimentRecords.js +151 -0
  176. package/dist/cli/commands/state/experiments.js +14 -0
  177. package/dist/cli/commands/state/get.js +129 -0
  178. package/dist/cli/commands/state/health.js +14 -0
  179. package/dist/cli/commands/state/index.js +16 -0
  180. package/dist/cli/commands/state/list.js +194 -0
  181. package/dist/cli/commands/state/objective.js +25 -0
  182. package/dist/cli/commands/state/plan.js +14 -0
  183. package/dist/cli/commands/state/planTasks.js +154 -0
  184. package/dist/cli/commands/state/plans.js +154 -0
  185. package/dist/cli/commands/state/progress.js +13 -0
  186. package/dist/cli/commands/state/shared.js +14 -0
  187. package/dist/cli/commands/state/todo.js +42 -0
  188. package/dist/cli/commands/state/write.js +434 -0
  189. package/dist/cli/commands/upgrade.js +146 -5
  190. package/dist/cli/commands/upgradeVerify.js +118 -0
  191. package/dist/cli/commands/validate.js +272 -213
  192. package/dist/cli/commands/verify.js +24 -9
  193. package/dist/cli/contracts/bundleStatus.js +1 -0
  194. package/dist/cli/contracts/orientationState.js +1 -0
  195. package/dist/cli/dispatch/argvParser.js +32 -0
  196. package/dist/cli/dispatch/check.js +372 -0
  197. package/dist/cli/dispatch/commands.js +27 -0
  198. package/dist/cli/dispatch/index.js +207 -0
  199. package/dist/cli/dispatch/lifecycle.js +652 -0
  200. package/dist/cli/dispatch/prime.js +139 -0
  201. package/dist/cli/dispatch/projections.js +17 -0
  202. package/dist/cli/dispatch/shared.js +63 -0
  203. package/dist/cli/dispatch/state.js +140 -0
  204. package/dist/cli/dispatch.js +1 -996
  205. package/dist/cli/errors.js +52 -0
  206. package/dist/cli/help.js +390 -43
  207. package/dist/cli/migrationRequired.js +87 -0
  208. package/dist/cli/orientation/attention.js +59 -0
  209. package/dist/cli/orientation/corpusCoverage.js +102 -0
  210. package/dist/cli/orientation.js +444 -173
  211. package/dist/cli/planArtifacts.js +350 -0
  212. package/dist/cli/planEvidence.js +157 -0
  213. package/dist/cli/planLifecycleState.js +36 -0
  214. package/dist/cli/planTaskIndex.js +11 -0
  215. package/dist/cli/preCutoverCommand.js +32 -0
  216. package/dist/cli/prime-blob.js +71 -3
  217. package/dist/cli/profileAcquisition.js +167 -0
  218. package/dist/cli/startupCompletenessContract.js +59 -0
  219. package/dist/cli/stateQuery.js +63 -14
  220. package/dist/cli/structured.js +0 -1
  221. package/dist/cli/todoMarkdown.js +46 -0
  222. package/dist/cli/todoReadinessSelection.js +192 -0
  223. package/dist/cli/todoSeverity.js +18 -0
  224. package/dist/core/atomicWriter.js +20 -0
  225. package/dist/core/developmentChannel.js +1 -0
  226. package/dist/core/developmentInvocation.js +374 -0
  227. package/dist/core/difflib.js +0 -1
  228. package/dist/core/envPaths.js +20 -0
  229. package/dist/core/jsonValue.js +5 -0
  230. package/dist/core/paths.js +0 -1
  231. package/dist/core/pyjson.js +67 -3
  232. package/dist/core/shell.js +4 -0
  233. package/dist/core/skillIdentity.js +23 -0
  234. package/dist/core/sourceRoot.js +9 -12
  235. package/dist/core/text.js +10 -0
  236. package/dist/core/toml.js +0 -1
  237. package/dist/core/yaml.js +8 -1
  238. package/dist/eval/evalSkills.js +30 -26
  239. package/dist/eval/hybridRouteEvaluation.js +155 -0
  240. package/dist/eval/semanticEval.js +43 -20
  241. package/dist/eval/semanticFixtures.js +16 -5
  242. package/dist/hooks/common.js +11 -81
  243. package/dist/hooks/compaction/apply.js +446 -0
  244. package/dist/hooks/compaction/dryRun.js +184 -0
  245. package/dist/hooks/compaction/index.js +22 -0
  246. package/dist/hooks/compaction/parse.js +325 -0
  247. package/dist/hooks/compaction/retention.js +202 -0
  248. package/dist/hooks/compaction/status.js +360 -0
  249. package/dist/hooks/compaction/types.js +5 -0
  250. package/dist/hooks/validateArtifact/agentFacing.js +9 -0
  251. package/dist/hooks/validateArtifact/index.js +92 -0
  252. package/dist/hooks/validateArtifact/markdown.js +145 -0
  253. package/dist/hooks/validateArtifact/schema.js +546 -0
  254. package/dist/hooks/validateArtifact/traversal.js +107 -0
  255. package/dist/hooks/validateArtifact/violations.js +107 -0
  256. package/dist/migrate/v2HandoffManifest.js +452 -0
  257. package/dist/registries/activationContract.js +2 -0
  258. package/dist/registries/activationTuples.js +106 -0
  259. package/dist/registries/artifactProtocolIds.js +78 -0
  260. package/dist/registries/artifactRegistry.js +224 -63
  261. package/dist/registries/artifactSchemaProjection.js +45 -0
  262. package/dist/registries/capabilityContract.js +141 -13
  263. package/dist/registries/evaluatorHandoffContract.js +170 -0
  264. package/dist/registries/evidenceTierContract.js +371 -0
  265. package/dist/registries/glossaryAdviceContract.js +79 -0
  266. package/dist/registries/glossaryCaveatContract.js +67 -0
  267. package/dist/registries/glossaryConsumerContractValidation.js +787 -0
  268. package/dist/registries/glossaryEntryContract.js +757 -0
  269. package/dist/registries/glossaryTermIdentity.js +17 -0
  270. package/dist/registries/glossaryTermOccurrence.js +20 -0
  271. package/dist/registries/hybridRoute.js +274 -0
  272. package/dist/registries/hybridRouteReceipt.js +221 -0
  273. package/dist/registries/packagePublication.js +229 -0
  274. package/dist/registries/packageRegistry.js +187 -211
  275. package/dist/registries/todoReadinessContract.js +448 -0
  276. package/dist/registries/triggerLoader.js +174 -0
  277. package/dist/registries/verbosityBudgetContract.js +205 -0
  278. package/dist/release/releaseMetadata.js +385 -0
  279. package/dist/runtime/lifecycleAdapterContract.js +457 -0
  280. package/dist/runtime/lifecycleAdapters.js +777 -0
  281. package/dist/runtime/lifecycleAuthority.js +453 -0
  282. package/dist/runtime/lifecycleOperationContract.js +123 -0
  283. package/dist/runtime/lifecycleOperations.js +634 -0
  284. package/dist/runtime/lifecycleOwnershipJournal.js +622 -0
  285. package/dist/runtime/lifecyclePublication.js +415 -0
  286. package/dist/runtime/lifecycleSnapshot.js +438 -0
  287. package/dist/runtime/nativeResourceCleanup.js +502 -0
  288. package/dist/setup/opencode.js +20 -0
  289. package/dist/setup/opencodeConstants.js +1 -0
  290. package/dist/setup/sharedSkill.js +45 -0
  291. package/dist/setup/smokeChecks.js +21 -82
  292. package/dist/state/archiveDiscovery.js +580 -0
  293. package/dist/state/archivePublication.js +225 -0
  294. package/dist/state/archiveRecovery.js +237 -0
  295. package/dist/state/archiveReplay.js +53 -0
  296. package/dist/state/canonicalMigrationRecord.js +36 -0
  297. package/dist/state/changelog.js +221 -0
  298. package/dist/state/decisionEntities.js +367 -0
  299. package/dist/state/decisionLegacyValidation.js +215 -0
  300. package/dist/state/decisionMigrationProvenance.js +199 -0
  301. package/dist/state/decisionOverlay.js +254 -0
  302. package/dist/state/decisionRevision.js +256 -0
  303. package/dist/state/decisionRevisionMigration.js +89 -0
  304. package/dist/state/directRetrieval.js +323 -0
  305. package/dist/state/durability.js +324 -0
  306. package/dist/state/entityCutover.js +459 -0
  307. package/dist/state/entityCutoverGit.js +127 -0
  308. package/dist/state/entityGlossaryAuthority.js +13 -0
  309. package/dist/state/entityListProjection.js +187 -0
  310. package/dist/state/entityListRuntimeRegistry.js +85 -0
  311. package/dist/state/entityMigrationCausality.js +97 -0
  312. package/dist/state/entityMigrationIdentity.js +5 -0
  313. package/dist/state/entityMigrationPreview.js +846 -0
  314. package/dist/state/entityMigrationTodo.js +133 -0
  315. package/dist/state/entityPublicationContext.js +806 -0
  316. package/dist/state/entityRetrievalHelp.js +506 -0
  317. package/dist/state/entityStorage.js +896 -0
  318. package/dist/state/exactReplacementRecovery.js +18 -0
  319. package/dist/state/experimentArchive.js +63 -0
  320. package/dist/state/experimentIdentity.js +202 -0
  321. package/dist/state/healthEntities.js +262 -0
  322. package/dist/state/healthEntityValidation.js +18 -0
  323. package/dist/state/healthRepair.js +69 -0
  324. package/dist/state/installRoot.js +64 -25
  325. package/dist/state/legacyEntityCutoverEvidence.js +65 -0
  326. package/dist/state/legacyIdentity.js +47 -0
  327. package/dist/state/legacySummaryRecord.js +6 -0
  328. package/dist/state/listAccounting.js +54 -0
  329. package/dist/state/listClassification.js +17 -0
  330. package/dist/state/listCursor.js +42 -0
  331. package/dist/state/listRetrieval.js +781 -0
  332. package/dist/state/migrationSourceBinding.js +30 -0
  333. package/dist/state/objectiveExperimentEntities.js +322 -0
  334. package/dist/state/planEntities.js +530 -0
  335. package/dist/state/planIdentity.js +47 -0
  336. package/dist/state/planRetrieval.js +313 -0
  337. package/dist/state/planTaskRetrieval.js +294 -0
  338. package/dist/state/progressEntities.js +512 -0
  339. package/dist/state/progressGlossaryCaveat.js +168 -0
  340. package/dist/state/progressPublicationOrder.js +19 -0
  341. package/dist/state/projectRoot.js +62 -0
  342. package/dist/state/projectionPolicy.js +190 -0
  343. package/dist/state/retrievalAuthority.js +156 -0
  344. package/dist/state/safeProjectFile.js +155 -0
  345. package/dist/state/startupAnalysis/benchmark.js +432 -0
  346. package/dist/state/startupAnalysis/contract.js +160 -0
  347. package/dist/state/startupAnalysis/helpers.js +286 -0
  348. package/dist/state/startupAnalysis/index.js +6 -0
  349. package/dist/state/startupAnalysis/metrics.js +340 -0
  350. package/dist/state/startupAnalysis/records.js +198 -0
  351. package/dist/state/startupAnalysis/report.js +111 -0
  352. package/dist/state/startupAnalysis/threshold.js +512 -0
  353. package/dist/state/startupAnalysis.js +2 -1953
  354. package/dist/state/startupProjection.js +499 -0
  355. package/dist/state/stateMode.js +85 -0
  356. package/dist/state/stateStorageAuthority.js +47 -0
  357. package/dist/state/summaryEntityRead.js +25 -0
  358. package/dist/state/summaryMigrationProvenance.js +66 -0
  359. package/dist/state/summarySourceRowAuthority.js +36 -0
  360. package/dist/state/todoDocsEntities.js +1064 -0
  361. package/dist/state/todoDocsEntityValidation.js +158 -0
  362. package/dist/state/todoMarkdownProjection.js +51 -0
  363. package/dist/state/todoReconciliationActivation.js +132 -0
  364. package/dist/state/todoReconciliationInspection.js +173 -0
  365. package/dist/state/todoReconciliationRepair.js +170 -0
  366. package/dist/state/todoReconciliationTransaction.js +582 -0
  367. package/dist/state/write/assign.js +20 -0
  368. package/dist/state/write/candidateMutation.js +269 -0
  369. package/dist/state/write/errors.js +11 -0
  370. package/dist/state/write/experimentPublication.js +192 -0
  371. package/dist/state/write/explain.js +332 -0
  372. package/dist/state/write/fields.js +61 -0
  373. package/dist/state/write/glossaryPublication.js +263 -0
  374. package/dist/state/write/grammar.js +280 -0
  375. package/dist/state/write/helpers.js +29 -0
  376. package/dist/state/write/index.js +12 -0
  377. package/dist/state/write/input.js +367 -0
  378. package/dist/state/write/lock.js +837 -0
  379. package/dist/state/write/mutation.js +234 -0
  380. package/dist/state/write/operations.js +169 -0
  381. package/dist/state/write/planEvaluation.js +128 -0
  382. package/dist/state/write/planPublication.js +179 -0
  383. package/dist/state/write/runtimeOperations.js +142 -0
  384. package/dist/state/write/serialize.js +1 -0
  385. package/dist/state/write/transaction.js +52 -0
  386. package/dist/state/write/validate.js +7 -0
  387. package/dist/upgrade/appContentRefresh.js +383 -0
  388. package/dist/upgrade/appModel.js +8 -7
  389. package/dist/upgrade/atomicWriter.js +1 -0
  390. package/dist/upgrade/bundleEvidence.js +33 -0
  391. package/dist/upgrade/channels.js +12 -8
  392. package/dist/upgrade/compatibility.js +56 -21
  393. package/dist/upgrade/doctor.js +197 -192
  394. package/dist/upgrade/doctorClassifier.js +187 -0
  395. package/dist/upgrade/installedHooksRetirement.js +196 -0
  396. package/dist/upgrade/legacyAgentCleanup.js +282 -0
  397. package/dist/upgrade/lifecycleUpgrade.js +113 -0
  398. package/dist/upgrade/migrateArtifactsV2ToV3.js +367 -149
  399. package/dist/upgrade/migrationPublication.js +122 -0
  400. package/dist/upgrade/nextMajorDoctor.js +155 -0
  401. package/dist/upgrade/npxPlatformStatus.js +22 -0
  402. package/dist/upgrade/projectIntegration.js +145 -187
  403. package/dist/upgrade/projectIntegrationDecision.js +50 -0
  404. package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
  405. package/dist/upgrade/runtimeMigration.js +278 -352
  406. package/dist/upgrade/upgradeCommands.js +14 -1
  407. package/dist/upgrade/upgradeLock.js +85 -0
  408. package/dist/upgrade/upgradeOrchestrator.js +263 -59
  409. package/dist/upgrade/v3CapabilitySurface.js +14 -0
  410. package/dist/upgrade/versionResolution.js +12 -5
  411. package/dist/validate/activationArtifactEvidence.js +844 -0
  412. package/dist/validate/activationConjunction.js +816 -0
  413. package/dist/validate/activationEvidenceManifest.js +515 -0
  414. package/dist/validate/activationPackageSemantics.js +29 -0
  415. package/dist/validate/appHomeContract.js +5 -11
  416. package/dist/validate/bootstrapAuthority.js +44 -0
  417. package/dist/validate/capability.js +144 -15
  418. package/dist/validate/crossCapability.js +15 -10
  419. package/dist/validate/retainedReferenceAuthority.js +879 -0
  420. package/dist/validate/selfAudit.js +73 -37
  421. package/dist/validate/v1LegacyCruft.js +131 -0
  422. package/dist/validate/vocabularyAuthority.js +303 -0
  423. package/package.json +53 -27
  424. package/bundle/references/adapters/cursor.md +0 -213
  425. package/bundle/references/adapters/opencode.md +0 -530
  426. package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
  427. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  428. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  429. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -548
  430. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  431. package/bundle/references/analysis/benchmark.md +0 -267
  432. package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
  433. package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
  434. package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -355
  435. package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -278
  436. package/bundle/references/cli/capability-tool-classification.yaml +0 -53
  437. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
  438. package/bundle/references/meta/documentation-inventory.md +0 -43
  439. package/bundle/references/v1-section-mapping.md +0 -47
  440. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  441. package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
  442. package/bundle/skills/agentera/agents/hej.toml +0 -6
  443. package/bundle/skills/agentera/agents/inspektera.toml +0 -6
  444. package/bundle/skills/agentera/agents/inspirera.toml +0 -6
  445. package/bundle/skills/agentera/agents/optimera.toml +0 -6
  446. package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
  447. package/bundle/skills/agentera/agents/planera.toml +0 -6
  448. package/bundle/skills/agentera/agents/profilera.toml +0 -6
  449. package/bundle/skills/agentera/agents/realisera.toml +0 -6
  450. package/bundle/skills/agentera/agents/resonera.toml +0 -6
  451. package/bundle/skills/agentera/agents/visionera.toml +0 -6
  452. package/bundle/skills/agentera/agents/visualisera.toml +0 -6
  453. package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +0 -428
  454. package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +0 -73
  455. package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +0 -35
  456. package/bundle/skills/agentera/capabilities/hej/instructions.md +0 -331
  457. package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +0 -69
  458. package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +0 -58
  459. package/bundle/skills/agentera/capabilities/inspektera/instructions.md +0 -514
  460. package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +0 -76
  461. package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +0 -38
  462. package/bundle/skills/agentera/capabilities/inspirera/instructions.md +0 -280
  463. package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +0 -24
  464. package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +0 -34
  465. package/bundle/skills/agentera/capabilities/optimera/instructions.md +0 -437
  466. package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +0 -39
  467. package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +0 -433
  468. package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +0 -64
  469. package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +0 -42
  470. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +0 -107
  471. package/bundle/skills/agentera/capabilities/planera/instructions.md +0 -368
  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/instructions.md +0 -419
  476. package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +0 -18
  477. package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +0 -45
  478. package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +0 -57
  479. package/bundle/skills/agentera/capabilities/realisera/instructions.md +0 -403
  480. package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +0 -80
  481. package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +0 -39
  482. package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +0 -110
  483. package/bundle/skills/agentera/capabilities/resonera/instructions.md +0 -329
  484. package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +0 -47
  485. package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +0 -46
  486. package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +0 -77
  487. package/bundle/skills/agentera/capabilities/visionera/instructions.md +0 -309
  488. package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +0 -41
  489. package/bundle/skills/agentera/capabilities/visualisera/instructions.md +0 -400
  490. package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +0 -33
  491. package/bundle/skills/agentera/references/contract.md +0 -1039
  492. package/bundle/skills/hej/.claude-plugin/plugin.json +0 -6
  493. package/bundle/skills/hej/SKILL.md +0 -69
  494. package/bundle/skills/hej/agents/hej.toml +0 -11
  495. package/bundle/skills/hej/agents/openai.yaml +0 -8
  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/cli/appContext.js.map +0 -1
  500. package/dist/cli/argvalidate.js.map +0 -1
  501. package/dist/cli/capabilityContext.js.map +0 -1
  502. package/dist/cli/commands/backfill.js +0 -84
  503. package/dist/cli/commands/backfill.js.map +0 -1
  504. package/dist/cli/commands/capability.js.map +0 -1
  505. package/dist/cli/commands/compact.js.map +0 -1
  506. package/dist/cli/commands/doctor.js.map +0 -1
  507. package/dist/cli/commands/lint.js.map +0 -1
  508. package/dist/cli/commands/prime.js.map +0 -1
  509. package/dist/cli/commands/query.js.map +0 -1
  510. package/dist/cli/commands/report.js.map +0 -1
  511. package/dist/cli/commands/schema.js.map +0 -1
  512. package/dist/cli/commands/state.js +0 -1012
  513. package/dist/cli/commands/state.js.map +0 -1
  514. package/dist/cli/commands/upgrade.js.map +0 -1
  515. package/dist/cli/commands/validate.js.map +0 -1
  516. package/dist/cli/commands/verify.js.map +0 -1
  517. package/dist/cli/dispatch.js.map +0 -1
  518. package/dist/cli/help.js.map +0 -1
  519. package/dist/cli/orientation.js.map +0 -1
  520. package/dist/cli/prime-blob.js.map +0 -1
  521. package/dist/cli/stateQuery.js.map +0 -1
  522. package/dist/cli/structured.js.map +0 -1
  523. package/dist/core/difflib.js.map +0 -1
  524. package/dist/core/git.js +0 -43
  525. package/dist/core/git.js.map +0 -1
  526. package/dist/core/paths.js.map +0 -1
  527. package/dist/core/pyjson.js.map +0 -1
  528. package/dist/core/sourceRoot.js.map +0 -1
  529. package/dist/core/toml.js.map +0 -1
  530. package/dist/core/yaml.js.map +0 -1
  531. package/dist/eval/evalSkills.js.map +0 -1
  532. package/dist/eval/semanticEval.js.map +0 -1
  533. package/dist/eval/semanticFixtures.js.map +0 -1
  534. package/dist/hooks/common.js.map +0 -1
  535. package/dist/hooks/compaction.js +0 -935
  536. package/dist/hooks/compaction.js.map +0 -1
  537. package/dist/hooks/cursorPreToolUse.js +0 -19
  538. package/dist/hooks/cursorPreToolUse.js.map +0 -1
  539. package/dist/hooks/cursorSessionStart.js +0 -71
  540. package/dist/hooks/cursorSessionStart.js.map +0 -1
  541. package/dist/hooks/sessionStart.js +0 -209
  542. package/dist/hooks/sessionStart.js.map +0 -1
  543. package/dist/hooks/sessionStop.js +0 -212
  544. package/dist/hooks/sessionStop.js.map +0 -1
  545. package/dist/hooks/validateArtifact.js +0 -933
  546. package/dist/hooks/validateArtifact.js.map +0 -1
  547. package/dist/registries/artifactRegistry.js.map +0 -1
  548. package/dist/registries/capabilityContract.js.map +0 -1
  549. package/dist/registries/packageRegistry.js.map +0 -1
  550. package/dist/registries/runtimeAdapterRegistry.js +0 -315
  551. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  552. package/dist/setup/codex.js +0 -1056
  553. package/dist/setup/codex.js.map +0 -1
  554. package/dist/setup/copilot.js +0 -227
  555. package/dist/setup/copilot.js.map +0 -1
  556. package/dist/setup/cursor.js +0 -127
  557. package/dist/setup/cursor.js.map +0 -1
  558. package/dist/setup/doctor.js +0 -1297
  559. package/dist/setup/doctor.js.map +0 -1
  560. package/dist/setup/smokeChecks.js.map +0 -1
  561. package/dist/state/installRoot.js.map +0 -1
  562. package/dist/state/progressCommit.js +0 -289
  563. package/dist/state/progressCommit.js.map +0 -1
  564. package/dist/state/startupAnalysis.js.map +0 -1
  565. package/dist/upgrade/appModel.js.map +0 -1
  566. package/dist/upgrade/channels.js.map +0 -1
  567. package/dist/upgrade/compatibility.js.map +0 -1
  568. package/dist/upgrade/doctor.js.map +0 -1
  569. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -571
  570. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  571. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
  572. package/dist/upgrade/projectIntegration.js.map +0 -1
  573. package/dist/upgrade/runtimeMigration.js.map +0 -1
  574. package/dist/upgrade/upgradeCommands.js.map +0 -1
  575. package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
  576. package/dist/upgrade/versionResolution.js.map +0 -1
  577. package/dist/validate/appHomeContract.js.map +0 -1
  578. package/dist/validate/capability.js.map +0 -1
  579. package/dist/validate/crossCapability.js.map +0 -1
  580. package/dist/validate/lifecycleAdapters.js +0 -772
  581. package/dist/validate/lifecycleAdapters.js.map +0 -1
  582. package/dist/validate/selfAudit.js.map +0 -1
  583. /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
  584. /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
  585. /package/bundle/skills/agentera/capabilities/{hej → status}/schemas/exit.yaml +0 -0
@@ -0,0 +1,236 @@
1
+ # Upgrade and migration
2
+
3
+ Agentera 3.0 uses one upgrade command for app/project migration and explicit
4
+ native Agentera resource cleanup. Preview and apply are separate operations.
5
+ Current runtime installation and repair are not upgrade operations.
6
+
7
+ Before the npm stable dist-tag promotion, select the development npm channel. The stable npm
8
+ channel remains on 2.x until that promotion; upgrade does not publish
9
+ or retag packages.
10
+
11
+ ## Active integration
12
+
13
+ Agentera has one active integration contract:
14
+
15
+ ```text
16
+ ~/.agents/skills/agentera + agentera CLI
17
+ ```
18
+
19
+ Normal `prime`, `doctor`, `schema`, help, and project-integration output reports
20
+ that shared skill and CLI/app/project state. Normal `upgrade` has no
21
+ current-runtime selector or native-resource operation set. It creates no current
22
+ plugin, hook, agent, command, descriptor, or marketplace file and does not run
23
+ runtime package managers, authentication, enablement, or trust operations.
24
+
25
+ Passing `--runtime` fails before mutation. Remove `--runtime`, ensure the runtime
26
+ can read `~/.agents/skills/agentera`, and invoke the CLI directly. The supported
27
+ v2 migration and native Agentera resource cleanup routes below are separate from
28
+ normal active integration.
29
+
30
+ ## Preview and apply
31
+
32
+ Preview normal app/project work:
33
+
34
+ ```bash
35
+ npx -y agentera@next upgrade --dry-run --channel development
36
+ ```
37
+
38
+ The preview is strictly read-only: it creates no files, directories, locks,
39
+ caches, ownership records, telemetry, or other state. Apply only after reviewing
40
+ the generated command:
41
+
42
+ ```bash
43
+ npx -y agentera@next upgrade --yes --channel development
44
+ ```
45
+
46
+ `prime` and `doctor` expose the same app/project classification and shared-skill
47
+ state:
48
+
49
+ ```bash
50
+ npx -y agentera@next prime --format json
51
+ npx -y agentera@next doctor --format json
52
+ ```
53
+
54
+ Before stable promotion, `prime --context status --format json` is the one-call
55
+ bootstrap for clean, v2, partially migrated, and v3 projects. Marker-absent
56
+ clean, v2, and partial projects return bounded `blocked` output with the exact
57
+ full entity-upgrade recovery; v3 returns `ok` unless health is degraded. No
58
+ recovery resolves `@latest`, and healthy v3 needs no second dashboard call.
59
+
60
+ `doctor --format json` also reports bounded `retired_resources` candidates. Each
61
+ entry has an exact retired resource ID, a path-only or fingerprint-safe
62
+ observation, and a read-only, ID-scoped preview command. The command repeats
63
+ the ID and resolved app root as `doctor --install-root ROOT --retired-resource
64
+ ID --format json`; it does not select `upgrade --legacy-cleanup` and cannot
65
+ remove a resource. Doctor never includes resource contents, adopts a name
66
+ collision as Agentera-owned, or changes a diagnosed path. Absent resources
67
+ report `clean`; present or uninspectable candidates require manual ownership
68
+ review.
69
+
70
+ Retries re-observe the current app/project state. Completed migration work
71
+ converges to no change; interrupted v2 migration continues through the same full
72
+ apply command.
73
+
74
+ ## Native Agentera resource cleanup
75
+
76
+ Cleanup is a distinct resource route, not a host selection. Codex, Cursor,
77
+ OpenCode, and Copilot remain supported through the canonical shared skill and
78
+ CLI. Accepted smoke evidence records that Codex and Cursor loaded Agentera's
79
+ skill instructions, OpenCode listed the canonical skill, and Copilot's listed
80
+ canonical skill is intentionally disabled.
81
+
82
+ Use the separate `@next` preview and apply commands below with one declared
83
+ native Agentera resource ID.
84
+ The cleanup option pair is `--legacy-cleanup RESOURCE_ID --dry-run|--yes`.
85
+
86
+ ```bash
87
+ npx -y agentera@next upgrade --legacy-cleanup claude.agentera-skill-link --dry-run
88
+ npx -y agentera@next upgrade --legacy-cleanup claude.agentera-skill-link --yes
89
+ ```
90
+
91
+ The retirement contract gives historical plugins, commands, primary and
92
+ capability agents, stale skill links, installed hooks, and registrations one
93
+ vocabulary. It keeps the v2-only inventory separate from the explicit cleanup
94
+ route until cutover approves more cleanup selectors. The current cleanup route
95
+ also recognizes the historical `codex.agents.NAME` descriptor identity as
96
+ `codex.agent-descriptor.NAME`. Each selected file needs a matching
97
+ whole-resource ledger identity and fingerprint before it can be removed. Codex
98
+ descriptor previews report each shared configuration key as `action_required`
99
+ without adding it to the selected resource's apply work. Agentera has no durable
100
+ key-level ownership proof, so matching values, markers, names, or whole file
101
+ contents never authorize a shared `config.toml` mutation. Preview is read-only;
102
+ approved apply is idempotent and preserves ambiguous or unowned resources. An
103
+ explicit cleanup preview contains only its selected resource's lifecycle plan,
104
+ bounded configuration report, and ownership blockers; it does not include
105
+ app/project migration phases. During v2 cleanup, a preserved user-owned legacy
106
+ agent collision remains manual-review work but does not stop independently
107
+ proven legacy-agent removals. The collision still leaves the cleanup non-success
108
+ until it is resolved outside Agentera.
109
+
110
+ V2 hook retirement never rewrites a native hook to another Agentera command.
111
+ Upgrade removes a whole hook resource only when its complete content proves
112
+ Agentera v2 ownership and its path identity and fingerprint still match the
113
+ preview. Mixed or otherwise unproven resources remain unchanged with manual
114
+ review guidance. The complete v2-only deletion set is machine-readable in
115
+ `references/adapters/runtime-retired-resources.yaml` under
116
+ `cutover_deletion_inventory`; it remains until an approved stable cutover.
117
+
118
+ Historical transcript import is independent of cleanup. Default extraction and
119
+ analytics do not read Claude history. Import requires explicit local consent:
120
+
121
+ ```bash
122
+ npx -y agentera@next report refresh --import-source claude
123
+ ```
124
+
125
+ Imported records carry `historical_import` provenance, have no active runtime
126
+ ID, and remain excluded from default active-source analytics.
127
+
128
+ ## Stable v2 line
129
+
130
+ The stable `@latest` channel remains on the supported 2.x line. Preview before
131
+ applying an in-line upgrade:
132
+
133
+ ```bash
134
+ npx -y agentera@latest upgrade --dry-run
135
+ npx -y agentera@latest upgrade --yes
136
+ ```
137
+
138
+ Use the v3 development migration below only when you explicitly intend to leave
139
+ the stable line.
140
+
141
+ ## Upgrading v2 to v3 development channel
142
+
143
+ Recognized marker-absent v2 aggregate state has one supported forward route:
144
+
145
+ ```bash
146
+ npx -y agentera@next upgrade --channel development --project "$PWD" --dry-run
147
+ npx -y agentera@next upgrade --channel development --project "$PWD" --yes
148
+ ```
149
+
150
+ The optional preview is read-only. Before apply, commit or restore the complete
151
+ v2 migration source: every input must be a regular file tracked by Git and
152
+ unchanged at `HEAD`. Apply performs the full project rewiring and entity-state
153
+ cutover, then validates state and representative `prime` startup. Rewiring may
154
+ update recognized v2 project files; it does not install current native resources.
155
+
156
+ Forward migration is one-way. Returning to the Python 2.x line is unsupported,
157
+ and cross-major apply has no rollback, restore, non-Git, or partial workflow.
158
+ If apply is interrupted, rerun the same full apply command.
159
+
160
+ ### Compacted v2 summaries
161
+
162
+ Entity-cutover publication for valid v2 compaction output is implemented for
163
+ `progress`, `decisions`, and `health`. Each valid summary becomes one immutable,
164
+ read-only canonical
165
+ `progress_summary`, `decision_summary`, or `health_summary` entity. The entity
166
+ requires `summary`, preserves every source-retained field except forbidden
167
+ identity aliases, and records the source path plus source-record SHA-256.
168
+
169
+ Ordinary summary readers and startup projection are implemented. Reads report
170
+ `detail_availability: summary`, `compatibility: degraded`, record-level source
171
+ provenance, and applicable caveats; startup presents summary-only history as
172
+ degraded history rather than current detail. Full records retain their existing
173
+ temporal order; the degraded-summary segment follows in deterministic canonical-ID
174
+ order and makes no chronology claim. Retained decision-summary satisfaction is
175
+ inline and read-only, may be absent, and never creates a standalone satisfaction
176
+ target. Preview reports independent source roots separately from generated
177
+ relationship dependents: `root_blockers + dependent_blockers = blockers`, and
178
+ each dependent names its stable `root_source_identity`. A Git-backed regression
179
+ copies the supported `progress`, `decisions`, and `health` sources from pinned
180
+ v2.7.11 compaction output; its protected experiment evidence remains unchanged
181
+ and excluded. It verifies preview bindings and target hashes, marker-last
182
+ publication and interrupted exact-target retry, canonical validation, ordinary
183
+ list/get reads for retained full and summary entries, human/JSON prime, and
184
+ repeated no-change upgrade behavior while aggregate source hashes remain stable.
185
+ Inherited full-decision `high`, `medium`, and `low` confidence remains readable
186
+ with a legacy caveat; newly supplied or amended confidence remains strict.
187
+
188
+ Protected objective experiments, runtime-local session state, and compacted TODO
189
+ rows that already satisfy the canonical TODO shape are outside this summary
190
+ scope. This contract does not reconstruct Git history, normalize source records,
191
+ create dual authority, or add a repair or import command.
192
+
193
+ ## Unsupported legacy state
194
+
195
+ Pending v1 Markdown state and unknown marker-absent state are not automatic
196
+ mutation inputs. `state migrate`, `state backfill`, projection repair, v1
197
+ conversion, restore, and downgrade are unsupported. Only
198
+ `npx -y agentera@next upgrade --channel development --project "$PWD" --dry-run`
199
+ may inventory cutover input; it cannot publish it.
200
+
201
+ ## Verification and recovery
202
+
203
+ After apply:
204
+
205
+ ```bash
206
+ npx -y agentera@next doctor --format json
207
+ npx -y agentera@next prime --format json
208
+ ```
209
+
210
+ `upgrade --verify` without `--yes` is a read-only doctor and capability-context
211
+ verification. With `--yes`, it runs those checks after approved migration.
212
+ Explicit native Agentera resource cleanup with `--verify` requires `--yes`.
213
+
214
+ `--force` applies only where the owning migration contract explicitly permits
215
+ replacement. It never adopts user-owned resources.
216
+
217
+ ## Maintainer verification
218
+
219
+ Release preparation does not publish, tag, or push:
220
+
221
+ ```bash
222
+ pnpm -C packages/cli test
223
+ pnpm -C packages/cli run typecheck
224
+ pnpm -C packages/cli build
225
+ node packages/cli/dist/bin/agentera.js check validate capability-contract --format json
226
+ node packages/cli/dist/bin/agentera.js check validate release-metadata
227
+ ```
228
+
229
+ ## Mutation ownership
230
+
231
+ Upgrade apply holds the required project lock before migration begins. Explicit
232
+ native Agentera resource cleanup additionally uses its ownership journal and
233
+ shared lock. Lock creation is atomic, and release succeeds only for the matching
234
+ ownership token.
235
+ A stale or malformed lock stops the operation; inspect the named lock file,
236
+ remove only that file after confirming no operation owns it, then rerun.
@@ -0,0 +1,21 @@
1
+ {
2
+ "schema_version": "agentera-extract-corpus-parity-v1",
3
+ "adapter_version": "agentera-v3-corpus-2",
4
+ "max_sqlite_sessions": 60,
5
+ "max_sqlite_rows": 100000,
6
+ "max_tool_arg_text": 500,
7
+ "copilot_sparse_remediation": "/chronicle reindex",
8
+ "runtime_store_globs": {
9
+ "codex": "*.jsonl",
10
+ "cursor": "*.jsonl",
11
+ "opencode": "opencode.db",
12
+ "copilot": "session-store.db"
13
+ },
14
+ "families": [
15
+ "instruction_document",
16
+ "history_prompt",
17
+ "conversation_turn",
18
+ "tool_call",
19
+ "project_config_signal"
20
+ ]
21
+ }
@@ -0,0 +1,154 @@
1
+ schema_version: agentera.hybrid_routing_corpus.v3
2
+ status: frozen
3
+ text_provenance: All request text in this fixture is synthetic and authored for conformance testing.
4
+ retention_policy: >-
5
+ This fixture may contain only synthetic or explicitly consented text. Evaluation
6
+ reports retain case IDs and aggregate metrics, never private request strings.
7
+ freeze_policy: >-
8
+ Development and adversarial entries are the sole frozen synthetic implementation
9
+ corpus. Additions or expectation changes require a new schema_version and a new
10
+ corpus file; no hidden, sealed, or vendor-host corpus is required.
11
+ partitions:
12
+ development: { status: frozen, purpose: phrase inventory and structural contract development }
13
+ adversarial: { status: frozen, purpose: "abstention, separator, and invalid-receipt safety" }
14
+
15
+ route_cases:
16
+ - { id: DEV-PHRASE-STATUS, partition: development, request: "show project briefing for the checkout", expected: { phase1: deterministic_selection, tier: phrase, capability: status } }
17
+ - { id: DEV-PHRASE-VISION, partition: development, request: "define product direction for collaboration", expected: { phase1: deterministic_selection, tier: phrase, capability: vision } }
18
+ - { id: DEV-PHRASE-DISCUSS, partition: development, request: "help me decide: cache or queue", expected: { phase1: deterministic_selection, tier: phrase, capability: discuss, topic: ": cache or queue" } }
19
+ - { id: DEV-PHRASE-RESEARCH, partition: development, request: "study external patterns for durable jobs", expected: { phase1: deterministic_selection, tier: phrase, capability: research } }
20
+ - { id: DEV-PHRASE-PLAN, partition: development, request: "make an implementation plan for import safety", expected: { phase1: deterministic_selection, tier: phrase, capability: plan } }
21
+ - { id: DEV-PHRASE-BUILD, partition: development, request: "implement the approved plan for task one", expected: { phase1: deterministic_selection, tier: phrase, capability: build } }
22
+ - { id: DEV-PHRASE-OPTIMIZE, partition: development, request: "improve a measured bottleneck in startup", expected: { phase1: deterministic_selection, tier: phrase, capability: optimize } }
23
+ - { id: DEV-PHRASE-AUDIT, partition: development, request: "check codebase health before release", expected: { phase1: deterministic_selection, tier: phrase, capability: audit } }
24
+ - { id: DEV-PHRASE-DOCUMENT, partition: development, request: "refresh project documentation for setup", expected: { phase1: deterministic_selection, tier: phrase, capability: document } }
25
+ - { id: DEV-PHRASE-PROFILE, partition: development, request: "save a decision profile for local work", expected: { phase1: deterministic_selection, tier: phrase, capability: profile } }
26
+ - { id: DEV-PHRASE-DESIGN, partition: development, request: "shape the interface for review", expected: { phase1: deterministic_selection, tier: phrase, capability: design } }
27
+ - { id: DEV-PHRASE-ORCHESTRATE, partition: development, request: "execute the approved plan for phase two", expected: { phase1: deterministic_selection, tier: phrase, capability: orchestrate } }
28
+ - { id: DEV-ABSTAIN-STATUS, partition: development, request: "show project briefings", expected: { phase1: semantic_required, reason: literal_abstention, boundary: status } }
29
+ - { id: DEV-ABSTAIN-VISION, partition: development, request: "define our product direction", expected: { phase1: semantic_required, reason: literal_abstention, boundary: vision } }
30
+ - { id: DEV-ABSTAIN-DISCUSS, partition: development, request: "help us decide", expected: { phase1: semantic_required, reason: literal_abstention, boundary: discuss } }
31
+ - { id: DEV-ABSTAIN-RESEARCH, partition: development, request: "research patterns", expected: { phase1: semantic_required, reason: literal_abstention, boundary: research } }
32
+ - { id: DEV-ABSTAIN-PLAN, partition: development, request: "make implementation plan", expected: { phase1: semantic_required, reason: literal_abstention, boundary: plan } }
33
+ - { id: DEV-ABSTAIN-BUILD, partition: development, request: "implement approved plan", expected: { phase1: semantic_required, reason: literal_abstention, boundary: build } }
34
+ - { id: DEV-ABSTAIN-OPTIMIZE, partition: development, request: "optimize measured bottleneck", expected: { phase1: semantic_required, reason: literal_abstention, boundary: optimize } }
35
+ - { id: DEV-ABSTAIN-AUDIT, partition: development, request: "audit the codebase health", expected: { phase1: semantic_required, reason: literal_abstention, boundary: audit } }
36
+ - { id: DEV-ABSTAIN-DOCUMENT, partition: development, request: "update documentation", expected: { phase1: semantic_required, reason: literal_abstention, boundary: document } }
37
+ - { id: DEV-ABSTAIN-PROFILE, partition: development, request: "save decision profile", expected: { phase1: semantic_required, reason: literal_abstention, boundary: profile } }
38
+ - { id: DEV-ABSTAIN-DESIGN, partition: development, request: "design an interface", expected: { phase1: semantic_required, reason: literal_abstention, boundary: design } }
39
+ - { id: DEV-ABSTAIN-ORCHESTRATE, partition: development, request: "execute approved plan", expected: { phase1: semantic_required, reason: literal_abstention, boundary: orchestrate } }
40
+ - { id: DEV-BARE, partition: development, request: "/agentera", expected: { phase1: deterministic_selection, tier: bare, capability: status } }
41
+ - { id: DEV-DIRECT, partition: development, request: "/agentera plan import safety", expected: { phase1: deterministic_selection, tier: direct, capability: plan } }
42
+ - { id: ADV-BARE-WITH-TEXT, partition: adversarial, request: "/agentera what time is it", expected: { phase1: semantic_required, reason: nonbare_request, boundary: bare } }
43
+ - { id: ADV-DIRECT-PARTIAL, partition: adversarial, request: "/agentera planner import safety", expected: { phase1: semantic_required, reason: invalid_direct_name, boundary: direct } }
44
+ - { id: ADV-QUOTED-PHRASE, partition: adversarial, request: 'The words "help me decide" appear in this quote.', expected: { phase1: semantic_required, reason: nonleading_phrase } }
45
+ - { id: ADV-NEGATED-PHRASE, partition: adversarial, request: "Do not help me decide; just show alternatives.", expected: { phase1: semantic_required, reason: nonleading_phrase } }
46
+ - { id: ADV-PUNCTUATED-PHRASE, partition: adversarial, request: "help me decide: now", expected: { phase1: deterministic_selection, tier: phrase, capability: discuss, topic: ": now" } }
47
+ - { id: ADV-EMDASH-SEPARATOR, partition: adversarial, request: "help me decide—now", expected: { phase1: deterministic_selection, tier: phrase, capability: discuss, topic: "—now" } }
48
+ - { id: ADV-FULLWIDTH-PHRASE, partition: adversarial, request: "HELP ME DECIDE: cache", expected: { phase1: deterministic_selection, tier: phrase, capability: discuss, topic: ": cache" } }
49
+ - { id: ADV-REPEATED-WHITESPACE, partition: adversarial, request: "help\t\tme decide\ncache", expected: { phase1: deterministic_selection, tier: phrase, capability: discuss, topic: "\ncache" } }
50
+ - { id: ADV-PARTIAL-PHRASE, partition: adversarial, request: "help me deciding now", expected: { phase1: semantic_required, reason: partial_token } }
51
+ - { id: ADV-UNSUPPORTED-PUNCTUATION, partition: adversarial, request: "help me decide! now", expected: { phase1: semantic_required, reason: unsupported_separator } }
52
+
53
+ receipt_cases:
54
+ - id: DEV-RECEIPT-SELECT-PASS
55
+ partition: development
56
+ valid: true
57
+ request: "How should we divide the import work?"
58
+ expected_terminal: selected
59
+ receipt: { version: agentera.route_receipt.v1, request_sha256: c28396095a91d6b3f0f6485f8cc4a898f7d012a1d01d000653786fa869626b70, semantic_capsule_sha256: f885d882a3d08a59aac28cebbb9a3270a28096b6f411f55f99e8772c3ce7637e, outcome: select, capability: plan, compound: none }
60
+ - id: ADV-RECEIPT-SELECT-MISSING-CAPABILITY
61
+ partition: adversarial
62
+ valid: false
63
+ request: "How should we divide the import work?"
64
+ expected_terminal: invalid_receipt
65
+ error: required.capability
66
+ receipt: { version: agentera.route_receipt.v1, request_sha256: c28396095a91d6b3f0f6485f8cc4a898f7d012a1d01d000653786fa869626b70, semantic_capsule_sha256: f885d882a3d08a59aac28cebbb9a3270a28096b6f411f55f99e8772c3ce7637e, outcome: select, compound: none }
67
+ - id: DEV-RECEIPT-CLARIFY-PASS
68
+ partition: development
69
+ valid: true
70
+ request: "Make it better"
71
+ expected_terminal: clarification
72
+ receipt: { version: agentera.route_receipt.v1, request_sha256: d71e91121b85d9e84a5dea968dc995878667e4b631b92f8742622427a23cdaa6, semantic_capsule_sha256: f885d882a3d08a59aac28cebbb9a3270a28096b6f411f55f99e8772c3ce7637e, outcome: clarify, question: "Do you want a plan or implementation?" }
73
+ - id: ADV-RECEIPT-CLARIFY-MISSING-QUESTION
74
+ partition: adversarial
75
+ valid: false
76
+ request: "Make it better"
77
+ expected_terminal: invalid_receipt
78
+ error: required.question
79
+ receipt: { version: agentera.route_receipt.v1, request_sha256: d71e91121b85d9e84a5dea968dc995878667e4b631b92f8742622427a23cdaa6, semantic_capsule_sha256: f885d882a3d08a59aac28cebbb9a3270a28096b6f411f55f99e8772c3ce7637e, outcome: clarify }
80
+ - id: DEV-RECEIPT-NO-MATCH-PASS
81
+ partition: development
82
+ valid: true
83
+ request: "What time is the train?"
84
+ expected_terminal: status_fallback
85
+ receipt: { version: agentera.route_receipt.v1, request_sha256: b712acb8d881cc37a94f06c8ec9efb91f6ce24fa4e7349883dbbb36b57c5d7bc, semantic_capsule_sha256: f885d882a3d08a59aac28cebbb9a3270a28096b6f411f55f99e8772c3ce7637e, outcome: no_match }
86
+ - id: ADV-RECEIPT-NO-MATCH-FORBIDDEN-CAPABILITY
87
+ partition: adversarial
88
+ valid: false
89
+ request: "What time is the train?"
90
+ expected_terminal: invalid_receipt
91
+ error: not
92
+ receipt: { version: agentera.route_receipt.v1, request_sha256: b712acb8d881cc37a94f06c8ec9efb91f6ce24fa4e7349883dbbb36b57c5d7bc, semantic_capsule_sha256: f885d882a3d08a59aac28cebbb9a3270a28096b6f411f55f99e8772c3ce7637e, outcome: no_match, capability: plan }
93
+ - id: DEV-RECEIPT-COMPOUND-PRESERVE-PASS
94
+ partition: development
95
+ valid: true
96
+ request: "Plan the migration and then implement it"
97
+ expected_terminal: selected
98
+ receipt: { version: agentera.route_receipt.v1, request_sha256: f26da5835071b706a176032b263b0131817a56dcd2965f4198e57e2e23b0ac60, semantic_capsule_sha256: f885d882a3d08a59aac28cebbb9a3270a28096b6f411f55f99e8772c3ce7637e, outcome: select, capability: plan, compound: preserve, remainder_span: { start: 4, end: 40 } }
99
+ - id: ADV-RECEIPT-COMPOUND-INVALID
100
+ partition: adversarial
101
+ valid: false
102
+ request: "Plan the migration and then implement it"
103
+ expected_terminal: invalid_receipt
104
+ error: compound.enum
105
+ receipt: { version: agentera.route_receipt.v1, request_sha256: f26da5835071b706a176032b263b0131817a56dcd2965f4198e57e2e23b0ac60, semantic_capsule_sha256: f885d882a3d08a59aac28cebbb9a3270a28096b6f411f55f99e8772c3ce7637e, outcome: select, capability: plan, compound: clarify }
106
+ - id: ADV-RECEIPT-MISSING-VERSION
107
+ partition: adversarial
108
+ valid: false
109
+ request: "Map the migration before implementation."
110
+ expected_terminal: invalid_receipt
111
+ error: required.version
112
+ receipt: { request_sha256: fc8dfdefc423ea7c375669b044a01c443b48be880e0c4e769579d296ef048f74, semantic_capsule_sha256: f885d882a3d08a59aac28cebbb9a3270a28096b6f411f55f99e8772c3ce7637e, outcome: select, capability: plan, compound: none }
113
+ - id: ADV-RECEIPT-INVALID-DIGEST
114
+ partition: adversarial
115
+ valid: false
116
+ request: "Which capability should handle this?"
117
+ expected_terminal: invalid_receipt
118
+ error: request_sha256.pattern
119
+ receipt: { version: agentera.route_receipt.v1, request_sha256: not-a-digest, semantic_capsule_sha256: f885d882a3d08a59aac28cebbb9a3270a28096b6f411f55f99e8772c3ce7637e, outcome: select, capability: plan, compound: none }
120
+ - id: ADV-RECEIPT-UNKNOWN-CAPABILITY
121
+ partition: adversarial
122
+ valid: false
123
+ request: "Which capability should handle this?"
124
+ expected_terminal: invalid_receipt
125
+ error: binding.capability
126
+ receipt: { version: agentera.route_receipt.v1, request_sha256: 9516783492db2d389ec305dfea5f60d23e6d136c7cd27e236bbc29daeca427df, semantic_capsule_sha256: f885d882a3d08a59aac28cebbb9a3270a28096b6f411f55f99e8772c3ce7637e, outcome: select, capability: unknown, compound: none }
127
+ - id: ADV-RECEIPT-OUT-OF-BOUNDS-SPAN
128
+ partition: adversarial
129
+ valid: false
130
+ request: "Keep the second request deferred."
131
+ expected_terminal: invalid_receipt
132
+ error: binding.remainder_span
133
+ receipt: { version: agentera.route_receipt.v1, request_sha256: 8b5ea821ff9831f5d5c9a87e2b5a2eefbfbbce54032d2f1bc160ada48eb82180, semantic_capsule_sha256: f885d882a3d08a59aac28cebbb9a3270a28096b6f411f55f99e8772c3ce7637e, outcome: select, capability: plan, compound: preserve, remainder_span: { start: 0, end: 999 } }
134
+ - id: ADV-RECEIPT-MISSING-CAPSULE-DIGEST
135
+ partition: adversarial
136
+ valid: false
137
+ request: "Which capability should handle this?"
138
+ expected_terminal: invalid_receipt
139
+ error: required.semantic_capsule_sha256
140
+ receipt: { version: agentera.route_receipt.v1, request_sha256: 9516783492db2d389ec305dfea5f60d23e6d136c7cd27e236bbc29daeca427df, outcome: select, capability: plan, compound: none }
141
+ - id: ADV-RECEIPT-INVALID-CAPSULE-DIGEST
142
+ partition: adversarial
143
+ valid: false
144
+ request: "Which capability should handle this?"
145
+ expected_terminal: invalid_receipt
146
+ error: semantic_capsule_sha256.pattern
147
+ receipt: { version: agentera.route_receipt.v1, request_sha256: 9516783492db2d389ec305dfea5f60d23e6d136c7cd27e236bbc29daeca427df, semantic_capsule_sha256: not-a-digest, outcome: select, capability: plan, compound: none }
148
+ - id: ADV-RECEIPT-STALE-CAPSULE-DIGEST
149
+ partition: adversarial
150
+ valid: false
151
+ request: "Which capability should handle this?"
152
+ expected_terminal: invalid_receipt
153
+ error: binding.semantic_capsule_sha256
154
+ receipt: { version: agentera.route_receipt.v1, request_sha256: 9516783492db2d389ec305dfea5f60d23e6d136c7cd27e236bbc29daeca427df, semantic_capsule_sha256: "0000000000000000000000000000000000000000000000000000000000000000", outcome: select, capability: plan, compound: none }