@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.
- package/dist/access/controllers/business.report.controller.js.map +1 -1
- package/dist/access/controllers/dashboard.report.controller.js +2 -1
- package/dist/access/controllers/dashboard.report.controller.js.map +1 -1
- package/dist/access/controllers/index.d.ts +1 -0
- package/dist/access/controllers/index.js +1 -0
- package/dist/access/controllers/index.js.map +1 -1
- package/dist/access/controllers/oauth.as.controller.d.ts +1 -0
- package/dist/access/controllers/oauth.as.controller.js +24 -0
- package/dist/access/controllers/oauth.as.controller.js.map +1 -1
- package/dist/access/controllers/report.view.controller.d.ts +101 -0
- package/dist/access/controllers/report.view.controller.js +66 -0
- package/dist/access/controllers/report.view.controller.js.map +1 -0
- package/dist/access/controllers/whoami.controller.js +3 -2
- package/dist/access/controllers/whoami.controller.js.map +1 -1
- package/dist/access/dtos/index.d.ts +1 -0
- package/dist/access/dtos/index.js +1 -0
- package/dist/access/dtos/index.js.map +1 -1
- package/dist/access/dtos/report.view.query.dto.d.ts +23 -0
- package/dist/access/dtos/report.view.query.dto.js +56 -0
- package/dist/access/dtos/report.view.query.dto.js.map +1 -0
- package/dist/access/es6.classes.d.ts +24 -14
- package/dist/access/es6.classes.js +42 -25
- package/dist/access/es6.classes.js.map +1 -1
- package/dist/access/jobs/form.script.job.js +1 -1
- package/dist/access/libraries/index.d.ts +1 -0
- package/dist/access/libraries/index.js +1 -0
- package/dist/access/libraries/index.js.map +1 -1
- package/dist/access/libraries/process.form.script.list.js.map +1 -1
- package/dist/access/libraries/report.view.query.compiler.d.ts +163 -0
- package/dist/access/libraries/report.view.query.compiler.js +399 -0
- package/dist/access/libraries/report.view.query.compiler.js.map +1 -0
- package/dist/access/services/credential.resolve.service.js +18 -3
- package/dist/access/services/credential.resolve.service.js.map +1 -1
- package/dist/access/services/es6.jobs.service.d.ts +3 -3
- package/dist/access/services/es6.jobs.service.js +5 -5
- package/dist/access/services/es6.jobs.service.js.map +1 -1
- package/dist/access/services/index.d.ts +1 -0
- package/dist/access/services/index.js +1 -0
- package/dist/access/services/index.js.map +1 -1
- package/dist/access/services/oauth.as.service.d.ts +8 -5
- package/dist/access/services/oauth.as.service.js +92 -48
- package/dist/access/services/oauth.as.service.js.map +1 -1
- package/dist/access/services/report.view.service.d.ts +111 -0
- package/dist/access/services/report.view.service.js +234 -0
- package/dist/access/services/report.view.service.js.map +1 -0
- package/dist/accessUtility/access.utility.module.js +2 -2
- package/dist/accessUtility/access.utility.module.js.map +1 -1
- package/dist/accessUtility/es6.classes.d.ts +1 -1
- package/dist/accessUtility/es6.classes.js +2 -2
- package/dist/accessUtility/es6.classes.js.map +1 -1
- package/dist/accessUtility/index.d.ts +1 -1
- package/dist/accessUtility/index.js +1 -1
- package/dist/accessUtility/index.js.map +1 -1
- package/dist/accessUtility/{types/bulk.upload.item.record.js → interfaces/bulk.upload.item.record.interface.js} +1 -1
- package/dist/accessUtility/interfaces/bulk.upload.item.record.interface.js.map +1 -0
- package/dist/accessUtility/interfaces/index.d.ts +1 -0
- package/dist/accessUtility/interfaces/index.js +18 -0
- package/dist/accessUtility/interfaces/index.js.map +1 -0
- package/dist/accessUtility/jobs/bulk.upload.column.match.job.js.map +1 -1
- package/dist/accessUtility/jobs/push.to.bulk.item.job.d.ts +1 -1
- package/dist/accessUtility/libraries/set.bulk.upload.log.file.js.map +1 -1
- package/dist/accessUtility/services/bulk.upload.item.store.d.ts +1 -1
- package/dist/accessUtility/services/bulk.upload.item.store.js.map +1 -1
- package/dist/app.module.js +2 -0
- package/dist/app.module.js.map +1 -1
- package/dist/config/entity.constants.d.ts +2 -2
- package/dist/config/entity.constants.js +2 -2
- package/dist/config/entity.constants.js.map +1 -1
- package/dist/config/mongo.config.d.ts +3 -0
- package/dist/config/mongo.config.js +16 -0
- package/dist/config/mongo.config.js.map +1 -0
- package/dist/config/source.hash.d.ts +1 -0
- package/dist/config/source.hash.js +1 -0
- package/dist/config/source.hash.js.map +1 -1
- package/dist/development/controllers/development.catalog.controller.d.ts +53 -0
- package/dist/development/controllers/development.catalog.controller.js +112 -0
- package/dist/development/controllers/development.catalog.controller.js.map +1 -0
- package/dist/development/controllers/index.d.ts +1 -0
- package/dist/development/controllers/index.js +1 -0
- package/dist/development/controllers/index.js.map +1 -1
- package/dist/development/development.module.js +2 -1
- package/dist/development/development.module.js.map +1 -1
- package/dist/development/dtos/column.catalog.attributes.dto.d.ts +10 -0
- package/dist/development/dtos/column.catalog.attributes.dto.js +58 -0
- package/dist/development/dtos/column.catalog.attributes.dto.js.map +1 -0
- package/dist/development/dtos/index.d.ts +2 -0
- package/dist/development/dtos/index.js +19 -0
- package/dist/development/dtos/index.js.map +1 -0
- package/dist/development/dtos/material.view.catalog.attributes.dto.d.ts +25 -0
- package/dist/development/dtos/material.view.catalog.attributes.dto.js +114 -0
- package/dist/development/dtos/material.view.catalog.attributes.dto.js.map +1 -0
- package/dist/development/es6.classes.d.ts +10 -3
- package/dist/development/es6.classes.js +10 -3
- package/dist/development/es6.classes.js.map +1 -1
- package/dist/development/gates/index.d.ts +1 -0
- package/dist/{accessUtility/types → development/gates}/index.js +1 -1
- package/dist/development/gates/index.js.map +1 -0
- package/dist/development/gates/reporting.catalog.gate.d.ts +8 -0
- package/dist/development/gates/reporting.catalog.gate.js +39 -0
- package/dist/development/gates/reporting.catalog.gate.js.map +1 -0
- package/dist/development/index.d.ts +2 -0
- package/dist/development/index.js +2 -0
- package/dist/development/index.js.map +1 -1
- package/dist/development/services/admin.report.view.service.d.ts +92 -0
- package/dist/development/services/admin.report.view.service.js +459 -0
- package/dist/development/services/admin.report.view.service.js.map +1 -0
- package/dist/development/services/index.d.ts +1 -0
- package/dist/development/services/index.js +1 -0
- package/dist/development/services/index.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/mcp/admin/tools/admin.tool.registry.js +14 -0
- package/dist/mcp/admin/tools/admin.tool.registry.js.map +1 -1
- package/dist/mcp/admin/tools/catalog/admin.catalog.validate.tool.d.ts +16 -0
- package/dist/mcp/admin/tools/catalog/admin.catalog.validate.tool.js +22 -0
- package/dist/mcp/admin/tools/catalog/admin.catalog.validate.tool.js.map +1 -0
- package/dist/mcp/admin/tools/catalog/admin.column.describe.tool.d.ts +30 -0
- package/dist/mcp/admin/tools/catalog/admin.column.describe.tool.js +37 -0
- package/dist/mcp/admin/tools/catalog/admin.column.describe.tool.js.map +1 -0
- package/dist/mcp/admin/tools/catalog/admin.view.columns.sync.tool.d.ts +22 -0
- package/dist/mcp/admin/tools/catalog/admin.view.columns.sync.tool.js +31 -0
- package/dist/mcp/admin/tools/catalog/admin.view.columns.sync.tool.js.map +1 -0
- package/dist/mcp/admin/tools/catalog/admin.view.register.tool.d.ts +22 -0
- package/dist/mcp/admin/tools/catalog/admin.view.register.tool.js +28 -0
- package/dist/mcp/admin/tools/catalog/admin.view.register.tool.js.map +1 -0
- package/dist/mcp/admin/tools/catalog/admin.view.sample.tool.d.ts +21 -0
- package/dist/mcp/admin/tools/catalog/admin.view.sample.tool.js +32 -0
- package/dist/mcp/admin/tools/catalog/admin.view.sample.tool.js.map +1 -0
- package/dist/mcp/admin/tools/catalog/admin.view.update.tool.d.ts +22 -0
- package/dist/mcp/admin/tools/catalog/admin.view.update.tool.js +29 -0
- package/dist/mcp/admin/tools/catalog/admin.view.update.tool.js.map +1 -0
- package/dist/mcp/admin/tools/catalog/admin.views.list.tool.d.ts +10 -0
- package/dist/mcp/admin/tools/catalog/admin.views.list.tool.js +20 -0
- package/dist/mcp/admin/tools/catalog/admin.views.list.tool.js.map +1 -0
- package/dist/mcp/admin/tools/catalog/index.d.ts +7 -0
- package/dist/mcp/admin/tools/catalog/index.js +24 -0
- package/dist/mcp/admin/tools/catalog/index.js.map +1 -0
- package/dist/mcp/admin/tools/form_script/form.script.create.tool.js.map +1 -1
- package/dist/mcp/admin/tools/form_script/form.script.list.tool.js.map +1 -1
- package/dist/mcp/admin/tools/form_script/form.script.update.tool.js.map +1 -1
- package/dist/mcp/admin/tools/index.d.ts +1 -0
- package/dist/mcp/admin/tools/index.js +1 -0
- package/dist/mcp/admin/tools/index.js.map +1 -1
- package/dist/mcp/admin/tools/report/report.create.tool.js.map +1 -1
- package/dist/mcp/admin/tools/report/report.update.tool.js.map +1 -1
- package/dist/mcp/auth/mcp.idempotency.store.js +3 -1
- package/dist/mcp/auth/mcp.idempotency.store.js.map +1 -1
- package/dist/mcp/catalog/assert.valid.catalog.d.ts +3 -0
- package/dist/mcp/catalog/assert.valid.catalog.js +2 -0
- package/dist/mcp/catalog/assert.valid.catalog.js.map +1 -1
- package/dist/mcp/es6.classes.d.ts +54 -8
- package/dist/mcp/es6.classes.js +74 -12
- package/dist/mcp/es6.classes.js.map +1 -1
- package/dist/mcp/http/mcp.http.module.js +5 -2
- package/dist/mcp/http/mcp.http.module.js.map +1 -1
- package/dist/mcp/index.d.ts +2 -0
- package/dist/mcp/index.js +2 -0
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/logging/index.d.ts +3 -0
- package/dist/mcp/logging/index.js +20 -0
- package/dist/mcp/logging/index.js.map +1 -0
- package/dist/mcp/logging/mcp.call.log.interceptor.d.ts +16 -0
- package/dist/mcp/logging/mcp.call.log.interceptor.js +140 -0
- package/dist/mcp/logging/mcp.call.log.interceptor.js.map +1 -0
- package/dist/mcp/logging/mcp.call.log.writer.d.ts +11 -0
- package/dist/mcp/logging/mcp.call.log.writer.js +62 -0
- package/dist/mcp/logging/mcp.call.log.writer.js.map +1 -0
- package/dist/mcp/logging/sanitize.mcp.call.log.d.ts +44 -0
- package/dist/mcp/logging/sanitize.mcp.call.log.js +112 -0
- package/dist/mcp/logging/sanitize.mcp.call.log.js.map +1 -0
- package/dist/mcp/mcp.module.d.ts +1 -1
- package/dist/mcp/mcp.module.js.map +1 -1
- package/dist/mcp/mentities/index.d.ts +1 -0
- package/dist/mcp/mentities/index.js +18 -0
- package/dist/mcp/mentities/index.js.map +1 -0
- package/dist/mcp/mentities/mcp.call.log.mentity.d.ts +17 -0
- package/dist/mcp/mentities/mcp.call.log.mentity.js +79 -0
- package/dist/mcp/mentities/mcp.call.log.mentity.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +3 -0
- package/dist/mcp/tools/index.js +3 -0
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/reports.run.tool.js.map +1 -1
- package/dist/mcp/tools/tool.registry.js +4 -21
- package/dist/mcp/tools/tool.registry.js.map +1 -1
- package/dist/mcp/tools/view.describe.tool.d.ts +17 -0
- package/dist/mcp/tools/view.describe.tool.js +23 -0
- package/dist/mcp/tools/view.describe.tool.js.map +1 -0
- package/dist/mcp/tools/view.query.tool.d.ts +75 -0
- package/dist/mcp/tools/view.query.tool.js +51 -0
- package/dist/mcp/tools/view.query.tool.js.map +1 -0
- package/dist/mcp/tools/views.list.tool.d.ts +10 -0
- package/dist/mcp/tools/views.list.tool.js +20 -0
- package/dist/mcp/tools/views.list.tool.js.map +1 -0
- package/package.json +2 -2
- package/dist/accessUtility/types/bulk.upload.item.record.js.map +0 -1
- package/dist/accessUtility/types/index.d.ts +0 -1
- package/dist/accessUtility/types/index.js.map +0 -1
- /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":"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"}
|
|
@@ -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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"}
|
package/dist/mcp/mcp.module.d.ts
CHANGED
|
@@ -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;
|
|
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';
|
package/dist/mcp/tools/index.js
CHANGED
|
@@ -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;
|
|
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
|
|
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 {};
|