@raytio/mcp-server 3.1.1 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (553) hide show
  1. package/dist/capabilities/effective-capabilities.d.ts +11 -4
  2. package/dist/capabilities/effective-capabilities.d.ts.map +1 -1
  3. package/dist/capabilities/effective-capabilities.js +11 -4
  4. package/dist/capabilities/effective-capabilities.js.map +1 -1
  5. package/dist/capabilities/tool-capability.d.ts +52 -0
  6. package/dist/capabilities/tool-capability.d.ts.map +1 -0
  7. package/dist/capabilities/tool-capability.js +238 -0
  8. package/dist/capabilities/tool-capability.js.map +1 -0
  9. package/dist/generated-reads/catalogue.d.ts +80 -0
  10. package/dist/generated-reads/catalogue.d.ts.map +1 -0
  11. package/dist/generated-reads/catalogue.js +127 -0
  12. package/dist/generated-reads/catalogue.js.map +1 -0
  13. package/dist/generated-reads/guardrails.d.ts +147 -0
  14. package/dist/generated-reads/guardrails.d.ts.map +1 -0
  15. package/dist/generated-reads/guardrails.js +190 -0
  16. package/dist/generated-reads/guardrails.js.map +1 -0
  17. package/dist/generated-reads/index.d.ts +9 -0
  18. package/dist/generated-reads/index.d.ts.map +1 -0
  19. package/dist/generated-reads/index.js +5 -0
  20. package/dist/generated-reads/index.js.map +1 -0
  21. package/dist/generated-reads/query-builder.d.ts +99 -0
  22. package/dist/generated-reads/query-builder.d.ts.map +1 -0
  23. package/dist/generated-reads/query-builder.js +240 -0
  24. package/dist/generated-reads/query-builder.js.map +1 -0
  25. package/dist/generated-reads/resource-tools.d.ts +110 -0
  26. package/dist/generated-reads/resource-tools.d.ts.map +1 -0
  27. package/dist/generated-reads/resource-tools.js +280 -0
  28. package/dist/generated-reads/resource-tools.js.map +1 -0
  29. package/dist/tools/domains.d.ts.map +1 -1
  30. package/dist/tools/domains.js +9 -0
  31. package/dist/tools/domains.js.map +1 -1
  32. package/dist/tools/dsm/index.d.ts.map +1 -1
  33. package/dist/tools/dsm/index.js +18 -0
  34. package/dist/tools/dsm/index.js.map +1 -1
  35. package/dist/tools/ppm/activity-create.d.ts.map +1 -1
  36. package/dist/tools/ppm/activity-create.js +4 -0
  37. package/dist/tools/ppm/activity-create.js.map +1 -1
  38. package/dist/tools/ppm/activity-update.d.ts.map +1 -1
  39. package/dist/tools/ppm/activity-update.js +4 -0
  40. package/dist/tools/ppm/activity-update.js.map +1 -1
  41. package/dist/tools/ppm/external-system-list.d.ts.map +1 -1
  42. package/dist/tools/ppm/external-system-list.js +4 -0
  43. package/dist/tools/ppm/external-system-list.js.map +1 -1
  44. package/dist/tools/ppm/template-create.d.ts.map +1 -1
  45. package/dist/tools/ppm/template-create.js +4 -0
  46. package/dist/tools/ppm/template-create.js.map +1 -1
  47. package/dist/tools/ppm/template-get.d.ts.map +1 -1
  48. package/dist/tools/ppm/template-get.js +5 -0
  49. package/dist/tools/ppm/template-get.js.map +1 -1
  50. package/dist/tools/ppm/template-instantiate.d.ts.map +1 -1
  51. package/dist/tools/ppm/template-instantiate.js +4 -0
  52. package/dist/tools/ppm/template-instantiate.js.map +1 -1
  53. package/dist/tools/ppm/template-list.d.ts.map +1 -1
  54. package/dist/tools/ppm/template-list.js +4 -0
  55. package/dist/tools/ppm/template-list.js.map +1 -1
  56. package/dist/tools/ppm/template-slot-create.d.ts.map +1 -1
  57. package/dist/tools/ppm/template-slot-create.js +4 -0
  58. package/dist/tools/ppm/template-slot-create.js.map +1 -1
  59. package/dist/tools/ppm/template-slot-list.d.ts.map +1 -1
  60. package/dist/tools/ppm/template-slot-list.js +4 -0
  61. package/dist/tools/ppm/template-slot-list.js.map +1 -1
  62. package/dist/tools/ppm/work-item-activities.d.ts.map +1 -1
  63. package/dist/tools/ppm/work-item-activities.js +4 -0
  64. package/dist/tools/ppm/work-item-activities.js.map +1 -1
  65. package/dist/tools/ppm/work-item-block.d.ts.map +1 -1
  66. package/dist/tools/ppm/work-item-block.js +5 -0
  67. package/dist/tools/ppm/work-item-block.js.map +1 -1
  68. package/dist/tools/ppm/work-item-cancel.d.ts.map +1 -1
  69. package/dist/tools/ppm/work-item-cancel.js +14 -2
  70. package/dist/tools/ppm/work-item-cancel.js.map +1 -1
  71. package/dist/tools/ppm/work-item-comment.d.ts.map +1 -1
  72. package/dist/tools/ppm/work-item-comment.js +4 -0
  73. package/dist/tools/ppm/work-item-comment.js.map +1 -1
  74. package/dist/tools/ppm/work-item-complete.d.ts.map +1 -1
  75. package/dist/tools/ppm/work-item-complete.js +5 -0
  76. package/dist/tools/ppm/work-item-complete.js.map +1 -1
  77. package/dist/tools/ppm/work-item-create.d.ts.map +1 -1
  78. package/dist/tools/ppm/work-item-create.js +4 -0
  79. package/dist/tools/ppm/work-item-create.js.map +1 -1
  80. package/dist/tools/ppm/work-item-dependency-create.d.ts.map +1 -1
  81. package/dist/tools/ppm/work-item-dependency-create.js +4 -0
  82. package/dist/tools/ppm/work-item-dependency-create.js.map +1 -1
  83. package/dist/tools/ppm/work-item-dependency-list.d.ts.map +1 -1
  84. package/dist/tools/ppm/work-item-dependency-list.js +4 -0
  85. package/dist/tools/ppm/work-item-dependency-list.js.map +1 -1
  86. package/dist/tools/ppm/work-item-get.d.ts.map +1 -1
  87. package/dist/tools/ppm/work-item-get.js +4 -0
  88. package/dist/tools/ppm/work-item-get.js.map +1 -1
  89. package/dist/tools/ppm/work-item-link-create.d.ts.map +1 -1
  90. package/dist/tools/ppm/work-item-link-create.js +4 -0
  91. package/dist/tools/ppm/work-item-link-create.js.map +1 -1
  92. package/dist/tools/ppm/work-item-link-list.d.ts.map +1 -1
  93. package/dist/tools/ppm/work-item-link-list.js +4 -0
  94. package/dist/tools/ppm/work-item-link-list.js.map +1 -1
  95. package/dist/tools/ppm/work-item-list.d.ts.map +1 -1
  96. package/dist/tools/ppm/work-item-list.js +4 -0
  97. package/dist/tools/ppm/work-item-list.js.map +1 -1
  98. package/dist/tools/ppm/work-item-ready.d.ts.map +1 -1
  99. package/dist/tools/ppm/work-item-ready.js +5 -0
  100. package/dist/tools/ppm/work-item-ready.js.map +1 -1
  101. package/dist/tools/ppm/work-item-start.d.ts.map +1 -1
  102. package/dist/tools/ppm/work-item-start.js +5 -0
  103. package/dist/tools/ppm/work-item-start.js.map +1 -1
  104. package/dist/tools/ppm/work-item-tree.d.ts.map +1 -1
  105. package/dist/tools/ppm/work-item-tree.js +4 -0
  106. package/dist/tools/ppm/work-item-tree.js.map +1 -1
  107. package/dist/tools/ppm/work-item-unblock.d.ts.map +1 -1
  108. package/dist/tools/ppm/work-item-unblock.js +5 -0
  109. package/dist/tools/ppm/work-item-unblock.js.map +1 -1
  110. package/dist/tools/ppm/work-item-update-progress.d.ts.map +1 -1
  111. package/dist/tools/ppm/work-item-update-progress.js +5 -0
  112. package/dist/tools/ppm/work-item-update-progress.js.map +1 -1
  113. package/dist/tools/ppm/work-item-update.d.ts.map +1 -1
  114. package/dist/tools/ppm/work-item-update.js +4 -0
  115. package/dist/tools/ppm/work-item-update.js.map +1 -1
  116. package/dist/tools/prm/index.d.ts.map +1 -1
  117. package/dist/tools/prm/index.js +21 -0
  118. package/dist/tools/prm/index.js.map +1 -1
  119. package/dist/tools/prm/prm-party-create.d.ts.map +1 -1
  120. package/dist/tools/prm/prm-party-create.js +4 -0
  121. package/dist/tools/prm/prm-party-create.js.map +1 -1
  122. package/dist/tools/prm/prm-party-list.d.ts.map +1 -1
  123. package/dist/tools/prm/prm-party-list.js +4 -0
  124. package/dist/tools/prm/prm-party-list.js.map +1 -1
  125. package/dist/tools/registry.d.ts +68 -0
  126. package/dist/tools/registry.d.ts.map +1 -1
  127. package/dist/tools/sfa/activity-create.d.ts.map +1 -1
  128. package/dist/tools/sfa/activity-create.js +2 -0
  129. package/dist/tools/sfa/activity-create.js.map +1 -1
  130. package/dist/tools/sfa/activity-list.d.ts.map +1 -1
  131. package/dist/tools/sfa/activity-list.js +2 -0
  132. package/dist/tools/sfa/activity-list.js.map +1 -1
  133. package/dist/tools/sfa/deal-create.d.ts.map +1 -1
  134. package/dist/tools/sfa/deal-create.js +2 -0
  135. package/dist/tools/sfa/deal-create.js.map +1 -1
  136. package/dist/tools/sfa/deal-get.d.ts.map +1 -1
  137. package/dist/tools/sfa/deal-get.js +2 -0
  138. package/dist/tools/sfa/deal-get.js.map +1 -1
  139. package/dist/tools/sfa/deal-line-create.d.ts.map +1 -1
  140. package/dist/tools/sfa/deal-line-create.js +2 -0
  141. package/dist/tools/sfa/deal-line-create.js.map +1 -1
  142. package/dist/tools/sfa/deal-line-list.d.ts.map +1 -1
  143. package/dist/tools/sfa/deal-line-list.js +2 -0
  144. package/dist/tools/sfa/deal-line-list.js.map +1 -1
  145. package/dist/tools/sfa/deal-list.d.ts.map +1 -1
  146. package/dist/tools/sfa/deal-list.js +2 -0
  147. package/dist/tools/sfa/deal-list.js.map +1 -1
  148. package/dist/tools/sfa/deal-update.d.ts.map +1 -1
  149. package/dist/tools/sfa/deal-update.js +2 -0
  150. package/dist/tools/sfa/deal-update.js.map +1 -1
  151. package/dist/tools/sfa/lead-create.d.ts.map +1 -1
  152. package/dist/tools/sfa/lead-create.js +2 -0
  153. package/dist/tools/sfa/lead-create.js.map +1 -1
  154. package/dist/tools/sfa/lead-get.d.ts.map +1 -1
  155. package/dist/tools/sfa/lead-get.js +2 -0
  156. package/dist/tools/sfa/lead-get.js.map +1 -1
  157. package/dist/tools/sfa/lead-list.d.ts.map +1 -1
  158. package/dist/tools/sfa/lead-list.js +2 -0
  159. package/dist/tools/sfa/lead-list.js.map +1 -1
  160. package/dist/tools/sfa/lead-source-list.d.ts.map +1 -1
  161. package/dist/tools/sfa/lead-source-list.js +2 -0
  162. package/dist/tools/sfa/lead-source-list.js.map +1 -1
  163. package/dist/tools/sfa/lead-staging-get.d.ts.map +1 -1
  164. package/dist/tools/sfa/lead-staging-get.js +2 -0
  165. package/dist/tools/sfa/lead-staging-get.js.map +1 -1
  166. package/dist/tools/sfa/lead-staging-list.d.ts.map +1 -1
  167. package/dist/tools/sfa/lead-staging-list.js +2 -0
  168. package/dist/tools/sfa/lead-staging-list.js.map +1 -1
  169. package/dist/tools/sfa/lead-update.d.ts.map +1 -1
  170. package/dist/tools/sfa/lead-update.js +2 -0
  171. package/dist/tools/sfa/lead-update.js.map +1 -1
  172. package/dist/tools/sfa/pipeline-list.d.ts.map +1 -1
  173. package/dist/tools/sfa/pipeline-list.js +2 -0
  174. package/dist/tools/sfa/pipeline-list.js.map +1 -1
  175. package/dist/tools/wrm/wrm-agent-run-artifact-create.d.ts.map +1 -1
  176. package/dist/tools/wrm/wrm-agent-run-artifact-create.js +4 -0
  177. package/dist/tools/wrm/wrm-agent-run-artifact-create.js.map +1 -1
  178. package/dist/tools/wrm/wrm-agent-run-artifact-get.d.ts.map +1 -1
  179. package/dist/tools/wrm/wrm-agent-run-artifact-get.js +4 -0
  180. package/dist/tools/wrm/wrm-agent-run-artifact-get.js.map +1 -1
  181. package/dist/tools/wrm/wrm-agent-run-artifact-list.d.ts.map +1 -1
  182. package/dist/tools/wrm/wrm-agent-run-artifact-list.js +4 -0
  183. package/dist/tools/wrm/wrm-agent-run-artifact-list.js.map +1 -1
  184. package/dist/tools/wrm/wrm-agent-run-cost-summary.d.ts.map +1 -1
  185. package/dist/tools/wrm/wrm-agent-run-cost-summary.js +6 -0
  186. package/dist/tools/wrm/wrm-agent-run-cost-summary.js.map +1 -1
  187. package/dist/tools/wrm/wrm-agent-run-create.d.ts.map +1 -1
  188. package/dist/tools/wrm/wrm-agent-run-create.js +4 -0
  189. package/dist/tools/wrm/wrm-agent-run-create.js.map +1 -1
  190. package/dist/tools/wrm/wrm-agent-run-eval-create.d.ts.map +1 -1
  191. package/dist/tools/wrm/wrm-agent-run-eval-create.js +4 -0
  192. package/dist/tools/wrm/wrm-agent-run-eval-create.js.map +1 -1
  193. package/dist/tools/wrm/wrm-agent-run-eval-list.d.ts.map +1 -1
  194. package/dist/tools/wrm/wrm-agent-run-eval-list.js +4 -0
  195. package/dist/tools/wrm/wrm-agent-run-eval-list.js.map +1 -1
  196. package/dist/tools/wrm/wrm-agent-run-eval-summary.d.ts.map +1 -1
  197. package/dist/tools/wrm/wrm-agent-run-eval-summary.js +8 -0
  198. package/dist/tools/wrm/wrm-agent-run-eval-summary.js.map +1 -1
  199. package/dist/tools/wrm/wrm-agent-run-get.d.ts.map +1 -1
  200. package/dist/tools/wrm/wrm-agent-run-get.js +4 -0
  201. package/dist/tools/wrm/wrm-agent-run-get.js.map +1 -1
  202. package/dist/tools/wrm/wrm-agent-run-guardrail-result-create.d.ts.map +1 -1
  203. package/dist/tools/wrm/wrm-agent-run-guardrail-result-create.js +4 -0
  204. package/dist/tools/wrm/wrm-agent-run-guardrail-result-create.js.map +1 -1
  205. package/dist/tools/wrm/wrm-agent-run-guardrail-result-list.d.ts.map +1 -1
  206. package/dist/tools/wrm/wrm-agent-run-guardrail-result-list.js +4 -0
  207. package/dist/tools/wrm/wrm-agent-run-guardrail-result-list.js.map +1 -1
  208. package/dist/tools/wrm/wrm-agent-run-guardrail-summary.d.ts.map +1 -1
  209. package/dist/tools/wrm/wrm-agent-run-guardrail-summary.js +5 -0
  210. package/dist/tools/wrm/wrm-agent-run-guardrail-summary.js.map +1 -1
  211. package/dist/tools/wrm/wrm-agent-run-list.d.ts.map +1 -1
  212. package/dist/tools/wrm/wrm-agent-run-list.js +4 -0
  213. package/dist/tools/wrm/wrm-agent-run-list.js.map +1 -1
  214. package/dist/tools/wrm/wrm-agent-run-step-create.d.ts.map +1 -1
  215. package/dist/tools/wrm/wrm-agent-run-step-create.js +4 -0
  216. package/dist/tools/wrm/wrm-agent-run-step-create.js.map +1 -1
  217. package/dist/tools/wrm/wrm-agent-run-step-list.d.ts.map +1 -1
  218. package/dist/tools/wrm/wrm-agent-run-step-list.js +4 -0
  219. package/dist/tools/wrm/wrm-agent-run-step-list.js.map +1 -1
  220. package/dist/tools/wrm/wrm-agent-run-step-update.d.ts.map +1 -1
  221. package/dist/tools/wrm/wrm-agent-run-step-update.js +4 -0
  222. package/dist/tools/wrm/wrm-agent-run-step-update.js.map +1 -1
  223. package/dist/tools/wrm/wrm-agent-run-summary.d.ts.map +1 -1
  224. package/dist/tools/wrm/wrm-agent-run-summary.js +7 -0
  225. package/dist/tools/wrm/wrm-agent-run-summary.js.map +1 -1
  226. package/dist/tools/wrm/wrm-agent-run-update.d.ts.map +1 -1
  227. package/dist/tools/wrm/wrm-agent-run-update.js +4 -0
  228. package/dist/tools/wrm/wrm-agent-run-update.js.map +1 -1
  229. package/dist/tools/wrm/wrm-credential-list.d.ts.map +1 -1
  230. package/dist/tools/wrm/wrm-credential-list.js +4 -0
  231. package/dist/tools/wrm/wrm-credential-list.js.map +1 -1
  232. package/dist/tools/wrm/wrm-credential-request-create.d.ts.map +1 -1
  233. package/dist/tools/wrm/wrm-credential-request-create.js +14 -0
  234. package/dist/tools/wrm/wrm-credential-request-create.js.map +1 -1
  235. package/dist/tools/wrm/wrm-credential-request-status.d.ts.map +1 -1
  236. package/dist/tools/wrm/wrm-credential-request-status.js +5 -0
  237. package/dist/tools/wrm/wrm-credential-request-status.js.map +1 -1
  238. package/dist/tools/wrm/wrm-credential-retrieve.d.ts.map +1 -1
  239. package/dist/tools/wrm/wrm-credential-retrieve.js +4 -0
  240. package/dist/tools/wrm/wrm-credential-retrieve.js.map +1 -1
  241. package/dist/tools/wrm/wrm-credential-revoke.d.ts.map +1 -1
  242. package/dist/tools/wrm/wrm-credential-revoke.js +7 -0
  243. package/dist/tools/wrm/wrm-credential-revoke.js.map +1 -1
  244. package/dist/tools/wrm/wrm-domain-create.d.ts.map +1 -1
  245. package/dist/tools/wrm/wrm-domain-create.js +4 -0
  246. package/dist/tools/wrm/wrm-domain-create.js.map +1 -1
  247. package/dist/tools/wrm/wrm-domain-get.d.ts.map +1 -1
  248. package/dist/tools/wrm/wrm-domain-get.js +4 -0
  249. package/dist/tools/wrm/wrm-domain-get.js.map +1 -1
  250. package/dist/tools/wrm/wrm-domain-list.d.ts.map +1 -1
  251. package/dist/tools/wrm/wrm-domain-list.js +4 -0
  252. package/dist/tools/wrm/wrm-domain-list.js.map +1 -1
  253. package/dist/tools/wrm/wrm-domain-repository-create.d.ts.map +1 -1
  254. package/dist/tools/wrm/wrm-domain-repository-create.js +4 -0
  255. package/dist/tools/wrm/wrm-domain-repository-create.js.map +1 -1
  256. package/dist/tools/wrm/wrm-domain-repository-get.d.ts.map +1 -1
  257. package/dist/tools/wrm/wrm-domain-repository-get.js +4 -0
  258. package/dist/tools/wrm/wrm-domain-repository-get.js.map +1 -1
  259. package/dist/tools/wrm/wrm-domain-repository-list.d.ts.map +1 -1
  260. package/dist/tools/wrm/wrm-domain-repository-list.js +4 -0
  261. package/dist/tools/wrm/wrm-domain-repository-list.js.map +1 -1
  262. package/dist/tools/wrm/wrm-domain-repository-update.d.ts.map +1 -1
  263. package/dist/tools/wrm/wrm-domain-repository-update.js +4 -0
  264. package/dist/tools/wrm/wrm-domain-repository-update.js.map +1 -1
  265. package/dist/tools/wrm/wrm-domain-update.d.ts.map +1 -1
  266. package/dist/tools/wrm/wrm-domain-update.js +4 -0
  267. package/dist/tools/wrm/wrm-domain-update.js.map +1 -1
  268. package/dist/tools/wrm/wrm-effective-mcp-servers.d.ts.map +1 -1
  269. package/dist/tools/wrm/wrm-effective-mcp-servers.js +4 -0
  270. package/dist/tools/wrm/wrm-effective-mcp-servers.js.map +1 -1
  271. package/dist/tools/wrm/wrm-effective-mcp-tools.d.ts.map +1 -1
  272. package/dist/tools/wrm/wrm-effective-mcp-tools.js +4 -0
  273. package/dist/tools/wrm/wrm-effective-mcp-tools.js.map +1 -1
  274. package/dist/tools/wrm/wrm-effective-model-prefs.d.ts.map +1 -1
  275. package/dist/tools/wrm/wrm-effective-model-prefs.js +4 -0
  276. package/dist/tools/wrm/wrm-effective-model-prefs.js.map +1 -1
  277. package/dist/tools/wrm/wrm-eval-scorer-create.d.ts.map +1 -1
  278. package/dist/tools/wrm/wrm-eval-scorer-create.js +4 -0
  279. package/dist/tools/wrm/wrm-eval-scorer-create.js.map +1 -1
  280. package/dist/tools/wrm/wrm-eval-scorer-get.d.ts.map +1 -1
  281. package/dist/tools/wrm/wrm-eval-scorer-get.js +4 -0
  282. package/dist/tools/wrm/wrm-eval-scorer-get.js.map +1 -1
  283. package/dist/tools/wrm/wrm-eval-scorer-list.d.ts.map +1 -1
  284. package/dist/tools/wrm/wrm-eval-scorer-list.js +4 -0
  285. package/dist/tools/wrm/wrm-eval-scorer-list.js.map +1 -1
  286. package/dist/tools/wrm/wrm-eval-scorer-update.d.ts.map +1 -1
  287. package/dist/tools/wrm/wrm-eval-scorer-update.js +4 -0
  288. package/dist/tools/wrm/wrm-eval-scorer-update.js.map +1 -1
  289. package/dist/tools/wrm/wrm-guardrail-create.d.ts.map +1 -1
  290. package/dist/tools/wrm/wrm-guardrail-create.js +4 -0
  291. package/dist/tools/wrm/wrm-guardrail-create.js.map +1 -1
  292. package/dist/tools/wrm/wrm-guardrail-get.d.ts.map +1 -1
  293. package/dist/tools/wrm/wrm-guardrail-get.js +4 -0
  294. package/dist/tools/wrm/wrm-guardrail-get.js.map +1 -1
  295. package/dist/tools/wrm/wrm-guardrail-list.d.ts.map +1 -1
  296. package/dist/tools/wrm/wrm-guardrail-list.js +4 -0
  297. package/dist/tools/wrm/wrm-guardrail-list.js.map +1 -1
  298. package/dist/tools/wrm/wrm-guardrail-update.d.ts.map +1 -1
  299. package/dist/tools/wrm/wrm-guardrail-update.js +4 -0
  300. package/dist/tools/wrm/wrm-guardrail-update.js.map +1 -1
  301. package/dist/tools/wrm/wrm-knowledge-chunk-search.d.ts.map +1 -1
  302. package/dist/tools/wrm/wrm-knowledge-chunk-search.js +4 -0
  303. package/dist/tools/wrm/wrm-knowledge-chunk-search.js.map +1 -1
  304. package/dist/tools/wrm/wrm-knowledge-source-create.d.ts.map +1 -1
  305. package/dist/tools/wrm/wrm-knowledge-source-create.js +4 -0
  306. package/dist/tools/wrm/wrm-knowledge-source-create.js.map +1 -1
  307. package/dist/tools/wrm/wrm-knowledge-source-get.d.ts.map +1 -1
  308. package/dist/tools/wrm/wrm-knowledge-source-get.js +4 -0
  309. package/dist/tools/wrm/wrm-knowledge-source-get.js.map +1 -1
  310. package/dist/tools/wrm/wrm-knowledge-source-list.d.ts.map +1 -1
  311. package/dist/tools/wrm/wrm-knowledge-source-list.js +4 -0
  312. package/dist/tools/wrm/wrm-knowledge-source-list.js.map +1 -1
  313. package/dist/tools/wrm/wrm-knowledge-source-update.d.ts.map +1 -1
  314. package/dist/tools/wrm/wrm-knowledge-source-update.js +4 -0
  315. package/dist/tools/wrm/wrm-knowledge-source-update.js.map +1 -1
  316. package/dist/tools/wrm/wrm-mcp-server-create.d.ts.map +1 -1
  317. package/dist/tools/wrm/wrm-mcp-server-create.js +4 -0
  318. package/dist/tools/wrm/wrm-mcp-server-create.js.map +1 -1
  319. package/dist/tools/wrm/wrm-mcp-server-get.d.ts.map +1 -1
  320. package/dist/tools/wrm/wrm-mcp-server-get.js +4 -0
  321. package/dist/tools/wrm/wrm-mcp-server-get.js.map +1 -1
  322. package/dist/tools/wrm/wrm-mcp-server-list.d.ts.map +1 -1
  323. package/dist/tools/wrm/wrm-mcp-server-list.js +4 -0
  324. package/dist/tools/wrm/wrm-mcp-server-list.js.map +1 -1
  325. package/dist/tools/wrm/wrm-mcp-server-update.d.ts.map +1 -1
  326. package/dist/tools/wrm/wrm-mcp-server-update.js +4 -0
  327. package/dist/tools/wrm/wrm-mcp-server-update.js.map +1 -1
  328. package/dist/tools/wrm/wrm-mcp-tool-create.d.ts.map +1 -1
  329. package/dist/tools/wrm/wrm-mcp-tool-create.js +4 -0
  330. package/dist/tools/wrm/wrm-mcp-tool-create.js.map +1 -1
  331. package/dist/tools/wrm/wrm-mcp-tool-get.d.ts.map +1 -1
  332. package/dist/tools/wrm/wrm-mcp-tool-get.js +4 -0
  333. package/dist/tools/wrm/wrm-mcp-tool-get.js.map +1 -1
  334. package/dist/tools/wrm/wrm-mcp-tool-list.d.ts.map +1 -1
  335. package/dist/tools/wrm/wrm-mcp-tool-list.js +4 -0
  336. package/dist/tools/wrm/wrm-mcp-tool-list.js.map +1 -1
  337. package/dist/tools/wrm/wrm-mcp-tool-update.d.ts.map +1 -1
  338. package/dist/tools/wrm/wrm-mcp-tool-update.js +4 -0
  339. package/dist/tools/wrm/wrm-mcp-tool-update.js.map +1 -1
  340. package/dist/tools/wrm/wrm-memory-create.d.ts.map +1 -1
  341. package/dist/tools/wrm/wrm-memory-create.js +6 -0
  342. package/dist/tools/wrm/wrm-memory-create.js.map +1 -1
  343. package/dist/tools/wrm/wrm-memory-get.d.ts.map +1 -1
  344. package/dist/tools/wrm/wrm-memory-get.js +4 -0
  345. package/dist/tools/wrm/wrm-memory-get.js.map +1 -1
  346. package/dist/tools/wrm/wrm-memory-list.d.ts.map +1 -1
  347. package/dist/tools/wrm/wrm-memory-list.js +4 -0
  348. package/dist/tools/wrm/wrm-memory-list.js.map +1 -1
  349. package/dist/tools/wrm/wrm-memory-search.d.ts.map +1 -1
  350. package/dist/tools/wrm/wrm-memory-search.js +4 -0
  351. package/dist/tools/wrm/wrm-memory-search.js.map +1 -1
  352. package/dist/tools/wrm/wrm-memory-update.d.ts.map +1 -1
  353. package/dist/tools/wrm/wrm-memory-update.js +5 -0
  354. package/dist/tools/wrm/wrm-memory-update.js.map +1 -1
  355. package/dist/tools/wrm/wrm-model-availability-create.d.ts.map +1 -1
  356. package/dist/tools/wrm/wrm-model-availability-create.js +4 -0
  357. package/dist/tools/wrm/wrm-model-availability-create.js.map +1 -1
  358. package/dist/tools/wrm/wrm-model-availability-get.d.ts.map +1 -1
  359. package/dist/tools/wrm/wrm-model-availability-get.js +4 -0
  360. package/dist/tools/wrm/wrm-model-availability-get.js.map +1 -1
  361. package/dist/tools/wrm/wrm-model-availability-list.d.ts.map +1 -1
  362. package/dist/tools/wrm/wrm-model-availability-list.js +4 -0
  363. package/dist/tools/wrm/wrm-model-availability-list.js.map +1 -1
  364. package/dist/tools/wrm/wrm-model-availability-update.d.ts.map +1 -1
  365. package/dist/tools/wrm/wrm-model-availability-update.js +4 -0
  366. package/dist/tools/wrm/wrm-model-availability-update.js.map +1 -1
  367. package/dist/tools/wrm/wrm-model-create.d.ts.map +1 -1
  368. package/dist/tools/wrm/wrm-model-create.js +4 -0
  369. package/dist/tools/wrm/wrm-model-create.js.map +1 -1
  370. package/dist/tools/wrm/wrm-model-get.d.ts.map +1 -1
  371. package/dist/tools/wrm/wrm-model-get.js +4 -0
  372. package/dist/tools/wrm/wrm-model-get.js.map +1 -1
  373. package/dist/tools/wrm/wrm-model-list.d.ts.map +1 -1
  374. package/dist/tools/wrm/wrm-model-list.js +4 -0
  375. package/dist/tools/wrm/wrm-model-list.js.map +1 -1
  376. package/dist/tools/wrm/wrm-model-parameter-create.d.ts.map +1 -1
  377. package/dist/tools/wrm/wrm-model-parameter-create.js +4 -0
  378. package/dist/tools/wrm/wrm-model-parameter-create.js.map +1 -1
  379. package/dist/tools/wrm/wrm-model-parameter-get.d.ts.map +1 -1
  380. package/dist/tools/wrm/wrm-model-parameter-get.js +4 -0
  381. package/dist/tools/wrm/wrm-model-parameter-get.js.map +1 -1
  382. package/dist/tools/wrm/wrm-model-parameter-list.d.ts.map +1 -1
  383. package/dist/tools/wrm/wrm-model-parameter-list.js +4 -0
  384. package/dist/tools/wrm/wrm-model-parameter-list.js.map +1 -1
  385. package/dist/tools/wrm/wrm-model-parameter-update.d.ts.map +1 -1
  386. package/dist/tools/wrm/wrm-model-parameter-update.js +4 -0
  387. package/dist/tools/wrm/wrm-model-parameter-update.js.map +1 -1
  388. package/dist/tools/wrm/wrm-model-update.d.ts.map +1 -1
  389. package/dist/tools/wrm/wrm-model-update.js +4 -0
  390. package/dist/tools/wrm/wrm-model-update.js.map +1 -1
  391. package/dist/tools/wrm/wrm-platform-label-map-create.d.ts.map +1 -1
  392. package/dist/tools/wrm/wrm-platform-label-map-create.js +4 -0
  393. package/dist/tools/wrm/wrm-platform-label-map-create.js.map +1 -1
  394. package/dist/tools/wrm/wrm-platform-label-map-get.d.ts.map +1 -1
  395. package/dist/tools/wrm/wrm-platform-label-map-get.js +4 -0
  396. package/dist/tools/wrm/wrm-platform-label-map-get.js.map +1 -1
  397. package/dist/tools/wrm/wrm-platform-label-map-list.d.ts.map +1 -1
  398. package/dist/tools/wrm/wrm-platform-label-map-list.js +4 -0
  399. package/dist/tools/wrm/wrm-platform-label-map-list.js.map +1 -1
  400. package/dist/tools/wrm/wrm-platform-label-map-resolve.d.ts.map +1 -1
  401. package/dist/tools/wrm/wrm-platform-label-map-resolve.js +4 -0
  402. package/dist/tools/wrm/wrm-platform-label-map-resolve.js.map +1 -1
  403. package/dist/tools/wrm/wrm-platform-label-map-update.d.ts.map +1 -1
  404. package/dist/tools/wrm/wrm-platform-label-map-update.js +4 -0
  405. package/dist/tools/wrm/wrm-platform-label-map-update.js.map +1 -1
  406. package/dist/tools/wrm/wrm-provider-create.d.ts.map +1 -1
  407. package/dist/tools/wrm/wrm-provider-create.js +4 -0
  408. package/dist/tools/wrm/wrm-provider-create.js.map +1 -1
  409. package/dist/tools/wrm/wrm-provider-get.d.ts.map +1 -1
  410. package/dist/tools/wrm/wrm-provider-get.js +4 -0
  411. package/dist/tools/wrm/wrm-provider-get.js.map +1 -1
  412. package/dist/tools/wrm/wrm-provider-list.d.ts.map +1 -1
  413. package/dist/tools/wrm/wrm-provider-list.js +4 -0
  414. package/dist/tools/wrm/wrm-provider-list.js.map +1 -1
  415. package/dist/tools/wrm/wrm-provider-update.d.ts.map +1 -1
  416. package/dist/tools/wrm/wrm-provider-update.js +4 -0
  417. package/dist/tools/wrm/wrm-provider-update.js.map +1 -1
  418. package/dist/tools/wrm/wrm-role-create.d.ts.map +1 -1
  419. package/dist/tools/wrm/wrm-role-create.js +4 -0
  420. package/dist/tools/wrm/wrm-role-create.js.map +1 -1
  421. package/dist/tools/wrm/wrm-role-get.d.ts.map +1 -1
  422. package/dist/tools/wrm/wrm-role-get.js +4 -0
  423. package/dist/tools/wrm/wrm-role-get.js.map +1 -1
  424. package/dist/tools/wrm/wrm-role-list.d.ts.map +1 -1
  425. package/dist/tools/wrm/wrm-role-list.js +4 -0
  426. package/dist/tools/wrm/wrm-role-list.js.map +1 -1
  427. package/dist/tools/wrm/wrm-role-memory-create.d.ts.map +1 -1
  428. package/dist/tools/wrm/wrm-role-memory-create.js +4 -0
  429. package/dist/tools/wrm/wrm-role-memory-create.js.map +1 -1
  430. package/dist/tools/wrm/wrm-role-memory-get.d.ts.map +1 -1
  431. package/dist/tools/wrm/wrm-role-memory-get.js +4 -0
  432. package/dist/tools/wrm/wrm-role-memory-get.js.map +1 -1
  433. package/dist/tools/wrm/wrm-role-memory-list.d.ts.map +1 -1
  434. package/dist/tools/wrm/wrm-role-memory-list.js +4 -0
  435. package/dist/tools/wrm/wrm-role-memory-list.js.map +1 -1
  436. package/dist/tools/wrm/wrm-role-memory-search.d.ts.map +1 -1
  437. package/dist/tools/wrm/wrm-role-memory-search.js +5 -0
  438. package/dist/tools/wrm/wrm-role-memory-search.js.map +1 -1
  439. package/dist/tools/wrm/wrm-role-memory-update.d.ts.map +1 -1
  440. package/dist/tools/wrm/wrm-role-memory-update.js +4 -0
  441. package/dist/tools/wrm/wrm-role-memory-update.js.map +1 -1
  442. package/dist/tools/wrm/wrm-role-update.d.ts.map +1 -1
  443. package/dist/tools/wrm/wrm-role-update.js +4 -0
  444. package/dist/tools/wrm/wrm-role-update.js.map +1 -1
  445. package/dist/tools/wrm/wrm-sandbox-provider-create.d.ts.map +1 -1
  446. package/dist/tools/wrm/wrm-sandbox-provider-create.js +4 -0
  447. package/dist/tools/wrm/wrm-sandbox-provider-create.js.map +1 -1
  448. package/dist/tools/wrm/wrm-sandbox-provider-get.d.ts.map +1 -1
  449. package/dist/tools/wrm/wrm-sandbox-provider-get.js +4 -0
  450. package/dist/tools/wrm/wrm-sandbox-provider-get.js.map +1 -1
  451. package/dist/tools/wrm/wrm-sandbox-provider-list.d.ts.map +1 -1
  452. package/dist/tools/wrm/wrm-sandbox-provider-list.js +4 -0
  453. package/dist/tools/wrm/wrm-sandbox-provider-list.js.map +1 -1
  454. package/dist/tools/wrm/wrm-sandbox-provider-update.d.ts.map +1 -1
  455. package/dist/tools/wrm/wrm-sandbox-provider-update.js +4 -0
  456. package/dist/tools/wrm/wrm-sandbox-provider-update.js.map +1 -1
  457. package/dist/tools/wrm/wrm-worker-create.d.ts.map +1 -1
  458. package/dist/tools/wrm/wrm-worker-create.js +4 -0
  459. package/dist/tools/wrm/wrm-worker-create.js.map +1 -1
  460. package/dist/tools/wrm/wrm-worker-def-mcp-server-create.d.ts.map +1 -1
  461. package/dist/tools/wrm/wrm-worker-def-mcp-server-create.js +4 -0
  462. package/dist/tools/wrm/wrm-worker-def-mcp-server-create.js.map +1 -1
  463. package/dist/tools/wrm/wrm-worker-def-mcp-server-list.d.ts.map +1 -1
  464. package/dist/tools/wrm/wrm-worker-def-mcp-server-list.js +4 -0
  465. package/dist/tools/wrm/wrm-worker-def-mcp-server-list.js.map +1 -1
  466. package/dist/tools/wrm/wrm-worker-def-mcp-server-update.d.ts.map +1 -1
  467. package/dist/tools/wrm/wrm-worker-def-mcp-server-update.js +4 -0
  468. package/dist/tools/wrm/wrm-worker-def-mcp-server-update.js.map +1 -1
  469. package/dist/tools/wrm/wrm-worker-def-mcp-tool-create.d.ts.map +1 -1
  470. package/dist/tools/wrm/wrm-worker-def-mcp-tool-create.js +4 -0
  471. package/dist/tools/wrm/wrm-worker-def-mcp-tool-create.js.map +1 -1
  472. package/dist/tools/wrm/wrm-worker-def-mcp-tool-list.d.ts.map +1 -1
  473. package/dist/tools/wrm/wrm-worker-def-mcp-tool-list.js +4 -0
  474. package/dist/tools/wrm/wrm-worker-def-mcp-tool-list.js.map +1 -1
  475. package/dist/tools/wrm/wrm-worker-def-mcp-tool-update.d.ts.map +1 -1
  476. package/dist/tools/wrm/wrm-worker-def-mcp-tool-update.js +4 -0
  477. package/dist/tools/wrm/wrm-worker-def-mcp-tool-update.js.map +1 -1
  478. package/dist/tools/wrm/wrm-worker-def-model-pref-create.d.ts.map +1 -1
  479. package/dist/tools/wrm/wrm-worker-def-model-pref-create.js +4 -0
  480. package/dist/tools/wrm/wrm-worker-def-model-pref-create.js.map +1 -1
  481. package/dist/tools/wrm/wrm-worker-def-model-pref-list.d.ts.map +1 -1
  482. package/dist/tools/wrm/wrm-worker-def-model-pref-list.js +4 -0
  483. package/dist/tools/wrm/wrm-worker-def-model-pref-list.js.map +1 -1
  484. package/dist/tools/wrm/wrm-worker-def-model-pref-update.d.ts.map +1 -1
  485. package/dist/tools/wrm/wrm-worker-def-model-pref-update.js +4 -0
  486. package/dist/tools/wrm/wrm-worker-def-model-pref-update.js.map +1 -1
  487. package/dist/tools/wrm/wrm-worker-definition-create.d.ts.map +1 -1
  488. package/dist/tools/wrm/wrm-worker-definition-create.js +4 -0
  489. package/dist/tools/wrm/wrm-worker-definition-create.js.map +1 -1
  490. package/dist/tools/wrm/wrm-worker-definition-get.d.ts.map +1 -1
  491. package/dist/tools/wrm/wrm-worker-definition-get.js +4 -0
  492. package/dist/tools/wrm/wrm-worker-definition-get.js.map +1 -1
  493. package/dist/tools/wrm/wrm-worker-definition-list.d.ts.map +1 -1
  494. package/dist/tools/wrm/wrm-worker-definition-list.js +4 -0
  495. package/dist/tools/wrm/wrm-worker-definition-list.js.map +1 -1
  496. package/dist/tools/wrm/wrm-worker-definition-update.d.ts.map +1 -1
  497. package/dist/tools/wrm/wrm-worker-definition-update.js +4 -0
  498. package/dist/tools/wrm/wrm-worker-definition-update.js.map +1 -1
  499. package/dist/tools/wrm/wrm-worker-find-for-role.d.ts.map +1 -1
  500. package/dist/tools/wrm/wrm-worker-find-for-role.js +5 -0
  501. package/dist/tools/wrm/wrm-worker-find-for-role.js.map +1 -1
  502. package/dist/tools/wrm/wrm-worker-get.d.ts.map +1 -1
  503. package/dist/tools/wrm/wrm-worker-get.js +4 -0
  504. package/dist/tools/wrm/wrm-worker-get.js.map +1 -1
  505. package/dist/tools/wrm/wrm-worker-list.d.ts.map +1 -1
  506. package/dist/tools/wrm/wrm-worker-list.js +4 -0
  507. package/dist/tools/wrm/wrm-worker-list.js.map +1 -1
  508. package/dist/tools/wrm/wrm-worker-mcp-server-create.d.ts.map +1 -1
  509. package/dist/tools/wrm/wrm-worker-mcp-server-create.js +4 -0
  510. package/dist/tools/wrm/wrm-worker-mcp-server-create.js.map +1 -1
  511. package/dist/tools/wrm/wrm-worker-mcp-server-list.d.ts.map +1 -1
  512. package/dist/tools/wrm/wrm-worker-mcp-server-list.js +4 -0
  513. package/dist/tools/wrm/wrm-worker-mcp-server-list.js.map +1 -1
  514. package/dist/tools/wrm/wrm-worker-mcp-server-update.d.ts.map +1 -1
  515. package/dist/tools/wrm/wrm-worker-mcp-server-update.js +4 -0
  516. package/dist/tools/wrm/wrm-worker-mcp-server-update.js.map +1 -1
  517. package/dist/tools/wrm/wrm-worker-mcp-tool-create.d.ts.map +1 -1
  518. package/dist/tools/wrm/wrm-worker-mcp-tool-create.js +4 -0
  519. package/dist/tools/wrm/wrm-worker-mcp-tool-create.js.map +1 -1
  520. package/dist/tools/wrm/wrm-worker-mcp-tool-list.d.ts.map +1 -1
  521. package/dist/tools/wrm/wrm-worker-mcp-tool-list.js +4 -0
  522. package/dist/tools/wrm/wrm-worker-mcp-tool-list.js.map +1 -1
  523. package/dist/tools/wrm/wrm-worker-mcp-tool-update.d.ts.map +1 -1
  524. package/dist/tools/wrm/wrm-worker-mcp-tool-update.js +4 -0
  525. package/dist/tools/wrm/wrm-worker-mcp-tool-update.js.map +1 -1
  526. package/dist/tools/wrm/wrm-worker-model-pref-create.d.ts.map +1 -1
  527. package/dist/tools/wrm/wrm-worker-model-pref-create.js +4 -0
  528. package/dist/tools/wrm/wrm-worker-model-pref-create.js.map +1 -1
  529. package/dist/tools/wrm/wrm-worker-model-pref-list.d.ts.map +1 -1
  530. package/dist/tools/wrm/wrm-worker-model-pref-list.js +4 -0
  531. package/dist/tools/wrm/wrm-worker-model-pref-list.js.map +1 -1
  532. package/dist/tools/wrm/wrm-worker-model-pref-update.d.ts.map +1 -1
  533. package/dist/tools/wrm/wrm-worker-model-pref-update.js +4 -0
  534. package/dist/tools/wrm/wrm-worker-model-pref-update.js.map +1 -1
  535. package/dist/tools/wrm/wrm-worker-resolve-config.d.ts.map +1 -1
  536. package/dist/tools/wrm/wrm-worker-resolve-config.js +13 -0
  537. package/dist/tools/wrm/wrm-worker-resolve-config.js.map +1 -1
  538. package/dist/tools/wrm/wrm-worker-role-assignment-create.d.ts.map +1 -1
  539. package/dist/tools/wrm/wrm-worker-role-assignment-create.js +4 -0
  540. package/dist/tools/wrm/wrm-worker-role-assignment-create.js.map +1 -1
  541. package/dist/tools/wrm/wrm-worker-role-assignment-get.d.ts.map +1 -1
  542. package/dist/tools/wrm/wrm-worker-role-assignment-get.js +4 -0
  543. package/dist/tools/wrm/wrm-worker-role-assignment-get.js.map +1 -1
  544. package/dist/tools/wrm/wrm-worker-role-assignment-list.d.ts.map +1 -1
  545. package/dist/tools/wrm/wrm-worker-role-assignment-list.js +4 -0
  546. package/dist/tools/wrm/wrm-worker-role-assignment-list.js.map +1 -1
  547. package/dist/tools/wrm/wrm-worker-role-assignment-update.d.ts.map +1 -1
  548. package/dist/tools/wrm/wrm-worker-role-assignment-update.js +4 -0
  549. package/dist/tools/wrm/wrm-worker-role-assignment-update.js.map +1 -1
  550. package/dist/tools/wrm/wrm-worker-update.d.ts.map +1 -1
  551. package/dist/tools/wrm/wrm-worker-update.js +4 -0
  552. package/dist/tools/wrm/wrm-worker-update.js.map +1 -1
  553. package/package.json +1 -1
