@servicelabsco/slabs-access-manager 1.0.67 → 1.0.69

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 (198) hide show
  1. package/dist/access/controllers/business.report.controller.js.map +1 -1
  2. package/dist/access/controllers/dashboard.report.controller.js +2 -1
  3. package/dist/access/controllers/dashboard.report.controller.js.map +1 -1
  4. package/dist/access/controllers/index.d.ts +1 -0
  5. package/dist/access/controllers/index.js +1 -0
  6. package/dist/access/controllers/index.js.map +1 -1
  7. package/dist/access/controllers/oauth.as.controller.d.ts +1 -0
  8. package/dist/access/controllers/oauth.as.controller.js +24 -0
  9. package/dist/access/controllers/oauth.as.controller.js.map +1 -1
  10. package/dist/access/controllers/report.view.controller.d.ts +101 -0
  11. package/dist/access/controllers/report.view.controller.js +66 -0
  12. package/dist/access/controllers/report.view.controller.js.map +1 -0
  13. package/dist/access/controllers/whoami.controller.js +3 -2
  14. package/dist/access/controllers/whoami.controller.js.map +1 -1
  15. package/dist/access/dtos/index.d.ts +1 -0
  16. package/dist/access/dtos/index.js +1 -0
  17. package/dist/access/dtos/index.js.map +1 -1
  18. package/dist/access/dtos/report.view.query.dto.d.ts +23 -0
  19. package/dist/access/dtos/report.view.query.dto.js +56 -0
  20. package/dist/access/dtos/report.view.query.dto.js.map +1 -0
  21. package/dist/access/es6.classes.d.ts +24 -14
  22. package/dist/access/es6.classes.js +42 -25
  23. package/dist/access/es6.classes.js.map +1 -1
  24. package/dist/access/jobs/form.script.job.js +1 -1
  25. package/dist/access/libraries/index.d.ts +1 -0
  26. package/dist/access/libraries/index.js +1 -0
  27. package/dist/access/libraries/index.js.map +1 -1
  28. package/dist/access/libraries/process.form.script.list.js.map +1 -1
  29. package/dist/access/libraries/report.view.query.compiler.d.ts +163 -0
  30. package/dist/access/libraries/report.view.query.compiler.js +399 -0
  31. package/dist/access/libraries/report.view.query.compiler.js.map +1 -0
  32. package/dist/access/services/credential.resolve.service.js +18 -3
  33. package/dist/access/services/credential.resolve.service.js.map +1 -1
  34. package/dist/access/services/es6.jobs.service.d.ts +3 -3
  35. package/dist/access/services/es6.jobs.service.js +5 -5
  36. package/dist/access/services/es6.jobs.service.js.map +1 -1
  37. package/dist/access/services/index.d.ts +1 -0
  38. package/dist/access/services/index.js +1 -0
  39. package/dist/access/services/index.js.map +1 -1
  40. package/dist/access/services/oauth.as.service.d.ts +8 -5
  41. package/dist/access/services/oauth.as.service.js +92 -48
  42. package/dist/access/services/oauth.as.service.js.map +1 -1
  43. package/dist/access/services/report.view.service.d.ts +111 -0
  44. package/dist/access/services/report.view.service.js +234 -0
  45. package/dist/access/services/report.view.service.js.map +1 -0
  46. package/dist/accessUtility/access.utility.module.js +2 -2
  47. package/dist/accessUtility/access.utility.module.js.map +1 -1
  48. package/dist/accessUtility/es6.classes.d.ts +1 -1
  49. package/dist/accessUtility/es6.classes.js +2 -2
  50. package/dist/accessUtility/es6.classes.js.map +1 -1
  51. package/dist/accessUtility/index.d.ts +1 -1
  52. package/dist/accessUtility/index.js +1 -1
  53. package/dist/accessUtility/index.js.map +1 -1
  54. package/dist/accessUtility/{types/bulk.upload.item.record.js → interfaces/bulk.upload.item.record.interface.js} +1 -1
  55. package/dist/accessUtility/interfaces/bulk.upload.item.record.interface.js.map +1 -0
  56. package/dist/accessUtility/interfaces/index.d.ts +1 -0
  57. package/dist/accessUtility/interfaces/index.js +18 -0
  58. package/dist/accessUtility/interfaces/index.js.map +1 -0
  59. package/dist/accessUtility/jobs/bulk.upload.column.match.job.js.map +1 -1
  60. package/dist/accessUtility/jobs/push.to.bulk.item.job.d.ts +1 -1
  61. package/dist/accessUtility/libraries/set.bulk.upload.log.file.js.map +1 -1
  62. package/dist/accessUtility/services/bulk.upload.item.store.d.ts +1 -1
  63. package/dist/accessUtility/services/bulk.upload.item.store.js.map +1 -1
  64. package/dist/app.module.js +2 -0
  65. package/dist/app.module.js.map +1 -1
  66. package/dist/config/entity.constants.d.ts +2 -2
  67. package/dist/config/entity.constants.js +2 -2
  68. package/dist/config/entity.constants.js.map +1 -1
  69. package/dist/config/mongo.config.d.ts +3 -0
  70. package/dist/config/mongo.config.js +16 -0
  71. package/dist/config/mongo.config.js.map +1 -0
  72. package/dist/config/source.hash.d.ts +1 -0
  73. package/dist/config/source.hash.js +1 -0
  74. package/dist/config/source.hash.js.map +1 -1
  75. package/dist/development/controllers/development.catalog.controller.d.ts +53 -0
  76. package/dist/development/controllers/development.catalog.controller.js +112 -0
  77. package/dist/development/controllers/development.catalog.controller.js.map +1 -0
  78. package/dist/development/controllers/index.d.ts +1 -0
  79. package/dist/development/controllers/index.js +1 -0
  80. package/dist/development/controllers/index.js.map +1 -1
  81. package/dist/development/development.module.js +2 -1
  82. package/dist/development/development.module.js.map +1 -1
  83. package/dist/development/dtos/column.catalog.attributes.dto.d.ts +10 -0
  84. package/dist/development/dtos/column.catalog.attributes.dto.js +58 -0
  85. package/dist/development/dtos/column.catalog.attributes.dto.js.map +1 -0
  86. package/dist/development/dtos/index.d.ts +2 -0
  87. package/dist/development/dtos/index.js +19 -0
  88. package/dist/development/dtos/index.js.map +1 -0
  89. package/dist/development/dtos/material.view.catalog.attributes.dto.d.ts +25 -0
  90. package/dist/development/dtos/material.view.catalog.attributes.dto.js +114 -0
  91. package/dist/development/dtos/material.view.catalog.attributes.dto.js.map +1 -0
  92. package/dist/development/es6.classes.d.ts +10 -3
  93. package/dist/development/es6.classes.js +10 -3
  94. package/dist/development/es6.classes.js.map +1 -1
  95. package/dist/development/gates/index.d.ts +1 -0
  96. package/dist/{accessUtility/types → development/gates}/index.js +1 -1
  97. package/dist/development/gates/index.js.map +1 -0
  98. package/dist/development/gates/reporting.catalog.gate.d.ts +8 -0
  99. package/dist/development/gates/reporting.catalog.gate.js +39 -0
  100. package/dist/development/gates/reporting.catalog.gate.js.map +1 -0
  101. package/dist/development/index.d.ts +2 -0
  102. package/dist/development/index.js +2 -0
  103. package/dist/development/index.js.map +1 -1
  104. package/dist/development/services/admin.report.view.service.d.ts +92 -0
  105. package/dist/development/services/admin.report.view.service.js +459 -0
  106. package/dist/development/services/admin.report.view.service.js.map +1 -0
  107. package/dist/development/services/index.d.ts +1 -0
  108. package/dist/development/services/index.js +1 -0
  109. package/dist/development/services/index.js.map +1 -1
  110. package/dist/main.js +1 -1
  111. package/dist/main.js.map +1 -1
  112. package/dist/mcp/admin/tools/admin.tool.registry.js +14 -0
  113. package/dist/mcp/admin/tools/admin.tool.registry.js.map +1 -1
  114. package/dist/mcp/admin/tools/catalog/admin.catalog.validate.tool.d.ts +16 -0
  115. package/dist/mcp/admin/tools/catalog/admin.catalog.validate.tool.js +22 -0
  116. package/dist/mcp/admin/tools/catalog/admin.catalog.validate.tool.js.map +1 -0
  117. package/dist/mcp/admin/tools/catalog/admin.column.describe.tool.d.ts +30 -0
  118. package/dist/mcp/admin/tools/catalog/admin.column.describe.tool.js +37 -0
  119. package/dist/mcp/admin/tools/catalog/admin.column.describe.tool.js.map +1 -0
  120. package/dist/mcp/admin/tools/catalog/admin.view.columns.sync.tool.d.ts +22 -0
  121. package/dist/mcp/admin/tools/catalog/admin.view.columns.sync.tool.js +31 -0
  122. package/dist/mcp/admin/tools/catalog/admin.view.columns.sync.tool.js.map +1 -0
  123. package/dist/mcp/admin/tools/catalog/admin.view.register.tool.d.ts +22 -0
  124. package/dist/mcp/admin/tools/catalog/admin.view.register.tool.js +28 -0
  125. package/dist/mcp/admin/tools/catalog/admin.view.register.tool.js.map +1 -0
  126. package/dist/mcp/admin/tools/catalog/admin.view.sample.tool.d.ts +21 -0
  127. package/dist/mcp/admin/tools/catalog/admin.view.sample.tool.js +32 -0
  128. package/dist/mcp/admin/tools/catalog/admin.view.sample.tool.js.map +1 -0
  129. package/dist/mcp/admin/tools/catalog/admin.view.update.tool.d.ts +22 -0
  130. package/dist/mcp/admin/tools/catalog/admin.view.update.tool.js +29 -0
  131. package/dist/mcp/admin/tools/catalog/admin.view.update.tool.js.map +1 -0
  132. package/dist/mcp/admin/tools/catalog/admin.views.list.tool.d.ts +10 -0
  133. package/dist/mcp/admin/tools/catalog/admin.views.list.tool.js +20 -0
  134. package/dist/mcp/admin/tools/catalog/admin.views.list.tool.js.map +1 -0
  135. package/dist/mcp/admin/tools/catalog/index.d.ts +7 -0
  136. package/dist/mcp/admin/tools/catalog/index.js +24 -0
  137. package/dist/mcp/admin/tools/catalog/index.js.map +1 -0
  138. package/dist/mcp/admin/tools/form_script/form.script.create.tool.js.map +1 -1
  139. package/dist/mcp/admin/tools/form_script/form.script.list.tool.js.map +1 -1
  140. package/dist/mcp/admin/tools/form_script/form.script.update.tool.js.map +1 -1
  141. package/dist/mcp/admin/tools/index.d.ts +1 -0
  142. package/dist/mcp/admin/tools/index.js +1 -0
  143. package/dist/mcp/admin/tools/index.js.map +1 -1
  144. package/dist/mcp/admin/tools/report/report.create.tool.js.map +1 -1
  145. package/dist/mcp/admin/tools/report/report.update.tool.js.map +1 -1
  146. package/dist/mcp/auth/mcp.idempotency.store.js +3 -1
  147. package/dist/mcp/auth/mcp.idempotency.store.js.map +1 -1
  148. package/dist/mcp/catalog/assert.valid.catalog.d.ts +3 -0
  149. package/dist/mcp/catalog/assert.valid.catalog.js +2 -0
  150. package/dist/mcp/catalog/assert.valid.catalog.js.map +1 -1
  151. package/dist/mcp/es6.classes.d.ts +54 -8
  152. package/dist/mcp/es6.classes.js +74 -12
  153. package/dist/mcp/es6.classes.js.map +1 -1
  154. package/dist/mcp/http/mcp.http.module.js +5 -2
  155. package/dist/mcp/http/mcp.http.module.js.map +1 -1
  156. package/dist/mcp/index.d.ts +2 -0
  157. package/dist/mcp/index.js +2 -0
  158. package/dist/mcp/index.js.map +1 -1
  159. package/dist/mcp/logging/index.d.ts +3 -0
  160. package/dist/mcp/logging/index.js +20 -0
  161. package/dist/mcp/logging/index.js.map +1 -0
  162. package/dist/mcp/logging/mcp.call.log.interceptor.d.ts +16 -0
  163. package/dist/mcp/logging/mcp.call.log.interceptor.js +140 -0
  164. package/dist/mcp/logging/mcp.call.log.interceptor.js.map +1 -0
  165. package/dist/mcp/logging/mcp.call.log.writer.d.ts +11 -0
  166. package/dist/mcp/logging/mcp.call.log.writer.js +62 -0
  167. package/dist/mcp/logging/mcp.call.log.writer.js.map +1 -0
  168. package/dist/mcp/logging/sanitize.mcp.call.log.d.ts +44 -0
  169. package/dist/mcp/logging/sanitize.mcp.call.log.js +112 -0
  170. package/dist/mcp/logging/sanitize.mcp.call.log.js.map +1 -0
  171. package/dist/mcp/mcp.module.d.ts +1 -1
  172. package/dist/mcp/mcp.module.js.map +1 -1
  173. package/dist/mcp/mentities/index.d.ts +1 -0
  174. package/dist/mcp/mentities/index.js +18 -0
  175. package/dist/mcp/mentities/index.js.map +1 -0
  176. package/dist/mcp/mentities/mcp.call.log.mentity.d.ts +17 -0
  177. package/dist/mcp/mentities/mcp.call.log.mentity.js +79 -0
  178. package/dist/mcp/mentities/mcp.call.log.mentity.js.map +1 -0
  179. package/dist/mcp/tools/index.d.ts +3 -0
  180. package/dist/mcp/tools/index.js +3 -0
  181. package/dist/mcp/tools/index.js.map +1 -1
  182. package/dist/mcp/tools/reports.run.tool.js.map +1 -1
  183. package/dist/mcp/tools/tool.registry.js +4 -21
  184. package/dist/mcp/tools/tool.registry.js.map +1 -1
  185. package/dist/mcp/tools/view.describe.tool.d.ts +17 -0
  186. package/dist/mcp/tools/view.describe.tool.js +23 -0
  187. package/dist/mcp/tools/view.describe.tool.js.map +1 -0
  188. package/dist/mcp/tools/view.query.tool.d.ts +75 -0
  189. package/dist/mcp/tools/view.query.tool.js +51 -0
  190. package/dist/mcp/tools/view.query.tool.js.map +1 -0
  191. package/dist/mcp/tools/views.list.tool.d.ts +10 -0
  192. package/dist/mcp/tools/views.list.tool.js +20 -0
  193. package/dist/mcp/tools/views.list.tool.js.map +1 -0
  194. package/package.json +2 -2
  195. package/dist/accessUtility/types/bulk.upload.item.record.js.map +0 -1
  196. package/dist/accessUtility/types/index.d.ts +0 -1
  197. package/dist/accessUtility/types/index.js.map +0 -1
  198. /package/dist/accessUtility/{types/bulk.upload.item.record.d.ts → interfaces/bulk.upload.item.record.interface.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.call.log.interceptor.js","sourceRoot":"","sources":["../../../src/mcp/logging/mcp.call.log.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoG;AACpG,oFAA8D;AAC9D,+BAAuC;AACvC,oDAAoD;AACpD,+DAAyD;AACzD,mEAAgG;AAOzF,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAG9B,YAA6B,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;QAFpC,WAAM,GAAG,IAAI,eAAM,CAAC,uBAAqB,CAAC,IAAI,CAAC,CAAC;IAET,CAAC;IAEzD,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAClD,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,QAAiB,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;YAC5B,QAAQ,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACrB,IAAA,UAAG,EAAC;YACA,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,IAAI,CAAC;YACrF,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC;SACjF,CAAC,CACL,CAAC;IACN,CAAC;IAEO,SAAS,CAAC,GAA6D;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACzD,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3G,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAAE,OAAO,MAAM,CAAC;QACzD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,YAAY,CAAC,GAAQ,EAAE,MAA+B;QAC1D,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO;QACnD,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAa,EAAE,EAAE;YACzB,MAAM,CAAC,IAAI,CAAC,CAAC;YACb,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC;IACN,CAAC;IAEO,UAAU,CAAC,OAAqC,EAAE,GAAQ,EAAE,GAAQ,EAAE,OAAe,EAAE,KAAc,EAAE,KAAc;QACzH,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACjE,KAAK,OAAO,CAAC,OAAO,EAAE;iBACjB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;iBACnC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,UAAU,EAAE,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;QACX,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAA0B,UAAoB,EAAE,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC;QAC9F,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAqC,EAAE,GAAQ,EAAE,GAAQ,EAAE,OAAe,EAAE,KAAc,EAAE,KAAc;QACpH,MAAM,IAAI,GAAG,8BAAI,CAAC,IAAI,EAAS,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAA,0CAAkB,EAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACvG,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;QAClG,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAG,KAAe,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3F,MAAM,MAAM,GAAG,IAAA,uCAAe,EAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,wCAAgB,CAAC;QAEjC,OAAO;YACH,OAAO;YACP,WAAW,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,IAAA,gCAAgB,GAAE,QAAQ,CAAC,CAAC,CAAC,IAAA,gCAAgB,GAAE;YACzF,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM;YACjC,IAAI;YACJ,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7D,GAAG,QAAQ;YACX,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE;gBACN,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG;gBAC/D,GAAG,MAAM;gBACT,SAAS,EAAE,IAAI,EAAE,SAAS,IAAK,YAAoB,EAAE,SAAS,IAAI,IAAI;aACzE;YACD,SAAS,EAAE;gBACP,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAC3B,EAAE,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI;gBACvB,OAAO,EAAE,IAAI,EAAE,UAAU,IAAI,IAAI;aACpC;YACD,IAAI,EAAE,IAAI;gBACN,CAAC,CAAC;oBACI,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI;oBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;oBACvC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;iBACpC;gBACH,CAAC,CAAC,SAAS;YACf,UAAU,EAAE,IAAI,IAAI,EAAE;YACtB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,UAAU,CAAC;SACzD,CAAC;IACN,CAAC;IAEO,cAAc,CAAC,GAAQ;QAC3B,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YACjD,IAAI,MAAM;gBAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACvD,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IACxG,CAAC;IAEO,QAAQ,CAAC,GAAQ;QACrB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACvD,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;YAAE,OAAO,YAAY,CAAC;QACjG,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,eAAe,CAAC;QACpH,OAAO,YAAY,CAAC;IACxB,CAAC;IAEO,QAAQ,CAAC,KAAc;QAQ3B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACrD,OAAQ,KAAa,CAAC,YAAY,IAAI,IAAI,CAAC;IAC/C,CAAC;CACJ,CAAA;AA3HY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;qCAI4B,sCAAgB;GAH5C,qBAAqB,CA2HjC"}
@@ -0,0 +1,11 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { ModuleRef } from '@nestjs/core';
3
+ export declare class McpCallLogWriter implements OnModuleInit {
4
+ private readonly moduleRef;
5
+ private readonly logger;
6
+ constructor(moduleRef: ModuleRef);
7
+ onModuleInit(): Promise<void>;
8
+ record(doc: unknown): Promise<void>;
9
+ private mongo;
10
+ private ensureTtlIndex;
11
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var McpCallLogWriter_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.McpCallLogWriter = void 0;
14
+ const crypto_1 = require("crypto");
15
+ const common_1 = require("@nestjs/common");
16
+ const core_1 = require("@nestjs/core");
17
+ const typeorm_1 = require("@nestjs/typeorm");
18
+ const mcp_call_log_mentity_1 = require("../mentities/mcp.call.log.mentity");
19
+ const sanitize_mcp_call_log_1 = require("./sanitize.mcp.call.log");
20
+ let McpCallLogWriter = McpCallLogWriter_1 = class McpCallLogWriter {
21
+ constructor(moduleRef) {
22
+ this.moduleRef = moduleRef;
23
+ this.logger = new common_1.Logger(McpCallLogWriter_1.name);
24
+ }
25
+ async onModuleInit() {
26
+ await this.ensureTtlIndex();
27
+ }
28
+ async record(doc) {
29
+ const ds = this.mongo();
30
+ if (!ds?.isInitialized)
31
+ return;
32
+ const repo = ds.getMongoRepository(mcp_call_log_mentity_1.McpCallLogMentity);
33
+ await repo.save(repo.create({ uuid: (0, crypto_1.randomUUID)(), ...doc }));
34
+ }
35
+ mongo() {
36
+ try {
37
+ return this.moduleRef.get((0, typeorm_1.getDataSourceToken)('mongodb'), { strict: false });
38
+ }
39
+ catch {
40
+ return null;
41
+ }
42
+ }
43
+ async ensureTtlIndex() {
44
+ const ds = this.mongo();
45
+ if (!ds?.isInitialized)
46
+ return;
47
+ try {
48
+ const repo = ds.getMongoRepository(mcp_call_log_mentity_1.McpCallLogMentity);
49
+ await repo.createCollectionIndex({ expire_at: 1 }, { expireAfterSeconds: 0, name: 'mcp_call_logs_ttl' });
50
+ this.logger.log(`mcp call log TTL index ready (${sanitize_mcp_call_log_1.MCP_LOG_TTL_DAYS}d via expire_at)`);
51
+ }
52
+ catch (error) {
53
+ this.logger.warn(`mcp call log TTL index skipped: ${error?.message ?? error}`);
54
+ }
55
+ }
56
+ };
57
+ exports.McpCallLogWriter = McpCallLogWriter;
58
+ exports.McpCallLogWriter = McpCallLogWriter = McpCallLogWriter_1 = __decorate([
59
+ (0, common_1.Injectable)(),
60
+ __metadata("design:paramtypes", [core_1.ModuleRef])
61
+ ], McpCallLogWriter);
62
+ //# sourceMappingURL=mcp.call.log.writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.call.log.writer.js","sourceRoot":"","sources":["../../../src/mcp/logging/mcp.call.log.writer.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mCAAoC;AACpC,2CAAkE;AAClE,uCAAyC;AACzC,6CAAqD;AAErD,4EAAsE;AACtE,mEAA2D;AAOpD,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAGzB,YAA6B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QAFhC,WAAM,GAAG,IAAI,eAAM,CAAC,kBAAgB,CAAC,IAAI,CAAC,CAAC;IAER,CAAC;IAErD,KAAK,CAAC,YAAY;QACd,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAY;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,EAAE,EAAE,aAAa;YAAE,OAAO;QAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,wCAAiB,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAA,mBAAU,GAAE,EAAE,GAAI,GAAc,EAAS,CAAC,CAAC,CAAC;IACpF,CAAC;IAEO,KAAK;QACT,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAA,4BAAkB,EAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAChF,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,cAAc;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,EAAE,EAAE,aAAa;YAAE,OAAO;QAC/B,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,wCAAiB,CAAC,CAAC;YACtD,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACzG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,wCAAgB,kBAAkB,CAAC,CAAC;QACzF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAoC,KAAe,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;QAC9F,CAAC;IACL,CAAC;CACJ,CAAA;AAnCY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAI+B,gBAAS;GAHxC,gBAAgB,CAmC5B"}
@@ -0,0 +1,44 @@
1
+ export declare const MCP_LOG_BODY_CAP: number;
2
+ export declare const MCP_LOG_TTL_DAYS: number;
3
+ export type McpCaller = {
4
+ id?: number;
5
+ auth_attributes?: {
6
+ business_id?: number;
7
+ api_key_kind?: string;
8
+ client_id?: string;
9
+ };
10
+ };
11
+ export type SanitizedMcpCallLog = {
12
+ client_id: string | null;
13
+ user_id: number | null;
14
+ business_id: number | null;
15
+ kind: string;
16
+ request: unknown;
17
+ };
18
+ export declare function sanitizeMcpCallLog(input: {
19
+ headers?: Record<string, unknown>;
20
+ request?: unknown;
21
+ user?: McpCaller | null;
22
+ }): SanitizedMcpCallLog;
23
+ export declare function capResponseBody(body: unknown, cap?: number): {
24
+ body?: unknown;
25
+ truncated: boolean;
26
+ bytes: number;
27
+ };
28
+ export declare function hashCompiledSql(sql: string): string;
29
+ export declare function hottestQueryFamilies(rows: Array<{
30
+ sql_hash: string;
31
+ db_ms: number;
32
+ }>, limit?: number): Array<{
33
+ sql_hash: string;
34
+ count: number;
35
+ p95_db_ms: number;
36
+ }>;
37
+ export declare function extractExplainCost(plan: unknown): number | null;
38
+ export declare const SanitizeMcpCallLog: {
39
+ sanitizeMcpCallLog: typeof sanitizeMcpCallLog;
40
+ capResponseBody: typeof capResponseBody;
41
+ hashCompiledSql: typeof hashCompiledSql;
42
+ hottestQueryFamilies: typeof hottestQueryFamilies;
43
+ extractExplainCost: typeof extractExplainCost;
44
+ };
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SanitizeMcpCallLog = exports.MCP_LOG_TTL_DAYS = exports.MCP_LOG_BODY_CAP = void 0;
4
+ exports.sanitizeMcpCallLog = sanitizeMcpCallLog;
5
+ exports.capResponseBody = capResponseBody;
6
+ exports.hashCompiledSql = hashCompiledSql;
7
+ exports.hottestQueryFamilies = hottestQueryFamilies;
8
+ exports.extractExplainCost = extractExplainCost;
9
+ const crypto_1 = require("crypto");
10
+ const extract_client_credentials_1 = require("../../access/libraries/extract.client.credentials");
11
+ exports.MCP_LOG_BODY_CAP = Number(process.env.MCP_LOG_BODY_CAP) > 0 ? Number(process.env.MCP_LOG_BODY_CAP) : 32 * 1024;
12
+ exports.MCP_LOG_TTL_DAYS = Number(process.env.MCP_LOG_TTL_DAYS) > 0 ? Number(process.env.MCP_LOG_TTL_DAYS) : 90;
13
+ const SECRET_HEADER = /^(authorization|cookie|x-client-secret|x-development-key)$/i;
14
+ const SECRET_KEY = /(secret|password|token|authorization|cookie|api[_-]?key|client_secret|development[_-]?key)/i;
15
+ function sanitizeMcpCallLog(input) {
16
+ const user = input.user;
17
+ const fromBearer = clientIdFromHeaders(input.headers);
18
+ return {
19
+ client_id: user?.auth_attributes?.client_id || fromBearer || null,
20
+ user_id: user?.id ?? null,
21
+ business_id: user?.auth_attributes?.business_id ?? null,
22
+ kind: user?.auth_attributes?.api_key_kind === 'api'
23
+ ? 'api'
24
+ : user?.auth_attributes?.api_key_kind === 'user'
25
+ ? 'user'
26
+ : fromBearer
27
+ ? 'user'
28
+ : 'unknown',
29
+ request: redact(input.request),
30
+ };
31
+ }
32
+ function capResponseBody(body, cap = exports.MCP_LOG_BODY_CAP) {
33
+ if (body === undefined)
34
+ return { truncated: false, bytes: 0 };
35
+ const bytes = Buffer.byteLength(typeof body === 'string' ? body : JSON.stringify(body), 'utf8');
36
+ if (bytes > cap)
37
+ return { truncated: true, bytes };
38
+ return { body, truncated: false, bytes };
39
+ }
40
+ function hashCompiledSql(sql) {
41
+ const normalized = String(sql || '')
42
+ .replace(/\s+/g, ' ')
43
+ .trim();
44
+ return (0, crypto_1.createHash)('sha256').update(normalized).digest('hex');
45
+ }
46
+ function hottestQueryFamilies(rows, limit = 10) {
47
+ const groups = new Map();
48
+ for (const row of rows) {
49
+ const list = groups.get(row.sql_hash) || [];
50
+ list.push(row.db_ms);
51
+ groups.set(row.sql_hash, list);
52
+ }
53
+ return [...groups.entries()]
54
+ .map(([sql_hash, times]) => {
55
+ const sorted = [...times].sort((a, b) => a - b);
56
+ const p95 = sorted[Math.min(sorted.length - 1, Math.ceil(sorted.length * 0.95) - 1)] ?? 0;
57
+ return { sql_hash, count: times.length, p95_db_ms: p95 };
58
+ })
59
+ .sort((a, b) => b.p95_db_ms - a.p95_db_ms || b.count - a.count)
60
+ .slice(0, limit);
61
+ }
62
+ function extractExplainCost(plan) {
63
+ const root = unwrapExplain(plan);
64
+ const cost = root && typeof root === 'object' ? (root['Total Cost'] ?? root.TotalCost) : null;
65
+ const n = Number(cost);
66
+ return Number.isFinite(n) ? n : null;
67
+ }
68
+ function unwrapExplain(plan) {
69
+ if (!plan)
70
+ return null;
71
+ if (Array.isArray(plan))
72
+ return unwrapExplain(plan[0]);
73
+ if (typeof plan === 'object') {
74
+ const record = plan;
75
+ if (record.Plan)
76
+ return unwrapExplain(record.Plan);
77
+ if (record['QUERY PLAN'])
78
+ return unwrapExplain(record['QUERY PLAN']);
79
+ return record;
80
+ }
81
+ return null;
82
+ }
83
+ function clientIdFromHeaders(headers) {
84
+ if (!headers)
85
+ return null;
86
+ const fromHeader = headers['x-client-id'] ?? headers['X-Client-Id'];
87
+ if (fromHeader)
88
+ return String(fromHeader);
89
+ const creds = extract_client_credentials_1.ExtractClientCredentials.fromHeaders(headers);
90
+ return creds?.clientId || null;
91
+ }
92
+ function redact(value) {
93
+ if (Array.isArray(value))
94
+ return value.map(redact);
95
+ if (!value || typeof value !== 'object')
96
+ return value;
97
+ const out = {};
98
+ for (const [key, nested] of Object.entries(value)) {
99
+ if (SECRET_HEADER.test(key) || SECRET_KEY.test(key))
100
+ continue;
101
+ out[key] = redact(nested);
102
+ }
103
+ return out;
104
+ }
105
+ exports.SanitizeMcpCallLog = {
106
+ sanitizeMcpCallLog,
107
+ capResponseBody,
108
+ hashCompiledSql,
109
+ hottestQueryFamilies,
110
+ extractExplainCost,
111
+ };
112
+ //# sourceMappingURL=sanitize.mcp.call.log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.mcp.call.log.js","sourceRoot":"","sources":["../../../src/mcp/logging/sanitize.mcp.call.log.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export declare class McpModule {
4
4
  static forRoot(options?: McpModuleOptions): DynamicModule;
5
5
  }
6
6
  export { assertValidCatalog } from './catalog/assert.valid.catalog';
7
- export { assertPublicMcpBootConfig, MCP_TOOL_REGISTRIES, getHostMcpRegistries, getMcpServerName, mcpToolNameMax, provisionMcpServer, setHostMcpRegistries } from './mcp.constants';
7
+ export { assertPublicMcpBootConfig, MCP_TOOL_REGISTRIES, getHostMcpRegistries, getMcpServerName, mcpToolNameMax, provisionMcpServer, setHostMcpRegistries, } from './mcp.constants';
8
8
  export type { McpModuleOptions, McpToolRegistryFactory } from './mcp.constants';
9
9
  export { ApToolRegistry } from './tools/ap.tool.registry';
10
10
  export { ArToolRegistry } from './tools/ar.tool.registry';
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.module.js","sourceRoot":"","sources":["../../src/mcp/mcp.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,0EAAsE;AACtE,4DAAuD;AACvD,mDAAuE;AA0BhE,IAAM,SAAS,iBAAf,MAAM,SAAS;IAClB,MAAM,CAAC,OAAO,CAAC,UAA4B,EAAE;QACzC,IAAA,kCAAkB,EAAC,OAAO,CAAC,CAAC;QAC5B,OAAO;YACH,MAAM,EAAE,WAAS;YACjB,OAAO,EAAE,CAAC,+BAAa,EAAE,sCAAiB,CAAC;YAC3C,OAAO,EAAE,CAAC,+BAAa,EAAE,sCAAiB,CAAC;SAC9C,CAAC;IACN,CAAC;CACJ,CAAA;AATY,8BAAS;oBAAT,SAAS;IAJrB,IAAA,eAAM,EAAC;QACJ,OAAO,EAAE,CAAC,+BAAa,EAAE,sCAAiB,CAAC;QAC3C,OAAO,EAAE,CAAC,+BAAa,EAAE,sCAAiB,CAAC;KAC9C,CAAC;GACW,SAAS,CASrB;AAED,uEAAoE;AAA3D,0HAAA,kBAAkB,OAAA;AAC3B,iDAAmL;AAA1K,0HAAA,yBAAyB,OAAA;AAAE,oHAAA,mBAAmB,OAAA;AAAE,qHAAA,oBAAoB,OAAA;AAAE,iHAAA,gBAAgB,OAAA;AAAE,+GAAA,cAAc,OAAA;AAAE,mHAAA,kBAAkB,OAAA;AAAE,qHAAA,oBAAoB,OAAA;AAEzJ,6DAA0D;AAAjD,kHAAA,cAAc,OAAA;AACvB,6DAA0D;AAAjD,kHAAA,cAAc,OAAA;AACvB,uDAAqD;AAA5C,6GAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"mcp.module.js","sourceRoot":"","sources":["../../src/mcp/mcp.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,0EAAsE;AACtE,4DAAuD;AACvD,mDAAuE;AAyBhE,IAAM,SAAS,iBAAf,MAAM,SAAS;IAClB,MAAM,CAAC,OAAO,CAAC,UAA4B,EAAE;QACzC,IAAA,kCAAkB,EAAC,OAAO,CAAC,CAAC;QAC5B,OAAO;YACH,MAAM,EAAE,WAAS;YACjB,OAAO,EAAE,CAAC,+BAAa,EAAE,sCAAiB,CAAC;YAC3C,OAAO,EAAE,CAAC,+BAAa,EAAE,sCAAiB,CAAC;SAC9C,CAAC;IACN,CAAC;CACJ,CAAA;AATY,8BAAS;oBAAT,SAAS;IAJrB,IAAA,eAAM,EAAC;QACJ,OAAO,EAAE,CAAC,+BAAa,EAAE,sCAAiB,CAAC;QAC3C,OAAO,EAAE,CAAC,+BAAa,EAAE,sCAAiB,CAAC;KAC9C,CAAC;GACW,SAAS,CASrB;AAED,uEAAoE;AAA3D,0HAAA,kBAAkB,OAAA;AAC3B,iDAQyB;AAPrB,0HAAA,yBAAyB,OAAA;AACzB,oHAAA,mBAAmB,OAAA;AACnB,qHAAA,oBAAoB,OAAA;AACpB,iHAAA,gBAAgB,OAAA;AAChB,+GAAA,cAAc,OAAA;AACd,mHAAA,kBAAkB,OAAA;AAClB,qHAAA,oBAAoB,OAAA;AAGxB,6DAA0D;AAAjD,kHAAA,cAAc,OAAA;AACvB,6DAA0D;AAAjD,kHAAA,cAAc,OAAA;AACvB,uDAAqD;AAA5C,6GAAA,YAAY,OAAA"}
@@ -0,0 +1 @@
1
+ export * from './mcp.call.log.mentity';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./mcp.call.log.mentity"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/mentities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAsC"}
@@ -0,0 +1,17 @@
1
+ import { CommonMongoEntity } from '@servicelabsco/nestjs-utility-services';
2
+ export declare class McpCallLogMentity extends CommonMongoEntity {
3
+ surface: string;
4
+ server_name: string;
5
+ method: string;
6
+ tool: string;
7
+ path: string;
8
+ user_id: number;
9
+ business_id: number;
10
+ client_id: string;
11
+ kind: string;
12
+ request: any;
13
+ response: any;
14
+ timing_ms: any;
15
+ cost: any;
16
+ expire_at: Date;
17
+ }
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.McpCallLogMentity = void 0;
13
+ const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
14
+ const typeorm_1 = require("typeorm");
15
+ let McpCallLogMentity = class McpCallLogMentity extends nestjs_utility_services_1.CommonMongoEntity {
16
+ };
17
+ exports.McpCallLogMentity = McpCallLogMentity;
18
+ __decorate([
19
+ (0, typeorm_1.Column)(),
20
+ __metadata("design:type", String)
21
+ ], McpCallLogMentity.prototype, "surface", void 0);
22
+ __decorate([
23
+ (0, typeorm_1.Column)(),
24
+ __metadata("design:type", String)
25
+ ], McpCallLogMentity.prototype, "server_name", void 0);
26
+ __decorate([
27
+ (0, typeorm_1.Column)(),
28
+ __metadata("design:type", String)
29
+ ], McpCallLogMentity.prototype, "method", void 0);
30
+ __decorate([
31
+ (0, typeorm_1.Column)(),
32
+ __metadata("design:type", String)
33
+ ], McpCallLogMentity.prototype, "tool", void 0);
34
+ __decorate([
35
+ (0, typeorm_1.Column)(),
36
+ __metadata("design:type", String)
37
+ ], McpCallLogMentity.prototype, "path", void 0);
38
+ __decorate([
39
+ (0, typeorm_1.Column)(),
40
+ __metadata("design:type", Number)
41
+ ], McpCallLogMentity.prototype, "user_id", void 0);
42
+ __decorate([
43
+ (0, typeorm_1.Column)(),
44
+ __metadata("design:type", Number)
45
+ ], McpCallLogMentity.prototype, "business_id", void 0);
46
+ __decorate([
47
+ (0, typeorm_1.Column)(),
48
+ __metadata("design:type", String)
49
+ ], McpCallLogMentity.prototype, "client_id", void 0);
50
+ __decorate([
51
+ (0, typeorm_1.Column)(),
52
+ __metadata("design:type", String)
53
+ ], McpCallLogMentity.prototype, "kind", void 0);
54
+ __decorate([
55
+ (0, typeorm_1.Column)('json'),
56
+ __metadata("design:type", Object)
57
+ ], McpCallLogMentity.prototype, "request", void 0);
58
+ __decorate([
59
+ (0, typeorm_1.Column)('json'),
60
+ __metadata("design:type", Object)
61
+ ], McpCallLogMentity.prototype, "response", void 0);
62
+ __decorate([
63
+ (0, typeorm_1.Column)('json'),
64
+ __metadata("design:type", Object)
65
+ ], McpCallLogMentity.prototype, "timing_ms", void 0);
66
+ __decorate([
67
+ (0, typeorm_1.Column)('json'),
68
+ __metadata("design:type", Object)
69
+ ], McpCallLogMentity.prototype, "cost", void 0);
70
+ __decorate([
71
+ (0, typeorm_1.Column)(),
72
+ (0, typeorm_1.Index)(),
73
+ __metadata("design:type", Date)
74
+ ], McpCallLogMentity.prototype, "expire_at", void 0);
75
+ exports.McpCallLogMentity = McpCallLogMentity = __decorate([
76
+ (0, typeorm_1.Entity)('mcp_call_logs'),
77
+ (0, typeorm_1.Index)('mcp_call_logs_ttl', ['expire_at'])
78
+ ], McpCallLogMentity);
79
+ //# sourceMappingURL=mcp.call.log.mentity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.call.log.mentity.js","sourceRoot":"","sources":["../../../src/mcp/mentities/mcp.call.log.mentity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oFAA2E;AAC3E,qCAAgD;AAQzC,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,2CAAiB;CA2CvD,CAAA;AA3CY,8CAAiB;AAE1B;IADC,IAAA,gBAAM,GAAE;;kDACO;AAGhB;IADC,IAAA,gBAAM,GAAE;;sDACW;AAGpB;IADC,IAAA,gBAAM,GAAE;;iDACM;AAGf;IADC,IAAA,gBAAM,GAAE;;+CACI;AAGb;IADC,IAAA,gBAAM,GAAE;;+CACI;AAGb;IADC,IAAA,gBAAM,GAAE;;kDACO;AAGhB;IADC,IAAA,gBAAM,GAAE;;sDACW;AAGpB;IADC,IAAA,gBAAM,GAAE;;oDACS;AAGlB;IADC,IAAA,gBAAM,GAAE;;+CACI;AAGb;IADC,IAAA,gBAAM,EAAC,MAAM,CAAC;;kDACF;AAGb;IADC,IAAA,gBAAM,EAAC,MAAM,CAAC;;mDACD;AAGd;IADC,IAAA,gBAAM,EAAC,MAAM,CAAC;;oDACA;AAGf;IADC,IAAA,gBAAM,EAAC,MAAM,CAAC;;+CACL;AAIV;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,GAAE;8BACG,IAAI;oDAAC;4BA1CP,iBAAiB;IAF7B,IAAA,gBAAM,EAAC,eAAe,CAAC;IACvB,IAAA,eAAK,EAAC,mBAAmB,EAAE,CAAC,WAAW,CAAC,CAAC;GAC7B,iBAAiB,CA2C7B"}
@@ -10,4 +10,7 @@ export * from './reports.list.tool';
10
10
  export * from './reports.run.tool';
