kibi-cli 0.17.0 → 0.18.1

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 (181) hide show
  1. package/dist/cli-json-command.d.ts.map +1 -1
  2. package/dist/cli-json-command.js +87 -11
  3. package/dist/cli-register-maintenance.d.ts.map +1 -1
  4. package/dist/cli-register-maintenance.js +8 -0
  5. package/dist/cli-register-reporting.d.ts.map +1 -1
  6. package/dist/cli-register-reporting.js +5 -0
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +2 -1
  9. package/dist/commands/aggregated-checks.d.ts.map +1 -1
  10. package/dist/commands/aggregated-checks.js +1 -0
  11. package/dist/commands/coverage.d.ts +5 -0
  12. package/dist/commands/coverage.d.ts.map +1 -1
  13. package/dist/commands/coverage.js +5 -0
  14. package/dist/commands/discovery-table.d.ts.map +1 -1
  15. package/dist/commands/discovery-table.js +96 -5
  16. package/dist/commands/sync/cache.d.ts +2 -0
  17. package/dist/commands/sync/cache.d.ts.map +1 -1
  18. package/dist/commands/sync/cache.js +8 -0
  19. package/dist/commands/sync/persistence.d.ts.map +1 -1
  20. package/dist/commands/sync/persistence.js +58 -1
  21. package/dist/commands/sync.d.ts.map +1 -1
  22. package/dist/commands/sync.js +72 -15
  23. package/dist/commands/usage-metrics.d.ts +66 -2
  24. package/dist/commands/usage-metrics.d.ts.map +1 -1
  25. package/dist/commands/usage-metrics.js +34 -24
  26. package/dist/commands/usage-remediation.d.ts +9 -0
  27. package/dist/commands/usage-remediation.d.ts.map +1 -0
  28. package/dist/commands/usage-remediation.js +52 -0
  29. package/dist/extractors/markdown.d.ts +8 -0
  30. package/dist/extractors/markdown.d.ts.map +1 -1
  31. package/dist/extractors/markdown.js +69 -2
  32. package/dist/operations/modeling/logic-modeling.d.ts.map +1 -1
  33. package/dist/operations/modeling/logic-modeling.js +14 -5
  34. package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
  35. package/dist/operations/modeling/model-requirement.js +27 -2
  36. package/dist/operations/modeling/predicate-applyplan.d.ts +1 -1
  37. package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -1
  38. package/dist/operations/modeling/predicate-applyplan.js +18 -6
  39. package/dist/operations/modeling/predicate-inference.d.ts.map +1 -1
  40. package/dist/operations/modeling/predicate-inference.js +5 -17
  41. package/dist/operations/modeling/predicate-loader.js +1 -1
  42. package/dist/operations/modeling/predicate-types.d.ts +9 -1
  43. package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
  44. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  45. package/dist/operations/modeling/suggest-predicates.js +35 -11
  46. package/dist/operations/mutation/audit.js +1 -1
  47. package/dist/operations/mutation/contradictions.d.ts +1 -1
  48. package/dist/operations/mutation/contradictions.d.ts.map +1 -1
  49. package/dist/operations/mutation/contradictions.js +23 -18
  50. package/dist/operations/mutation/serialization.d.ts.map +1 -1
  51. package/dist/operations/mutation/serialization.js +6 -3
  52. package/dist/operations/mutation/upsert.d.ts +3 -1
  53. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  54. package/dist/operations/mutation/upsert.js +51 -12
  55. package/dist/operations/mutation/validate-upsert.d.ts.map +1 -1
  56. package/dist/operations/mutation/validate-upsert.js +18 -2
  57. package/dist/operations/mutation/validation.d.ts.map +1 -1
  58. package/dist/operations/mutation/validation.js +8 -0
  59. package/dist/operations/semantic-advisor/analysis-receipt.d.ts.map +1 -1
  60. package/dist/operations/semantic-advisor/analysis-receipt.js +7 -1
  61. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  62. package/dist/operations/semantic-advisor/analyze-prose.js +76 -61
  63. package/dist/operations/semantic-advisor/clauses.d.ts +1 -0
  64. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
  65. package/dist/operations/semantic-advisor/clauses.js +7 -7
  66. package/dist/operations/semantic-advisor/ingestion-boundary.d.ts +18 -0
  67. package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -0
  68. package/dist/operations/semantic-advisor/ingestion-boundary.js +167 -0
  69. package/dist/operations/semantic-advisor/shared.d.ts +8 -0
  70. package/dist/operations/semantic-advisor/shared.d.ts.map +1 -1
  71. package/dist/operations/semantic-advisor/shared.js +37 -3
  72. package/dist/operations/semantic-advisor/types.d.ts +5 -0
  73. package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
  74. package/dist/prolog/codec.d.ts.map +1 -1
  75. package/dist/prolog/codec.js +9 -2
  76. package/dist/prolog.d.ts +6 -0
  77. package/dist/prolog.d.ts.map +1 -1
  78. package/dist/prolog.js +240 -61
  79. package/dist/public/diagnostic-usage.d.ts +17 -0
  80. package/dist/public/diagnostic-usage.d.ts.map +1 -0
  81. package/dist/public/diagnostic-usage.js +152 -0
  82. package/dist/public/distribution-parity.d.ts +90 -0
  83. package/dist/public/distribution-parity.d.ts.map +1 -0
  84. package/dist/public/distribution-parity.js +367 -0
  85. package/dist/public/impact/full-kb-quality.d.ts +2 -0
  86. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  87. package/dist/public/impact/full-kb-quality.js +53 -1
  88. package/dist/public/impact-diagnostics.d.ts +2 -0
  89. package/dist/public/impact-diagnostics.d.ts.map +1 -1
  90. package/dist/public/impact-diagnostics.js +1 -0
  91. package/dist/public/operations/catalog.d.ts +151 -6
  92. package/dist/public/operations/catalog.d.ts.map +1 -1
  93. package/dist/public/operations/check-executor.d.ts.map +1 -1
  94. package/dist/public/operations/check-executor.js +4 -0
  95. package/dist/public/operations/discovery-executors.d.ts +6 -0
  96. package/dist/public/operations/discovery-executors.d.ts.map +1 -1
  97. package/dist/public/operations/discovery-executors.js +18 -2
  98. package/dist/public/operations/index.d.ts +4 -0
  99. package/dist/public/operations/index.d.ts.map +1 -1
  100. package/dist/public/operations/index.js +4 -0
  101. package/dist/public/operations/legacy-migration-plan.d.ts +113 -0
  102. package/dist/public/operations/legacy-migration-plan.d.ts.map +1 -0
  103. package/dist/public/operations/legacy-migration-plan.js +409 -0
  104. package/dist/public/operations/node-ports.d.ts.map +1 -1
  105. package/dist/public/operations/node-ports.js +90 -0
  106. package/dist/public/operations/repair-plan.d.ts +184 -0
  107. package/dist/public/operations/repair-plan.d.ts.map +1 -0
  108. package/dist/public/operations/repair-plan.js +397 -0
  109. package/dist/public/operations/runtime-types.d.ts +7 -0
  110. package/dist/public/operations/runtime-types.d.ts.map +1 -1
  111. package/dist/public/operations/specs/check.d.ts +2 -2
  112. package/dist/public/operations/specs/check.js +2 -2
  113. package/dist/public/operations/specs/discovery.d.ts +1 -1
  114. package/dist/public/operations/specs/discovery.js +1 -1
  115. package/dist/public/operations/specs/modeling.d.ts +19 -1
  116. package/dist/public/operations/specs/modeling.d.ts.map +1 -1
  117. package/dist/public/operations/specs/modeling.js +16 -1
  118. package/dist/public/operations/specs/mutation-schemas.d.ts +96 -1
  119. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  120. package/dist/public/operations/specs/mutation-schemas.js +40 -1
  121. package/dist/public/operations/specs/reporting.d.ts +42 -1
  122. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  123. package/dist/public/operations/specs/reporting.js +70 -6
  124. package/dist/public/operations/specs/semantic.js +1 -1
  125. package/dist/public/operations/specs/upsert.d.ts +96 -1
  126. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  127. package/dist/public/operations/workspace-snapshot.d.ts +10 -0
  128. package/dist/public/operations/workspace-snapshot.d.ts.map +1 -0
  129. package/dist/public/operations/workspace-snapshot.js +20 -0
  130. package/dist/public/schemas/entity.d.ts.map +1 -1
  131. package/dist/public/schemas/entity.js +43 -1
  132. package/dist/public/skills/kibi-traceability/SKILL.md +7 -1
  133. package/dist/public/skills/kibi-usage/SKILL.md +10 -4
  134. package/dist/public/skills/kibi-usage/resources/fact-lanes.md +1 -1
  135. package/dist/public/skills/kibi-usage/resources/logic-ir.md +1 -1
  136. package/dist/public/skills/kibi-usage/resources/workflows.md +19 -2
  137. package/dist/public/telemetry-acceptance.d.ts +89 -0
  138. package/dist/public/telemetry-acceptance.d.ts.map +1 -0
  139. package/dist/public/telemetry-acceptance.js +597 -0
  140. package/dist/public/telemetry-remediation.d.ts +33 -0
  141. package/dist/public/telemetry-remediation.d.ts.map +1 -0
  142. package/dist/public/telemetry-remediation.js +257 -0
  143. package/dist/public/verification-receipt.d.ts +75 -0
  144. package/dist/public/verification-receipt.d.ts.map +1 -0
  145. package/dist/public/verification-receipt.js +129 -0
  146. package/dist/schemas/entity.schema.json +96 -2
  147. package/dist/traceability/temp-kb.d.ts.map +1 -1
  148. package/dist/traceability/temp-kb.js +36 -3
  149. package/dist/types/entities.d.ts +1 -0
  150. package/dist/types/entities.d.ts.map +1 -1
  151. package/dist/utils/rule-registry.d.ts +2 -0
  152. package/dist/utils/rule-registry.d.ts.map +1 -1
  153. package/package.json +30 -2
  154. package/src/public/diagnostic-usage.ts +206 -0
  155. package/src/public/distribution-parity.ts +580 -0
  156. package/src/public/impact/full-kb-quality.ts +74 -1
  157. package/src/public/impact-diagnostics.ts +16 -0
  158. package/src/public/operations/check-executor.ts +4 -0
  159. package/src/public/operations/discovery-executors.ts +24 -2
  160. package/src/public/operations/index.ts +4 -0
  161. package/src/public/operations/legacy-migration-plan.ts +688 -0
  162. package/src/public/operations/node-ports.ts +109 -0
  163. package/src/public/operations/repair-plan.ts +562 -0
  164. package/src/public/operations/runtime-types.ts +8 -0
  165. package/src/public/operations/specs/check.ts +2 -2
  166. package/src/public/operations/specs/discovery.ts +1 -1
  167. package/src/public/operations/specs/modeling.ts +19 -1
  168. package/src/public/operations/specs/mutation-schemas.ts +47 -1
  169. package/src/public/operations/specs/reporting.ts +91 -6
  170. package/src/public/operations/specs/semantic.ts +1 -1
  171. package/src/public/operations/workspace-snapshot.ts +28 -0
  172. package/src/public/schemas/entity.ts +44 -1
  173. package/src/public/skills/kibi-traceability/SKILL.md +7 -1
  174. package/src/public/skills/kibi-usage/SKILL.md +10 -4
  175. package/src/public/skills/kibi-usage/resources/fact-lanes.md +1 -1
  176. package/src/public/skills/kibi-usage/resources/logic-ir.md +1 -1
  177. package/src/public/skills/kibi-usage/resources/workflows.md +19 -2
  178. package/src/public/telemetry-acceptance.ts +859 -0
  179. package/src/public/telemetry-remediation.ts +462 -0
  180. package/src/public/verification-receipt.ts +170 -0
  181. package/src/schemas/entity.schema.json +96 -2
