agentera 3.0.0-dev.8 → 3.0.0-dev.81

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 (725) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +252 -22
  3. package/bundle/.agentera-build-source.json +8 -0
  4. package/bundle/CHANGELOG.md +1389 -0
  5. package/bundle/DESIGN.md +229 -0
  6. package/bundle/LICENSE +201 -0
  7. package/bundle/README.md +142 -0
  8. package/bundle/UPGRADE.md +275 -0
  9. package/bundle/extract-corpus-parity.json +2 -4
  10. package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
  11. package/bundle/references/adapters/package-publication.json +484 -0
  12. package/bundle/references/adapters/package-registry.yaml +443 -188
  13. package/bundle/references/adapters/package-surface-characterization.md +68 -34
  14. package/bundle/references/adapters/product-v1-reset.yaml +101 -0
  15. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +74 -0
  16. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +62 -0
  17. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  18. package/bundle/references/adapters/runtime-retired-resources.yaml +357 -0
  19. package/bundle/references/analysis/evidence-tier-authority.yaml +559 -0
  20. package/bundle/references/analysis/personal-glossary-evaluation-authority.yaml +175 -0
  21. package/bundle/references/analysis/personal-glossary-evaluation-corpus.yaml +291 -0
  22. package/bundle/references/analysis/personal-glossary-holdout.yaml +192 -0
  23. package/bundle/references/analysis/verification-policy.yaml +262 -0
  24. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +17 -8
  25. package/bundle/references/artifacts/glossary-entry-contract.yaml +2906 -0
  26. package/bundle/references/artifacts/state-storage-authority.yaml +3075 -0
  27. package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
  28. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +3 -4
  29. package/bundle/references/cli/capability-instruction-contract.yaml +11 -14
  30. package/bundle/references/cli/hybrid-route-contract.yaml +438 -0
  31. package/bundle/references/cli/routing-model.md +152 -93
  32. package/bundle/references/cli/trigger-schema-enrichment.md +57 -46
  33. package/bundle/references/cli/update-channels.yaml +7 -5
  34. package/bundle/references/cli/vocabulary-index.yaml +7 -9
  35. package/bundle/references/cli/vocabulary.md +54 -97
  36. package/bundle/references/meta/retained-reference-authority.yaml +171 -0
  37. package/bundle/skills/agentera/SKILL.md +183 -63
  38. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +27 -19
  39. package/bundle/skills/agentera/capabilities/audit/schemas/exit.yaml +2 -2
  40. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +13 -35
  41. package/bundle/skills/agentera/capabilities/audit/schemas/validation.yaml +30 -11
  42. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +44 -21
  43. package/bundle/skills/agentera/capabilities/build/schemas/exit.yaml +8 -6
  44. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +14 -36
  45. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +95 -21
  46. package/bundle/skills/agentera/capabilities/design/schemas/artifacts.yaml +6 -6
  47. package/bundle/skills/agentera/capabilities/design/schemas/exit.yaml +5 -5
  48. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +5 -34
  49. package/bundle/skills/agentera/capabilities/design/schemas/validation.yaml +2 -2
  50. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +17 -13
  51. package/bundle/skills/agentera/capabilities/discuss/schemas/exit.yaml +2 -2
  52. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +6 -40
  53. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +72 -5
  54. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +24 -17
  55. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +5 -35
  56. package/bundle/skills/agentera/capabilities/document/schemas/validation.yaml +13 -13
  57. package/bundle/skills/agentera/capabilities/optimize/schemas/artifacts.yaml +10 -10
  58. package/bundle/skills/agentera/capabilities/optimize/schemas/exit.yaml +2 -2
  59. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +4 -35
  60. package/bundle/skills/agentera/capabilities/optimize/schemas/validation.yaml +3 -3
  61. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +34 -22
  62. package/bundle/skills/agentera/capabilities/orchestrate/schemas/exit.yaml +9 -7
  63. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +5 -37
  64. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +38 -37
  65. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +20 -16
  66. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +8 -31
  67. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +66 -6
  68. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +13 -4
  69. package/bundle/skills/agentera/capabilities/profile/schemas/exit.yaml +8 -5
  70. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +8 -37
  71. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +67 -3
  72. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +6 -6
  73. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +5 -29
  74. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +13 -12
  75. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +7 -49
  76. package/bundle/skills/agentera/capabilities/vision/schemas/artifacts.yaml +8 -8
  77. package/bundle/skills/agentera/capabilities/vision/schemas/exit.yaml +7 -6
  78. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +7 -39
  79. package/bundle/skills/agentera/capabilities/vision/schemas/validation.yaml +14 -16
  80. package/bundle/skills/agentera/capability_schema_contract.yaml +32 -32
  81. package/bundle/skills/agentera/protocol.yaml +4 -4
  82. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  83. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +1 -0
  84. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +29 -30
  85. package/bundle/skills/agentera/schemas/artifacts/design.yaml +1 -0
  86. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +7 -43
  87. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +140 -34
  88. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +87 -0
  89. package/bundle/skills/agentera/schemas/artifacts/health.yaml +53 -51
  90. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +18 -35
  91. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +453 -55
  92. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +128 -39
  93. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +305 -7
  94. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +0 -19
  95. package/dist/.agentera-build-source.json +8 -0
  96. package/dist/analytics/extractCorpus/cli.js +52 -11
  97. package/dist/analytics/extractCorpus/copilotSessions.js +19 -8
  98. package/dist/analytics/extractCorpus/core.js +262 -14
  99. package/dist/analytics/extractCorpus/corpus.js +57 -18
  100. package/dist/analytics/extractCorpus/coverageAudit.js +44 -45
  101. package/dist/analytics/extractCorpus/cursorSessions.js +28 -8
  102. package/dist/analytics/extractCorpus/evidenceTiers.js +709 -0
  103. package/dist/analytics/extractCorpus/extractCorpusParity.js +4 -4
  104. package/dist/analytics/extractCorpus/filesystemSources.js +5 -5
  105. package/dist/analytics/extractCorpus/index.js +4 -2
  106. package/dist/analytics/extractCorpus/jsonlSessions.js +76 -8
  107. package/dist/analytics/extractCorpus/sqliteCaps.js +0 -1
  108. package/dist/analytics/extractCorpus/sqliteSessions.js +12 -4
  109. package/dist/analytics/extractCorpus/tierReader.js +108 -0
  110. package/dist/analytics/extractCorpus.js +0 -1
  111. package/dist/analytics/glossaryAdviceResolution.js +166 -0
  112. package/dist/analytics/glossaryInputAcquisition.js +319 -0
  113. package/dist/analytics/personalGlossaryAdmission.js +113 -0
  114. package/dist/analytics/personalGlossaryCandidateProjection.js +788 -0
  115. package/dist/analytics/personalGlossaryCandidateProjectionExcerpts.js +144 -0
  116. package/dist/analytics/personalGlossaryCandidateProjectionModel.js +1 -0
  117. package/dist/analytics/personalGlossaryCandidateReadView.js +23 -0
  118. package/dist/analytics/personalGlossaryCurrentGeneration.js +25 -0
  119. package/dist/analytics/personalGlossaryDecision.js +203 -0
  120. package/dist/analytics/personalGlossaryExplicit.js +788 -0
  121. package/dist/analytics/personalGlossaryExplicitMining.js +285 -0
  122. package/dist/analytics/personalGlossaryExplicitScope.js +41 -0
  123. package/dist/analytics/personalGlossaryExplicitSegments.js +418 -0
  124. package/dist/analytics/personalGlossaryExplicitTypes.js +26 -0
  125. package/dist/analytics/personalGlossaryLexicalClassifier.js +175 -0
  126. package/dist/analytics/personalGlossaryProfile.js +229 -0
  127. package/dist/analytics/personalGlossaryRecurrence.js +618 -0
  128. package/dist/analytics/personalGlossaryRefreshProjection.js +351 -0
  129. package/dist/analytics/personalGlossaryReviewRecordStorage.js +428 -0
  130. package/dist/analytics/personalGlossaryReviewRecords.js +332 -0
  131. package/dist/analytics/profileSignals.js +211 -0
  132. package/dist/analytics/usageStats.js +150 -23
  133. package/dist/audit/terminologyDrift.js +281 -0
  134. package/dist/bin/agentera.js +3 -2
  135. package/dist/capabilities/audit/instructions.js +16 -6
  136. package/dist/capabilities/build/instructions.js +59 -6
  137. package/dist/capabilities/design/instructions.js +3 -4
  138. package/dist/capabilities/discuss/instructions.js +29 -6
  139. package/dist/capabilities/document/instructions.js +11 -6
  140. package/dist/capabilities/index.js +20 -14
  141. package/dist/capabilities/optimize/instructions.js +14 -6
  142. package/dist/capabilities/orchestrate/instructions.js +42 -6
  143. package/dist/capabilities/plan/instructions.js +30 -3
  144. package/dist/capabilities/profile/instructions.js +104 -5
  145. package/dist/capabilities/research/instructions.js +4 -5
  146. package/dist/capabilities/status/instructions.js +15 -6
  147. package/dist/capabilities/status/startupInstructions.js +34 -0
  148. package/dist/capabilities/vision/instructions.js +3 -5
  149. package/dist/cli/appContext.js +14 -7
  150. package/dist/cli/argvalidate.js +0 -1
  151. package/dist/cli/capabilityContext/benchmark.js +5 -4
  152. package/dist/cli/capabilityContext/bespoke.js +14 -6
  153. package/dist/cli/capabilityContext/build.js +116 -42
  154. package/dist/cli/capabilityContext/closeout.js +30 -27
  155. package/dist/cli/capabilityContext/contract.js +18 -27
  156. package/dist/cli/capabilityContext/evidence.js +84 -77
  157. package/dist/cli/capabilityContext/index.js +0 -1
  158. package/dist/cli/capabilityContext/orchestration.js +42 -18
  159. package/dist/cli/capabilityContext/planState.js +89 -96
  160. package/dist/cli/capabilityContext/progress.js +52 -12
  161. package/dist/cli/capabilityContext/projectVerification.js +409 -0
  162. package/dist/cli/capabilityContext/shared.js +9 -20
  163. package/dist/cli/capabilityContext/slim.js +52 -8
  164. package/dist/cli/capabilityContext/startup.js +51 -114
  165. package/dist/cli/capabilityContext/startupAggregation.js +68 -0
  166. package/dist/cli/capabilityContext/types.js +26 -10
  167. package/dist/cli/capabilityContext.js +0 -1
  168. package/dist/cli/commands/appHome.js +0 -1
  169. package/dist/cli/commands/capability.js +2 -2
  170. package/dist/cli/commands/compact.js +163 -13
  171. package/dist/cli/commands/doctor.js +162 -11
  172. package/dist/cli/commands/durability.js +81 -0
  173. package/dist/cli/commands/glossaryAdvice.js +138 -0
  174. package/dist/cli/commands/lint.js +22 -8
  175. package/dist/cli/commands/personalGlossaryCandidateReads.js +755 -0
  176. package/dist/cli/commands/personalGlossaryDecision.js +349 -0
  177. package/dist/cli/commands/personalGlossaryPublish.js +484 -0
  178. package/dist/cli/commands/personalGlossaryReviewRecordReads.js +209 -0
  179. package/dist/cli/commands/personalGlossaryReviewRecords.js +623 -0
  180. package/dist/cli/commands/prime/briefOrientation.js +845 -0
  181. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  182. package/dist/cli/commands/prime/bundleStatus.js +54 -4
  183. package/dist/cli/commands/prime/collectEntityOrientation.js +338 -0
  184. package/dist/cli/commands/prime/collectOrientationState.js +124 -68
  185. package/dist/cli/commands/prime/orientationOutput.js +271 -59
  186. package/dist/cli/commands/prime/types.js +0 -1
  187. package/dist/cli/commands/prime.js +89 -11
  188. package/dist/cli/commands/profileGrounding.js +55 -0
  189. package/dist/cli/commands/query.js +74 -52
  190. package/dist/cli/commands/report.js +187 -27
  191. package/dist/cli/commands/route.js +142 -0
  192. package/dist/cli/commands/schema.js +436 -138
  193. package/dist/cli/commands/state/decisions.js +40 -56
  194. package/dist/cli/commands/state/docs.js +58 -85
  195. package/dist/cli/commands/state/experimentRecords.js +151 -0
  196. package/dist/cli/commands/state/experiments.js +11 -65
  197. package/dist/cli/commands/state/get.js +129 -0
  198. package/dist/cli/commands/state/health.js +11 -113
  199. package/dist/cli/commands/state/index.js +6 -41
  200. package/dist/cli/commands/state/list.js +194 -0
  201. package/dist/cli/commands/state/objective.js +21 -65
  202. package/dist/cli/commands/state/plan.js +11 -170
  203. package/dist/cli/commands/state/planTasks.js +154 -0
  204. package/dist/cli/commands/state/plans.js +154 -0
  205. package/dist/cli/commands/state/progress.js +11 -45
  206. package/dist/cli/commands/state/shared.js +0 -1
  207. package/dist/cli/commands/state/todo.js +28 -107
  208. package/dist/cli/commands/state/write.js +459 -0
  209. package/dist/cli/commands/upgrade.js +176 -5
  210. package/dist/cli/commands/upgradeVerify.js +118 -0
  211. package/dist/cli/commands/validate.js +235 -136
  212. package/dist/cli/commands/verify.js +73 -16
  213. package/dist/cli/contracts/bundleStatus.js +0 -1
  214. package/dist/cli/contracts/orientationState.js +0 -1
  215. package/dist/cli/dispatch/argvParser.js +0 -1
  216. package/dist/cli/dispatch/check.js +84 -40
  217. package/dist/cli/dispatch/commands.js +3 -3
  218. package/dist/cli/dispatch/index.js +84 -52
  219. package/dist/cli/dispatch/lifecycle.js +182 -62
  220. package/dist/cli/dispatch/prime.js +37 -2
  221. package/dist/cli/dispatch/projections.js +17 -0
  222. package/dist/cli/dispatch/shared.js +1 -2
  223. package/dist/cli/dispatch/state.js +62 -66
  224. package/dist/cli/dispatch.js +0 -1
  225. package/dist/cli/errors.js +16 -17
  226. package/dist/cli/help.js +419 -41
  227. package/dist/cli/migrationRequired.js +125 -0
  228. package/dist/cli/orientation/attention.js +19 -22
  229. package/dist/cli/orientation/corpusCoverage.js +32 -1
  230. package/dist/cli/orientation.js +346 -129
  231. package/dist/cli/planArtifacts.js +350 -0
  232. package/dist/cli/planEvidence.js +157 -0
  233. package/dist/cli/planLifecycleState.js +36 -0
  234. package/dist/cli/planTaskIndex.js +11 -0
  235. package/dist/cli/preCutoverCommand.js +32 -0
  236. package/dist/cli/prime-blob.js +71 -3
  237. package/dist/cli/productV1Eol.js +55 -0
  238. package/dist/cli/profileAcquisition.js +167 -0
  239. package/dist/cli/startupCompletenessContract.js +11 -9
  240. package/dist/cli/stateQuery.js +47 -12
  241. package/dist/cli/structured.js +0 -1
  242. package/dist/cli/todoMarkdown.js +25 -12
  243. package/dist/cli/todoReadinessSelection.js +192 -0
  244. package/dist/cli/todoSeverity.js +0 -1
  245. package/dist/core/atomicWriter.js +23 -0
  246. package/dist/core/developmentChannel.js +1 -0
  247. package/dist/core/developmentInvocation.js +377 -0
  248. package/dist/core/difflib.js +0 -1
  249. package/dist/core/envPaths.js +0 -1
  250. package/dist/core/jsonValue.js +0 -1
  251. package/dist/core/paths.js +0 -1
  252. package/dist/core/pyjson.js +0 -1
  253. package/dist/core/shell.js +4 -0
  254. package/dist/core/skillIdentity.js +23 -0
  255. package/dist/core/sourceRoot.js +9 -12
  256. package/dist/core/text.js +10 -0
  257. package/dist/core/toml.js +0 -1
  258. package/dist/core/yaml.js +61 -2
  259. package/dist/eval/evalSkills.js +13 -14
  260. package/dist/eval/glossaryEvaluation.js +751 -0
  261. package/dist/eval/glossaryEvaluationProcess.js +29 -0
  262. package/dist/eval/glossaryEvaluationRunner.js +571 -0
  263. package/dist/eval/glossaryEvaluationSuccessReport.js +297 -0
  264. package/dist/eval/hybridRouteEvaluation.js +155 -0
  265. package/dist/eval/semanticEval.js +0 -1
  266. package/dist/eval/semanticFixtures.js +0 -1
  267. package/dist/hooks/common.js +3 -56
  268. package/dist/hooks/compaction/apply.js +224 -47
  269. package/dist/hooks/compaction/dryRun.js +2 -1
  270. package/dist/hooks/compaction/index.js +5 -6
  271. package/dist/hooks/compaction/parse.js +73 -6
  272. package/dist/hooks/compaction/retention.js +28 -25
  273. package/dist/hooks/compaction/status.js +145 -26
  274. package/dist/hooks/compaction/types.js +0 -1
  275. package/dist/hooks/validateArtifact/agentFacing.js +0 -1
  276. package/dist/hooks/validateArtifact/index.js +6 -65
  277. package/dist/hooks/validateArtifact/markdown.js +9 -10
  278. package/dist/hooks/validateArtifact/schema.js +96 -9
  279. package/dist/hooks/validateArtifact/traversal.js +12 -11
  280. package/dist/hooks/validateArtifact/violations.js +5 -3
  281. package/dist/migrate/v2HandoffManifest.js +8 -3
  282. package/dist/registries/activationContract.js +2 -0
  283. package/dist/registries/activationTuples.js +145 -0
  284. package/dist/registries/artifactProtocolIds.js +2 -1
  285. package/dist/registries/artifactRegistry.js +207 -60
  286. package/dist/registries/artifactSchemaProjection.js +45 -0
  287. package/dist/registries/capabilityContract.js +5 -21
  288. package/dist/registries/evaluatorHandoffContract.js +0 -1
  289. package/dist/registries/evidenceTierContract.js +375 -0
  290. package/dist/registries/explicitSegmentGrammarContract.js +619 -0
  291. package/dist/registries/glossaryAdviceContract.js +79 -0
  292. package/dist/registries/glossaryCandidateContractPaths.js +6 -0
  293. package/dist/registries/glossaryCandidateContracts.js +820 -0
  294. package/dist/registries/glossaryCandidateDecisionAuthority.js +119 -0
  295. package/dist/registries/glossaryCandidateDecisionContract.js +62 -0
  296. package/dist/registries/glossaryCandidateProjectionAuthority.js +345 -0
  297. package/dist/registries/glossaryCandidateProjectionContract.js +108 -0
  298. package/dist/registries/glossaryCaveatContract.js +67 -0
  299. package/dist/registries/glossaryConsumerContractValidation.js +787 -0
  300. package/dist/registries/glossaryEntryContract.js +759 -0
  301. package/dist/registries/glossaryEntryTemporal.js +12 -0
  302. package/dist/registries/glossaryMiningAuthority.js +764 -0
  303. package/dist/registries/glossaryProfileFullContract.js +24 -0
  304. package/dist/registries/glossaryReviewRecordsAuthority.js +426 -0
  305. package/dist/registries/glossaryReviewRecordsContract.js +129 -0
  306. package/dist/registries/glossaryTermIdentity.js +139 -0
  307. package/dist/registries/glossaryTermOccurrence.js +20 -0
  308. package/dist/registries/hybridRoute.js +274 -0
  309. package/dist/registries/hybridRouteReceipt.js +221 -0
  310. package/dist/registries/packagePublication.js +273 -0
  311. package/dist/registries/packageRegistry.js +184 -209
  312. package/dist/registries/personalGlossaryContracts.js +1 -0
  313. package/dist/registries/todoReadinessContract.js +448 -0
  314. package/dist/registries/triggerLoader.js +7 -44
  315. package/dist/registries/verbosityBudgetContract.js +205 -0
  316. package/dist/release/releaseMetadata.js +168 -11
  317. package/dist/runtime/lifecycleAdapterContract.js +457 -0
  318. package/dist/runtime/lifecycleAdapters.js +777 -0
  319. package/dist/runtime/lifecycleAuthority.js +453 -0
  320. package/dist/runtime/lifecycleOperationContract.js +123 -0
  321. package/dist/runtime/lifecycleOperations.js +634 -0
  322. package/dist/runtime/lifecycleOwnershipJournal.js +622 -0
  323. package/dist/runtime/lifecyclePublication.js +415 -0
  324. package/dist/runtime/lifecycleSnapshot.js +438 -0
  325. package/dist/runtime/nativeResourceCleanup.js +618 -0
  326. package/dist/setup/opencode.js +20 -13
  327. package/dist/setup/opencodeConstants.js +1 -0
  328. package/dist/setup/sharedSkill.js +45 -0
  329. package/dist/setup/smokeChecks.js +14 -75
  330. package/dist/state/archiveDiscovery.js +580 -0
  331. package/dist/state/archivePublication.js +225 -0
  332. package/dist/state/archiveRecovery.js +237 -0
  333. package/dist/state/archiveReplay.js +53 -0
  334. package/dist/state/canonicalMigrationRecord.js +36 -0
  335. package/dist/state/changelog.js +221 -0
  336. package/dist/state/decisionEntities.js +367 -0
  337. package/dist/state/decisionLegacyValidation.js +215 -0
  338. package/dist/state/decisionMigrationProvenance.js +199 -0
  339. package/dist/state/decisionOverlay.js +254 -0
  340. package/dist/state/decisionRevision.js +256 -0
  341. package/dist/state/decisionRevisionMigration.js +89 -0
  342. package/dist/state/directRetrieval.js +323 -0
  343. package/dist/state/durability.js +324 -0
  344. package/dist/state/entityCutover.js +459 -0
  345. package/dist/state/entityCutoverGit.js +127 -0
  346. package/dist/state/entityGlossaryAuthority.js +13 -0
  347. package/dist/state/entityListProjection.js +187 -0
  348. package/dist/state/entityListRuntimeRegistry.js +85 -0
  349. package/dist/state/entityMigrationCausality.js +97 -0
  350. package/dist/state/entityMigrationIdentity.js +5 -0
  351. package/dist/state/entityMigrationPreview.js +840 -0
  352. package/dist/state/entityMigrationTodo.js +133 -0
  353. package/dist/state/entityPublicationContext.js +859 -0
  354. package/dist/state/entityRetrievalHelp.js +506 -0
  355. package/dist/state/entityStorage.js +894 -0
  356. package/dist/state/entityWriterLock.js +18 -0
  357. package/dist/state/exactReplacementRecovery.js +18 -0
  358. package/dist/state/experimentArchive.js +63 -0
  359. package/dist/state/experimentIdentity.js +202 -0
  360. package/dist/state/healthEntities.js +262 -0
  361. package/dist/state/healthEntityValidation.js +18 -0
  362. package/dist/state/healthRepair.js +69 -0
  363. package/dist/state/installRoot.js +15 -7
  364. package/dist/state/legacyEntityCutoverEvidence.js +65 -0
  365. package/dist/state/legacyIdentity.js +47 -0
  366. package/dist/state/legacySummaryRecord.js +6 -0
  367. package/dist/state/listAccounting.js +54 -0
  368. package/dist/state/listClassification.js +17 -0
  369. package/dist/state/listCursor.js +42 -0
  370. package/dist/state/listRetrieval.js +781 -0
  371. package/dist/state/migrationSourceBinding.js +30 -0
  372. package/dist/state/objectiveExperimentEntities.js +322 -0
  373. package/dist/state/planEntities.js +1027 -0
  374. package/dist/state/planIdentity.js +47 -0
  375. package/dist/state/planLineageValidation.js +52 -0
  376. package/dist/state/planReplacementTransaction.js +475 -0
  377. package/dist/state/planRetrieval.js +313 -0
  378. package/dist/state/planTaskRetrieval.js +294 -0
  379. package/dist/state/progressEntities.js +512 -0
  380. package/dist/state/progressGlossaryCaveat.js +168 -0
  381. package/dist/state/progressPublicationOrder.js +19 -0
  382. package/dist/state/progressWritePolicy.js +33 -0
  383. package/dist/state/projectRoot.js +62 -0
  384. package/dist/state/projectionPolicy.js +190 -0
  385. package/dist/state/retrievalAuthority.js +156 -0
  386. package/dist/state/safeProjectFile.js +155 -0
  387. package/dist/state/startupAnalysis/benchmark.js +70 -9
  388. package/dist/state/startupAnalysis/contract.js +44 -10
  389. package/dist/state/startupAnalysis/helpers.js +1 -2
  390. package/dist/state/startupAnalysis/index.js +0 -1
  391. package/dist/state/startupAnalysis/metrics.js +0 -1
  392. package/dist/state/startupAnalysis/records.js +0 -1
  393. package/dist/state/startupAnalysis/report.js +0 -1
  394. package/dist/state/startupAnalysis/threshold.js +13 -1
  395. package/dist/state/startupAnalysis.js +0 -1
  396. package/dist/state/startupProjection.js +499 -0
  397. package/dist/state/stateMode.js +222 -0
  398. package/dist/state/stateStorageAuthority.js +47 -0
  399. package/dist/state/summaryEntityRead.js +25 -0
  400. package/dist/state/summaryMigrationProvenance.js +66 -0
  401. package/dist/state/summarySourceRowAuthority.js +36 -0
  402. package/dist/state/todoActivationSafety.js +58 -0
  403. package/dist/state/todoCreateBatch.js +69 -0
  404. package/dist/state/todoDocsEntities.js +1339 -0
  405. package/dist/state/todoDocsEntityValidation.js +158 -0
  406. package/dist/state/todoMarkdownProjection.js +63 -0
  407. package/dist/state/todoReconciliationActivation.js +182 -0
  408. package/dist/state/todoReconciliationInspection.js +184 -0
  409. package/dist/state/todoReconciliationRepair.js +320 -0
  410. package/dist/state/todoReconciliationTransaction.js +628 -0
  411. package/dist/state/todoSeverityHeadings.js +71 -0
  412. package/dist/state/todoTransitionBatch.js +65 -0
  413. package/dist/state/todoUpdateBatch.js +50 -0
  414. package/dist/state/write/assign.js +20 -0
  415. package/dist/state/write/candidateMutation.js +269 -0
  416. package/dist/state/write/errors.js +11 -0
  417. package/dist/state/write/experimentPublication.js +192 -0
  418. package/dist/state/write/explain.js +380 -0
  419. package/dist/state/write/fields.js +61 -0
  420. package/dist/state/write/glossaryPublication.js +263 -0
  421. package/dist/state/write/grammar.js +285 -0
  422. package/dist/state/write/helpers.js +29 -0
  423. package/dist/state/write/index.js +12 -0
  424. package/dist/state/write/input.js +391 -0
  425. package/dist/state/write/lock.js +837 -0
  426. package/dist/state/write/mutation.js +234 -0
  427. package/dist/state/write/operations.js +170 -0
  428. package/dist/state/write/planEvaluation.js +128 -0
  429. package/dist/state/write/planPublication.js +179 -0
  430. package/dist/state/write/runtimeOperations.js +146 -0
  431. package/dist/state/write/serialize.js +1 -0
  432. package/dist/state/write/transaction.js +57 -0
  433. package/dist/state/write/validate.js +7 -0
  434. package/dist/upgrade/appContentRefresh.js +77 -36
  435. package/dist/upgrade/appModel.js +0 -1
  436. package/dist/upgrade/atomicWriter.js +1 -0
  437. package/dist/upgrade/bundleEvidence.js +0 -1
  438. package/dist/upgrade/channels.js +6 -9
  439. package/dist/upgrade/compatibility.js +43 -17
  440. package/dist/upgrade/doctor.js +55 -32
  441. package/dist/upgrade/doctorClassifier.js +11 -1
  442. package/dist/upgrade/installedHooksRetirement.js +46 -40
  443. package/dist/upgrade/legacyAgentCleanup.js +133 -34
  444. package/dist/upgrade/lifecycleUpgrade.js +126 -0
  445. package/dist/upgrade/migrateArtifactsV2ToV3.js +325 -82
  446. package/dist/upgrade/migrationPublication.js +122 -0
  447. package/dist/upgrade/nextMajorDoctor.js +0 -22
  448. package/dist/upgrade/npxPlatformStatus.js +2 -2
  449. package/dist/upgrade/productV1Reset.js +515 -0
  450. package/dist/upgrade/productV1ResetAuthority.js +139 -0
  451. package/dist/upgrade/projectIntegration.js +126 -134
  452. package/dist/upgrade/projectIntegrationDecision.js +21 -13
  453. package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
  454. package/dist/upgrade/runtimeMigration.js +210 -430
  455. package/dist/upgrade/upgradeCommands.js +14 -1
  456. package/dist/upgrade/upgradeLock.js +85 -0
  457. package/dist/upgrade/upgradeOrchestrator.js +257 -48
  458. package/dist/upgrade/v3CapabilitySurface.js +2 -3
  459. package/dist/upgrade/versionResolution.js +0 -1
  460. package/dist/validate/activationArtifactEvidence.js +866 -0
  461. package/dist/validate/activationArtifactEvidenceTypes.js +12 -0
  462. package/dist/validate/activationConjunction.js +816 -0
  463. package/dist/validate/activationEvidenceManifest.js +610 -0
  464. package/dist/validate/activationPackageSemantics.js +29 -0
  465. package/dist/validate/appHomeContract.js +1 -7
  466. package/dist/validate/bootstrapAuthority.js +44 -0
  467. package/dist/validate/capability.js +11 -3
  468. package/dist/validate/crossCapability.js +14 -9
  469. package/dist/validate/glossaryVariantGuard.js +96 -0
  470. package/dist/validate/retainedReferenceAuthority.js +879 -0
  471. package/dist/validate/selfAudit.js +39 -45
  472. package/dist/validate/vocabularyAuthority.js +8 -8
  473. package/package.json +39 -13
  474. package/bundle/references/adapters/cursor.md +0 -214
  475. package/bundle/references/adapters/opencode.md +0 -530
  476. package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
  477. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  478. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  479. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -554
  480. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  481. package/bundle/references/analysis/benchmark.md +0 -267
  482. package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
  483. package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
  484. package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -369
  485. package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -250
  486. package/bundle/references/cli/capability-tool-classification.yaml +0 -53
  487. package/bundle/references/cli/coexistence-probe.yaml +0 -13
  488. package/bundle/references/cli/parity-expected-actual-template.md +0 -30
  489. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
  490. package/bundle/references/cli/single-name-protocol.yaml +0 -42
  491. package/bundle/references/cli/upgrade-repair-wording.md +0 -45
  492. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +0 -98
  493. package/bundle/references/meta/documentation-inventory.md +0 -49
  494. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  495. package/bundle/skills/agentera/agents/audit.toml +0 -6
  496. package/bundle/skills/agentera/agents/build.toml +0 -6
  497. package/bundle/skills/agentera/agents/design.toml +0 -6
  498. package/bundle/skills/agentera/agents/discuss.toml +0 -6
  499. package/bundle/skills/agentera/agents/document.toml +0 -6
  500. package/bundle/skills/agentera/agents/optimize.toml +0 -6
  501. package/bundle/skills/agentera/agents/orchestrate.toml +0 -6
  502. package/bundle/skills/agentera/agents/plan.toml +0 -6
  503. package/bundle/skills/agentera/agents/profile.toml +0 -6
  504. package/bundle/skills/agentera/agents/research.toml +0 -6
  505. package/bundle/skills/agentera/agents/status.toml +0 -6
  506. package/bundle/skills/agentera/agents/vision.toml +0 -6
  507. package/bundle/skills/agentera/references/contract.md +0 -1048
  508. package/dist/analytics/extractCorpus/cli.js.map +0 -1
  509. package/dist/analytics/extractCorpus/copilotSessions.js.map +0 -1
  510. package/dist/analytics/extractCorpus/core.js.map +0 -1
  511. package/dist/analytics/extractCorpus/corpus.js.map +0 -1
  512. package/dist/analytics/extractCorpus/coverageAudit.js.map +0 -1
  513. package/dist/analytics/extractCorpus/cursorSessions.js.map +0 -1
  514. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +0 -1
  515. package/dist/analytics/extractCorpus/filesystemSources.js.map +0 -1
  516. package/dist/analytics/extractCorpus/index.js.map +0 -1
  517. package/dist/analytics/extractCorpus/jsonlSessions.js.map +0 -1
  518. package/dist/analytics/extractCorpus/sqliteCaps.js.map +0 -1
  519. package/dist/analytics/extractCorpus/sqliteSessions.js.map +0 -1
  520. package/dist/analytics/extractCorpus.js.map +0 -1
  521. package/dist/analytics/usageStats.js.map +0 -1
  522. package/dist/bin/agentera.js.map +0 -1
  523. package/dist/capabilities/audit/instructions.js.map +0 -1
  524. package/dist/capabilities/build/instructions.js.map +0 -1
  525. package/dist/capabilities/design/instructions.js.map +0 -1
  526. package/dist/capabilities/discuss/instructions.js.map +0 -1
  527. package/dist/capabilities/document/instructions.js.map +0 -1
  528. package/dist/capabilities/index.js.map +0 -1
  529. package/dist/capabilities/optimize/instructions.js.map +0 -1
  530. package/dist/capabilities/orchestrate/instructions.js.map +0 -1
  531. package/dist/capabilities/plan/instructions.js.map +0 -1
  532. package/dist/capabilities/profile/instructions.js.map +0 -1
  533. package/dist/capabilities/research/instructions.js.map +0 -1
  534. package/dist/capabilities/status/instructions.js.map +0 -1
  535. package/dist/capabilities/vision/instructions.js.map +0 -1
  536. package/dist/cli/appContext.js.map +0 -1
  537. package/dist/cli/argvalidate.js.map +0 -1
  538. package/dist/cli/capabilityContext/benchmark.js.map +0 -1
  539. package/dist/cli/capabilityContext/bespoke.js.map +0 -1
  540. package/dist/cli/capabilityContext/build.js.map +0 -1
  541. package/dist/cli/capabilityContext/closeout.js.map +0 -1
  542. package/dist/cli/capabilityContext/contract.js.map +0 -1
  543. package/dist/cli/capabilityContext/evidence.js.map +0 -1
  544. package/dist/cli/capabilityContext/index.js.map +0 -1
  545. package/dist/cli/capabilityContext/orchestration.js.map +0 -1
  546. package/dist/cli/capabilityContext/planState.js.map +0 -1
  547. package/dist/cli/capabilityContext/progress.js.map +0 -1
  548. package/dist/cli/capabilityContext/shared.js.map +0 -1
  549. package/dist/cli/capabilityContext/slim.js.map +0 -1
  550. package/dist/cli/capabilityContext/startup.js.map +0 -1
  551. package/dist/cli/capabilityContext/types.js.map +0 -1
  552. package/dist/cli/capabilityContext.js.map +0 -1
  553. package/dist/cli/commands/appHome.js.map +0 -1
  554. package/dist/cli/commands/capability.js.map +0 -1
  555. package/dist/cli/commands/compact.js.map +0 -1
  556. package/dist/cli/commands/doctor.js.map +0 -1
  557. package/dist/cli/commands/lint.js.map +0 -1
  558. package/dist/cli/commands/prime/bundleStatus.js.map +0 -1
  559. package/dist/cli/commands/prime/collectOrientationState.js.map +0 -1
  560. package/dist/cli/commands/prime/orientationOutput.js.map +0 -1
  561. package/dist/cli/commands/prime/types.js.map +0 -1
  562. package/dist/cli/commands/prime/v1Migration.js +0 -39
  563. package/dist/cli/commands/prime/v1Migration.js.map +0 -1
  564. package/dist/cli/commands/prime.js.map +0 -1
  565. package/dist/cli/commands/query.js.map +0 -1
  566. package/dist/cli/commands/report.js.map +0 -1
  567. package/dist/cli/commands/schema.js.map +0 -1
  568. package/dist/cli/commands/state/decisions.js.map +0 -1
  569. package/dist/cli/commands/state/docs.js.map +0 -1
  570. package/dist/cli/commands/state/experiments.js.map +0 -1
  571. package/dist/cli/commands/state/health.js.map +0 -1
  572. package/dist/cli/commands/state/index.js.map +0 -1
  573. package/dist/cli/commands/state/objective.js.map +0 -1
  574. package/dist/cli/commands/state/plan.js.map +0 -1
  575. package/dist/cli/commands/state/progress.js.map +0 -1
  576. package/dist/cli/commands/state/shared.js.map +0 -1
  577. package/dist/cli/commands/state/todo.js.map +0 -1
  578. package/dist/cli/commands/upgrade.js.map +0 -1
  579. package/dist/cli/commands/validate.js.map +0 -1
  580. package/dist/cli/commands/verify.js.map +0 -1
  581. package/dist/cli/contracts/bundleStatus.js.map +0 -1
  582. package/dist/cli/contracts/orientationState.js.map +0 -1
  583. package/dist/cli/dispatch/argvParser.js.map +0 -1
  584. package/dist/cli/dispatch/check.js.map +0 -1
  585. package/dist/cli/dispatch/commands.js.map +0 -1
  586. package/dist/cli/dispatch/index.js.map +0 -1
  587. package/dist/cli/dispatch/lifecycle.js.map +0 -1
  588. package/dist/cli/dispatch/prime.js.map +0 -1
  589. package/dist/cli/dispatch/shared.js.map +0 -1
  590. package/dist/cli/dispatch/state.js.map +0 -1
  591. package/dist/cli/dispatch.js.map +0 -1
  592. package/dist/cli/errors.js.map +0 -1
  593. package/dist/cli/help.js.map +0 -1
  594. package/dist/cli/orientation/attention.js.map +0 -1
  595. package/dist/cli/orientation/corpusCoverage.js.map +0 -1
  596. package/dist/cli/orientation.js.map +0 -1
  597. package/dist/cli/prime-blob.js.map +0 -1
  598. package/dist/cli/startupCompletenessContract.js.map +0 -1
  599. package/dist/cli/stateQuery.js.map +0 -1
  600. package/dist/cli/structured.js.map +0 -1
  601. package/dist/cli/todoMarkdown.js.map +0 -1
  602. package/dist/cli/todoSeverity.js.map +0 -1
  603. package/dist/core/difflib.js.map +0 -1
  604. package/dist/core/envPaths.js.map +0 -1
  605. package/dist/core/jsonValue.js.map +0 -1
  606. package/dist/core/paths.js.map +0 -1
  607. package/dist/core/pyjson.js.map +0 -1
  608. package/dist/core/sourceRoot.js.map +0 -1
  609. package/dist/core/toml.js.map +0 -1
  610. package/dist/core/yaml.js.map +0 -1
  611. package/dist/eval/evalSkills.js.map +0 -1
  612. package/dist/eval/semanticEval.js.map +0 -1
  613. package/dist/eval/semanticFixtures.js.map +0 -1
  614. package/dist/hooks/common.js.map +0 -1
  615. package/dist/hooks/compaction/apply.js.map +0 -1
  616. package/dist/hooks/compaction/dryRun.js.map +0 -1
  617. package/dist/hooks/compaction/index.js.map +0 -1
  618. package/dist/hooks/compaction/parse.js.map +0 -1
  619. package/dist/hooks/compaction/retention.js.map +0 -1
  620. package/dist/hooks/compaction/status.js.map +0 -1
  621. package/dist/hooks/compaction/types.js.map +0 -1
  622. package/dist/hooks/cursorPreToolUse.js +0 -19
  623. package/dist/hooks/cursorPreToolUse.js.map +0 -1
  624. package/dist/hooks/cursorSessionStart.js +0 -79
  625. package/dist/hooks/cursorSessionStart.js.map +0 -1
  626. package/dist/hooks/sessionStart.js +0 -216
  627. package/dist/hooks/sessionStart.js.map +0 -1
  628. package/dist/hooks/sessionStop.js +0 -206
  629. package/dist/hooks/sessionStop.js.map +0 -1
  630. package/dist/hooks/validateArtifact/agentFacing.js.map +0 -1
  631. package/dist/hooks/validateArtifact/index.js.map +0 -1
  632. package/dist/hooks/validateArtifact/markdown.js.map +0 -1
  633. package/dist/hooks/validateArtifact/runtime.js +0 -86
  634. package/dist/hooks/validateArtifact/runtime.js.map +0 -1
  635. package/dist/hooks/validateArtifact/schema.js.map +0 -1
  636. package/dist/hooks/validateArtifact/traversal.js.map +0 -1
  637. package/dist/hooks/validateArtifact/violations.js.map +0 -1
  638. package/dist/migrate/v2HandoffManifest.js.map +0 -1
  639. package/dist/registries/artifactProtocolIds.js.map +0 -1
  640. package/dist/registries/artifactRegistry.js.map +0 -1
  641. package/dist/registries/capabilityContract.js.map +0 -1
  642. package/dist/registries/evaluatorHandoffContract.js.map +0 -1
  643. package/dist/registries/packageRegistry.js.map +0 -1
  644. package/dist/registries/runtimeAdapterRegistry.js +0 -316
  645. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  646. package/dist/registries/triggerLoader.js.map +0 -1
  647. package/dist/release/releaseMetadata.js.map +0 -1
  648. package/dist/setup/codex/agents.js +0 -96
  649. package/dist/setup/codex/agents.js.map +0 -1
  650. package/dist/setup/codex/cli.js +0 -161
  651. package/dist/setup/codex/cli.js.map +0 -1
  652. package/dist/setup/codex/configToml.js +0 -639
  653. package/dist/setup/codex/configToml.js.map +0 -1
  654. package/dist/setup/codex/constants.js +0 -29
  655. package/dist/setup/codex/constants.js.map +0 -1
  656. package/dist/setup/codex/installRoot.js +0 -64
  657. package/dist/setup/codex/installRoot.js.map +0 -1
  658. package/dist/setup/codex/state.js +0 -270
  659. package/dist/setup/codex/state.js.map +0 -1
  660. package/dist/setup/codex.js +0 -12
  661. package/dist/setup/codex.js.map +0 -1
  662. package/dist/setup/copilot.js +0 -227
  663. package/dist/setup/copilot.js.map +0 -1
  664. package/dist/setup/cursor.js +0 -129
  665. package/dist/setup/cursor.js.map +0 -1
  666. package/dist/setup/cursorSurfaces.js +0 -67
  667. package/dist/setup/cursorSurfaces.js.map +0 -1
  668. package/dist/setup/doctor/core.js +0 -300
  669. package/dist/setup/doctor/core.js.map +0 -1
  670. package/dist/setup/doctor/diagnostics.js +0 -240
  671. package/dist/setup/doctor/diagnostics.js.map +0 -1
  672. package/dist/setup/doctor/opencode.js +0 -313
  673. package/dist/setup/doctor/opencode.js.map +0 -1
  674. package/dist/setup/doctor/report.js +0 -425
  675. package/dist/setup/doctor/report.js.map +0 -1
  676. package/dist/setup/doctor.js +0 -10
  677. package/dist/setup/doctor.js.map +0 -1
  678. package/dist/setup/opencode.js.map +0 -1
  679. package/dist/setup/smokeChecks.js.map +0 -1
  680. package/dist/state/installRoot.js.map +0 -1
  681. package/dist/state/startupAnalysis/benchmark.js.map +0 -1
  682. package/dist/state/startupAnalysis/contract.js.map +0 -1
  683. package/dist/state/startupAnalysis/helpers.js.map +0 -1
  684. package/dist/state/startupAnalysis/index.js.map +0 -1
  685. package/dist/state/startupAnalysis/metrics.js.map +0 -1
  686. package/dist/state/startupAnalysis/records.js.map +0 -1
  687. package/dist/state/startupAnalysis/report.js.map +0 -1
  688. package/dist/state/startupAnalysis/threshold.js.map +0 -1
  689. package/dist/state/startupAnalysis.js.map +0 -1
  690. package/dist/upgrade/appContentRefresh.js.map +0 -1
  691. package/dist/upgrade/appModel.js.map +0 -1
  692. package/dist/upgrade/bundleEvidence.js.map +0 -1
  693. package/dist/upgrade/channels.js.map +0 -1
  694. package/dist/upgrade/coexistenceProbe.js +0 -107
  695. package/dist/upgrade/coexistenceProbe.js.map +0 -1
  696. package/dist/upgrade/compatibility.js.map +0 -1
  697. package/dist/upgrade/doctor.js.map +0 -1
  698. package/dist/upgrade/doctorClassifier.js.map +0 -1
  699. package/dist/upgrade/installedHooksRetirement.js.map +0 -1
  700. package/dist/upgrade/legacyAgentCleanup.js.map +0 -1
  701. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -570
  702. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  703. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
  704. package/dist/upgrade/nextMajorDoctor.js.map +0 -1
  705. package/dist/upgrade/npxPlatformStatus.js.map +0 -1
  706. package/dist/upgrade/projectIntegration.js.map +0 -1
  707. package/dist/upgrade/projectIntegrationDecision.js.map +0 -1
  708. package/dist/upgrade/runtimeMigration.js.map +0 -1
  709. package/dist/upgrade/upgradeCommands.js.map +0 -1
  710. package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
  711. package/dist/upgrade/v3CapabilitySurface.js.map +0 -1
  712. package/dist/upgrade/versionResolution.js.map +0 -1
  713. package/dist/validate/appHomeContract.js.map +0 -1
  714. package/dist/validate/capability.js.map +0 -1
  715. package/dist/validate/crossCapability.js.map +0 -1
  716. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +0 -93
  717. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +0 -1
  718. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +0 -488
  719. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +0 -1
  720. package/dist/validate/lifecycleAdapters/shared.js +0 -198
  721. package/dist/validate/lifecycleAdapters/shared.js.map +0 -1
  722. package/dist/validate/lifecycleAdapters.js +0 -62
  723. package/dist/validate/lifecycleAdapters.js.map +0 -1
  724. package/dist/validate/selfAudit.js.map +0 -1
  725. package/dist/validate/vocabularyAuthority.js.map +0 -1
