kibi-cli 0.19.0 → 2.0.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 (672) hide show
  1. package/dist/cli-errors.d.ts +3 -1
  2. package/dist/cli-errors.d.ts.map +1 -1
  3. package/dist/cli-errors.js +4 -1
  4. package/dist/cli-json-command.d.ts +1 -0
  5. package/dist/cli-json-command.d.ts.map +1 -1
  6. package/dist/cli-json-command.js +13 -4
  7. package/dist/cli-operation-loader.d.ts.map +1 -1
  8. package/dist/cli-operation-loader.js +53 -20
  9. package/dist/cli-operation-metadata.d.ts +21 -8
  10. package/dist/cli-operation-metadata.d.ts.map +1 -1
  11. package/dist/cli-operation-metadata.js +27 -10
  12. package/dist/cli-protocol.d.ts.map +1 -1
  13. package/dist/cli-protocol.js +38 -8
  14. package/dist/cli-register-foundation.d.ts.map +1 -1
  15. package/dist/cli-register-foundation.js +14 -2
  16. package/dist/cli-register-maintenance.d.ts.map +1 -1
  17. package/dist/cli-register-maintenance.js +33 -4
  18. package/dist/cli-register-proof.d.ts +3 -0
  19. package/dist/cli-register-proof.d.ts.map +1 -0
  20. package/dist/cli-register-proof.js +103 -0
  21. package/dist/cli-register-reporting.d.ts.map +1 -1
  22. package/dist/cli-register-reporting.js +11 -0
  23. package/dist/cli.d.ts +4 -0
  24. package/dist/cli.d.ts.map +1 -1
  25. package/dist/cli.js +17 -8
  26. package/dist/commands/aggregated-checks.d.ts +1 -2
  27. package/dist/commands/aggregated-checks.d.ts.map +1 -1
  28. package/dist/commands/aggregated-checks.js +14 -9
  29. package/dist/commands/branch.d.ts +37 -0
  30. package/dist/commands/branch.d.ts.map +1 -1
  31. package/dist/commands/branch.js +375 -40
  32. package/dist/commands/check.d.ts +14 -0
  33. package/dist/commands/check.d.ts.map +1 -1
  34. package/dist/commands/check.js +209 -110
  35. package/dist/commands/coverage.d.ts +1 -0
  36. package/dist/commands/coverage.d.ts.map +1 -1
  37. package/dist/commands/coverage.js +6 -0
  38. package/dist/commands/discovery-shared.d.ts.map +1 -1
  39. package/dist/commands/discovery-shared.js +10 -19
  40. package/dist/commands/doctor.d.ts +26 -1
  41. package/dist/commands/doctor.d.ts.map +1 -1
  42. package/dist/commands/doctor.js +291 -30
  43. package/dist/commands/engine.d.ts +12 -0
  44. package/dist/commands/engine.d.ts.map +1 -1
  45. package/dist/commands/engine.js +50 -7
  46. package/dist/commands/gc.d.ts +5 -2
  47. package/dist/commands/gc.d.ts.map +1 -1
  48. package/dist/commands/gc.js +140 -71
  49. package/dist/commands/github-init.d.ts +57 -0
  50. package/dist/commands/github-init.d.ts.map +1 -0
  51. package/dist/commands/github-init.js +314 -0
  52. package/dist/commands/init-helpers.d.ts +1 -1
  53. package/dist/commands/init-helpers.d.ts.map +1 -1
  54. package/dist/commands/init-helpers.js +109 -28
  55. package/dist/commands/init.d.ts +2 -0
  56. package/dist/commands/init.d.ts.map +1 -1
  57. package/dist/commands/init.js +79 -24
  58. package/dist/commands/legacy-storage-migration.d.ts +54 -0
  59. package/dist/commands/legacy-storage-migration.d.ts.map +1 -0
  60. package/dist/commands/legacy-storage-migration.js +277 -0
  61. package/dist/commands/migrate.d.ts +11 -0
  62. package/dist/commands/migrate.d.ts.map +1 -1
  63. package/dist/commands/migrate.js +249 -96
  64. package/dist/commands/proof-migrate-legacy.d.ts +7 -0
  65. package/dist/commands/proof-migrate-legacy.d.ts.map +1 -0
  66. package/dist/commands/proof-migrate-legacy.js +45 -0
  67. package/dist/commands/proof-prune.d.ts +8 -0
  68. package/dist/commands/proof-prune.d.ts.map +1 -0
  69. package/dist/commands/proof-prune.js +53 -0
  70. package/dist/commands/prove.d.ts +37 -0
  71. package/dist/commands/prove.d.ts.map +1 -0
  72. package/dist/commands/prove.js +470 -0
  73. package/dist/commands/report.d.ts +24 -0
  74. package/dist/commands/report.d.ts.map +1 -0
  75. package/dist/commands/report.js +191 -0
  76. package/dist/commands/sync/cache.d.ts +16 -3
  77. package/dist/commands/sync/cache.d.ts.map +1 -1
  78. package/dist/commands/sync/cache.js +111 -4
  79. package/dist/commands/sync/discovery.d.ts +26 -2
  80. package/dist/commands/sync/discovery.d.ts.map +1 -1
  81. package/dist/commands/sync/discovery.js +204 -15
  82. package/dist/commands/sync/extraction.d.ts +8 -1
  83. package/dist/commands/sync/extraction.d.ts.map +1 -1
  84. package/dist/commands/sync/extraction.js +38 -4
  85. package/dist/commands/sync/manifest.d.ts +9 -6
  86. package/dist/commands/sync/manifest.d.ts.map +1 -1
  87. package/dist/commands/sync/manifest.js +195 -60
  88. package/dist/commands/sync/persistence.d.ts +4 -1
  89. package/dist/commands/sync/persistence.d.ts.map +1 -1
  90. package/dist/commands/sync/persistence.js +26 -12
  91. package/dist/commands/sync/staging.d.ts +1 -0
  92. package/dist/commands/sync/staging.d.ts.map +1 -1
  93. package/dist/commands/sync/staging.js +5 -2
  94. package/dist/commands/sync/untracked-targets.d.ts +24 -0
  95. package/dist/commands/sync/untracked-targets.d.ts.map +1 -0
  96. package/dist/commands/sync/untracked-targets.js +108 -0
  97. package/dist/commands/sync.d.ts +17 -1
  98. package/dist/commands/sync.d.ts.map +1 -1
  99. package/dist/commands/sync.js +375 -106
  100. package/dist/diagnostics.d.ts +1 -1
  101. package/dist/diagnostics.d.ts.map +1 -1
  102. package/dist/engine-daemon.d.ts +3 -1
  103. package/dist/engine-daemon.d.ts.map +1 -1
  104. package/dist/engine-daemon.js +49 -20
  105. package/dist/engine.d.ts +34 -3
  106. package/dist/engine.d.ts.map +1 -1
  107. package/dist/engine.js +578 -42
  108. package/dist/env.d.ts.map +1 -1
  109. package/dist/env.js +5 -6
  110. package/dist/extractors/manifest.d.ts +13 -1
  111. package/dist/extractors/manifest.d.ts.map +1 -1
  112. package/dist/extractors/manifest.js +97 -10
  113. package/dist/extractors/markdown.d.ts +5 -2
  114. package/dist/extractors/markdown.d.ts.map +1 -1
  115. package/dist/extractors/markdown.js +47 -12
  116. package/dist/extractors/playwright-cases.d.ts +24 -0
  117. package/dist/extractors/playwright-cases.d.ts.map +1 -0
  118. package/dist/extractors/playwright-cases.js +126 -0
  119. package/dist/extractors/relationships.d.ts +6 -0
  120. package/dist/extractors/relationships.d.ts.map +1 -1
  121. package/dist/extractors/relationships.js +2 -1
  122. package/dist/extractors/symbol-coordinates.d.ts +81 -3
  123. package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
  124. package/dist/extractors/symbol-coordinates.js +389 -51
  125. package/dist/extractors/symbols-coordinator.js +11 -1
  126. package/dist/extractors/symbols-ts.d.ts +1 -0
  127. package/dist/extractors/symbols-ts.d.ts.map +1 -1
  128. package/dist/extractors/symbols-ts.js +142 -67
  129. package/dist/intent-search.d.ts +61 -0
  130. package/dist/intent-search.d.ts.map +1 -0
  131. package/dist/intent-search.js +437 -0
  132. package/dist/logic/ir.d.ts +1 -0
  133. package/dist/logic/ir.d.ts.map +1 -1
  134. package/dist/logic/ir.js +1 -1
  135. package/dist/operations/bootstrap/activation.d.ts +5 -0
  136. package/dist/operations/bootstrap/activation.d.ts.map +1 -0
  137. package/dist/operations/{autopilot → bootstrap}/activation.js +58 -33
  138. package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts.map +1 -1
  139. package/dist/operations/bootstrap/candidates.d.ts +4 -0
  140. package/dist/operations/{autopilot → bootstrap}/candidates.d.ts.map +1 -1
  141. package/dist/operations/{autopilot → bootstrap}/candidates.js +22 -8
  142. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts +2 -2
  143. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts.map +1 -1
  144. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.js +46 -6
  145. package/dist/operations/{autopilot → bootstrap}/discovery.d.ts +1 -1
  146. package/dist/operations/bootstrap/discovery.d.ts.map +1 -0
  147. package/dist/operations/{autopilot → bootstrap}/discovery.js +21 -14
  148. package/dist/operations/bootstrap/generate.d.ts +9 -0
  149. package/dist/operations/bootstrap/generate.d.ts.map +1 -0
  150. package/dist/operations/bootstrap/generate.js +207 -0
  151. package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts +2 -2
  152. package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts.map +1 -1
  153. package/dist/operations/{autopilot → bootstrap}/guidance-actions.js +4 -4
  154. package/dist/operations/{autopilot → bootstrap}/guidance.d.ts +3 -2
  155. package/dist/operations/bootstrap/guidance.d.ts.map +1 -0
  156. package/dist/operations/{autopilot → bootstrap}/guidance.js +3 -1
  157. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts +2 -2
  158. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts.map +1 -1
  159. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.js +4 -3
  160. package/dist/operations/bootstrap/presentation.d.ts +15 -0
  161. package/dist/operations/bootstrap/presentation.d.ts.map +1 -0
  162. package/dist/operations/bootstrap/presentation.js +177 -0
  163. package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts.map +1 -1
  164. package/dist/operations/{autopilot → bootstrap}/types.d.ts +63 -21
  165. package/dist/operations/bootstrap/types.d.ts.map +1 -0
  166. package/dist/operations/bootstrap/types.js +25 -0
  167. package/dist/operations/modeling/model-requirement.d.ts +5 -0
  168. package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
  169. package/dist/operations/modeling/model-requirement.js +57 -63
  170. package/dist/operations/modeling/predicate-applicability.d.ts +16 -0
  171. package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -0
  172. package/dist/operations/modeling/predicate-applicability.js +375 -0
  173. package/dist/operations/modeling/predicate-applyplan.d.ts +13 -2
  174. package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -1
  175. package/dist/operations/modeling/predicate-applyplan.js +100 -3
  176. package/dist/operations/modeling/predicate-bindings.d.ts +6 -0
  177. package/dist/operations/modeling/predicate-bindings.d.ts.map +1 -0
  178. package/dist/operations/modeling/predicate-bindings.js +122 -0
  179. package/dist/operations/modeling/predicate-catalog-2.d.ts.map +1 -1
  180. package/dist/operations/modeling/predicate-catalog-2.js +18 -2
  181. package/dist/operations/modeling/predicate-catalog-3.d.ts.map +1 -1
  182. package/dist/operations/modeling/predicate-catalog-3.js +17 -1
  183. package/dist/operations/modeling/predicate-catalog-4.d.ts.map +1 -1
  184. package/dist/operations/modeling/predicate-catalog-4.js +155 -0
  185. package/dist/operations/modeling/predicate-catalog-5.d.ts +10 -0
  186. package/dist/operations/modeling/predicate-catalog-5.d.ts.map +1 -0
  187. package/dist/operations/modeling/predicate-catalog-5.js +291 -0
  188. package/dist/operations/modeling/predicate-catalog.d.ts.map +1 -1
  189. package/dist/operations/modeling/predicate-catalog.js +4 -0
  190. package/dist/operations/modeling/predicate-inference-1.d.ts.map +1 -1
  191. package/dist/operations/modeling/predicate-inference-1.js +8 -0
  192. package/dist/operations/modeling/predicate-inference-launcher.d.ts +10 -0
  193. package/dist/operations/modeling/predicate-inference-launcher.d.ts.map +1 -0
  194. package/dist/operations/modeling/predicate-inference-launcher.js +13 -0
  195. package/dist/operations/modeling/predicate-inference.d.ts.map +1 -1
  196. package/dist/operations/modeling/predicate-inference.js +4 -0
  197. package/dist/operations/modeling/predicate-loader.d.ts +1 -0
  198. package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
  199. package/dist/operations/modeling/predicate-loader.js +11 -3
  200. package/dist/operations/modeling/predicate-ranker.d.ts +8 -1
  201. package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
  202. package/dist/operations/modeling/predicate-ranker.js +159 -24
  203. package/dist/operations/modeling/predicate-score-3.d.ts.map +1 -1
  204. package/dist/operations/modeling/predicate-score-3.js +6 -0
  205. package/dist/operations/modeling/predicate-types.d.ts +35 -1
  206. package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
  207. package/dist/operations/modeling/predicate-usage-hints-3.d.ts.map +1 -1
  208. package/dist/operations/modeling/predicate-usage-hints-3.js +40 -0
  209. package/dist/operations/modeling/predicate-usage-hints-4.d.ts +3 -0
  210. package/dist/operations/modeling/predicate-usage-hints-4.d.ts.map +1 -0
  211. package/dist/operations/modeling/predicate-usage-hints-4.js +84 -0
  212. package/dist/operations/modeling/predicate-utils.d.ts.map +1 -1
  213. package/dist/operations/modeling/predicate-utils.js +2 -0
  214. package/dist/operations/modeling/suggest-predicates.d.ts +4 -2
  215. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  216. package/dist/operations/modeling/suggest-predicates.js +203 -32
  217. package/dist/operations/mutation/contradictions.d.ts +2 -1
  218. package/dist/operations/mutation/contradictions.d.ts.map +1 -1
  219. package/dist/operations/mutation/contradictions.js +26 -5
  220. package/dist/operations/mutation/delete.d.ts +3 -0
  221. package/dist/operations/mutation/delete.d.ts.map +1 -1
  222. package/dist/operations/mutation/delete.js +483 -19
  223. package/dist/operations/mutation/entity-projection.d.ts +11 -0
  224. package/dist/operations/mutation/entity-projection.d.ts.map +1 -0
  225. package/dist/operations/mutation/entity-projection.js +14 -0
  226. package/dist/operations/mutation/relationships.d.ts +11 -0
  227. package/dist/operations/mutation/relationships.d.ts.map +1 -1
  228. package/dist/operations/mutation/relationships.js +77 -5
  229. package/dist/operations/mutation/saga.d.ts +51 -0
  230. package/dist/operations/mutation/saga.d.ts.map +1 -0
  231. package/dist/operations/mutation/saga.js +67 -0
  232. package/dist/operations/mutation/serialization.d.ts.map +1 -1
  233. package/dist/operations/mutation/serialization.js +3 -1
  234. package/dist/operations/mutation/source-authoring.d.ts +65 -0
  235. package/dist/operations/mutation/source-authoring.d.ts.map +1 -0
  236. package/dist/operations/mutation/source-authoring.js +576 -0
  237. package/dist/operations/mutation/strict-fact.d.ts +1 -0
  238. package/dist/operations/mutation/strict-fact.d.ts.map +1 -1
  239. package/dist/operations/mutation/strict-fact.js +8 -5
  240. package/dist/operations/mutation/symbol-compiler-lock.d.ts +54 -0
  241. package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -0
  242. package/dist/operations/mutation/symbol-compiler-lock.js +337 -0
  243. package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
  244. package/dist/operations/mutation/symbol-granularity.js +35 -4
  245. package/dist/operations/mutation/symbol-refresh.d.ts +19 -1
  246. package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
  247. package/dist/operations/mutation/symbol-refresh.js +227 -63
  248. package/dist/operations/mutation/types.d.ts +57 -1
  249. package/dist/operations/mutation/types.d.ts.map +1 -1
  250. package/dist/operations/mutation/upsert.d.ts +18 -2
  251. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  252. package/dist/operations/mutation/upsert.js +403 -32
  253. package/dist/operations/mutation/validate-upsert.js +2 -2
  254. package/dist/operations/mutation/validation.d.ts.map +1 -1
  255. package/dist/operations/mutation/validation.js +47 -4
  256. package/dist/operations/mutation/warnings.d.ts +1 -0
  257. package/dist/operations/mutation/warnings.d.ts.map +1 -1
  258. package/dist/operations/mutation/warnings.js +7 -5
  259. package/dist/operations/mutation/workspace-mutation-lock.d.ts +60 -0
  260. package/dist/operations/mutation/workspace-mutation-lock.d.ts.map +1 -0
  261. package/dist/operations/mutation/workspace-mutation-lock.js +362 -0
  262. package/dist/operations/planning/apply-plan.d.ts +19 -0
  263. package/dist/operations/planning/apply-plan.d.ts.map +1 -0
  264. package/dist/operations/planning/apply-plan.js +1514 -0
  265. package/dist/operations/planning/compile-intent.d.ts +108 -0
  266. package/dist/operations/planning/compile-intent.d.ts.map +1 -0
  267. package/dist/operations/planning/compile-intent.js +618 -0
  268. package/dist/operations/proof/ingest-proof.d.ts +34 -0
  269. package/dist/operations/proof/ingest-proof.d.ts.map +1 -0
  270. package/dist/operations/proof/ingest-proof.js +307 -0
  271. package/dist/operations/proof/migrate-legacy-receipts.d.ts +30 -0
  272. package/dist/operations/proof/migrate-legacy-receipts.d.ts.map +1 -0
  273. package/dist/operations/proof/migrate-legacy-receipts.js +88 -0
  274. package/dist/operations/proof/prune-receipts.d.ts +35 -0
  275. package/dist/operations/proof/prune-receipts.d.ts.map +1 -0
  276. package/dist/operations/proof/prune-receipts.js +91 -0
  277. package/dist/operations/proof/receipt-document.d.ts +29 -0
  278. package/dist/operations/proof/receipt-document.d.ts.map +1 -0
  279. package/dist/operations/proof/receipt-document.js +117 -0
  280. package/dist/operations/semantic-advisor/analyze-prose.d.ts +1 -0
  281. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  282. package/dist/operations/semantic-advisor/analyze-prose.js +52 -28
  283. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
  284. package/dist/operations/semantic-advisor/clauses.js +35 -9
  285. package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -1
  286. package/dist/operations/semantic-advisor/ingestion-boundary.js +7 -3
  287. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +51 -0
  288. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -0
  289. package/dist/operations/semantic-advisor/predicate-rules-launcher.js +96 -0
  290. package/dist/operations/semantic-advisor/strict-count-rules.d.ts +2 -0
  291. package/dist/operations/semantic-advisor/strict-count-rules.d.ts.map +1 -1
  292. package/dist/operations/semantic-advisor/strict-count-rules.js +40 -25
  293. package/dist/operations/semantic-advisor/types.d.ts +13 -5
  294. package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
  295. package/dist/prolog/codec.d.ts +13 -1
  296. package/dist/prolog/codec.d.ts.map +1 -1
  297. package/dist/prolog/codec.js +269 -153
  298. package/dist/prolog/error-terms.d.ts +47 -0
  299. package/dist/prolog/error-terms.d.ts.map +1 -0
  300. package/dist/prolog/error-terms.js +334 -0
  301. package/dist/prolog/janitor.d.ts +50 -0
  302. package/dist/prolog/janitor.d.ts.map +1 -0
  303. package/dist/prolog/janitor.js +154 -0
  304. package/dist/prolog/store-lock.d.ts +45 -0
  305. package/dist/prolog/store-lock.d.ts.map +1 -0
  306. package/dist/prolog/store-lock.js +195 -0
  307. package/dist/prolog.d.ts +7 -0
  308. package/dist/prolog.d.ts.map +1 -1
  309. package/dist/prolog.js +82 -25
  310. package/dist/proof/evaluate.d.ts +27 -0
  311. package/dist/proof/evaluate.d.ts.map +1 -0
  312. package/dist/proof/evaluate.js +151 -0
  313. package/dist/proof/inspect.d.ts +12 -0
  314. package/dist/proof/inspect.d.ts.map +1 -0
  315. package/dist/proof/inspect.js +236 -0
  316. package/dist/proof/integrations.d.ts +35 -0
  317. package/dist/proof/integrations.d.ts.map +1 -0
  318. package/dist/proof/integrations.js +123 -0
  319. package/dist/proof/producers/junit-adapter.d.ts +26 -0
  320. package/dist/proof/producers/junit-adapter.d.ts.map +1 -0
  321. package/dist/proof/producers/junit-adapter.js +186 -0
  322. package/dist/proof/producers/playwright-case-id.d.ts +8 -0
  323. package/dist/proof/producers/playwright-case-id.d.ts.map +1 -0
  324. package/dist/proof/producers/playwright-case-id.js +25 -0
  325. package/dist/proof/producers/playwright-reporter.d.ts +27 -0
  326. package/dist/proof/producers/playwright-reporter.d.ts.map +1 -0
  327. package/dist/proof/producers/playwright-reporter.js +138 -0
  328. package/dist/proof/producers/tap-adapter.d.ts +10 -0
  329. package/dist/proof/producers/tap-adapter.d.ts.map +1 -0
  330. package/dist/proof/producers/tap-adapter.js +200 -0
  331. package/dist/proof/receipt-outcome.d.ts +2 -0
  332. package/dist/proof/receipt-outcome.d.ts.map +1 -0
  333. package/dist/proof/receipt-outcome.js +1 -0
  334. package/dist/public/branch-resolver.d.ts +1 -0
  335. package/dist/public/branch-resolver.d.ts.map +1 -1
  336. package/dist/public/branch-resolver.js +1 -0
  337. package/dist/public/check-types.d.ts +2 -2
  338. package/dist/public/check-types.d.ts.map +1 -1
  339. package/dist/public/check-types.js +16 -16
  340. package/dist/public/diagnostic-usage.d.ts.map +1 -1
  341. package/dist/public/diagnostic-usage.js +74 -6
  342. package/dist/public/distribution-parity.d.ts +7 -1
  343. package/dist/public/distribution-parity.d.ts.map +1 -1
  344. package/dist/public/distribution-parity.js +15 -9
  345. package/dist/public/ignore-policy.d.ts.map +1 -1
  346. package/dist/public/ignore-policy.js +16 -4
  347. package/dist/public/impact/coverage-depth-quality.d.ts +7 -1
  348. package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
  349. package/dist/public/impact/coverage-depth-quality.js +22 -4
  350. package/dist/public/impact/diagnostics.d.ts.map +1 -1
  351. package/dist/public/impact/diagnostics.js +2 -2
  352. package/dist/public/impact/diff-meaning.d.ts +1 -0
  353. package/dist/public/impact/diff-meaning.d.ts.map +1 -1
  354. package/dist/public/impact/diff-meaning.js +5 -2
  355. package/dist/public/impact/full-kb-quality.d.ts +7 -2
  356. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  357. package/dist/public/impact/full-kb-quality.js +364 -39
  358. package/dist/public/impact/manifest.d.ts.map +1 -1
  359. package/dist/public/impact/manifest.js +2 -5
  360. package/dist/public/operational-artifacts.d.ts.map +1 -1
  361. package/dist/public/operational-artifacts.js +7 -1
  362. package/dist/public/operations/catalog.d.ts +900 -34
  363. package/dist/public/operations/catalog.d.ts.map +1 -1
  364. package/dist/public/operations/catalog.js +130 -6
  365. package/dist/public/operations/check-executor.d.ts +2 -2
  366. package/dist/public/operations/check-executor.d.ts.map +1 -1
  367. package/dist/public/operations/check-executor.js +68 -13
  368. package/dist/public/operations/check-format-shared.d.ts +3 -0
  369. package/dist/public/operations/check-format-shared.d.ts.map +1 -1
  370. package/dist/public/operations/check-format-shared.js +3 -0
  371. package/dist/public/operations/check-helpers.d.ts +27 -2
  372. package/dist/public/operations/check-helpers.d.ts.map +1 -1
  373. package/dist/public/operations/check-helpers.js +62 -26
  374. package/dist/public/operations/contracts.d.ts +18 -0
  375. package/dist/public/operations/contracts.d.ts.map +1 -0
  376. package/dist/public/operations/contracts.js +334 -0
  377. package/dist/public/operations/discovery-entities.d.ts +3 -0
  378. package/dist/public/operations/discovery-entities.d.ts.map +1 -1
  379. package/dist/public/operations/discovery-entities.js +4 -0
  380. package/dist/public/operations/discovery-executors.d.ts +43 -7
  381. package/dist/public/operations/discovery-executors.d.ts.map +1 -1
  382. package/dist/public/operations/discovery-executors.js +216 -13
  383. package/dist/public/operations/index.d.ts +9 -4
  384. package/dist/public/operations/index.d.ts.map +1 -1
  385. package/dist/public/operations/index.js +8 -3
  386. package/dist/public/operations/migration-plan.d.ts +102 -0
  387. package/dist/public/operations/migration-plan.d.ts.map +1 -0
  388. package/dist/public/operations/migration-plan.js +539 -0
  389. package/dist/public/operations/node-ports.d.ts.map +1 -1
  390. package/dist/public/operations/node-ports.js +71 -11
  391. package/dist/public/operations/prolog-json.d.ts +14 -0
  392. package/dist/public/operations/prolog-json.d.ts.map +1 -1
  393. package/dist/public/operations/prolog-json.js +44 -5
  394. package/dist/public/operations/repair-plan.d.ts +3 -3
  395. package/dist/public/operations/repair-plan.d.ts.map +1 -1
  396. package/dist/public/operations/repair-plan.js +49 -18
  397. package/dist/public/operations/result-envelope.d.ts +14 -0
  398. package/dist/public/operations/result-envelope.d.ts.map +1 -0
  399. package/dist/public/operations/result-envelope.js +106 -0
  400. package/dist/public/operations/runtime-types.d.ts +102 -7
  401. package/dist/public/operations/runtime-types.d.ts.map +1 -1
  402. package/dist/public/operations/source-relationship-parity.d.ts +13 -0
  403. package/dist/public/operations/source-relationship-parity.d.ts.map +1 -0
  404. package/dist/public/operations/source-relationship-parity.js +162 -0
  405. package/dist/public/operations/specs/{autopilot.d.ts → bootstrap.d.ts} +9 -9
  406. package/dist/public/operations/specs/bootstrap.d.ts.map +1 -0
  407. package/dist/public/operations/specs/{autopilot.js → bootstrap.js} +8 -7
  408. package/dist/public/operations/specs/check-rules.generated.d.ts +5 -0
  409. package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -0
  410. package/dist/public/operations/specs/check-rules.generated.js +34 -0
  411. package/dist/public/operations/specs/check.d.ts +9 -4
  412. package/dist/public/operations/specs/check.d.ts.map +1 -1
  413. package/dist/public/operations/specs/check.js +10 -21
  414. package/dist/public/operations/specs/discovery.d.ts +87 -3
  415. package/dist/public/operations/specs/discovery.d.ts.map +1 -1
  416. package/dist/public/operations/specs/discovery.js +53 -3
  417. package/dist/public/operations/specs/modeling.d.ts +3 -3
  418. package/dist/public/operations/specs/modeling.js +3 -3
  419. package/dist/public/operations/specs/mutation-schemas.d.ts +251 -14
  420. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  421. package/dist/public/operations/specs/mutation-schemas.js +16 -6
  422. package/dist/public/operations/specs/mutation.d.ts +42 -2
  423. package/dist/public/operations/specs/mutation.d.ts.map +1 -1
  424. package/dist/public/operations/specs/mutation.js +26 -2
  425. package/dist/public/operations/specs/planning.d.ts +279 -0
  426. package/dist/public/operations/specs/planning.d.ts.map +1 -0
  427. package/dist/public/operations/specs/planning.js +197 -0
  428. package/dist/public/operations/specs/proof.d.ts +212 -0
  429. package/dist/public/operations/specs/proof.d.ts.map +1 -0
  430. package/dist/public/operations/specs/proof.js +30 -0
  431. package/dist/public/operations/specs/reporting.d.ts +23 -1
  432. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  433. package/dist/public/operations/specs/reporting.js +156 -11
  434. package/dist/public/operations/specs/upsert.d.ts +265 -14
  435. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  436. package/dist/public/operations/specs/upsert.js +9 -0
  437. package/dist/public/operations/symbol-repair-plan.d.ts +22 -0
  438. package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -0
  439. package/dist/public/operations/symbol-repair-plan.js +238 -0
  440. package/dist/public/operations/types.d.ts +52 -1
  441. package/dist/public/operations/types.d.ts.map +1 -1
  442. package/dist/public/proof-fingerprint.d.ts +54 -0
  443. package/dist/public/proof-fingerprint.d.ts.map +1 -0
  444. package/dist/public/proof-fingerprint.js +141 -0
  445. package/dist/public/proof-protocol.d.ts +354 -0
  446. package/dist/public/proof-protocol.d.ts.map +1 -0
  447. package/dist/public/proof-protocol.js +454 -0
  448. package/dist/public/proof-receipt.d.ts +279 -0
  449. package/dist/public/proof-receipt.d.ts.map +1 -0
  450. package/dist/public/proof-receipt.js +377 -0
  451. package/dist/public/schemas/entity.d.ts.map +1 -1
  452. package/dist/public/schemas/entity.js +22 -6
  453. package/dist/public/skills/kibi-bootstrap/SKILL.md +58 -0
  454. package/dist/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
  455. package/dist/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
  456. package/dist/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
  457. package/dist/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
  458. package/dist/public/skills/kibi-freshness/SKILL.md +39 -9
  459. package/dist/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
  460. package/dist/public/skills/kibi-freshness/resources/operation-access.md +6 -0
  461. package/dist/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
  462. package/dist/public/skills/kibi-traceability/SKILL.md +47 -47
  463. package/dist/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
  464. package/dist/public/skills/kibi-traceability/resources/operation-access.md +5 -0
  465. package/dist/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
  466. package/dist/public/skills/kibi-traceability/resources/traceability.md +8 -0
  467. package/dist/public/skills/kibi-usage/SKILL.md +136 -231
  468. package/dist/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
  469. package/dist/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
  470. package/dist/public/skills/kibi-usage/resources/operation-access.md +36 -38
  471. package/dist/public/skills/kibi-usage/resources/proof.md +105 -0
  472. package/dist/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
  473. package/dist/public/skills/kibi-usage/resources/source-authoring.md +31 -0
  474. package/dist/public/skills/kibi-usage/resources/workflows.md +57 -4
  475. package/dist/public/symbol-granularity.d.ts +3 -14
  476. package/dist/public/symbol-granularity.d.ts.map +1 -1
  477. package/dist/public/symbol-granularity.generated.d.ts +16 -0
  478. package/dist/public/symbol-granularity.generated.d.ts.map +1 -0
  479. package/dist/public/symbol-granularity.generated.js +20 -0
  480. package/dist/public/symbol-granularity.js +6 -46
  481. package/dist/public/telemetry-acceptance.d.ts +3 -70
  482. package/dist/public/telemetry-acceptance.d.ts.map +1 -1
  483. package/dist/public/telemetry-acceptance.js +11 -2
  484. package/dist/public/telemetry-remediation.js +1 -1
  485. package/dist/relationships/shards.d.ts +16 -0
  486. package/dist/relationships/shards.d.ts.map +1 -1
  487. package/dist/relationships/shards.js +87 -2
  488. package/dist/report/brand.d.ts +19 -0
  489. package/dist/report/brand.d.ts.map +1 -0
  490. package/dist/report/brand.js +112 -0
  491. package/dist/report/html-report.css +282 -0
  492. package/dist/report/html-report.d.ts +21 -0
  493. package/dist/report/html-report.d.ts.map +1 -0
  494. package/dist/report/html-report.js +700 -0
  495. package/dist/report/relative-time.d.ts +4 -0
  496. package/dist/report/relative-time.d.ts.map +1 -0
  497. package/dist/report/relative-time.js +46 -0
  498. package/dist/report/report-view.d.ts +17 -0
  499. package/dist/report/report-view.d.ts.map +1 -0
  500. package/dist/report/report-view.js +33 -0
  501. package/dist/report/repository.d.ts +35 -0
  502. package/dist/report/repository.d.ts.map +1 -0
  503. package/dist/report/repository.js +151 -0
  504. package/dist/runtime/cli-runtime.d.ts +2 -0
  505. package/dist/runtime/cli-runtime.d.ts.map +1 -1
  506. package/dist/runtime/cli-runtime.js +90 -23
  507. package/dist/schemas/entity.schema.json +1254 -239
  508. package/dist/search-ranking.d.ts +1 -0
  509. package/dist/search-ranking.d.ts.map +1 -1
  510. package/dist/search-ranking.js +3 -0
  511. package/dist/traceability/evidence-model.d.ts +30 -2
  512. package/dist/traceability/evidence-model.d.ts.map +1 -1
  513. package/dist/traceability/evidence-model.js +2 -2
  514. package/dist/traceability/git-staged.d.ts +20 -0
  515. package/dist/traceability/git-staged.d.ts.map +1 -1
  516. package/dist/traceability/git-staged.js +156 -37
  517. package/dist/traceability/markdown-validate.d.ts.map +1 -1
  518. package/dist/traceability/markdown-validate.js +12 -7
  519. package/dist/traceability/staged-diagnostics.d.ts +7 -0
  520. package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
  521. package/dist/traceability/staged-diagnostics.js +78 -7
  522. package/dist/traceability/staged-file-coverage.d.ts +33 -0
  523. package/dist/traceability/staged-file-coverage.d.ts.map +1 -0
  524. package/dist/traceability/staged-file-coverage.js +284 -0
  525. package/dist/traceability/staged-impact-contract.d.ts +3 -3
  526. package/dist/traceability/staged-impact-contract.d.ts.map +1 -1
  527. package/dist/traceability/staged-impact-contract.js +12 -40
  528. package/dist/traceability/staged-symbols-manifest.d.ts +13 -0
  529. package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
  530. package/dist/traceability/staged-symbols-manifest.js +142 -26
  531. package/dist/traceability/symbol-extract.d.ts +5 -0
  532. package/dist/traceability/symbol-extract.d.ts.map +1 -1
  533. package/dist/traceability/symbol-extract.js +1 -1
  534. package/dist/traceability/temp-kb.d.ts +2 -0
  535. package/dist/traceability/temp-kb.d.ts.map +1 -1
  536. package/dist/traceability/temp-kb.js +14 -2
  537. package/dist/types/entities.d.ts +5 -0
  538. package/dist/types/entities.d.ts.map +1 -1
  539. package/dist/utils/branch-resolver.d.ts +25 -10
  540. package/dist/utils/branch-resolver.d.ts.map +1 -1
  541. package/dist/utils/branch-resolver.js +124 -38
  542. package/dist/utils/branch-store-locator.d.ts +23 -0
  543. package/dist/utils/branch-store-locator.d.ts.map +1 -0
  544. package/dist/utils/branch-store-locator.js +90 -0
  545. package/dist/utils/branch-store.d.ts +21 -0
  546. package/dist/utils/branch-store.d.ts.map +1 -0
  547. package/dist/utils/branch-store.js +157 -0
  548. package/dist/utils/config.d.ts +39 -37
  549. package/dist/utils/config.d.ts.map +1 -1
  550. package/dist/utils/config.js +107 -119
  551. package/dist/utils/kb-manifest.d.ts +35 -0
  552. package/dist/utils/kb-manifest.d.ts.map +1 -0
  553. package/dist/utils/kb-manifest.js +154 -0
  554. package/dist/utils/kb-paths.d.ts +54 -0
  555. package/dist/utils/kb-paths.d.ts.map +1 -0
  556. package/dist/utils/kb-paths.js +125 -0
  557. package/dist/utils/manifest-paths.d.ts +4 -4
  558. package/dist/utils/manifest-paths.d.ts.map +1 -1
  559. package/dist/utils/manifest-paths.js +8 -56
  560. package/dist/utils/rule-registry.d.ts +42 -24
  561. package/dist/utils/rule-registry.d.ts.map +1 -1
  562. package/dist/utils/rule-registry.generated.d.ts +97 -0
  563. package/dist/utils/rule-registry.generated.d.ts.map +1 -0
  564. package/dist/utils/rule-registry.generated.js +125 -0
  565. package/dist/utils/rule-registry.js +52 -148
  566. package/dist/utils/schema-version.d.ts +5 -5
  567. package/dist/utils/schema-version.d.ts.map +1 -1
  568. package/dist/utils/schema-version.js +26 -6
  569. package/dist/utils/strict-modeling.d.ts +1 -4
  570. package/dist/utils/strict-modeling.d.ts.map +1 -1
  571. package/dist/utils/strict-modeling.js +8 -9
  572. package/package.json +47 -11
  573. package/schema/config.json +2 -2
  574. package/schema/manifest.json +26 -0
  575. package/src/public/branch-resolver.ts +1 -0
  576. package/src/public/check-types.ts +22 -19
  577. package/src/public/diagnostic-usage.ts +84 -6
  578. package/src/public/distribution-parity.ts +17 -9
  579. package/src/public/ignore-policy.ts +16 -10
  580. package/src/public/impact/coverage-depth-quality.ts +37 -1
  581. package/src/public/impact/diagnostics.ts +2 -1
  582. package/src/public/impact/diff-meaning.ts +11 -4
  583. package/src/public/impact/full-kb-quality.ts +545 -41
  584. package/src/public/impact/manifest.ts +2 -4
  585. package/src/public/operational-artifacts.ts +9 -1
  586. package/src/public/operations/catalog.ts +153 -10
  587. package/src/public/operations/check-executor.ts +98 -15
  588. package/src/public/operations/check-format-shared.ts +6 -0
  589. package/src/public/operations/check-helpers.ts +74 -35
  590. package/src/public/operations/contracts.ts +382 -0
  591. package/src/public/operations/discovery-entities.ts +7 -0
  592. package/src/public/operations/discovery-executors.ts +315 -25
  593. package/src/public/operations/index.ts +9 -4
  594. package/src/public/operations/migration-plan.ts +747 -0
  595. package/src/public/operations/node-ports.ts +87 -13
  596. package/src/public/operations/prolog-json.ts +60 -5
  597. package/src/public/operations/repair-plan.ts +60 -22
  598. package/src/public/operations/result-envelope.ts +141 -0
  599. package/src/public/operations/runtime-types.ts +96 -5
  600. package/src/public/operations/source-relationship-parity.ts +226 -0
  601. package/src/public/operations/specs/{autopilot.ts → bootstrap.ts} +17 -16
  602. package/src/public/operations/specs/check-rules.generated.ts +37 -0
  603. package/src/public/operations/specs/check.ts +14 -22
  604. package/src/public/operations/specs/discovery.ts +57 -3
  605. package/src/public/operations/specs/modeling.ts +3 -3
  606. package/src/public/operations/specs/mutation-schemas.ts +24 -6
  607. package/src/public/operations/specs/mutation.ts +27 -2
  608. package/src/public/operations/specs/planning.ts +241 -0
  609. package/src/public/operations/specs/proof.ts +43 -0
  610. package/src/public/operations/specs/reporting.ts +193 -12
  611. package/src/public/operations/specs/upsert.ts +10 -0
  612. package/src/public/operations/symbol-repair-plan.ts +324 -0
  613. package/src/public/operations/types.ts +62 -1
  614. package/src/public/proof-fingerprint.ts +216 -0
  615. package/src/public/proof-protocol-types.d.ts +96 -0
  616. package/src/public/proof-protocol.ts +589 -0
  617. package/src/public/proof-receipt.ts +499 -0
  618. package/src/public/schemas/entity.ts +27 -6
  619. package/src/public/skills/kibi-bootstrap/SKILL.md +58 -0
  620. package/src/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
  621. package/src/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
  622. package/src/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
  623. package/src/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
  624. package/src/public/skills/kibi-freshness/SKILL.md +39 -9
  625. package/src/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
  626. package/src/public/skills/kibi-freshness/resources/operation-access.md +6 -0
  627. package/src/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
  628. package/src/public/skills/kibi-traceability/SKILL.md +47 -47
  629. package/src/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
  630. package/src/public/skills/kibi-traceability/resources/operation-access.md +5 -0
  631. package/src/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
  632. package/src/public/skills/kibi-traceability/resources/traceability.md +8 -0
  633. package/src/public/skills/kibi-usage/SKILL.md +136 -231
  634. package/src/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
  635. package/src/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
  636. package/src/public/skills/kibi-usage/resources/operation-access.md +36 -38
  637. package/src/public/skills/kibi-usage/resources/proof.md +105 -0
  638. package/src/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
  639. package/src/public/skills/kibi-usage/resources/source-authoring.md +31 -0
  640. package/src/public/skills/kibi-usage/resources/workflows.md +57 -4
  641. package/src/public/symbol-granularity.generated.ts +41 -0
  642. package/src/public/symbol-granularity.ts +35 -59
  643. package/src/public/telemetry-acceptance-types.d.ts +98 -0
  644. package/src/public/telemetry-acceptance.ts +30 -93
  645. package/src/public/telemetry-remediation.ts +1 -1
  646. package/src/schemas/entity.schema.json +1254 -239
  647. package/templates/github/kibi-badge.yml +86 -0
  648. package/templates/github/kibi-report.yml +84 -0
  649. package/dist/operations/autopilot/activation.d.ts +0 -4
  650. package/dist/operations/autopilot/activation.d.ts.map +0 -1
  651. package/dist/operations/autopilot/candidates.d.ts +0 -4
  652. package/dist/operations/autopilot/discovery.d.ts.map +0 -1
  653. package/dist/operations/autopilot/generate.d.ts +0 -8
  654. package/dist/operations/autopilot/generate.d.ts.map +0 -1
  655. package/dist/operations/autopilot/generate.js +0 -112
  656. package/dist/operations/autopilot/guidance.d.ts.map +0 -1
  657. package/dist/operations/autopilot/presentation.d.ts +0 -13
  658. package/dist/operations/autopilot/presentation.d.ts.map +0 -1
  659. package/dist/operations/autopilot/presentation.js +0 -91
  660. package/dist/operations/autopilot/types.d.ts.map +0 -1
  661. package/dist/operations/autopilot/types.js +0 -8
  662. package/dist/public/operations/specs/autopilot.d.ts.map +0 -1
  663. package/dist/public/skills/init-kibi/SKILL.md +0 -62
  664. package/dist/public/verification-receipt.d.ts +0 -75
  665. package/dist/public/verification-receipt.d.ts.map +0 -1
  666. package/dist/public/verification-receipt.js +0 -129
  667. package/src/public/skills/init-kibi/SKILL.md +0 -62
  668. package/src/public/verification-receipt.ts +0 -170
  669. /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts +0 -0
  670. /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.js +0 -0
  671. /package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts +0 -0
  672. /package/dist/operations/{autopilot → bootstrap}/requirement-claims.js +0 -0
