agentera 3.0.0-dev.3 → 3.0.0-dev.30

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 (762) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +96 -6
  3. package/bundle/.agentera-npx-bundle.json +1 -1
  4. package/bundle/CHANGELOG.md +1133 -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-registry.yaml +20 -188
  13. package/bundle/references/adapters/package-surface-characterization.md +36 -37
  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 +97 -0
  18. package/bundle/references/analysis/benchmark.md +10 -6
  19. package/bundle/references/analysis/evidence-tier-authority.yaml +516 -0
  20. package/bundle/references/analysis/startup-measurement-contract.yaml +37 -26
  21. package/bundle/references/analysis/verification-policy.yaml +142 -0
  22. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +9 -8
  23. package/bundle/references/artifacts/state-storage-authority.yaml +2167 -0
  24. package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
  25. package/bundle/references/cli/agent-ready-state-contract.yaml +64 -81
  26. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +7 -8
  27. package/bundle/references/cli/audience-namespace-cli-migration.yaml +58 -29
  28. package/bundle/references/cli/bundle-skill-vocabulary.yaml +12 -49
  29. package/bundle/references/cli/capability-instruction-contract.yaml +96 -58
  30. package/bundle/references/cli/capability-instruction-structure.md +144 -0
  31. package/bundle/references/cli/capability-tool-classification.yaml +14 -14
  32. package/bundle/references/cli/coexistence-probe.yaml +13 -0
  33. package/bundle/references/cli/hybrid-route-contract.yaml +416 -0
  34. package/bundle/references/cli/parity-expected-actual-template.md +30 -0
  35. package/bundle/references/cli/prime-consumer-compatibility.yaml +651 -0
  36. package/bundle/references/cli/routing-execution-vocabulary.yaml +16 -38
  37. package/bundle/references/cli/routing-model.md +139 -0
  38. package/bundle/references/cli/single-name-protocol.yaml +42 -0
  39. package/bundle/references/cli/trigger-schema-enrichment.md +140 -0
  40. package/bundle/references/cli/update-channels.yaml +45 -7
  41. package/bundle/references/cli/upgrade-repair-wording.md +25 -0
  42. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +97 -0
  43. package/bundle/references/cli/vocabulary-index.yaml +23 -18
  44. package/bundle/references/cli/vocabulary.md +346 -331
  45. package/bundle/references/meta/documentation-inventory.md +10 -3
  46. package/bundle/registry.json +14 -14
  47. package/bundle/skills/agentera/SKILL.md +182 -407
  48. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +84 -0
  49. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +2 -2
  50. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +25 -0
  51. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +20 -19
  52. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +85 -0
  53. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +3 -3
  54. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +27 -0
  55. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/validation.yaml +16 -16
  56. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +12 -12
  57. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +5 -5
  58. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +16 -0
  59. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +7 -7
  60. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +49 -0
  61. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +2 -2
  62. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +20 -0
  63. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/validation.yaml +9 -8
  64. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +80 -0
  65. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +16 -0
  66. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +18 -18
  67. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +17 -17
  68. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +2 -2
  69. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +16 -0
  70. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +9 -9
  71. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +76 -0
  72. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +9 -7
  73. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +23 -0
  74. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +121 -0
  75. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +63 -0
  76. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
  77. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +23 -0
  78. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +89 -0
  79. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/artifacts.yaml +4 -4
  80. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +3 -3
  81. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +20 -0
  82. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +85 -0
  83. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +24 -0
  84. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +16 -0
  85. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
  86. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +72 -0
  87. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +22 -0
  88. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
  89. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +16 -16
  90. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +7 -6
  91. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +23 -0
  92. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +18 -20
  93. package/bundle/skills/agentera/capability_schema_contract.yaml +200 -37
  94. package/bundle/skills/agentera/protocol.yaml +29 -29
  95. package/bundle/skills/agentera/references/contract.md +387 -329
  96. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  97. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +5 -4
  98. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +40 -22
  99. package/bundle/skills/agentera/schemas/artifacts/design.yaml +5 -4
  100. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +15 -19
  101. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +145 -14
  102. package/bundle/skills/agentera/schemas/artifacts/health.yaml +58 -21
  103. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +22 -8
  104. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +327 -15
  105. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +51 -53
  106. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +82 -28
  107. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
  108. package/dist/analytics/extractCorpus/cli.js +191 -0
  109. package/dist/analytics/extractCorpus/cli.js.map +1 -0
  110. package/dist/analytics/extractCorpus/copilotSessions.js +276 -0
  111. package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -0
  112. package/dist/analytics/extractCorpus/core.js +393 -0
  113. package/dist/analytics/extractCorpus/core.js.map +1 -0
  114. package/dist/analytics/extractCorpus/corpus.js +168 -0
  115. package/dist/analytics/extractCorpus/corpus.js.map +1 -0
  116. package/dist/analytics/extractCorpus/coverageAudit.js +261 -0
  117. package/dist/analytics/extractCorpus/coverageAudit.js.map +1 -0
  118. package/dist/analytics/extractCorpus/cursorSessions.js +426 -0
  119. package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -0
  120. package/dist/analytics/extractCorpus/evidenceTiers.js +561 -0
  121. package/dist/analytics/extractCorpus/evidenceTiers.js.map +1 -0
  122. package/dist/analytics/extractCorpus/extractCorpusParity.js +106 -0
  123. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +1 -0
  124. package/dist/analytics/extractCorpus/filesystemSources.js +119 -0
  125. package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -0
  126. package/dist/analytics/extractCorpus/index.js +15 -0
  127. package/dist/analytics/extractCorpus/index.js.map +1 -0
  128. package/dist/analytics/extractCorpus/jsonlSessions.js +205 -0
  129. package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -0
  130. package/dist/analytics/extractCorpus/sqliteCaps.js +44 -0
  131. package/dist/analytics/extractCorpus/sqliteCaps.js.map +1 -0
  132. package/dist/analytics/extractCorpus/sqliteSessions.js +368 -0
  133. package/dist/analytics/extractCorpus/sqliteSessions.js.map +1 -0
  134. package/dist/analytics/extractCorpus/tierReader.js +109 -0
  135. package/dist/analytics/extractCorpus/tierReader.js.map +1 -0
  136. package/dist/analytics/extractCorpus.js +2 -1790
  137. package/dist/analytics/extractCorpus.js.map +1 -1
  138. package/dist/analytics/profileSignals.js +212 -0
  139. package/dist/analytics/profileSignals.js.map +1 -0
  140. package/dist/analytics/usageStats.js +191 -41
  141. package/dist/analytics/usageStats.js.map +1 -1
  142. package/dist/bin/agentera.js +3 -1
  143. package/dist/bin/agentera.js.map +1 -1
  144. package/dist/capabilities/audit/instructions.js +16 -0
  145. package/dist/capabilities/audit/instructions.js.map +1 -0
  146. package/dist/capabilities/build/instructions.js +18 -0
  147. package/dist/capabilities/build/instructions.js.map +1 -0
  148. package/dist/capabilities/design/instructions.js +5 -0
  149. package/dist/capabilities/design/instructions.js.map +1 -0
  150. package/dist/capabilities/discuss/instructions.js +16 -0
  151. package/dist/capabilities/discuss/instructions.js.map +1 -0
  152. package/dist/capabilities/document/instructions.js +12 -0
  153. package/dist/capabilities/document/instructions.js.map +1 -0
  154. package/dist/capabilities/index.js +39 -0
  155. package/dist/capabilities/index.js.map +1 -0
  156. package/dist/capabilities/optimize/instructions.js +14 -0
  157. package/dist/capabilities/optimize/instructions.js.map +1 -0
  158. package/dist/capabilities/orchestrate/instructions.js +41 -0
  159. package/dist/capabilities/orchestrate/instructions.js.map +1 -0
  160. package/dist/capabilities/plan/instructions.js +15 -0
  161. package/dist/capabilities/plan/instructions.js.map +1 -0
  162. package/dist/capabilities/profile/instructions.js +5 -0
  163. package/dist/capabilities/profile/instructions.js.map +1 -0
  164. package/dist/capabilities/research/instructions.js +6 -0
  165. package/dist/capabilities/research/instructions.js.map +1 -0
  166. package/dist/capabilities/status/instructions.js +5 -0
  167. package/dist/capabilities/status/instructions.js.map +1 -0
  168. package/dist/capabilities/status/startupInstructions.js +35 -0
  169. package/dist/capabilities/status/startupInstructions.js.map +1 -0
  170. package/dist/capabilities/vision/instructions.js +5 -0
  171. package/dist/capabilities/vision/instructions.js.map +1 -0
  172. package/dist/cli/appContext.js +30 -23
  173. package/dist/cli/appContext.js.map +1 -1
  174. package/dist/cli/argvalidate.js.map +1 -1
  175. package/dist/cli/capabilityContext/benchmark.js +564 -0
  176. package/dist/cli/capabilityContext/benchmark.js.map +1 -0
  177. package/dist/cli/capabilityContext/bespoke.js +44 -0
  178. package/dist/cli/capabilityContext/bespoke.js.map +1 -0
  179. package/dist/cli/capabilityContext/build.js +191 -0
  180. package/dist/cli/capabilityContext/build.js.map +1 -0
  181. package/dist/cli/capabilityContext/closeout.js +231 -0
  182. package/dist/cli/capabilityContext/closeout.js.map +1 -0
  183. package/dist/cli/capabilityContext/contract.js +214 -0
  184. package/dist/cli/capabilityContext/contract.js.map +1 -0
  185. package/dist/cli/capabilityContext/evidence.js +469 -0
  186. package/dist/cli/capabilityContext/evidence.js.map +1 -0
  187. package/dist/cli/capabilityContext/index.js +4 -0
  188. package/dist/cli/capabilityContext/index.js.map +1 -0
  189. package/dist/cli/capabilityContext/orchestration.js +128 -0
  190. package/dist/cli/capabilityContext/orchestration.js.map +1 -0
  191. package/dist/cli/capabilityContext/planState.js +280 -0
  192. package/dist/cli/capabilityContext/planState.js.map +1 -0
  193. package/dist/cli/capabilityContext/progress.js +143 -0
  194. package/dist/cli/capabilityContext/progress.js.map +1 -0
  195. package/dist/cli/capabilityContext/shared.js +100 -0
  196. package/dist/cli/capabilityContext/shared.js.map +1 -0
  197. package/dist/cli/capabilityContext/slim.js +153 -0
  198. package/dist/cli/capabilityContext/slim.js.map +1 -0
  199. package/dist/cli/capabilityContext/startup.js +257 -0
  200. package/dist/cli/capabilityContext/startup.js.map +1 -0
  201. package/dist/cli/capabilityContext/types.js +51 -0
  202. package/dist/cli/capabilityContext/types.js.map +1 -0
  203. package/dist/cli/capabilityContext.js +1 -2420
  204. package/dist/cli/capabilityContext.js.map +1 -1
  205. package/dist/cli/commands/appHome.js +23 -0
  206. package/dist/cli/commands/appHome.js.map +1 -0
  207. package/dist/cli/commands/capability.js +3 -10
  208. package/dist/cli/commands/capability.js.map +1 -1
  209. package/dist/cli/commands/compact.js +41 -12
  210. package/dist/cli/commands/compact.js.map +1 -1
  211. package/dist/cli/commands/doctor.js +59 -97
  212. package/dist/cli/commands/doctor.js.map +1 -1
  213. package/dist/cli/commands/durability.js +82 -0
  214. package/dist/cli/commands/durability.js.map +1 -0
  215. package/dist/cli/commands/entityMigrate.js +132 -0
  216. package/dist/cli/commands/entityMigrate.js.map +1 -0
  217. package/dist/cli/commands/lint.js +26 -43
  218. package/dist/cli/commands/lint.js.map +1 -1
  219. package/dist/cli/commands/prime/briefOrientation.js +592 -0
  220. package/dist/cli/commands/prime/briefOrientation.js.map +1 -0
  221. package/dist/cli/commands/prime/bundleStatus.js +191 -0
  222. package/dist/cli/commands/prime/bundleStatus.js.map +1 -0
  223. package/dist/cli/commands/prime/collectEntityOrientation.js +260 -0
  224. package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -0
  225. package/dist/cli/commands/prime/collectOrientationState.js +180 -0
  226. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -0
  227. package/dist/cli/commands/prime/orientationOutput.js +350 -0
  228. package/dist/cli/commands/prime/orientationOutput.js.map +1 -0
  229. package/dist/cli/commands/prime/types.js +2 -0
  230. package/dist/cli/commands/prime/types.js.map +1 -0
  231. package/dist/cli/commands/prime/v1Migration.js +39 -0
  232. package/dist/cli/commands/prime/v1Migration.js.map +1 -0
  233. package/dist/cli/commands/prime.js +61 -556
  234. package/dist/cli/commands/prime.js.map +1 -1
  235. package/dist/cli/commands/query.js +66 -51
  236. package/dist/cli/commands/query.js.map +1 -1
  237. package/dist/cli/commands/report.js +100 -24
  238. package/dist/cli/commands/report.js.map +1 -1
  239. package/dist/cli/commands/route.js +142 -0
  240. package/dist/cli/commands/route.js.map +1 -0
  241. package/dist/cli/commands/schema.js +260 -78
  242. package/dist/cli/commands/schema.js.map +1 -1
  243. package/dist/cli/commands/state/decisions.js +388 -0
  244. package/dist/cli/commands/state/decisions.js.map +1 -0
  245. package/dist/cli/commands/state/docs.js +71 -0
  246. package/dist/cli/commands/state/docs.js.map +1 -0
  247. package/dist/cli/commands/state/experimentRecords.js +139 -0
  248. package/dist/cli/commands/state/experimentRecords.js.map +1 -0
  249. package/dist/cli/commands/state/experiments.js +15 -0
  250. package/dist/cli/commands/state/experiments.js.map +1 -0
  251. package/dist/cli/commands/state/get.js +127 -0
  252. package/dist/cli/commands/state/get.js.map +1 -0
  253. package/dist/cli/commands/state/health.js +15 -0
  254. package/dist/cli/commands/state/health.js.map +1 -0
  255. package/dist/cli/commands/state/index.js +60 -0
  256. package/dist/cli/commands/state/index.js.map +1 -0
  257. package/dist/cli/commands/state/list.js +176 -0
  258. package/dist/cli/commands/state/list.js.map +1 -0
  259. package/dist/cli/commands/state/objective.js +26 -0
  260. package/dist/cli/commands/state/objective.js.map +1 -0
  261. package/dist/cli/commands/state/plan.js +15 -0
  262. package/dist/cli/commands/state/plan.js.map +1 -0
  263. package/dist/cli/commands/state/planTasks.js +142 -0
  264. package/dist/cli/commands/state/planTasks.js.map +1 -0
  265. package/dist/cli/commands/state/plans.js +143 -0
  266. package/dist/cli/commands/state/plans.js.map +1 -0
  267. package/dist/cli/commands/state/progress.js +14 -0
  268. package/dist/cli/commands/state/progress.js.map +1 -0
  269. package/dist/cli/commands/state/shared.js +15 -0
  270. package/dist/cli/commands/state/shared.js.map +1 -0
  271. package/dist/cli/commands/state/todo.js +42 -0
  272. package/dist/cli/commands/state/todo.js.map +1 -0
  273. package/dist/cli/commands/state/write.js +418 -0
  274. package/dist/cli/commands/state/write.js.map +1 -0
  275. package/dist/cli/commands/upgrade.js +146 -4
  276. package/dist/cli/commands/upgrade.js.map +1 -1
  277. package/dist/cli/commands/upgradeVerify.js +119 -0
  278. package/dist/cli/commands/upgradeVerify.js.map +1 -0
  279. package/dist/cli/commands/validate.js +109 -209
  280. package/dist/cli/commands/validate.js.map +1 -1
  281. package/dist/cli/commands/verify.js +30 -8
  282. package/dist/cli/commands/verify.js.map +1 -1
  283. package/dist/cli/contracts/bundleStatus.js +2 -0
  284. package/dist/cli/contracts/bundleStatus.js.map +1 -0
  285. package/dist/cli/contracts/orientationState.js +2 -0
  286. package/dist/cli/contracts/orientationState.js.map +1 -0
  287. package/dist/cli/dispatch/argvParser.js +33 -0
  288. package/dist/cli/dispatch/argvParser.js.map +1 -0
  289. package/dist/cli/dispatch/check.js +390 -0
  290. package/dist/cli/dispatch/check.js.map +1 -0
  291. package/dist/cli/dispatch/commands.js +27 -0
  292. package/dist/cli/dispatch/commands.js.map +1 -0
  293. package/dist/cli/dispatch/index.js +226 -0
  294. package/dist/cli/dispatch/index.js.map +1 -0
  295. package/dist/cli/dispatch/lifecycle.js +653 -0
  296. package/dist/cli/dispatch/lifecycle.js.map +1 -0
  297. package/dist/cli/dispatch/prime.js +119 -0
  298. package/dist/cli/dispatch/prime.js.map +1 -0
  299. package/dist/cli/dispatch/shared.js +64 -0
  300. package/dist/cli/dispatch/shared.js.map +1 -0
  301. package/dist/cli/dispatch/state.js +174 -0
  302. package/dist/cli/dispatch/state.js.map +1 -0
  303. package/dist/cli/dispatch.js +1 -957
  304. package/dist/cli/dispatch.js.map +1 -1
  305. package/dist/cli/errors.js +53 -0
  306. package/dist/cli/errors.js.map +1 -0
  307. package/dist/cli/help.js +418 -0
  308. package/dist/cli/help.js.map +1 -0
  309. package/dist/cli/migrationRequired.js +87 -0
  310. package/dist/cli/migrationRequired.js.map +1 -0
  311. package/dist/cli/orientation/attention.js +67 -0
  312. package/dist/cli/orientation/attention.js.map +1 -0
  313. package/dist/cli/orientation/corpusCoverage.js +103 -0
  314. package/dist/cli/orientation/corpusCoverage.js.map +1 -0
  315. package/dist/cli/orientation.js +357 -148
  316. package/dist/cli/orientation.js.map +1 -1
  317. package/dist/cli/planArtifacts.js +351 -0
  318. package/dist/cli/planArtifacts.js.map +1 -0
  319. package/dist/cli/planEvidence.js +158 -0
  320. package/dist/cli/planEvidence.js.map +1 -0
  321. package/dist/cli/planLifecycleState.js +34 -0
  322. package/dist/cli/planLifecycleState.js.map +1 -0
  323. package/dist/cli/planTaskIndex.js +12 -0
  324. package/dist/cli/planTaskIndex.js.map +1 -0
  325. package/dist/cli/prime-blob.js +69 -2
  326. package/dist/cli/prime-blob.js.map +1 -1
  327. package/dist/cli/startupCompletenessContract.js +57 -0
  328. package/dist/cli/startupCompletenessContract.js.map +1 -0
  329. package/dist/cli/stateQuery.js +63 -10
  330. package/dist/cli/stateQuery.js.map +1 -1
  331. package/dist/cli/structured.js.map +1 -1
  332. package/dist/cli/todoMarkdown.js +33 -0
  333. package/dist/cli/todoMarkdown.js.map +1 -0
  334. package/dist/cli/todoSeverity.js +19 -0
  335. package/dist/cli/todoSeverity.js.map +1 -0
  336. package/dist/core/atomicWriter.js +21 -0
  337. package/dist/core/atomicWriter.js.map +1 -0
  338. package/dist/core/difflib.js.map +1 -1
  339. package/dist/core/envPaths.js +21 -0
  340. package/dist/core/envPaths.js.map +1 -0
  341. package/dist/core/jsonValue.js +6 -0
  342. package/dist/core/jsonValue.js.map +1 -0
  343. package/dist/core/paths.js.map +1 -1
  344. package/dist/core/pyjson.js +67 -2
  345. package/dist/core/pyjson.js.map +1 -1
  346. package/dist/core/skillIdentity.js +24 -0
  347. package/dist/core/skillIdentity.js.map +1 -0
  348. package/dist/core/sourceRoot.js.map +1 -1
  349. package/dist/core/text.js +11 -0
  350. package/dist/core/text.js.map +1 -0
  351. package/dist/core/toml.js.map +1 -1
  352. package/dist/core/yaml.js +8 -0
  353. package/dist/core/yaml.js.map +1 -1
  354. package/dist/eval/evalSkills.js +30 -25
  355. package/dist/eval/evalSkills.js.map +1 -1
  356. package/dist/eval/hybridRouteEvaluation.js +156 -0
  357. package/dist/eval/hybridRouteEvaluation.js.map +1 -0
  358. package/dist/eval/semanticEval.js +43 -19
  359. package/dist/eval/semanticEval.js.map +1 -1
  360. package/dist/eval/semanticFixtures.js +16 -4
  361. package/dist/eval/semanticFixtures.js.map +1 -1
  362. package/dist/hooks/common.js +10 -27
  363. package/dist/hooks/common.js.map +1 -1
  364. package/dist/hooks/compaction/apply.js +447 -0
  365. package/dist/hooks/compaction/apply.js.map +1 -0
  366. package/dist/hooks/compaction/dryRun.js +185 -0
  367. package/dist/hooks/compaction/dryRun.js.map +1 -0
  368. package/dist/hooks/compaction/index.js +23 -0
  369. package/dist/hooks/compaction/index.js.map +1 -0
  370. package/dist/hooks/compaction/parse.js +326 -0
  371. package/dist/hooks/compaction/parse.js.map +1 -0
  372. package/dist/hooks/compaction/retention.js +203 -0
  373. package/dist/hooks/compaction/retention.js.map +1 -0
  374. package/dist/hooks/compaction/status.js +361 -0
  375. package/dist/hooks/compaction/status.js.map +1 -0
  376. package/dist/hooks/compaction/types.js +6 -0
  377. package/dist/hooks/compaction/types.js.map +1 -0
  378. package/dist/hooks/cursorPreToolUse.js +1 -1
  379. package/dist/hooks/cursorPreToolUse.js.map +1 -1
  380. package/dist/hooks/cursorSessionStart.js +14 -21
  381. package/dist/hooks/cursorSessionStart.js.map +1 -1
  382. package/dist/hooks/projectHookInput.js +26 -0
  383. package/dist/hooks/projectHookInput.js.map +1 -0
  384. package/dist/hooks/sessionStart.js +55 -170
  385. package/dist/hooks/sessionStart.js.map +1 -1
  386. package/dist/hooks/sessionStop.js +12 -26
  387. package/dist/hooks/sessionStop.js.map +1 -1
  388. package/dist/hooks/validateArtifact/agentFacing.js +10 -0
  389. package/dist/hooks/validateArtifact/agentFacing.js.map +1 -0
  390. package/dist/hooks/validateArtifact/index.js +151 -0
  391. package/dist/hooks/validateArtifact/index.js.map +1 -0
  392. package/dist/hooks/validateArtifact/markdown.js +146 -0
  393. package/dist/hooks/validateArtifact/markdown.js.map +1 -0
  394. package/dist/hooks/validateArtifact/runtime.js +86 -0
  395. package/dist/hooks/validateArtifact/runtime.js.map +1 -0
  396. package/dist/hooks/validateArtifact/schema.js +541 -0
  397. package/dist/hooks/validateArtifact/schema.js.map +1 -0
  398. package/dist/hooks/validateArtifact/traversal.js +108 -0
  399. package/dist/hooks/validateArtifact/traversal.js.map +1 -0
  400. package/dist/hooks/validateArtifact/violations.js +108 -0
  401. package/dist/hooks/validateArtifact/violations.js.map +1 -0
  402. package/dist/migrate/v2HandoffManifest.js +455 -0
  403. package/dist/migrate/v2HandoffManifest.js.map +1 -0
  404. package/dist/registries/artifactProtocolIds.js +77 -0
  405. package/dist/registries/artifactProtocolIds.js.map +1 -0
  406. package/dist/registries/artifactRegistry.js +222 -62
  407. package/dist/registries/artifactRegistry.js.map +1 -1
  408. package/dist/registries/capabilityContract.js +141 -12
  409. package/dist/registries/capabilityContract.js.map +1 -1
  410. package/dist/registries/evaluatorHandoffContract.js +171 -0
  411. package/dist/registries/evaluatorHandoffContract.js.map +1 -0
  412. package/dist/registries/evidenceTierContract.js +362 -0
  413. package/dist/registries/evidenceTierContract.js.map +1 -0
  414. package/dist/registries/hybridRoute.js +203 -0
  415. package/dist/registries/hybridRoute.js.map +1 -0
  416. package/dist/registries/hybridRouteReceipt.js +221 -0
  417. package/dist/registries/hybridRouteReceipt.js.map +1 -0
  418. package/dist/registries/packageRegistry.js +90 -230
  419. package/dist/registries/packageRegistry.js.map +1 -1
  420. package/dist/registries/triggerLoader.js +175 -0
  421. package/dist/registries/triggerLoader.js.map +1 -0
  422. package/dist/registries/verbosityBudgetContract.js +206 -0
  423. package/dist/registries/verbosityBudgetContract.js.map +1 -0
  424. package/dist/release/releaseMetadata.js +319 -0
  425. package/dist/release/releaseMetadata.js.map +1 -0
  426. package/dist/runtime/lifecycleAdapterContract.js +458 -0
  427. package/dist/runtime/lifecycleAdapterContract.js.map +1 -0
  428. package/dist/runtime/lifecycleAdapters.js +778 -0
  429. package/dist/runtime/lifecycleAdapters.js.map +1 -0
  430. package/dist/runtime/lifecycleAuthority.js +454 -0
  431. package/dist/runtime/lifecycleAuthority.js.map +1 -0
  432. package/dist/runtime/lifecycleOperationContract.js +114 -0
  433. package/dist/runtime/lifecycleOperationContract.js.map +1 -0
  434. package/dist/runtime/lifecycleOperations.js +635 -0
  435. package/dist/runtime/lifecycleOperations.js.map +1 -0
  436. package/dist/runtime/lifecycleOwnershipJournal.js +623 -0
  437. package/dist/runtime/lifecycleOwnershipJournal.js.map +1 -0
  438. package/dist/runtime/lifecyclePublication.js +416 -0
  439. package/dist/runtime/lifecyclePublication.js.map +1 -0
  440. package/dist/runtime/lifecycleSnapshot.js +439 -0
  441. package/dist/runtime/lifecycleSnapshot.js.map +1 -0
  442. package/dist/runtime/nativeResourceCleanup.js +317 -0
  443. package/dist/runtime/nativeResourceCleanup.js.map +1 -0
  444. package/dist/setup/codex/cli.js +130 -0
  445. package/dist/setup/codex/cli.js.map +1 -0
  446. package/dist/setup/codex/configToml.js +558 -0
  447. package/dist/setup/codex/configToml.js.map +1 -0
  448. package/dist/setup/codex/constants.js +14 -0
  449. package/dist/setup/codex/constants.js.map +1 -0
  450. package/dist/setup/codex/installRoot.js +64 -0
  451. package/dist/setup/codex/installRoot.js.map +1 -0
  452. package/dist/setup/codex/state.js +252 -0
  453. package/dist/setup/codex/state.js.map +1 -0
  454. package/dist/setup/codex.js +9 -1055
  455. package/dist/setup/codex.js.map +1 -1
  456. package/dist/setup/opencode.js +21 -0
  457. package/dist/setup/opencode.js.map +1 -0
  458. package/dist/setup/opencodeConstants.js +2 -0
  459. package/dist/setup/opencodeConstants.js.map +1 -0
  460. package/dist/setup/sharedSkill.js +46 -0
  461. package/dist/setup/sharedSkill.js.map +1 -0
  462. package/dist/setup/smokeChecks.js +82 -0
  463. package/dist/setup/smokeChecks.js.map +1 -0
  464. package/dist/state/archiveDiscovery.js +578 -0
  465. package/dist/state/archiveDiscovery.js.map +1 -0
  466. package/dist/state/archivePublication.js +226 -0
  467. package/dist/state/archivePublication.js.map +1 -0
  468. package/dist/state/archiveRecovery.js +238 -0
  469. package/dist/state/archiveRecovery.js.map +1 -0
  470. package/dist/state/archiveReplay.js +54 -0
  471. package/dist/state/archiveReplay.js.map +1 -0
  472. package/dist/state/canonicalMigrationRecord.js +37 -0
  473. package/dist/state/canonicalMigrationRecord.js.map +1 -0
  474. package/dist/state/decisionEntities.js +322 -0
  475. package/dist/state/decisionEntities.js.map +1 -0
  476. package/dist/state/decisionLegacyValidation.js +216 -0
  477. package/dist/state/decisionLegacyValidation.js.map +1 -0
  478. package/dist/state/decisionMigrationProvenance.js +117 -0
  479. package/dist/state/decisionMigrationProvenance.js.map +1 -0
  480. package/dist/state/decisionOverlay.js +278 -0
  481. package/dist/state/decisionOverlay.js.map +1 -0
  482. package/dist/state/decisionRevision.js +632 -0
  483. package/dist/state/decisionRevision.js.map +1 -0
  484. package/dist/state/decisionRevisionPublication.js +532 -0
  485. package/dist/state/decisionRevisionPublication.js.map +1 -0
  486. package/dist/state/directRetrieval.js +373 -0
  487. package/dist/state/directRetrieval.js.map +1 -0
  488. package/dist/state/durability.js +325 -0
  489. package/dist/state/durability.js.map +1 -0
  490. package/dist/state/entityCutover.js +294 -0
  491. package/dist/state/entityCutover.js.map +1 -0
  492. package/dist/state/entityCutoverGit.js +128 -0
  493. package/dist/state/entityCutoverGit.js.map +1 -0
  494. package/dist/state/entityMigrationCausality.js +99 -0
  495. package/dist/state/entityMigrationCausality.js.map +1 -0
  496. package/dist/state/entityMigrationPreview.js +864 -0
  497. package/dist/state/entityMigrationPreview.js.map +1 -0
  498. package/dist/state/entityPublicationContext.js +662 -0
  499. package/dist/state/entityPublicationContext.js.map +1 -0
  500. package/dist/state/entityStorage.js +881 -0
  501. package/dist/state/entityStorage.js.map +1 -0
  502. package/dist/state/experimentArchive.js +64 -0
  503. package/dist/state/experimentArchive.js.map +1 -0
  504. package/dist/state/experimentIdentity.js +203 -0
  505. package/dist/state/experimentIdentity.js.map +1 -0
  506. package/dist/state/experimentRetrieval.js +447 -0
  507. package/dist/state/experimentRetrieval.js.map +1 -0
  508. package/dist/state/healthEntities.js +266 -0
  509. package/dist/state/healthEntities.js.map +1 -0
  510. package/dist/state/healthEntityValidation.js +19 -0
  511. package/dist/state/healthEntityValidation.js.map +1 -0
  512. package/dist/state/healthRepair.js +70 -0
  513. package/dist/state/healthRepair.js.map +1 -0
  514. package/dist/state/installRoot.js +64 -24
  515. package/dist/state/installRoot.js.map +1 -1
  516. package/dist/state/legacyEntityCutoverEvidence.js +66 -0
  517. package/dist/state/legacyEntityCutoverEvidence.js.map +1 -0
  518. package/dist/state/legacyIdentity.js +48 -0
  519. package/dist/state/legacyIdentity.js.map +1 -0
  520. package/dist/state/legacySummaryRecord.js +7 -0
  521. package/dist/state/legacySummaryRecord.js.map +1 -0
  522. package/dist/state/listAccounting.js +55 -0
  523. package/dist/state/listAccounting.js.map +1 -0
  524. package/dist/state/listClassification.js +18 -0
  525. package/dist/state/listClassification.js.map +1 -0
  526. package/dist/state/listCursor.js +43 -0
  527. package/dist/state/listCursor.js.map +1 -0
  528. package/dist/state/listRetrieval.js +813 -0
  529. package/dist/state/listRetrieval.js.map +1 -0
  530. package/dist/state/migrationSourceBinding.js +31 -0
  531. package/dist/state/migrationSourceBinding.js.map +1 -0
  532. package/dist/state/objectiveExperimentEntities.js +323 -0
  533. package/dist/state/objectiveExperimentEntities.js.map +1 -0
  534. package/dist/state/planEntities.js +444 -0
  535. package/dist/state/planEntities.js.map +1 -0
  536. package/dist/state/planIdentity.js +45 -0
  537. package/dist/state/planIdentity.js.map +1 -0
  538. package/dist/state/planRetrieval.js +314 -0
  539. package/dist/state/planRetrieval.js.map +1 -0
  540. package/dist/state/planTaskRetrieval.js +285 -0
  541. package/dist/state/planTaskRetrieval.js.map +1 -0
  542. package/dist/state/progressEntities.js +360 -0
  543. package/dist/state/progressEntities.js.map +1 -0
  544. package/dist/state/projectRoot.js +63 -0
  545. package/dist/state/projectRoot.js.map +1 -0
  546. package/dist/state/projectionPolicy.js +184 -0
  547. package/dist/state/projectionPolicy.js.map +1 -0
  548. package/dist/state/retrievalAuthority.js +343 -0
  549. package/dist/state/retrievalAuthority.js.map +1 -0
  550. package/dist/state/safeProjectFile.js +153 -0
  551. package/dist/state/safeProjectFile.js.map +1 -0
  552. package/dist/state/startupAnalysis/benchmark.js +433 -0
  553. package/dist/state/startupAnalysis/benchmark.js.map +1 -0
  554. package/dist/state/startupAnalysis/contract.js +126 -0
  555. package/dist/state/startupAnalysis/contract.js.map +1 -0
  556. package/dist/state/startupAnalysis/helpers.js +287 -0
  557. package/dist/state/startupAnalysis/helpers.js.map +1 -0
  558. package/dist/state/startupAnalysis/index.js +7 -0
  559. package/dist/state/startupAnalysis/index.js.map +1 -0
  560. package/dist/state/startupAnalysis/metrics.js +341 -0
  561. package/dist/state/startupAnalysis/metrics.js.map +1 -0
  562. package/dist/state/startupAnalysis/records.js +199 -0
  563. package/dist/state/startupAnalysis/records.js.map +1 -0
  564. package/dist/state/startupAnalysis/report.js +112 -0
  565. package/dist/state/startupAnalysis/report.js.map +1 -0
  566. package/dist/state/startupAnalysis/threshold.js +513 -0
  567. package/dist/state/startupAnalysis/threshold.js.map +1 -0
  568. package/dist/state/startupAnalysis.js +2 -1952
  569. package/dist/state/startupAnalysis.js.map +1 -1
  570. package/dist/state/startupProjection.js +567 -0
  571. package/dist/state/startupProjection.js.map +1 -0
  572. package/dist/state/stateMode.js +83 -0
  573. package/dist/state/stateMode.js.map +1 -0
  574. package/dist/state/summaryEntityRead.js +26 -0
  575. package/dist/state/summaryEntityRead.js.map +1 -0
  576. package/dist/state/summaryMigrationProvenance.js +67 -0
  577. package/dist/state/summaryMigrationProvenance.js.map +1 -0
  578. package/dist/state/summarySourceRowAuthority.js +37 -0
  579. package/dist/state/summarySourceRowAuthority.js.map +1 -0
  580. package/dist/state/todoDocsEntities.js +230 -0
  581. package/dist/state/todoDocsEntities.js.map +1 -0
  582. package/dist/state/todoDocsEntityValidation.js +26 -0
  583. package/dist/state/todoDocsEntityValidation.js.map +1 -0
  584. package/dist/state/write/assign.js +21 -0
  585. package/dist/state/write/assign.js.map +1 -0
  586. package/dist/state/write/candidateMutation.js +281 -0
  587. package/dist/state/write/candidateMutation.js.map +1 -0
  588. package/dist/state/write/errors.js +12 -0
  589. package/dist/state/write/errors.js.map +1 -0
  590. package/dist/state/write/experimentPublication.js +193 -0
  591. package/dist/state/write/experimentPublication.js.map +1 -0
  592. package/dist/state/write/explain.js +291 -0
  593. package/dist/state/write/explain.js.map +1 -0
  594. package/dist/state/write/fields.js +62 -0
  595. package/dist/state/write/fields.js.map +1 -0
  596. package/dist/state/write/helpers.js +30 -0
  597. package/dist/state/write/helpers.js.map +1 -0
  598. package/dist/state/write/index.js +12 -0
  599. package/dist/state/write/index.js.map +1 -0
  600. package/dist/state/write/input.js +22 -0
  601. package/dist/state/write/input.js.map +1 -0
  602. package/dist/state/write/lock.js +838 -0
  603. package/dist/state/write/lock.js.map +1 -0
  604. package/dist/state/write/mutation.js +235 -0
  605. package/dist/state/write/mutation.js.map +1 -0
  606. package/dist/state/write/operations.js +353 -0
  607. package/dist/state/write/operations.js.map +1 -0
  608. package/dist/state/write/planEvaluation.js +121 -0
  609. package/dist/state/write/planEvaluation.js.map +1 -0
  610. package/dist/state/write/planPublication.js +135 -0
  611. package/dist/state/write/planPublication.js.map +1 -0
  612. package/dist/state/write/serialize.js +2 -0
  613. package/dist/state/write/serialize.js.map +1 -0
  614. package/dist/state/write/transaction.js +44 -0
  615. package/dist/state/write/transaction.js.map +1 -0
  616. package/dist/state/write/validate.js +8 -0
  617. package/dist/state/write/validate.js.map +1 -0
  618. package/dist/upgrade/appContentRefresh.js +384 -0
  619. package/dist/upgrade/appContentRefresh.js.map +1 -0
  620. package/dist/upgrade/appModel.js +8 -6
  621. package/dist/upgrade/appModel.js.map +1 -1
  622. package/dist/upgrade/atomicWriter.js +2 -0
  623. package/dist/upgrade/atomicWriter.js.map +1 -0
  624. package/dist/upgrade/bundleEvidence.js +34 -0
  625. package/dist/upgrade/bundleEvidence.js.map +1 -0
  626. package/dist/upgrade/channels.js +21 -10
  627. package/dist/upgrade/channels.js.map +1 -1
  628. package/dist/upgrade/coexistenceProbe.js +105 -0
  629. package/dist/upgrade/coexistenceProbe.js.map +1 -0
  630. package/dist/upgrade/compatibility.js +56 -20
  631. package/dist/upgrade/compatibility.js.map +1 -1
  632. package/dist/upgrade/doctor.js +197 -191
  633. package/dist/upgrade/doctor.js.map +1 -1
  634. package/dist/upgrade/doctorClassifier.js +188 -0
  635. package/dist/upgrade/doctorClassifier.js.map +1 -0
  636. package/dist/upgrade/installedHooksRetirement.js +197 -0
  637. package/dist/upgrade/installedHooksRetirement.js.map +1 -0
  638. package/dist/upgrade/legacyAgentCleanup.js +283 -0
  639. package/dist/upgrade/legacyAgentCleanup.js.map +1 -0
  640. package/dist/upgrade/lifecycleUpgrade.js +114 -0
  641. package/dist/upgrade/lifecycleUpgrade.js.map +1 -0
  642. package/dist/upgrade/migrateArtifactsV2ToV3.js +363 -137
  643. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  644. package/dist/upgrade/migrationPublication.js +123 -0
  645. package/dist/upgrade/migrationPublication.js.map +1 -0
  646. package/dist/upgrade/nextMajorDoctor.js +156 -0
  647. package/dist/upgrade/nextMajorDoctor.js.map +1 -0
  648. package/dist/upgrade/npxPlatformStatus.js +23 -0
  649. package/dist/upgrade/npxPlatformStatus.js.map +1 -0
  650. package/dist/upgrade/projectIntegration.js +142 -171
  651. package/dist/upgrade/projectIntegration.js.map +1 -1
  652. package/dist/upgrade/projectIntegrationDecision.js +51 -0
  653. package/dist/upgrade/projectIntegrationDecision.js.map +1 -0
  654. package/dist/upgrade/runtimeMigration.js +336 -281
  655. package/dist/upgrade/runtimeMigration.js.map +1 -1
  656. package/dist/upgrade/upgradeCommands.js +9 -0
  657. package/dist/upgrade/upgradeCommands.js.map +1 -1
  658. package/dist/upgrade/upgradeLock.js +86 -0
  659. package/dist/upgrade/upgradeLock.js.map +1 -0
  660. package/dist/upgrade/upgradeOrchestrator.js +212 -56
  661. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  662. package/dist/upgrade/v3CapabilitySurface.js +15 -0
  663. package/dist/upgrade/v3CapabilitySurface.js.map +1 -0
  664. package/dist/upgrade/versionResolution.js +12 -4
  665. package/dist/upgrade/versionResolution.js.map +1 -1
  666. package/dist/validate/appHomeContract.js +5 -9
  667. package/dist/validate/appHomeContract.js.map +1 -1
  668. package/dist/validate/capability.js +144 -14
  669. package/dist/validate/capability.js.map +1 -1
  670. package/dist/validate/crossCapability.js +12 -9
  671. package/dist/validate/crossCapability.js.map +1 -1
  672. package/dist/validate/selfAudit.js +73 -36
  673. package/dist/validate/selfAudit.js.map +1 -1
  674. package/dist/validate/vocabularyAuthority.js +303 -0
  675. package/dist/validate/vocabularyAuthority.js.map +1 -0
  676. package/package.json +45 -27
  677. package/bundle/references/adapters/cursor.md +0 -213
  678. package/bundle/references/adapters/opencode.md +0 -530
  679. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  680. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  681. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -548
  682. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  683. package/bundle/references/v1-section-mapping.md +0 -47
  684. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  685. package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
  686. package/bundle/skills/agentera/agents/hej.toml +0 -6
  687. package/bundle/skills/agentera/agents/inspektera.toml +0 -6
  688. package/bundle/skills/agentera/agents/inspirera.toml +0 -6
  689. package/bundle/skills/agentera/agents/optimera.toml +0 -6
  690. package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
  691. package/bundle/skills/agentera/agents/planera.toml +0 -6
  692. package/bundle/skills/agentera/agents/profilera.toml +0 -6
  693. package/bundle/skills/agentera/agents/realisera.toml +0 -6
  694. package/bundle/skills/agentera/agents/resonera.toml +0 -6
  695. package/bundle/skills/agentera/agents/visionera.toml +0 -6
  696. package/bundle/skills/agentera/agents/visualisera.toml +0 -6
  697. package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +0 -428
  698. package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +0 -73
  699. package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +0 -35
  700. package/bundle/skills/agentera/capabilities/hej/instructions.md +0 -331
  701. package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +0 -69
  702. package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +0 -58
  703. package/bundle/skills/agentera/capabilities/inspektera/instructions.md +0 -514
  704. package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +0 -76
  705. package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +0 -38
  706. package/bundle/skills/agentera/capabilities/inspirera/instructions.md +0 -280
  707. package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +0 -24
  708. package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +0 -34
  709. package/bundle/skills/agentera/capabilities/optimera/instructions.md +0 -437
  710. package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +0 -39
  711. package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +0 -433
  712. package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +0 -64
  713. package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +0 -42
  714. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +0 -107
  715. package/bundle/skills/agentera/capabilities/planera/instructions.md +0 -368
  716. package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +0 -62
  717. package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +0 -34
  718. package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +0 -61
  719. package/bundle/skills/agentera/capabilities/profilera/instructions.md +0 -419
  720. package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +0 -45
  721. package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +0 -57
  722. package/bundle/skills/agentera/capabilities/realisera/instructions.md +0 -403
  723. package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +0 -80
  724. package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +0 -39
  725. package/bundle/skills/agentera/capabilities/resonera/instructions.md +0 -329
  726. package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +0 -47
  727. package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +0 -46
  728. package/bundle/skills/agentera/capabilities/visionera/instructions.md +0 -309
  729. package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +0 -41
  730. package/bundle/skills/agentera/capabilities/visualisera/instructions.md +0 -400
  731. package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +0 -33
  732. package/bundle/skills/hej/.claude-plugin/plugin.json +0 -6
  733. package/bundle/skills/hej/SKILL.md +0 -69
  734. package/bundle/skills/hej/agents/hej.toml +0 -11
  735. package/bundle/skills/hej/agents/openai.yaml +0 -8
  736. package/dist/cli/commands/backfill.js +0 -84
  737. package/dist/cli/commands/backfill.js.map +0 -1
  738. package/dist/cli/commands/state.js +0 -1012
  739. package/dist/cli/commands/state.js.map +0 -1
  740. package/dist/core/git.js +0 -43
  741. package/dist/core/git.js.map +0 -1
  742. package/dist/hooks/compaction.js +0 -935
  743. package/dist/hooks/compaction.js.map +0 -1
  744. package/dist/hooks/validateArtifact.js +0 -933
  745. package/dist/hooks/validateArtifact.js.map +0 -1
  746. package/dist/registries/runtimeAdapterRegistry.js +0 -315
  747. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  748. package/dist/setup/copilot.js +0 -227
  749. package/dist/setup/copilot.js.map +0 -1
  750. package/dist/setup/cursor.js +0 -127
  751. package/dist/setup/cursor.js.map +0 -1
  752. package/dist/setup/doctor.js +0 -1276
  753. package/dist/setup/doctor.js.map +0 -1
  754. package/dist/state/progressCommit.js +0 -289
  755. package/dist/state/progressCommit.js.map +0 -1
  756. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -571
  757. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  758. package/dist/validate/lifecycleAdapters.js +0 -772
  759. package/dist/validate/lifecycleAdapters.js.map +0 -1
  760. /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
  761. /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
  762. /package/bundle/skills/agentera/capabilities/{hej → status}/schemas/exit.yaml +0 -0
