agentera 3.0.0-dev.4 → 3.0.0-dev.46

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 (585) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +108 -22
  3. package/bundle/.agentera-npx-bundle.json +1 -1
  4. package/bundle/CHANGELOG.md +1351 -0
  5. package/bundle/DESIGN.md +229 -0
  6. package/bundle/LICENSE +201 -0
  7. package/bundle/README.md +143 -0
  8. package/bundle/UPGRADE.md +236 -0
  9. package/bundle/extract-corpus-parity.json +21 -0
  10. package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
  11. package/bundle/references/adapters/package-publication.json +437 -0
  12. package/bundle/references/adapters/package-registry.yaml +434 -189
  13. package/bundle/references/adapters/package-surface-characterization.md +66 -35
  14. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +74 -0
  15. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +62 -0
  16. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  17. package/bundle/references/adapters/runtime-retired-resources.yaml +333 -0
  18. package/bundle/references/analysis/evidence-tier-authority.yaml +518 -0
  19. package/bundle/references/analysis/verification-policy.yaml +191 -0
  20. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +20 -10
  21. package/bundle/references/artifacts/glossary-entry-contract.yaml +1254 -0
  22. package/bundle/references/artifacts/state-storage-authority.yaml +2982 -0
  23. package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
  24. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +7 -8
  25. package/bundle/references/cli/capability-instruction-contract.yaml +97 -59
  26. package/bundle/references/cli/hybrid-route-contract.yaml +438 -0
  27. package/bundle/references/cli/routing-model.md +155 -0
  28. package/bundle/references/cli/trigger-schema-enrichment.md +147 -0
  29. package/bundle/references/cli/update-channels.yaml +35 -2
  30. package/bundle/references/cli/vocabulary-index.yaml +23 -20
  31. package/bundle/references/cli/vocabulary.md +337 -366
  32. package/bundle/references/meta/retained-reference-authority.yaml +151 -0
  33. package/bundle/registry.json +14 -14
  34. package/bundle/skills/agentera/SKILL.md +218 -408
  35. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +84 -0
  36. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +2 -2
  37. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +25 -0
  38. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +37 -18
  39. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +102 -0
  40. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +6 -5
  41. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +27 -0
  42. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +176 -0
  43. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +12 -12
  44. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +5 -5
  45. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +16 -0
  46. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +7 -7
  47. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +51 -0
  48. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +2 -2
  49. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +20 -0
  50. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +144 -0
  51. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +80 -0
  52. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +16 -0
  53. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +18 -18
  54. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +18 -18
  55. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +2 -2
  56. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +16 -0
  57. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +9 -9
  58. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +76 -0
  59. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +9 -7
  60. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +23 -0
  61. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +121 -0
  62. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +66 -0
  63. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
  64. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +23 -0
  65. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +121 -0
  66. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +23 -0
  67. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +6 -5
  68. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +20 -0
  69. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +115 -0
  70. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +24 -0
  71. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +16 -0
  72. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
  73. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +73 -0
  74. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +22 -0
  75. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
  76. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +16 -16
  77. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +7 -6
  78. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +23 -0
  79. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +18 -20
  80. package/bundle/skills/agentera/capability_schema_contract.yaml +200 -37
  81. package/bundle/skills/agentera/protocol.yaml +31 -31
  82. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  83. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +5 -4
  84. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +40 -22
  85. package/bundle/skills/agentera/schemas/artifacts/design.yaml +5 -4
  86. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +15 -19
  87. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +145 -14
  88. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
  89. package/bundle/skills/agentera/schemas/artifacts/health.yaml +58 -21
  90. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +22 -8
  91. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +421 -33
  92. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +143 -53
  93. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +345 -31
  94. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
  95. package/dist/analytics/extractCorpus/cli.js +190 -0
  96. package/dist/analytics/extractCorpus/copilotSessions.js +275 -0
  97. package/dist/analytics/extractCorpus/core.js +392 -0
  98. package/dist/analytics/extractCorpus/corpus.js +167 -0
  99. package/dist/analytics/extractCorpus/coverageAudit.js +260 -0
  100. package/dist/analytics/extractCorpus/cursorSessions.js +425 -0
  101. package/dist/analytics/extractCorpus/evidenceTiers.js +603 -0
  102. package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
  103. package/dist/analytics/extractCorpus/filesystemSources.js +118 -0
  104. package/dist/analytics/extractCorpus/index.js +14 -0
  105. package/dist/analytics/extractCorpus/jsonlSessions.js +204 -0
  106. package/dist/analytics/extractCorpus/sqliteCaps.js +43 -0
  107. package/dist/analytics/extractCorpus/sqliteSessions.js +367 -0
  108. package/dist/analytics/extractCorpus/tierReader.js +108 -0
  109. package/dist/analytics/extractCorpus.js +2 -1791
  110. package/dist/analytics/glossaryAdviceResolution.js +166 -0
  111. package/dist/analytics/glossaryInputAcquisition.js +319 -0
  112. package/dist/analytics/personalGlossaryAdmission.js +133 -0
  113. package/dist/analytics/personalGlossaryProfile.js +219 -0
  114. package/dist/analytics/profileSignals.js +211 -0
  115. package/dist/analytics/usageStats.js +169 -42
  116. package/dist/audit/terminologyDrift.js +281 -0
  117. package/dist/bin/agentera.js +3 -2
  118. package/dist/capabilities/audit/instructions.js +16 -0
  119. package/dist/capabilities/build/instructions.js +56 -0
  120. package/dist/capabilities/design/instructions.js +4 -0
  121. package/dist/capabilities/discuss/instructions.js +29 -0
  122. package/dist/capabilities/document/instructions.js +11 -0
  123. package/dist/capabilities/index.js +40 -0
  124. package/dist/capabilities/optimize/instructions.js +14 -0
  125. package/dist/capabilities/orchestrate/instructions.js +40 -0
  126. package/dist/capabilities/plan/instructions.js +32 -0
  127. package/dist/capabilities/profile/instructions.js +70 -0
  128. package/dist/capabilities/research/instructions.js +5 -0
  129. package/dist/capabilities/status/instructions.js +11 -0
  130. package/dist/capabilities/status/startupInstructions.js +34 -0
  131. package/dist/capabilities/vision/instructions.js +4 -0
  132. package/dist/cli/appContext.js +30 -24
  133. package/dist/cli/argvalidate.js +0 -1
  134. package/dist/cli/capabilityContext/benchmark.js +565 -0
  135. package/dist/cli/capabilityContext/bespoke.js +44 -0
  136. package/dist/cli/capabilityContext/build.js +242 -0
  137. package/dist/cli/capabilityContext/closeout.js +233 -0
  138. package/dist/cli/capabilityContext/contract.js +179 -0
  139. package/dist/cli/capabilityContext/evidence.js +463 -0
  140. package/dist/cli/capabilityContext/index.js +3 -0
  141. package/dist/cli/capabilityContext/orchestration.js +131 -0
  142. package/dist/cli/capabilityContext/planState.js +260 -0
  143. package/dist/cli/capabilityContext/progress.js +142 -0
  144. package/dist/cli/capabilityContext/projectVerification.js +409 -0
  145. package/dist/cli/capabilityContext/shared.js +83 -0
  146. package/dist/cli/capabilityContext/slim.js +152 -0
  147. package/dist/cli/capabilityContext/startup.js +150 -0
  148. package/dist/cli/capabilityContext/startupAggregation.js +68 -0
  149. package/dist/cli/capabilityContext/types.js +56 -0
  150. package/dist/cli/capabilityContext.js +1 -2421
  151. package/dist/cli/commands/appHome.js +22 -0
  152. package/dist/cli/commands/capability.js +5 -12
  153. package/dist/cli/commands/compact.js +41 -13
  154. package/dist/cli/commands/doctor.js +127 -97
  155. package/dist/cli/commands/durability.js +81 -0
  156. package/dist/cli/commands/glossaryAdvice.js +138 -0
  157. package/dist/cli/commands/lint.js +26 -44
  158. package/dist/cli/commands/personalGlossary.js +176 -0
  159. package/dist/cli/commands/prime/briefOrientation.js +747 -0
  160. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  161. package/dist/cli/commands/prime/bundleStatus.js +190 -0
  162. package/dist/cli/commands/prime/collectEntityOrientation.js +311 -0
  163. package/dist/cli/commands/prime/collectOrientationState.js +212 -0
  164. package/dist/cli/commands/prime/orientationOutput.js +397 -0
  165. package/dist/cli/commands/prime/types.js +1 -0
  166. package/dist/cli/commands/prime/v1Migration.js +38 -0
  167. package/dist/cli/commands/prime.js +80 -558
  168. package/dist/cli/commands/profileGrounding.js +55 -0
  169. package/dist/cli/commands/query.js +78 -53
  170. package/dist/cli/commands/report.js +96 -25
  171. package/dist/cli/commands/route.js +142 -0
  172. package/dist/cli/commands/schema.js +266 -143
  173. package/dist/cli/commands/state/decisions.js +387 -0
  174. package/dist/cli/commands/state/docs.js +70 -0
  175. package/dist/cli/commands/state/experimentRecords.js +151 -0
  176. package/dist/cli/commands/state/experiments.js +14 -0
  177. package/dist/cli/commands/state/get.js +129 -0
  178. package/dist/cli/commands/state/health.js +14 -0
  179. package/dist/cli/commands/state/index.js +16 -0
  180. package/dist/cli/commands/state/list.js +194 -0
  181. package/dist/cli/commands/state/objective.js +25 -0
  182. package/dist/cli/commands/state/plan.js +14 -0
  183. package/dist/cli/commands/state/planTasks.js +154 -0
  184. package/dist/cli/commands/state/plans.js +154 -0
  185. package/dist/cli/commands/state/progress.js +13 -0
  186. package/dist/cli/commands/state/shared.js +14 -0
  187. package/dist/cli/commands/state/todo.js +42 -0
  188. package/dist/cli/commands/state/write.js +434 -0
  189. package/dist/cli/commands/upgrade.js +146 -5
  190. package/dist/cli/commands/upgradeVerify.js +118 -0
  191. package/dist/cli/commands/validate.js +272 -213
  192. package/dist/cli/commands/verify.js +24 -9
  193. package/dist/cli/contracts/bundleStatus.js +1 -0
  194. package/dist/cli/contracts/orientationState.js +1 -0
  195. package/dist/cli/dispatch/argvParser.js +32 -0
  196. package/dist/cli/dispatch/check.js +372 -0
  197. package/dist/cli/dispatch/commands.js +27 -0
  198. package/dist/cli/dispatch/index.js +207 -0
  199. package/dist/cli/dispatch/lifecycle.js +652 -0
  200. package/dist/cli/dispatch/prime.js +139 -0
  201. package/dist/cli/dispatch/projections.js +17 -0
  202. package/dist/cli/dispatch/shared.js +63 -0
  203. package/dist/cli/dispatch/state.js +140 -0
  204. package/dist/cli/dispatch.js +1 -996
  205. package/dist/cli/errors.js +52 -0
  206. package/dist/cli/help.js +390 -43
  207. package/dist/cli/migrationRequired.js +87 -0
  208. package/dist/cli/orientation/attention.js +59 -0
  209. package/dist/cli/orientation/corpusCoverage.js +102 -0
  210. package/dist/cli/orientation.js +444 -173
  211. package/dist/cli/planArtifacts.js +350 -0
  212. package/dist/cli/planEvidence.js +157 -0
  213. package/dist/cli/planLifecycleState.js +36 -0
  214. package/dist/cli/planTaskIndex.js +11 -0
  215. package/dist/cli/preCutoverCommand.js +32 -0
  216. package/dist/cli/prime-blob.js +71 -3
  217. package/dist/cli/profileAcquisition.js +167 -0
  218. package/dist/cli/startupCompletenessContract.js +59 -0
  219. package/dist/cli/stateQuery.js +63 -14
  220. package/dist/cli/structured.js +0 -1
  221. package/dist/cli/todoMarkdown.js +46 -0
  222. package/dist/cli/todoReadinessSelection.js +192 -0
  223. package/dist/cli/todoSeverity.js +18 -0
  224. package/dist/core/atomicWriter.js +20 -0
  225. package/dist/core/developmentChannel.js +1 -0
  226. package/dist/core/developmentInvocation.js +374 -0
  227. package/dist/core/difflib.js +0 -1
  228. package/dist/core/envPaths.js +20 -0
  229. package/dist/core/jsonValue.js +5 -0
  230. package/dist/core/paths.js +0 -1
  231. package/dist/core/pyjson.js +67 -3
  232. package/dist/core/shell.js +4 -0
  233. package/dist/core/skillIdentity.js +23 -0
  234. package/dist/core/sourceRoot.js +9 -12
  235. package/dist/core/text.js +10 -0
  236. package/dist/core/toml.js +0 -1
  237. package/dist/core/yaml.js +8 -1
  238. package/dist/eval/evalSkills.js +30 -26
  239. package/dist/eval/hybridRouteEvaluation.js +155 -0
  240. package/dist/eval/semanticEval.js +43 -20
  241. package/dist/eval/semanticFixtures.js +16 -5
  242. package/dist/hooks/common.js +11 -81
  243. package/dist/hooks/compaction/apply.js +446 -0
  244. package/dist/hooks/compaction/dryRun.js +184 -0
  245. package/dist/hooks/compaction/index.js +22 -0
  246. package/dist/hooks/compaction/parse.js +325 -0
  247. package/dist/hooks/compaction/retention.js +202 -0
  248. package/dist/hooks/compaction/status.js +360 -0
  249. package/dist/hooks/compaction/types.js +5 -0
  250. package/dist/hooks/validateArtifact/agentFacing.js +9 -0
  251. package/dist/hooks/validateArtifact/index.js +92 -0
  252. package/dist/hooks/validateArtifact/markdown.js +145 -0
  253. package/dist/hooks/validateArtifact/schema.js +546 -0
  254. package/dist/hooks/validateArtifact/traversal.js +107 -0
  255. package/dist/hooks/validateArtifact/violations.js +107 -0
  256. package/dist/migrate/v2HandoffManifest.js +452 -0
  257. package/dist/registries/activationContract.js +2 -0
  258. package/dist/registries/activationTuples.js +106 -0
  259. package/dist/registries/artifactProtocolIds.js +78 -0
  260. package/dist/registries/artifactRegistry.js +224 -63
  261. package/dist/registries/artifactSchemaProjection.js +45 -0
  262. package/dist/registries/capabilityContract.js +141 -13
  263. package/dist/registries/evaluatorHandoffContract.js +170 -0
  264. package/dist/registries/evidenceTierContract.js +371 -0
  265. package/dist/registries/glossaryAdviceContract.js +79 -0
  266. package/dist/registries/glossaryCaveatContract.js +67 -0
  267. package/dist/registries/glossaryConsumerContractValidation.js +787 -0
  268. package/dist/registries/glossaryEntryContract.js +757 -0
  269. package/dist/registries/glossaryTermIdentity.js +17 -0
  270. package/dist/registries/glossaryTermOccurrence.js +20 -0
  271. package/dist/registries/hybridRoute.js +274 -0
  272. package/dist/registries/hybridRouteReceipt.js +221 -0
  273. package/dist/registries/packagePublication.js +229 -0
  274. package/dist/registries/packageRegistry.js +187 -211
  275. package/dist/registries/todoReadinessContract.js +448 -0
  276. package/dist/registries/triggerLoader.js +174 -0
  277. package/dist/registries/verbosityBudgetContract.js +205 -0
  278. package/dist/release/releaseMetadata.js +385 -0
  279. package/dist/runtime/lifecycleAdapterContract.js +457 -0
  280. package/dist/runtime/lifecycleAdapters.js +777 -0
  281. package/dist/runtime/lifecycleAuthority.js +453 -0
  282. package/dist/runtime/lifecycleOperationContract.js +123 -0
  283. package/dist/runtime/lifecycleOperations.js +634 -0
  284. package/dist/runtime/lifecycleOwnershipJournal.js +622 -0
  285. package/dist/runtime/lifecyclePublication.js +415 -0
  286. package/dist/runtime/lifecycleSnapshot.js +438 -0
  287. package/dist/runtime/nativeResourceCleanup.js +502 -0
  288. package/dist/setup/opencode.js +20 -0
  289. package/dist/setup/opencodeConstants.js +1 -0
  290. package/dist/setup/sharedSkill.js +45 -0
  291. package/dist/setup/smokeChecks.js +21 -82
  292. package/dist/state/archiveDiscovery.js +580 -0
  293. package/dist/state/archivePublication.js +225 -0
  294. package/dist/state/archiveRecovery.js +237 -0
  295. package/dist/state/archiveReplay.js +53 -0
  296. package/dist/state/canonicalMigrationRecord.js +36 -0
  297. package/dist/state/changelog.js +221 -0
  298. package/dist/state/decisionEntities.js +367 -0
  299. package/dist/state/decisionLegacyValidation.js +215 -0
  300. package/dist/state/decisionMigrationProvenance.js +199 -0
  301. package/dist/state/decisionOverlay.js +254 -0
  302. package/dist/state/decisionRevision.js +256 -0
  303. package/dist/state/decisionRevisionMigration.js +89 -0
  304. package/dist/state/directRetrieval.js +323 -0
  305. package/dist/state/durability.js +324 -0
  306. package/dist/state/entityCutover.js +459 -0
  307. package/dist/state/entityCutoverGit.js +127 -0
  308. package/dist/state/entityGlossaryAuthority.js +13 -0
  309. package/dist/state/entityListProjection.js +187 -0
  310. package/dist/state/entityListRuntimeRegistry.js +85 -0
  311. package/dist/state/entityMigrationCausality.js +97 -0
  312. package/dist/state/entityMigrationIdentity.js +5 -0
  313. package/dist/state/entityMigrationPreview.js +846 -0
  314. package/dist/state/entityMigrationTodo.js +133 -0
  315. package/dist/state/entityPublicationContext.js +806 -0
  316. package/dist/state/entityRetrievalHelp.js +506 -0
  317. package/dist/state/entityStorage.js +896 -0
  318. package/dist/state/exactReplacementRecovery.js +18 -0
  319. package/dist/state/experimentArchive.js +63 -0
  320. package/dist/state/experimentIdentity.js +202 -0
  321. package/dist/state/healthEntities.js +262 -0
  322. package/dist/state/healthEntityValidation.js +18 -0
  323. package/dist/state/healthRepair.js +69 -0
  324. package/dist/state/installRoot.js +64 -25
  325. package/dist/state/legacyEntityCutoverEvidence.js +65 -0
  326. package/dist/state/legacyIdentity.js +47 -0
  327. package/dist/state/legacySummaryRecord.js +6 -0
  328. package/dist/state/listAccounting.js +54 -0
  329. package/dist/state/listClassification.js +17 -0
  330. package/dist/state/listCursor.js +42 -0
  331. package/dist/state/listRetrieval.js +781 -0
  332. package/dist/state/migrationSourceBinding.js +30 -0
  333. package/dist/state/objectiveExperimentEntities.js +322 -0
  334. package/dist/state/planEntities.js +530 -0
  335. package/dist/state/planIdentity.js +47 -0
  336. package/dist/state/planRetrieval.js +313 -0
  337. package/dist/state/planTaskRetrieval.js +294 -0
  338. package/dist/state/progressEntities.js +512 -0
  339. package/dist/state/progressGlossaryCaveat.js +168 -0
  340. package/dist/state/progressPublicationOrder.js +19 -0
  341. package/dist/state/projectRoot.js +62 -0
  342. package/dist/state/projectionPolicy.js +190 -0
  343. package/dist/state/retrievalAuthority.js +156 -0
  344. package/dist/state/safeProjectFile.js +155 -0
  345. package/dist/state/startupAnalysis/benchmark.js +432 -0
  346. package/dist/state/startupAnalysis/contract.js +160 -0
  347. package/dist/state/startupAnalysis/helpers.js +286 -0
  348. package/dist/state/startupAnalysis/index.js +6 -0
  349. package/dist/state/startupAnalysis/metrics.js +340 -0
  350. package/dist/state/startupAnalysis/records.js +198 -0
  351. package/dist/state/startupAnalysis/report.js +111 -0
  352. package/dist/state/startupAnalysis/threshold.js +512 -0
  353. package/dist/state/startupAnalysis.js +2 -1953
  354. package/dist/state/startupProjection.js +499 -0
  355. package/dist/state/stateMode.js +85 -0
  356. package/dist/state/stateStorageAuthority.js +47 -0
  357. package/dist/state/summaryEntityRead.js +25 -0
  358. package/dist/state/summaryMigrationProvenance.js +66 -0
  359. package/dist/state/summarySourceRowAuthority.js +36 -0
  360. package/dist/state/todoDocsEntities.js +1064 -0
  361. package/dist/state/todoDocsEntityValidation.js +158 -0
  362. package/dist/state/todoMarkdownProjection.js +51 -0
  363. package/dist/state/todoReconciliationActivation.js +132 -0
  364. package/dist/state/todoReconciliationInspection.js +173 -0
  365. package/dist/state/todoReconciliationRepair.js +170 -0
  366. package/dist/state/todoReconciliationTransaction.js +582 -0
  367. package/dist/state/write/assign.js +20 -0
  368. package/dist/state/write/candidateMutation.js +269 -0
  369. package/dist/state/write/errors.js +11 -0
  370. package/dist/state/write/experimentPublication.js +192 -0
  371. package/dist/state/write/explain.js +332 -0
  372. package/dist/state/write/fields.js +61 -0
  373. package/dist/state/write/glossaryPublication.js +263 -0
  374. package/dist/state/write/grammar.js +280 -0
  375. package/dist/state/write/helpers.js +29 -0
  376. package/dist/state/write/index.js +12 -0
  377. package/dist/state/write/input.js +367 -0
  378. package/dist/state/write/lock.js +837 -0
  379. package/dist/state/write/mutation.js +234 -0
  380. package/dist/state/write/operations.js +169 -0
  381. package/dist/state/write/planEvaluation.js +128 -0
  382. package/dist/state/write/planPublication.js +179 -0
  383. package/dist/state/write/runtimeOperations.js +142 -0
  384. package/dist/state/write/serialize.js +1 -0
  385. package/dist/state/write/transaction.js +52 -0
  386. package/dist/state/write/validate.js +7 -0
  387. package/dist/upgrade/appContentRefresh.js +383 -0
  388. package/dist/upgrade/appModel.js +8 -7
  389. package/dist/upgrade/atomicWriter.js +1 -0
  390. package/dist/upgrade/bundleEvidence.js +33 -0
  391. package/dist/upgrade/channels.js +12 -8
  392. package/dist/upgrade/compatibility.js +56 -21
  393. package/dist/upgrade/doctor.js +197 -192
  394. package/dist/upgrade/doctorClassifier.js +187 -0
  395. package/dist/upgrade/installedHooksRetirement.js +196 -0
  396. package/dist/upgrade/legacyAgentCleanup.js +282 -0
  397. package/dist/upgrade/lifecycleUpgrade.js +113 -0
  398. package/dist/upgrade/migrateArtifactsV2ToV3.js +367 -149
  399. package/dist/upgrade/migrationPublication.js +122 -0
  400. package/dist/upgrade/nextMajorDoctor.js +155 -0
  401. package/dist/upgrade/npxPlatformStatus.js +22 -0
  402. package/dist/upgrade/projectIntegration.js +145 -187
  403. package/dist/upgrade/projectIntegrationDecision.js +50 -0
  404. package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
  405. package/dist/upgrade/runtimeMigration.js +278 -352
  406. package/dist/upgrade/upgradeCommands.js +14 -1
  407. package/dist/upgrade/upgradeLock.js +85 -0
  408. package/dist/upgrade/upgradeOrchestrator.js +263 -59
  409. package/dist/upgrade/v3CapabilitySurface.js +14 -0
  410. package/dist/upgrade/versionResolution.js +12 -5
  411. package/dist/validate/activationArtifactEvidence.js +844 -0
  412. package/dist/validate/activationConjunction.js +816 -0
  413. package/dist/validate/activationEvidenceManifest.js +515 -0
  414. package/dist/validate/activationPackageSemantics.js +29 -0
  415. package/dist/validate/appHomeContract.js +5 -11
  416. package/dist/validate/bootstrapAuthority.js +44 -0
  417. package/dist/validate/capability.js +144 -15
  418. package/dist/validate/crossCapability.js +15 -10
  419. package/dist/validate/retainedReferenceAuthority.js +879 -0
  420. package/dist/validate/selfAudit.js +73 -37
  421. package/dist/validate/v1LegacyCruft.js +131 -0
  422. package/dist/validate/vocabularyAuthority.js +303 -0
  423. package/package.json +53 -27
  424. package/bundle/references/adapters/cursor.md +0 -213
  425. package/bundle/references/adapters/opencode.md +0 -530
  426. package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
  427. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  428. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  429. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -548
  430. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  431. package/bundle/references/analysis/benchmark.md +0 -267
  432. package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
  433. package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
  434. package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -355
  435. package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -278
  436. package/bundle/references/cli/capability-tool-classification.yaml +0 -53
  437. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
  438. package/bundle/references/meta/documentation-inventory.md +0 -43
  439. package/bundle/references/v1-section-mapping.md +0 -47
  440. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  441. package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
  442. package/bundle/skills/agentera/agents/hej.toml +0 -6
  443. package/bundle/skills/agentera/agents/inspektera.toml +0 -6
  444. package/bundle/skills/agentera/agents/inspirera.toml +0 -6
  445. package/bundle/skills/agentera/agents/optimera.toml +0 -6
  446. package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
  447. package/bundle/skills/agentera/agents/planera.toml +0 -6
  448. package/bundle/skills/agentera/agents/profilera.toml +0 -6
  449. package/bundle/skills/agentera/agents/realisera.toml +0 -6
  450. package/bundle/skills/agentera/agents/resonera.toml +0 -6
  451. package/bundle/skills/agentera/agents/visionera.toml +0 -6
  452. package/bundle/skills/agentera/agents/visualisera.toml +0 -6
  453. package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +0 -428
  454. package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +0 -73
  455. package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +0 -35
  456. package/bundle/skills/agentera/capabilities/hej/instructions.md +0 -331
  457. package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +0 -69
  458. package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +0 -58
  459. package/bundle/skills/agentera/capabilities/inspektera/instructions.md +0 -514
  460. package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +0 -76
  461. package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +0 -38
  462. package/bundle/skills/agentera/capabilities/inspirera/instructions.md +0 -280
  463. package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +0 -24
  464. package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +0 -34
  465. package/bundle/skills/agentera/capabilities/optimera/instructions.md +0 -437
  466. package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +0 -39
  467. package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +0 -433
  468. package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +0 -64
  469. package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +0 -42
  470. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +0 -107
  471. package/bundle/skills/agentera/capabilities/planera/instructions.md +0 -368
  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/instructions.md +0 -419
  476. package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +0 -18
  477. package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +0 -45
  478. package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +0 -57
  479. package/bundle/skills/agentera/capabilities/realisera/instructions.md +0 -403
  480. package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +0 -80
  481. package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +0 -39
  482. package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +0 -110
  483. package/bundle/skills/agentera/capabilities/resonera/instructions.md +0 -329
  484. package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +0 -47
  485. package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +0 -46
  486. package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +0 -77
  487. package/bundle/skills/agentera/capabilities/visionera/instructions.md +0 -309
  488. package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +0 -41
  489. package/bundle/skills/agentera/capabilities/visualisera/instructions.md +0 -400
  490. package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +0 -33
  491. package/bundle/skills/agentera/references/contract.md +0 -1039
  492. package/bundle/skills/hej/.claude-plugin/plugin.json +0 -6
  493. package/bundle/skills/hej/SKILL.md +0 -69
  494. package/bundle/skills/hej/agents/hej.toml +0 -11
  495. package/bundle/skills/hej/agents/openai.yaml +0 -8
  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/cli/appContext.js.map +0 -1
  500. package/dist/cli/argvalidate.js.map +0 -1
  501. package/dist/cli/capabilityContext.js.map +0 -1
  502. package/dist/cli/commands/backfill.js +0 -84
  503. package/dist/cli/commands/backfill.js.map +0 -1
  504. package/dist/cli/commands/capability.js.map +0 -1
  505. package/dist/cli/commands/compact.js.map +0 -1
  506. package/dist/cli/commands/doctor.js.map +0 -1
  507. package/dist/cli/commands/lint.js.map +0 -1
  508. package/dist/cli/commands/prime.js.map +0 -1
  509. package/dist/cli/commands/query.js.map +0 -1
  510. package/dist/cli/commands/report.js.map +0 -1
  511. package/dist/cli/commands/schema.js.map +0 -1
  512. package/dist/cli/commands/state.js +0 -1012
  513. package/dist/cli/commands/state.js.map +0 -1
  514. package/dist/cli/commands/upgrade.js.map +0 -1
  515. package/dist/cli/commands/validate.js.map +0 -1
  516. package/dist/cli/commands/verify.js.map +0 -1
  517. package/dist/cli/dispatch.js.map +0 -1
  518. package/dist/cli/help.js.map +0 -1
  519. package/dist/cli/orientation.js.map +0 -1
  520. package/dist/cli/prime-blob.js.map +0 -1
  521. package/dist/cli/stateQuery.js.map +0 -1
  522. package/dist/cli/structured.js.map +0 -1
  523. package/dist/core/difflib.js.map +0 -1
  524. package/dist/core/git.js +0 -43
  525. package/dist/core/git.js.map +0 -1
  526. package/dist/core/paths.js.map +0 -1
  527. package/dist/core/pyjson.js.map +0 -1
  528. package/dist/core/sourceRoot.js.map +0 -1
  529. package/dist/core/toml.js.map +0 -1
  530. package/dist/core/yaml.js.map +0 -1
  531. package/dist/eval/evalSkills.js.map +0 -1
  532. package/dist/eval/semanticEval.js.map +0 -1
  533. package/dist/eval/semanticFixtures.js.map +0 -1
  534. package/dist/hooks/common.js.map +0 -1
  535. package/dist/hooks/compaction.js +0 -935
  536. package/dist/hooks/compaction.js.map +0 -1
  537. package/dist/hooks/cursorPreToolUse.js +0 -19
  538. package/dist/hooks/cursorPreToolUse.js.map +0 -1
  539. package/dist/hooks/cursorSessionStart.js +0 -71
  540. package/dist/hooks/cursorSessionStart.js.map +0 -1
  541. package/dist/hooks/sessionStart.js +0 -209
  542. package/dist/hooks/sessionStart.js.map +0 -1
  543. package/dist/hooks/sessionStop.js +0 -212
  544. package/dist/hooks/sessionStop.js.map +0 -1
  545. package/dist/hooks/validateArtifact.js +0 -933
  546. package/dist/hooks/validateArtifact.js.map +0 -1
  547. package/dist/registries/artifactRegistry.js.map +0 -1
  548. package/dist/registries/capabilityContract.js.map +0 -1
  549. package/dist/registries/packageRegistry.js.map +0 -1
  550. package/dist/registries/runtimeAdapterRegistry.js +0 -315
  551. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  552. package/dist/setup/codex.js +0 -1056
  553. package/dist/setup/codex.js.map +0 -1
  554. package/dist/setup/copilot.js +0 -227
  555. package/dist/setup/copilot.js.map +0 -1
  556. package/dist/setup/cursor.js +0 -127
  557. package/dist/setup/cursor.js.map +0 -1
  558. package/dist/setup/doctor.js +0 -1297
  559. package/dist/setup/doctor.js.map +0 -1
  560. package/dist/setup/smokeChecks.js.map +0 -1
  561. package/dist/state/installRoot.js.map +0 -1
  562. package/dist/state/progressCommit.js +0 -289
  563. package/dist/state/progressCommit.js.map +0 -1
  564. package/dist/state/startupAnalysis.js.map +0 -1
  565. package/dist/upgrade/appModel.js.map +0 -1
  566. package/dist/upgrade/channels.js.map +0 -1
  567. package/dist/upgrade/compatibility.js.map +0 -1
  568. package/dist/upgrade/doctor.js.map +0 -1
  569. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -571
  570. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  571. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
  572. package/dist/upgrade/projectIntegration.js.map +0 -1
  573. package/dist/upgrade/runtimeMigration.js.map +0 -1
  574. package/dist/upgrade/upgradeCommands.js.map +0 -1
  575. package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
  576. package/dist/upgrade/versionResolution.js.map +0 -1
  577. package/dist/validate/appHomeContract.js.map +0 -1
  578. package/dist/validate/capability.js.map +0 -1
  579. package/dist/validate/crossCapability.js.map +0 -1
  580. package/dist/validate/lifecycleAdapters.js +0 -772
  581. package/dist/validate/lifecycleAdapters.js.map +0 -1
  582. package/dist/validate/selfAudit.js.map +0 -1
  583. /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
  584. /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
  585. /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