@@ -7,6 +7,16 @@ function shellQuote(value) {
7
7
  export function commandText(parts) {
8
8
  return parts.map(shellQuote).join(" ");
9
9
  }
10
+ export function fullEntityUpgradeCommand(project) {
11
+ return commandText([
12
+ "npx", "-y", "agentera@next", "upgrade", "--channel", "development", "--project", project, "--yes",
13
+ ]);
14
+ }
15
+ export function fullEntityUpgradePreviewCommand(project) {
16
+ return commandText([
17
+ "npx", "-y", "agentera@next", "upgrade", "--channel", "development", "--project", project, "--dry-run",
18
+ ]);
19
+ }
10
20
  /** Channel-aware upgrade preview/apply commands (doctor, prime, orchestrator). */
11
21
  export function buildUpgradeCommands(args) {
12
22
  const base = args.channel.updateCommand.split(/\s+/).slice(0, 3);
@@ -32,9 +42,12 @@ export function buildUpgradeCommands(args) {
32
42
  applyParts.push("--only", phase);
33
43
  }
34
44
  }
45
+ if (args.legacyCleanup) {
46
+ previewParts.push("--legacy-cleanup", args.legacyCleanup);
47
+ applyParts.push("--legacy-cleanup", args.legacyCleanup);
48
+ }
35
49
  return {
36
50
  dryRunCommand: commandText(previewParts),
37
51
  applyCommand: commandText(applyParts),
38
52
  };
39
53
  }
