@c4a/context-cli 0.6.19 → 0.7.0

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 (273) hide show
  1. package/README.md +67 -6
  2. package/README.zh-CN.md +42 -5
  3. package/cli.js +75051 -42154
  4. package/indexers/bundles/context-code-indexer/SKILL.md +20 -0
  5. package/indexers/bundles/context-code-indexer/context-indexer.yaml +230 -0
  6. package/indexers/bundles/context-code-indexer/references/composers/contracts-and-chains.md +23 -0
  7. package/indexers/bundles/context-code-indexer/references/composers/cross-module-chain.md +22 -0
  8. package/indexers/bundles/context-code-indexer/references/composers/development-and-delivery.md +22 -0
  9. package/indexers/bundles/context-code-indexer/references/composers/event-flow.md +21 -0
  10. package/indexers/bundles/context-code-indexer/references/composers/examples-and-documentation.md +22 -0
  11. package/indexers/bundles/context-code-indexer/references/composers/persistence-boundary.md +21 -0
  12. package/indexers/bundles/context-code-indexer/references/composers/protocol-boundary.md +22 -0
  13. package/indexers/bundles/context-code-indexer/references/composers/public-contract.md +23 -0
  14. package/indexers/bundles/context-code-indexer/references/indexer.md +49 -0
  15. package/indexers/bundles/context-code-indexer/references/metrics.md +201 -0
  16. package/indexers/bundles/context-code-indexer/templates/adapter-integration.md +119 -0
  17. package/indexers/bundles/context-code-indexer/templates/api-service.md +118 -0
  18. package/indexers/bundles/context-code-indexer/templates/background-runtime.md +109 -0
  19. package/indexers/bundles/context-code-indexer/templates/cli-tool.md +129 -0
  20. package/indexers/bundles/context-code-indexer/templates/component-library.md +99 -0
  21. package/indexers/bundles/context-code-indexer/templates/contract-source.md +73 -0
  22. package/indexers/bundles/context-code-indexer/templates/data-sync-reconciliation.md +77 -0
  23. package/indexers/bundles/context-code-indexer/templates/derived-generated-source.md +117 -0
  24. package/indexers/bundles/context-code-indexer/templates/domain-service.md +109 -0
  25. package/indexers/bundles/context-code-indexer/templates/event-consumer.md +62 -0
  26. package/indexers/bundles/context-code-indexer/templates/gateway-facade.md +89 -0
  27. package/indexers/bundles/context-code-indexer/templates/monorepo-container.md +124 -0
  28. package/indexers/bundles/context-code-indexer/templates/plugin-extension.md +52 -0
  29. package/indexers/bundles/context-code-indexer/templates/sdk-library.md +132 -0
  30. package/indexers/bundles/context-code-indexer/templates/storage-repository.md +56 -0
  31. package/indexers/bundles/context-code-indexer/templates/web-application.md +146 -0
  32. package/indexers/bundles/context-code-indexer/tests/fixtures/chapters.json +226 -0
  33. package/indexers/bundles/context-code-indexer/tests/fixtures/composers.json +82 -0
  34. package/indexers/bundles/context-code-indexer/tests/fixtures/profiles.json +210 -0
  35. package/indexers/bundles/context-code-indexer/tests/fixtures/scenarios.json +122 -0
  36. package/indexers/bundles/context-markdown-indexer/SKILL.md +20 -0
  37. package/indexers/bundles/context-markdown-indexer/context-indexer.yaml +147 -0
  38. package/indexers/bundles/context-markdown-indexer/references/classification.md +63 -0
  39. package/indexers/bundles/context-markdown-indexer/references/editorial-policy.md +106 -0
  40. package/indexers/bundles/context-markdown-indexer/references/indexer.md +23 -0
  41. package/indexers/bundles/context-markdown-indexer/references/semantic-planning.md +146 -0
  42. package/indexers/bundles/context-markdown-indexer/references/structure-and-artifacts.md +109 -0
  43. package/indexers/bundles/context-markdown-indexer/tests/fixtures/anonymous.json +31 -0
  44. package/indexers/bundles/context-markdown-indexer/tests/fixtures/editorial.json +309 -0
  45. package/indexers/bundles/context-markdown-indexer/tests/fixtures/migration-equivalence.json +186 -0
  46. package/indexers/bundles/context-markdown-indexer/tests/fixtures/profiles.json +171 -0
  47. package/indexers/bundles/context-markdown-indexer/tests/fixtures/routing.json +151 -0
  48. package/indexers/capability-manifest.json +40 -0
  49. package/indexers/contracts/hard-rule-conformance.json +2644 -0
  50. package/indexers/contracts/operator-contract.json +35 -0
  51. package/indexers/contracts/profile-contract.json +10162 -0
  52. package/indexers/release-manifest.json +208 -0
  53. package/package.json +5 -4
  54. package/plugins/README.md +17 -109
  55. package/plugins/README_CN.md +11 -89
  56. package/plugins/VERSION +1 -1
  57. package/plugins/claude/.claude-plugin/plugin.json +3 -11
  58. package/plugins/claude/CLAUDE.md +1 -1
  59. package/plugins/claude/README.md +1 -1
  60. package/plugins/claude/commands/context.md +76 -1
  61. package/plugins/codex/.codex-plugin/plugin.json +6 -17
  62. package/plugins/codex/AGENTS.md +1 -1
  63. package/plugins/codex/README.md +1 -1
  64. package/plugins/codex/skills/context/SKILL.md +77 -13
  65. package/plugins/cursor/.cursor-plugin/plugin.json +4 -17
  66. package/plugins/cursor/AGENTS.md +1 -1
  67. package/plugins/cursor/README.md +3 -2
  68. package/plugins/cursor/commands/c4a-context.md +76 -3
  69. package/plugins/skills/{c4a-context → context}/SKILL.md +78 -14
  70. package/plugins/skills/context-code-indexer/SKILL.md +20 -0
  71. package/plugins/skills/context-code-indexer/context-indexer.yaml +230 -0
  72. package/plugins/skills/context-code-indexer/references/composers/contracts-and-chains.md +23 -0
  73. package/plugins/skills/context-code-indexer/references/composers/cross-module-chain.md +22 -0
  74. package/plugins/skills/context-code-indexer/references/composers/development-and-delivery.md +22 -0
  75. package/plugins/skills/context-code-indexer/references/composers/event-flow.md +21 -0
  76. package/plugins/skills/context-code-indexer/references/composers/examples-and-documentation.md +22 -0
  77. package/plugins/skills/context-code-indexer/references/composers/persistence-boundary.md +21 -0
  78. package/plugins/skills/context-code-indexer/references/composers/protocol-boundary.md +22 -0
  79. package/plugins/skills/context-code-indexer/references/composers/public-contract.md +23 -0
  80. package/plugins/skills/context-code-indexer/references/indexer.md +49 -0
  81. package/plugins/skills/context-code-indexer/references/metrics.md +201 -0
  82. package/plugins/skills/context-code-indexer/templates/adapter-integration.md +119 -0
  83. package/plugins/skills/context-code-indexer/templates/api-service.md +118 -0
  84. package/plugins/skills/context-code-indexer/templates/background-runtime.md +109 -0
  85. package/plugins/skills/context-code-indexer/templates/cli-tool.md +129 -0
  86. package/plugins/skills/context-code-indexer/templates/component-library.md +99 -0
  87. package/plugins/skills/context-code-indexer/templates/contract-source.md +73 -0
  88. package/plugins/skills/context-code-indexer/templates/data-sync-reconciliation.md +77 -0
  89. package/plugins/skills/context-code-indexer/templates/derived-generated-source.md +117 -0
  90. package/plugins/skills/context-code-indexer/templates/domain-service.md +109 -0
  91. package/plugins/skills/context-code-indexer/templates/event-consumer.md +62 -0
  92. package/plugins/skills/context-code-indexer/templates/gateway-facade.md +89 -0
  93. package/plugins/skills/context-code-indexer/templates/monorepo-container.md +124 -0
  94. package/plugins/skills/context-code-indexer/templates/plugin-extension.md +52 -0
  95. package/plugins/skills/context-code-indexer/templates/sdk-library.md +132 -0
  96. package/plugins/skills/context-code-indexer/templates/storage-repository.md +56 -0
  97. package/plugins/skills/context-code-indexer/templates/web-application.md +146 -0
  98. package/plugins/skills/context-code-indexer/tests/fixtures/chapters.json +226 -0
  99. package/plugins/skills/context-code-indexer/tests/fixtures/composers.json +82 -0
  100. package/plugins/skills/context-code-indexer/tests/fixtures/profiles.json +210 -0
  101. package/plugins/skills/context-code-indexer/tests/fixtures/scenarios.json +122 -0
  102. package/plugins/skills/context-markdown-indexer/SKILL.md +20 -0
  103. package/plugins/skills/context-markdown-indexer/context-indexer.yaml +147 -0
  104. package/plugins/skills/context-markdown-indexer/references/classification.md +63 -0
  105. package/plugins/skills/context-markdown-indexer/references/editorial-policy.md +106 -0
  106. package/plugins/skills/context-markdown-indexer/references/indexer.md +23 -0
  107. package/plugins/skills/context-markdown-indexer/references/semantic-planning.md +146 -0
  108. package/plugins/skills/context-markdown-indexer/references/structure-and-artifacts.md +109 -0
  109. package/plugins/skills/context-markdown-indexer/tests/fixtures/anonymous.json +31 -0
  110. package/plugins/skills/context-markdown-indexer/tests/fixtures/editorial.json +309 -0
  111. package/plugins/skills/context-markdown-indexer/tests/fixtures/migration-equivalence.json +186 -0
  112. package/plugins/skills/context-markdown-indexer/tests/fixtures/profiles.json +171 -0
  113. package/plugins/skills/context-markdown-indexer/tests/fixtures/routing.json +151 -0
  114. package/providers/context/actions/accept-main-index-run.yaml +7 -0
  115. package/providers/context/actions/accept-material-answer-run.yaml +7 -0
  116. package/providers/context/actions/accept-post-author-composer-run.yaml +7 -0
  117. package/providers/context/actions/actualize-material-answer-bindings.yaml +8 -0
  118. package/providers/context/actions/apply-document-optimization-guidance.yaml +5 -0
  119. package/providers/context/actions/apply-indexer-project.yaml +7 -0
  120. package/providers/context/actions/audit-material-gap-state.yaml +8 -0
  121. package/providers/context/actions/audit-projected-artifact-fan-out.yaml +8 -0
  122. package/providers/context/actions/authorize-indexer-contract-overlay.yaml +7 -0
  123. package/providers/context/actions/authorize-indexer-dependencies.yaml +7 -0
  124. package/providers/context/actions/authorize-indexer-program-execution.yaml +7 -0
  125. package/providers/context/actions/build-main-index-author-worksets.yaml +7 -0
  126. package/providers/context/actions/build-main-index-catalog-fallback.yaml +7 -0
  127. package/providers/context/actions/build-main-index-partition-worksets.yaml +7 -0
  128. package/providers/context/actions/build-material-question-workset.yaml +7 -0
  129. package/providers/context/actions/build-post-author-composer-worksets.yaml +7 -0
  130. package/providers/context/actions/build-question-target-inventory.yaml +7 -0
  131. package/providers/context/actions/build-subject-catalog.yaml +7 -0
  132. package/providers/context/actions/build-target-resolution-views.yaml +7 -0
  133. package/providers/context/actions/checkpoint-material-answer-review.yaml +8 -0
  134. package/providers/context/actions/checkpoint-material-gaps.yaml +8 -0
  135. package/providers/context/actions/close-indexer-approved-knowledge.yaml +8 -0
  136. package/providers/context/actions/compile-indexer-candidates.yaml +8 -0
  137. package/providers/context/actions/compose-indexer-post-author-fragments.yaml +7 -0
  138. package/providers/context/actions/configure-community-indexer-fallback.yaml +6 -0
  139. package/providers/context/actions/configure-indexer-providers.yaml +6 -0
  140. package/providers/context/actions/confirm-index-requirement-workset.yaml +8 -0
  141. package/providers/context/actions/confirm-subject-reidentification.yaml +8 -0
  142. package/providers/context/actions/converge-main-index-partition-run.yaml +7 -0
  143. package/providers/context/actions/discover-markdown-indexer-providers.yaml +6 -0
  144. package/providers/context/actions/evaluate-material-gaps.yaml +8 -0
  145. package/providers/context/actions/fail-main-index-run.yaml +7 -0
  146. package/providers/context/actions/fail-material-answer-run.yaml +7 -0
  147. package/providers/context/actions/fail-post-author-composer-run.yaml +7 -0
  148. package/providers/context/actions/inspect-index-candidate-review-readiness.yaml +8 -0
  149. package/providers/context/actions/inspect-index-profile-failure.yaml +7 -0
  150. package/providers/context/actions/inspect-indexer-dependencies.yaml +7 -0
  151. package/providers/context/actions/inspect-indexer-program-execution.yaml +7 -0
  152. package/providers/context/actions/inspect-indexer-project-proposal.yaml +7 -0
  153. package/providers/context/actions/inspect-markdown-provider-capture.yaml +7 -0
  154. package/providers/context/actions/inspect-material-answer-review.yaml +8 -0
  155. package/providers/context/actions/materialize-indexer-instructions.yaml +7 -0
  156. package/providers/context/actions/observe-indexer-project.yaml +7 -0
  157. package/providers/context/actions/observe-main-index-run-ledger.yaml +7 -0
  158. package/providers/context/actions/observe-material-answer-runs.yaml +7 -0
  159. package/providers/context/actions/observe-post-author-composer-worksets.yaml +7 -0
  160. package/providers/context/actions/override-index-profile-audit.yaml +7 -0
  161. package/providers/context/actions/prepare-indexer-customization-project.yaml +7 -0
  162. package/providers/context/actions/prepare-main-index-run-ledger.yaml +7 -0
  163. package/providers/context/actions/prepare-material-answer-runs.yaml +7 -0
  164. package/providers/context/actions/propose-indexer-customization.yaml +7 -0
  165. package/providers/context/actions/propose-overlay-question-amendment.yaml +7 -0
  166. package/providers/context/actions/rebind-indexer-selection-to-requirement.yaml +7 -0
  167. package/providers/context/actions/reconcile-indexer-results.yaml +7 -0
  168. package/providers/context/actions/record-index-profile-revision.yaml +7 -0
  169. package/providers/context/actions/report-index-profile-failure.yaml +7 -0
  170. package/providers/context/actions/report-indexer-incremental-impact.yaml +8 -0
  171. package/providers/context/actions/resolve-effective-composers.yaml +7 -0
  172. package/providers/context/actions/review-material-answer-candidate.yaml +8 -0
  173. package/providers/context/actions/revise-index-output.yaml +7 -0
  174. package/providers/context/actions/route-index-requirement-confirmation.yaml +8 -0
  175. package/providers/context/actions/route-indexer-provider-selection.yaml +7 -0
  176. package/providers/context/actions/run-indexer-agent-step.yaml +7 -0
  177. package/providers/context/actions/run-indexer-post-author-composer.yaml +7 -0
  178. package/providers/context/actions/run-material-answer-indexers.yaml +7 -0
  179. package/providers/context/actions/start-main-index-run.yaml +7 -0
  180. package/providers/context/actions/start-material-answer-run.yaml +7 -0
  181. package/providers/context/actions/start-post-author-composer-run.yaml +7 -0
  182. package/providers/context/actions/validate-indexer-contract-overlays.yaml +7 -0
  183. package/providers/context/actions/validate-indexer-customization.yaml +7 -0
  184. package/providers/context/actions/validate-indexer-selection-proposal.yaml +7 -0
  185. package/providers/context/actions/validate-main-index-run.yaml +7 -0
  186. package/providers/context/actions/validate-markdown-provider-selection.yaml +7 -0
  187. package/providers/context/actions/validate-subject-key-schemas.yaml +8 -0
  188. package/providers/context/codes.yaml +70 -0
  189. package/providers/context/graphs/indexer.yaml +1068 -0
  190. package/providers/context/graphs/workspace.yaml +20 -1
  191. package/providers/context/manifest.json +1433 -121
  192. package/providers/context/provider.yaml +3 -2
  193. package/providers/context/resources/manuals/reference/code-extractors.md +2 -2
  194. package/providers/context/resources/manuals/reference/project-api.md +2 -2
  195. package/providers/context/resources/procedures/code-extraction.md +6 -2
  196. package/providers/context/resources/procedures/code-index-audit.md +36 -6
  197. package/providers/context/resources/procedures/document-optimization.md +23 -4
  198. package/providers/context/resources/semantic/code-index/templates/adapter.md +9 -0
  199. package/providers/context/resources/semantic/code-index/templates/contracts-and-chains.md +81 -0
  200. package/providers/context/resources/views/resolved-indexer-instructions.yaml +23 -0
  201. package/providers/context/schemas/document-optimization-decisions.schema.json +1 -1
  202. package/providers/context/schemas/indexer-agent-step-input.schema.json +30 -0
  203. package/providers/context/schemas/indexer-agent-step-result.schema.json +47 -0
  204. package/providers/context/schemas/indexer-candidate-compile-input.schema.json +57 -0
  205. package/providers/context/schemas/indexer-candidate-compile-output.schema.json +38 -0
  206. package/providers/context/schemas/indexer-candidate-review-readiness-input.schema.json +46 -0
  207. package/providers/context/schemas/indexer-candidate-review-readiness-output.schema.json +104 -0
  208. package/providers/context/schemas/indexer-contract-overlay-authorization-input.schema.json +32 -0
  209. package/providers/context/schemas/indexer-contract-overlay-authorization-result.schema.json +121 -0
  210. package/providers/context/schemas/indexer-contract-overlay-validation-input.schema.json +90 -0
  211. package/providers/context/schemas/indexer-contract-overlay-validation-result.schema.json +158 -0
  212. package/providers/context/schemas/indexer-customization-project-preparation-result.schema.json +44 -0
  213. package/providers/context/schemas/indexer-customization-proposal-draft.schema.json +83 -0
  214. package/providers/context/schemas/indexer-customization-validation-result.schema.json +36 -0
  215. package/providers/context/schemas/indexer-dependency-authorization-input.schema.json +71 -0
  216. package/providers/context/schemas/indexer-dependency-authorization-result.schema.json +138 -0
  217. package/providers/context/schemas/indexer-incremental-impact-input.schema.json +31 -0
  218. package/providers/context/schemas/indexer-incremental-impact-output.schema.json +52 -0
  219. package/providers/context/schemas/indexer-main-lifecycle-input.schema.json +187 -0
  220. package/providers/context/schemas/indexer-main-lifecycle-output.schema.json +180 -0
  221. package/providers/context/schemas/indexer-markdown-provider-capture-input.schema.json +17 -0
  222. package/providers/context/schemas/indexer-markdown-provider-capture-output.schema.json +54 -0
  223. package/providers/context/schemas/indexer-markdown-provider-validation-input.schema.json +34 -0
  224. package/providers/context/schemas/indexer-markdown-provider-validation-output.schema.json +75 -0
  225. package/providers/context/schemas/indexer-material-answer-lifecycle-input.schema.json +90 -0
  226. package/providers/context/schemas/indexer-material-answer-lifecycle-output.schema.json +80 -0
  227. package/providers/context/schemas/indexer-material-answer-review-inspection-input.schema.json +32 -0
  228. package/providers/context/schemas/indexer-material-answer-review-inspection-output.schema.json +32 -0
  229. package/providers/context/schemas/indexer-material-answer-review-resolution-input.schema.json +19 -0
  230. package/providers/context/schemas/indexer-material-answer-review-resolution-output.schema.json +87 -0
  231. package/providers/context/schemas/indexer-material-gap-lifecycle-input.schema.json +86 -0
  232. package/providers/context/schemas/indexer-material-gap-lifecycle-output.schema.json +19 -0
  233. package/providers/context/schemas/indexer-materialize-request.schema.json +53 -0
  234. package/providers/context/schemas/indexer-materialized-resource.schema.json +57 -0
  235. package/providers/context/schemas/indexer-overlay-question-amendment.schema.json +13 -0
  236. package/providers/context/schemas/indexer-overlay-question-proposal-input.schema.json +40 -0
  237. package/providers/context/schemas/indexer-overlay-question-rebind-input.schema.json +35 -0
  238. package/providers/context/schemas/indexer-overlay-question-rebind-result.schema.json +25 -0
  239. package/providers/context/schemas/indexer-post-author-fragment-request.schema.json +26 -0
  240. package/providers/context/schemas/indexer-post-author-fragment-result.schema.json +18 -0
  241. package/providers/context/schemas/indexer-post-author-lifecycle-input.schema.json +94 -0
  242. package/providers/context/schemas/indexer-post-author-lifecycle-output.schema.json +72 -0
  243. package/providers/context/schemas/indexer-profile-failure-inspection-input.schema.json +13 -0
  244. package/providers/context/schemas/indexer-profile-failure-inspection-result.schema.json +19 -0
  245. package/providers/context/schemas/indexer-profile-failure-report-input.schema.json +22 -0
  246. package/providers/context/schemas/indexer-profile-failure-report-result.schema.json +49 -0
  247. package/providers/context/schemas/indexer-profile-override-decision.schema.json +20 -0
  248. package/providers/context/schemas/indexer-profile-override-result.schema.json +49 -0
  249. package/providers/context/schemas/indexer-profile-revision-agent-input.schema.json +18 -0
  250. package/providers/context/schemas/indexer-profile-revision-record-input.schema.json +31 -0
  251. package/providers/context/schemas/indexer-profile-revision-record-result.schema.json +45 -0
  252. package/providers/context/schemas/indexer-program-execution-authorization-input.schema.json +145 -0
  253. package/providers/context/schemas/indexer-program-execution-authorization-result.schema.json +60 -0
  254. package/providers/context/schemas/indexer-project-action-result.schema.json +19 -0
  255. package/providers/context/schemas/indexer-project-gate-input.schema.json +100 -0
  256. package/providers/context/schemas/indexer-project-observation-input.schema.json +16 -0
  257. package/providers/context/schemas/indexer-project-observation-result.schema.json +42 -0
  258. package/providers/context/schemas/indexer-provider-route-input.schema.json +55 -0
  259. package/providers/context/schemas/indexer-provider-route-report.schema.json +188 -0
  260. package/providers/context/schemas/indexer-requirement-confirmation-input.schema.json +27 -0
  261. package/providers/context/schemas/indexer-requirement-confirmation-output.schema.json +24 -0
  262. package/providers/context/schemas/indexer-result-reconciliation-input.schema.json +59 -0
  263. package/providers/context/schemas/indexer-result-reconciliation-output.schema.json +43 -0
  264. package/providers/context/schemas/indexer-selection-proposal-input.schema.json +12 -0
  265. package/providers/context/schemas/indexer-selection-proposal-validation.schema.json +23 -0
  266. package/providers/context/schemas/indexer-subject-reidentification-input.schema.json +37 -0
  267. package/providers/context/schemas/indexer-subject-reidentification-output.schema.json +31 -0
  268. package/providers/context/skills/configure-indexer-providers/SKILL.md +58 -0
  269. package/providers/context/skills/prepare-indexer-customization-project/SKILL.md +31 -0
  270. package/providers/context/skills/propose-indexer-customization/SKILL.md +40 -0
  271. package/providers/context/skills/revise-index-output/SKILL.md +12 -0
  272. package/providers/context/skills/run-indexer-agent-step/SKILL.md +20 -0
  273. package/providers/context/skills/run-indexer-post-author-composer/SKILL.md +21 -0
