kibi-cli 0.19.0 → 1.0.1

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 (506) hide show
  1. package/dist/cli-operation-loader.d.ts.map +1 -1
  2. package/dist/cli-operation-loader.js +53 -20
  3. package/dist/cli-operation-metadata.d.ts +20 -8
  4. package/dist/cli-operation-metadata.d.ts.map +1 -1
  5. package/dist/cli-operation-metadata.js +23 -8
  6. package/dist/cli-protocol.d.ts.map +1 -1
  7. package/dist/cli-protocol.js +38 -8
  8. package/dist/cli-register-foundation.d.ts.map +1 -1
  9. package/dist/cli-register-foundation.js +14 -2
  10. package/dist/cli-register-maintenance.d.ts.map +1 -1
  11. package/dist/cli-register-maintenance.js +26 -4
  12. package/dist/cli-register-reporting.d.ts.map +1 -1
  13. package/dist/cli-register-reporting.js +10 -0
  14. package/dist/cli-register-verification.d.ts +3 -0
  15. package/dist/cli-register-verification.d.ts.map +1 -0
  16. package/dist/cli-register-verification.js +16 -0
  17. package/dist/cli.d.ts.map +1 -1
  18. package/dist/cli.js +2 -0
  19. package/dist/commands/aggregated-checks.d.ts +1 -2
  20. package/dist/commands/aggregated-checks.d.ts.map +1 -1
  21. package/dist/commands/aggregated-checks.js +14 -9
  22. package/dist/commands/branch.d.ts +36 -0
  23. package/dist/commands/branch.d.ts.map +1 -1
  24. package/dist/commands/branch.js +371 -40
  25. package/dist/commands/check.d.ts.map +1 -1
  26. package/dist/commands/check.js +20 -67
  27. package/dist/commands/discovery-shared.d.ts.map +1 -1
  28. package/dist/commands/discovery-shared.js +10 -19
  29. package/dist/commands/doctor.d.ts +4 -1
  30. package/dist/commands/doctor.d.ts.map +1 -1
  31. package/dist/commands/doctor.js +259 -24
  32. package/dist/commands/engine.d.ts.map +1 -1
  33. package/dist/commands/engine.js +10 -7
  34. package/dist/commands/gc.d.ts +5 -2
  35. package/dist/commands/gc.d.ts.map +1 -1
  36. package/dist/commands/gc.js +140 -71
  37. package/dist/commands/github-init.d.ts +56 -0
  38. package/dist/commands/github-init.d.ts.map +1 -0
  39. package/dist/commands/github-init.js +310 -0
  40. package/dist/commands/init-helpers.d.ts +1 -1
  41. package/dist/commands/init-helpers.d.ts.map +1 -1
  42. package/dist/commands/init-helpers.js +73 -25
  43. package/dist/commands/init.d.ts +2 -0
  44. package/dist/commands/init.d.ts.map +1 -1
  45. package/dist/commands/init.js +79 -24
  46. package/dist/commands/legacy-storage-migration.d.ts +54 -0
  47. package/dist/commands/legacy-storage-migration.d.ts.map +1 -0
  48. package/dist/commands/legacy-storage-migration.js +277 -0
  49. package/dist/commands/migrate.d.ts +7 -0
  50. package/dist/commands/migrate.d.ts.map +1 -1
  51. package/dist/commands/migrate.js +244 -91
  52. package/dist/commands/report.d.ts +24 -0
  53. package/dist/commands/report.d.ts.map +1 -0
  54. package/dist/commands/report.js +191 -0
  55. package/dist/commands/sync/cache.d.ts +16 -3
  56. package/dist/commands/sync/cache.d.ts.map +1 -1
  57. package/dist/commands/sync/cache.js +111 -4
  58. package/dist/commands/sync/discovery.d.ts +23 -2
  59. package/dist/commands/sync/discovery.d.ts.map +1 -1
  60. package/dist/commands/sync/discovery.js +196 -15
  61. package/dist/commands/sync/extraction.d.ts +8 -1
  62. package/dist/commands/sync/extraction.d.ts.map +1 -1
  63. package/dist/commands/sync/extraction.js +38 -4
  64. package/dist/commands/sync/manifest.d.ts +8 -5
  65. package/dist/commands/sync/manifest.d.ts.map +1 -1
  66. package/dist/commands/sync/manifest.js +142 -39
  67. package/dist/commands/sync/persistence.d.ts.map +1 -1
  68. package/dist/commands/sync/persistence.js +3 -0
  69. package/dist/commands/sync.d.ts +6 -0
  70. package/dist/commands/sync.d.ts.map +1 -1
  71. package/dist/commands/sync.js +304 -79
  72. package/dist/commands/verify.d.ts +10 -0
  73. package/dist/commands/verify.d.ts.map +1 -0
  74. package/dist/commands/verify.js +126 -0
  75. package/dist/diagnostics.d.ts +1 -1
  76. package/dist/diagnostics.d.ts.map +1 -1
  77. package/dist/engine.d.ts +96 -3
  78. package/dist/engine.d.ts.map +1 -1
  79. package/dist/engine.js +392 -23
  80. package/dist/env.d.ts.map +1 -1
  81. package/dist/env.js +5 -6
  82. package/dist/extractors/manifest.d.ts +8 -1
  83. package/dist/extractors/manifest.d.ts.map +1 -1
  84. package/dist/extractors/manifest.js +51 -9
  85. package/dist/extractors/markdown.d.ts +2 -1
  86. package/dist/extractors/markdown.d.ts.map +1 -1
  87. package/dist/extractors/markdown.js +21 -3
  88. package/dist/extractors/playwright-cases.d.ts +24 -0
  89. package/dist/extractors/playwright-cases.d.ts.map +1 -0
  90. package/dist/extractors/playwright-cases.js +126 -0
  91. package/dist/extractors/relationships.d.ts.map +1 -1
  92. package/dist/extractors/relationships.js +1 -0
  93. package/dist/extractors/symbol-coordinates.d.ts +81 -3
  94. package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
  95. package/dist/extractors/symbol-coordinates.js +389 -51
  96. package/dist/extractors/symbols-coordinator.js +11 -1
  97. package/dist/intent-search.d.ts +60 -0
  98. package/dist/intent-search.d.ts.map +1 -0
  99. package/dist/intent-search.js +433 -0
  100. package/dist/operations/bootstrap/activation.d.ts.map +1 -0
  101. package/dist/operations/{autopilot → bootstrap}/activation.js +48 -31
  102. package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts.map +1 -1
  103. package/dist/operations/bootstrap/candidates.d.ts +4 -0
  104. package/dist/operations/{autopilot → bootstrap}/candidates.d.ts.map +1 -1
  105. package/dist/operations/{autopilot → bootstrap}/candidates.js +22 -8
  106. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts +2 -2
  107. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts.map +1 -1
  108. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.js +46 -6
  109. package/dist/operations/{autopilot → bootstrap}/discovery.d.ts +1 -1
  110. package/dist/operations/bootstrap/discovery.d.ts.map +1 -0
  111. package/dist/operations/{autopilot → bootstrap}/discovery.js +21 -14
  112. package/dist/operations/bootstrap/generate.d.ts +8 -0
  113. package/dist/operations/bootstrap/generate.d.ts.map +1 -0
  114. package/dist/operations/bootstrap/generate.js +204 -0
  115. package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts +2 -2
  116. package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts.map +1 -1
  117. package/dist/operations/{autopilot → bootstrap}/guidance-actions.js +4 -4
  118. package/dist/operations/{autopilot → bootstrap}/guidance.d.ts +2 -2
  119. package/dist/operations/{autopilot → bootstrap}/guidance.d.ts.map +1 -1
  120. package/dist/operations/{autopilot → bootstrap}/guidance.js +2 -0
  121. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts +2 -2
  122. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts.map +1 -1
  123. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.js +4 -3
  124. package/dist/operations/bootstrap/presentation.d.ts +15 -0
  125. package/dist/operations/bootstrap/presentation.d.ts.map +1 -0
  126. package/dist/operations/bootstrap/presentation.js +177 -0
  127. package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts.map +1 -1
  128. package/dist/operations/{autopilot → bootstrap}/types.d.ts +63 -21
  129. package/dist/operations/bootstrap/types.d.ts.map +1 -0
  130. package/dist/operations/bootstrap/types.js +25 -0
  131. package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
  132. package/dist/operations/modeling/model-requirement.js +4 -17
  133. package/dist/operations/modeling/predicate-applicability.d.ts +16 -0
  134. package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -0
  135. package/dist/operations/modeling/predicate-applicability.js +276 -0
  136. package/dist/operations/modeling/predicate-applyplan.d.ts +13 -2
  137. package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -1
  138. package/dist/operations/modeling/predicate-applyplan.js +100 -3
  139. package/dist/operations/modeling/predicate-bindings.d.ts +6 -0
  140. package/dist/operations/modeling/predicate-bindings.d.ts.map +1 -0
  141. package/dist/operations/modeling/predicate-bindings.js +122 -0
  142. package/dist/operations/modeling/predicate-catalog-4.d.ts.map +1 -1
  143. package/dist/operations/modeling/predicate-catalog-4.js +155 -0
  144. package/dist/operations/modeling/predicate-inference-1.d.ts.map +1 -1
  145. package/dist/operations/modeling/predicate-inference-1.js +8 -0
  146. package/dist/operations/modeling/predicate-inference-launcher.d.ts +10 -0
  147. package/dist/operations/modeling/predicate-inference-launcher.d.ts.map +1 -0
  148. package/dist/operations/modeling/predicate-inference-launcher.js +13 -0
  149. package/dist/operations/modeling/predicate-inference.d.ts.map +1 -1
  150. package/dist/operations/modeling/predicate-inference.js +4 -0
  151. package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
  152. package/dist/operations/modeling/predicate-loader.js +7 -0
  153. package/dist/operations/modeling/predicate-ranker.d.ts +8 -1
  154. package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
  155. package/dist/operations/modeling/predicate-ranker.js +156 -24
  156. package/dist/operations/modeling/predicate-score-3.d.ts.map +1 -1
  157. package/dist/operations/modeling/predicate-score-3.js +6 -0
  158. package/dist/operations/modeling/predicate-types.d.ts +34 -0
  159. package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
  160. package/dist/operations/modeling/predicate-usage-hints-3.d.ts.map +1 -1
  161. package/dist/operations/modeling/predicate-usage-hints-3.js +40 -0
  162. package/dist/operations/modeling/predicate-utils.d.ts.map +1 -1
  163. package/dist/operations/modeling/predicate-utils.js +2 -0
  164. package/dist/operations/modeling/suggest-predicates.d.ts +1 -1
  165. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  166. package/dist/operations/modeling/suggest-predicates.js +170 -32
  167. package/dist/operations/mutation/delete.d.ts.map +1 -1
  168. package/dist/operations/mutation/delete.js +415 -19
  169. package/dist/operations/mutation/entity-projection.d.ts +11 -0
  170. package/dist/operations/mutation/entity-projection.d.ts.map +1 -0
  171. package/dist/operations/mutation/entity-projection.js +14 -0
  172. package/dist/operations/mutation/relationships.d.ts +10 -0
  173. package/dist/operations/mutation/relationships.d.ts.map +1 -1
  174. package/dist/operations/mutation/relationships.js +71 -1
  175. package/dist/operations/mutation/serialization.d.ts.map +1 -1
  176. package/dist/operations/mutation/serialization.js +1 -0
  177. package/dist/operations/mutation/source-authoring.d.ts +61 -0
  178. package/dist/operations/mutation/source-authoring.d.ts.map +1 -0
  179. package/dist/operations/mutation/source-authoring.js +543 -0
  180. package/dist/operations/mutation/symbol-compiler-lock.d.ts +51 -0
  181. package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -0
  182. package/dist/operations/mutation/symbol-compiler-lock.js +274 -0
  183. package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
  184. package/dist/operations/mutation/symbol-granularity.js +34 -3
  185. package/dist/operations/mutation/symbol-refresh.d.ts +18 -1
  186. package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
  187. package/dist/operations/mutation/symbol-refresh.js +225 -63
  188. package/dist/operations/mutation/types.d.ts +57 -1
  189. package/dist/operations/mutation/types.d.ts.map +1 -1
  190. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  191. package/dist/operations/mutation/upsert.js +363 -24
  192. package/dist/operations/mutation/validation.d.ts.map +1 -1
  193. package/dist/operations/mutation/validation.js +1 -0
  194. package/dist/operations/planning/apply-plan.d.ts +117 -0
  195. package/dist/operations/planning/apply-plan.d.ts.map +1 -0
  196. package/dist/operations/planning/apply-plan.js +1437 -0
  197. package/dist/operations/planning/compile-intent.d.ts +106 -0
  198. package/dist/operations/planning/compile-intent.d.ts.map +1 -0
  199. package/dist/operations/planning/compile-intent.js +562 -0
  200. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  201. package/dist/operations/semantic-advisor/analyze-prose.js +6 -2
  202. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
  203. package/dist/operations/semantic-advisor/clauses.js +15 -2
  204. package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -1
  205. package/dist/operations/semantic-advisor/ingestion-boundary.js +7 -3
  206. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +51 -0
  207. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -0
  208. package/dist/operations/semantic-advisor/predicate-rules-launcher.js +96 -0
  209. package/dist/operations/semantic-advisor/types.d.ts +13 -5
  210. package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
  211. package/dist/operations/verification/ingest-verification.d.ts +29 -0
  212. package/dist/operations/verification/ingest-verification.d.ts.map +1 -0
  213. package/dist/operations/verification/ingest-verification.js +192 -0
  214. package/dist/prolog/codec.d.ts.map +1 -1
  215. package/dist/prolog/codec.js +2 -1
  216. package/dist/prolog.d.ts.map +1 -1
  217. package/dist/prolog.js +27 -8
  218. package/dist/public/branch-resolver.d.ts +1 -0
  219. package/dist/public/branch-resolver.d.ts.map +1 -1
  220. package/dist/public/branch-resolver.js +1 -0
  221. package/dist/public/check-types.d.ts +2 -2
  222. package/dist/public/check-types.d.ts.map +1 -1
  223. package/dist/public/check-types.js +16 -16
  224. package/dist/public/diagnostic-usage.d.ts.map +1 -1
  225. package/dist/public/diagnostic-usage.js +69 -1
  226. package/dist/public/distribution-parity.d.ts +1 -1
  227. package/dist/public/distribution-parity.d.ts.map +1 -1
  228. package/dist/public/distribution-parity.js +1 -0
  229. package/dist/public/ignore-policy.d.ts.map +1 -1
  230. package/dist/public/ignore-policy.js +16 -4
  231. package/dist/public/impact/coverage-depth-quality.d.ts +6 -1
  232. package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
  233. package/dist/public/impact/coverage-depth-quality.js +21 -3
  234. package/dist/public/impact/full-kb-quality.d.ts +4 -2
  235. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  236. package/dist/public/impact/full-kb-quality.js +61 -1
  237. package/dist/public/impact/manifest.d.ts.map +1 -1
  238. package/dist/public/impact/manifest.js +2 -5
  239. package/dist/public/operational-artifacts.d.ts.map +1 -1
  240. package/dist/public/operational-artifacts.js +7 -1
  241. package/dist/public/operations/catalog.d.ts +682 -67
  242. package/dist/public/operations/catalog.d.ts.map +1 -1
  243. package/dist/public/operations/catalog.js +126 -4
  244. package/dist/public/operations/check-executor.d.ts +2 -2
  245. package/dist/public/operations/check-executor.d.ts.map +1 -1
  246. package/dist/public/operations/check-executor.js +72 -13
  247. package/dist/public/operations/check-format-shared.d.ts +3 -0
  248. package/dist/public/operations/check-format-shared.d.ts.map +1 -1
  249. package/dist/public/operations/check-format-shared.js +3 -0
  250. package/dist/public/operations/check-helpers.d.ts +27 -2
  251. package/dist/public/operations/check-helpers.d.ts.map +1 -1
  252. package/dist/public/operations/check-helpers.js +62 -26
  253. package/dist/public/operations/contracts.d.ts +11 -0
  254. package/dist/public/operations/contracts.d.ts.map +1 -0
  255. package/dist/public/operations/contracts.js +325 -0
  256. package/dist/public/operations/discovery-executors.d.ts +37 -1
  257. package/dist/public/operations/discovery-executors.d.ts.map +1 -1
  258. package/dist/public/operations/discovery-executors.js +206 -6
  259. package/dist/public/operations/index.d.ts +9 -4
  260. package/dist/public/operations/index.d.ts.map +1 -1
  261. package/dist/public/operations/index.js +8 -3
  262. package/dist/public/operations/migration-plan.d.ts +101 -0
  263. package/dist/public/operations/migration-plan.d.ts.map +1 -0
  264. package/dist/public/operations/migration-plan.js +537 -0
  265. package/dist/public/operations/node-ports.d.ts.map +1 -1
  266. package/dist/public/operations/node-ports.js +68 -8
  267. package/dist/public/operations/prolog-json.d.ts +14 -0
  268. package/dist/public/operations/prolog-json.d.ts.map +1 -1
  269. package/dist/public/operations/prolog-json.js +44 -5
  270. package/dist/public/operations/repair-plan.d.ts.map +1 -1
  271. package/dist/public/operations/repair-plan.js +1 -0
  272. package/dist/public/operations/result-envelope.d.ts +13 -0
  273. package/dist/public/operations/result-envelope.d.ts.map +1 -0
  274. package/dist/public/operations/result-envelope.js +104 -0
  275. package/dist/public/operations/runtime-types.d.ts +97 -7
  276. package/dist/public/operations/runtime-types.d.ts.map +1 -1
  277. package/dist/public/operations/source-relationship-parity.d.ts +13 -0
  278. package/dist/public/operations/source-relationship-parity.d.ts.map +1 -0
  279. package/dist/public/operations/source-relationship-parity.js +162 -0
  280. package/dist/public/operations/specs/{autopilot.d.ts → bootstrap.d.ts} +9 -9
  281. package/dist/public/operations/specs/bootstrap.d.ts.map +1 -0
  282. package/dist/public/operations/specs/{autopilot.js → bootstrap.js} +8 -7
  283. package/dist/public/operations/specs/check.d.ts +4 -4
  284. package/dist/public/operations/specs/check.d.ts.map +1 -1
  285. package/dist/public/operations/specs/check.js +4 -3
  286. package/dist/public/operations/specs/discovery.d.ts +87 -3
  287. package/dist/public/operations/specs/discovery.d.ts.map +1 -1
  288. package/dist/public/operations/specs/discovery.js +53 -3
  289. package/dist/public/operations/specs/modeling.d.ts +3 -3
  290. package/dist/public/operations/specs/modeling.js +3 -3
  291. package/dist/public/operations/specs/mutation-schemas.d.ts +190 -47
  292. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  293. package/dist/public/operations/specs/mutation-schemas.js +3 -1
  294. package/dist/public/operations/specs/mutation.d.ts +42 -2
  295. package/dist/public/operations/specs/mutation.d.ts.map +1 -1
  296. package/dist/public/operations/specs/mutation.js +26 -2
  297. package/dist/public/operations/specs/planning.d.ts +270 -0
  298. package/dist/public/operations/specs/planning.d.ts.map +1 -0
  299. package/dist/public/operations/specs/planning.js +191 -0
  300. package/dist/public/operations/specs/reporting.d.ts +4 -1
  301. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  302. package/dist/public/operations/specs/reporting.js +46 -1
  303. package/dist/public/operations/specs/upsert.d.ts +204 -47
  304. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  305. package/dist/public/operations/specs/upsert.js +9 -0
  306. package/dist/public/operations/specs/verification.d.ts +78 -0
  307. package/dist/public/operations/specs/verification.d.ts.map +1 -0
  308. package/dist/public/operations/specs/verification.js +62 -0
  309. package/dist/public/operations/symbol-repair-plan.d.ts +11 -0
  310. package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -0
  311. package/dist/public/operations/symbol-repair-plan.js +123 -0
  312. package/dist/public/operations/types.d.ts +52 -1
  313. package/dist/public/operations/types.d.ts.map +1 -1
  314. package/dist/public/playwright-case-id.d.ts +8 -0
  315. package/dist/public/playwright-case-id.d.ts.map +1 -0
  316. package/dist/public/playwright-case-id.js +25 -0
  317. package/dist/public/schemas/entity.d.ts.map +1 -1
  318. package/dist/public/schemas/entity.js +4 -2
  319. package/dist/public/skills/kibi-bootstrap/SKILL.md +58 -0
  320. package/dist/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
  321. package/dist/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
  322. package/dist/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
  323. package/dist/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
  324. package/dist/public/skills/kibi-freshness/SKILL.md +39 -9
  325. package/dist/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
  326. package/dist/public/skills/kibi-freshness/resources/operation-access.md +6 -0
  327. package/dist/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
  328. package/dist/public/skills/kibi-traceability/SKILL.md +47 -47
  329. package/dist/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
  330. package/dist/public/skills/kibi-traceability/resources/operation-access.md +5 -0
  331. package/dist/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
  332. package/dist/public/skills/kibi-traceability/resources/traceability.md +8 -0
  333. package/dist/public/skills/kibi-usage/SKILL.md +115 -239
  334. package/dist/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
  335. package/dist/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
  336. package/dist/public/skills/kibi-usage/resources/operation-access.md +36 -38
  337. package/dist/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
  338. package/dist/public/skills/kibi-usage/resources/source-authoring.md +31 -0
  339. package/dist/public/skills/kibi-usage/resources/workflows.md +56 -3
  340. package/dist/public/symbol-granularity.d.ts +1 -1
  341. package/dist/public/symbol-granularity.d.ts.map +1 -1
  342. package/dist/public/symbol-granularity.js +1 -0
  343. package/dist/public/telemetry-acceptance.d.ts +7 -0
  344. package/dist/public/telemetry-acceptance.d.ts.map +1 -1
  345. package/dist/public/telemetry-acceptance.js +8 -1
  346. package/dist/public/telemetry-remediation.js +1 -1
  347. package/dist/public/verification-receipt.d.ts +206 -39
  348. package/dist/public/verification-receipt.d.ts.map +1 -1
  349. package/dist/public/verification-receipt.js +171 -4
  350. package/dist/relationships/shards.d.ts +16 -0
  351. package/dist/relationships/shards.d.ts.map +1 -1
  352. package/dist/relationships/shards.js +87 -2
  353. package/dist/report/brand.d.ts +19 -0
  354. package/dist/report/brand.d.ts.map +1 -0
  355. package/dist/report/brand.js +112 -0
  356. package/dist/report/html-report.d.ts +19 -0
  357. package/dist/report/html-report.d.ts.map +1 -0
  358. package/dist/report/html-report.js +963 -0
  359. package/dist/report/relative-time.d.ts +4 -0
  360. package/dist/report/relative-time.d.ts.map +1 -0
  361. package/dist/report/relative-time.js +46 -0
  362. package/dist/report/report-view.d.ts +17 -0
  363. package/dist/report/report-view.d.ts.map +1 -0
  364. package/dist/report/report-view.js +33 -0
  365. package/dist/report/repository.d.ts +35 -0
  366. package/dist/report/repository.d.ts.map +1 -0
  367. package/dist/report/repository.js +151 -0
  368. package/dist/runtime/cli-runtime.d.ts.map +1 -1
  369. package/dist/runtime/cli-runtime.js +82 -22
  370. package/dist/schemas/entity.schema.json +1148 -273
  371. package/dist/traceability/evidence-model.d.ts +2 -2
  372. package/dist/traceability/evidence-model.d.ts.map +1 -1
  373. package/dist/traceability/evidence-model.js +2 -2
  374. package/dist/traceability/git-staged.d.ts.map +1 -1
  375. package/dist/traceability/git-staged.js +15 -40
  376. package/dist/traceability/markdown-validate.d.ts.map +1 -1
  377. package/dist/traceability/markdown-validate.js +12 -7
  378. package/dist/traceability/staged-impact-contract.d.ts +3 -3
  379. package/dist/traceability/staged-impact-contract.d.ts.map +1 -1
  380. package/dist/traceability/staged-impact-contract.js +10 -38
  381. package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
  382. package/dist/traceability/staged-symbols-manifest.js +8 -3
  383. package/dist/traceability/temp-kb.d.ts.map +1 -1
  384. package/dist/traceability/temp-kb.js +3 -0
  385. package/dist/types/entities.d.ts +3 -0
  386. package/dist/types/entities.d.ts.map +1 -1
  387. package/dist/utils/branch-resolver.d.ts +24 -10
  388. package/dist/utils/branch-resolver.d.ts.map +1 -1
  389. package/dist/utils/branch-resolver.js +121 -38
  390. package/dist/utils/branch-store-locator.d.ts +23 -0
  391. package/dist/utils/branch-store-locator.d.ts.map +1 -0
  392. package/dist/utils/branch-store-locator.js +90 -0
  393. package/dist/utils/branch-store.d.ts +15 -0
  394. package/dist/utils/branch-store.d.ts.map +1 -0
  395. package/dist/utils/branch-store.js +130 -0
  396. package/dist/utils/config.d.ts +39 -37
  397. package/dist/utils/config.d.ts.map +1 -1
  398. package/dist/utils/config.js +107 -119
  399. package/dist/utils/kb-manifest.d.ts +35 -0
  400. package/dist/utils/kb-manifest.d.ts.map +1 -0
  401. package/dist/utils/kb-manifest.js +154 -0
  402. package/dist/utils/kb-paths.d.ts +54 -0
  403. package/dist/utils/kb-paths.d.ts.map +1 -0
  404. package/dist/utils/kb-paths.js +125 -0
  405. package/dist/utils/manifest-paths.d.ts +4 -4
  406. package/dist/utils/manifest-paths.d.ts.map +1 -1
  407. package/dist/utils/manifest-paths.js +8 -56
  408. package/dist/utils/rule-registry.d.ts +48 -20
  409. package/dist/utils/rule-registry.d.ts.map +1 -1
  410. package/dist/utils/rule-registry.js +82 -77
  411. package/dist/utils/schema-version.d.ts +5 -5
  412. package/dist/utils/schema-version.d.ts.map +1 -1
  413. package/dist/utils/schema-version.js +26 -6
  414. package/dist/utils/strict-modeling.d.ts +0 -4
  415. package/dist/utils/strict-modeling.d.ts.map +1 -1
  416. package/dist/utils/strict-modeling.js +7 -8
  417. package/dist/verification/playwright-reporter.d.ts +21 -0
  418. package/dist/verification/playwright-reporter.d.ts.map +1 -0
  419. package/dist/verification/playwright-reporter.js +114 -0
  420. package/package.json +46 -7
  421. package/schema/config.json +2 -2
  422. package/schema/manifest.json +26 -0
  423. package/src/public/branch-resolver.ts +1 -0
  424. package/src/public/check-types.ts +22 -19
  425. package/src/public/diagnostic-usage.ts +79 -1
  426. package/src/public/distribution-parity.ts +1 -0
  427. package/src/public/ignore-policy.ts +16 -10
  428. package/src/public/impact/coverage-depth-quality.ts +36 -0
  429. package/src/public/impact/full-kb-quality.ts +118 -5
  430. package/src/public/impact/manifest.ts +2 -4
  431. package/src/public/operational-artifacts.ts +9 -1
  432. package/src/public/operations/catalog.ts +146 -9
  433. package/src/public/operations/check-executor.ts +102 -15
  434. package/src/public/operations/check-format-shared.ts +6 -0
  435. package/src/public/operations/check-helpers.ts +74 -35
  436. package/src/public/operations/contracts.ts +366 -0
  437. package/src/public/operations/discovery-executors.ts +299 -12
  438. package/src/public/operations/index.ts +9 -4
  439. package/src/public/operations/migration-plan.ts +740 -0
  440. package/src/public/operations/node-ports.ts +84 -10
  441. package/src/public/operations/prolog-json.ts +60 -5
  442. package/src/public/operations/repair-plan.ts +1 -0
  443. package/src/public/operations/result-envelope.ts +136 -0
  444. package/src/public/operations/runtime-types.ts +91 -5
  445. package/src/public/operations/source-relationship-parity.ts +226 -0
  446. package/src/public/operations/specs/{autopilot.ts → bootstrap.ts} +17 -16
  447. package/src/public/operations/specs/check.ts +4 -3
  448. package/src/public/operations/specs/discovery.ts +57 -3
  449. package/src/public/operations/specs/modeling.ts +3 -3
  450. package/src/public/operations/specs/mutation-schemas.ts +6 -1
  451. package/src/public/operations/specs/mutation.ts +27 -2
  452. package/src/public/operations/specs/planning.ts +234 -0
  453. package/src/public/operations/specs/reporting.ts +55 -1
  454. package/src/public/operations/specs/upsert.ts +10 -0
  455. package/src/public/operations/specs/verification.ts +78 -0
  456. package/src/public/operations/symbol-repair-plan.ts +164 -0
  457. package/src/public/operations/types.ts +62 -1
  458. package/src/public/playwright-case-id.ts +35 -0
  459. package/src/public/schemas/entity.ts +7 -2
  460. package/src/public/skills/kibi-bootstrap/SKILL.md +58 -0
  461. package/src/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
  462. package/src/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
  463. package/src/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
  464. package/src/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
  465. package/src/public/skills/kibi-freshness/SKILL.md +39 -9
  466. package/src/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
  467. package/src/public/skills/kibi-freshness/resources/operation-access.md +6 -0
  468. package/src/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
  469. package/src/public/skills/kibi-traceability/SKILL.md +47 -47
  470. package/src/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
  471. package/src/public/skills/kibi-traceability/resources/operation-access.md +5 -0
  472. package/src/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
  473. package/src/public/skills/kibi-traceability/resources/traceability.md +8 -0
  474. package/src/public/skills/kibi-usage/SKILL.md +115 -239
  475. package/src/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
  476. package/src/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
  477. package/src/public/skills/kibi-usage/resources/operation-access.md +36 -38
  478. package/src/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
  479. package/src/public/skills/kibi-usage/resources/source-authoring.md +31 -0
  480. package/src/public/skills/kibi-usage/resources/workflows.md +56 -3
  481. package/src/public/symbol-granularity.ts +1 -0
  482. package/src/public/telemetry-acceptance.ts +16 -1
  483. package/src/public/telemetry-remediation.ts +1 -1
  484. package/src/public/verification-receipt.ts +248 -6
  485. package/src/schemas/entity.schema.json +1148 -273
  486. package/templates/github/kibi-badge.yml +86 -0
  487. package/templates/github/kibi-report.yml +84 -0
  488. package/dist/operations/autopilot/activation.d.ts.map +0 -1
  489. package/dist/operations/autopilot/candidates.d.ts +0 -4
  490. package/dist/operations/autopilot/discovery.d.ts.map +0 -1
  491. package/dist/operations/autopilot/generate.d.ts +0 -8
  492. package/dist/operations/autopilot/generate.d.ts.map +0 -1
  493. package/dist/operations/autopilot/generate.js +0 -112
  494. package/dist/operations/autopilot/presentation.d.ts +0 -13
  495. package/dist/operations/autopilot/presentation.d.ts.map +0 -1
  496. package/dist/operations/autopilot/presentation.js +0 -91
  497. package/dist/operations/autopilot/types.d.ts.map +0 -1
  498. package/dist/operations/autopilot/types.js +0 -8
  499. package/dist/public/operations/specs/autopilot.d.ts.map +0 -1
  500. package/dist/public/skills/init-kibi/SKILL.md +0 -62
  501. package/src/public/skills/init-kibi/SKILL.md +0 -62
  502. /package/dist/operations/{autopilot → bootstrap}/activation.d.ts +0 -0
  503. /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts +0 -0
  504. /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.js +0 -0
  505. /package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts +0 -0
  506. /package/dist/operations/{autopilot → bootstrap}/requirement-claims.js +0 -0
