agentera 3.0.0-dev.2 → 3.0.0-dev.20

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 (612) hide show
  1. package/README.md +65 -6
  2. package/bundle/.agentera-npx-bundle.json +1 -1
  3. package/bundle/.codex-plugin/plugin.json +92 -0
  4. package/bundle/.cursor/agents/agentera.md +7 -0
  5. package/bundle/.cursor/hooks.json +32 -0
  6. package/bundle/.cursor-plugin/plugin.json +34 -0
  7. package/bundle/.github/hooks/postToolUse.json +9 -0
  8. package/bundle/.github/hooks/preToolUse.json +8 -0
  9. package/bundle/.github/hooks/sessionEnd.json +8 -0
  10. package/bundle/.github/hooks/sessionStart.json +8 -0
  11. package/bundle/.github/plugin/plugin.json +7 -0
  12. package/bundle/.opencode/agents/agentera.md +12 -0
  13. package/bundle/.opencode/commands/agentera.md +5 -0
  14. package/bundle/.opencode/package.json +31 -0
  15. package/bundle/.opencode/plugins/agentera.js +820 -0
  16. package/bundle/CHANGELOG.md +1108 -0
  17. package/bundle/DESIGN.md +233 -0
  18. package/bundle/LICENSE +201 -0
  19. package/bundle/README.md +141 -0
  20. package/bundle/UPGRADE.md +227 -0
  21. package/bundle/agents/openai.yaml +87 -0
  22. package/bundle/extract-corpus-parity.json +21 -0
  23. package/bundle/hooks/codex-hooks.json +31 -0
  24. package/bundle/hooks/codex-plugin-hooks.json +31 -0
  25. package/bundle/plugin.json +13 -0
  26. package/bundle/references/adapters/cursor.md +53 -42
  27. package/bundle/references/adapters/opencode.md +46 -47
  28. package/bundle/references/adapters/package-manifest-interface-model.yaml +32 -43
  29. package/bundle/references/adapters/package-registry.yaml +19 -53
  30. package/bundle/references/adapters/package-surface-characterization.md +61 -48
  31. package/bundle/references/adapters/runtime-adapter-characterization.md +44 -79
  32. package/bundle/references/adapters/runtime-adapter-registry.yaml +21 -182
  33. package/bundle/references/adapters/runtime-feature-parity.md +114 -174
  34. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +288 -0
  35. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +90 -0
  36. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  37. package/bundle/references/adapters/runtime-retired-resources.yaml +33 -0
  38. package/bundle/references/analysis/benchmark.md +6 -6
  39. package/bundle/references/analysis/startup-measurement-contract.yaml +37 -26
  40. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +6 -5
  41. package/bundle/references/cli/agent-ready-state-contract.yaml +26 -23
  42. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +4 -4
  43. package/bundle/references/cli/audience-namespace-cli-migration.yaml +40 -26
  44. package/bundle/references/cli/bundle-skill-vocabulary.yaml +4 -32
  45. package/bundle/references/cli/capability-instruction-contract.yaml +98 -57
  46. package/bundle/references/cli/capability-instruction-structure.md +144 -0
  47. package/bundle/references/cli/capability-tool-classification.yaml +12 -12
  48. package/bundle/references/cli/coexistence-probe.yaml +13 -0
  49. package/bundle/references/cli/parity-expected-actual-template.md +30 -0
  50. package/bundle/references/cli/routing-execution-vocabulary.yaml +12 -12
  51. package/bundle/references/cli/routing-model.md +94 -0
  52. package/bundle/references/cli/single-name-protocol.yaml +42 -0
  53. package/bundle/references/cli/trigger-schema-enrichment.md +136 -0
  54. package/bundle/references/cli/update-channels.yaml +43 -7
  55. package/bundle/references/cli/upgrade-repair-wording.md +45 -0
  56. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +98 -0
  57. package/bundle/references/cli/vocabulary-index.yaml +20 -15
  58. package/bundle/references/cli/vocabulary.md +342 -326
  59. package/bundle/references/meta/documentation-inventory.md +9 -3
  60. package/bundle/registry.json +14 -14
  61. package/bundle/skills/agentera/SKILL.md +136 -408
  62. package/bundle/skills/agentera/agents/audit.toml +6 -0
  63. package/bundle/skills/agentera/agents/build.toml +6 -0
  64. package/bundle/skills/agentera/agents/design.toml +6 -0
  65. package/bundle/skills/agentera/agents/discuss.toml +6 -0
  66. package/bundle/skills/agentera/agents/document.toml +6 -0
  67. package/bundle/skills/agentera/agents/optimize.toml +6 -0
  68. package/bundle/skills/agentera/agents/orchestrate.toml +6 -0
  69. package/bundle/skills/agentera/agents/plan.toml +6 -0
  70. package/bundle/skills/agentera/agents/profile.toml +6 -0
  71. package/bundle/skills/agentera/agents/research.toml +6 -0
  72. package/bundle/skills/agentera/agents/status.toml +6 -0
  73. package/bundle/skills/agentera/agents/vision.toml +6 -0
  74. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/artifacts.yaml +10 -10
  75. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +2 -2
  76. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/triggers.yaml +15 -6
  77. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +13 -12
  78. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/artifacts.yaml +12 -12
  79. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +3 -3
  80. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/triggers.yaml +13 -3
  81. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/validation.yaml +11 -11
  82. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +6 -6
  83. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +5 -5
  84. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/triggers.yaml +15 -3
  85. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +7 -7
  86. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/artifacts.yaml +12 -11
  87. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +2 -2
  88. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/triggers.yaml +11 -3
  89. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/validation.yaml +9 -8
  90. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/artifacts.yaml +10 -10
  91. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/triggers.yaml +14 -4
  92. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +8 -8
  93. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +9 -9
  94. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +2 -2
  95. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/triggers.yaml +11 -3
  96. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +9 -9
  97. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/artifacts.yaml +12 -11
  98. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +7 -6
  99. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/triggers.yaml +16 -3
  100. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +120 -0
  101. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +63 -0
  102. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
  103. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/triggers.yaml +15 -3
  104. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +89 -0
  105. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/artifacts.yaml +2 -2
  106. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +3 -3
  107. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/triggers.yaml +7 -3
  108. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/validation.yaml +2 -2
  109. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +24 -0
  110. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/triggers.yaml +9 -3
  111. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
  112. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/artifacts.yaml +14 -11
  113. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/triggers.yaml +12 -8
  114. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
  115. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +8 -8
  116. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +7 -6
  117. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/triggers.yaml +19 -5
  118. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +18 -20
  119. package/bundle/skills/agentera/capability_schema_contract.yaml +201 -38
  120. package/bundle/skills/agentera/protocol.yaml +29 -29
  121. package/bundle/skills/agentera/references/contract.md +338 -322
  122. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +4 -4
  123. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +10 -10
  124. package/bundle/skills/agentera/schemas/artifacts/design.yaml +4 -4
  125. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +8 -7
  126. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +5 -5
  127. package/bundle/skills/agentera/schemas/artifacts/health.yaml +5 -5
  128. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +4 -4
  129. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +263 -11
  130. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +20 -41
  131. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +43 -24
  132. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
  133. package/dist/analytics/extractCorpus/cli.js +163 -0
  134. package/dist/analytics/extractCorpus/cli.js.map +1 -0
  135. package/dist/analytics/extractCorpus/copilotSessions.js +276 -0
  136. package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -0
  137. package/dist/analytics/extractCorpus/core.js +393 -0
  138. package/dist/analytics/extractCorpus/core.js.map +1 -0
  139. package/dist/analytics/extractCorpus/corpus.js +168 -0
  140. package/dist/analytics/extractCorpus/corpus.js.map +1 -0
  141. package/dist/analytics/extractCorpus/coverageAudit.js +261 -0
  142. package/dist/analytics/extractCorpus/coverageAudit.js.map +1 -0
  143. package/dist/analytics/extractCorpus/cursorSessions.js +426 -0
  144. package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -0
  145. package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
  146. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +1 -0
  147. package/dist/analytics/extractCorpus/filesystemSources.js +119 -0
  148. package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -0
  149. package/dist/analytics/extractCorpus/index.js +12 -0
  150. package/dist/analytics/extractCorpus/index.js.map +1 -0
  151. package/dist/analytics/extractCorpus/jsonlSessions.js +205 -0
  152. package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -0
  153. package/dist/analytics/extractCorpus/sqliteCaps.js +44 -0
  154. package/dist/analytics/extractCorpus/sqliteCaps.js.map +1 -0
  155. package/dist/analytics/extractCorpus/sqliteSessions.js +368 -0
  156. package/dist/analytics/extractCorpus/sqliteSessions.js.map +1 -0
  157. package/dist/analytics/extractCorpus.js +2 -1790
  158. package/dist/analytics/extractCorpus.js.map +1 -1
  159. package/dist/analytics/usageStats.js +93 -27
  160. package/dist/analytics/usageStats.js.map +1 -1
  161. package/dist/bin/agentera.js +3 -1
  162. package/dist/bin/agentera.js.map +1 -1
  163. package/dist/capabilities/audit/instructions.js +4 -0
  164. package/dist/capabilities/audit/instructions.js.map +1 -0
  165. package/dist/capabilities/build/instructions.js +5 -0
  166. package/dist/capabilities/build/instructions.js.map +1 -0
  167. package/dist/capabilities/design/instructions.js +5 -0
  168. package/dist/capabilities/design/instructions.js.map +1 -0
  169. package/dist/capabilities/discuss/instructions.js +6 -0
  170. package/dist/capabilities/discuss/instructions.js.map +1 -0
  171. package/dist/capabilities/document/instructions.js +4 -0
  172. package/dist/capabilities/document/instructions.js.map +1 -0
  173. package/dist/capabilities/index.js +38 -0
  174. package/dist/capabilities/index.js.map +1 -0
  175. package/dist/capabilities/optimize/instructions.js +5 -0
  176. package/dist/capabilities/optimize/instructions.js.map +1 -0
  177. package/dist/capabilities/orchestrate/instructions.js +10 -0
  178. package/dist/capabilities/orchestrate/instructions.js.map +1 -0
  179. package/dist/capabilities/plan/instructions.js +6 -0
  180. package/dist/capabilities/plan/instructions.js.map +1 -0
  181. package/dist/capabilities/profile/instructions.js +5 -0
  182. package/dist/capabilities/profile/instructions.js.map +1 -0
  183. package/dist/capabilities/research/instructions.js +6 -0
  184. package/dist/capabilities/research/instructions.js.map +1 -0
  185. package/dist/capabilities/status/instructions.js +5 -0
  186. package/dist/capabilities/status/instructions.js.map +1 -0
  187. package/dist/capabilities/vision/instructions.js +5 -0
  188. package/dist/capabilities/vision/instructions.js.map +1 -0
  189. package/dist/cli/appContext.js +16 -17
  190. package/dist/cli/appContext.js.map +1 -1
  191. package/dist/cli/capabilityContext/benchmark.js +564 -0
  192. package/dist/cli/capabilityContext/benchmark.js.map +1 -0
  193. package/dist/cli/capabilityContext/bespoke.js +36 -0
  194. package/dist/cli/capabilityContext/bespoke.js.map +1 -0
  195. package/dist/cli/capabilityContext/build.js +190 -0
  196. package/dist/cli/capabilityContext/build.js.map +1 -0
  197. package/dist/cli/capabilityContext/closeout.js +230 -0
  198. package/dist/cli/capabilityContext/closeout.js.map +1 -0
  199. package/dist/cli/capabilityContext/contract.js +190 -0
  200. package/dist/cli/capabilityContext/contract.js.map +1 -0
  201. package/dist/cli/capabilityContext/evidence.js +456 -0
  202. package/dist/cli/capabilityContext/evidence.js.map +1 -0
  203. package/dist/cli/capabilityContext/index.js +4 -0
  204. package/dist/cli/capabilityContext/index.js.map +1 -0
  205. package/dist/cli/capabilityContext/orchestration.js +117 -0
  206. package/dist/cli/capabilityContext/orchestration.js.map +1 -0
  207. package/dist/cli/capabilityContext/planState.js +279 -0
  208. package/dist/cli/capabilityContext/planState.js.map +1 -0
  209. package/dist/cli/capabilityContext/progress.js +138 -0
  210. package/dist/cli/capabilityContext/progress.js.map +1 -0
  211. package/dist/cli/capabilityContext/shared.js +94 -0
  212. package/dist/cli/capabilityContext/shared.js.map +1 -0
  213. package/dist/cli/capabilityContext/slim.js +108 -0
  214. package/dist/cli/capabilityContext/slim.js.map +1 -0
  215. package/dist/cli/capabilityContext/startup.js +217 -0
  216. package/dist/cli/capabilityContext/startup.js.map +1 -0
  217. package/dist/cli/capabilityContext/types.js +41 -0
  218. package/dist/cli/capabilityContext/types.js.map +1 -0
  219. package/dist/cli/capabilityContext.js +1 -2420
  220. package/dist/cli/capabilityContext.js.map +1 -1
  221. package/dist/cli/commands/appHome.js +23 -0
  222. package/dist/cli/commands/appHome.js.map +1 -0
  223. package/dist/cli/commands/capability.js +3 -10
  224. package/dist/cli/commands/capability.js.map +1 -1
  225. package/dist/cli/commands/compact.js +1 -1
  226. package/dist/cli/commands/compact.js.map +1 -1
  227. package/dist/cli/commands/doctor.js +116 -96
  228. package/dist/cli/commands/doctor.js.map +1 -1
  229. package/dist/cli/commands/lint.js +16 -41
  230. package/dist/cli/commands/lint.js.map +1 -1
  231. package/dist/cli/commands/prime/bundleStatus.js +185 -0
  232. package/dist/cli/commands/prime/bundleStatus.js.map +1 -0
  233. package/dist/cli/commands/prime/collectOrientationState.js +179 -0
  234. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -0
  235. package/dist/cli/commands/prime/orientationOutput.js +233 -0
  236. package/dist/cli/commands/prime/orientationOutput.js.map +1 -0
  237. package/dist/cli/commands/prime/types.js +2 -0
  238. package/dist/cli/commands/prime/types.js.map +1 -0
  239. package/dist/cli/commands/prime/v1Migration.js +39 -0
  240. package/dist/cli/commands/prime/v1Migration.js.map +1 -0
  241. package/dist/cli/commands/prime.js +11 -519
  242. package/dist/cli/commands/prime.js.map +1 -1
  243. package/dist/cli/commands/query.js +5 -2
  244. package/dist/cli/commands/query.js.map +1 -1
  245. package/dist/cli/commands/report.js +50 -14
  246. package/dist/cli/commands/report.js.map +1 -1
  247. package/dist/cli/commands/schema.js +113 -24
  248. package/dist/cli/commands/schema.js.map +1 -1
  249. package/dist/cli/commands/state/decisions.js +403 -0
  250. package/dist/cli/commands/state/decisions.js.map +1 -0
  251. package/dist/cli/commands/state/docs.js +97 -0
  252. package/dist/cli/commands/state/docs.js.map +1 -0
  253. package/dist/cli/commands/state/experiments.js +68 -0
  254. package/dist/cli/commands/state/experiments.js.map +1 -0
  255. package/dist/cli/commands/state/health.js +116 -0
  256. package/dist/cli/commands/state/health.js.map +1 -0
  257. package/dist/cli/commands/state/index.js +51 -0
  258. package/dist/cli/commands/state/index.js.map +1 -0
  259. package/dist/cli/commands/state/objective.js +69 -0
  260. package/dist/cli/commands/state/objective.js.map +1 -0
  261. package/dist/cli/commands/state/plan.js +274 -0
  262. package/dist/cli/commands/state/plan.js.map +1 -0
  263. package/dist/cli/commands/state/progress.js +47 -0
  264. package/dist/cli/commands/state/progress.js.map +1 -0
  265. package/dist/cli/commands/state/shared.js +15 -0
  266. package/dist/cli/commands/state/shared.js.map +1 -0
  267. package/dist/cli/commands/state/todo.js +121 -0
  268. package/dist/cli/commands/state/todo.js.map +1 -0
  269. package/dist/cli/commands/state/write.js +341 -0
  270. package/dist/cli/commands/state/write.js.map +1 -0
  271. package/dist/cli/commands/upgrade.js +79 -1
  272. package/dist/cli/commands/upgrade.js.map +1 -1
  273. package/dist/cli/commands/upgradeVerify.js +81 -0
  274. package/dist/cli/commands/upgradeVerify.js.map +1 -0
  275. package/dist/cli/commands/validate.js +56 -96
  276. package/dist/cli/commands/validate.js.map +1 -1
  277. package/dist/cli/commands/verify.js +13 -7
  278. package/dist/cli/commands/verify.js.map +1 -1
  279. package/dist/cli/contracts/bundleStatus.js +2 -0
  280. package/dist/cli/contracts/bundleStatus.js.map +1 -0
  281. package/dist/cli/contracts/orientationState.js +2 -0
  282. package/dist/cli/contracts/orientationState.js.map +1 -0
  283. package/dist/cli/dispatch/argvParser.js +33 -0
  284. package/dist/cli/dispatch/argvParser.js.map +1 -0
  285. package/dist/cli/dispatch/check.js +328 -0
  286. package/dist/cli/dispatch/check.js.map +1 -0
  287. package/dist/cli/dispatch/commands.js +27 -0
  288. package/dist/cli/dispatch/commands.js.map +1 -0
  289. package/dist/cli/dispatch/index.js +183 -0
  290. package/dist/cli/dispatch/index.js.map +1 -0
  291. package/dist/cli/dispatch/lifecycle.js +671 -0
  292. package/dist/cli/dispatch/lifecycle.js.map +1 -0
  293. package/dist/cli/dispatch/prime.js +104 -0
  294. package/dist/cli/dispatch/prime.js.map +1 -0
  295. package/dist/cli/dispatch/shared.js +64 -0
  296. package/dist/cli/dispatch/shared.js.map +1 -0
  297. package/dist/cli/dispatch/state.js +148 -0
  298. package/dist/cli/dispatch/state.js.map +1 -0
  299. package/dist/cli/dispatch.js +1 -957
  300. package/dist/cli/dispatch.js.map +1 -1
  301. package/dist/cli/errors.js +54 -0
  302. package/dist/cli/errors.js.map +1 -0
  303. package/dist/cli/help.js +262 -0
  304. package/dist/cli/help.js.map +1 -0
  305. package/dist/cli/orientation/attention.js +163 -0
  306. package/dist/cli/orientation/attention.js.map +1 -0
  307. package/dist/cli/orientation/corpusCoverage.js +71 -0
  308. package/dist/cli/orientation/corpusCoverage.js.map +1 -0
  309. package/dist/cli/orientation.js +194 -114
  310. package/dist/cli/orientation.js.map +1 -1
  311. package/dist/cli/planArtifacts.js +172 -0
  312. package/dist/cli/planArtifacts.js.map +1 -0
  313. package/dist/cli/planEvidence.js +158 -0
  314. package/dist/cli/planEvidence.js.map +1 -0
  315. package/dist/cli/planLifecycleState.js +34 -0
  316. package/dist/cli/planLifecycleState.js.map +1 -0
  317. package/dist/cli/prime-blob.js +68 -2
  318. package/dist/cli/prime-blob.js.map +1 -1
  319. package/dist/cli/startupCompletenessContract.js +56 -0
  320. package/dist/cli/startupCompletenessContract.js.map +1 -0
  321. package/dist/cli/stateQuery.js +17 -2
  322. package/dist/cli/stateQuery.js.map +1 -1
  323. package/dist/cli/todoMarkdown.js +33 -0
  324. package/dist/cli/todoMarkdown.js.map +1 -0
  325. package/dist/cli/todoSeverity.js +19 -0
  326. package/dist/cli/todoSeverity.js.map +1 -0
  327. package/dist/core/atomicWriter.js +21 -0
  328. package/dist/core/atomicWriter.js.map +1 -0
  329. package/dist/core/envPaths.js +21 -0
  330. package/dist/core/envPaths.js.map +1 -0
  331. package/dist/core/jsonValue.js +6 -0
  332. package/dist/core/jsonValue.js.map +1 -0
  333. package/dist/core/pyjson.js +67 -2
  334. package/dist/core/pyjson.js.map +1 -1
  335. package/dist/core/yaml.js +8 -0
  336. package/dist/core/yaml.js.map +1 -1
  337. package/dist/eval/evalSkills.js +30 -25
  338. package/dist/eval/evalSkills.js.map +1 -1
  339. package/dist/eval/semanticEval.js +43 -19
  340. package/dist/eval/semanticEval.js.map +1 -1
  341. package/dist/eval/semanticFixtures.js +16 -4
  342. package/dist/eval/semanticFixtures.js.map +1 -1
  343. package/dist/hooks/common.js +9 -26
  344. package/dist/hooks/common.js.map +1 -1
  345. package/dist/hooks/compaction/apply.js +269 -0
  346. package/dist/hooks/compaction/apply.js.map +1 -0
  347. package/dist/hooks/compaction/dryRun.js +183 -0
  348. package/dist/hooks/compaction/dryRun.js.map +1 -0
  349. package/dist/hooks/compaction/index.js +23 -0
  350. package/dist/hooks/compaction/index.js.map +1 -0
  351. package/dist/hooks/compaction/parse.js +258 -0
  352. package/dist/hooks/compaction/parse.js.map +1 -0
  353. package/dist/hooks/compaction/retention.js +202 -0
  354. package/dist/hooks/compaction/retention.js.map +1 -0
  355. package/dist/hooks/compaction/status.js +243 -0
  356. package/dist/hooks/compaction/status.js.map +1 -0
  357. package/dist/hooks/compaction/types.js +6 -0
  358. package/dist/hooks/compaction/types.js.map +1 -0
  359. package/dist/hooks/cursorPreToolUse.js +1 -1
  360. package/dist/hooks/cursorPreToolUse.js.map +1 -1
  361. package/dist/hooks/cursorSessionStart.js +10 -2
  362. package/dist/hooks/cursorSessionStart.js.map +1 -1
  363. package/dist/hooks/sessionStart.js +18 -11
  364. package/dist/hooks/sessionStart.js.map +1 -1
  365. package/dist/hooks/sessionStop.js +8 -14
  366. package/dist/hooks/sessionStop.js.map +1 -1
  367. package/dist/hooks/validateArtifact/agentFacing.js +10 -0
  368. package/dist/hooks/validateArtifact/agentFacing.js.map +1 -0
  369. package/dist/hooks/validateArtifact/index.js +151 -0
  370. package/dist/hooks/validateArtifact/index.js.map +1 -0
  371. package/dist/hooks/validateArtifact/markdown.js +146 -0
  372. package/dist/hooks/validateArtifact/markdown.js.map +1 -0
  373. package/dist/hooks/validateArtifact/runtime.js +86 -0
  374. package/dist/hooks/validateArtifact/runtime.js.map +1 -0
  375. package/dist/hooks/validateArtifact/schema.js +541 -0
  376. package/dist/hooks/validateArtifact/schema.js.map +1 -0
  377. package/dist/hooks/validateArtifact/traversal.js +106 -0
  378. package/dist/hooks/validateArtifact/traversal.js.map +1 -0
  379. package/dist/hooks/validateArtifact/violations.js +108 -0
  380. package/dist/hooks/validateArtifact/violations.js.map +1 -0
  381. package/dist/migrate/v2HandoffManifest.js +455 -0
  382. package/dist/migrate/v2HandoffManifest.js.map +1 -0
  383. package/dist/registries/artifactProtocolIds.js +77 -0
  384. package/dist/registries/artifactProtocolIds.js.map +1 -0
  385. package/dist/registries/artifactRegistry.js +62 -15
  386. package/dist/registries/artifactRegistry.js.map +1 -1
  387. package/dist/registries/capabilityContract.js +156 -12
  388. package/dist/registries/capabilityContract.js.map +1 -1
  389. package/dist/registries/evaluatorHandoffContract.js +171 -0
  390. package/dist/registries/evaluatorHandoffContract.js.map +1 -0
  391. package/dist/registries/packageRegistry.js +40 -6
  392. package/dist/registries/packageRegistry.js.map +1 -1
  393. package/dist/registries/runtimeAdapterRegistry.js +30 -21
  394. package/dist/registries/runtimeAdapterRegistry.js.map +1 -1
  395. package/dist/registries/triggerLoader.js +211 -0
  396. package/dist/registries/triggerLoader.js.map +1 -0
  397. package/dist/release/releaseMetadata.js +235 -0
  398. package/dist/release/releaseMetadata.js.map +1 -0
  399. package/dist/runtime/lifecycleAdapterContract.js +458 -0
  400. package/dist/runtime/lifecycleAdapterContract.js.map +1 -0
  401. package/dist/runtime/lifecycleAdapters.js +766 -0
  402. package/dist/runtime/lifecycleAdapters.js.map +1 -0
  403. package/dist/runtime/lifecycleAuthority.js +493 -0
  404. package/dist/runtime/lifecycleAuthority.js.map +1 -0
  405. package/dist/runtime/lifecycleOperationContract.js +113 -0
  406. package/dist/runtime/lifecycleOperationContract.js.map +1 -0
  407. package/dist/runtime/lifecycleOperations.js +635 -0
  408. package/dist/runtime/lifecycleOperations.js.map +1 -0
  409. package/dist/runtime/lifecycleOwnershipJournal.js +623 -0
  410. package/dist/runtime/lifecycleOwnershipJournal.js.map +1 -0
  411. package/dist/runtime/lifecyclePublication.js +395 -0
  412. package/dist/runtime/lifecyclePublication.js.map +1 -0
  413. package/dist/runtime/lifecycleSnapshot.js +439 -0
  414. package/dist/runtime/lifecycleSnapshot.js.map +1 -0
  415. package/dist/runtime/retiredRuntimeCleanup.js +238 -0
  416. package/dist/runtime/retiredRuntimeCleanup.js.map +1 -0
  417. package/dist/setup/codex/agents.js +96 -0
  418. package/dist/setup/codex/agents.js.map +1 -0
  419. package/dist/setup/codex/cli.js +161 -0
  420. package/dist/setup/codex/cli.js.map +1 -0
  421. package/dist/setup/codex/configToml.js +639 -0
  422. package/dist/setup/codex/configToml.js.map +1 -0
  423. package/dist/setup/codex/constants.js +29 -0
  424. package/dist/setup/codex/constants.js.map +1 -0
  425. package/dist/setup/codex/installRoot.js +64 -0
  426. package/dist/setup/codex/installRoot.js.map +1 -0
  427. package/dist/setup/codex/state.js +270 -0
  428. package/dist/setup/codex/state.js.map +1 -0
  429. package/dist/setup/codex.js +11 -1055
  430. package/dist/setup/codex.js.map +1 -1
  431. package/dist/setup/copilot.js +1 -1
  432. package/dist/setup/copilot.js.map +1 -1
  433. package/dist/setup/cursor.js +7 -5
  434. package/dist/setup/cursor.js.map +1 -1
  435. package/dist/setup/cursorSurfaces.js +67 -0
  436. package/dist/setup/cursorSurfaces.js.map +1 -0
  437. package/dist/setup/doctor/core.js +296 -0
  438. package/dist/setup/doctor/core.js.map +1 -0
  439. package/dist/setup/doctor/diagnostics.js +201 -0
  440. package/dist/setup/doctor/diagnostics.js.map +1 -0
  441. package/dist/setup/doctor/opencode.js +301 -0
  442. package/dist/setup/doctor/opencode.js.map +1 -0
  443. package/dist/setup/doctor/report.js +425 -0
  444. package/dist/setup/doctor/report.js.map +1 -0
  445. package/dist/setup/doctor.js +9 -1275
  446. package/dist/setup/doctor.js.map +1 -1
  447. package/dist/setup/opencode.js +13 -0
  448. package/dist/setup/opencode.js.map +1 -0
  449. package/dist/setup/opencodeConstants.js +2 -0
  450. package/dist/setup/opencodeConstants.js.map +1 -0
  451. package/dist/setup/smokeChecks.js +109 -0
  452. package/dist/setup/smokeChecks.js.map +1 -0
  453. package/dist/state/installRoot.js +64 -24
  454. package/dist/state/installRoot.js.map +1 -1
  455. package/dist/state/startupAnalysis/benchmark.js +371 -0
  456. package/dist/state/startupAnalysis/benchmark.js.map +1 -0
  457. package/dist/state/startupAnalysis/contract.js +126 -0
  458. package/dist/state/startupAnalysis/contract.js.map +1 -0
  459. package/dist/state/startupAnalysis/helpers.js +287 -0
  460. package/dist/state/startupAnalysis/helpers.js.map +1 -0
  461. package/dist/state/startupAnalysis/index.js +7 -0
  462. package/dist/state/startupAnalysis/index.js.map +1 -0
  463. package/dist/state/startupAnalysis/metrics.js +341 -0
  464. package/dist/state/startupAnalysis/metrics.js.map +1 -0
  465. package/dist/state/startupAnalysis/records.js +199 -0
  466. package/dist/state/startupAnalysis/records.js.map +1 -0
  467. package/dist/state/startupAnalysis/report.js +112 -0
  468. package/dist/state/startupAnalysis/report.js.map +1 -0
  469. package/dist/state/startupAnalysis/threshold.js +500 -0
  470. package/dist/state/startupAnalysis/threshold.js.map +1 -0
  471. package/dist/state/startupAnalysis.js +2 -1952
  472. package/dist/state/startupAnalysis.js.map +1 -1
  473. package/dist/state/write/assign.js +21 -0
  474. package/dist/state/write/assign.js.map +1 -0
  475. package/dist/state/write/errors.js +12 -0
  476. package/dist/state/write/errors.js.map +1 -0
  477. package/dist/state/write/explain.js +155 -0
  478. package/dist/state/write/explain.js.map +1 -0
  479. package/dist/state/write/fields.js +62 -0
  480. package/dist/state/write/fields.js.map +1 -0
  481. package/dist/state/write/index.js +11 -0
  482. package/dist/state/write/index.js.map +1 -0
  483. package/dist/state/write/input.js +22 -0
  484. package/dist/state/write/input.js.map +1 -0
  485. package/dist/state/write/lock.js +108 -0
  486. package/dist/state/write/lock.js.map +1 -0
  487. package/dist/state/write/operations.js +220 -0
  488. package/dist/state/write/operations.js.map +1 -0
  489. package/dist/state/write/serialize.js +2 -0
  490. package/dist/state/write/serialize.js.map +1 -0
  491. package/dist/state/write/transaction.js +787 -0
  492. package/dist/state/write/transaction.js.map +1 -0
  493. package/dist/state/write/validate.js +8 -0
  494. package/dist/state/write/validate.js.map +1 -0
  495. package/dist/upgrade/appContentRefresh.js +374 -0
  496. package/dist/upgrade/appContentRefresh.js.map +1 -0
  497. package/dist/upgrade/appModel.js +11 -6
  498. package/dist/upgrade/appModel.js.map +1 -1
  499. package/dist/upgrade/atomicWriter.js +2 -0
  500. package/dist/upgrade/atomicWriter.js.map +1 -0
  501. package/dist/upgrade/bundleEvidence.js +34 -0
  502. package/dist/upgrade/bundleEvidence.js.map +1 -0
  503. package/dist/upgrade/channels.js +27 -7
  504. package/dist/upgrade/channels.js.map +1 -1
  505. package/dist/upgrade/coexistenceProbe.js +105 -0
  506. package/dist/upgrade/coexistenceProbe.js.map +1 -0
  507. package/dist/upgrade/compatibility.js +52 -16
  508. package/dist/upgrade/compatibility.js.map +1 -1
  509. package/dist/upgrade/doctor.js +195 -193
  510. package/dist/upgrade/doctor.js.map +1 -1
  511. package/dist/upgrade/doctorClassifier.js +188 -0
  512. package/dist/upgrade/doctorClassifier.js.map +1 -0
  513. package/dist/upgrade/installedHooksRetirement.js +190 -0
  514. package/dist/upgrade/installedHooksRetirement.js.map +1 -0
  515. package/dist/upgrade/legacyAgentCleanup.js +183 -0
  516. package/dist/upgrade/legacyAgentCleanup.js.map +1 -0
  517. package/dist/upgrade/lifecycleUpgrade.js +427 -0
  518. package/dist/upgrade/lifecycleUpgrade.js.map +1 -0
  519. package/dist/upgrade/migrateArtifactsV1ToV2.js +568 -0
  520. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +1 -0
  521. package/dist/upgrade/migrateArtifactsV2ToV3.js +273 -144
  522. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  523. package/dist/upgrade/nextMajorDoctor.js +156 -0
  524. package/dist/upgrade/nextMajorDoctor.js.map +1 -0
  525. package/dist/upgrade/npxPlatformStatus.js +23 -0
  526. package/dist/upgrade/npxPlatformStatus.js.map +1 -0
  527. package/dist/upgrade/projectIntegration.js +259 -104
  528. package/dist/upgrade/projectIntegration.js.map +1 -1
  529. package/dist/upgrade/projectIntegrationDecision.js +141 -0
  530. package/dist/upgrade/projectIntegrationDecision.js.map +1 -0
  531. package/dist/upgrade/runtimeMigration.js +342 -89
  532. package/dist/upgrade/runtimeMigration.js.map +1 -1
  533. package/dist/upgrade/upgradeCommands.js +8 -0
  534. package/dist/upgrade/upgradeCommands.js.map +1 -1
  535. package/dist/upgrade/upgradeLock.js +54 -0
  536. package/dist/upgrade/upgradeLock.js.map +1 -0
  537. package/dist/upgrade/upgradeOrchestrator.js +170 -46
  538. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  539. package/dist/upgrade/upgradeSnapshot.js +93 -0
  540. package/dist/upgrade/upgradeSnapshot.js.map +1 -0
  541. package/dist/upgrade/v3CapabilitySurface.js +15 -0
  542. package/dist/upgrade/v3CapabilitySurface.js.map +1 -0
  543. package/dist/upgrade/versionResolution.js +12 -4
  544. package/dist/upgrade/versionResolution.js.map +1 -1
  545. package/dist/validate/appHomeContract.js +5 -5
  546. package/dist/validate/appHomeContract.js.map +1 -1
  547. package/dist/validate/capability.js +135 -14
  548. package/dist/validate/capability.js.map +1 -1
  549. package/dist/validate/crossCapability.js +1 -1
  550. package/dist/validate/crossCapability.js.map +1 -1
  551. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +93 -0
  552. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +1 -0
  553. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +481 -0
  554. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +1 -0
  555. package/dist/validate/lifecycleAdapters/shared.js +198 -0
  556. package/dist/validate/lifecycleAdapters/shared.js.map +1 -0
  557. package/dist/validate/lifecycleAdapters.js +91 -702
  558. package/dist/validate/lifecycleAdapters.js.map +1 -1
  559. package/dist/validate/selfAudit.js +63 -21
  560. package/dist/validate/selfAudit.js.map +1 -1
  561. package/dist/validate/vocabularyAuthority.js +303 -0
  562. package/dist/validate/vocabularyAuthority.js.map +1 -0
  563. package/package.json +30 -27
  564. package/bundle/references/v1-section-mapping.md +0 -47
  565. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  566. package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
  567. package/bundle/skills/agentera/agents/hej.toml +0 -6
  568. package/bundle/skills/agentera/agents/inspektera.toml +0 -6
  569. package/bundle/skills/agentera/agents/inspirera.toml +0 -6
  570. package/bundle/skills/agentera/agents/optimera.toml +0 -6
  571. package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
  572. package/bundle/skills/agentera/agents/planera.toml +0 -6
  573. package/bundle/skills/agentera/agents/profilera.toml +0 -6
  574. package/bundle/skills/agentera/agents/realisera.toml +0 -6
  575. package/bundle/skills/agentera/agents/resonera.toml +0 -6
  576. package/bundle/skills/agentera/agents/visionera.toml +0 -6
  577. package/bundle/skills/agentera/agents/visualisera.toml +0 -6
  578. package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +0 -428
  579. package/bundle/skills/agentera/capabilities/hej/instructions.md +0 -331
  580. package/bundle/skills/agentera/capabilities/inspektera/instructions.md +0 -514
  581. package/bundle/skills/agentera/capabilities/inspirera/instructions.md +0 -280
  582. package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +0 -24
  583. package/bundle/skills/agentera/capabilities/optimera/instructions.md +0 -437
  584. package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +0 -433
  585. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +0 -107
  586. package/bundle/skills/agentera/capabilities/planera/instructions.md +0 -368
  587. package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +0 -62
  588. package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +0 -61
  589. package/bundle/skills/agentera/capabilities/profilera/instructions.md +0 -419
  590. package/bundle/skills/agentera/capabilities/realisera/instructions.md +0 -403
  591. package/bundle/skills/agentera/capabilities/resonera/instructions.md +0 -329
  592. package/bundle/skills/agentera/capabilities/visionera/instructions.md +0 -309
  593. package/bundle/skills/agentera/capabilities/visualisera/instructions.md +0 -400
  594. package/bundle/skills/hej/.claude-plugin/plugin.json +0 -6
  595. package/bundle/skills/hej/SKILL.md +0 -69
  596. package/bundle/skills/hej/agents/hej.toml +0 -11
  597. package/bundle/skills/hej/agents/openai.yaml +0 -8
  598. package/dist/cli/commands/backfill.js +0 -84
  599. package/dist/cli/commands/backfill.js.map +0 -1
  600. package/dist/cli/commands/state.js +0 -1012
  601. package/dist/cli/commands/state.js.map +0 -1
  602. package/dist/core/git.js +0 -43
  603. package/dist/core/git.js.map +0 -1
  604. package/dist/hooks/compaction.js +0 -935
  605. package/dist/hooks/compaction.js.map +0 -1
  606. package/dist/hooks/validateArtifact.js +0 -933
  607. package/dist/hooks/validateArtifact.js.map +0 -1
  608. package/dist/state/progressCommit.js +0 -289
  609. package/dist/state/progressCommit.js.map +0 -1
  610. /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
  611. /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
  612. /package/bundle/skills/agentera/capabilities/{hej → status}/schemas/exit.yaml +0 -0
