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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (696) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +118 -22
  3. package/bundle/CHANGELOG.md +1361 -0
  4. package/bundle/DESIGN.md +229 -0
  5. package/bundle/LICENSE +201 -0
  6. package/bundle/README.md +143 -0
  7. package/bundle/UPGRADE.md +252 -0
  8. package/bundle/extract-corpus-parity.json +21 -0
  9. package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
  10. package/bundle/references/adapters/package-publication.json +488 -0
  11. package/bundle/references/adapters/package-registry.yaml +435 -188
  12. package/bundle/references/adapters/package-surface-characterization.md +66 -34
  13. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +74 -0
  14. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +62 -0
  15. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  16. package/bundle/references/adapters/runtime-retired-resources.yaml +333 -0
  17. package/bundle/references/analysis/evidence-tier-authority.yaml +518 -0
  18. package/bundle/references/analysis/verification-policy.yaml +266 -0
  19. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +20 -10
  20. package/bundle/references/artifacts/glossary-entry-contract.yaml +1254 -0
  21. package/bundle/references/artifacts/state-storage-authority.yaml +3061 -0
  22. package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
  23. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +7 -8
  24. package/bundle/references/cli/capability-instruction-contract.yaml +11 -14
  25. package/bundle/references/cli/hybrid-route-contract.yaml +438 -0
  26. package/bundle/references/cli/routing-model.md +155 -0
  27. package/bundle/references/cli/trigger-schema-enrichment.md +147 -0
  28. package/bundle/references/cli/update-channels.yaml +19 -2
  29. package/bundle/references/cli/vocabulary-index.yaml +20 -17
  30. package/bundle/references/cli/vocabulary.md +325 -362
  31. package/bundle/references/meta/retained-reference-authority.yaml +151 -0
  32. package/bundle/registry.json +13 -13
  33. package/bundle/skills/agentera/SKILL.md +226 -422
  34. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +84 -0
  35. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +2 -2
  36. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +25 -0
  37. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +37 -18
  38. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +103 -0
  39. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +8 -6
  40. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +27 -0
  41. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +184 -0
  42. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +12 -12
  43. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +5 -5
  44. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +16 -0
  45. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +7 -7
  46. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +51 -0
  47. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +2 -2
  48. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +20 -0
  49. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +144 -0
  50. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +80 -0
  51. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +16 -0
  52. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +18 -18
  53. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +18 -18
  54. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +2 -2
  55. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +16 -0
  56. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +9 -9
  57. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +76 -0
  58. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +9 -7
  59. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +23 -0
  60. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +121 -0
  61. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +66 -0
  62. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
  63. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +23 -0
  64. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +121 -0
  65. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +23 -0
  66. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +6 -5
  67. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +20 -0
  68. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +115 -0
  69. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +24 -0
  70. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +16 -0
  71. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
  72. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +73 -0
  73. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +22 -0
  74. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
  75. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +16 -16
  76. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +7 -6
  77. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +23 -0
  78. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +18 -20
  79. package/bundle/skills/agentera/capability_schema_contract.yaml +178 -34
  80. package/bundle/skills/agentera/protocol.yaml +31 -31
  81. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  82. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +5 -4
  83. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +39 -21
  84. package/bundle/skills/agentera/schemas/artifacts/design.yaml +5 -4
  85. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +15 -19
  86. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +145 -14
  87. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
  88. package/bundle/skills/agentera/schemas/artifacts/health.yaml +58 -21
  89. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +22 -8
  90. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +461 -36
  91. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +133 -20
  92. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +342 -42
  93. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
  94. package/dist/analytics/extractCorpus/cli.js +101 -12
  95. package/dist/analytics/extractCorpus/copilotSessions.js +53 -9
  96. package/dist/analytics/extractCorpus/core.js +59 -24
  97. package/dist/analytics/extractCorpus/corpus.js +58 -23
  98. package/dist/analytics/extractCorpus/coverageAudit.js +260 -0
  99. package/dist/analytics/extractCorpus/cursorSessions.js +12 -7
  100. package/dist/analytics/extractCorpus/evidenceTiers.js +603 -0
  101. package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
  102. package/dist/analytics/extractCorpus/filesystemSources.js +1 -5
  103. package/dist/analytics/extractCorpus/index.js +6 -1
  104. package/dist/analytics/extractCorpus/jsonlSessions.js +24 -5
  105. package/dist/analytics/extractCorpus/sqliteCaps.js +43 -0
  106. package/dist/analytics/extractCorpus/sqliteSessions.js +98 -6
  107. package/dist/analytics/extractCorpus/tierReader.js +108 -0
  108. package/dist/analytics/extractCorpus.js +0 -1
  109. package/dist/analytics/glossaryAdviceResolution.js +166 -0
  110. package/dist/analytics/glossaryInputAcquisition.js +319 -0
  111. package/dist/analytics/personalGlossaryAdmission.js +133 -0
  112. package/dist/analytics/personalGlossaryProfile.js +219 -0
  113. package/dist/analytics/profileSignals.js +211 -0
  114. package/dist/analytics/usageStats.js +169 -42
  115. package/dist/audit/terminologyDrift.js +281 -0
  116. package/dist/bin/agentera.js +3 -2
  117. package/dist/capabilities/audit/instructions.js +16 -0
  118. package/dist/capabilities/build/instructions.js +59 -0
  119. package/dist/capabilities/design/instructions.js +4 -0
  120. package/dist/capabilities/discuss/instructions.js +29 -0
  121. package/dist/capabilities/document/instructions.js +11 -0
  122. package/dist/capabilities/index.js +29 -27
  123. package/dist/capabilities/optimize/instructions.js +14 -0
  124. package/dist/capabilities/orchestrate/instructions.js +42 -0
  125. package/dist/capabilities/plan/instructions.js +33 -0
  126. package/dist/capabilities/profile/instructions.js +70 -0
  127. package/dist/capabilities/research/instructions.js +5 -0
  128. package/dist/capabilities/status/instructions.js +15 -0
  129. package/dist/capabilities/status/startupInstructions.js +34 -0
  130. package/dist/capabilities/vision/instructions.js +4 -0
  131. package/dist/cli/appContext.js +30 -24
  132. package/dist/cli/argvalidate.js +0 -1
  133. package/dist/cli/capabilityContext/benchmark.js +25 -17
  134. package/dist/cli/capabilityContext/bespoke.js +31 -12
  135. package/dist/cli/capabilityContext/build.js +251 -0
  136. package/dist/cli/capabilityContext/closeout.js +33 -30
  137. package/dist/cli/capabilityContext/contract.js +39 -46
  138. package/dist/cli/capabilityContext/evidence.js +90 -73
  139. package/dist/cli/capabilityContext/index.js +1 -2
  140. package/dist/cli/capabilityContext/orchestration.js +45 -21
  141. package/dist/cli/capabilityContext/planState.js +93 -100
  142. package/dist/cli/capabilityContext/progress.js +60 -14
  143. package/dist/cli/capabilityContext/projectVerification.js +409 -0
  144. package/dist/cli/capabilityContext/shared.js +9 -20
  145. package/dist/cli/capabilityContext/slim.js +56 -10
  146. package/dist/cli/capabilityContext/startup.js +57 -115
  147. package/dist/cli/capabilityContext/startupAggregation.js +68 -0
  148. package/dist/cli/capabilityContext/types.js +37 -24
  149. package/dist/cli/capabilityContext.js +1 -2
  150. package/dist/cli/commands/appHome.js +22 -0
  151. package/dist/cli/commands/capability.js +4 -4
  152. package/dist/cli/commands/compact.js +163 -13
  153. package/dist/cli/commands/doctor.js +122 -114
  154. package/dist/cli/commands/durability.js +81 -0
  155. package/dist/cli/commands/glossaryAdvice.js +138 -0
  156. package/dist/cli/commands/lint.js +22 -8
  157. package/dist/cli/commands/personalGlossary.js +176 -0
  158. package/dist/cli/commands/prime/briefOrientation.js +746 -0
  159. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  160. package/dist/cli/commands/prime/bundleStatus.js +190 -0
  161. package/dist/cli/commands/prime/collectEntityOrientation.js +326 -0
  162. package/dist/cli/commands/prime/collectOrientationState.js +219 -0
  163. package/dist/cli/commands/prime/orientationOutput.js +421 -0
  164. package/dist/cli/commands/prime/types.js +1 -0
  165. package/dist/cli/commands/prime/v1Migration.js +38 -0
  166. package/dist/cli/commands/prime.js +80 -558
  167. package/dist/cli/commands/profileGrounding.js +55 -0
  168. package/dist/cli/commands/query.js +77 -52
  169. package/dist/cli/commands/report.js +88 -26
  170. package/dist/cli/commands/route.js +142 -0
  171. package/dist/cli/commands/schema.js +266 -142
  172. package/dist/cli/commands/state/decisions.js +51 -61
  173. package/dist/cli/commands/state/docs.js +63 -86
  174. package/dist/cli/commands/state/experimentRecords.js +151 -0
  175. package/dist/cli/commands/state/experiments.js +11 -64
  176. package/dist/cli/commands/state/get.js +129 -0
  177. package/dist/cli/commands/state/health.js +11 -111
  178. package/dist/cli/commands/state/index.js +6 -41
  179. package/dist/cli/commands/state/list.js +194 -0
  180. package/dist/cli/commands/state/objective.js +21 -64
  181. package/dist/cli/commands/state/plan.js +11 -169
  182. package/dist/cli/commands/state/planTasks.js +154 -0
  183. package/dist/cli/commands/state/plans.js +154 -0
  184. package/dist/cli/commands/state/progress.js +11 -45
  185. package/dist/cli/commands/state/shared.js +0 -1
  186. package/dist/cli/commands/state/todo.js +29 -108
  187. package/dist/cli/commands/state/write.js +433 -0
  188. package/dist/cli/commands/upgrade.js +146 -5
  189. package/dist/cli/commands/upgradeVerify.js +118 -0
  190. package/dist/cli/commands/validate.js +246 -211
  191. package/dist/cli/commands/verify.js +24 -9
  192. package/dist/cli/contracts/bundleStatus.js +1 -0
  193. package/dist/cli/contracts/orientationState.js +1 -0
  194. package/dist/cli/dispatch/argvParser.js +32 -0
  195. package/dist/cli/dispatch/check.js +94 -50
  196. package/dist/cli/dispatch/commands.js +27 -0
  197. package/dist/cli/dispatch/index.js +82 -52
  198. package/dist/cli/dispatch/lifecycle.js +268 -108
  199. package/dist/cli/dispatch/prime.js +68 -29
  200. package/dist/cli/dispatch/projections.js +17 -0
  201. package/dist/cli/dispatch/shared.js +1 -2
  202. package/dist/cli/dispatch/state.js +68 -77
  203. package/dist/cli/dispatch.js +0 -1
  204. package/dist/cli/errors.js +16 -17
  205. package/dist/cli/help.js +395 -41
  206. package/dist/cli/migrationRequired.js +122 -0
  207. package/dist/cli/orientation/attention.js +61 -0
  208. package/dist/cli/orientation/corpusCoverage.js +102 -0
  209. package/dist/cli/orientation.js +438 -170
  210. package/dist/cli/planArtifacts.js +350 -0
  211. package/dist/cli/planEvidence.js +157 -0
  212. package/dist/cli/planLifecycleState.js +36 -0
  213. package/dist/cli/planTaskIndex.js +11 -0
  214. package/dist/cli/preCutoverCommand.js +32 -0
  215. package/dist/cli/prime-blob.js +71 -3
  216. package/dist/cli/profileAcquisition.js +167 -0
  217. package/dist/cli/startupCompletenessContract.js +59 -0
  218. package/dist/cli/stateQuery.js +56 -14
  219. package/dist/cli/structured.js +0 -1
  220. package/dist/cli/todoMarkdown.js +25 -12
  221. package/dist/cli/todoReadinessSelection.js +192 -0
  222. package/dist/cli/todoSeverity.js +18 -0
  223. package/dist/core/atomicWriter.js +20 -0
  224. package/dist/core/developmentChannel.js +1 -0
  225. package/dist/core/developmentInvocation.js +374 -0
  226. package/dist/core/difflib.js +0 -1
  227. package/dist/core/envPaths.js +20 -0
  228. package/dist/core/jsonValue.js +5 -0
  229. package/dist/core/paths.js +0 -1
  230. package/dist/core/pyjson.js +67 -3
  231. package/dist/core/shell.js +4 -0
  232. package/dist/core/skillIdentity.js +23 -0
  233. package/dist/core/sourceRoot.js +9 -12
  234. package/dist/core/text.js +10 -0
  235. package/dist/core/toml.js +0 -1
  236. package/dist/core/yaml.js +8 -1
  237. package/dist/eval/evalSkills.js +30 -26
  238. package/dist/eval/hybridRouteEvaluation.js +155 -0
  239. package/dist/eval/semanticEval.js +43 -20
  240. package/dist/eval/semanticFixtures.js +16 -5
  241. package/dist/hooks/common.js +3 -56
  242. package/dist/hooks/compaction/apply.js +252 -50
  243. package/dist/hooks/compaction/dryRun.js +7 -4
  244. package/dist/hooks/compaction/index.js +5 -6
  245. package/dist/hooks/compaction/parse.js +201 -5
  246. package/dist/hooks/compaction/retention.js +30 -25
  247. package/dist/hooks/compaction/status.js +149 -32
  248. package/dist/hooks/compaction/types.js +0 -1
  249. package/dist/hooks/validateArtifact/agentFacing.js +0 -1
  250. package/dist/hooks/validateArtifact/index.js +7 -64
  251. package/dist/hooks/validateArtifact/markdown.js +57 -7
  252. package/dist/hooks/validateArtifact/schema.js +110 -19
  253. package/dist/hooks/validateArtifact/traversal.js +13 -11
  254. package/dist/hooks/validateArtifact/violations.js +7 -5
  255. package/dist/migrate/v2HandoffManifest.js +127 -8
  256. package/dist/registries/activationContract.js +2 -0
  257. package/dist/registries/activationTuples.js +108 -0
  258. package/dist/registries/artifactProtocolIds.js +2 -1
  259. package/dist/registries/artifactRegistry.js +224 -63
  260. package/dist/registries/artifactSchemaProjection.js +45 -0
  261. package/dist/registries/capabilityContract.js +129 -2
  262. package/dist/registries/evaluatorHandoffContract.js +2 -3
  263. package/dist/registries/evidenceTierContract.js +371 -0
  264. package/dist/registries/glossaryAdviceContract.js +79 -0
  265. package/dist/registries/glossaryCaveatContract.js +67 -0
  266. package/dist/registries/glossaryConsumerContractValidation.js +787 -0
  267. package/dist/registries/glossaryEntryContract.js +757 -0
  268. package/dist/registries/glossaryTermIdentity.js +17 -0
  269. package/dist/registries/glossaryTermOccurrence.js +20 -0
  270. package/dist/registries/hybridRoute.js +274 -0
  271. package/dist/registries/hybridRouteReceipt.js +221 -0
  272. package/dist/registries/packagePublication.js +273 -0
  273. package/dist/registries/packageRegistry.js +187 -211
  274. package/dist/registries/todoReadinessContract.js +448 -0
  275. package/dist/registries/triggerLoader.js +174 -0
  276. package/dist/registries/verbosityBudgetContract.js +205 -0
  277. package/dist/release/releaseMetadata.js +156 -6
  278. package/dist/runtime/lifecycleAdapterContract.js +457 -0
  279. package/dist/runtime/lifecycleAdapters.js +777 -0
  280. package/dist/runtime/lifecycleAuthority.js +453 -0
  281. package/dist/runtime/lifecycleOperationContract.js +123 -0
  282. package/dist/runtime/lifecycleOperations.js +634 -0
  283. package/dist/runtime/lifecycleOwnershipJournal.js +622 -0
  284. package/dist/runtime/lifecyclePublication.js +415 -0
  285. package/dist/runtime/lifecycleSnapshot.js +438 -0
  286. package/dist/runtime/nativeResourceCleanup.js +502 -0
  287. package/dist/setup/opencode.js +20 -13
  288. package/dist/setup/opencodeConstants.js +1 -0
  289. package/dist/setup/sharedSkill.js +45 -0
  290. package/dist/setup/smokeChecks.js +21 -82
  291. package/dist/state/archiveDiscovery.js +580 -0
  292. package/dist/state/archivePublication.js +225 -0
  293. package/dist/state/archiveRecovery.js +237 -0
  294. package/dist/state/archiveReplay.js +53 -0
  295. package/dist/state/canonicalMigrationRecord.js +36 -0
  296. package/dist/state/changelog.js +221 -0
  297. package/dist/state/decisionEntities.js +367 -0
  298. package/dist/state/decisionLegacyValidation.js +215 -0
  299. package/dist/state/decisionMigrationProvenance.js +199 -0
  300. package/dist/state/decisionOverlay.js +254 -0
  301. package/dist/state/decisionRevision.js +256 -0
  302. package/dist/state/decisionRevisionMigration.js +89 -0
  303. package/dist/state/directRetrieval.js +323 -0
  304. package/dist/state/durability.js +324 -0
  305. package/dist/state/entityCutover.js +459 -0
  306. package/dist/state/entityCutoverGit.js +127 -0
  307. package/dist/state/entityGlossaryAuthority.js +13 -0
  308. package/dist/state/entityListProjection.js +187 -0
  309. package/dist/state/entityListRuntimeRegistry.js +85 -0
  310. package/dist/state/entityMigrationCausality.js +97 -0
  311. package/dist/state/entityMigrationIdentity.js +5 -0
  312. package/dist/state/entityMigrationPreview.js +840 -0
  313. package/dist/state/entityMigrationTodo.js +133 -0
  314. package/dist/state/entityPublicationContext.js +859 -0
  315. package/dist/state/entityRetrievalHelp.js +506 -0
  316. package/dist/state/entityStorage.js +899 -0
  317. package/dist/state/exactReplacementRecovery.js +18 -0
  318. package/dist/state/experimentArchive.js +63 -0
  319. package/dist/state/experimentIdentity.js +202 -0
  320. package/dist/state/healthEntities.js +262 -0
  321. package/dist/state/healthEntityValidation.js +18 -0
  322. package/dist/state/healthRepair.js +69 -0
  323. package/dist/state/installRoot.js +64 -25
  324. package/dist/state/legacyEntityCutoverEvidence.js +65 -0
  325. package/dist/state/legacyIdentity.js +47 -0
  326. package/dist/state/legacySummaryRecord.js +6 -0
  327. package/dist/state/listAccounting.js +54 -0
  328. package/dist/state/listClassification.js +17 -0
  329. package/dist/state/listCursor.js +42 -0
  330. package/dist/state/listRetrieval.js +781 -0
  331. package/dist/state/migrationSourceBinding.js +30 -0
  332. package/dist/state/objectiveExperimentEntities.js +322 -0
  333. package/dist/state/planEntities.js +1027 -0
  334. package/dist/state/planIdentity.js +47 -0
  335. package/dist/state/planLineageValidation.js +52 -0
  336. package/dist/state/planReplacementTransaction.js +475 -0
  337. package/dist/state/planRetrieval.js +313 -0
  338. package/dist/state/planTaskRetrieval.js +294 -0
  339. package/dist/state/progressEntities.js +512 -0
  340. package/dist/state/progressGlossaryCaveat.js +168 -0
  341. package/dist/state/progressPublicationOrder.js +19 -0
  342. package/dist/state/progressWritePolicy.js +33 -0
  343. package/dist/state/projectRoot.js +62 -0
  344. package/dist/state/projectionPolicy.js +190 -0
  345. package/dist/state/retrievalAuthority.js +156 -0
  346. package/dist/state/safeProjectFile.js +155 -0
  347. package/dist/state/startupAnalysis/benchmark.js +92 -27
  348. package/dist/state/startupAnalysis/contract.js +48 -10
  349. package/dist/state/startupAnalysis/helpers.js +27 -73
  350. package/dist/state/startupAnalysis/index.js +0 -1
  351. package/dist/state/startupAnalysis/metrics.js +25 -19
  352. package/dist/state/startupAnalysis/records.js +13 -10
  353. package/dist/state/startupAnalysis/report.js +26 -38
  354. package/dist/state/startupAnalysis/threshold.js +19 -7
  355. package/dist/state/startupAnalysis.js +0 -1
  356. package/dist/state/startupProjection.js +499 -0
  357. package/dist/state/stateMode.js +222 -0
  358. package/dist/state/stateStorageAuthority.js +47 -0
  359. package/dist/state/summaryEntityRead.js +25 -0
  360. package/dist/state/summaryMigrationProvenance.js +66 -0
  361. package/dist/state/summarySourceRowAuthority.js +36 -0
  362. package/dist/state/todoActivationSafety.js +58 -0
  363. package/dist/state/todoDocsEntities.js +1124 -0
  364. package/dist/state/todoDocsEntityValidation.js +158 -0
  365. package/dist/state/todoMarkdownProjection.js +51 -0
  366. package/dist/state/todoReconciliationActivation.js +182 -0
  367. package/dist/state/todoReconciliationInspection.js +171 -0
  368. package/dist/state/todoReconciliationRepair.js +318 -0
  369. package/dist/state/todoReconciliationTransaction.js +595 -0
  370. package/dist/state/write/assign.js +20 -0
  371. package/dist/state/write/candidateMutation.js +269 -0
  372. package/dist/state/write/errors.js +11 -0
  373. package/dist/state/write/experimentPublication.js +192 -0
  374. package/dist/state/write/explain.js +377 -0
  375. package/dist/state/write/fields.js +61 -0
  376. package/dist/state/write/glossaryPublication.js +263 -0
  377. package/dist/state/write/grammar.js +285 -0
  378. package/dist/state/write/helpers.js +29 -0
  379. package/dist/state/write/index.js +12 -0
  380. package/dist/state/write/input.js +391 -0
  381. package/dist/state/write/lock.js +837 -0
  382. package/dist/state/write/mutation.js +234 -0
  383. package/dist/state/write/operations.js +170 -0
  384. package/dist/state/write/planEvaluation.js +128 -0
  385. package/dist/state/write/planPublication.js +179 -0
  386. package/dist/state/write/runtimeOperations.js +146 -0
  387. package/dist/state/write/serialize.js +1 -0
  388. package/dist/state/write/transaction.js +57 -0
  389. package/dist/state/write/validate.js +7 -0
  390. package/dist/upgrade/appContentRefresh.js +383 -0
  391. package/dist/upgrade/appModel.js +8 -7
  392. package/dist/upgrade/atomicWriter.js +1 -0
  393. package/dist/upgrade/bundleEvidence.js +33 -0
  394. package/dist/upgrade/channels.js +12 -8
  395. package/dist/upgrade/compatibility.js +56 -21
  396. package/dist/upgrade/doctor.js +165 -199
  397. package/dist/upgrade/doctorClassifier.js +187 -0
  398. package/dist/upgrade/installedHooksRetirement.js +196 -0
  399. package/dist/upgrade/legacyAgentCleanup.js +282 -0
  400. package/dist/upgrade/lifecycleUpgrade.js +113 -0
  401. package/dist/upgrade/migrateArtifactsV2ToV3.js +375 -79
  402. package/dist/upgrade/migrationPublication.js +122 -0
  403. package/dist/upgrade/nextMajorDoctor.js +29 -10
  404. package/dist/upgrade/npxPlatformStatus.js +22 -0
  405. package/dist/upgrade/projectIntegration.js +145 -189
  406. package/dist/upgrade/projectIntegrationDecision.js +50 -0
  407. package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
  408. package/dist/upgrade/runtimeMigration.js +272 -373
  409. package/dist/upgrade/upgradeCommands.js +14 -1
  410. package/dist/upgrade/upgradeLock.js +85 -0
  411. package/dist/upgrade/upgradeOrchestrator.js +263 -59
  412. package/dist/upgrade/v3CapabilitySurface.js +2 -3
  413. package/dist/upgrade/versionResolution.js +2 -3
  414. package/dist/validate/activationArtifactEvidence.js +852 -0
  415. package/dist/validate/activationArtifactEvidenceTypes.js +12 -0
  416. package/dist/validate/activationConjunction.js +816 -0
  417. package/dist/validate/activationEvidenceManifest.js +531 -0
  418. package/dist/validate/activationPackageSemantics.js +29 -0
  419. package/dist/validate/appHomeContract.js +2 -8
  420. package/dist/validate/bootstrapAuthority.js +44 -0
  421. package/dist/validate/capability.js +133 -12
  422. package/dist/validate/crossCapability.js +15 -10
  423. package/dist/validate/retainedReferenceAuthority.js +879 -0
  424. package/dist/validate/selfAudit.js +39 -45
  425. package/dist/validate/v1LegacyCruft.js +131 -0
  426. package/dist/validate/vocabularyAuthority.js +18 -13
  427. package/package.json +60 -29
  428. package/bundle/references/adapters/cursor.md +0 -213
  429. package/bundle/references/adapters/opencode.md +0 -530
  430. package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
  431. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  432. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  433. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -548
  434. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  435. package/bundle/references/analysis/benchmark.md +0 -267
  436. package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
  437. package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
  438. package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -369
  439. package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -250
  440. package/bundle/references/cli/capability-tool-classification.yaml +0 -53
  441. package/bundle/references/cli/coexistence-probe.yaml +0 -9
  442. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
  443. package/bundle/references/cli/single-name-protocol.yaml +0 -42
  444. package/bundle/references/cli/upgrade-repair-wording.md +0 -31
  445. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +0 -98
  446. package/bundle/references/meta/documentation-inventory.md +0 -49
  447. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  448. package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
  449. package/bundle/skills/agentera/agents/hej.toml +0 -6
  450. package/bundle/skills/agentera/agents/inspektera.toml +0 -6
  451. package/bundle/skills/agentera/agents/inspirera.toml +0 -6
  452. package/bundle/skills/agentera/agents/optimera.toml +0 -6
  453. package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
  454. package/bundle/skills/agentera/agents/planera.toml +0 -6
  455. package/bundle/skills/agentera/agents/profilera.toml +0 -6
  456. package/bundle/skills/agentera/agents/realisera.toml +0 -6
  457. package/bundle/skills/agentera/agents/resonera.toml +0 -6
  458. package/bundle/skills/agentera/agents/visionera.toml +0 -6
  459. package/bundle/skills/agentera/agents/visualisera.toml +0 -6
  460. package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +0 -73
  461. package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +0 -35
  462. package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +0 -69
  463. package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +0 -58
  464. package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +0 -76
  465. package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +0 -38
  466. package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +0 -24
  467. package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +0 -34
  468. package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +0 -39
  469. package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +0 -64
  470. package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +0 -42
  471. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +0 -120
  472. package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +0 -62
  473. package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +0 -34
  474. package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +0 -61
  475. package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +0 -18
  476. package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +0 -45
  477. package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +0 -57
  478. package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +0 -80
  479. package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +0 -39
  480. package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +0 -110
  481. package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +0 -47
  482. package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +0 -46
  483. package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +0 -77
  484. package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +0 -41
  485. package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +0 -33
  486. package/bundle/skills/agentera/references/contract.md +0 -1039
  487. package/dist/analytics/extractCorpus/cli.js.map +0 -1
  488. package/dist/analytics/extractCorpus/copilotSessions.js.map +0 -1
  489. package/dist/analytics/extractCorpus/core.js.map +0 -1
  490. package/dist/analytics/extractCorpus/corpus.js.map +0 -1
  491. package/dist/analytics/extractCorpus/cursorSessions.js.map +0 -1
  492. package/dist/analytics/extractCorpus/filesystemSources.js.map +0 -1
  493. package/dist/analytics/extractCorpus/index.js.map +0 -1
  494. package/dist/analytics/extractCorpus/jsonlSessions.js.map +0 -1
  495. package/dist/analytics/extractCorpus/sqliteSessions.js.map +0 -1
  496. package/dist/analytics/extractCorpus.js.map +0 -1
  497. package/dist/analytics/usageStats.js.map +0 -1
  498. package/dist/bin/agentera.js.map +0 -1
  499. package/dist/capabilities/dokumentera/instructions.js +0 -6
  500. package/dist/capabilities/dokumentera/instructions.js.map +0 -1
  501. package/dist/capabilities/hej/instructions.js +0 -6
  502. package/dist/capabilities/hej/instructions.js.map +0 -1
  503. package/dist/capabilities/index.js.map +0 -1
  504. package/dist/capabilities/inspektera/instructions.js +0 -6
  505. package/dist/capabilities/inspektera/instructions.js.map +0 -1
  506. package/dist/capabilities/inspirera/instructions.js +0 -6
  507. package/dist/capabilities/inspirera/instructions.js.map +0 -1
  508. package/dist/capabilities/optimera/instructions.js +0 -6
  509. package/dist/capabilities/optimera/instructions.js.map +0 -1
  510. package/dist/capabilities/orkestrera/instructions.js +0 -6
  511. package/dist/capabilities/orkestrera/instructions.js.map +0 -1
  512. package/dist/capabilities/planera/instructions.js +0 -6
  513. package/dist/capabilities/planera/instructions.js.map +0 -1
  514. package/dist/capabilities/profilera/instructions.js +0 -6
  515. package/dist/capabilities/profilera/instructions.js.map +0 -1
  516. package/dist/capabilities/realisera/instructions.js +0 -6
  517. package/dist/capabilities/realisera/instructions.js.map +0 -1
  518. package/dist/capabilities/resonera/instructions.js +0 -6
  519. package/dist/capabilities/resonera/instructions.js.map +0 -1
  520. package/dist/capabilities/visionera/instructions.js +0 -6
  521. package/dist/capabilities/visionera/instructions.js.map +0 -1
  522. package/dist/capabilities/visualisera/instructions.js +0 -6
  523. package/dist/capabilities/visualisera/instructions.js.map +0 -1
  524. package/dist/cli/appContext.js.map +0 -1
  525. package/dist/cli/argvalidate.js.map +0 -1
  526. package/dist/cli/capabilityContext/benchmark.js.map +0 -1
  527. package/dist/cli/capabilityContext/bespoke.js.map +0 -1
  528. package/dist/cli/capabilityContext/closeout.js.map +0 -1
  529. package/dist/cli/capabilityContext/contract.js.map +0 -1
  530. package/dist/cli/capabilityContext/evidence.js.map +0 -1
  531. package/dist/cli/capabilityContext/index.js.map +0 -1
  532. package/dist/cli/capabilityContext/orchestration.js.map +0 -1
  533. package/dist/cli/capabilityContext/planState.js.map +0 -1
  534. package/dist/cli/capabilityContext/progress.js.map +0 -1
  535. package/dist/cli/capabilityContext/realisera.js +0 -174
  536. package/dist/cli/capabilityContext/realisera.js.map +0 -1
  537. package/dist/cli/capabilityContext/shared.js.map +0 -1
  538. package/dist/cli/capabilityContext/slim.js.map +0 -1
  539. package/dist/cli/capabilityContext/startup.js.map +0 -1
  540. package/dist/cli/capabilityContext/types.js.map +0 -1
  541. package/dist/cli/capabilityContext.js.map +0 -1
  542. package/dist/cli/commands/backfill.js +0 -84
  543. package/dist/cli/commands/backfill.js.map +0 -1
  544. package/dist/cli/commands/capability.js.map +0 -1
  545. package/dist/cli/commands/compact.js.map +0 -1
  546. package/dist/cli/commands/doctor.js.map +0 -1
  547. package/dist/cli/commands/lint.js.map +0 -1
  548. package/dist/cli/commands/prime.js.map +0 -1
  549. package/dist/cli/commands/query.js.map +0 -1
  550. package/dist/cli/commands/report.js.map +0 -1
  551. package/dist/cli/commands/schema.js.map +0 -1
  552. package/dist/cli/commands/state/decisions.js.map +0 -1
  553. package/dist/cli/commands/state/docs.js.map +0 -1
  554. package/dist/cli/commands/state/experiments.js.map +0 -1
  555. package/dist/cli/commands/state/health.js.map +0 -1
  556. package/dist/cli/commands/state/index.js.map +0 -1
  557. package/dist/cli/commands/state/objective.js.map +0 -1
  558. package/dist/cli/commands/state/plan.js.map +0 -1
  559. package/dist/cli/commands/state/progress.js.map +0 -1
  560. package/dist/cli/commands/state/shared.js.map +0 -1
  561. package/dist/cli/commands/state/todo.js.map +0 -1
  562. package/dist/cli/commands/state.js +0 -1023
  563. package/dist/cli/commands/state.js.map +0 -1
  564. package/dist/cli/commands/upgrade.js.map +0 -1
  565. package/dist/cli/commands/validate.js.map +0 -1
  566. package/dist/cli/commands/verify.js.map +0 -1
  567. package/dist/cli/dispatch/check.js.map +0 -1
  568. package/dist/cli/dispatch/index.js.map +0 -1
  569. package/dist/cli/dispatch/lifecycle.js.map +0 -1
  570. package/dist/cli/dispatch/prime.js.map +0 -1
  571. package/dist/cli/dispatch/shared.js.map +0 -1
  572. package/dist/cli/dispatch/state.js.map +0 -1
  573. package/dist/cli/dispatch.js.map +0 -1
  574. package/dist/cli/errors.js.map +0 -1
  575. package/dist/cli/help.js.map +0 -1
  576. package/dist/cli/orientation.js.map +0 -1
  577. package/dist/cli/prime-blob.js.map +0 -1
  578. package/dist/cli/stateQuery.js.map +0 -1
  579. package/dist/cli/structured.js.map +0 -1
  580. package/dist/cli/todoMarkdown.js.map +0 -1
  581. package/dist/core/difflib.js.map +0 -1
  582. package/dist/core/git.js +0 -43
  583. package/dist/core/git.js.map +0 -1
  584. package/dist/core/paths.js.map +0 -1
  585. package/dist/core/pyjson.js.map +0 -1
  586. package/dist/core/sourceRoot.js.map +0 -1
  587. package/dist/core/toml.js.map +0 -1
  588. package/dist/core/yaml.js.map +0 -1
  589. package/dist/eval/evalSkills.js.map +0 -1
  590. package/dist/eval/semanticEval.js.map +0 -1
  591. package/dist/eval/semanticFixtures.js.map +0 -1
  592. package/dist/hooks/common.js.map +0 -1
  593. package/dist/hooks/compaction/apply.js.map +0 -1
  594. package/dist/hooks/compaction/dryRun.js.map +0 -1
  595. package/dist/hooks/compaction/index.js.map +0 -1
  596. package/dist/hooks/compaction/parse.js.map +0 -1
  597. package/dist/hooks/compaction/retention.js.map +0 -1
  598. package/dist/hooks/compaction/status.js.map +0 -1
  599. package/dist/hooks/compaction/types.js.map +0 -1
  600. package/dist/hooks/compaction.js +0 -935
  601. package/dist/hooks/compaction.js.map +0 -1
  602. package/dist/hooks/cursorPreToolUse.js +0 -19
  603. package/dist/hooks/cursorPreToolUse.js.map +0 -1
  604. package/dist/hooks/cursorSessionStart.js +0 -71
  605. package/dist/hooks/cursorSessionStart.js.map +0 -1
  606. package/dist/hooks/sessionStart.js +0 -209
  607. package/dist/hooks/sessionStart.js.map +0 -1
  608. package/dist/hooks/sessionStop.js +0 -203
  609. package/dist/hooks/sessionStop.js.map +0 -1
  610. package/dist/hooks/validateArtifact/agentFacing.js.map +0 -1
  611. package/dist/hooks/validateArtifact/index.js.map +0 -1
  612. package/dist/hooks/validateArtifact/markdown.js.map +0 -1
  613. package/dist/hooks/validateArtifact/runtime.js +0 -83
  614. package/dist/hooks/validateArtifact/runtime.js.map +0 -1
  615. package/dist/hooks/validateArtifact/schema.js.map +0 -1
  616. package/dist/hooks/validateArtifact/traversal.js.map +0 -1
  617. package/dist/hooks/validateArtifact/violations.js.map +0 -1
  618. package/dist/hooks/validateArtifact.js +0 -924
  619. package/dist/hooks/validateArtifact.js.map +0 -1
  620. package/dist/migrate/v2HandoffManifest.js.map +0 -1
  621. package/dist/registries/artifactProtocolIds.js.map +0 -1
  622. package/dist/registries/artifactRegistry.js.map +0 -1
  623. package/dist/registries/capabilityContract.js.map +0 -1
  624. package/dist/registries/evaluatorHandoffContract.js.map +0 -1
  625. package/dist/registries/packageRegistry.js.map +0 -1
  626. package/dist/registries/runtimeAdapterRegistry.js +0 -315
  627. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  628. package/dist/release/releaseMetadata.js.map +0 -1
  629. package/dist/setup/codex/agents.js +0 -96
  630. package/dist/setup/codex/agents.js.map +0 -1
  631. package/dist/setup/codex/cli.js +0 -161
  632. package/dist/setup/codex/cli.js.map +0 -1
  633. package/dist/setup/codex/configToml.js +0 -644
  634. package/dist/setup/codex/configToml.js.map +0 -1
  635. package/dist/setup/codex/constants.js +0 -29
  636. package/dist/setup/codex/constants.js.map +0 -1
  637. package/dist/setup/codex/installRoot.js +0 -64
  638. package/dist/setup/codex/installRoot.js.map +0 -1
  639. package/dist/setup/codex/state.js +0 -270
  640. package/dist/setup/codex/state.js.map +0 -1
  641. package/dist/setup/codex.js +0 -12
  642. package/dist/setup/codex.js.map +0 -1
  643. package/dist/setup/copilot.js +0 -227
  644. package/dist/setup/copilot.js.map +0 -1
  645. package/dist/setup/cursor.js +0 -127
  646. package/dist/setup/cursor.js.map +0 -1
  647. package/dist/setup/doctor/core.js +0 -300
  648. package/dist/setup/doctor/core.js.map +0 -1
  649. package/dist/setup/doctor/diagnostics.js +0 -247
  650. package/dist/setup/doctor/diagnostics.js.map +0 -1
  651. package/dist/setup/doctor/opencode.js +0 -281
  652. package/dist/setup/doctor/opencode.js.map +0 -1
  653. package/dist/setup/doctor/report.js +0 -474
  654. package/dist/setup/doctor/report.js.map +0 -1
  655. package/dist/setup/doctor.js +0 -10
  656. package/dist/setup/doctor.js.map +0 -1
  657. package/dist/setup/opencode.js.map +0 -1
  658. package/dist/setup/smokeChecks.js.map +0 -1
  659. package/dist/state/installRoot.js.map +0 -1
  660. package/dist/state/progressCommit.js +0 -289
  661. package/dist/state/progressCommit.js.map +0 -1
  662. package/dist/state/startupAnalysis/benchmark.js.map +0 -1
  663. package/dist/state/startupAnalysis/contract.js.map +0 -1
  664. package/dist/state/startupAnalysis/helpers.js.map +0 -1
  665. package/dist/state/startupAnalysis/index.js.map +0 -1
  666. package/dist/state/startupAnalysis/metrics.js.map +0 -1
  667. package/dist/state/startupAnalysis/records.js.map +0 -1
  668. package/dist/state/startupAnalysis/report.js.map +0 -1
  669. package/dist/state/startupAnalysis/threshold.js.map +0 -1
  670. package/dist/state/startupAnalysis.js.map +0 -1
  671. package/dist/upgrade/appModel.js.map +0 -1
  672. package/dist/upgrade/channels.js.map +0 -1
  673. package/dist/upgrade/coexistenceProbe.js +0 -83
  674. package/dist/upgrade/coexistenceProbe.js.map +0 -1
  675. package/dist/upgrade/compatibility.js.map +0 -1
  676. package/dist/upgrade/doctor.js.map +0 -1
  677. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -570
  678. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  679. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
  680. package/dist/upgrade/nextMajorDoctor.js.map +0 -1
  681. package/dist/upgrade/projectIntegration.js.map +0 -1
  682. package/dist/upgrade/runtimeMigration.js.map +0 -1
  683. package/dist/upgrade/upgradeCommands.js.map +0 -1
  684. package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
  685. package/dist/upgrade/v3CapabilitySurface.js.map +0 -1
  686. package/dist/upgrade/versionResolution.js.map +0 -1
  687. package/dist/validate/appHomeContract.js.map +0 -1
  688. package/dist/validate/capability.js.map +0 -1
  689. package/dist/validate/crossCapability.js.map +0 -1
  690. package/dist/validate/lifecycleAdapters.js +0 -772
  691. package/dist/validate/lifecycleAdapters.js.map +0 -1
  692. package/dist/validate/selfAudit.js.map +0 -1
  693. package/dist/validate/vocabularyAuthority.js.map +0 -1
  694. /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
  695. /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
  696. /package/bundle/skills/agentera/capabilities/{hej → status}/schemas/exit.yaml +0 -0