@@ -0,0 +1,276 @@
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)/i,
68
+ ],
69
+ [/report|outcome|actionable|clear|return|surface|throw/i],
70
+ ],
71
+ prohibited: [
72
+ /invalid\s+placeholder|ambiguous\s+root|ordered\s+source|child\s+process/i,
73
+ ],
74
+ },
75
+ exception_rule: {
76
+ // Package-manager wording can provide context for an exception, but it
77
+ // is not itself an exception claim. Require an explicit exception
78
+ // relationship so descriptive documentation cannot select this rule.
79
+ anyOf: [
80
+ /\bunless\b/i,
81
+ /\bexcept\s+(?:when|if|for|that)\b/i,
82
+ /\b(?:is|are|remains?|constitutes?)\s+(?:the\s+)?(?:only\s+)?exception\s+to\b/i,
83
+ /\b(?:is|are|remains?)\s+exempt\s+(?:from|unless|when|if)\b/i,
84
+ ],
85
+ prohibited: [/child\s+process|stdio|ordered\s+source/i],
86
+ },
87
+ permission_rule: {
88
+ allOf: [
89
+ [/only|may|can|allowed|denied|forbidden|must\s+not|cannot/i],
90
+ [/delete|export|access|read|write|update|remove|manage|permission/i],
91
+ ],
92
+ },
93
+ resource_constraint: {
94
+ allOf: [
95
+ [
96
+ /latency|timeout|throughput|quota|memory|cpu|size|resource|response\s+time|upload|download|payload|attachment|file/i,
97
+ ],
98
+ [
99
+ /at\s+most|at\s+least|not\s+exceed|maximum|minimum|under|below|above|within|limit|bounded|enforced|\b\d+(?:\.\d+)?\s*(?:ms|milliseconds?|s|seconds?|mb|gb|%)?\b/i,
100
+ ],
101
+ ],
102
+ prohibited: [
103
+ /only|allowed|denied|forbidden|permission|authorize|must\s+not\s+(?:delete|export|access|write|update|remove|manage)/i,
104
+ ],
105
+ },
106
+ uniqueness_constraint: {
107
+ allOf: [[/at\s+most\s+one|unique|uniqueness/i], [/\bper\b|scope|within/i]],
108
+ prohibited: [/rate\s+limit|per\s+(?:second|minute|hour|day|window)/i],
109
+ },
110
+ state_membership: {
111
+ allOf: [
112
+ [/states?\s+are|terminal\s+states?|allowed\s+states?|one\s+of/i],
113
+ [/\bstate|ready|anonymous|terminal|allowed|enumerated/i],
114
+ ],
115
+ prohibited: [/transitions?\s+from/i],
116
+ },
117
+ conditional_behavior: {
118
+ allOf: [
119
+ [/^\s*(?:if|when)\b|\b(?:if|when)\b/i],
120
+ [/\bmust\b|\bshall\b|\bshould\b|\bbecomes?\b|\bthen\b/i],
121
+ ],
122
+ anyOf: [
123
+ /^when\s+.+?,\s*(?:the\s+)?.+?\s+(?:must|shall|should)\s+/i,
124
+ /^if\s+.+?,\s*(?:it|they|the\s+.+?)\s+(?:becomes?|must|shall|should)\b/i,
125
+ ],
126
+ },
127
+ rate_limit: {
128
+ allOf: [
129
+ [/rate|frequency|repeated|requests?|actions?|operations?/i],
130
+ [
131
+ /per\s+(?:second|minute|hour|day|window)|every\s+\w+|time\s+window|window/i,
132
+ ],
133
+ ],
134
+ prohibited: [/upload|download|payload|attachment|file\s+size/i],
135
+ },
136
+ data_residency_rule: {
137
+ allOf: [
138
+ [/stored|processed|kept/i],
139
+ [/region|jurisdiction|country|zone|area/i],
140
+ ],
141
+ prohibited: [/redis|cache|memory|bucket|database\s+instance/i],
142
+ },
143
+ coding_standard_rule: {
144
+ allOf: [
145
+ [/use|avoid/i],
146
+ [/api|apis|code|framework|hook|pattern|signal|schema|type|computed/i],
147
+ ],
148
+ prohibited: [/user|admin|access|permission|mfa|customer/i],
149
+ },
150
+ release_gate_rule: {
151
+ allOf: [
152
+ [/release|deploy|testflight|app\s+store|distribution|build/i],
153
+ [/pass|gate|before|configuration/i],
154
+ ],
155
+ prohibited: [/checkout|payment|fraud|workflow|capture/i],
156
+ },
157
+ security_configuration_rule: {
158
+ allOf: [
159
+ [/security|database|deployment|function|rpc|search_path|trigger/i],
160
+ [/explicit|configuration|setting/i],
161
+ ],
162
+ prohibited: [/display\s+label|ui|profile\s+field/i],
163
+ },
164
+ absence_requirement: {
165
+ anyOf: [/\bno\b|absent|removed|not\s+exist|must\s+not\s+exist/i],
166
+ },
167
+ };
168
+ function round(value) {
169
+ return Math.round(Math.max(0, Math.min(0.98, value)) * 100) / 100;
170
+ }
171
+ function countHintCues(text, values, minimumCoverage = 0) {
172
+ if (!values)
173
+ return 0;
174
+ const lower = text.toLowerCase();
175
+ return values.reduce((count, value) => {
176
+ const cues = (value.toLowerCase().match(/[a-z0-9]+/g) ?? []).filter((cue) => cue.length > 3 &&
177
+ !["when", "this", "that", "with", "from", "use"].includes(cue));
178
+ if (cues.length === 0)
179
+ return count;
180
+ const matched = cues.filter((cue) => lower.includes(cue)).length;
181
+ // A single generic word from a do_not_use_when sentence is not negative
182
+ // evidence. Require an exact phrase or at least two meaningful cues.
183
+ const phrase = value
184
+ .toLowerCase()
185
+ .replace(/^do\s+not\s+use\s+(?:when|for)\s+/, "")
186
+ .replace(/^use\s+(?:when|for)\s+/, "")
187
+ .replace(/[^a-z0-9]+/g, " ")
188
+ .trim();
189
+ const exactPhrase = phrase.length > 0 && lower.includes(phrase);
190
+ const requiredMatches = minimumCoverage > 0
191
+ ? Math.max(2, Math.ceil(cues.length * minimumCoverage))
192
+ : Math.min(2, cues.length);
193
+ return count + (exactPhrase || matched >= requiredMatches ? 1 : 0);
194
+ }, 0);
195
+ }
196
+ function specificityEvidence(schema, text) {
197
+ const values = [
198
+ schema.predicate_name,
199
+ ...(schema.aliases ?? []),
200
+ ...(schema.paraphrase_templates ?? []),
201
+ ...schema.keywords,
202
+ ];
203
+ const lower = text.toLowerCase();
204
+ const hits = values.reduce((count, value) => {
205
+ const cues = value.toLowerCase().match(/[a-z0-9]+/g) ?? [];
206
+ return (count +
207
+ (cues.some((cue) => cue.length > 3 && lower.includes(cue)) ? 1 : 0));
208
+ }, 0);
209
+ return Math.min(1, hits / Math.max(3, values.length / 2));
210
+ }
211
+ /**
212
+ * Evaluate semantic fit after retrieval and before argument binding. The
213
+ * function deliberately does not inspect argument values: complete-looking
214
+ * terms cannot make a semantically unrelated schema eligible.
215
+ */
216
+ export function evaluateSemanticApplicability(ranked, text) {
217
+ const schema = ranked.schema;
218
+ const rule = INTENT_RULES[schema.predicate_name];
219
+ const usageHints = usageHintsForSchema(schema);
220
+ const positiveHints = countHintCues(text, usageHints?.use_when);
221
+ const negativeHints = countHintCues(text, usageHints?.do_not_use_when, 0.6);
222
+ const specific = specificityEvidence(schema, text);
223
+ const reasons = [];
224
+ if (!expressesNormativeOrValidityIntent(text)) {
225
+ reasons.push("prose does not express normative or validity intent");
226
+ }
227
+ let positive = specific + positiveHints * 0.16;
228
+ let negative = negativeHints * 0.2 + ranked.components.negative_evidence * 0.45;
229
+ if (ranked.components.exact_pattern >= 0.9) {
230
+ // Exact structural scorers are reviewed semantic patterns, not mere token
231
+ // overlap. They may satisfy the baseline intent evidence unless an
232
+ // explicit contradictory cue below rejects them.
233
+ positive += 0.38;
234
+ }
235
+ if (rule?.allOf) {
236
+ for (const group of rule.allOf) {
237
+ if (group.some((pattern) => pattern.test(text)))
238
+ positive += 0.22;
239
+ else
240
+ reasons.push(`required semantic cue absent for ${schema.predicate_name}`);
241
+ }
242
+ // A declared intent rule that satisfies every cue group is meaningful
243
+ // semantic evidence even when lexical retrieval was weak (for example,
244
+ // "timeout must not exceed 30 seconds" versus a short schema keyword
245
+ // list). Give that complete match a bounded applicability lift.
246
+ if (rule.allOf.every((group) => group.some((pattern) => pattern.test(text))))
247
+ positive += 0.2;
248
+ }
249
+ if (rule?.anyOf && !rule.anyOf.some((pattern) => pattern.test(text))) {
250
+ reasons.push(`intent cues do not describe ${schema.predicate_name}`);
251
+ }
252
+ else if (rule?.anyOf) {
253
+ positive += 0.26;
254
+ }
255
+ const prohibited = [...(rule?.prohibited ?? [])].filter((pattern) => pattern.test(text));
256
+ if (prohibited.length > 0) {
257
+ negative += prohibited.length * 0.35;
258
+ reasons.push(`prohibited or contradictory cue: ${prohibited
259
+ .map((pattern) => pattern.source)
260
+ .join(", ")}`);
261
+ }
262
+ if (negativeHints > 0) {
263
+ reasons.push("usage guidance says this schema is not for the supplied intent");
264
+ }
265
+ const score = round(ranked.score * 0.42 +
266
+ Math.min(1, positive) * 0.58 -
267
+ Math.min(1, negative) * 0.46);
268
+ if (score < MIN_APPLICABILITY_SCORE) {
269
+ reasons.push(`applicability score ${score.toFixed(2)} is below conservative threshold ${MIN_APPLICABILITY_SCORE.toFixed(2)}`);
270
+ }
271
+ return {
272
+ eligible: reasons.length === 0 && score >= MIN_APPLICABILITY_SCORE,
273
+ reasons: Array.from(new Set(reasons)),
274
+ applicabilityScore: score,
275
+ };
276
+ }
@@ -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
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"predicate-catalog-4.d.ts","sourceRoot":"","sources":["../../../src/operations/modeling/predicate-catalog-4.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,eAAO,MAAM,mBAAmB,EAAE,wBAAwB,EAoJzD,CAAC"}
1
+ {"version":3,"file":"predicate-catalog-4.d.ts","sourceRoot":"","sources":["../../../src/operations/modeling/predicate-catalog-4.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,eAAO,MAAM,mBAAmB,EAAE,wBAAwB,EAoTzD,CAAC"}