agentera 3.0.0-dev.7 → 3.0.0-dev.72

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 (723) 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 +2 -4
  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 +17 -8
  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 +3 -4
  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 +152 -93
  27. package/bundle/references/cli/trigger-schema-enrichment.md +57 -46
  28. package/bundle/references/cli/update-channels.yaml +4 -2
  29. package/bundle/references/cli/vocabulary-index.yaml +5 -7
  30. package/bundle/references/cli/vocabulary.md +51 -93
  31. package/bundle/references/meta/retained-reference-authority.yaml +151 -0
  32. package/bundle/skills/agentera/SKILL.md +183 -63
  33. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +27 -19
  34. package/bundle/skills/agentera/capabilities/audit/schemas/exit.yaml +2 -2
  35. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +13 -35
  36. package/bundle/skills/agentera/capabilities/audit/schemas/validation.yaml +30 -11
  37. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +44 -21
  38. package/bundle/skills/agentera/capabilities/build/schemas/exit.yaml +8 -6
  39. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +14 -36
  40. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +95 -21
  41. package/bundle/skills/agentera/capabilities/design/schemas/artifacts.yaml +6 -6
  42. package/bundle/skills/agentera/capabilities/design/schemas/exit.yaml +5 -5
  43. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +5 -34
  44. package/bundle/skills/agentera/capabilities/design/schemas/validation.yaml +2 -2
  45. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +17 -13
  46. package/bundle/skills/agentera/capabilities/discuss/schemas/exit.yaml +2 -2
  47. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +6 -40
  48. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +72 -5
  49. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +24 -17
  50. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +5 -35
  51. package/bundle/skills/agentera/capabilities/document/schemas/validation.yaml +13 -13
  52. package/bundle/skills/agentera/capabilities/optimize/schemas/artifacts.yaml +10 -10
  53. package/bundle/skills/agentera/capabilities/optimize/schemas/exit.yaml +2 -2
  54. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +4 -35
  55. package/bundle/skills/agentera/capabilities/optimize/schemas/validation.yaml +3 -3
  56. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +34 -22
  57. package/bundle/skills/agentera/capabilities/orchestrate/schemas/exit.yaml +9 -7
  58. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +5 -37
  59. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +38 -37
  60. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +20 -16
  61. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +8 -31
  62. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +66 -6
  63. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +9 -4
  64. package/bundle/skills/agentera/capabilities/profile/schemas/exit.yaml +4 -4
  65. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +8 -37
  66. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +61 -3
  67. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +6 -6
  68. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +5 -29
  69. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +13 -12
  70. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +7 -49
  71. package/bundle/skills/agentera/capabilities/vision/schemas/artifacts.yaml +8 -8
  72. package/bundle/skills/agentera/capabilities/vision/schemas/exit.yaml +7 -6
  73. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +7 -39
  74. package/bundle/skills/agentera/capabilities/vision/schemas/validation.yaml +14 -16
  75. package/bundle/skills/agentera/capability_schema_contract.yaml +32 -32
  76. package/bundle/skills/agentera/protocol.yaml +4 -4
  77. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  78. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +1 -0
  79. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +30 -12
  80. package/bundle/skills/agentera/schemas/artifacts/design.yaml +1 -0
  81. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +7 -12
  82. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +140 -9
  83. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
  84. package/bundle/skills/agentera/schemas/artifacts/health.yaml +56 -19
  85. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +18 -4
  86. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +457 -32
  87. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +131 -18
  88. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +302 -7
  89. package/dist/analytics/extractCorpus/cli.js +52 -11
  90. package/dist/analytics/extractCorpus/copilotSessions.js +6 -4
  91. package/dist/analytics/extractCorpus/core.js +40 -12
  92. package/dist/analytics/extractCorpus/corpus.js +39 -17
  93. package/dist/analytics/extractCorpus/coverageAudit.js +44 -45
  94. package/dist/analytics/extractCorpus/cursorSessions.js +6 -4
  95. package/dist/analytics/extractCorpus/evidenceTiers.js +603 -0
  96. package/dist/analytics/extractCorpus/extractCorpusParity.js +4 -4
  97. package/dist/analytics/extractCorpus/filesystemSources.js +1 -5
  98. package/dist/analytics/extractCorpus/index.js +3 -1
  99. package/dist/analytics/extractCorpus/jsonlSessions.js +24 -5
  100. package/dist/analytics/extractCorpus/sqliteCaps.js +0 -1
  101. package/dist/analytics/extractCorpus/sqliteSessions.js +0 -1
  102. package/dist/analytics/extractCorpus/tierReader.js +108 -0
  103. package/dist/analytics/extractCorpus.js +0 -1
  104. package/dist/analytics/glossaryAdviceResolution.js +166 -0
  105. package/dist/analytics/glossaryInputAcquisition.js +319 -0
  106. package/dist/analytics/personalGlossaryAdmission.js +133 -0
  107. package/dist/analytics/personalGlossaryProfile.js +219 -0
  108. package/dist/analytics/profileSignals.js +211 -0
  109. package/dist/analytics/usageStats.js +150 -23
  110. package/dist/audit/terminologyDrift.js +281 -0
  111. package/dist/bin/agentera.js +3 -2
  112. package/dist/capabilities/audit/instructions.js +16 -6
  113. package/dist/capabilities/build/instructions.js +59 -6
  114. package/dist/capabilities/design/instructions.js +3 -4
  115. package/dist/capabilities/discuss/instructions.js +29 -6
  116. package/dist/capabilities/document/instructions.js +11 -6
  117. package/dist/capabilities/index.js +16 -14
  118. package/dist/capabilities/optimize/instructions.js +14 -6
  119. package/dist/capabilities/orchestrate/instructions.js +42 -6
  120. package/dist/capabilities/plan/instructions.js +30 -3
  121. package/dist/capabilities/profile/instructions.js +70 -6
  122. package/dist/capabilities/research/instructions.js +4 -5
  123. package/dist/capabilities/status/instructions.js +15 -6
  124. package/dist/capabilities/status/startupInstructions.js +34 -0
  125. package/dist/capabilities/vision/instructions.js +3 -5
  126. package/dist/cli/appContext.js +14 -7
  127. package/dist/cli/argvalidate.js +0 -1
  128. package/dist/cli/capabilityContext/benchmark.js +5 -4
  129. package/dist/cli/capabilityContext/bespoke.js +14 -6
  130. package/dist/cli/capabilityContext/build.js +116 -42
  131. package/dist/cli/capabilityContext/closeout.js +30 -27
  132. package/dist/cli/capabilityContext/contract.js +18 -27
  133. package/dist/cli/capabilityContext/evidence.js +84 -77
  134. package/dist/cli/capabilityContext/index.js +0 -1
  135. package/dist/cli/capabilityContext/orchestration.js +42 -18
  136. package/dist/cli/capabilityContext/planState.js +89 -96
  137. package/dist/cli/capabilityContext/progress.js +51 -12
  138. package/dist/cli/capabilityContext/projectVerification.js +409 -0
  139. package/dist/cli/capabilityContext/shared.js +9 -20
  140. package/dist/cli/capabilityContext/slim.js +52 -8
  141. package/dist/cli/capabilityContext/startup.js +51 -114
  142. package/dist/cli/capabilityContext/startupAggregation.js +68 -0
  143. package/dist/cli/capabilityContext/types.js +26 -10
  144. package/dist/cli/capabilityContext.js +0 -1
  145. package/dist/cli/commands/appHome.js +0 -1
  146. package/dist/cli/commands/capability.js +2 -2
  147. package/dist/cli/commands/compact.js +163 -13
  148. package/dist/cli/commands/doctor.js +117 -11
  149. package/dist/cli/commands/durability.js +81 -0
  150. package/dist/cli/commands/glossaryAdvice.js +138 -0
  151. package/dist/cli/commands/lint.js +22 -8
  152. package/dist/cli/commands/personalGlossary.js +176 -0
  153. package/dist/cli/commands/prime/briefOrientation.js +746 -0
  154. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  155. package/dist/cli/commands/prime/bundleStatus.js +54 -4
  156. package/dist/cli/commands/prime/collectEntityOrientation.js +326 -0
  157. package/dist/cli/commands/prime/collectOrientationState.js +126 -63
  158. package/dist/cli/commands/prime/orientationOutput.js +267 -56
  159. package/dist/cli/commands/prime/types.js +0 -1
  160. package/dist/cli/commands/prime/v1Migration.js +0 -1
  161. package/dist/cli/commands/prime.js +76 -11
  162. package/dist/cli/commands/profileGrounding.js +55 -0
  163. package/dist/cli/commands/query.js +74 -52
  164. package/dist/cli/commands/report.js +73 -19
  165. package/dist/cli/commands/route.js +142 -0
  166. package/dist/cli/commands/schema.js +257 -138
  167. package/dist/cli/commands/state/decisions.js +40 -56
  168. package/dist/cli/commands/state/docs.js +58 -85
  169. package/dist/cli/commands/state/experimentRecords.js +151 -0
  170. package/dist/cli/commands/state/experiments.js +11 -65
  171. package/dist/cli/commands/state/get.js +129 -0
  172. package/dist/cli/commands/state/health.js +11 -113
  173. package/dist/cli/commands/state/index.js +6 -41
  174. package/dist/cli/commands/state/list.js +194 -0
  175. package/dist/cli/commands/state/objective.js +21 -65
  176. package/dist/cli/commands/state/plan.js +11 -170
  177. package/dist/cli/commands/state/planTasks.js +154 -0
  178. package/dist/cli/commands/state/plans.js +154 -0
  179. package/dist/cli/commands/state/progress.js +11 -45
  180. package/dist/cli/commands/state/shared.js +0 -1
  181. package/dist/cli/commands/state/todo.js +28 -107
  182. package/dist/cli/commands/state/write.js +433 -0
  183. package/dist/cli/commands/upgrade.js +146 -5
  184. package/dist/cli/commands/upgradeVerify.js +118 -0
  185. package/dist/cli/commands/validate.js +235 -136
  186. package/dist/cli/commands/verify.js +23 -8
  187. package/dist/cli/contracts/bundleStatus.js +0 -1
  188. package/dist/cli/contracts/orientationState.js +0 -1
  189. package/dist/cli/dispatch/argvParser.js +0 -1
  190. package/dist/cli/dispatch/check.js +84 -40
  191. package/dist/cli/dispatch/commands.js +3 -3
  192. package/dist/cli/dispatch/index.js +77 -52
  193. package/dist/cli/dispatch/lifecycle.js +117 -62
  194. package/dist/cli/dispatch/prime.js +37 -2
  195. package/dist/cli/dispatch/projections.js +17 -0
  196. package/dist/cli/dispatch/shared.js +1 -2
  197. package/dist/cli/dispatch/state.js +62 -66
  198. package/dist/cli/dispatch.js +0 -1
  199. package/dist/cli/errors.js +16 -17
  200. package/dist/cli/help.js +358 -39
  201. package/dist/cli/migrationRequired.js +122 -0
  202. package/dist/cli/orientation/attention.js +19 -19
  203. package/dist/cli/orientation/corpusCoverage.js +32 -1
  204. package/dist/cli/orientation.js +346 -129
  205. package/dist/cli/planArtifacts.js +350 -0
  206. package/dist/cli/planEvidence.js +157 -0
  207. package/dist/cli/planLifecycleState.js +36 -0
  208. package/dist/cli/planTaskIndex.js +11 -0
  209. package/dist/cli/preCutoverCommand.js +32 -0
  210. package/dist/cli/prime-blob.js +71 -3
  211. package/dist/cli/profileAcquisition.js +167 -0
  212. package/dist/cli/startupCompletenessContract.js +11 -8
  213. package/dist/cli/stateQuery.js +47 -12
  214. package/dist/cli/structured.js +0 -1
  215. package/dist/cli/todoMarkdown.js +25 -12
  216. package/dist/cli/todoReadinessSelection.js +192 -0
  217. package/dist/cli/todoSeverity.js +0 -1
  218. package/dist/core/atomicWriter.js +20 -0
  219. package/dist/core/developmentChannel.js +1 -0
  220. package/dist/core/developmentInvocation.js +374 -0
  221. package/dist/core/difflib.js +0 -1
  222. package/dist/core/envPaths.js +0 -1
  223. package/dist/core/jsonValue.js +0 -1
  224. package/dist/core/paths.js +0 -1
  225. package/dist/core/pyjson.js +0 -1
  226. package/dist/core/shell.js +4 -0
  227. package/dist/core/skillIdentity.js +23 -0
  228. package/dist/core/sourceRoot.js +9 -12
  229. package/dist/core/text.js +10 -0
  230. package/dist/core/toml.js +0 -1
  231. package/dist/core/yaml.js +8 -1
  232. package/dist/eval/evalSkills.js +13 -14
  233. package/dist/eval/hybridRouteEvaluation.js +155 -0
  234. package/dist/eval/semanticEval.js +0 -1
  235. package/dist/eval/semanticFixtures.js +0 -1
  236. package/dist/hooks/common.js +3 -56
  237. package/dist/hooks/compaction/apply.js +224 -47
  238. package/dist/hooks/compaction/dryRun.js +2 -1
  239. package/dist/hooks/compaction/index.js +5 -6
  240. package/dist/hooks/compaction/parse.js +73 -6
  241. package/dist/hooks/compaction/retention.js +28 -25
  242. package/dist/hooks/compaction/status.js +145 -26
  243. package/dist/hooks/compaction/types.js +0 -1
  244. package/dist/hooks/validateArtifact/agentFacing.js +0 -1
  245. package/dist/hooks/validateArtifact/index.js +6 -65
  246. package/dist/hooks/validateArtifact/markdown.js +9 -10
  247. package/dist/hooks/validateArtifact/schema.js +96 -9
  248. package/dist/hooks/validateArtifact/traversal.js +12 -11
  249. package/dist/hooks/validateArtifact/violations.js +5 -3
  250. package/dist/migrate/v2HandoffManifest.js +8 -3
  251. package/dist/registries/activationContract.js +2 -0
  252. package/dist/registries/activationTuples.js +108 -0
  253. package/dist/registries/artifactProtocolIds.js +2 -1
  254. package/dist/registries/artifactRegistry.js +207 -60
  255. package/dist/registries/artifactSchemaProjection.js +45 -0
  256. package/dist/registries/capabilityContract.js +5 -21
  257. package/dist/registries/evaluatorHandoffContract.js +0 -1
  258. package/dist/registries/evidenceTierContract.js +371 -0
  259. package/dist/registries/glossaryAdviceContract.js +79 -0
  260. package/dist/registries/glossaryCaveatContract.js +67 -0
  261. package/dist/registries/glossaryConsumerContractValidation.js +787 -0
  262. package/dist/registries/glossaryEntryContract.js +757 -0
  263. package/dist/registries/glossaryTermIdentity.js +17 -0
  264. package/dist/registries/glossaryTermOccurrence.js +20 -0
  265. package/dist/registries/hybridRoute.js +274 -0
  266. package/dist/registries/hybridRouteReceipt.js +221 -0
  267. package/dist/registries/packagePublication.js +273 -0
  268. package/dist/registries/packageRegistry.js +184 -209
  269. package/dist/registries/todoReadinessContract.js +448 -0
  270. package/dist/registries/triggerLoader.js +7 -44
  271. package/dist/registries/verbosityBudgetContract.js +205 -0
  272. package/dist/release/releaseMetadata.js +155 -5
  273. package/dist/runtime/lifecycleAdapterContract.js +457 -0
  274. package/dist/runtime/lifecycleAdapters.js +777 -0
  275. package/dist/runtime/lifecycleAuthority.js +453 -0
  276. package/dist/runtime/lifecycleOperationContract.js +123 -0
  277. package/dist/runtime/lifecycleOperations.js +634 -0
  278. package/dist/runtime/lifecycleOwnershipJournal.js +622 -0
  279. package/dist/runtime/lifecyclePublication.js +415 -0
  280. package/dist/runtime/lifecycleSnapshot.js +438 -0
  281. package/dist/runtime/nativeResourceCleanup.js +502 -0
  282. package/dist/setup/opencode.js +20 -13
  283. package/dist/setup/opencodeConstants.js +1 -0
  284. package/dist/setup/sharedSkill.js +45 -0
  285. package/dist/setup/smokeChecks.js +14 -75
  286. package/dist/state/archiveDiscovery.js +580 -0
  287. package/dist/state/archivePublication.js +225 -0
  288. package/dist/state/archiveRecovery.js +237 -0
  289. package/dist/state/archiveReplay.js +53 -0
  290. package/dist/state/canonicalMigrationRecord.js +36 -0
  291. package/dist/state/changelog.js +221 -0
  292. package/dist/state/decisionEntities.js +367 -0
  293. package/dist/state/decisionLegacyValidation.js +215 -0
  294. package/dist/state/decisionMigrationProvenance.js +199 -0
  295. package/dist/state/decisionOverlay.js +254 -0
  296. package/dist/state/decisionRevision.js +256 -0
  297. package/dist/state/decisionRevisionMigration.js +89 -0
  298. package/dist/state/directRetrieval.js +323 -0
  299. package/dist/state/durability.js +324 -0
  300. package/dist/state/entityCutover.js +459 -0
  301. package/dist/state/entityCutoverGit.js +127 -0
  302. package/dist/state/entityGlossaryAuthority.js +13 -0
  303. package/dist/state/entityListProjection.js +187 -0
  304. package/dist/state/entityListRuntimeRegistry.js +85 -0
  305. package/dist/state/entityMigrationCausality.js +97 -0
  306. package/dist/state/entityMigrationIdentity.js +5 -0
  307. package/dist/state/entityMigrationPreview.js +840 -0
  308. package/dist/state/entityMigrationTodo.js +133 -0
  309. package/dist/state/entityPublicationContext.js +859 -0
  310. package/dist/state/entityRetrievalHelp.js +506 -0
  311. package/dist/state/entityStorage.js +899 -0
  312. package/dist/state/exactReplacementRecovery.js +18 -0
  313. package/dist/state/experimentArchive.js +63 -0
  314. package/dist/state/experimentIdentity.js +202 -0
  315. package/dist/state/healthEntities.js +262 -0
  316. package/dist/state/healthEntityValidation.js +18 -0
  317. package/dist/state/healthRepair.js +69 -0
  318. package/dist/state/installRoot.js +15 -7
  319. package/dist/state/legacyEntityCutoverEvidence.js +65 -0
  320. package/dist/state/legacyIdentity.js +47 -0
  321. package/dist/state/legacySummaryRecord.js +6 -0
  322. package/dist/state/listAccounting.js +54 -0
  323. package/dist/state/listClassification.js +17 -0
  324. package/dist/state/listCursor.js +42 -0
  325. package/dist/state/listRetrieval.js +781 -0
  326. package/dist/state/migrationSourceBinding.js +30 -0
  327. package/dist/state/objectiveExperimentEntities.js +322 -0
  328. package/dist/state/planEntities.js +1027 -0
  329. package/dist/state/planIdentity.js +47 -0
  330. package/dist/state/planLineageValidation.js +52 -0
  331. package/dist/state/planReplacementTransaction.js +475 -0
  332. package/dist/state/planRetrieval.js +313 -0
  333. package/dist/state/planTaskRetrieval.js +294 -0
  334. package/dist/state/progressEntities.js +512 -0
  335. package/dist/state/progressGlossaryCaveat.js +168 -0
  336. package/dist/state/progressPublicationOrder.js +19 -0
  337. package/dist/state/progressWritePolicy.js +33 -0
  338. package/dist/state/projectRoot.js +62 -0
  339. package/dist/state/projectionPolicy.js +190 -0
  340. package/dist/state/retrievalAuthority.js +156 -0
  341. package/dist/state/safeProjectFile.js +155 -0
  342. package/dist/state/startupAnalysis/benchmark.js +70 -9
  343. package/dist/state/startupAnalysis/contract.js +44 -10
  344. package/dist/state/startupAnalysis/helpers.js +1 -2
  345. package/dist/state/startupAnalysis/index.js +0 -1
  346. package/dist/state/startupAnalysis/metrics.js +0 -1
  347. package/dist/state/startupAnalysis/records.js +0 -1
  348. package/dist/state/startupAnalysis/report.js +0 -1
  349. package/dist/state/startupAnalysis/threshold.js +13 -1
  350. package/dist/state/startupAnalysis.js +0 -1
  351. package/dist/state/startupProjection.js +499 -0
  352. package/dist/state/stateMode.js +222 -0
  353. package/dist/state/stateStorageAuthority.js +47 -0
  354. package/dist/state/summaryEntityRead.js +25 -0
  355. package/dist/state/summaryMigrationProvenance.js +66 -0
  356. package/dist/state/summarySourceRowAuthority.js +36 -0
  357. package/dist/state/todoActivationSafety.js +58 -0
  358. package/dist/state/todoDocsEntities.js +1124 -0
  359. package/dist/state/todoDocsEntityValidation.js +158 -0
  360. package/dist/state/todoMarkdownProjection.js +51 -0
  361. package/dist/state/todoReconciliationActivation.js +182 -0
  362. package/dist/state/todoReconciliationInspection.js +171 -0
  363. package/dist/state/todoReconciliationRepair.js +318 -0
  364. package/dist/state/todoReconciliationTransaction.js +595 -0
  365. package/dist/state/write/assign.js +20 -0
  366. package/dist/state/write/candidateMutation.js +269 -0
  367. package/dist/state/write/errors.js +11 -0
  368. package/dist/state/write/experimentPublication.js +192 -0
  369. package/dist/state/write/explain.js +377 -0
  370. package/dist/state/write/fields.js +61 -0
  371. package/dist/state/write/glossaryPublication.js +263 -0
  372. package/dist/state/write/grammar.js +285 -0
  373. package/dist/state/write/helpers.js +29 -0
  374. package/dist/state/write/index.js +12 -0
  375. package/dist/state/write/input.js +391 -0
  376. package/dist/state/write/lock.js +837 -0
  377. package/dist/state/write/mutation.js +234 -0
  378. package/dist/state/write/operations.js +170 -0
  379. package/dist/state/write/planEvaluation.js +128 -0
  380. package/dist/state/write/planPublication.js +179 -0
  381. package/dist/state/write/runtimeOperations.js +146 -0
  382. package/dist/state/write/serialize.js +1 -0
  383. package/dist/state/write/transaction.js +57 -0
  384. package/dist/state/write/validate.js +7 -0
  385. package/dist/upgrade/appContentRefresh.js +77 -36
  386. package/dist/upgrade/appModel.js +0 -1
  387. package/dist/upgrade/atomicWriter.js +1 -0
  388. package/dist/upgrade/bundleEvidence.js +0 -1
  389. package/dist/upgrade/channels.js +6 -9
  390. package/dist/upgrade/compatibility.js +43 -17
  391. package/dist/upgrade/doctor.js +55 -32
  392. package/dist/upgrade/doctorClassifier.js +11 -1
  393. package/dist/upgrade/installedHooksRetirement.js +46 -40
  394. package/dist/upgrade/legacyAgentCleanup.js +187 -21
  395. package/dist/upgrade/lifecycleUpgrade.js +113 -0
  396. package/dist/upgrade/migrateArtifactsV2ToV3.js +334 -64
  397. package/dist/upgrade/migrationPublication.js +122 -0
  398. package/dist/upgrade/nextMajorDoctor.js +0 -1
  399. package/dist/upgrade/npxPlatformStatus.js +0 -1
  400. package/dist/upgrade/projectIntegration.js +121 -159
  401. package/dist/upgrade/projectIntegrationDecision.js +42 -85
  402. package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
  403. package/dist/upgrade/runtimeMigration.js +262 -453
  404. package/dist/upgrade/upgradeCommands.js +14 -1
  405. package/dist/upgrade/upgradeLock.js +85 -0
  406. package/dist/upgrade/upgradeOrchestrator.js +263 -59
  407. package/dist/upgrade/v3CapabilitySurface.js +2 -3
  408. package/dist/upgrade/versionResolution.js +0 -1
  409. package/dist/validate/activationArtifactEvidence.js +852 -0
  410. package/dist/validate/activationArtifactEvidenceTypes.js +12 -0
  411. package/dist/validate/activationConjunction.js +816 -0
  412. package/dist/validate/activationEvidenceManifest.js +531 -0
  413. package/dist/validate/activationPackageSemantics.js +29 -0
  414. package/dist/validate/appHomeContract.js +1 -7
  415. package/dist/validate/bootstrapAuthority.js +44 -0
  416. package/dist/validate/capability.js +11 -3
  417. package/dist/validate/crossCapability.js +14 -9
  418. package/dist/validate/retainedReferenceAuthority.js +879 -0
  419. package/dist/validate/selfAudit.js +39 -45
  420. package/dist/validate/v1LegacyCruft.js +131 -0
  421. package/dist/validate/vocabularyAuthority.js +8 -8
  422. package/package.json +41 -13
  423. package/bundle/references/adapters/cursor.md +0 -214
  424. package/bundle/references/adapters/opencode.md +0 -530
  425. package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
  426. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  427. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  428. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -554
  429. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  430. package/bundle/references/analysis/benchmark.md +0 -267
  431. package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
  432. package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
  433. package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -369
  434. package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -250
  435. package/bundle/references/cli/capability-tool-classification.yaml +0 -53
  436. package/bundle/references/cli/coexistence-probe.yaml +0 -13
  437. package/bundle/references/cli/parity-expected-actual-template.md +0 -30
  438. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
  439. package/bundle/references/cli/single-name-protocol.yaml +0 -42
  440. package/bundle/references/cli/upgrade-repair-wording.md +0 -45
  441. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +0 -98
  442. package/bundle/references/meta/documentation-inventory.md +0 -49
  443. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  444. package/bundle/skills/agentera/agents/audit.toml +0 -6
  445. package/bundle/skills/agentera/agents/build.toml +0 -6
  446. package/bundle/skills/agentera/agents/design.toml +0 -6
  447. package/bundle/skills/agentera/agents/discuss.toml +0 -6
  448. package/bundle/skills/agentera/agents/document.toml +0 -6
  449. package/bundle/skills/agentera/agents/optimize.toml +0 -6
  450. package/bundle/skills/agentera/agents/orchestrate.toml +0 -6
  451. package/bundle/skills/agentera/agents/plan.toml +0 -6
  452. package/bundle/skills/agentera/agents/profile.toml +0 -6
  453. package/bundle/skills/agentera/agents/research.toml +0 -6
  454. package/bundle/skills/agentera/agents/status.toml +0 -6
  455. package/bundle/skills/agentera/agents/vision.toml +0 -6
  456. package/bundle/skills/agentera/references/contract.md +0 -1048
  457. package/dist/analytics/extractCorpus/cli.js.map +0 -1
  458. package/dist/analytics/extractCorpus/copilotSessions.js.map +0 -1
  459. package/dist/analytics/extractCorpus/core.js.map +0 -1
  460. package/dist/analytics/extractCorpus/corpus.js.map +0 -1
  461. package/dist/analytics/extractCorpus/coverageAudit.js.map +0 -1
  462. package/dist/analytics/extractCorpus/cursorSessions.js.map +0 -1
  463. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +0 -1
  464. package/dist/analytics/extractCorpus/filesystemSources.js.map +0 -1
  465. package/dist/analytics/extractCorpus/index.js.map +0 -1
  466. package/dist/analytics/extractCorpus/jsonlSessions.js.map +0 -1
  467. package/dist/analytics/extractCorpus/sqliteCaps.js.map +0 -1
  468. package/dist/analytics/extractCorpus/sqliteSessions.js.map +0 -1
  469. package/dist/analytics/extractCorpus.js.map +0 -1
  470. package/dist/analytics/usageStats.js.map +0 -1
  471. package/dist/bin/agentera.js.map +0 -1
  472. package/dist/capabilities/audit/instructions.js.map +0 -1
  473. package/dist/capabilities/build/instructions.js.map +0 -1
  474. package/dist/capabilities/design/instructions.js.map +0 -1
  475. package/dist/capabilities/discuss/instructions.js.map +0 -1
  476. package/dist/capabilities/document/instructions.js.map +0 -1
  477. package/dist/capabilities/dokumentera/instructions.js +0 -6
  478. package/dist/capabilities/dokumentera/instructions.js.map +0 -1
  479. package/dist/capabilities/hej/instructions.js +0 -6
  480. package/dist/capabilities/hej/instructions.js.map +0 -1
  481. package/dist/capabilities/index.js.map +0 -1
  482. package/dist/capabilities/inspektera/instructions.js +0 -6
  483. package/dist/capabilities/inspektera/instructions.js.map +0 -1
  484. package/dist/capabilities/inspirera/instructions.js +0 -6
  485. package/dist/capabilities/inspirera/instructions.js.map +0 -1
  486. package/dist/capabilities/optimera/instructions.js +0 -6
  487. package/dist/capabilities/optimera/instructions.js.map +0 -1
  488. package/dist/capabilities/optimize/instructions.js.map +0 -1
  489. package/dist/capabilities/orchestrate/instructions.js.map +0 -1
  490. package/dist/capabilities/orkestrera/instructions.js +0 -6
  491. package/dist/capabilities/orkestrera/instructions.js.map +0 -1
  492. package/dist/capabilities/plan/instructions.js.map +0 -1
  493. package/dist/capabilities/planera/instructions.js +0 -6
  494. package/dist/capabilities/planera/instructions.js.map +0 -1
  495. package/dist/capabilities/profile/instructions.js.map +0 -1
  496. package/dist/capabilities/profilera/instructions.js +0 -6
  497. package/dist/capabilities/profilera/instructions.js.map +0 -1
  498. package/dist/capabilities/realisera/instructions.js +0 -6
  499. package/dist/capabilities/realisera/instructions.js.map +0 -1
  500. package/dist/capabilities/research/instructions.js.map +0 -1
  501. package/dist/capabilities/resonera/instructions.js +0 -6
  502. package/dist/capabilities/resonera/instructions.js.map +0 -1
  503. package/dist/capabilities/status/instructions.js.map +0 -1
  504. package/dist/capabilities/vision/instructions.js.map +0 -1
  505. package/dist/capabilities/visionera/instructions.js +0 -6
  506. package/dist/capabilities/visionera/instructions.js.map +0 -1
  507. package/dist/capabilities/visualisera/instructions.js +0 -5
  508. package/dist/capabilities/visualisera/instructions.js.map +0 -1
  509. package/dist/cli/appContext.js.map +0 -1
  510. package/dist/cli/argvalidate.js.map +0 -1
  511. package/dist/cli/capabilityContext/benchmark.js.map +0 -1
  512. package/dist/cli/capabilityContext/bespoke.js.map +0 -1
  513. package/dist/cli/capabilityContext/build.js.map +0 -1
  514. package/dist/cli/capabilityContext/closeout.js.map +0 -1
  515. package/dist/cli/capabilityContext/contract.js.map +0 -1
  516. package/dist/cli/capabilityContext/evidence.js.map +0 -1
  517. package/dist/cli/capabilityContext/index.js.map +0 -1
  518. package/dist/cli/capabilityContext/orchestration.js.map +0 -1
  519. package/dist/cli/capabilityContext/planState.js.map +0 -1
  520. package/dist/cli/capabilityContext/progress.js.map +0 -1
  521. package/dist/cli/capabilityContext/realisera.js +0 -174
  522. package/dist/cli/capabilityContext/realisera.js.map +0 -1
  523. package/dist/cli/capabilityContext/shared.js.map +0 -1
  524. package/dist/cli/capabilityContext/slim.js.map +0 -1
  525. package/dist/cli/capabilityContext/startup.js.map +0 -1
  526. package/dist/cli/capabilityContext/types.js.map +0 -1
  527. package/dist/cli/capabilityContext.js.map +0 -1
  528. package/dist/cli/commands/appHome.js.map +0 -1
  529. package/dist/cli/commands/backfill.js +0 -84
  530. package/dist/cli/commands/backfill.js.map +0 -1
  531. package/dist/cli/commands/capability.js.map +0 -1
  532. package/dist/cli/commands/compact.js.map +0 -1
  533. package/dist/cli/commands/doctor.js.map +0 -1
  534. package/dist/cli/commands/lint.js.map +0 -1
  535. package/dist/cli/commands/prime/bundleStatus.js.map +0 -1
  536. package/dist/cli/commands/prime/collectOrientationState.js.map +0 -1
  537. package/dist/cli/commands/prime/orientationOutput.js.map +0 -1
  538. package/dist/cli/commands/prime/routeOutput.js +0 -50
  539. package/dist/cli/commands/prime/routeOutput.js.map +0 -1
  540. package/dist/cli/commands/prime/types.js.map +0 -1
  541. package/dist/cli/commands/prime/v1Migration.js.map +0 -1
  542. package/dist/cli/commands/prime.js.map +0 -1
  543. package/dist/cli/commands/query.js.map +0 -1
  544. package/dist/cli/commands/report.js.map +0 -1
  545. package/dist/cli/commands/schema.js.map +0 -1
  546. package/dist/cli/commands/state/decisions.js.map +0 -1
  547. package/dist/cli/commands/state/docs.js.map +0 -1
  548. package/dist/cli/commands/state/experiments.js.map +0 -1
  549. package/dist/cli/commands/state/health.js.map +0 -1
  550. package/dist/cli/commands/state/index.js.map +0 -1
  551. package/dist/cli/commands/state/objective.js.map +0 -1
  552. package/dist/cli/commands/state/plan.js.map +0 -1
  553. package/dist/cli/commands/state/progress.js.map +0 -1
  554. package/dist/cli/commands/state/shared.js.map +0 -1
  555. package/dist/cli/commands/state/todo.js.map +0 -1
  556. package/dist/cli/commands/state.js +0 -1023
  557. package/dist/cli/commands/state.js.map +0 -1
  558. package/dist/cli/commands/upgrade.js.map +0 -1
  559. package/dist/cli/commands/validate.js.map +0 -1
  560. package/dist/cli/commands/verify.js.map +0 -1
  561. package/dist/cli/contracts/bundleStatus.js.map +0 -1
  562. package/dist/cli/contracts/orientationState.js.map +0 -1
  563. package/dist/cli/dispatch/argvParser.js.map +0 -1
  564. package/dist/cli/dispatch/check.js.map +0 -1
  565. package/dist/cli/dispatch/commands.js.map +0 -1
  566. package/dist/cli/dispatch/index.js.map +0 -1
  567. package/dist/cli/dispatch/lifecycle.js.map +0 -1
  568. package/dist/cli/dispatch/prime.js.map +0 -1
  569. package/dist/cli/dispatch/shared.js.map +0 -1
  570. package/dist/cli/dispatch/state.js.map +0 -1
  571. package/dist/cli/dispatch.js.map +0 -1
  572. package/dist/cli/errors.js.map +0 -1
  573. package/dist/cli/help.js.map +0 -1
  574. package/dist/cli/orientation/attention.js.map +0 -1
  575. package/dist/cli/orientation/corpusCoverage.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/startupCompletenessContract.js.map +0 -1
  579. package/dist/cli/stateQuery.js.map +0 -1
  580. package/dist/cli/structured.js.map +0 -1
  581. package/dist/cli/todoMarkdown.js.map +0 -1
  582. package/dist/cli/todoSeverity.js.map +0 -1
  583. package/dist/core/difflib.js.map +0 -1
  584. package/dist/core/envPaths.js.map +0 -1
  585. package/dist/core/git.js +0 -43
  586. package/dist/core/git.js.map +0 -1
  587. package/dist/core/jsonValue.js.map +0 -1
  588. package/dist/core/paths.js.map +0 -1
  589. package/dist/core/pyjson.js.map +0 -1
  590. package/dist/core/sourceRoot.js.map +0 -1
  591. package/dist/core/toml.js.map +0 -1
  592. package/dist/core/yaml.js.map +0 -1
  593. package/dist/eval/evalSkills.js.map +0 -1
  594. package/dist/eval/semanticEval.js.map +0 -1
  595. package/dist/eval/semanticFixtures.js.map +0 -1
  596. package/dist/hooks/common.js.map +0 -1
  597. package/dist/hooks/compaction/apply.js.map +0 -1
  598. package/dist/hooks/compaction/dryRun.js.map +0 -1
  599. package/dist/hooks/compaction/index.js.map +0 -1
  600. package/dist/hooks/compaction/parse.js.map +0 -1
  601. package/dist/hooks/compaction/retention.js.map +0 -1
  602. package/dist/hooks/compaction/status.js.map +0 -1
  603. package/dist/hooks/compaction/todoResolved.js +0 -137
  604. package/dist/hooks/compaction/todoResolved.js.map +0 -1
  605. package/dist/hooks/compaction/types.js.map +0 -1
  606. package/dist/hooks/compaction.js +0 -935
  607. package/dist/hooks/compaction.js.map +0 -1
  608. package/dist/hooks/cursorPreToolUse.js +0 -19
  609. package/dist/hooks/cursorPreToolUse.js.map +0 -1
  610. package/dist/hooks/cursorSessionStart.js +0 -79
  611. package/dist/hooks/cursorSessionStart.js.map +0 -1
  612. package/dist/hooks/sessionStart.js +0 -216
  613. package/dist/hooks/sessionStart.js.map +0 -1
  614. package/dist/hooks/sessionStop.js +0 -206
  615. package/dist/hooks/sessionStop.js.map +0 -1
  616. package/dist/hooks/todoLayout.js +0 -177
  617. package/dist/hooks/todoLayout.js.map +0 -1
  618. package/dist/hooks/validateArtifact/agentFacing.js.map +0 -1
  619. package/dist/hooks/validateArtifact/index.js.map +0 -1
  620. package/dist/hooks/validateArtifact/markdown.js.map +0 -1
  621. package/dist/hooks/validateArtifact/runtime.js +0 -86
  622. package/dist/hooks/validateArtifact/runtime.js.map +0 -1
  623. package/dist/hooks/validateArtifact/schema.js.map +0 -1
  624. package/dist/hooks/validateArtifact/traversal.js.map +0 -1
  625. package/dist/hooks/validateArtifact/violations.js.map +0 -1
  626. package/dist/hooks/validateArtifact.js +0 -924
  627. package/dist/hooks/validateArtifact.js.map +0 -1
  628. package/dist/migrate/v2HandoffManifest.js.map +0 -1
  629. package/dist/registries/artifactProtocolIds.js.map +0 -1
  630. package/dist/registries/artifactRegistry.js.map +0 -1
  631. package/dist/registries/capabilityContract.js.map +0 -1
  632. package/dist/registries/evaluatorHandoffContract.js.map +0 -1
  633. package/dist/registries/packageRegistry.js.map +0 -1
  634. package/dist/registries/runtimeAdapterRegistry.js +0 -316
  635. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  636. package/dist/registries/triggerLoader.js.map +0 -1
  637. package/dist/release/releaseMetadata.js.map +0 -1
  638. package/dist/routing/index.js +0 -2
  639. package/dist/routing/index.js.map +0 -1
  640. package/dist/routing/routeEngine.js +0 -189
  641. package/dist/routing/routeEngine.js.map +0 -1
  642. package/dist/setup/codex/agents.js +0 -96
  643. package/dist/setup/codex/agents.js.map +0 -1
  644. package/dist/setup/codex/cli.js +0 -161
  645. package/dist/setup/codex/cli.js.map +0 -1
  646. package/dist/setup/codex/configToml.js +0 -639
  647. package/dist/setup/codex/configToml.js.map +0 -1
  648. package/dist/setup/codex/constants.js +0 -29
  649. package/dist/setup/codex/constants.js.map +0 -1
  650. package/dist/setup/codex/installRoot.js +0 -64
  651. package/dist/setup/codex/installRoot.js.map +0 -1
  652. package/dist/setup/codex/state.js +0 -270
  653. package/dist/setup/codex/state.js.map +0 -1
  654. package/dist/setup/codex.js +0 -12
  655. package/dist/setup/codex.js.map +0 -1
  656. package/dist/setup/copilot.js +0 -227
  657. package/dist/setup/copilot.js.map +0 -1
  658. package/dist/setup/cursor.js +0 -129
  659. package/dist/setup/cursor.js.map +0 -1
  660. package/dist/setup/cursorSurfaces.js +0 -67
  661. package/dist/setup/cursorSurfaces.js.map +0 -1
  662. package/dist/setup/doctor/core.js +0 -300
  663. package/dist/setup/doctor/core.js.map +0 -1
  664. package/dist/setup/doctor/diagnostics.js +0 -240
  665. package/dist/setup/doctor/diagnostics.js.map +0 -1
  666. package/dist/setup/doctor/opencode.js +0 -313
  667. package/dist/setup/doctor/opencode.js.map +0 -1
  668. package/dist/setup/doctor/report.js +0 -425
  669. package/dist/setup/doctor/report.js.map +0 -1
  670. package/dist/setup/doctor.js +0 -10
  671. package/dist/setup/doctor.js.map +0 -1
  672. package/dist/setup/opencode.js.map +0 -1
  673. package/dist/setup/smokeChecks.js.map +0 -1
  674. package/dist/state/installRoot.js.map +0 -1
  675. package/dist/state/progressCommit.js +0 -289
  676. package/dist/state/progressCommit.js.map +0 -1
  677. package/dist/state/startupAnalysis/benchmark.js.map +0 -1
  678. package/dist/state/startupAnalysis/contract.js.map +0 -1
  679. package/dist/state/startupAnalysis/helpers.js.map +0 -1
  680. package/dist/state/startupAnalysis/index.js.map +0 -1
  681. package/dist/state/startupAnalysis/metrics.js.map +0 -1
  682. package/dist/state/startupAnalysis/records.js.map +0 -1
  683. package/dist/state/startupAnalysis/report.js.map +0 -1
  684. package/dist/state/startupAnalysis/threshold.js.map +0 -1
  685. package/dist/state/startupAnalysis.js.map +0 -1
  686. package/dist/upgrade/appContentRefresh.js.map +0 -1
  687. package/dist/upgrade/appModel.js.map +0 -1
  688. package/dist/upgrade/bundleEvidence.js.map +0 -1
  689. package/dist/upgrade/channels.js.map +0 -1
  690. package/dist/upgrade/cliProbe.js +0 -22
  691. package/dist/upgrade/cliProbe.js.map +0 -1
  692. package/dist/upgrade/coexistenceProbe.js +0 -107
  693. package/dist/upgrade/coexistenceProbe.js.map +0 -1
  694. package/dist/upgrade/compatibility.js.map +0 -1
  695. package/dist/upgrade/doctor.js.map +0 -1
  696. package/dist/upgrade/doctorClassifier.js.map +0 -1
  697. package/dist/upgrade/installedHooksRetirement.js.map +0 -1
  698. package/dist/upgrade/legacyAgentCleanup.js.map +0 -1
  699. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -570
  700. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  701. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
  702. package/dist/upgrade/nextMajorDoctor.js.map +0 -1
  703. package/dist/upgrade/npxPlatformStatus.js.map +0 -1
  704. package/dist/upgrade/projectIntegration.js.map +0 -1
  705. package/dist/upgrade/projectIntegrationDecision.js.map +0 -1
  706. package/dist/upgrade/runtimeMigration.js.map +0 -1
  707. package/dist/upgrade/upgradeCommands.js.map +0 -1
  708. package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
  709. package/dist/upgrade/v3CapabilitySurface.js.map +0 -1
  710. package/dist/upgrade/versionResolution.js.map +0 -1
  711. package/dist/validate/appHomeContract.js.map +0 -1
  712. package/dist/validate/capability.js.map +0 -1
  713. package/dist/validate/crossCapability.js.map +0 -1
  714. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +0 -93
  715. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +0 -1
  716. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +0 -488
  717. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +0 -1
  718. package/dist/validate/lifecycleAdapters/shared.js +0 -198
  719. package/dist/validate/lifecycleAdapters/shared.js.map +0 -1
  720. package/dist/validate/lifecycleAdapters.js +0 -62
  721. package/dist/validate/lifecycleAdapters.js.map +0 -1
  722. package/dist/validate/selfAudit.js.map +0 -1
  723. 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 ||