11
11
  export * from './save.listing.preference.tool';
12
12
  export * from './tool.registry';
13
+ export * from './view.describe.tool';
14
+ export * from './view.query.tool';
15
+ export * from './views.list.tool';
13
16
  export * from './whoami.tool';
@@ -26,5 +26,8 @@ __exportStar(require("./reports.list.tool"), exports);
26
26
  __exportStar(require("./reports.run.tool"), exports);
27
27
  __exportStar(require("./save.listing.preference.tool"), exports);
28
28
  __exportStar(require("./tool.registry"), exports);
29
+ __exportStar(require("./view.describe.tool"), exports);
30
+ __exportStar(require("./view.query.tool"), exports);
31
+ __exportStar(require("./views.list.tool"), exports);
29
32
  __exportStar(require("./whoami.tool"), exports);
30
33
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AAAA,qDAAmC;AAAA,kDAAgC;AAAA,mEAAiD;AAAA,0DAAwC;AAAA,uDAAqC;AAAA,uDAAqC;AAAA,6CAA2B;AAAA,sDAAoC;AAAA,qDAAmC;AAAA,iEAA+C;AAAA,kDAAgC;AAAA,gDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AAAA,qDAAmC;AAAA,kDAAgC;AAAA,mEAAiD;AAAA,0DAAwC;AAAA,uDAAqC;AAAA,uDAAqC;AAAA,6CAA2B;AAAA,sDAAoC;AAAA,qDAAmC;AAAA,iEAA+C;AAAA,kDAAgC;AAAA,uDAAqC;AAAA,oDAAkC;AAAA,oDAAkC;AAAA,gDAA6B"}
@@ -1 +1 @@
1
- {"version":3,"file":"reports.run.tool.js","sourceRoot":"","sources":["../../../src/mcp/tools/reports.run.tool.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,yCAAqC;AAErC,MAAM,WAAW,GAAG;IAChB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,iEAAiE,CAAC;IAC5G,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;IACpI,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACnF,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC/E,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;CACjH,CAAC;AAUF,MAAa,cAAe,SAAQ,kBAAwB;IAA5D;;QACa,SAAI,GAAG,aAAa,CAAC;QACrB,UAAK,GAAG,YAAY,CAAC;QACrB,gBAAW,GAChB,uLAAuL,CAAC;QACnL,gBAAW,GAAG,WAAW,CAAC;QAChB,aAAQ,GAAG,IAAI,CAAC;QAC1B,mBAAc,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAQjD,CAAC;IANG,OAAO,CAAC,IAAqB;QACzB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CACjB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CACtG,CAAC;IACN,CAAC;CACJ;AAfD,wCAeC"}
1
+ {"version":3,"file":"reports.run.tool.js","sourceRoot":"","sources":["../../../src/mcp/tools/reports.run.tool.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,yCAAqC;AAErC,MAAM,WAAW,GAAG;IAChB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,iEAAiE,CAAC;IAC5G,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;IACpI,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACnF,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC/E,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;CACjH,CAAC;AAUF,MAAa,cAAe,SAAQ,kBAAwB;IAA5D;;QACa,SAAI,GAAG,aAAa,CAAC;QACrB,UAAK,GAAG,YAAY,CAAC;QACrB,gBAAW,GAChB,uLAAuL,CAAC;QACnL,gBAAW,GAAG,WAAW,CAAC;QAChB,aAAQ,GAAG,IAAI,CAAC;QAC1B,mBAAc,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAMjD,CAAC;IAJG,OAAO,CAAC,IAAqB;QACzB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/H,CAAC;CACJ;AAbD,wCAaC"}
@@ -1,33 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ToolRegistry = void 0;
4
- const ap_tool_registry_1 = require("./ap.tool.registry");
5
- const ar_tool_registry_1 = require("./ar.tool.registry");
6
- const delete_listing_preference_tool_1 = require("./delete.listing.preference.tool");
7
- const listing_describe_tool_1 = require("./listing.describe.tool");
8
- const listing_query_tool_1 = require("./listing.query.tool");
9
- const listings_list_tool_1 = require("./listings.list.tool");
10
- const reports_list_tool_1 = require("./reports.list.tool");
11
- const reports_run_tool_1 = require("./reports.run.tool");
12
- const save_listing_preference_tool_1 = require("./save.listing.preference.tool");
13
4
  const whoami_tool_1 = require("./whoami.tool");
5
+ const view_describe_tool_1 = require("./view.describe.tool");
6
+ const view_query_tool_1 = require("./view.query.tool");
7
+ const views_list_tool_1 = require("./views.list.tool");
14
8
  class ToolRegistry {
15
9
  constructor(client) {
16
10
  this.client = client;
17
11
  }
18
12
  tools() {
19
- return [
20
- new whoami_tool_1.WhoamiTool(this.client),
21
- new reports_list_tool_1.ReportsListTool(this.client),
22
- new reports_run_tool_1.ReportsRunTool(this.client),
23
- new listings_list_tool_1.ListingsListTool(this.client),
24
- new listing_describe_tool_1.ListingDescribeTool(this.client),
25
- new listing_query_tool_1.ListingQueryTool(this.client),
26
- new save_listing_preference_tool_1.SaveListingPreferenceTool(this.client),
27
- new delete_listing_preference_tool_1.DeleteListingPreferenceTool(this.client),
28
- ...new ap_tool_registry_1.ApToolRegistry(this.client).tools(),
29
- ...new ar_tool_registry_1.ArToolRegistry(this.client).tools(),
30
- ];
13
+ return [new whoami_tool_1.WhoamiTool(this.client), new views_list_tool_1.ViewsListTool(this.client), new view_describe_tool_1.ViewDescribeTool(this.client), new view_query_tool_1.ViewQueryTool(this.client)];
31
14
  }
32
15
  }
33
16
  exports.ToolRegistry = ToolRegistry;
@@ -1 +1 @@
1
- {"version":3,"file":"tool.registry.js","sourceRoot":"","sources":["../../../src/mcp/tools/tool.registry.ts"],"names":[],"mappings":";;;AAEA,yDAAoD;AACpD,yDAAoD;AACpD,qFAA+E;AAC/E,mEAA8D;AAC9D,6DAAwD;AACxD,6DAAwD;AACxD,2DAAsD;AACtD,yDAAoD;AACpD,iFAA2E;AAC3E,+CAA2C;AAM3C,MAAa,YAAY;IACrB,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,KAAK;QACD,OAAO;YACH,IAAI,wBAAU,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,mCAAe,CAAC,IAAI,CAAC,MAAM,CAAC;YAChC,IAAI,iCAAc,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/B,IAAI,qCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;YACjC,IAAI,2CAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;YACpC,IAAI,qCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;YACjC,IAAI,wDAAyB,CAAC,IAAI,CAAC,MAAM,CAAC;YAC1C,IAAI,4DAA2B,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5C,GAAG,IAAI,iCAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE;YAC1C,GAAG,IAAI,iCAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE;SAC7C,CAAC;IACN,CAAC;CACJ;AAjBD,oCAiBC"}
1
+ {"version":3,"file":"tool.registry.js","sourceRoot":"","sources":["../../../src/mcp/tools/tool.registry.ts"],"names":[],"mappings":";;;AAEA,+CAA2C;AAC3C,6DAAwD;AACxD,uDAAkD;AAClD,uDAAkD;AAOlD,MAAa,YAAY;IACrB,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,KAAK;QACD,OAAO,CAAC,IAAI,wBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,+BAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,qCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,+BAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5I,CAAC;CACJ;AAND,oCAMC"}
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ import { McpToolResultInterface } from '../interfaces/mcp.tool.result.interface';
3
+ import { McpTool } from './mcp.tool';
4
+ type ViewDescribeInput = {
5
+ name: string;
6
+ };
7
+ export declare class ViewDescribeTool extends McpTool<ViewDescribeInput> {
8
+ readonly name = "view_describe";
9
+ readonly title = "Describe analytical view";
10
+ readonly description = "Full semantic schema of one analytical view: every column with its meaning (in Finnoto vocabulary), type, enum value labels, supported ops, the closed DSL grammar block (read it \u2014 do not guess operators), worked example_queries, and suggested visualizations. Call views_list first, then view_describe before writing a view_query. Column descriptions resolve domain traps; refreshed_at is freshness.";
11
+ readonly inputSchema: {
12
+ name: z.ZodString;
13
+ };
14
+ protected readonly readOnly = true;
15
+ execute(args: ViewDescribeInput): Promise<McpToolResultInterface>;
16
+ }
17
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViewDescribeTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const mcp_tool_1 = require("./mcp.tool");
6
+ const inputSchema = {
7
+ name: zod_1.z.string().min(2).max(40).describe('View name from views_list, e.g. "expenses".'),
8
+ };
9
+ class ViewDescribeTool extends mcp_tool_1.McpTool {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.name = 'view_describe';
13
+ this.title = 'Describe analytical view';
14
+ this.description = 'Full semantic schema of one analytical view: every column with its meaning (in Finnoto vocabulary), type, enum value labels, supported ops, the closed DSL grammar block (read it — do not guess operators), worked example_queries, and suggested visualizations. Call views_list first, then view_describe before writing a view_query. Column descriptions resolve domain traps; refreshed_at is freshness.';
15
+ this.inputSchema = inputSchema;
16
+ this.readOnly = true;
17
+ }
18
+ execute(args) {
19
+ return this.run(() => this.client.request({ method: 'GET', path: `v1/b/report-views/${encodeURIComponent(args.name)}` }));
20
+ }
21
+ }
22
+ exports.ViewDescribeTool = ViewDescribeTool;
23
+ //# sourceMappingURL=view.describe.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.describe.tool.js","sourceRoot":"","sources":["../../../src/mcp/tools/view.describe.tool.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,yCAAqC;AAErC,MAAM,WAAW,GAAG;IAChB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC;CAC1F,CAAC;AAOF,MAAa,gBAAiB,SAAQ,kBAA0B;IAAhE;;QACa,SAAI,GAAG,eAAe,CAAC;QACvB,UAAK,GAAG,0BAA0B,CAAC;QACnC,gBAAW,GAChB,gZAAgZ,CAAC;QAC5Y,gBAAW,GAAG,WAAW,CAAC;QAChB,aAAQ,GAAG,IAAI,CAAC;IAKvC,CAAC;IAHG,OAAO,CAAC,IAAuB;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9H,CAAC;CACJ;AAXD,4CAWC"}
@@ -0,0 +1,75 @@
1
+ import { z } from 'zod';
2
+ import { McpToolResultInterface } from '../interfaces/mcp.tool.result.interface';
3
+ import { McpTool } from './mcp.tool';
4
+ type ViewQueryInput = {
5
+ name: string;
6
+ columns?: string[];
7
+ filters?: Array<{
8
+ column: string;
9
+ op: string;
10
+ value?: unknown;
11
+ }>;
12
+ group_by?: Array<{
13
+ column: string;
14
+ bucket?: string;
15
+ }>;
16
+ aggregates?: Array<{
17
+ fn: string;
18
+ column?: string;
19
+ as?: string;
20
+ }>;
21
+ sort?: Array<{
22
+ by: string;
23
+ dir?: string;
24
+ }>;
25
+ limit?: number;
26
+ offset?: number;
27
+ };
28
+ export declare class ViewQueryTool extends McpTool<ViewQueryInput> {
29
+ readonly name = "view_query";
30
+ readonly title = "Query analytical view";
31
+ readonly description = "Run a structured analytical query against a view: filters, group-by (including month/quarter date buckets), and aggregates (sum, count, avg, min, max). Call views_list then view_describe (read the grammar block and example_queries) before querying. Use contains (bare string, not LIKE). Relative dates: @today / @today-30d \u2014 do not compute today yourself. Enum filters accept labels. Results include format hints and refreshed_at. Not for fetching individual records \u2014 use listing tools for that.";
32
+ readonly inputSchema: {
33
+ name: z.ZodString;
34
+ columns: z.ZodOptional<z.ZodArray<z.ZodString>>;
35
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
36
+ column: z.ZodString;
37
+ op: z.ZodString;
38
+ value: z.ZodOptional<z.ZodUnknown>;
39
+ }, z.core.$strip>>>;
40
+ group_by: z.ZodOptional<z.ZodArray<z.ZodObject<{
41
+ column: z.ZodString;
42
+ bucket: z.ZodOptional<z.ZodEnum<{
43
+ year: "year";
44
+ week: "week";
45
+ day: "day";
46
+ month: "month";
47
+ quarter: "quarter";
48
+ }>>;
49
+ }, z.core.$strip>>>;
50
+ aggregates: z.ZodOptional<z.ZodArray<z.ZodObject<{
51
+ fn: z.ZodEnum<{
52
+ count: "count";
53
+ max: "max";
54
+ min: "min";
55
+ sum: "sum";
56
+ avg: "avg";
57
+ count_distinct: "count_distinct";
58
+ }>;
59
+ column: z.ZodOptional<z.ZodString>;
60
+ as: z.ZodOptional<z.ZodString>;
61
+ }, z.core.$strip>>>;
62
+ sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
63
+ by: z.ZodString;
64
+ dir: z.ZodOptional<z.ZodEnum<{
65
+ asc: "asc";
66
+ desc: "desc";
67
+ }>>;
68
+ }, z.core.$strip>>>;
69
+ limit: z.ZodOptional<z.ZodNumber>;
70
+ offset: z.ZodOptional<z.ZodNumber>;
71
+ };
72
+ protected readonly readOnly = true;
73
+ execute(args: ViewQueryInput): Promise<McpToolResultInterface>;
74
+ }
75
+ export {};