@@ -1,12 +1,13 @@
1
1
  schema: agent-graph.provider.v1
2
2
  id: c4a/context
3
- version: 0.6.19
3
+ version: 0.7.0
4
4
  name: Context workflow
5
5
  description: Internal work contract for Context knowledge workspaces.
6
6
  graphs:
7
7
  - graphs/workspace.yaml
8
+ - graphs/indexer.yaml
8
9
  catalogs:
9
10
  codes: codes.yaml
10
11
  compatibility:
11
- agentGraph: ^0.2.6
12
+ agentGraph: ^0.2.7
12
13
  node: ">=20"
@@ -44,10 +44,10 @@ Current reusable capabilities are:
44
44
 
45
45
  | Source fact | Preferred capability | Lifecycle integration |
46
46
  |---|---|---|
47
- | TypeScript/TSX package or file scope | `extractTs()` | Context-owned phase |
47
+ | TypeScript/JavaScript package or TSX/JSX file scope | `extractTs()` | Context-owned phase |
48
48
  | Go declarations, imports, calls, and common HTTP routes | `@c4a/extract-go` | call from `extractCustom()` |
49
49
  | Rush workspace packages, tags, dependencies, entries, and owners | `@c4a/extract-rush` | call from `extractCustom()`; may complement a language extractor |
