kibi-cli 2.2.0 → 2.4.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 (230) hide show
  1. package/dist/cli-json-command.d.ts.map +1 -1
  2. package/dist/cli-json-command.js +2 -2
  3. package/dist/cli-operation-loader.d.ts.map +1 -1
  4. package/dist/cli-operation-loader.js +3 -0
  5. package/dist/cli-operation-metadata.d.ts +5 -1
  6. package/dist/cli-operation-metadata.d.ts.map +1 -1
  7. package/dist/cli-operation-metadata.js +6 -1
  8. package/dist/cli-register-maintenance.d.ts.map +1 -1
  9. package/dist/cli-register-maintenance.js +7 -0
  10. package/dist/cli-register-reporting.d.ts.map +1 -1
  11. package/dist/cli-register-reporting.js +4 -0
  12. package/dist/commands/check-diff.d.ts +5 -0
  13. package/dist/commands/check-diff.d.ts.map +1 -0
  14. package/dist/commands/check-diff.js +62 -0
  15. package/dist/commands/check-generated.d.ts.map +1 -1
  16. package/dist/commands/check-generated.js +41 -18
  17. package/dist/commands/check.d.ts.map +1 -1
  18. package/dist/commands/check.js +210 -73
  19. package/dist/commands/doctor.d.ts.map +1 -1
  20. package/dist/commands/doctor.js +63 -29
  21. package/dist/commands/github-init.d.ts.map +1 -1
  22. package/dist/commands/github-init.js +9 -2
  23. package/dist/commands/merge-driver.d.ts +31 -0
  24. package/dist/commands/merge-driver.d.ts.map +1 -0
  25. package/dist/commands/merge-driver.js +268 -0
  26. package/dist/commands/sync/manifest.d.ts.map +1 -1
  27. package/dist/commands/sync/manifest.js +3 -1
  28. package/dist/engine.d.ts +15 -1
  29. package/dist/engine.d.ts.map +1 -1
  30. package/dist/engine.js +252 -52
  31. package/dist/extractors/symbols-coordinator.d.ts +7 -0
  32. package/dist/extractors/symbols-coordinator.d.ts.map +1 -1
  33. package/dist/extractors/symbols-coordinator.js +75 -39
  34. package/dist/operations/bootstrap/candidates.js +1 -1
  35. package/dist/operations/bootstrap/discovery.js +1 -1
  36. package/dist/operations/bootstrap/generate.d.ts.map +1 -1
  37. package/dist/operations/bootstrap/generate.js +21 -5
  38. package/dist/operations/bootstrap/guidance-actions.d.ts.map +1 -1
  39. package/dist/operations/bootstrap/guidance-actions.js +3 -0
  40. package/dist/operations/bootstrap/guidance.d.ts.map +1 -1
  41. package/dist/operations/bootstrap/guidance.js +7 -1
  42. package/dist/operations/bootstrap/intent-claims.d.ts +17 -0
  43. package/dist/operations/bootstrap/intent-claims.d.ts.map +1 -0
  44. package/dist/operations/bootstrap/intent-claims.js +95 -0
  45. package/dist/operations/bootstrap/presentation.d.ts +2 -0
  46. package/dist/operations/bootstrap/presentation.d.ts.map +1 -1
  47. package/dist/operations/bootstrap/presentation.js +60 -1
  48. package/dist/operations/bootstrap/types.d.ts +28 -0
  49. package/dist/operations/bootstrap/types.d.ts.map +1 -1
  50. package/dist/operations/bootstrap/types.js +16 -0
  51. package/dist/operations/modeling/predicate-inference-1.js +1 -1
  52. package/dist/operations/mutation/source-authoring.d.ts.map +1 -1
  53. package/dist/operations/mutation/source-authoring.js +175 -53
  54. package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
  55. package/dist/operations/mutation/symbol-refresh.js +4 -1
  56. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  57. package/dist/operations/mutation/upsert.js +5 -7
  58. package/dist/operations/planning/apply-plan.d.ts.map +1 -1
  59. package/dist/operations/planning/apply-plan.js +5 -9
  60. package/dist/operations/proof/ingest-proof.d.ts.map +1 -1
  61. package/dist/operations/proof/ingest-proof.js +1 -0
  62. package/dist/operations/semantic-advisor/analysis-receipt.d.ts.map +1 -1
  63. package/dist/operations/semantic-advisor/analysis-receipt.js +7 -1
  64. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  65. package/dist/operations/semantic-advisor/analyze-prose.js +26 -4
  66. package/dist/operations/semantic-advisor/clauses.d.ts +1 -0
  67. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
  68. package/dist/operations/semantic-advisor/clauses.js +7 -1
  69. package/dist/performance-trace.d.ts +17 -0
  70. package/dist/performance-trace.d.ts.map +1 -0
  71. package/dist/performance-trace.js +134 -0
  72. package/dist/plugins/approved-source-analyzers.d.ts +13 -0
  73. package/dist/plugins/approved-source-analyzers.d.ts.map +1 -0
  74. package/dist/plugins/approved-source-analyzers.generated.d.ts +71 -0
  75. package/dist/plugins/approved-source-analyzers.generated.d.ts.map +1 -0
  76. package/dist/plugins/approved-source-analyzers.generated.js +77 -0
  77. package/dist/plugins/approved-source-analyzers.js +3 -0
  78. package/dist/plugins/maintenance-source-analysis.d.ts +14 -0
  79. package/dist/plugins/maintenance-source-analysis.d.ts.map +1 -0
  80. package/dist/plugins/maintenance-source-analysis.js +191 -0
  81. package/dist/plugins/registry.d.ts +2 -1
  82. package/dist/plugins/registry.d.ts.map +1 -1
  83. package/dist/plugins/registry.js +6 -1
  84. package/dist/plugins/source-analysis-service.d.ts +36 -1
  85. package/dist/plugins/source-analysis-service.d.ts.map +1 -1
  86. package/dist/plugins/source-analysis-service.js +184 -27
  87. package/dist/plugins/source-change-analysis.d.ts +15 -0
  88. package/dist/plugins/source-change-analysis.d.ts.map +1 -0
  89. package/dist/plugins/source-change-analysis.js +54 -0
  90. package/dist/plugins/source-classification.d.ts +41 -0
  91. package/dist/plugins/source-classification.d.ts.map +1 -0
  92. package/dist/plugins/source-classification.js +490 -0
  93. package/dist/prolog/swipl-resolver.d.ts +88 -0
  94. package/dist/prolog/swipl-resolver.d.ts.map +1 -0
  95. package/dist/prolog/swipl-resolver.js +446 -0
  96. package/dist/prolog.d.ts +15 -1
  97. package/dist/prolog.d.ts.map +1 -1
  98. package/dist/prolog.js +67 -6
  99. package/dist/public/diagnostic-usage.d.ts +14 -0
  100. package/dist/public/diagnostic-usage.d.ts.map +1 -1
  101. package/dist/public/diagnostic-usage.js +55 -1
  102. package/dist/public/impact/analyzer.d.ts.map +1 -1
  103. package/dist/public/impact/analyzer.js +56 -5
  104. package/dist/public/impact/diagnostics.d.ts.map +1 -1
  105. package/dist/public/impact/diagnostics.js +3 -1
  106. package/dist/public/impact/manifest.d.ts.map +1 -1
  107. package/dist/public/impact/manifest.js +15 -1
  108. package/dist/public/impact/source-changes.d.ts.map +1 -1
  109. package/dist/public/impact/source-changes.js +35 -27
  110. package/dist/public/impact/types.d.ts +2 -0
  111. package/dist/public/impact/types.d.ts.map +1 -1
  112. package/dist/public/operations/catalog.d.ts +117 -1
  113. package/dist/public/operations/catalog.d.ts.map +1 -1
  114. package/dist/public/operations/catalog.js +2 -0
  115. package/dist/public/operations/contracts.d.ts.map +1 -1
  116. package/dist/public/operations/contracts.js +309 -8
  117. package/dist/public/operations/impact-review-preparation.d.ts +14 -0
  118. package/dist/public/operations/impact-review-preparation.d.ts.map +1 -0
  119. package/dist/public/operations/impact-review-preparation.js +379 -0
  120. package/dist/public/operations/index.d.ts +2 -0
  121. package/dist/public/operations/index.d.ts.map +1 -1
  122. package/dist/public/operations/index.js +2 -0
  123. package/dist/public/operations/node-ports.d.ts.map +1 -1
  124. package/dist/public/operations/node-ports.js +1 -35
  125. package/dist/public/operations/proof-receipt-projection.d.ts +5 -0
  126. package/dist/public/operations/proof-receipt-projection.d.ts.map +1 -0
  127. package/dist/public/operations/proof-receipt-projection.js +36 -0
  128. package/dist/public/operations/specs/bootstrap.d.ts +73 -1
  129. package/dist/public/operations/specs/bootstrap.d.ts.map +1 -1
  130. package/dist/public/operations/specs/bootstrap.js +66 -1
  131. package/dist/public/operations/specs/impact-review-preparation.d.ts +47 -0
  132. package/dist/public/operations/specs/impact-review-preparation.d.ts.map +1 -0
  133. package/dist/public/operations/specs/impact-review-preparation.js +43 -0
  134. package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -1
  135. package/dist/public/operations/symbol-repair-plan.js +3 -1
  136. package/dist/public/operations/types.d.ts +1 -1
  137. package/dist/public/operations/types.d.ts.map +1 -1
  138. package/dist/public/skills/kibi-bootstrap/SKILL.md +47 -11
  139. package/dist/public/skills/kibi-bootstrap/resources/bootstrap.md +6 -1
  140. package/dist/public/skills/kibi-usage/SKILL.md +14 -0
  141. package/dist/public/skills/kibi-usage/resources/operation-access.md +5 -0
  142. package/dist/public/telemetry-acceptance.d.ts +8 -0
  143. package/dist/public/telemetry-acceptance.d.ts.map +1 -1
  144. package/dist/public/telemetry-acceptance.js +10 -0
  145. package/dist/traceability/analysis-gate.d.ts +39 -0
  146. package/dist/traceability/analysis-gate.d.ts.map +1 -0
  147. package/dist/traceability/analysis-gate.js +51 -0
  148. package/dist/traceability/git-change-snapshot.d.ts +27 -0
  149. package/dist/traceability/git-change-snapshot.d.ts.map +1 -0
  150. package/dist/traceability/git-change-snapshot.js +411 -0
  151. package/dist/traceability/git-staged.d.ts +5 -1
  152. package/dist/traceability/git-staged.d.ts.map +1 -1
  153. package/dist/traceability/git-staged.js +16 -11
  154. package/dist/traceability/impact-evaluator.d.ts +54 -0
  155. package/dist/traceability/impact-evaluator.d.ts.map +1 -0
  156. package/dist/traceability/impact-evaluator.js +270 -0
  157. package/dist/traceability/impact-git-tree.d.ts +12 -0
  158. package/dist/traceability/impact-git-tree.d.ts.map +1 -0
  159. package/dist/traceability/impact-git-tree.js +46 -0
  160. package/dist/traceability/impact-knowledge.d.ts +16 -0
  161. package/dist/traceability/impact-knowledge.d.ts.map +1 -0
  162. package/dist/traceability/impact-knowledge.js +165 -0
  163. package/dist/traceability/impact-policy.d.ts +15 -0
  164. package/dist/traceability/impact-policy.d.ts.map +1 -0
  165. package/dist/traceability/impact-policy.js +48 -0
  166. package/dist/traceability/impact-policy.v1.schema.json +48 -0
  167. package/dist/traceability/impact-pr-diff.d.ts +5 -0
  168. package/dist/traceability/impact-pr-diff.d.ts.map +1 -0
  169. package/dist/traceability/impact-pr-diff.js +83 -0
  170. package/dist/traceability/impact-record-validation.d.ts +9 -0
  171. package/dist/traceability/impact-record-validation.d.ts.map +1 -0
  172. package/dist/traceability/impact-record-validation.js +113 -0
  173. package/dist/traceability/impact-review.d.ts +148 -0
  174. package/dist/traceability/impact-review.d.ts.map +1 -0
  175. package/dist/traceability/impact-review.js +494 -0
  176. package/dist/traceability/impact-review.schema.json +365 -0
  177. package/dist/traceability/impact-side-evidence.d.ts +13 -0
  178. package/dist/traceability/impact-side-evidence.d.ts.map +1 -0
  179. package/dist/traceability/impact-side-evidence.js +240 -0
  180. package/dist/traceability/reviewed-coordinate-refresh.d.ts +10 -0
  181. package/dist/traceability/reviewed-coordinate-refresh.d.ts.map +1 -0
  182. package/dist/traceability/reviewed-coordinate-refresh.js +49 -0
  183. package/dist/traceability/snapshot-knowledge.d.ts +4 -0
  184. package/dist/traceability/snapshot-knowledge.d.ts.map +1 -0
  185. package/dist/traceability/snapshot-knowledge.js +98 -0
  186. package/dist/traceability/staged-file-coverage.d.ts +23 -0
  187. package/dist/traceability/staged-file-coverage.d.ts.map +1 -1
  188. package/dist/traceability/staged-impact-contract.d.ts.map +1 -1
  189. package/dist/traceability/staged-impact-contract.js +2 -16
  190. package/dist/traceability/staged-symbols-manifest.d.ts +4 -0
  191. package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
  192. package/dist/traceability/staged-symbols-manifest.js +17 -6
  193. package/dist/traceability/symbol-extract.d.ts +3 -5
  194. package/dist/traceability/symbol-extract.d.ts.map +1 -1
  195. package/dist/traceability/symbol-extract.js +49 -34
  196. package/dist/traceability/temp-kb.d.ts +1 -1
  197. package/dist/traceability/temp-kb.d.ts.map +1 -1
  198. package/dist/traceability/temp-kb.js +49 -13
  199. package/dist/traceability/trusted-pr-event.d.ts +13 -0
  200. package/dist/traceability/trusted-pr-event.d.ts.map +1 -0
  201. package/dist/traceability/trusted-pr-event.js +105 -0
  202. package/dist/utils/canonical-path.d.ts +3 -0
  203. package/dist/utils/canonical-path.d.ts.map +1 -0
  204. package/dist/utils/canonical-path.js +33 -0
  205. package/package.json +14 -5
  206. package/src/public/diagnostic-usage.ts +59 -1
  207. package/src/public/impact/analyzer.ts +88 -5
  208. package/src/public/impact/diagnostics.ts +7 -5
  209. package/src/public/impact/manifest.ts +14 -1
  210. package/src/public/impact/source-changes.ts +39 -34
  211. package/src/public/impact/types.ts +5 -0
  212. package/src/public/operations/catalog.ts +2 -0
  213. package/src/public/operations/contracts.ts +385 -9
  214. package/src/public/operations/impact-review-preparation.ts +548 -0
  215. package/src/public/operations/index.ts +2 -0
  216. package/src/public/operations/node-ports.ts +1 -39
  217. package/src/public/operations/proof-receipt-projection.ts +39 -0
  218. package/src/public/operations/specs/bootstrap.ts +78 -4
  219. package/src/public/operations/specs/impact-review-preparation.ts +46 -0
  220. package/src/public/operations/symbol-repair-plan.ts +3 -1
  221. package/src/public/operations/types.ts +1 -0
  222. package/src/public/skills/kibi-bootstrap/SKILL.md +47 -11
  223. package/src/public/skills/kibi-bootstrap/resources/bootstrap.md +6 -1
  224. package/src/public/skills/kibi-usage/SKILL.md +14 -0
  225. package/src/public/skills/kibi-usage/resources/operation-access.md +5 -0
  226. package/src/public/telemetry-acceptance.ts +9 -0
  227. package/src/traceability/impact-policy.v1.schema.json +48 -0
  228. package/src/traceability/impact-review.schema.json +365 -0
  229. package/templates/github/kibi-badge.yml +0 -4
  230. package/templates/github/kibi-report.yml +0 -4