40
- //# sourceMappingURL=upgradeCommands.js.map
@@ -0,0 +1,85 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ const MAX_LOCK_BYTES = 4 * 1024;
5
+ export class UpgradeLockError extends Error {
6
+ constructor(lockPath) {
7
+ super(`upgrade mutation is locked; inspect ${lockPath}, remove that file only if no upgrade owns it, then rerun`);
8
+ this.name = "UpgradeLockError";
9
+ }
10
+ }
11
+ export function upgradeLockPath(root, domain) {
12
+ return path.join(root, ".agentera", `upgrade-${domain}.lock`);
13
+ }
14
+ function manualRecovery(lockPath) {
15
+ return new UpgradeLockError(lockPath);
16
+ }
17
+ function removeCreatedParent(parent, created) {
18
+ if (!created)
19
+ return;
20
+ try {
21
+ fs.rmdirSync(parent);
22
+ }
23
+ catch (error) {
24
+ const code = error.code;
25
+ if (code !== "ENOENT" && code !== "ENOTEMPTY" && code !== "EEXIST")
26
+ throw error;
27
+ }
28
+ }
29
+ function lockRecord(lockPath) {
30
+ try {
31
+ const stat = fs.lstatSync(lockPath);
32
+ if (!stat.isFile() || stat.isSymbolicLink() || stat.size > MAX_LOCK_BYTES)
33
+ return null;
34
+ const value = JSON.parse(fs.readFileSync(lockPath, "utf8"));
35
+ if (value === null
36
+ || typeof value !== "object"
37
+ || Object.keys(value).length !== 1
38
+ || typeof value.token !== "string"
39
+ || value.token.length === 0)
40
+ return null;
41
+ return value;
42
+ }
43
+ catch {
44
+ return null;
45
+ }
46
+ }
47
+ export function acquireUpgradeLock(root, domain) {
48
+ const lockPath = upgradeLockPath(root, domain);
49
+ const parent = path.dirname(lockPath);
50
+ let createdParent = false;
51
+ try {
52
+ fs.mkdirSync(parent);
53
+ createdParent = true;
54
+ }
55
+ catch (error) {
56
+ if (error.code !== "EEXIST")
57
+ throw error;
58
+ }
59
+ const token = randomUUID();
60
+ let fd;
61
+ try {
62
+ fd = fs.openSync(lockPath, fs.constants.O_WRONLY | fs.constants.O_CREAT | fs.constants.O_EXCL, 0o600);
63
+ }
64
+ catch (error) {
65
+ removeCreatedParent(parent, createdParent);
66
+ if (error.code === "EEXIST")
67
+ throw manualRecovery(lockPath);
68
+ throw error;
69
+ }
70
+ try {
71
+ fs.writeFileSync(fd, `${JSON.stringify({ token })}\n`);
72
+ fs.fsyncSync(fd);
73
+ }
74
+ finally {
75
+ fs.closeSync(fd);
76
+ }
77
+ return { domain, path: lockPath, token, createdParent };
78
+ }
79
+ export function releaseUpgradeLock(lock) {
80
+ const record = lockRecord(lock.path);
81
+ if (!record || record.token !== lock.token)
82
+ throw manualRecovery(lock.path);
83
+ fs.unlinkSync(lock.path);
84
+ removeCreatedParent(path.dirname(lock.path), lock.createdParent);
85
+ }
@@ -1,16 +1,22 @@
1
1
  import os from "node:os";
