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,6 +1,108 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import YAML, { isMap, isScalar, isSeq } from "yaml";
1
4
  import { resolvePath } from "../../core/paths.js";
2
5
  import { runCompaction } from "../../hooks/compaction/index.js";
3
6
  import { emitStructured } from "../structured.js";
7
+ import { boundStructuredProjection } from "../../state/projectionPolicy.js";
8
+ const TODO_REFERENCE_DIAGNOSTIC_LIMIT = 20;
9
+ function compareText(left, right) {
10
+ return left < right ? -1 : left > right ? 1 : 0;
11
+ }
12
+ function isDirectory(directory) {
13
+ try {
14
+ const stat = fs.lstatSync(directory);
15
+ return stat.isDirectory() && !stat.isSymbolicLink();
16
+ }
17
+ catch {
18
+ return false;
19
+ }
20
+ }
21
+ function yamlFilesBelow(directory) {
22
+ if (!isDirectory(directory))
23
+ return [];
24
+ return fs.readdirSync(directory, { withFileTypes: true })
25
+ .sort((left, right) => compareText(left.name, right.name))
26
+ .flatMap((entry) => {
27
+ const candidate = path.join(directory, entry.name);
28
+ if (entry.isDirectory() && !entry.isSymbolicLink())
29
+ return yamlFilesBelow(candidate);
30
+ return entry.isFile() && path.extname(entry.name) === ".yaml" ? [candidate] : [];
31
+ });
32
+ }
33
+ function activeStateYamlFiles(project) {
34
+ const stateRoot = path.join(project, ".agentera");
35
+ if (!isDirectory(stateRoot))
36
+ return [];
37
+ const topLevel = fs.readdirSync(stateRoot, { withFileTypes: true })
38
+ .filter((entry) => entry.isFile() && path.extname(entry.name) === ".yaml")
39
+ .map((entry) => path.join(stateRoot, entry.name));
40
+ return [...topLevel, ...yamlFilesBelow(path.join(stateRoot, "entities"))]
41
+ .sort(compareText);
42
+ }
43
+ function stringScalarValues(node) {
44
+ if (isScalar(node))
45
+ return typeof node.value === "string" ? [node.value] : [];
46
+ if (isMap(node))
47
+ return node.items.flatMap((pair) => stringScalarValues(pair.value));
48
+ if (isSeq(node))
49
+ return node.items.flatMap(stringScalarValues);
50
+ return [];
51
+ }
52
+ function volatileTodoReferenceDiagnostics(project) {
53
+ const matches = [];
54
+ for (const file of activeStateYamlFiles(project)) {
55
+ const relativePath = path.relative(project, file).split(path.sep).join("/");
56
+ const contents = fs.readFileSync(file, "utf8");
57
+ let order = 0;
58
+ for (const document of YAML.parseAllDocuments(contents)) {
59
+ for (const value of stringScalarValues(document.contents)) {
60
+ for (const match of value.matchAll(/TODO line \d+|TODO\.md:\d+/g)) {
61
+ matches.push({ path: relativePath, reference: match[0], order: order++ });
62
+ }
63
+ }
64
+ }
65
+ }
66
+ matches.sort((left, right) => compareText(left.path, right.path) || left.order - right.order);
67
+ return {
68
+ diagnostics: matches.slice(0, TODO_REFERENCE_DIAGNOSTIC_LIMIT).map(({ path, reference }) => ({ path, reference })),
69
+ omitted_count: Math.max(0, matches.length - TODO_REFERENCE_DIAGNOSTIC_LIMIT),
70
+ };
71
+ }
72
+ function volatileTodoReferenceGate(project, mode) {
73
+ const { diagnostics, omitted_count } = volatileTodoReferenceDiagnostics(project);
74
+ if (!diagnostics.length)
75
+ return null;
76
+ const count = diagnostics.length + omitted_count;
77
+ return {
78
+ status: {
79
+ artifact: "state_todo_references",
80
+ path: path.join(project, ".agentera"),
81
+ classification: "hygiene",
82
+ active_count: count,
83
+ archive_count: 0,
84
+ total_count: count,
85
+ over_limit_count: 0,
86
+ protected_overflow_count: 0,
87
+ exists: true,
88
+ reason: `${count} active state TODO reference${count === 1 ? "" : "s"} use volatile line syntax`,
89
+ },
90
+ mode,
91
+ action: "volatile_todo_reference",
92
+ changed: false,
93
+ result: null,
94
+ message: "replace TODO line references with stable TODO anchors",
95
+ diagnostics,
96
+ omitted_count,
97
+ };
98
+ }
99
+ function gatedCompactionOperations(project, mode) {
100
+ const hygiene = volatileTodoReferenceGate(project, mode);
101
+ if (mode === "fix" && hygiene)
102
+ return [hygiene];
103
+ const operations = runCompaction(project, mode);
104
+ return hygiene ? [...operations, hygiene] : operations;
105
+ }
4
106
  function pyStr(value) {
5
107
  if (value === null || value === undefined)
6
108
  return "None";
@@ -21,34 +123,59 @@ function compactionOperationPayload(op) {
21
123
  archive_count: status.archive_count,
22
124
  total_count: status.total_count,
23
125
  over_limit_count: status.over_limit_count,
126
+ ...(status.pending_summarization_count !== undefined
127
+ ? { pending_summarization_count: status.pending_summarization_count }
128
+ : {}),
129
+ ...(status.projection_state ? { projection_state: status.projection_state } : {}),
24
130
  protected_overflow_count: status.protected_overflow_count ?? 0,
25
131
  mode: op.mode,
26
132
  action: op.action,
27
133
  changed: op.changed,
28
134
  message: op.message,
29
135
  reason: status.reason,
136
+ ...(status.projection_recovery ? { recovery: status.projection_recovery } : {}),
137
+ ...(op.diagnostics
138
+ ? {
139
+ diagnostics: op.diagnostics.map(({ path, reference }) => ({ path, reference })),
140
+ omitted_count: op.omitted_count ?? 0,
141
+ }
142
+ : {}),
30
143
  };
31
144
  if (op.result !== null) {
145
+ const recovery = op.result.recovery;
32
146
  payload.result = {
33
147
  active_before: op.result.full_before,
34
148
  archive_before: op.result.oneline_before,
35
149
  active_after: op.result.full_after,
36
150
  archive_after: op.result.oneline_after,
37
151
  dropped: op.result.dropped,
152
+ omitted_count: op.result.omitted_count ?? 0,
153
+ ...(op.result.omission_reason ? { omission_reason: op.result.omission_reason } : {}),
38
154
  changed: op.result.changed,
155
+ ...(recovery ? { recovery } : {}),
39
156
  };
40
157
  }
41
158
  return payload;
42
159
  }