50
- | React Router route declarations | `extractReactRouterRoutes()` from `@c4a/extract-ts` | call from `extractCustom()`; complements TypeScript symbols |
50
+ | React Router route declarations | `extractReactRouterRoutes()` from `@c4a/extract-ts` | call from `extractCustom()`; complements ECMAScript symbols |
51
51
  | Rust, Python, Java/JVM, or an unsupported framework/protocol | no assumed built-in parser | project-owned `extractCustom()` adapter |
52
52
 
53
53
  The custom extraction preview verifies this selection mechanically. Context
@@ -593,7 +593,7 @@ does not infer relationships or inject relation markers into verbatim body.
593
593
 
594
594
  ### `extractTs`
595
595
 
596
- Extract exported TypeScript / TSX symbols into draft candidates:
596
+ Extract exported TypeScript / JavaScript / TSX / JSX symbols into draft candidates:
597
597
 
598
598
  ```ts
599
599
  extractTs({
@@ -608,7 +608,7 @@ Options:
608
608
  |---|---|
609
609
  | `source` | `source("date", "module")` for one repo module |
610
610
  | `collection` | Code extraction uses `"codeindex"` |
611
- | `include` | Optional glob list inside the selected source; default is `["src/**/*.{ts,tsx}"]` |
611
+ | `include` | Optional glob list inside the selected source; default is `["src/**/*.{ts,tsx,mts,cts,js,jsx,mjs,cjs}"]` |
612
612
  | `mode` | `"exports"` (default) traces public exports from automatic or configured entries; `"scan"` uses every file matched by `include` as an entry root |
613
613
  | `entries` | Optional source-relative entry files for `"exports"` mode. They override `package.json` entry detection and live only in the Context project configuration |
614
614
  | `exportedOnly` | Defaults to `true` in `"exports"` mode and `false` in `"scan"` mode |
@@ -77,6 +77,10 @@ separately, together with each index unit's output owner, output profile,
77
77
  projected Markdown count, total bytes, largest sampled page, and risk flags.
78
78
  For custom phases, also report detected structural probes, covered and uncovered
79
79
  probe counts, representative evidence paths, and the affected output profile.
80
+ The preview command returns a bounded summary plus one digest-bound item view.
81
+ Follow its `next_action.command` pages until `preview_items_complete` when the
82
+ Route requires semantic scope, ownership, capability, or scale inspection;
83
+ never recover omitted inventory with host-output slicing.
80
84
  Use resolved entry files, exported/internal counts, and symbol-kind counts as
81
85
  structural scope evidence only. Resolve TypeScript/JavaScript
82
86
  configuration and aliases through the extractor rather than guessing paths
@@ -124,7 +128,7 @@ Do not open Review while another extraction target in the same batch remains.
124
128
  Unchanged approved or rejected symbols do not need another decision; new or
125
129
  changed candidates remain subject to the current Review policy.
126
130
 
127
- For TypeScript sources, Context also carries extractor-reported AST relations
131
+ For TypeScript, JavaScript, TSX, and JSX sources, Context also carries extractor-reported AST relations
128
132
  between selected symbols. A relation is projected only when both endpoints
129
133
  resolve uniquely inside the selected module; external, unselected, and
130
134
  ambiguous endpoints are counted as omissions instead of guessed. The extract
@@ -142,7 +146,7 @@ source-backed extraction that found no approved edges from an older or
142
146
  otherwise unknown relationship mode. Never infer missing edges from symbol
143
147
  co-occurrence, filenames, or package size.
144
148
 
145
- When the built-in TypeScript extractor cannot represent the code source, use a
149
+ When the built-in ECMAScript-family extractor cannot represent the code source, use a
146
150
  declared `extractCustom` phase. The project-owned callback returns candidate
147
151
  semantics plus structured source evidence; Context owns canonical refs,
148
152
  fingerprints, candidate storage, Review snapshots, freshness, and rerun cleanup.
@@ -13,6 +13,33 @@ scope, and decides whether the index is fit for its declared output profiles.
13
13
  Reader metrics exclude Context lifecycle comments and evidence annotations.
14
14
  Improve the source-backed knowledge itself; do not change Markdown syntax,
15
15
  sentence count, or pagination solely to influence a mechanical counter.
16
+ The complete inventory is evidence, not the default reader-facing output. Do
17
+ not create one sentence, bullet, table row, or page for every discovered file
18
+ or symbol merely to satisfy coverage or density. Group related identities by a
19
+ reader-visible capability, entrypoint, protocol boundary, lifecycle stage, or
20
+ handoff, then explain the group's responsibility, stable inputs and outputs,
21
+ state or failure boundary when applicable, next handoff, and exact supporting
22
+ sources. A granular catalog is appropriate only for a declared public API,
23
+ protocol, or command reference.
24
+
25
+ When the report shows low density, add source-backed explanation or a complete
26
+ relationship chain. Never add repeated `Observed ...` rows. When symbol
27
+ coverage is low, use a verified evidence-backed group or a profile-appropriate
28
+ catalog instead of copying the inventory into prose. Normalized template
29
+ repetitions do not count as semantic facts, and enumeration-heavy output has a
30
+ profile-specific ceiling.
31
+
32
+ Identity groups and chain candidates are mechanical contracts, not optional
33
+ notes. A group counts only when its members belong to the target inventory, its
34
+ source files belong to the eligible inventory, and its reader-facing page cites
35
+ those files. Every chain candidate must be documented, merged into a documented
36
+ candidate, excluded with a concrete reason, or routed to missing-material input.
37
+ For each discovered external boundary family, retain a representative
38
+ source-backed chain or an explicit material gap.
39
+ When the boundary inventory contains adjacent families such as operation and
40
+ handler, handler and downstream, command and effect, event and processor, or a
41
+ cross-source handoff, the adapter must return the corresponding candidate
42
+ family. Returning an empty candidate list does not bypass chain review.
16
43
 
17
44
  The report contains no aggregate score. Every dimension is computed
18
45
  independently with its observed value, floor, recommended target, ceiling,
@@ -22,12 +49,15 @@ dimension. Every elevated signal must receive an assessment tied to inspected
22
49
  content. Submit one `context.code-index-audit-decision.v1` payload for the
23
50
  complete batch.
24
51
 
25
- Read the complete inventory before deciding. It separates eligible and
26
- analyzed files/LOC, read documents, target and exported symbols, stable entries,
27
- protocol boundaries, exclusions, and parser gaps. For each failed or
28
- below-target dimension, use the returned uncovered identities, affected pages,
29
- recommended template resources, and action vocabulary. Do not replace those
30
- facts with an inferred file list.
52
+ Read the complete digest-bound inventory before deciding. The Route-selected
53
+ audit resource returns one budget-safe inspection command. Execute it and then
54
+ each returned `next_action.command` until `audit_items_complete`; do not use
55
+ host output truncation or shell slicing as pagination. The item stream separates
56
+ eligible and analyzed files/LOC, read documents, target and exported symbols,
57
+ stable entries, protocol boundaries, exclusions, and parser gaps. For each
58
+ failed or below-target dimension, use the returned uncovered identities,
59
+ affected pages, recommended template resources, and action vocabulary. Do not
60
+ replace those facts with an inferred file list.
31
61
 
32
62
  For custom adapters, file and symbol identity arrays are complete denominators,
33
63
  not samples: their lengths must match the declared counts, analyzed identities
@@ -18,8 +18,9 @@ decision for each fragment to the returned `payload_target`:
18
18
  - `keep` when it is already useful and readable. If the fragment has any
19
19
  mechanical signal, include a concrete `assessment` that explains why every
20
20
  signal is a false positive or why changing the Section would reduce source
21
- fidelity. Name every reported signal code in that assessment so the CLI can
22
- verify complete coverage; do not use one generic assessment for a batch;
21
+ fidelity. `high` signals cannot be kept unchanged. Name every remaining
22
+ `review` signal code in that assessment so the CLI can verify complete
23
+ coverage; do not use one generic assessment for a batch;
23
24
  - `repair` for local typography, Markdown, spacing, or a descriptive link label
24
25
  whose purpose is already stated in the same Section;
25
26
  - `reshape` for source-preserving structural changes such as a wide table into
@@ -33,6 +34,10 @@ with impact and action, and deprecations with a replacement remain knowledge.
33
34
  Mechanical signals are review leads, not a complete readability verdict. Read
34
35
  every fragment even when it has no signal. A mixture of false positives and
35
36
  valid repair candidates does not justify keeping the whole batch unchanged.
37
+ Signals marked `high` are deterministic presentation obligations. A repair or
38
+ reshape is rescanned against the effective replacement and cannot complete
39
+ while one of those signals remains. Signals marked `review` require semantic
40
+ inspection and may be kept only with the signal-specific assessment below.
36
41
  Every actionable signal must end in a safe edit, an eligible omission, a
37
42
  batched input request, or a Section-specific explanation that the signal is a
38
43
  false positive or that the edit would damage source fidelity. Time, token or
@@ -56,6 +61,14 @@ missing-input boundaries. A large repair set is expected work, not a blocker.
56
61
  If an `input_requests` batch remains after completing all independently safe
57
62
  analysis, ask once for that batch and resume from the returned Route.
58
63
 
64
+ If the same current-batch quality problem fails three consecutive apply
65
+ attempts, stop the automatic revision loop and follow
66
+ `route.document-optimization.guidance-required`. Present one aggregated report
67
+ for all affected Sections and ask for content-organization, source-fidelity, or
68
+ missing-material direction. Do not restart Sections that already pass. A
69
+ successful complete-batch apply clears the temporary retry record; retry
70
+ history is never knowledge or package content.
71
+
59
72
  Keep all work inside the same source Section. Preserve link destinations,
60
73
  images, code, commands, numbers, identifiers, conditions, and source markers
61
74
  exactly. Do not introduce facts, infer an answer, or replace a complete
@@ -64,8 +77,14 @@ contract with a summary.
64
77
  After the complete payload is ready, execute the exact `next_action.command`
65
78
  returned by the plan. Context rejects stale, incomplete, duplicate,
66
79
  cross-Section, protected-value, semantically broad, or unexplained signaled
67
- `keep` decisions. The assessment is used only to audit the current decision and
68
- is not stored in approved knowledge, revisions, or package output. Unchanged
80
+ `keep` decisions. It also rescans every repair and reshape against the same
81
+ mechanical analyzer before writing the revision; submitting a decision is not
82
+ proof that the effective Markdown is clean. A repair or reshape that retains a
83
+ review-confidence signal must include a Section-specific assessment naming
84
+ that signal. The apply result reports each signal as `resolved` or `justified`
85
+ with its source and post-revision range. The assessment and rescan detail are
86
+ used only to audit the current decision and are not stored in approved
87
+ knowledge, revisions, or package output. Unchanged
69
88
  Sections reuse their previous decision; changed Sections alone return to this
70
89
  phase.
71
90
 
@@ -89,6 +89,15 @@ helper separately.
89
89
  Add structured edges only for concrete registration and call paths. Keep a
90
90
  narrative locator when dynamic dispatch prevents an unambiguous edge.
91
91
 
92
+ Return `identityGroups` when several target identities share one explained
93
+ adapter responsibility. Return every source-backed adjacency in
94
+ `chainCandidates`, then provide one `chainCandidateDecisions` record for each
95
+ candidate. A documented decision names the reader-facing view and emits its
96
+ structured edge; an equivalent candidate merges into that canonical candidate;
97
+ false positives and missing external material use `exclude` or `request-input`
98
+ with a concrete reason. Read `contracts-and-chains.md` for the complete generic
99
+ contract.
100
+
92
101
  ## Template composition examples
93
102
 
94
103
  - An HTTP endpoint backed by an RPC client is `api-service` + `adapter`; combine
@@ -0,0 +1,81 @@
1
+ ---
2
+ id: semantic.code-index.template.contracts-and-chains
3
+ kind: procedure
4
+ media-type: text/markdown
5
+ ---
6
+
7
+ # Contracts, identity groups, and execution chains
8
+
9
+ Use this resource after module classification when a code index must connect
10
+ stable identities without turning the inventory into reader-facing prose. It
11
+ applies to application, service, library, runtime, command, adapter, and
12
+ cross-source units.
13
+
14
+ ## Separate inspection facts from reader content
15
+
16
+ The adapter inventory is complete machine evidence. A reader page should group
17
+ members only when they share a source-backed responsibility, boundary, or
18
+ lifecycle. Do not create one sentence, bullet, row, or page per discovered
19
+ identity.
20
+
21
+ An `identityGroups` record must provide:
22
+
23
+ - a stable group `id`;
24
+ - the exact target `members` from the same index-unit inventory;
25
+ - one reader-facing `viewRef` that explains their common responsibility;
26
+ - `sourceFiles` from the eligible-file inventory that prove membership.
27
+
28
+ The referenced page must cite every declared source file. A group does not pass
29
+ coverage merely because its members exist in frontmatter or evidence.
30
+
31
+ ## Discover chain candidates
32
+
33
+ Emit a candidate only when code structure or an authoritative declaration
34
+ supports both adjacent endpoints. Supported families are:
35
+
36
+ - `entry-operation`;
37
+ - `operation-handler`;
38
+ - `handler-downstream`;
39
+ - `event-processing`;
40
+ - `command-effect`;
41
+ - `export-implementation`;
42
+ - `cross-source-handoff`.
43
+
44
+ Each candidate records a stable `id`, `from`, `to`, confidence, and the exact
45
+ eligible `sourceFiles` that support the adjacency. Imports, filenames, symbol
46
+ co-occurrence, or similar names alone are ambiguous evidence; mark such a
47
+ candidate ambiguous or request material instead of asserting a runtime chain.
48
+
49
+ ## Decide every candidate
50
+
51
+ Every discovered candidate receives exactly one decision:
52
+
53
+ - `document`: add a source-backed structured edge and name its reader-facing
54
+ `viewRef`;
55
+ - `merge`: point `canonicalChainId` at an equivalent candidate whose decision
56
+ is `document`;
57
+ - `exclude`: explain why the static match is not a stable runtime relation;
58
+ - `request-input`: explain which external protocol, runtime registration, or
59
+ authoritative material is missing.
60
+
61
+ Decision coverage is 100%. Excluding all candidates does not close an external
62
+ boundary family: at least one representative chain must be documented, merged
63
+ into a documented chain, or explicitly require material.
64
+
65
+ ## Reader-facing chain blueprint
66
+
67
+ ```markdown
68
+ ## <Reader goal or boundary>
69
+
70
+ <Explain the starting trigger and the stable outcome.>
71
+
72
+ 1. **Entry or trigger** — <identity and responsibility>.
73
+ 2. **Operation or handler** — <validation, transformation, or state change>.
74
+ 3. **External handoff or effect** — <contract, ownership, and next boundary>.
75
+
76
+ Failure and retry boundary: <only source-backed behavior>.
77
+ Evidence: <section-scoped locators for each adjacent handoff>.
78
+ ```
79
+
80
+ Remove stages that do not apply. Do not leave empty template headings, repeat a
81
+ module inventory, or infer missing runtime behavior.
@@ -0,0 +1,23 @@
1
+ schema: agent-graph.resource.v2
2
+ id: resolved-indexer-instructions
3
+ kind: procedure
4
+ mediaType: text/markdown
5
+ materializer: actions/materialize-indexer-instructions.yaml
6
+ input:
7
+ protocol: context.indexer.materialize-request/v1
8
+ handler: context.materialize-indexer-instructions/v1
9
+ resource_id: resolved-indexer-instructions
10
+ indexer_id: __runtime__
11
+ provider_id: __runtime__
12
+ provider_fingerprint: sha256:0000000000000000000000000000000000000000000000000000000000000000
13
+ provider_integrity: sha256:0000000000000000000000000000000000000000000000000000000000000000
14
+ manifest_digest: sha256:0000000000000000000000000000000000000000000000000000000000000000
15
+ requirement_set_digest: sha256:0000000000000000000000000000000000000000000000000000000000000000
16
+ workset_ref: __runtime__
17
+ workset_digest: sha256:0000000000000000000000000000000000000000000000000000000000000000
18
+ profile: __runtime__
19
+ composer_id: null
20
+ instruction_set_digest: sha256:0000000000000000000000000000000000000000000000000000000000000000
21
+ customization_fingerprint: sha256:0000000000000000000000000000000000000000000000000000000000000000
22
+ request_digest: sha256:0000000000000000000000000000000000000000000000000000000000000000
23
+ description: Runtime-bound exact Provider instructions; Context replaces the reserved template input before exposing this Route.
@@ -26,7 +26,7 @@
26
26
  "assessment": {
27
27
  "type": "string",
28
28
  "minLength": 12,
29
- "description": "Required when keeping a Section that has mechanical signals. Explain why the signals are false positives or why changing the Section would reduce source fidelity. This value is decision-only and is not published."
29
+ "description": "Required when keeping a Section that has mechanical signals and when a repair or reshape retains review-confidence signals after rescan. Name every remaining signal code and explain why it is a false positive or why changing the Section would reduce source fidelity. Repair and reshape replacements cannot retain high-confidence signals. This value is decision-only and is not published."
30
30
  },
31
31
  "reason": {
32
32
  "enum": [
@@ -0,0 +1,30 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.agent-step-input/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": ["protocol", "run_request", "instruction_request_digest", "input_digest"],
7
+ "properties": {
8
+ "protocol": { "const": "context.indexer.agent-step-input/v1" },
9
+ "run_request": {
10
+ "type": "object",
11
+ "required": ["protocol", "operation", "workset", "composition_input", "final_authority", "execution_request_digest"],
12
+ "properties": {
13
+ "protocol": { "const": "context.indexer.run-request/v1" },
14
+ "operation": { "enum": ["main-index", "material-answer"] },
15
+ "workset": { "type": "object" },
16
+ "composition_input": { "type": "object" },
17
+ "final_authority": { "type": "object" },
18
+ "execution_request_digest": { "$ref": "#/$defs/digest" }
19
+ }
20
+ },
21
+ "instruction_request_digest": { "$ref": "#/$defs/digest" },
22
+ "input_digest": { "$ref": "#/$defs/digest" }
23
+ },
24
+ "$defs": {
25
+ "digest": {
26
+ "type": "string",
27
+ "pattern": "^sha256:[a-f0-9]{64}$"
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,47 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.agent-step-result/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "protocol",
8
+ "input_digest",
9
+ "instruction_payload_digest",
10
+ "run_result",
11
+ "execution_receipt",
12
+ "stable_result_digest"
13
+ ],
14
+ "properties": {
15
+ "protocol": { "const": "context.indexer.agent-step-result/v1" },
16
+ "input_digest": { "$ref": "#/$defs/digest" },
17
+ "instruction_payload_digest": { "$ref": "#/$defs/digest" },
18
+ "run_result": {
19
+ "type": "object",
20
+ "required": ["protocol", "operation", "result"],
21
+ "properties": {
22
+ "protocol": { "const": "context.indexer.run-result/v1" },
23
+ "operation": { "enum": ["main-index", "material-answer"] },
24
+ "result": { "type": "object" }
25
+ }
26
+ },
27
+ "execution_receipt": {
28
+ "type": "object",
29
+ "additionalProperties": false,
30
+ "required": ["adapter", "adapter_version", "execution_id", "receipt_digest"],
31
+ "properties": {
32
+ "adapter": { "type": "string", "minLength": 1 },
33
+ "adapter_version": { "type": "string", "minLength": 1 },
34
+ "model": { "type": "string", "minLength": 1 },
35
+ "execution_id": { "type": "string", "minLength": 1 },
36
+ "receipt_digest": { "$ref": "#/$defs/digest" }
37
+ }
38
+ },
39
+ "stable_result_digest": { "$ref": "#/$defs/digest" }
40
+ },
41
+ "$defs": {
42
+ "digest": {
43
+ "type": "string",
44
+ "pattern": "^sha256:[a-f0-9]{64}$"
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.candidate-compile-input/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "protocol",
8
+ "accepted_result_refs",
9
+ "subject_key_schema_set",
10
+ "layout_proposal_set",
11
+ "layout_transition",
12
+ "layout_change_confirmations",
13
+ "rendered_artifacts"
14
+ ],
15
+ "properties": {
16
+ "protocol": { "const": "context.indexer.candidate-compile-input/v1" },
17
+ "accepted_result_refs": {
18
+ "type": "array",
19
+ "minItems": 1,
20
+ "items": {
21
+ "type": "object",
22
+ "additionalProperties": false,
23
+ "required": [
24
+ "workset_digest",
25
+ "execution_request_digest",
26
+ "acceptance_digest",
27
+ "artifact_result_digest"
28
+ ],
29
+ "properties": {
30
+ "workset_digest": { "$ref": "#/$defs/digest" },
31
+ "execution_request_digest": { "$ref": "#/$defs/digest" },
32
+ "acceptance_digest": { "$ref": "#/$defs/digest" },
33
+ "artifact_result_digest": { "$ref": "#/$defs/digest" }
34
+ }
35
+ }
36
+ },
37
+ "subject_key_schema_set": { "type": "object" },
38
+ "layout_proposal_set": { "type": "object" },
39
+ "layout_transition": { "type": "object" },
40
+ "layout_change_confirmations": { "type": "array", "items": { "type": "object" } },
41
+ "rendered_artifacts": {
42
+ "type": "array",
43
+ "items": {
44
+ "type": "object",
45
+ "additionalProperties": false,
46
+ "required": ["artifact_result_digest", "artifacts"],
47
+ "properties": {
48
+ "artifact_result_digest": { "$ref": "#/$defs/digest" },
49
+ "artifacts": { "type": "array", "items": { "type": "object" } }
50
+ }
51
+ }
52
+ }
53
+ },
54
+ "$defs": {
55
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
56
+ }
57
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.candidate-compile-action/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "protocol",
8
+ "outcome",
9
+ "graph_outcome",
10
+ "compile",
11
+ "transaction",
12
+ "receipt_digest"
13
+ ],
14
+ "properties": {
15
+ "protocol": { "const": "context.indexer.candidate-compile-action/v1" },
16
+ "outcome": { "const": "indexer-candidates-compiled" },
17
+ "graph_outcome": { "const": "completed" },
18
+ "compile": {
19
+ "type": "object",
20
+ "required": [
21
+ "protocol",
22
+ "layout_proposal_set_digest",
23
+ "layout_transition_digest",
24
+ "accepted_result_set_digest",
25
+ "result_bindings",
26
+ "files",
27
+ "artifact_manifest",
28
+ "physical_artifact_audit",
29
+ "compile_digest"
30
+ ]
31
+ },
32
+ "transaction": { "type": "object" },
33
+ "receipt_digest": { "$ref": "#/$defs/digest" }
34
+ },
35
+ "$defs": {
36
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
37
+ }
38
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.candidate-review-readiness-input/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "protocol",
8
+ "binding",
9
+ "precompile_audit_report_digest",
10
+ "postcompile_audit_report_digest",
11
+ "profile_override_receipt_digest",
12
+ "input_digest"
13
+ ],
14
+ "properties": {
15
+ "protocol": { "const": "context.indexer.candidate-review-readiness-input/v1" },
16
+ "binding": {
17
+ "type": "object",
18
+ "additionalProperties": false,
19
+ "required": [
20
+ "requirement_set_digest",
21
+ "registry_digest",
22
+ "inventory_digest",
23
+ "layout_digest",
24
+ "candidate_set_digest",
25
+ "effective_revision_digest"
26
+ ],
27
+ "properties": {
28
+ "requirement_set_digest": { "$ref": "#/$defs/digest" },
29
+ "registry_digest": { "$ref": "#/$defs/digest" },
30
+ "inventory_digest": { "$ref": "#/$defs/digest" },
31
+ "layout_digest": { "$ref": "#/$defs/digest" },
32
+ "candidate_set_digest": { "$ref": "#/$defs/digest" },
33
+ "effective_revision_digest": { "$ref": "#/$defs/digest" }
34
+ }
35
+ },
36
+ "precompile_audit_report_digest": { "$ref": "#/$defs/digest" },
37
+ "postcompile_audit_report_digest": { "$ref": "#/$defs/digest" },
38
+ "profile_override_receipt_digest": {
39
+ "oneOf": [{ "$ref": "#/$defs/digest" }, { "type": "null" }]
40
+ },
41
+ "input_digest": { "$ref": "#/$defs/digest" }
42
+ },
43
+ "$defs": {
44
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
45
+ }
46
+ }