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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (696) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +118 -22
  3. package/bundle/CHANGELOG.md +1361 -0
  4. package/bundle/DESIGN.md +229 -0
  5. package/bundle/LICENSE +201 -0
  6. package/bundle/README.md +143 -0
  7. package/bundle/UPGRADE.md +252 -0
  8. package/bundle/extract-corpus-parity.json +21 -0
  9. package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
  10. package/bundle/references/adapters/package-publication.json +488 -0
  11. package/bundle/references/adapters/package-registry.yaml +435 -188
  12. package/bundle/references/adapters/package-surface-characterization.md +66 -34
  13. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +74 -0
  14. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +62 -0
  15. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  16. package/bundle/references/adapters/runtime-retired-resources.yaml +333 -0
  17. package/bundle/references/analysis/evidence-tier-authority.yaml +518 -0
  18. package/bundle/references/analysis/verification-policy.yaml +266 -0
  19. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +20 -10
  20. package/bundle/references/artifacts/glossary-entry-contract.yaml +1254 -0
  21. package/bundle/references/artifacts/state-storage-authority.yaml +3061 -0
  22. package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
  23. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +7 -8
  24. package/bundle/references/cli/capability-instruction-contract.yaml +11 -14
  25. package/bundle/references/cli/hybrid-route-contract.yaml +438 -0
  26. package/bundle/references/cli/routing-model.md +155 -0
  27. package/bundle/references/cli/trigger-schema-enrichment.md +147 -0
  28. package/bundle/references/cli/update-channels.yaml +19 -2
  29. package/bundle/references/cli/vocabulary-index.yaml +20 -17
  30. package/bundle/references/cli/vocabulary.md +325 -362
  31. package/bundle/references/meta/retained-reference-authority.yaml +151 -0
  32. package/bundle/registry.json +13 -13
  33. package/bundle/skills/agentera/SKILL.md +226 -422
  34. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +84 -0
  35. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +2 -2
  36. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +25 -0
  37. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +37 -18
  38. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +103 -0
  39. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +8 -6
  40. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +27 -0
  41. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +184 -0
  42. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +12 -12
  43. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +5 -5
  44. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +16 -0
  45. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +7 -7
  46. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +51 -0
  47. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +2 -2
  48. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +20 -0
  49. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +144 -0
  50. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +80 -0
  51. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +16 -0
  52. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +18 -18
  53. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +18 -18
  54. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +2 -2
  55. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +16 -0
  56. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +9 -9
  57. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +76 -0
  58. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +9 -7
  59. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +23 -0
  60. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +121 -0
  61. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +66 -0
  62. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
  63. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +23 -0
  64. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +121 -0
  65. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +23 -0
  66. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +6 -5
  67. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +20 -0
  68. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +115 -0
  69. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +24 -0
  70. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +16 -0
  71. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
  72. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +73 -0
  73. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +22 -0
  74. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
  75. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +16 -16
  76. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +7 -6
  77. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +23 -0
  78. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +18 -20
  79. package/bundle/skills/agentera/capability_schema_contract.yaml +178 -34
  80. package/bundle/skills/agentera/protocol.yaml +31 -31
  81. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  82. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +5 -4
  83. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +39 -21
  84. package/bundle/skills/agentera/schemas/artifacts/design.yaml +5 -4
  85. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +15 -19
  86. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +145 -14
  87. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
  88. package/bundle/skills/agentera/schemas/artifacts/health.yaml +58 -21
  89. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +22 -8
  90. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +461 -36
  91. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +133 -20
  92. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +342 -42
  93. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
  94. package/dist/analytics/extractCorpus/cli.js +101 -12
  95. package/dist/analytics/extractCorpus/copilotSessions.js +53 -9
  96. package/dist/analytics/extractCorpus/core.js +59 -24
  97. package/dist/analytics/extractCorpus/corpus.js +58 -23
  98. package/dist/analytics/extractCorpus/coverageAudit.js +260 -0
  99. package/dist/analytics/extractCorpus/cursorSessions.js +12 -7
  100. package/dist/analytics/extractCorpus/evidenceTiers.js +603 -0
  101. package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
  102. package/dist/analytics/extractCorpus/filesystemSources.js +1 -5
  103. package/dist/analytics/extractCorpus/index.js +6 -1
  104. package/dist/analytics/extractCorpus/jsonlSessions.js +24 -5
  105. package/dist/analytics/extractCorpus/sqliteCaps.js +43 -0
  106. package/dist/analytics/extractCorpus/sqliteSessions.js +98 -6
  107. package/dist/analytics/extractCorpus/tierReader.js +108 -0
  108. package/dist/analytics/extractCorpus.js +0 -1
  109. package/dist/analytics/glossaryAdviceResolution.js +166 -0
  110. package/dist/analytics/glossaryInputAcquisition.js +319 -0
  111. package/dist/analytics/personalGlossaryAdmission.js +133 -0
  112. package/dist/analytics/personalGlossaryProfile.js +219 -0
  113. package/dist/analytics/profileSignals.js +211 -0
  114. package/dist/analytics/usageStats.js +169 -42
  115. package/dist/audit/terminologyDrift.js +281 -0
  116. package/dist/bin/agentera.js +3 -2
  117. package/dist/capabilities/audit/instructions.js +16 -0
  118. package/dist/capabilities/build/instructions.js +59 -0
  119. package/dist/capabilities/design/instructions.js +4 -0
  120. package/dist/capabilities/discuss/instructions.js +29 -0
  121. package/dist/capabilities/document/instructions.js +11 -0
  122. package/dist/capabilities/index.js +29 -27
  123. package/dist/capabilities/optimize/instructions.js +14 -0
  124. package/dist/capabilities/orchestrate/instructions.js +42 -0
  125. package/dist/capabilities/plan/instructions.js +33 -0
  126. package/dist/capabilities/profile/instructions.js +70 -0
  127. package/dist/capabilities/research/instructions.js +5 -0
  128. package/dist/capabilities/status/instructions.js +15 -0
  129. package/dist/capabilities/status/startupInstructions.js +34 -0
  130. package/dist/capabilities/vision/instructions.js +4 -0
  131. package/dist/cli/appContext.js +30 -24
  132. package/dist/cli/argvalidate.js +0 -1
  133. package/dist/cli/capabilityContext/benchmark.js +25 -17
  134. package/dist/cli/capabilityContext/bespoke.js +31 -12
  135. package/dist/cli/capabilityContext/build.js +251 -0
  136. package/dist/cli/capabilityContext/closeout.js +33 -30
  137. package/dist/cli/capabilityContext/contract.js +39 -46
  138. package/dist/cli/capabilityContext/evidence.js +90 -73
  139. package/dist/cli/capabilityContext/index.js +1 -2
  140. package/dist/cli/capabilityContext/orchestration.js +45 -21
  141. package/dist/cli/capabilityContext/planState.js +93 -100
  142. package/dist/cli/capabilityContext/progress.js +60 -14
  143. package/dist/cli/capabilityContext/projectVerification.js +409 -0
  144. package/dist/cli/capabilityContext/shared.js +9 -20
  145. package/dist/cli/capabilityContext/slim.js +56 -10
  146. package/dist/cli/capabilityContext/startup.js +57 -115
  147. package/dist/cli/capabilityContext/startupAggregation.js +68 -0
  148. package/dist/cli/capabilityContext/types.js +37 -24
  149. package/dist/cli/capabilityContext.js +1 -2
  150. package/dist/cli/commands/appHome.js +22 -0
  151. package/dist/cli/commands/capability.js +4 -4
  152. package/dist/cli/commands/compact.js +163 -13
  153. package/dist/cli/commands/doctor.js +122 -114
  154. package/dist/cli/commands/durability.js +81 -0
  155. package/dist/cli/commands/glossaryAdvice.js +138 -0
  156. package/dist/cli/commands/lint.js +22 -8
  157. package/dist/cli/commands/personalGlossary.js +176 -0
  158. package/dist/cli/commands/prime/briefOrientation.js +746 -0
  159. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  160. package/dist/cli/commands/prime/bundleStatus.js +190 -0
  161. package/dist/cli/commands/prime/collectEntityOrientation.js +326 -0
  162. package/dist/cli/commands/prime/collectOrientationState.js +219 -0
  163. package/dist/cli/commands/prime/orientationOutput.js +421 -0
  164. package/dist/cli/commands/prime/types.js +1 -0
  165. package/dist/cli/commands/prime/v1Migration.js +38 -0
  166. package/dist/cli/commands/prime.js +80 -558
  167. package/dist/cli/commands/profileGrounding.js +55 -0
  168. package/dist/cli/commands/query.js +77 -52
  169. package/dist/cli/commands/report.js +88 -26
  170. package/dist/cli/commands/route.js +142 -0
  171. package/dist/cli/commands/schema.js +266 -142
  172. package/dist/cli/commands/state/decisions.js +51 -61
  173. package/dist/cli/commands/state/docs.js +63 -86
  174. package/dist/cli/commands/state/experimentRecords.js +151 -0
  175. package/dist/cli/commands/state/experiments.js +11 -64
  176. package/dist/cli/commands/state/get.js +129 -0
  177. package/dist/cli/commands/state/health.js +11 -111
  178. package/dist/cli/commands/state/index.js +6 -41
  179. package/dist/cli/commands/state/list.js +194 -0
  180. package/dist/cli/commands/state/objective.js +21 -64
  181. package/dist/cli/commands/state/plan.js +11 -169
  182. package/dist/cli/commands/state/planTasks.js +154 -0
  183. package/dist/cli/commands/state/plans.js +154 -0
  184. package/dist/cli/commands/state/progress.js +11 -45
  185. package/dist/cli/commands/state/shared.js +0 -1
  186. package/dist/cli/commands/state/todo.js +29 -108
  187. package/dist/cli/commands/state/write.js +433 -0
  188. package/dist/cli/commands/upgrade.js +146 -5
  189. package/dist/cli/commands/upgradeVerify.js +118 -0
  190. package/dist/cli/commands/validate.js +246 -211
  191. package/dist/cli/commands/verify.js +24 -9
  192. package/dist/cli/contracts/bundleStatus.js +1 -0
  193. package/dist/cli/contracts/orientationState.js +1 -0
  194. package/dist/cli/dispatch/argvParser.js +32 -0
  195. package/dist/cli/dispatch/check.js +94 -50
  196. package/dist/cli/dispatch/commands.js +27 -0
  197. package/dist/cli/dispatch/index.js +82 -52
  198. package/dist/cli/dispatch/lifecycle.js +268 -108
  199. package/dist/cli/dispatch/prime.js +68 -29
  200. package/dist/cli/dispatch/projections.js +17 -0
  201. package/dist/cli/dispatch/shared.js +1 -2
  202. package/dist/cli/dispatch/state.js +68 -77
  203. package/dist/cli/dispatch.js +0 -1
  204. package/dist/cli/errors.js +16 -17
  205. package/dist/cli/help.js +395 -41
  206. package/dist/cli/migrationRequired.js +122 -0
  207. package/dist/cli/orientation/attention.js +61 -0
  208. package/dist/cli/orientation/corpusCoverage.js +102 -0
  209. package/dist/cli/orientation.js +438 -170
  210. package/dist/cli/planArtifacts.js +350 -0
  211. package/dist/cli/planEvidence.js +157 -0
  212. package/dist/cli/planLifecycleState.js +36 -0
  213. package/dist/cli/planTaskIndex.js +11 -0
  214. package/dist/cli/preCutoverCommand.js +32 -0
  215. package/dist/cli/prime-blob.js +71 -3
  216. package/dist/cli/profileAcquisition.js +167 -0
  217. package/dist/cli/startupCompletenessContract.js +59 -0
  218. package/dist/cli/stateQuery.js +56 -14
  219. package/dist/cli/structured.js +0 -1
  220. package/dist/cli/todoMarkdown.js +25 -12
  221. package/dist/cli/todoReadinessSelection.js +192 -0
  222. package/dist/cli/todoSeverity.js +18 -0
  223. package/dist/core/atomicWriter.js +20 -0
  224. package/dist/core/developmentChannel.js +1 -0
  225. package/dist/core/developmentInvocation.js +374 -0
  226. package/dist/core/difflib.js +0 -1
  227. package/dist/core/envPaths.js +20 -0
  228. package/dist/core/jsonValue.js +5 -0
  229. package/dist/core/paths.js +0 -1
  230. package/dist/core/pyjson.js +67 -3
  231. package/dist/core/shell.js +4 -0
  232. package/dist/core/skillIdentity.js +23 -0
  233. package/dist/core/sourceRoot.js +9 -12
  234. package/dist/core/text.js +10 -0
  235. package/dist/core/toml.js +0 -1
  236. package/dist/core/yaml.js +8 -1
  237. package/dist/eval/evalSkills.js +30 -26
  238. package/dist/eval/hybridRouteEvaluation.js +155 -0
  239. package/dist/eval/semanticEval.js +43 -20
  240. package/dist/eval/semanticFixtures.js +16 -5
  241. package/dist/hooks/common.js +3 -56
  242. package/dist/hooks/compaction/apply.js +252 -50
  243. package/dist/hooks/compaction/dryRun.js +7 -4
  244. package/dist/hooks/compaction/index.js +5 -6
  245. package/dist/hooks/compaction/parse.js +201 -5
  246. package/dist/hooks/compaction/retention.js +30 -25
  247. package/dist/hooks/compaction/status.js +149 -32
  248. package/dist/hooks/compaction/types.js +0 -1
  249. package/dist/hooks/validateArtifact/agentFacing.js +0 -1
  250. package/dist/hooks/validateArtifact/index.js +7 -64
  251. package/dist/hooks/validateArtifact/markdown.js +57 -7
  252. package/dist/hooks/validateArtifact/schema.js +110 -19
  253. package/dist/hooks/validateArtifact/traversal.js +13 -11
  254. package/dist/hooks/validateArtifact/violations.js +7 -5
  255. package/dist/migrate/v2HandoffManifest.js +127 -8
  256. package/dist/registries/activationContract.js +2 -0
  257. package/dist/registries/activationTuples.js +108 -0
  258. package/dist/registries/artifactProtocolIds.js +2 -1
  259. package/dist/registries/artifactRegistry.js +224 -63
  260. package/dist/registries/artifactSchemaProjection.js +45 -0
  261. package/dist/registries/capabilityContract.js +129 -2
  262. package/dist/registries/evaluatorHandoffContract.js +2 -3
  263. package/dist/registries/evidenceTierContract.js +371 -0
  264. package/dist/registries/glossaryAdviceContract.js +79 -0
  265. package/dist/registries/glossaryCaveatContract.js +67 -0
  266. package/dist/registries/glossaryConsumerContractValidation.js +787 -0
  267. package/dist/registries/glossaryEntryContract.js +757 -0
  268. package/dist/registries/glossaryTermIdentity.js +17 -0
  269. package/dist/registries/glossaryTermOccurrence.js +20 -0
  270. package/dist/registries/hybridRoute.js +274 -0
  271. package/dist/registries/hybridRouteReceipt.js +221 -0
  272. package/dist/registries/packagePublication.js +273 -0
  273. package/dist/registries/packageRegistry.js +187 -211
  274. package/dist/registries/todoReadinessContract.js +448 -0
  275. package/dist/registries/triggerLoader.js +174 -0
  276. package/dist/registries/verbosityBudgetContract.js +205 -0
  277. package/dist/release/releaseMetadata.js +156 -6
  278. package/dist/runtime/lifecycleAdapterContract.js +457 -0
  279. package/dist/runtime/lifecycleAdapters.js +777 -0
  280. package/dist/runtime/lifecycleAuthority.js +453 -0
  281. package/dist/runtime/lifecycleOperationContract.js +123 -0
  282. package/dist/runtime/lifecycleOperations.js +634 -0
  283. package/dist/runtime/lifecycleOwnershipJournal.js +622 -0
  284. package/dist/runtime/lifecyclePublication.js +415 -0
  285. package/dist/runtime/lifecycleSnapshot.js +438 -0
  286. package/dist/runtime/nativeResourceCleanup.js +502 -0
  287. package/dist/setup/opencode.js +20 -13
  288. package/dist/setup/opencodeConstants.js +1 -0
  289. package/dist/setup/sharedSkill.js +45 -0
  290. package/dist/setup/smokeChecks.js +21 -82
  291. package/dist/state/archiveDiscovery.js +580 -0
  292. package/dist/state/archivePublication.js +225 -0
  293. package/dist/state/archiveRecovery.js +237 -0
  294. package/dist/state/archiveReplay.js +53 -0
  295. package/dist/state/canonicalMigrationRecord.js +36 -0
  296. package/dist/state/changelog.js +221 -0
  297. package/dist/state/decisionEntities.js +367 -0
  298. package/dist/state/decisionLegacyValidation.js +215 -0
  299. package/dist/state/decisionMigrationProvenance.js +199 -0
  300. package/dist/state/decisionOverlay.js +254 -0
  301. package/dist/state/decisionRevision.js +256 -0
  302. package/dist/state/decisionRevisionMigration.js +89 -0
  303. package/dist/state/directRetrieval.js +323 -0
  304. package/dist/state/durability.js +324 -0
  305. package/dist/state/entityCutover.js +459 -0
  306. package/dist/state/entityCutoverGit.js +127 -0
  307. package/dist/state/entityGlossaryAuthority.js +13 -0
  308. package/dist/state/entityListProjection.js +187 -0
  309. package/dist/state/entityListRuntimeRegistry.js +85 -0
  310. package/dist/state/entityMigrationCausality.js +97 -0
  311. package/dist/state/entityMigrationIdentity.js +5 -0
  312. package/dist/state/entityMigrationPreview.js +840 -0
  313. package/dist/state/entityMigrationTodo.js +133 -0
  314. package/dist/state/entityPublicationContext.js +859 -0
  315. package/dist/state/entityRetrievalHelp.js +506 -0
  316. package/dist/state/entityStorage.js +899 -0
  317. package/dist/state/exactReplacementRecovery.js +18 -0
  318. package/dist/state/experimentArchive.js +63 -0
  319. package/dist/state/experimentIdentity.js +202 -0
  320. package/dist/state/healthEntities.js +262 -0
  321. package/dist/state/healthEntityValidation.js +18 -0
  322. package/dist/state/healthRepair.js +69 -0
  323. package/dist/state/installRoot.js +64 -25
  324. package/dist/state/legacyEntityCutoverEvidence.js +65 -0
  325. package/dist/state/legacyIdentity.js +47 -0
  326. package/dist/state/legacySummaryRecord.js +6 -0
  327. package/dist/state/listAccounting.js +54 -0
  328. package/dist/state/listClassification.js +17 -0
  329. package/dist/state/listCursor.js +42 -0
  330. package/dist/state/listRetrieval.js +781 -0
  331. package/dist/state/migrationSourceBinding.js +30 -0
  332. package/dist/state/objectiveExperimentEntities.js +322 -0
  333. package/dist/state/planEntities.js +1027 -0
  334. package/dist/state/planIdentity.js +47 -0
  335. package/dist/state/planLineageValidation.js +52 -0
  336. package/dist/state/planReplacementTransaction.js +475 -0
  337. package/dist/state/planRetrieval.js +313 -0
  338. package/dist/state/planTaskRetrieval.js +294 -0
  339. package/dist/state/progressEntities.js +512 -0
  340. package/dist/state/progressGlossaryCaveat.js +168 -0
  341. package/dist/state/progressPublicationOrder.js +19 -0
  342. package/dist/state/progressWritePolicy.js +33 -0
  343. package/dist/state/projectRoot.js +62 -0
  344. package/dist/state/projectionPolicy.js +190 -0
  345. package/dist/state/retrievalAuthority.js +156 -0
  346. package/dist/state/safeProjectFile.js +155 -0
  347. package/dist/state/startupAnalysis/benchmark.js +92 -27
  348. package/dist/state/startupAnalysis/contract.js +48 -10
  349. package/dist/state/startupAnalysis/helpers.js +27 -73
  350. package/dist/state/startupAnalysis/index.js +0 -1
  351. package/dist/state/startupAnalysis/metrics.js +25 -19
  352. package/dist/state/startupAnalysis/records.js +13 -10
  353. package/dist/state/startupAnalysis/report.js +26 -38
  354. package/dist/state/startupAnalysis/threshold.js +19 -7
  355. package/dist/state/startupAnalysis.js +0 -1
  356. package/dist/state/startupProjection.js +499 -0
  357. package/dist/state/stateMode.js +222 -0
  358. package/dist/state/stateStorageAuthority.js +47 -0
  359. package/dist/state/summaryEntityRead.js +25 -0
  360. package/dist/state/summaryMigrationProvenance.js +66 -0
  361. package/dist/state/summarySourceRowAuthority.js +36 -0
  362. package/dist/state/todoActivationSafety.js +58 -0
  363. package/dist/state/todoDocsEntities.js +1124 -0
  364. package/dist/state/todoDocsEntityValidation.js +158 -0
  365. package/dist/state/todoMarkdownProjection.js +51 -0
  366. package/dist/state/todoReconciliationActivation.js +182 -0
  367. package/dist/state/todoReconciliationInspection.js +171 -0
  368. package/dist/state/todoReconciliationRepair.js +318 -0
  369. package/dist/state/todoReconciliationTransaction.js +595 -0
  370. package/dist/state/write/assign.js +20 -0
  371. package/dist/state/write/candidateMutation.js +269 -0
  372. package/dist/state/write/errors.js +11 -0
  373. package/dist/state/write/experimentPublication.js +192 -0
  374. package/dist/state/write/explain.js +377 -0
  375. package/dist/state/write/fields.js +61 -0
  376. package/dist/state/write/glossaryPublication.js +263 -0
  377. package/dist/state/write/grammar.js +285 -0
  378. package/dist/state/write/helpers.js +29 -0
  379. package/dist/state/write/index.js +12 -0
  380. package/dist/state/write/input.js +391 -0
  381. package/dist/state/write/lock.js +837 -0
  382. package/dist/state/write/mutation.js +234 -0
  383. package/dist/state/write/operations.js +170 -0
  384. package/dist/state/write/planEvaluation.js +128 -0
  385. package/dist/state/write/planPublication.js +179 -0
  386. package/dist/state/write/runtimeOperations.js +146 -0
  387. package/dist/state/write/serialize.js +1 -0
  388. package/dist/state/write/transaction.js +57 -0
  389. package/dist/state/write/validate.js +7 -0
  390. package/dist/upgrade/appContentRefresh.js +383 -0
  391. package/dist/upgrade/appModel.js +8 -7
  392. package/dist/upgrade/atomicWriter.js +1 -0
  393. package/dist/upgrade/bundleEvidence.js +33 -0
  394. package/dist/upgrade/channels.js +12 -8
  395. package/dist/upgrade/compatibility.js +56 -21
  396. package/dist/upgrade/doctor.js +165 -199
  397. package/dist/upgrade/doctorClassifier.js +187 -0
  398. package/dist/upgrade/installedHooksRetirement.js +196 -0
  399. package/dist/upgrade/legacyAgentCleanup.js +282 -0
  400. package/dist/upgrade/lifecycleUpgrade.js +113 -0
  401. package/dist/upgrade/migrateArtifactsV2ToV3.js +375 -79
  402. package/dist/upgrade/migrationPublication.js +122 -0
  403. package/dist/upgrade/nextMajorDoctor.js +29 -10
  404. package/dist/upgrade/npxPlatformStatus.js +22 -0
  405. package/dist/upgrade/projectIntegration.js +145 -189
  406. package/dist/upgrade/projectIntegrationDecision.js +50 -0
  407. package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
  408. package/dist/upgrade/runtimeMigration.js +272 -373
  409. package/dist/upgrade/upgradeCommands.js +14 -1
  410. package/dist/upgrade/upgradeLock.js +85 -0
  411. package/dist/upgrade/upgradeOrchestrator.js +263 -59
  412. package/dist/upgrade/v3CapabilitySurface.js +2 -3
  413. package/dist/upgrade/versionResolution.js +2 -3
  414. package/dist/validate/activationArtifactEvidence.js +852 -0
  415. package/dist/validate/activationArtifactEvidenceTypes.js +12 -0
  416. package/dist/validate/activationConjunction.js +816 -0
  417. package/dist/validate/activationEvidenceManifest.js +531 -0
  418. package/dist/validate/activationPackageSemantics.js +29 -0
  419. package/dist/validate/appHomeContract.js +2 -8
  420. package/dist/validate/bootstrapAuthority.js +44 -0
  421. package/dist/validate/capability.js +133 -12
  422. package/dist/validate/crossCapability.js +15 -10
  423. package/dist/validate/retainedReferenceAuthority.js +879 -0
  424. package/dist/validate/selfAudit.js +39 -45
  425. package/dist/validate/v1LegacyCruft.js +131 -0
  426. package/dist/validate/vocabularyAuthority.js +18 -13
  427. package/package.json +60 -29
  428. package/bundle/references/adapters/cursor.md +0 -213
  429. package/bundle/references/adapters/opencode.md +0 -530
  430. package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
  431. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  432. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  433. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -548
  434. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  435. package/bundle/references/analysis/benchmark.md +0 -267
  436. package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
  437. package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
  438. package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -369
  439. package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -250
  440. package/bundle/references/cli/capability-tool-classification.yaml +0 -53
  441. package/bundle/references/cli/coexistence-probe.yaml +0 -9
  442. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
  443. package/bundle/references/cli/single-name-protocol.yaml +0 -42
  444. package/bundle/references/cli/upgrade-repair-wording.md +0 -31
  445. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +0 -98
  446. package/bundle/references/meta/documentation-inventory.md +0 -49
  447. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  448. package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
  449. package/bundle/skills/agentera/agents/hej.toml +0 -6
  450. package/bundle/skills/agentera/agents/inspektera.toml +0 -6
  451. package/bundle/skills/agentera/agents/inspirera.toml +0 -6
  452. package/bundle/skills/agentera/agents/optimera.toml +0 -6
  453. package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
  454. package/bundle/skills/agentera/agents/planera.toml +0 -6
  455. package/bundle/skills/agentera/agents/profilera.toml +0 -6
  456. package/bundle/skills/agentera/agents/realisera.toml +0 -6
  457. package/bundle/skills/agentera/agents/resonera.toml +0 -6
  458. package/bundle/skills/agentera/agents/visionera.toml +0 -6
  459. package/bundle/skills/agentera/agents/visualisera.toml +0 -6
  460. package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +0 -73
  461. package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +0 -35
  462. package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +0 -69
  463. package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +0 -58
  464. package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +0 -76
  465. package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +0 -38
  466. package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +0 -24
  467. package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +0 -34
  468. package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +0 -39
  469. package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +0 -64
  470. package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +0 -42
  471. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +0 -120
  472. package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +0 -62
  473. package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +0 -34
  474. package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +0 -61
  475. package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +0 -18
  476. package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +0 -45
  477. package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +0 -57
  478. package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +0 -80
  479. package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +0 -39
  480. package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +0 -110
  481. package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +0 -47
  482. package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +0 -46
  483. package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +0 -77
  484. package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +0 -41
  485. package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +0 -33
  486. package/bundle/skills/agentera/references/contract.md +0 -1039
  487. package/dist/analytics/extractCorpus/cli.js.map +0 -1
  488. package/dist/analytics/extractCorpus/copilotSessions.js.map +0 -1
  489. package/dist/analytics/extractCorpus/core.js.map +0 -1
  490. package/dist/analytics/extractCorpus/corpus.js.map +0 -1
  491. package/dist/analytics/extractCorpus/cursorSessions.js.map +0 -1
  492. package/dist/analytics/extractCorpus/filesystemSources.js.map +0 -1
  493. package/dist/analytics/extractCorpus/index.js.map +0 -1
  494. package/dist/analytics/extractCorpus/jsonlSessions.js.map +0 -1
  495. package/dist/analytics/extractCorpus/sqliteSessions.js.map +0 -1
  496. package/dist/analytics/extractCorpus.js.map +0 -1
  497. package/dist/analytics/usageStats.js.map +0 -1
  498. package/dist/bin/agentera.js.map +0 -1
  499. package/dist/capabilities/dokumentera/instructions.js +0 -6
  500. package/dist/capabilities/dokumentera/instructions.js.map +0 -1
  501. package/dist/capabilities/hej/instructions.js +0 -6
  502. package/dist/capabilities/hej/instructions.js.map +0 -1
  503. package/dist/capabilities/index.js.map +0 -1
  504. package/dist/capabilities/inspektera/instructions.js +0 -6
  505. package/dist/capabilities/inspektera/instructions.js.map +0 -1
  506. package/dist/capabilities/inspirera/instructions.js +0 -6
  507. package/dist/capabilities/inspirera/instructions.js.map +0 -1
  508. package/dist/capabilities/optimera/instructions.js +0 -6
  509. package/dist/capabilities/optimera/instructions.js.map +0 -1
  510. package/dist/capabilities/orkestrera/instructions.js +0 -6
  511. package/dist/capabilities/orkestrera/instructions.js.map +0 -1
  512. package/dist/capabilities/planera/instructions.js +0 -6
  513. package/dist/capabilities/planera/instructions.js.map +0 -1
  514. package/dist/capabilities/profilera/instructions.js +0 -6
  515. package/dist/capabilities/profilera/instructions.js.map +0 -1
  516. package/dist/capabilities/realisera/instructions.js +0 -6
  517. package/dist/capabilities/realisera/instructions.js.map +0 -1
  518. package/dist/capabilities/resonera/instructions.js +0 -6
  519. package/dist/capabilities/resonera/instructions.js.map +0 -1
  520. package/dist/capabilities/visionera/instructions.js +0 -6
  521. package/dist/capabilities/visionera/instructions.js.map +0 -1
  522. package/dist/capabilities/visualisera/instructions.js +0 -6
  523. package/dist/capabilities/visualisera/instructions.js.map +0 -1
  524. package/dist/cli/appContext.js.map +0 -1
  525. package/dist/cli/argvalidate.js.map +0 -1
  526. package/dist/cli/capabilityContext/benchmark.js.map +0 -1
  527. package/dist/cli/capabilityContext/bespoke.js.map +0 -1
  528. package/dist/cli/capabilityContext/closeout.js.map +0 -1
  529. package/dist/cli/capabilityContext/contract.js.map +0 -1
  530. package/dist/cli/capabilityContext/evidence.js.map +0 -1
  531. package/dist/cli/capabilityContext/index.js.map +0 -1
  532. package/dist/cli/capabilityContext/orchestration.js.map +0 -1
  533. package/dist/cli/capabilityContext/planState.js.map +0 -1
  534. package/dist/cli/capabilityContext/progress.js.map +0 -1
  535. package/dist/cli/capabilityContext/realisera.js +0 -174
  536. package/dist/cli/capabilityContext/realisera.js.map +0 -1
  537. package/dist/cli/capabilityContext/shared.js.map +0 -1
  538. package/dist/cli/capabilityContext/slim.js.map +0 -1
  539. package/dist/cli/capabilityContext/startup.js.map +0 -1
  540. package/dist/cli/capabilityContext/types.js.map +0 -1
  541. package/dist/cli/capabilityContext.js.map +0 -1
  542. package/dist/cli/commands/backfill.js +0 -84
  543. package/dist/cli/commands/backfill.js.map +0 -1
  544. package/dist/cli/commands/capability.js.map +0 -1
  545. package/dist/cli/commands/compact.js.map +0 -1
  546. package/dist/cli/commands/doctor.js.map +0 -1
  547. package/dist/cli/commands/lint.js.map +0 -1
  548. package/dist/cli/commands/prime.js.map +0 -1
  549. package/dist/cli/commands/query.js.map +0 -1
  550. package/dist/cli/commands/report.js.map +0 -1
  551. package/dist/cli/commands/schema.js.map +0 -1
  552. package/dist/cli/commands/state/decisions.js.map +0 -1
  553. package/dist/cli/commands/state/docs.js.map +0 -1
  554. package/dist/cli/commands/state/experiments.js.map +0 -1
  555. package/dist/cli/commands/state/health.js.map +0 -1
  556. package/dist/cli/commands/state/index.js.map +0 -1
  557. package/dist/cli/commands/state/objective.js.map +0 -1
  558. package/dist/cli/commands/state/plan.js.map +0 -1
  559. package/dist/cli/commands/state/progress.js.map +0 -1
  560. package/dist/cli/commands/state/shared.js.map +0 -1
  561. package/dist/cli/commands/state/todo.js.map +0 -1
  562. package/dist/cli/commands/state.js +0 -1023
  563. package/dist/cli/commands/state.js.map +0 -1
  564. package/dist/cli/commands/upgrade.js.map +0 -1
  565. package/dist/cli/commands/validate.js.map +0 -1
  566. package/dist/cli/commands/verify.js.map +0 -1
  567. package/dist/cli/dispatch/check.js.map +0 -1
  568. package/dist/cli/dispatch/index.js.map +0 -1
  569. package/dist/cli/dispatch/lifecycle.js.map +0 -1
  570. package/dist/cli/dispatch/prime.js.map +0 -1
  571. package/dist/cli/dispatch/shared.js.map +0 -1
  572. package/dist/cli/dispatch/state.js.map +0 -1
  573. package/dist/cli/dispatch.js.map +0 -1
  574. package/dist/cli/errors.js.map +0 -1
  575. package/dist/cli/help.js.map +0 -1
  576. package/dist/cli/orientation.js.map +0 -1
  577. package/dist/cli/prime-blob.js.map +0 -1
  578. package/dist/cli/stateQuery.js.map +0 -1
  579. package/dist/cli/structured.js.map +0 -1
  580. package/dist/cli/todoMarkdown.js.map +0 -1
  581. package/dist/core/difflib.js.map +0 -1
  582. package/dist/core/git.js +0 -43
  583. package/dist/core/git.js.map +0 -1
  584. package/dist/core/paths.js.map +0 -1
  585. package/dist/core/pyjson.js.map +0 -1
  586. package/dist/core/sourceRoot.js.map +0 -1
  587. package/dist/core/toml.js.map +0 -1
  588. package/dist/core/yaml.js.map +0 -1
  589. package/dist/eval/evalSkills.js.map +0 -1
  590. package/dist/eval/semanticEval.js.map +0 -1
  591. package/dist/eval/semanticFixtures.js.map +0 -1
  592. package/dist/hooks/common.js.map +0 -1
  593. package/dist/hooks/compaction/apply.js.map +0 -1
  594. package/dist/hooks/compaction/dryRun.js.map +0 -1
  595. package/dist/hooks/compaction/index.js.map +0 -1
  596. package/dist/hooks/compaction/parse.js.map +0 -1
  597. package/dist/hooks/compaction/retention.js.map +0 -1
  598. package/dist/hooks/compaction/status.js.map +0 -1
  599. package/dist/hooks/compaction/types.js.map +0 -1
  600. package/dist/hooks/compaction.js +0 -935
  601. package/dist/hooks/compaction.js.map +0 -1
  602. package/dist/hooks/cursorPreToolUse.js +0 -19
  603. package/dist/hooks/cursorPreToolUse.js.map +0 -1
  604. package/dist/hooks/cursorSessionStart.js +0 -71
  605. package/dist/hooks/cursorSessionStart.js.map +0 -1
  606. package/dist/hooks/sessionStart.js +0 -209
  607. package/dist/hooks/sessionStart.js.map +0 -1
  608. package/dist/hooks/sessionStop.js +0 -203
  609. package/dist/hooks/sessionStop.js.map +0 -1
  610. package/dist/hooks/validateArtifact/agentFacing.js.map +0 -1
  611. package/dist/hooks/validateArtifact/index.js.map +0 -1
  612. package/dist/hooks/validateArtifact/markdown.js.map +0 -1
  613. package/dist/hooks/validateArtifact/runtime.js +0 -83
  614. package/dist/hooks/validateArtifact/runtime.js.map +0 -1
  615. package/dist/hooks/validateArtifact/schema.js.map +0 -1
  616. package/dist/hooks/validateArtifact/traversal.js.map +0 -1
  617. package/dist/hooks/validateArtifact/violations.js.map +0 -1
  618. package/dist/hooks/validateArtifact.js +0 -924
  619. package/dist/hooks/validateArtifact.js.map +0 -1
  620. package/dist/migrate/v2HandoffManifest.js.map +0 -1
  621. package/dist/registries/artifactProtocolIds.js.map +0 -1
  622. package/dist/registries/artifactRegistry.js.map +0 -1
  623. package/dist/registries/capabilityContract.js.map +0 -1
  624. package/dist/registries/evaluatorHandoffContract.js.map +0 -1
  625. package/dist/registries/packageRegistry.js.map +0 -1
  626. package/dist/registries/runtimeAdapterRegistry.js +0 -315
  627. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  628. package/dist/release/releaseMetadata.js.map +0 -1
  629. package/dist/setup/codex/agents.js +0 -96
  630. package/dist/setup/codex/agents.js.map +0 -1
  631. package/dist/setup/codex/cli.js +0 -161
  632. package/dist/setup/codex/cli.js.map +0 -1
  633. package/dist/setup/codex/configToml.js +0 -644
  634. package/dist/setup/codex/configToml.js.map +0 -1
  635. package/dist/setup/codex/constants.js +0 -29
  636. package/dist/setup/codex/constants.js.map +0 -1
  637. package/dist/setup/codex/installRoot.js +0 -64
  638. package/dist/setup/codex/installRoot.js.map +0 -1
  639. package/dist/setup/codex/state.js +0 -270
  640. package/dist/setup/codex/state.js.map +0 -1
  641. package/dist/setup/codex.js +0 -12
  642. package/dist/setup/codex.js.map +0 -1
  643. package/dist/setup/copilot.js +0 -227
  644. package/dist/setup/copilot.js.map +0 -1
  645. package/dist/setup/cursor.js +0 -127
  646. package/dist/setup/cursor.js.map +0 -1
  647. package/dist/setup/doctor/core.js +0 -300
  648. package/dist/setup/doctor/core.js.map +0 -1
  649. package/dist/setup/doctor/diagnostics.js +0 -247
  650. package/dist/setup/doctor/diagnostics.js.map +0 -1
  651. package/dist/setup/doctor/opencode.js +0 -281
  652. package/dist/setup/doctor/opencode.js.map +0 -1
  653. package/dist/setup/doctor/report.js +0 -474
  654. package/dist/setup/doctor/report.js.map +0 -1
  655. package/dist/setup/doctor.js +0 -10
  656. package/dist/setup/doctor.js.map +0 -1
  657. package/dist/setup/opencode.js.map +0 -1
  658. package/dist/setup/smokeChecks.js.map +0 -1
  659. package/dist/state/installRoot.js.map +0 -1
  660. package/dist/state/progressCommit.js +0 -289
  661. package/dist/state/progressCommit.js.map +0 -1
  662. package/dist/state/startupAnalysis/benchmark.js.map +0 -1
  663. package/dist/state/startupAnalysis/contract.js.map +0 -1
  664. package/dist/state/startupAnalysis/helpers.js.map +0 -1
  665. package/dist/state/startupAnalysis/index.js.map +0 -1
  666. package/dist/state/startupAnalysis/metrics.js.map +0 -1
  667. package/dist/state/startupAnalysis/records.js.map +0 -1
  668. package/dist/state/startupAnalysis/report.js.map +0 -1
  669. package/dist/state/startupAnalysis/threshold.js.map +0 -1
  670. package/dist/state/startupAnalysis.js.map +0 -1
  671. package/dist/upgrade/appModel.js.map +0 -1
  672. package/dist/upgrade/channels.js.map +0 -1
  673. package/dist/upgrade/coexistenceProbe.js +0 -83
  674. package/dist/upgrade/coexistenceProbe.js.map +0 -1
  675. package/dist/upgrade/compatibility.js.map +0 -1
  676. package/dist/upgrade/doctor.js.map +0 -1
  677. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -570
  678. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  679. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
  680. package/dist/upgrade/nextMajorDoctor.js.map +0 -1
  681. package/dist/upgrade/projectIntegration.js.map +0 -1
  682. package/dist/upgrade/runtimeMigration.js.map +0 -1
  683. package/dist/upgrade/upgradeCommands.js.map +0 -1
  684. package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
  685. package/dist/upgrade/v3CapabilitySurface.js.map +0 -1
  686. package/dist/upgrade/versionResolution.js.map +0 -1
  687. package/dist/validate/appHomeContract.js.map +0 -1
  688. package/dist/validate/capability.js.map +0 -1
  689. package/dist/validate/crossCapability.js.map +0 -1
  690. package/dist/validate/lifecycleAdapters.js +0 -772
  691. package/dist/validate/lifecycleAdapters.js.map +0 -1
  692. package/dist/validate/selfAudit.js.map +0 -1
  693. package/dist/validate/vocabularyAuthority.js.map +0 -1
  694. /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
  695. /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
  696. /package/bundle/skills/agentera/capabilities/{hej → status}/schemas/exit.yaml +0 -0