@@ -139,7 +74,7 @@ function resolveIntegrationTargets(args) {
139
74
  };
140
75
  }
141
76
  function commandChannel(args, channel, crossMajor, upgradeOutcome) {
142
- if (crossMajor && !shouldIncludeCrossMajorPlanItems(channel, upgradeOutcome)) {
77
+ if (crossMajor && upgradeOutcome && !shouldIncludeCrossMajorPlanItems(channel, upgradeOutcome)) {
143
78
  return resolveInvokedUpdateChannel({
144
79
  channel: "development",
145
80
  env: args.env,
@@ -149,122 +84,149 @@ function commandChannel(args, channel, crossMajor, upgradeOutcome) {
149
84
  }
150
85
  return channel;
151
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
+ }
152
108
  export function summarizeProjectIntegration(args) {
153
- const channel = resolveInvokedUpdateChannel({
109
+ const channel = args.resolvedChannel ?? resolveInvokedUpdateChannel({
154
110
  channel: args.channel ?? null,
155
111
  env: args.env,
156
112
  home: args.home,
157
113
  sourceRoot: args.sourceRoot,
158
114
  });
159
115
  const integrationTargets = resolveIntegrationTargets(args);
160
- const install = classifyInstall({ appHome: integrationTargets.installRoot, sourceRoot: args.sourceRoot });
116
+ const install = args.installClassification ?? classifyInstall({ appHome: integrationTargets.installRoot, sourceRoot: args.sourceRoot });
161
117
  const crossMajorDetected = args.crossMajorBoundaryDetected ??
162
118
  crossMajorBoundaryApplies(install, args.sourceRoot);
163
- const successorAnnounced = isStableSuccessorAnnounced(args.sourceRoot, "stable");
119
+ const successorAnnounced = args.successorAnnounced ?? isStableSuccessorAnnounced(args.sourceRoot, "stable");
164
120
  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({
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({
185
141
  appHome: integrationTargets.installRoot,
142
+ project: args.project,
143
+ home: args.home,
144
+ force: false,
186
145
  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;
146
+ channel: args.channel ?? null,
147
+ env: args.env,
148
+ }, channel);
149
+ const crossMajorMigration = crossMajor && upgradeOutcome !== null && shouldIncludeCrossMajorPlanItems(channel, upgradeOutcome);
198
150
  const isNpx = isNpxBundleRoot(args.sourceRoot);
199
151
  const classificationBundleStatus = isNpx && integrationTargets.platformBundleStatus !== undefined
200
152
  ? integrationTargets.platformBundleStatus
201
153
  : integrationTargets.bundleStatus;
202
154
  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
155
+ ? appNeedsUpgrade(integrationTargets.platformBundleStatus ?? APP_UP_TO_DATE)
206
156
  : appNeedsUpgrade(classificationBundleStatus);
207
- const scenario = classifyIntegrationScenario({
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,
167
+ });
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 = {
208
176
  bundleStatus: classificationBundleStatus,
209
- pendingRuntimeCount: pending.length,
210
- pendingArtifactCount: v1Artifacts.length,
177
+ pendingArtifactCount: v1Artifacts.length + pendingProjectMigration.length,
211
178
  crossMajor,
212
179
  crossMajorMigration,
213
- crossMajorNeedsPreview,
180
+ crossMajorNeedsPreview: Boolean(majorBoundaryBlock) || (crossMajor && !crossMajorMigration),
214
181
  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
- }
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);
234
190
  const cmdsChannel = commandChannel(args, channel, crossMajor, upgradeOutcome);
235
- const onlyPhases = integrationScenarioOnlyPhases(scenario);
236
- const installRootForCommands = integrationScenarioNeedsInstallRoot(scenario)
237
- ? integrationTargets.installRoot
191
+ const cmds = hasUpgradeWork
192
+ ? buildUpgradeCommands({
193
+ project: args.project,
194
+ installRoot: null,
195
+ channel: cmdsChannel,
196
+ only: null,
197
+ cwdDefault: true,
198
+ })
238
199
  : null;
239
- const cmds = buildUpgradeCommands({
240
- project: args.project,
241
- installRoot: installRootForCommands,
242
- channel: cmdsChannel,
243
- only: onlyPhases,
244
- cwdDefault: true,
245
- });
200
+ const message = hasUpgradeWork
201
+ ? `${integrationScenarioMessage(scenario, scenarioFacts)} ${guidanceMessage}`
202
+ : guidanceMessage;
246
203
  return {
247
- recommendation: "upgrade",
204
+ recommendation: aggregateStatus === "upgrade" ? "upgrade" : "stay",
248
205
  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,
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
+ },
257
220
  };
258
221
  }
259
222
  export function projectIntegrationAttention(summary) {
260
- if (summary.recommendation === "stay") {
223
+ if (summary.recommendation === "stay" && summary.aggregate_status === "stay") {
261
224
  return null;
262
225
  }
263
226
  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"))
227
+ const prefix = summary.pending_artifacts > 0
266
228
  ? "normal"
267
229
  : "degraded";
268
- return `${prefix}: ${summary.message} Preview ${preview}.`;
230
+ const previewText = summary.dry_run_command ? ` Preview ${preview}.` : "";
231
+ return `${prefix}: ${summary.message}${previewText}`;
269
232
  }
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
+ }