@@ -1,4 +1,7 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import path from "node:path";
1
3
  import { parseEntityFromList, parseListOfLists, parseTriples, } from "../../prolog/codec.js";
4
+ import { analyzeTelemetryAcceptance, createTelemetryAcceptanceDiagnostics, parseTelemetryUsageLog, } from "../telemetry-acceptance.js";
2
5
  import { createCoverageDepthQualityDiagnostics } from "./coverage-depth-quality.js";
3
6
  import { createRequirementQualityDiagnostics } from "./requirement-quality.js";
4
7
  import { createSymbolQualityDiagnostics } from "./symbol-quality.js";
@@ -63,6 +66,9 @@ function toExtractedEntity(entity) {
63
66
  const textRef = optionalStringField(entity, "text_ref");
64
67
  if (textRef !== undefined)
65
68
  extracted.text_ref = textRef;
69
+ const semanticText = optionalStringField(entity, "semantic_text");
70
+ if (semanticText !== undefined)
71
+ extracted.semantic_text = semanticText;
66
72
  const logicClaims = optionalStringArrayField(entity, "logic_claims");
67
73
  if (logicClaims !== undefined)
68
74
  extracted.logic_claims = logicClaims;
@@ -171,10 +177,56 @@ function capDiagnostics(diagnostics, maxDiagnostics) {
171
177
  ? diagnostics.slice(0, maxDiagnostics)
172
178
  : diagnostics;
173
179
  }
180
+ function telemetryReadDiagnostic(message) {
181
+ return {
182
+ id: "telemetry_evidence_unreadable",
183
+ severity: "review",
184
+ blocking: false,
185
+ category: "telemetry",
186
+ source: ".kb/usage.log",
187
+ message,
188
+ suggestion: "Repair or regenerate .kb/usage.log through Kibi diagnostic mode, then rerun kibi usage-metrics --require-acceptance and an unfiltered kb_check.",
189
+ };
190
+ }
191
+ async function collectTelemetryDiagnostics(workspaceRoot, now) {
192
+ if (workspaceRoot === undefined)
193
+ return [];
194
+ const usageLogPath = path.join(workspaceRoot, ".kb", "usage.log");
195
+ let contents;
196
+ try {
197
+ contents = await readFile(usageLogPath, "utf8");
198
+ }
199
+ catch (error) {
200
+ if (typeof error === "object" &&
201
+ error !== null &&
202
+ "code" in error &&
203
+ error.code === "ENOENT") {
204
+ return [];
205
+ }
206
+ const message = error instanceof Error ? error.message : String(error);
207
+ return [
208
+ telemetryReadDiagnostic(`Telemetry acceptance evidence is unreadable: ${message}`),
209
+ ];
210
+ }
211
+ try {
212
+ const report = analyzeTelemetryAcceptance(parseTelemetryUsageLog(contents), now);
213
+ return createTelemetryAcceptanceDiagnostics(report);
214
+ }
215
+ catch (error) {
216
+ const message = error instanceof Error ? error.message : String(error);
217
+ return [
218
+ telemetryReadDiagnostic(`Telemetry acceptance evidence is malformed: ${message}`),
219
+ ];
220
+ }
221
+ }
174
222
  export async function collectFullKbQualityDiagnostics(options) {
175
- const manifestResults = await loadKbExtractionResults(options.prolog);
223
+ const [manifestResults, telemetryDiagnostics] = await Promise.all([
224
+ loadKbExtractionResults(options.prolog),
225
+ collectTelemetryDiagnostics(options.workspaceRoot, options.now ?? new Date()),
226
+ ]);
176
227
  const coverageDepthDiagnostics = createCoverageDepthQualityDiagnostics(manifestResults);
177
228
  const diagnostics = [
229
+ ...telemetryDiagnostics,
178
230
  ...createRequirementQualityDiagnostics({
179
231
  manifestResults,
180
232
  ...(options.hardViolationEntityIds !== undefined
@@ -3,5 +3,7 @@ export { collectFullKbQualityDiagnostics } from "./impact/full-kb-quality.js";
3
3
  export { createSemanticReviewDiagnostics, createSymbolGranularityDiagnostics, hasBlockingImpactDiagnostics, hasBlockingQualityDiagnostics, } from "./impact/diagnostics.js";
4
4
  export { createRequirementQualityDiagnostics } from "./impact/requirement-quality.js";
5
5
  export { createSymbolQualityDiagnostics } from "./impact/symbol-quality.js";
6
+ export { DEFAULT_TELEMETRY_ACCEPTANCE_POLICY, TELEMETRY_ACCEPTANCE_VERSION, analyzeTelemetryAcceptance, createTelemetryAcceptanceDiagnostics, parseTelemetryUsageLog, } from "./telemetry-acceptance.js";
6
7
  export type { ChangedFileImpactOptions, ChangedFileImpactResult, ImpactExtractedSymbol, ImpactLinkedEntity, QualityDiagnostic, QualityDiagnosticSeverity, RequirementQualityDiagnosticsOptions, SemanticReviewDiagnosticsOptions, SymbolGranularityDiagnosticsOptions, SymbolQualityDiagnosticsOptions, } from "./impact/types.js";
8
+ export type { TelemetryAcceptanceMetric, TelemetryAcceptancePolicy, TelemetryAcceptanceReport, TelemetryAcceptanceStatus, TelemetryMetricId, TelemetryMetricStatus, TelemetryUsageEvent, } from "./telemetry-acceptance.js";
7
9
  //# sourceMappingURL=impact-diagnostics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"impact-diagnostics.d.ts","sourceRoot":"","sources":["../../src/public/impact-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EACL,+BAA+B,EAC/B,kCAAkC,EAClC,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mCAAmC,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,oCAAoC,EACpC,gCAAgC,EAChC,mCAAmC,EACnC,+BAA+B,GAChC,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"impact-diagnostics.d.ts","sourceRoot":"","sources":["../../src/public/impact-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EACL,+BAA+B,EAC/B,kCAAkC,EAClC,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mCAAmC,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EACL,mCAAmC,EACnC,4BAA4B,EAC5B,0BAA0B,EAC1B,oCAAoC,EACpC,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,oCAAoC,EACpC,gCAAgC,EAChC,mCAAmC,EACnC,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC"}
@@ -3,3 +3,4 @@ export { collectFullKbQualityDiagnostics } from "./impact/full-kb-quality.js";
3
3
  export { createSemanticReviewDiagnostics, createSymbolGranularityDiagnostics, hasBlockingImpactDiagnostics, hasBlockingQualityDiagnostics, } from "./impact/diagnostics.js";
4
4
  export { createRequirementQualityDiagnostics } from "./impact/requirement-quality.js";
5
5
  export { createSymbolQualityDiagnostics } from "./impact/symbol-quality.js";
6
+ export { DEFAULT_TELEMETRY_ACCEPTANCE_POLICY, TELEMETRY_ACCEPTANCE_VERSION, analyzeTelemetryAcceptance, createTelemetryAcceptanceDiagnostics, parseTelemetryUsageLog, } from "./telemetry-acceptance.js";
@@ -139,7 +139,7 @@ export declare const OPERATION_CATALOG: readonly [{
139
139
  }, {
140
140
  readonly name: "kb_status";
141
141
  readonly cliName: "status";
142
- readonly description: "Report current branch, snapshot, and freshness metadata for the attached KB. Read-only status inspection with no mutation side effects.";
142
+ readonly description: "Report current branch, KB snapshot and freshness metadata, plus the deterministic workspace snapshot used to validate execution receipts. Read-only status inspection with no mutation side effects.";
143
143
  readonly businessInputSchema: {
144
144
  readonly type: "object";
145
145
  readonly properties: {};
@@ -195,7 +195,7 @@ export declare const OPERATION_CATALOG: readonly [{
195
195
  }, {
196
196
  readonly name: "kb_coverage";
197
197
  readonly cliName: "coverage";
198
- readonly description: "Generate curated coverage reports for requirements, symbols, or grouped types. Read-only reporting with no mutation side effects.";
198
+ readonly description: "Generate curated structural coverage and conservative end-to-end requirement proof reports for requirements, symbols, or grouped types. Requirement reports include a deterministic, dependency-ordered, read-only repair plan; optional legacy migration previews reconstruct authored proposition inventories and rank exact schema candidates without producing executable writes. Paginated plans identify incomplete scope. Requirement rows keep coverageStatus separate from proofStatus and require fresh snapshot-bound E2E receipts before proof. No mutation side effects.";
199
199
  readonly businessInputSchema: {
200
200
  readonly type: "object";
201
201
  readonly properties: {
@@ -226,6 +226,38 @@ export declare const OPERATION_CATALOG: readonly [{
226
226
  readonly type: "integer";
227
227
  readonly default: 0;
228
228
  };
229
+ readonly includeMigrationPreview: {
230
+ readonly type: "boolean";
231
+ readonly default: false;
232
+ readonly description: "Opt in to a deterministic, read-only kibi.legacy-migration-plan.v1 preview for ready semantic-inventory repair batches.";
233
+ };
234
+ readonly migrationLimit: {
235
+ readonly type: "integer";
236
+ readonly minimum: 1;
237
+ readonly maximum: 10;
238
+ readonly default: 1;
239
+ readonly description: "Maximum requirement migration batches to preview. Defaults to one review batch.";
240
+ };
241
+ readonly migrationOffset: {
242
+ readonly type: "integer";
243
+ readonly minimum: 0;
244
+ readonly default: 0;
245
+ readonly description: "Zero-based offset into ready semantic-inventory batches.";
246
+ };
247
+ readonly migrationPredicateLimit: {
248
+ readonly type: "integer";
249
+ readonly minimum: 1;
250
+ readonly maximum: 20;
251
+ readonly default: 5;
252
+ readonly description: "Maximum exact predicate-schema candidates retained per assertive proposition.";
253
+ };
254
+ readonly migrationPredicateMinScore: {
255
+ readonly type: "number";
256
+ readonly minimum: 0;
257
+ readonly maximum: 1;
258
+ readonly default: 0.35;
259
+ readonly description: "Minimum deterministic predicate-schema rank score retained in migration previews.";
260
+ };
229
261
  };
230
262
  };
231
263
  readonly requiresProlog: true;
@@ -438,7 +470,7 @@ export declare const OPERATION_CATALOG: readonly [{
438
470
  }, {
439
471
  readonly name: "kb_suggest_predicates";
440
472
  readonly cliName: "suggest-predicates";
441
- readonly description: "Suggest ontology predicate schemas for prose requirements before agents write facts. Read-only guidance returns ranked candidates, a safe predicate-fact applyPlan, a separate requires_predicate relationshipPlan when a requirement ID is supplied, or an explicit ontology-gap observation when no predicate fits.";
473
+ readonly description: "Suggest ontology predicate schemas for prose requirements before agents write facts. Read-only guidance returns ranked candidates, an applicable predicate-fact plan only when every ordered argument is bound, a separate requires_predicate relationship plan when a requirement ID is supplied, or an explicit ontology-gap observation when no predicate fits.";
442
474
  readonly businessInputSchema: {
443
475
  readonly type: "object";
444
476
  readonly required: readonly ["text"];
@@ -478,6 +510,24 @@ export declare const OPERATION_CATALOG: readonly [{
478
510
  readonly default: true;
479
511
  readonly description: "Whether to include existing KB fact_kind=predicate_schema facts alongside Kibi's built-in predicate catalog. Default: true.";
480
512
  };
513
+ readonly schemaId: {
514
+ readonly type: "string";
515
+ readonly minLength: 1;
516
+ readonly description: "Optional exact reviewed predicate schema ID. When supplied, Kibi selects that schema instead of lexical rank order and fails closed if it is unavailable.";
517
+ };
518
+ readonly argumentBindings: {
519
+ readonly type: "object";
520
+ readonly additionalProperties: {
521
+ readonly type: "string";
522
+ readonly minLength: 1;
523
+ };
524
+ readonly description: "Optional exact predicate argument values keyed by a candidate schema's argument_names. Required before applying a candidate whose binding_status is incomplete; Kibi never substitutes guessed values for unbound arguments.";
525
+ };
526
+ readonly polarityHint: {
527
+ readonly type: "string";
528
+ readonly enum: readonly ["assert", "deny"];
529
+ readonly description: "Optional reviewed polarity override for claims whose surface negation does not express predicate denial. Use only after reviewing the selected schema and full claim scope.";
530
+ };
481
531
  readonly existingLogicClaims: {
482
532
  readonly type: "array";
483
533
  readonly items: {
@@ -662,6 +712,10 @@ export declare const OPERATION_CATALOG: readonly [{
662
712
  readonly type: "string";
663
713
  readonly description: "Optional text anchor/reference. Example: 'requirements.md#L40'.";
664
714
  };
715
+ readonly semantic_text: {
716
+ readonly type: "string";
717
+ readonly description: "Requirement-only authored prose used for semantic inventory hashes and UTF-8 spans. Keep text_ref available for independent document or code evidence.";
718
+ };
665
719
  readonly logic_claims: {
666
720
  readonly type: "array";
667
721
  readonly minItems: 1;
@@ -672,6 +726,30 @@ export declare const OPERATION_CATALOG: readonly [{
672
726
  };
673
727
  readonly description: "Requirement-only manifest of every atomic normative claim key returned by kb_semantic_advisor. A requirement is logic-complete only when every key is grounded by a linked property_value or predicate fact with the same claim_key.";
674
728
  };
729
+ readonly semantic_clauses: {
730
+ readonly type: "array";
731
+ readonly minItems: 1;
732
+ readonly items: {
733
+ readonly type: "string";
734
+ readonly minLength: 1;
735
+ };
736
+ readonly description: "Optional complete atomic decomposition used by kb_semantic_advisor and proposition-complete ingestion. Preserve it when automatic sentence splitting needs a reviewed override.";
737
+ };
738
+ readonly semantic_inventory_version: {
739
+ readonly type: "string";
740
+ readonly const: "kibi.semantic-inventory.v1";
741
+ readonly description: "Requirement-only proposition ledger contract version returned by kb_semantic_advisor.";
742
+ };
743
+ readonly semantic_source_field: {
744
+ readonly type: "string";
745
+ readonly enum: readonly ["semantic_text", "text_ref", "title"];
746
+ readonly description: "Requirement field whose exact UTF-8 bytes anchor semantic_inventory spans.";
747
+ };
748
+ readonly semantic_source_hash: {
749
+ readonly type: "string";
750
+ readonly pattern: "^[a-f0-9]{64}$";
751
+ readonly description: "SHA-256 of the exact semantic source text returned in the advisor inventory contract.";
752
+ };
675
753
  readonly sourceFile: {
676
754
  readonly type: "string";
677
755
  readonly description: "Optional code source file for symbol entities. Example: 'src/auth/login.ts'.";
@@ -696,6 +774,66 @@ export declare const OPERATION_CATALOG: readonly [{
696
774
  readonly enum: readonly ["internal", "consumer"];
697
775
  readonly description: "Optional typed verification perspective for test entities. Example: 'consumer'.";
698
776
  };
777
+ readonly verification_receipts: {
778
+ readonly type: "array";
779
+ readonly maxItems: 50;
780
+ readonly items: {
781
+ readonly type: "object";
782
+ readonly required: readonly ["version", "receipt_id", "test_id", "runner", "command", "scope", "outcome", "code_snapshot", "environment_hash", "started_at", "finished_at", "artifact_digest"];
783
+ readonly properties: {
784
+ readonly version: {
785
+ readonly type: "string";
786
+ readonly const: "kibi.verification-receipt.v1";
787
+ };
788
+ readonly receipt_id: {
789
+ readonly type: "string";
790
+ readonly pattern: "^VR-[A-Za-z0-9][A-Za-z0-9._:-]{7,127}$";
791
+ };
792
+ readonly test_id: {
793
+ readonly type: "string";
794
+ readonly minLength: 1;
795
+ };
796
+ readonly runner: {
797
+ readonly type: "string";
798
+ readonly minLength: 1;
799
+ };
800
+ readonly command: {
801
+ readonly type: "string";
802
+ readonly minLength: 1;
803
+ };
804
+ readonly scope: {
805
+ readonly type: "string";
806
+ readonly enum: readonly ["unit", "integration", "end_to_end"];
807
+ };
808
+ readonly outcome: {
809
+ readonly type: "string";
810
+ readonly enum: readonly ["passed", "failed", "errored", "cancelled", "skipped"];
811
+ };
812
+ readonly code_snapshot: {
813
+ readonly type: "string";
814
+ readonly pattern: "^[a-f0-9]{64}$";
815
+ };
816
+ readonly environment_hash: {
817
+ readonly type: "string";
818
+ readonly pattern: "^[a-f0-9]{64}$";
819
+ };
820
+ readonly started_at: {
821
+ readonly type: "string";
822
+ readonly minLength: 1;
823
+ };
824
+ readonly finished_at: {
825
+ readonly type: "string";
826
+ readonly minLength: 1;
827
+ };
828
+ readonly artifact_digest: {
829
+ readonly type: "string";
830
+ readonly pattern: "^[a-f0-9]{64}$";
831
+ };
832
+ };
833
+ readonly additionalProperties: false;
834
+ };
835
+ readonly description: "Append-only test execution evidence. Proof accepts only the newest valid passed receipt bound to the current code snapshot and within the seven-day freshness window.";
836
+ };
699
837
  readonly fact_kind: {
700
838
  readonly type: "string";
701
839
  readonly enum: readonly ["subject", "property_value", "observation", "meta", "predicate_schema", "predicate", "rule_schema", "rule"];
@@ -856,7 +994,14 @@ export declare const OPERATION_CATALOG: readonly [{
856
994
  readonly minimum: 0;
857
995
  };
858
996
  };
859
- readonly allOf: readonly [Record<string, unknown>];
997
+ readonly allOf: readonly [Record<string, unknown>, {
998
+ readonly if: {
999
+ readonly required: readonly ["verification_receipts"];
1000
+ };
1001
+ readonly then: {
1002
+ readonly required: readonly ["verification_scope"];
1003
+ };
1004
+ }];
860
1005
  readonly required: readonly ["title", "status"];
861
1006
  };
862
1007
  readonly relationships: {
@@ -910,7 +1055,7 @@ export declare const OPERATION_CATALOG: readonly [{
910
1055
  }, {
911
1056
  readonly name: "kb_check";
912
1057
  readonly cliName: "check";
913
- readonly description: "Run KB validation rules and return violations. Use before or after mutations, and after meaningful source edits with impact options to surface symbol granularity and semantic-review diagnostics. Do not use for point lookups. No write side effects. Prefer explicit rules for faster iteration; omit rules for final full validation plus full-KB qualityDiagnostics review.";
1058
+ readonly description: "Run KB validation rules and return violations. Use before or after mutations, and after meaningful source edits with impact options to surface symbol granularity and semantic-review diagnostics. Do not use for point lookups. No write side effects. Prefer explicit rules for faster iteration; omit rules for final full validation plus full-KB qualityDiagnostics review, including telemetry acceptance when .kb/usage.log exists.";
914
1059
  readonly businessInputSchema: {
915
1060
  readonly type: "object";
916
1061
  readonly properties: {
@@ -920,7 +1065,7 @@ export declare const OPERATION_CATALOG: readonly [{
920
1065
  readonly type: "string";
921
1066
  readonly enum: readonly ["must-priority-coverage", "symbol-coverage", "symbol-traceability", "no-dangling-refs", "no-cycles", "required-fields", "deprecated-adr-no-successor", "domain-contradictions", "strict-fact-shape", "strict-req-fact-pairing", "predicate-verifiability", "logic-coverage", "rule-safety", "rule-verifiability", "semantic-completeness", "query-plan-safety"];
922
1067
  };
923
- readonly description: "Optional rule subset. Allowed: must-priority-coverage, symbol-coverage, symbol-traceability, no-dangling-refs, no-cycles, required-fields, deprecated-adr-no-successor, domain-contradictions, strict-fact-shape, strict-req-fact-pairing, predicate-verifiability, logic-coverage, rule-safety, rule-verifiability, semantic-completeness, query-plan-safety. If omitted, server runs all rules plus the full-KB qualityDiagnostics audit scan; if supplied, server preserves scoped validation and skips the full-KB advisory scan.";
1068
+ readonly description: "Optional rule subset. Allowed: must-priority-coverage, symbol-coverage, symbol-traceability, no-dangling-refs, no-cycles, required-fields, deprecated-adr-no-successor, domain-contradictions, strict-fact-shape, strict-req-fact-pairing, predicate-verifiability, logic-coverage, rule-safety, rule-verifiability, semantic-completeness, query-plan-safety. If omitted, server runs all rules plus the full-KB qualityDiagnostics audit scan, including usage telemetry acceptance when evidence exists; if supplied, server preserves scoped validation and skips the full-KB advisory scan.";
924
1069
  };
925
1070
  readonly sourceFiles: {
926
1071
  readonly type: "array";
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/public/operations/catalog.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE/D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBe,CAAC;AAO9C,wBAAgB,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CAM1D;AAGD,wBAAgB,SAAS,IAAI,SAAS,aAAa,EAAE,CAEpD"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/public/operations/catalog.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE/D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBe,CAAC;AAO9C,wBAAgB,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CAM1D;AAGD,wBAAgB,SAAS,IAAI,SAAS,aAAa,EAAE,CAEpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"check-executor.d.ts","sourceRoot":"","sources":["../../../src/public/operations/check-executor.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,sBAAsB,EACtB,YAAY,EACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGL,iBAAiB,EACjB,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,oBAAoB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAClD,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,GACjB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,6CAA6C,CAAC,EAAE,OAAO,CAAC;CAClE,CAAC;AAcF,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CA4GxC"}
1
+ {"version":3,"file":"check-executor.d.ts","sourceRoot":"","sources":["../../../src/public/operations/check-executor.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,sBAAsB,EACtB,YAAY,EACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGL,iBAAiB,EACjB,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,oBAAoB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAClD,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,GACjB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,6CAA6C,CAAC,EAAE,OAAO,CAAC;CAClE,CAAC;AAcF,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAgHxC"}
@@ -37,6 +37,8 @@ export async function executeCheck(args, context, options = {}) {
37
37
  ? impactQualityDiagnostics
38
38
  : await collectFullKbQualityDiagnostics({
39
39
  prolog,
40
+ workspaceRoot,
41
+ now: context.clock(),
40
42
  ...maxDiagnosticsOption,
41
43
  });
42
44
  return {
@@ -83,6 +85,8 @@ export async function executeCheck(args, context, options = {}) {
83
85
  : await collectFullKbQualityDiagnostics({
84
86
  prolog,
85
87
  hardViolationEntityIds: new Set(violations.map((v) => v.entityId)),
88
+ workspaceRoot,
89
+ now: context.clock(),
86
90
  ...maxDiagnosticsOption,
87
91
  });
88
92
  return {
@@ -32,6 +32,12 @@ export type StatusPayload = {
32
32
  readonly syncState: string;
33
33
  readonly kbPath?: string;
34
34
  readonly lastSyncSource?: string;
35
+ readonly verificationSnapshot?: string;
36
+ readonly verificationSnapshotAvailable?: boolean;
37
+ readonly verificationSnapshotDirty?: boolean;
38
+ readonly verificationSnapshotFileCount?: number;
39
+ readonly verificationSnapshotVersion?: string;
40
+ readonly verificationSnapshotError?: string;
35
41
  };
36
42
  export declare function executeQuery(input: QueryInput, context: OperationContext): Promise<OperationResult<QueryPayload>>;
37
43
  export declare function executeSearch(input: SearchInput, context: OperationContext): Promise<OperationResult<SearchPayload>>;
@@ -1 +1 @@
1
- {"version":3,"file":"discovery-executors.d.ts","sourceRoot":"","sources":["../../../src/public/operations/discovery-executors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAO3D,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,oBAAoB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAqBF,wBAAsB,YAAY,CAChC,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CA+BxC;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAsCzC;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAyBzC"}
1
+ {"version":3,"file":"discovery-executors.d.ts","sourceRoot":"","sources":["../../../src/public/operations/discovery-executors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAO3D,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,oBAAoB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACjD,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAC7C,QAAQ,CAAC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IAChD,QAAQ,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;CAC7C,CAAC;AAqBF,wBAAsB,YAAY,CAChC,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CA+BxC;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAsCzC;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAwCzC"}
@@ -1,6 +1,7 @@
1
1
  import { rankEntities } from "../../search-ranking.js";
2
2
  import { loadEntities, paginateResults, validateEntityType, } from "./discovery-entities.js";
3
3
  import { runOperationJsonQuery } from "./prolog-json.js";
4
+ import { readWorkspaceSnapshot } from "./workspace-snapshot.js";
4
5
  function requireProlog(context) {
5
6
  if (!context.prolog) {
6
7
  throw new Error("Discovery operation requires a Prolog context");
@@ -84,14 +85,29 @@ export async function executeStatus(_input, context) {
84
85
  if (!isStatusPayload(payload)) {
85
86
  throw new Error("Status execution query returned an invalid payload");
86
87
  }
88
+ const snapshotEvidence = await readWorkspaceSnapshot(context);
89
+ const enrichedPayload = {
90
+ ...payload,
91
+ verificationSnapshot: snapshotEvidence.available
92
+ ? snapshotEvidence.snapshot.hash
93
+ : "unknown",
94
+ verificationSnapshotAvailable: snapshotEvidence.available,
95
+ ...(snapshotEvidence.available
96
+ ? {
97
+ verificationSnapshotDirty: snapshotEvidence.snapshot.dirty,
98
+ verificationSnapshotFileCount: snapshotEvidence.snapshot.fileCount,
99
+ verificationSnapshotVersion: snapshotEvidence.snapshot.version,
100
+ }
101
+ : { verificationSnapshotError: snapshotEvidence.error }),
102
+ };
87
103
  return {
88
104
  content: [
89
105
  {
90
106
  type: "text",
91
- text: `Branch ${payload.branch} is ${payload.syncState} (snapshot ${payload.snapshotId}, dirty=${payload.dirty})`,
107
+ text: `Branch ${payload.branch} is ${payload.syncState} (snapshot ${payload.snapshotId}, dirty=${payload.dirty}, verificationSnapshot=${enrichedPayload.verificationSnapshot})`,
92
108
  },
93
109
  ],
94
- structuredContent: payload,
110
+ structuredContent: enrichedPayload,
95
111
  };
96
112
  }
97
113
  catch (error) {
@@ -4,6 +4,8 @@ export * from "./discovery-entities.js";
4
4
  export * from "./discovery-executors.js";
5
5
  export * from "./runtime-types.js";
6
6
  export * from "./node-ports.js";
7
+ export * from "./repair-plan.js";
8
+ export * from "./legacy-migration-plan.js";
7
9
  export * from "./specs/autopilot.js";
8
10
  export * from "./specs/check.js";
9
11
  export * from "./specs/discovery.js";
@@ -14,6 +16,8 @@ export * from "./specs/semantic.js";
14
16
  export * from "./specs/skills.js";
15
17
  export * from "./specs/sparql.js";
16
18
  export * from "./types.js";
19
+ export * from "../telemetry-acceptance.js";
20
+ export * from "../telemetry-remediation.js";
17
21
  export * from "../../operations/autopilot/generate.js";
18
22
  export * from "../../operations/autopilot/presentation.js";
19
23
  export type * from "../../operations/autopilot/types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/public/operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,mBAAmB,qCAAqC,CAAC;AACzD,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/public/operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,mBAAmB,qCAAqC,CAAC;AACzD,cAAc,mBAAmB,CAAC"}
@@ -4,6 +4,8 @@ export * from "./discovery-entities.js";
4
4
  export * from "./discovery-executors.js";
5
5
  export * from "./runtime-types.js";
6
6
  export * from "./node-ports.js";
7
+ export * from "./repair-plan.js";
8
+ export * from "./legacy-migration-plan.js";
7
9
  export * from "./specs/autopilot.js";
8
10
  export * from "./specs/check.js";
9
11
  export * from "./specs/discovery.js";
@@ -14,6 +16,8 @@ export * from "./specs/semantic.js";
14
16
  export * from "./specs/skills.js";
15
17
  export * from "./specs/sparql.js";
16
18
  export * from "./types.js";
19
+ export * from "../telemetry-acceptance.js";
20
+ export * from "../telemetry-remediation.js";
17
21
  export * from "../../operations/autopilot/generate.js";
18
22
  export * from "../../operations/autopilot/presentation.js";
19
23
  export * from "../../logic/ir.js";
@@ -0,0 +1,113 @@
1
+ import type { PredicateSchemaCandidate } from "../../operations/modeling/predicate-types.js";
2
+ import type { RepairPlan } from "./repair-plan.js";
3
+ import type { OperationContext } from "./runtime-types.js";
4
+ export declare const LEGACY_MIGRATION_PLAN_VERSION: "kibi.legacy-migration-plan.v1";
5
+ export type LegacyMigrationPlanInput = {
6
+ readonly migrationLimit?: number;
7
+ readonly migrationOffset?: number;
8
+ readonly migrationPredicateLimit?: number;
9
+ readonly migrationPredicateMinScore?: number;
10
+ };
11
+ export type LegacyMigrationPredicateCandidate = {
12
+ readonly schemaId: string;
13
+ readonly origin: "project_local" | "built_in";
14
+ readonly predicateName: string;
15
+ readonly argumentNames: readonly string[];
16
+ readonly argumentTypes: readonly string[];
17
+ readonly score: number;
18
+ readonly bindingStatus: "complete" | "incomplete";
19
+ readonly unboundArguments: readonly string[];
20
+ readonly polarity: "assert" | "deny";
21
+ readonly canonicalKey: string;
22
+ readonly writeEligible: false;
23
+ };
24
+ export type LegacyMigrationProposition = {
25
+ readonly claimKey: string;
26
+ readonly claimText: string;
27
+ readonly role: string;
28
+ readonly inventoryStatus: string;
29
+ readonly span: {
30
+ readonly start: number;
31
+ readonly end: number;
32
+ };
33
+ readonly recommendedLane: "strict_property" | "predicate" | "rule" | "unresolved" | "nonlogical";
34
+ readonly disposition: "strict_property_candidate" | "predicate_candidate" | "rule_candidate" | "unresolved_ambiguity" | "unresolved_ontology_gap" | "nonlogical";
35
+ readonly predicateCandidates: readonly LegacyMigrationPredicateCandidate[];
36
+ readonly reviewRequired: true;
37
+ };
38
+ export type LegacyMigrationBatch = {
39
+ readonly id: string;
40
+ readonly requirementId: string;
41
+ readonly repairBatchId: string;
42
+ readonly dependsOn: readonly string[];
43
+ readonly state: "ready_for_review" | "blocked";
44
+ readonly autoApplicable: false;
45
+ readonly sourceBinding: {
46
+ readonly status: "compatible" | "conflict" | "missing";
47
+ readonly sourceFile: string | null;
48
+ readonly sourceKind: "authored_markdown_body";
49
+ readonly sourceHash: string | null;
50
+ readonly sourceByteLength: number;
51
+ readonly persistedField: "semantic_text" | null;
52
+ readonly existingTextRef: string | null;
53
+ readonly existingSemanticText: string | null;
54
+ readonly reason: string;
55
+ };
56
+ readonly sourceText: string | null;
57
+ readonly claimDelta: {
58
+ readonly preserved: readonly string[];
59
+ readonly added: readonly string[];
60
+ readonly stale: readonly string[];
61
+ };
62
+ readonly propositions: readonly LegacyMigrationProposition[];
63
+ readonly requirementPropertyPatchPreview: Readonly<Record<string, unknown>> | null;
64
+ readonly diagnostics: readonly string[];
65
+ };
66
+ export type LegacyMigrationPlan = {
67
+ readonly version: typeof LEGACY_MIGRATION_PLAN_VERSION;
68
+ readonly planId: string;
69
+ readonly readOnly: true;
70
+ readonly status: "no_candidates" | "ready" | "blocked" | "partial";
71
+ readonly codeSnapshot: string;
72
+ readonly repairPlanId: string;
73
+ readonly predicateCatalogHash: string;
74
+ readonly scope: {
75
+ readonly repairPlanComplete: boolean;
76
+ readonly candidateRequirements: number;
77
+ readonly selectedRequirements: number;
78
+ readonly offset: number;
79
+ readonly limit: number;
80
+ readonly selectionComplete: boolean;
81
+ readonly nextOffset: number | null;
82
+ };
83
+ readonly applicationPolicy: {
84
+ readonly previewOnly: true;
85
+ readonly reviewEveryProposition: true;
86
+ readonly preserveExistingTextRefs: true;
87
+ readonly exactBindingsBeforeWrite: true;
88
+ readonly validateBeforeEachWrite: true;
89
+ readonly sequentialUpsertsOnly: true;
90
+ readonly recheckContradictionsAfterEachBatch: true;
91
+ };
92
+ readonly summary: {
93
+ readonly batchCount: number;
94
+ readonly readyBatchCount: number;
95
+ readonly blockedBatchCount: number;
96
+ readonly propositionCount: number;
97
+ readonly assertivePropositionCount: number;
98
+ readonly unresolvedPropositionCount: number;
99
+ readonly predicateCandidateCount: number;
100
+ };
101
+ readonly batches: readonly LegacyMigrationBatch[];
102
+ readonly diagnostics: readonly string[];
103
+ };
104
+ type LegacyMigrationPlanDependencies = {
105
+ readonly requirements: readonly Readonly<Record<string, unknown>>[];
106
+ readonly projectPredicateSchemas: readonly PredicateSchemaCandidate[];
107
+ readonly readSource: (requirement: Readonly<Record<string, unknown>>) => Promise<string | null>;
108
+ readonly diagnostics?: readonly string[];
109
+ };
110
+ export declare function buildLegacyMigrationPlan(repairPlan: RepairPlan, input: LegacyMigrationPlanInput, codeSnapshot: string, dependencies: LegacyMigrationPlanDependencies): Promise<LegacyMigrationPlan>;
111
+ export declare function buildLegacyMigrationPlanFromContext(repairPlan: RepairPlan, input: LegacyMigrationPlanInput, codeSnapshot: string, context: OperationContext): Promise<LegacyMigrationPlan>;
112
+ export {};
113
+ //# sourceMappingURL=legacy-migration-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-migration-plan.d.ts","sourceRoot":"","sources":["../../../src/public/operations/legacy-migration-plan.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAS7F,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,eAAO,MAAM,6BAA6B,EACxC,+BAAwC,CAAC;AAE3C,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,UAAU,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,UAAU,GAAG,YAAY,CAAC;IAClD,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,QAAQ,CAAC,eAAe,EACpB,iBAAiB,GACjB,WAAW,GACX,MAAM,GACN,YAAY,GACZ,YAAY,CAAC;IACjB,QAAQ,CAAC,WAAW,EAChB,2BAA2B,GAC3B,qBAAqB,GACrB,gBAAgB,GAChB,sBAAsB,GACtB,yBAAyB,GACzB,YAAY,CAAC;IACjB,QAAQ,CAAC,mBAAmB,EAAE,SAAS,iCAAiC,EAAE,CAAC;IAC3E,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;QACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;QAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,cAAc,EAAE,eAAe,GAAG,IAAI,CAAC;QAChD,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QACxC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;QACtC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;QAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;KACnC,CAAC;IACF,QAAQ,CAAC,YAAY,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC7D,QAAQ,CAAC,+BAA+B,EAAE,QAAQ,CAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACxB,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,6BAA6B,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACnE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;QACrC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;QACvC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;QACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;QACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KACpC,CAAC;IACF,QAAQ,CAAC,iBAAiB,EAAE;QAC1B,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;QAC3B,QAAQ,CAAC,sBAAsB,EAAE,IAAI,CAAC;QACtC,QAAQ,CAAC,wBAAwB,EAAE,IAAI,CAAC;QACxC,QAAQ,CAAC,wBAAwB,EAAE,IAAI,CAAC;QACxC,QAAQ,CAAC,uBAAuB,EAAE,IAAI,CAAC;QACvC,QAAQ,CAAC,qBAAqB,EAAE,IAAI,CAAC;QACrC,QAAQ,CAAC,mCAAmC,EAAE,IAAI,CAAC;KACpD,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;QACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;QAC3C,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;QAC5C,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;KAC1C,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,YAAY,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IACpE,QAAQ,CAAC,uBAAuB,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACtE,QAAQ,CAAC,UAAU,EAAE,CACnB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAC3C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C,CAAC;AAkXF,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,wBAAwB,EAC/B,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,+BAA+B,GAC5C,OAAO,CAAC,mBAAmB,CAAC,CAwI9B;AAGD,wBAAsB,mCAAmC,CACvD,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,wBAAwB,EAC/B,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAwB9B"}