agentera 3.0.0-dev.8 → 3.0.0-dev.80

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 (724) 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 +1387 -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 +271 -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 +333 -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 +261 -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 +3065 -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 +118 -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 +503 -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 +899 -0
  356. package/dist/state/exactReplacementRecovery.js +18 -0
  357. package/dist/state/experimentArchive.js +63 -0
  358. package/dist/state/experimentIdentity.js +202 -0
  359. package/dist/state/healthEntities.js +262 -0
  360. package/dist/state/healthEntityValidation.js +18 -0
  361. package/dist/state/healthRepair.js +69 -0
  362. package/dist/state/installRoot.js +15 -7
  363. package/dist/state/legacyEntityCutoverEvidence.js +65 -0
  364. package/dist/state/legacyIdentity.js +47 -0
  365. package/dist/state/legacySummaryRecord.js +6 -0
  366. package/dist/state/listAccounting.js +54 -0
  367. package/dist/state/listClassification.js +17 -0
  368. package/dist/state/listCursor.js +42 -0
  369. package/dist/state/listRetrieval.js +781 -0
  370. package/dist/state/migrationSourceBinding.js +30 -0
  371. package/dist/state/objectiveExperimentEntities.js +322 -0
  372. package/dist/state/planEntities.js +1027 -0
  373. package/dist/state/planIdentity.js +47 -0
  374. package/dist/state/planLineageValidation.js +52 -0
  375. package/dist/state/planReplacementTransaction.js +475 -0
  376. package/dist/state/planRetrieval.js +313 -0
  377. package/dist/state/planTaskRetrieval.js +294 -0
  378. package/dist/state/progressEntities.js +512 -0
  379. package/dist/state/progressGlossaryCaveat.js +168 -0
  380. package/dist/state/progressPublicationOrder.js +19 -0
  381. package/dist/state/progressWritePolicy.js +33 -0
  382. package/dist/state/projectRoot.js +62 -0
  383. package/dist/state/projectionPolicy.js +190 -0
  384. package/dist/state/retrievalAuthority.js +156 -0
  385. package/dist/state/safeProjectFile.js +155 -0
  386. package/dist/state/startupAnalysis/benchmark.js +70 -9
  387. package/dist/state/startupAnalysis/contract.js +44 -10
  388. package/dist/state/startupAnalysis/helpers.js +1 -2
  389. package/dist/state/startupAnalysis/index.js +0 -1
  390. package/dist/state/startupAnalysis/metrics.js +0 -1
  391. package/dist/state/startupAnalysis/records.js +0 -1
  392. package/dist/state/startupAnalysis/report.js +0 -1
  393. package/dist/state/startupAnalysis/threshold.js +13 -1
  394. package/dist/state/startupAnalysis.js +0 -1
  395. package/dist/state/startupProjection.js +499 -0
  396. package/dist/state/stateMode.js +222 -0
  397. package/dist/state/stateStorageAuthority.js +47 -0
  398. package/dist/state/summaryEntityRead.js +25 -0
  399. package/dist/state/summaryMigrationProvenance.js +66 -0
  400. package/dist/state/summarySourceRowAuthority.js +36 -0
  401. package/dist/state/todoActivationSafety.js +58 -0
  402. package/dist/state/todoCreateBatch.js +69 -0
  403. package/dist/state/todoDocsEntities.js +1339 -0
  404. package/dist/state/todoDocsEntityValidation.js +158 -0
  405. package/dist/state/todoMarkdownProjection.js +63 -0
  406. package/dist/state/todoReconciliationActivation.js +182 -0
  407. package/dist/state/todoReconciliationInspection.js +184 -0
  408. package/dist/state/todoReconciliationRepair.js +320 -0
  409. package/dist/state/todoReconciliationTransaction.js +628 -0
  410. package/dist/state/todoSeverityHeadings.js +71 -0
  411. package/dist/state/todoTransitionBatch.js +65 -0
  412. package/dist/state/todoUpdateBatch.js +50 -0
  413. package/dist/state/write/assign.js +20 -0
  414. package/dist/state/write/candidateMutation.js +269 -0
  415. package/dist/state/write/errors.js +11 -0
  416. package/dist/state/write/experimentPublication.js +192 -0
  417. package/dist/state/write/explain.js +380 -0
  418. package/dist/state/write/fields.js +61 -0
  419. package/dist/state/write/glossaryPublication.js +263 -0
  420. package/dist/state/write/grammar.js +285 -0
  421. package/dist/state/write/helpers.js +29 -0
  422. package/dist/state/write/index.js +12 -0
  423. package/dist/state/write/input.js +391 -0
  424. package/dist/state/write/lock.js +837 -0
  425. package/dist/state/write/mutation.js +234 -0
  426. package/dist/state/write/operations.js +170 -0
  427. package/dist/state/write/planEvaluation.js +128 -0
  428. package/dist/state/write/planPublication.js +179 -0
  429. package/dist/state/write/runtimeOperations.js +146 -0
  430. package/dist/state/write/serialize.js +1 -0
  431. package/dist/state/write/transaction.js +57 -0
  432. package/dist/state/write/validate.js +7 -0
  433. package/dist/upgrade/appContentRefresh.js +77 -36
  434. package/dist/upgrade/appModel.js +0 -1
  435. package/dist/upgrade/atomicWriter.js +1 -0
  436. package/dist/upgrade/bundleEvidence.js +0 -1
  437. package/dist/upgrade/channels.js +6 -9
  438. package/dist/upgrade/compatibility.js +43 -17
  439. package/dist/upgrade/doctor.js +55 -32
  440. package/dist/upgrade/doctorClassifier.js +11 -1
  441. package/dist/upgrade/installedHooksRetirement.js +46 -40
  442. package/dist/upgrade/legacyAgentCleanup.js +133 -34
  443. package/dist/upgrade/lifecycleUpgrade.js +113 -0
  444. package/dist/upgrade/migrateArtifactsV2ToV3.js +325 -82
  445. package/dist/upgrade/migrationPublication.js +122 -0
  446. package/dist/upgrade/nextMajorDoctor.js +0 -22
  447. package/dist/upgrade/npxPlatformStatus.js +2 -2
  448. package/dist/upgrade/productV1Reset.js +515 -0
  449. package/dist/upgrade/productV1ResetAuthority.js +139 -0
  450. package/dist/upgrade/projectIntegration.js +126 -134
  451. package/dist/upgrade/projectIntegrationDecision.js +21 -13
  452. package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
  453. package/dist/upgrade/runtimeMigration.js +210 -430
  454. package/dist/upgrade/upgradeCommands.js +14 -1
  455. package/dist/upgrade/upgradeLock.js +85 -0
  456. package/dist/upgrade/upgradeOrchestrator.js +253 -48
  457. package/dist/upgrade/v3CapabilitySurface.js +2 -3
  458. package/dist/upgrade/versionResolution.js +0 -1
  459. package/dist/validate/activationArtifactEvidence.js +866 -0
  460. package/dist/validate/activationArtifactEvidenceTypes.js +12 -0
  461. package/dist/validate/activationConjunction.js +816 -0
  462. package/dist/validate/activationEvidenceManifest.js +610 -0
  463. package/dist/validate/activationPackageSemantics.js +29 -0
  464. package/dist/validate/appHomeContract.js +1 -7
  465. package/dist/validate/bootstrapAuthority.js +44 -0
  466. package/dist/validate/capability.js +11 -3
  467. package/dist/validate/crossCapability.js +14 -9
  468. package/dist/validate/glossaryVariantGuard.js +96 -0
  469. package/dist/validate/retainedReferenceAuthority.js +879 -0
  470. package/dist/validate/selfAudit.js +39 -45
  471. package/dist/validate/vocabularyAuthority.js +8 -8
  472. package/package.json +39 -13
  473. package/bundle/references/adapters/cursor.md +0 -214
  474. package/bundle/references/adapters/opencode.md +0 -530
  475. package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
  476. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  477. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  478. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -554
  479. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  480. package/bundle/references/analysis/benchmark.md +0 -267
  481. package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
  482. package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
  483. package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -369
  484. package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -250
  485. package/bundle/references/cli/capability-tool-classification.yaml +0 -53
  486. package/bundle/references/cli/coexistence-probe.yaml +0 -13
  487. package/bundle/references/cli/parity-expected-actual-template.md +0 -30
  488. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
  489. package/bundle/references/cli/single-name-protocol.yaml +0 -42
  490. package/bundle/references/cli/upgrade-repair-wording.md +0 -45
  491. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +0 -98
  492. package/bundle/references/meta/documentation-inventory.md +0 -49
  493. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  494. package/bundle/skills/agentera/agents/audit.toml +0 -6
  495. package/bundle/skills/agentera/agents/build.toml +0 -6
  496. package/bundle/skills/agentera/agents/design.toml +0 -6
  497. package/bundle/skills/agentera/agents/discuss.toml +0 -6
  498. package/bundle/skills/agentera/agents/document.toml +0 -6
  499. package/bundle/skills/agentera/agents/optimize.toml +0 -6
  500. package/bundle/skills/agentera/agents/orchestrate.toml +0 -6
  501. package/bundle/skills/agentera/agents/plan.toml +0 -6
  502. package/bundle/skills/agentera/agents/profile.toml +0 -6
  503. package/bundle/skills/agentera/agents/research.toml +0 -6
  504. package/bundle/skills/agentera/agents/status.toml +0 -6
  505. package/bundle/skills/agentera/agents/vision.toml +0 -6
  506. package/bundle/skills/agentera/references/contract.md +0 -1048
  507. package/dist/analytics/extractCorpus/cli.js.map +0 -1
  508. package/dist/analytics/extractCorpus/copilotSessions.js.map +0 -1
  509. package/dist/analytics/extractCorpus/core.js.map +0 -1
  510. package/dist/analytics/extractCorpus/corpus.js.map +0 -1
  511. package/dist/analytics/extractCorpus/coverageAudit.js.map +0 -1
  512. package/dist/analytics/extractCorpus/cursorSessions.js.map +0 -1
  513. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +0 -1
  514. package/dist/analytics/extractCorpus/filesystemSources.js.map +0 -1
  515. package/dist/analytics/extractCorpus/index.js.map +0 -1
  516. package/dist/analytics/extractCorpus/jsonlSessions.js.map +0 -1
  517. package/dist/analytics/extractCorpus/sqliteCaps.js.map +0 -1
  518. package/dist/analytics/extractCorpus/sqliteSessions.js.map +0 -1
  519. package/dist/analytics/extractCorpus.js.map +0 -1
  520. package/dist/analytics/usageStats.js.map +0 -1
  521. package/dist/bin/agentera.js.map +0 -1
  522. package/dist/capabilities/audit/instructions.js.map +0 -1
  523. package/dist/capabilities/build/instructions.js.map +0 -1
  524. package/dist/capabilities/design/instructions.js.map +0 -1
  525. package/dist/capabilities/discuss/instructions.js.map +0 -1
  526. package/dist/capabilities/document/instructions.js.map +0 -1
  527. package/dist/capabilities/index.js.map +0 -1
  528. package/dist/capabilities/optimize/instructions.js.map +0 -1
  529. package/dist/capabilities/orchestrate/instructions.js.map +0 -1
  530. package/dist/capabilities/plan/instructions.js.map +0 -1
  531. package/dist/capabilities/profile/instructions.js.map +0 -1
  532. package/dist/capabilities/research/instructions.js.map +0 -1
  533. package/dist/capabilities/status/instructions.js.map +0 -1
  534. package/dist/capabilities/vision/instructions.js.map +0 -1
  535. package/dist/cli/appContext.js.map +0 -1
  536. package/dist/cli/argvalidate.js.map +0 -1
  537. package/dist/cli/capabilityContext/benchmark.js.map +0 -1
  538. package/dist/cli/capabilityContext/bespoke.js.map +0 -1
  539. package/dist/cli/capabilityContext/build.js.map +0 -1
  540. package/dist/cli/capabilityContext/closeout.js.map +0 -1
  541. package/dist/cli/capabilityContext/contract.js.map +0 -1
  542. package/dist/cli/capabilityContext/evidence.js.map +0 -1
  543. package/dist/cli/capabilityContext/index.js.map +0 -1
  544. package/dist/cli/capabilityContext/orchestration.js.map +0 -1
  545. package/dist/cli/capabilityContext/planState.js.map +0 -1
  546. package/dist/cli/capabilityContext/progress.js.map +0 -1
  547. package/dist/cli/capabilityContext/shared.js.map +0 -1
  548. package/dist/cli/capabilityContext/slim.js.map +0 -1
  549. package/dist/cli/capabilityContext/startup.js.map +0 -1
  550. package/dist/cli/capabilityContext/types.js.map +0 -1
  551. package/dist/cli/capabilityContext.js.map +0 -1
  552. package/dist/cli/commands/appHome.js.map +0 -1
  553. package/dist/cli/commands/capability.js.map +0 -1
  554. package/dist/cli/commands/compact.js.map +0 -1
  555. package/dist/cli/commands/doctor.js.map +0 -1
  556. package/dist/cli/commands/lint.js.map +0 -1
  557. package/dist/cli/commands/prime/bundleStatus.js.map +0 -1
  558. package/dist/cli/commands/prime/collectOrientationState.js.map +0 -1
  559. package/dist/cli/commands/prime/orientationOutput.js.map +0 -1
  560. package/dist/cli/commands/prime/types.js.map +0 -1
  561. package/dist/cli/commands/prime/v1Migration.js +0 -39
  562. package/dist/cli/commands/prime/v1Migration.js.map +0 -1
  563. package/dist/cli/commands/prime.js.map +0 -1
  564. package/dist/cli/commands/query.js.map +0 -1
  565. package/dist/cli/commands/report.js.map +0 -1
  566. package/dist/cli/commands/schema.js.map +0 -1
  567. package/dist/cli/commands/state/decisions.js.map +0 -1
  568. package/dist/cli/commands/state/docs.js.map +0 -1
  569. package/dist/cli/commands/state/experiments.js.map +0 -1
  570. package/dist/cli/commands/state/health.js.map +0 -1
  571. package/dist/cli/commands/state/index.js.map +0 -1
  572. package/dist/cli/commands/state/objective.js.map +0 -1
  573. package/dist/cli/commands/state/plan.js.map +0 -1
  574. package/dist/cli/commands/state/progress.js.map +0 -1
  575. package/dist/cli/commands/state/shared.js.map +0 -1
  576. package/dist/cli/commands/state/todo.js.map +0 -1
  577. package/dist/cli/commands/upgrade.js.map +0 -1
  578. package/dist/cli/commands/validate.js.map +0 -1
  579. package/dist/cli/commands/verify.js.map +0 -1
  580. package/dist/cli/contracts/bundleStatus.js.map +0 -1
  581. package/dist/cli/contracts/orientationState.js.map +0 -1
  582. package/dist/cli/dispatch/argvParser.js.map +0 -1
  583. package/dist/cli/dispatch/check.js.map +0 -1
  584. package/dist/cli/dispatch/commands.js.map +0 -1
  585. package/dist/cli/dispatch/index.js.map +0 -1
  586. package/dist/cli/dispatch/lifecycle.js.map +0 -1
  587. package/dist/cli/dispatch/prime.js.map +0 -1
  588. package/dist/cli/dispatch/shared.js.map +0 -1
  589. package/dist/cli/dispatch/state.js.map +0 -1
  590. package/dist/cli/dispatch.js.map +0 -1
  591. package/dist/cli/errors.js.map +0 -1
  592. package/dist/cli/help.js.map +0 -1
  593. package/dist/cli/orientation/attention.js.map +0 -1
  594. package/dist/cli/orientation/corpusCoverage.js.map +0 -1
  595. package/dist/cli/orientation.js.map +0 -1
  596. package/dist/cli/prime-blob.js.map +0 -1
  597. package/dist/cli/startupCompletenessContract.js.map +0 -1
  598. package/dist/cli/stateQuery.js.map +0 -1
  599. package/dist/cli/structured.js.map +0 -1
  600. package/dist/cli/todoMarkdown.js.map +0 -1
  601. package/dist/cli/todoSeverity.js.map +0 -1
  602. package/dist/core/difflib.js.map +0 -1
  603. package/dist/core/envPaths.js.map +0 -1
  604. package/dist/core/jsonValue.js.map +0 -1
  605. package/dist/core/paths.js.map +0 -1
  606. package/dist/core/pyjson.js.map +0 -1
  607. package/dist/core/sourceRoot.js.map +0 -1
  608. package/dist/core/toml.js.map +0 -1
  609. package/dist/core/yaml.js.map +0 -1
  610. package/dist/eval/evalSkills.js.map +0 -1
  611. package/dist/eval/semanticEval.js.map +0 -1
  612. package/dist/eval/semanticFixtures.js.map +0 -1
  613. package/dist/hooks/common.js.map +0 -1
  614. package/dist/hooks/compaction/apply.js.map +0 -1
  615. package/dist/hooks/compaction/dryRun.js.map +0 -1
  616. package/dist/hooks/compaction/index.js.map +0 -1
  617. package/dist/hooks/compaction/parse.js.map +0 -1
  618. package/dist/hooks/compaction/retention.js.map +0 -1
  619. package/dist/hooks/compaction/status.js.map +0 -1
  620. package/dist/hooks/compaction/types.js.map +0 -1
  621. package/dist/hooks/cursorPreToolUse.js +0 -19
  622. package/dist/hooks/cursorPreToolUse.js.map +0 -1
  623. package/dist/hooks/cursorSessionStart.js +0 -79
  624. package/dist/hooks/cursorSessionStart.js.map +0 -1
  625. package/dist/hooks/sessionStart.js +0 -216
  626. package/dist/hooks/sessionStart.js.map +0 -1
  627. package/dist/hooks/sessionStop.js +0 -206
  628. package/dist/hooks/sessionStop.js.map +0 -1
  629. package/dist/hooks/validateArtifact/agentFacing.js.map +0 -1
  630. package/dist/hooks/validateArtifact/index.js.map +0 -1
  631. package/dist/hooks/validateArtifact/markdown.js.map +0 -1
  632. package/dist/hooks/validateArtifact/runtime.js +0 -86
  633. package/dist/hooks/validateArtifact/runtime.js.map +0 -1
  634. package/dist/hooks/validateArtifact/schema.js.map +0 -1
  635. package/dist/hooks/validateArtifact/traversal.js.map +0 -1
  636. package/dist/hooks/validateArtifact/violations.js.map +0 -1
  637. package/dist/migrate/v2HandoffManifest.js.map +0 -1
  638. package/dist/registries/artifactProtocolIds.js.map +0 -1
  639. package/dist/registries/artifactRegistry.js.map +0 -1
  640. package/dist/registries/capabilityContract.js.map +0 -1
  641. package/dist/registries/evaluatorHandoffContract.js.map +0 -1
  642. package/dist/registries/packageRegistry.js.map +0 -1
  643. package/dist/registries/runtimeAdapterRegistry.js +0 -316
  644. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  645. package/dist/registries/triggerLoader.js.map +0 -1
  646. package/dist/release/releaseMetadata.js.map +0 -1
  647. package/dist/setup/codex/agents.js +0 -96
  648. package/dist/setup/codex/agents.js.map +0 -1
  649. package/dist/setup/codex/cli.js +0 -161
  650. package/dist/setup/codex/cli.js.map +0 -1
  651. package/dist/setup/codex/configToml.js +0 -639
  652. package/dist/setup/codex/configToml.js.map +0 -1
  653. package/dist/setup/codex/constants.js +0 -29
  654. package/dist/setup/codex/constants.js.map +0 -1
  655. package/dist/setup/codex/installRoot.js +0 -64
  656. package/dist/setup/codex/installRoot.js.map +0 -1
  657. package/dist/setup/codex/state.js +0 -270
  658. package/dist/setup/codex/state.js.map +0 -1
  659. package/dist/setup/codex.js +0 -12
  660. package/dist/setup/codex.js.map +0 -1
  661. package/dist/setup/copilot.js +0 -227
  662. package/dist/setup/copilot.js.map +0 -1
  663. package/dist/setup/cursor.js +0 -129
  664. package/dist/setup/cursor.js.map +0 -1
  665. package/dist/setup/cursorSurfaces.js +0 -67
  666. package/dist/setup/cursorSurfaces.js.map +0 -1
  667. package/dist/setup/doctor/core.js +0 -300
  668. package/dist/setup/doctor/core.js.map +0 -1
  669. package/dist/setup/doctor/diagnostics.js +0 -240
  670. package/dist/setup/doctor/diagnostics.js.map +0 -1
  671. package/dist/setup/doctor/opencode.js +0 -313
  672. package/dist/setup/doctor/opencode.js.map +0 -1
  673. package/dist/setup/doctor/report.js +0 -425
  674. package/dist/setup/doctor/report.js.map +0 -1
  675. package/dist/setup/doctor.js +0 -10
  676. package/dist/setup/doctor.js.map +0 -1
  677. package/dist/setup/opencode.js.map +0 -1
  678. package/dist/setup/smokeChecks.js.map +0 -1
  679. package/dist/state/installRoot.js.map +0 -1
  680. package/dist/state/startupAnalysis/benchmark.js.map +0 -1
  681. package/dist/state/startupAnalysis/contract.js.map +0 -1
  682. package/dist/state/startupAnalysis/helpers.js.map +0 -1
  683. package/dist/state/startupAnalysis/index.js.map +0 -1
  684. package/dist/state/startupAnalysis/metrics.js.map +0 -1
  685. package/dist/state/startupAnalysis/records.js.map +0 -1
  686. package/dist/state/startupAnalysis/report.js.map +0 -1
  687. package/dist/state/startupAnalysis/threshold.js.map +0 -1
  688. package/dist/state/startupAnalysis.js.map +0 -1
  689. package/dist/upgrade/appContentRefresh.js.map +0 -1
  690. package/dist/upgrade/appModel.js.map +0 -1
  691. package/dist/upgrade/bundleEvidence.js.map +0 -1
  692. package/dist/upgrade/channels.js.map +0 -1
  693. package/dist/upgrade/coexistenceProbe.js +0 -107
  694. package/dist/upgrade/coexistenceProbe.js.map +0 -1
  695. package/dist/upgrade/compatibility.js.map +0 -1
  696. package/dist/upgrade/doctor.js.map +0 -1
  697. package/dist/upgrade/doctorClassifier.js.map +0 -1
  698. package/dist/upgrade/installedHooksRetirement.js.map +0 -1
  699. package/dist/upgrade/legacyAgentCleanup.js.map +0 -1
  700. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -570
  701. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  702. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
  703. package/dist/upgrade/nextMajorDoctor.js.map +0 -1
  704. package/dist/upgrade/npxPlatformStatus.js.map +0 -1
  705. package/dist/upgrade/projectIntegration.js.map +0 -1
  706. package/dist/upgrade/projectIntegrationDecision.js.map +0 -1
  707. package/dist/upgrade/runtimeMigration.js.map +0 -1
  708. package/dist/upgrade/upgradeCommands.js.map +0 -1
  709. package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
  710. package/dist/upgrade/v3CapabilitySurface.js.map +0 -1
  711. package/dist/upgrade/versionResolution.js.map +0 -1
  712. package/dist/validate/appHomeContract.js.map +0 -1
  713. package/dist/validate/capability.js.map +0 -1
  714. package/dist/validate/crossCapability.js.map +0 -1
  715. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +0 -93
  716. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +0 -1
  717. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +0 -488
  718. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +0 -1
  719. package/dist/validate/lifecycleAdapters/shared.js +0 -198
  720. package/dist/validate/lifecycleAdapters/shared.js.map +0 -1
  721. package/dist/validate/lifecycleAdapters.js +0 -62
  722. package/dist/validate/lifecycleAdapters.js.map +0 -1
  723. package/dist/validate/selfAudit.js.map +0 -1
  724. 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,76 @@ 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 = args.legacyCleanup ? {
331
+ home,
332
+ appHome: installRoot,
333
+ apply: false,
334
+ resourceCleanup: args.legacyCleanup,
335
+ } : null;
336
+ let lifecycle = lifecycleArgs ? runLifecycleUpgrade(lifecycleArgs) : null;
337
+ const plannedPhases = [
338
+ ...phases,
339
+ ...(migrationPreview && phaseFilter.has("artifacts") ? [migrationPhaseToOrchestrator(migrationPreview.artifacts)] : []),
340
+ ...(entityPhase ? [entityPhase] : []),
341
+ ...(migrationPreview && phaseFilter.has("runtime") ? [migrationPhaseToOrchestrator(migrationPreview.runtime)] : []),
342
+ ...(migrationPreview && phaseFilter.has("cleanup") ? [migrationPhaseToOrchestrator(migrationPreview.cleanup)] : []),
343
+ ...(lifecycle ? [lifecyclePhase(lifecycle)] : []),
344
+ ];
345
+ const entityPreflight = aggregateSummary(plannedPhases.filter((phase) => ["detect", "artifacts", "entities"].includes(phase.name)));
346
+ const entityPreflightBlocked = entityPreflight.blocked > 0 || entityPreflight.failed > 0;
347
+ let preparedEntityMigration = null;
348
+ if (args.yes && entitySelected && entityPhase?.status === "pending" && !entityPreflightBlocked) {
349
+ preparedEntityMigration = prepareEntityCutoverForUpgrade(project, sourceRoot, activeUpgradeLockPaths);
350
+ }
351
+ if (preparedEntityMigration) {
352
+ const result = applyPreparedEntityCutover(preparedEntityMigration, activeUpgradeLockPaths);
353
+ entityPhase = summarizeOrchestratorPhase("entities", [{
354
+ status: "applied",
355
+ action: "entity-cutover",
356
+ message: `${result.entity_count} entity record(s) published and validated; authority marker written last`,
357
+ }]);
358
+ }
359
+ if (args.yes && migrationPreview && !entityPreflightBlocked) {
360
+ const applyPhases = args.only ?? MIGRATION_ONLY_PHASES;
361
+ migrationPreview = applyMigrationPhases(migrationCtx, migrationPreview, applyPhases);
167
362
  }
