kibi-cli 0.14.0 → 0.17.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 (456) hide show
  1. package/bin/kibi +3 -1
  2. package/dist/cli-command.d.ts +5 -0
  3. package/dist/cli-command.d.ts.map +1 -0
  4. package/dist/cli-command.js +9 -0
  5. package/dist/cli-errors.d.ts +13 -0
  6. package/dist/cli-errors.d.ts.map +1 -0
  7. package/dist/cli-errors.js +26 -0
  8. package/dist/cli-input.d.ts +6 -0
  9. package/dist/cli-input.d.ts.map +1 -0
  10. package/dist/cli-input.js +54 -0
  11. package/dist/cli-json-command.d.ts +14 -0
  12. package/dist/cli-json-command.d.ts.map +1 -0
  13. package/dist/cli-json-command.js +96 -0
  14. package/dist/cli-protocol.d.ts +12 -0
  15. package/dist/cli-protocol.d.ts.map +1 -0
  16. package/dist/cli-protocol.js +37 -0
  17. package/dist/cli-register-foundation.d.ts +3 -0
  18. package/dist/cli-register-foundation.d.ts.map +1 -0
  19. package/dist/cli-register-foundation.js +90 -0
  20. package/dist/cli-register-maintenance.d.ts +3 -0
  21. package/dist/cli-register-maintenance.d.ts.map +1 -0
  22. package/dist/cli-register-maintenance.js +36 -0
  23. package/dist/cli-register-reporting.d.ts +3 -0
  24. package/dist/cli-register-reporting.d.ts.map +1 -0
  25. package/dist/cli-register-reporting.js +101 -0
  26. package/dist/cli-register-skills.d.ts +3 -0
  27. package/dist/cli-register-skills.d.ts.map +1 -0
  28. package/dist/cli-register-skills.js +71 -0
  29. package/dist/cli-validate.d.ts +18 -0
  30. package/dist/cli-validate.d.ts.map +1 -0
  31. package/dist/cli-validate.js +45 -0
  32. package/dist/cli.d.ts +4 -4
  33. package/dist/cli.d.ts.map +1 -1
  34. package/dist/cli.js +48 -211
  35. package/dist/commands/aggregated-checks.d.ts +1 -1
  36. package/dist/commands/aggregated-checks.d.ts.map +1 -1
  37. package/dist/commands/aggregated-checks.js +28 -34
  38. package/dist/commands/check.d.ts +1 -1
  39. package/dist/commands/check.d.ts.map +1 -1
  40. package/dist/commands/check.js +53 -95
  41. package/dist/commands/coverage.d.ts.map +1 -1
  42. package/dist/commands/coverage.js +12 -17
  43. package/dist/commands/discovery-shared.d.ts +2 -1
  44. package/dist/commands/discovery-shared.d.ts.map +1 -1
  45. package/dist/commands/discovery-shared.js +6 -18
  46. package/dist/commands/gaps.d.ts.map +1 -1
  47. package/dist/commands/gaps.js +15 -19
  48. package/dist/commands/graph.d.ts.map +1 -1
  49. package/dist/commands/graph.js +15 -21
  50. package/dist/commands/query.d.ts +7 -7
  51. package/dist/commands/query.d.ts.map +1 -1
  52. package/dist/commands/query.js +98 -204
  53. package/dist/commands/search.d.ts +4 -4
  54. package/dist/commands/search.d.ts.map +1 -1
  55. package/dist/commands/search.js +14 -27
  56. package/dist/commands/status.d.ts +1 -1
  57. package/dist/commands/status.d.ts.map +1 -1
  58. package/dist/commands/status.js +6 -7
  59. package/dist/commands/sync/manifest.d.ts +13 -2
  60. package/dist/commands/sync/manifest.d.ts.map +1 -1
  61. package/dist/commands/sync/manifest.js +31 -22
  62. package/dist/commands/sync/persistence.d.ts.map +1 -1
  63. package/dist/commands/sync/persistence.js +39 -1
  64. package/dist/extractors/markdown.d.ts +22 -2
  65. package/dist/extractors/markdown.d.ts.map +1 -1
  66. package/dist/extractors/markdown.js +50 -1
  67. package/dist/extractors/symbols-ts.d.ts.map +1 -1
  68. package/dist/extractors/symbols-ts.js +11 -1
  69. package/dist/logic/ir.d.ts +112 -0
  70. package/dist/logic/ir.d.ts.map +1 -0
  71. package/dist/logic/ir.js +729 -0
  72. package/dist/operations/autopilot/activation.d.ts +4 -0
  73. package/dist/operations/autopilot/activation.d.ts.map +1 -0
  74. package/dist/operations/autopilot/activation.js +130 -0
  75. package/dist/operations/autopilot/candidate-helpers.d.ts +13 -0
  76. package/dist/operations/autopilot/candidate-helpers.d.ts.map +1 -0
  77. package/dist/operations/autopilot/candidate-helpers.js +55 -0
  78. package/dist/operations/autopilot/candidates.d.ts +4 -0
  79. package/dist/operations/autopilot/candidates.d.ts.map +1 -0
  80. package/dist/operations/autopilot/candidates.js +114 -0
  81. package/dist/operations/autopilot/discovery-evidence.d.ts +10 -0
  82. package/dist/operations/autopilot/discovery-evidence.d.ts.map +1 -0
  83. package/dist/operations/autopilot/discovery-evidence.js +158 -0
  84. package/dist/operations/autopilot/discovery.d.ts +4 -0
  85. package/dist/operations/autopilot/discovery.d.ts.map +1 -0
  86. package/dist/operations/autopilot/discovery.js +100 -0
  87. package/dist/operations/autopilot/generate.d.ts +8 -0
  88. package/dist/operations/autopilot/generate.d.ts.map +1 -0
  89. package/dist/operations/autopilot/generate.js +112 -0
  90. package/dist/operations/autopilot/guidance-actions.d.ts +3 -0
  91. package/dist/operations/autopilot/guidance-actions.d.ts.map +1 -0
  92. package/dist/operations/autopilot/guidance-actions.js +79 -0
  93. package/dist/operations/autopilot/guidance.d.ts +14 -0
  94. package/dist/operations/autopilot/guidance.d.ts.map +1 -0
  95. package/dist/operations/autopilot/guidance.js +124 -0
  96. package/dist/operations/autopilot/markdown-candidates.d.ts +7 -0
  97. package/dist/operations/autopilot/markdown-candidates.d.ts.map +1 -0
  98. package/dist/operations/autopilot/markdown-candidates.js +134 -0
  99. package/dist/operations/autopilot/presentation.d.ts +13 -0
  100. package/dist/operations/autopilot/presentation.d.ts.map +1 -0
  101. package/dist/operations/autopilot/presentation.js +91 -0
  102. package/dist/operations/autopilot/requirement-claims.d.ts +3 -0
  103. package/dist/operations/autopilot/requirement-claims.d.ts.map +1 -0
  104. package/dist/operations/autopilot/requirement-claims.js +48 -0
  105. package/dist/operations/autopilot/types.d.ts +117 -0
  106. package/dist/operations/autopilot/types.d.ts.map +1 -0
  107. package/dist/operations/autopilot/types.js +8 -0
  108. package/dist/operations/modeling/logic-modeling.d.ts +22 -0
  109. package/dist/operations/modeling/logic-modeling.d.ts.map +1 -0
  110. package/dist/operations/modeling/logic-modeling.js +111 -0
  111. package/dist/operations/modeling/model-requirement.d.ts +10 -0
  112. package/dist/operations/modeling/model-requirement.d.ts.map +1 -0
  113. package/dist/operations/modeling/model-requirement.js +164 -0
  114. package/dist/operations/modeling/predicate-applyplan.d.ts +6 -0
  115. package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -0
  116. package/dist/operations/modeling/predicate-applyplan.js +117 -0
  117. package/dist/operations/modeling/predicate-catalog-1.d.ts +3 -0
  118. package/dist/operations/modeling/predicate-catalog-1.d.ts.map +1 -0
  119. package/dist/operations/modeling/predicate-catalog-1.js +200 -0
  120. package/dist/operations/modeling/predicate-catalog-2.d.ts +3 -0
  121. package/dist/operations/modeling/predicate-catalog-2.d.ts.map +1 -0
  122. package/dist/operations/modeling/predicate-catalog-2.js +197 -0
  123. package/dist/operations/modeling/predicate-catalog-3.d.ts +3 -0
  124. package/dist/operations/modeling/predicate-catalog-3.d.ts.map +1 -0
  125. package/dist/operations/modeling/predicate-catalog-3.js +193 -0
  126. package/dist/operations/modeling/predicate-catalog-4.d.ts +3 -0
  127. package/dist/operations/modeling/predicate-catalog-4.d.ts.map +1 -0
  128. package/dist/operations/modeling/predicate-catalog-4.js +149 -0
  129. package/dist/operations/modeling/predicate-catalog.d.ts +5 -0
  130. package/dist/operations/modeling/predicate-catalog.d.ts.map +1 -0
  131. package/dist/operations/modeling/predicate-catalog.js +29 -0
  132. package/dist/operations/modeling/predicate-inference-1.d.ts +16 -0
  133. package/dist/operations/modeling/predicate-inference-1.d.ts.map +1 -0
  134. package/dist/operations/modeling/predicate-inference-1.js +161 -0
  135. package/dist/operations/modeling/predicate-inference-2.d.ts +19 -0
  136. package/dist/operations/modeling/predicate-inference-2.d.ts.map +1 -0
  137. package/dist/operations/modeling/predicate-inference-2.js +169 -0
  138. package/dist/operations/modeling/predicate-inference-3.d.ts +15 -0
  139. package/dist/operations/modeling/predicate-inference-3.d.ts.map +1 -0
  140. package/dist/operations/modeling/predicate-inference-3.js +163 -0
  141. package/dist/operations/modeling/predicate-inference.d.ts +5 -0
  142. package/dist/operations/modeling/predicate-inference.d.ts.map +1 -0
  143. package/dist/operations/modeling/predicate-inference.js +163 -0
  144. package/dist/operations/modeling/predicate-loader.d.ts +10 -0
  145. package/dist/operations/modeling/predicate-loader.d.ts.map +1 -0
  146. package/dist/operations/modeling/predicate-loader.js +94 -0
  147. package/dist/operations/modeling/predicate-ranker.d.ts +3 -0
  148. package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -0
  149. package/dist/operations/modeling/predicate-ranker.js +62 -0
  150. package/dist/operations/modeling/predicate-score-1.d.ts +3 -0
  151. package/dist/operations/modeling/predicate-score-1.d.ts.map +1 -0
  152. package/dist/operations/modeling/predicate-score-1.js +121 -0
  153. package/dist/operations/modeling/predicate-score-2.d.ts +3 -0
  154. package/dist/operations/modeling/predicate-score-2.d.ts.map +1 -0
  155. package/dist/operations/modeling/predicate-score-2.js +122 -0
  156. package/dist/operations/modeling/predicate-score-3.d.ts +3 -0
  157. package/dist/operations/modeling/predicate-score-3.d.ts.map +1 -0
  158. package/dist/operations/modeling/predicate-score-3.js +54 -0
  159. package/dist/operations/modeling/predicate-types.d.ts +64 -0
  160. package/dist/operations/modeling/predicate-types.d.ts.map +1 -0
  161. package/dist/operations/modeling/predicate-types.js +1 -0
  162. package/dist/operations/modeling/predicate-usage-hints-1.d.ts +3 -0
  163. package/dist/operations/modeling/predicate-usage-hints-1.d.ts.map +1 -0
  164. package/dist/operations/modeling/predicate-usage-hints-1.js +211 -0
  165. package/dist/operations/modeling/predicate-usage-hints-2.d.ts +3 -0
  166. package/dist/operations/modeling/predicate-usage-hints-2.d.ts.map +1 -0
  167. package/dist/operations/modeling/predicate-usage-hints-2.js +209 -0
  168. package/dist/operations/modeling/predicate-usage-hints-3.d.ts +3 -0
  169. package/dist/operations/modeling/predicate-usage-hints-3.d.ts.map +1 -0
  170. package/dist/operations/modeling/predicate-usage-hints-3.js +45 -0
  171. package/dist/operations/modeling/predicate-utils.d.ts +23 -0
  172. package/dist/operations/modeling/predicate-utils.d.ts.map +1 -0
  173. package/dist/operations/modeling/predicate-utils.js +187 -0
  174. package/dist/operations/modeling/requirement-applyplan.d.ts +4 -0
  175. package/dist/operations/modeling/requirement-applyplan.d.ts.map +1 -0
  176. package/dist/operations/modeling/requirement-applyplan.js +44 -0
  177. package/dist/operations/modeling/requirement-heuristics.d.ts +4 -0
  178. package/dist/operations/modeling/requirement-heuristics.d.ts.map +1 -0
  179. package/dist/operations/modeling/requirement-heuristics.js +114 -0
  180. package/dist/operations/modeling/requirement-modeler.d.ts +8 -0
  181. package/dist/operations/modeling/requirement-modeler.d.ts.map +1 -0
  182. package/dist/operations/modeling/requirement-modeler.js +70 -0
  183. package/dist/operations/modeling/requirement-types.d.ts +61 -0
  184. package/dist/operations/modeling/requirement-types.d.ts.map +1 -0
  185. package/dist/operations/modeling/requirement-types.js +1 -0
  186. package/dist/operations/modeling/requirement-utils.d.ts +10 -0
  187. package/dist/operations/modeling/requirement-utils.d.ts.map +1 -0
  188. package/dist/operations/modeling/requirement-utils.js +65 -0
  189. package/dist/operations/modeling/suggest-predicates.d.ts +6 -0
  190. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -0
  191. package/dist/operations/modeling/suggest-predicates.js +64 -0
  192. package/dist/operations/mutation/audit.d.ts +6 -0
  193. package/dist/operations/mutation/audit.d.ts.map +1 -0
  194. package/dist/operations/mutation/audit.js +22 -0
  195. package/dist/operations/mutation/contradictions.d.ts +10 -0
  196. package/dist/operations/mutation/contradictions.d.ts.map +1 -0
  197. package/dist/operations/mutation/contradictions.js +40 -0
  198. package/dist/operations/mutation/delete.d.ts +5 -0
  199. package/dist/operations/mutation/delete.d.ts.map +1 -0
  200. package/dist/operations/mutation/delete.js +67 -0
  201. package/dist/operations/mutation/relationships.d.ts +17 -0
  202. package/dist/operations/mutation/relationships.d.ts.map +1 -0
  203. package/dist/operations/mutation/relationships.js +142 -0
  204. package/dist/operations/mutation/save.d.ts +4 -0
  205. package/dist/operations/mutation/save.d.ts.map +1 -0
  206. package/dist/operations/mutation/save.js +14 -0
  207. package/dist/operations/mutation/serialization.d.ts +5 -0
  208. package/dist/operations/mutation/serialization.d.ts.map +1 -0
  209. package/dist/operations/mutation/serialization.js +88 -0
  210. package/dist/operations/mutation/strict-fact.d.ts +4 -0
  211. package/dist/operations/mutation/strict-fact.d.ts.map +1 -0
  212. package/dist/operations/mutation/strict-fact.js +132 -0
  213. package/dist/operations/mutation/symbol-granularity.d.ts +4 -0
  214. package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -0
  215. package/dist/operations/mutation/symbol-granularity.js +109 -0
  216. package/dist/operations/mutation/symbol-refresh.d.ts +10 -0
  217. package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -0
  218. package/dist/operations/mutation/symbol-refresh.js +105 -0
  219. package/dist/operations/mutation/types.d.ts +43 -0
  220. package/dist/operations/mutation/types.d.ts.map +1 -0
  221. package/dist/operations/mutation/types.js +1 -0
  222. package/dist/operations/mutation/upsert.d.ts +5 -0
  223. package/dist/operations/mutation/upsert.d.ts.map +1 -0
  224. package/dist/operations/mutation/upsert.js +103 -0
  225. package/dist/operations/mutation/validate-upsert.d.ts +5 -0
  226. package/dist/operations/mutation/validate-upsert.d.ts.map +1 -0
  227. package/dist/operations/mutation/validate-upsert.js +50 -0
  228. package/dist/operations/mutation/validation.d.ts +5 -0
  229. package/dist/operations/mutation/validation.d.ts.map +1 -0
  230. package/dist/operations/mutation/validation.js +107 -0
  231. package/dist/operations/mutation/warnings.d.ts +4 -0
  232. package/dist/operations/mutation/warnings.d.ts.map +1 -0
  233. package/dist/operations/mutation/warnings.js +17 -0
  234. package/dist/operations/semantic-advisor/analysis-receipt.d.ts +5 -0
  235. package/dist/operations/semantic-advisor/analysis-receipt.d.ts.map +1 -0
  236. package/dist/operations/semantic-advisor/analysis-receipt.js +120 -0
  237. package/dist/operations/semantic-advisor/analyze-prose.d.ts +5 -0
  238. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -0
  239. package/dist/operations/semantic-advisor/analyze-prose.js +693 -0
  240. package/dist/operations/semantic-advisor/clauses.d.ts +10 -0
  241. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -0
  242. package/dist/operations/semantic-advisor/clauses.js +43 -0
  243. package/dist/operations/semantic-advisor/observation-plan.d.ts +3 -0
  244. package/dist/operations/semantic-advisor/observation-plan.d.ts.map +1 -0
  245. package/dist/operations/semantic-advisor/observation-plan.js +31 -0
  246. package/dist/operations/semantic-advisor/predicate-rule.d.ts +14 -0
  247. package/dist/operations/semantic-advisor/predicate-rule.d.ts.map +1 -0
  248. package/dist/operations/semantic-advisor/predicate-rule.js +22 -0
  249. package/dist/operations/semantic-advisor/predicate-rules-core.d.ts +79 -0
  250. package/dist/operations/semantic-advisor/predicate-rules-core.d.ts.map +1 -0
  251. package/dist/operations/semantic-advisor/predicate-rules-core.js +140 -0
  252. package/dist/operations/semantic-advisor/predicate-rules-policy.d.ts +83 -0
  253. package/dist/operations/semantic-advisor/predicate-rules-policy.d.ts.map +1 -0
  254. package/dist/operations/semantic-advisor/predicate-rules-policy.js +150 -0
  255. package/dist/operations/semantic-advisor/predicate-rules-product-tail.d.ts +48 -0
  256. package/dist/operations/semantic-advisor/predicate-rules-product-tail.d.ts.map +1 -0
  257. package/dist/operations/semantic-advisor/predicate-rules-product-tail.js +102 -0
  258. package/dist/operations/semantic-advisor/predicate-rules-product.d.ts +71 -0
  259. package/dist/operations/semantic-advisor/predicate-rules-product.d.ts.map +1 -0
  260. package/dist/operations/semantic-advisor/predicate-rules-product.js +133 -0
  261. package/dist/operations/semantic-advisor/prose-coverage-evaluator.d.ts +29 -0
  262. package/dist/operations/semantic-advisor/prose-coverage-evaluator.d.ts.map +1 -0
  263. package/dist/operations/semantic-advisor/prose-coverage-evaluator.js +54 -0
  264. package/dist/operations/semantic-advisor/shared.d.ts +19 -0
  265. package/dist/operations/semantic-advisor/shared.d.ts.map +1 -0
  266. package/dist/operations/semantic-advisor/shared.js +209 -0
  267. package/dist/operations/semantic-advisor/strict-count-rules.d.ts +4 -0
  268. package/dist/operations/semantic-advisor/strict-count-rules.d.ts.map +1 -0
  269. package/dist/operations/semantic-advisor/strict-count-rules.js +62 -0
  270. package/dist/operations/semantic-advisor/strict-rules.d.ts +4 -0
  271. package/dist/operations/semantic-advisor/strict-rules.d.ts.map +1 -0
  272. package/dist/operations/semantic-advisor/strict-rules.js +106 -0
  273. package/dist/operations/semantic-advisor/types.d.ts +195 -0
  274. package/dist/operations/semantic-advisor/types.d.ts.map +1 -0
  275. package/dist/operations/semantic-advisor/types.js +1 -0
  276. package/dist/prolog/codec.d.ts.map +1 -1
  277. package/dist/prolog/codec.js +20 -3
  278. package/dist/prolog.d.ts +5 -0
  279. package/dist/prolog.d.ts.map +1 -1
  280. package/dist/prolog.js +89 -32
  281. package/dist/public/impact/diagnostics.d.ts.map +1 -1
  282. package/dist/public/impact/diagnostics.js +8 -4
  283. package/dist/public/impact/full-kb-quality.d.ts +1 -1
  284. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  285. package/dist/public/impact/full-kb-quality.js +34 -1
  286. package/dist/public/impact/requirement-quality.d.ts.map +1 -1
  287. package/dist/public/impact/requirement-quality.js +6 -23
  288. package/dist/public/operations/catalog.d.ts +986 -0
  289. package/dist/public/operations/catalog.d.ts.map +1 -0
  290. package/dist/public/operations/catalog.js +42 -0
  291. package/dist/public/operations/check-executor.d.ts +21 -0
  292. package/dist/public/operations/check-executor.d.ts.map +1 -0
  293. package/dist/public/operations/check-executor.js +111 -0
  294. package/dist/public/operations/check-format-shared.d.ts +36 -0
  295. package/dist/public/operations/check-format-shared.d.ts.map +1 -0
  296. package/dist/public/operations/check-format-shared.js +107 -0
  297. package/dist/public/operations/check-helpers.d.ts +10 -0
  298. package/dist/public/operations/check-helpers.d.ts.map +1 -0
  299. package/dist/public/operations/check-helpers.js +107 -0
  300. package/dist/public/operations/discovery-entities.d.ts +14 -0
  301. package/dist/public/operations/discovery-entities.d.ts.map +1 -0
  302. package/dist/public/operations/discovery-entities.js +91 -0
  303. package/dist/public/operations/discovery-executors.d.ts +39 -0
  304. package/dist/public/operations/discovery-executors.d.ts.map +1 -0
  305. package/dist/public/operations/discovery-executors.js +101 -0
  306. package/dist/public/operations/index.d.ts +21 -0
  307. package/dist/public/operations/index.d.ts.map +1 -0
  308. package/dist/public/operations/index.js +19 -0
  309. package/dist/public/operations/node-ports.d.ts +15 -0
  310. package/dist/public/operations/node-ports.d.ts.map +1 -0
  311. package/dist/public/operations/node-ports.js +57 -0
  312. package/dist/public/operations/prolog-json.d.ts +5 -0
  313. package/dist/public/operations/prolog-json.d.ts.map +1 -0
  314. package/dist/public/operations/prolog-json.js +44 -0
  315. package/dist/public/operations/runtime-types.d.ts +69 -0
  316. package/dist/public/operations/runtime-types.d.ts.map +1 -0
  317. package/dist/public/operations/runtime-types.js +17 -0
  318. package/dist/public/operations/specs/autopilot.d.ts +82 -0
  319. package/dist/public/operations/specs/autopilot.d.ts.map +1 -0
  320. package/dist/public/operations/specs/autopilot.js +72 -0
  321. package/dist/public/operations/specs/check.d.ts +51 -0
  322. package/dist/public/operations/specs/check.d.ts.map +1 -0
  323. package/dist/public/operations/specs/check.js +65 -0
  324. package/dist/public/operations/specs/discovery.d.ts +94 -0
  325. package/dist/public/operations/specs/discovery.d.ts.map +1 -0
  326. package/dist/public/operations/specs/discovery.js +98 -0
  327. package/dist/public/operations/specs/modeling.d.ts +142 -0
  328. package/dist/public/operations/specs/modeling.d.ts.map +1 -0
  329. package/dist/public/operations/specs/modeling.js +133 -0
  330. package/dist/public/operations/specs/mutation-schemas.d.ts +268 -0
  331. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -0
  332. package/dist/public/operations/specs/mutation-schemas.js +294 -0
  333. package/dist/public/operations/specs/mutation.d.ts +56 -0
  334. package/dist/public/operations/specs/mutation.d.ts.map +1 -0
  335. package/dist/public/operations/specs/mutation.js +44 -0
  336. package/dist/public/operations/specs/reporting.d.ts +185 -0
  337. package/dist/public/operations/specs/reporting.d.ts.map +1 -0
  338. package/dist/public/operations/specs/reporting.js +158 -0
  339. package/dist/public/operations/specs/semantic.d.ts +81 -0
  340. package/dist/public/operations/specs/semantic.d.ts.map +1 -0
  341. package/dist/public/operations/specs/semantic.js +137 -0
  342. package/dist/public/operations/specs/skills.d.ts +70 -0
  343. package/dist/public/operations/specs/skills.d.ts.map +1 -0
  344. package/dist/public/operations/specs/skills.js +107 -0
  345. package/dist/public/operations/specs/sparql.d.ts +39 -0
  346. package/dist/public/operations/specs/sparql.d.ts.map +1 -0
  347. package/dist/public/operations/specs/sparql.js +121 -0
  348. package/dist/public/operations/specs/upsert.d.ts +291 -0
  349. package/dist/public/operations/specs/upsert.d.ts.map +1 -0
  350. package/dist/public/operations/specs/upsert.js +27 -0
  351. package/dist/public/operations/types.d.ts +24 -0
  352. package/dist/public/operations/types.d.ts.map +1 -0
  353. package/dist/public/operations/types.js +1 -0
  354. package/dist/public/schemas/entity.d.ts.map +1 -1
  355. package/dist/public/schemas/entity.js +317 -0
  356. package/dist/public/schemas/relationship.d.ts.map +1 -1
  357. package/dist/public/schemas/relationship.js +1 -0
  358. package/dist/public/skill-system/errors.d.ts +19 -0
  359. package/dist/public/skill-system/errors.d.ts.map +1 -0
  360. package/dist/public/skill-system/errors.js +36 -0
  361. package/dist/public/skill-system/loader.d.ts +9 -0
  362. package/dist/public/skill-system/loader.d.ts.map +1 -0
  363. package/dist/public/skill-system/loader.js +76 -0
  364. package/dist/public/skill-system/paths.d.ts +6 -0
  365. package/dist/public/skill-system/paths.d.ts.map +1 -0
  366. package/dist/public/skill-system/paths.js +25 -0
  367. package/dist/public/skill-system/types.d.ts +15 -0
  368. package/dist/public/skill-system/types.d.ts.map +1 -0
  369. package/dist/public/skill-system/types.js +1 -0
  370. package/dist/public/skill-system/validation.d.ts +10 -0
  371. package/dist/public/skill-system/validation.d.ts.map +1 -0
  372. package/dist/public/skill-system/validation.js +119 -0
  373. package/dist/public/skills/init-kibi/SKILL.md +62 -0
  374. package/dist/public/skills/kibi-freshness/SKILL.md +44 -0
  375. package/dist/public/skills/kibi-traceability/SKILL.md +54 -0
  376. package/dist/public/skills/kibi-usage/SKILL.md +145 -99
  377. package/dist/public/skills/kibi-usage/resources/fact-lanes.md +112 -0
  378. package/dist/public/skills/kibi-usage/resources/logic-ir.md +43 -0
  379. package/dist/public/skills/kibi-usage/resources/operation-access.md +44 -0
  380. package/dist/public/skills/kibi-usage/resources/ui-requirements.md +96 -0
  381. package/dist/public/skills/kibi-usage/resources/workflows.md +41 -3
  382. package/dist/public/skills.d.ts +4 -41
  383. package/dist/public/skills.d.ts.map +1 -1
  384. package/dist/public/skills.js +3 -270
  385. package/dist/public/symbol-granularity.d.ts +9 -0
  386. package/dist/public/symbol-granularity.d.ts.map +1 -1
  387. package/dist/public/symbol-granularity.js +16 -0
  388. package/dist/runtime/cli-runtime.d.ts +3 -0
  389. package/dist/runtime/cli-runtime.d.ts.map +1 -0
  390. package/dist/runtime/cli-runtime.js +96 -0
  391. package/dist/schemas/entity.schema.json +329 -3
  392. package/dist/traceability/staged-diagnostics.d.ts +2 -2
  393. package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
  394. package/dist/traceability/staged-diagnostics.js +17 -10
  395. package/dist/traceability/staged-impact-contract.js +1 -1
  396. package/dist/traceability/staged-symbols-manifest.d.ts +1 -0
  397. package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
  398. package/dist/traceability/staged-symbols-manifest.js +53 -24
  399. package/dist/traceability/symbol-extract.d.ts.map +1 -1
  400. package/dist/traceability/symbol-extract.js +17 -1
  401. package/dist/traceability/temp-kb.d.ts.map +1 -1
  402. package/dist/traceability/temp-kb.js +47 -1
  403. package/dist/types/entities.d.ts +3 -0
  404. package/dist/types/entities.d.ts.map +1 -1
  405. package/dist/types/relationships.d.ts +1 -1
  406. package/dist/types/relationships.d.ts.map +1 -1
  407. package/dist/utils/rule-registry.d.ts.map +1 -1
  408. package/dist/utils/rule-registry.js +24 -0
  409. package/dist/utils/schema-version.d.ts +1 -1
  410. package/dist/utils/schema-version.js +1 -1
  411. package/package.json +60 -2
  412. package/src/public/impact/diagnostics.ts +18 -11
  413. package/src/public/impact/full-kb-quality.ts +30 -3
  414. package/src/public/impact/requirement-quality.ts +6 -26
  415. package/src/public/operations/catalog.ts +60 -0
  416. package/src/public/operations/check-executor.ts +185 -0
  417. package/src/public/operations/check-format-shared.ts +178 -0
  418. package/src/public/operations/check-helpers.ts +141 -0
  419. package/src/public/operations/discovery-entities.ts +122 -0
  420. package/src/public/operations/discovery-executors.ts +176 -0
  421. package/src/public/operations/index.ts +20 -0
  422. package/src/public/operations/node-ports.ts +78 -0
  423. package/src/public/operations/prolog-json.ts +71 -0
  424. package/src/public/operations/runtime-types.ts +106 -0
  425. package/src/public/operations/specs/autopilot.ts +98 -0
  426. package/src/public/operations/specs/check.ts +75 -0
  427. package/src/public/operations/specs/discovery.ts +126 -0
  428. package/src/public/operations/specs/modeling.ts +174 -0
  429. package/src/public/operations/specs/mutation-schemas.ts +326 -0
  430. package/src/public/operations/specs/mutation.ts +58 -0
  431. package/src/public/operations/specs/reporting.ts +249 -0
  432. package/src/public/operations/specs/semantic.ts +174 -0
  433. package/src/public/operations/specs/skills.ts +142 -0
  434. package/src/public/operations/specs/sparql.ts +149 -0
  435. package/src/public/operations/specs/upsert.ts +40 -0
  436. package/src/public/operations/types.ts +57 -0
  437. package/src/public/schemas/entity.ts +324 -1
  438. package/src/public/schemas/relationship.ts +1 -0
  439. package/src/public/skill-system/errors.ts +38 -0
  440. package/src/public/skill-system/loader.ts +108 -0
  441. package/src/public/skill-system/paths.ts +27 -0
  442. package/src/public/skill-system/types.ts +14 -0
  443. package/src/public/skill-system/validation.ts +175 -0
  444. package/src/public/skills/init-kibi/SKILL.md +62 -0
  445. package/src/public/skills/kibi-freshness/SKILL.md +44 -0
  446. package/src/public/skills/kibi-traceability/SKILL.md +54 -0
  447. package/src/public/skills/kibi-usage/SKILL.md +145 -99
  448. package/src/public/skills/kibi-usage/resources/fact-lanes.md +112 -0
  449. package/src/public/skills/kibi-usage/resources/logic-ir.md +43 -0
  450. package/src/public/skills/kibi-usage/resources/operation-access.md +44 -0
  451. package/src/public/skills/kibi-usage/resources/ui-requirements.md +96 -0
  452. package/src/public/skills/kibi-usage/resources/workflows.md +41 -3
  453. package/src/public/skills.ts +18 -427
  454. package/src/public/symbol-granularity.ts +25 -0
  455. package/src/schemas/entity.schema.json +329 -3
  456. package/src/schemas/relationship.schema.json +1 -0
