@lerianstudio/matcher-mcp 5.0.0-beta.65 → 5.0.0-beta.67
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/auth/request-token.js +11 -69
- package/dist/auth/request-token.js.map +1 -1
- package/dist/config.js +5 -20
- package/dist/config.js.map +1 -1
- package/dist/copilot/agent.js +5 -9
- package/dist/copilot/agent.js.map +1 -1
- package/dist/copilot/provider-anthropic.js +2 -16
- package/dist/copilot/provider-anthropic.js.map +1 -1
- package/dist/copilot/provider-openrouter.js +5 -18
- package/dist/copilot/provider-openrouter.js.map +1 -1
- package/dist/copilot/provider-shared.js +11 -0
- package/dist/copilot/provider-shared.js.map +1 -1
- package/dist/copilot/speech-provider.js +84 -0
- package/dist/copilot/speech-provider.js.map +1 -0
- package/dist/copilot/sse.js +5 -0
- package/dist/copilot/sse.js.map +1 -1
- package/dist/copilot/test_helpers.js +50 -0
- package/dist/copilot/test_helpers.js.map +1 -0
- package/dist/copilot/tools.js +14 -65
- package/dist/copilot/tools.js.map +1 -1
- package/dist/copilot/transcribe-handler.js +8 -93
- package/dist/copilot/transcribe-handler.js.map +1 -1
- package/dist/copilot/turn-request.js +76 -0
- package/dist/copilot/turn-request.js.map +1 -0
- package/dist/copilot/turns-handler.js +11 -102
- package/dist/copilot/turns-handler.js.map +1 -1
- package/dist/observability/otel.js +7 -29
- package/dist/observability/otel.js.map +1 -1
- package/dist/server.js +12 -81
- package/dist/server.js.map +1 -1
- package/dist/spec/enum-policy.js +9 -41
- package/dist/spec/enum-policy.js.map +1 -1
- package/dist/spec/schema-parity.js +4 -18
- package/dist/spec/schema-parity.js.map +1 -1
- package/dist/tools/context/list.js +7 -34
- package/dist/tools/context/list.js.map +1 -1
- package/dist/tools/context/shared.js +3 -29
- package/dist/tools/context/shared.js.map +1 -1
- package/dist/tools/context/update.js +2 -3
- package/dist/tools/context/update.js.map +1 -1
- package/dist/tools/dashboard/aggregates.js +2 -8
- package/dist/tools/dashboard/aggregates.js.map +1 -1
- package/dist/tools/dashboard/cash-impact.js +2 -8
- package/dist/tools/dashboard/cash-impact.js.map +1 -1
- package/dist/tools/dashboard/match-rate.js +2 -8
- package/dist/tools/dashboard/match-rate.js.map +1 -1
- package/dist/tools/dashboard/metrics.js +2 -8
- package/dist/tools/dashboard/metrics.js.map +1 -1
- package/dist/tools/dashboard/shared.js +5 -26
- package/dist/tools/dashboard/shared.js.map +1 -1
- package/dist/tools/dashboard/sla.js +2 -8
- package/dist/tools/dashboard/sla.js.map +1 -1
- package/dist/tools/dashboard/source-breakdown.js +2 -8
- package/dist/tools/dashboard/source-breakdown.js.map +1 -1
- package/dist/tools/dashboard/volume.js +2 -8
- package/dist/tools/dashboard/volume.js.map +1 -1
- package/dist/tools/dispute/close.js +2 -3
- package/dist/tools/dispute/close.js.map +1 -1
- package/dist/tools/dispute/list.js +16 -46
- package/dist/tools/dispute/list.js.map +1 -1
- package/dist/tools/dispute/shared.js +3 -29
- package/dist/tools/dispute/shared.js.map +1 -1
- package/dist/tools/dispute/submit-evidence.js +2 -3
- package/dist/tools/dispute/submit-evidence.js.map +1 -1
- package/dist/tools/exception/adjust-entry.js +2 -3
- package/dist/tools/exception/adjust-entry.js.map +1 -1
- package/dist/tools/exception/history.js +6 -23
- package/dist/tools/exception/history.js.map +1 -1
- package/dist/tools/exception/list.js +9 -53
- package/dist/tools/exception/list.js.map +1 -1
- package/dist/tools/exception/shared.js +3 -29
- package/dist/tools/exception/shared.js.map +1 -1
- package/dist/tools/fee-rule/create.js +2 -3
- package/dist/tools/fee-rule/create.js.map +1 -1
- package/dist/tools/fee-rule/list.js +7 -28
- package/dist/tools/fee-rule/list.js.map +1 -1
- package/dist/tools/fee-rule/shared.js +3 -29
- package/dist/tools/fee-rule/shared.js.map +1 -1
- package/dist/tools/fee-rule/update.js +2 -3
- package/dist/tools/fee-rule/update.js.map +1 -1
- package/dist/tools/fee-schedule/list.js +6 -23
- package/dist/tools/fee-schedule/list.js.map +1 -1
- package/dist/tools/fee-schedule/shared.js +3 -29
- package/dist/tools/fee-schedule/shared.js.map +1 -1
- package/dist/tools/fee-schedule/simulate.js +2 -3
- package/dist/tools/fee-schedule/simulate.js.map +1 -1
- package/dist/tools/fee-schedule/update.js +2 -3
- package/dist/tools/fee-schedule/update.js.map +1 -1
- package/dist/tools/field-map/get.js +2 -5
- package/dist/tools/field-map/get.js.map +1 -1
- package/dist/tools/field-map/list.js +7 -28
- package/dist/tools/field-map/list.js.map +1 -1
- package/dist/tools/field-map/shared.js +3 -29
- package/dist/tools/field-map/shared.js.map +1 -1
- package/dist/tools/generic/invoke.js +4 -26
- package/dist/tools/generic/invoke.js.map +1 -1
- package/dist/tools/ingestion/job-errors-list.js +2 -5
- package/dist/tools/ingestion/job-errors-list.js.map +1 -1
- package/dist/tools/ingestion/job-get.js +2 -5
- package/dist/tools/ingestion/job-get.js.map +1 -1
- package/dist/tools/ingestion/job-transactions-list.js +8 -39
- package/dist/tools/ingestion/job-transactions-list.js.map +1 -1
- package/dist/tools/ingestion/jobs-list.js +7 -34
- package/dist/tools/ingestion/jobs-list.js.map +1 -1
- package/dist/tools/ingestion/shared.js +3 -29
- package/dist/tools/ingestion/shared.js.map +1 -1
- package/dist/tools/ingestion/transaction-ignore.js +2 -5
- package/dist/tools/ingestion/transaction-ignore.js.map +1 -1
- package/dist/tools/ingestion/transactions-search.js +7 -43
- package/dist/tools/ingestion/transactions-search.js.map +1 -1
- package/dist/tools/input-fields.js +36 -0
- package/dist/tools/input-fields.js.map +1 -0
- package/dist/tools/match-rule/delete.js +2 -4
- package/dist/tools/match-rule/delete.js.map +1 -1
- package/dist/tools/match-rule/get.js +2 -4
- package/dist/tools/match-rule/get.js.map +1 -1
- package/dist/tools/match-rule/list.js +7 -31
- package/dist/tools/match-rule/list.js.map +1 -1
- package/dist/tools/match-rule/shared.js +3 -29
- package/dist/tools/match-rule/shared.js.map +1 -1
- package/dist/tools/match-rule/update.js +4 -8
- package/dist/tools/match-rule/update.js.map +1 -1
- package/dist/tools/matching/groups.js +3 -12
- package/dist/tools/matching/groups.js.map +1 -1
- package/dist/tools/matching/list.js +7 -31
- package/dist/tools/matching/list.js.map +1 -1
- package/dist/tools/matching/shared.js +3 -31
- package/dist/tools/matching/shared.js.map +1 -1
- package/dist/tools/query-handler.js +8 -0
- package/dist/tools/query-handler.js.map +1 -0
- package/dist/tools/report/count-exceptions.js +2 -8
- package/dist/tools/report/count-exceptions.js.map +1 -1
- package/dist/tools/report/count-matched.js +2 -8
- package/dist/tools/report/count-matched.js.map +1 -1
- package/dist/tools/report/count-transactions.js +2 -8
- package/dist/tools/report/count-transactions.js.map +1 -1
- package/dist/tools/report/count-unmatched.js +2 -8
- package/dist/tools/report/count-unmatched.js.map +1 -1
- package/dist/tools/report/export-exceptions.js +2 -8
- package/dist/tools/report/export-exceptions.js.map +1 -1
- package/dist/tools/report/export-matched.js +2 -8
- package/dist/tools/report/export-matched.js.map +1 -1
- package/dist/tools/report/export-summary.js +2 -8
- package/dist/tools/report/export-summary.js.map +1 -1
- package/dist/tools/report/export-unmatched.js +2 -8
- package/dist/tools/report/export-unmatched.js.map +1 -1
- package/dist/tools/report/export-variance.js +2 -8
- package/dist/tools/report/export-variance.js.map +1 -1
- package/dist/tools/report/matched.js +2 -8
- package/dist/tools/report/matched.js.map +1 -1
- package/dist/tools/report/shared.js +9 -55
- package/dist/tools/report/shared.js.map +1 -1
- package/dist/tools/report/summary.js +2 -8
- package/dist/tools/report/summary.js.map +1 -1
- package/dist/tools/report/unmatched.js +2 -8
- package/dist/tools/report/unmatched.js.map +1 -1
- package/dist/tools/report/variance.js +2 -8
- package/dist/tools/report/variance.js.map +1 -1
- package/dist/tools/request-fields.js +17 -0
- package/dist/tools/request-fields.js.map +1 -0
- package/dist/tools/shared-dispatch.js +38 -0
- package/dist/tools/shared-dispatch.js.map +1 -0
- package/dist/tools/source/archive.js +2 -5
- package/dist/tools/source/archive.js.map +1 -1
- package/dist/tools/source/create.js +2 -3
- package/dist/tools/source/create.js.map +1 -1
- package/dist/tools/source/get.js +2 -5
- package/dist/tools/source/get.js.map +1 -1
- package/dist/tools/source/list.js +7 -31
- package/dist/tools/source/list.js.map +1 -1
- package/dist/tools/source/restore.js +2 -5
- package/dist/tools/source/restore.js.map +1 -1
- package/dist/tools/source/shared.js +3 -29
- package/dist/tools/source/shared.js.map +1 -1
- package/dist/tools/source/update.js +4 -9
- package/dist/tools/source/update.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-summary.js","sourceRoot":"","sources":["../../../src/tools/report/export-summary.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,mDAAmD;AACnD,EAAE;AACF,sEAAsE;AACtE,8EAA8E;AAC9E,4EAA4E;AAC5E,uEAAuE;AACvE,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,qBAAqB;AAErB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"export-summary.js","sourceRoot":"","sources":["../../../src/tools/report/export-summary.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,mDAAmD;AACnD,EAAE;AACF,sEAAsE;AACtE,8EAA8E;AAC9E,4EAA4E;AAC5E,uEAAuE;AACvE,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,qBAAqB;AAErB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,aAAa,CAAA;AAEpB,0FAA0F;AAC1F,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,0EAA0E;QACxE,iCAAiC,CACpC;IACH,GAAG,sBAAsB;IACzB,GAAG,sBAAsB;CAC1B,CAAA;AAOD;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAAC,MAAiB;IAC/D,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,uEAAuE;YACvE,uEAAuE;YACvE,wEAAwE;YACxE,kEAAkE;YAClE,oEAAoE;YACpE,gEAAgE;YAChE,yEAAyE;YACzE,oBAAoB;QACtB,WAAW,EAAE,uBAAuB;KACrC,EACD,YAAY,CACV,sBAAsB,EACtB,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAC7D,cAAc,CACf,CACF,CAAA;AACH,CAAC"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
// token; contextId is a routing path param, not a tenant field, and no tenant
|
|
11
11
|
// field is accepted.
|
|
12
12
|
import { z } from 'zod';
|
|
13
|
+
import { queryHandler } from '../query-handler.js';
|
|
13
14
|
import { buildReportExportQuery, contextReportPath, dispatchReport, reportFilterInputShape, reportFormatInputShape, } from './shared.js';
|
|
14
15
|
/** Zod raw shape for `report_export_unmatched` input — contextId path + filter + format. */
|
|
15
16
|
export const exportUnmatchedInputShape = {
|
|
@@ -37,13 +38,6 @@ export function registerReportExportUnmatchedTool(server) {
|
|
|
37
38
|
'a base64-encoded string — decode it to recover the file bytes. No ' +
|
|
38
39
|
'tenant field is accepted.',
|
|
39
40
|
inputSchema: exportUnmatchedInputShape,
|
|
40
|
-
},
|
|
41
|
-
const query = buildReportExportQuery(args);
|
|
42
|
-
return dispatchReport({
|
|
43
|
-
method: 'GET',
|
|
44
|
-
path: contextReportPath(args.contextId, 'unmatched/export'),
|
|
45
|
-
...(query !== undefined ? { query } : {}),
|
|
46
|
-
}, extra);
|
|
47
|
-
});
|
|
41
|
+
}, queryHandler(buildReportExportQuery, (args) => contextReportPath(args.contextId, 'unmatched/export'), dispatchReport));
|
|
48
42
|
}
|
|
49
43
|
//# sourceMappingURL=export-unmatched.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-unmatched.js","sourceRoot":"","sources":["../../../src/tools/report/export-unmatched.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,qDAAqD;AACrD,EAAE;AACF,sEAAsE;AACtE,8EAA8E;AAC9E,4EAA4E;AAC5E,uEAAuE;AACvE,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,qBAAqB;AAErB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"export-unmatched.js","sourceRoot":"","sources":["../../../src/tools/report/export-unmatched.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,qDAAqD;AACrD,EAAE;AACF,sEAAsE;AACtE,8EAA8E;AAC9E,4EAA4E;AAC5E,uEAAuE;AACvE,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,qBAAqB;AAErB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,aAAa,CAAA;AAEpB,4FAA4F;AAC5F,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,uEAAuE;QACrE,iDAAiD,CACpD;IACH,GAAG,sBAAsB;IACzB,GAAG,sBAAsB;CAC1B,CAAA;AAOD;;;;GAIG;AACH,MAAM,UAAU,iCAAiC,CAAC,MAAiB;IACjE,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,WAAW,EACT,uEAAuE;YACvE,uEAAuE;YACvE,wEAAwE;YACxE,kEAAkE;YAClE,qEAAqE;YACrE,wEAAwE;YACxE,oEAAoE;YACpE,2BAA2B;QAC7B,WAAW,EAAE,yBAAyB;KACvC,EACD,YAAY,CACV,sBAAsB,EACtB,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAC/D,cAAc,CACf,CACF,CAAA;AACH,CAAC"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
// The export is implicitly tenant-scoped by the relayed token; contextId is a
|
|
10
10
|
// routing path param, not a tenant field, and no tenant field is accepted.
|
|
11
11
|
import { z } from 'zod';
|
|
12
|
+
import { queryHandler } from '../query-handler.js';
|
|
12
13
|
import { buildReportExportQuery, contextReportPath, dispatchReport, reportFilterInputShape, reportFormatInputShape, } from './shared.js';
|
|
13
14
|
/** Zod raw shape for `report_export_variance` input — contextId path + filter + format. */
|
|
14
15
|
export const exportVarianceInputShape = {
|
|
@@ -36,13 +37,6 @@ export function registerReportExportVarianceTool(server) {
|
|
|
36
37
|
'base64-encoded string — decode it to recover the file bytes. No tenant ' +
|
|
37
38
|
'field is accepted.',
|
|
38
39
|
inputSchema: exportVarianceInputShape,
|
|
39
|
-
},
|
|
40
|
-
const query = buildReportExportQuery(args);
|
|
41
|
-
return dispatchReport({
|
|
42
|
-
method: 'GET',
|
|
43
|
-
path: contextReportPath(args.contextId, 'variance/export'),
|
|
44
|
-
...(query !== undefined ? { query } : {}),
|
|
45
|
-
}, extra);
|
|
46
|
-
});
|
|
40
|
+
}, queryHandler(buildReportExportQuery, (args) => contextReportPath(args.contextId, 'variance/export'), dispatchReport));
|
|
47
41
|
}
|
|
48
42
|
//# sourceMappingURL=export-variance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-variance.js","sourceRoot":"","sources":["../../../src/tools/report/export-variance.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oDAAoD;AACpD,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,2EAA2E;AAC3E,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,2EAA2E;AAE3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"export-variance.js","sourceRoot":"","sources":["../../../src/tools/report/export-variance.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oDAAoD;AACpD,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,2EAA2E;AAC3E,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,2EAA2E;AAE3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,aAAa,CAAA;AAEpB,2FAA2F;AAC3F,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,sEAAsE;QACpE,yCAAyC,CAC5C;IACH,GAAG,sBAAsB;IACzB,GAAG,sBAAsB;CAC1B,CAAA;AAOD;;;;GAIG;AACH,MAAM,UAAU,gCAAgC,CAAC,MAAiB;IAChE,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,WAAW,EACT,kEAAkE;YAClE,uEAAuE;YACvE,wEAAwE;YACxE,kEAAkE;YAClE,oEAAoE;YACpE,gEAAgE;YAChE,yEAAyE;YACzE,oBAAoB;QACtB,WAAW,EAAE,wBAAwB;KACtC,EACD,YAAY,CACV,sBAAsB,EACtB,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAC9D,cAAc,CACf,CACF,CAAA;AACH,CAAC"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
// tenant-scoped by the relayed token; contextId is a routing path param, not a
|
|
9
9
|
// tenant field, and no tenant field is accepted.
|
|
10
10
|
import { z } from 'zod';
|
|
11
|
+
import { queryHandler } from '../query-handler.js';
|
|
11
12
|
import { buildReportPaginatedQuery, contextReportPath, dispatchReport, reportFilterInputShape, reportPaginationInputShape, } from './shared.js';
|
|
12
13
|
/** Zod raw shape for `report_matched` input — contextId path + filter + pagination. */
|
|
13
14
|
export const matchedReportInputShape = {
|
|
@@ -36,13 +37,6 @@ export function registerReportMatchedTool(server) {
|
|
|
36
37
|
'with cursor set to the returned pagination.next (empty when exhausted). ' +
|
|
37
38
|
'No tenant field is accepted.',
|
|
38
39
|
inputSchema: matchedReportInputShape,
|
|
39
|
-
},
|
|
40
|
-
const query = buildReportPaginatedQuery(args);
|
|
41
|
-
return dispatchReport({
|
|
42
|
-
method: 'GET',
|
|
43
|
-
path: contextReportPath(args.contextId, 'matched'),
|
|
44
|
-
...(query !== undefined ? { query } : {}),
|
|
45
|
-
}, extra);
|
|
46
|
-
});
|
|
40
|
+
}, queryHandler(buildReportPaginatedQuery, (args) => contextReportPath(args.contextId, 'matched'), dispatchReport));
|
|
47
41
|
}
|
|
48
42
|
//# sourceMappingURL=matched.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matched.js","sourceRoot":"","sources":["../../../src/tools/report/matched.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,4EAA4E;AAC5E,iFAAiF;AACjF,wEAAwE;AACxE,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAC/E,iDAAiD;AAEjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"matched.js","sourceRoot":"","sources":["../../../src/tools/report/matched.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,4EAA4E;AAC5E,iFAAiF;AACjF,wEAAwE;AACxE,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAC/E,iDAAiD;AAEjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,aAAa,CAAA;AAEpB,uFAAuF;AACvF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,qEAAqE;QACnE,iDAAiD,CACpD;IACH,GAAG,sBAAsB;IACzB,GAAG,0BAA0B;CAC9B,CAAA;AAOD;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,+DAA+D;YAC/D,qEAAqE;YACrE,oEAAoE;YACpE,wEAAwE;YACxE,yEAAyE;YACzE,oEAAoE;YACpE,yEAAyE;YACzE,0EAA0E;YAC1E,8BAA8B;QAChC,WAAW,EAAE,uBAAuB;KACrC,EACD,YAAY,CACV,yBAAyB,EACzB,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EACtD,cAAc,CACf,CACF,CAAA;AACH,CAAC"}
|
|
@@ -31,7 +31,9 @@
|
|
|
31
31
|
// out explicitly so a model reads the warning before it reports a windowed
|
|
32
32
|
// number as the whole reconciliation result.
|
|
33
33
|
import { z } from 'zod';
|
|
34
|
+
import { pageLimit, reportDateFrom, reportDateTo } from '../input-fields.js';
|
|
34
35
|
import { requireMatcherClient, UnauthenticatedError, } from '../../auth/request-token.js';
|
|
36
|
+
import { pickQuery } from '../request-fields.js';
|
|
35
37
|
import { isMatcherApiError, toToolError } from '../tool-error.js';
|
|
36
38
|
/** Sort-order enum shared by the paginated report ops (created_at asc|desc). */
|
|
37
39
|
export const REPORT_SORT_ORDERS = ['asc', 'desc'];
|
|
@@ -53,21 +55,8 @@ export function contextReportPath(contextId, suffix) {
|
|
|
53
55
|
* what is unique to that op. No tenant field — matcher scopes to the token.
|
|
54
56
|
*/
|
|
55
57
|
export const reportFilterInputShape = {
|
|
56
|
-
date_from:
|
|
57
|
-
|
|
58
|
-
.optional()
|
|
59
|
-
.describe('Start date (YYYY-MM-DD), inclusive. Optional — if omitted (with ' +
|
|
60
|
-
'date_to), matcher defaults to the last ~30 days, SILENTLY EXCLUDING ' +
|
|
61
|
-
'everything older. A windowed result is NOT "the reconciliation ' +
|
|
62
|
-
'result" — for a complete picture, pass an explicit date_from/date_to ' +
|
|
63
|
-
'(max 90-day span).'),
|
|
64
|
-
date_to: z
|
|
65
|
-
.string()
|
|
66
|
-
.optional()
|
|
67
|
-
.describe('End date (YYYY-MM-DD), inclusive. Optional — if omitted, matcher ' +
|
|
68
|
-
'defaults to tomorrow (UTC). Combined with an omitted date_from this ' +
|
|
69
|
-
'silently clips the window to the last ~30 days; pass an explicit ' +
|
|
70
|
-
'date_from/date_to (max 90-day span) for the full picture.'),
|
|
58
|
+
date_from: reportDateFrom,
|
|
59
|
+
date_to: reportDateTo,
|
|
71
60
|
source_id: z
|
|
72
61
|
.string()
|
|
73
62
|
.optional()
|
|
@@ -80,13 +69,7 @@ export const reportPaginationInputShape = {
|
|
|
80
69
|
.optional()
|
|
81
70
|
.describe('Opaque pagination cursor from a prior response. Re-call with the ' +
|
|
82
71
|
'returned pagination.next to page forward (there is no auto-pagination).'),
|
|
83
|
-
limit:
|
|
84
|
-
.number()
|
|
85
|
-
.int()
|
|
86
|
-
.min(1)
|
|
87
|
-
.max(200)
|
|
88
|
-
.optional()
|
|
89
|
-
.describe('Maximum number of records to return (1–200, default 20).'),
|
|
72
|
+
limit: pageLimit,
|
|
90
73
|
sort_order: z
|
|
91
74
|
.enum(REPORT_SORT_ORDERS)
|
|
92
75
|
.optional()
|
|
@@ -99,56 +82,27 @@ export const reportFormatInputShape = {
|
|
|
99
82
|
.optional()
|
|
100
83
|
.describe('Export format (csv|pdf, default csv).'),
|
|
101
84
|
};
|
|
102
|
-
|
|
103
|
-
function appendReportFilter(query, args) {
|
|
104
|
-
if (args.date_from !== undefined) {
|
|
105
|
-
query.date_from = args.date_from;
|
|
106
|
-
}
|
|
107
|
-
if (args.date_to !== undefined) {
|
|
108
|
-
query.date_to = args.date_to;
|
|
109
|
-
}
|
|
110
|
-
if (args.source_id !== undefined) {
|
|
111
|
-
query.source_id = args.source_id;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
85
|
+
const REPORT_FILTER_KEYS = ['date_from', 'date_to', 'source_id'];
|
|
114
86
|
/**
|
|
115
87
|
* Build the query for a count or summary op: the date filter only. Returns
|
|
116
88
|
* undefined when nothing is set so the request URL stays bare.
|
|
117
89
|
*/
|
|
118
90
|
export function buildReportFilterQuery(args) {
|
|
119
|
-
|
|
120
|
-
appendReportFilter(query, args);
|
|
121
|
-
return Object.keys(query).length > 0 ? query : undefined;
|
|
91
|
+
return pickQuery(args, REPORT_FILTER_KEYS);
|
|
122
92
|
}
|
|
123
93
|
/**
|
|
124
94
|
* Build the query for a paginated "get report" op: the date filter plus
|
|
125
95
|
* cursor/limit/sort_order. Returns undefined when nothing is set.
|
|
126
96
|
*/
|
|
127
97
|
export function buildReportPaginatedQuery(args) {
|
|
128
|
-
|
|
129
|
-
appendReportFilter(query, args);
|
|
130
|
-
if (args.cursor !== undefined) {
|
|
131
|
-
query.cursor = args.cursor;
|
|
132
|
-
}
|
|
133
|
-
if (args.limit !== undefined) {
|
|
134
|
-
query.limit = args.limit;
|
|
135
|
-
}
|
|
136
|
-
if (args.sort_order !== undefined) {
|
|
137
|
-
query.sort_order = args.sort_order;
|
|
138
|
-
}
|
|
139
|
-
return Object.keys(query).length > 0 ? query : undefined;
|
|
98
|
+
return pickQuery(args, [...REPORT_FILTER_KEYS, 'cursor', 'limit', 'sort_order']);
|
|
140
99
|
}
|
|
141
100
|
/**
|
|
142
101
|
* Build the query for an export op: the date filter plus the csv|pdf format.
|
|
143
102
|
* Returns undefined when nothing is set.
|
|
144
103
|
*/
|
|
145
104
|
export function buildReportExportQuery(args) {
|
|
146
|
-
|
|
147
|
-
appendReportFilter(query, args);
|
|
148
|
-
if (args.format !== undefined) {
|
|
149
|
-
query.format = args.format;
|
|
150
|
-
}
|
|
151
|
-
return Object.keys(query).length > 0 ? query : undefined;
|
|
105
|
+
return pickQuery(args, [...REPORT_FILTER_KEYS, 'format']);
|
|
152
106
|
}
|
|
153
107
|
/**
|
|
154
108
|
* Run one assembled request through the relay: fail-closed auth, dispatch, and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/tools/report/shared.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,8EAA8E;AAC9E,8EAA8E;AAC9E,gFAAgF;AAChF,iFAAiF;AACjF,gBAAgB;AAChB,4EAA4E;AAC5E,gFAAgF;AAChF,8CAA8C;AAC9C,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,6EAA6E;AAC7E,+EAA+E;AAC/E,2EAA2E;AAC3E,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,2EAA2E;AAC3E,sEAAsE;AACtE,2EAA2E;AAC3E,yCAAyC;AACzC,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,2EAA2E;AAC3E,6CAA6C;AAE7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/tools/report/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
// tenant-scoped by the relayed token; contextId is a routing path param, not a
|
|
7
7
|
// tenant field, and no tenant field is accepted.
|
|
8
8
|
import { z } from 'zod';
|
|
9
|
+
import { queryHandler } from '../query-handler.js';
|
|
9
10
|
import { buildReportFilterQuery, contextReportPath, dispatchReport, reportFilterInputShape, } from './shared.js';
|
|
10
11
|
/** Zod raw shape for `report_summary` input — contextId path + date filter. */
|
|
11
12
|
export const summaryReportInputShape = {
|
|
@@ -31,13 +32,6 @@ export function registerReportSummaryTool(server) {
|
|
|
31
32
|
'Returns the summary totals, or a structured RFC 9457 error. No tenant ' +
|
|
32
33
|
'field is accepted.',
|
|
33
34
|
inputSchema: summaryReportInputShape,
|
|
34
|
-
},
|
|
35
|
-
const query = buildReportFilterQuery(args);
|
|
36
|
-
return dispatchReport({
|
|
37
|
-
method: 'GET',
|
|
38
|
-
path: contextReportPath(args.contextId, 'summary'),
|
|
39
|
-
...(query !== undefined ? { query } : {}),
|
|
40
|
-
}, extra);
|
|
41
|
-
});
|
|
35
|
+
}, queryHandler(buildReportFilterQuery, (args) => contextReportPath(args.contextId, 'summary'), dispatchReport));
|
|
42
36
|
}
|
|
43
37
|
//# sourceMappingURL=summary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/tools/report/summary.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,0EAA0E;AAC1E,+EAA+E;AAC/E,iDAAiD;AAEjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/tools/report/summary.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,0EAA0E;AAC1E,+EAA+E;AAC/E,iDAAiD;AAEjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,GACvB,MAAM,aAAa,CAAA;AAEpB,+EAA+E;AAC/E,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,yEAAyE;QACvE,qBAAqB,CACxB;IACH,GAAG,sBAAsB;CAC1B,CAAA;AAOD;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,wEAAwE;YACxE,wEAAwE;YACxE,qEAAqE;YACrE,qEAAqE;YACrE,mEAAmE;YACnE,wEAAwE;YACxE,oBAAoB;QACtB,WAAW,EAAE,uBAAuB;KACrC,EACD,YAAY,CACV,sBAAsB,EACtB,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EACtD,cAAc,CACf,CACF,CAAA;AACH,CAAC"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
// tenant-scoped by the relayed token; contextId is a routing path param, not a
|
|
9
9
|
// tenant field, and no tenant field is accepted.
|
|
10
10
|
import { z } from 'zod';
|
|
11
|
+
import { queryHandler } from '../query-handler.js';
|
|
11
12
|
import { buildReportPaginatedQuery, contextReportPath, dispatchReport, reportFilterInputShape, reportPaginationInputShape, } from './shared.js';
|
|
12
13
|
/** Zod raw shape for `report_unmatched` input — contextId path + filter + pagination. */
|
|
13
14
|
export const unmatchedReportInputShape = {
|
|
@@ -36,13 +37,6 @@ export function registerReportUnmatchedTool(server) {
|
|
|
36
37
|
're-calling with cursor set to the returned pagination.next (empty when ' +
|
|
37
38
|
'exhausted). No tenant field is accepted.',
|
|
38
39
|
inputSchema: unmatchedReportInputShape,
|
|
39
|
-
},
|
|
40
|
-
const query = buildReportPaginatedQuery(args);
|
|
41
|
-
return dispatchReport({
|
|
42
|
-
method: 'GET',
|
|
43
|
-
path: contextReportPath(args.contextId, 'unmatched'),
|
|
44
|
-
...(query !== undefined ? { query } : {}),
|
|
45
|
-
}, extra);
|
|
46
|
-
});
|
|
40
|
+
}, queryHandler(buildReportPaginatedQuery, (args) => contextReportPath(args.contextId, 'unmatched'), dispatchReport));
|
|
47
41
|
}
|
|
48
42
|
//# sourceMappingURL=unmatched.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unmatched.js","sourceRoot":"","sources":["../../../src/tools/report/unmatched.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,wEAAwE;AACxE,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAC/E,iDAAiD;AAEjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"unmatched.js","sourceRoot":"","sources":["../../../src/tools/report/unmatched.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,wEAAwE;AACxE,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAC/E,iDAAiD;AAEjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,aAAa,CAAA;AAEpB,yFAAyF;AACzF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,uEAAuE;QACrE,iDAAiD,CACpD;IACH,GAAG,sBAAsB;IACzB,GAAG,0BAA0B;CAC9B,CAAA;AAOD;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAiB;IAC3D,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,iEAAiE;YACjE,qEAAqE;YACrE,oEAAoE;YACpE,wEAAwE;YACxE,sEAAsE;YACtE,sEAAsE;YACtE,uEAAuE;YACvE,yEAAyE;YACzE,0CAA0C;QAC5C,WAAW,EAAE,yBAAyB;KACvC,EACD,YAAY,CACV,yBAAyB,EACzB,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EACxD,cAAc,CACf,CACF,CAAA;AACH,CAAC"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
// tenant-scoped by the relayed token; contextId is a routing path param, not a
|
|
9
9
|
// tenant field, and no tenant field is accepted.
|
|
10
10
|
import { z } from 'zod';
|
|
11
|
+
import { queryHandler } from '../query-handler.js';
|
|
11
12
|
import { buildReportPaginatedQuery, contextReportPath, dispatchReport, reportFilterInputShape, reportPaginationInputShape, } from './shared.js';
|
|
12
13
|
/** Zod raw shape for `report_variance` input — contextId path + filter + pagination. */
|
|
13
14
|
export const varianceReportInputShape = {
|
|
@@ -36,13 +37,6 @@ export function registerReportVarianceTool(server) {
|
|
|
36
37
|
'with cursor set to the returned pagination.next (empty when exhausted). ' +
|
|
37
38
|
'No tenant field is accepted.',
|
|
38
39
|
inputSchema: varianceReportInputShape,
|
|
39
|
-
},
|
|
40
|
-
const query = buildReportPaginatedQuery(args);
|
|
41
|
-
return dispatchReport({
|
|
42
|
-
method: 'GET',
|
|
43
|
-
path: contextReportPath(args.contextId, 'variance'),
|
|
44
|
-
...(query !== undefined ? { query } : {}),
|
|
45
|
-
}, extra);
|
|
46
|
-
});
|
|
40
|
+
}, queryHandler(buildReportPaginatedQuery, (args) => contextReportPath(args.contextId, 'variance'), dispatchReport));
|
|
47
41
|
}
|
|
48
42
|
//# sourceMappingURL=variance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variance.js","sourceRoot":"","sources":["../../../src/tools/report/variance.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,4EAA4E;AAC5E,iFAAiF;AACjF,wEAAwE;AACxE,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAC/E,iDAAiD;AAEjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"variance.js","sourceRoot":"","sources":["../../../src/tools/report/variance.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,4EAA4E;AAC5E,iFAAiF;AACjF,wEAAwE;AACxE,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAC/E,iDAAiD;AAEjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,aAAa,CAAA;AAEpB,wFAAwF;AACxF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,sEAAsE;QACpE,yCAAyC,CAC5C;IACH,GAAG,sBAAsB;IACzB,GAAG,0BAA0B;CAC9B,CAAA;AAOD;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,+DAA+D;YAC/D,qEAAqE;YACrE,oEAAoE;YACpE,wEAAwE;YACxE,sEAAsE;YACtE,oEAAoE;YACpE,yEAAyE;YACzE,0EAA0E;YAC1E,8BAA8B;QAChC,WAAW,EAAE,wBAAwB;KACtC,EACD,YAAY,CACV,yBAAyB,EACzB,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EACvD,cAAc,CACf,CACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Omit only unset knobs; keep zero and empty strings for Matcher to validate. */
|
|
2
|
+
export function optionalQuery(fields) {
|
|
3
|
+
const entries = Object.entries(fields).filter(([, value]) => value !== undefined);
|
|
4
|
+
return entries.length > 0 ? Object.fromEntries(entries) : undefined;
|
|
5
|
+
}
|
|
6
|
+
/** Explicit allowlist: routing ids and other input fields never leak into queries. */
|
|
7
|
+
export function pickQuery(args, keys) {
|
|
8
|
+
return optionalQuery(Object.fromEntries(keys.map((key) => [key, args[key]])));
|
|
9
|
+
}
|
|
10
|
+
/** Preserve object-rest body semantics, including explicit undefined and null. */
|
|
11
|
+
export function bodyWithout(args, keys) {
|
|
12
|
+
const body = { ...args };
|
|
13
|
+
for (const key of keys)
|
|
14
|
+
delete body[key];
|
|
15
|
+
return body;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=request-fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-fields.js","sourceRoot":"","sources":["../../src/tools/request-fields.ts"],"names":[],"mappings":"AAIA,kFAAkF;AAClF,MAAM,UAAU,aAAa,CAC3B,MAAkC;IAElC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAA;IACjF,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACrE,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,SAAS,CACvB,IAAsC,EACtC,IAAoB;IAEpB,OAAO,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/E,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,WAAW,CACzB,IAAU,EACV,IAAoB;IAEpB,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,CAAA;IACxB,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;IACxC,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Shared execution for curated tool families and the generic invoker.
|
|
2
|
+
//
|
|
3
|
+
// Curated families and the generic invoker all use the same relay contract:
|
|
4
|
+
// resolve the request-scoped client, fail closed without a bearer credential,
|
|
5
|
+
// return JSON on success, and preserve MatcherApiError details as structured
|
|
6
|
+
// tool output. A caller may provide a result transform for tools whose product
|
|
7
|
+
// contract projects the Matcher response (for example, matching rule stats).
|
|
8
|
+
import { requireMatcherClient, UnauthenticatedError, } from '../auth/request-token.js';
|
|
9
|
+
import { isMatcherApiError, toToolError } from './tool-error.js';
|
|
10
|
+
/**
|
|
11
|
+
* Run one assembled request through the fail-closed relay and common tool
|
|
12
|
+
* result mapping. The optional transform is applied only after a successful
|
|
13
|
+
* Matcher response; errors always retain the shared structured shape.
|
|
14
|
+
*/
|
|
15
|
+
export async function dispatchToolRequest(request, extra, clientFor = requireMatcherClient, transform) {
|
|
16
|
+
let client;
|
|
17
|
+
try {
|
|
18
|
+
client = clientFor(extra);
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
if (err instanceof UnauthenticatedError) {
|
|
22
|
+
return { isError: true, content: [{ type: 'text', text: err.message }] };
|
|
23
|
+
}
|
|
24
|
+
throw err;
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
const result = await client.request(request);
|
|
28
|
+
const output = transform ? transform(result) : result;
|
|
29
|
+
return { content: [{ type: 'text', text: JSON.stringify(output ?? null) }] };
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
if (isMatcherApiError(err)) {
|
|
33
|
+
return toToolError(err);
|
|
34
|
+
}
|
|
35
|
+
throw err;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=shared-dispatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-dispatch.js","sourceRoot":"","sources":["../../src/tools/shared-dispatch.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;AAG7E,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GAErB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAQhE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAuB,EACvB,KAAmC,EACnC,YAAkC,oBAAoB,EACtD,SAA+B;IAE/B,IAAI,MAAqB,CAAA;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,oBAAoB,EAAE,CAAC;YACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAA;QAC1E,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QACrD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,CAAA;IAC9E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
|
|
@@ -7,14 +7,11 @@
|
|
|
7
7
|
// reusing an archived name in the context). Both contextId and sourceId are
|
|
8
8
|
// path params; no tenant field is accepted.
|
|
9
9
|
import { z } from 'zod';
|
|
10
|
+
import { contextRoutingId } from '../input-fields.js';
|
|
10
11
|
import { contextSourcePath, dispatchSource } from './shared.js';
|
|
11
12
|
/** Zod raw shape for `source_archive` input — both path ids. */
|
|
12
13
|
export const archiveSourceInputShape = {
|
|
13
|
-
contextId:
|
|
14
|
-
.string()
|
|
15
|
-
.min(1)
|
|
16
|
-
.describe('The reconciliation context id (UUID). Routing path param, not a tenant ' +
|
|
17
|
-
'field.'),
|
|
14
|
+
contextId: contextRoutingId,
|
|
18
15
|
sourceId: z
|
|
19
16
|
.string()
|
|
20
17
|
.min(1)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/tools/source/archive.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,EAAE;AACF,gFAAgF;AAChF,2EAA2E;AAC3E,6EAA6E;AAC7E,8EAA8E;AAC9E,4EAA4E;AAC5E,4CAA4C;AAE5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/tools/source/archive.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,EAAE;AACF,gFAAgF;AAChF,2EAA2E;AAC3E,6EAA6E;AAC7E,8EAA8E;AAC9E,4EAA4E;AAC5E,4CAA4C;AAE5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAIrD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE/D,gEAAgE;AAChE,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,SAAS,EAAE,gBAAgB;IAC3B,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,iDAAiD,CAAC;CAC/D,CAAA;AAOD;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,sEAAsE;YACtE,qEAAqE;YACrE,wEAAwE;YACxE,uEAAuE;YACvE,yEAAyE;YACzE,yEAAyE;YACzE,yEAAyE;YACzE,8BAA8B;QAChC,WAAW,EAAE,uBAAuB;KACrC,EACD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACpB,OAAO,cAAc,CACnB;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;SACpE,EACD,KAAK,CACN,CAAA;IACH,CAAC,CACF,CAAA;AACH,CAAC"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
// relayed token's tenant), NOT a tenant field. No tenant field exists in the
|
|
12
12
|
// schema: the source is created for the tenant of the relayed bearer token.
|
|
13
13
|
import { z } from 'zod';
|
|
14
|
+
import { bodyWithout } from '../request-fields.js';
|
|
14
15
|
import { contextSourcesPath, dispatchSource } from './shared.js';
|
|
15
16
|
/** Origin of the source data (LEDGER ledger / BANK feed / GATEWAY / CUSTOM / FETCHER pull). */
|
|
16
17
|
export const SOURCE_TYPES = [
|
|
@@ -193,9 +194,7 @@ export const createSourceInputShape = {
|
|
|
193
194
|
* CreateSourceRequest fields are sent; contextId travels in the path.
|
|
194
195
|
*/
|
|
195
196
|
export function buildCreateBody(args) {
|
|
196
|
-
|
|
197
|
-
void _contextId;
|
|
198
|
-
return body;
|
|
197
|
+
return bodyWithout(args, ['contextId']);
|
|
199
198
|
}
|
|
200
199
|
/**
|
|
201
200
|
* Register `source_create`. Substitutes contextId into the path, builds the body
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/tools/source/create.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,iFAAiF;AACjF,iFAAiF;AACjF,iFAAiF;AACjF,6EAA6E;AAC7E,gFAAgF;AAChF,mBAAmB;AACnB,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAE5E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/tools/source/create.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/source/get.js
CHANGED
|
@@ -12,14 +12,11 @@
|
|
|
12
12
|
// deduplicated under which key. Both live in the returned `config`, so the tool
|
|
13
13
|
// description names them; the input shape stays the two path ids.
|
|
14
14
|
import { z } from 'zod';
|
|
15
|
+
import { contextRoutingId } from '../input-fields.js';
|
|
15
16
|
import { contextSourcePath, dispatchSource } from './shared.js';
|
|
16
17
|
/** Zod raw shape for `source_get` input — both path ids. */
|
|
17
18
|
export const getSourceInputShape = {
|
|
18
|
-
contextId:
|
|
19
|
-
.string()
|
|
20
|
-
.min(1)
|
|
21
|
-
.describe('The reconciliation context id (UUID). Routing path param, not a tenant ' +
|
|
22
|
-
'field.'),
|
|
19
|
+
contextId: contextRoutingId,
|
|
23
20
|
sourceId: z
|
|
24
21
|
.string()
|
|
25
22
|
.min(1)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/tools/source/get.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,+DAA+D;AAC/D,EAAE;AACF,iFAAiF;AACjF,8EAA8E;AAC9E,0EAA0E;AAC1E,6EAA6E;AAC7E,gFAAgF;AAChF,kEAAkE;AAElE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/tools/source/get.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,+DAA+D;AAC/D,EAAE;AACF,iFAAiF;AACjF,8EAA8E;AAC9E,0EAA0E;AAC1E,6EAA6E;AAC7E,gFAAgF;AAChF,kEAAkE;AAElE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAIrD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE/D,4DAA4D;AAC5D,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,SAAS,EAAE,gBAAgB;IAC3B,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,+CAA+C,CAAC;CAC7D,CAAA;AAKD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,WAAW,EACT,sEAAsE;YACtE,uEAAuE;YACvE,wEAAwE;YACxE,sEAAsE;YACtE,uEAAuE;YACvE,yEAAyE;YACzE,yDAAyD;YACzD,6DAA6D;YAC7D,sEAAsE;YACtE,uEAAuE;YACvE,8DAA8D;YAC9D,mEAAmE;YACnE,0DAA0D;YAC1D,wDAAwD;QAC1D,WAAW,EAAE,mBAAmB;KACjC,EACD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACpB,OAAO,cAAc,CACnB;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC;SACvD,EACD,KAAK,CACN,CAAA;IACH,CAAC,CACF,CAAA;AACH,CAAC"}
|
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
// tenant-scoped by the relayed token; contextId is a routing path param, not a
|
|
8
8
|
// tenant field, and no tenant field is accepted.
|
|
9
9
|
import { z } from 'zod';
|
|
10
|
+
import { nextCursor, pageLimit } from '../input-fields.js';
|
|
11
|
+
import { queryHandler } from '../query-handler.js';
|
|
12
|
+
import { pickQuery } from '../request-fields.js';
|
|
10
13
|
import { SOURCE_TYPES } from './create.js';
|
|
11
14
|
import { contextSourcesPath, dispatchSource } from './shared.js';
|
|
12
15
|
/** Zod raw shape for `source_list` input — contextId path + type filter + pagination. */
|
|
@@ -20,32 +23,12 @@ export const listSourcesInputShape = {
|
|
|
20
23
|
.enum(SOURCE_TYPES)
|
|
21
24
|
.optional()
|
|
22
25
|
.describe('Optional filter by source type (LEDGER|BANK|GATEWAY|CUSTOM|FETCHER).'),
|
|
23
|
-
limit:
|
|
24
|
-
|
|
25
|
-
.int()
|
|
26
|
-
.min(1)
|
|
27
|
-
.max(200)
|
|
28
|
-
.optional()
|
|
29
|
-
.describe('Maximum number of records to return (1–200, default 20).'),
|
|
30
|
-
cursor: z
|
|
31
|
-
.string()
|
|
32
|
-
.optional()
|
|
33
|
-
.describe('Opaque pagination cursor from a prior response. Re-call with the ' +
|
|
34
|
-
'returned nextCursor to page forward (there is no auto-pagination).'),
|
|
26
|
+
limit: pageLimit,
|
|
27
|
+
cursor: nextCursor,
|
|
35
28
|
};
|
|
36
29
|
/** Build the list query, omitting unset knobs so the request stays minimal. */
|
|
37
30
|
function buildListQuery(args) {
|
|
38
|
-
|
|
39
|
-
if (args.type !== undefined) {
|
|
40
|
-
query.type = args.type;
|
|
41
|
-
}
|
|
42
|
-
if (args.limit !== undefined) {
|
|
43
|
-
query.limit = args.limit;
|
|
44
|
-
}
|
|
45
|
-
if (args.cursor !== undefined) {
|
|
46
|
-
query.cursor = args.cursor;
|
|
47
|
-
}
|
|
48
|
-
return Object.keys(query).length > 0 ? query : undefined;
|
|
31
|
+
return pickQuery(args, ['type', 'limit', 'cursor']);
|
|
49
32
|
}
|
|
50
33
|
/**
|
|
51
34
|
* Register `source_list`. Passes type/limit/cursor through and returns matcher's
|
|
@@ -60,13 +43,6 @@ export function registerSourceListTool(server) {
|
|
|
60
43
|
'The response carries { items, nextCursor } — paginate by re-calling ' +
|
|
61
44
|
'with the returned nextCursor. No tenant field is accepted.',
|
|
62
45
|
inputSchema: listSourcesInputShape,
|
|
63
|
-
},
|
|
64
|
-
const query = buildListQuery(args);
|
|
65
|
-
return dispatchSource({
|
|
66
|
-
method: 'GET',
|
|
67
|
-
path: contextSourcesPath(args.contextId),
|
|
68
|
-
...(query !== undefined ? { query } : {}),
|
|
69
|
-
}, extra);
|
|
70
|
-
});
|
|
46
|
+
}, queryHandler(buildListQuery, (args) => contextSourcesPath(args.contextId), dispatchSource));
|
|
71
47
|
}
|
|
72
48
|
//# sourceMappingURL=list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/tools/source/list.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,6EAA6E;AAC7E,wEAAwE;AACxE,+EAA+E;AAC/E,iDAAiD;AAEjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/tools/source/list.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,6EAA6E;AAC7E,wEAAwE;AACxE,+EAA+E;AAC/E,iDAAiD;AAEjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEhE,yFAAyF;AACzF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,2EAA2E;QACzE,4BAA4B,CAC/B;IACH,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,YAAY,CAAC;SAClB,QAAQ,EAAE;SACV,QAAQ,CACP,sEAAsE,CACvE;IACH,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,UAAU;CACnB,CAAA;AAKD,+EAA+E;AAC/E,SAAS,cAAc,CAAC,IAAsB;IAC5C,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,WAAW,EACT,sEAAsE;YACtE,wEAAwE;YACxE,2EAA2E;YAC3E,sEAAsE;YACtE,4DAA4D;QAC9D,WAAW,EAAE,qBAAqB;KACnC,EACD,YAAY,CACV,cAAc,EACd,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAC5C,cAAc,CACf,CACF,CAAA;AACH,CAAC"}
|
|
@@ -4,14 +4,11 @@
|
|
|
4
4
|
// counts toward readiness and feeds matching again. Both contextId and sourceId
|
|
5
5
|
// are path params; no tenant field is accepted.
|
|
6
6
|
import { z } from 'zod';
|
|
7
|
+
import { contextRoutingId } from '../input-fields.js';
|
|
7
8
|
import { contextSourcePath, dispatchSource } from './shared.js';
|
|
8
9
|
/** Zod raw shape for `source_restore` input — both path ids. */
|
|
9
10
|
export const restoreSourceInputShape = {
|
|
10
|
-
contextId:
|
|
11
|
-
.string()
|
|
12
|
-
.min(1)
|
|
13
|
-
.describe('The reconciliation context id (UUID). Routing path param, not a tenant ' +
|
|
14
|
-
'field.'),
|
|
11
|
+
contextId: contextRoutingId,
|
|
15
12
|
sourceId: z
|
|
16
13
|
.string()
|
|
17
14
|
.min(1)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../src/tools/source/restore.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,EAAE;AACF,iFAAiF;AACjF,gFAAgF;AAChF,gDAAgD;AAEhD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../src/tools/source/restore.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,EAAE;AACF,iFAAiF;AACjF,gFAAgF;AAChF,gDAAgD;AAEhD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAIrD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE/D,gEAAgE;AAChE,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,SAAS,EAAE,gBAAgB;IAC3B,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,0DAA0D,CAAC;CACxE,CAAA;AAOD;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,uEAAuE;YACvE,qEAAqE;YACrE,yEAAyE;YACzE,0EAA0E;QAC5E,WAAW,EAAE,uBAAuB;KACrC,EACD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACpB,OAAO,cAAc,CACnB;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;SACpE,EACD,KAAK,CACN,CAAA;IACH,CAAC,CACF,CAAA;AACH,CAAC"}
|