@@ -1,40 +1,38 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
- import { resolveArtifactPath, } from "../registries/artifactRegistry.js";
4
- import { activeObjectiveName, artifactPath, loadRegistryForSchemas, } from "./appContext.js";
3
+ import { loadArtifactRecord, resolveArtifactPath, } from "../registries/artifactRegistry.js";
4
+ import { activeObjectiveName, artifactPath, resolveRegistryModelPath, } from "./appContext.js";
5
5
  import { asList, extractEntries, firstPresent, loadArtifact, recentCycles, truncate, } from "./stateQuery.js";
6
- import { decisionContextEntry, latestHealthAudit, normalizeSeverity } from "./commands/state.js";
6
+ import { normalizeSeverity } from "./commands/state/index.js";
7
+ import { isResolvedTodoMarkdownStatus, parseTodoMarkdownListItem } from "./todoMarkdown.js";
8
+ import { truncateCodePoints } from "../core/text.js";
9
+ import { TODO_SEVERITY_ORDER, TODO_SEVERITY_ORDER_KEYS } from "./todoSeverity.js";
10
+ import { capabilityStartupComplete } from "./startupCompletenessContract.js";
11
+ import { discoverPlanArtifacts, planCatalogEntry, planDocumentParts } from "./planArtifacts.js";
12
+ import { planLifecycleState } from "./planLifecycleState.js";
13
+ import { dependencyReadyTasks } from "./capabilityContext/planState.js";
14
+ import { resolveSourceRoot } from "../core/sourceRoot.js";
15
+ import { scanYamlCollection } from "../state/startupProjection.js";
16
+ import { numberedArchiveContract } from "../state/archiveDiscovery.js";
17
+ /**
18
+ * Orientation summaries layer for prime/status. Faithful port of the
19
+ * scripts/agentera `_*_summary`, `_load_todo_items`, `_issue_counts`,
20
+ * `_decision_*`, `_select_status_next_action`, and staleness helpers.
21
+ */
7
22
  export const DONE_STATUSES = new Set(["complete", "completed", "closed", "done", "resolved", "retired"]);
