@c4a/context-cli 0.7.1 → 0.7.5

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 (161) hide show
  1. package/README.md +18 -39
  2. package/README.zh-CN.md +13 -27
  3. package/cli.js +64945 -81995
  4. package/indexers/bundles/context-code-indexer/SKILL.md +30 -3
  5. package/indexers/bundles/context-code-indexer/context-indexer.yaml +3 -8
  6. package/indexers/bundles/context-code-indexer/references/indexer.md +110 -7
  7. package/indexers/bundles/context-code-indexer/references/metrics.md +143 -37
  8. package/indexers/bundles/context-code-indexer/templates/adapter-integration.md +2 -2
  9. package/indexers/bundles/context-code-indexer/templates/component-library.md +8 -0
  10. package/indexers/bundles/context-code-indexer/templates/gateway-facade.md +16 -0
  11. package/indexers/bundles/context-markdown-indexer/SKILL.md +13 -3
  12. package/indexers/bundles/context-markdown-indexer/context-indexer.yaml +20 -7
  13. package/indexers/bundles/context-markdown-indexer/references/indexer.md +33 -4
  14. package/indexers/bundles/context-markdown-indexer/references/semantic-planning.md +30 -14
  15. package/indexers/bundles/context-markdown-indexer/references/structure-and-artifacts.md +6 -0
  16. package/indexers/bundles/context-markdown-indexer/tests/fixtures/anonymous.json +1 -1
  17. package/indexers/bundles/context-markdown-indexer/tests/fixtures/profiles.json +13 -13
  18. package/indexers/bundles/context-markdown-indexer/tests/fixtures/routing.json +122 -0
  19. package/indexers/contracts/operator-contract.json +2 -2
  20. package/indexers/contracts/profile-contract.json +3819 -454
  21. package/indexers/release-manifest.json +22 -22
  22. package/package.json +12 -2
  23. package/plugins/VERSION +1 -1
  24. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  25. package/plugins/claude/commands/context.md +56 -107
  26. package/plugins/codex/.codex-plugin/plugin.json +2 -2
  27. package/plugins/codex/skills/context/SKILL.md +56 -107
  28. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  29. package/plugins/cursor/commands/c4a-context.md +56 -107
  30. package/plugins/skills/context/SKILL.md +56 -107
  31. package/plugins/skills/context-code-indexer/SKILL.md +30 -3
  32. package/plugins/skills/context-code-indexer/context-indexer.yaml +3 -8
  33. package/plugins/skills/context-code-indexer/references/indexer.md +110 -7
  34. package/plugins/skills/context-code-indexer/references/metrics.md +143 -37
  35. package/plugins/skills/context-code-indexer/templates/adapter-integration.md +2 -2
  36. package/plugins/skills/context-code-indexer/templates/component-library.md +8 -0
  37. package/plugins/skills/context-code-indexer/templates/gateway-facade.md +16 -0
  38. package/plugins/skills/context-markdown-indexer/SKILL.md +13 -3
  39. package/plugins/skills/context-markdown-indexer/context-indexer.yaml +20 -7
  40. package/plugins/skills/context-markdown-indexer/references/indexer.md +33 -4
  41. package/plugins/skills/context-markdown-indexer/references/semantic-planning.md +30 -14
  42. package/plugins/skills/context-markdown-indexer/references/structure-and-artifacts.md +6 -0
  43. package/plugins/skills/context-markdown-indexer/tests/fixtures/anonymous.json +1 -1
  44. package/plugins/skills/context-markdown-indexer/tests/fixtures/profiles.json +13 -13
  45. package/plugins/skills/context-markdown-indexer/tests/fixtures/routing.json +122 -0
  46. package/providers/context/actions/advance-current-indexer-lifecycle.yaml +6 -0
  47. package/providers/context/actions/authorize-current-indexer-provider-program.yaml +6 -0
  48. package/providers/context/actions/configure-indexer-providers.yaml +1 -1
  49. package/providers/context/actions/finalize-current-indexer-provider-selection.yaml +5 -0
  50. package/providers/context/actions/materialize-indexer-workset-view.yaml +7 -0
  51. package/providers/context/actions/resolve-current-indexer-gate.yaml +6 -0
  52. package/providers/context/actions/resolve-current-indexer-provider.yaml +6 -0
  53. package/providers/context/actions/run-indexer-lifecycle.yaml +0 -1
  54. package/providers/context/actions/run-indexer-post-author-composer.yaml +2 -2
  55. package/providers/context/codes.yaml +8 -22
  56. package/providers/context/graphs/indexer.yaml +95 -564
  57. package/providers/context/graphs/workspace.yaml +5 -43
  58. package/providers/context/manifest.json +119 -678
  59. package/providers/context/provider.yaml +1 -1
  60. package/providers/context/resources/dialogue/human-gates.md +3 -3
  61. package/providers/context/resources/dialogue/knowledge-review.md +6 -3
  62. package/providers/context/resources/manuals/reference/package-templates.md +2 -3
  63. package/providers/context/resources/manuals/reference/project-api.md +52 -986
  64. package/providers/context/resources/procedures/close-and-build.md +8 -23
  65. package/providers/context/resources/procedures/knowledge-review.md +17 -5
  66. package/providers/context/resources/procedures/source-capture-detailed.md +6 -8
  67. package/providers/context/resources/views/authorized-indexer-workset-view.yaml +15 -0
  68. package/providers/context/resources/views/resolved-indexer-instructions.yaml +2 -4
  69. package/providers/context/schemas/indexer-agent-step-input.schema.json +71 -21
  70. package/providers/context/schemas/indexer-agent-step-result.schema.json +385 -32
  71. package/providers/context/schemas/indexer-authorized-workset-view.schema.json +65 -0
  72. package/providers/context/schemas/indexer-main-lifecycle-input.schema.json +13 -20
  73. package/providers/context/schemas/indexer-main-lifecycle-output.schema.json +17 -2
  74. package/providers/context/schemas/indexer-materialize-request.schema.json +4 -8
  75. package/providers/context/schemas/indexer-materialized-resource.schema.json +8 -1
  76. package/providers/context/schemas/indexer-overlay-question-proposal-input.schema.json +51 -2
  77. package/providers/context/schemas/indexer-workset-view-materialization-request.schema.json +35 -0
  78. package/providers/context/skills/authorize-current-indexer-provider-program/SKILL.md +20 -0
  79. package/providers/context/skills/configure-indexer-providers/SKILL.md +47 -33
  80. package/providers/context/skills/resolve-current-indexer-gate/SKILL.md +27 -0
  81. package/providers/context/skills/resolve-current-indexer-provider/SKILL.md +20 -0
  82. package/providers/context/skills/run-indexer-agent-step/SKILL.md +49 -10
  83. package/providers/context/skills/run-indexer-lifecycle/SKILL.md +19 -13
  84. package/providers/context/skills/run-indexer-post-author-composer/SKILL.md +52 -11
  85. package/docs/document-optimization.md +0 -82
  86. package/docs/document-optimization.zh-CN.md +0 -70
  87. package/indexers/capability-manifest.json +0 -35
  88. package/indexers/contracts/hard-rule-conformance.json +0 -2644
  89. package/providers/context/actions/accept-main-index-run.yaml +0 -7
  90. package/providers/context/actions/accept-material-answer-run.yaml +0 -7
  91. package/providers/context/actions/accept-post-author-composer-run.yaml +0 -7
  92. package/providers/context/actions/actualize-material-answer-bindings.yaml +0 -8
  93. package/providers/context/actions/audit-material-gap-state.yaml +0 -8
  94. package/providers/context/actions/audit-projected-artifact-fan-out.yaml +0 -8
  95. package/providers/context/actions/build-main-index-author-worksets.yaml +0 -7
  96. package/providers/context/actions/build-main-index-catalog-fallback.yaml +0 -7
  97. package/providers/context/actions/build-main-index-partition-worksets.yaml +0 -7
  98. package/providers/context/actions/build-material-question-workset.yaml +0 -7
  99. package/providers/context/actions/build-post-author-composer-worksets.yaml +0 -7
  100. package/providers/context/actions/build-question-target-inventory.yaml +0 -7
  101. package/providers/context/actions/build-subject-catalog.yaml +0 -7
  102. package/providers/context/actions/build-target-resolution-views.yaml +0 -7
  103. package/providers/context/actions/checkpoint-material-answer-review.yaml +0 -8
  104. package/providers/context/actions/checkpoint-material-gaps.yaml +0 -8
  105. package/providers/context/actions/close-indexer-approved-knowledge.yaml +0 -8
  106. package/providers/context/actions/compose-indexer-post-author-fragments.yaml +0 -7
  107. package/providers/context/actions/converge-main-index-partition-run.yaml +0 -7
  108. package/providers/context/actions/evaluate-material-gaps.yaml +0 -8
  109. package/providers/context/actions/fail-main-index-run.yaml +0 -7
  110. package/providers/context/actions/fail-material-answer-run.yaml +0 -7
  111. package/providers/context/actions/fail-post-author-composer-run.yaml +0 -7
  112. package/providers/context/actions/inspect-index-candidate-review-readiness.yaml +0 -8
  113. package/providers/context/actions/inspect-index-profile-failure.yaml +0 -7
  114. package/providers/context/actions/inspect-material-answer-review.yaml +0 -8
  115. package/providers/context/actions/observe-main-index-run-ledger.yaml +0 -7
  116. package/providers/context/actions/observe-material-answer-runs.yaml +0 -7
  117. package/providers/context/actions/observe-post-author-composer-worksets.yaml +0 -7
  118. package/providers/context/actions/override-index-profile-audit.yaml +0 -7
  119. package/providers/context/actions/prepare-main-index-run-ledger.yaml +0 -7
  120. package/providers/context/actions/prepare-material-answer-runs.yaml +0 -7
  121. package/providers/context/actions/reconcile-indexer-results.yaml +0 -7
  122. package/providers/context/actions/reconcile-review-identities.yaml +0 -5
  123. package/providers/context/actions/record-index-profile-revision.yaml +0 -7
  124. package/providers/context/actions/report-index-profile-failure.yaml +0 -7
  125. package/providers/context/actions/resolve-effective-composers.yaml +0 -7
  126. package/providers/context/actions/review-material-answer-candidate.yaml +0 -8
  127. package/providers/context/actions/revise-document.yaml +0 -5
  128. package/providers/context/actions/revise-index-output.yaml +0 -7
  129. package/providers/context/actions/run-material-answer-indexers.yaml +0 -7
  130. package/providers/context/actions/start-main-index-run.yaml +0 -7
  131. package/providers/context/actions/start-material-answer-run.yaml +0 -7
  132. package/providers/context/actions/start-post-author-composer-run.yaml +0 -7
  133. package/providers/context/resources/procedures/document-revision.md +0 -36
  134. package/providers/context/resources/views/document-optimization-current.yaml +0 -6
  135. package/providers/context/schemas/indexer-candidate-review-readiness-input.schema.json +0 -46
  136. package/providers/context/schemas/indexer-candidate-review-readiness-output.schema.json +0 -104
  137. package/providers/context/schemas/indexer-lifecycle-continuation.schema.json +0 -15
  138. package/providers/context/schemas/indexer-material-answer-lifecycle-input.schema.json +0 -90
  139. package/providers/context/schemas/indexer-material-answer-lifecycle-output.schema.json +0 -80
  140. package/providers/context/schemas/indexer-material-answer-review-inspection-input.schema.json +0 -32
  141. package/providers/context/schemas/indexer-material-answer-review-inspection-output.schema.json +0 -32
  142. package/providers/context/schemas/indexer-material-answer-review-resolution-input.schema.json +0 -19
  143. package/providers/context/schemas/indexer-material-answer-review-resolution-output.schema.json +0 -87
  144. package/providers/context/schemas/indexer-material-gap-lifecycle-input.schema.json +0 -86
  145. package/providers/context/schemas/indexer-material-gap-lifecycle-output.schema.json +0 -19
  146. package/providers/context/schemas/indexer-post-author-fragment-request.schema.json +0 -26
  147. package/providers/context/schemas/indexer-post-author-fragment-result.schema.json +0 -18
  148. package/providers/context/schemas/indexer-post-author-lifecycle-input.schema.json +0 -94
  149. package/providers/context/schemas/indexer-post-author-lifecycle-output.schema.json +0 -72
  150. package/providers/context/schemas/indexer-profile-failure-inspection-input.schema.json +0 -13
  151. package/providers/context/schemas/indexer-profile-failure-inspection-result.schema.json +0 -19
  152. package/providers/context/schemas/indexer-profile-failure-report-input.schema.json +0 -22
  153. package/providers/context/schemas/indexer-profile-failure-report-result.schema.json +0 -49
  154. package/providers/context/schemas/indexer-profile-override-decision.schema.json +0 -20
  155. package/providers/context/schemas/indexer-profile-override-result.schema.json +0 -49
  156. package/providers/context/schemas/indexer-profile-revision-agent-input.schema.json +0 -18
  157. package/providers/context/schemas/indexer-profile-revision-record-input.schema.json +0 -31
  158. package/providers/context/schemas/indexer-profile-revision-record-result.schema.json +0 -45
  159. package/providers/context/schemas/indexer-result-reconciliation-input.schema.json +0 -59
  160. package/providers/context/schemas/indexer-result-reconciliation-output.schema.json +0 -43
  161. package/providers/context/skills/revise-index-output/SKILL.md +0 -12
