kibi-cli 2.3.0 → 2.5.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 (380) hide show
  1. package/dist/cli-json-command.d.ts +6 -0
  2. package/dist/cli-json-command.d.ts.map +1 -1
  3. package/dist/cli-json-command.js +39 -11
  4. package/dist/cli-operation-loader.d.ts.map +1 -1
  5. package/dist/cli-operation-loader.js +7 -0
  6. package/dist/cli-operation-metadata.d.ts +13 -5
  7. package/dist/cli-operation-metadata.d.ts.map +1 -1
  8. package/dist/cli-operation-metadata.js +15 -5
  9. package/dist/cli-protocol.d.ts +14 -0
  10. package/dist/cli-protocol.d.ts.map +1 -1
  11. package/dist/cli-protocol.js +31 -2
  12. package/dist/cli-register-maintenance.d.ts.map +1 -1
  13. package/dist/cli-register-maintenance.js +7 -0
  14. package/dist/cli-register-proof.d.ts.map +1 -1
  15. package/dist/cli-register-proof.js +13 -0
  16. package/dist/commands/check.d.ts.map +1 -1
  17. package/dist/commands/check.js +11 -2
  18. package/dist/commands/discovery-shared.d.ts.map +1 -1
  19. package/dist/commands/discovery-shared.js +8 -2
  20. package/dist/commands/engine.d.ts.map +1 -1
  21. package/dist/commands/engine.js +4 -2
  22. package/dist/commands/gc.d.ts.map +1 -1
  23. package/dist/commands/gc.js +7 -0
  24. package/dist/commands/init-helpers.d.ts.map +1 -1
  25. package/dist/commands/init-helpers.js +0 -1
  26. package/dist/commands/merge-driver.d.ts +31 -0
  27. package/dist/commands/merge-driver.d.ts.map +1 -0
  28. package/dist/commands/merge-driver.js +268 -0
  29. package/dist/commands/migrate.d.ts.map +1 -1
  30. package/dist/commands/migrate.js +281 -14
  31. package/dist/commands/proof-compact.d.ts +9 -0
  32. package/dist/commands/proof-compact.d.ts.map +1 -0
  33. package/dist/commands/proof-compact.js +58 -0
  34. package/dist/commands/prove.d.ts +38 -0
  35. package/dist/commands/prove.d.ts.map +1 -1
  36. package/dist/commands/prove.js +222 -47
  37. package/dist/commands/sync/persistence.d.ts.map +1 -1
  38. package/dist/commands/sync/persistence.js +61 -16
  39. package/dist/commands/sync.d.ts +8 -0
  40. package/dist/commands/sync.d.ts.map +1 -1
  41. package/dist/commands/sync.js +42 -16
  42. package/dist/diagnostics.js +1 -1
  43. package/dist/engine-limits.d.ts +74 -0
  44. package/dist/engine-limits.d.ts.map +1 -0
  45. package/dist/engine-limits.js +201 -0
  46. package/dist/engine.d.ts +10 -0
  47. package/dist/engine.d.ts.map +1 -1
  48. package/dist/engine.js +57 -9
  49. package/dist/extractors/manifest.d.ts +8 -0
  50. package/dist/extractors/manifest.d.ts.map +1 -1
  51. package/dist/extractors/manifest.js +34 -5
  52. package/dist/extractors/markdown.d.ts +8 -0
  53. package/dist/extractors/markdown.d.ts.map +1 -1
  54. package/dist/extractors/markdown.js +57 -0
  55. package/dist/extractors/relationships.d.ts.map +1 -1
  56. package/dist/extractors/relationships.js +2 -0
  57. package/dist/intent-search.d.ts +4 -1
  58. package/dist/intent-search.d.ts.map +1 -1
  59. package/dist/intent-search.js +186 -33
  60. package/dist/operations/bootstrap/candidate-helpers.d.ts.map +1 -1
  61. package/dist/operations/bootstrap/candidate-helpers.js +8 -1
  62. package/dist/operations/bootstrap/candidates.d.ts.map +1 -1
  63. package/dist/operations/bootstrap/candidates.js +55 -39
  64. package/dist/operations/bootstrap/discovery.js +1 -1
  65. package/dist/operations/bootstrap/generate.d.ts +2 -0
  66. package/dist/operations/bootstrap/generate.d.ts.map +1 -1
  67. package/dist/operations/bootstrap/generate.js +107 -37
  68. package/dist/operations/bootstrap/guidance-actions.d.ts.map +1 -1
  69. package/dist/operations/bootstrap/guidance-actions.js +3 -0
  70. package/dist/operations/bootstrap/guidance.d.ts.map +1 -1
  71. package/dist/operations/bootstrap/guidance.js +7 -1
  72. package/dist/operations/bootstrap/intent-claims.d.ts +17 -0
  73. package/dist/operations/bootstrap/intent-claims.d.ts.map +1 -0
  74. package/dist/operations/bootstrap/intent-claims.js +103 -0
  75. package/dist/operations/bootstrap/markdown-candidates.d.ts +2 -0
  76. package/dist/operations/bootstrap/markdown-candidates.d.ts.map +1 -1
  77. package/dist/operations/bootstrap/markdown-candidates.js +32 -10
  78. package/dist/operations/bootstrap/presentation.d.ts +2 -0
  79. package/dist/operations/bootstrap/presentation.d.ts.map +1 -1
  80. package/dist/operations/bootstrap/presentation.js +66 -3
  81. package/dist/operations/bootstrap/requirement-claims.d.ts +1 -0
  82. package/dist/operations/bootstrap/requirement-claims.d.ts.map +1 -1
  83. package/dist/operations/bootstrap/requirement-claims.js +13 -1
  84. package/dist/operations/bootstrap/types.d.ts +28 -0
  85. package/dist/operations/bootstrap/types.d.ts.map +1 -1
  86. package/dist/operations/bootstrap/types.js +16 -0
  87. package/dist/operations/bootstrap/validation.d.ts +4 -0
  88. package/dist/operations/bootstrap/validation.d.ts.map +1 -0
  89. package/dist/operations/bootstrap/validation.js +20 -0
  90. package/dist/operations/migration/inventory-rederive.d.ts +81 -0
  91. package/dist/operations/migration/inventory-rederive.d.ts.map +1 -0
  92. package/dist/operations/migration/inventory-rederive.js +484 -0
  93. package/dist/operations/migration/kb-sources.d.ts +53 -0
  94. package/dist/operations/migration/kb-sources.d.ts.map +1 -0
  95. package/dist/operations/migration/kb-sources.js +233 -0
  96. package/dist/operations/migration/origin-backfill.d.ts +39 -0
  97. package/dist/operations/migration/origin-backfill.d.ts.map +1 -0
  98. package/dist/operations/migration/origin-backfill.js +164 -0
  99. package/dist/operations/migration/polarity-values.d.ts +10 -0
  100. package/dist/operations/migration/polarity-values.d.ts.map +1 -0
  101. package/dist/operations/migration/polarity-values.js +60 -0
  102. package/dist/operations/migration/schema6.d.ts +59 -0
  103. package/dist/operations/migration/schema6.d.ts.map +1 -0
  104. package/dist/operations/migration/schema6.js +379 -0
  105. package/dist/operations/migration/source-paths.d.ts +131 -0
  106. package/dist/operations/migration/source-paths.d.ts.map +1 -0
  107. package/dist/operations/migration/source-paths.js +308 -0
  108. package/dist/operations/migration/superseded-closure.d.ts +54 -0
  109. package/dist/operations/migration/superseded-closure.d.ts.map +1 -0
  110. package/dist/operations/migration/superseded-closure.js +187 -0
  111. package/dist/operations/modeling/logic-modeling.d.ts.map +1 -1
  112. package/dist/operations/modeling/logic-modeling.js +3 -5
  113. package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
  114. package/dist/operations/modeling/model-requirement.js +225 -67
  115. package/dist/operations/mutation/contradictions.d.ts +16 -0
  116. package/dist/operations/mutation/contradictions.d.ts.map +1 -1
  117. package/dist/operations/mutation/contradictions.js +32 -0
  118. package/dist/operations/mutation/delete.d.ts.map +1 -1
  119. package/dist/operations/mutation/delete.js +15 -7
  120. package/dist/operations/mutation/origin.d.ts +21 -0
  121. package/dist/operations/mutation/origin.d.ts.map +1 -0
  122. package/dist/operations/mutation/origin.js +78 -0
  123. package/dist/operations/mutation/plan-apply-journal.d.ts +182 -0
  124. package/dist/operations/mutation/plan-apply-journal.d.ts.map +1 -0
  125. package/dist/operations/mutation/plan-apply-journal.js +613 -0
  126. package/dist/operations/mutation/predicate-vocabulary-guard.d.ts +3 -1
  127. package/dist/operations/mutation/predicate-vocabulary-guard.d.ts.map +1 -1
  128. package/dist/operations/mutation/predicate-vocabulary-guard.js +13 -2
  129. package/dist/operations/mutation/relationships.d.ts +5 -5
  130. package/dist/operations/mutation/relationships.d.ts.map +1 -1
  131. package/dist/operations/mutation/relationships.js +31 -11
  132. package/dist/operations/mutation/serialization.d.ts.map +1 -1
  133. package/dist/operations/mutation/serialization.js +3 -1
  134. package/dist/operations/mutation/source-authoring.d.ts +6 -0
  135. package/dist/operations/mutation/source-authoring.d.ts.map +1 -1
  136. package/dist/operations/mutation/source-authoring.js +7 -1
  137. package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
  138. package/dist/operations/mutation/symbol-refresh.js +4 -1
  139. package/dist/operations/mutation/types.d.ts +14 -0
  140. package/dist/operations/mutation/types.d.ts.map +1 -1
  141. package/dist/operations/mutation/upsert.d.ts +30 -3
  142. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  143. package/dist/operations/mutation/upsert.js +105 -35
  144. package/dist/operations/mutation/validate-upsert.d.ts +6 -0
  145. package/dist/operations/mutation/validate-upsert.d.ts.map +1 -1
  146. package/dist/operations/mutation/validate-upsert.js +34 -30
  147. package/dist/operations/planning/apply-plan.d.ts.map +1 -1
  148. package/dist/operations/planning/apply-plan.js +751 -144
  149. package/dist/operations/planning/compile-intent.d.ts +34 -1
  150. package/dist/operations/planning/compile-intent.d.ts.map +1 -1
  151. package/dist/operations/planning/compile-intent.js +314 -98
  152. package/dist/operations/proof/code-scope.d.ts +28 -0
  153. package/dist/operations/proof/code-scope.d.ts.map +1 -1
  154. package/dist/operations/proof/code-scope.js +72 -0
  155. package/dist/operations/proof/compact-receipts.d.ts +49 -0
  156. package/dist/operations/proof/compact-receipts.d.ts.map +1 -0
  157. package/dist/operations/proof/compact-receipts.js +160 -0
  158. package/dist/operations/proof/ingest-proof.d.ts +2 -0
  159. package/dist/operations/proof/ingest-proof.d.ts.map +1 -1
  160. package/dist/operations/proof/ingest-proof.js +44 -23
  161. package/dist/operations/proof/prune-receipts.d.ts.map +1 -1
  162. package/dist/operations/proof/prune-receipts.js +5 -9
  163. package/dist/operations/proof/receipt-compaction.d.ts +48 -0
  164. package/dist/operations/proof/receipt-compaction.d.ts.map +1 -0
  165. package/dist/operations/proof/receipt-compaction.js +121 -0
  166. package/dist/operations/semantic-advisor/analysis-receipt.d.ts.map +1 -1
  167. package/dist/operations/semantic-advisor/analysis-receipt.js +12 -1
  168. package/dist/operations/semantic-advisor/analyze-prose.d.ts +2 -1
  169. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  170. package/dist/operations/semantic-advisor/analyze-prose.js +51 -5
  171. package/dist/operations/semantic-advisor/clauses.d.ts +1 -0
  172. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
  173. package/dist/operations/semantic-advisor/clauses.js +11 -1
  174. package/dist/operations/semantic-advisor/conditional-rules.d.ts +33 -0
  175. package/dist/operations/semantic-advisor/conditional-rules.d.ts.map +1 -0
  176. package/dist/operations/semantic-advisor/conditional-rules.js +262 -0
  177. package/dist/operations/semantic-advisor/ingestion-boundary.d.ts +3 -1
  178. package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -1
  179. package/dist/operations/semantic-advisor/ingestion-boundary.js +14 -6
  180. package/dist/operations/semantic-advisor/plugin-orchestration.js +1 -1
  181. package/dist/prolog/codec.d.ts.map +1 -1
  182. package/dist/prolog/codec.js +2 -1
  183. package/dist/prolog.d.ts +9 -0
  184. package/dist/prolog.d.ts.map +1 -1
  185. package/dist/prolog.js +56 -10
  186. package/dist/proof/command-test-report.d.ts +74 -0
  187. package/dist/proof/command-test-report.d.ts.map +1 -0
  188. package/dist/proof/command-test-report.js +206 -0
  189. package/dist/public/branch-resolver.d.ts +1 -0
  190. package/dist/public/branch-resolver.d.ts.map +1 -1
  191. package/dist/public/branch-resolver.js +1 -0
  192. package/dist/public/diagnostic-usage.d.ts +14 -0
  193. package/dist/public/diagnostic-usage.d.ts.map +1 -1
  194. package/dist/public/diagnostic-usage.js +55 -1
  195. package/dist/public/entity-origin.d.ts +69 -0
  196. package/dist/public/entity-origin.d.ts.map +1 -0
  197. package/dist/public/entity-origin.js +142 -0
  198. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  199. package/dist/public/impact/full-kb-quality.js +1 -0
  200. package/dist/public/impact/requirement-quality.js +1 -1
  201. package/dist/public/operations/catalog.d.ts +203 -20
  202. package/dist/public/operations/catalog.d.ts.map +1 -1
  203. package/dist/public/operations/catalog.js +3 -0
  204. package/dist/public/operations/check-executor.d.ts.map +1 -1
  205. package/dist/public/operations/check-executor.js +8 -0
  206. package/dist/public/operations/contracts.d.ts +0 -5
  207. package/dist/public/operations/contracts.d.ts.map +1 -1
  208. package/dist/public/operations/contracts.js +63 -14
  209. package/dist/public/operations/discovery-entities.d.ts +15 -0
  210. package/dist/public/operations/discovery-entities.d.ts.map +1 -1
  211. package/dist/public/operations/discovery-entities.js +59 -0
  212. package/dist/public/operations/discovery-executors.d.ts +6 -1
  213. package/dist/public/operations/discovery-executors.d.ts.map +1 -1
  214. package/dist/public/operations/discovery-executors.js +65 -6
  215. package/dist/public/operations/index.d.ts +1 -0
  216. package/dist/public/operations/index.d.ts.map +1 -1
  217. package/dist/public/operations/index.js +1 -0
  218. package/dist/public/operations/migration-plan.d.ts +5 -0
  219. package/dist/public/operations/migration-plan.d.ts.map +1 -1
  220. package/dist/public/operations/migration-plan.js +26 -1
  221. package/dist/public/operations/node-ports.d.ts.map +1 -1
  222. package/dist/public/operations/node-ports.js +24 -3
  223. package/dist/public/operations/origin-review.d.ts +51 -0
  224. package/dist/public/operations/origin-review.d.ts.map +1 -0
  225. package/dist/public/operations/origin-review.js +307 -0
  226. package/dist/public/operations/predicate-schema-conformance.js +1 -1
  227. package/dist/public/operations/repair-plan.d.ts.map +1 -1
  228. package/dist/public/operations/repair-plan.js +4 -0
  229. package/dist/public/operations/result-envelope.d.ts.map +1 -1
  230. package/dist/public/operations/result-envelope.js +17 -5
  231. package/dist/public/operations/runtime-types.d.ts +9 -0
  232. package/dist/public/operations/runtime-types.d.ts.map +1 -1
  233. package/dist/public/operations/schema6-check-actions.d.ts +127 -0
  234. package/dist/public/operations/schema6-check-actions.d.ts.map +1 -0
  235. package/dist/public/operations/schema6-check-actions.js +575 -0
  236. package/dist/public/operations/source-path-dangling.d.ts +17 -0
  237. package/dist/public/operations/source-path-dangling.d.ts.map +1 -0
  238. package/dist/public/operations/source-path-dangling.js +66 -0
  239. package/dist/public/operations/specs/bootstrap.d.ts +73 -1
  240. package/dist/public/operations/specs/bootstrap.d.ts.map +1 -1
  241. package/dist/public/operations/specs/bootstrap.js +66 -1
  242. package/dist/public/operations/specs/check-rules.generated.d.ts +1 -1
  243. package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -1
  244. package/dist/public/operations/specs/check-rules.generated.js +15 -1
  245. package/dist/public/operations/specs/check.d.ts +2 -2
  246. package/dist/public/operations/specs/check.js +1 -1
  247. package/dist/public/operations/specs/composite.d.ts +351 -0
  248. package/dist/public/operations/specs/composite.d.ts.map +1 -0
  249. package/dist/public/operations/specs/composite.js +96 -0
  250. package/dist/public/operations/specs/discovery.d.ts +8 -3
  251. package/dist/public/operations/specs/discovery.d.ts.map +1 -1
  252. package/dist/public/operations/specs/discovery.js +8 -3
  253. package/dist/public/operations/specs/modeling.d.ts +2 -2
  254. package/dist/public/operations/specs/modeling.js +2 -2
  255. package/dist/public/operations/specs/mutation-schemas.d.ts +73 -8
  256. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  257. package/dist/public/operations/specs/mutation-schemas.js +43 -7
  258. package/dist/public/operations/specs/mutation.d.ts +1 -1
  259. package/dist/public/operations/specs/mutation.js +1 -1
  260. package/dist/public/operations/specs/planning.d.ts +2 -2
  261. package/dist/public/operations/specs/planning.js +4 -4
  262. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  263. package/dist/public/operations/specs/reporting.js +13 -26
  264. package/dist/public/operations/specs/upsert.d.ts +79 -9
  265. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  266. package/dist/public/operations/specs/upsert.js +6 -1
  267. package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -1
  268. package/dist/public/operations/symbol-repair-plan.js +3 -1
  269. package/dist/public/operations/types.d.ts +1 -1
  270. package/dist/public/operations/types.d.ts.map +1 -1
  271. package/dist/public/proof-receipt.d.ts +1 -0
  272. package/dist/public/proof-receipt.d.ts.map +1 -1
  273. package/dist/public/schemas/entity.d.ts.map +1 -1
  274. package/dist/public/schemas/entity.js +52 -0
  275. package/dist/public/schemas/relationship.d.ts.map +1 -1
  276. package/dist/public/schemas/relationship.js +2 -0
  277. package/dist/public/skills/kibi-bootstrap/SKILL.md +52 -11
  278. package/dist/public/skills/kibi-bootstrap/resources/bootstrap.md +12 -1
  279. package/dist/public/skills/kibi-usage/SKILL.md +82 -18
  280. package/dist/public/skills/kibi-usage/resources/fact-lanes.md +5 -5
  281. package/dist/public/skills/kibi-usage/resources/kb-improvement.md +1 -1
  282. package/dist/public/skills/kibi-usage/resources/logic-ir.md +2 -2
  283. package/dist/public/skills/kibi-usage/resources/operation-access.md +29 -1
  284. package/dist/public/skills/kibi-usage/resources/ui-requirements.md +4 -4
  285. package/dist/public/skills/kibi-usage/resources/workflows.md +42 -25
  286. package/dist/public/telemetry-acceptance.d.ts +64 -0
  287. package/dist/public/telemetry-acceptance.d.ts.map +1 -1
  288. package/dist/public/telemetry-acceptance.js +143 -7
  289. package/dist/public/telemetry-remediation.d.ts.map +1 -1
  290. package/dist/public/telemetry-remediation.js +26 -10
  291. package/dist/relationships/shards.d.ts +13 -0
  292. package/dist/relationships/shards.d.ts.map +1 -1
  293. package/dist/relationships/shards.js +54 -28
  294. package/dist/runtime/cli-runtime.d.ts.map +1 -1
  295. package/dist/runtime/cli-runtime.js +44 -3
  296. package/dist/runtime/detached-snapshot.d.ts +38 -0
  297. package/dist/runtime/detached-snapshot.d.ts.map +1 -0
  298. package/dist/runtime/detached-snapshot.js +92 -0
  299. package/dist/schemas/entity.schema.json +122 -0
  300. package/dist/search-answer.d.ts +157 -0
  301. package/dist/search-answer.d.ts.map +1 -0
  302. package/dist/search-answer.js +846 -0
  303. package/dist/traceability/impact-knowledge.d.ts.map +1 -1
  304. package/dist/traceability/impact-knowledge.js +7 -0
  305. package/dist/traceability/symbol-extract.js +3 -3
  306. package/dist/traceability/temp-kb.d.ts.map +1 -1
  307. package/dist/traceability/temp-kb.js +12 -0
  308. package/dist/types/entities.d.ts +13 -0
  309. package/dist/types/entities.d.ts.map +1 -1
  310. package/dist/types/relationships.d.ts +1 -1
  311. package/dist/types/relationships.d.ts.map +1 -1
  312. package/dist/utils/branch-resolver.d.ts +37 -1
  313. package/dist/utils/branch-resolver.d.ts.map +1 -1
  314. package/dist/utils/branch-resolver.js +130 -3
  315. package/dist/utils/repo-relative-path.d.ts +18 -0
  316. package/dist/utils/repo-relative-path.d.ts.map +1 -0
  317. package/dist/utils/repo-relative-path.js +58 -0
  318. package/dist/utils/rule-registry.generated.d.ts +75 -3
  319. package/dist/utils/rule-registry.generated.d.ts.map +1 -1
  320. package/dist/utils/rule-registry.generated.js +89 -3
  321. package/dist/utils/schema-version.d.ts +1 -1
  322. package/dist/utils/schema-version.d.ts.map +1 -1
  323. package/dist/utils/schema-version.js +4 -3
  324. package/dist/utils/strict-modeling.d.ts +1 -1
  325. package/dist/utils/strict-modeling.d.ts.map +1 -1
  326. package/dist/utils/strict-modeling.js +23 -3
  327. package/package.json +3 -3
  328. package/schema/entities.pl +22 -0
  329. package/schema/relationships.pl +14 -0
  330. package/schema/validation.pl +45 -1
  331. package/src/public/branch-resolver.ts +1 -0
  332. package/src/public/diagnostic-usage.ts +59 -1
  333. package/src/public/entity-origin.ts +175 -0
  334. package/src/public/impact/full-kb-quality.ts +1 -0
  335. package/src/public/impact/requirement-quality.ts +1 -1
  336. package/src/public/operations/catalog.ts +3 -0
  337. package/src/public/operations/check-executor.ts +15 -0
  338. package/src/public/operations/contracts.ts +75 -15
  339. package/src/public/operations/discovery-entities.ts +74 -0
  340. package/src/public/operations/discovery-executors.ts +88 -10
  341. package/src/public/operations/index.ts +1 -0
  342. package/src/public/operations/migration-plan.ts +30 -1
  343. package/src/public/operations/node-ports.ts +24 -3
  344. package/src/public/operations/origin-review.ts +375 -0
  345. package/src/public/operations/predicate-schema-conformance.ts +1 -1
  346. package/src/public/operations/repair-plan.ts +4 -0
  347. package/src/public/operations/result-envelope.ts +18 -6
  348. package/src/public/operations/runtime-types.ts +9 -0
  349. package/src/public/operations/schema6-check-actions.ts +699 -0
  350. package/src/public/operations/source-path-dangling.ts +81 -0
  351. package/src/public/operations/specs/bootstrap.ts +78 -4
  352. package/src/public/operations/specs/check-rules.generated.ts +15 -1
  353. package/src/public/operations/specs/check.ts +1 -1
  354. package/src/public/operations/specs/composite.ts +141 -0
  355. package/src/public/operations/specs/discovery.ts +9 -3
  356. package/src/public/operations/specs/modeling.ts +2 -2
  357. package/src/public/operations/specs/mutation-schemas.ts +49 -7
  358. package/src/public/operations/specs/mutation.ts +1 -1
  359. package/src/public/operations/specs/planning.ts +4 -4
  360. package/src/public/operations/specs/reporting.ts +13 -38
  361. package/src/public/operations/specs/upsert.ts +7 -1
  362. package/src/public/operations/symbol-repair-plan.ts +3 -1
  363. package/src/public/operations/types.ts +2 -0
  364. package/src/public/proof-receipt.ts +1 -0
  365. package/src/public/schemas/entity.ts +57 -0
  366. package/src/public/schemas/relationship.ts +2 -0
  367. package/src/public/skills/kibi-bootstrap/SKILL.md +52 -11
  368. package/src/public/skills/kibi-bootstrap/resources/bootstrap.md +12 -1
  369. package/src/public/skills/kibi-usage/SKILL.md +82 -18
  370. package/src/public/skills/kibi-usage/resources/fact-lanes.md +5 -5
  371. package/src/public/skills/kibi-usage/resources/kb-improvement.md +1 -1
  372. package/src/public/skills/kibi-usage/resources/logic-ir.md +2 -2
  373. package/src/public/skills/kibi-usage/resources/operation-access.md +29 -1
  374. package/src/public/skills/kibi-usage/resources/ui-requirements.md +4 -4
  375. package/src/public/skills/kibi-usage/resources/workflows.md +42 -25
  376. package/src/public/telemetry-acceptance-types.d.ts +4 -1
  377. package/src/public/telemetry-acceptance.ts +210 -7
  378. package/src/public/telemetry-remediation.ts +39 -10
  379. package/src/schemas/entity.schema.json +122 -0
  380. package/src/schemas/relationship.schema.json +2 -0
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Entity provenance (`origin`): who authored an entity and on what authority.
3
+ *
4
+ * `origin` is one structured property shared by every authored entity type.
5
+ * It is a YAML mapping in Markdown frontmatter and symbol manifests, a JSON
6
+ * object at the public operation boundary, and a JSON string inside Prolog
7
+ * (like `proof_contract`).
8
+ */
9
+ /** How an entity entered the knowledge base. */
10
+ export declare const ENTITY_ORIGIN_KINDS: readonly ["human", "agent", "migration", "import"];
11
+ export type EntityOriginKind = (typeof ENTITY_ORIGIN_KINDS)[number];
12
+ export type EntityOrigin = {
13
+ /** human | agent | migration | import */
14
+ kind: EntityOriginKind;
15
+ /** Source reference: URL, document path, ticket, commit or conversation id. */
16
+ ref?: string;
17
+ /** The person who approved the authored content. */
18
+ approved_by?: string;
19
+ /** ISO-8601 time the provenance was recorded. */
20
+ recorded_at?: string;
21
+ };
22
+ /** `ref` recorded on entities backfilled by the schema v5 -> v6 migration. */
23
+ export declare const SCHEMA6_MIGRATION_ORIGIN_REF = "kibi migrate v5->v6";
24
+ /** JSON Schema shared by the entity schema and the kb_upsert input schema. */
25
+ export declare const ENTITY_ORIGIN_SCHEMA: {
26
+ readonly type: "object";
27
+ readonly required: readonly ["kind"];
28
+ readonly properties: {
29
+ readonly kind: {
30
+ readonly type: "string";
31
+ readonly enum: readonly ["human", "agent", "migration", "import"];
32
+ readonly description: "Who authored the entity: human, agent, migration (backfilled by kibi migrate) or import.";
33
+ };
34
+ readonly ref: {
35
+ readonly type: "string";
36
+ readonly minLength: 1;
37
+ readonly pattern: "\\S";
38
+ readonly description: "Source reference for the authored content: URL, document path, ticket, commit or conversation id.";
39
+ };
40
+ readonly approved_by: {
41
+ readonly type: "string";
42
+ readonly minLength: 1;
43
+ readonly pattern: "\\S";
44
+ readonly description: "The person who reviewed and approved this entity's content. Distinct from the requirement-level approved_by of an exception.";
45
+ };
46
+ readonly recorded_at: {
47
+ readonly type: "string";
48
+ readonly pattern: "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?(?:Z|[+-]\\d{2}:?\\d{2})?)?$";
49
+ readonly description: "ISO-8601 time the provenance was recorded.";
50
+ };
51
+ };
52
+ readonly additionalProperties: false;
53
+ };
54
+ /**
55
+ * Normalize an authored origin mapping. YAML parsers turn an unquoted
56
+ * `recorded_at` into a Date; it is stored as its ISO-8601 string. Returns the
57
+ * reason when the mapping is not a valid origin.
58
+ */
59
+ export declare function normalizeEntityOrigin(value: unknown): {
60
+ origin: EntityOrigin;
61
+ } | {
62
+ error: string;
63
+ };
64
+ /**
65
+ * Read an origin from a compiled entity row: an object at the public
66
+ * boundary, or the JSON string Prolog stores. Malformed values read as absent.
67
+ */
68
+ export declare function readEntityOrigin(value: unknown): EntityOrigin | null;
69
+ //# sourceMappingURL=entity-origin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-origin.d.ts","sourceRoot":"","sources":["../../src/public/entity-origin.ts"],"names":[],"mappings":"AAkBA;;;;;;;GAOG;AAEH,gDAAgD;AAEhD,eAAO,MAAM,mBAAmB,oDAKtB,CAAC;AAGX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAGpE,MAAM,MAAM,YAAY,GAAG;IACzB,yCAAyC;IACzC,IAAI,EAAE,gBAAgB,CAAC;IACvB,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,8EAA8E;AAE9E,eAAO,MAAM,4BAA4B,wBAAwB,CAAC;AAKlE,8EAA8E;AAE9E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BvB,CAAC;AAYX;;;;GAIG;AAEH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GACb;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA6C9C;AAED;;;GAGG;AAEH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAWpE"}
@@ -0,0 +1,142 @@
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
+ /**
19
+ * Entity provenance (`origin`): who authored an entity and on what authority.
20
+ *
21
+ * `origin` is one structured property shared by every authored entity type.
22
+ * It is a YAML mapping in Markdown frontmatter and symbol manifests, a JSON
23
+ * object at the public operation boundary, and a JSON string inside Prolog
24
+ * (like `proof_contract`).
25
+ */
26
+ /** How an entity entered the knowledge base. */
27
+ // implements REQ-kibi-entity-origin
28
+ export const ENTITY_ORIGIN_KINDS = [
29
+ "human",
30
+ "agent",
31
+ "migration",
32
+ "import",
33
+ ];
34
+ /** `ref` recorded on entities backfilled by the schema v5 -> v6 migration. */
35
+ // implements REQ-kibi-entity-origin
36
+ export const SCHEMA6_MIGRATION_ORIGIN_REF = "kibi migrate v5->v6";
37
+ const ISO_TIMESTAMP_PATTERN = "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?(?:Z|[+-]\\d{2}:?\\d{2})?)?$";
38
+ /** JSON Schema shared by the entity schema and the kb_upsert input schema. */
39
+ // implements REQ-kibi-entity-origin
40
+ export const ENTITY_ORIGIN_SCHEMA = {
41
+ type: "object",
42
+ required: ["kind"],
43
+ properties: {
44
+ kind: {
45
+ type: "string",
46
+ enum: [...ENTITY_ORIGIN_KINDS],
47
+ description: "Who authored the entity: human, agent, migration (backfilled by kibi migrate) or import.",
48
+ },
49
+ ref: {
50
+ type: "string",
51
+ minLength: 1,
52
+ pattern: "\\S",
53
+ description: "Source reference for the authored content: URL, document path, ticket, commit or conversation id.",
54
+ },
55
+ approved_by: {
56
+ type: "string",
57
+ minLength: 1,
58
+ pattern: "\\S",
59
+ description: "The person who reviewed and approved this entity's content. Distinct from the requirement-level approved_by of an exception.",
60
+ },
61
+ recorded_at: {
62
+ type: "string",
63
+ pattern: ISO_TIMESTAMP_PATTERN,
64
+ description: "ISO-8601 time the provenance was recorded.",
65
+ },
66
+ },
67
+ additionalProperties: false,
68
+ };
69
+ function isRecord(value) {
70
+ return value !== null && typeof value === "object" && !Array.isArray(value);
71
+ }
72
+ function nonEmptyText(value) {
73
+ return typeof value === "string" && value.trim() !== ""
74
+ ? value.trim()
75
+ : undefined;
76
+ }
77
+ /**
78
+ * Normalize an authored origin mapping. YAML parsers turn an unquoted
79
+ * `recorded_at` into a Date; it is stored as its ISO-8601 string. Returns the
80
+ * reason when the mapping is not a valid origin.
81
+ */
82
+ // implements REQ-kibi-entity-origin, REQ-007
83
+ export function normalizeEntityOrigin(value) {
84
+ if (!isRecord(value)) {
85
+ return { error: "origin must be a mapping with at least a kind" };
86
+ }
87
+ const allowed = new Set(["kind", "ref", "approved_by", "recorded_at"]);
88
+ const unknown = Object.keys(value).filter((key) => !allowed.has(key));
89
+ if (unknown.length > 0) {
90
+ return {
91
+ error: `origin has unknown field(s) ${unknown.join(", ")}; allowed: kind, ref, approved_by, recorded_at`,
92
+ };
93
+ }
94
+ const kind = value.kind;
95
+ if (typeof kind !== "string" ||
96
+ !ENTITY_ORIGIN_KINDS.includes(kind)) {
97
+ return {
98
+ error: `origin.kind must be one of ${ENTITY_ORIGIN_KINDS.join(", ")}`,
99
+ };
100
+ }
101
+ const origin = { kind: kind };
102
+ for (const field of ["ref", "approved_by"]) {
103
+ if (value[field] === undefined)
104
+ continue;
105
+ const text = nonEmptyText(value[field]);
106
+ if (text === undefined) {
107
+ return { error: `origin.${field} must be a non-empty string` };
108
+ }
109
+ origin[field] = text;
110
+ }
111
+ if (value.recorded_at !== undefined) {
112
+ const recordedAt = value.recorded_at instanceof Date
113
+ ? Number.isNaN(value.recorded_at.getTime())
114
+ ? undefined
115
+ : value.recorded_at.toISOString()
116
+ : nonEmptyText(value.recorded_at);
117
+ if (recordedAt === undefined ||
118
+ !new RegExp(ISO_TIMESTAMP_PATTERN).test(recordedAt)) {
119
+ return { error: "origin.recorded_at must be an ISO-8601 timestamp" };
120
+ }
121
+ origin.recorded_at = recordedAt;
122
+ }
123
+ return { origin };
124
+ }
125
+ /**
126
+ * Read an origin from a compiled entity row: an object at the public
127
+ * boundary, or the JSON string Prolog stores. Malformed values read as absent.
128
+ */
129
+ // implements REQ-kibi-entity-origin
130
+ export function readEntityOrigin(value) {
131
+ let candidate = value;
132
+ if (typeof candidate === "string") {
133
+ try {
134
+ candidate = JSON.parse(candidate);
135
+ }
136
+ catch {
137
+ return null;
138
+ }
139
+ }
140
+ const normalized = normalizeEntityOrigin(candidate);
141
+ return "origin" in normalized ? normalized.origin : null;
142
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"full-kb-quality.d.ts","sourceRoot":"","sources":["../../../src/public/impact/full-kb-quality.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAatC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAWjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AASpD,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,eAAe,CAAC,CAAC;IAC7D,QAAQ,CAAC,sBAAsB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAmgBF,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,eAAe,CAAC,GAClD,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA8C7B;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,OAAO,GAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAM/C;AA2ID,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAkCvC"}
1
+ {"version":3,"file":"full-kb-quality.d.ts","sourceRoot":"","sources":["../../../src/public/impact/full-kb-quality.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAatC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAWjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AASpD,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,eAAe,CAAC,CAAC;IAC7D,QAAQ,CAAC,sBAAsB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAogBF,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,eAAe,CAAC,GAClD,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA8C7B;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,OAAO,GAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAM/C;AA2ID,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAkCvC"}
@@ -221,6 +221,7 @@ function toExtractedEntity(entity) {
221
221
  "argument_names",
222
222
  "argument_types",
223
223
  "argument_descriptions",
224
+ "key_arguments",
224
225
  "aliases",
225
226
  "examples",
226
227
  "predicate_args",
@@ -182,7 +182,7 @@ function createLogicalCoverageDiagnostics(options) {
182
182
  files: [result.entity.source],
183
183
  docs: ["docs/modeling-cheatsheet.md", "docs/error-reference.md"],
184
184
  message: `Current requirement ${result.entity.id} has no atomic logic_claims manifest, so prose and existing fact links cannot prove complete logical coverage.`,
185
- suggestion: "Call kb_semantic_advisor with the complete requirement prose and atomic clauses, ground each returned claim key through kb_model_requirement or kb_suggest_predicates, and persist all keys in logic_claims.",
185
+ suggestion: "Call kb_model with mode analyze on the complete requirement prose and atomic clauses, ground each returned claim key through kb_model (mode requirement or predicates), and persist all keys in logic_claims.",
186
186
  evidence: {
187
187
  strictRelationshipTypes: relationshipTypes,
188
188
  },
@@ -58,6 +58,24 @@ export declare const OPERATION_CATALOG: readonly [{
58
58
  readonly execute: (input: Readonly<Record<string, unknown>>, _context: import("./runtime-types.js").OperationContext) => Promise<import("./types.js").OperationResult<{
59
59
  readonly content: string;
60
60
  }>>;
61
+ }, {
62
+ readonly name: "kb_skills";
63
+ readonly cliName: "skill";
64
+ readonly description: "Read bundled Kibi agent skills (workflow guidance). action:list returns the catalog; action:load returns a skill's metadata, Markdown body, declared resources and content hash (start with id 'kibi-usage'); action:read returns one manifest-declared resource. Read-only; does not require Prolog.";
65
+ readonly businessInputSchema: {
66
+ readonly type: "object";
67
+ readonly required: readonly ["action"];
68
+ readonly properties: {
69
+ readonly action: {
70
+ readonly type: "string";
71
+ readonly enum: readonly ["list", "load", "read"];
72
+ readonly description: "list, load (needs id) or read (needs id and resource).";
73
+ };
74
+ };
75
+ };
76
+ readonly requiresProlog: false;
77
+ readonly effects: readonly ["local-read"];
78
+ readonly execute: (input: Readonly<Record<string, unknown>>, context: import("./runtime-types.js").OperationContext) => Promise<import("./types.js").OperationResult<Record<string, unknown>>>;
61
79
  }, {
62
80
  readonly name: "kb_query";
63
81
  readonly cliName: "query";
@@ -104,7 +122,7 @@ export declare const OPERATION_CATALOG: readonly [{
104
122
  }, {
105
123
  readonly name: "kb_search";
106
124
  readonly cliName: "search";
107
- readonly description: "Search KB entities for discovery using legacy lexical ranking or deterministic intent-v1 ranking. Intent mode accepts host-agent semantic facets and source locations, returns evidence and abstains below its confidence threshold. Use for exploratory lookup before exact follow-up with kb_query. No mutation side effects.";
125
+ readonly description: "Ask the KB a question or search it. Default intent-v1 ranking accepts questions, host-agent semantic facets and changed-code source locations, returns evidence, abstains below its confidence threshold and adds an answer layer: the current requirements that govern the topic, what must stay true (linked facts), why (ADRs) and what verifies it (scenarios, tests). Use before changing behavior, then kb_query for exact follow-up. No mutation side effects.";
108
126
  readonly businessInputSchema: {
109
127
  readonly type: "object";
110
128
  readonly required: readonly ["query"];
@@ -135,8 +153,13 @@ export declare const OPERATION_CATALOG: readonly [{
135
153
  readonly rankingMode: {
136
154
  readonly type: "string";
137
155
  readonly enum: readonly ["legacy", "intent-v1"];
138
- readonly default: "legacy";
139
- readonly description: "Optional deterministic ranking mode. Omit for backward-compatible lexical search; use intent-v1 for semantic facets, source-aware evidence, graph boosts, and abstention.";
156
+ readonly default: "intent-v1";
157
+ readonly description: "Optional deterministic ranking mode. Default intent-v1: question-aware ranking with semantic facets, source-aware evidence, graph boosts, superseded demotion and abstention. Use legacy for the older lexical ranking.";
158
+ };
159
+ readonly answer: {
160
+ readonly type: "boolean";
161
+ readonly default: true;
162
+ readonly description: "Intent-v1 only, first page only. When true (default) the result includes an answer layer: current governing requirements with their linked facts, scenarios, tests and ADRs, superseded requirements listed separately, and observation facts labelled as notes. Bounded in size; discovery, not proof.";
140
163
  };
141
164
  readonly semanticFacets: {
142
165
  readonly type: "object";
@@ -528,8 +551,8 @@ export declare const OPERATION_CATALOG: readonly [{
528
551
  };
529
552
  readonly operator: {
530
553
  readonly type: "string";
531
- readonly enum: readonly ["eq", "gte", "lte", "neq", "bool", "polarity"];
532
- readonly description: "Optional extracted semantic claim operator. Example: 'eq'.";
554
+ readonly enum: readonly ["eq", "gt", "gte", "lt", "lte", "neq", "bool", "polarity"];
555
+ readonly description: "Optional extracted semantic claim operator. Use gt/lt for strict bounds ('greater than zero' is gt 0, not gte 0). Example: 'eq'.";
533
556
  };
534
557
  readonly value: {
535
558
  readonly description: "Optional extracted semantic claim value. Accepts string, number, or boolean.";
@@ -643,10 +666,28 @@ export declare const OPERATION_CATALOG: readonly [{
643
666
  readonly requiresProlog: true;
644
667
  readonly effects: readonly ["kb-read"];
645
668
  readonly execute: typeof import("../../operations/modeling/suggest-predicates.js").executeSuggestPredicates;
669
+ }, {
670
+ readonly name: "kb_model";
671
+ readonly cliName: "model";
672
+ readonly description: "Turn requirement prose into checkable structure without writing the KB. mode:analyze returns the semantic advisor receipt: the clause ledger, what is grounded, what is ambiguous and suggested modeling (pass clauses for compound prose and optional typed kibi.logic.v1 interpretations). mode:requirement converts one claim (subjectKey, propertyKey, operator, value, or typed logic) into a strict-lane write set and applyPlan. mode:predicates ranks ontology predicate schemas and returns an applicable predicate-fact plan only for reviewed bindings, otherwise an ontology-gap observation. Apply returned plans with kb_upsert.";
673
+ readonly businessInputSchema: {
674
+ readonly type: "object";
675
+ readonly required: readonly ["mode", "text"];
676
+ readonly properties: {
677
+ readonly mode: {
678
+ readonly type: "string";
679
+ readonly enum: readonly ["analyze", "requirement", "predicates"];
680
+ readonly description: "analyze (advisor receipt), requirement (strict claim write set) or predicates (ontology predicate plan).";
681
+ };
682
+ };
683
+ };
684
+ readonly requiresProlog: true;
685
+ readonly effects: readonly ["kb-read"];
686
+ readonly execute: (input: Readonly<Record<string, unknown>>, context: import("./runtime-types.js").OperationContext) => Promise<import("./types.js").OperationResult<Record<string, unknown>>>;
646
687
  }, {
647
688
  readonly name: "kb_plan_bootstrap";
648
689
  readonly cliName: "plan-bootstrap";
649
- readonly description: "Generate a deterministic, snapshot-bound kibi.bootstrap-plan.v1 for repository onboarding. Read-only analysis returns evidence, bounded context questions, exact dependency-ordered actions, a canonical plan hash, and no mutation side effects.";
690
+ readonly description: "Generate a deterministic, snapshot-bound kibi.bootstrap-plan.v1 for repository onboarding. Read-only analysis of the repository plus any declared knowledge sources and cited intent claims returns evidence, bounded context questions, exact dependency-ordered actions, a canonical plan hash, and no mutation side effects.";
650
691
  readonly businessInputSchema: {
651
692
  readonly type: "object";
652
693
  readonly properties: {
@@ -713,6 +754,78 @@ export declare const OPERATION_CATALOG: readonly [{
713
754
  };
714
755
  readonly description: "Optional verification commands, documents, or checkpoints to reference in the output.";
715
756
  };
757
+ readonly knowledgeSources: {
758
+ readonly type: "array";
759
+ readonly maxItems: 50;
760
+ readonly description: "Knowledge sources outside the code that the human confirmed during the bootstrap interview (issue trackers, wikis, specs, decision logs). Kibi never contacts them; the agent reads them through its own connectors and cites them from intentClaims. Bound into the plan hash.";
761
+ readonly items: {
762
+ readonly type: "object";
763
+ readonly required: readonly ["id", "kind", "title", "locator", "authority"];
764
+ readonly additionalProperties: false;
765
+ readonly properties: {
766
+ readonly id: {
767
+ readonly type: "string";
768
+ readonly pattern: "^[a-z0-9][a-z0-9-]*$";
769
+ readonly description: "Stable kebab-case handle that intentClaims cite, for example jira-payments.";
770
+ };
771
+ readonly kind: {
772
+ readonly type: "string";
773
+ readonly enum: readonly ["issue_tracker", "wiki", "specification", "design", "decision_log", "support", "chat", "repository_docs", "other"];
774
+ };
775
+ readonly title: {
776
+ readonly type: "string";
777
+ readonly minLength: 1;
778
+ };
779
+ readonly locator: {
780
+ readonly type: "string";
781
+ readonly minLength: 1;
782
+ readonly description: "Where the source lives: a URL, project key, space name, or repo-relative path.";
783
+ };
784
+ readonly authority: {
785
+ readonly type: "string";
786
+ readonly enum: readonly ["authoritative", "supporting", "stale"];
787
+ readonly description: "The human's call: authoritative claims become higher-confidence candidates, supporting claims lower ones, and stale sources are cited but never produce candidates.";
788
+ };
789
+ readonly connector: {
790
+ readonly type: "string";
791
+ readonly description: "Optional name of the MCP server or tool the agent used to read the source.";
792
+ };
793
+ readonly notes: {
794
+ readonly type: "string";
795
+ };
796
+ };
797
+ };
798
+ };
799
+ readonly intentClaims: {
800
+ readonly type: "array";
801
+ readonly maxItems: 200;
802
+ readonly description: "Statements of product intent the agent harvested from knowledgeSources, each citing its source. Normative claims the strict modeler can ground become cited req candidates; the rest become explicit authoring follow-ups. Bound into the plan hash.";
803
+ readonly items: {
804
+ readonly type: "object";
805
+ readonly required: readonly ["statement", "sourceId", "reference"];
806
+ readonly additionalProperties: false;
807
+ readonly properties: {
808
+ readonly statement: {
809
+ readonly type: "string";
810
+ readonly minLength: 1;
811
+ readonly description: "One normative statement in the source's meaning, for example 'Refunds must not exceed the original charge.'";
812
+ };
813
+ readonly sourceId: {
814
+ readonly type: "string";
815
+ readonly description: "The id of a declared knowledge source.";
816
+ };
817
+ readonly reference: {
818
+ readonly type: "string";
819
+ readonly minLength: 1;
820
+ readonly description: "Exact citation inside the source: a ticket key, page URL, or section anchor.";
821
+ };
822
+ readonly excerpt: {
823
+ readonly type: "string";
824
+ readonly description: "Optional short quote supporting the claim.";
825
+ };
826
+ };
827
+ };
828
+ };
716
829
  };
717
830
  };
718
831
  };
@@ -723,7 +836,7 @@ export declare const OPERATION_CATALOG: readonly [{
723
836
  }, {
724
837
  readonly name: "kb_validate_upsert";
725
838
  readonly cliName: "validate-upsert";
726
- readonly description: "Validate a kb_upsert payload without mutating the KB. Use this read-only preflight before kb_upsert, especially for requirements, because it returns schema/modeling errors plus semantic advisor receipts that identify prose likely needing kb_model_requirement, kb_suggest_predicates, ambiguity review, or an ontology-gap observation.";
839
+ readonly description: "Validate a kb_upsert payload without mutating the KB. Use this read-only preflight before kb_upsert, especially for requirements, because it returns schema/modeling errors plus semantic advisor receipts that identify prose likely needing kb_model mode requirement or predicates, ambiguity review, or an ontology-gap observation.";
727
840
  readonly businessInputSchema: {
728
841
  readonly type: "object";
729
842
  readonly required: readonly ["type", "id", "properties"];
@@ -753,7 +866,7 @@ export declare const OPERATION_CATALOG: readonly [{
753
866
  }, {
754
867
  readonly name: "kb_upsert";
755
868
  readonly cliName: "upsert";
756
- readonly description: "Create or update one entity and optional relationships. Use for KB mutations after validating intent; prefer kb_validate_upsert first because it returns semantic advisor receipts for prose-heavy requirements. Use kb_model_requirement before hand-writing strict property facts from prose, and kb_suggest_predicates before hand-writing ontology predicate facts. Use the `relationships` array for batch creation of multiple links in a single call (e.g., linking a requirement to multiple tests or facts). Prefer modeling requirements as reusable fact links (`constrains`, `requires_property`, or `requires_predicate`) so consistency and contradiction checks remain queryable. Relationship endpoints must already exist in KB. For requirements, the write will be rejected if it contradicts existing current requirements that constrain the same subject with incompatible properties. To replace a conflicting requirement, include a `supersedes` relationship from the new requirement to the old one in the same request. Successful writes may return non-blocking semantic advisor warnings; inspect and repair those warnings before treating prose as contradiction-checkable. Do not use for read-only inspection. Side effects: writes KB, may refresh symbol coordinates.";
869
+ readonly description: "Create or update one entity and optional relationships. Use for KB mutations after validating intent; prefer a dryRun:true call first because it validates without writing and returns semantic advisor receipts for prose-heavy requirements. Use kb_model (mode requirement) before hand-writing strict property facts from prose, and kb_model (mode predicates) before hand-writing ontology predicate facts. Use the `relationships` array for batch creation of multiple links in a single call (e.g., linking a requirement to multiple tests or facts). Prefer modeling requirements as reusable fact links (`constrains`, `requires_property`, or `requires_predicate`) so consistency and contradiction checks remain queryable. Relationship endpoints must already exist in KB. For requirements, the write will be rejected if it contradicts existing current requirements that constrain the same subject with incompatible properties. To replace a conflicting requirement, include a `supersedes` relationship from the new requirement to the old one in the same request, then upsert the old requirement with status closed (kb_check blocks a superseded requirement that is not closed). Successful writes may return non-blocking semantic advisor warnings; inspect and repair those warnings before treating prose as contradiction-checkable. Do not use for read-only inspection. Side effects: writes KB, may refresh symbol coordinates; dryRun:true writes nothing.";
757
870
  readonly businessInputSchema: {
758
871
  readonly type: "object";
759
872
  readonly required: readonly ["type", "id", "properties"];
@@ -813,6 +926,36 @@ export declare const OPERATION_CATALOG: readonly [{
813
926
  readonly type: "string";
814
927
  readonly description: "Optional text anchor/reference. Example: 'requirements.md#L40'.";
815
928
  };
929
+ readonly origin: {
930
+ readonly description: "Optional provenance: who authored the entity (kind: human, agent, migration, import) and on what authority (ref, approved_by, recorded_at). Omit it to keep an existing entity's origin; a new entity written without one is recorded as {kind: agent, recorded_at: <write time>}. A supplied origin without recorded_at gets the write time.";
931
+ readonly type: "object";
932
+ readonly required: readonly ["kind"];
933
+ readonly properties: {
934
+ readonly kind: {
935
+ readonly type: "string";
936
+ readonly enum: readonly ["human", "agent", "migration", "import"];
937
+ readonly description: "Who authored the entity: human, agent, migration (backfilled by kibi migrate) or import.";
938
+ };
939
+ readonly ref: {
940
+ readonly type: "string";
941
+ readonly minLength: 1;
942
+ readonly pattern: "\\S";
943
+ readonly description: "Source reference for the authored content: URL, document path, ticket, commit or conversation id.";
944
+ };
945
+ readonly approved_by: {
946
+ readonly type: "string";
947
+ readonly minLength: 1;
948
+ readonly pattern: "\\S";
949
+ readonly description: "The person who reviewed and approved this entity's content. Distinct from the requirement-level approved_by of an exception.";
950
+ };
951
+ readonly recorded_at: {
952
+ readonly type: "string";
953
+ readonly pattern: "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?(?:Z|[+-]\\d{2}:?\\d{2})?)?$";
954
+ readonly description: "ISO-8601 time the provenance was recorded.";
955
+ };
956
+ };
957
+ readonly additionalProperties: false;
958
+ };
816
959
  readonly semantic_text: {
817
960
  readonly type: "string";
818
961
  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.";
@@ -825,7 +968,7 @@ export declare const OPERATION_CATALOG: readonly [{
825
968
  readonly type: "string";
826
969
  readonly pattern: "^CLAIM-[A-F0-9]{16}$";
827
970
  };
828
- 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.";
971
+ readonly description: "Requirement-only manifest of every atomic normative claim key returned by kb_model mode analyze (CLI: 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.";
829
972
  };
830
973
  readonly semantic_clauses: {
831
974
  readonly type: "array";
@@ -834,18 +977,43 @@ export declare const OPERATION_CATALOG: readonly [{
834
977
  readonly type: "string";
835
978
  readonly minLength: 1;
836
979
  };
837
- 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.";
980
+ readonly description: "Optional complete atomic decomposition used by kb_model mode analyze and proposition-complete ingestion. Preserve it when automatic sentence splitting needs a reviewed override.";
838
981
  };
839
982
  readonly semantic_inventory_version: {
840
983
  readonly type: "string";
841
984
  readonly const: "kibi.semantic-inventory.v1";
842
- readonly description: "Requirement-only proposition ledger contract version returned by kb_semantic_advisor.";
985
+ readonly description: "Requirement-only proposition ledger contract version returned by kb_model mode analyze (CLI: semantic-advisor).";
843
986
  };
844
987
  readonly semantic_source_field: {
845
988
  readonly type: "string";
846
989
  readonly enum: readonly ["semantic_text", "text_ref", "title"];
847
990
  readonly description: "Requirement field whose exact UTF-8 bytes anchor semantic_inventory spans.";
848
991
  };
992
+ readonly approved_by: {
993
+ readonly type: "string";
994
+ readonly minLength: 1;
995
+ readonly description: "Requirement-only. The human who approved this exception requirement. An exception that exempts a requirement and is specified_by a success scenario makes that scenario feasible only when approved_by is set.";
996
+ };
997
+ readonly approval_ref: {
998
+ readonly type: "string";
999
+ readonly minLength: 1;
1000
+ readonly description: "Requirement-only. Optional reference to the exception's approval decision record.";
1001
+ };
1002
+ readonly rationale: {
1003
+ readonly type: "string";
1004
+ readonly minLength: 1;
1005
+ readonly description: "Requirement-only. Why the requirement exists, in one or two sentences from whoever stated the intent; not part of the checked meaning.";
1006
+ };
1007
+ readonly exempts_claims: {
1008
+ readonly type: "array";
1009
+ readonly minItems: 1;
1010
+ readonly uniqueItems: true;
1011
+ readonly items: {
1012
+ readonly type: "string";
1013
+ readonly pattern: "^CLAIM-[A-F0-9]{16}$";
1014
+ };
1015
+ readonly description: "Requirement-only. Claim keys of the exempted requirement whose constraints this exception waives; omit to waive the whole requirement.";
1016
+ };
849
1017
  readonly semantic_source_hash: {
850
1018
  readonly type: "string";
851
1019
  readonly pattern: "^[a-f0-9]{64}$";
@@ -1175,7 +1343,7 @@ export declare const OPERATION_CATALOG: readonly [{
1175
1343
  readonly fact_kind: {
1176
1344
  readonly type: "string";
1177
1345
  readonly enum: readonly ["subject", "property_value", "observation", "meta", "predicate_schema", "predicate", "rule_schema", "rule"];
1178
- readonly description: "Optional fact lane kind for fact entities. Strict lane uses 'subject' and 'property_value'; context lane uses 'observation' or 'meta'; ontology lane uses 'predicate_schema' or 'predicate'. Use kb_model_requirement or kb_suggest_predicates when starting from prose.";
1346
+ readonly description: "Optional fact lane kind for fact entities. Strict lane uses 'subject' and 'property_value'; context lane uses 'observation' or 'meta'; ontology lane uses 'predicate_schema' or 'predicate'. Use kb_model (mode requirement or predicates) when starting from prose.";
1179
1347
  };
1180
1348
  readonly subject_key: {
1181
1349
  readonly type: "string";
@@ -1243,14 +1411,14 @@ export declare const OPERATION_CATALOG: readonly [{
1243
1411
  };
1244
1412
  readonly predicate_name: {
1245
1413
  readonly type: "string";
1246
- readonly description: "Optional predicate name for ontology predicate facts. Prefer kb_suggest_predicates before hand-writing predicate_name.";
1414
+ readonly description: "Optional predicate name for ontology predicate facts. Prefer kb_model mode predicates before hand-writing predicate_name.";
1247
1415
  };
1248
1416
  readonly predicate_args: {
1249
1417
  readonly type: "array";
1250
1418
  readonly items: {
1251
1419
  readonly type: "string";
1252
1420
  };
1253
- readonly description: "Optional ordered predicate arguments for ontology predicate facts. Prefer kb_suggest_predicates before hand-writing predicate_args.";
1421
+ readonly description: "Optional ordered predicate arguments for ontology predicate facts. Prefer kb_model mode predicates before hand-writing predicate_args.";
1254
1422
  };
1255
1423
  readonly predicate_namespace: {
1256
1424
  readonly type: "string";
@@ -1282,6 +1450,16 @@ export declare const OPERATION_CATALOG: readonly [{
1282
1450
  };
1283
1451
  readonly description: "Optional ordered argument explanations.";
1284
1452
  };
1453
+ readonly key_arguments: {
1454
+ readonly type: "array";
1455
+ readonly items: {
1456
+ readonly type: "string";
1457
+ readonly minLength: 1;
1458
+ };
1459
+ readonly minItems: 1;
1460
+ readonly uniqueItems: true;
1461
+ readonly description: "predicate_schema only: argument names that determine the remaining arguments (a functional dependency), e.g. [\"sensor\"] for reading(sensor, value). Rule contradiction analysis treats two atoms with identical keys as the same fact; without it the predicate is multivalued and opposing rules stay unresolved instead of disjoint.";
1462
+ };
1285
1463
  readonly argument_constants: {
1286
1464
  readonly type: "object";
1287
1465
  readonly additionalProperties: {
@@ -1321,7 +1499,7 @@ export declare const OPERATION_CATALOG: readonly [{
1321
1499
  };
1322
1500
  readonly semantic_inventory: {
1323
1501
  readonly type: "array";
1324
- readonly description: "Requirement proposition ledger returned by kb_semantic_advisor; preserve entries while modeling each assertive span.";
1502
+ readonly description: "Requirement proposition ledger returned by kb_model mode analyze (CLI: semantic-advisor); preserve entries while modeling each assertive span.";
1325
1503
  readonly items: {
1326
1504
  readonly type: "object";
1327
1505
  };
@@ -1374,7 +1552,7 @@ export declare const OPERATION_CATALOG: readonly [{
1374
1552
  readonly properties: {
1375
1553
  readonly type: {
1376
1554
  readonly type: "string";
1377
- readonly enum: readonly ["depends_on", "specified_by", "verified_by", "validates", "implements", "covered_by", "executable_for", "constrained_by", "constrains", "requires_property", "requires_predicate", "requires_rule", "guards", "publishes", "consumes", "supersedes", "restates", "relates_to"];
1555
+ readonly enum: readonly ["depends_on", "specified_by", "verified_by", "validates", "implements", "covered_by", "executable_for", "constrained_by", "constrains", "requires_property", "requires_predicate", "requires_rule", "guards", "publishes", "consumes", "supersedes", "restates", "assumes", "exempts", "relates_to"];
1378
1556
  readonly description: "Relationship type enum. Use only supported values. Direction semantics follow KB model (e.g., implements symbol->req, verified_by req/scenario->test, executable_for symbol->test).";
1379
1557
  };
1380
1558
  readonly from: {
@@ -1388,6 +1566,11 @@ export declare const OPERATION_CATALOG: readonly [{
1388
1566
  };
1389
1567
  };
1390
1568
  };
1569
+ readonly dryRun: {
1570
+ readonly type: "boolean";
1571
+ readonly default: false;
1572
+ readonly description: "Validate the payload and return schema/modeling errors, a normalized preview and the semantic advisor receipt without writing the KB or workspace. Use it as the preflight before the real write.";
1573
+ };
1391
1574
  readonly document: {
1392
1575
  readonly type: "object";
1393
1576
  readonly additionalProperties: false;
@@ -1480,7 +1663,7 @@ export declare const OPERATION_CATALOG: readonly [{
1480
1663
  readonly type: "string";
1481
1664
  readonly enum: readonly string[];
1482
1665
  };
1483
- readonly description: "Optional rule subset. Allowed: must-priority-coverage, symbol-coverage, symbol-traceability, no-dangling-refs, source-relationship-parity, no-cycles, required-fields, deprecated-adr-no-successor, 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, proof-contract-symbols, entity-id-style, domain-redundancy, domain-implication, subject-key-identity, subject-key-shape, ontology-quality, predicate-schema-conformance. 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.";
1666
+ 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, 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. 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.";
1484
1667
  };
1485
1668
  readonly sourceFiles: {
1486
1669
  readonly type: "array";
@@ -1513,7 +1696,7 @@ export declare const OPERATION_CATALOG: readonly [{
1513
1696
  readonly async: {
1514
1697
  readonly type: "boolean";
1515
1698
  readonly default: false;
1516
- readonly description: "When true, start the check as a background job and return a kibi.job.v1 receipt immediately instead of holding the request until the tool timeout. Poll kb_job_status with the returned jobId. Use for full checks on large KBs that exceed the configured tool timeout.";
1699
+ readonly description: "When true, start the check as a background job and return a kibi.job.v1 receipt immediately instead of holding the request until the tool timeout. Poll kb_job_status with the returned jobId. Use for full checks on large KBs that exceed the configured tool timeout. The MCP server registers kb_job_status only when KIBI_MCP_OPTIONAL_TOOLS includes it; otherwise async runs the check synchronously.";
1517
1700
  };
1518
1701
  };
1519
1702
  };
@@ -1811,7 +1994,7 @@ export declare const OPERATION_CATALOG: readonly [{
1811
1994
  }, {
1812
1995
  readonly name: "kb_apply_plan";
1813
1996
  readonly cliName: "apply-plan";
1814
- readonly description: "Apply an explicitly approved kibi.bootstrap-plan.v1, kibi.compile-plan.v1, kibi.migration-plan.v2, or entity-deletion plan after revalidating its canonical hash and live snapshots. Bootstrap actions are dependency-ordered, sequential, source-first, and recoverable from a typed journal.";
1997
+ readonly description: "Apply an explicitly approved kibi.bootstrap-plan.v1, kibi.compile-plan.v1, kibi.migration-plan.v2, or entity-deletion plan after revalidating its canonical hash and live snapshots. Compile plans apply all-or-nothing: a durable journal records every source write and store mutation before the first write, all steps commit in one store transaction, and an interrupted application is completed or rolled back by the next mutating call. Bootstrap actions are dependency-ordered, sequential, source-first, and recoverable from a typed journal.";
1815
1998
  readonly businessInputSchema: {
1816
1999
  readonly type: "object";
1817
2000
  readonly oneOf: readonly [{
@@ -1851,7 +2034,7 @@ export declare const OPERATION_CATALOG: readonly [{
1851
2034
  readonly recoveryJournalId: {
1852
2035
  readonly type: "string";
1853
2036
  readonly pattern: "^[A-Za-z0-9._-]+$";
1854
- readonly description: "Typed recovery journal identifier returned by a committed_with_repairs result. Recovery replays only the immutable journal and never the original plan request.";
2037
+ readonly description: "Typed recovery journal identifier returned by a committed_with_repairs result or a PLAN_APPLY_RECOVERY_REQUIRED error. Recovery replays only the immutable journal and never the original plan request; a compile-plan journal (plan-apply-*) is completed or rolled back deterministically and reports which.";
1855
2038
  };
1856
2039
  };
1857
2040
  };