@@ -1,552 +1,34 @@
1
- import fs from "node:fs";
2
- import os from "node:os";
3
- import path from "node:path";
4
1
  import { PRIME_BLOB } from "../prime-blob.js";
5
- import { buildDoctorStatus, publicDoctorStatus } from "../../upgrade/doctor.js";
6
- import { loadSuiteVersion, resolveDoctorInstallRoot, resolvePlatformAppHome, resolveSourceRootStrict } from "../../upgrade/appModel.js";
7
- import { resolveInvokedUpdateChannel } from "../../upgrade/channels.js";
8
- import { isNpxBundleRoot } from "../../core/sourceRoot.js";
9
- import { buildUpgradeCommands } from "../../upgrade/upgradeCommands.js";
10
- import { projectIntegrationAttention, summarizeProjectIntegration, } from "../../upgrade/projectIntegration.js";
11
- import { discoverSchemasDir, loadSchemas } from "../appContext.js";
12
- import { activeObjectiveSummary, checkProfileraStaleness, decisionFollowUp, decisionReviewAttention, docsSummary, formatNextAction, healthSummary, issueCounts, loadTodoItems, planSummary, progressSummary, registryArtifactPath, selectHejNextAction, statePresence, } from "../orientation.js";
13
- import { firstPresent, requestedFields, REQUIRED_SPARSE_CONTEXT_FIELDS } from "../stateQuery.js";
14
- import { BESPOKE_CONTEXT_CAPABILITIES, buildPrimeCapabilityContextPayload, validatePrimeCapability } from "../capabilityContext.js";
15
- import { emitStructured } from "../structured.js";
16
- const STARTUP_COMPLETENESS_MISSING_STATE = [];
17
- const STARTUP_AVAILABLE_STATE_FIELDS = [
18
- "app_home", "mode", "profile", "v1_migration", "health", "issues", "plan", "docs", "progress",
19
- "objective", "state_presence", "project_integration", "attention", "decision_attention", "next_action",
20
- "orchestration_context", "closeout_context", "evidence_context", "benchmark_context", "execution_context",
21
- ];
22
- const STARTUP_COMPLETENESS_CONFIDENCE_CAVEATS = [
23
- "representative benchmark evidence exists, but claude-code and github-copilot coverage is degraded by schema divergence",
24
- "Inspektera evidence context uses existing hej, plan, progress, docs, health, TODO, and decisions state outputs",
25
- ];
26
- const STARTUP_COMPLETENESS_CLI_FALLBACK = [
27
- "agentera plan --format json",
28
- "agentera docs --format json",
29
- "agentera progress --format json",
30
- ];
31
- const V1_ARTIFACT_PAIRS = [
32
- [".agentera/PROGRESS.md", ".agentera/progress.yaml"],
33
- [".agentera/PLAN.md", ".agentera/plan.yaml"],
34
- [".agentera/DECISIONS.md", ".agentera/decisions.yaml"],
35
- [".agentera/HEALTH.md", ".agentera/health.yaml"],
36
- [".agentera/DOCS.md", ".agentera/docs.yaml"],
37
- ["VISION.md", ".agentera/vision.yaml"],
38
- ];
39
- function startupCompletenessContract() {
40
- const complete = STARTUP_COMPLETENESS_MISSING_STATE.length === 0;
41
- return {
42
- complete_for_capability_startup: complete,
43
- raw_artifact_reads_required: false,
44
- raw_artifact_read_policy: "Do not read raw artifacts when complete_for_capability_startup is true. " +
45
- "When incomplete, try cli_fallback first; raw artifact reads are only a last-resort fallback.",
46
- available_state: STARTUP_AVAILABLE_STATE_FIELDS,
47
- missing_state: STARTUP_COMPLETENESS_MISSING_STATE,
48
- confidence_caveats: STARTUP_COMPLETENESS_CONFIDENCE_CAVEATS,
49
- cli_fallback: STARTUP_COMPLETENESS_CLI_FALLBACK,
50
- };
51
- }
52
- function isLocalCheckout(root) {
53
- return ["skills/agentera/SKILL.md", "registry.json"].every((rel) => fs.existsSync(path.join(root, rel)));
54
- }
55
- function detectV1Artifacts() {
56
- const root = process.cwd();
57
- const found = [];
58
- for (const [md, yaml] of V1_ARTIFACT_PAIRS) {
59
- if (fs.existsSync(path.join(root, md)) && !fs.existsSync(path.join(root, yaml)))
60
- found.push(md);
61
- }
62
- return found;
63
- }
64
- function v1MigrationSummary(v1Artifacts, opts) {
65
- const detected = v1Artifacts.length > 0;
66
- const channel = resolveInvokedUpdateChannel({
67
- channel: null,
68
- sourceRoot: opts.sourceRoot,
69
- home: opts.home,
70
- env: opts.env,
2
+ import { buildPrimeCapabilityContextPayload, validatePrimeCapability } from "../capabilityContext.js";
3
+ import { collectOrientationState } from "./prime/collectOrientationState.js";
4
+ import { buildOrientationJsonPayload, buildStatusContextState, emitPrime, rejectRetiredPrimeFields, PRIME_BRIEF_MAX_UTF8_BYTES, PRIME_STATUS_CONTEXT_MAX_UTF8_BYTES, printOrientationTextBriefing, } from "./prime/orientationOutput.js";
5
+ import { emitInvalidInput } from "../errors.js";
6
+ import { BuildExecutionRequestError, loadBuildExecutionRequest, } from "./prime/buildExecutionRequest.js";
7
+ import { preCutoverCommand } from "../preCutoverCommand.js";
8
+ export { collectOrientationState } from "./prime/collectOrientationState.js";
9
+ export function buildStatusCapabilityContextPayload(state, command = "prime") {
10
+ const payload = buildPrimeCapabilityContextPayload(state, "status", command);
11
+ return finalizeStatusCapabilityContextPayload(payload, state, command);
12
+ }
13
+ export function finalizeStatusCapabilityContextPayload(payload, state, command = "prime") {
14
+ const capabilityContext = payload.capability_context;
15
+ const context = capabilityContext.context;
16
+ // status_context carries the dashboard state. Startup availability remains
17
+ // singular on capability_context.startup.
18
+ delete capabilityContext.app;
19
+ // status_context already carries the canonical bounded plan projection.
20
+ delete context.plan;
21
+ context.status_context = buildStatusContextState(state, command, {
22
+ budgetBytes: PRIME_BRIEF_MAX_UTF8_BYTES,
23
+ degradedMode: "status_routing",
71
24
  });
72
- const cmds = detected
73
- ? buildUpgradeCommands({
74
- project: process.cwd(),
75
- installRoot: null,
76
- channel,
77
- only: ["artifacts"],
78
- cwdDefault: true,
79
- })
80
- : null;
81
- const summary = {
82
- detected,
83
- affected_files: v1Artifacts,
84
- dry_run_command: cmds?.dryRunCommand ?? null,
85
- apply_command: cmds?.applyCommand ?? null,
86
- requires_confirmation: detected,
87
- update_channel: channel.channel,
88
- };
89
- if (detected && isLocalCheckout(process.cwd())) {
90
- summary.local_dry_run_command = cmds?.dryRunCommand ?? null;
91
- summary.local_apply_command = cmds?.applyCommand ?? null;
92
- }
93
- return summary;
94
- }
95
- function frontmatterVersion(p) {
96
- let lines;
97
- try {
98
- if (!fs.statSync(p).isFile())
99
- return null;
100
- lines = fs.readFileSync(p, "utf8").split(/\r\n|\r|\n/);
101
- }
102
- catch {
103
- return null;
104
- }
105
- if (lines.length === 0 || lines[0].trim() !== "---")
106
- return null;
107
- for (const line of lines.slice(1)) {
108
- const stripped = line.trim();
109
- if (stripped === "---")
110
- return null;
111
- if (stripped.startsWith("version:")) {
112
- const version = stripped.split(":", 2)[1].trim().replace(/^["']|["']$/g, "");
113
- return version || null;
114
- }
115
- }
116
- return null;
117
- }
118
- function versionKey(version) {
119
- if (!version)
120
- return [];
121
- const parts = [];
122
- for (const item of version.split(/[.+_-]/)) {
123
- if (/^\d+$/.test(item))
124
- parts.push(parseInt(item, 10));
125
- else
126
- break;
127
- }
128
- return parts;
129
- }
130
- function versionKeyGe(a, b) {
131
- const n = Math.max(a.length, b.length);
132
- for (let i = 0; i < n; i++) {
133
- const ai = a[i] ?? 0;
134
- const bi = b[i] ?? 0;
135
- if (ai !== bi)
136
- return ai > bi;
137
- }
138
- return true;
139
- }
140
- function visibleSkillVersion(home, env) {
141
- const candidates = [];
142
- if (env.AGENTERA_VISIBLE_SKILL_ROOT)
143
- candidates.push(env.AGENTERA_VISIBLE_SKILL_ROOT);
144
- candidates.push(path.join(home, ".agents", "skills", "agentera"));
145
- candidates.push(path.join(home, ".config", "opencode", "skills", "agentera"));
146
- const versions = [];
147
- for (const root of candidates) {
148
- const version = frontmatterVersion(path.join(root, "SKILL.md"));
149
- if (version)
150
- versions.push([versionKey(version), version, root]);
151
- }
152
- if (versions.length === 0)
153
- return [null, null];
154
- versions.sort((a, b) => (versionKeyGe(a[0], b[0]) ? -1 : 1));
155
- return [versions[0][1], versions[0][2]];
156
- }
157
- function hejExpectedVersion(opts, sourceRoot, home, env) {
158
- if (opts.expectedVersion)
159
- return [opts.expectedVersion, "--expected-version"];
160
- if (env.AGENTERA_EXPECTED_VERSION)
161
- return [env.AGENTERA_EXPECTED_VERSION, "AGENTERA_EXPECTED_VERSION"];
162
- const sourceVersion = loadSuiteVersion(sourceRoot);
163
- const [visibleVersion, visibleSource] = visibleSkillVersion(home, env);
164
- if (visibleVersion && versionKeyGe(versionKey(visibleVersion), versionKey(sourceVersion))) {
165
- return [visibleVersion, visibleSource || "visible skill"];
166
- }
167
- return [sourceVersion, "source registry"];
168
- }
169
- function hejBundleStatus(opts) {
170
- const env = opts.env ?? process.env;
171
- const home = opts.home ? opts.home : os.homedir();
172
- const sourceRoot = resolveSourceRootStrict(env);
173
- const [installRoot, rootSource] = resolveDoctorInstallRoot(opts.installRoot ?? null, {
174
- home,
175
- env,
176
- sourceRoot,
177
- });
178
- const [expected, expectedSource] = hejExpectedVersion(opts, sourceRoot, home, env);
179
- const status = buildDoctorStatus(installRoot, {
180
- rootSource,
181
- sourceRoot,
182
- home,
183
- project: process.cwd(),
184
- expectedVersion: expected,
185
- expectedCommands: ["prime"],
186
- probeCli: false,
187
- });
188
- status.expectedVersionSource = expectedSource;
189
- if (isNpxBundleRoot(sourceRoot)) {
190
- const platformRoot = resolvePlatformAppHome(home, env);
191
- const platformStatus = buildDoctorStatus(platformRoot, {
192
- rootSource: "default",
193
- sourceRoot,
194
- home,
195
- project: process.cwd(),
196
- expectedVersion: expected,
197
- expectedCommands: ["prime"],
198
- probeCli: false,
199
- skipNpxBundleShortCircuit: true,
200
- env,
201
- });
202
- status.platformAppHome = {
203
- path: platformRoot,
204
- status: platformStatus.status,
205
- rootStatus: platformStatus.rootStatus,
206
- dryRunCommand: platformStatus.dryRunCommand,
207
- applyCommand: platformStatus.applyCommand,
208
- };
209
- status.cliBundle = {
210
- path: sourceRoot,
211
- status: status.status,
212
- rootStatus: status.rootStatus,
213
- };
214
- }
215
- return status;
216
- }
217
- function crossMajorAppHomeAttention(bundle, opts) {
218
- const devChannel = resolveInvokedUpdateChannel({
219
- channel: "development",
220
- sourceRoot: opts.sourceRoot,
221
- home: opts.home,
222
- env: opts.env,
223
- });
224
- const cmds = buildUpgradeCommands({
225
- project: process.cwd(),
226
- installRoot: bundle.appHome,
227
- channel: devChannel,
228
- cwdDefault: true,
229
- });
230
- return (`degraded: v2 managed app-home on 3.x CLI requires v2→v3 migration (irreversible); preview ` +
231
- `preview \`${cmds.dryRunCommand}\`; app_home=${bundle.appHome}`);
232
- }
233
- function appStatusAttention(bundle) {
234
- if (bundle.status === "outdated") {
235
- return (`normal: app files outdated; run agentera upgrade (preview: ` +
236
- `\`${bundle.dryRunCommand}\`); app_home=${bundle.appHome}`);
237
- }
238
- if (bundle.dryRunCommand) {
239
- const label = String(bundle.status).replace(/_/g, " ");
240
- return `degraded: app ${label}; preview \`${bundle.dryRunCommand}\`; app_home=${bundle.appHome}`;
241
- }
242
- return (`critical: app ${String(bundle.status).replace(/_/g, " ")}; fix AGENTERA_HOME or choose a managed app home; ` +
243
- `app_home=${bundle.appHome}`);
244
- }
245
- const TODO_SEVERITY_ORDER = {
246
- critical: 0, degraded: 1, warning: 1, normal: 2, info: 3, annoying: 3,
247
- };
248
- export function collectOrientationState(opts) {
249
- const env = opts.env ?? process.env;
250
- const home = opts.home ? opts.home : os.homedir();
251
- const sourceRoot = resolveSourceRootStrict(env);
252
- const schemasDir = discoverSchemasDir();
253
- const schemas = loadSchemas(schemasDir);
254
- const bundle = hejBundleStatus(opts);
255
- let savedContext = false;
256
- try {
257
- savedContext = fs.readdirSync(path.join(process.cwd(), ".agentera")).some((f) => f.endsWith(".yaml"));
258
- }
259
- catch {
260
- savedContext = false;
261
- }
262
- const mode = savedContext ? "returning" : "fresh";
263
- const profile = registryArtifactPath("profile", schemasDir);
264
- const profileExists = fs.existsSync(profile);
265
- const profileStatus = profileExists ? "loaded" : "not found";
266
- const profileStaleness = profileExists ? checkProfileraStaleness(profile, env) : null;
267
- const profileDict = { status: profileStatus, path: profile };
268
- if (profileStatus === "not found")
269
- profileDict.suggested_action = "Run profilera to generate PROFILE.md";
270
- if (profileStaleness !== null) {
271
- const [isStale, daysSince, staleDays] = profileStaleness;
272
- profileDict.days_since_generated = daysSince;
273
- profileDict.stale = isStale;
274
- profileDict.stale_threshold_days = staleDays;
275
- if (isStale)
276
- profileDict.suggested_action = "Run profilera to refresh PROFILE.md";
277
- }
278
- const v1Artifacts = detectV1Artifacts();
279
- const v1Migration = v1MigrationSummary(v1Artifacts, { sourceRoot, home, env });
280
- const plan = planSummary(schemas);
281
- const docs = docsSummary(schemas);
282
- const progress = progressSummary(schemas);
283
- const health = healthSummary(schemas, env);
284
- const objective = activeObjectiveSummary();
285
- const presence = statePresence(plan, docs, progress, health, objective);
286
- const todoItems = loadTodoItems(schemas);
287
- const counts = issueCounts(todoItems);
288
- const decision = decisionFollowUp(schemas);
289
- const decisionAttention = decisionReviewAttention(schemas);
290
- const project = process.cwd();
291
- const projectIntegration = summarizeProjectIntegration({
292
- project,
293
- sourceRoot,
294
- home,
295
- env,
296
- installRoot: String(bundle.appHome),
297
- bundleStatus: String(bundle.status),
298
- crossMajorBoundary: Boolean(bundle.crossMajorBoundary),
299
- });
300
- const integrationAttention = projectIntegrationAttention(projectIntegration);
301
- const defaultNextAction = selectHejNextAction(plan, health, objective, todoItems, decision, savedContext);
302
- const nextAction = projectIntegration.recommendation === "upgrade"
303
- ? {
304
- object: projectIntegration.pending_artifacts > 0
305
- ? "Upgrade Agentera artifacts"
306
- : projectIntegration.pending_runtime > 0
307
- ? "Upgrade Agentera runtime wiring"
308
- : "Upgrade Agentera",
309
- capability: "hej",
310
- reason: projectIntegration.message,
311
- }
312
- : defaultNextAction;
313
- const attention = [];
314
- if (integrationAttention) {
315
- attention.push(integrationAttention);
316
- }
317
- else if (bundle.crossMajorBoundary) {
318
- attention.push(crossMajorAppHomeAttention(bundle, { sourceRoot, home, env }));
319
- }
320
- else if (bundle.status !== "up_to_date") {
321
- attention.push(appStatusAttention(bundle));
322
- }
323
- if (v1Migration.detected && projectIntegration.recommendation !== "upgrade") {
324
- attention.push(`degraded: v1 artifacts detected; preview \`${v1Migration.dry_run_command}\`; files=${v1Artifacts.join(", ")}`);
325
- }
326
- if (profileStatus === "not found") {
327
- attention.push(`degraded: PROFILE.md not found at ${profile}; suggest running profilera to generate PROFILE.md`);
328
- }
329
- else if (profileStaleness !== null && profileStaleness[0]) {
330
- const [, daysSince, staleDays] = profileStaleness;
331
- attention.push(`normal: profilera profile stale (${daysSince} days since generated; ` +
332
- `threshold=${staleDays}); suggest running profilera to refresh PROFILE.md`);
333
- }
334
- if (health.stale) {
335
- const auditNumber = health.number ?? "?";
336
- const daysSince = health.days_since_audit ?? "?";
337
- const thresholdDays = health.stale_threshold_days ?? "?";
338
- const thresholdCycles = health.stale_threshold_cycles ?? "?";
339
- let attentionText = `normal: inspektera audit stale (${daysSince} days since Audit ${auditNumber}; ` +
340
- `threshold days=${thresholdDays}, cycles=${thresholdCycles}`;
341
- const cyclesSince = health.cycles_since_audit;
342
- if (cyclesSince !== null && cyclesSince !== undefined)
343
- attentionText += `; ${cyclesSince} cycles since audit`;
344
- attention.push(`${attentionText}); suggest running inspektera`);
345
- }
346
- if (health.degrading) {
347
- const worst = health.worst;
348
- attention.push(worst ? `critical: health needs attention (${worst[0]}:${worst[1]})` : "critical: health is degrading");
349
- }
350
- const pending = plan.first_pending;
351
- if (pending && typeof pending === "object" && !Array.isArray(pending)) {
352
- const title = firstPresent(pending, ["name", "title"], "pending task");
353
- attention.push(`normal: PLAN Task ${pending.number ?? "?"}: ${title}`);
354
- }
355
- if (decisionAttention !== null)
356
- attention.push(String(decisionAttention.attention));
357
- if (!(pending && typeof pending === "object" && !Array.isArray(pending)) && todoItems.length > 0) {
358
- const firstTodo = [...todoItems].sort((a, b) => (TODO_SEVERITY_ORDER[a.severity] ?? 2) - (TODO_SEVERITY_ORDER[b.severity] ?? 2))[0];
359
- attention.push(`${firstTodo.severity}: TODO: ${firstTodo.text}`);
360
- }
361
- return {
362
- schemas_dir: schemasDir,
363
- schemas,
364
- bundle,
365
- mode,
366
- profile_dict: profileDict,
367
- profile_status: profileStatus,
368
- profile,
369
- v1_migration: v1Migration,
370
- project_integration: projectIntegration,
371
- plan,
372
- docs,
373
- progress,
374
- health,
375
- objective,
376
- state_presence: presence,
377
- todo_items: todoItems,
378
- counts,
379
- decision_attention: decisionAttention,
380
- next_action: nextAction,
381
- attention,
382
- };
383
- }
384
- function printOrientationTextBriefing(state, command, out) {
385
- const bundle = state.bundle;
386
- const mode = state.mode;
387
- const profileStatus = state.profile_status;
388
- const profile = state.profile;
389
- const health = state.health;
390
- const counts = state.counts;
391
- const plan = state.plan;
392
- const objective = state.objective;
393
- const presence = state.state_presence;
394
- const attention = state.attention;
395
- const nextAction = state.next_action;
396
- const dashboardLabel = command === "prime" ? "prime orientation dashboard" : "hej dashboard";
397
- out(`agentera ${command}\n`);
398
- out(`app_home: status=${bundle.status} | home=${bundle.appHome} | ` +
399
- `source=${bundle.appHomeSource} | managed_app=${bundle.managedAppRoot} | user_data=${bundle.userDataRoot} | expected=${bundle.expectedVersion} | ` +
400
- `expected_source=${bundle.expectedVersionSource ?? "-"} | current=${bundle.markerVersion || "-"}\n`);
401
- out(`mode: ${mode}\n`);
402
- const projectIntegration = state.project_integration;
403
- out(`project_integration: recommendation=${projectIntegration.recommendation} | ` +
404
- `channel=${projectIntegration.update_channel} | pending_runtime=${projectIntegration.pending_runtime}\n`);
405
- if (projectIntegration.recommendation === "upgrade" && projectIntegration.message) {
406
- out(`project_integration_message: ${projectIntegration.message}\n`);
407
- }
408
- out(`profile: ${profileStatus} | path=${profile}\n`);
409
- if (health.exists) {
410
- const worst = health.worst;
411
- const worstText = worst ? `${worst[0]}:${worst[1]}` : "none";
412
- out(`health: audit=${health.number} | grade=${health.grade || "unknown"} | ` +
413
- `trajectory=${health.trajectory || "unknown"} | worst=${worstText}\n`);
414
- }
415
- out(`issues: critical=${counts.critical} | degraded=${counts.degraded} | normal=${counts.normal} | annoying=${counts.annoying}\n`);
416
- if (!presence.any_active) {
417
- const missing = Object.keys(presence.absence).sort().join(", ") || "none";
418
- out(`state: no active plan or objective | missing=${missing}\n`);
419
- }
420
- if (plan.exists && !plan.complete_plan) {
421
- out(`plan: status=${plan.status || "unknown"} | progress=${plan.complete ?? 0}/${plan.total ?? 0}\n`);
422
- }
423
- if (objective.active) {
424
- const target = objective.target ? ` | target=${objective.target}` : "";
425
- out(`objective: active | name=${objective.name} | metric=${objective.metric}${target}\n`);
426
- }
427
- else if (objective.exists) {
428
- out(`objective: none active | closed=${objective.closed_count ?? 0}\n`);
429
- }
430
- else {
431
- out("objective: none active\n");
432
- }
433
- if (attention.length > 0) {
434
- out("attention:\n");
435
- for (const item of attention.slice(0, 6))
436
- out(`- ${item}\n`);
437
- }
438
- out("next_action:\n");
439
- out(`- ${formatNextAction(nextAction)}\n`);
440
- out("source_contract:\n");
441
- out("- fields=app_home,mode,profile,v1_migration,project_integration,health,issues,plan,docs,progress,objective,state_presence,attention,decision_attention,next_action,orchestration_context,closeout_context,evidence_context,benchmark_context,execution_context\n");
442
- out(`- render=caller-owned README-style ${dashboardLabel}\n`);
443
- out("- access=single installed CLI call; app/v1/profile safety included; no preflight glob/read/import/doctor calls\n");
444
- const startup = startupCompletenessContract();
445
- out(`- capability_startup_complete=${String(startup.complete_for_capability_startup).toLowerCase()}\n`);
446
- out(`- raw_artifact_reads_required=${String(startup.raw_artifact_reads_required).toLowerCase()}; policy=${startup.raw_artifact_read_policy}\n`);
447
- const missingState = startup.missing_state.join("; ") || "none";
448
- out(`- missing_state=${missingState}\n`);
449
- out(`- confidence_caveats=${startup.confidence_caveats.join("; ")}\n`);
450
- out(`- cli_fallback=${startup.cli_fallback.join("; ")}\n`);
451
- }
452
- const HEJ_STRUCTURED_FIELDS = [
453
- "command", "status", "app_home", "bundle", "mode", "profile", "v1_migration", "health",
454
- "issues", "plan", "docs", "progress", "objective", "state_presence", "project_integration", "attention",
455
- "decision_attention", "next_action", "orchestration_context", "closeout_context",
456
- "evidence_context", "benchmark_context", "execution_context", "source", "source_contract",
457
- ];
458
- function orientationAppHome(bundle) {
459
- return {
460
- status: bundle.status,
461
- home: bundle.appHome,
462
- source: bundle.appHomeSource,
463
- managed_app_root: bundle.managedAppRoot,
464
- user_data_root: bundle.userDataRoot,
465
- };
466
- }
467
- function buildOrientationJsonPayload(state, command, capabilityName = null) {
468
- const bundle = state.bundle;
469
- const schemasDir = state.schemas_dir;
470
- const bundlePublic = publicDoctorStatus(bundle);
471
- const appHome = orientationAppHome(bundle);
472
- // For capabilityName === null (default + dashboard), all bespoke contexts are null.
473
- const bespoke = {
474
- orchestration_context: null,
475
- closeout_context: null,
476
- evidence_context: null,
477
- benchmark_context: null,
478
- execution_context: null,
479
- };
480
- const render = command === "hej"
481
- ? "caller-owned README-style hej dashboard"
482
- : "caller-owned README-style prime orientation dashboard";
483
- const access = command === "hej"
484
- ? "single installed CLI call; app/v1/profile safety included; no preflight glob/read/import/doctor calls during normal hej"
485
- : "single installed CLI call; app/v1/profile safety included; no preflight glob/read/import/doctor calls during normal prime";
486
- return {
487
- command,
488
- status: "ok",
489
- app_home: appHome,
490
- bundle: bundlePublic,
491
- mode: state.mode,
492
- profile: state.profile_dict,
493
- v1_migration: state.v1_migration,
494
- project_integration: state.project_integration,
495
- health: state.health,
496
- issues: state.counts,
497
- plan: state.plan,
498
- docs: state.docs,
499
- progress: state.progress,
500
- objective: state.objective,
501
- state_presence: state.state_presence,
502
- attention: state.attention.slice(0, 6),
503
- decision_attention: state.decision_attention,
504
- next_action: state.next_action,
505
- orchestration_context: bespoke.orchestration_context,
506
- closeout_context: bespoke.closeout_context,
507
- evidence_context: bespoke.evidence_context,
508
- benchmark_context: bespoke.benchmark_context,
509
- execution_context: bespoke.execution_context,
510
- source: {
511
- schemas_dir: schemasDir,
512
- project: process.cwd(),
513
- artifacts_present: state.mode === "returning",
514
- },
515
- source_contract: {
516
- fields: HEJ_STRUCTURED_FIELDS,
517
- render,
518
- access,
519
- empty_state: "fresh mode with missing artifact summaries and zero issue counts",
520
- capability_startup: startupCompletenessContract(),
521
- capability_context: capabilityName ? null : null,
522
- },
523
- };
524
- }
525
- function availablePrimeFields(command) {
526
- if (command === "prime")
527
- return [...HEJ_STRUCTURED_FIELDS, "capability_context"];
528
- return HEJ_STRUCTURED_FIELDS;
529
- }
530
- function emitPrime(command, payload, format, fieldsArg, out, err) {
531
- const requested = requestedFields(fieldsArg);
532
- if (requested.length === 0) {
533
- emitStructured(payload, format, out);
534
- return 0;
535
- }
536
- const available = availablePrimeFields(command);
537
- const unsupported = requested.filter((f) => !available.includes(f));
538
- if (unsupported.length > 0) {
539
- err(`Error: unsupported field '${unsupported[0]}' for ${command}. Available fields: ${available.join(", ")}\n`);
540
- return 1;
541
- }
542
- const selected = {};
543
- for (const field of [...REQUIRED_SPARSE_CONTEXT_FIELDS, ...requested]) {
544
- if (field in payload && !(field in selected))
545
- selected[field] = payload[field];
546
- }
547
- emitStructured(selected, format, out);
548
- return 0;
25
+ return payload;
549
26
  }
27
+ /**
28
+ * prime orientation command. Port of scripts/agentera cmd_prime / cmd_status.
29
+ * The text briefing (default), --guidance, deprecated --dashboard, --context,
30
+ * and --format json paths are all wired.
31
+ */
550
32
  export function cmdPrime(args, io = {}) {
551
33
  const out = io.out ?? ((t) => process.stdout.write(t));
552
34
  const err = io.err ?? ((t) => process.stderr.write(t));
@@ -554,6 +36,17 @@ export function cmdPrime(args, io = {}) {
554
36
  const capability = args.context ?? null;
555
37
  const dashboard = Boolean(args.dashboard || args.orientation);
556
38
  const guidance = Boolean(args.guidance);
39
+ const input = args.input ?? null;
40
+ const format = args.format ?? "text";
41
+ const inputErrorFormat = args.format === "json" || args.format === "yaml" ? args.format : "text";
42
+ const rejectInput = (body) => emitInvalidInput(io, { format: inputErrorFormat, body });
43
+ if (input !== null && (capability !== "build" || dashboard || guidance)) {
44
+ return rejectInput({
45
+ class: "unsupported_target",
46
+ message: "--input is valid only with prime --context build",
47
+ syntax: preCutoverCommand("prime --context build --input <file|-> --format json"),
48
+ });
49
+ }
557
50
  if (capability !== null && dashboard) {
558
51
  err("Error: prime --context and prime --dashboard/--orientation are mutually exclusive\n");
559
52
  return 2;
@@ -566,12 +59,19 @@ export function cmdPrime(args, io = {}) {
566
59
  err("Error: prime --dashboard/--orientation and prime --guidance are mutually exclusive\n");
567
60
  return 2;
568
61
  }
62
+ const retiredFieldRejection = rejectRetiredPrimeFields(command, format, args.fields, out, err);
63
+ if (retiredFieldRejection !== null)
64
+ return retiredFieldRejection;
569
65
  if (guidance) {
570
66
  out(PRIME_BLOB);
571
67
  return 0;
572
68
  }
573
- const format = args.format ?? "text";
574
- const collectOpts = { home: args.home, installRoot: args.installRoot, expectedVersion: args.expectedVersion };
69
+ const collectOpts = {
70
+ projectRoot: args.projectRoot,
71
+ home: args.home,
72
+ installRoot: args.installRoot,
73
+ expectedVersion: args.expectedVersion,
74
+ };
575
75
  if (capability !== null) {
576
76
  try {
577
77
  validatePrimeCapability(capability);
@@ -584,29 +84,51 @@ export function cmdPrime(args, io = {}) {
584
84
  err("Error: prime --context requires --format json\n");
585
85
  return 2;
586
86
  }
587
- if (BESPOKE_CONTEXT_CAPABILITIES.has(capability)) {
588
- err("agentera: prime --context for this capability is not yet ported (pending its bespoke context)\n");
589
- return 1;
87
+ let buildRequest = null;
88
+ if (input !== null) {
89
+ try {
90
+ buildRequest = loadBuildExecutionRequest(input, io.stdin);
91
+ }
92
+ catch (error) {
93
+ if (error instanceof BuildExecutionRequestError)
94
+ return rejectInput(error.body);
95
+ return rejectInput({ class: "invalid_format", message: "Build execution request input could not be read" });
96
+ }
590
97
  }
591
98
  const state = collectOrientationState(collectOpts);
592
- const payload = buildPrimeCapabilityContextPayload(state, capability, command);
593
- return emitPrime(command, payload, format, args.fields, out, err);
99
+ if (buildRequest !== null && state.plan.active === true) {
100
+ return rejectInput({
101
+ class: "conflict",
102
+ message: "Transient no-plan Build input conflicts with the current plan-owned execution context",
103
+ recovery: "Run Build without --input for the current plan, or close/archive that plan before retrying; no state was changed.",
104
+ });
105
+ }
106
+ const payload = capability === "status"
107
+ ? buildStatusCapabilityContextPayload(state, command)
108
+ : buildPrimeCapabilityContextPayload(state, capability, command, buildRequest);
109
+ return emitPrime(command, payload, format, args.fields, out, err, {
110
+ maxUtf8Bytes: capability === "status" ? PRIME_STATUS_CONTEXT_MAX_UTF8_BYTES : undefined,
111
+ });
594
112
  }
595
113
  if (dashboard) {
596
114
  if (format === "text") {
597
115
  err("Error: prime --dashboard requires --format json\n");
598
116
  return 2;
599
117
  }
118
+ err("Deprecation: prime --dashboard is retained as an alias for `prime --context status --format json`; use the status startup capsule directly.\n");
600
119
  const state = collectOrientationState(collectOpts);
601
- const payload = buildOrientationJsonPayload(state, command, null);
602
- return emitPrime(command, payload, format, args.fields, out, err);
120
+ const payload = buildStatusCapabilityContextPayload(state, command);
121
+ return emitPrime(command, payload, format, args.fields, out, err, {
122
+ maxUtf8Bytes: PRIME_STATUS_CONTEXT_MAX_UTF8_BYTES,
123
+ });
603
124
  }
604
125
  const state = collectOrientationState(collectOpts);
605
126
  if (format !== "text") {
606
- const payload = buildOrientationJsonPayload(state, command, null);
607
- return emitPrime(command, payload, format, args.fields, out, err);
127
+ const payload = buildOrientationJsonPayload(state, command);
128
+ // Bare default: project to the bounded decision brief (prime-briefing,
129
+ // 12000-byte budget). Explicit `--fields` selection keeps full payload.
130
+ return emitPrime(command, payload, format, args.fields, out, err, { bareBrief: true });
608
131
  }
609
132
  printOrientationTextBriefing(state, command, out);
610
133
  return 0;
611
134
  }
612
- //# sourceMappingURL=prime.js.map