@@ -58,12 +58,16 @@ let testSuccessorAnnouncedOverride = null;
58
58
  export function setSuccessorAnnouncedOverrideForTests(value) {
59
59
  testSuccessorAnnouncedOverride = value;
60
60
  }
61
- /** True when stable-channel successor metadata exists and is announced for doctor/prime. */
62
- export function isStableSuccessorAnnounced(sourceRoot) {
61
+ /**
62
+ * True when the resolved channel's successor metadata exists and is announced
63
+ * for doctor/prime. Defaults to the stable channel so legacy callers that
64
+ * omit the argument behave identically to pre-fix behavior.
65
+ */
66
+ export function isStableSuccessorAnnounced(sourceRoot, channel = "stable") {
63
67
  if (testSuccessorAnnouncedOverride !== null) {
64
68
  return testSuccessorAnnouncedOverride;
65
69
  }
66
- const block = loadChannelNextMajor(sourceRoot, "stable");
70
+ const block = loadChannelNextMajor(sourceRoot, channel);
67
71
  return block?.announced === true;
68
72
  }
69
73
  export function loadChannelNextMajor(sourceRoot, channel) {
@@ -88,10 +92,23 @@ export function formatNextMajorDoctorLines(args) {
88
92
  args.block.irreversibleAdvisory,
89
93
  ];
90
94
  }
95
+ function installTrackSkipsSuccessorBlock(install, sourceRoot) {
96
+ if (install?.kind === "v3_self_contained_npm") {
97
+ return true;
98
+ }
99
+ if (install?.kind === "source_checkout" && cliDistributionMajor(sourceRoot) >= 3) {
100
+ return true;
101
+ }
102
+ return false;
103
+ }
91
104
  export function resolveNextMajorDoctorLines(ctx) {
92
105
  const env = ctx.env ?? process.env;
93
106
  const home = ctx.home;
94
107
  const sourceRoot = ctx.sourceRoot;
108
+ const install = ctx.install ?? null;
109
+ if (installTrackSkipsSuccessorBlock(install, sourceRoot)) {
110
+ return null;
111
+ }
95
112
  const selected = resolveSelectedChannel({
96
113
  channel: ctx.channel ?? null,
97
114
  env,
@@ -99,7 +116,10 @@ export function resolveNextMajorDoctorLines(ctx) {
99
116
  sourceRoot,
100
117
  });
101
118
  const currentChannel = selected.channel;
102
- const runningDistributionMajor = ctx.runningDistributionMajor ?? cliDistributionMajor(sourceRoot);
119
+ const successorChannel = install?.kind === "v2_managed_app_home" ? "stable" : currentChannel;
120
+ const displayChannel = install?.kind === "v2_managed_app_home" ? "stable" : currentChannel;
121
+ const runningDistributionMajor = ctx.runningDistributionMajor ??
122
+ (install?.kind === "v2_managed_app_home" ? 2 : cliDistributionMajor(sourceRoot));
103
123
  if (runningDistributionMajor === 1) {
104
124
  const block = V1_NEXT_MAJOR_FALLBACK;
105
125
  return formatNextMajorDoctorLines({
@@ -108,22 +128,22 @@ export function resolveNextMajorDoctorLines(ctx) {
108
128
  block,
109
129
  });
110
130
  }
111
- const authorityBlock = loadChannelNextMajor(sourceRoot, currentChannel);
131
+ const authorityBlock = loadChannelNextMajor(sourceRoot, successorChannel);
112
132
  if (!authorityBlock || !authorityBlock.announced) {
113
133
  return null;
114
134
  }
115
135
  const runningVersion = ctx.runningVersion ??
116
- (ctx.install
136
+ (install
117
137
  ? resolveRunningVersion({
118
- appHome: ctx.install.appHome,
138
+ appHome: install.appHome,
119
139
  sourceRoot,
120
- install: ctx.install,
140
+ install,
121
141
  })
122
142
  : null) ??
123
143
  `${runningDistributionMajor}.x`;
124
144
  return formatNextMajorDoctorLines({
125
145
  currentVersion: runningVersion,
126
- currentChannel,
146
+ currentChannel: displayChannel,
127
147
  block: authorityBlock,
128
148
  });
129
149
  }
@@ -133,4 +153,3 @@ export function prependNextMajorDoctorSection(text, sectionLines) {
133
153
  }
134
154
  return `${sectionLines.join("\n")}\n\n${text}`;
135
155
  }
136
- //# sourceMappingURL=nextMajorDoctor.js.map
@@ -0,0 +1,22 @@
1
+ import { expanduser } from "../core/paths.js";
2
+ import { resolvePlatformAppHome } from "./appModel.js";
3
+ import { buildDoctorStatus } from "./doctor.js";
4
+ /** Shared npx platform app-home resolution for prime and projectIntegration. */
5
+ export function resolveNpxPlatformStatus(opts) {
6
+ const env = { ...process.env, ...(opts.env ?? {}), HOME: expanduser(opts.home) };
7
+ const platformRoot = resolvePlatformAppHome(opts.home, env);
8
+ const doctorOpts = {
9
+ rootSource: "default",
10
+ sourceRoot: opts.sourceRoot,
11
+ home: opts.home,
12
+ project: opts.project,
13
+ expectedCommands: opts.expectedCommands ?? ["prime"],
14
+ skipNpxBundleShortCircuit: true,
15
+ env,
16
+ };
17
+ if (opts.expectedVersion !== undefined) {
18
+ doctorOpts.expectedVersion = opts.expectedVersion;
19
+ }
20
+ const platformStatus = buildDoctorStatus(platformRoot, doctorOpts);
21
+ return { platformRoot, platformStatus };
22
+ }
@@ -1,92 +1,38 @@
1
- import { expanduser, isFile, resolvePath } from "../core/paths.js";
1
+ import { resolvePath } from "../core/paths.js";
2
2
  import { isNpxBundleRoot } from "../core/sourceRoot.js";
3
- import { APP_MANUAL_REVIEW_NEEDED, APP_MIGRATION_NEEDED, APP_OUTDATED, APP_REPAIR_NEEDED, APP_UP_TO_DATE, buildDoctorStatus, } from "./doctor.js";
3
+ import { APP_MIGRATION_NEEDED, APP_MANUAL_REVIEW_NEEDED, APP_OUTDATED, APP_REPAIR_NEEDED, APP_UP_TO_DATE, } from "./doctor.js";
4
+ import { resolveNpxPlatformStatus } from "./npxPlatformStatus.js";
4
5
  import { classifyInstall, crossMajorBoundaryApplies } from "./compatibility.js";
5
6
  import { resolveInvokedUpdateChannel } from "./channels.js";
6
- import fs from "node:fs";
7
- import { detectV1ArtifactPairs, planRuntimeRewirePhase, } from "./migrateArtifactsV2ToV3.js";
8
- import { projectHasProjectLevelRuntimeHooks, textUsesPythonManagedEntrypoint, } from "./runtimeMigration.js";
9
- import { resolvePlatformAppHome } from "./appModel.js";
10
- import { buildUpgradeCommands } from "./upgradeCommands.js";
7
+ import { detectV1ArtifactPairs, planRuntimeRetirementPhase, } from "./migrateArtifactsV2ToV3.js";
8
+ import { projectHasProjectLevelRuntimeHooks, } from "./runtimeMigration.js";
11
9
  import { isStableSuccessorAnnounced } from "./nextMajorDoctor.js";
12
- import { classifyUpgradeOutcome, shouldIncludeCrossMajorPlanItems, } from "./versionResolution.js";
13
- function migrationContext(args, channel) {
14
- const home = resolvePath(expanduser(args.home));
15
- const env = { ...(args.env ?? process.env), HOME: home };
16
- return {
17
- appHome: args.installRoot,
18
- project: resolvePath(args.project),
19
- home,
20
- sourceRoot: args.sourceRoot,
21
- channel: args.channel ?? channel.channel,
22
- env,
23
- };
10
+ import { buildUpgradeCommands } from "./upgradeCommands.js";
11
+ import { classifyIntegrationScenario, integrationScenarioMessage, integrationExit, integrationPhase, } from "./projectIntegrationDecision.js";
12
+ import { classifyUpgradeOutcome, parseSemverMajor, resolveRunningVersion, shouldIncludeCrossMajorPlanItems, } from "./versionResolution.js";
13
+ const MAJOR_BOUNDARY_BLOCK_MESSAGE_PREFIX = "v3 successor line is not announced yet; v2 managed app files remain current on the";
14
+ function majorBoundaryBlockMessage(channelName) {
15
+ const label = channelName.trim() || "current";
16
+ return `${MAJOR_BOUNDARY_BLOCK_MESSAGE_PREFIX} ${label} channel`;
24
17
  }
25
- const RUNTIME_MIGRATION_ACTIONS = new Set([
26
- "rewire-runtime",
27
- "retire-hooks",
28
- "copy-plugin",
29
- "copy-agent",
30
- "copy-command",
31
- "link-skill",
32
- ]);
33
18
  function isPendingRuntimeMigrationItem(item) {
34
19
  if (item.status !== "pending" || item.action === "configure") {
35
20
  return false;
36
21
  }
37
- if (item.action === "retire-hooks") {
38
- return true;
39
- }
40
- if (item.action === "rewire-runtime") {
41
- if (!item.source) {
42
- return false;
43
- }
44
- try {
45
- return textUsesPythonManagedEntrypoint(fs.readFileSync(item.source, "utf8"));
46
- }
47
- catch {
48
- return false;
49
- }
50
- }
51
- return RUNTIME_MIGRATION_ACTIONS.has(item.action);
52
- }
53
- function isPythonManagedRewireItem(item) {
54
- if (item.action === "retire-hooks") {
55
- return item.status === "pending";
56
- }
57
- if (item.action !== "rewire-runtime" || item.status !== "pending" || !item.source) {
58
- return false;
59
- }
60
- try {
61
- return textUsesPythonManagedEntrypoint(fs.readFileSync(item.source, "utf8"));
62
- }
63
- catch {
64
- return false;
65
- }
22
+ return true;
66
23
  }
67
24
  function isGlobalStaleRuntimeItem(item, ctx) {
68
25
  const homeRoot = resolvePath(ctx.home);
69
26
  if (!item.source?.startsWith(homeRoot)) {
70
27
  return false;
71
28
  }
72
- if (item.action === "rewire-runtime" || item.action === "retire-hooks") {
29
+ if (item.action === "retire-hooks") {
73
30
  return true;
74
31
  }
75
- if (item.action === "copy-plugin" && item.target) {
76
- try {
77
- if (isFile(item.target)) {
78
- return textUsesPythonManagedEntrypoint(fs.readFileSync(item.target, "utf8"));
79
- }
80
- return item.source ? textUsesPythonManagedEntrypoint(fs.readFileSync(item.source, "utf8")) : false;
81
- }
82
- catch {
83
- return false;
84
- }
85
- }
86
32
  return false;
87
33
  }
88
- export function pendingRuntimeMigrationItems(ctx) {
89
- const phase = planRuntimeRewirePhase(ctx);
34
+ export function pendingRuntimeMigrationItems(ctx, resolvedChannel) {
35
+ const phase = planRuntimeRetirementPhase(ctx, resolvedChannel);
90
36
  const projectRoot = resolvePath(ctx.project);
91
37
  const hasProjectHooks = projectHasProjectLevelRuntimeHooks(ctx.project);
92
38
  return phase.items.filter((item) => {
@@ -99,11 +45,6 @@ export function pendingRuntimeMigrationItems(ctx) {
99
45
  return isGlobalStaleRuntimeItem(item, ctx);
100
46
  });
101
47
  }
102
- /** True when runtime hooks/config still need npm self-contained rewiring. */
103
- export function projectHasPendingRuntimeRewire(ctx) {
104
- const phase = planRuntimeRewirePhase(ctx);
105
- return phase.items.some((item) => isPythonManagedRewireItem(item));
106
- }
107
48
  function appNeedsUpgrade(bundleStatus) {
108
49
  return (bundleStatus === APP_OUTDATED ||
109
50
  bundleStatus === APP_REPAIR_NEEDED ||
@@ -115,27 +56,25 @@ function resolveIntegrationTargets(args) {
115
56
  installRoot: args.installRoot,
116
57
  bundleStatus: args.bundleStatus,
117
58
  crossMajorBoundary: args.crossMajorBoundary ?? false,
59
+ crossMajorBoundaryDetected: args.crossMajorBoundaryDetected ?? false,
118
60
  };
119
61
  }
120
- const platformRoot = resolvePlatformAppHome(args.home, args.env);
121
- const platformStatus = buildDoctorStatus(platformRoot, {
122
- rootSource: "default",
123
- sourceRoot: args.sourceRoot,
62
+ const { platformRoot, platformStatus } = resolveNpxPlatformStatus({
124
63
  home: args.home,
64
+ sourceRoot: args.sourceRoot,
125
65
  project: args.project,
126
- expectedCommands: ["prime"],
127
- probeCli: false,
128
- skipNpxBundleShortCircuit: true,
129
66
  env: args.env,
130
67
  });
131
68
  return {
132
69
  installRoot: platformRoot,
133
70
  bundleStatus: args.bundleStatus,
71
+ platformBundleStatus: platformStatus.status,
134
72
  crossMajorBoundary: Boolean(platformStatus.crossMajorBoundary),
73
+ crossMajorBoundaryDetected: Boolean(platformStatus.crossMajorBoundaryDetected),
135
74
  };
136
75
  }
137
76
  function commandChannel(args, channel, crossMajor, upgradeOutcome) {
138
- if (crossMajor && !shouldIncludeCrossMajorPlanItems(channel, upgradeOutcome)) {
77
+ if (crossMajor && upgradeOutcome && !shouldIncludeCrossMajorPlanItems(channel, upgradeOutcome)) {
139
78
  return resolveInvokedUpdateChannel({
140
79
  channel: "development",
141
80
  env: args.env,
@@ -145,132 +84,149 @@ function commandChannel(args, channel, crossMajor, upgradeOutcome) {
145
84
  }
146
85
  return channel;
147
86
  }
87
+ function appPhaseBlockers(bundleStatus, majorBoundaryBlock) {
88
+ const blockers = [];
89
+ if (bundleStatus === APP_MANUAL_REVIEW_NEEDED) {
90
+ blockers.push("app: manual review is required before choosing an app write path");
91
+ }
92
+ if (majorBoundaryBlock)
93
+ blockers.push(`app: ${majorBoundaryBlock}`);
94
+ return blockers;
95
+ }
96
+ function retryGuidance(exit) {
97
+ switch (exit.meaning) {
98
+ case "no_changes_needed":
99
+ return "No retry is needed; project integration is converged.";
100
+ case "preview_required":
101
+ return "Apply the approved preview, then retry Agentera to re-observe project integration.";
102
+ case "preview_and_blockers":
103
+ return "Resolve the reported blockers, apply the approved preview, then retry Agentera.";
104
+ case "manual_review_required":
105
+ return "Complete the manual review, then retry Agentera to re-observe project integration.";
106
+ }
107
+ }
148
108
  export function summarizeProjectIntegration(args) {
149
- const channel = resolveInvokedUpdateChannel({
109
+ const channel = args.resolvedChannel ?? resolveInvokedUpdateChannel({
150
110
  channel: args.channel ?? null,
151
111
  env: args.env,
152
112
  home: args.home,
153
113
  sourceRoot: args.sourceRoot,
154
114
  });
155
115
  const integrationTargets = resolveIntegrationTargets(args);
156
- const install = classifyInstall({ appHome: integrationTargets.installRoot, sourceRoot: args.sourceRoot });
157
- const crossMajorDetected = args.crossMajorBoundary ??
158
- integrationTargets.crossMajorBoundary ??
116
+ const install = args.installClassification ?? classifyInstall({ appHome: integrationTargets.installRoot, sourceRoot: args.sourceRoot });
117
+ const crossMajorDetected = args.crossMajorBoundaryDetected ??
159
118
  crossMajorBoundaryApplies(install, args.sourceRoot);
160
- const crossMajor = crossMajorDetected && isStableSuccessorAnnounced(args.sourceRoot);
161
- const upgradeOutcome = classifyUpgradeOutcome({
119
+ const successorAnnounced = args.successorAnnounced ?? isStableSuccessorAnnounced(args.sourceRoot, "stable");
120
+ const crossMajor = crossMajorDetected && successorAnnounced;
121
+ const runningMajor = crossMajorDetected
122
+ ? parseSemverMajor(resolveRunningVersion({
123
+ appHome: integrationTargets.installRoot,
124
+ sourceRoot: args.sourceRoot,
125
+ install,
126
+ })) ?? 0
127
+ : 0;
128
+ const majorBoundaryBlock = crossMajorDetected && !successorAnnounced && runningMajor > 0 && runningMajor < 3
129
+ ? majorBoundaryBlockMessage(channel.channel)
130
+ : null;
131
+ const upgradeOutcome = crossMajor
132
+ ? classifyUpgradeOutcome({
133
+ appHome: integrationTargets.installRoot,
134
+ sourceRoot: args.sourceRoot,
135
+ install,
136
+ channel,
137
+ })
138
+ : null;
139
+ const v1Artifacts = args.precomputedV1Artifacts ?? detectV1ArtifactPairs(args.project);
140
+ const pendingProjectMigration = pendingRuntimeMigrationItems({
162
141
  appHome: integrationTargets.installRoot,
142
+ project: args.project,
143
+ home: args.home,
144
+ force: false,
163
145
  sourceRoot: args.sourceRoot,
164
- install,
165
- channel,
146
+ channel: args.channel ?? null,
147
+ env: args.env,
148
+ }, channel);
149
+ const crossMajorMigration = crossMajor && upgradeOutcome !== null && shouldIncludeCrossMajorPlanItems(channel, upgradeOutcome);
150
+ const isNpx = isNpxBundleRoot(args.sourceRoot);
151
+ const classificationBundleStatus = isNpx && integrationTargets.platformBundleStatus !== undefined
152
+ ? integrationTargets.platformBundleStatus
153
+ : integrationTargets.bundleStatus;
154
+ const needsAppUpgrade = isNpx && integrationTargets.bundleStatus === APP_UP_TO_DATE
155
+ ? appNeedsUpgrade(integrationTargets.platformBundleStatus ?? APP_UP_TO_DATE)
156
+ : appNeedsUpgrade(classificationBundleStatus);
157
+ const appPending = v1Artifacts.length +
158
+ pendingProjectMigration.length +
159
+ (needsAppUpgrade ? 1 : 0) +
160
+ (crossMajorMigration ? 1 : 0);
161
+ const appBlockers = appPhaseBlockers(classificationBundleStatus, majorBoundaryBlock);
162
+ const appPhase = integrationPhase({
163
+ total: appPending + appBlockers.length,
164
+ pending: appPending,
165
+ blocked: appBlockers.length,
166
+ blockers: appBlockers,
166
167
  });
167
- const ctx = migrationContext({ ...args, installRoot: integrationTargets.installRoot }, channel);
168
- const v1Artifacts = detectV1ArtifactPairs(args.project);
169
- const pending = pendingRuntimeMigrationItems(ctx);
170
- const pendingRuntimes = [
171
- ...new Set(pending.map((item) => item.runtime).filter((runtime) => Boolean(runtime))),
172
- ];
173
- const crossMajorMigration = crossMajor && shouldIncludeCrossMajorPlanItems(channel, upgradeOutcome);
174
- const crossMajorNeedsPreview = crossMajor && !crossMajorMigration;
175
- const needsAppUpgrade = isNpxBundleRoot(args.sourceRoot) && args.bundleStatus === APP_UP_TO_DATE
176
- ? false
177
- : appNeedsUpgrade(integrationTargets.bundleStatus);
178
- const artifactsOnly = v1Artifacts.length > 0 && !crossMajorMigration && !crossMajorNeedsPreview && !needsAppUpgrade;
179
- const runtimeOnly = pending.length > 0 &&
180
- !artifactsOnly &&
181
- !crossMajorMigration &&
182
- !crossMajorNeedsPreview &&
183
- !needsAppUpgrade;
184
- if (integrationTargets.bundleStatus === APP_MANUAL_REVIEW_NEEDED &&
185
- pending.length === 0 &&
186
- v1Artifacts.length === 0 &&
187
- !crossMajor) {
188
- return {
189
- recommendation: "stay",
190
- message: "Agentera needs manual review for your app directory before this project can be upgraded safely.",
191
- pending_runtime: 0,
192
- pending_runtimes: [],
193
- pending_artifacts: 0,
194
- dry_run_command: null,
195
- apply_command: null,
196
- update_channel: channel.channel,
197
- };
198
- }
199
- if (!artifactsOnly &&
200
- !runtimeOnly &&
201
- !crossMajorMigration &&
202
- !crossMajorNeedsPreview &&
203
- !needsAppUpgrade &&
204
- integrationTargets.bundleStatus === APP_UP_TO_DATE &&
205
- pending.length === 0 &&
206
- v1Artifacts.length === 0) {
207
- return {
208
- recommendation: "stay",
209
- message: "This project matches your current Agentera install; no upgrade is needed.",
210
- pending_runtime: 0,
211
- pending_runtimes: [],
212
- pending_artifacts: 0,
213
- dry_run_command: null,
214
- apply_command: null,
215
- update_channel: channel.channel,
216
- };
217
- }
168
+ const hasUpgradeWork = appPending > 0;
169
+ const hasBlockers = appBlockers.length > 0;
170
+ const aggregateStatus = hasUpgradeWork
171
+ ? "upgrade"
172
+ : hasBlockers
173
+ ? "blocked"
174
+ : "stay";
175
+ const scenarioFacts = {
176
+ bundleStatus: classificationBundleStatus,
177
+ pendingArtifactCount: v1Artifacts.length + pendingProjectMigration.length,
178
+ crossMajor,
179
+ crossMajorMigration,
180
+ crossMajorNeedsPreview: Boolean(majorBoundaryBlock) || (crossMajor && !crossMajorMigration),
181
+ needsAppUpgrade,
182
+ };
183
+ const scenario = classifyIntegrationScenario(scenarioFacts);
184
+ const guidanceMessage = appBlockers.length > 0
185
+ ? appBlockers.join("; ")
186
+ : hasUpgradeWork
187
+ ? "Preview the app or project-state upgrade, then apply the approved command."
188
+ : "No app or project-state upgrade is required.";
189
+ const exit = integrationExit(hasUpgradeWork, appBlockers.length > 0);
218
190
  const cmdsChannel = commandChannel(args, channel, crossMajor, upgradeOutcome);
219
- const onlyPhases = artifactsOnly
220
- ? ["artifacts"]
221
- : runtimeOnly
222
- ? ["runtime"]
223
- : undefined;
224
- const installRootForCommands = crossMajorMigration || crossMajorNeedsPreview || needsAppUpgrade ? integrationTargets.installRoot : null;
225
- const cmds = buildUpgradeCommands({
226
- project: args.project,
227
- installRoot: installRootForCommands,
228
- channel: cmdsChannel,
229
- only: onlyPhases,
230
- cwdDefault: true,
231
- });
232
- let message;
233
- if (artifactsOnly) {
234
- message =
235
- "This project still uses v1 Markdown artifacts; preview migrating them to v2 YAML before continuing.";
236
- }
237
- else if (crossMajorMigration || crossMajorNeedsPreview) {
238
- message =
239
- "Your Agentera app copy is still on v2 while the CLI is on v3; preview the one-way v2→v3 migration before applying.";
240
- }
241
- else if (needsAppUpgrade) {
242
- message = "Your Agentera app copy is out of date; preview the repair or upgrade before applying.";
243
- }
244
- else if (pending.length > 0) {
245
- const runtimes = pendingRuntimes.length > 0 ? pendingRuntimes.join(", ") : "runtime configs";
246
- message = projectHasProjectLevelRuntimeHooks(args.project)
247
- ? `This project still uses older Agentera runtime wiring (${runtimes}); preview rewiring hooks to the current npm entrypoint.`
248
- : `Your user-level Agentera runtime wiring (${runtimes}) is stale; preview rewiring hooks to the current npm entrypoint.`;
249
- }
250
- else {
251
- message = "Preview Agentera upgrade changes for this project before applying.";
252
- }
191
+ const cmds = hasUpgradeWork
192
+ ? buildUpgradeCommands({
193
+ project: args.project,
194
+ installRoot: null,
195
+ channel: cmdsChannel,
196
+ only: null,
197
+ cwdDefault: true,
198
+ })
199
+ : null;
200
+ const message = hasUpgradeWork
201
+ ? `${integrationScenarioMessage(scenario, scenarioFacts)} ${guidanceMessage}`
202
+ : guidanceMessage;
253
203
  return {
254
- recommendation: "upgrade",
204
+ recommendation: aggregateStatus === "upgrade" ? "upgrade" : "stay",
255
205
  message,
256
- pending_runtime: pending.length,
257
- pending_runtimes: pendingRuntimes,
258
- pending_artifacts: v1Artifacts.length,
259
- dry_run_command: cmds.dryRunCommand,
260
- apply_command: cmds.applyCommand,
261
- update_channel: cmdsChannel.channel,
262
- upgrade_only: onlyPhases,
206
+ pending_artifacts: v1Artifacts.length + pendingProjectMigration.length,
207
+ dry_run_command: cmds?.dryRunCommand ?? null,
208
+ apply_command: cmds?.applyCommand ?? null,
209
+ update_channel: hasUpgradeWork ? cmdsChannel.channel : channel.channel,
210
+ major_boundary_block: majorBoundaryBlock,
211
+ phases: {
212
+ app: appPhase,
213
+ },
214
+ aggregate_status: aggregateStatus,
215
+ exit,
216
+ retry: {
217
+ command: args.retryCommand ?? null,
218
+ guidance: retryGuidance(exit),
219
+ },
263
220
  };
264
221
  }
265
222
  export function projectIntegrationAttention(summary) {
266
- if (summary.recommendation === "stay") {
223
+ if (summary.recommendation === "stay" && summary.aggregate_status === "stay") {
267
224
  return null;
268
225
  }
269
226
  const preview = summary.dry_run_command ? `\`${summary.dry_run_command}\`` : "the preview command";
270
- const prefix = summary.pending_artifacts > 0 ||
271
- (summary.pending_runtime > 0 && summary.upgrade_only?.includes("runtime"))
227
+ const prefix = summary.pending_artifacts > 0
272
228
  ? "normal"
273
229
  : "degraded";
274
- return `${prefix}: ${summary.message} Preview ${preview}.`;
230
+ const previewText = summary.dry_run_command ? ` Preview ${preview}.` : "";
231
+ return `${prefix}: ${summary.message}${previewText}`;
275
232
  }
276
- //# sourceMappingURL=projectIntegration.js.map
@@ -0,0 +1,50 @@
1
+ import { APP_MANUAL_REVIEW_NEEDED, APP_UP_TO_DATE } from "./doctor.js";
2
+ export function classifyIntegrationScenario(facts) {
3
+ if (facts.pendingArtifactCount === 0 &&
4
+ !facts.crossMajor &&
5
+ !facts.crossMajorMigration &&
6
+ !facts.crossMajorNeedsPreview &&
7
+ (facts.bundleStatus === APP_UP_TO_DATE || facts.bundleStatus === APP_MANUAL_REVIEW_NEEDED)) {
8
+ return "stay";
9
+ }
10
+ if (facts.crossMajorNeedsPreview) {
11
+ return "blocked";
12
+ }
13
+ return "upgrade";
14
+ }
15
+ export function integrationScenarioMessage(scenario, facts) {
16
+ if (scenario === "stay")
17
+ return "Your Agentera install is up to date.";
18
+ if (scenario === "blocked") {
19
+ return "Cross-major version boundary detected; v3 successor not yet announced. Stay on the current channel.";
20
+ }
21
+ const reasons = [];
22
+ if (facts.pendingArtifactCount > 0)
23
+ reasons.push("project state needs migration");
24
+ if (facts.needsAppUpgrade)
25
+ reasons.push("app bundle needs update");
26
+ if (facts.crossMajorMigration)
27
+ reasons.push("cross-major version migration needed");
28
+ if (reasons.length === 0)
29
+ reasons.push("project changes pending");
30
+ return `This project needs an Agentera upgrade (${reasons.join(", ")}). Preview the upgrade command.`;
31
+ }
32
+ export function integrationPhase(facts, statusOverride) {
33
+ const status = statusOverride ?? (facts.blocked > 0 ? "blocked" : facts.pending > 0 ? "pending" : "stay");
34
+ return {
35
+ status,
36
+ counts: { total: facts.total, pending: facts.pending, blocked: facts.blocked },
37
+ blockers: facts.blockers,
38
+ };
39
+ }
40
+ export function integrationExit(hasPendingWork, appBlocked) {
41
+ if (!hasPendingWork && !appBlocked) {
42
+ return { code: 0, meaning: "no_changes_needed" };
43
+ }
44
+ if (hasPendingWork && appBlocked) {
45
+ return { code: 1, meaning: "preview_and_blockers" };
46
+ }
47
+ if (hasPendingWork)
48
+ return { code: 1, meaning: "preview_required" };
49
+ return { code: 1, meaning: "manual_review_required" };
50
+ }