kibi-cli 2.14.0 → 2.15.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 (92) hide show
  1. package/dist/engine.d.ts.map +1 -1
  2. package/dist/engine.js +5 -2
  3. package/dist/operations/bootstrap/discovery.d.ts.map +1 -1
  4. package/dist/operations/bootstrap/discovery.js +6 -1
  5. package/dist/operations/bootstrap/generate.d.ts.map +1 -1
  6. package/dist/operations/bootstrap/generate.js +1 -0
  7. package/dist/operations/bootstrap/guidance-actions.d.ts +2 -1
  8. package/dist/operations/bootstrap/guidance-actions.d.ts.map +1 -1
  9. package/dist/operations/bootstrap/guidance-actions.js +10 -1
  10. package/dist/operations/bootstrap/guidance.d.ts +2 -0
  11. package/dist/operations/bootstrap/guidance.d.ts.map +1 -1
  12. package/dist/operations/bootstrap/guidance.js +1 -1
  13. package/dist/operations/bootstrap/plugin-offers.d.ts +16 -0
  14. package/dist/operations/bootstrap/plugin-offers.d.ts.map +1 -0
  15. package/dist/operations/bootstrap/plugin-offers.js +66 -0
  16. package/dist/operations/bootstrap/presentation.d.ts +2 -0
  17. package/dist/operations/bootstrap/presentation.d.ts.map +1 -1
  18. package/dist/operations/bootstrap/presentation.js +2 -0
  19. package/dist/operations/bootstrap/types.d.ts +2 -0
  20. package/dist/operations/bootstrap/types.d.ts.map +1 -1
  21. package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -1
  22. package/dist/operations/modeling/predicate-applicability.js +27 -1
  23. package/dist/operations/modeling/predicate-binding-hints.d.ts +10 -0
  24. package/dist/operations/modeling/predicate-binding-hints.d.ts.map +1 -1
  25. package/dist/operations/modeling/predicate-binding-hints.js +74 -0
  26. package/dist/operations/modeling/predicate-catalog-5.d.ts +2 -2
  27. package/dist/operations/modeling/predicate-catalog-5.js +2 -2
  28. package/dist/operations/modeling/predicate-catalog-6.d.ts +9 -0
  29. package/dist/operations/modeling/predicate-catalog-6.d.ts.map +1 -0
  30. package/dist/operations/modeling/predicate-catalog-6.js +106 -0
  31. package/dist/operations/modeling/predicate-catalog.d.ts.map +1 -1
  32. package/dist/operations/modeling/predicate-catalog.js +2 -0
  33. package/dist/operations/modeling/predicate-usage-hints-4.d.ts.map +1 -1
  34. package/dist/operations/modeling/predicate-usage-hints-4.js +32 -0
  35. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  36. package/dist/operations/modeling/suggest-predicates.js +32 -11
  37. package/dist/operations/mutation/contradictions.d.ts +8 -0
  38. package/dist/operations/mutation/contradictions.d.ts.map +1 -1
  39. package/dist/operations/mutation/contradictions.js +13 -0
  40. package/dist/operations/mutation/source-authoring.d.ts +13 -0
  41. package/dist/operations/mutation/source-authoring.d.ts.map +1 -1
  42. package/dist/operations/mutation/source-authoring.js +70 -2
  43. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  44. package/dist/operations/mutation/upsert.js +9 -3
  45. package/dist/operations/mutation/validate-upsert.d.ts.map +1 -1
  46. package/dist/operations/mutation/validate-upsert.js +30 -4
  47. package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -1
  48. package/dist/operations/semantic-advisor/ingestion-boundary.js +20 -1
  49. package/dist/plugins/approved-source-analyzers.generated.d.ts +5 -5
  50. package/dist/plugins/approved-source-analyzers.generated.js +5 -5
  51. package/dist/plugins/check-policies.d.ts +24 -0
  52. package/dist/plugins/check-policies.d.ts.map +1 -0
  53. package/dist/plugins/check-policies.js +73 -0
  54. package/dist/plugins/registry.d.ts.map +1 -1
  55. package/dist/plugins/registry.js +10 -1
  56. package/dist/prolog.d.ts.map +1 -1
  57. package/dist/prolog.js +8 -1
  58. package/dist/public/operations/catalog.d.ts +1 -1
  59. package/dist/public/operations/check-executor.d.ts.map +1 -1
  60. package/dist/public/operations/check-executor.js +3 -0
  61. package/dist/public/operations/check-policy-rules.d.ts +49 -0
  62. package/dist/public/operations/check-policy-rules.d.ts.map +1 -0
  63. package/dist/public/operations/check-policy-rules.js +305 -0
  64. package/dist/public/operations/contracts.d.ts.map +1 -1
  65. package/dist/public/operations/contracts.js +5 -0
  66. package/dist/public/operations/source-relationship-parity.d.ts.map +1 -1
  67. package/dist/public/operations/source-relationship-parity.js +16 -1
  68. package/dist/public/operations/specs/check-rules.generated.d.ts +1 -1
  69. package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -1
  70. package/dist/public/operations/specs/check-rules.generated.js +3 -1
  71. package/dist/public/operations/specs/check.d.ts +1 -1
  72. package/dist/public/operations/specs/reporting.d.ts +9 -0
  73. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  74. package/dist/public/operations/specs/reporting.js +6 -2
  75. package/dist/public/skills/kibi-bootstrap/SKILL.md +2 -2
  76. package/dist/public/skills/kibi-usage/SKILL.md +74 -3
  77. package/dist/public/skills/kibi-usage/resources/ui-requirements.md +42 -3
  78. package/dist/report/html-report.d.ts.map +1 -1
  79. package/dist/report/html-report.js +13 -2
  80. package/dist/utils/rule-registry.generated.d.ts +10 -0
  81. package/dist/utils/rule-registry.generated.d.ts.map +1 -1
  82. package/dist/utils/rule-registry.generated.js +12 -0
  83. package/package.json +4 -4
  84. package/src/public/operations/check-executor.ts +7 -0
  85. package/src/public/operations/check-policy-rules.ts +462 -0
  86. package/src/public/operations/contracts.ts +6 -0
  87. package/src/public/operations/source-relationship-parity.ts +17 -2
  88. package/src/public/operations/specs/check-rules.generated.ts +3 -1
  89. package/src/public/operations/specs/reporting.ts +13 -2
  90. package/src/public/skills/kibi-bootstrap/SKILL.md +2 -2
  91. package/src/public/skills/kibi-usage/SKILL.md +74 -3
  92. package/src/public/skills/kibi-usage/resources/ui-requirements.md +42 -3
