kibi-cli 2.38.0 → 2.39.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 (91) hide show
  1. package/dist/cli-json-command.d.ts.map +1 -1
  2. package/dist/cli-json-command.js +4 -0
  3. package/dist/cli-register-reporting.d.ts.map +1 -1
  4. package/dist/cli-register-reporting.js +1 -0
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +3 -0
  7. package/dist/commands/coverage.d.ts +1 -0
  8. package/dist/commands/coverage.d.ts.map +1 -1
  9. package/dist/commands/coverage.js +40 -0
  10. package/dist/commands/doctor.d.ts +5 -0
  11. package/dist/commands/doctor.d.ts.map +1 -1
  12. package/dist/commands/doctor.js +14 -0
  13. package/dist/commands/migrate.d.ts.map +1 -1
  14. package/dist/commands/migrate.js +9 -3
  15. package/dist/commands/sync/persistence.d.ts.map +1 -1
  16. package/dist/commands/sync/persistence.js +6 -0
  17. package/dist/extractors/markdown.d.ts +6 -0
  18. package/dist/extractors/markdown.d.ts.map +1 -1
  19. package/dist/extractors/markdown.js +21 -0
  20. package/dist/operations/bootstrap/discovery-evidence.d.ts.map +1 -1
  21. package/dist/operations/bootstrap/discovery-evidence.js +44 -2
  22. package/dist/operations/bootstrap/discovery.d.ts.map +1 -1
  23. package/dist/operations/bootstrap/discovery.js +1 -0
  24. package/dist/operations/proof/explain.d.ts +63 -0
  25. package/dist/operations/proof/explain.d.ts.map +1 -1
  26. package/dist/operations/proof/explain.js +162 -0
  27. package/dist/operations/semantic-advisor/analyze-prose.d.ts +9 -1
  28. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  29. package/dist/operations/semantic-advisor/analyze-prose.js +21 -0
  30. package/dist/operations/semantic-advisor/case-preview.d.ts +24 -0
  31. package/dist/operations/semantic-advisor/case-preview.d.ts.map +1 -0
  32. package/dist/operations/semantic-advisor/case-preview.js +216 -0
  33. package/dist/operations/semantic-advisor/shared.d.ts.map +1 -1
  34. package/dist/operations/semantic-advisor/shared.js +3 -0
  35. package/dist/operations/semantic-advisor/types.d.ts +23 -0
  36. package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
  37. package/dist/plugins/approved-source-analyzers.generated.d.ts +11 -8
  38. package/dist/plugins/approved-source-analyzers.generated.d.ts.map +1 -1
  39. package/dist/plugins/approved-source-analyzers.generated.js +11 -8
  40. package/dist/plugins/source-classification.d.ts +2 -2
  41. package/dist/plugins/source-classification.d.ts.map +1 -1
  42. package/dist/plugins/source-classification.js +25 -1
  43. package/dist/public/operations/catalog.d.ts +31 -1
  44. package/dist/public/operations/catalog.d.ts.map +1 -1
  45. package/dist/public/operations/repair-plan.d.ts +46 -0
  46. package/dist/public/operations/repair-plan.d.ts.map +1 -1
  47. package/dist/public/operations/repair-plan.js +110 -1
  48. package/dist/public/operations/schema6-check-actions.js +1 -1
  49. package/dist/public/operations/specs/check-rules.generated.d.ts +1 -1
  50. package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -1
  51. package/dist/public/operations/specs/check-rules.generated.js +2 -1
  52. package/dist/public/operations/specs/check.d.ts +1 -1
  53. package/dist/public/operations/specs/mutation-schemas.d.ts +30 -0
  54. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  55. package/dist/public/operations/specs/mutation-schemas.js +30 -0
  56. package/dist/public/operations/specs/upsert.d.ts +30 -0
  57. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  58. package/dist/public/schemas/entity.d.ts.map +1 -1
  59. package/dist/public/schemas/entity.js +59 -0
  60. package/dist/public/skills/kibi-commit-review/SKILL.md +6 -2
  61. package/dist/public/skills/kibi-decisions/SKILL.md +7 -2
  62. package/dist/public/skills/kibi-decisions/resources/signoff-views.md +3 -1
  63. package/dist/public/skills/kibi-usage/SKILL.md +9 -1
  64. package/dist/schemas/entity.schema.json +92 -0
  65. package/dist/search-answer.d.ts +3 -2
  66. package/dist/search-answer.d.ts.map +1 -1
  67. package/dist/search-answer.js +56 -3
  68. package/dist/traceability/impact-knowledge.d.ts.map +1 -1
  69. package/dist/traceability/impact-knowledge.js +2 -0
  70. package/dist/traceability/temp-kb.d.ts.map +1 -1
  71. package/dist/traceability/temp-kb.js +11 -1
  72. package/dist/types/entities.d.ts +12 -0
  73. package/dist/types/entities.d.ts.map +1 -1
  74. package/dist/usage-telemetry.d.ts +9 -0
  75. package/dist/usage-telemetry.d.ts.map +1 -1
  76. package/dist/usage-telemetry.js +50 -4
  77. package/dist/utils/rule-registry.generated.d.ts +5 -0
  78. package/dist/utils/rule-registry.generated.d.ts.map +1 -1
  79. package/dist/utils/rule-registry.generated.js +6 -0
  80. package/package.json +3 -3
  81. package/schema/entities.pl +12 -0
  82. package/src/public/operations/repair-plan.ts +152 -1
  83. package/src/public/operations/schema6-check-actions.ts +1 -1
  84. package/src/public/operations/specs/check-rules.generated.ts +2 -1
  85. package/src/public/operations/specs/mutation-schemas.ts +34 -0
  86. package/src/public/schemas/entity.ts +65 -0
  87. package/src/public/skills/kibi-commit-review/SKILL.md +6 -2
  88. package/src/public/skills/kibi-decisions/SKILL.md +7 -2
  89. package/src/public/skills/kibi-decisions/resources/signoff-views.md +3 -1
  90. package/src/public/skills/kibi-usage/SKILL.md +9 -1
  91. package/src/schemas/entity.schema.json +92 -0