@@ -0,0 +1,365 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:kibi:impact-review:v1",
4
+ "title": "Kibi content-bound local impact review record",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "contractVersion",
9
+ "policy",
10
+ "evaluator",
11
+ "scope",
12
+ "reviewer",
13
+ "reviewedAt",
14
+ "files"
15
+ ],
16
+ "properties": {
17
+ "contractVersion": { "const": "kibi.impact-review.v1" },
18
+ "policy": { "$ref": "#/$defs/policy" },
19
+ "evaluator": { "$ref": "#/$defs/evaluator" },
20
+ "scope": { "$ref": "#/$defs/scope" },
21
+ "reviewer": { "$ref": "#/$defs/reviewer" },
22
+ "reviewedAt": {
23
+ "type": "string",
24
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})$"
25
+ },
26
+ "files": { "type": "array", "items": { "$ref": "#/$defs/file" } }
27
+ },
28
+ "$defs": {
29
+ "sha256": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
30
+ "policy": {
31
+ "type": "object",
32
+ "additionalProperties": false,
33
+ "required": ["id", "version", "fingerprint"],
34
+ "properties": {
35
+ "id": { "type": "string", "minLength": 1 },
36
+ "version": { "type": "string", "minLength": 1 },
37
+ "fingerprint": { "$ref": "#/$defs/sha256" }
38
+ }
39
+ },
40
+ "evaluator": {
41
+ "type": "object",
42
+ "additionalProperties": false,
43
+ "required": ["contractVersion", "fingerprint"],
44
+ "properties": {
45
+ "contractVersion": { "const": "kibi.impact-evaluator.v1" },
46
+ "fingerprint": { "$ref": "#/$defs/sha256" }
47
+ }
48
+ },
49
+ "scope": {
50
+ "type": "object",
51
+ "additionalProperties": false,
52
+ "required": [
53
+ "fingerprint",
54
+ "knowledgeFingerprint",
55
+ "providerSetFingerprint"
56
+ ],
57
+ "properties": {
58
+ "fingerprint": { "$ref": "#/$defs/sha256" },
59
+ "knowledgeFingerprint": { "$ref": "#/$defs/sha256" },
60
+ "providerSetFingerprint": { "$ref": "#/$defs/sha256" }
61
+ }
62
+ },
63
+ "reviewer": {
64
+ "type": "object",
65
+ "additionalProperties": false,
66
+ "required": ["id", "source"],
67
+ "properties": {
68
+ "id": { "type": "string", "minLength": 1 },
69
+ "source": { "const": "self-claimed-local" }
70
+ }
71
+ },
72
+ "range": {
73
+ "type": "object",
74
+ "additionalProperties": false,
75
+ "required": ["start", "end"],
76
+ "properties": {
77
+ "start": { "type": "integer", "minimum": 0 },
78
+ "end": { "type": "integer", "minimum": 0 }
79
+ }
80
+ },
81
+ "uncoveredRange": {
82
+ "type": "object",
83
+ "additionalProperties": false,
84
+ "required": [
85
+ "startLine",
86
+ "startColumn",
87
+ "endLine",
88
+ "endColumn",
89
+ "reason"
90
+ ],
91
+ "properties": {
92
+ "startLine": { "type": "integer", "minimum": 1 },
93
+ "startColumn": { "type": "integer", "minimum": 0 },
94
+ "endLine": { "type": "integer", "minimum": 1 },
95
+ "endColumn": { "type": "integer", "minimum": 0 },
96
+ "reason": { "type": "string", "minLength": 1 }
97
+ }
98
+ },
99
+ "analysis": {
100
+ "type": "object",
101
+ "additionalProperties": false,
102
+ "required": [
103
+ "contractVersion",
104
+ "status",
105
+ "language",
106
+ "sourceFile",
107
+ "providerId",
108
+ "providerStamp",
109
+ "providerFingerprint",
110
+ "inputFingerprint",
111
+ "resultFingerprint",
112
+ "diagnosticCodes",
113
+ "uncoveredRanges"
114
+ ],
115
+ "properties": {
116
+ "contractVersion": { "const": "kibi.symbol-extractor.v2" },
117
+ "status": { "enum": ["ok", "partial", "unsupported", "failed"] },
118
+ "language": { "type": "string", "minLength": 1 },
119
+ "sourceFile": { "type": "string", "minLength": 1 },
120
+ "providerId": { "type": ["string", "null"] },
121
+ "providerStamp": {},
122
+ "providerFingerprint": {
123
+ "oneOf": [{ "$ref": "#/$defs/sha256" }, { "type": "null" }]
124
+ },
125
+ "inputFingerprint": { "$ref": "#/$defs/sha256" },
126
+ "resultFingerprint": { "$ref": "#/$defs/sha256" },
127
+ "diagnosticCodes": {
128
+ "type": "array",
129
+ "items": { "type": "string", "minLength": 1 }
130
+ },
131
+ "uncoveredRanges": {
132
+ "type": "array",
133
+ "items": { "$ref": "#/$defs/uncoveredRange" }
134
+ }
135
+ }
136
+ },
137
+ "side": {
138
+ "type": "object",
139
+ "additionalProperties": false,
140
+ "required": ["mode", "objectId", "byteFingerprint", "kind", "analysis"],
141
+ "properties": {
142
+ "mode": { "enum": ["100644", "100755", "120000", "160000"] },
143
+ "objectId": {
144
+ "oneOf": [
145
+ { "type": "string", "pattern": "^[0-9a-f]{40,64}$" },
146
+ { "type": "null" }
147
+ ]
148
+ },
149
+ "byteFingerprint": { "$ref": "#/$defs/sha256" },
150
+ "kind": { "enum": ["regular", "symlink", "gitlink"] },
151
+ "contentProjection": { "const": "proof_receipts_stripped" },
152
+ "analysis": {
153
+ "oneOf": [{ "$ref": "#/$defs/analysis" }, { "type": "null" }]
154
+ }
155
+ },
156
+ "allOf": [
157
+ {
158
+ "if": {
159
+ "required": ["contentProjection"],
160
+ "properties": {
161
+ "contentProjection": { "const": "proof_receipts_stripped" }
162
+ }
163
+ },
164
+ "then": { "properties": { "objectId": { "type": "null" } } }
165
+ },
166
+ {
167
+ "if": { "not": { "required": ["contentProjection"] } },
168
+ "then": {
169
+ "properties": {
170
+ "objectId": {
171
+ "type": "string",
172
+ "pattern": "^[0-9a-f]{40,64}$"
173
+ }
174
+ }
175
+ }
176
+ }
177
+ ]
178
+ },
179
+ "partialReview": {
180
+ "type": "object",
181
+ "additionalProperties": false,
182
+ "required": ["kind", "side", "limitationClass", "ranges", "rationale"],
183
+ "properties": {
184
+ "kind": { "const": "partial_review" },
185
+ "side": { "enum": ["before", "after"] },
186
+ "limitationClass": { "type": "string", "minLength": 1 },
187
+ "ranges": {
188
+ "type": "array",
189
+ "minItems": 1,
190
+ "items": { "$ref": "#/$defs/uncoveredRange" }
191
+ },
192
+ "rationale": { "type": "string", "minLength": 1 }
193
+ }
194
+ },
195
+ "unsupportedReview": {
196
+ "type": "object",
197
+ "additionalProperties": false,
198
+ "required": ["kind", "side", "wholeFile", "rationale"],
199
+ "properties": {
200
+ "kind": { "const": "unsupported_review" },
201
+ "side": { "enum": ["before", "after"] },
202
+ "wholeFile": { "const": true },
203
+ "rationale": { "type": "string", "minLength": 1 }
204
+ }
205
+ },
206
+ "updatedEntity": {
207
+ "type": "object",
208
+ "additionalProperties": false,
209
+ "required": [
210
+ "entityId",
211
+ "artifactPath",
212
+ "beforeFingerprint",
213
+ "afterFingerprint"
214
+ ],
215
+ "properties": {
216
+ "entityId": { "type": "string", "minLength": 1 },
217
+ "artifactPath": { "type": "string", "minLength": 1 },
218
+ "beforeFingerprint": {
219
+ "oneOf": [{ "$ref": "#/$defs/sha256" }, { "type": "null" }]
220
+ },
221
+ "afterFingerprint": { "$ref": "#/$defs/sha256" }
222
+ }
223
+ },
224
+ "impactDecision": {
225
+ "type": "object",
226
+ "additionalProperties": false,
227
+ "required": ["kind", "requirementIds", "knowledge"],
228
+ "properties": {
229
+ "kind": { "const": "impact" },
230
+ "requirementIds": {
231
+ "type": "array",
232
+ "minItems": 1,
233
+ "uniqueItems": true,
234
+ "items": { "type": "string", "minLength": 1 }
235
+ },
236
+ "knowledge": {
237
+ "oneOf": [
238
+ {
239
+ "type": "object",
240
+ "additionalProperties": false,
241
+ "required": ["state", "rationale"],
242
+ "properties": {
243
+ "state": { "const": "still_current" },
244
+ "rationale": { "type": "string", "minLength": 1 }
245
+ }
246
+ },
247
+ {
248
+ "type": "object",
249
+ "additionalProperties": false,
250
+ "required": ["state", "entities"],
251
+ "properties": {
252
+ "state": { "const": "updated" },
253
+ "entities": {
254
+ "type": "array",
255
+ "minItems": 1,
256
+ "uniqueItems": true,
257
+ "items": { "$ref": "#/$defs/updatedEntity" }
258
+ },
259
+ "stillCurrent": {
260
+ "type": "array",
261
+ "uniqueItems": true,
262
+ "items": {
263
+ "type": "object",
264
+ "additionalProperties": false,
265
+ "required": ["requirementId", "rationale"],
266
+ "properties": {
267
+ "requirementId": {
268
+ "type": "string",
269
+ "minLength": 1,
270
+ "pattern": "\\S"
271
+ },
272
+ "rationale": {
273
+ "type": "string",
274
+ "minLength": 1,
275
+ "pattern": "\\S"
276
+ }
277
+ }
278
+ }
279
+ }
280
+ }
281
+ }
282
+ ]
283
+ }
284
+ }
285
+ },
286
+ "decision": {
287
+ "oneOf": [
288
+ { "$ref": "#/$defs/impactDecision" },
289
+ {
290
+ "type": "object",
291
+ "additionalProperties": false,
292
+ "required": ["kind", "reason", "rationale"],
293
+ "properties": {
294
+ "kind": { "const": "no_impact" },
295
+ "reason": { "type": "string", "minLength": 1 },
296
+ "rationale": { "type": "string", "minLength": 1 }
297
+ }
298
+ },
299
+ {
300
+ "type": "object",
301
+ "additionalProperties": false,
302
+ "required": ["kind", "policyReason", "rationale"],
303
+ "properties": {
304
+ "kind": { "const": "not_applicable" },
305
+ "policyReason": { "type": "string", "minLength": 1 },
306
+ "rationale": { "type": "string", "minLength": 1 }
307
+ }
308
+ }
309
+ ]
310
+ },
311
+ "file": {
312
+ "type": "object",
313
+ "additionalProperties": false,
314
+ "required": [
315
+ "path",
316
+ "status",
317
+ "analysisDepth",
318
+ "disposition",
319
+ "oldHunkRanges",
320
+ "newHunkRanges",
321
+ "before",
322
+ "after",
323
+ "analysisReviews",
324
+ "decision"
325
+ ],
326
+ "properties": {
327
+ "path": { "type": "string", "minLength": 1 },
328
+ "status": { "enum": ["A", "M", "R", "C", "T", "D"] },
329
+ "oldPath": { "type": "string", "minLength": 1 },
330
+ "copyFromPath": { "type": "string", "minLength": 1 },
331
+ "analysisDepth": { "enum": ["symbol", "metadata", "file", "none"] },
332
+ "disposition": { "enum": ["checked", "advisory", "skipped"] },
333
+ "skipReason": {
334
+ "enum": ["binary", "unsupported_encoding", "symlink", "submodule"]
335
+ },
336
+ "gitMode": { "type": "string" },
337
+ "previousMode": { "type": "string" },
338
+ "oldHunkRanges": {
339
+ "type": "array",
340
+ "items": { "$ref": "#/$defs/range" }
341
+ },
342
+ "newHunkRanges": {
343
+ "type": "array",
344
+ "items": { "$ref": "#/$defs/range" }
345
+ },
346
+ "before": { "oneOf": [{ "$ref": "#/$defs/side" }, { "type": "null" }] },
347
+ "after": { "oneOf": [{ "$ref": "#/$defs/side" }, { "type": "null" }] },
348
+ "analysisReviews": {
349
+ "type": "array",
350
+ "items": {
351
+ "oneOf": [
352
+ { "$ref": "#/$defs/partialReview" },
353
+ { "$ref": "#/$defs/unsupportedReview" }
354
+ ]
355
+ }
356
+ },
357
+ "decision": { "$ref": "#/$defs/decision" }
358
+ },
359
+ "anyOf": [
360
+ { "properties": { "before": { "$ref": "#/$defs/side" } } },
361
+ { "properties": { "after": { "$ref": "#/$defs/side" } } }
362
+ ]
363
+ }
364
+ }
365
+ }
@@ -44,10 +44,6 @@ jobs:
44
44
  with:
45
45
  node-version: 24
46
46
  cache: npm
47
- - name: Install SWI-Prolog
48
- run: |
49
- sudo apt-get update
50
- sudo apt-get install -y swi-prolog
51
47
  - run: npm ci
52
48
  - run: npm exec -- kibi sync
53
49
  - run: npm exec -- kibi report --output kibi-report
@@ -42,10 +42,6 @@ jobs:
42
42
  with:
43
43
  node-version: 24
44
44
  cache: npm
45
- - name: Install SWI-Prolog
46
- run: |
47
- sudo apt-get update
48
- sudo apt-get install -y swi-prolog
49
45
  - run: npm ci
50
46
  - run: npm exec -- kibi sync
51
47
  - run: npm exec -- kibi report --output kibi-report