8
23
  export const BLOCKED_STATUSES = new Set(["blocked", "stuck"]);
9
24
  export const DECISION_ATTENTION_MAX_ENTRIES = 3;
10
- export const STARTUP_COMPLETENESS_MISSING_STATE = [];
11
- const TODO_SEVERITY_ORDER = {
12
- critical: 0,
13
- degraded: 1,
14
- warning: 1,
15
- normal: 2,
16
- info: 3,
17
- annoying: 3,
18
- };
19
- const TODO_SECTION_SEVERITIES = {
20
- critical: "critical",
21
- degraded: "degraded",
22
- warning: "warning",
23
- normal: "normal",
24
- info: "info",
25
- annoying: "annoying",
26
- };
27
- const TODO_ITEM_RE = /^- \[([^\]]+)\]\s+(.*)/;
28
- const TODO_PLANERA_SIGNALS = new Set([
25
+ const TODO_SECTION_SEVERITIES = Object.fromEntries(TODO_SEVERITY_ORDER_KEYS.map((key) => [key, key]));
26
+ const TODO_PLAN_SIGNALS = new Set([
29
27
  "acceptance", "artifact", "capability", "capability-context", "compatibility", "contract",
30
28
  "cross-capability", "docs", "metadata", "migration", "schema", "startup", "surface", "test", "validation",
31
29
  ]);
32
- const PROFILERA_STALE_DAYS_ENV = "AGENTERA_PROFILERA_MAX_AGE_DAYS";
33
- const DEFAULT_PROFILERA_STALE_DAYS = 7;
34
- const INSPEKTERA_STALE_DAYS_ENV = "AGENTERA_INSPEKTERA_MAX_AGE_DAYS";
35
- const DEFAULT_INSPEKTERA_STALE_DAYS = 30;
36
- const INSPEKTERA_STALE_CYCLES_ENV = "AGENTERA_INSPEKTERA_MAX_CYCLES";
37
- const DEFAULT_INSPEKTERA_STALE_CYCLES = 10;
30
+ const PROFILE_STALE_DAYS_ENV = "AGENTERA_PROFILE_MAX_AGE_DAYS";
31
+ const DEFAULT_PROFILE_STALE_DAYS = 7;
32
+ const AUDIT_STALE_DAYS_ENV = "AGENTERA_AUDIT_MAX_AGE_DAYS";
33
+ const DEFAULT_AUDIT_STALE_DAYS = 30;
34
+ const AUDIT_STALE_CYCLES_ENV = "AGENTERA_AUDIT_MAX_CYCLES";
35
+ const DEFAULT_AUDIT_STALE_CYCLES = 10;
38
36
  function intEnv(env, key, def) {
39
37
  const raw = env[key] ?? String(def);
40
38
  const n = parseInt(raw, 10);
@@ -77,14 +75,47 @@ export function loadNamedArtifact(schemas, name) {
77
75
  return null;
78
76
  return loadArtifact(artifactPath(info, name));
79
77
  }
80
- export function registryArtifactPath(artifactId, schemasDir) {
81
- const record = loadRegistryForSchemas(schemasDir).get(artifactId);
78
+ export function registryArtifactPath(artifactId, schemasDir, env = process.env) {
79
+ // Targeted lookup: resolving a single identity (e.g. `profile` against a
80
+ // v2-shaped install) must not walk the full registry and warn about every
81
+ // required schema that happens to be absent from this install. Only the
82
+ // requested identity is inspected; model/schemas authority is shared with the
83
+ // full loader via `resolveRegistryModelPath`.
84
+ let record;
85
+ try {
86
+ record = loadArtifactRecord(artifactId, schemasDir, resolveRegistryModelPath(schemasDir));
87
+ }
88
+ catch (exc) {
89
+ process.stderr.write(`warning: failed to load artifact registry for schemas: ${exc.message}\n`);
90
+ record = undefined;
91
+ }
82
92
  if (record === undefined)
83
93
  throw new Error(`artifact registry does not define '${artifactId}'`);
84
- return resolveArtifactPath(record, process.cwd(), activeObjectiveName());
94
+ return resolveArtifactPath(record, process.cwd(), activeObjectiveName(), env);
85
95
  }
86
96
  // ── staleness ───────────────────────────────────────────────────────
87
- export function checkProfileraStaleness(profilePath, env = process.env) {
97
+ const PROFILE_GENERATED_RE = /<!-- Generated:\s*(\d{4}-\d{2}-\d{2})/;
98
+ const PROFILE_VALIDATED_RE = /Validated:\s*(\d{4}-\d{2}-\d{2})/;
99
+ export function parseProfileHeaderDates(text) {
100
+ const genMatch = PROFILE_GENERATED_RE.exec(text);
101
+ const generatedDate = genMatch ? genMatch[1] : null;
102
+ const generatedUtc = generatedDate ? dateFromIso(generatedDate) : null;
103
+ const valMatch = PROFILE_VALIDATED_RE.exec(text);
104
+ const validatedDate = valMatch ? valMatch[1] : null;
105
+ const validatedUtc = validatedDate ? dateFromIso(validatedDate) : null;
106
+ return { generatedDate, validatedDate, generatedUtc, validatedUtc };
107
+ }
108
+ function profileRefreshAnchorUtc(text) {
109
+ const { generatedUtc, validatedUtc } = parseProfileHeaderDates(text);
110
+ if (generatedUtc === null && validatedUtc === null)
111
+ return null;
112
+ if (generatedUtc === null)
113
+ return validatedUtc;
114
+ if (validatedUtc === null)
115
+ return generatedUtc;
116
+ return Math.max(generatedUtc, validatedUtc);
117
+ }
118
+ export function checkProfileStaleness(profilePath, env = process.env) {
88
119
  if (!fs.existsSync(profilePath))
89
120
  return null;
90
121
  let text;
@@ -95,14 +126,11 @@ export function checkProfileraStaleness(profilePath, env = process.env) {
95
126
  process.stderr.write(`warning: failed to read profile path ${profilePath}: ${exc.message}\n`);
96
127
  return null;
97
128
  }
98
- const m = /<!-- Generated:\s*(\d{4}-\d{2}-\d{2})/.exec(text);
99
- if (!m)
129
+ const anchor = profileRefreshAnchorUtc(text);
130
+ if (anchor === null)
100
131
  return null;
101
- const gen = dateFromIso(m[1]);
102
- if (gen === null)
103
- return null;
104
- const staleDays = intEnv(env, PROFILERA_STALE_DAYS_ENV, DEFAULT_PROFILERA_STALE_DAYS);
105
- const since = daysSince(gen);
132
+ const staleDays = intEnv(env, PROFILE_STALE_DAYS_ENV, DEFAULT_PROFILE_STALE_DAYS);
133
+ const since = daysSince(anchor);
106
134
  return [since >= staleDays, since, staleDays];
107
135
  }
108
136
  export function healthAuditDate(entry) {
@@ -127,8 +155,25 @@ function progressEntryDate(entry) {
127
155
  }
128
156
  return null;
129
157
  }
158
+ function scanSchemaArtifact(schemas, artifactId) {
159
+ const info = schemas[artifactId];
160
+ const contract = numberedArchiveContract(artifactId, resolveSourceRoot());
161
+ const currentPath = info ? artifactPath(info, artifactId) : path.join(process.cwd(), ".agentera", `${artifactId}.yaml`);
162
+ const primary = scanYamlCollection(currentPath, contract.entryCollection, artifactId, contract.entryNumberField);
163
+ const active = artifactId === "progress" && !primary.collection_found
164
+ ? scanYamlCollection(currentPath, "progress", artifactId, contract.entryNumberField)
165
+ : primary;
166
+ return {
167
+ active,
168
+ archive: scanYamlCollection(currentPath, "archive", artifactId, contract.entryNumberField),
169
+ };
170
+ }
130
171
  function cyclesSinceHealthAudit(schemas, auditDate) {
131
- const entries = extractEntries(loadNamedArtifact(schemas, "progress"));
172
+ const info = schemas.progress;
173
+ if (!info)
174
+ return null;
175
+ const scan = scanSchemaArtifact(schemas, "progress").active;
176
+ const entries = scan.entries.map((entry) => entry.fields);
132
177
  if (entries.length === 0)
133
178
  return null;
134
179
  let count = 0;
@@ -139,11 +184,11 @@ function cyclesSinceHealthAudit(schemas, auditDate) {
139
184
  }
140
185
  return count;
141
186
  }
142
- function checkInspekteraAuditStaleness(schemas, latest, auditDate, env = process.env) {
187
+ function checkAuditStaleness(schemas, latest, auditDate, env = process.env) {
143
188
  if (latest === null || auditDate === null)
144
189
  return null;
145
- const staleDaysThreshold = intEnv(env, INSPEKTERA_STALE_DAYS_ENV, DEFAULT_INSPEKTERA_STALE_DAYS);
146
- const staleCyclesThreshold = intEnv(env, INSPEKTERA_STALE_CYCLES_ENV, DEFAULT_INSPEKTERA_STALE_CYCLES);
190
+ const staleDaysThreshold = intEnv(env, AUDIT_STALE_DAYS_ENV, DEFAULT_AUDIT_STALE_DAYS);
191
+ const staleCyclesThreshold = intEnv(env, AUDIT_STALE_CYCLES_ENV, DEFAULT_AUDIT_STALE_CYCLES);
147
192
  const since = daysSince(auditDate);
148
193
  const cyclesSince = cyclesSinceHealthAudit(schemas, auditDate);
149
194
  const timeStale = since >= staleDaysThreshold;
@@ -168,7 +213,7 @@ function checkInspekteraAuditStaleness(schemas, latest, auditDate, env = process
168
213
  if (cyclesSince !== null)
169
214
  result.cycles_since_audit = cyclesSince;
170
215
  if (isStale)
171
- result.suggested_action = "Run inspektera to refresh health audit";
216
+ result.suggested_action = "Run audit to refresh health audit";
172
217
  return result;
173
218
  }
174
219
  // ── todo items + issue counts ───────────────────────────────────────
@@ -217,9 +262,12 @@ export function loadTodoItems(schemas) {
217
262
  continue;
218
263
  }
219
264
  if (currentSeverity) {
220
- const m = TODO_ITEM_RE.exec(stripped);
221
- if (m)
222
- items.push({ severity: currentSeverity, status: "open", text: m[2].trim() });
265
+ const parsed = parseTodoMarkdownListItem(stripped);
266
+ if (!parsed || isResolvedTodoMarkdownStatus(parsed.status))
267
+ continue;
268
+ if (!parsed.description)
269
+ continue;
270
+ items.push({ severity: currentSeverity, status: parsed.status, text: parsed.description });
223
271
  }
224
272
  }
225
273
  return items;
@@ -239,123 +287,236 @@ export function issueCounts(todoItems) {
239
287
  }
240
288
  return counts;
241
289
  }
242
- function todoNeedsPlanera(item) {
290
+ function todoNeedsPlan(item) {
243
291
  const text = item.text.toLowerCase();
244
292
  let signalCount = 0;
245
- for (const signal of TODO_PLANERA_SIGNALS)
293
+ for (const signal of TODO_PLAN_SIGNALS)
246
294
  if (text.includes(signal))
247
295
  signalCount += 1;
248
296
  return signalCount >= 2 || (signalCount >= 1 && text.length > 180);
249
297
  }
250
298
  // ── per-artifact summaries ──────────────────────────────────────────
251
299
  export function planSummary(schemas) {
252
- const data = loadNamedArtifact(schemas, "plan");
253
- if (!data || typeof data !== "object" || Array.isArray(data)) {
254
- return {
300
+ const info = schemas.plan;
301
+ if (!info) {
302
+ const summary = {
255
303
  exists: false,
256
304
  active: false,
257
305
  tasks: [],
258
306
  status: "absent",
259
307
  title: "",
260
- absence_reason: "No active plan artifact is available from agentera plan.",
308
+ active_path: "",
309
+ absence_reason: "No active plan artifact is available from agentera state plan.",
261
310
  };
311
+ summary.lifecycle_state = planLifecycleState(summary);
312
+ return summary;
262
313
  }
263
- const d = data;
264
- const legacyEntries = asList(d.entries);
265
- let tasks;
266
- let status;
267
- let title;
268
- if (legacyEntries.length > 0) {
269
- tasks = legacyEntries;
270
- status = entryStatusPy(tasks[0], "");
271
- title = String(firstPresent(tasks[0], ["title", "name"], ""));
272
- }
273
- else {
274
- const header = d.header && typeof d.header === "object" && !Array.isArray(d.header) ? d.header : {};
275
- tasks = asList(d.tasks);
276
- status = String(firstPresent(header, ["status"], d.status ?? "") || "");
277
- title = String(firstPresent(header, ["title"], d.title ?? "") || "");
314
+ const discovery = discoverPlanArtifacts(artifactPath(info, "plan"));
315
+ const activeDiagnostics = discovery.diagnostics.filter((diagnostic) => diagnostic.path === discovery.activePath && diagnostic.category !== "legacy");
316
+ const archivedPlans = discovery.archived.map((artifact) => planCatalogEntry(artifact, discovery.activePath));
317
+ if (!discovery.active) {
318
+ const summary = {
319
+ exists: activeDiagnostics.length === 0 && archivedPlans.length > 0,
320
+ active: false,
321
+ tasks: [],
322
+ status: activeDiagnostics.length > 0 ? "invalid" : archivedPlans.length > 0 ? "archived" : "absent",
323
+ title: "",
324
+ active_path: discovery.activePath,
325
+ absence_reason: activeDiagnostics.length > 0
326
+ ? "Current plan artifact is invalid; see diagnostics."
327
+ : archivedPlans.length > 0
328
+ ? "No active plan artifact is available; archived plan state is history only."
329
+ : "No active plan artifact is available from agentera state plan.",
330
+ complete: 0,
331
+ total: 0,
332
+ complete_plan: false,
333
+ first_pending: null,
334
+ archived_plans: archivedPlans,
335
+ archive_count: archivedPlans.length,
336
+ invalid_archive_paths: discovery.invalidArchivePaths,
337
+ ...(activeDiagnostics.length > 0 ? { invalid_path: discovery.activePath } : {}),
338
+ diagnostics: discovery.diagnostics,
339
+ };
340
+ summary.lifecycle_state = planLifecycleState(summary);
341
+ return summary;
278
342
  }
343
+ const d = discovery.active.data;
344
+ const parts = planDocumentParts(d);
345
+ const tasks = parts.tasks;
346
+ const status = parts.legacyEntries ? entryStatusPy(tasks[0], "") : parts.status;
347
+ const title = parts.legacyEntries
348
+ ? String(firstPresent(tasks[0] ?? {}, ["title", "name"], ""))
349
+ : parts.title;
279
350
  const complete = tasks.filter((task) => DONE_STATUSES.has(entryStatusPy(task, ""))).length;
280
351
  const total = tasks.length;
281
352
  const completePlan = DONE_STATUSES.has(status.toLowerCase()) && complete === total;
282
- let firstPending = null;
283
- if (!completePlan) {
284
- for (const task of tasks) {
285
- const ts = entryStatusPy(task, "pending");
286
- if (DONE_STATUSES.has(ts) || BLOCKED_STATUSES.has(ts))
287
- continue;
288
- firstPending = task;
289
- break;
290
- }
291
- }
292
- return {
353
+ const firstPending = completePlan
354
+ ? null
355
+ : dependencyReadyTasks(tasks).find((task) => entryStatusPy(task, "pending") === "pending") ?? null;
356
+ const summary = {
293
357
  exists: true,
294
358
  status,
295
359
  title,
360
+ active_path: discovery.activePath,
296
361
  constraints: d.constraints ?? null,
297
362
  scope: d.scope ?? null,
298
363
  design: d.design ?? null,
299
364
  tasks,
300
365
  complete,
301
366
  total,
302
- active: !completePlan,
367
+ active: true,
303
368
  complete_plan: completePlan,
304
369
  first_pending: firstPending,
370
+ archived_plans: archivedPlans,
371
+ archive_count: archivedPlans.length,
372
+ invalid_archive_paths: discovery.invalidArchivePaths,
373
+ diagnostics: discovery.diagnostics,
374
+ };
375
+ summary.lifecycle_state = planLifecycleState(summary);
376
+ return summary;
377
+ }
378
+ /** Startup keeps plan routing metadata, not the full active plan body. */
379
+ export function startupPlanSummary(plan) {
380
+ const tasks = asList(plan.tasks).filter((task) => task && typeof task === "object" && !Array.isArray(task));
381
+ const boundedTasks = tasks.slice(0, 10).map((task) => {
382
+ const item = {};
383
+ for (const key of ["id", "artifact", "name", "title", "status", "depends_on", "acceptance_summary", "evidence_summary", "blocked_reasons", "evaluation_state"]) {
384
+ if (!(key in task))
385
+ continue;
386
+ if (key === "acceptance_summary" || key === "evidence_summary") {
387
+ const summary = task[key];
388
+ item[key] = summary && typeof summary === "object" && !Array.isArray(summary)
389
+ ? { count: summary.count ?? asList(summary.items).length }
390
+ : null;
391
+ }
392
+ else if (key === "evaluation_state") {
393
+ const evaluation = task[key];
394
+ item[key] = evaluation && typeof evaluation === "object" && !Array.isArray(evaluation)
395
+ ? Object.fromEntries(Object.entries(evaluation).filter(([name]) => ["attempt_count", "failure_count", "last_verdict"].includes(name)))
396
+ : null;
397
+ }
398
+ else if (key === "depends_on") {
399
+ item[key] = asList(task[key]).slice(0, 20);
400
+ }
401
+ else if (key === "blocked_reasons") {
402
+ item[key] = asList(task[key]).slice(0, 3).map((reason) => truncateCodePoints(String(reason), 160));
403
+ }
404
+ else {
405
+ item[key] = typeof task[key] === "string" ? truncateCodePoints(task[key], 256) : task[key];
406
+ }
407
+ }
408
+ return item;
409
+ });
410
+ const archived = asList(plan.archived_plans).slice(0, 10);
411
+ const diagnostics = asList(plan.diagnostics).slice(0, 10);
412
+ const totalTasks = Number(plan.total ?? tasks.length);
413
+ const taskOmission = plan.task_omission && typeof plan.task_omission === "object" && !Array.isArray(plan.task_omission) ? plan.task_omission : {};
414
+ const finalTaskOmission = {
415
+ ...taskOmission,
416
+ omitted: totalTasks > boundedTasks.length,
417
+ total: totalTasks,
418
+ returned_count: boundedTasks.length,
419
+ omitted_count: Math.max(0, totalTasks - boundedTasks.length),
420
+ omission_reason: totalTasks > boundedTasks.length ? taskOmission.omission_reason ?? "startup_detail_capacity" : "none",
421
+ retrieval: taskOmission.retrieval ?? { list: plan.id ? `agentera state plan tasks list ${String(plan.id)} --limit 100 --format json` : "agentera state plan tasks list --limit 100 --format json", restart: plan.id ? `agentera state plan tasks list ${String(plan.id)} --limit 100 --format json` : "agentera state plan tasks list --limit 100 --format json", get: "agentera state plan tasks get --id ID --format json" },
422
+ };
423
+ return {
424
+ id: plan.id ?? null,
425
+ artifact: plan.artifact ?? "plan",
426
+ exists: Boolean(plan.exists),
427
+ active: Boolean(plan.active),
428
+ status: plan.status,
429
+ title: plan.title ?? "",
430
+ complete: plan.complete ?? 0,
431
+ superseded: plan.superseded ?? 0,
432
+ total: totalTasks,
433
+ task_status_counts: plan.task_status_counts ?? {},
434
+ task_omission: finalTaskOmission,
435
+ complete_plan: Boolean(plan.complete_plan),
436
+ first_pending: plan.first_pending && typeof plan.first_pending === "object" && !Array.isArray(plan.first_pending)
437
+ ? { id: plan.first_pending.id ?? null, artifact: plan.first_pending.artifact ?? "plan", name: plan.first_pending.name ?? plan.first_pending.title ?? "", status: plan.first_pending.status ?? "pending" }
438
+ : null,
439
+ tasks: boundedTasks,
440
+ task_count: totalTasks,
441
+ omitted_task_count: Math.max(0, totalTasks - boundedTasks.length),
442
+ archived_plans: archived,
443
+ archive_count: plan.archive_count ?? archived.length,
444
+ omitted_archive_count: Math.max(0, Number(plan.archive_count ?? archived.length) - archived.length),
445
+ invalid_archive_paths: (plan.invalid_archive_paths ?? []).slice(0, 10),
446
+ diagnostics,
447
+ omitted_diagnostic_count: Math.max(0, (plan.diagnostics ?? []).length - diagnostics.length),
448
+ source_contract: {
449
+ detail_availability: totalTasks > boundedTasks.length ? "summary" : "full",
450
+ retrieval: "agentera state plan --format json",
451
+ raw_archive_records: false,
452
+ },
453
+ lifecycle_state: plan.lifecycle_state ?? null,
305
454
  };
306
455
  }
307
- export function docsSummary(schemas) {
308
- const data = loadNamedArtifact(schemas, "docs");
309
- if (!data || typeof data !== "object" || Array.isArray(data)) {
310
- return { exists: false, status: "absent", absence_reason: "No docs mapping artifact is available from agentera docs." };
456
+ export function docsSummary(schemas, startupInput = {}) {
457
+ const info = schemas.docs;
458
+ if (!info) {
459
+ return { exists: false, status: "absent", absence_reason: "No docs mapping artifact is available from agentera state docs." };
311
460
  }
312
- const d = data;
313
- const mapping = asList(d.mapping);
314
- const index = asList(d.index);
315
- const coverage = d.coverage && typeof d.coverage === "object" && !Array.isArray(d.coverage) ? d.coverage : {};
316
- const conventions = d.conventions && typeof d.conventions === "object" && !Array.isArray(d.conventions) ? d.conventions : {};
461
+ const docsPath = artifactPath(info, "docs");
462
+ const mapping = scanYamlCollection(docsPath, "mapping", "docs", "artifact");
463
+ const index = scanYamlCollection(docsPath, "index", "docs", "artifact");
464
+ const exists = fs.existsSync(docsPath);
465
+ const header = exists ? truncateCodePoints(fs.readFileSync(docsPath, "utf8"), 4096) : "";
466
+ const lastAudit = /^last_audit:\s*(.+)$/m.exec(header)?.[1]?.trim().replace(/^['"]|['"]$/g, "") ?? null;
317
467
  return {
318
- exists: true,
468
+ exists,
319
469
  status: "available",
320
- last_audit: d.last_audit ?? null,
321
- conventions,
322
- mapping,
323
- mapping_entries: mapping.length,
324
- coverage,
470
+ last_audit: lastAudit,
471
+ conventions: {},
472
+ mapping: mapping.entries.slice(0, 10).map((entry) => entry.fields),
473
+ mapping_entries: mapping.entries.length,
474
+ coverage: {},
325
475
  source_contract: {
326
- capability_startup_complete: STARTUP_COMPLETENESS_MISSING_STATE.length === 0,
476
+ capability_startup_complete: capabilityStartupComplete(startupInput),
327
477
  raw_artifact_reads_required: false,
328
478
  state_families: [
329
479
  "plan task details, dependencies, acceptance criteria, and evidence summaries",
330
480
  "docs artifact mapping and source-contract completeness metadata",
331
- "latest progress verification metadata needed for Orkestrera evaluation",
332
- "Dokumentera closeout context metadata for docs/TODO/changelog/progress synchronization",
481
+ "latest progress verification metadata needed for Orchestrate evaluation",
482
+ "Document closeout context metadata for docs/TODO/changelog/progress synchronization",
333
483
  ],
334
484
  },
335
- indexed_documents: index.length,
485
+ indexed_documents: index.entries.length,
336
486
  };
337
487
  }
338
488
  export function progressSummary(schemas) {
339
- const data = loadNamedArtifact(schemas, "progress");
340
- const entries = extractEntries(data);
489
+ const info = schemas.progress;
490
+ if (!info)
491
+ return { exists: false, status: "absent", absence_reason: "No progress cycles are available from agentera progress." };
492
+ const scan = scanSchemaArtifact(schemas, "progress").active;
493
+ const entries = scan.entries.map((entry) => entry.fields);
341
494
  if (entries.length === 0) {
342
495
  return { exists: false, status: "absent", absence_reason: "No progress cycles are available from agentera progress." };
343
496
  }
344
- const latest = recentCycles(entries, 1)[0];
497
+ const latest = recentCycles(entries, 1)[0] ?? {};
498
+ const latestCycle = {};
499
+ for (const key of ["number", "timestamp", "type", "phase", "what", "status"]) {
500
+ if (key in latest)
501
+ latestCycle[key] = latest[key];
502
+ }
345
503
  return {
346
504
  exists: true,
347
505
  status: "available",
348
- latest,
349
- latest_verification: latest.verified ?? null,
506
+ latest: latestCycle,
507
+ latest_verification: latest.verified_present ? { present: true } : null,
350
508
  cycle_count: entries.length,
351
509
  };
352
510
  }
353
511
  export function healthSummary(schemas, env = process.env) {
354
- const data = loadNamedArtifact(schemas, "health");
355
- const entries = extractEntries(data);
512
+ const info = schemas.health;
513
+ if (!info)
514
+ return { exists: false };
515
+ const scan = scanSchemaArtifact(schemas, "health").active;
516
+ const entries = scan.entries.map((entry) => entry.fields);
356
517
  if (entries.length === 0)
357
518
  return { exists: false };
358
- const latest = latestHealthAudit(entries);
519
+ const latest = [...entries].sort((left, right) => Number(right.number ?? 0) - Number(left.number ?? 0))[0] ?? null;
359
520
  if (!latest)
360
521
  return { exists: false };
361
522
  const grades = latest.grades && typeof latest.grades === "object" && !Array.isArray(latest.grades) ? latest.grades : {};
@@ -370,18 +531,20 @@ export function healthSummary(schemas, env = process.env) {
370
531
  const trajectory = String(latest.trajectory ?? "");
371
532
  const auditDate = healthAuditDate(latest);
372
533
  const dateStr = auditDate !== null ? isoFromUtc(auditDate) : null;
534
+ const latestTimestamp = typeof latest.timestamp === "string" ? latest.timestamp : null;
373
535
  const summary = {
374
536
  exists: true,
375
- number: latest.number ?? "?",
537
+ id: latest.id ?? null,
538
+ artifact: "health",
376
539
  date: dateStr,
377
- timestamp: dateStr ?? latest.timestamp ?? null,
540
+ timestamp: dateStr ?? latestTimestamp,
378
541
  trajectory,
379
542
  grade: worst ? worst[1] : "",
380
543
  worst,
381
544
  degrading: ["degrading", "declining", "worse"].includes(trajectory.toLowerCase()) ||
382
545
  (worst !== null && worst[2] >= gradeRank.D),
383
546
  };
384
- const staleness = checkInspekteraAuditStaleness(schemas, latest, auditDate, env);
547
+ const staleness = checkAuditStaleness(schemas, latest, auditDate, env);
385
548
  if (staleness !== null)
386
549
  Object.assign(summary, staleness);
387
550
  return summary;
@@ -399,7 +562,7 @@ function objectiveStatus(data) {
399
562
  return String(firstPresent(header, ["status"], data.status ?? objective.status ?? "") || "").toLowerCase();
400
563
  }
401
564
  export function activeObjectiveSummary() {
402
- const root = path.join(process.cwd(), ".agentera", "optimera");
565
+ const root = path.join(process.cwd(), ".agentera", "optimize");
403
566
  let isDir = false;
404
567
  try {
405
568
  isDir = fs.statSync(root).isDirectory();
@@ -462,7 +625,11 @@ export function statePresence(plan, docs, progress, health, objective) {
462
625
  objective: Boolean(objective.exists),
463
626
  };
464
627
  const absence = {};
465
- for (const [name, summary] of [["plan", plan], ["docs", docs], ["progress", progress]]) {
628
+ for (const [name, summary] of [
629
+ ["plan", plan],
630
+ ["docs", docs],
631
+ ["progress", progress],
632
+ ]) {
466
633
  if (!summary.exists && summary.absence_reason)
467
634
  absence[name] = summary.absence_reason;
468
635
  }
@@ -477,43 +644,49 @@ export function statePresence(plan, docs, progress, health, objective) {
477
644
  }
478
645
  // ── decisions follow-up + attention ─────────────────────────────────
479
646
  export function decisionFollowUp(schemas) {
480
- const data = loadNamedArtifact(schemas, "decisions");
481
- for (const rawEntry of extractEntries(data)) {
482
- const entry = decisionContextEntry(rawEntry);
647
+ for (const entry of startupDecisionEntries(schemas)) {
483
648
  const satisfaction = entry.satisfaction;
484
- if (!satisfaction || typeof satisfaction !== "object" || !satisfaction.review_needed)
649
+ if (!satisfaction || typeof satisfaction !== "object" || Array.isArray(satisfaction) || !satisfaction.review_needed)
485
650
  continue;
486
- const number = entry.number ?? "?";
651
+ const number = typeof entry.number === "string" || typeof entry.number === "number" ? entry.number : "?";
487
652
  const title = firstPresent(entry, ["question", "choice"], "decision follow-up");
488
- return { object: `DECISION ${number} follow-up`, title };
653
+ return { object: `DECISION ${number} follow-up`, title: String(title) };
489
654
  }
490
655
  return null;
491
656
  }
657
+ export function startupDecisionEntries(schemas) {
658
+ if (!schemas.decisions)
659
+ return [];
660
+ const scans = scanSchemaArtifact(schemas, "decisions");
661
+ return [...scans.active.entries, ...scans.archive.entries].map((candidate) => ({
662
+ ...candidate.fields,
663
+ ...(candidate.identity.number !== null && candidate.fields.number === undefined ? { number: candidate.identity.number } : {}),
664
+ }));
665
+ }
492
666
  function decisionAttentionState(satisfaction) {
493
667
  const state = satisfaction.state;
494
668
  if (state === null || state === undefined || state === "")
495
669
  return "missing";
496
670
  if (state === "user_confirmed_satisfied" && satisfaction.review_needed)
497
671
  return "unconfirmed_user_confirmed_satisfied";
498
- if (["open", "provisionally_satisfied", "review_needed"].includes(state))
672
+ if (["open", "provisionally_satisfied", "review_needed"].includes(String(state)))
499
673
  return String(state);
500
674
  if (state === "user_confirmed_satisfied")
501
675
  return "user_confirmed_satisfied";
502
676
  return "unrecognized";
503
677
  }
504
678
  export function decisionReviewAttention(schemas) {
505
- const data = loadNamedArtifact(schemas, "decisions");
506
679
  const reviewEntries = [];
507
680
  const stateCounts = {};
508
- for (const rawEntry of extractEntries(data)) {
509
- const entry = decisionContextEntry(rawEntry);
681
+ for (const entry of startupDecisionEntries(schemas)) {
510
682
  const satisfaction = entry.satisfaction;
511
- if (!satisfaction || typeof satisfaction !== "object" || !satisfaction.review_needed)
683
+ if (!satisfaction || typeof satisfaction !== "object" || Array.isArray(satisfaction) || !satisfaction.review_needed)
512
684
  continue;
513
685
  const state = decisionAttentionState(satisfaction);
514
686
  stateCounts[state] = (stateCounts[state] ?? 0) + 1;
515
687
  reviewEntries.push({
516
- number: entry.number ?? "?",
688
+ id: String(entry.stable_id ?? entry.number ?? "legacy-unaddressable"),
689
+ artifact: "decisions",
517
690
  title: truncate(firstPresent(entry, ["question", "choice", "summary"], "decision review"), 80),
518
691
  state,
519
692
  source: satisfaction.source ?? null,
@@ -526,7 +699,7 @@ export function decisionReviewAttention(schemas) {
526
699
  .sort()
527
700
  .map((name) => `${name}=${stateCounts[name]}`)
528
701
  .join(", ");
529
- const refs = boundedEntries.map((entry) => `Decision ${entry.number}: ${entry.title}`).join("; ");
702
+ const refs = boundedEntries.map((entry) => `Decision ${entry.id}: ${entry.title}`).join("; ");
530
703
  const more = reviewEntries.length - boundedEntries.length;
531
704
  const suffix = more > 0 ? `; +${more} more` : "";
532
705
  return {
@@ -541,55 +714,91 @@ export function decisionReviewAttention(schemas) {
541
714
  }
542
715
  export function formatNextAction(action) {
543
716
  if (!action)
544
- return "object=VISION refresh | capability=visionera | reason=no executable follow-up";
545
- return `object=${truncate(action.object)} | capability=${action.capability} | reason=${action.reason}`;
717
+ return "object=VISION refresh | capability=vision | reason=no executable follow-up | phase=envision";
718
+ const phase = "phase" in action && action.phase ? ` | phase=${action.phase}` : "";
719
+ return `object=${truncate(action.object)} | capability=${action.capability} | reason=${action.reason}${phase}`;
546
720
  }
547
- export function selectHejNextAction(plan, health, objective, todoItems, decision, savedContext) {
721
+ /**
722
+ * Evolved state-readiness hint (Decision 76). Evaluates every cascade branch
723
+ * (no early-return); each candidate carries a protocol.yaml phase tag (PH1
724
+ * envision → PH5 audit). Position 1 (`recommended`) is the branch that would
725
+ * have won under the legacy early-return cascade.
726
+ */
727
+ export function selectStatusReadiness(plan, health, objective, todoItems, decision, savedContext) {
728
+ const candidates = [];
548
729
  const pending = plan.first_pending;
549
730
  if (pending && typeof pending === "object" && !Array.isArray(pending)) {
550
731
  const number = pending.number ?? "?";
551
732
  const title = firstPresent(pending, ["name", "title"], "pending task");
552
- return { object: `PLAN Task ${number}: ${title}`, capability: "orkestrera", reason: "first pending plan task" };
733
+ candidates.push({
734
+ object: `PLAN Task ${number}: ${title}`,
735
+ capability: "orchestrate",
736
+ reason: "first pending plan task",
737
+ phase: "build",
738
+ });
553
739
  }
554
740
  if (health.degrading) {
555
741
  const worst = health.worst;
556
742
  const target = worst ? `${worst[0]}:${worst[1]}` : "degrading health";
557
- return { object: `HEALTH: ${target}`, capability: "inspektera", reason: "critical or degrading health" };
743
+ candidates.push({
744
+ object: `HEALTH: ${target}`,
745
+ capability: "audit",
746
+ reason: "critical or degrading health",
747
+ phase: "audit",
748
+ });
558
749
  }
559
750
  if (objective.active) {
560
- return {
751
+ candidates.push({
561
752
  object: `OBJECTIVE: ${objective.metric || objective.title}`,
562
- capability: "optimera",
753
+ capability: "optimize",
563
754
  reason: "active non-closed objective",
564
- };
755
+ phase: "build",
756
+ });
565
757
  }
566
758
  if (todoItems.length > 0) {
567
759
  const item = [...todoItems].sort((a, b) => (TODO_SEVERITY_ORDER[a.severity] ?? 2) - (TODO_SEVERITY_ORDER[b.severity] ?? 2))[0];
568
- if (todoNeedsPlanera(item)) {
569
- return { object: `TODO: ${item.text}`, capability: "planera", reason: "complex TODO needs planning" };
760
+ if (todoNeedsPlan(item)) {
761
+ candidates.push({ object: `TODO: ${item.text}`, capability: "plan", reason: "complex TODO needs planning", phase: "plan" });
762
+ }
763
+ else {
764
+ candidates.push({ object: `TODO: ${item.text}`, capability: "build", reason: "highest-priority open TODO", phase: "build" });
570
765
  }
571
- return { object: `TODO: ${item.text}`, capability: "realisera", reason: "highest-priority open TODO" };
572
766
  }
573
767
  if (health.stale && !health.degrading) {
574
- return {
575
- object: `HEALTH: Audit ${health.number ?? "?"} stale`,
576
- capability: "inspektera",
768
+ candidates.push({
769
+ object: `HEALTH: audit ${String(health.id ?? "unknown")} stale`,
770
+ capability: "audit",
577
771
  reason: "stale health audit",
578
- };
772
+ phase: "audit",
773
+ });
579
774
  }
580
775
  if (decision) {
581
- return { object: String(decision.object), capability: "resonera", reason: "unresolved decision follow-up" };
776
+ candidates.push({
777
+ object: String(decision.object),
778
+ capability: "discuss",
779
+ reason: "unresolved decision follow-up",
780
+ phase: "deliberate",
781
+ });
582
782
  }
583
783
  const visionExists = fs.existsSync(path.join(process.cwd(), ".agentera", "vision.yaml"));
584
- if (plan.exists && !plan.complete_plan) {
585
- return { object: "VISION refresh", capability: "planera", reason: "no executable follow-up" };
784
+ if ((plan.exists && !plan.complete_plan) || visionExists) {
785
+ candidates.push({ object: "VISION refresh", capability: "plan", reason: "no executable follow-up", phase: "envision" });
586
786
  }
587
- if (visionExists) {
588
- return { object: "VISION refresh", capability: "planera", reason: "no executable follow-up" };
787
+ if (savedContext && !visionExists) {
788
+ candidates.push({ object: "Direction clarification", capability: "discuss", reason: "saved context without vision", phase: "envision" });
589
789
  }
590
- if (savedContext) {
591
- return { object: "Direction clarification", capability: "resonera", reason: "saved context without vision" };
790
+ candidates.push({ object: "VISION refresh", capability: "vision", reason: "fresh project direction", phase: "envision" });
791
+ // Guarantee at least one alternative so the hint never collapses to a single entry.
792
+ if (candidates.length < 2) {
793
+ candidates.push({ object: "Direction clarification", capability: "discuss", reason: "clarify project direction", phase: "envision" });
592
794
  }
593
- return { object: "VISION refresh", capability: "visionera", reason: "fresh project direction" };
795
+ const [recommended, ...alternatives] = candidates;
796
+ return { recommended, alternatives };
797
+ }
798
+ /** Legacy single-entry projection of {@link selectStatusReadiness}: the
799
+ * top-priority candidate as `{object, capability, reason}` (no `phase`). */
800
+ export function selectStatusNextAction(plan, health, objective, todoItems, decision, savedContext) {
801
+ const { recommended } = selectStatusReadiness(plan, health, objective, todoItems, decision, savedContext);
802
+ return { object: recommended.object, capability: recommended.capability, reason: recommended.reason };
594
803
  }
595
804
  //# sourceMappingURL=orientation.js.map