@@ -1,47 +1,400 @@
1
1
  {
2
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"
3
+ "$id": "context.indexer.current-action-input/v2",
4
+ "oneOf": [
5
+ { "$ref": "#/$defs/providerSelection" },
6
+ { "$ref": "#/$defs/providerResolution" },
7
+ { "$ref": "#/$defs/providerProgramAuthorization" },
8
+ { "$ref": "#/$defs/partitionBatch" },
9
+ { "$ref": "#/$defs/authorBatch" },
10
+ { "$ref": "#/$defs/postAuthor" },
11
+ { "$ref": "#/$defs/structureReview" },
12
+ { "$ref": "#/$defs/layoutConfirmation" }
13
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": {
14
+ "$defs": {
15
+ "string": { "type": "string", "minLength": 1 },
16
+ "providerSelection": {
19
17
  "type": "object",
20
- "required": ["protocol", "operation", "result"],
18
+ "additionalProperties": false,
19
+ "required": ["stage", "host_visible_skills", "indexers"],
21
20
  "properties": {
22
- "protocol": { "const": "context.indexer.run-result/v1" },
23
- "operation": { "enum": ["main-index", "material-answer"] },
24
- "result": { "type": "object" }
21
+ "stage": { "const": "provider-selection" },
22
+ "host_visible_skills": {
23
+ "type": "array",
24
+ "items": {
25
+ "type": "object",
26
+ "additionalProperties": false,
27
+ "required": ["skill", "version", "source_type"],
28
+ "properties": {
29
+ "skill": { "$ref": "#/$defs/string" },
30
+ "version": { "oneOf": [{ "$ref": "#/$defs/string" }, { "type": "null" }] },
31
+ "source_type": {
32
+ "enum": ["community-plugin", "workspace", "installed-plugin", "marketplace"]
33
+ }
34
+ }
35
+ }
36
+ },
37
+ "indexers": {
38
+ "type": "array",
39
+ "minItems": 1,
40
+ "items": { "type": "object" }
41
+ }
25
42
  }
26
43
  },
27
- "execution_receipt": {
44
+ "providerResolution": {
28
45
  "type": "object",
29
46
  "additionalProperties": false,
30
- "required": ["adapter", "adapter_version", "execution_id", "receipt_digest"],
47
+ "required": ["stage", "result"],
31
48
  "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" }
49
+ "stage": { "const": "provider-resolution" },
50
+ "result": { "type": "object" },
51
+ "managed_output": {
52
+ "type": "object",
53
+ "additionalProperties": false,
54
+ "required": ["ref", "digest", "value"],
55
+ "properties": {
56
+ "ref": { "$ref": "#/$defs/string" },
57
+ "digest": { "$ref": "#/$defs/string" },
58
+ "value": {}
59
+ }
60
+ }
37
61
  }
38
62
  },
39
- "stable_result_digest": { "$ref": "#/$defs/digest" }
40
- },
41
- "$defs": {
42
- "digest": {
43
- "type": "string",
44
- "pattern": "^sha256:[a-f0-9]{64}$"
63
+ "providerProgramAuthorization": {
64
+ "type": "object",
65
+ "additionalProperties": false,
66
+ "required": ["stage", "decision"],
67
+ "properties": {
68
+ "stage": { "const": "provider-program-authorization" },
69
+ "decision": { "enum": ["approved", "rejected"] }
70
+ }
71
+ },
72
+ "partitionBatch": {
73
+ "type": "object",
74
+ "additionalProperties": false,
75
+ "required": ["stage", "results"],
76
+ "properties": {
77
+ "stage": { "const": "partition" },
78
+ "results": {
79
+ "type": "array",
80
+ "minItems": 1,
81
+ "items": {
82
+ "type": "object",
83
+ "additionalProperties": false,
84
+ "required": ["task_key", "result"],
85
+ "properties": {
86
+ "task_key": { "type": "string", "pattern": "^task-[0-9]{3}$" },
87
+ "result": { "$ref": "#/$defs/partition" }
88
+ }
89
+ }
90
+ }
91
+ }
92
+ },
93
+ "partition": {
94
+ "type": "object",
95
+ "additionalProperties": false,
96
+ "required": ["stage", "outcome", "groups", "excluded", "unsupported"],
97
+ "properties": {
98
+ "stage": { "const": "partition" },
99
+ "outcome": {
100
+ "enum": ["complete", "failed"],
101
+ "description": "Use complete when the semantic partition is ready; use failed only with failure details. accepted is not an Agent outcome."
102
+ },
103
+ "groups": { "type": "array", "items": { "$ref": "#/$defs/partitionGroup" } },
104
+ "excluded": { "type": "array", "items": { "$ref": "#/$defs/excluded" } },
105
+ "unsupported": { "type": "array", "items": { "$ref": "#/$defs/unsupported" } },
106
+ "failure": { "$ref": "#/$defs/failure" }
107
+ },
108
+ "allOf": [
109
+ {
110
+ "if": { "properties": { "outcome": { "const": "failed" } } },
111
+ "then": { "required": ["failure"] }
112
+ }
113
+ ]
114
+ },
115
+ "authorBatch": {
116
+ "type": "object",
117
+ "additionalProperties": false,
118
+ "required": ["stage", "results"],
119
+ "properties": {
120
+ "stage": { "const": "author" },
121
+ "results": {
122
+ "type": "array",
123
+ "minItems": 1,
124
+ "items": {
125
+ "type": "object",
126
+ "additionalProperties": false,
127
+ "required": ["task_key", "result"],
128
+ "properties": {
129
+ "task_key": { "type": "string", "pattern": "^task-[0-9]{3}$" },
130
+ "result": { "$ref": "#/$defs/author" }
131
+ }
132
+ }
133
+ }
134
+ }
135
+ },
136
+ "partitionGroup": {
137
+ "type": "object",
138
+ "additionalProperties": false,
139
+ "required": ["key", "title", "reader_task", "subject", "subject_intent", "members", "questions", "question_targets", "outline"],
140
+ "properties": {
141
+ "key": { "$ref": "#/$defs/string" },
142
+ "title": { "$ref": "#/$defs/string" },
143
+ "reader_task": { "$ref": "#/$defs/string" },
144
+ "subject": {
145
+ "oneOf": [
146
+ { "$ref": "#/$defs/string" },
147
+ {
148
+ "type": "object",
149
+ "additionalProperties": false,
150
+ "required": ["namespace", "kind", "local_key"],
151
+ "properties": {
152
+ "namespace": { "$ref": "#/$defs/string" },
153
+ "kind": { "$ref": "#/$defs/string" },
154
+ "local_key": { "$ref": "#/$defs/string" }
155
+ }
156
+ }
157
+ ]
158
+ },
159
+ "subject_intent": {
160
+ "enum": ["primary", "enrich-or-independent"],
161
+ "description": "Use primary when this group owns a reader subject. Use enrich-or-independent for a publishable supplemental view, including test or example behavior: Context enriches an existing matching subject when one exists and otherwise creates an independent subject. supporting is not a valid intent; material that must never become a reader subject must not be emitted as a group."
162
+ },
163
+ "members": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/string" } },
164
+ "questions": { "type": "array", "items": { "$ref": "#/$defs/string" } },
165
+ "question_targets": { "type": "array", "items": { "$ref": "#/$defs/questionTarget" } },
166
+ "outline": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/string" } }
167
+ }
168
+ },
169
+ "questionTarget": {
170
+ "type": "object",
171
+ "additionalProperties": false,
172
+ "required": ["target", "role"],
173
+ "properties": {
174
+ "target": { "$ref": "#/$defs/string" },
175
+ "role": { "enum": ["primary-carrier", "enricher"] }
176
+ }
177
+ },
178
+ "excluded": {
179
+ "type": "object",
180
+ "additionalProperties": false,
181
+ "required": ["item", "reason_code"],
182
+ "properties": {
183
+ "item": { "$ref": "#/$defs/string" },
184
+ "reason_code": { "$ref": "#/$defs/string" }
185
+ }
186
+ },
187
+ "unsupported": {
188
+ "type": "object",
189
+ "additionalProperties": false,
190
+ "required": ["item", "missing_capabilities"],
191
+ "properties": {
192
+ "item": { "$ref": "#/$defs/string" },
193
+ "missing_capabilities": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/string" } }
194
+ }
195
+ },
196
+ "failure": {
197
+ "type": "object",
198
+ "additionalProperties": false,
199
+ "required": ["code", "message", "unassigned"],
200
+ "properties": {
201
+ "code": { "enum": ["unsupported-domain", "no-stable-axis", "insufficient-identity-facts", "invalid-input", "strategy-failed"] },
202
+ "message": { "$ref": "#/$defs/string" },
203
+ "unassigned": { "type": "array", "items": { "$ref": "#/$defs/string" } },
204
+ "missing_capabilities": { "type": "array", "items": { "$ref": "#/$defs/string" } },
205
+ "missing_sources": { "type": "array", "items": { "$ref": "#/$defs/string" } }
206
+ }
207
+ },
208
+ "author": {
209
+ "type": "object",
210
+ "additionalProperties": false,
211
+ "required": ["stage", "group_key", "outcome", "target_resolutions", "sections", "member_dispositions", "material_gaps", "diagnostics"],
212
+ "properties": {
213
+ "stage": { "const": "author" },
214
+ "group_key": { "$ref": "#/$defs/string" },
215
+ "outcome": { "enum": ["publish", "catalog-only", "request-material", "unsupported"] },
216
+ "artifact_intent": { "$ref": "#/$defs/string" },
217
+ "policy": { "$ref": "#/$defs/string" },
218
+ "target_resolutions": { "type": "array", "items": { "$ref": "#/$defs/targetResolution" } },
219
+ "title": { "$ref": "#/$defs/string" },
220
+ "summary": { "$ref": "#/$defs/string" },
221
+ "sections": { "type": "array", "items": { "$ref": "#/$defs/authorSection" } },
222
+ "member_dispositions": { "type": "array", "items": { "$ref": "#/$defs/memberDisposition" } },
223
+ "material_gaps": { "type": "array", "items": { "$ref": "#/$defs/materialGap" } },
224
+ "diagnostics": { "type": "array", "items": { "$ref": "#/$defs/diagnostic" } }
225
+ }
226
+ },
227
+ "targetResolution": {
228
+ "type": "object",
229
+ "additionalProperties": false,
230
+ "required": ["target", "disposition"],
231
+ "properties": {
232
+ "target": { "$ref": "#/$defs/string" },
233
+ "disposition": { "enum": ["reuse-existing", "create-independent", "unresolved"] },
234
+ "reason_code": { "$ref": "#/$defs/string" }
235
+ }
236
+ },
237
+ "authorSection": {
238
+ "type": "object",
239
+ "additionalProperties": false,
240
+ "required": ["key", "heading", "markdown", "source_items", "facts", "answers"],
241
+ "properties": {
242
+ "key": { "$ref": "#/$defs/string" },
243
+ "heading": { "$ref": "#/$defs/string" },
244
+ "markdown": { "$ref": "#/$defs/string" },
245
+ "source_items": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/string" } },
246
+ "facts": { "type": "array", "items": { "$ref": "#/$defs/string" } },
247
+ "answers": { "type": "array", "items": { "$ref": "#/$defs/string" } }
248
+ }
249
+ },
250
+ "memberDisposition": {
251
+ "type": "object",
252
+ "additionalProperties": false,
253
+ "required": ["item", "state"],
254
+ "properties": {
255
+ "item": { "$ref": "#/$defs/string" },
256
+ "state": { "enum": ["covered", "catalog-only", "unsupported"] },
257
+ "section": { "$ref": "#/$defs/string" },
258
+ "reason_code": { "$ref": "#/$defs/string" }
259
+ }
260
+ },
261
+ "materialGap": {
262
+ "type": "object",
263
+ "additionalProperties": false,
264
+ "required": ["question", "source_hints"],
265
+ "properties": {
266
+ "question": { "$ref": "#/$defs/string" },
267
+ "source_hints": { "type": "array", "items": { "$ref": "#/$defs/string" } }
268
+ }
269
+ },
270
+ "diagnostic": {
271
+ "type": "object",
272
+ "additionalProperties": false,
273
+ "required": ["code", "message"],
274
+ "properties": {
275
+ "code": { "$ref": "#/$defs/string" },
276
+ "message": { "$ref": "#/$defs/string" },
277
+ "target": { "$ref": "#/$defs/string" }
278
+ }
279
+ },
280
+ "postAuthor": {
281
+ "type": "object",
282
+ "additionalProperties": false,
283
+ "required": ["stage", "results"],
284
+ "properties": {
285
+ "stage": { "const": "post-author" },
286
+ "results": {
287
+ "type": "array",
288
+ "minItems": 1,
289
+ "items": {
290
+ "type": "object",
291
+ "additionalProperties": false,
292
+ "required": ["task_key", "result"],
293
+ "properties": {
294
+ "task_key": { "type": "string", "pattern": "^task-[0-9]{3}$" },
295
+ "result": { "$ref": "#/$defs/postAuthorResult" }
296
+ }
297
+ }
298
+ }
299
+ }
300
+ },
301
+ "postAuthorResult": {
302
+ "type": "object",
303
+ "additionalProperties": false,
304
+ "required": ["stage", "outcome", "proposals", "diagnostics"],
305
+ "properties": {
306
+ "stage": { "const": "post-author" },
307
+ "outcome": { "enum": ["complete", "failed"] },
308
+ "proposals": {
309
+ "type": "array",
310
+ "items": {
311
+ "type": "object",
312
+ "additionalProperties": false,
313
+ "required": ["target", "artifact_kind", "title", "summary", "sections"],
314
+ "properties": {
315
+ "target": { "$ref": "#/$defs/string" },
316
+ "artifact_kind": { "$ref": "#/$defs/string" },
317
+ "title": { "$ref": "#/$defs/string" },
318
+ "summary": { "$ref": "#/$defs/string" },
319
+ "sections": {
320
+ "type": "array",
321
+ "minItems": 1,
322
+ "items": {
323
+ "type": "object",
324
+ "additionalProperties": false,
325
+ "required": ["key", "heading", "markdown", "source_refs"],
326
+ "properties": {
327
+ "key": { "$ref": "#/$defs/string" },
328
+ "heading": { "$ref": "#/$defs/string" },
329
+ "markdown": { "$ref": "#/$defs/string" },
330
+ "source_refs": {
331
+ "type": "array",
332
+ "minItems": 1,
333
+ "items": { "$ref": "#/$defs/string" }
334
+ }
335
+ }
336
+ }
337
+ }
338
+ }
339
+ }
340
+ },
341
+ "diagnostics": { "type": "array", "items": { "$ref": "#/$defs/diagnostic" } }
342
+ },
343
+ "allOf": [
344
+ {
345
+ "if": { "properties": { "outcome": { "const": "failed" } } },
346
+ "then": {
347
+ "properties": {
348
+ "diagnostics": { "type": "array", "minItems": 1 }
349
+ }
350
+ }
351
+ }
352
+ ]
353
+ },
354
+ "structureReview": {
355
+ "type": "object",
356
+ "additionalProperties": false,
357
+ "required": ["stage", "decision"],
358
+ "properties": {
359
+ "stage": { "const": "structure-review" },
360
+ "decision": { "enum": ["approved", "request-adjustment"] },
361
+ "feedback": { "$ref": "#/$defs/string" }
362
+ },
363
+ "allOf": [
364
+ {
365
+ "if": { "properties": { "decision": { "const": "request-adjustment" } } },
366
+ "then": { "required": ["feedback"] }
367
+ }
368
+ ]
369
+ },
370
+ "layoutConfirmation": {
371
+ "type": "object",
372
+ "additionalProperties": false,
373
+ "required": ["stage", "decision"],
374
+ "properties": {
375
+ "stage": { "const": "layout-confirmation" },
376
+ "decision": { "enum": ["approved", "rejected"] },
377
+ "feedback": { "$ref": "#/$defs/string" },
378
+ "paths": {
379
+ "type": "array",
380
+ "minItems": 1,
381
+ "items": {
382
+ "type": "object",
383
+ "additionalProperties": false,
384
+ "required": ["artifact_ref", "output_path"],
385
+ "properties": {
386
+ "artifact_ref": { "$ref": "#/$defs/string" },
387
+ "output_path": { "$ref": "#/$defs/string" }
388
+ }
389
+ }
390
+ }
391
+ },
392
+ "allOf": [
393
+ {
394
+ "if": { "properties": { "decision": { "const": "rejected" } } },
395
+ "then": { "required": ["feedback"], "not": { "required": ["paths"] } }
396
+ }
397
+ ]
45
398
  }
46
399
  }
47
400
  }
@@ -0,0 +1,65 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.authorized-workset-view/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "protocol",
8
+ "operation",
9
+ "stage",
10
+ "workset_digest",
11
+ "execution_request_digest",
12
+ "source_ref",
13
+ "module_ref",
14
+ "projection_input_digests",
15
+ "items",
16
+ "view_digest"
17
+ ],
18
+ "properties": {
19
+ "protocol": { "const": "context.indexer.authorized-workset-view/v1" },
20
+ "operation": { "const": "main-index" },
21
+ "stage": { "enum": ["partition", "author"] },
22
+ "workset_digest": { "$ref": "#/$defs/digest" },
23
+ "execution_request_digest": { "$ref": "#/$defs/digest" },
24
+ "source_ref": { "type": "string", "minLength": 1 },
25
+ "module_ref": { "type": ["string", "null"] },
26
+ "projection_input_digests": {
27
+ "type": "array",
28
+ "minItems": 1,
29
+ "uniqueItems": true,
30
+ "items": { "$ref": "#/$defs/digest" }
31
+ },
32
+ "items": {
33
+ "type": "array",
34
+ "minItems": 1,
35
+ "items": {
36
+ "type": "object",
37
+ "additionalProperties": false,
38
+ "required": ["ref", "category", "provenance", "value", "item_digest"],
39
+ "properties": {
40
+ "ref": { "type": "string", "minLength": 1 },
41
+ "category": { "type": "string", "minLength": 1 },
42
+ "provenance": {
43
+ "type": "object",
44
+ "additionalProperties": false,
45
+ "required": ["protocol", "digest"],
46
+ "properties": {
47
+ "protocol": { "type": "string", "minLength": 1 },
48
+ "digest": { "$ref": "#/$defs/digest" },
49
+ "container_ref": { "type": "string", "minLength": 1 }
50
+ }
51
+ },
52
+ "value": {},
53
+ "item_digest": { "$ref": "#/$defs/digest" }
54
+ }
55
+ }
56
+ },
57
+ "view_digest": { "$ref": "#/$defs/digest" }
58
+ },
59
+ "$defs": {
60
+ "digest": {
61
+ "type": "string",
62
+ "pattern": "^sha256:[a-f0-9]{64}$"
63
+ }
64
+ }
65
+ }
@@ -4,33 +4,29 @@
4
4
  "oneOf": [
5
5
  {
6
6
  "type": "object",
7
- "required": ["protocol", "requirement_set_digest", "profile_contract_digests", "source_inventory_digests", "items"],
7
+ "required": ["protocol", "requirement_set_digest"],
8
8
  "properties": {
9
9
  "protocol": { "const": "context.indexer.question-target-inventory-input/v1" },
10
- "requirement_set_digest": { "$ref": "#/$defs/digest" },
11
- "profile_contract_digests": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/digest" } },
12
- "source_inventory_digests": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/digest" } },
13
- "items": { "type": "array", "items": { "type": "object" } }
10
+ "requirement_set_digest": { "$ref": "#/$defs/digest" }
14
11
  },
15
12
  "additionalProperties": false
16
13
  },
17
14
  {
18
15
  "type": "object",
19
- "required": ["protocol", "worksets"],
16
+ "required": ["protocol", "question_target_inventory"],
20
17
  "properties": {
21
18
  "protocol": { "const": "context.indexer.main-partition-workset-build-input/v1" },
22
- "worksets": { "type": "array", "minItems": 1, "items": { "type": "object" } }
19
+ "question_target_inventory": { "type": "object" }
23
20
  },
24
21
  "additionalProperties": false
25
22
  },
26
23
  {
27
24
  "type": "object",
28
- "required": ["protocol", "request", "result", "workset_read_receipts", "validation"],
25
+ "required": ["protocol", "request", "result", "validation"],
29
26
  "properties": {
30
27
  "protocol": { "const": "context.indexer.main-run-validation-input/v1" },
31
28
  "request": { "type": "object" },
32
29
  "result": { "type": "object" },
33
- "workset_read_receipts": { "type": "array", "minItems": 1, "items": { "type": "object" } },
34
30
  "validation": { "type": "object" }
35
31
  },
36
32
  "additionalProperties": false
@@ -60,11 +56,11 @@
60
56
  },
61
57
  {
62
58
  "type": "object",
63
- "required": ["protocol", "partitions", "group_contexts"],
59
+ "required": ["protocol", "partitions", "target_resolution_views"],
64
60
  "properties": {
65
61
  "protocol": { "const": "context.indexer.main-author-workset-build-input/v1" },
66
62
  "partitions": { "type": "array", "minItems": 1, "items": { "type": "object" } },
67
- "group_contexts": { "type": "array", "minItems": 1, "items": { "type": "object" } }
63
+ "target_resolution_views": { "type": "array", "items": { "type": "object" } }
68
64
  },
69
65
  "additionalProperties": false
70
66
  },
@@ -124,38 +120,35 @@
124
120
  },