@@ -0,0 +1,375 @@
1
+ import { usageHintsForSchema, } from "./predicate-ranker.js";
2
+ export const MIN_APPLICABILITY_SCORE = 0.62;
3
+ export const STRONG_APPLICABILITY_SCORE = 0.8;
4
+ export const WEAK_CANDIDATE_MARGIN = 0.06;
5
+ const NORMATIVE_OR_VALIDITY_PATTERN = /\b(?:must|shall|should|required|requires?|may\s+only|only\s+.+?\s+(?:may|can)|must\s+not|shall\s+not|cannot|can't|allowed|denied|forbidden|prohibited|invalid|unresolved|reject(?:s|ed|ion)?|fail(?:s|ed|ure)?\s+(?:clearly|explicitly|with)|defaults?\s+to|states?\s+are|owned\s+by|initializes?\s+after|before|unless|when|if|(?:exception|exempt)\s+(?:to|from|when|if|unless))\b/i;
6
+ function expressesNormativeOrValidityIntent(text) {
7
+ return /^\s*no\b/i.test(text) || NORMATIVE_OR_VALIDITY_PATTERN.test(text);
8
+ }
9
+ const INTENT_RULES = {
10
+ state: {
11
+ allOf: [
12
+ [/\bstate\b|\bmode\b/i],
13
+ [/\benter|\bidle\b|\bactive\b|\bdraft\b|\bedit\b/i],
14
+ ],
15
+ prohibited: [/states?\s+are|one\s+of|transitions?\s+from/i],
16
+ },
17
+ retention_policy: {
18
+ allOf: [
19
+ [/retain|retention/i],
20
+ [/exist|duration|days?|months?|years?|weeks?|hours?/i],
21
+ ],
22
+ prohibited: [/rate\s+limit|session\s+expir|latency|timeout/i],
23
+ },
24
+ offline_behavior_rule: {
25
+ allOf: [[/offline/i], [/non[- ]blocking|resilien|synchron|gameplay/i]],
26
+ },
27
+ dependency_resolution_policy: {
28
+ allOf: [
29
+ [/dependenc|package|module|plugin|mcp/i],
30
+ [/resolv|locat|load|execut|acquir/i],
31
+ [
32
+ /consumer[- ]local|project[- ]local|plugin[- ]local|consumer[- ]scoped|workspace\s+(?:scope|semantics)|global(?:\s+fallback|\s+installation|\s+runtime)?|without\s+(?:downloading|installing)|no\s+(?:download|global\s+fallback)|must\s+not\s+(?:download|install)|acquisition\s+(?:policy|restriction)/i,
33
+ ],
34
+ ],
35
+ prohibited: [
36
+ /ordered|first\s+then|deterministic\s+order|resolution\s+order|child\s+process|invalid|ambiguous|missing|actionable|failure/i,
37
+ ],
38
+ },
39
+ ordered_resolution_strategy: {
40
+ allOf: [
41
+ [/resolv|lookup|candidate|source|dependency/i],
42
+ [/ordered|first|then|priority|candidates?|workspace|cwd/i],
43
+ ],
44
+ prohibited: [/invalid|ambiguous|placeholder|child\s+process|spawn/i],
45
+ },
46
+ resolution_failure_policy: {
47
+ allOf: [
48
+ [/invalid|ambiguous|placeholder|root|usable|reject|fail|error/i],
49
+ [/resolv|input|condition|clear|outcome|fail/i],
50
+ ],
51
+ prohibited: [/child\s+process|spawn|stdio|package-manager.*exception/i],
52
+ },
53
+ process_delegation_contract: {
54
+ allOf: [
55
+ [
56
+ /child\s+process|spawn|executable|cwd|working\s+directory|environment|env|stdio|terminat|exit/i,
57
+ ],
58
+ [/launcher|delegate|delegat|process|command|spawn/i],
59
+ ],
60
+ prohibited: [
61
+ /dependency\s+resolution|invalid\s+placeholder|ambiguous\s+root/i,
62
+ ],
63
+ },
64
+ failure_behavior: {
65
+ allOf: [
66
+ [
67
+ /failure|fail|missing(?:\s+\S+){0,4}\s+dependenc|missing\s+(?:project[- ]local\s+)?(?:kibi[- ]mcp|package|module)|dependenc\w*\s+(?:is\s+)?missing|unavailable|exception|error\s+(?:behavior|outcome|handling|occurs)|errors\s+(?:or|and)\s+(?:timeouts?|failures?)/i,
68
+ ],
69
+ [/report|outcome|actionable|clear|return|surface|throw|leave|recover/i],
70
+ ],
71
+ prohibited: [
72
+ /invalid\s+placeholder|ambiguous\s+root|ordered\s+source|child\s+process/i,
73
+ ],
74
+ },
75
+ abstraction_boundary_rule: {
76
+ allOf: [
77
+ [
78
+ /renderer[- ]neutral|vendor[- ]neutral|implementation[- ]neutral|swappable|abstraction/i,
79
+ ],
80
+ [/persist|contract|api\b|data|scene|replace|storage/i],
81
+ ],
82
+ prohibited: [/permission|delete|export/i],
83
+ },
84
+ exception_rule: {
85
+ // Package-manager wording can provide context for an exception, but it
86
+ // is not itself an exception claim. Require an explicit exception
87
+ // relationship so descriptive documentation cannot select this rule.
88
+ anyOf: [
89
+ /\bunless\b/i,
90
+ /\bexcept\s+(?:when|if|for|that)\b/i,
91
+ /\b(?:is|are|remains?|constitutes?)\s+(?:the\s+)?(?:only\s+)?exception\s+to\b/i,
92
+ /\b(?:is|are|remains?)\s+exempt\s+(?:from|unless|when|if)\b/i,
93
+ ],
94
+ prohibited: [/child\s+process|stdio|ordered\s+source/i],
95
+ },
96
+ permission_rule: {
97
+ allOf: [
98
+ [/only|may|can|allowed|denied|forbidden|must\s+not|cannot/i],
99
+ [/delete|export|access|read|write|update|remove|manage|permission/i],
100
+ ],
101
+ },
102
+ resource_constraint: {
103
+ allOf: [
104
+ [
105
+ /latency|timeout|throughput|quota|memory|cpu|size|resource|response\s+time|upload|download|payload|attachment|file|complete[sd]?\s+in\b|duration|frame\s+rate|\bfps\b/i,
106
+ ],
107
+ [
108
+ /at\s+most|at\s+least|not\s+exceed|maximum|minimum|under|below|above|within|limit|bounded|enforced|<[=>]?\s*\d|\b\d+(?:\.\d+)?\s*(?:ms|milliseconds?|s|seconds?|mb|gb|fps|%)?\b/i,
109
+ ],
110
+ ],
111
+ prohibited: [
112
+ /only|allowed|denied|forbidden|permission|authorize|must\s+not\s+(?:delete|export|access|write|update|remove|manage)/i,
113
+ ],
114
+ },
115
+ migration_boundary_rule: {
116
+ allOf: [
117
+ [/legacy|migration|fabricdata/i],
118
+ [
119
+ /canonical|migration\s+input|compatibility|only\s+(?:be\s+)?(?:read|used)|read\s+only/i,
120
+ ],
121
+ ],
122
+ prohibited: [/converted\s+once|no\s+data\s+loss|one[- ]time\s+conversion/i],
123
+ },
124
+ uniqueness_constraint: {
125
+ allOf: [[/at\s+most\s+one|unique|uniqueness/i], [/\bper\b|scope|within/i]],
126
+ prohibited: [/rate\s+limit|per\s+(?:second|minute|hour|day|window)/i],
127
+ },
128
+ state_membership: {
129
+ allOf: [
130
+ [/states?\s+are|terminal\s+states?|allowed\s+states?|one\s+of/i],
131
+ [/\bstate|ready|anonymous|terminal|allowed|enumerated/i],
132
+ ],
133
+ prohibited: [/transitions?\s+from/i],
134
+ },
135
+ conditional_behavior: {
136
+ allOf: [
137
+ [/^\s*(?:if|when)\b|\b(?:if|when)\b/i],
138
+ [/\bmust\b|\bshall\b|\bshould\b|\bbecomes?\b|\bthen\b/i],
139
+ ],
140
+ anyOf: [
141
+ /^when\s+.+?,\s*(?:the\s+)?.+?\s+(?:must|shall|should)\s+/i,
142
+ /^if\s+.+?,\s*(?:it|they|the\s+.+?)\s+(?:becomes?|must|shall|should)\b/i,
143
+ ],
144
+ },
145
+ rate_limit: {
146
+ allOf: [
147
+ [/rate|frequency|repeated|requests?|actions?|operations?/i],
148
+ [
149
+ /per\s+(?:second|minute|hour|day|window)|every\s+\w+|time\s+window|window/i,
150
+ ],
151
+ ],
152
+ prohibited: [/upload|download|payload|attachment|file\s+size/i],
153
+ },
154
+ data_residency_rule: {
155
+ allOf: [
156
+ [/stored|processed|kept/i],
157
+ [/region|jurisdiction|country|zone|area/i],
158
+ ],
159
+ prohibited: [/redis|cache|memory|bucket|database\s+instance/i],
160
+ },
161
+ coding_standard_rule: {
162
+ allOf: [
163
+ [/use|avoid/i],
164
+ [/api|apis|code|framework|hook|pattern|signal|schema|type|computed/i],
165
+ ],
166
+ prohibited: [/user|admin|access|permission|mfa|customer/i],
167
+ },
168
+ release_gate_rule: {
169
+ allOf: [
170
+ [/release|deploy|testflight|app\s+store|distribution|build/i],
171
+ [/pass|gate|before|configuration/i],
172
+ ],
173
+ prohibited: [/checkout|payment|fraud|workflow|capture/i],
174
+ },
175
+ security_configuration_rule: {
176
+ allOf: [
177
+ [/security|database|deployment|function|rpc|search_path|trigger/i],
178
+ [/explicit|configuration|setting/i],
179
+ ],
180
+ prohibited: [/display\s+label|ui|profile\s+field/i],
181
+ },
182
+ absence_requirement: {
183
+ anyOf: [/\bno\b|absent|removed|not\s+exist|must\s+not\s+exist/i],
184
+ },
185
+ fail_closed_authorization_rule: {
186
+ allOf: [
187
+ [
188
+ /fail[- ]closed|deny|denied|reject|never\s+fall\s+back|without\s+(?:creating|falling)/i,
189
+ ],
190
+ [
191
+ /invalid|missing|unauthorized|unauthenticated|error|timeout|expired|fallback|role|credential/i,
192
+ ],
193
+ ],
194
+ prohibited: [
195
+ /defaults?\s+to\s+(?:a\s+)?(?:student|user|role|identity)\b(?!\s+must)/i,
196
+ ],
197
+ },
198
+ deployment_precondition_rule: {
199
+ allOf: [
200
+ [/deploy(?:ment|ed|ing)?|rollout|release/i],
201
+ [
202
+ /hold|block|abort|precondition|unsupported|before\s+(?:the\s+)?(?:release|deployment|rollout)/i,
203
+ ],
204
+ ],
205
+ prohibited: [/checkout|payment|fraud|workflow|capture/i],
206
+ },
207
+ data_migration_rule: {
208
+ allOf: [
209
+ [/conver(?:t|s(?:ion|ions))|migrat/i],
210
+ [/once|one[- ]time|no\s+data\s+loss|canonical|before/i],
211
+ ],
212
+ prohibited: [
213
+ /may\s+only\s+be\s+read|migration\s+input|never\s+fall\s+back|reads?\s+only/i,
214
+ ],
215
+ },
216
+ diagnostic_visibility_rule: {
217
+ allOf: [
218
+ [
219
+ /log(?:ged|ging)?|silent|not\s+shown|never\s+shown|internal\s+detail|raw/i,
220
+ ],
221
+ [/user|ui\b|friendly|actionable|shown|display|message|debugging/i],
222
+ ],
223
+ prohibited: [/audit\s+log|consent/i],
224
+ },
225
+ mutation_authority_rule: {
226
+ allOf: [
227
+ [/read[- ]only|server[- ]side|row[- ]level|\brls\b|trigger/i],
228
+ [/client|view|surface|api|table|service|notification|ui\b/i],
229
+ ],
230
+ prohibited: [/delete|export|remove|permission/i],
231
+ },
232
+ request_deduplication_rule: {
233
+ allOf: [
234
+ [/deduplicat|coalesc|in[- ]flight/i],
235
+ [/request|quer(?:y|ies)|fetch|call|parallel|redundant/i],
236
+ ],
237
+ prohibited: [/rate\s+limit|batch/i],
238
+ },
239
+ async_boundary_rule: {
240
+ allOf: [
241
+ [
242
+ /synchron(?:ous|ously)|not\s+await|defer|background|in\s+flight|non[- ]blocking/i,
243
+ ],
244
+ [/callback|handler|refresh|operation|work|action|ui\b/i],
245
+ ],
246
+ prohibited: [/timeout|rate\s+limit/i],
247
+ },
248
+ canonical_identifier_rule: {
249
+ allOf: [[/canonical/i], [/identifier|\bid\b|videoid|key|resolve/i]],
250
+ prohibited: [/renderer[- ]neutral|legacy/i],
251
+ },
252
+ responsive_breakpoint_rule: {
253
+ allOf: [
254
+ [/breakpoint|landscape|portrait|viewport|responsive/i],
255
+ [/mobile|desktop|tablet|width|height|px\b/i],
256
+ ],
257
+ prohibited: [/server|database/i],
258
+ },
259
+ operational_pause_rule: {
260
+ allOf: [
261
+ [/pause|halt|suspend|kill\s*switch|freeze/i],
262
+ [/block|new|preserve|existing|resumable|continue/i],
263
+ ],
264
+ prohibited: [/deletion|soft\s+delete/i],
265
+ },
266
+ };
267
+ function round(value) {
268
+ return Math.round(Math.max(0, Math.min(0.98, value)) * 100) / 100;
269
+ }
270
+ function countHintCues(text, values, minimumCoverage = 0) {
271
+ if (!values)
272
+ return 0;
273
+ const lower = text.toLowerCase();
274
+ return values.reduce((count, value) => {
275
+ const cues = (value.toLowerCase().match(/[a-z0-9]+/g) ?? []).filter((cue) => cue.length > 3 &&
276
+ !["when", "this", "that", "with", "from", "use"].includes(cue));
277
+ if (cues.length === 0)
278
+ return count;
279
+ const matched = cues.filter((cue) => lower.includes(cue)).length;
280
+ // A single generic word from a do_not_use_when sentence is not negative
281
+ // evidence. Require an exact phrase or at least two meaningful cues.
282
+ const phrase = value
283
+ .toLowerCase()
284
+ .replace(/^do\s+not\s+use\s+(?:when|for)\s+/, "")
285
+ .replace(/^use\s+(?:when|for)\s+/, "")
286
+ .replace(/[^a-z0-9]+/g, " ")
287
+ .trim();
288
+ const exactPhrase = phrase.length > 0 && lower.includes(phrase);
289
+ const requiredMatches = minimumCoverage > 0
290
+ ? Math.max(2, Math.ceil(cues.length * minimumCoverage))
291
+ : Math.min(2, cues.length);
292
+ return count + (exactPhrase || matched >= requiredMatches ? 1 : 0);
293
+ }, 0);
294
+ }
295
+ function specificityEvidence(schema, text) {
296
+ const values = [
297
+ schema.predicate_name,
298
+ ...(schema.aliases ?? []),
299
+ ...(schema.paraphrase_templates ?? []),
300
+ ...schema.keywords,
301
+ ];
302
+ const lower = text.toLowerCase();
303
+ const hits = values.reduce((count, value) => {
304
+ const cues = value.toLowerCase().match(/[a-z0-9]+/g) ?? [];
305
+ return (count +
306
+ (cues.some((cue) => cue.length > 3 && lower.includes(cue)) ? 1 : 0));
307
+ }, 0);
308
+ return Math.min(1, hits / Math.max(3, values.length / 2));
309
+ }
310
+ /**
311
+ * Evaluate semantic fit after retrieval and before argument binding. The
312
+ * function deliberately does not inspect argument values: complete-looking
313
+ * terms cannot make a semantically unrelated schema eligible.
314
+ */
315
+ export function evaluateSemanticApplicability(ranked, text) {
316
+ const schema = ranked.schema;
317
+ const rule = INTENT_RULES[schema.predicate_name];
318
+ const usageHints = usageHintsForSchema(schema);
319
+ const positiveHints = countHintCues(text, usageHints?.use_when);
320
+ const negativeHints = countHintCues(text, usageHints?.do_not_use_when, 0.6);
321
+ const specific = specificityEvidence(schema, text);
322
+ const reasons = [];
323
+ if (!expressesNormativeOrValidityIntent(text)) {
324
+ reasons.push("prose does not express normative or validity intent");
325
+ }
326
+ let positive = specific + positiveHints * 0.16;
327
+ let negative = negativeHints * 0.2 + ranked.components.negative_evidence * 0.45;
328
+ if (ranked.components.exact_pattern >= 0.9) {
329
+ // Exact structural scorers are reviewed semantic patterns, not mere token
330
+ // overlap. They may satisfy the baseline intent evidence unless an
331
+ // explicit contradictory cue below rejects them.
332
+ positive += 0.38;
333
+ }
334
+ if (rule?.allOf) {
335
+ for (const group of rule.allOf) {
336
+ if (group.some((pattern) => pattern.test(text)))
337
+ positive += 0.22;
338
+ else
339
+ reasons.push(`required semantic cue absent for ${schema.predicate_name}`);
340
+ }
341
+ // A declared intent rule that satisfies every cue group is meaningful
342
+ // semantic evidence even when lexical retrieval was weak (for example,
343
+ // "timeout must not exceed 30 seconds" versus a short schema keyword
344
+ // list). Give that complete match a bounded applicability lift.
345
+ if (rule.allOf.every((group) => group.some((pattern) => pattern.test(text))))
346
+ positive += 0.2;
347
+ }
348
+ if (rule?.anyOf && !rule.anyOf.some((pattern) => pattern.test(text))) {
349
+ reasons.push(`intent cues do not describe ${schema.predicate_name}`);
350
+ }
351
+ else if (rule?.anyOf) {
352
+ positive += 0.26;
353
+ }
354
+ const prohibited = [...(rule?.prohibited ?? [])].filter((pattern) => pattern.test(text));
355
+ if (prohibited.length > 0) {
356
+ negative += prohibited.length * 0.35;
357
+ reasons.push(`prohibited or contradictory cue: ${prohibited
358
+ .map((pattern) => pattern.source)
359
+ .join(", ")}`);
360
+ }
361
+ if (negativeHints > 0) {
362
+ reasons.push("usage guidance says this schema is not for the supplied intent");
363
+ }
364
+ const score = round(ranked.score * 0.42 +
365
+ Math.min(1, positive) * 0.58 -
366
+ Math.min(1, negative) * 0.46);
367
+ if (score < MIN_APPLICABILITY_SCORE) {
368
+ reasons.push(`applicability score ${score.toFixed(2)} is below conservative threshold ${MIN_APPLICABILITY_SCORE.toFixed(2)}`);
369
+ }
370
+ return {
371
+ eligible: reasons.length === 0 && score >= MIN_APPLICABILITY_SCORE,
372
+ reasons: Array.from(new Set(reasons)),
373
+ applicabilityScore: score,
374
+ };
375
+ }
@@ -1,6 +1,17 @@
1
- import type { PredicateSchemaCandidate, PredicateSuggestion, SuggestPredicatesArgs } from "./predicate-types.js";
2
- export declare function buildSuggestion(schema: PredicateSchemaCandidate, text: string, subject: string, score: number, argumentBindings?: Readonly<Record<string, string>>, polarityHint?: "assert" | "deny"): PredicateSuggestion;
1
+ import type { PredicateSchemaCandidate, PredicateScoreComponents, PredicateSuggestion, RecommendedPredicateSchema, SuggestPredicatesArgs } from "./predicate-types.js";
2
+ export declare function buildSuggestion(schema: PredicateSchemaCandidate, text: string, subject: string, score: number, argumentBindings?: Readonly<Record<string, string>>, polarityHint?: "assert" | "deny", diagnostics?: {
3
+ eligibility?: "eligible" | "rejected";
4
+ rejectionReasons?: readonly string[];
5
+ applicabilityScore?: number;
6
+ scoreComponents?: PredicateScoreComponents;
7
+ explicitSubject?: boolean;
8
+ }): PredicateSuggestion;
3
9
  export declare function buildPredicateApplyPlan(suggestion: PredicateSuggestion, args: SuggestPredicatesArgs): Array<Record<string, unknown>>;
4
10
  export declare function buildRelationshipPlan(factId: string | undefined, requirementId: string | undefined, claimText?: string, existingLogicClaims?: readonly string[]): Record<string, unknown> | null;
5
11
  export declare function buildGapApplyPlan(text: string, args: SuggestPredicatesArgs): Array<Record<string, unknown>>;
12
+ /**
13
+ * Build a review-only schema draft when retrieval found no eligible schema.
14
+ * The draft is deterministic and intentionally contains no apply plan.
15
+ */
16
+ export declare function buildPredicateSchemaDraft(text: string, subject: string): RecommendedPredicateSchema;
6
17
  //# sourceMappingURL=predicate-applyplan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"predicate-applyplan.d.ts","sourceRoot":"","sources":["../../../src/operations/modeling/predicate-applyplan.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAI9B,wBAAgB,eAAe,CAC7B,MAAM,EAAE,wBAAwB,EAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,gBAAgB,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EACvD,YAAY,CAAC,EAAE,QAAQ,GAAG,MAAM,GAC/B,mBAAmB,CAmCrB;AAGD,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,mBAAmB,EAC/B,IAAI,EAAE,qBAAqB,GAC1B,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiChC;AAGD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,SAAS,CAAC,EAAE,MAAM,EAClB,mBAAmB,GAAE,SAAS,MAAM,EAAO,GAC1C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAwBhC;AAGD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,qBAAqB,GAC1B,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA+BhC"}
1
+ {"version":3,"file":"predicate-applyplan.d.ts","sourceRoot":"","sources":["../../../src/operations/modeling/predicate-applyplan.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAEV,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAI9B,wBAAgB,eAAe,CAC7B,MAAM,EAAE,wBAAwB,EAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,gBAAgB,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EACvD,YAAY,CAAC,EAAE,QAAQ,GAAG,MAAM,EAChC,WAAW,CAAC,EAAE;IACZ,WAAW,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACtC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACA,mBAAmB,CA6ErB;AAGD,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,mBAAmB,EAC/B,IAAI,EAAE,qBAAqB,GAC1B,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAqChC;AAGD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,SAAS,CAAC,EAAE,MAAM,EAClB,mBAAmB,GAAE,SAAS,MAAM,EAAO,GAC1C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAwBhC;AAGD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,qBAAqB,GAC1B,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA+BhC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,0BAA0B,CAoE5B"}
@@ -1,17 +1,31 @@
1
1
  import { semanticClaimKey } from "../semantic-advisor/clauses.js";
2
+ import { exactLauncherPredicateArgs } from "../semantic-advisor/predicate-rules-launcher.js";
3
+ import { aggregateBindingProvenance, bindingCanBeApplied, classifyBinding, isGenericPlaceholder, } from "./predicate-bindings.js";
2
4
  import { inferArgs } from "./predicate-inference.js";
3
5
  import { schemaForCandidate } from "./predicate-loader.js";
4
6
  import { hashId } from "./predicate-utils.js";
5
7
  // implements REQ-mcp-suggest-predicates
6
- export function buildSuggestion(schema, text, subject, score, argumentBindings = {}, polarityHint) {
8
+ export function buildSuggestion(schema, text, subject, score, argumentBindings = {}, polarityHint, diagnostics) {
7
9
  const inferredArgs = inferArgs(schema, text, subject);
10
+ const canonicalLauncherArgs = exactLauncherPredicateArgs(schema.predicate_name, text);
8
11
  const predicateArgs = schema.argument_names.map((name, index) => {
9
12
  const exactBinding = argumentBindings[name];
10
13
  return typeof exactBinding === "string" && exactBinding.trim().length > 0
11
14
  ? exactBinding.trim()
12
15
  : (inferredArgs[index] ?? "unknown");
13
16
  });
14
- const unboundArguments = schema.argument_names.filter((_name, index) => predicateArgs[index] === "unknown");
17
+ const bindingProvenanceByArgument = Object.fromEntries(schema.argument_names.map((name, index) => [
18
+ name,
19
+ classifyBinding(predicateArgs[index] ?? "unknown", text, (typeof argumentBindings[name] === "string" &&
20
+ argumentBindings[name].trim().length > 0) ||
21
+ (diagnostics?.explicitSubject === true && index === 0), canonicalLauncherArgs?.[index] === predicateArgs[index] &&
22
+ !(index === 0 &&
23
+ predicateArgs[index] === "launcher" &&
24
+ diagnostics?.explicitSubject !== true &&
25
+ typeof argumentBindings[name] !== "string")),
26
+ ]));
27
+ const bindingProvenance = aggregateBindingProvenance(Object.values(bindingProvenanceByArgument));
28
+ const unboundArguments = schema.argument_names.filter((name) => !bindingCanBeApplied(bindingProvenanceByArgument[name] ?? "placeholder"));
15
29
  const canonicalKey = `${schema.predicate_name}(${predicateArgs.join(",")})`;
16
30
  // Permission-style inference carries the deontic decision as its final
17
31
  // argument. Preserve that polarity in the typed suggestion instead of
@@ -29,6 +43,21 @@ export function buildSuggestion(schema, text, subject, score, argumentBindings =
29
43
  polarity,
30
44
  binding_status: unboundArguments.length === 0 ? "complete" : "incomplete",
31
45
  unbound_arguments: unboundArguments,
46
+ binding_provenance: bindingProvenance,
47
+ binding_provenance_by_argument: bindingProvenanceByArgument,
48
+ eligibility: diagnostics?.eligibility ?? "eligible",
49
+ rejection_reasons: [...(diagnostics?.rejectionReasons ?? [])],
50
+ applicability_score: diagnostics?.applicabilityScore ?? score,
51
+ score_components: diagnostics?.scoreComponents ?? {
52
+ exact_pattern: score,
53
+ keyword_hits: 0,
54
+ descriptor_overlap: 0,
55
+ usage_match: 0,
56
+ negative_evidence: 0,
57
+ broad_token_penalty: 0,
58
+ specificity_bonus: 0,
59
+ total: score,
60
+ },
32
61
  score,
33
62
  rationale: `Matched ${schema.predicate_name} because the prose overlaps with ${schema.tags.join(", ")} cues.`,
34
63
  schema: schemaForCandidate(schema),
@@ -36,7 +65,8 @@ export function buildSuggestion(schema, text, subject, score, argumentBindings =
36
65
  }
37
66
  // implements REQ-mcp-suggest-predicates
38
67
  export function buildPredicateApplyPlan(suggestion, args) {
39
- if (suggestion.binding_status !== "complete")
68
+ if (suggestion.binding_status !== "complete" ||
69
+ suggestion.eligibility !== "eligible")
40
70
  return [];
41
71
  const claimKey = semanticClaimKey(args.text);
42
72
  const factId = hashId("FACT-PRED", [
@@ -127,3 +157,70 @@ export function buildGapApplyPlan(text, args) {
127
157
  },
128
158
  ];
129
159
  }
160
+ /**
161
+ * Build a review-only schema draft when retrieval found no eligible schema.
162
+ * The draft is deterministic and intentionally contains no apply plan.
163
+ */
164
+ export function buildPredicateSchemaDraft(text, subject) {
165
+ const lower = text.toLowerCase();
166
+ const words = lower.match(/[a-z][a-z0-9-]{3,}/g) ?? [];
167
+ const ignored = new Set([
168
+ "must",
169
+ "shall",
170
+ "should",
171
+ "when",
172
+ "where",
173
+ "that",
174
+ "with",
175
+ "from",
176
+ "into",
177
+ "only",
178
+ "this",
179
+ "there",
180
+ "their",
181
+ "required",
182
+ "requires",
183
+ ]);
184
+ const terms = Array.from(new Set(words.filter((word) => !ignored.has(word)))).slice(0, 3);
185
+ const predicateName = `${terms.length > 0 ? terms.join("_") : "domain"}_policy`;
186
+ const outcomeLike = /invalid|fail|reject|error|forbid|prohibit|must not|cannot/i.test(text);
187
+ const argumentNames = outcomeLike
188
+ ? ["subject", "condition", "required_outcome"]
189
+ : /when|if|unless/i.test(text)
190
+ ? ["subject", "condition", "behavior"]
191
+ : ["subject", "claim"];
192
+ const argumentTypes = outcomeLike
193
+ ? ["entity", "condition", "outcome"]
194
+ : argumentNames.length === 3
195
+ ? ["entity", "condition", "behavior"]
196
+ : ["entity", "claim"];
197
+ const candidateBindings = {};
198
+ if (!isGenericPlaceholder(subject))
199
+ candidateBindings.subject = subject;
200
+ const unresolvedBindings = argumentNames.filter((name) => {
201
+ if (name === "subject")
202
+ return !Object.hasOwn(candidateBindings, "subject");
203
+ const candidate = name === "condition"
204
+ ? lower.match(/(?:when|if|unless)\s+(.+?)(?:,|\s+then\s+|\s+must\s+)/i)?.[1]
205
+ : lower.match(/(?:must|shall|should)\s+(.+?)(?:\.|$)/i)?.[1];
206
+ if (candidate) {
207
+ candidateBindings[name] = candidate
208
+ .replace(/[^a-z0-9_. -]/g, "")
209
+ .trim()
210
+ .replace(/\s+/g, "_");
211
+ return false;
212
+ }
213
+ return true;
214
+ });
215
+ return {
216
+ predicate_name: predicateName,
217
+ title: `${predicateName} review draft`,
218
+ description: `Review-only schema draft derived from the unresolved proposition: ${text.trim()}`,
219
+ argument_names: argumentNames,
220
+ argument_types: argumentTypes,
221
+ candidate_bindings: candidateBindings,
222
+ unresolved_bindings: unresolvedBindings,
223
+ rationale: "No available predicate schema passed semantic applicability. Review the proposed signature and promote it to a reusable predicate_schema before grounding the claim.",
224
+ reuse_scope: "Domain-general schema for propositions with the same subject, condition, and required outcome pattern.",
225
+ };
226
+ }
@@ -0,0 +1,6 @@
1
+ import type { BindingProvenance } from "./predicate-types.js";
2
+ export declare function isGenericPlaceholder(value: string): boolean;
3
+ export declare function classifyBinding(value: string, text: string, explicit: boolean, canonical?: boolean): BindingProvenance;
4
+ export declare function aggregateBindingProvenance(values: readonly BindingProvenance[]): BindingProvenance;
5
+ export declare function bindingCanBeApplied(value: BindingProvenance): boolean;
6
+ //# sourceMappingURL=predicate-bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicate-bindings.d.ts","sourceRoot":"","sources":["../../../src/operations/modeling/predicate-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAkG9D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAW3D;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,SAAS,UAAQ,GAChB,iBAAiB,CAYnB;AASD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,iBAAiB,EAAE,GACnC,iBAAiB,CAQnB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAErE"}
@@ -0,0 +1,122 @@
1
+ const PLACEHOLDER_VALUES = new Set([
2
+ "unknown",
3
+ "requirement.subject",
4
+ "domain_event",
5
+ "true",
6
+ "false",
7
+ "subject",
8
+ "component",
9
+ "condition",
10
+ "behavior",
11
+ "action",
12
+ "target",
13
+ "resource",
14
+ "scope",
15
+ "property",
16
+ "value",
17
+ "owner",
18
+ "actor",
19
+ "trigger",
20
+ "unspecified_trigger",
21
+ "unit",
22
+ "policy",
23
+ "outcome",
24
+ "failure_condition",
25
+ "required_outcome",
26
+ "ordered_sources",
27
+ "executable_policy",
28
+ "cwd_policy",
29
+ "environment_policy",
30
+ "stdio_policy",
31
+ "termination_policy",
32
+ "normal_behavior",
33
+ ]);
34
+ const DERIVED_CUE_ALIASES = {
35
+ navigation: ["navigate", "navigates", "navigation"],
36
+ draft: ["draft", "drafts"],
37
+ active_annotation: ["annotation", "active"],
38
+ editor: ["editor"],
39
+ editor_annotation: ["editor", "annotation"],
40
+ consumer_local: ["consumer-local", "consumer local", "project-local"],
41
+ no_download: ["no download", "without downloading", "not download"],
42
+ no_global_fallback: ["no global fallback", "without global fallback"],
43
+ package_manager_exception: ["package-manager", "package manager"],
44
+ missing_candidate: ["missing", "unusable", "candidate"],
45
+ cwd_unusable: ["cwd", "working directory", "current directory"],
46
+ invalid_input: ["invalid", "unresolved", "placeholder"],
47
+ invalid_placeholder: ["invalid placeholder", "unresolved placeholder"],
48
+ ambiguous_root: ["ambiguous", "usable root", "roots"],
49
+ clear_error: ["clear error", "fail clearly", "actionable error"],
50
+ resolved_executable: ["executable", "command", "binary", "bin"],
51
+ consumer_cwd: ["cwd", "working directory", "consumer"],
52
+ inherited_environment: ["environment", "env"],
53
+ consumer_workspace_environment: [
54
+ "environment",
55
+ "env",
56
+ "kibi_workspace",
57
+ "workspace",
58
+ ],
59
+ inherited_stdio: ["stdio", "stdin", "stdout", "stderr", "pipe"],
60
+ propagate_termination: ["terminate", "termination", "exit", "signal"],
61
+ missing_dependency: [
62
+ "missing dependency",
63
+ "missing kibi-mcp",
64
+ "missing project-local",
65
+ "project-local kibi-mcp",
66
+ "missing module",
67
+ ],
68
+ actionable_error: ["actionable", "clear error", "report", "error"],
69
+ exception: ["exception", "except", "package-manager", "package manager"],
70
+ };
71
+ function textContainsValue(text, value) {
72
+ const lower = text.toLowerCase();
73
+ if (value.includes("|")) {
74
+ const parts = value.split("|").filter(Boolean);
75
+ return (parts.length > 0 && parts.every((part) => textContainsValue(text, part)));
76
+ }
77
+ const normalized = value.toLowerCase().replace(/[_.-]+/g, " ");
78
+ const normalizedText = lower.replace(/[_.-]+/g, " ");
79
+ if (normalized.length > 2 && normalizedText.includes(normalized))
80
+ return true;
81
+ if (value.toLowerCase() === "missing_dependency" &&
82
+ /missing(?:\s+\S+){0,4}\s+dependenc/i.test(normalizedText))
83
+ return true;
84
+ const aliases = DERIVED_CUE_ALIASES[value.toLowerCase().replace(/\./g, "_")];
85
+ return (aliases?.some((alias) => normalizedText.includes(alias.toLowerCase().replace(/[_.-]+/g, " "))) ?? false);
86
+ }
87
+ export function isGenericPlaceholder(value) {
88
+ const normalized = value.trim().toLowerCase();
89
+ return (PLACEHOLDER_VALUES.has(normalized) ||
90
+ normalized === "unknown" ||
91
+ normalized.startsWith("requirement.") ||
92
+ (normalized.endsWith("_policy") &&
93
+ ["executable", "cwd", "environment", "stdio", "termination"].some((kind) => normalized.startsWith(kind))));
94
+ }
95
+ export function classifyBinding(value, text, explicit, canonical = false) {
96
+ const normalized = value.trim();
97
+ if (canonical && !isGenericPlaceholder(normalized))
98
+ return "extracted";
99
+ if (explicit &&
100
+ (!isGenericPlaceholder(normalized) ||
101
+ ["true", "false"].includes(normalized.toLowerCase())))
102
+ return "explicit";
103
+ if (!normalized || isGenericPlaceholder(normalized))
104
+ return "placeholder";
105
+ if (textContainsValue(text, normalized))
106
+ return "extracted";
107
+ return "inferred";
108
+ }
109
+ const PROVENANCE_ORDER = [
110
+ "explicit",
111
+ "extracted",
112
+ "inferred",
113
+ "placeholder",
114
+ ];
115
+ export function aggregateBindingProvenance(values) {
116
+ return values.reduce((worst, value) => PROVENANCE_ORDER.indexOf(value) > PROVENANCE_ORDER.indexOf(worst)
117
+ ? value
118
+ : worst, "explicit");
119
+ }
120
+ export function bindingCanBeApplied(value) {
121
+ return value === "explicit" || value === "extracted";
122
+ }