168
363
  if (migrationPreview) {
169
364
  if (phaseFilter.has("artifacts")) {
170
365
  phases.push(migrationPhaseToOrchestrator(migrationPreview.artifacts));
171
366
  }
367
+ if (entityPhase)
368
+ phases.push(entityPhase);
172
369
  if (phaseFilter.has("runtime")) {
173
370
  phases.push(migrationPhaseToOrchestrator(migrationPreview.runtime));
174
371
  }
@@ -176,43 +373,27 @@ export function buildUpgradePlan(args) {
176
373
  phases.push(migrationPhaseToOrchestrator(migrationPreview.cleanup));
177
374
  }
178
375
  }
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
- }
376
+ if (!migrationPreview && entityPhase)
377
+ phases.push(entityPhase);
378
+ if (lifecycleArgs && args.yes && !entityPreflightBlocked) {
379
+ lifecycle = runLifecycleUpgrade({ ...lifecycleArgs, apply: true });
380
+ }
381
+ if (lifecycle) {
382
+ phases.push(lifecyclePhase(lifecycle));
205
383
  }
206
384
  const summary = aggregateSummary(phases);
207
385
  const status = workflowStatus(summary);
386
+ const appSummary = aggregateSummary(phases.filter((phase) => phase.name !== "lifecycle"));
387
+ const appApplyBlocked = appSummary.blocked > 0 || appSummary.failed > 0;
208
388
  const mode = args.yes ? "apply" : "plan";