125
121
  {
126
122
  "type": "object",
127
- "required": ["protocol", "requirement_set_digest", "workset_digest", "result", "workset_read_receipts"],
123
+ "required": ["protocol", "requirement_set_digest", "workset_digest", "result"],
128
124
  "properties": {
129
125
  "protocol": { "const": "context.indexer.main-run-partition-convergence-input/v1" },
130
126
  "requirement_set_digest": { "$ref": "#/$defs/digest" },
131
127
  "workset_digest": { "$ref": "#/$defs/digest" },
132
- "result": { "type": "object" },
133
- "workset_read_receipts": { "type": "array", "minItems": 1, "items": { "type": "object" } }
128
+ "result": { "type": "object" }
134
129
  },
135
130
  "additionalProperties": false
136
131
  },
137
132
  {
138
133
  "type": "object",
139
- "required": ["protocol", "requirement_set_digest", "request", "convergence", "validation", "workset_read_receipts"],
134
+ "required": ["protocol", "requirement_set_digest", "request", "convergence", "validation"],
140
135
  "properties": {
141
136
  "protocol": { "const": "context.indexer.catalog-fallback-build-input/v1" },
142
137
  "requirement_set_digest": { "$ref": "#/$defs/digest" },
143
138
  "request": { "type": "object" },
144
139
  "convergence": { "type": "object" },
145
- "validation": { "type": "object" },
146
- "workset_read_receipts": { "type": "array", "minItems": 1, "items": { "type": "object" } }
140
+ "validation": { "type": "object" }
147
141
  },
148
142
  "additionalProperties": false
149
143
  },
