agentera 3.0.0-dev.4 → 3.0.0-dev.41

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 (840) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +79 -22
  3. package/bundle/.agentera-npx-bundle.json +1 -1
  4. package/bundle/CHANGELOG.md +1261 -0
  5. package/bundle/DESIGN.md +229 -0
  6. package/bundle/LICENSE +201 -0
  7. package/bundle/README.md +136 -0
  8. package/bundle/UPGRADE.md +201 -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-manifest-interface-model.yaml +42 -252
  12. package/bundle/references/adapters/package-publication.json +43 -0
  13. package/bundle/references/adapters/package-registry.yaml +20 -188
  14. package/bundle/references/adapters/package-surface-characterization.md +59 -48
  15. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +74 -0
  16. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +62 -0
  17. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  18. package/bundle/references/adapters/runtime-retired-resources.yaml +97 -0
  19. package/bundle/references/analysis/benchmark.md +10 -6
  20. package/bundle/references/analysis/evidence-tier-authority.yaml +518 -0
  21. package/bundle/references/analysis/startup-measurement-contract.yaml +37 -26
  22. package/bundle/references/analysis/verification-policy.yaml +143 -0
  23. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +20 -10
  24. package/bundle/references/artifacts/glossary-entry-contract.yaml +1254 -0
  25. package/bundle/references/artifacts/state-storage-authority.yaml +2930 -0
  26. package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
  27. package/bundle/references/cli/agent-ready-state-contract.yaml +133 -71
  28. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +7 -8
  29. package/bundle/references/cli/audience-namespace-cli-migration.yaml +73 -33
  30. package/bundle/references/cli/bundle-skill-vocabulary.yaml +12 -49
  31. package/bundle/references/cli/capability-instruction-contract.yaml +96 -58
  32. package/bundle/references/cli/capability-instruction-structure.md +144 -0
  33. package/bundle/references/cli/capability-tool-classification.yaml +14 -14
  34. package/bundle/references/cli/coexistence-probe.yaml +13 -0
  35. package/bundle/references/cli/hybrid-route-contract.yaml +416 -0
  36. package/bundle/references/cli/parity-expected-actual-template.md +30 -0
  37. package/bundle/references/cli/prime-consumer-compatibility.yaml +701 -0
  38. package/bundle/references/cli/routing-execution-vocabulary.yaml +16 -38
  39. package/bundle/references/cli/routing-model.md +139 -0
  40. package/bundle/references/cli/single-name-protocol.yaml +42 -0
  41. package/bundle/references/cli/trigger-schema-enrichment.md +140 -0
  42. package/bundle/references/cli/update-channels.yaml +35 -2
  43. package/bundle/references/cli/upgrade-repair-wording.md +25 -0
  44. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +97 -0
  45. package/bundle/references/cli/vocabulary-index.yaml +23 -18
  46. package/bundle/references/cli/vocabulary.md +341 -328
  47. package/bundle/references/meta/documentation-inventory.md +10 -3
  48. package/bundle/registry.json +14 -14
  49. package/bundle/skills/agentera/SKILL.md +202 -408
  50. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +84 -0
  51. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +2 -2
  52. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +25 -0
  53. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +37 -18
  54. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +102 -0
  55. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +6 -5
  56. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +27 -0
  57. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +176 -0
  58. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +12 -12
  59. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +5 -5
  60. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +16 -0
  61. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +7 -7
  62. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +51 -0
  63. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +2 -2
  64. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +20 -0
  65. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +144 -0
  66. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +80 -0
  67. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +16 -0
  68. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +18 -18
  69. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +17 -17
  70. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +2 -2
  71. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +16 -0
  72. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +9 -9
  73. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +76 -0
  74. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +9 -7
  75. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +23 -0
  76. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +121 -0
  77. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +66 -0
  78. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
  79. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +23 -0
  80. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +121 -0
  81. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +23 -0
  82. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +6 -5
  83. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +20 -0
  84. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +115 -0
  85. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +24 -0
  86. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +16 -0
  87. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
  88. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +73 -0
  89. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +22 -0
  90. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
  91. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +16 -16
  92. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +7 -6
  93. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +23 -0
  94. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +18 -20
  95. package/bundle/skills/agentera/capability_schema_contract.yaml +200 -37
  96. package/bundle/skills/agentera/protocol.yaml +31 -31
  97. package/bundle/skills/agentera/references/contract.md +387 -329
  98. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  99. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +5 -4
  100. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +40 -22
  101. package/bundle/skills/agentera/schemas/artifacts/design.yaml +5 -4
  102. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +15 -19
  103. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +145 -14
  104. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
  105. package/bundle/skills/agentera/schemas/artifacts/health.yaml +58 -21
  106. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +22 -8
  107. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +419 -33
  108. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +143 -53
  109. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +343 -31
  110. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
  111. package/dist/analytics/extractCorpus/cli.js +191 -0
  112. package/dist/analytics/extractCorpus/cli.js.map +1 -0
  113. package/dist/analytics/extractCorpus/copilotSessions.js +276 -0
  114. package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -0
  115. package/dist/analytics/extractCorpus/core.js +393 -0
  116. package/dist/analytics/extractCorpus/core.js.map +1 -0
  117. package/dist/analytics/extractCorpus/corpus.js +168 -0
  118. package/dist/analytics/extractCorpus/corpus.js.map +1 -0
  119. package/dist/analytics/extractCorpus/coverageAudit.js +261 -0
  120. package/dist/analytics/extractCorpus/coverageAudit.js.map +1 -0
  121. package/dist/analytics/extractCorpus/cursorSessions.js +426 -0
  122. package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -0
  123. package/dist/analytics/extractCorpus/evidenceTiers.js +604 -0
  124. package/dist/analytics/extractCorpus/evidenceTiers.js.map +1 -0
  125. package/dist/analytics/extractCorpus/extractCorpusParity.js +106 -0
  126. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +1 -0
  127. package/dist/analytics/extractCorpus/filesystemSources.js +119 -0
  128. package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -0
  129. package/dist/analytics/extractCorpus/index.js +15 -0
  130. package/dist/analytics/extractCorpus/index.js.map +1 -0
  131. package/dist/analytics/extractCorpus/jsonlSessions.js +205 -0
  132. package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -0
  133. package/dist/analytics/extractCorpus/sqliteCaps.js +44 -0
  134. package/dist/analytics/extractCorpus/sqliteCaps.js.map +1 -0
  135. package/dist/analytics/extractCorpus/sqliteSessions.js +368 -0
  136. package/dist/analytics/extractCorpus/sqliteSessions.js.map +1 -0
  137. package/dist/analytics/extractCorpus/tierReader.js +109 -0
  138. package/dist/analytics/extractCorpus/tierReader.js.map +1 -0
  139. package/dist/analytics/extractCorpus.js +2 -1790
  140. package/dist/analytics/extractCorpus.js.map +1 -1
  141. package/dist/analytics/glossaryAdviceResolution.js +167 -0
  142. package/dist/analytics/glossaryAdviceResolution.js.map +1 -0
  143. package/dist/analytics/glossaryInputAcquisition.js +320 -0
  144. package/dist/analytics/glossaryInputAcquisition.js.map +1 -0
  145. package/dist/analytics/personalGlossaryAdmission.js +134 -0
  146. package/dist/analytics/personalGlossaryAdmission.js.map +1 -0
  147. package/dist/analytics/personalGlossaryProfile.js +220 -0
  148. package/dist/analytics/personalGlossaryProfile.js.map +1 -0
  149. package/dist/analytics/profileSignals.js +212 -0
  150. package/dist/analytics/profileSignals.js.map +1 -0
  151. package/dist/analytics/usageStats.js +169 -41
  152. package/dist/analytics/usageStats.js.map +1 -1
  153. package/dist/audit/terminologyDrift.js +282 -0
  154. package/dist/audit/terminologyDrift.js.map +1 -0
  155. package/dist/bin/agentera.js +3 -1
  156. package/dist/bin/agentera.js.map +1 -1
  157. package/dist/capabilities/audit/instructions.js +17 -0
  158. package/dist/capabilities/audit/instructions.js.map +1 -0
  159. package/dist/capabilities/build/instructions.js +57 -0
  160. package/dist/capabilities/build/instructions.js.map +1 -0
  161. package/dist/capabilities/design/instructions.js +5 -0
  162. package/dist/capabilities/design/instructions.js.map +1 -0
  163. package/dist/capabilities/discuss/instructions.js +30 -0
  164. package/dist/capabilities/discuss/instructions.js.map +1 -0
  165. package/dist/capabilities/document/instructions.js +12 -0
  166. package/dist/capabilities/document/instructions.js.map +1 -0
  167. package/dist/capabilities/index.js +39 -0
  168. package/dist/capabilities/index.js.map +1 -0
  169. package/dist/capabilities/optimize/instructions.js +15 -0
  170. package/dist/capabilities/optimize/instructions.js.map +1 -0
  171. package/dist/capabilities/orchestrate/instructions.js +41 -0
  172. package/dist/capabilities/orchestrate/instructions.js.map +1 -0
  173. package/dist/capabilities/plan/instructions.js +33 -0
  174. package/dist/capabilities/plan/instructions.js.map +1 -0
  175. package/dist/capabilities/profile/instructions.js +71 -0
  176. package/dist/capabilities/profile/instructions.js.map +1 -0
  177. package/dist/capabilities/research/instructions.js +6 -0
  178. package/dist/capabilities/research/instructions.js.map +1 -0
  179. package/dist/capabilities/status/instructions.js +12 -0
  180. package/dist/capabilities/status/instructions.js.map +1 -0
  181. package/dist/capabilities/status/startupInstructions.js +39 -0
  182. package/dist/capabilities/status/startupInstructions.js.map +1 -0
  183. package/dist/capabilities/vision/instructions.js +5 -0
  184. package/dist/capabilities/vision/instructions.js.map +1 -0
  185. package/dist/cli/appContext.js +30 -23
  186. package/dist/cli/appContext.js.map +1 -1
  187. package/dist/cli/argvalidate.js.map +1 -1
  188. package/dist/cli/capabilityContext/benchmark.js +565 -0
  189. package/dist/cli/capabilityContext/benchmark.js.map +1 -0
  190. package/dist/cli/capabilityContext/bespoke.js +45 -0
  191. package/dist/cli/capabilityContext/bespoke.js.map +1 -0
  192. package/dist/cli/capabilityContext/build.js +244 -0
  193. package/dist/cli/capabilityContext/build.js.map +1 -0
  194. package/dist/cli/capabilityContext/closeout.js +235 -0
  195. package/dist/cli/capabilityContext/closeout.js.map +1 -0
  196. package/dist/cli/capabilityContext/contract.js +214 -0
  197. package/dist/cli/capabilityContext/contract.js.map +1 -0
  198. package/dist/cli/capabilityContext/evidence.js +465 -0
  199. package/dist/cli/capabilityContext/evidence.js.map +1 -0
  200. package/dist/cli/capabilityContext/index.js +4 -0
  201. package/dist/cli/capabilityContext/index.js.map +1 -0
  202. package/dist/cli/capabilityContext/orchestration.js +133 -0
  203. package/dist/cli/capabilityContext/orchestration.js.map +1 -0
  204. package/dist/cli/capabilityContext/planState.js +261 -0
  205. package/dist/cli/capabilityContext/planState.js.map +1 -0
  206. package/dist/cli/capabilityContext/progress.js +143 -0
  207. package/dist/cli/capabilityContext/progress.js.map +1 -0
  208. package/dist/cli/capabilityContext/projectVerification.js +410 -0
  209. package/dist/cli/capabilityContext/projectVerification.js.map +1 -0
  210. package/dist/cli/capabilityContext/shared.js +100 -0
  211. package/dist/cli/capabilityContext/shared.js.map +1 -0
  212. package/dist/cli/capabilityContext/slim.js +153 -0
  213. package/dist/cli/capabilityContext/slim.js.map +1 -0
  214. package/dist/cli/capabilityContext/startup.js +278 -0
  215. package/dist/cli/capabilityContext/startup.js.map +1 -0
  216. package/dist/cli/capabilityContext/types.js +56 -0
  217. package/dist/cli/capabilityContext/types.js.map +1 -0
  218. package/dist/cli/capabilityContext.js +1 -2420
  219. package/dist/cli/capabilityContext.js.map +1 -1
  220. package/dist/cli/commands/appHome.js +23 -0
  221. package/dist/cli/commands/appHome.js.map +1 -0
  222. package/dist/cli/commands/capability.js +3 -10
  223. package/dist/cli/commands/capability.js.map +1 -1
  224. package/dist/cli/commands/compact.js +41 -12
  225. package/dist/cli/commands/compact.js.map +1 -1
  226. package/dist/cli/commands/doctor.js +34 -99
  227. package/dist/cli/commands/doctor.js.map +1 -1
  228. package/dist/cli/commands/durability.js +82 -0
  229. package/dist/cli/commands/durability.js.map +1 -0
  230. package/dist/cli/commands/entityMigrate.js +132 -0
  231. package/dist/cli/commands/entityMigrate.js.map +1 -0
  232. package/dist/cli/commands/glossaryAdvice.js +139 -0
  233. package/dist/cli/commands/glossaryAdvice.js.map +1 -0
  234. package/dist/cli/commands/lint.js +26 -43
  235. package/dist/cli/commands/lint.js.map +1 -1
  236. package/dist/cli/commands/personalGlossary.js +177 -0
  237. package/dist/cli/commands/personalGlossary.js.map +1 -0
  238. package/dist/cli/commands/prime/briefOrientation.js +808 -0
  239. package/dist/cli/commands/prime/briefOrientation.js.map +1 -0
  240. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  241. package/dist/cli/commands/prime/buildExecutionRequest.js.map +1 -0
  242. package/dist/cli/commands/prime/bundleStatus.js +191 -0
  243. package/dist/cli/commands/prime/bundleStatus.js.map +1 -0
  244. package/dist/cli/commands/prime/collectEntityOrientation.js +291 -0
  245. package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -0
  246. package/dist/cli/commands/prime/collectOrientationState.js +178 -0
  247. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -0
  248. package/dist/cli/commands/prime/orientationOutput.js +377 -0
  249. package/dist/cli/commands/prime/orientationOutput.js.map +1 -0
  250. package/dist/cli/commands/prime/types.js +2 -0
  251. package/dist/cli/commands/prime/types.js.map +1 -0
  252. package/dist/cli/commands/prime/v1Migration.js +39 -0
  253. package/dist/cli/commands/prime/v1Migration.js.map +1 -0
  254. package/dist/cli/commands/prime.js +96 -556
  255. package/dist/cli/commands/prime.js.map +1 -1
  256. package/dist/cli/commands/profileGrounding.js +56 -0
  257. package/dist/cli/commands/profileGrounding.js.map +1 -0
  258. package/dist/cli/commands/query.js +77 -52
  259. package/dist/cli/commands/query.js.map +1 -1
  260. package/dist/cli/commands/report.js +96 -24
  261. package/dist/cli/commands/report.js.map +1 -1
  262. package/dist/cli/commands/route.js +142 -0
  263. package/dist/cli/commands/route.js.map +1 -0
  264. package/dist/cli/commands/schema.js +258 -105
  265. package/dist/cli/commands/schema.js.map +1 -1
  266. package/dist/cli/commands/state/decisions.js +388 -0
  267. package/dist/cli/commands/state/decisions.js.map +1 -0
  268. package/dist/cli/commands/state/docs.js +71 -0
  269. package/dist/cli/commands/state/docs.js.map +1 -0
  270. package/dist/cli/commands/state/experimentRecords.js +152 -0
  271. package/dist/cli/commands/state/experimentRecords.js.map +1 -0
  272. package/dist/cli/commands/state/experiments.js +15 -0
  273. package/dist/cli/commands/state/experiments.js.map +1 -0
  274. package/dist/cli/commands/state/get.js +130 -0
  275. package/dist/cli/commands/state/get.js.map +1 -0
  276. package/dist/cli/commands/state/health.js +15 -0
  277. package/dist/cli/commands/state/health.js.map +1 -0
  278. package/dist/cli/commands/state/index.js +17 -0
  279. package/dist/cli/commands/state/index.js.map +1 -0
  280. package/dist/cli/commands/state/list.js +195 -0
  281. package/dist/cli/commands/state/list.js.map +1 -0
  282. package/dist/cli/commands/state/objective.js +26 -0
  283. package/dist/cli/commands/state/objective.js.map +1 -0
  284. package/dist/cli/commands/state/plan.js +15 -0
  285. package/dist/cli/commands/state/plan.js.map +1 -0
  286. package/dist/cli/commands/state/planTasks.js +155 -0
  287. package/dist/cli/commands/state/planTasks.js.map +1 -0
  288. package/dist/cli/commands/state/plans.js +155 -0
  289. package/dist/cli/commands/state/plans.js.map +1 -0
  290. package/dist/cli/commands/state/progress.js +14 -0
  291. package/dist/cli/commands/state/progress.js.map +1 -0
  292. package/dist/cli/commands/state/shared.js +15 -0
  293. package/dist/cli/commands/state/shared.js.map +1 -0
  294. package/dist/cli/commands/state/todo.js +43 -0
  295. package/dist/cli/commands/state/todo.js.map +1 -0
  296. package/dist/cli/commands/state/write.js +425 -0
  297. package/dist/cli/commands/state/write.js.map +1 -0
  298. package/dist/cli/commands/upgrade.js +146 -4
  299. package/dist/cli/commands/upgrade.js.map +1 -1
  300. package/dist/cli/commands/upgradeVerify.js +119 -0
  301. package/dist/cli/commands/upgradeVerify.js.map +1 -0
  302. package/dist/cli/commands/validate.js +173 -210
  303. package/dist/cli/commands/validate.js.map +1 -1
  304. package/dist/cli/commands/verify.js +24 -8
  305. package/dist/cli/commands/verify.js.map +1 -1
  306. package/dist/cli/contracts/bundleStatus.js +2 -0
  307. package/dist/cli/contracts/bundleStatus.js.map +1 -0
  308. package/dist/cli/contracts/orientationState.js +2 -0
  309. package/dist/cli/contracts/orientationState.js.map +1 -0
  310. package/dist/cli/dispatch/argvParser.js +33 -0
  311. package/dist/cli/dispatch/argvParser.js.map +1 -0
  312. package/dist/cli/dispatch/check.js +390 -0
  313. package/dist/cli/dispatch/check.js.map +1 -0
  314. package/dist/cli/dispatch/commands.js +27 -0
  315. package/dist/cli/dispatch/commands.js.map +1 -0
  316. package/dist/cli/dispatch/index.js +234 -0
  317. package/dist/cli/dispatch/index.js.map +1 -0
  318. package/dist/cli/dispatch/lifecycle.js +698 -0
  319. package/dist/cli/dispatch/lifecycle.js.map +1 -0
  320. package/dist/cli/dispatch/prime.js +140 -0
  321. package/dist/cli/dispatch/prime.js.map +1 -0
  322. package/dist/cli/dispatch/shared.js +64 -0
  323. package/dist/cli/dispatch/shared.js.map +1 -0
  324. package/dist/cli/dispatch/state.js +141 -0
  325. package/dist/cli/dispatch/state.js.map +1 -0
  326. package/dist/cli/dispatch.js +1 -995
  327. package/dist/cli/dispatch.js.map +1 -1
  328. package/dist/cli/errors.js +53 -0
  329. package/dist/cli/errors.js.map +1 -0
  330. package/dist/cli/help.js +356 -30
  331. package/dist/cli/help.js.map +1 -1
  332. package/dist/cli/migrationRequired.js +89 -0
  333. package/dist/cli/migrationRequired.js.map +1 -0
  334. package/dist/cli/orientation/attention.js +72 -0
  335. package/dist/cli/orientation/attention.js.map +1 -0
  336. package/dist/cli/orientation/corpusCoverage.js +103 -0
  337. package/dist/cli/orientation/corpusCoverage.js.map +1 -0
  338. package/dist/cli/orientation.js +443 -172
  339. package/dist/cli/orientation.js.map +1 -1
  340. package/dist/cli/planArtifacts.js +351 -0
  341. package/dist/cli/planArtifacts.js.map +1 -0
  342. package/dist/cli/planEvidence.js +158 -0
  343. package/dist/cli/planEvidence.js.map +1 -0
  344. package/dist/cli/planLifecycleState.js +36 -0
  345. package/dist/cli/planLifecycleState.js.map +1 -0
  346. package/dist/cli/planTaskIndex.js +12 -0
  347. package/dist/cli/planTaskIndex.js.map +1 -0
  348. package/dist/cli/prime-blob.js +70 -2
  349. package/dist/cli/prime-blob.js.map +1 -1
  350. package/dist/cli/profileAcquisition.js +168 -0
  351. package/dist/cli/profileAcquisition.js.map +1 -0
  352. package/dist/cli/startupCompletenessContract.js +60 -0
  353. package/dist/cli/startupCompletenessContract.js.map +1 -0
  354. package/dist/cli/stateQuery.js +63 -10
  355. package/dist/cli/stateQuery.js.map +1 -1
  356. package/dist/cli/structured.js.map +1 -1
  357. package/dist/cli/todoMarkdown.js +47 -0
  358. package/dist/cli/todoMarkdown.js.map +1 -0
  359. package/dist/cli/todoReadinessSelection.js +192 -0
  360. package/dist/cli/todoReadinessSelection.js.map +1 -0
  361. package/dist/cli/todoSeverity.js +19 -0
  362. package/dist/cli/todoSeverity.js.map +1 -0
  363. package/dist/core/atomicWriter.js +21 -0
  364. package/dist/core/atomicWriter.js.map +1 -0
  365. package/dist/core/difflib.js.map +1 -1
  366. package/dist/core/envPaths.js +21 -0
  367. package/dist/core/envPaths.js.map +1 -0
  368. package/dist/core/jsonValue.js +6 -0
  369. package/dist/core/jsonValue.js.map +1 -0
  370. package/dist/core/paths.js.map +1 -1
  371. package/dist/core/pyjson.js +67 -2
  372. package/dist/core/pyjson.js.map +1 -1
  373. package/dist/core/shell.js +5 -0
  374. package/dist/core/shell.js.map +1 -0
  375. package/dist/core/skillIdentity.js +24 -0
  376. package/dist/core/skillIdentity.js.map +1 -0
  377. package/dist/core/sourceRoot.js.map +1 -1
  378. package/dist/core/text.js +11 -0
  379. package/dist/core/text.js.map +1 -0
  380. package/dist/core/toml.js.map +1 -1
  381. package/dist/core/yaml.js +8 -0
  382. package/dist/core/yaml.js.map +1 -1
  383. package/dist/eval/evalSkills.js +30 -25
  384. package/dist/eval/evalSkills.js.map +1 -1
  385. package/dist/eval/hybridRouteEvaluation.js +156 -0
  386. package/dist/eval/hybridRouteEvaluation.js.map +1 -0
  387. package/dist/eval/semanticEval.js +43 -19
  388. package/dist/eval/semanticEval.js.map +1 -1
  389. package/dist/eval/semanticFixtures.js +16 -4
  390. package/dist/eval/semanticFixtures.js.map +1 -1
  391. package/dist/hooks/common.js +10 -27
  392. package/dist/hooks/common.js.map +1 -1
  393. package/dist/hooks/compaction/apply.js +447 -0
  394. package/dist/hooks/compaction/apply.js.map +1 -0
  395. package/dist/hooks/compaction/dryRun.js +185 -0
  396. package/dist/hooks/compaction/dryRun.js.map +1 -0
  397. package/dist/hooks/compaction/index.js +23 -0
  398. package/dist/hooks/compaction/index.js.map +1 -0
  399. package/dist/hooks/compaction/parse.js +326 -0
  400. package/dist/hooks/compaction/parse.js.map +1 -0
  401. package/dist/hooks/compaction/retention.js +203 -0
  402. package/dist/hooks/compaction/retention.js.map +1 -0
  403. package/dist/hooks/compaction/status.js +361 -0
  404. package/dist/hooks/compaction/status.js.map +1 -0
  405. package/dist/hooks/compaction/types.js +6 -0
  406. package/dist/hooks/compaction/types.js.map +1 -0
  407. package/dist/hooks/cursorPreToolUse.js +1 -1
  408. package/dist/hooks/cursorPreToolUse.js.map +1 -1
  409. package/dist/hooks/cursorSessionStart.js +14 -21
  410. package/dist/hooks/cursorSessionStart.js.map +1 -1
  411. package/dist/hooks/projectHookInput.js +26 -0
  412. package/dist/hooks/projectHookInput.js.map +1 -0
  413. package/dist/hooks/sessionStart.js +55 -170
  414. package/dist/hooks/sessionStart.js.map +1 -1
  415. package/dist/hooks/sessionStop.js +12 -26
  416. package/dist/hooks/sessionStop.js.map +1 -1
  417. package/dist/hooks/validateArtifact/agentFacing.js +10 -0
  418. package/dist/hooks/validateArtifact/agentFacing.js.map +1 -0
  419. package/dist/hooks/validateArtifact/index.js +151 -0
  420. package/dist/hooks/validateArtifact/index.js.map +1 -0
  421. package/dist/hooks/validateArtifact/markdown.js +146 -0
  422. package/dist/hooks/validateArtifact/markdown.js.map +1 -0
  423. package/dist/hooks/validateArtifact/runtime.js +86 -0
  424. package/dist/hooks/validateArtifact/runtime.js.map +1 -0
  425. package/dist/hooks/validateArtifact/schema.js +547 -0
  426. package/dist/hooks/validateArtifact/schema.js.map +1 -0
  427. package/dist/hooks/validateArtifact/traversal.js +108 -0
  428. package/dist/hooks/validateArtifact/traversal.js.map +1 -0
  429. package/dist/hooks/validateArtifact/violations.js +108 -0
  430. package/dist/hooks/validateArtifact/violations.js.map +1 -0
  431. package/dist/migrate/v2HandoffManifest.js +455 -0
  432. package/dist/migrate/v2HandoffManifest.js.map +1 -0
  433. package/dist/registries/artifactProtocolIds.js +79 -0
  434. package/dist/registries/artifactProtocolIds.js.map +1 -0
  435. package/dist/registries/artifactRegistry.js +224 -62
  436. package/dist/registries/artifactRegistry.js.map +1 -1
  437. package/dist/registries/artifactSchemaProjection.js +46 -0
  438. package/dist/registries/artifactSchemaProjection.js.map +1 -0
  439. package/dist/registries/capabilityContract.js +141 -12
  440. package/dist/registries/capabilityContract.js.map +1 -1
  441. package/dist/registries/evaluatorHandoffContract.js +171 -0
  442. package/dist/registries/evaluatorHandoffContract.js.map +1 -0
  443. package/dist/registries/evidenceTierContract.js +372 -0
  444. package/dist/registries/evidenceTierContract.js.map +1 -0
  445. package/dist/registries/glossaryAdviceContract.js +79 -0
  446. package/dist/registries/glossaryAdviceContract.js.map +1 -0
  447. package/dist/registries/glossaryCaveatContract.js +68 -0
  448. package/dist/registries/glossaryCaveatContract.js.map +1 -0
  449. package/dist/registries/glossaryConsumerContractValidation.js +788 -0
  450. package/dist/registries/glossaryConsumerContractValidation.js.map +1 -0
  451. package/dist/registries/glossaryEntryContract.js +757 -0
  452. package/dist/registries/glossaryEntryContract.js.map +1 -0
  453. package/dist/registries/glossaryTermIdentity.js +18 -0
  454. package/dist/registries/glossaryTermIdentity.js.map +1 -0
  455. package/dist/registries/glossaryTermOccurrence.js +21 -0
  456. package/dist/registries/glossaryTermOccurrence.js.map +1 -0
  457. package/dist/registries/hybridRoute.js +203 -0
  458. package/dist/registries/hybridRoute.js.map +1 -0
  459. package/dist/registries/hybridRouteReceipt.js +221 -0
  460. package/dist/registries/hybridRouteReceipt.js.map +1 -0
  461. package/dist/registries/packageRegistry.js +90 -230
  462. package/dist/registries/packageRegistry.js.map +1 -1
  463. package/dist/registries/todoReadinessContract.js +449 -0
  464. package/dist/registries/todoReadinessContract.js.map +1 -0
  465. package/dist/registries/triggerLoader.js +175 -0
  466. package/dist/registries/triggerLoader.js.map +1 -0
  467. package/dist/registries/verbosityBudgetContract.js +206 -0
  468. package/dist/registries/verbosityBudgetContract.js.map +1 -0
  469. package/dist/release/releaseMetadata.js +319 -0
  470. package/dist/release/releaseMetadata.js.map +1 -0
  471. package/dist/runtime/lifecycleAdapterContract.js +458 -0
  472. package/dist/runtime/lifecycleAdapterContract.js.map +1 -0
  473. package/dist/runtime/lifecycleAdapters.js +778 -0
  474. package/dist/runtime/lifecycleAdapters.js.map +1 -0
  475. package/dist/runtime/lifecycleAuthority.js +454 -0
  476. package/dist/runtime/lifecycleAuthority.js.map +1 -0
  477. package/dist/runtime/lifecycleOperationContract.js +114 -0
  478. package/dist/runtime/lifecycleOperationContract.js.map +1 -0
  479. package/dist/runtime/lifecycleOperations.js +635 -0
  480. package/dist/runtime/lifecycleOperations.js.map +1 -0
  481. package/dist/runtime/lifecycleOwnershipJournal.js +623 -0
  482. package/dist/runtime/lifecycleOwnershipJournal.js.map +1 -0
  483. package/dist/runtime/lifecyclePublication.js +416 -0
  484. package/dist/runtime/lifecyclePublication.js.map +1 -0
  485. package/dist/runtime/lifecycleSnapshot.js +439 -0
  486. package/dist/runtime/lifecycleSnapshot.js.map +1 -0
  487. package/dist/runtime/nativeResourceCleanup.js +317 -0
  488. package/dist/runtime/nativeResourceCleanup.js.map +1 -0
  489. package/dist/setup/codex/cli.js +130 -0
  490. package/dist/setup/codex/cli.js.map +1 -0
  491. package/dist/setup/codex/configToml.js +558 -0
  492. package/dist/setup/codex/configToml.js.map +1 -0
  493. package/dist/setup/codex/constants.js +14 -0
  494. package/dist/setup/codex/constants.js.map +1 -0
  495. package/dist/setup/codex/installRoot.js +64 -0
  496. package/dist/setup/codex/installRoot.js.map +1 -0
  497. package/dist/setup/codex/state.js +252 -0
  498. package/dist/setup/codex/state.js.map +1 -0
  499. package/dist/setup/codex.js +9 -1055
  500. package/dist/setup/codex.js.map +1 -1
  501. package/dist/setup/opencode.js +21 -0
  502. package/dist/setup/opencode.js.map +1 -0
  503. package/dist/setup/opencodeConstants.js +2 -0
  504. package/dist/setup/opencodeConstants.js.map +1 -0
  505. package/dist/setup/sharedSkill.js +46 -0
  506. package/dist/setup/sharedSkill.js.map +1 -0
  507. package/dist/setup/smokeChecks.js +24 -53
  508. package/dist/setup/smokeChecks.js.map +1 -1
  509. package/dist/state/archiveDiscovery.js +581 -0
  510. package/dist/state/archiveDiscovery.js.map +1 -0
  511. package/dist/state/archivePublication.js +226 -0
  512. package/dist/state/archivePublication.js.map +1 -0
  513. package/dist/state/archiveRecovery.js +238 -0
  514. package/dist/state/archiveRecovery.js.map +1 -0
  515. package/dist/state/archiveReplay.js +54 -0
  516. package/dist/state/archiveReplay.js.map +1 -0
  517. package/dist/state/canonicalMigrationRecord.js +37 -0
  518. package/dist/state/canonicalMigrationRecord.js.map +1 -0
  519. package/dist/state/changelog.js +222 -0
  520. package/dist/state/changelog.js.map +1 -0
  521. package/dist/state/decisionEntities.js +368 -0
  522. package/dist/state/decisionEntities.js.map +1 -0
  523. package/dist/state/decisionLegacyValidation.js +216 -0
  524. package/dist/state/decisionLegacyValidation.js.map +1 -0
  525. package/dist/state/decisionMigrationProvenance.js +200 -0
  526. package/dist/state/decisionMigrationProvenance.js.map +1 -0
  527. package/dist/state/decisionOverlay.js +255 -0
  528. package/dist/state/decisionOverlay.js.map +1 -0
  529. package/dist/state/decisionRevision.js +257 -0
  530. package/dist/state/decisionRevision.js.map +1 -0
  531. package/dist/state/decisionRevisionMigration.js +90 -0
  532. package/dist/state/decisionRevisionMigration.js.map +1 -0
  533. package/dist/state/directRetrieval.js +324 -0
  534. package/dist/state/directRetrieval.js.map +1 -0
  535. package/dist/state/durability.js +325 -0
  536. package/dist/state/durability.js.map +1 -0
  537. package/dist/state/entityCutover.js +294 -0
  538. package/dist/state/entityCutover.js.map +1 -0
  539. package/dist/state/entityCutoverGit.js +128 -0
  540. package/dist/state/entityCutoverGit.js.map +1 -0
  541. package/dist/state/entityGlossaryAuthority.js +14 -0
  542. package/dist/state/entityGlossaryAuthority.js.map +1 -0
  543. package/dist/state/entityListProjection.js +188 -0
  544. package/dist/state/entityListProjection.js.map +1 -0
  545. package/dist/state/entityListRuntimeRegistry.js +50 -0
  546. package/dist/state/entityListRuntimeRegistry.js.map +1 -0
  547. package/dist/state/entityMigrationCausality.js +99 -0
  548. package/dist/state/entityMigrationCausality.js.map +1 -0
  549. package/dist/state/entityMigrationIdentity.js +6 -0
  550. package/dist/state/entityMigrationIdentity.js.map +1 -0
  551. package/dist/state/entityMigrationPreview.js +884 -0
  552. package/dist/state/entityMigrationPreview.js.map +1 -0
  553. package/dist/state/entityPublicationContext.js +807 -0
  554. package/dist/state/entityPublicationContext.js.map +1 -0
  555. package/dist/state/entityRetrievalHelp.js +476 -0
  556. package/dist/state/entityRetrievalHelp.js.map +1 -0
  557. package/dist/state/entityStorage.js +897 -0
  558. package/dist/state/entityStorage.js.map +1 -0
  559. package/dist/state/exactReplacementRecovery.js +19 -0
  560. package/dist/state/exactReplacementRecovery.js.map +1 -0
  561. package/dist/state/experimentArchive.js +64 -0
  562. package/dist/state/experimentArchive.js.map +1 -0
  563. package/dist/state/experimentIdentity.js +203 -0
  564. package/dist/state/experimentIdentity.js.map +1 -0
  565. package/dist/state/healthEntities.js +263 -0
  566. package/dist/state/healthEntities.js.map +1 -0
  567. package/dist/state/healthEntityValidation.js +19 -0
  568. package/dist/state/healthEntityValidation.js.map +1 -0
  569. package/dist/state/healthRepair.js +70 -0
  570. package/dist/state/healthRepair.js.map +1 -0
  571. package/dist/state/installRoot.js +64 -24
  572. package/dist/state/installRoot.js.map +1 -1
  573. package/dist/state/legacyEntityCutoverEvidence.js +66 -0
  574. package/dist/state/legacyEntityCutoverEvidence.js.map +1 -0
  575. package/dist/state/legacyIdentity.js +48 -0
  576. package/dist/state/legacyIdentity.js.map +1 -0
  577. package/dist/state/legacySummaryRecord.js +7 -0
  578. package/dist/state/legacySummaryRecord.js.map +1 -0
  579. package/dist/state/listAccounting.js +55 -0
  580. package/dist/state/listAccounting.js.map +1 -0
  581. package/dist/state/listClassification.js +18 -0
  582. package/dist/state/listClassification.js.map +1 -0
  583. package/dist/state/listCursor.js +43 -0
  584. package/dist/state/listCursor.js.map +1 -0
  585. package/dist/state/listRetrieval.js +782 -0
  586. package/dist/state/listRetrieval.js.map +1 -0
  587. package/dist/state/migrationSourceBinding.js +31 -0
  588. package/dist/state/migrationSourceBinding.js.map +1 -0
  589. package/dist/state/objectiveExperimentEntities.js +323 -0
  590. package/dist/state/objectiveExperimentEntities.js.map +1 -0
  591. package/dist/state/planEntities.js +531 -0
  592. package/dist/state/planEntities.js.map +1 -0
  593. package/dist/state/planIdentity.js +48 -0
  594. package/dist/state/planIdentity.js.map +1 -0
  595. package/dist/state/planRetrieval.js +314 -0
  596. package/dist/state/planRetrieval.js.map +1 -0
  597. package/dist/state/planTaskRetrieval.js +295 -0
  598. package/dist/state/planTaskRetrieval.js.map +1 -0
  599. package/dist/state/progressEntities.js +513 -0
  600. package/dist/state/progressEntities.js.map +1 -0
  601. package/dist/state/progressGlossaryCaveat.js +169 -0
  602. package/dist/state/progressGlossaryCaveat.js.map +1 -0
  603. package/dist/state/progressPublicationOrder.js +20 -0
  604. package/dist/state/progressPublicationOrder.js.map +1 -0
  605. package/dist/state/projectRoot.js +63 -0
  606. package/dist/state/projectRoot.js.map +1 -0
  607. package/dist/state/projectionPolicy.js +191 -0
  608. package/dist/state/projectionPolicy.js.map +1 -0
  609. package/dist/state/retrievalAuthority.js +157 -0
  610. package/dist/state/retrievalAuthority.js.map +1 -0
  611. package/dist/state/safeProjectFile.js +156 -0
  612. package/dist/state/safeProjectFile.js.map +1 -0
  613. package/dist/state/startupAnalysis/benchmark.js +433 -0
  614. package/dist/state/startupAnalysis/benchmark.js.map +1 -0
  615. package/dist/state/startupAnalysis/contract.js +126 -0
  616. package/dist/state/startupAnalysis/contract.js.map +1 -0
  617. package/dist/state/startupAnalysis/helpers.js +287 -0
  618. package/dist/state/startupAnalysis/helpers.js.map +1 -0
  619. package/dist/state/startupAnalysis/index.js +7 -0
  620. package/dist/state/startupAnalysis/index.js.map +1 -0
  621. package/dist/state/startupAnalysis/metrics.js +341 -0
  622. package/dist/state/startupAnalysis/metrics.js.map +1 -0
  623. package/dist/state/startupAnalysis/records.js +199 -0
  624. package/dist/state/startupAnalysis/records.js.map +1 -0
  625. package/dist/state/startupAnalysis/report.js +112 -0
  626. package/dist/state/startupAnalysis/report.js.map +1 -0
  627. package/dist/state/startupAnalysis/threshold.js +513 -0
  628. package/dist/state/startupAnalysis/threshold.js.map +1 -0
  629. package/dist/state/startupAnalysis.js +2 -1952
  630. package/dist/state/startupAnalysis.js.map +1 -1
  631. package/dist/state/startupProjection.js +499 -0
  632. package/dist/state/startupProjection.js.map +1 -0
  633. package/dist/state/stateMode.js +86 -0
  634. package/dist/state/stateMode.js.map +1 -0
  635. package/dist/state/stateStorageAuthority.js +48 -0
  636. package/dist/state/stateStorageAuthority.js.map +1 -0
  637. package/dist/state/summaryEntityRead.js +26 -0
  638. package/dist/state/summaryEntityRead.js.map +1 -0
  639. package/dist/state/summaryMigrationProvenance.js +67 -0
  640. package/dist/state/summaryMigrationProvenance.js.map +1 -0
  641. package/dist/state/summarySourceRowAuthority.js +37 -0
  642. package/dist/state/summarySourceRowAuthority.js.map +1 -0
  643. package/dist/state/todoDocsEntities.js +986 -0
  644. package/dist/state/todoDocsEntities.js.map +1 -0
  645. package/dist/state/todoDocsEntityValidation.js +159 -0
  646. package/dist/state/todoDocsEntityValidation.js.map +1 -0
  647. package/dist/state/todoReconciliationActivation.js +63 -0
  648. package/dist/state/todoReconciliationActivation.js.map +1 -0
  649. package/dist/state/todoReconciliationTransaction.js +554 -0
  650. package/dist/state/todoReconciliationTransaction.js.map +1 -0
  651. package/dist/state/write/assign.js +21 -0
  652. package/dist/state/write/assign.js.map +1 -0
  653. package/dist/state/write/candidateMutation.js +270 -0
  654. package/dist/state/write/candidateMutation.js.map +1 -0
  655. package/dist/state/write/errors.js +12 -0
  656. package/dist/state/write/errors.js.map +1 -0
  657. package/dist/state/write/experimentPublication.js +193 -0
  658. package/dist/state/write/experimentPublication.js.map +1 -0
  659. package/dist/state/write/explain.js +333 -0
  660. package/dist/state/write/explain.js.map +1 -0
  661. package/dist/state/write/fields.js +62 -0
  662. package/dist/state/write/fields.js.map +1 -0
  663. package/dist/state/write/glossaryPublication.js +264 -0
  664. package/dist/state/write/glossaryPublication.js.map +1 -0
  665. package/dist/state/write/grammar.js +271 -0
  666. package/dist/state/write/grammar.js.map +1 -0
  667. package/dist/state/write/helpers.js +30 -0
  668. package/dist/state/write/helpers.js.map +1 -0
  669. package/dist/state/write/index.js +13 -0
  670. package/dist/state/write/index.js.map +1 -0
  671. package/dist/state/write/input.js +368 -0
  672. package/dist/state/write/input.js.map +1 -0
  673. package/dist/state/write/lock.js +838 -0
  674. package/dist/state/write/lock.js.map +1 -0
  675. package/dist/state/write/mutation.js +235 -0
  676. package/dist/state/write/mutation.js.map +1 -0
  677. package/dist/state/write/operations.js +170 -0
  678. package/dist/state/write/operations.js.map +1 -0
  679. package/dist/state/write/planEvaluation.js +129 -0
  680. package/dist/state/write/planEvaluation.js.map +1 -0
  681. package/dist/state/write/planPublication.js +180 -0
  682. package/dist/state/write/planPublication.js.map +1 -0
  683. package/dist/state/write/runtimeOperations.js +65 -0
  684. package/dist/state/write/runtimeOperations.js.map +1 -0
  685. package/dist/state/write/serialize.js +2 -0
  686. package/dist/state/write/serialize.js.map +1 -0
  687. package/dist/state/write/transaction.js +53 -0
  688. package/dist/state/write/transaction.js.map +1 -0
  689. package/dist/state/write/validate.js +8 -0
  690. package/dist/state/write/validate.js.map +1 -0
  691. package/dist/upgrade/appContentRefresh.js +384 -0
  692. package/dist/upgrade/appContentRefresh.js.map +1 -0
  693. package/dist/upgrade/appModel.js +8 -6
  694. package/dist/upgrade/appModel.js.map +1 -1
  695. package/dist/upgrade/atomicWriter.js +2 -0
  696. package/dist/upgrade/atomicWriter.js.map +1 -0
  697. package/dist/upgrade/bundleEvidence.js +34 -0
  698. package/dist/upgrade/bundleEvidence.js.map +1 -0
  699. package/dist/upgrade/channels.js +12 -7
  700. package/dist/upgrade/channels.js.map +1 -1
  701. package/dist/upgrade/coexistenceProbe.js +105 -0
  702. package/dist/upgrade/coexistenceProbe.js.map +1 -0
  703. package/dist/upgrade/compatibility.js +56 -20
  704. package/dist/upgrade/compatibility.js.map +1 -1
  705. package/dist/upgrade/doctor.js +197 -191
  706. package/dist/upgrade/doctor.js.map +1 -1
  707. package/dist/upgrade/doctorClassifier.js +188 -0
  708. package/dist/upgrade/doctorClassifier.js.map +1 -0
  709. package/dist/upgrade/installedHooksRetirement.js +197 -0
  710. package/dist/upgrade/installedHooksRetirement.js.map +1 -0
  711. package/dist/upgrade/legacyAgentCleanup.js +283 -0
  712. package/dist/upgrade/legacyAgentCleanup.js.map +1 -0
  713. package/dist/upgrade/lifecycleUpgrade.js +114 -0
  714. package/dist/upgrade/lifecycleUpgrade.js.map +1 -0
  715. package/dist/upgrade/migrateArtifactsV2ToV3.js +363 -137
  716. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  717. package/dist/upgrade/migrationPublication.js +123 -0
  718. package/dist/upgrade/migrationPublication.js.map +1 -0
  719. package/dist/upgrade/nextMajorDoctor.js +156 -0
  720. package/dist/upgrade/nextMajorDoctor.js.map +1 -0
  721. package/dist/upgrade/npxPlatformStatus.js +23 -0
  722. package/dist/upgrade/npxPlatformStatus.js.map +1 -0
  723. package/dist/upgrade/projectIntegration.js +142 -171
  724. package/dist/upgrade/projectIntegration.js.map +1 -1
  725. package/dist/upgrade/projectIntegrationDecision.js +51 -0
  726. package/dist/upgrade/projectIntegrationDecision.js.map +1 -0
  727. package/dist/upgrade/runtimeMigration.js +336 -281
  728. package/dist/upgrade/runtimeMigration.js.map +1 -1
  729. package/dist/upgrade/upgradeCommands.js +9 -0
  730. package/dist/upgrade/upgradeCommands.js.map +1 -1
  731. package/dist/upgrade/upgradeLock.js +86 -0
  732. package/dist/upgrade/upgradeLock.js.map +1 -0
  733. package/dist/upgrade/upgradeOrchestrator.js +217 -56
  734. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  735. package/dist/upgrade/v3CapabilitySurface.js +15 -0
  736. package/dist/upgrade/v3CapabilitySurface.js.map +1 -0
  737. package/dist/upgrade/versionResolution.js +12 -4
  738. package/dist/upgrade/versionResolution.js.map +1 -1
  739. package/dist/validate/appHomeContract.js +5 -9
  740. package/dist/validate/appHomeContract.js.map +1 -1
  741. package/dist/validate/capability.js +144 -14
  742. package/dist/validate/capability.js.map +1 -1
  743. package/dist/validate/crossCapability.js +15 -9
  744. package/dist/validate/crossCapability.js.map +1 -1
  745. package/dist/validate/selfAudit.js +73 -36
  746. package/dist/validate/selfAudit.js.map +1 -1
  747. package/dist/validate/v1LegacyCruft.js +141 -0
  748. package/dist/validate/v1LegacyCruft.js.map +1 -0
  749. package/dist/validate/vocabularyAuthority.js +305 -0
  750. package/dist/validate/vocabularyAuthority.js.map +1 -0
  751. package/package.json +46 -27
  752. package/bundle/references/adapters/cursor.md +0 -213
  753. package/bundle/references/adapters/opencode.md +0 -530
  754. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  755. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  756. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -548
  757. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  758. package/bundle/references/v1-section-mapping.md +0 -47
  759. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  760. package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
  761. package/bundle/skills/agentera/agents/hej.toml +0 -6
  762. package/bundle/skills/agentera/agents/inspektera.toml +0 -6
  763. package/bundle/skills/agentera/agents/inspirera.toml +0 -6
  764. package/bundle/skills/agentera/agents/optimera.toml +0 -6
  765. package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
  766. package/bundle/skills/agentera/agents/planera.toml +0 -6
  767. package/bundle/skills/agentera/agents/profilera.toml +0 -6
  768. package/bundle/skills/agentera/agents/realisera.toml +0 -6
  769. package/bundle/skills/agentera/agents/resonera.toml +0 -6
  770. package/bundle/skills/agentera/agents/visionera.toml +0 -6
  771. package/bundle/skills/agentera/agents/visualisera.toml +0 -6
  772. package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +0 -428
  773. package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +0 -73
  774. package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +0 -35
  775. package/bundle/skills/agentera/capabilities/hej/instructions.md +0 -331
  776. package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +0 -69
  777. package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +0 -58
  778. package/bundle/skills/agentera/capabilities/inspektera/instructions.md +0 -514
  779. package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +0 -76
  780. package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +0 -38
  781. package/bundle/skills/agentera/capabilities/inspirera/instructions.md +0 -280
  782. package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +0 -24
  783. package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +0 -34
  784. package/bundle/skills/agentera/capabilities/optimera/instructions.md +0 -437
  785. package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +0 -39
  786. package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +0 -433
  787. package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +0 -64
  788. package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +0 -42
  789. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +0 -107
  790. package/bundle/skills/agentera/capabilities/planera/instructions.md +0 -368
  791. package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +0 -62
  792. package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +0 -34
  793. package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +0 -61
  794. package/bundle/skills/agentera/capabilities/profilera/instructions.md +0 -419
  795. package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +0 -18
  796. package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +0 -45
  797. package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +0 -57
  798. package/bundle/skills/agentera/capabilities/realisera/instructions.md +0 -403
  799. package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +0 -80
  800. package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +0 -39
  801. package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +0 -110
  802. package/bundle/skills/agentera/capabilities/resonera/instructions.md +0 -329
  803. package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +0 -47
  804. package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +0 -46
  805. package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +0 -77
  806. package/bundle/skills/agentera/capabilities/visionera/instructions.md +0 -309
  807. package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +0 -41
  808. package/bundle/skills/agentera/capabilities/visualisera/instructions.md +0 -400
  809. package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +0 -33
  810. package/bundle/skills/hej/.claude-plugin/plugin.json +0 -6
  811. package/bundle/skills/hej/SKILL.md +0 -69
  812. package/bundle/skills/hej/agents/hej.toml +0 -11
  813. package/bundle/skills/hej/agents/openai.yaml +0 -8
  814. package/dist/cli/commands/backfill.js +0 -84
  815. package/dist/cli/commands/backfill.js.map +0 -1
  816. package/dist/cli/commands/state.js +0 -1012
  817. package/dist/cli/commands/state.js.map +0 -1
  818. package/dist/core/git.js +0 -43
  819. package/dist/core/git.js.map +0 -1
  820. package/dist/hooks/compaction.js +0 -935
  821. package/dist/hooks/compaction.js.map +0 -1
  822. package/dist/hooks/validateArtifact.js +0 -933
  823. package/dist/hooks/validateArtifact.js.map +0 -1
  824. package/dist/registries/runtimeAdapterRegistry.js +0 -315
  825. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  826. package/dist/setup/copilot.js +0 -227
  827. package/dist/setup/copilot.js.map +0 -1
  828. package/dist/setup/cursor.js +0 -127
  829. package/dist/setup/cursor.js.map +0 -1
  830. package/dist/setup/doctor.js +0 -1297
  831. package/dist/setup/doctor.js.map +0 -1
  832. package/dist/state/progressCommit.js +0 -289
  833. package/dist/state/progressCommit.js.map +0 -1
  834. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -571
  835. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  836. package/dist/validate/lifecycleAdapters.js +0 -772
  837. package/dist/validate/lifecycleAdapters.js.map +0 -1
  838. /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
  839. /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
  840. /package/bundle/skills/agentera/capabilities/{hej → status}/schemas/exit.yaml +0 -0