@@ -99,10 +99,17 @@ export type WireCapabilityScope = (typeof WIRE_CAPABILITY_SCOPES)[number];
99
99
  * same semantic ("not a verified unbounded HRM grant — enforcement of
100
100
  * access is via ownership / ReBAC / row filters at call time").
101
101
  *
102
- * Internal-only rename to `ROW_BOUNDED` was deliberately deferred: no
103
- * tool currently declares a scope, so the alias keeps this WI a
104
- * one-file change (WI-0003661). Rename in a follow-up if the internal
105
- * vocabulary starts to feel misleading.
102
+ * Vocabulary decision (WI-0003678): the internal alias is permanent.
103
+ * WI-0003661 deferred the internal `OWN_RECORDS → ROW_BOUNDED` rename
104
+ * on the grounds that no tool declared a scope yet. WI-0003678 changed
105
+ * that — every tool in {@link Tool.capabilities} now declares
106
+ * requirements through the contract-derived {@link cap} helper, and
107
+ * OWN_RECORDS is the default scope that helper produces. Renaming at
108
+ * this point would touch every capability declaration for no wire-side
109
+ * benefit (the wire vocabulary is already `ROW_BOUNDED` in Persist and
110
+ * the transform on ingress hides that from the rest of the code path).
111
+ * Keep {@link CAPABILITY_SCOPES} as-is; do not add a `ROW_BOUNDED`
112
+ * alias inside MCP.
106
113
  */
107
114
  export declare const CAPABILITY_SCOPES: readonly ["ALL_RECORDS", "OWN_RECORDS"];
108
115
  export type CapabilityScope = (typeof CAPABILITY_SCOPES)[number];
@@ -1 +1 @@
1
- {"version":3,"file":"effective-capabilities.d.ts","sourceRoot":"","sources":["../../src/capabilities/effective-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,wDAIzB,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,yCAA0C,CAAC;AACzE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAQjE;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;gCAuBzB,CAAC;AAEjB,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;yCAAwC,CAAC;AAEvF;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED;;;;;GAKG;AACH,qBAAa,wBAAwB;IACnC;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;gBAEzC,IAAI,EAAE,sBAAsB,EAAE;IAgB1C,oEAAoE;IACpE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;OAMG;IACH,MAAM,CACJ,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,eAAe,GAAG,SAAS;IAW9B;;;;;OAKG;IACH,SAAS,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO;CAWvD;AAED;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;gBAAzC,OAAO,EAAE,MAAM,EAAW,KAAK,CAAC,EAAE,OAAO,YAAA;CAItD;AAED,yCAAyC;AACzC,eAAO,MAAM,+BAA+B,8CACC,CAAC;AAE9C;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,wBAAwB,CAAC,CAmBnC"}
1
+ {"version":3,"file":"effective-capabilities.d.ts","sourceRoot":"","sources":["../../src/capabilities/effective-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,wDAIzB,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,iBAAiB,yCAA0C,CAAC;AACzE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAQjE;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;gCAuBzB,CAAC;AAEjB,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;yCAAwC,CAAC;AAEvF;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED;;;;;GAKG;AACH,qBAAa,wBAAwB;IACnC;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;gBAEzC,IAAI,EAAE,sBAAsB,EAAE;IAgB1C,oEAAoE;IACpE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;OAMG;IACH,MAAM,CACJ,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,eAAe,GAAG,SAAS;IAW9B;;;;;OAKG;IACH,SAAS,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO;CAWvD;AAED;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;gBAAzC,OAAO,EAAE,MAAM,EAAW,KAAK,CAAC,EAAE,OAAO,YAAA;CAItD;AAED,yCAAyC;AACzC,eAAO,MAAM,+BAA+B,8CACC,CAAC;AAE9C;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,wBAAwB,CAAC,CAmBnC"}
@@ -101,10 +101,17 @@ export const WIRE_CAPABILITY_SCOPES = [
101
101
  * same semantic ("not a verified unbounded HRM grant — enforcement of
102
102
  * access is via ownership / ReBAC / row filters at call time").
103
103
  *
104
- * Internal-only rename to `ROW_BOUNDED` was deliberately deferred: no
105
- * tool currently declares a scope, so the alias keeps this WI a
106
- * one-file change (WI-0003661). Rename in a follow-up if the internal
107
- * vocabulary starts to feel misleading.
104
+ * Vocabulary decision (WI-0003678): the internal alias is permanent.
105
+ * WI-0003661 deferred the internal `OWN_RECORDS → ROW_BOUNDED` rename
106
+ * on the grounds that no tool declared a scope yet. WI-0003678 changed
107
+ * that — every tool in {@link Tool.capabilities} now declares
108
+ * requirements through the contract-derived {@link cap} helper, and
109
+ * OWN_RECORDS is the default scope that helper produces. Renaming at
110
+ * this point would touch every capability declaration for no wire-side
111
+ * benefit (the wire vocabulary is already `ROW_BOUNDED` in Persist and
112
+ * the transform on ingress hides that from the rest of the code path).
113
+ * Keep {@link CAPABILITY_SCOPES} as-is; do not add a `ROW_BOUNDED`
114
+ * alias inside MCP.
108
115
  */
109
116
  export const CAPABILITY_SCOPES = ['ALL_RECORDS', 'OWN_RECORDS'];
110
117
  const wireScopeSchema = z
@@ -1 +1 @@
1
- {"version":3,"file":"effective-capabilities.js","sourceRoot":"","sources":["../../src/capabilities/effective-capabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"effective-capabilities.js","sourceRoot":"","sources":["../../src/capabilities/effective-capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { CapabilityRequirement, CapabilityScope } from './effective-capabilities.js';
2
+ interface ContractPermission {
3
+ resourceGroup: string;
4
+ resourceName: string;
5
+ operations: ReadonlySet<string>;
6
+ }
7
+ /**
8
+ * Capability requirements for the 6 RPC endpoints MCP calls. RPCs do not
9
+ * have a `table` entry in the pinned contract, so a matching capability
10
+ * MUST be declared by hand here and referenced via {@link rpcCap}. A tool
11
+ * calling an RPC not listed here fails the completeness test.
12
+ */
13
+ export declare const RPC_CAPABILITIES: Readonly<Record<string, readonly ContractPermission[]>>;
14
+ /** All operations that MCP knows how to map from an HTTP verb. */
15
+ export declare const HTTP_VERBS: string[];
16
+ /** Convert an HTTP verb (lower-case) into the Persist operation code. */
17
+ export declare function verbToOperation(verb: string): string;
18
+ /**
19
+ * Return a {@link CapabilityRequirement} for a tool that calls
20
+ * `/db/v1/<table>` with the given operation.
21
+ *
22
+ * Fails fast on:
23
+ * - unknown table (typo, dropped from contract, forgot to sync);
24
+ * - operation not in the contract's `operations` list for that resource
25
+ * (e.g. declaring UPDATE on a view that is SELECT-only);
26
+ * - invalid scope (guarded by {@link CAPABILITY_SCOPES}).
27
+ *
28
+ * @param table PostgREST endpoint segment (e.g. `ppm_work_items`).
29
+ * @param operation One of `SELECT|INSERT|UPDATE|DELETE`, case-insensitive.
30
+ * Also accepts the HTTP verb (`get`/`post`/`patch`/`delete`).
31
+ * @param scope Defaults to `OWN_RECORDS`. Only set to `ALL_RECORDS`
32
+ * when the tool genuinely needs cross-record reach
33
+ * (tenant-wide list/summary tools). See the WI-0003678
34
+ * scope-guidance block.
35
+ */
36
+ export declare function cap(table: string, operation: string, scope?: CapabilityScope): CapabilityRequirement;
37
+ /**
38
+ * Return the capability requirement(s) for a tool that calls
39
+ * `/db/v1/rpc/<name>`. Every RPC MCP surfaces MUST have an entry in
40
+ * {@link RPC_CAPABILITIES}; a missing entry throws.
41
+ */
42
+ export declare function rpcCap(name: string, scope?: CapabilityScope): CapabilityRequirement[];
43
+ /**
44
+ * Test-only: is this table known to the helper (via contract or override)?
45
+ * The completeness test uses this to detect drift between the tool source
46
+ * and the pinned contract without shelling out through {@link cap}.
47
+ */
48
+ export declare function isKnownTable(table: string): boolean;
49
+ /** Test-only: names of all RPCs the helper knows a capability for. */
50
+ export declare function knownRpcs(): readonly string[];
51
+ export {};
52
+ //# sourceMappingURL=tool-capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-capability.d.ts","sourceRoot":"","sources":["../../src/capabilities/tool-capability.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,qBAAqB,EACrB,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAsBrC,UAAU,kBAAkB;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACjC;AAyDD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC,CAoDpF,CAAC;AAUF,kEAAkE;AAClE,eAAO,MAAM,UAAU,UAA0B,CAAC;AAElD,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASpD;AAiBD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,GAAG,CACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,eAA+B,GACrC,qBAAqB,CAuBvB;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,eAA+B,GACrC,qBAAqB,EAAE,CAqBzB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,sEAAsE;AACtE,wBAAgB,SAAS,IAAI,SAAS,MAAM,EAAE,CAE7C"}
@@ -0,0 +1,238 @@
1
+ import { loadPersistResourceContract } from '../contracts/persist-resource-contract.js';
2
+ import { CAPABILITY_SCOPES, } from './effective-capabilities.js';
3
+ /**
4
+ * Contract-derived helper for declaring `Tool.capabilities` (WI-0003678).
5
+ *
6
+ * The pinned Persist resource contract (`contracts/persist/mcp_resource_contract.json`)
7
+ * already carries the resource-group / resource-name / operations tuple for
8
+ * every table MCP is allowed to surface. Rather than hand-writing those tuples
9
+ * in every tool file (a 748-call surface across 188 tools with predictable
10
+ * copy-paste drift), a tool calls {@link cap} with the table and operation it
11
+ * touches — the helper resolves the tuple at module load, and typos or dropped
12
+ * tables produce a hard error immediately.
13
+ *
14
+ * The completeness test (`src/tools/capability-completeness.test.ts`) scans
15
+ * every tool source for `/db/v1/<table>` literals and enforces that each is
16
+ * covered by a declared capability. Without that test, missing declarations
17
+ * fail open — the tool stays advertised even though it will short-circuit on
18
+ * dispatch.
19
+ */
20
+ const contract = loadPersistResourceContract();
21
+ const TABLE_TO_PERMISSION = (() => {
22
+ const map = new Map();
23
+ for (const resource of contract.resources) {
24
+ map.set(resource.table, {
25
+ resourceGroup: resource.permission.resource_group,
26
+ resourceName: resource.permission.resource_name,
27
+ operations: new Set(resource.permission.operations.map((o) => o.toUpperCase())),
28
+ });
29
+ }
30
+ return map;
31
+ })();
32
+ /**
33
+ * Overrides for tables that are deliberately EXCLUDED from the pinned
34
+ * resource contract (credentials-sensitive, internal permission tables,
35
+ * platform infrastructure) but that legitimate MCP tools still need to
36
+ * declare capabilities against.
37
+ *
38
+ * Every entry is a documented, reviewed exception — anything not in the
39
+ * pinned contract and not listed here will throw at module load. Do not
40
+ * add entries speculatively: an entry here means "MCP tools call this
41
+ * endpoint and we accept the sensitivity trade-off". Removing a tool that
42
+ * used one of these should remove the entry too.
43
+ *
44
+ * Verified against Persist naming convention (`<module>_<plural_snake>` →
45
+ * `<MODULE>.<PLURAL_SNAKE_UPPER>`), consistent across all in-contract
46
+ * resources in the same module. See wrm/, fnd/ sections of the contract.
47
+ */
48
+ const CONTRACT_OVERRIDES = new Map([
49
+ [
50
+ 'wrm_worker_credentials',
51
+ {
52
+ resourceGroup: 'WRM',
53
+ resourceName: 'WORKER_CREDENTIALS',
54
+ operations: new Set(['INSERT', 'SELECT', 'UPDATE']),
55
+ },
56
+ ],
57
+ [
58
+ 'wrm_credential_requests',
59
+ {
60
+ resourceGroup: 'WRM',
61
+ resourceName: 'CREDENTIAL_REQUESTS',
62
+ operations: new Set(['INSERT', 'SELECT', 'UPDATE']),
63
+ },
64
+ ],
65
+ [
66
+ 'fnd_notifications',
67
+ {
68
+ resourceGroup: 'FND',
69
+ resourceName: 'NOTIFICATIONS',
70
+ operations: new Set(['INSERT', 'SELECT', 'UPDATE']),
71
+ },
72
+ ],
73
+ ]);
74
+ /**
75
+ * Capability requirements for the 6 RPC endpoints MCP calls. RPCs do not
76
+ * have a `table` entry in the pinned contract, so a matching capability
77
+ * MUST be declared by hand here and referenced via {@link rpcCap}. A tool
78
+ * calling an RPC not listed here fails the completeness test.
79
+ */
80
+ export const RPC_CAPABILITIES = {
81
+ ppm_instantiate_epic_template: [
82
+ {
83
+ resourceGroup: 'PPM',
84
+ resourceName: 'EPIC_TEMPLATES',
85
+ operations: new Set(['SELECT']),
86
+ },
87
+ {
88
+ resourceGroup: 'PPM',
89
+ resourceName: 'WORK_ITEMS',
90
+ operations: new Set(['INSERT']),
91
+ },
92
+ ],
93
+ wrm_knowledge_chunk_search: [
94
+ {
95
+ resourceGroup: 'WRM',
96
+ resourceName: 'KNOWLEDGE_CHUNKS',
97
+ operations: new Set(['SELECT']),
98
+ },
99
+ ],
100
+ wrm_context_aware_memory_search: [
101
+ {
102
+ resourceGroup: 'WRM',
103
+ resourceName: 'ROLE_MEMORIES',
104
+ operations: new Set(['SELECT']),
105
+ },
106
+ ],
107
+ wrm_semantic_memory_search: [
108
+ {
109
+ resourceGroup: 'WRM',
110
+ resourceName: 'ROLE_MEMORIES',
111
+ operations: new Set(['SELECT']),
112
+ },
113
+ ],
114
+ wrm_update_memory_access: [
115
+ {
116
+ resourceGroup: 'WRM',
117
+ resourceName: 'ROLE_MEMORIES',
118
+ operations: new Set(['UPDATE']),
119
+ },
120
+ ],
121
+ // fnd_authz_user_groups — advertised in the WI as a supported RPC; no
122
+ // current tool file calls it, but keep the row so a future consumer can
123
+ // reference it via `rpcCap('fnd_authz_user_groups')` without touching
124
+ // the helper. Verified as a semantic authz RPC per Persist docs.
125
+ fnd_authz_user_groups: [
126
+ {
127
+ resourceGroup: 'FND',
128
+ resourceName: 'USER_GROUPS',
129
+ operations: new Set(['SELECT']),
130
+ },
131
+ ],
132
+ };
133
+ const VERB_TO_OP = {
134
+ get: 'SELECT',
135
+ post: 'INSERT',
136
+ patch: 'UPDATE',
137
+ put: 'UPDATE',
138
+ delete: 'DELETE',
139
+ };
140
+ /** All operations that MCP knows how to map from an HTTP verb. */
141
+ export const HTTP_VERBS = Object.keys(VERB_TO_OP);
142
+ /** Convert an HTTP verb (lower-case) into the Persist operation code. */
143
+ export function verbToOperation(verb) {
144
+ const op = VERB_TO_OP[verb.toLowerCase()];
145
+ if (!op) {
146
+ throw new Error(`Unknown HTTP verb "${verb}" — cannot map to a Persist operation. ` +
147
+ 'Update VERB_TO_OP in src/capabilities/tool-capability.ts.');
148
+ }
149
+ return op;
150
+ }
151
+ function resolveTable(table) {
152
+ const fromContract = TABLE_TO_PERMISSION.get(table);
153
+ if (fromContract)
154
+ return fromContract;
155
+ const fromOverride = CONTRACT_OVERRIDES.get(table);
156
+ if (fromOverride)
157
+ return fromOverride;
158
+ throw new Error(`cap(): unknown table "${table}". The pinned Persist contract does not ` +
159
+ 'declare a permission for it and no override is registered. Either the ' +
160
+ 'table has been renamed / removed upstream (re-sync the contract with ' +
161
+ '`npm run contract:sync-resource`), or add a documented override in ' +
162
+ 'src/capabilities/tool-capability.ts if MCP legitimately needs to hit ' +
163
+ 'a resource excluded from the surface.');
164
+ }
165
+ /**
166
+ * Return a {@link CapabilityRequirement} for a tool that calls
167
+ * `/db/v1/<table>` with the given operation.
168
+ *
169
+ * Fails fast on:
170
+ * - unknown table (typo, dropped from contract, forgot to sync);
171
+ * - operation not in the contract's `operations` list for that resource
172
+ * (e.g. declaring UPDATE on a view that is SELECT-only);
173
+ * - invalid scope (guarded by {@link CAPABILITY_SCOPES}).
174
+ *
175
+ * @param table PostgREST endpoint segment (e.g. `ppm_work_items`).
176
+ * @param operation One of `SELECT|INSERT|UPDATE|DELETE`, case-insensitive.
177
+ * Also accepts the HTTP verb (`get`/`post`/`patch`/`delete`).
178
+ * @param scope Defaults to `OWN_RECORDS`. Only set to `ALL_RECORDS`
179
+ * when the tool genuinely needs cross-record reach
180
+ * (tenant-wide list/summary tools). See the WI-0003678
181
+ * scope-guidance block.
182
+ */
183
+ export function cap(table, operation, scope = 'OWN_RECORDS') {
184
+ const permission = resolveTable(table);
185
+ const opUpper = VERB_TO_OP[operation.toLowerCase()] ?? operation.toUpperCase();
186
+ if (!permission.operations.has(opUpper)) {
187
+ throw new Error(`cap("${table}", "${operation}"): operation ${opUpper} is not in the ` +
188
+ `contract's permitted operations for ${permission.resourceGroup}.${permission.resourceName} ` +
189
+ `(supported: ${[...permission.operations].sort().join(', ')}). ` +
190
+ 'Pick a different endpoint or fix the tool.');
191
+ }
192
+ if (!CAPABILITY_SCOPES.includes(scope)) {
193
+ throw new Error(`cap("${table}", "${operation}"): invalid scope "${scope}" — ` +
194
+ `must be one of ${CAPABILITY_SCOPES.join(', ')}.`);
195
+ }
196
+ return {
197
+ resourceGroup: permission.resourceGroup,
198
+ resourceName: permission.resourceName,
199
+ operation: opUpper,
200
+ scope,
201
+ };
202
+ }
203
+ /**
204
+ * Return the capability requirement(s) for a tool that calls
205
+ * `/db/v1/rpc/<name>`. Every RPC MCP surfaces MUST have an entry in
206
+ * {@link RPC_CAPABILITIES}; a missing entry throws.
207
+ */
208
+ export function rpcCap(name, scope = 'OWN_RECORDS') {
209
+ const perms = RPC_CAPABILITIES[name];
210
+ if (!perms) {
211
+ throw new Error(`rpcCap(): unknown RPC "${name}". Add a documented entry to ` +
212
+ 'RPC_CAPABILITIES in src/capabilities/tool-capability.ts before ' +
213
+ 'referencing it from a tool.');
214
+ }
215
+ // Expand every operation in each entry. Taking only the first
216
+ // (`[...p.operations][0]`) silently dropped the rest, so a multi-op
217
+ // entry would under-declare and the tool would be advertised more
218
+ // permissively than it can actually execute.
219
+ return perms.flatMap((p) => [...p.operations].map((operation) => ({
220
+ resourceGroup: p.resourceGroup,
221
+ resourceName: p.resourceName,
222
+ operation,
223
+ scope,
224
+ })));
225
+ }
226
+ /**
227
+ * Test-only: is this table known to the helper (via contract or override)?
228
+ * The completeness test uses this to detect drift between the tool source
229
+ * and the pinned contract without shelling out through {@link cap}.
230
+ */
231
+ export function isKnownTable(table) {
232
+ return TABLE_TO_PERMISSION.has(table) || CONTRACT_OVERRIDES.has(table);
233
+ }
234
+ /** Test-only: names of all RPCs the helper knows a capability for. */
235
+ export function knownRpcs() {
236
+ return Object.keys(RPC_CAPABILITIES);
237
+ }
238
+ //# sourceMappingURL=tool-capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-capability.js","sourceRoot":"","sources":["../../src/capabilities/tool-capability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Assemble the full set of generated read tools from a pinned Persist
3
+ * resource contract. Consumers pass the contract loaded by
4
+ * {@link loadPersistResourceContract}; this module hands back a
5
+ * deterministic, filterable list of {@link Tool} objects ready to be
6
+ * exposed alongside hand-written tools.
7
+ *
8
+ * Safety filters applied by default (WI-0003501):
9
+ *
10
+ * - Resources without a `list` or `read` operation are skipped — the
11
+ * resource may exist only for write-only side-effect paths.
12
+ * - Resources with `sensitivity` other than `normal` are skipped.
13
+ * Callers who genuinely need them must set `includeSensitive: true`
14
+ * on the filter; the resource-tools factory will still redact any
15
+ * credential-shaped columns from every response.
16
+ * - Resources that declare `side_effects` are ALWAYS skipped — there
17
+ * is no opt-in. Generic CRUD around a state-transition or
18
+ * notification path is a category error; dedicated tools with
19
+ * explicit confirmation/idempotency semantics are required.
20
+ *
21
+ * Composite-primary-key resources still get describe + list; only the
22
+ * get-by-id tool is skipped.
23
+ */
24
+ import type { PersistResource, PersistResourceContract } from '../contracts/persist-resource-contract.js';
25
+ import { Tool } from '../tools/registry.js';
26
+ import { ExclusionReason } from './guardrails.js';
27
+ export interface CatalogueFilter {
28
+ /** Only emit tools for these modules. Case-insensitive; empty = all. */
29
+ modules?: string[];
30
+ /** Additional predicate — return `true` to include the resource. */
31
+ include?: (resource: PersistResource) => boolean;
32
+ /**
33
+ * When `true`, resources marked `sensitive`/`restricted` become
34
+ * eligible. Sensitive-field redaction still applies — the caller
35
+ * gains access to the resource's non-secret columns only. Default
36
+ * `false`.
37
+ *
38
+ * Side-effecting resources are NEVER made eligible by this flag —
39
+ * dedicated tools remain the only supported path for them.
40
+ */
41
+ includeSensitive?: boolean;
42
+ }
43
+ /**
44
+ * Result of one resource's exclusion, exposed on the report so
45
+ * operators and doc generators can explain "why is `foo_list` not in
46
+ * the surface?" without re-implementing the guardrails.
47
+ */
48
+ export interface CatalogueExclusion {
49
+ resourceId: string;
50
+ module: string;
51
+ reasons: ExclusionReason[];
52
+ }
53
+ /** Report returned alongside the generated tool list. */
54
+ export interface CatalogueReport {
55
+ tools: Tool[];
56
+ excluded: CatalogueExclusion[];
57
+ }
58
+ /**
59
+ * Deterministic, sorted list of generated read tools drawn from the
60
+ * pinned contract. Sorting is by (module, resource_id, tool_name) so
61
+ * `docs/tools.md` regeneration is reproducible.
62
+ *
63
+ * Sensitive and side-effecting resources are filtered out by default —
64
+ * see {@link CatalogueFilter} for the opt-in that lifts the sensitivity
65
+ * bar (nothing lifts the side-effect bar).
66
+ */
67
+ export declare function buildGeneratedReadCatalogue(contract: PersistResourceContract, filter?: CatalogueFilter): Tool[];
68
+ /**
69
+ * Same as {@link buildGeneratedReadCatalogue}, but also returns the list
70
+ * of resources the guardrails excluded and why. Used by tests and the
71
+ * doc generator to prove that the safety filter is doing its job — a
72
+ * silent skip is indistinguishable from a bug.
73
+ */
74
+ export declare function buildGeneratedReadCatalogueReport(contract: PersistResourceContract, filter?: CatalogueFilter): CatalogueReport;
75
+ /**
76
+ * Group the generated read tools by module. Modules with no eligible
77
+ * resources are omitted from the returned record.
78
+ */
79
+ export declare function groupGeneratedReadsByModule(contract: PersistResourceContract, filter?: CatalogueFilter): Record<string, Tool[]>;
80
+ //# sourceMappingURL=catalogue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogue.d.ts","sourceRoot":"","sources":["../../src/generated-reads/catalogue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACxB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAK5C,OAAO,EAEL,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,OAAO,CAAC;IACjD;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAmBD;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,uBAAuB,EACjC,MAAM,GAAE,eAAoB,GAC3B,IAAI,EAAE,CAER;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,uBAAuB,EACjC,MAAM,GAAE,eAAoB,GAC3B,eAAe,CAkCjB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,uBAAuB,EACjC,MAAM,GAAE,eAAoB,GAC3B,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAqBxB"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Assemble the full set of generated read tools from a pinned Persist
3
+ * resource contract. Consumers pass the contract loaded by
4
+ * {@link loadPersistResourceContract}; this module hands back a
5
+ * deterministic, filterable list of {@link Tool} objects ready to be
6
+ * exposed alongside hand-written tools.
7
+ *
8
+ * Safety filters applied by default (WI-0003501):
9
+ *
10
+ * - Resources without a `list` or `read` operation are skipped — the
11
+ * resource may exist only for write-only side-effect paths.
12
+ * - Resources with `sensitivity` other than `normal` are skipped.
13
+ * Callers who genuinely need them must set `includeSensitive: true`
14
+ * on the filter; the resource-tools factory will still redact any
15
+ * credential-shaped columns from every response.
16
+ * - Resources that declare `side_effects` are ALWAYS skipped — there
17
+ * is no opt-in. Generic CRUD around a state-transition or
18
+ * notification path is a category error; dedicated tools with
19
+ * explicit confirmation/idempotency semantics are required.
20
+ *
21
+ * Composite-primary-key resources still get describe + list; only the
22
+ * get-by-id tool is skipped.
23
+ */
24
+ import { buildResourceTools, } from './resource-tools.js';
25
+ import { evaluateResourceEligibility, } from './guardrails.js';
26
+ function moduleMatches(resource, filter) {
27
+ if (!filter.modules || filter.modules.length === 0)
28
+ return true;
29
+ const wanted = new Set(filter.modules.map((m) => m.toLowerCase()));
30
+ return wanted.has(resource.module.toLowerCase());
31
+ }
32
+ function predicateMatches(resource, filter) {
33
+ if (!filter.include)
34
+ return true;
35
+ return filter.include(resource);
36
+ }
37
+ function collectTools(triple) {
38
+ const out = [triple.describe, triple.list];
39
+ if (triple.get)
40
+ out.push(triple.get);
41
+ return out;
42
+ }
43
+ /**
44
+ * Deterministic, sorted list of generated read tools drawn from the
45
+ * pinned contract. Sorting is by (module, resource_id, tool_name) so
46
+ * `docs/tools.md` regeneration is reproducible.
47
+ *
48
+ * Sensitive and side-effecting resources are filtered out by default —
49
+ * see {@link CatalogueFilter} for the opt-in that lifts the sensitivity
50
+ * bar (nothing lifts the side-effect bar).
51
+ */
52
+ export function buildGeneratedReadCatalogue(contract, filter = {}) {
53
+ return buildGeneratedReadCatalogueReport(contract, filter).tools;
54
+ }
55
+ /**
56
+ * Same as {@link buildGeneratedReadCatalogue}, but also returns the list
57
+ * of resources the guardrails excluded and why. Used by tests and the
58
+ * doc generator to prove that the safety filter is doing its job — a
59
+ * silent skip is indistinguishable from a bug.
60
+ */
61
+ export function buildGeneratedReadCatalogueReport(contract, filter = {}) {
62
+ const chosen = [];
63
+ const excluded = [];
64
+ for (const resource of contract.resources) {
65
+ if (!moduleMatches(resource, filter))
66
+ continue;
67
+ const decision = evaluateResourceEligibility(resource, {
68
+ includeSensitive: filter.includeSensitive,
69
+ });
70
+ if (!decision.eligible) {
71
+ excluded.push({
72
+ resourceId: resource.resource_id,
73
+ module: resource.module,
74
+ reasons: decision.reasons,
75
+ });
76
+ continue;
77
+ }
78
+ if (!predicateMatches(resource, filter))
79
+ continue;
80
+ chosen.push(resource);
81
+ }
82
+ chosen.sort((a, b) => {
83
+ const byModule = a.module.localeCompare(b.module);
84
+ if (byModule !== 0)
85
+ return byModule;
86
+ return a.resource_id.localeCompare(b.resource_id);
87
+ });
88
+ excluded.sort((a, b) => {
89
+ const byModule = a.module.localeCompare(b.module);
90
+ if (byModule !== 0)
91
+ return byModule;
92
+ return a.resourceId.localeCompare(b.resourceId);
93
+ });
94
+ const tools = [];
95
+ for (const resource of chosen) {
96
+ tools.push(...collectTools(buildResourceTools(resource)));
97
+ }
98
+ return { tools, excluded };
99
+ }
100
+ /**
101
+ * Group the generated read tools by module. Modules with no eligible
102
+ * resources are omitted from the returned record.
103
+ */
104
+ export function groupGeneratedReadsByModule(contract, filter = {}) {
105
+ const grouped = {};
106
+ const all = buildGeneratedReadCatalogue(contract, filter);
107
+ const byName = new Map();
108
+ for (const resource of contract.resources)
109
+ byName.set(resource.resource_id, resource);
110
+ for (const tool of all) {
111
+ // Recover the module from the resource_id prefix embedded in the
112
+ // tool name: `<resource_id>_(describe|list|get)`.
113
+ const suffixes = ['_describe', '_list', '_get'];
114
+ let resourceId = null;
115
+ for (const suffix of suffixes) {
116
+ if (tool.name.endsWith(suffix)) {
117
+ resourceId = tool.name.slice(0, -suffix.length);
118
+ break;
119
+ }
120
+ }
121
+ const resource = resourceId ? byName.get(resourceId) : undefined;
122
+ const module = resource?.module ?? 'unknown';
123
+ (grouped[module] ??= []).push(tool);
124
+ }
125
+ return grouped;
126
+ }
127
+ //# sourceMappingURL=catalogue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogue.js","sourceRoot":"","sources":["../../src/generated-reads/catalogue.ts"],"names":[],"mappings":"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"}