@@ -0,0 +1,190 @@
1
+ import { asList } from "../stateQuery.js";
2
+ import { capabilityContext } from "./contract.js";
3
+ import { sourceProvenance, uniqueList, hasRecordedValue, taskRef } from "./shared.js";
4
+ import { closeoutChangelogBoundary, orchestrationTaskSummary, planContextField, buildArtifactUpdateRequirements, buildPlanCompletionSweep, buildScopeBoundary, selectEvidenceTarget, taskByRef, } from "./planState.js";
5
+ import { progressVerificationSummary } from "./progress.js";
6
+ import { planLifecycleState } from "../planLifecycleState.js";
7
+ export function buildExecutionContext(capability, schemas, plan, progress, health, todoItems, docs, profile, bundle) {
8
+ if (capability !== "build")
9
+ return null;
10
+ const capabilityContract = capabilityContext(capability) ?? {};
11
+ const lifecycle = planLifecycleState(plan);
12
+ const tasks = lifecycle.current_plan_degraded === true
13
+ ? []
14
+ : asList(plan.tasks).filter((t) => t && typeof t === "object" && !Array.isArray(t));
15
+ const target = selectEvidenceTarget(plan);
16
+ const selected = taskByRef(plan, (target && typeof target === "object" ? target.task : null));
17
+ const acceptance = selected && typeof selected === "object" ? asList(selected.acceptance) : [];
18
+ const progressVerification = progressVerificationSummary(progress);
19
+ const changelogBoundary = closeoutChangelogBoundary(schemas, plan);
20
+ const sweep = buildPlanCompletionSweep(plan);
21
+ const archiveOnly = Boolean(plan.exists) && plan.active === false;
22
+ let mode;
23
+ if (plan.active === true && plan.complete_plan)
24
+ mode = "completed_plan_sweep";
25
+ else if (archiveOnly)
26
+ mode = "archive_only_history";
27
+ else if (!plan.exists || tasks.length === 0)
28
+ mode = "no_plan";
29
+ else if (target.status === "selected" && selected !== null)
30
+ mode = "plan_driven";
31
+ else
32
+ mode = "blocked_or_dependency_unready";
33
+ let stateCaveats = [];
34
+ let fallbackCommands = [];
35
+ for (const family of (capabilityContract.missing_state_families ?? [])) {
36
+ stateCaveats.push(`${family} state is not included in prime --context startup context.`);
37
+ }
38
+ fallbackCommands.push(...(capabilityContract.cli_fallback ?? []));
39
+ if (!plan.exists) {
40
+ stateCaveats.push("plan state is unavailable; execution context cannot select plan-driven work.");
41
+ fallbackCommands.push("agentera state plan --format json");
42
+ }
43
+ if (lifecycle.status === "degraded") {
44
+ stateCaveats.push(...(lifecycle.caveats ?? []));
45
+ fallbackCommands.push("agentera state plan --format json");
46
+ }
47
+ if (mode === "blocked_or_dependency_unready") {
48
+ stateCaveats.push("No dependency-ready pending plan task is available in CLI plan state.");
49
+ fallbackCommands.push("agentera state plan --format json");
50
+ }
51
+ if (mode === "plan_driven" && acceptance.length === 0) {
52
+ stateCaveats.push("Selected Build task has no acceptance criteria in CLI plan state.");
53
+ fallbackCommands.push("agentera state plan --format json");
54
+ }
55
+ if (!progress.exists) {
56
+ stateCaveats.push("progress state is unavailable; progress logging context is incomplete.");
57
+ fallbackCommands.push("agentera state progress --format json");
58
+ }
59
+ if (!health.exists) {
60
+ stateCaveats.push("health state is unavailable or incomplete.");
61
+ fallbackCommands.push("agentera state health --format json");
62
+ }
63
+ if (!docs.exists) {
64
+ stateCaveats.push("docs mapping state is unavailable or incomplete.");
65
+ fallbackCommands.push("agentera state docs --format json");
66
+ }
67
+ if (todoItems.length === 0) {
68
+ stateCaveats.push("todo state has no open entries in prime --context response; absence may mean none open or unavailable.");
69
+ fallbackCommands.push("agentera state todo --format json");
70
+ }
71
+ if (changelogBoundary.status !== "available") {
72
+ stateCaveats.push(...(changelogBoundary.caveats ?? []));
73
+ fallbackCommands.push("agentera state query changelog --format json");
74
+ }
75
+ if (profile.status !== "loaded") {
76
+ stateCaveats.push("profile-derived state is unavailable in prime --context response.");
77
+ }
78
+ else if (profile.stale === true) {
79
+ stateCaveats.push("profile-derived state is stale; this is a caveat, not approval to refresh profile state.");
80
+ }
81
+ if (bundle.status !== "up_to_date") {
82
+ stateCaveats.push("Agentera app files are not up to date; this is a caveat, not approval to repair or update app files.");
83
+ }
84
+ const scopeBoundary = buildScopeBoundary(plan, selected);
85
+ const sourceScope = scopeBoundary.source_scope && typeof scopeBoundary.source_scope === "object" && !Array.isArray(scopeBoundary.source_scope)
86
+ ? scopeBoundary.source_scope
87
+ : {};
88
+ if (sourceScope.status === "unspecified") {
89
+ stateCaveats.push("source-file scope is unspecified; no allowed or prohibited source paths were inferred.");
90
+ }
91
+ fallbackCommands = uniqueList(fallbackCommands);
92
+ stateCaveats = uniqueList(stateCaveats);
93
+ const requiredState = {
94
+ work_selection: mode === "plan_driven" || mode === "completed_plan_sweep",
95
+ acceptance_criteria: mode === "completed_plan_sweep" || acceptance.length > 0,
96
+ artifact_update_requirements: Boolean(docs.exists),
97
+ progress_logging_requirements: progressVerification.status === "available" || (progressVerification.caveats ?? []).length > 0,
98
+ changelog_boundary: changelogBoundary.status === "available",
99
+ scope_boundary: true,
100
+ safety_boundaries: true,
101
+ };
102
+ const missingRequired = Object.entries(requiredState).filter(([, present]) => !present).map(([name]) => name);
103
+ const caveated = stateCaveats.length > 0;
104
+ const complete = (mode === "plan_driven" || mode === "completed_plan_sweep") && missingRequired.length === 0;
105
+ return {
106
+ capability: "build",
107
+ mode,
108
+ work_selection: {
109
+ status: target.status,
110
+ selection_reason: target.selection_reason,
111
+ task: selected && typeof selected === "object" ? taskRef(selected) : null,
112
+ source_provenance: target.source_provenance,
113
+ caveats: target.caveats ?? [],
114
+ },
115
+ plan_task: selected && typeof selected === "object" ? orchestrationTaskSummary(selected) : null,
116
+ acceptance_criteria: {
117
+ status: acceptance.length > 0 ? "available" : "incomplete",
118
+ items: acceptance,
119
+ count: acceptance.length,
120
+ source_provenance: sourceProvenance("plan", "agentera plan --format json", "entries.acceptance"),
121
+ },
122
+ constraints: {
123
+ plan_constraints_present: hasRecordedValue(planContextField(plan, "constraints")),
124
+ plan_constraints_summary: "Plan constraints are represented here as structured safety and fallback policy; " +
125
+ "run the plan CLI fallback only if full wording is needed.",
126
+ protected_actions: [
127
+ "no profile refresh",
128
+ "no installed app refresh",
129
+ "no vision edit",
130
+ "no objective-state edit",
131
+ "no dispatch without explicit cycle execution",
132
+ "no commit/push/tag/publication without explicit approval",
133
+ ],
134
+ unsupported_cli_command_policy: "Do not introduce capability-name or slash-alias CLI commands for Build.",
135
+ source_provenance: sourceProvenance("plan", "agentera plan --format json", "summary.constraints"),
136
+ },
137
+ scope_boundary: scopeBoundary,
138
+ verification_expectations: {
139
+ latest_progress_verification: progressVerification,
140
+ expected_commands: ["focused pytest targets", "Build capability validation", "self-validation", "agentera gate", "compaction check", "git diff --check"],
141
+ source_provenance: sourceProvenance("plan", "agentera plan --format json", "entries.acceptance"),
142
+ },
143
+ artifact_update_requirements: buildArtifactUpdateRequirements(plan, docs),
144
+ progress_logging_requirements: {
145
+ append_cycle: !archiveOnly,
146
+ verified_field_mandatory: true,
147
+ latest_progress_verification_pointer: progressVerification.latest_progress_verification_pointer ?? null,
148
+ source_provenance: sourceProvenance("progress", "agentera progress --format json"),
149
+ },
150
+ changelog_boundary: changelogBoundary,
151
+ git_boundary: {
152
+ remote_push_allowed: false,
153
+ commit_allowed_only_with_explicit_user_request: true,
154
+ tag_or_publication_allowed: false,
155
+ source_provenance: sourceProvenance("execution_context", "agentera prime --context build --format json", "git_boundary"),
156
+ },
157
+ plan_completion_sweep: sweep,
158
+ plan_lifecycle_state: lifecycle,
159
+ state_family_caveats: stateCaveats,
160
+ fallback_commands: fallbackCommands,
161
+ source_contract: {
162
+ complete_for_execution_context: complete,
163
+ caveated,
164
+ raw_artifact_reads_required: false,
165
+ raw_artifact_read_policy: "Use this execution_context and included status state first. Run listed routine/query CLI fallback commands " +
166
+ "for missing or incomplete execution state; raw artifact reads are last-resort diagnostics, not normal Build startup behavior.",
167
+ included_state_families: capabilityContract.included_state_families ?? [],
168
+ missing_state_families: capabilityContract.missing_state_families ?? [],
169
+ required_execution_state: requiredState,
170
+ missing_required_execution_state: missingRequired,
171
+ fallback_commands: fallbackCommands,
172
+ caveats: stateCaveats,
173
+ owns: [
174
+ "selected work item",
175
+ "task details and acceptance criteria",
176
+ "constraints and safety boundaries",
177
+ "verification expectations",
178
+ "artifact update requirements",
179
+ "progress logging requirements",
180
+ "changelog boundary",
181
+ "scope boundary",
182
+ "read-only plan completion sweep metadata",
183
+ "truthful completeness metadata",
184
+ "plan lifecycle state",
185
+ ],
186
+ deferred: [],
187
+ },
188
+ };
189
+ }
190
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/capabilityContext/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,230 @@
1
+ import fs from "node:fs";
2
+ import { execFileSync } from "node:child_process";
3
+ import { artifactPath } from "../appContext.js";
4
+ import { asList } from "../stateQuery.js";
5
+ import { capabilityContext } from "./contract.js";
6
+ import { docsConventions, sourceProvenance, uniqueList } from "./shared.js";
7
+ import { closeoutChangelogBoundary } from "./planState.js";
8
+ import { progressVerificationSummary } from "./progress.js";
9
+ import { decisionReviewPressure } from "./evidence.js";
10
+ export function closeoutArtifactMappings(docs) {
11
+ const mapping = asList(docs.mapping);
12
+ const ok = Boolean(docs.exists) && mapping.length > 0;
13
+ return {
14
+ status: ok ? "available" : "unavailable",
15
+ source_provenance: sourceProvenance("docs", "agentera docs --format json", "summary.mapping"),
16
+ entries: mapping,
17
+ mapping_entries: mapping.length,
18
+ caveats: ok ? [] : ["Docs artifact mappings are unavailable or empty in CLI docs state."],
19
+ };
20
+ }
21
+ export function closeoutVersionPolicy(docs) {
22
+ const conventions = docsConventions(docs);
23
+ const semverPolicy = conventions.semver_policy && typeof conventions.semver_policy === "object" && !Array.isArray(conventions.semver_policy) ? conventions.semver_policy : {};
24
+ const versionFiles = asList(conventions.version_files);
25
+ const registry = conventions.version_files_registry ?? null;
26
+ const available = Object.keys(semverPolicy).length > 0;
27
+ return {
28
+ status: available ? "available" : "unavailable",
29
+ source_provenance: sourceProvenance("docs", "agentera docs --format json", "summary.conventions"),
30
+ version_files: versionFiles,
31
+ version_files_registry: registry,
32
+ semver_policy: semverPolicy,
33
+ caveats: available ? [] : ["Docs version policy is unavailable in CLI docs state."],
34
+ };
35
+ }
36
+ export function closeoutTodoBlockers(schemas, todoItems) {
37
+ const info = schemas.todo ?? { path: "TODO.md", record: undefined, schema: {}, fields: {} };
38
+ const exists = fs.existsSync(artifactPath(info, "todo"));
39
+ return {
40
+ status: exists ? "available" : "unavailable",
41
+ source_provenance: sourceProvenance("todo", "agentera todo --format json"),
42
+ open_count: todoItems.length,
43
+ items: todoItems,
44
+ caveats: exists ? [] : ["TODO state is unavailable in CLI state."],
45
+ };
46
+ }
47
+ export function closeoutBenchmarkEvidence(docs) {
48
+ const coverage = docs.coverage && typeof docs.coverage === "object" && !Array.isArray(docs.coverage) ? docs.coverage : {};
49
+ const testsSummary = String(coverage.tests ?? "").trim();
50
+ if (testsSummary && testsSummary.toLowerCase().includes("benchmark")) {
51
+ return {
52
+ status: "available",
53
+ source_provenance: sourceProvenance("docs", "agentera docs --format json", "summary.coverage.tests"),
54
+ summary_present: true,
55
+ non_empty_evidence_present: true,
56
+ history_scope: "cli_visible_summary",
57
+ user_local_benchmark_reads_required: false,
58
+ summary: testsSummary,
59
+ caveats: [],
60
+ };
61
+ }
62
+ return {
63
+ status: "unavailable",
64
+ source_provenance: sourceProvenance("docs", "agentera docs --format json", "summary.coverage.tests"),
65
+ summary_present: false,
66
+ non_empty_evidence_present: false,
67
+ history_scope: "not_exposed_by_supported_cli_state",
68
+ user_local_benchmark_reads_required: false,
69
+ summary: null,
70
+ caveats: ["Supported CLI/state summaries do not expose benchmark evidence; do not read user-local benchmark files for normal closeout."],
71
+ };
72
+ }
73
+ export function localGitTagEvidence(targetVersion) {
74
+ const tag = targetVersion ? `v${targetVersion}` : null;
75
+ const source = { source_family: "local_git", command: "git tag --list <target-tag>", remote: false };
76
+ if (!tag) {
77
+ return { status: "unavailable", tag: null, source_provenance: source, object_type: null, caveats: ["No selected target version is available for local tag evidence."] };
78
+ }
79
+ let stdout;
80
+ try {
81
+ stdout = execFileSync("git", ["tag", "--list", tag], { cwd: process.cwd(), encoding: "utf8", timeout: 2000 });
82
+ }
83
+ catch (exc) {
84
+ const e = exc;
85
+ if (typeof e.status === "number" && e.status !== 0) {
86
+ return { status: "unavailable", tag, source_provenance: source, object_type: null, caveats: ["Local git tag evidence is unavailable because this project is not a git worktree."] };
87
+ }
88
+ return { status: "unavailable", tag, source_provenance: source, object_type: null, caveats: [`Local git tag evidence is unavailable: ${exc.message}`] };
89
+ }
90
+ if (!stdout.split(/\r\n|\r|\n/).includes(tag)) {
91
+ return { status: "absent", tag, source_provenance: source, object_type: null, caveats: [`Local tag ${tag} is not present.`] };
92
+ }
93
+ let objectType = null;
94
+ try {
95
+ const out = execFileSync("git", ["cat-file", "-t", tag], { cwd: process.cwd(), encoding: "utf8", timeout: 2000 });
96
+ objectType = out.trim() || null;
97
+ }
98
+ catch {
99
+ objectType = null;
100
+ }
101
+ return {
102
+ status: "available",
103
+ tag,
104
+ source_provenance: source,
105
+ object_type: objectType,
106
+ caveats: objectType ? [] : [`Local tag ${tag} exists but object type could not be verified.`],
107
+ };
108
+ }
109
+ export function closeoutReleaseBoundary(changelogBoundary, bundle) {
110
+ const targetVersion = changelogBoundary.selected_target_version;
111
+ const localTag = localGitTagEvidence(targetVersion ? String(targetVersion) : null);
112
+ const metadataRecorded = Boolean(changelogBoundary.selected_target_recorded);
113
+ const caveats = [...(changelogBoundary.caveats ?? []), ...(localTag.caveats ?? [])];
114
+ if (!metadataRecorded && localTag.status !== "available") {
115
+ caveats.push("No local closeout metadata or local tag evidence is recorded for the selected target.");
116
+ }
117
+ return {
118
+ status: changelogBoundary.boundary_present ? "available" : "incomplete",
119
+ selected_target_version: targetVersion ?? null,
120
+ boundary: changelogBoundary.boundary ?? null,
121
+ local_metadata_evidence: {
122
+ status: metadataRecorded ? "recorded" : "not_recorded",
123
+ source_provenance: changelogBoundary.source_provenance ?? null,
124
+ field: "changelog_boundary.selected_target_recorded",
125
+ },
126
+ local_tag_evidence: localTag,
127
+ publication_evidence: {
128
+ package_publication: "not_recorded_in_cli_state",
129
+ remote_push: "not_recorded_in_cli_state",
130
+ remote_checks_performed: false,
131
+ registry_checks_performed: false,
132
+ source_provenance: sourceProvenance("closeout_context", "agentera prime --context document --format json", "release_boundary.publication_evidence"),
133
+ caveats: ["Closeout context does not contact remotes or package registries."],
134
+ },
135
+ app_refresh_evidence: {
136
+ installed_app_status: bundle.status ?? null,
137
+ refresh: "not_recorded_in_cli_state",
138
+ approval_recorded: false,
139
+ source_provenance: sourceProvenance("status", "agentera prime --format json", "app.status"),
140
+ },
141
+ caveats,
142
+ };
143
+ }
144
+ export function documentCloseoutContext(capability, schemas, plan, progress, todoItems, docs, profile, bundle) {
145
+ if (capability !== "document")
146
+ return null;
147
+ const capabilityContract = capabilityContext(capability) ?? {};
148
+ const artifactMappings = closeoutArtifactMappings(docs);
149
+ const versionPolicy = closeoutVersionPolicy(docs);
150
+ const todoBlockers = closeoutTodoBlockers(schemas, todoItems);
151
+ const changelogBoundary = closeoutChangelogBoundary(schemas, plan);
152
+ const progressEvidence = progressVerificationSummary(progress);
153
+ const benchmarkEvidence = closeoutBenchmarkEvidence(docs);
154
+ const releaseBoundary = closeoutReleaseBoundary(changelogBoundary, bundle);
155
+ const reviewPressure = decisionReviewPressure(schemas);
156
+ const requiredState = {
157
+ artifact_mappings: artifactMappings.status === "available",
158
+ version_policy: versionPolicy.status === "available",
159
+ todo_blockers: todoBlockers.status === "available",
160
+ changelog_boundary: Boolean(changelogBoundary.boundary_present),
161
+ progress_evidence: progressEvidence.status === "available",
162
+ benchmark_evidence_or_caveat: benchmarkEvidence.status === "available" || (benchmarkEvidence.caveats ?? []).length > 0,
163
+ decision_review_pressure: reviewPressure.status !== "review_required",
164
+ };
165
+ const missingRequired = Object.entries(requiredState).filter(([, present]) => !present).map(([k]) => k);
166
+ let stateCaveats = [];
167
+ for (const family of (capabilityContract.missing_state_families ?? [])) {
168
+ stateCaveats.push(`${family} state is not included in prime --context startup context.`);
169
+ }
170
+ for (const component of [artifactMappings, versionPolicy, todoBlockers, changelogBoundary, releaseBoundary, progressEvidence, benchmarkEvidence, reviewPressure]) {
171
+ stateCaveats.push(...(component.caveats ?? []));
172
+ }
173
+ if (bundle.status !== "up_to_date")
174
+ stateCaveats.push("Agentera app files are not up to date; this is a caveat, not approval to repair or update app files.");
175
+ if (profile.status !== "loaded")
176
+ stateCaveats.push("profile-derived state is unavailable in prime --context response.");
177
+ else if (profile.stale === true)
178
+ stateCaveats.push("profile-derived state is stale; this is a caveat, not approval to refresh profile state.");
179
+ stateCaveats = uniqueList(stateCaveats);
180
+ const fallbackCommands = uniqueList([
181
+ "agentera state todo --format json",
182
+ "agentera state docs --format json",
183
+ "agentera state progress --format json",
184
+ "agentera state query changelog --format json",
185
+ "agentera state query --list-artifacts --format json",
186
+ ...(capabilityContract.cli_fallback ?? []),
187
+ ]);
188
+ return {
189
+ capability: "document",
190
+ artifact_mappings: artifactMappings,
191
+ version_policy: versionPolicy,
192
+ todo_blockers: todoBlockers,
193
+ changelog_boundary: changelogBoundary,
194
+ release_boundary: releaseBoundary,
195
+ progress_evidence: progressEvidence,
196
+ benchmark_evidence: benchmarkEvidence,
197
+ decision_review_pressure: reviewPressure,
198
+ state_family_caveats: stateCaveats,
199
+ fallback_commands: fallbackCommands,
200
+ source_contract: {
201
+ complete_for_closeout_context: missingRequired.length === 0,
202
+ caveated: stateCaveats.length > 0,
203
+ raw_artifact_reads_required: false,
204
+ raw_artifact_read_policy: "Use this closeout_context and included status state first. Run listed routine/query CLI fallback commands " +
205
+ "for missing or incomplete closeout state; raw artifact reads are last-resort diagnostics, not normal closeout behavior.",
206
+ included_state_families: capabilityContract.included_state_families ?? [],
207
+ missing_state_families: capabilityContract.missing_state_families ?? [],
208
+ closeout_state_families: ["docs", "todo", "changelog", "progress", "benchmark_evidence", "decisions"],
209
+ required_closeout_state: requiredState,
210
+ missing_required_closeout_state: missingRequired,
211
+ fallback_commands: fallbackCommands,
212
+ caveats: stateCaveats,
213
+ owns: [
214
+ "artifact mappings",
215
+ "version policy",
216
+ "TODO blockers",
217
+ "changelog or no-release boundary",
218
+ "local metadata/tag versus publication boundary",
219
+ "latest progress evidence",
220
+ "benchmark evidence pointer or unavailable caveat",
221
+ "protected decision review pressure",
222
+ "provenance pointers and non-empty evidence flags",
223
+ "fallback commands",
224
+ "raw-read policy",
225
+ "truthful completeness flag",
226
+ ],
227
+ },
228
+ };
229
+ }
230
+ //# sourceMappingURL=closeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closeout.js","sourceRoot":"","sources":["../../../src/cli/capabilityContext/closeout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,190 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { loadYamlMapping } from "../../core/yaml.js";
4
+ import { activeAppModel, discoverSchemasDir } from "../appContext.js";
5
+ import { capabilityStartupCommand } from "../../capabilities/index.js";
6
+ import { PLAN_COMPLETED_PLAN_ARCHIVE_CONFIRMATION, PLAN_INSTRUCTIONS_AUTHORITY_EXCEPTIONS, PLAN_PLANNING_LEVELS, PLAN_RAW_PLAN_ACCESS_ALLOWED_FOR, PLAN_STARTUP_CONTRACT_VERSION, PLAN_STEP_VERBS, PLAN_TASK_COHERENCE_RULE, STARTUP_ENVELOPE_STATE_FAMILIES, STATE_FAMILY_FALLBACK_COMMANDS, } from "./types.js";
7
+ import { CAPABILITY_INSTRUCTIONS, capabilityInstructionModulePath } from "../../capabilities/index.js";
8
+ import { isFile, pyRepr, appendUnique } from "./shared.js";
9
+ import { stateWriterContract } from "../../state/write/operations.js";
10
+ export function capabilityInstructionContractPath() {
11
+ const model = activeAppModel();
12
+ const active = path.join(String(model.authoritativeRoot ?? model.activeBundleRoot), "references", "cli", "capability-instruction-contract.yaml");
13
+ if (isFile(active))
14
+ return active;
15
+ return path.join(path.resolve(discoverSchemasDir(), "..", "..", "..", ".."), "references", "cli", "capability-instruction-contract.yaml");
16
+ }
17
+ export function capabilityInstructionContract() {
18
+ const p = capabilityInstructionContractPath();
19
+ if (!isFile(p))
20
+ return {};
21
+ try {
22
+ return loadYamlMapping(fs.readFileSync(p, "utf8")); // cast: IO boundary — YAML parse of capability-instruction contract file
23
+ }
24
+ catch (exc) {
25
+ process.stderr.write(`warning: failed to load capability instruction contract: ${exc.message}\n`);
26
+ return {};
27
+ }
28
+ }
29
+ export function capabilityInstructionTarget(capability) {
30
+ const module = capabilityInstructionModulePath(capability);
31
+ const instructions = CAPABILITY_INSTRUCTIONS[capability] ?? null;
32
+ return {
33
+ module,
34
+ exists: instructions !== null && instructions.length > 0,
35
+ runtime_path: module,
36
+ instructions_present: instructions !== null,
37
+ instructions_length: instructions === null ? 0 : instructions.length,
38
+ };
39
+ }
40
+ export function firstInvocationReadMetadata(capability) {
41
+ const authority = capabilityInstructionContract();
42
+ const firstRead = authority.first_invocation_read && typeof authority.first_invocation_read === "object" && !Array.isArray(authority.first_invocation_read)
43
+ ? authority.first_invocation_read
44
+ : {};
45
+ const allowedValues = firstRead.allowed_values && typeof firstRead.allowed_values === "object" && !Array.isArray(firstRead.allowed_values) ? firstRead.allowed_values : {};
46
+ const value = "prime_context";
47
+ const valueContract = (allowedValues[value] ?? {});
48
+ return {
49
+ field: "first_invocation_read",
50
+ value,
51
+ allowed_values: Object.keys(allowedValues),
52
+ default_rule: firstRead.default_rule ?? firstRead.default_future_rule ?? null,
53
+ module_target: capabilityInstructionTarget(capability),
54
+ startup_command: capabilityStartupCommand(capability),
55
+ obligation_summary: valueContract.obligation ?? `shell out to ${capabilityStartupCommand(capability)}`,
56
+ meaning: valueContract.meaning ?? null,
57
+ runtime_enforcement: true,
58
+ provenance: {
59
+ authority_path: "references/cli/capability-instruction-contract.yaml",
60
+ authority_status: authority.status ?? null,
61
+ decision: authority.decision ?? null,
62
+ source_field: "first_invocation_read.allowed_values",
63
+ },
64
+ };
65
+ }
66
+ export function planStartupContract() {
67
+ return {
68
+ schemaVersion: PLAN_STARTUP_CONTRACT_VERSION,
69
+ status: "implemented_compact_normal_startup_contract",
70
+ canonical_surface: "agentera prime --context plan --format json",
71
+ bounded: true,
72
+ instructions_runtime_read_required: false,
73
+ instructions_authority: {
74
+ normal_startup: "Use this compact context for normal Plan execution startup; " +
75
+ "shell out to `agentera prime --context plan --format json` for the full Plan instructions.",
76
+ read_plan_instructions_when: PLAN_INSTRUCTIONS_AUTHORITY_EXCEPTIONS,
77
+ },
78
+ planning: {
79
+ levels: PLAN_PLANNING_LEVELS,
80
+ step_marker_format: "── step N/6: verb",
81
+ required_steps: PLAN_STEP_VERBS,
82
+ full_plan_review_required: true,
83
+ pre_write_self_audit_required: true,
84
+ task_coherence_rule: PLAN_TASK_COHERENCE_RULE,
85
+ },
86
+ cli_first_orientation: {
87
+ use_startup_state_first: true,
88
+ current_plan_command: "agentera plan --format json",
89
+ complete_plan_contract_key: "source_contract.complete_for_plan_artifact",
90
+ fallback_policy: "Use CLI-provided fallback commands for missing or incomplete state families " +
91
+ "before any last-resort raw artifact read.",
92
+ },
93
+ artifact_access_boundaries: {
94
+ skip_raw_plan_artifact_when: "`agentera plan --format json` reports source_contract.complete_for_plan_artifact=true " +
95
+ "during normal read-only startup or evaluation.",
96
+ raw_plan_artifact_allowed_for: PLAN_RAW_PLAN_ACCESS_ALLOWED_FOR,
97
+ completed_plan_archive_confirmation: PLAN_COMPLETED_PLAN_ARCHIVE_CONFIRMATION,
98
+ artifact_mapping_source: "agentera docs/query artifact mapping before writes or closeout",
99
+ },
100
+ handoff_expectations: [
101
+ "skip level suggests ⧉ build and waits for confirmation unless the user already asked to implement now",
102
+ "single-task plans suggest ⧉ build and wait for confirmation",
103
+ "full plans suggest ⎈ orchestrate and wait for confirmation",
104
+ ],
105
+ unsupported_command_boundary: {
106
+ capability_cli_commands_added: true,
107
+ forbidden_examples: [],
108
+ route_boundary: "Use `/agentera plan` for routing, `agentera plan` for plan state, " +
109
+ "and `agentera plan` for capability routing guidance only.",
110
+ },
111
+ seam_decision: {
112
+ selected: "prime --context",
113
+ not_changed: [
114
+ { surface: "agentera schema --format json", reason: "runtime/schema command discovery, not capability workflow startup context" },
115
+ { surface: "dispatcher guidance", reason: "route and CLI-state separation guidance, not a bounded Plan workflow payload" },
116
+ ],
117
+ },
118
+ };
119
+ }
120
+ export function capabilityArtifactInventory(capability) {
121
+ const inventory = { read_needs: [], write_targets: [] };
122
+ const capabilityDir = path.join(String(activeAppModel().skillRoot), "capabilities", capability);
123
+ const p = path.join(capabilityDir, "schemas", "artifacts.yaml");
124
+ if (!isFile(p))
125
+ return [inventory, `No capability artifact schema found for ${capability}.`];
126
+ let data;
127
+ try {
128
+ data = loadYamlMapping(fs.readFileSync(p, "utf8")); // cast: IO boundary — YAML parse of artifact inventory file
129
+ }
130
+ catch (exc) {
131
+ return [inventory, `Capability artifact schema for ${capability} could not be read: ${exc.message}`];
132
+ }
133
+ const artifacts = data.ARTIFACTS;
134
+ if (!artifacts || typeof artifacts !== "object" || Array.isArray(artifacts)) {
135
+ return [inventory, `Capability artifact schema for ${capability} has no ARTIFACTS mapping.`];
136
+ }
137
+ const errors = [];
138
+ for (const [key, entry] of Object.entries(artifacts)) {
139
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
140
+ errors.push(`entry ${key} is not a mapping`);
141
+ continue;
142
+ }
143
+ const e = entry;
144
+ const artifactId = String(e.artifact_id ?? "").trim();
145
+ const localRole = String(e.local_role ?? "").trim();
146
+ if (!artifactId) {
147
+ errors.push(`entry ${key} is missing artifact_id`);
148
+ continue;
149
+ }
150
+ if (localRole === "consumes")
151
+ appendUnique(inventory.read_needs, artifactId);
152
+ else if (localRole === "produces")
153
+ appendUnique(inventory.write_targets, artifactId);
154
+ else if (localRole === "produces_and_consumes") {
155
+ appendUnique(inventory.read_needs, artifactId);
156
+ appendUnique(inventory.write_targets, artifactId);
157
+ }
158
+ else
159
+ errors.push(`entry ${key} has unsupported local_role ${pyRepr(localRole)}`);
160
+ }
161
+ const error = errors.length > 0 ? `Capability artifact schema for ${capability} has invalid ARTIFACTS entries: ${errors.join("; ")}.` : null;
162
+ return [inventory, error];
163
+ }
164
+ export function capabilityContext(capability) {
165
+ if (!capability)
166
+ return null;
167
+ const [inventory, error] = capabilityArtifactInventory(capability);
168
+ const needs = inventory.read_needs;
169
+ const writeTargets = inventory.write_targets;
170
+ const missing = needs.filter((name) => !STARTUP_ENVELOPE_STATE_FAMILIES.has(name));
171
+ const cliFallback = missing.filter((name) => name in STATE_FAMILY_FALLBACK_COMMANDS).map((name) => STATE_FAMILY_FALLBACK_COMMANDS[name]);
172
+ const context = {
173
+ capability,
174
+ first_invocation_read: firstInvocationReadMetadata(capability),
175
+ declared_state_needs: needs,
176
+ declared_write_targets: writeTargets,
177
+ write_contract: stateWriterContract(writeTargets),
178
+ artifact_inventory: inventory,
179
+ included_state_families: needs.filter((name) => STARTUP_ENVELOPE_STATE_FAMILIES.has(name)),
180
+ missing_state_families: missing,
181
+ cli_fallback: cliFallback,
182
+ raw_artifact_read_policy: "Use the included state families from this prime --context response first. " +
183
+ "If needed families are missing or CLI state is incomplete, run the CLI fallback commands before raw file access.",
184
+ schema_error: error,
185
+ };
186
+ if (capability === "plan")
187
+ context.startup_contract = planStartupContract();
188
+ return context;
189
+ }
190
+ //# sourceMappingURL=contract.js.map