2
+ import path from "node:path";
2
3
  import { expanduser, resolvePath } from "../core/paths.js";
3
4
  import { resolveDoctorInstallRoot, resolveSourceRootStrict } from "./appModel.js";
4
- import { MAJOR_BOUNDARY_ITEM_TAG, STATUS_APPLIED, STATUS_MANUAL_REVIEW_NEEDED, STATUS_NO_CHANGES_NEEDED, STATUS_READY_TO_APPLY, UPGRADE_PREVIEW_SCHEMA, classifyInstall, crossMajorBoundaryApplies, previewCrossMajorGuard, } from "./compatibility.js";
5
+ import { MAJOR_BOUNDARY_ITEM_TAG, STATUS_APPLIED, STATUS_MANUAL_REVIEW_NEEDED, STATUS_NO_CHANGES_NEEDED, STATUS_READY_TO_APPLY, UPGRADE_PREVIEW_SCHEMA, classifyInstall, crossMajorBoundaryApplies, } from "./compatibility.js";
5
6
  import { classifyUpgradeOutcome, isBlockedUpgradeOutcome, shouldIncludeCrossMajorPlanItems, } from "./versionResolution.js";
6
- import { resolveUpdateChannel } from "./channels.js";
7
+ import { resolveInvokedUpdateChannel } from "./channels.js";
7
8
  import { buildUpgradeCommands } from "./upgradeCommands.js";