43
160
  function compactionGuidance(mode, operations) {
44
161
  const over = operations.filter((op) => op.action === "over_limit" || op.action === "pending_fix");
162
+ const projections = operations.filter((op) => op.action === "projection" || op.action === "pending_projection");
163
+ const formatting = operations.filter((op) => op.action === "formatting" || op.action === "pending_formatting");
45
164
  const protectedOps = operations.filter((op) => op.action === "protected_overflow");
46
165
  const errors = operations.filter((op) => op.action === "error");
47
- const checkCommand = "npx -y agentera compact --mode check --format json";
48
- const fixCommand = "npx -y agentera compact --mode fix --format json";
166
+ const refused = operations.filter((op) => op.action === "refused");
167
+ const volatileTodoReferences = operations.filter((op) => op.action === "volatile_todo_reference");
168
+ const checkCommand = "npx -y agentera check compact --mode check --format json";
169
+ const fixCommand = "npx -y agentera check compact --mode fix --format json";
49
170
  if (errors.length > 0) {
50
171
  return `Inspect the reported errors, repair invalid artifacts, then rerun \`${checkCommand}\`.`;
51
172
  }
173
+ if (volatileTodoReferences.length > 0) {
174
+ return `Replace volatile TODO line references in active state with stable anchors, then rerun \`${checkCommand}\`.`;
175
+ }
176
+ if (refused.length > 0) {
177
+ return "Projection changes were safely refused until each full entry has a verified numbered archive; inspect recovery metadata and retry after recovery.";
178
+ }
52
179
  if (protectedOps.length > 0) {
53
180
  const artifacts = protectedOps.map((op) => op.status.artifact).join(", ");
54
181
  return (`Protected-overflow review pressure blocks compaction for: ${artifacts}. ` +
@@ -61,23 +188,37 @@ function compactionGuidance(mode, operations) {
61
188
  if (mode === "fix" && over.length > 0) {
62
189
  return "Some artifacts remain over limit; inspect skipped or unsupported artifacts before manual remediation.";
63
190
  }
64
- return "No repair needed. Compactable artifacts are within uniform_10_40_50 limits.";
191
+ if (formatting.length > 0) {
192
+ const artifacts = formatting.map((op) => op.status.artifact).join(", ");
193
+ return mode === "check"
194
+ ? `Summary formatting is pending for: ${artifacts}. Safe fix: \`${fixCommand}\`.`
195
+ : `Summary formatting remains pending for: ${artifacts}; inspect the artifact diagnostics.`;
196
+ }
197
+ if (projections.length > 0) {
198
+ return "Projection defaults are bounded; numbered archive records remain complete and authoritative.";
199
+ }
200
+ return "No repair needed. Compactable artifacts are within the configured projection defaults.";
65
201
  }
66
202
  function compactionSummary(mode, operations) {
67
203
  const counts = {};
68
204
  for (const op of operations)
69
205
  counts[op.action] = (counts[op.action] ?? 0) + 1;
70
206
  const overLimit = operations.filter((op) => op.action === "over_limit" || op.action === "pending_fix").length;
207
+ const projections = operations.filter((op) => op.action === "projection" || op.action === "pending_projection").length;
208
+ const formatting = operations.filter((op) => op.action === "formatting" || op.action === "pending_formatting").length;
71
209
  const protectedOverflow = operations.filter((op) => op.action === "protected_overflow").length;
72
210
  const errors = operations.filter((op) => op.action === "error").length;
211
+ const volatileTodoReferences = operations.filter((op) => op.action === "volatile_todo_reference").length;
73
212
  const changed = operations.filter((op) => op.changed).length;
74
- const status = errors || protectedOverflow || (mode === "check" && overLimit) ? "fail" : "pass";
213
+ const status = errors || volatileTodoReferences || (mode === "check" && (overLimit || formatting)) ? "fail" : "pass";
75
214
  return {
76
215
  status,
77
216
  mode,
78
217
  artifact_count: operations.length,
79
218
  over_limit_count: overLimit,
219
+ formatting_count: formatting,
80
220
  protected_overflow_count: protectedOverflow,
221
+ projection_count: projections,
81
222
  error_count: errors,
82
223
  changed_count: changed,
83
224
  action_counts: counts,
@@ -87,9 +228,10 @@ function compactionSummary(mode, operations) {
87
228
  function compactionExitCode(mode, operations) {
88
229
  if (operations.some((op) => op.action === "error"))
89
230
  return 2;
90
- if (operations.some((op) => op.action === "protected_overflow"))
231
+ if (operations.some((op) => op.action === "volatile_todo_reference"))
91
232
  return 1;
92
- if (mode === "check" && operations.some((op) => op.action === "over_limit"))
233
+ if (mode === "check" &&
234
+ operations.some((op) => op.action === "over_limit" || op.action === "formatting"))
93
235
  return 1;
94
236
  return 0;
95
237
  }
@@ -107,13 +249,14 @@ function emitCompactionPayload(payload, mode, format, out) {
107
249
  const summary = payload.summary;
108
250
  const project = payload.project;
109
251
  if (format === "json") {
110
- emitStructured(payload, "json", out);
252
+ emitStructured(boundStructuredProjection(payload, "compact", "json"), "json", out);
111
253
  return;
112
254
  }
113
255
  out(`status=${summary.status} | mode=${mode} | project=${project}\n`);
114
256
  out("counts=" +
115
257
  `artifacts:${summary.artifact_count} ` +
116
258
  `over_limit:${summary.over_limit_count} ` +
259
+ `formatting:${summary.formatting_count} ` +
117
260
  `protected_overflow:${summary.protected_overflow_count} ` +
118
261
  `errors:${summary.error_count} ` +
119
262
  `changed:${summary.changed_count}\n`);
@@ -122,8 +265,17 @@ function emitCompactionPayload(payload, mode, format, out) {
122
265
  `classification=${item.classification} | path=${item.path} | ` +
123
266
  `active=${pyStr(item.active_count)} | archive=${pyStr(item.archive_count)} | ` +
124
267
  `total=${pyStr(item.total_count)} | over=${pyStr(item.over_limit_count)} | ` +
268
+ `pending_summarization=${pyStr(item.pending_summarization_count)} | ` +
125
269
  `protected_overflow=${item.protected_overflow_count} | ` +
126
270
  `message=${item.message}\n`);
271
+ if (Array.isArray(item.diagnostics)) {
272
+ for (const diagnostic of item.diagnostics) {
273
+ if (!diagnostic || typeof diagnostic !== "object" || Array.isArray(diagnostic))
274
+ continue;
275
+ out(` diagnostic=${String(diagnostic.path)}: ${String(diagnostic.reference)}\n`);
276
+ }
277
+ out(` omitted_count=${pyStr(item.omitted_count)}\n`);
278
+ }
127
279
  }
128
280
  out(`guidance=${summary.guidance}\n`);
129
281
  }
@@ -131,18 +283,16 @@ export function cmdCompact(args, io = {}) {
131
283
  const out = io.out ?? ((t) => process.stdout.write(t));
132
284
  const mode = args.mode ?? "check";
133
285
  const project = resolvePath(args.project ?? process.cwd());
134
- const operations = runCompaction(project, mode);
135
- const payload = compactionPayload("compact", project, mode, operations);
286
+ const operations = gatedCompactionOperations(project, mode);
287
+ const payload = compactionPayload("check compact", project, mode, operations);
136
288
  emitCompactionPayload(payload, mode, args.format ?? "text", out);
137
289
  return compactionExitCode(mode, operations);
138
290
  }
139
291
  export function cmdGate(args, io = {}) {
140
292
  const out = io.out ?? ((t) => process.stdout.write(t));
141
293
  const project = resolvePath(args.project ?? process.cwd());
142
- const operations = runCompaction(project, "check");
143
- const payload = compactionPayload("gate", project, "check", operations);
144
- payload.gate = "compaction";
294
+ const operations = gatedCompactionOperations(project, "check");
295
+ const payload = compactionPayload("check compact", project, "check", operations);
145
296
  emitCompactionPayload(payload, "check", args.format ?? "text", out);
146
297
  return compactionExitCode("check", operations);
147
298
  }
148
- //# sourceMappingURL=compact.js.map
@@ -5,8 +5,11 @@ import { resolveDoctorInstallRoot, resolveSourceRootStrict, } from "../../upgrad
5
5
  import { runNpmSmokeChecks } from "../../setup/smokeChecks.js";
6
6
  import { APP_MANUAL_REVIEW_NEEDED, APP_MIGRATION_NEEDED, APP_OUTDATED, APP_REPAIR_NEEDED, APP_UP_TO_DATE, appLifecycleActionNoun, buildDoctorStatus, EXPECTED_STATE_COMMANDS, doctorParityJsonEnvelope, } from "../../upgrade/doctor.js";
7
7
  import { classifyInstall } from "../../upgrade/compatibility.js";
8
- import { prependCoexistenceDoctorSection, resolveCoexistenceDoctorLines, } from "../../upgrade/coexistenceProbe.js";
9
8
  import { prependNextMajorDoctorSection, resolveNextMajorDoctorLines, } from "../../upgrade/nextMajorDoctor.js";
9
+ import { diagnoseCanonicalSkill } from "../../setup/sharedSkill.js";
10
+ import { diagnoseRetiredResources } from "../../upgrade/retiredResourceDiagnostics.js";
11
+ import { commandText } from "../../upgrade/upgradeCommands.js";
12
+ import { inspectTodoReconciliationState } from "../../state/todoReconciliationInspection.js";
10
13
  const PLAIN_STATUS = {
11
14
  pending: "ready to fix",
12
15
  applied: "fixed",
@@ -23,7 +26,36 @@ const PLAIN_STATUS = {
23
26
  function plainStatus(value) {
24
27
  return PLAIN_STATUS[value] ?? value.replace(/_/g, " ").replace(/-/g, " ");
25
28
  }
26
- export function renderDoctorStatus(status) {
29
+ function previewCommand(resource, context) {
30
+ return commandText([
31
+ "npx",
32
+ "-y",
33
+ "agentera@next",
34
+ "doctor",
35
+ "--home",
36
+ context.home,
37
+ "--project",
38
+ context.project,
39
+ "--install-root",
40
+ context.installRoot,
41
+ "--retired-resource",
42
+ resource.id,
43
+ "--format",
44
+ "json",
45
+ ]);
46
+ }
47
+ function doctorRetiredResources(diagnosis, context) {
48
+ return {
49
+ ...diagnosis,
50
+ resources: diagnosis.resources.map((resource) => ({
51
+ id: resource.id,
52
+ status: resource.status,
53
+ evidence: resource.evidence,
54
+ preview_command: previewCommand(resource, context),
55
+ })),
56
+ };
57
+ }
58
+ export function renderDoctorStatus(status, retiredResources) {
27
59
  const actionNoun = appLifecycleActionNoun(String(status.status));
28
60
  const lines = [
29
61
  "Agentera doctor",
@@ -41,6 +73,34 @@ export function renderDoctorStatus(status) {
41
73
  if (signal.missingCommands && signal.missingCommands.length > 0) {
42
74
  lines.push(` Missing command: ${signal.missingCommands.join(", ")}`);
43
75
  }
76
+ if (signal.kind === "todo_reconciliation") {
77
+ if (signal.reconciliationState)
78
+ lines.push(` Reconciliation state: ${signal.reconciliationState}`);
79
+ if (signal.reconciliationCounts) {
80
+ const counts = ["matched", "converted", "retained", "duplicate", "stale", "conflicting"]
81
+ .filter((name) => name in signal.reconciliationCounts)
82
+ .map((name) => `${name}=${signal.reconciliationCounts[name]}`)
83
+ .join(" | ");
84
+ lines.push(` Counts: ${counts} | omitted=${String(signal.reconciliationOmittedCount ?? 0)}`);
85
+ }
86
+ if (signal.previewCommand)
87
+ lines.push(` Preview: ${signal.previewCommand}`);
88
+ if (signal.applyCommand)
89
+ lines.push(` Apply: ${signal.applyCommand}`);
90
+ if (signal.reconciliationState === "unsafe_inactive" && signal.recoveryCommand)
91
+ lines.push(` Recovery: ${signal.recoveryCommand}`);
92
+ }
93
+ }
94
+ }
95
+ const resources = Array.isArray(retiredResources?.resources) ? retiredResources.resources : [];
96
+ const todoReconciliation = status.signals?.some((signal) => signal.kind === "todo_reconciliation") ?? false;
97
+ const unsafeInactiveTodo = status.signals?.some((signal) => signal.kind === "todo_reconciliation" && signal.reconciliationState === "unsafe_inactive") ?? false;
98
+ if (resources.length > 0) {
99
+ lines.push("");
100
+ lines.push("Retired native resources:");
101
+ for (const resource of resources) {
102
+ lines.push(` - action required: ${String(resource.id)}`);
103
+ lines.push(` Preview: ${String(resource.preview_command)}`);
44
104
  }
45
105
  }
46
106
  if (status.status === APP_UP_TO_DATE) {
@@ -59,6 +119,18 @@ export function renderDoctorStatus(status) {
59
119
  lines.push(" 3. Then retry Agentera once a retry command is available.");
60
120
  }
61
121
  }
122
+ else if (unsafeInactiveTodo) {
123
+ lines.push("");
124
+ lines.push("Next: supply the complete owner mapping, preview the reported correction, then use its exact apply_command.");
125
+ }
126
+ else if (todoReconciliation) {
127
+ lines.push("");
128
+ lines.push("Next: run the reported TODO reconciliation preview, review its bounded effect, then use its exact apply_command.");
129
+ }
130
+ else if (resources.length > 0) {
131
+ lines.push("");
132
+ lines.push("Next: review each read-only retirement preview before any explicit cleanup.");
133
+ }
62
134
  else {
63
135
  lines.push("");
64
136
  lines.push("Next: choose a safer Agentera directory, or use `--force` only after checking the directory is safe to replace.");
@@ -89,16 +161,52 @@ export function cmdDoctor(args, io = {}) {
89
161
  return 2;
90
162
  }
91
163
  const home = resolvePath(expanduser(args.home ?? os.homedir()));
164
+ const project = resolvePath(expanduser(args.project ?? process.cwd()));
92
165
  const [installRoot, rootSource] = resolveDoctorInstallRoot(args.installRoot ?? null, { home, sourceRoot });
93
166
  const expectedCommands = args.expectCommand && args.expectCommand.length > 0 ? args.expectCommand : [...EXPECTED_STATE_COMMANDS];
94
167
  const status = buildDoctorStatus(installRoot, {
95
168
  rootSource,
96
169
  sourceRoot,
97
170
  home,
98
- project: resolvePath(expanduser(args.project ?? process.cwd())),
171
+ project,
99
172
  expectedVersion: args.expectedVersion ?? null,
100
173
  expectedCommands,
101
174
  });
175
+ const todoReconciliation = inspectTodoReconciliationState(project, sourceRoot);
176
+ if (todoReconciliation?.status === "action_required") {
177
+ status.signals.push({
178
+ status: APP_MANUAL_REVIEW_NEEDED,
179
+ kind: "todo_reconciliation",
180
+ message: `action-required: TODO reconciliation is ${todoReconciliation.state === "inactive" ? "inactive" : todoReconciliation.state === "unsafe_inactive" ? "unsafe inactive" : todoReconciliation.state === "unsafe_active" ? "unsafe active" : "in an invalid lifecycle state"}`,
181
+ reconciliationState: todoReconciliation.state,
182
+ reconciliationCounts: todoReconciliation.counts,
183
+ reconciliationOmittedCount: todoReconciliation.omitted_count,
184
+ previewCommand: todoReconciliation.preview_command,
185
+ applyCommand: todoReconciliation.apply_command,
186
+ recoveryCommand: todoReconciliation.recovery_command,
187
+ });
188
+ if (status.status === APP_UP_TO_DATE)
189
+ status.status = APP_MANUAL_REVIEW_NEEDED;
190
+ }
191
+ const retiredDiagnosis = diagnoseRetiredResources({
192
+ home,
193
+ project,
194
+ installRoot,
195
+ resourceId: args.retiredResource ?? null,
196
+ });
197
+ const retiredResources = doctorRetiredResources(retiredDiagnosis, { home, project, installRoot });
198
+ if (retiredDiagnosis.status === "action_required") {
199
+ status.signals.push({
200
+ status: APP_MANUAL_REVIEW_NEEDED,
201
+ kind: "retired_native_resources",
202
+ message: "retired native resource candidates need ownership review before cleanup",
203
+ resourceIds: retiredDiagnosis.resources.map((resource) => resource.id),
204
+ omittedResourceCount: retiredDiagnosis.omittedResourceCount,
205
+ });
206
+ if (status.status === APP_UP_TO_DATE)
207
+ status.status = APP_MANUAL_REVIEW_NEEDED;
208
+ }
209
+ const sharedSkill = diagnoseCanonicalSkill(home);
102
210
  let smokeReport = null;
103
211
  if (args.smoke) {
104
212
  smokeReport = runNpmSmokeChecks(sourceRoot, process.env, {
@@ -107,17 +215,14 @@ export function cmdDoctor(args, io = {}) {
107
215
  }
108
216
  if ((args.format ?? "text") === "json") {
109
217
  const payload = doctorParityJsonEnvelope(status);
218
+ payload.shared_skill = sharedSkill;
219
+ payload.retired_resources = retiredResources;
110
220
  if (smokeReport)
111
221
  payload.smoke = smokeReport;
112
222
  out(pyJsonIndentSorted(payload) + "\n");
113
223
  }
114
224
  else {
115
225
  const install = classifyInstall({ appHome: installRoot, sourceRoot });
116
- const coexistenceLines = resolveCoexistenceDoctorLines({
117
- home,
118
- sourceRoot,
119
- env: { ...process.env, HOME: home },
120
- });
121
226
  const nextMajorLines = resolveNextMajorDoctorLines({
122
227
  sourceRoot,
123
228
  home,
@@ -125,7 +230,9 @@ export function cmdDoctor(args, io = {}) {
125
230
  install,
126
231
  env: process.env,
127
232
  });
128
- const body = prependCoexistenceDoctorSection(prependNextMajorDoctorSection(renderDoctorStatus(status), nextMajorLines), coexistenceLines) + (smokeReport ? renderDoctorSmoke(smokeReport) : "");
233
+ const body = prependNextMajorDoctorSection(renderDoctorStatus(status, retiredResources), nextMajorLines) +
234
+ `\nShared skill\n ${String(sharedSkill.status)}: ${String(sharedSkill.message)}\n path: ${String(sharedSkill.path)}\n` +
235
+ (smokeReport ? renderDoctorSmoke(smokeReport) : "");
129
236
  out(body + "\n");
130
237
  }
131
238
  if (args.smoke) {
@@ -133,6 +240,5 @@ export function cmdDoctor(args, io = {}) {
133
240
  if (failCount > 0)
134
241
  return 1;
135
242
  }
136
- return status.status === APP_UP_TO_DATE ? 0 : 1;
243
+ return status.status === APP_UP_TO_DATE && sharedSkill.status === "pass" ? 0 : 1;
137
244
  }
138
- //# sourceMappingURL=doctor.js.map
@@ -0,0 +1,81 @@
1
+ import { resolvePath } from "../../core/paths.js";
2
+ import { resolveSourceRoot } from "../../core/sourceRoot.js";
3
+ import { emitStructured } from "../structured.js";
4
+ import { stateDurabilityContract } from "../../state/archiveDiscovery.js";
5
+ import { StateRetrievalFailure } from "../../state/directRetrieval.js";
6
+ import { inspectDurability, renderDurabilityText, } from "../../state/durability.js";
7
+ import { entityArtifactValues } from "../../state/entityStorage.js";
8
+ export function requestedDurabilityFormat(argv) {
9
+ for (let index = 0; index < argv.length; index += 1) {
10
+ if (argv[index] === "--format") {
11
+ const value = argv[index + 1];
12
+ if (value === "json" || value === "yaml")
13
+ return value;
14
+ }
15
+ if (argv[index].startsWith("--format=")) {
16
+ const value = argv[index].slice("--format=".length);
17
+ if (value === "json" || value === "yaml")
18
+ return value;
19
+ }
20
+ }
21
+ return "text";
22
+ }
23
+ export function validateDurabilityArgs(args, sourceRoot) {
24
+ const contract = stateDurabilityContract(sourceRoot);
25
+ const validArtifacts = entityArtifactValues(sourceRoot);
26
+ if (args.number !== undefined)
27
+ throw entityDurabilityFailure("entity mode rejects --number; use --artifact ARTIFACT --id ID", args.artifact, args.id ?? undefined, validArtifacts);
28
+ if (!args.artifact || !args.id)
29
+ throw entityDurabilityFailure("entity-mode durability requires --artifact ARTIFACT --id ID", args.artifact, args.id ?? undefined, validArtifacts);
30
+ if (!/^[a-z]{10}$/.test(args.id))
31
+ throw entityDurabilityFailure(`entity ID '${args.id}' must be ten lowercase letters`, args.artifact, args.id, validArtifacts);
32
+ if (args.artifact && !validArtifacts.includes(args.artifact)) {
33
+ throw entityDurabilityFailure(`unsupported durability artifact '${args.artifact}'`, args.artifact, args.id ?? undefined, validArtifacts);
34
+ }
35
+ if (args.limit !== undefined && (args.limit < 1 || args.limit > contract.maximumLimit)) {
36
+ throw entityDurabilityFailure(`argument --limit must be between 1 and ${contract.maximumLimit}`, args.artifact, args.id ?? undefined, validArtifacts);
37
+ }
38
+ }
39
+ export function entityDurabilityFailure(message, artifact, id, validValues) {
40
+ return new StateRetrievalFailure({
41
+ schemaVersion: "agentera.stateFailure.v1",
42
+ status: "fail",
43
+ error: {
44
+ class: "invalid_request",
45
+ message,
46
+ syntax: "agentera check durability --artifact ARTIFACT --id ID --format json",
47
+ example: "agentera check durability --artifact progress --id qjtrmnpvka --format json",
48
+ recovery: "Use one bare entity ID returned by the artifact list; no state was changed.",
49
+ ...(artifact ? { artifact } : {}),
50
+ ...(id ? { id } : {}),
51
+ ...(validValues ? { valid_values: validValues } : {}),
52
+ },
53
+ }, 2);
54
+ }
55
+ export function emitDurabilityFailure(failure, format, io) {
56
+ const out = io.out ?? ((text) => process.stdout.write(text));
57
+ if (format === "json" || format === "yaml")
58
+ emitStructured(failure.body, format, out);
59
+ else {
60
+ const details = failure.body.error;
61
+ out([
62
+ `Error: ${details.message}`,
63
+ `Class: ${details.class}`,
64
+ `Syntax: ${details.syntax}`,
65
+ `Example: ${details.example}`,
66
+ `Recovery: ${details.recovery}`,
67
+ ].join("\n") + "\n");
68
+ }
69
+ return failure.exitCode;
70
+ }
71
+ export function cmdDurability(args, io = {}) {
72
+ const output = io.out ?? ((text) => process.stdout.write(text));
73
+ const response = inspectDurability(resolvePath(args.project ?? process.cwd()), args, { sourceRoot: resolveSourceRoot() });
74
+ if (args.format === "json" || args.format === "yaml") {
75
+ emitStructured(response, args.format, output);
76
+ }
77
+ else {
78
+ renderDurabilityText(response, output);
79
+ }
80
+ return 0;
81
+ }