209
389
  const lifecycleStatus = lifecycleStatusFromWorkflow(status, mode);
210
- const blocked = status === "blocked" || status === "failed";
390
+ const hasPending = summary.pending > 0;
211
391
  const commands = buildUpgradeCommands({
212
392
  project,
213
393
  installRoot: crossMajorMigration || crossMajorBoundary ? installRoot : null,
214
394
  channel,
215
395
  only: args.only,
396
+ legacyCleanup: args.legacyCleanup,
216
397
  cwdDefault: true,
217
398
  });
218
399
  return {
@@ -228,9 +409,10 @@ export function buildUpgradePlan(args) {
228
409
  appHome: installRoot,
229
410
  home,
230
411
  phases,
412
+ lifecycle,
231
413
  summary,
232
- dryRunCommand: blocked || lifecycleStatus === STATUS_NO_CHANGES_NEEDED ? null : commands.dryRunCommand,
233
- applyCommand: blocked || lifecycleStatus === STATUS_NO_CHANGES_NEEDED ? null : commands.applyCommand,
414
+ dryRunCommand: appApplyBlocked || !hasPending ? null : commands.dryRunCommand,
415
+ applyCommand: appApplyBlocked || !hasPending ? null : commands.applyCommand,
234
416
  };
235
417
  }
