agentera 3.0.0-dev.7 → 3.0.0-dev.74

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