@@ -1,8 +1,8 @@
1
1
  export declare const qualifiedSourceAnalyzers: readonly [{
2
2
  readonly packageName: "kibi-plugin-treesitter";
3
- readonly version: "1.0.1";
3
+ readonly version: "2.0.0";
4
4
  readonly files: {
5
- readonly "SBOM.spdx.json": "82781126309b8e1e539f390ef6f0d7e46e38ee3b3b29e87cb4dd24315236c0d5";
5
+ readonly "SBOM.spdx.json": "579e1574f09042cf85d9fa76837555c06a15f133f321fc0800fadd2f9539c52c";
6
6
  readonly "THIRD_PARTY_NOTICES.md": "0b1ede96cb261dab73fd1ec8c51d7bb5b2492eed0502f6c10ed071736daa263c";
7
7
  readonly "assets/queries/bash.scm": "6ca535e8fe652b51203ac272831881dab001f7ac508e50551bc2cdc4a15d7b6c";
8
8
  readonly "assets/queries/c.scm": "774ca67cfe23b0e0d1d3a4f01788049a822beb1311feee72b20a595a37be1e28";
@@ -32,13 +32,13 @@ export declare const qualifiedSourceAnalyzers: readonly [{
32
32
  readonly "assets/tree-sitter-ruby.wasm": "09a96427d7c72f0613ed470cd9812223fc4a91d6a9c025c0235cc6bd59ff96f4";
33
33
  readonly "assets/tree-sitter-rust.wasm": "f65f354215611fd94ad34134b3427eb3d58cbb745df7b6509ba722184db73d57";
34
34
  readonly "assets/tree-sitter-terraform.release.wasm": "59dbcbb0f08eb78b78f37510834559a48ce5c9d4866c978d62c6390796461cb5";
35
- readonly "catalog.json": "9de667583cb69eb7dc1c04e2169cf864a063ee76a88bcc084a7f21da5d8e46f0";
35
+ readonly "catalog.json": "6c1101d0e831ea11f1002edf4baeca88521ac6f4c18a2e1c64f2f030f8bf6bba";
36
36
  readonly "dist/analysis-worker.js": "75a1e646f636c1d1ace9ae22a9141a51e94bddc70203bed08de7bd13dae1764e";
37
37
  readonly "dist/catalog.js": "460243c48cb6a03b8c7971273729d8a1134955186978b6c0d04182c71960ebff";
38
38
  readonly "dist/extractor.js": "1d8cd819e7ec8fcc291a44e5ffe4ccfe77099301677913fcfe0d92e7ce971f33";
39
39
  readonly "dist/index.js": "adc03d77d94c0133b3188950b35f79db19e447cf7bfa1f7e1cf1f5c97a582a44";
40
40
  readonly "dist/performance-timing.js": "56cce530f627c8fd079e8ec070322f84378ae50c40a6765d88b418850692940b";
41
- readonly "integrity.json": "38f18dad5ab491562f4d0a6b82024e7c780c0b3a9bf1d53eee2c6744ab3da426";
41
+ readonly "integrity.json": "a77eb4b614452f158202b3f8aa91b91750dd2ad94693cc9c375460ec5b80c48b";
42
42
  readonly "licenses/tree-sitter-bash-MIT.txt": "49bf33cf78ef5897e4e161ce1517df7de1ae5042a65b6bcfd44401e0fc606559";
43
43
  readonly "licenses/tree-sitter-c-MIT.txt": "2e0110e07abef7c2548b26ec9d6969775617ca539a0dc8dbeeb14d6452c711d1";
44
44
  readonly "licenses/tree-sitter-c-sharp-MIT.txt": "778fb7d63b8c1844da315648c02f325c4713a6f4a5d19644fd413421422776d3";
@@ -51,7 +51,7 @@ export declare const qualifiedSourceAnalyzers: readonly [{
51
51
  readonly "licenses/tree-sitter-ruby-MIT.txt": "9c99b99e93d3c6461bef9f6bac45d17b8bf014172625c24f76319bbd235a7b80";
52
52
  readonly "licenses/tree-sitter-rust-MIT.txt": "31d5b6f4243d5c7c6e1c4ebbbb9f6407bd1457a08bcc4f706521710341acba36";
53
53
  readonly "licenses/web-tree-sitter-MIT.txt": "c5cfb43042b6b72045f4ba997834d0a7786d2793d91680868b5815b39f14fc78";
54
- readonly "package.json": "25f51aa2d923bf6446933b1c8da0e71485608518b92de668e21e10805a120749";
54
+ readonly "package.json": "db0277b9bfd47a242dd457bd1d4fb29bf126121734c9b393ffe6b91af5e5919b";
55
55
  };
56
56
  readonly dependencies: readonly [{
57
57
  readonly packageName: "web-tree-sitter";
@@ -4,9 +4,9 @@
4
4
  export const qualifiedSourceAnalyzers = [
5
5
  {
6
6
  packageName: "kibi-plugin-treesitter",
7
- version: "1.0.1",
7
+ version: "2.0.0",
8
8
  files: {
9
- "SBOM.spdx.json": "82781126309b8e1e539f390ef6f0d7e46e38ee3b3b29e87cb4dd24315236c0d5",
9
+ "SBOM.spdx.json": "579e1574f09042cf85d9fa76837555c06a15f133f321fc0800fadd2f9539c52c",
10
10
  "THIRD_PARTY_NOTICES.md": "0b1ede96cb261dab73fd1ec8c51d7bb5b2492eed0502f6c10ed071736daa263c",
11
11
  "assets/queries/bash.scm": "6ca535e8fe652b51203ac272831881dab001f7ac508e50551bc2cdc4a15d7b6c",
12
12
  "assets/queries/c.scm": "774ca67cfe23b0e0d1d3a4f01788049a822beb1311feee72b20a595a37be1e28",
@@ -36,13 +36,13 @@ export const qualifiedSourceAnalyzers = [
36
36
  "assets/tree-sitter-ruby.wasm": "09a96427d7c72f0613ed470cd9812223fc4a91d6a9c025c0235cc6bd59ff96f4",
37
37
  "assets/tree-sitter-rust.wasm": "f65f354215611fd94ad34134b3427eb3d58cbb745df7b6509ba722184db73d57",
38
38
  "assets/tree-sitter-terraform.release.wasm": "59dbcbb0f08eb78b78f37510834559a48ce5c9d4866c978d62c6390796461cb5",
39
- "catalog.json": "9de667583cb69eb7dc1c04e2169cf864a063ee76a88bcc084a7f21da5d8e46f0",
39
+ "catalog.json": "6c1101d0e831ea11f1002edf4baeca88521ac6f4c18a2e1c64f2f030f8bf6bba",
40
40
  "dist/analysis-worker.js": "75a1e646f636c1d1ace9ae22a9141a51e94bddc70203bed08de7bd13dae1764e",
41
41
  "dist/catalog.js": "460243c48cb6a03b8c7971273729d8a1134955186978b6c0d04182c71960ebff",
42
42
  "dist/extractor.js": "1d8cd819e7ec8fcc291a44e5ffe4ccfe77099301677913fcfe0d92e7ce971f33",
43
43
  "dist/index.js": "adc03d77d94c0133b3188950b35f79db19e447cf7bfa1f7e1cf1f5c97a582a44",
44
44
  "dist/performance-timing.js": "56cce530f627c8fd079e8ec070322f84378ae50c40a6765d88b418850692940b",
45
- "integrity.json": "38f18dad5ab491562f4d0a6b82024e7c780c0b3a9bf1d53eee2c6744ab3da426",
45
+ "integrity.json": "a77eb4b614452f158202b3f8aa91b91750dd2ad94693cc9c375460ec5b80c48b",
46
46
  "licenses/tree-sitter-bash-MIT.txt": "49bf33cf78ef5897e4e161ce1517df7de1ae5042a65b6bcfd44401e0fc606559",
47
47
  "licenses/tree-sitter-c-MIT.txt": "2e0110e07abef7c2548b26ec9d6969775617ca539a0dc8dbeeb14d6452c711d1",
48
48
  "licenses/tree-sitter-c-sharp-MIT.txt": "778fb7d63b8c1844da315648c02f325c4713a6f4a5d19644fd413421422776d3",
@@ -55,7 +55,7 @@ export const qualifiedSourceAnalyzers = [
55
55
  "licenses/tree-sitter-ruby-MIT.txt": "9c99b99e93d3c6461bef9f6bac45d17b8bf014172625c24f76319bbd235a7b80",
56
56
  "licenses/tree-sitter-rust-MIT.txt": "31d5b6f4243d5c7c6e1c4ebbbb9f6407bd1457a08bcc4f706521710341acba36",
57
57
  "licenses/web-tree-sitter-MIT.txt": "c5cfb43042b6b72045f4ba997834d0a7786d2793d91680868b5815b39f14fc78",
58
- "package.json": "25f51aa2d923bf6446933b1c8da0e71485608518b92de668e21e10805a120749",
58
+ "package.json": "db0277b9bfd47a242dd457bd1d4fb29bf126121734c9b393ffe6b91af5e5919b",
59
59
  },
60
60
  dependencies: [
61
61
  {
@@ -0,0 +1,24 @@
1
+ import { type CheckPolicyDocument } from "kibi-plugin-sdk";
2
+ /** A check policy read from an activated plugin package, as data. */
3
+ export type ActiveCheckPolicy = Readonly<{
4
+ packageName: string;
5
+ packageVersion: string;
6
+ document: CheckPolicyDocument;
7
+ }>;
8
+ /** Why an activated check policy could not be read. */
9
+ export type CheckPolicyLoadError = Readonly<{
10
+ packageName: string;
11
+ message: string;
12
+ }>;
13
+ export type CheckPolicyReadResult = Readonly<{
14
+ policies: readonly ActiveCheckPolicy[];
15
+ errors: readonly CheckPolicyLoadError[];
16
+ }>;
17
+ /**
18
+ * Read the check policies of every package activated for
19
+ * `kibi.check-policy.v1`. Only package.json files and the declared policy JSON
20
+ * are read; no plugin module is imported, so maintenance paths such as
21
+ * `kb_check` stay free of third-party code.
22
+ */
23
+ export declare function readActiveCheckPolicies(workspaceRoot: string): CheckPolicyReadResult;
24
+ //# sourceMappingURL=check-policies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-policies.d.ts","sourceRoot":"","sources":["../../src/plugins/check-policies.ts"],"names":[],"mappings":"AAoBA,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,iBAAiB,CAAC;AAQzB,qEAAqE;AAErE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,CAAC,CAAC;AAEH,uDAAuD;AAEvD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAGH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACzC,CAAC,CAAC;AAoBH;;;;;GAKG;AAEH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,GACpB,qBAAqB,CAoCvB"}
@@ -0,0 +1,73 @@
1
+ /*
2
+ Kibi — repo-local, per-branch, queryable long-term memory for software projects
3
+ Copyright (C) 2026 Piotr Franczyk
4
+
5
+ This program is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU Affero General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ This program is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU Affero General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Affero General Public License
16
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+ */
18
+ import * as fs from "node:fs";
19
+ import { join } from "node:path";
20
+ import { CHECK_POLICY_CAPABILITY_ID, validateCheckPolicyDocument, } from "kibi-plugin-sdk";
21
+ import { readProjectKibiConfig } from "./project-config.js";
22
+ import { assertResolvedEntryInsidePackageRoot, resolveProjectLocalPackage, } from "./resolve-package.js";
23
+ function message(error) {
24
+ return error instanceof Error ? error.message : String(error);
25
+ }
26
+ function policyPath(packageJson) {
27
+ const kibi = packageJson.kibi;
28
+ const path = typeof kibi === "object" && kibi !== null && !Array.isArray(kibi)
29
+ ? kibi.checkPolicy
30
+ : undefined;
31
+ if (typeof path !== "string" || path.trim() === "") {
32
+ throw new Error(`its package.json has no kibi.checkPolicy path to a ${CHECK_POLICY_CAPABILITY_ID} document`);
33
+ }
34
+ return path;
35
+ }
36
+ /**
37
+ * Read the check policies of every package activated for
38
+ * `kibi.check-policy.v1`. Only package.json files and the declared policy JSON
39
+ * are read; no plugin module is imported, so maintenance paths such as
40
+ * `kb_check` stay free of third-party code.
41
+ */
42
+ // implements REQ-capability-check-policy
43
+ export function readActiveCheckPolicies(workspaceRoot) {
44
+ let entries;
45
+ try {
46
+ entries = (readProjectKibiConfig(workspaceRoot).plugins ?? []).filter((entry) => entry.capabilities[CHECK_POLICY_CAPABILITY_ID] !== undefined);
47
+ }
48
+ catch (error) {
49
+ return {
50
+ policies: [],
51
+ errors: [{ packageName: "package.json", message: message(error) }],
52
+ };
53
+ }
54
+ const policies = [];
55
+ const errors = [];
56
+ for (const entry of entries) {
57
+ try {
58
+ const resolved = resolveProjectLocalPackage(workspaceRoot, entry.package);
59
+ const documentPath = assertResolvedEntryInsidePackageRoot(resolved.packageRoot, join(resolved.packageRoot, policyPath(resolved.packageJson)));
60
+ const document = validateCheckPolicyDocument(JSON.parse(fs.readFileSync(documentPath, "utf8")));
61
+ const version = resolved.packageJson.version;
62
+ policies.push({
63
+ packageName: entry.package,
64
+ packageVersion: typeof version === "string" ? version : "unknown",
65
+ document,
66
+ });
67
+ }
68
+ catch (error) {
69
+ errors.push({ packageName: entry.package, message: message(error) });
70
+ }
71
+ }
72
+ return { policies, errors };
73
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@
15
15
  You should have received a copy of the GNU Affero General Public License
16
16
  along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
  */
18
- import { KIBI_PLUGIN_API_VERSION, ONTOLOGY_PACK_CAPABILITY_ID, SEMANTIC_CLASSIFIER_CAPABILITY_ID, SYMBOL_EXTRACTOR_CAPABILITY_ID, SYMBOL_EXTRACTOR_V2_CAPABILITY_ID, VOCABULARY_ALIGNMENT_CAPABILITY_ID, defineKibiPlugin, validateKibiPlugin, } from "kibi-plugin-sdk";
18
+ import { CHECK_POLICY_CAPABILITY_ID, CHECK_POLICY_CONTRACT_VERSION, KIBI_PLUGIN_API_VERSION, ONTOLOGY_PACK_CAPABILITY_ID, SEMANTIC_CLASSIFIER_CAPABILITY_ID, SYMBOL_EXTRACTOR_CAPABILITY_ID, SYMBOL_EXTRACTOR_V2_CAPABILITY_ID, VOCABULARY_ALIGNMENT_CAPABILITY_ID, defineKibiPlugin, validateKibiPlugin, } from "kibi-plugin-sdk";
19
19
  import { loadPluginPackage } from "./load-plugin.js";
20
20
  import { readProjectKibiConfig } from "./project-config.js";
21
21
  import { PluginResolutionError } from "./resolve-package.js";
@@ -25,6 +25,7 @@ const CAPABILITY_SLOT = {
25
25
  [SYMBOL_EXTRACTOR_CAPABILITY_ID]: "symbolExtractor",
26
26
  [SYMBOL_EXTRACTOR_V2_CAPABILITY_ID]: "symbolExtractorV2",
27
27
  [VOCABULARY_ALIGNMENT_CAPABILITY_ID]: "vocabularyAlignment",
28
+ [CHECK_POLICY_CAPABILITY_ID]: "checkPolicy",
28
29
  };
29
30
  /**
30
31
  * Minimal builtin used when no factory is injected and the builtin package is
@@ -83,6 +84,14 @@ export function createStubBuiltinPlugin() {
83
84
  })),
84
85
  }),
85
86
  },
87
+ checkPolicy: {
88
+ id: "kibi-plugin-builtin-stub.check-policy",
89
+ document: {
90
+ contractVersion: CHECK_POLICY_CONTRACT_VERSION,
91
+ id: "builtin-stub",
92
+ title: "Builtin stub check policy",
93
+ },
94
+ },
86
95
  },
87
96
  }));
88
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prolog.d.ts","sourceRoot":"","sources":["../src/prolog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prolog.d.ts","sourceRoot":"","sources":["../src/prolog.ts"],"names":[],"mappings":"AA2BA,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,4BAA4B,CAAC;AAUpC,wBAAgB,eAAe,IAAI,MAAM,CAsCxC;AACD,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,aAAa,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,+BAA+B;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM;CAO3B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAGD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,EAC5B,OAAO,EAAE,MAAM,IAAI,EACnB,EAAE,GAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAChB,GAC5B,MAAM,IAAI,CAIZ;AAGD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,EAC5B,SAAS,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACrC,EAAE,GAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAChB,GAC5B,MAAM,IAAI,CAQZ;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IACpD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,6EAA6E;IAC7E,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,mBAAmB,CAAS;gBAExB,OAAO,GAAE,aAAkB;IAiBvC,wBAAwB,CACtB,EAAE,GAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAChB,GAC5B,IAAI;IAQP;;;OAGG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;OAGG;IACH,YAAY,IAAI,OAAO;IAIvB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAOd,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAqEd,YAAY;IAgDpB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IA6Q1D,wEAAwE;IAClE,UAAU,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAIhE,eAAe,IAAI,IAAI;IAIvB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,kBAAkB;YAIZ,YAAY;IA2C1B,OAAO,CAAC,WAAW;IAiOnB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,gBAAgB;IAcxB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,iBAAiB;YAkBX,oBAAoB;IAyBlC,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,eAAe;IAmCvB,sEAAsE;IACtE,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,cAAc;IAoGtB,SAAS,IAAI,OAAO;IASpB,MAAM,IAAI,MAAM;IAIhB,OAAO,CAAC,gBAAgB;IASlB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAqCjC"}
package/dist/prolog.js CHANGED
@@ -505,6 +505,9 @@ export class PrologProcess {
505
505
  trimmed.startsWith("kb_storage_export") ||
506
506
  trimmed.startsWith("status:") ||
507
507
  trimmed.startsWith("kb_commit_upsert(") ||
508
+ // The preview stages a write in a rolled-back transaction: never
509
+ // answer it from the cache of an earlier payload.
510
+ trimmed.startsWith("kb_preview_upsert_contradiction(") ||
508
511
  trimmed.startsWith("kb_assert_") ||
509
512
  trimmed.startsWith("kb_delete_") ||
510
513
  trimmed.startsWith("kb_retract_"));
@@ -790,7 +793,11 @@ export class PrologProcess {
790
793
  return match?.[1] ?? "anonymous";
791
794
  }
792
795
  addDiagnosticStage(message, goal, diagnostics) {
793
- if (this.goalLabel(goal) !== "kb_commit_upsert")
796
+ // The dry-run contradiction preview reports the same stages as the
797
+ // commit it previews, so its refusal reads exactly like the commit's.
798
+ const label = this.goalLabel(goal);
799
+ if (label !== "kb_commit_upsert" &&
800
+ label !== "kb_preview_upsert_contradiction")
794
801
  return message;
795
802
  const stage = this.lastDiagnosticStage(diagnostics);
796
803
  return stage === null ? message : `${message} (stage=${stage})`;
@@ -1732,7 +1732,7 @@ export declare const OPERATION_CATALOG: readonly [{
1732
1732
  readonly type: "string";
1733
1733
  readonly enum: readonly string[];
1734
1734
  };
1735
- readonly description: "Optional rule subset. Allowed: must-priority-coverage, symbol-coverage, symbol-traceability, no-dangling-refs, source-relationship-parity, source-path-dangling, no-cycles, required-fields, deprecated-adr-no-successor, superseded-requirement-open, scenario-feasibility, scenario-feasibility-unknown, exception-claim-keys, numeric-string-value, rule-key-arguments-missing, domain-contradictions, logic-coverage, rule-safety, rule-verifiability, query-plan-safety, req-status-vocabulary, strict-fact-shape, strict-req-fact-pairing, predicate-verifiability, strict-readiness, semantic-completeness, related-requirement-unmodeled, proof-contract-symbols, entity-id-style, domain-redundancy, domain-implication, subject-key-identity, subject-key-shape, ontology-quality, exception-unapproved, exception-approval-self-attested, agent-requirement-unapproved, requirement-rationale-missing, symbol-owner-superseded, adr-unlinked, adr-proposed, predicate-schema-conformance, entity-context-missing, entity-context-acknowledged. If omitted, server runs canonical and advisory rules plus the full-KB qualityDiagnostics audit scan, including usage telemetry acceptance when evidence exists; migration rules run only when explicitly selected. Advisory and migration findings are non-blocking qualityDiagnostics. If supplied, server preserves scoped validation and skips the full-KB advisory scan.";
1735
+ readonly description: "Optional rule subset. Allowed: must-priority-coverage, symbol-coverage, symbol-traceability, no-dangling-refs, source-relationship-parity, source-path-dangling, no-cycles, required-fields, deprecated-adr-no-successor, superseded-requirement-open, scenario-feasibility, scenario-feasibility-unknown, exception-claim-keys, numeric-string-value, rule-key-arguments-missing, domain-contradictions, logic-coverage, rule-safety, rule-verifiability, query-plan-safety, req-status-vocabulary, strict-fact-shape, strict-req-fact-pairing, predicate-verifiability, strict-readiness, semantic-completeness, related-requirement-unmodeled, proof-contract-symbols, entity-id-style, domain-redundancy, domain-implication, subject-key-identity, subject-key-shape, ontology-quality, exception-unapproved, exception-approval-self-attested, agent-requirement-unapproved, requirement-rationale-missing, symbol-owner-superseded, adr-unlinked, adr-proposed, predicate-schema-conformance, entity-context-missing, entity-context-acknowledged, policy-ownership, policy-markers. If omitted, server runs canonical and advisory rules plus the full-KB qualityDiagnostics audit scan, including usage telemetry acceptance when evidence exists; migration rules run only when explicitly selected. Advisory and migration findings are non-blocking qualityDiagnostics. If supplied, server preserves scoped validation and skips the full-KB advisory scan.";
1736
1736
  };
1737
1737
  readonly sourceFiles: {
1738
1738
  readonly type: "array";
@@ -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,EAGjB,iBAAiB,EAElB,MAAM,oBAAoB,CAAC;AAU5B,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,oBAAoB,CAAC;AAMvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,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,iBAAiB,GAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,6CAA6C,CAAC,EAAE,OAAO,CAAC;CAClE,CAAC;AAqDF,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CA2KxC"}
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,EAGjB,iBAAiB,EAElB,MAAM,oBAAoB,CAAC;AAW5B,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,oBAAoB,CAAC;AAMvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,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,iBAAiB,GAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,6CAA6C,CAAC,EAAE,OAAO,CAAC;CAClE,CAAC;AAqDF,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAiLxC"}
@@ -2,6 +2,7 @@ import { runAggregatedChecks } from "../../commands/aggregated-checks.js";
2
2
  import { collectFullKbQualityDiagnostics } from "../impact-diagnostics.js";
3
3
  import { buildStructuredContent, buildSummary, } from "./check-format-shared.js";
4
4
  import { analyzeKbCheckImpact, collectQueryPlanSafetyViolations, getEffectiveRules, partitionCheckFindings, qualityDiagnosticsFromImpact, resolveCheckRules, stagedEntityIdStyleDiagnostics, } from "./check-helpers.js";
5
+ import { collectCheckPolicyViolations } from "./check-policy-rules.js";
5
6
  import { executeStatus } from "./discovery-executors.js";
6
7
  import { collectEntityContextViolations } from "./entity-context.js";
7
8
  import { buildActionsFromCheck, buildMigrationPlan, mergeMigrationPlans, } from "./migration-plan.js";
@@ -124,6 +125,7 @@ export async function executeCheck(args, context, options = {}) {
124
125
  : [];
125
126
  const originReviewFindings = await collectOriginReviewViolations(prolog, rulesAllowlist, workspaceRoot);
126
127
  const entityContextFindings = collectEntityContextViolations(rulesAllowlist, workspaceRoot);
128
+ const checkPolicyFindings = await collectCheckPolicyViolations(prolog, rulesAllowlist, workspaceRoot);
127
129
  const partitioned = partitionCheckFindings([
128
130
  ...aggregatedFindings,
129
131
  ...queryPlanViolations,
@@ -132,6 +134,7 @@ export async function executeCheck(args, context, options = {}) {
132
134
  ...predicateConformanceFindings,
133
135
  ...originReviewFindings,
134
136
  ...entityContextFindings,
137
+ ...checkPolicyFindings,
135
138
  ]);
136
139
  const violations = partitioned.violations;
137
140
  const diagnostics = violations.map((v) => ({
@@ -0,0 +1,49 @@
1
+ import { type ActiveCheckPolicy, type CheckPolicyLoadError } from "../../plugins/check-policies.js";
2
+ import type { Violation } from "../../utils/rule-registry.js";
3
+ import type { PrologPort } from "./runtime-types.js";
4
+ /** Symbols in a policy's file set must implement a qualifying requirement. */
5
+ export declare const POLICY_OWNERSHIP_RULE = "policy-ownership";
6
+ /** Files implementing a pattern must keep the pattern's declared markers. */
7
+ export declare const POLICY_MARKERS_RULE = "policy-markers";
8
+ export type PolicySymbol = Readonly<{
9
+ id: string;
10
+ title: string;
11
+ sourceFile: string;
12
+ tags: readonly string[];
13
+ }>;
14
+ export type PolicyPredicateFact = Readonly<{
15
+ id: string;
16
+ name: string;
17
+ args: readonly string[];
18
+ polarity: string;
19
+ }>;
20
+ export type CheckPolicyEvaluationInput = Readonly<{
21
+ policies: readonly ActiveCheckPolicy[];
22
+ loadErrors: readonly CheckPolicyLoadError[];
23
+ /** Production symbols (no `executable_for`) that carry a sourceFile. */
24
+ symbols: readonly PolicySymbol[];
25
+ /** `[symbol, requirement]` implements edges. */
26
+ implementsEdges: readonly (readonly [string, string])[];
27
+ currentRequirements: ReadonlySet<string>;
28
+ /** `[requirement, fact]` requires_predicate edges. */
29
+ requiresPredicateEdges: readonly (readonly [string, string])[];
30
+ predicateFacts: readonly PolicyPredicateFact[];
31
+ /** Workspace-relative file contents, or undefined when unreadable. */
32
+ readFile: (path: string) => string | undefined;
33
+ }>;
34
+ /**
35
+ * Workspace-relative POSIX path of a symbol sourceFile, or undefined when it
36
+ * points outside the workspace. Policies only govern workspace files.
37
+ */
38
+ export declare function workspaceSourcePath(workspaceRoot: string, sourceFile: string): string | undefined;
39
+ /**
40
+ * Evaluate active check policies against the KB. Pure: all KB data and file
41
+ * reads come in through `input`.
42
+ */
43
+ export declare function evaluateCheckPolicies(input: CheckPolicyEvaluationInput, rules: ReadonlySet<string>): Violation[];
44
+ /**
45
+ * Collect policy findings for the selected rules. With no activated check
46
+ * policy this returns at once, so projects without one pay nothing.
47
+ */
48
+ export declare function collectCheckPolicyViolations(prolog: Pick<PrologPort, "query">, rules: ReadonlySet<string>, workspaceRoot: string): Promise<Violation[]>;
49
+ //# sourceMappingURL=check-policy-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-policy-rules.d.ts","sourceRoot":"","sources":["../../../src/public/operations/check-policy-rules.ts"],"names":[],"mappings":"AAkCA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAE1B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,8EAA8E;AAE9E,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AACxD,6EAA6E;AAE7E,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AAKpD,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,CAAC,CAAC;AAGH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAGH,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC;IAChD,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,UAAU,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC5C,wEAAwE;IACxE,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IACjC,gDAAgD;IAChD,eAAe,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IACxD,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,sDAAsD;IACtD,sBAAsB,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IAC/D,cAAc,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,sEAAsE;IACtE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAChD,CAAC,CAAC;AAiBH;;;GAGG;AAEH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CAOpB;AAkLD;;;GAGG;AAEH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GACzB,SAAS,EAAE,CAyBb;AA2CD;;;GAGG;AAEH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EACjC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAC1B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,SAAS,EAAE,CAAC,CAmFtB"}