8
9
  import { pendingRuntimeMigrationItems } from "./projectIntegration.js";
9
- import { MIGRATION_STATUSES, applyMigrationPhases, detectV1ArtifactPairs, dryRunMigration, } from "./migrateArtifactsV2ToV3.js";
10
+ import { REMOVE_LEGACY_AGENT_ACTION, planLegacyAgentCleanupItems, planLegacyCapabilityAgentCleanupItems, } from "./legacyAgentCleanup.js";
11
+ import { MIGRATION_STATUSES, applyMigrationPhases, delegatePlanLifecycleToEntityCutover, dryRunMigration, hasPendingPlanLifecycleMigration, } from "./migrateArtifactsV2ToV3.js";
12
+ import { runLifecycleUpgrade, } from "./lifecycleUpgrade.js";
13
+ import { acquireUpgradeLock, releaseUpgradeLock } from "./upgradeLock.js";
14
+ import { applyPreparedEntityCutover, inspectEntityCutoverForUpgrade, prepareEntityCutoverForUpgrade, } from "../state/entityCutover.js";
15
+ import { detectStateMode } from "../state/stateMode.js";
10
16
  const DEFAULT_PHASES = ["detect", "artifacts", "runtime", "cleanup"];
11
17
  const MIGRATION_ONLY_PHASES = ["artifacts", "runtime", "cleanup"];