150
144
  {
151
145
  "type": "object",
152
- "required": ["protocol", "requirement_set_digest", "workset_digest", "result", "workset_read_receipts"],
146
+ "required": ["protocol", "requirement_set_digest", "workset_digest", "result"],
153
147
  "properties": {
154
148
  "protocol": { "const": "context.indexer.main-run-store-accept-input/v1" },
155
149
  "requirement_set_digest": { "$ref": "#/$defs/digest" },
156
150
  "workset_digest": { "$ref": "#/$defs/digest" },
157
- "result": { "type": "object" },
158
- "workset_read_receipts": { "type": "array", "minItems": 1, "items": { "type": "object" } }
151
+ "result": { "type": "object" }
159
152
  },
160
153
  "additionalProperties": false
161
154
  },
@@ -17,11 +17,26 @@
17
17
  },
18
18
  {
19
19
  "type": "object",
20
- "required": ["protocol", "worksets", "workset_set"],
20
+ "required": ["protocol", "requirement_set_digest", "worksets", "workset_set", "run_specs", "graph_outcome"],
21
21
  "properties": {
22
- "protocol": { "enum": ["context.indexer.main-partition-workset-build/v1", "context.indexer.main-author-workset-build/v1"] },
22
+ "protocol": { "const": "context.indexer.main-partition-workset-build/v1" },
23
+ "requirement_set_digest": { "$ref": "#/$defs/digest" },
24
+ "worksets": { "type": "array" },
25
+ "workset_set": { "type": "object" },
26
+ "run_specs": { "type": "array", "minItems": 1, "items": { "type": "object" } },
27
+ "graph_outcome": { "const": "completed" }
28
+ },
29
+ "additionalProperties": false
30
+ },
31
+ {
32
+ "type": "object",
33
+ "required": ["protocol", "requirement_set_digest", "worksets", "workset_set", "run_specs", "graph_outcome"],
34
+ "properties": {
35
+ "protocol": { "const": "context.indexer.main-author-workset-build/v1" },
36
+ "requirement_set_digest": { "$ref": "#/$defs/digest" },
23
37
  "worksets": { "type": "array" },
24
38
  "workset_set": { "type": "object" },
39
+ "run_specs": { "type": "array", "minItems": 1, "items": { "type": "object" } },
25
40
  "graph_outcome": { "const": "completed" }
26
41
  },
27
42
  "additionalProperties": false