@@ -0,0 +1,808 @@
1
+ import { truncateCodePoints } from "../../../core/text.js";
2
+ import { entityListFamily } from "../../../state/entityRetrievalHelp.js";
3
+ import { STATE_FAMILY_FALLBACK_COMMANDS } from "../../capabilityContext/types.js";
4
+ /**
5
+ * Bounded default decision brief for the bare `agentera prime --format json`
6
+ * emission (Plan Task 3).
7
+ *
8
+ * The bare default projects the full orientation payload
9
+ * ({@link buildOrientationJsonPayload}) to a bounded decision brief: every
10
+ * required top-level field stays PRESENT (the compatibility boundary asserts
11
+ * the key set), but rich diagnostic/writer detail within those fields is
12
+ * projected to routing-essential leaves plus a named authoritative recovery
13
+ * command for each omitted sub-detail. Dashboard startup independently omits
14
+ * duplicated ordinary history entries; explicit fields and capability contexts
15
+ * retain their separately governed projections.
16
+ *
17
+ * The byte gate is deterministic pretty-JSON UTF-8 measurement
18
+ * (Buffer.byteLength(JSON.stringify(brief, null, 2) + "\n", "utf8")); an
19
+ * over-budget brief is rejected in favor of a bounded degraded envelope.
20
+ * Diagnostics (the `issues` deprecation warning) stay on stderr and are
21
+ * measured separately. See references/cli/prime-consumer-compatibility.yaml
22
+ * brief_omission_contract and references/artifacts/state-storage-authority.yaml
23
+ * budgets.startup.surfaces.prime_briefing.
24
+ */
25
+ /** Authoritative byte budget for the default bare prime decision brief.
26
+ * Mirrors references/artifacts/state-storage-authority.yaml
27
+ * budgets.startup.surfaces.prime_briefing.max_utf8_bytes and
28
+ * scripts/json_output_surface_manifest.yaml prime-briefing byte_budget.
29
+ * archiveAuthority.test.ts binds the authority to the manifest; the
30
+ * primeProjectionContract.test.ts suite binds this constant to the authority
31
+ * so the contract and implementation cannot drift apart. */
32
+ export const PRIME_BRIEF_MAX_UTF8_BYTES = 12000;
33
+ /** Deterministic pretty-JSON UTF-8 byte length (including the trailing newline)
34
+ * used by the brief byte gate. Identical to the projection-policy serializer
35
+ * (serializedProjectionBytes) so measurement is consistent across surfaces. */
36
+ export function briefUtf8Bytes(value) {
37
+ const serialized = JSON.stringify(value, null, 2);
38
+ if (serialized === undefined)
39
+ throw new TypeError("brief value is not JSON serializable");
40
+ return Buffer.byteLength(serialized + "\n", "utf8");
41
+ }
42
+ /** Byte-gate primitive: deterministic UTF-8 measurement + budget comparison.
43
+ * AC5: a passing fixture (bytes <= budget) is accepted; an over-budget fixture
44
+ * (bytes > budget) is rejected. */
45
+ export function briefByteGate(value, budget = PRIME_BRIEF_MAX_UTF8_BYTES) {
46
+ const bytes = briefUtf8Bytes(value);
47
+ return { accepted: bytes <= budget, bytes };
48
+ }
49
+ /** Rich-state sub-detail projected out of the default brief, each with a named
50
+ * authoritative recovery command (AC4). Mirrors brief_omission_contract in
51
+ * references/cli/prime-consumer-compatibility.yaml. */
52
+ const planTaskFamily = entityListFamily("plan_tasks");
53
+ const planTaskListRecovery = `agentera state ${planTaskFamily.commandTokens.join(" ")} list --format json`;
54
+ const OMITTED_RICH_STATE = [
55
+ { field: "startup.path_diagnostics", reason: "startup_path_diagnostics", recovery: "agentera doctor --format json" },
56
+ { field: "plan.tasks", reason: "plan_task_detail", recovery: planTaskListRecovery },
57
+ { field: "plan.archived_plans", reason: "archive_catalog", recovery: STATE_FAMILY_FALLBACK_COMMANDS.plan },
58
+ { field: "plan.diagnostics", reason: "plan_diagnostics", recovery: STATE_FAMILY_FALLBACK_COMMANDS.plan },
59
+ { field: "history.progress.entries", reason: "startup_history_entries", recovery: STATE_FAMILY_FALLBACK_COMMANDS.progress },
60
+ { field: "history.decisions.entries", reason: "startup_history_entries", recovery: STATE_FAMILY_FALLBACK_COMMANDS.decisions },
61
+ { field: "history.health.entries", reason: "startup_history_entries", recovery: STATE_FAMILY_FALLBACK_COMMANDS.health },
62
+ { field: "project_integration.phases", reason: "phase_blockers", recovery: "agentera doctor --format json" },
63
+ { field: "source_contract.artifact_writes.artifacts", reason: "writer_contract_detail", recovery: "agentera schema --format json" },
64
+ { field: "docs.source_contract", reason: "docs_state_families", recovery: STATE_FAMILY_FALLBACK_COMMANDS.docs },
65
+ { field: "profile.bounded_signals", reason: "profile_signal_detail", recovery: "agentera profile --format json" },
66
+ ];
67
+ /** Maximum number of ranked next_action alternatives retained in the brief.
68
+ * The recommended entry is always kept; overflow alternatives recover via the
69
+ * state-derived readiness cascade rather than raw artifact access. */
70
+ const BRIEF_NEXT_ACTION_ALTERNATIVES = 3;
71
+ const PATH_DIAGNOSTICS_RECOVERY = "agentera doctor --format json";
72
+ /** Code-point cap for routing-essential free-text scalars retained in the brief
73
+ * (e.g. progress.latest.what/next). Matches the boundStartupValue 200-cp
74
+ * limit already applied to context payloads so the brief never lets a single
75
+ * pathological scalar blow the budget; the full value recovers via the named
76
+ * state command. */
77
+ const BRIEF_SCALAR_MAX_CHARS = 200;
78
+ function projectionMaxChars(projection) {
79
+ return projection === "normal" ? BRIEF_SCALAR_MAX_CHARS : projection === "compact" ? 120 : 80;
80
+ }
81
+ function projectionMaxItems(projection) {
82
+ return projection === "normal" ? 10 : projection === "compact" ? 6 : 3;
83
+ }
84
+ /** Keys owned by the state-presence contract. Unknown keys are caller data, not
85
+ * routing signals, so the brief never copies them into a fallback envelope. */
86
+ const STATE_PRESENCE_ACTIVE_KEYS = ["plan", "objective"];
87
+ const STATE_PRESENCE_AVAILABLE_KEYS = ["plan", "docs", "progress", "health", "objective"];
88
+ const STATE_PRESENCE_ABSENCE_KEYS = ["plan", "docs", "progress"];
89
+ const BRIEF_SOURCE_FIELDS_MAX = 64;
90
+ const BRIEF_SOURCE_STRING_MAX_CHARS = 256;
91
+ const BRIEF_COMPACT_SOURCE_FIELDS_MAX = 32;
92
+ const BRIEF_COMPACT_SOURCE_STRING_MAX_CHARS = 96;
93
+ const BRIEF_IRREDUCIBLE_SOURCE_FIELDS_MAX = 32;
94
+ const BRIEF_IRREDUCIBLE_SOURCE_STRING_MAX_CHARS = 64;
95
+ function isObject(value) {
96
+ return value !== null && typeof value === "object" && !Array.isArray(value);
97
+ }
98
+ /** Copy only the listed keys that exist on `source`. Keeps the brief stable when
99
+ * a conditional field is absent (e.g. plan.first_pending on an empty plan). */
100
+ function pick(source, keys) {
101
+ if (!isObject(source))
102
+ return {};
103
+ const out = {};
104
+ for (const key of keys) {
105
+ if (key in source)
106
+ out[key] = source[key];
107
+ }
108
+ return out;
109
+ }
110
+ function boundedString(value, maxChars) {
111
+ return typeof value === "string" ? truncateCodePoints(value, maxChars, "…") : undefined;
112
+ }
113
+ function boundedStringList(value, maxItems, maxChars) {
114
+ if (!Array.isArray(value))
115
+ return undefined;
116
+ return value
117
+ .filter((entry) => typeof entry === "string")
118
+ .slice(0, maxItems)
119
+ .map((entry) => truncateCodePoints(entry, maxChars, "…"));
120
+ }
121
+ function boundedBooleanMap(value, keys) {
122
+ if (!isObject(value))
123
+ return undefined;
124
+ const out = {};
125
+ for (const key of keys) {
126
+ if (typeof value[key] === "boolean")
127
+ out[key] = value[key];
128
+ }
129
+ return out;
130
+ }
131
+ function boundedStringMap(value, keys, maxChars) {
132
+ if (!isObject(value))
133
+ return undefined;
134
+ const out = {};
135
+ for (const key of keys) {
136
+ const bounded = boundedString(value[key], maxChars);
137
+ if (bounded !== undefined)
138
+ out[key] = bounded;
139
+ }
140
+ return out;
141
+ }
142
+ /** Project the presence authority to its finite, contract-owned shape. This is
143
+ * deliberately not a generic object trim: unknown caller keys cannot change
144
+ * routing, and therefore must not be allowed to consume the fallback budget. */
145
+ function briefStatePresence(value, maxChars = BRIEF_SCALAR_MAX_CHARS) {
146
+ if (value === null || value === undefined)
147
+ return value === null ? null : {};
148
+ if (!isObject(value))
149
+ return {};
150
+ const out = {};
151
+ const active = boundedBooleanMap(value.active, STATE_PRESENCE_ACTIVE_KEYS);
152
+ const available = boundedBooleanMap(value.available, STATE_PRESENCE_AVAILABLE_KEYS);
153
+ const absence = boundedStringMap(value.absence, STATE_PRESENCE_ABSENCE_KEYS, maxChars);
154
+ if (active !== undefined)
155
+ out.active = active;
156
+ if (available !== undefined)
157
+ out.available = available;
158
+ if (typeof value.any_active === "boolean")
159
+ out.any_active = value.any_active;
160
+ if (typeof value.absence_explained === "boolean")
161
+ out.absence_explained = value.absence_explained;
162
+ if (absence !== undefined)
163
+ out.absence = absence;
164
+ return out;
165
+ }
166
+ function briefSelectedPlanTask(task, projection) {
167
+ if (task === null)
168
+ return null;
169
+ if (!isObject(task))
170
+ return {};
171
+ const maxChars = projectionMaxChars(projection);
172
+ const maxItems = projectionMaxItems(projection);
173
+ const out = pick(task, [
174
+ "id",
175
+ "artifact",
176
+ "status",
177
+ "dependency_count",
178
+ "omitted_dependency_count",
179
+ "acceptance_count",
180
+ "omitted_acceptance_count",
181
+ ]);
182
+ const name = boundedString(task.name ?? task.title, maxChars);
183
+ if (name !== undefined)
184
+ out.name = name;
185
+ const dependencies = boundedStringList(task.depends_on, maxItems, maxChars);
186
+ if (dependencies !== undefined)
187
+ out.depends_on = dependencies;
188
+ const acceptance = boundedStringList(task.acceptance, maxItems, maxChars);
189
+ if (acceptance !== undefined)
190
+ out.acceptance = acceptance;
191
+ if (isObject(task.retrieval)) {
192
+ out.retrieval = pick(task.retrieval, ["get"]);
193
+ }
194
+ return out;
195
+ }
196
+ function briefPlan(plan, projection = "normal") {
197
+ // Keep canonical plan/task identity and the routing-essential summary consumers
198
+ // read plus the selected task's dependencies, acceptance, and exact retrieval.
199
+ // Drop the optional task catalog, archive catalog, diagnostics, and
200
+ // lifecycle_state — each recovers via OMITTED_RICH_STATE.
201
+ const out = pick(plan, [
202
+ "exists",
203
+ "id",
204
+ "artifact",
205
+ "active",
206
+ "status",
207
+ "complete",
208
+ "total",
209
+ "complete_plan",
210
+ "task_count",
211
+ "omitted_task_count",
212
+ ]);
213
+ if (isObject(plan)) {
214
+ const title = boundedString(plan.title, projectionMaxChars(projection));
215
+ if (title !== undefined)
216
+ out.title = title;
217
+ if (isObject(plan.source_contract)) {
218
+ out.source_contract = pick(plan.source_contract, ["detail_availability", "retrieval", "raw_archive_records"]);
219
+ }
220
+ }
221
+ if (isObject(plan) && "first_pending" in plan) {
222
+ out.first_pending = briefSelectedPlanTask(plan.first_pending, projection);
223
+ }
224
+ return out;
225
+ }
226
+ function briefHistoryRetrieval(value) {
227
+ return pick(value, ["list", "get"]);
228
+ }
229
+ function briefHistoryCaveats(value, maxChars) {
230
+ if (!Array.isArray(value))
231
+ return undefined;
232
+ return value.slice(0, 4).map((caveat) => {
233
+ if (typeof caveat === "string")
234
+ return truncateCodePoints(caveat, maxChars, "…");
235
+ if (!isObject(caveat))
236
+ return {};
237
+ const out = {};
238
+ for (const key of [
239
+ "class",
240
+ "kind",
241
+ "state",
242
+ "confidence",
243
+ "satisfaction_state",
244
+ "message",
245
+ "reason",
246
+ "detail_availability",
247
+ "compatibility",
248
+ "recovery",
249
+ ]) {
250
+ const bounded = boundedString(caveat[key], maxChars);
251
+ if (bounded !== undefined)
252
+ out[key] = bounded;
253
+ }
254
+ if (typeof caveat.review_needed === "boolean")
255
+ out.review_needed = caveat.review_needed;
256
+ return out;
257
+ });
258
+ }
259
+ function briefHistory(history, projection = "normal") {
260
+ if (!isObject(history))
261
+ return {};
262
+ const out = {};
263
+ const maxChars = projectionMaxChars(projection);
264
+ for (const [artifactId, entry] of Object.entries(history)) {
265
+ // Entity startup history owns canonical full/summary counts. Entry detail
266
+ // remains omitted and recovers through exact list/get commands.
267
+ const entryObj = isObject(entry) ? entry : {};
268
+ const counts = isObject(entryObj.counts) ? entryObj.counts : {};
269
+ const projected = {
270
+ ...pick(entryObj, [
271
+ "artifact",
272
+ "status",
273
+ "compatibility",
274
+ "detail_availability",
275
+ "omitted",
276
+ "omitted_count",
277
+ "omission_reason",
278
+ ]),
279
+ counts: pick(counts, ["total", "returned", "remaining", "full", "summary"]),
280
+ retrieval: briefHistoryRetrieval(entryObj.retrieval),
281
+ };
282
+ const caveats = briefHistoryCaveats(entryObj.caveats, maxChars);
283
+ if (caveats !== undefined)
284
+ projected.caveats = caveats;
285
+ if (isObject(entryObj.degraded_history)) {
286
+ const degraded = pick(entryObj.degraded_history, ["summary_count", "returned_count", "omitted_count"]);
287
+ degraded.retrieval = briefHistoryRetrieval(entryObj.degraded_history.retrieval);
288
+ const degradedCaveats = briefHistoryCaveats(entryObj.degraded_history.caveats, maxChars);
289
+ if (degradedCaveats !== undefined)
290
+ degraded.caveats = degradedCaveats;
291
+ projected.degraded_history = degraded;
292
+ }
293
+ if (isObject(entryObj.source_contract)) {
294
+ projected.source_contract = pick(entryObj.source_contract, ["authority", "detail", "cursor"]);
295
+ }
296
+ out[artifactId] = projected;
297
+ }
298
+ return out;
299
+ }
300
+ function briefProjectIntegration(integration) {
301
+ // Keep the routing recommendation, message, pending counts, channel,
302
+ // aggregate status, and any major-boundary block (which overrides
303
+ // next_action). Upgrade commands are part of the executable upgrade route;
304
+ // preserve them only for that recommendation. Phase blockers and guidance
305
+ // detail recover via doctor.
306
+ const fields = [
307
+ "recommendation",
308
+ "message",
309
+ "update_channel",
310
+ "pending_artifacts",
311
+ "aggregate_status",
312
+ "major_boundary_block",
313
+ ];
314
+ if (isObject(integration) && integration.recommendation === "upgrade") {
315
+ fields.push("dry_run_command", "apply_command");
316
+ }
317
+ return pick(integration, fields);
318
+ }
319
+ function briefProfile(profile) {
320
+ // opencode reads profile.status; the dashboard glyph reads profile.status.
321
+ // bounded_signals (a legacy recovery blob) is omitted and recovers via
322
+ // `agentera profile --format json`.
323
+ return pick(profile, [
324
+ "status",
325
+ "validity",
326
+ "freshness",
327
+ "days_since_generated",
328
+ "stale",
329
+ "stale_threshold_days",
330
+ "generated_date",
331
+ "validated_date",
332
+ "suggested_action",
333
+ ]);
334
+ }
335
+ function briefApp(app) {
336
+ // `app` is required for app/v1/profile safety, but no default-bare consumer
337
+ // reads its verbose path list (the packaging gate reads app_home.source).
338
+ // Keep safety identity; path diagnostics recover through doctor so checkout
339
+ // depth cannot displace routing or canonical history evidence.
340
+ return pick(app, [
341
+ "status",
342
+ "expectedVersion",
343
+ "updateChannel",
344
+ ]);
345
+ }
346
+ function briefAppHome(appHome) {
347
+ return pick(appHome, ["install_track", "status", "source"]);
348
+ }
349
+ function briefSharedSkill(sharedSkill) {
350
+ if (!isObject(sharedSkill))
351
+ return {};
352
+ const out = pick(sharedSkill, ["name", "status", "source", "gap"]);
353
+ const message = boundedString(sharedSkill.message, BRIEF_SCALAR_MAX_CHARS);
354
+ if (message !== undefined)
355
+ out.message = message;
356
+ const details = boundedStringList(sharedSkill.details, 3, BRIEF_SCALAR_MAX_CHARS);
357
+ if (details !== undefined)
358
+ out.details = details;
359
+ return out;
360
+ }
361
+ function briefSource(source) {
362
+ return pick(source, ["artifacts_present"]);
363
+ }
364
+ function briefAttention(attention) {
365
+ // opencode reads the attention array for routing hints, but each entry is an
366
+ // advisory string. Cap each at BRIEF_SCALAR_MAX_CHARS so a pathological
367
+ // lifecycle procedure text cannot blow the budget; the full detail recovers
368
+ // via the named recovery commands in omitted_rich_state.
369
+ if (!Array.isArray(attention))
370
+ return attention ?? [];
371
+ return attention.map((entry) => typeof entry === "string" ? truncateCodePoints(entry, BRIEF_SCALAR_MAX_CHARS, "…") : entry);
372
+ }
373
+ function briefDecisionAttention(attention) {
374
+ if (attention === null)
375
+ return null;
376
+ if (!isObject(attention))
377
+ return {};
378
+ const out = pick(attention, ["type", "count", "states", "max_entries", "bounded"]);
379
+ const summary = boundedString(attention.attention, BRIEF_SCALAR_MAX_CHARS);
380
+ if (summary !== undefined)
381
+ out.attention = summary;
382
+ out.entries = Array.isArray(attention.entries)
383
+ ? attention.entries.slice(0, 3).map((entry) => {
384
+ if (!isObject(entry))
385
+ return {};
386
+ const projected = pick(entry, ["id", "artifact", "state"]);
387
+ const title = boundedString(entry.title, BRIEF_SCALAR_MAX_CHARS);
388
+ if (title !== undefined)
389
+ projected.title = title;
390
+ return projected;
391
+ })
392
+ : [];
393
+ return out;
394
+ }
395
+ function briefDocs(docs) {
396
+ // No default-bare consumer reads the docs projection detail. Keep the
397
+ // availability signal and mapping count; the verbose source_contract with
398
+ // state_families recovers via the canonical docs list fallback.
399
+ return pick(docs, ["exists", "status", "mapping_entries", "indexed_documents"]);
400
+ }
401
+ function briefProgress(progress) {
402
+ // opencode reads progress.latest.number/what/next; the brief keeps the
403
+ // latest cycle but caps free-text scalars at BRIEF_SCALAR_MAX_CHARS so a
404
+ // pathological value cannot blow the budget. Full detail recovers via
405
+ // `agentera state progress get --id ID --format json`.
406
+ if (!isObject(progress))
407
+ return {};
408
+ const out = pick(progress, ["exists", "status", "latest_verification", "cycle_count", "degraded_history"]);
409
+ const latest = progress.latest;
410
+ if (isObject(latest)) {
411
+ const boundedLatest = {};
412
+ for (const [key, value] of Object.entries(latest)) {
413
+ boundedLatest[key] = typeof value === "string" ? truncateCodePoints(value, BRIEF_SCALAR_MAX_CHARS, "…") : value;
414
+ }
415
+ out.latest = boundedLatest;
416
+ }
417
+ else {
418
+ out.latest = latest;
419
+ }
420
+ return out;
421
+ }
422
+ function briefHealth(health) {
423
+ return pick(health, ["exists", "id", "artifact", "date", "trajectory", "grade", "degraded_history"]);
424
+ }
425
+ function briefAction(action, maxChars) {
426
+ if (!isObject(action))
427
+ return {};
428
+ const out = pick(action, ["id", "artifact", "outcome", "eligible"]);
429
+ for (const key of ["object", "capability", "reason", "phase"]) {
430
+ const bounded = boundedString(action[key], maxChars);
431
+ if (bounded !== undefined)
432
+ out[key] = bounded;
433
+ }
434
+ if (isObject(action.retrieval))
435
+ out.retrieval = pick(action.retrieval, ["exact", "get"]);
436
+ return out;
437
+ }
438
+ function briefNextAction(nextAction, projection = "normal") {
439
+ if (!isObject(nextAction))
440
+ return {};
441
+ const maxChars = projectionMaxChars(projection);
442
+ const alternativeLimit = projection === "normal"
443
+ ? BRIEF_NEXT_ACTION_ALTERNATIVES
444
+ : projection === "compact"
445
+ ? 1
446
+ : 0;
447
+ const alternatives = Array.isArray(nextAction.alternatives)
448
+ ? nextAction.alternatives.slice(0, alternativeLimit).map((entry) => briefAction(entry, maxChars))
449
+ : [];
450
+ return {
451
+ ...briefAction(nextAction, maxChars),
452
+ alternatives,
453
+ };
454
+ }
455
+ function briefCapabilityContext(value, maxChars) {
456
+ if (!isObject(value))
457
+ return {};
458
+ const out = {};
459
+ for (const key of ["capability", "fetch_command", "note"]) {
460
+ const bounded = boundedString(value[key], maxChars);
461
+ if (bounded !== undefined)
462
+ out[key] = bounded;
463
+ }
464
+ if (typeof value.required_before_rendering === "boolean") {
465
+ out.required_before_rendering = value.required_before_rendering;
466
+ }
467
+ return out;
468
+ }
469
+ function briefCapabilityStartup(startup, maxChars) {
470
+ if (!isObject(startup))
471
+ return {};
472
+ const out = {};
473
+ if (typeof startup.complete_for_capability_startup === "boolean") {
474
+ out.complete_for_capability_startup = startup.complete_for_capability_startup;
475
+ }
476
+ if (typeof startup.raw_artifact_reads_required === "boolean") {
477
+ out.raw_artifact_reads_required = startup.raw_artifact_reads_required;
478
+ }
479
+ const policy = boundedString(startup.raw_artifact_read_policy, maxChars);
480
+ if (policy !== undefined)
481
+ out.raw_artifact_read_policy = policy;
482
+ for (const [key, maxItems] of [
483
+ ["available_state", 64],
484
+ ["missing_state", 16],
485
+ ["confidence_caveats", 8],
486
+ ["cli_fallback", 8],
487
+ ]) {
488
+ const bounded = boundedStringList(startup[key], maxItems, maxChars);
489
+ if (bounded !== undefined)
490
+ out[key] = bounded;
491
+ }
492
+ return out;
493
+ }
494
+ function briefArtifactWrites(writes, maxChars) {
495
+ // Keep the discovery pointer (required by the compatibility boundary test)
496
+ // and schema identity; the full writer-operation matrix recovers via schema.
497
+ if (!isObject(writes))
498
+ return {};
499
+ const out = {};
500
+ for (const key of ["schemaVersion", "discovery_command"]) {
501
+ const bounded = boundedString(writes[key], maxChars);
502
+ if (bounded !== undefined)
503
+ out[key] = bounded;
504
+ }
505
+ return out;
506
+ }
507
+ function briefSourceContract(sourceContract, projection = "normal") {
508
+ if (!isObject(sourceContract))
509
+ return {};
510
+ const maxItems = projection === "normal"
511
+ ? BRIEF_SOURCE_FIELDS_MAX
512
+ : projection === "compact"
513
+ ? BRIEF_COMPACT_SOURCE_FIELDS_MAX
514
+ : BRIEF_IRREDUCIBLE_SOURCE_FIELDS_MAX;
515
+ const maxChars = projection === "normal"
516
+ ? BRIEF_SOURCE_STRING_MAX_CHARS
517
+ : projection === "compact"
518
+ ? BRIEF_COMPACT_SOURCE_STRING_MAX_CHARS
519
+ : BRIEF_IRREDUCIBLE_SOURCE_STRING_MAX_CHARS;
520
+ const out = {};
521
+ const fields = boundedStringList(sourceContract.fields, maxItems, maxChars);
522
+ if (fields !== undefined)
523
+ out.fields = fields;
524
+ for (const key of ["render", "access", "empty_state"]) {
525
+ const bounded = boundedString(sourceContract[key], maxChars);
526
+ if (bounded !== undefined)
527
+ out[key] = bounded;
528
+ }
529
+ if (projection !== "irreducible" && isObject(sourceContract.capability_context)) {
530
+ out.capability_context = briefCapabilityContext(sourceContract.capability_context, maxChars);
531
+ }
532
+ else if (projection === "irreducible" && isObject(sourceContract.capability_context)) {
533
+ const capabilityContext = briefCapabilityContext(sourceContract.capability_context, maxChars);
534
+ if ("fetch_command" in capabilityContext) {
535
+ out.capability_context = { fetch_command: capabilityContext.fetch_command };
536
+ }
537
+ }
538
+ if (isObject(sourceContract.capability_startup)) {
539
+ if (projection === "irreducible") {
540
+ const startup = sourceContract.capability_startup;
541
+ const minimalStartup = {};
542
+ if (typeof startup.complete_for_capability_startup === "boolean") {
543
+ minimalStartup.complete_for_capability_startup = startup.complete_for_capability_startup;
544
+ }
545
+ if (typeof startup.raw_artifact_reads_required === "boolean") {
546
+ minimalStartup.raw_artifact_reads_required = startup.raw_artifact_reads_required;
547
+ }
548
+ out.capability_startup = minimalStartup;
549
+ }
550
+ else {
551
+ out.capability_startup = briefCapabilityStartup(sourceContract.capability_startup, maxChars);
552
+ }
553
+ }
554
+ if (isObject(sourceContract.artifact_writes)) {
555
+ if (projection !== "irreducible") {
556
+ out.artifact_writes = briefArtifactWrites(sourceContract.artifact_writes, maxChars);
557
+ }
558
+ }
559
+ return out;
560
+ }
561
+ /** Project the full orientation payload to a bounded decision brief. The brief
562
+ * keeps every required top-level field present (content projected to
563
+ * routing-essential leaves) plus a `brief` meta block that records the budget,
564
+ * measured bytes, status, and omitted rich-state recovery commands.
565
+ *
566
+ * Measurement uses deterministic pretty-JSON UTF-8 byte length including the
567
+ * trailing newline. The reported `utf8_bytes` is settled to a fixed point so
568
+ * it equals the actual emitted byte count (self-measurement otherwise changes
569
+ * its own digit count); the gate then decides on the final form. */
570
+ export function briefOrientationPayload(payload, options = {}) {
571
+ const budget = options.budgetBytes ?? PRIME_BRIEF_MAX_UTF8_BYTES;
572
+ if (!Number.isSafeInteger(budget) || budget < 0) {
573
+ throw new RangeError("brief budget must be a non-negative safe integer");
574
+ }
575
+ const projected = projectBriefBody(payload);
576
+ const finalPayload = withBriefMeta(projected, "ok", budget, null);
577
+ const gate = briefByteGate(finalPayload, budget);
578
+ if (gate.accepted) {
579
+ return finalPayload;
580
+ }
581
+ // Over-budget brief: reject the projected payload and emit a bounded degraded
582
+ // envelope (never emit an over-budget payload). The envelope keeps bounded
583
+ // plan/next-action/history/decision routing evidence, state presence, a brief
584
+ // source contract, and the byte-budget error with a recovery command.
585
+ return degradedBriefEnvelope(payload, budget, gate.bytes, options.degradedMode ?? "minimal");
586
+ }
587
+ /** Attach the brief meta block and settle `utf8_bytes` to a fixed point so the
588
+ * reported size equals the actual emitted byte count (otherwise the digits of
589
+ * `utf8_bytes` itself would change the measurement). */
590
+ function withBriefMeta(body, status, budget, error) {
591
+ const meta = {
592
+ budget_utf8_bytes: budget,
593
+ status,
594
+ path_diagnostics_recovery: PATH_DIAGNOSTICS_RECOVERY,
595
+ omitted_rich_state: OMITTED_RICH_STATE.map((entry) => ({ ...entry })),
596
+ };
597
+ if (error)
598
+ meta.error = error;
599
+ return settledBriefEnvelope(body, meta);
600
+ }
601
+ function projectBriefBody(payload) {
602
+ const out = {};
603
+ for (const [key, value] of Object.entries(payload)) {
604
+ switch (key) {
605
+ case "plan":
606
+ out[key] = briefPlan(value);
607
+ break;
608
+ case "history":
609
+ out[key] = briefHistory(value);
610
+ break;
611
+ case "project_integration":
612
+ out[key] = briefProjectIntegration(value);
613
+ break;
614
+ case "profile":
615
+ out[key] = briefProfile(value);
616
+ break;
617
+ case "app":
618
+ out[key] = briefApp(value);
619
+ break;
620
+ case "app_home":
621
+ out[key] = briefAppHome(value);
622
+ break;
623
+ case "shared_skill":
624
+ out[key] = briefSharedSkill(value);
625
+ break;
626
+ case "progress":
627
+ out[key] = briefProgress(value);
628
+ break;
629
+ case "health":
630
+ out[key] = briefHealth(value);
631
+ break;
632
+ case "next_action":
633
+ out[key] = briefNextAction(value);
634
+ break;
635
+ case "attention":
636
+ out[key] = briefAttention(value);
637
+ break;
638
+ case "decision_attention":
639
+ out[key] = briefDecisionAttention(value);
640
+ break;
641
+ case "docs":
642
+ out[key] = briefDocs(value);
643
+ break;
644
+ case "source_contract":
645
+ out[key] = briefSourceContract(value);
646
+ break;
647
+ case "state_presence":
648
+ out[key] = briefStatePresence(value);
649
+ break;
650
+ case "source":
651
+ out[key] = briefSource(value);
652
+ break;
653
+ default:
654
+ // Command/status/mode, bounded ordinary state, shared-skill diagnosis,
655
+ // bespoke context pointers, and active conditional fields pass through
656
+ // at full fidelity.
657
+ out[key] = value;
658
+ break;
659
+ }
660
+ }
661
+ return out;
662
+ }
663
+ function boundedEnvelopeScalar(value, fallback) {
664
+ return boundedString(value, BRIEF_SCALAR_MAX_CHARS) ?? fallback;
665
+ }
666
+ function degradedBody(payload, projection) {
667
+ const out = {
668
+ command: boundedEnvelopeScalar(payload.command, "prime"),
669
+ status: boundedEnvelopeScalar(payload.status, "ok"),
670
+ mode: boundedEnvelopeScalar(payload.mode, "unknown"),
671
+ state_presence: briefStatePresence(payload.state_presence),
672
+ source_contract: briefSourceContract(payload.source_contract, projection),
673
+ };
674
+ if ("app_home" in payload)
675
+ out.app_home = briefAppHome(payload.app_home);
676
+ if ("app" in payload)
677
+ out.app = briefApp(payload.app);
678
+ if ("profile" in payload)
679
+ out.profile = briefProfile(payload.profile);
680
+ if ("shared_skill" in payload)
681
+ out.shared_skill = briefSharedSkill(payload.shared_skill);
682
+ if ("project_integration" in payload)
683
+ out.project_integration = briefProjectIntegration(payload.project_integration);
684
+ if ("health" in payload)
685
+ out.health = briefHealth(payload.health);
686
+ if ("todo" in payload)
687
+ out.todo = payload.todo;
688
+ if ("issues" in payload)
689
+ out.issues = payload.issues;
690
+ if ("progress" in payload)
691
+ out.progress = briefProgress(payload.progress);
692
+ if ("attention" in payload)
693
+ out.attention = briefAttention(payload.attention);
694
+ if ("source" in payload)
695
+ out.source = briefSource(payload.source);
696
+ for (const conditional of ["v1_migration", "docs", "objective"]) {
697
+ if (conditional in payload)
698
+ out[conditional] = payload[conditional];
699
+ }
700
+ if (isObject(payload.plan))
701
+ out.plan = briefPlan(payload.plan, projection);
702
+ if (isObject(payload.next_action))
703
+ out.next_action = briefNextAction(payload.next_action, projection);
704
+ if (isObject(payload.history))
705
+ out.history = briefHistory(payload.history, projection);
706
+ if (payload.decision_attention === null)
707
+ out.decision_attention = null;
708
+ else if (isObject(payload.decision_attention))
709
+ out.decision_attention = briefDecisionAttention(payload.decision_attention);
710
+ return out;
711
+ }
712
+ function statusRoutingDegradedBody(payload, projection) {
713
+ return {
714
+ ...degradedBody(payload, projection),
715
+ todo: payload.todo,
716
+ attention: briefAttention(payload.attention),
717
+ };
718
+ }
719
+ /** Settle the self-measuring byte field and return only at a fixed point. The
720
+ * serialized value and the reported value therefore use the same pretty UTF-8
721
+ * plus newline accounting as emitStructured. */
722
+ function settledBriefEnvelope(body, meta) {
723
+ let brief = { ...meta, utf8_bytes: 0 };
724
+ let envelope = { ...body, brief };
725
+ for (let guard = 0; guard < 32; guard += 1) {
726
+ const bytes = briefUtf8Bytes(envelope);
727
+ if (brief.utf8_bytes === bytes)
728
+ return envelope;
729
+ brief = { ...brief, utf8_bytes: bytes };
730
+ envelope = { ...body, brief };
731
+ }
732
+ throw new Error("brief UTF-8 byte measurement did not settle");
733
+ }
734
+ export class BriefBudgetError extends Error {
735
+ budgetBytes;
736
+ minimumBytes;
737
+ constructor(budgetBytes, minimumBytes) {
738
+ super(`brief budget ${budgetBytes} bytes cannot contain the minimum routing envelope (${minimumBytes} bytes); increase the budget or use --dashboard`);
739
+ this.name = "BriefBudgetError";
740
+ this.budgetBytes = budgetBytes;
741
+ this.minimumBytes = minimumBytes;
742
+ }
743
+ }
744
+ function degradedBriefEnvelope(payload, budget, attemptedBytes, mode) {
745
+ const detailedMeta = {
746
+ budget_utf8_bytes: budget,
747
+ status: "degraded",
748
+ attempted_utf8_bytes: attemptedBytes,
749
+ path_diagnostics_recovery: PATH_DIAGNOSTICS_RECOVERY,
750
+ omitted_rich_state: OMITTED_RICH_STATE.map((entry) => ({ ...entry })),
751
+ error: {
752
+ class: "brief_output_budget",
753
+ message: "the projected decision brief exceeded the authority byte budget; a bounded degraded envelope was emitted instead of the over-budget payload",
754
+ recovery: "Run `agentera prime --dashboard --format json` for the full orientation payload, or `agentera state <artifact> list --format json` for a specific record family.",
755
+ },
756
+ };
757
+ const body = (projection) => mode === "status_routing"
758
+ ? statusRoutingDegradedBody(payload, projection)
759
+ : degradedBody(payload, projection);
760
+ const detailed = settledBriefEnvelope(body("normal"), detailedMeta);
761
+ if (briefByteGate(detailed, budget).accepted)
762
+ return detailed;
763
+ // A smaller deterministic fallback drops the recovery catalog but retains the
764
+ // bounded state-presence and source-contract projections plus one recovery
765
+ // command. This is what lets a configured 7KB gate remain enforceable even
766
+ // when caller data would make the detailed degraded envelope too large.
767
+ const compactMeta = {
768
+ budget_utf8_bytes: budget,
769
+ status: "degraded",
770
+ attempted_utf8_bytes: attemptedBytes,
771
+ path_diagnostics_recovery: PATH_DIAGNOSTICS_RECOVERY,
772
+ error: {
773
+ class: "brief_output_budget",
774
+ message: "the projected decision brief exceeded the authority byte budget; compact recovery metadata was emitted",
775
+ recovery: "Run `agentera prime --dashboard --format json` for full orientation detail.",
776
+ },
777
+ };
778
+ const compact = settledBriefEnvelope(body("compact"), compactMeta);
779
+ if (briefByteGate(compact, budget).accepted)
780
+ return compact;
781
+ if (mode === "status_routing") {
782
+ const minimum = settledBriefEnvelope(body("irreducible"), compactMeta);
783
+ const minimumBytes = briefUtf8Bytes(minimum);
784
+ if (minimumBytes <= budget)
785
+ return minimum;
786
+ throw new BriefBudgetError(budget, minimumBytes);
787
+ }
788
+ // The irreducible form is intentionally finite and contains only the routing
789
+ // contract. If even this cannot fit, throwing is explicit: returning an
790
+ // over-budget JSON document would violate the public output contract.
791
+ const minimumMeta = {
792
+ budget_utf8_bytes: budget,
793
+ status: "degraded",
794
+ attempted_utf8_bytes: attemptedBytes,
795
+ path_diagnostics_recovery: PATH_DIAGNOSTICS_RECOVERY,
796
+ error: {
797
+ class: "brief_output_budget",
798
+ message: "the configured budget cannot contain the detailed recovery envelope",
799
+ recovery: "Increase the budget or run `agentera prime --dashboard --format json`.",
800
+ },
801
+ };
802
+ const minimum = settledBriefEnvelope(body("irreducible"), minimumMeta);
803
+ const minimumBytes = briefUtf8Bytes(minimum);
804
+ if (minimumBytes <= budget)
805
+ return minimum;
806
+ throw new BriefBudgetError(budget, minimumBytes);
807
+ }
808
+ //# sourceMappingURL=briefOrientation.js.map