@@ -0,0 +1,176 @@
1
+ import { rankEntities } from "../../search-ranking.js";
2
+ import type { SearchMatch } from "../../search-ranking.js";
3
+ import {
4
+ loadEntities,
5
+ paginateResults,
6
+ validateEntityType,
7
+ } from "./discovery-entities.js";
8
+ import { runOperationJsonQuery } from "./prolog-json.js";
9
+ import type { OperationContext, PrologPort } from "./runtime-types.js";
10
+ import type { OperationResult } from "./types.js";
11
+
12
+ export type QueryInput = {
13
+ readonly type?: string;
14
+ readonly id?: string;
15
+ readonly tags?: readonly string[];
16
+ readonly sourceFile?: string;
17
+ readonly limit?: number;
18
+ readonly offset?: number;
19
+ };
20
+
21
+ export type QueryPayload = {
22
+ readonly entities: readonly Record<string, unknown>[];
23
+ readonly count: number;
24
+ };
25
+
26
+ export type SearchInput = {
27
+ readonly query: string;
28
+ readonly type?: string;
29
+ readonly limit?: number;
30
+ readonly offset?: number;
31
+ };
32
+
33
+ export type SearchPayload = {
34
+ readonly results: readonly SearchMatch[];
35
+ readonly count: number;
36
+ };
37
+
38
+ export type StatusInput = Readonly<Record<string, never>>;
39
+
40
+ export type StatusPayload = {
41
+ readonly branch: string;
42
+ readonly snapshotId: string;
43
+ readonly syncedAt: string | null;
44
+ readonly dirty: boolean;
45
+ readonly syncState: string;
46
+ readonly kbPath?: string;
47
+ readonly lastSyncSource?: string;
48
+ };
49
+
50
+ function requireProlog(context: OperationContext): PrologPort {
51
+ if (!context.prolog) {
52
+ throw new Error("Discovery operation requires a Prolog context");
53
+ }
54
+ return context.prolog;
55
+ }
56
+
57
+ function isStatusPayload(value: unknown): value is StatusPayload {
58
+ if (value === null || typeof value !== "object") return false;
59
+ const record = Object.fromEntries(Object.entries(value));
60
+ return (
61
+ typeof record.branch === "string" &&
62
+ typeof record.snapshotId === "string" &&
63
+ (typeof record.syncedAt === "string" || record.syncedAt === null) &&
64
+ typeof record.dirty === "boolean" &&
65
+ typeof record.syncState === "string"
66
+ );
67
+ }
68
+
69
+ export async function executeQuery(
70
+ input: QueryInput,
71
+ context: OperationContext,
72
+ ): Promise<OperationResult<QueryPayload>> {
73
+ // implements REQ-kibi-operation-interface-parity
74
+ const { type, id, tags, sourceFile, limit = 100, offset = 0 } = input;
75
+ try {
76
+ const entities = await loadEntities(requireProlog(context), {
77
+ ...(type !== undefined ? { type } : {}),
78
+ ...(id !== undefined ? { id } : {}),
79
+ ...(tags !== undefined ? { tags } : {}),
80
+ ...(sourceFile !== undefined ? { sourceFile } : {}),
81
+ });
82
+ const paginated = paginateResults(entities, limit, offset);
83
+ const text =
84
+ entities.length === 0
85
+ ? `No entities found${type ? ` of type '${type}'` : ""}.`
86
+ : `Found ${entities.length} entities${type ? ` of type '${type}'` : ""}. Showing ${paginated.length} (offset ${offset}, limit ${limit}): ${paginated
87
+ .map((entity) => {
88
+ const entityId = String(entity.id ?? "").replace(
89
+ /^file:\/\/.*\//,
90
+ "",
91
+ );
92
+ return `${entityId} (${String(entity.title ?? "")}, status=${String(entity.status ?? "")})`;
93
+ })
94
+ .join(", ")}`;
95
+ return {
96
+ content: [{ type: "text", text }],
97
+ structuredContent: { entities: paginated, count: entities.length },
98
+ };
99
+ } catch (error) {
100
+ const message = error instanceof Error ? error.message : String(error);
101
+ throw new Error(`Query execution failed: ${message}`);
102
+ }
103
+ }
104
+
105
+ export async function executeSearch(
106
+ input: SearchInput,
107
+ context: OperationContext,
108
+ ): Promise<OperationResult<SearchPayload>> {
109
+ // implements REQ-kibi-operation-interface-parity, REQ-mcp-search-discovery
110
+ const { query, type, limit = 20, offset = 0 } = input;
111
+ const trimmedQuery = query.trim();
112
+ if (!trimmedQuery) {
113
+ throw new Error(
114
+ "Search execution failed: query must be a non-empty string",
115
+ );
116
+ }
117
+ validateEntityType(type);
118
+ try {
119
+ const entities = await loadEntities(requireProlog(context), {
120
+ ...(type !== undefined ? { type } : {}),
121
+ });
122
+ const matches = await rankEntities(
123
+ entities,
124
+ trimmedQuery,
125
+ context.workspaceRoot,
126
+ );
127
+ const paginated = paginateResults(matches, limit, offset);
128
+ const text =
129
+ matches.length === 0
130
+ ? `No search results for '${trimmedQuery}'.`
131
+ : `Found ${matches.length} search results for '${trimmedQuery}'. Showing ${paginated.length} (offset ${offset}, limit ${limit}): ${paginated
132
+ .map(
133
+ (match) =>
134
+ `${String(match.entity.id ?? "")} [${match.reasons.join(", ")}]`,
135
+ )
136
+ .join(", ")}`;
137
+ return {
138
+ content: [{ type: "text", text }],
139
+ structuredContent: { results: paginated, count: matches.length },
140
+ };
141
+ } catch (error) {
142
+ const message = error instanceof Error ? error.message : String(error);
143
+ if (message.startsWith("Search execution failed:")) throw error;
144
+ throw new Error(`Search execution failed: ${message}`);
145
+ }
146
+ }
147
+
148
+ export async function executeStatus(
149
+ _input: StatusInput,
150
+ context: OperationContext,
151
+ ): Promise<OperationResult<StatusPayload>> {
152
+ // implements REQ-kibi-operation-interface-parity, REQ-cli-status-pre-first-sync
153
+ try {
154
+ const payload = await runOperationJsonQuery<StatusPayload>(
155
+ requireProlog(context),
156
+ "status.pl",
157
+ "status:kb_status_json(JsonString)",
158
+ "Status execution",
159
+ );
160
+ if (!isStatusPayload(payload)) {
161
+ throw new Error("Status execution query returned an invalid payload");
162
+ }
163
+ return {
164
+ content: [
165
+ {
166
+ type: "text",
167
+ text: `Branch ${payload.branch} is ${payload.syncState} (snapshot ${payload.snapshotId}, dirty=${payload.dirty})`,
168
+ },
169
+ ],
170
+ structuredContent: payload,
171
+ };
172
+ } catch (error) {
173
+ const message = error instanceof Error ? error.message : String(error);
174
+ throw new Error(`Status execution failed: ${message}`);
175
+ }
176
+ }
@@ -0,0 +1,20 @@
1
+ export * from "./catalog.js";
2
+ export * from "./check-executor.js";
3
+ export * from "./discovery-entities.js";
4
+ export * from "./discovery-executors.js";
5
+ export * from "./runtime-types.js";
6
+ export * from "./node-ports.js";
7
+ export * from "./specs/autopilot.js";
8
+ export * from "./specs/check.js";
9
+ export * from "./specs/discovery.js";
10
+ export * from "./specs/modeling.js";
11
+ export * from "./specs/mutation.js";
12
+ export * from "./specs/reporting.js";
13
+ export * from "./specs/semantic.js";
14
+ export * from "./specs/skills.js";
15
+ export * from "./specs/sparql.js";
16
+ export * from "./types.js";
17
+ export * from "../../operations/autopilot/generate.js";
18
+ export * from "../../operations/autopilot/presentation.js";
19
+ export type * from "../../operations/autopilot/types.js";
20
+ export * from "../../logic/ir.js";
@@ -0,0 +1,78 @@
1
+ import { execFile } from "node:child_process";
2
+ import * as fs from "node:fs/promises";
3
+ import { promisify } from "node:util";
4
+ import fg from "fast-glob";
5
+
6
+ import { createRepoIgnorePolicy } from "../ignore-policy.js";
7
+ import type { FilesystemPort, GitPort, NetworkPort } from "./runtime-types.js";
8
+
9
+ type NodeFilesystemPort = FilesystemPort & {
10
+ readonly glob: (
11
+ patterns: readonly string[],
12
+ options: { readonly cwd: string; readonly includeIgnored?: boolean },
13
+ ) => Promise<readonly string[]>;
14
+ };
15
+
16
+ type NodeGitPort = GitPort & {
17
+ readonly ignoredPaths: (
18
+ workspaceRoot: string,
19
+ paths: readonly string[],
20
+ ) => Promise<readonly string[]>;
21
+ };
22
+
23
+ const execFileAsync = promisify(execFile);
24
+ const ALWAYS_IGNORED_GLOBS = [
25
+ "**/.git/**",
26
+ "**/.kb/**",
27
+ "**/node_modules/**",
28
+ "**/vendor/**",
29
+ "**/vendors/**",
30
+ "**/third_party/**",
31
+ "**/third-party/**",
32
+ "**/dist/**",
33
+ "**/build/**",
34
+ "**/coverage/**",
35
+ "**/target/**",
36
+ ] as const;
37
+
38
+ export const nodeFilesystem: NodeFilesystemPort = {
39
+ readFile: (filePath) => fs.readFile(filePath, "utf8"),
40
+ writeFile: async (filePath, data) => {
41
+ await fs.writeFile(filePath, data, "utf8");
42
+ },
43
+ mkdir: async (directoryPath) => {
44
+ await fs.mkdir(directoryPath, { recursive: true });
45
+ },
46
+ stat: (filePath) => fs.stat(filePath),
47
+ glob: (patterns, options) =>
48
+ fg([...patterns], {
49
+ cwd: options.cwd,
50
+ onlyFiles: true,
51
+ unique: true,
52
+ dot: true,
53
+ suppressErrors: true,
54
+ ignore: [...ALWAYS_IGNORED_GLOBS],
55
+ }),
56
+ };
57
+
58
+ export const nodeGit: NodeGitPort = {
59
+ revParse: async (...args) => {
60
+ const { stdout } = await execFileAsync("git", ["rev-parse", ...args]);
61
+ return stdout.trim();
62
+ },
63
+ showToplevel: async () => {
64
+ const { stdout } = await execFileAsync("git", [
65
+ "rev-parse",
66
+ "--show-toplevel",
67
+ ]);
68
+ return stdout.trim();
69
+ },
70
+ ignoredPaths: async (workspaceRoot, paths) => {
71
+ const policy = createRepoIgnorePolicy(workspaceRoot);
72
+ return paths.filter((candidate) => policy.isIgnored(candidate));
73
+ },
74
+ };
75
+
76
+ export const nodeNetwork: NetworkPort = {
77
+ fetch: (input, init) => globalThis.fetch(input, init),
78
+ };
@@ -0,0 +1,71 @@
1
+ import path from "node:path";
2
+
3
+ import { getKbPlPathOverride } from "../../env.js";
4
+ import { resolveKbPlPath } from "../../prolog.js";
5
+ import { escapeAtom } from "../../prolog/codec.js";
6
+ import type { PrologPort } from "./runtime-types.js";
7
+
8
+ function resolveCoreModulePath(fileName: string): string {
9
+ const genericOverride = getKbPlPathOverride();
10
+ return path.join(
11
+ path.dirname(genericOverride ?? resolveKbPlPath()),
12
+ fileName,
13
+ );
14
+ }
15
+
16
+ export async function runOperationJsonQuery<T>(
17
+ prolog: PrologPort,
18
+ fileName: string,
19
+ goal: string,
20
+ errorLabel: string,
21
+ ): Promise<T> {
22
+ const modulePath = escapeAtom(
23
+ resolveCoreModulePath(fileName).replaceAll("\\", "/"),
24
+ );
25
+ const oneShotMode =
26
+ typeof (globalThis as { Bun?: unknown }).Bun !== "undefined";
27
+ const result = oneShotMode
28
+ ? await prolog.query(`(use_module('${modulePath}'), ${goal})`)
29
+ : await runInteractiveModuleQuery(prolog, modulePath, goal, errorLabel);
30
+ if (!result.success) {
31
+ throw new Error(
32
+ `${errorLabel} query failed: ${result.error ?? "Unknown error"}`,
33
+ );
34
+ }
35
+ const rawJson = result.bindings.JsonString;
36
+ if (rawJson === undefined) {
37
+ throw new Error(`${errorLabel} query returned no JsonString binding`);
38
+ }
39
+ let parsed: unknown = JSON.parse(rawJson);
40
+ if (typeof parsed === "string") {
41
+ parsed = JSON.parse(parsed);
42
+ }
43
+ return parsed as T;
44
+ }
45
+
46
+ async function runInteractiveModuleQuery(
47
+ prolog: PrologPort,
48
+ modulePath: string,
49
+ goal: string,
50
+ errorLabel: string,
51
+ ) {
52
+ const loadResult = await prolog.query(`use_module('${modulePath}')`);
53
+ if (!loadResult.success) {
54
+ throw new Error(
55
+ `${errorLabel} module load failed: ${loadResult.error ?? "Unknown error"}`,
56
+ );
57
+ }
58
+ return prolog.query(goal);
59
+ }
60
+
61
+ export function toPrologAtom(value?: string): string {
62
+ return value === undefined || value === ""
63
+ ? "none"
64
+ : `'${escapeAtom(value)}'`;
65
+ }
66
+
67
+ export function toPrologList(values?: readonly string[]): string {
68
+ return values === undefined || values.length === 0
69
+ ? "[]"
70
+ : `[${values.map((value) => `'${escapeAtom(value)}'`).join(",")}]`;
71
+ }
@@ -0,0 +1,106 @@
1
+ import type { OperationEffect } from "./types.js";
2
+
3
+ export type { OperationEffect } from "./types.js";
4
+
5
+ export type PrologQueryResult = {
6
+ readonly success: boolean;
7
+ readonly bindings: Readonly<Record<string, string>>;
8
+ readonly error?: string;
9
+ };
10
+
11
+ // implements REQ-kibi-operation-interface-parity
12
+ export interface PrologPort {
13
+ query(goal: string): Promise<PrologQueryResult>;
14
+ nextSolution(): Promise<PrologQueryResult | null>;
15
+ invalidateCache?(): void;
16
+ save(): Promise<PrologQueryResult>;
17
+ }
18
+
19
+ export type FilesystemStat = {
20
+ readonly isFile: () => boolean;
21
+ readonly isDirectory: () => boolean;
22
+ };
23
+
24
+ export interface FilesystemPort {
25
+ readFile(path: string): Promise<string>;
26
+ writeFile(path: string, data: string): Promise<void>;
27
+ mkdir(path: string): Promise<void>;
28
+ stat(path: string): Promise<FilesystemStat>;
29
+ }
30
+
31
+ export interface GitPort {
32
+ revParse(...args: readonly string[]): Promise<string>;
33
+ showToplevel(): Promise<string>;
34
+ }
35
+
36
+ export interface NetworkPort {
37
+ fetch(input: string | URL, init?: RequestInit): Promise<Response>;
38
+ }
39
+
40
+ export type Clock = () => Date;
41
+
42
+ export type RuntimeOptions = {
43
+ readonly workspaceRoot?: string;
44
+ readonly signal?: AbortSignal;
45
+ readonly clock?: Clock;
46
+ readonly prolog?: PrologPort;
47
+ readonly fs?: FilesystemPort;
48
+ readonly git?: GitPort;
49
+ readonly net?: NetworkPort;
50
+ };
51
+
52
+ export type OperationContext = {
53
+ readonly workspaceRoot: string;
54
+ readonly signal: AbortSignal;
55
+ readonly clock: Clock;
56
+ readonly prolog?: PrologPort;
57
+ readonly fs?: FilesystemPort;
58
+ readonly git?: GitPort;
59
+ readonly net?: NetworkPort;
60
+ };
61
+
62
+ export interface RuntimeOperationSpec<TInput = unknown, TResult = unknown> {
63
+ readonly name: string;
64
+ readonly effects: readonly OperationEffect[];
65
+ readonly requiresProlog: boolean;
66
+ execute(input: TInput, context: OperationContext): Promise<TResult>;
67
+ }
68
+
69
+ export type OperationOutcome =
70
+ | { readonly status: "success"; readonly result: unknown }
71
+ | { readonly status: "error"; readonly error: unknown };
72
+
73
+ // implements REQ-kibi-operation-interface-parity
74
+ export interface OperationRuntime {
75
+ open(
76
+ spec: RuntimeOperationSpec<unknown, unknown>,
77
+ opts?: RuntimeOptions,
78
+ ): Promise<OperationContext>;
79
+ afterSuccess(
80
+ spec: RuntimeOperationSpec<unknown, unknown>,
81
+ context: OperationContext,
82
+ ): Promise<void>;
83
+ close(context: OperationContext, outcome: OperationOutcome): Promise<void>;
84
+ }
85
+
86
+ // implements REQ-kibi-operation-interface-parity
87
+ export async function executeOperation<TInput, TResult>(
88
+ runtime: OperationRuntime,
89
+ spec: RuntimeOperationSpec<TInput, TResult>,
90
+ input: TInput,
91
+ opts?: RuntimeOptions,
92
+ ): Promise<TResult> {
93
+ const context = await runtime.open(spec, opts);
94
+ let result: TResult;
95
+ try {
96
+ result = await spec.execute(input, context);
97
+ if (spec.effects.includes("kb-write")) {
98
+ await runtime.afterSuccess(spec, context);
99
+ }
100
+ } catch (error) {
101
+ await runtime.close(context, { status: "error", error });
102
+ throw error;
103
+ }
104
+ await runtime.close(context, { status: "success", result });
105
+ return result;
106
+ }
@@ -0,0 +1,98 @@
1
+ import { executeAutopilotGenerate } from "../../../operations/autopilot/generate.js";
2
+ import type {
3
+ AutopilotGenerateArgs,
4
+ AutopilotGenerateResult,
5
+ } from "../../../operations/autopilot/types.js";
6
+ import type { OperationSpec } from "../types.js";
7
+
8
+ export type {
9
+ AutopilotBootstrapContext,
10
+ AutopilotGenerateArgs,
11
+ AutopilotGenerateResult,
12
+ } from "../../../operations/autopilot/types.js";
13
+ export { executeAutopilotGenerate } from "../../../operations/autopilot/generate.js";
14
+
15
+ export const autopilotGenerateSpec = {
16
+ name: "kb_autopilot_generate",
17
+ cliName: "autopilot-generate",
18
+ description:
19
+ "Generate agent-centric bootstrap output for KB population. Read-only analysis that returns activation state, bootstrap guidance, candidate entities with evidence, payoff summary, and exact applyPlan payloads for later kb_upsert calls. No mutation side effects.",
20
+ businessInputSchema: {
21
+ type: "object",
22
+ properties: {
23
+ includeGenericMarkdown: {
24
+ type: "boolean",
25
+ default: true,
26
+ description:
27
+ "Whether to include generic markdown file content as candidate facts. Default: true.",
28
+ },
29
+ minConfidence: {
30
+ type: "number",
31
+ default: 0.8,
32
+ minimum: 0.6,
33
+ maximum: 0.95,
34
+ description:
35
+ "Minimum confidence threshold for candidates. Clamped to [0.60, 0.95]. Default: 0.80.",
36
+ },
37
+ maxCandidates: {
38
+ type: "integer",
39
+ default: 50,
40
+ minimum: 1,
41
+ maximum: 200,
42
+ description:
43
+ "Maximum number of candidates to return. Clamped to [1, 200]. Default: 50.",
44
+ },
45
+ entityTypes: {
46
+ type: "array",
47
+ items: {
48
+ type: "string",
49
+ enum: ["req", "scenario", "test", "adr", "fact", "symbol"],
50
+ },
51
+ description:
52
+ "Optional filter to limit candidate generation to specific entity types.",
53
+ },
54
+ bootstrapContext: {
55
+ type: "object",
56
+ description:
57
+ "Optional declared bootstrap context supplied by the agent to ground the read-only synthesis output.",
58
+ properties: {
59
+ projectSummary: {
60
+ type: "string",
61
+ description:
62
+ "Optional short summary of the project or bootstrap goal.",
63
+ },
64
+ sourceOfTruthPaths: {
65
+ type: "array",
66
+ items: { type: "string" },
67
+ description:
68
+ "Optional repo-relative paths that should be treated as declared sources of truth.",
69
+ },
70
+ sourceOfTruthNotes: {
71
+ type: "array",
72
+ items: { type: "string" },
73
+ description:
74
+ "Optional notes about how to interpret the declared sources of truth.",
75
+ },
76
+ priorityRoots: {
77
+ type: "array",
78
+ items: { type: "string" },
79
+ description:
80
+ "Optional repo roots the bootstrap flow should prioritize when authoring entities.",
81
+ },
82
+ verificationAnchors: {
83
+ type: "array",
84
+ items: { type: "string" },
85
+ description:
86
+ "Optional verification commands, documents, or checkpoints to reference in the output.",
87
+ },
88
+ },
89
+ },
90
+ },
91
+ },
92
+ requiresProlog: false,
93
+ effects: ["workspace-read"],
94
+ execute: executeAutopilotGenerate,
95
+ } as const satisfies OperationSpec<
96
+ AutopilotGenerateArgs,
97
+ AutopilotGenerateResult["structuredContent"]
98
+ >;
@@ -0,0 +1,75 @@
1
+ import { executeCheck } from "../check-executor.js";
2
+ import type { OperationSpec } from "../types.js";
3
+
4
+ export const checkSpec = {
5
+ name: "kb_check",
6
+ cliName: "check",
7
+ description:
8
+ "Run KB validation rules and return violations. Use before or after mutations, and after meaningful source edits with impact options to surface symbol granularity and semantic-review diagnostics. Do not use for point lookups. No write side effects. Prefer explicit rules for faster iteration; omit rules for final full validation plus full-KB qualityDiagnostics review.",
9
+ businessInputSchema: {
10
+ type: "object",
11
+ properties: {
12
+ rules: {
13
+ type: "array",
14
+ items: {
15
+ type: "string",
16
+ enum: [
17
+ "must-priority-coverage",
18
+ "symbol-coverage",
19
+ "symbol-traceability",
20
+ "no-dangling-refs",
21
+ "no-cycles",
22
+ "required-fields",
23
+ "deprecated-adr-no-successor",
24
+ "domain-contradictions",
25
+ "strict-fact-shape",
26
+ "strict-req-fact-pairing",
27
+ "predicate-verifiability",
28
+ "logic-coverage",
29
+ "rule-safety",
30
+ "rule-verifiability",
31
+ "semantic-completeness",
32
+ "query-plan-safety",
33
+ ],
34
+ },
35
+ description:
36
+ "Optional rule subset. Allowed: must-priority-coverage, symbol-coverage, symbol-traceability, no-dangling-refs, no-cycles, required-fields, deprecated-adr-no-successor, domain-contradictions, strict-fact-shape, strict-req-fact-pairing, predicate-verifiability, logic-coverage, rule-safety, rule-verifiability, semantic-completeness, query-plan-safety. If omitted, server runs all rules plus the full-KB qualityDiagnostics audit scan; if supplied, server preserves scoped validation and skips the full-KB advisory scan.",
37
+ },
38
+ sourceFiles: {
39
+ type: "array",
40
+ items: { type: "string" },
41
+ description:
42
+ "Optional repo-relative source files to inspect for early impact diagnostics. Use with includeImpactDiagnostics after meaningful source edits.",
43
+ },
44
+ staged: {
45
+ type: "boolean",
46
+ description:
47
+ "When true, inspect staged source changes for impact diagnostics using the shared CLI impact analyzer without shelling out to kibi check.",
48
+ },
49
+ includeWorkingTreeDiff: {
50
+ type: "boolean",
51
+ description:
52
+ "When true, inspect current unstaged working-tree diffs for impact diagnostics. Pair with sourceFiles to scope the analysis.",
53
+ },
54
+ includeImpactDiagnostics: {
55
+ type: "boolean",
56
+ description:
57
+ "When true, include changed-file impact diagnostics such as symbol_granularity_violation and symbol_semantic_review_needed in structured output.",
58
+ },
59
+ maxDiagnostics: {
60
+ type: "integer",
61
+ minimum: 0,
62
+ description:
63
+ "Optional maximum number of impact diagnostics to return. Graph validation violations are not capped by this value.",
64
+ },
65
+ workspaceRoot: {
66
+ type: "string",
67
+ description:
68
+ "Optional workspace root for impact diagnostics and .kb/config.json lookup. Defaults to the MCP server workspace.",
69
+ },
70
+ },
71
+ },
72
+ requiresProlog: true,
73
+ effects: ["kb-read", "workspace-read"],
74
+ execute: executeCheck,
75
+ } as const satisfies OperationSpec;