@@ -150,11 +150,170 @@ export function projectRequirementExplain(proof) {
150
150
  : {}),
151
151
  ...claimFields(proof),
152
152
  scenarios,
153
+ ...negativePathField(stages.negativePath),
154
+ ...dimensionField(stages.dimension),
155
+ ...casesField(stages.cases),
153
156
  tests,
154
157
  productionSymbols: explanations.filter((item) => !structuralIds.has(item.symbolId)),
155
158
  structuralSymbols: explanations.filter((item) => structuralIds.has(item.symbolId)),
156
159
  };
157
160
  }
161
+ // implements REQ-kibi-happy-path-gap
162
+ function negativePathField(stage) {
163
+ if (stage === undefined)
164
+ return {};
165
+ const record = asRecord(stage);
166
+ const suggestions = Array.isArray(record.suggestedNegatives)
167
+ ? record.suggestedNegatives.map((item) => {
168
+ const entry = asRecord(item);
169
+ return {
170
+ claimKey: asString(entry.claimKey),
171
+ factId: asString(entry.factId),
172
+ assumption: asRecord(entry.assumption),
173
+ };
174
+ })
175
+ : [];
176
+ return {
177
+ negativePath: {
178
+ status: asString(record.status),
179
+ negativeScenarios: asStringArray(record.negativeScenarios),
180
+ claims: asStringArray(record.claims),
181
+ suggestedNegatives: suggestions,
182
+ ...waiverField(record.waiver),
183
+ },
184
+ };
185
+ }
186
+ function waiverField(raw) {
187
+ const waiver = asRecord(raw);
188
+ const reason = asString(waiver.reason);
189
+ const approvedBy = asString(waiver.approvedBy);
190
+ return reason === ""
191
+ ? {}
192
+ : { waiver: { reason, ...(approvedBy === "" ? {} : { approvedBy }) } };
193
+ }
194
+ // implements REQ-kibi-dimension-gap
195
+ function dimensionField(stage) {
196
+ if (stage === undefined)
197
+ return {};
198
+ const record = asRecord(stage);
199
+ const claims = (raw) => Array.isArray(raw)
200
+ ? raw.map((item) => {
201
+ const entry = asRecord(item);
202
+ return {
203
+ claimKey: asString(entry.claimKey),
204
+ claimText: asString(entry.claimText),
205
+ quantifier: asString(entry.quantifier),
206
+ factIds: asStringArray(entry.factIds),
207
+ rewrites: asStringArray(entry.rewrites),
208
+ ...waiverField(entry.waiver),
209
+ };
210
+ })
211
+ : [];
212
+ return {
213
+ dimension: {
214
+ status: asString(record.status),
215
+ claims: claims(record.claims),
216
+ waivedClaims: claims(record.waivedClaims),
217
+ },
218
+ };
219
+ }
220
+ // implements REQ-kibi-case-coverage
221
+ function casesField(stage) {
222
+ if (stage === undefined)
223
+ return {};
224
+ const record = asRecord(stage);
225
+ const cases = Array.isArray(record.cases)
226
+ ? record.cases.map((item) => {
227
+ const entry = asRecord(item);
228
+ return {
229
+ caseId: asString(entry.caseId),
230
+ claimKey: asString(entry.claimKey),
231
+ factId: asString(entry.factId),
232
+ generator: asString(entry.generator),
233
+ constraint: asString(entry.constraint),
234
+ predicted: asString(entry.predicted),
235
+ coverage: asString(entry.coverage),
236
+ scenarios: asStringArray(entry.scenarios),
237
+ assumption: asRecord(entry.assumption),
238
+ ...waiverField(entry.waiver),
239
+ };
240
+ })
241
+ : [];
242
+ const summary = asRecord(record.summary);
243
+ return {
244
+ cases: {
245
+ status: asString(record.status),
246
+ cases,
247
+ summary: Object.fromEntries(Object.entries(summary).filter((entry) => typeof entry[1] === "number")),
248
+ limitReached: record.limitReached === true,
249
+ },
250
+ };
251
+ }
252
+ function renderCases(view) {
253
+ const cases = view.cases;
254
+ if (cases === undefined || cases.cases.length === 0)
255
+ return [];
256
+ const summary = cases.summary;
257
+ const lines = [
258
+ "",
259
+ `Edge cases: ${cases.status} (${summary.covered ?? 0} covered, ${summary.uncovered ?? 0} uncovered, ${summary.unspecified ?? 0} unspecified, ${summary.waived ?? 0} waived)`,
260
+ ];
261
+ for (const row of cases.cases) {
262
+ const where = row.coverage === "covered" ? ` by ${row.scenarios.join(", ")}` : "";
263
+ lines.push(` ${row.caseId} ${row.factId} ${row.constraint} -> ${row.predicted}: ${row.coverage}${where}`);
264
+ if (row.coverage === "uncovered" && row.predicted === "rejection")
265
+ lines.push(` add a scenario that assumes ${JSON.stringify(row.assumption)} and expects rejection`);
266
+ if (row.waiver !== undefined && row.waiver.approvedBy === undefined)
267
+ lines.push(` waiver awaiting approval (set case_waiver_approved_by to the person who accepts it, in this pull request): ${row.waiver.reason}`);
268
+ }
269
+ if (cases.limitReached)
270
+ lines.push(" (some facts have more cases than the per-fact limit of 12)");
271
+ return lines;
272
+ }
273
+ const DIMENSION_REWRITES = {
274
+ bound: "an integer property with the bound (lte, gte or eq)",
275
+ rule: "a rule over a variable (every X with P must Q)",
276
+ count: "an integer count of what varies",
277
+ set: "a set fact over the members",
278
+ };
279
+ function renderDimension(view) {
280
+ const dimension = view.dimension;
281
+ if (dimension === undefined || dimension.status === "not_required")
282
+ return [];
283
+ const lines = ["", `Quantified claims: ${dimension.status}`];
284
+ for (const claim of dimension.claims) {
285
+ lines.push(` ${claim.claimKey} (${claim.factIds.join(", ")}): "${claim.quantifier.replaceAll("_", " ")}" is grounded on a boolean: ${claim.claimText}`);
286
+ const rewrites = claim.rewrites
287
+ .map((rewrite) => DIMENSION_REWRITES[rewrite] ?? rewrite)
288
+ .join("; or ");
289
+ if (rewrites !== "")
290
+ lines.push(` ground it on ${rewrites}`);
291
+ if (claim.waiver !== undefined)
292
+ lines.push(` waiver awaiting approval (set dimension_waiver_approved_by to the person who accepts it, in this pull request): ${claim.waiver.reason}`);
293
+ }
294
+ for (const claim of dimension.waivedClaims) {
295
+ lines.push(` ${claim.claimKey} waived by ${claim.waiver?.approvedBy ?? ""}: ${claim.waiver?.reason ?? ""}`);
296
+ }
297
+ return lines;
298
+ }
299
+ function renderNegativePath(view) {
300
+ const negative = view.negativePath;
301
+ if (negative === undefined || negative.status === "not_required")
302
+ return [];
303
+ const lines = ["", `Failure side: ${negative.status}`];
304
+ if (negative.waiver !== undefined) {
305
+ lines.push(negative.waiver.approvedBy === undefined
306
+ ? ` waiver awaiting approval (set failure_side_waiver_approved_by to the person who accepts it, in this pull request): ${negative.waiver.reason}`
307
+ : ` waived by ${negative.waiver.approvedBy}: ${negative.waiver.reason}`);
308
+ }
309
+ for (const scenarioId of negative.negativeScenarios) {
310
+ lines.push(` ${scenarioId} expects rejection or error`);
311
+ }
312
+ for (const suggestion of negative.suggestedNegatives) {
313
+ lines.push(` ${suggestion.claimKey} (${suggestion.factId}): assume ${JSON.stringify(suggestion.assumption)} and expect rejection`);
314
+ }
315
+ return lines;
316
+ }
158
317
  function claimFields(proof) {
159
318
  const summary = asRecord(proof.claimSummary);
160
319
  const count = (key) => typeof summary[key] === "number" ? summary[key] : 0;
@@ -267,6 +426,9 @@ function renderRequirementExplain(view) {
267
426
  for (const scenario of view.scenarios) {
268
427
  lines.push(` ${scenario.id} -> ${scenario.tests.join(", ") || "(no tests)"}`);
269
428
  }
429
+ lines.push(...renderNegativePath(view));
430
+ lines.push(...renderDimension(view));
431
+ lines.push(...renderCases(view));
270
432
  lines.push("");
271
433
  for (const test of view.tests) {
272
434
  lines.push(`TEST ${test.testId}`);
@@ -1,8 +1,16 @@
1
1
  import { propositionRole } from "./proposition-role.js";
2
- import type { SemanticAdvisorAnalysisResult, SemanticAdvisorInput } from "./types.js";
2
+ import type { SemanticAdvisorAnalysisResult, SemanticAdvisorInput, SemanticPropositionDimension } from "./types.js";
3
3
  export declare const SEMANTIC_ADVISOR_VERSION = "semantic-advisor-v2";
4
4
  export { semanticClaimKey } from "./clauses.js";
5
5
  export declare function stringLogicClaims(value: unknown): string[];
6
6
  export { propositionRole };
7
+ /**
8
+ * The first quantifier over a collection or cardinality bound in a clause,
9
+ * and the typed groundings that represent it. The proof ladder's
10
+ * dimension_unrepresented gap uses the same words (requirement_proof.pl,
11
+ * claim_quantifier/2): only, any and some mostly scope a condition, so they
12
+ * are left out.
13
+ */
14
+ export declare function claimDimension(text: string): SemanticPropositionDimension | undefined;
7
15
  export declare function analyzeSemanticAdvisorInput(input: SemanticAdvisorInput): SemanticAdvisorAnalysisResult;
8
16
  //# sourceMappingURL=analyze-prose.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyze-prose.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/analyze-prose.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAiBxD,OAAO,KAAK,EACV,6BAA6B,EAC7B,oBAAoB,EAWrB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAI1D;AA6gBD,OAAO,EAAE,eAAe,EAAE,CAAC;AAwX3B,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,oBAAoB,GAC1B,6BAA6B,CAgE/B"}
1
+ {"version":3,"file":"analyze-prose.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/analyze-prose.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAiBxD,OAAO,KAAK,EACV,6BAA6B,EAC7B,oBAAoB,EAKpB,4BAA4B,EAO7B,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAI1D;AA6gBD,OAAO,EAAE,eAAe,EAAE,CAAC;AAwT3B;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GACX,4BAA4B,GAAG,SAAS,CAY1C;AAsED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,oBAAoB,GAC1B,6BAA6B,CAgE/B"}
@@ -654,6 +654,25 @@ function interpretationResults(interpretations, clauses, statement) {
654
654
  warnings.push("Only the first three interpretations are considered; submit materially distinct alternatives explicitly and resolve them before writing.");
655
655
  return { results, warnings };
656
656
  }
657
+ // implements REQ-kibi-dimension-gap
658
+ /**
659
+ * The first quantifier over a collection or cardinality bound in a clause,
660
+ * and the typed groundings that represent it. The proof ladder's
661
+ * dimension_unrepresented gap uses the same words (requirement_proof.pl,
662
+ * claim_quantifier/2): only, any and some mostly scope a condition, so they
663
+ * are left out.
664
+ */
665
+ export function claimDimension(text) {
666
+ const match = /\b(no more than|at least|at most|each|every|all|exactly)\b/i.exec(text);
667
+ if (!match?.[1])
668
+ return undefined;
669
+ const quantifier = match[1].toLowerCase().replaceAll(" ", "_");
670
+ const bound = ["exactly", "at_least", "at_most", "no_more_than"].includes(quantifier);
671
+ return {
672
+ quantifier,
673
+ rewrites: bound ? ["bound"] : ["rule", "count", "set"],
674
+ };
675
+ }
657
676
  function propositionInventory(statement, clauses, suggestions, interpretations, inputPayloadHash) {
658
677
  const interpretationKeys = new Map();
659
678
  for (const interpretation of interpretations) {
@@ -701,6 +720,7 @@ function propositionInventory(statement, clauses, suggestions, interpretations,
701
720
  reason =
702
721
  "No accepted typed interpretation grounds this assertive proposition.";
703
722
  }
723
+ const dimension = role === "normative" ? claimDimension(located.sourceText) : undefined;
704
724
  return {
705
725
  claim_key: clause.claim_key,
706
726
  claim_text: located.sourceText,
@@ -710,6 +730,7 @@ function propositionInventory(statement, clauses, suggestions, interpretations,
710
730
  payload_hash: inputPayloadHash,
711
731
  ...(semanticKey ? { semantic_key: semanticKey } : {}),
712
732
  ...(reason ? { reason } : {}),
733
+ ...(dimension ? { dimension } : {}),
713
734
  };
714
735
  });
715
736
  }
@@ -0,0 +1,24 @@
1
+ import type { SemanticStrictPropertyClaim } from "./types.js";
2
+ /**
3
+ * The edge cases the proof ladder will derive from a typed property claim
4
+ * once it is written (packages/core/src/cases.pl), so the author sees the
5
+ * scenario debt before committing the model: the bound and the value past
6
+ * it, zero, one and many for an integer count, each set member and the value
7
+ * outside the set. Each rejection case later needs a scenario that assumes
8
+ * it, or the requirement reports uncovered_case.
9
+ */
10
+ export interface CasePreview {
11
+ readonly generator: "boundary" | "cardinality" | "member" | "non_member" | "excluded_member";
12
+ /** The value class, as `kibi coverage --cases` prints it. */
13
+ readonly constraint: string;
14
+ readonly predicted: "success" | "rejection" | "unspecified";
15
+ /** The assumes fact a scenario states to land in the case. */
16
+ readonly assumption: Readonly<Record<string, unknown>>;
17
+ }
18
+ /** Most cases one fact yields, as in cases.pl. */
19
+ export declare const CASE_LIMIT = 12;
20
+ export declare function previewCases(claim: SemanticStrictPropertyClaim): {
21
+ cases: CasePreview[];
22
+ limitReached: boolean;
23
+ };
24
+ //# sourceMappingURL=case-preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-preview.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/case-preview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAG9D;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EACd,UAAU,GACV,aAAa,GACb,QAAQ,GACR,YAAY,GACZ,iBAAiB,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW,GAAG,aAAa,CAAC;IAC5D,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACxD;AAED,kDAAkD;AAClD,eAAO,MAAM,UAAU,KAAK,CAAC;AAkP7B,wBAAgB,YAAY,CAAC,KAAK,EAAE,2BAA2B,GAAG;IAChE,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB,CAaA"}
@@ -0,0 +1,216 @@
1
+ /** Most cases one fact yields, as in cases.pl. */
2
+ export const CASE_LIMIT = 12;
3
+ const NEGATED = {
4
+ eq: "neq",
5
+ neq: "eq",
6
+ lt: "gte",
7
+ gte: "lt",
8
+ gt: "lte",
9
+ lte: "gt",
10
+ };
11
+ const UPPER_PAST = {
12
+ eq: "gt",
13
+ neq: "gt",
14
+ lte: "gt",
15
+ lt: "gte",
16
+ };
17
+ const LOWER_PAST = {
18
+ eq: "lt",
19
+ neq: "lt",
20
+ gte: "lt",
21
+ gt: "lte",
22
+ };
23
+ function region({ op, value }, integer) {
24
+ // On integers a strict bound is the closed bound one step in.
25
+ const v = value;
26
+ switch (op) {
27
+ case "eq":
28
+ return { kind: "interval", lo: v, loOpen: false, hi: v, hiOpen: false };
29
+ case "neq":
30
+ return { kind: "except", value: v };
31
+ case "lt":
32
+ return integer
33
+ ? {
34
+ kind: "interval",
35
+ lo: Number.NEGATIVE_INFINITY,
36
+ loOpen: true,
37
+ hi: v - 1,
38
+ hiOpen: false,
39
+ }
40
+ : {
41
+ kind: "interval",
42
+ lo: Number.NEGATIVE_INFINITY,
43
+ loOpen: true,
44
+ hi: v,
45
+ hiOpen: true,
46
+ };
47
+ case "lte":
48
+ return {
49
+ kind: "interval",
50
+ lo: Number.NEGATIVE_INFINITY,
51
+ loOpen: true,
52
+ hi: v,
53
+ hiOpen: false,
54
+ };
55
+ case "gt":
56
+ return integer
57
+ ? {
58
+ kind: "interval",
59
+ lo: v + 1,
60
+ loOpen: false,
61
+ hi: Number.POSITIVE_INFINITY,
62
+ hiOpen: true,
63
+ }
64
+ : {
65
+ kind: "interval",
66
+ lo: v,
67
+ loOpen: true,
68
+ hi: Number.POSITIVE_INFINITY,
69
+ hiOpen: true,
70
+ };
71
+ case "gte":
72
+ return {
73
+ kind: "interval",
74
+ lo: v,
75
+ loOpen: false,
76
+ hi: Number.POSITIVE_INFINITY,
77
+ hiOpen: true,
78
+ };
79
+ }
80
+ }
81
+ function contains(r, value) {
82
+ if (r.kind === "except")
83
+ return value !== r.value;
84
+ const aboveLo = r.loOpen ? value > r.lo : value >= r.lo;
85
+ const belowHi = r.hiOpen ? value < r.hi : value <= r.hi;
86
+ return aboveLo && belowHi;
87
+ }
88
+ /** Whether every value constraint a admits, constraint b admits too. */
89
+ function entails(a, b, integer) {
90
+ const ra = region(a, integer);
91
+ const rb = region(b, integer);
92
+ if (ra.kind === "except")
93
+ return rb.kind === "except" && rb.value === ra.value;
94
+ if (rb.kind === "except")
95
+ return !contains(ra, rb.value);
96
+ const loInside = ra.lo > rb.lo || (ra.lo === rb.lo && (ra.loOpen || !rb.loOpen));
97
+ const hiInside = ra.hi < rb.hi || (ra.hi === rb.hi && (ra.hiOpen || !rb.hiOpen));
98
+ return loInside && hiInside;
99
+ }
100
+ function numericCases(integer, op, v) {
101
+ const cases = [];
102
+ const add = (generator, caseOp, value) => cases.push({ generator, constraint: { op: caseOp, value } });
103
+ if (["eq", "neq", "lte", "gte"].includes(op))
104
+ add("boundary", "eq", v);
105
+ if (integer && op === "lt")
106
+ add("boundary", "eq", v - 1);
107
+ if (integer && op === "gt")
108
+ add("boundary", "eq", v + 1);
109
+ const upper = UPPER_PAST[op];
110
+ if (upper)
111
+ add("boundary", upper, v);
112
+ const lower = LOWER_PAST[op];
113
+ if (lower &&
114
+ !(integer && lower === "lt" && v <= 0) &&
115
+ !(integer && lower === "lte" && v < 0))
116
+ add("boundary", lower, v);
117
+ if (integer && v >= 1) {
118
+ add("cardinality", "eq", 0);
119
+ add("cardinality", "eq", 1);
120
+ add("cardinality", "gte", 2);
121
+ }
122
+ return cases;
123
+ }
124
+ function predict(claim, candidate, integer) {
125
+ if (entails(candidate, claim, integer))
126
+ return "success";
127
+ if (entails(candidate, { op: NEGATED[claim.op], value: claim.value }, integer))
128
+ return "rejection";
129
+ return undefined;
130
+ }
131
+ function numericPreviews(claim, op) {
132
+ const integer = claim.value_type === "int";
133
+ const value = integer ? claim.value_int : claim.value_number;
134
+ if (typeof value !== "number" || !Number.isFinite(value))
135
+ return [];
136
+ const bound = { op, value };
137
+ const kept = [];
138
+ for (const raw of numericCases(integer, op, value)) {
139
+ const predicted = predict(bound, raw.constraint, integer);
140
+ if (predicted === undefined)
141
+ continue;
142
+ // A class already named, or inside an earlier class with the same
143
+ // outcome, is not a case of its own.
144
+ const subsumed = kept.some((earlier) => earlier.predicted === predicted &&
145
+ entails(raw.constraint, earlier.raw.constraint, integer));
146
+ if (!subsumed)
147
+ kept.push({ raw, predicted });
148
+ }
149
+ return kept.map(({ raw, predicted }) => ({
150
+ generator: raw.generator,
151
+ constraint: `${raw.constraint.op} ${raw.constraint.value}`,
152
+ predicted,
153
+ assumption: {
154
+ fact_kind: "property_value",
155
+ subject_key: claim.subject_key,
156
+ property_key: claim.property_key,
157
+ operator: raw.constraint.op,
158
+ value_type: claim.value_type,
159
+ value: raw.constraint.value,
160
+ },
161
+ }));
162
+ }
163
+ function setPreviews(claim) {
164
+ const members = claim.value_set ?? [];
165
+ const assumption = (value) => ({
166
+ fact_kind: "property_value",
167
+ subject_key: claim.subject_key,
168
+ property_key: claim.property_key,
169
+ operator: "includes",
170
+ value_type: "set",
171
+ value: [...value],
172
+ });
173
+ const previews = [];
174
+ if (["eq", "includes", "subset_of"].includes(claim.operator))
175
+ for (const member of members)
176
+ previews.push({
177
+ generator: "member",
178
+ constraint: `includes ${member}`,
179
+ predicted: "success",
180
+ assumption: assumption([member]),
181
+ });
182
+ const outside = claim.operator === "eq" || claim.operator === "subset_of"
183
+ ? "rejection"
184
+ : claim.operator === "includes"
185
+ ? "unspecified"
186
+ : undefined;
187
+ if (outside)
188
+ previews.push({
189
+ generator: "non_member",
190
+ constraint: `includes a value outside [${members.join(", ")}]`,
191
+ predicted: outside,
192
+ assumption: assumption(["<a value outside the set>"]),
193
+ });
194
+ if (claim.operator === "excludes")
195
+ for (const member of members)
196
+ previews.push({
197
+ generator: "excluded_member",
198
+ constraint: `includes ${member}`,
199
+ predicted: "rejection",
200
+ assumption: assumption([member]),
201
+ });
202
+ return previews;
203
+ }
204
+ export function previewCases(claim) {
205
+ const op = claim.operator;
206
+ const all = claim.value_type === "set"
207
+ ? setPreviews(claim)
208
+ : (claim.value_type === "int" || claim.value_type === "number") &&
209
+ op in NEGATED
210
+ ? numericPreviews(claim, op)
211
+ : [];
212
+ return {
213
+ cases: all.slice(0, CASE_LIMIT),
214
+ limitReached: all.length > CASE_LIMIT,
215
+ };
216
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/shared.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,0BAA0B,EAE1B,2BAA2B,EAC5B,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AACvE,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AACvE,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,UAAU,GAAG,OAAO,CAAC;AAGzE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAElD;AAGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CASnD;AAGD,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAKpD;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG;IAClD,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAmBA;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,GACf,SAAS,MAAM,EAAE,GAAG,SAAS,CAO/B;AAGD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAGD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEtE;AAGD,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAEpD;AAGD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAIjD;AAGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOlD;AAGD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ7D;AAID;;;;;GAKG;AAEH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,SAAS,MAAM,EAAO,GAC3B,MAAM,CAUR;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAGD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,GACX,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAGD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,2BAA2B,EAClC,SAAS,EAAE,MAAM,EACjB,UAAU,SAAM,GACf,0BAA0B,CA8F5B;AAGD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,QAAQ,GAAG,MAAiB,GACrC,0BAA0B,CA+C5B"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/shared.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,0BAA0B,EAE1B,2BAA2B,EAC5B,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AACvE,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AACvE,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,UAAU,GAAG,OAAO,CAAC;AAGzE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAElD;AAGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CASnD;AAGD,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAKpD;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG;IAClD,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAmBA;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,GACf,SAAS,MAAM,EAAE,GAAG,SAAS,CAO/B;AAGD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAGD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEtE;AAGD,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAEpD;AAGD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAIjD;AAGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOlD;AAGD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ7D;AAID;;;;;GAKG;AAEH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,SAAS,MAAM,EAAO,GAC3B,MAAM,CAUR;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAGD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,GACX,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAGD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,2BAA2B,EAClC,SAAS,EAAE,MAAM,EACjB,UAAU,SAAM,GACf,0BAA0B,CAgG5B;AAGD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,QAAQ,GAAG,MAAiB,GACrC,0BAA0B,CA+C5B"}
@@ -1,4 +1,5 @@
1
1
  import { createHash } from "node:crypto";
2
+ import { previewCases } from "./case-preview.js";
2
3
  import { semanticClaimKey } from "./clauses.js";
3
4
  export const SEMANTIC_INVENTORY_VERSION = "kibi.semantic-inventory.v1";
4
5
  // implements REQ-mcp-semantic-advisor-preflight
@@ -135,6 +136,7 @@ export function strictSuggestion(payload, evidence, claim, rationale, confidence
135
136
  claim.value_int ??
136
137
  claim.value_number ??
137
138
  claim.value_bool;
139
+ const casesPreview = previewCases(claim);
138
140
  const propertyFields = {
139
141
  ...(claim.value_string !== undefined
140
142
  ? { value_string: claim.value_string }
@@ -158,6 +160,7 @@ export function strictSuggestion(payload, evidence, claim, rationale, confidence
158
160
  rationale,
159
161
  suggested_next_tool: "kb_model_requirement",
160
162
  claim,
163
+ ...(casesPreview.cases.length > 0 ? { casesPreview } : {}),
161
164
  rejected_alternatives: ["predicate", "observation_review"],
162
165
  applyPlan: [
163
166
  {
@@ -1,4 +1,5 @@
1
1
  import type { LogicRuleIR } from "../../logic/ir.js";
2
+ import type { CasePreview } from "./case-preview.js";
2
3
  export type SemanticAdvisorLane = "strict_property" | "predicate" | "rule" | "observation_review" | "none";
3
4
  export type SemanticAdvisorReadiness = "modeled" | "needs_modeling" | "not_applicable";
4
5
  export type SemanticLogicCoverageStatus = "complete" | "partial" | "unverified" | "not_applicable";
@@ -17,6 +18,19 @@ export interface SemanticProposition {
17
18
  readonly payload_hash?: string;
18
19
  readonly semantic_key?: string;
19
20
  readonly reason?: string;
21
+ /**
22
+ * Set when the clause quantifies over a collection (each, every, all) or
23
+ * bounds a cardinality (exactly, at least, at most, no more than). A
24
+ * boolean or ground-predicate grounding would state only the verdict, so
25
+ * the proof ladder reports dimension_unrepresented until the claim is
26
+ * grounded on one of `rewrites`.
27
+ */
28
+ readonly dimension?: SemanticPropositionDimension;
29
+ }
30
+ export interface SemanticPropositionDimension {
31
+ readonly quantifier: string;
32
+ /** Typed groundings that represent what varies, likeliest first. */
33
+ readonly rewrites: readonly ("bound" | "rule" | "count" | "set")[];
20
34
  }
21
35
  export interface SemanticInterpretationInput {
22
36
  readonly claim_key: string;
@@ -94,6 +108,15 @@ export type SemanticModelingSuggestion = {
94
108
  readonly rationale: string;
95
109
  readonly suggested_next_tool: "kb_model_requirement";
96
110
  readonly claim: SemanticStrictPropertyClaim;
111
+ /**
112
+ * The edge cases the proof ladder derives from this claim once it is
113
+ * written; each rejection case needs a scenario that assumes it.
114
+ * Omitted when the claim yields none (a boolean or string value).
115
+ */
116
+ readonly casesPreview?: {
117
+ readonly cases: readonly CasePreview[];
118
+ readonly limitReached: boolean;
119
+ };
97
120
  readonly rejected_alternatives: readonly string[];
98
121
  readonly applyPlan: readonly Readonly<Record<string, unknown>>[];
99
122
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/types.ts"],"names":[],"mappings":"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"}