236
418
  export function validateUpgradeApply(args, plan) {
@@ -240,10 +422,25 @@ export function validateUpgradeApply(args, plan) {
240
422
  if (!args.yes) {
241
423
  return null;
242
424
  }
243
- if (isBlockedUpgradeOutcome(plan.upgradeOutcome)) {
425
+ if (plan.crossMajorBoundary && args.only && args.only.length > 0) {
426
+ return "cross-major v2→v3 apply must run as one full upgrade --yes; --only is preview-only at this boundary";
427
+ }
428
+ if (!args.legacyCleanup && isBlockedUpgradeOutcome(plan.upgradeOutcome)) {
244
429
  return plan.upgradeOutcome.message ?? "upgrade blocked";
245
430
  }
246
- if (plan.crossMajorBoundary &&
431
+ const appPhases = plan.phases.filter((phase) => phase.name !== "lifecycle");
432
+ const entityImportPending = appPhases.some((phase) => phase.name === "entities" && phase.items.some((item) => item.action === "entity-cutover" && item.status === "pending"));
433
+ const applyBlockingPhases = entityImportPending
434
+ ? appPhases.filter((phase) => ["detect", "artifacts", "entities"].includes(phase.name))
435
+ : appPhases;
436
+ const blockingItems = applyBlockingPhases.flatMap((phase) => phase.items.filter((item) => (item.status === "blocked" || item.status === "failed") && !isIndependentLegacyAgentCollision(phase, item)));
437
+ if (blockingItems.length > 0) {
438
+ return blockingItems[0]?.message
439
+ ?? "upgrade preflight is blocked; no changes were applied";
440
+ }
441
+ if (!args.legacyCleanup
442
+ &&
443
+ plan.crossMajorBoundary &&
247
444
  !shouldIncludeCrossMajorPlanItems(plan.channel, plan.upgradeOutcome)) {
248
445
  return ("cross-major v2→v3 migration requires the development channel while stable tracks 2.x; " +
249
446
  "run the same command with --dry-run on --channel development, then apply with --yes");
@@ -279,6 +476,15 @@ export function renderUpgradePlan(plan) {
279
476
  }
280
477
  }
281
478
  }
479
+ if (plan.lifecycle) {
480
+ lines.push("");
481
+ lines.push("native Agentera resource cleanup:");
482
+ lines.push(` ownership journal: ${plan.lifecycle.ownershipJournal.state} at ${plan.lifecycle.ownershipJournal.path}`);
483
+ lines.push(` secure publication: ${plan.lifecycle.platform.securePublication ? "available" : "unavailable"} (${plan.lifecycle.platform.requirement})`);
484
+ lines.push(` scope: ownership-proven native Agentera resource ${plan.lifecycle.nativeResourceCleanup.resourceId}; unrelated user-owned data excluded`);
485
+ const cleanup = plan.lifecycle.cleanupSummary;
486
+ lines.push(` counts: pending=${cleanup.pending}, applied=${cleanup.applied}, noop=${cleanup.noop}, blocked=${cleanup.blocked_unowned + cleanup.action_required}`);
487
+ }
282
488
  if (plan.mode === "plan" && plan.summary.pending > 0 && plan.applyCommand) {
283
489
  lines.push("");
284
490
  lines.push(`Next: if this preview looks right, apply with: ${plan.applyCommand}`);
@@ -308,4 +514,3 @@ export function sortKeysDeep(value) {
308
514
  return value;
309
515
  }
310
516
  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