12
18
  function emptySummary() {
13
- return { pending: 0, applied: 0, noop: 0, blocked: 0, failed: 0, skipped: 0 };
19
+ return { pending: 0, applied: 0, noop: 0, blocked: 0, failed: 0 };
14
20
  }
15
21
  function aggregateSummary(phases) {
16
22
  const summary = emptySummary();
@@ -30,8 +36,6 @@ function workflowStatus(summary) {
30
36
  return "pending";
31
37
  if (summary.applied > 0)
32
38
  return "applied";
33
- if (summary.skipped > 0 && summary.noop === 0 && summary.applied === 0)
34
- return "skipped";
35
39
  return "noop";
36
40
  }
37
41
  function lifecycleStatusFromWorkflow(workflow, mode) {
@@ -41,7 +45,6 @@ function lifecycleStatusFromWorkflow(workflow, mode) {
41
45
  case "applied":
42
46
  return STATUS_APPLIED;
43
47
  case "noop":
44
- case "skipped":
45
48
  return STATUS_NO_CHANGES_NEEDED;
46
49
  case "blocked":
47
50
  case "failed":
@@ -76,8 +79,6 @@ function summarizeOrchestratorPhase(name, items, message = "") {
76
79
  status = "pending";
77
80
  else if (summary.applied > 0)
78
81
  status = "applied";
79
- else if (summary.skipped > 0 && summary.noop === 0 && summary.applied === 0)
80
- status = "skipped";
81
82
  else
82
83
  status = "noop";
83
84
  return { name, status, summary, items, message };
@@ -123,13 +124,120 @@ function migrationPhaseToOrchestrator(phase) {
123
124
  message: phase.message,
124
125
  };
125
126
  }
127
+ function entityReadinessPhase(project, sourceRoot, selected, apply, activeUpgradeLockPaths) {
128
+ try {
129
+ const cutover = inspectEntityCutoverForUpgrade(project, sourceRoot, apply && selected, activeUpgradeLockPaths);
130
+ if (cutover.phase === "active") {
131
+ return summarizeOrchestratorPhase("entities", [{
132
+ status: "noop",
133
+ action: "entity-state-active",
134
+ message: "validated entity authority is already active",
135
+ }]);
136
+ }
137
+ if (cutover.phase !== "ready") {
138
+ if (!selected) {
139
+ return summarizeOrchestratorPhase("entities", [{
140
+ status: "blocked",
141
+ action: "entity-cutover-required",
142
+ message: "a forward entity cutover must complete inside one full upgrade before any filtered effects",
143
+ }]);
144
+ }
145
+ return summarizeOrchestratorPhase("entities", [{
146
+ status: "pending",
147
+ action: "entity-cutover",
148
+ message: "validated forward entity publication is ready to complete without deleting canonical entities",
149
+ }]);
150
+ }
151
+ if (!selected) {
152
+ return summarizeOrchestratorPhase("entities", [{
153
+ status: "blocked",
154
+ action: "entity-cutover-required",
155
+ message: "marker-absent projects require one full cross-major upgrade; filtered apply is unavailable",
156
+ }]);
157
+ }
158
+ const empty = cutover.entityCount === 0;
159
+ return summarizeOrchestratorPhase("entities", [{
160
+ status: empty ? "blocked" : "pending",
161
+ action: empty ? "unsupported-state-source" : "entity-cutover",
162
+ message: empty
163
+ ? "marker-absent state has no recognized v2 entity input; preserve it and follow the manual source recovery instructions in UPGRADE.md"
164
+ : `${cutover.entityCount} entity record(s) are ready for marker-last Git cutover${cutover.todoReconciliation ? "; apply also journals TODO visible IDs, Markdown-owned public baselines, activation, canonical Markdown, and the authority marker" : ""}`,
165
+ }]);
166
+ }
167
+ catch (error) {
168
+ return summarizeOrchestratorPhase("entities", [{
169
+ status: "blocked",
170
+ action: "validate-entity-state",
171
+ message: error.message,
172
+ }]);
173
+ }
174
+ }
175
+ function lifecyclePhase(result) {
176
+ const cleanup = result.cleanupSummary;
177
+ const summary = {
178
+ pending: cleanup.pending,
179
+ applied: cleanup.applied,
180
+ noop: cleanup.noop,
181
+ failed: cleanup.failed,
182
+ blocked: cleanup.blocked_unowned + cleanup.skipped_dependency + cleanup.action_required,
183
+ };
184
+ return {
185
+ name: "lifecycle",
186
+ status: workflowStatus(summary),
187
+ summary,
188
+ items: [],
189
+ message: "summary only; selected native Agentera resource cleanup outcomes are reported under lifecycle.nativeResourceCleanup",
190
+ };
191
+ }
192
+ function isIndependentLegacyAgentCollision(phase, item) {
193
+ return phase.name === "cleanup" && item.action === REMOVE_LEGACY_AGENT_ACTION && item.status === "blocked";
194
+ }
126
195
  export function buildUpgradePlan(args) {
127
- const sourceRoot = resolveSourceRootStrict();
196
+ if (args.runtime) {
197
+ throw new Error(`--runtime ${args.runtime} is retired; use the shared skill at ~/.agents/skills/agentera plus the CLI and remove --runtime`);
198
+ }
128
199
  const home = resolvePath(expanduser(args.home ?? os.homedir()));
129
- const env = { ...process.env, HOME: home };
130
200
  const project = resolvePath(expanduser(args.project ?? process.cwd()));
201
+ if (!args.yes)
202
+ return buildUpgradePlanUnlocked(args, home, project, []);
203
+ const projectLock = acquireUpgradeLock(project, "project");
204
+ try {
205
+ const runtimeLock = acquireUpgradeLock(home, "runtime");
206
+ try {
207
+ return buildUpgradePlanUnlocked(args, home, project, [projectLock.path, runtimeLock.path]);
208
+ }
209
+ finally {
210
+ releaseUpgradeLock(runtimeLock);
211
+ }
212
+ }
213
+ finally {
214
+ releaseUpgradeLock(projectLock);
215
+ }
216
+ }
217
+ function buildUpgradePlanUnlocked(args, home, project, activeUpgradeLockPaths) {
218
+ const sourceRoot = resolveSourceRootStrict();
219
+ const homeScopedPath = (value) => {
220
+ if (!value)
221
+ return null;
222
+ // Relative overrides retain their normal process-cwd meaning before the
223
+ // resolved path is checked. The home itself and its descendants are valid.
224
+ const resolved = resolvePath(value);
225
+ const relative = path.relative(home, resolved);
226
+ const withinHome = relative === ""
227
+ || (relative !== ".." && !relative.startsWith(`..${path.sep}`) && !path.isAbsolute(relative));
228
+ return withinHome ? resolved : null;
229
+ };
230
+ const xdgConfigHome = homeScopedPath(process.env.XDG_CONFIG_HOME) ?? path.join(home, ".config");
231
+ const env = {
232
+ ...process.env,
233
+ HOME: home,
234
+ XDG_CONFIG_HOME: xdgConfigHome,
235
+ };
236
+ if (!homeScopedPath(process.env.OPENCODE_CONFIG_DIR)) {
237
+ delete env.OPENCODE_CONFIG_DIR;
238
+ }
131
239
  const [installRoot] = resolveDoctorInstallRoot(args.installRoot ?? null, { home, sourceRoot });
132
- const channel = resolveUpdateChannel({
240
+ const channel = resolveInvokedUpdateChannel({
133
241
  channel: args.channel ?? null,
134
242
  env,
135
243
  home,
@@ -143,6 +251,42 @@ export function buildUpgradePlan(args) {
143
251
  channel,
144
252
  });
145
253
  const crossMajorBoundary = crossMajorBoundaryApplies(install, sourceRoot);
254
+ if (args.legacyCleanup) {
255
+ const lifecycle = runLifecycleUpgrade({
256
+ home,
257
+ appHome: installRoot,
258
+ apply: Boolean(args.yes),
259
+ resourceCleanup: args.legacyCleanup,
260
+ });
261
+ const phases = [lifecyclePhase(lifecycle)];
262
+ const summary = aggregateSummary(phases);
263
+ const status = workflowStatus(summary);
264
+ const commands = buildUpgradeCommands({
265
+ project,
266
+ installRoot: crossMajorBoundary ? installRoot : null,
267
+ channel,
268
+ legacyCleanup: args.legacyCleanup,
269
+ cwdDefault: true,
270
+ });
271
+ return {
272
+ schemaVersion: UPGRADE_PREVIEW_SCHEMA,
273
+ mode: args.yes ? "apply" : "plan",
274
+ status,
275
+ lifecycleStatus: lifecycleStatusFromWorkflow(status, args.yes ? "apply" : "plan"),
276
+ channel,
277
+ install,
278
+ upgradeOutcome,
279
+ crossMajorBoundary,
280
+ project,
281
+ appHome: installRoot,
282
+ home,
283
+ phases,
284
+ lifecycle,
285
+ summary,
286
+ dryRunCommand: summary.pending > 0 ? commands.dryRunCommand : null,
287
+ applyCommand: summary.pending > 0 ? commands.applyCommand : null,
288
+ };
289
+ }
146
290
  const phaseFilter = selectedPhases(args.only);
147
291
  const migrationCtx = {
148
292
  appHome: installRoot,
@@ -152,23 +296,77 @@ export function buildUpgradePlan(args) {
152
296
  sourceRoot,
153
297
  channel: args.channel ?? null,
154
298
  env,
299
+ installAppContentIfMissing: false,
155
300
  };
156
301
  const pendingRuntimeSync = pendingRuntimeMigrationItems(migrationCtx).length > 0;
157
- const pendingV1Artifacts = detectV1ArtifactPairs(project).length > 0;
302
+ const pendingPlanLifecycleMigration = hasPendingPlanLifecycleMigration(project);
158
303
  const crossMajorMigration = crossMajorBoundary && shouldIncludeCrossMajorPlanItems(channel, upgradeOutcome);
159
- const runMigration = crossMajorMigration || pendingRuntimeSync || pendingV1Artifacts;
304
+ const entityAuthorityActive = detectStateMode(project, sourceRoot) === "entities";
305
+ const projectEntityCutover = !entityAuthorityActive
306
+ && channel.distributionMajor >= 3
307
+ && !args.only
308
+ && !args.legacyCleanup;
309
+ const pendingCleanup = [
310
+ ...planLegacyAgentCleanupItems(migrationCtx),
311
+ ...planLegacyCapabilityAgentCleanupItems(migrationCtx),
312
+ ].some((item) => item.status !== "noop");
313
+ const runMigration = crossMajorMigration || projectEntityCutover || pendingRuntimeSync || pendingPlanLifecycleMigration || pendingCleanup;
160
314
  const phases = [];
161
315
  if (phaseFilter.has("detect")) {
162
316
  phases.push(buildDetectPhase(install, crossMajorBoundary, upgradeOutcome, channel));
163
317
  }
164
318
  let migrationPreview = runMigration ? dryRunMigration(migrationCtx) : null;
165
- if (args.yes && migrationPreview) {
166
- migrationPreview = applyMigrationPhases(migrationCtx, migrationPreview, args.only ?? MIGRATION_ONLY_PHASES);
319
+ const entityBoundary = projectEntityCutover || crossMajorMigration;
320
+ const filteredEntityBoundary = entityBoundary && Boolean(args.only && args.only.length > 0);
321
+ const entitySelected = entityBoundary && (!filteredEntityBoundary || (!args.yes && Boolean(args.only?.includes("artifacts"))));
322
+ const partialStateApply = filteredEntityBoundary && !entitySelected;
323
+ let entityPhase = entitySelected || partialStateApply || (entityAuthorityActive && crossMajorMigration)
324
+ ? entityReadinessPhase(project, sourceRoot, entitySelected, Boolean(args.yes), activeUpgradeLockPaths)
325
+ : null;
326
+ const entityCutoverPending = entityPhase?.items.some(({ action }) => action === "entity-cutover") ?? false;
327
+ if (migrationPreview && (entityAuthorityActive || (args.yes && entityCutoverPending))) {
328
+ delegatePlanLifecycleToEntityCutover(migrationPreview.artifacts);
329
+ }
330
+ const lifecycleArgs = {
331
+ home,
332
+ appHome: installRoot,
333
+ apply: false,
334
+ resourceCleanup: "opencode.plugin.agentera",
335
+ automaticRetirement: true,
336
+ };
337
+ let lifecycle = runLifecycleUpgrade(lifecycleArgs);
338
+ const plannedPhases = [
339
+ ...phases,
340
+ ...(migrationPreview && phaseFilter.has("artifacts") ? [migrationPhaseToOrchestrator(migrationPreview.artifacts)] : []),
341
+ ...(entityPhase ? [entityPhase] : []),
342
+ ...(migrationPreview && phaseFilter.has("runtime") ? [migrationPhaseToOrchestrator(migrationPreview.runtime)] : []),
343
+ ...(migrationPreview && phaseFilter.has("cleanup") ? [migrationPhaseToOrchestrator(migrationPreview.cleanup)] : []),
344
+ ...(lifecycle ? [lifecyclePhase(lifecycle)] : []),
345
+ ];
346
+ const entityPreflight = aggregateSummary(plannedPhases.filter((phase) => ["detect", "artifacts", "entities"].includes(phase.name)));
347
+ const entityPreflightBlocked = entityPreflight.blocked > 0 || entityPreflight.failed > 0;
348
+ let preparedEntityMigration = null;
349
+ if (args.yes && entitySelected && entityPhase?.status === "pending" && !entityPreflightBlocked) {
350
+ preparedEntityMigration = prepareEntityCutoverForUpgrade(project, sourceRoot, activeUpgradeLockPaths);
351
+ }
352
+ if (preparedEntityMigration) {
353
+ const result = applyPreparedEntityCutover(preparedEntityMigration, activeUpgradeLockPaths);
354
+ entityPhase = summarizeOrchestratorPhase("entities", [{
355
+ status: "applied",
356
+ action: "entity-cutover",
357
+ message: `${result.entity_count} entity record(s) published and validated; authority marker written last`,
358
+ }]);
359
+ }
360
+ if (args.yes && migrationPreview && !entityPreflightBlocked) {
361
+ const applyPhases = args.only ?? MIGRATION_ONLY_PHASES;
362
+ migrationPreview = applyMigrationPhases(migrationCtx, migrationPreview, applyPhases);
167
363
  }
168
364
  if (migrationPreview) {
169
365
  if (phaseFilter.has("artifacts")) {
170
366
  phases.push(migrationPhaseToOrchestrator(migrationPreview.artifacts));
171
367
  }
368
+ if (entityPhase)
369
+ phases.push(entityPhase);
172
370
  if (phaseFilter.has("runtime")) {
173
371
  phases.push(migrationPhaseToOrchestrator(migrationPreview.runtime));
174
372
  }
@@ -176,43 +374,27 @@ export function buildUpgradePlan(args) {
176
374
  phases.push(migrationPhaseToOrchestrator(migrationPreview.cleanup));
177
375
  }
178
376
  }
179
- else if (crossMajorBoundary) {
180
- const guard = previewCrossMajorGuard({
181
- appHome: installRoot,
182
- sourceRoot,
183
- channel: args.channel ?? null,
184
- env,
185
- home,
186
- catalog: null,
187
- });
188
- for (const guardPhase of guard.phases) {
189
- if (guardPhase.name === "detect" || !phaseFilter.has(guardPhase.name)) {
190
- continue;
191
- }
192
- const items = guardPhase.items.map((item) => ({
193
- status: "blocked",
194
- action: item.verb,
195
- message: `${item.name} requires semver forward-major confirmation on the selected channel`,
196
- }));
197
- phases.push({
198
- name: guardPhase.name,
199
- status: items.length > 0 ? "blocked" : "noop",
200
- summary: { ...emptySummary(), blocked: items.length },
201
- items,
202
- message: "",
203
- });
204
- }
377
+ if (!migrationPreview && entityPhase)
378
+ phases.push(entityPhase);
379
+ if (lifecycleArgs && args.yes && !entityPreflightBlocked) {
380
+ lifecycle = runLifecycleUpgrade({ ...lifecycleArgs, apply: true });
381
+ }
382
+ if (lifecycle) {
383
+ phases.push(lifecyclePhase(lifecycle));
205
384
  }
206
385
  const summary = aggregateSummary(phases);
207
386
  const status = workflowStatus(summary);
387
+ const appSummary = aggregateSummary(phases.filter((phase) => phase.name !== "lifecycle"));
388
+ const appApplyBlocked = appSummary.blocked > 0 || appSummary.failed > 0;
208
389
  const mode = args.yes ? "apply" : "plan";
209
390
  const lifecycleStatus = lifecycleStatusFromWorkflow(status, mode);
210
- const blocked = status === "blocked" || status === "failed";
391
+ const hasPending = summary.pending > 0;
211
392
  const commands = buildUpgradeCommands({
212
393
  project,
213
394
  installRoot: crossMajorMigration || crossMajorBoundary ? installRoot : null,
214
395
  channel,
215
396
  only: args.only,
397
+ legacyCleanup: args.legacyCleanup,
216
398
  cwdDefault: true,
217
399
  });
218
400
  return {
@@ -228,9 +410,10 @@ export function buildUpgradePlan(args) {
228
410
  appHome: installRoot,
229
411
  home,
230
412
  phases,
413
+ lifecycle,
231
414
  summary,
232
- dryRunCommand: blocked || lifecycleStatus === STATUS_NO_CHANGES_NEEDED ? null : commands.dryRunCommand,
233
- applyCommand: blocked || lifecycleStatus === STATUS_NO_CHANGES_NEEDED ? null : commands.applyCommand,
415
+ dryRunCommand: appApplyBlocked || !hasPending ? null : commands.dryRunCommand,
416
+ applyCommand: appApplyBlocked || !hasPending ? null : commands.applyCommand,
234
417
  };
235
418
  }
236
419
  export function validateUpgradeApply(args, plan) {
@@ -240,10 +423,25 @@ export function validateUpgradeApply(args, plan) {
240
423
  if (!args.yes) {
241
424
  return null;
242
425
  }
243
- if (isBlockedUpgradeOutcome(plan.upgradeOutcome)) {
426
+ if (plan.crossMajorBoundary && args.only && args.only.length > 0) {
427
+ return "cross-major v2→v3 apply must run as one full upgrade --yes; --only is preview-only at this boundary";
428
+ }
429
+ if (!args.legacyCleanup && isBlockedUpgradeOutcome(plan.upgradeOutcome)) {
244
430
  return plan.upgradeOutcome.message ?? "upgrade blocked";
245
431
  }
246
- if (plan.crossMajorBoundary &&
432
+ const appPhases = plan.phases.filter((phase) => phase.name !== "lifecycle");
433
+ const entityImportPending = appPhases.some((phase) => phase.name === "entities" && phase.items.some((item) => item.action === "entity-cutover" && item.status === "pending"));
434
+ const applyBlockingPhases = entityImportPending
435
+ ? appPhases.filter((phase) => ["detect", "artifacts", "entities"].includes(phase.name))
436
+ : appPhases;
437
+ const blockingItems = applyBlockingPhases.flatMap((phase) => phase.items.filter((item) => (item.status === "blocked" || item.status === "failed") && !isIndependentLegacyAgentCollision(phase, item)));
438
+ if (blockingItems.length > 0) {
439
+ return blockingItems[0]?.message
440
+ ?? "upgrade preflight is blocked; no changes were applied";
441
+ }
442
+ if (!args.legacyCleanup
443
+ &&
444
+ plan.crossMajorBoundary &&
247
445
  !shouldIncludeCrossMajorPlanItems(plan.channel, plan.upgradeOutcome)) {
248
446
  return ("cross-major v2→v3 migration requires the development channel while stable tracks 2.x; " +
249
447
  "run the same command with --dry-run on --channel development, then apply with --yes");
@@ -279,6 +477,18 @@ export function renderUpgradePlan(plan) {
279
477
  }
280
478
  }
281
479
  }
480
+ if (plan.lifecycle) {
481
+ lines.push("");
482
+ lines.push("native Agentera resource cleanup:");
483
+ lines.push(` ownership journal: ${plan.lifecycle.ownershipJournal.state} at ${plan.lifecycle.ownershipJournal.path}`);
484
+ lines.push(` secure publication: ${plan.lifecycle.platform.securePublication ? "available" : "unavailable"} (${plan.lifecycle.platform.requirement})`);
485
+ lines.push(` scope: ownership-proven native Agentera resource ${plan.lifecycle.nativeResourceCleanup.resourceId}; unrelated user-owned data excluded`);
486
+ const cleanup = plan.lifecycle.cleanupSummary;
487
+ lines.push(` counts: pending=${cleanup.pending}, applied=${cleanup.applied}, noop=${cleanup.noop}, blocked=${cleanup.blocked_unowned + cleanup.action_required}`);
488
+ if (cleanup.applied > 0 && plan.lifecycle.nativeResourceCleanup.resourceId === "opencode.plugin.agentera") {
489
+ lines.push(" Next: restart OpenCode to finish removing the retired plugin.");
490
+ }
491
+ }
282
492
  if (plan.mode === "plan" && plan.summary.pending > 0 && plan.applyCommand) {
283
493
  lines.push("");
284
494
  lines.push(`Next: if this preview looks right, apply with: ${plan.applyCommand}`);
@@ -308,4 +518,3 @@ export function sortKeysDeep(value) {
308
518
  return value;
309
519
  }
310
520
  export { MAJOR_BOUNDARY_ITEM_TAG };
311
- //# sourceMappingURL=upgradeOrchestrator.js.map
@@ -5,11 +5,10 @@ const INSTRUCTION_MODULE_ROOT = path.join("packages", "cli", "src", "capabilitie
5
5
  /**
6
6
  * v3 repo signal (D65): all twelve capability instruction modules live under
7
7
  * packages/cli/src/capabilities/<name>/instructions.ts. When present, in-tree
8
- * .cursor/agents/ uses prime --context and must not be overwritten by upgrade
9
- * copy-agent from a v2 app-home bundle.
8
+ * .cursor/agents/ uses prime --context and must not be overwritten from a v2
9
+ * app-home bundle during runtime rewiring.
10
10
  */
11
11
  export function projectUsesV3CapabilityInstructionModules(projectRoot) {
12
12
  const root = path.resolve(projectRoot);
13
13
  return Object.keys(CAPABILITY_INSTRUCTIONS).every((name) => isFile(path.join(root, INSTRUCTION_MODULE_ROOT, name, "instructions.ts")));
14
14
  }
15
- //# sourceMappingURL=v3CapabilitySurface.js.map
@@ -184,4 +184,3 @@ export function isBlockedUpgradeOutcome(outcome) {
184
184
  return (outcome.kind === "blocked_downgrade_to_v2" ||
185
185
  outcome.kind === "blocked_downgrade_not_implemented");
186
186
  }
187
- //# sourceMappingURL=versionResolution.js.map