@lerianstudio/matcher-mcp 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config.js +33 -0
- package/dist/config.js.map +1 -1
- package/dist/matcher/client.js +13 -4
- package/dist/matcher/client.js.map +1 -1
- package/dist/server.js +7 -0
- package/dist/server.js.map +1 -1
- package/dist/spec/curated-operations.js +14 -9
- package/dist/spec/curated-operations.js.map +1 -1
- package/dist/spec/index.js +15 -0
- package/dist/spec/index.js.map +1 -1
- package/dist/spec/openapi.yaml +22 -4
- package/dist/tools/context/index.js +17 -10
- package/dist/tools/context/index.js.map +1 -1
- package/dist/tools/context/setup-progress.js +56 -0
- package/dist/tools/context/setup-progress.js.map +1 -0
- package/dist/tools/dashboard/aggregates.js +5 -2
- package/dist/tools/dashboard/aggregates.js.map +1 -1
- package/dist/tools/dashboard/cash-impact.js +4 -3
- package/dist/tools/dashboard/cash-impact.js.map +1 -1
- package/dist/tools/dashboard/match-rate.js +4 -2
- package/dist/tools/dashboard/match-rate.js.map +1 -1
- package/dist/tools/dashboard/metrics.js +4 -3
- package/dist/tools/dashboard/metrics.js.map +1 -1
- package/dist/tools/dashboard/shared.js +16 -4
- package/dist/tools/dashboard/shared.js.map +1 -1
- package/dist/tools/dashboard/sla.js +4 -3
- package/dist/tools/dashboard/sla.js.map +1 -1
- package/dist/tools/dashboard/source-breakdown.js +4 -3
- package/dist/tools/dashboard/source-breakdown.js.map +1 -1
- package/dist/tools/dashboard/volume.js +5 -3
- package/dist/tools/dashboard/volume.js.map +1 -1
- package/dist/tools/fee-schedule/create.js +17 -6
- package/dist/tools/fee-schedule/create.js.map +1 -1
- package/dist/tools/field-map/create.js +62 -0
- package/dist/tools/field-map/create.js.map +1 -0
- package/dist/tools/field-map/delete.js +35 -0
- package/dist/tools/field-map/delete.js.map +1 -0
- package/dist/tools/field-map/get.js +43 -0
- package/dist/tools/field-map/get.js.map +1 -0
- package/dist/tools/field-map/index.js +31 -0
- package/dist/tools/field-map/index.js.map +1 -0
- package/dist/tools/field-map/list.js +64 -0
- package/dist/tools/field-map/list.js.map +1 -0
- package/dist/tools/field-map/shared.js +114 -0
- package/dist/tools/field-map/shared.js.map +1 -0
- package/dist/tools/field-map/update.js +46 -0
- package/dist/tools/field-map/update.js.map +1 -0
- package/dist/tools/generic/describe-operation.js +40 -0
- package/dist/tools/generic/describe-operation.js.map +1 -1
- package/dist/tools/generic/invoke.js +95 -7
- package/dist/tools/generic/invoke.js.map +1 -1
- package/dist/tools/ingestion/fetch-source.js +105 -0
- package/dist/tools/ingestion/fetch-source.js.map +1 -0
- package/dist/tools/ingestion/index.js +10 -8
- package/dist/tools/ingestion/index.js.map +1 -1
- package/dist/tools/ingestion/shared.js +8 -3
- package/dist/tools/ingestion/shared.js.map +1 -1
- package/dist/tools/ingestion/upload.js +166 -0
- package/dist/tools/ingestion/upload.js.map +1 -0
- package/dist/tools/match-rule/create.js +13 -10
- package/dist/tools/match-rule/create.js.map +1 -1
- package/dist/tools/match-rule/list.js +2 -2
- package/dist/tools/match-rule/list.js.map +1 -1
- package/dist/tools/match-rule/shared.js +23 -0
- package/dist/tools/match-rule/shared.js.map +1 -1
- package/dist/tools/match-rule/update.js +6 -6
- package/dist/tools/match-rule/update.js.map +1 -1
- package/dist/tools/matching/get.js +38 -15
- package/dist/tools/matching/get.js.map +1 -1
- package/dist/tools/matching/shared.js +33 -3
- package/dist/tools/matching/shared.js.map +1 -1
- package/dist/tools/matching/start.js +38 -12
- package/dist/tools/matching/start.js.map +1 -1
- package/dist/tools/report/count-exceptions.js +3 -2
- package/dist/tools/report/count-exceptions.js.map +1 -1
- package/dist/tools/report/count-matched.js +3 -2
- package/dist/tools/report/count-matched.js.map +1 -1
- package/dist/tools/report/count-transactions.js +3 -2
- package/dist/tools/report/count-transactions.js.map +1 -1
- package/dist/tools/report/count-unmatched.js +3 -2
- package/dist/tools/report/count-unmatched.js.map +1 -1
- package/dist/tools/report/export-exceptions.js +6 -4
- package/dist/tools/report/export-exceptions.js.map +1 -1
- package/dist/tools/report/export-matched.js +3 -1
- package/dist/tools/report/export-matched.js.map +1 -1
- package/dist/tools/report/export-summary.js +3 -1
- package/dist/tools/report/export-summary.js.map +1 -1
- package/dist/tools/report/export-unmatched.js +5 -3
- package/dist/tools/report/export-unmatched.js.map +1 -1
- package/dist/tools/report/export-variance.js +3 -1
- package/dist/tools/report/export-variance.js.map +1 -1
- package/dist/tools/report/matched.js +5 -3
- package/dist/tools/report/matched.js.map +1 -1
- package/dist/tools/report/shared.js +16 -4
- package/dist/tools/report/shared.js.map +1 -1
- package/dist/tools/report/summary.js +5 -3
- package/dist/tools/report/summary.js.map +1 -1
- package/dist/tools/report/unmatched.js +5 -3
- package/dist/tools/report/unmatched.js.map +1 -1
- package/dist/tools/report/variance.js +5 -3
- package/dist/tools/report/variance.js.map +1 -1
- package/package.json +1 -1
|
@@ -13,9 +13,46 @@
|
|
|
13
13
|
// the closest known ids by a cheap edit distance and name them, plus point the
|
|
14
14
|
// model back at matcher_list_operations. The model then self-corrects (typo, or
|
|
15
15
|
// browse the list) instead of guessing again blind.
|
|
16
|
+
//
|
|
17
|
+
// Edge case: a non-JSON-body operation (multipart/form-data, application/pdf,
|
|
18
|
+
// application/octet-stream — see IndexedOperation.hasNonJsonRequestBody). The
|
|
19
|
+
// descriptor surfaces `notInvokable` with the SAME guidance matcher_invoke
|
|
20
|
+
// would raise, so the model learns the trap from describe alone and never
|
|
21
|
+
// needs to hit invoke's short-circuit to find out.
|
|
16
22
|
import { z } from 'zod';
|
|
17
23
|
/** How many close matches to name in an unknown-id error. */
|
|
18
24
|
const MAX_SUGGESTIONS = 5;
|
|
25
|
+
/**
|
|
26
|
+
* Per-operation guidance for the known non-JSON-body traps. Keyed by
|
|
27
|
+
* operationId; an op hitting the non-JSON guard with no entry here gets the
|
|
28
|
+
* generic line in nonJsonBodyGuidance instead. Add an entry whenever a
|
|
29
|
+
* non-JSON op gets a curated replacement or a clearer story than the generic
|
|
30
|
+
* line.
|
|
31
|
+
*/
|
|
32
|
+
const NON_JSON_BODY_GUIDANCE = {
|
|
33
|
+
uploadFile: 'uploadFile takes a multipart/form-data body, which this JSON relay ' +
|
|
34
|
+
'cannot construct. Use the curated ingestion_upload tool instead — it ' +
|
|
35
|
+
'accepts the file as contentBase64 (small files) or fileUrl (the relay ' +
|
|
36
|
+
'fetches the bytes server-side) and rebuilds the multipart request for you.',
|
|
37
|
+
extractDocument: 'extractDocument takes the document as a raw application/pdf body, not ' +
|
|
38
|
+
'JSON, which this relay cannot construct. There is no MCP path for this ' +
|
|
39
|
+
'operation today — it needs a direct multipart/document upload to the ' +
|
|
40
|
+
'matcher HTTP API, outside this relay.',
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* The actionable guidance for a non-JSON-body operation: the curated entry in
|
|
44
|
+
* NON_JSON_BODY_GUIDANCE when known, else a generic explanation. Used by both
|
|
45
|
+
* matcher_invoke's pre-flight short-circuit (NonJsonRequestBodyError) and
|
|
46
|
+
* matcher_describe_operation's `notInvokable` field, so the two surfaces say
|
|
47
|
+
* the identical thing about the identical op.
|
|
48
|
+
*/
|
|
49
|
+
export function nonJsonBodyGuidance(operationId) {
|
|
50
|
+
return (NON_JSON_BODY_GUIDANCE[operationId] ??
|
|
51
|
+
`"${operationId}" takes a non-JSON request body (e.g. multipart/form-data ` +
|
|
52
|
+
'or a raw binary content type), which this JSON relay cannot construct. ' +
|
|
53
|
+
'It is not reachable via matcher_invoke; check matcher_list_operations / ' +
|
|
54
|
+
'the matcher HTTP API docs for a non-MCP path.');
|
|
55
|
+
}
|
|
19
56
|
/**
|
|
20
57
|
* Thrown when `describe` is asked for an operationId not in the index. Carries
|
|
21
58
|
* the offending id and the closest known ids so the tool layer can render a
|
|
@@ -99,6 +136,9 @@ function toDescriptor(op) {
|
|
|
99
136
|
...(op.requestBodySchema !== undefined
|
|
100
137
|
? { requestBodySchema: op.requestBodySchema }
|
|
101
138
|
: {}),
|
|
139
|
+
...(op.hasNonJsonRequestBody
|
|
140
|
+
? { notInvokable: nonJsonBodyGuidance(op.operationId) }
|
|
141
|
+
: {}),
|
|
102
142
|
};
|
|
103
143
|
}
|
|
104
144
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describe-operation.js","sourceRoot":"","sources":["../../../src/tools/generic/describe-operation.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,EAAE;AACF,sEAAsE;AACtE,6EAA6E;AAC7E,+EAA+E;AAC/E,gFAAgF;AAChF,eAAe;AACf,EAAE;AACF,gFAAgF;AAChF,2BAA2B;AAC3B,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAChF,oDAAoD;
|
|
1
|
+
{"version":3,"file":"describe-operation.js","sourceRoot":"","sources":["../../../src/tools/generic/describe-operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
// 1. Look up the operation in the boot index. Unknown id → close-matches error
|
|
6
6
|
// (reuses describe-operation's suggestion machinery for one consistent
|
|
7
7
|
// "did you mean" experience).
|
|
8
|
+
// 1b. NON-JSON BODY GUARD: an op whose requestBody has no application/json
|
|
9
|
+
// content (multipart/form-data, application/pdf, application/octet-stream)
|
|
10
|
+
// can never be carried by this JSON relay. Short-circuit here, before any
|
|
11
|
+
// other work, with actionable guidance — never attempt the call and let it
|
|
12
|
+
// fail cryptically on the backend. See NON_JSON_BODY_GUIDANCE below.
|
|
8
13
|
// 2. Substitute path params into the operation's path template. A missing
|
|
9
14
|
// REQUIRED path param → error naming exactly which one.
|
|
10
15
|
// 3. TENANT GUARDRAIL (third rail — tenant isolation): reject any attempt to
|
|
@@ -12,7 +17,9 @@
|
|
|
12
17
|
// Tenant identity derives solely from the relayed JWT — never from input.
|
|
13
18
|
// 4. Validate `body` against the operation's request-body JSON Schema with
|
|
14
19
|
// ajv. On failure, return the ajv errors WITHOUT sending the request — no
|
|
15
|
-
// round-trip is wasted on a call matcher would reject anyway.
|
|
20
|
+
// round-trip is wasted on a call matcher would reject anyway. Errors are
|
|
21
|
+
// rendered into readable lines (see formatAjvErrors) alongside the raw
|
|
22
|
+
// ajv detail.
|
|
16
23
|
// 5. requireMatcherClient() (fail-closed on a missing token), then
|
|
17
24
|
// client.request({ method, path, query, body }).
|
|
18
25
|
// 6. On MatcherApiError, map the RFC 9457 problem via the shared toToolError
|
|
@@ -32,7 +39,7 @@ import { Ajv2020 } from 'ajv/dist/2020.js';
|
|
|
32
39
|
import { z } from 'zod';
|
|
33
40
|
import { requireMatcherClient, UnauthenticatedError, } from '../../auth/request-token.js';
|
|
34
41
|
import { MatcherApiError, } from '../../matcher/client.js';
|
|
35
|
-
import { closestOperationIds } from './describe-operation.js';
|
|
42
|
+
import { closestOperationIds, nonJsonBodyGuidance } from './describe-operation.js';
|
|
36
43
|
import { isMatcherApiError, toToolError } from '../tool-error.js';
|
|
37
44
|
/** Keys that would let a caller assert a tenant — categorically forbidden. */
|
|
38
45
|
const FORBIDDEN_TENANT_KEYS = ['tenant_id', 'tenantId', 'tenant'];
|
|
@@ -76,6 +83,18 @@ export class MissingPathParamError extends InvokeError {
|
|
|
76
83
|
this.paramName = paramName;
|
|
77
84
|
}
|
|
78
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* The requested op's requestBody has no application/json content — the relay
|
|
88
|
+
* cannot build it, so invoke refuses before attempting the call. Carries
|
|
89
|
+
* curated, per-op guidance when known (see nonJsonBodyGuidance), else a
|
|
90
|
+
* generic explanation.
|
|
91
|
+
*/
|
|
92
|
+
export class NonJsonRequestBodyError extends InvokeError {
|
|
93
|
+
constructor(operationId) {
|
|
94
|
+
super(nonJsonBodyGuidance(operationId));
|
|
95
|
+
this.name = 'NonJsonRequestBodyError';
|
|
96
|
+
}
|
|
97
|
+
}
|
|
79
98
|
/** A tenant_id/tenantId/tenant key was supplied — the tenant guardrail rejection. */
|
|
80
99
|
export class TenantGuardrailError extends InvokeError {
|
|
81
100
|
key;
|
|
@@ -89,14 +108,75 @@ export class TenantGuardrailError extends InvokeError {
|
|
|
89
108
|
this.location = location;
|
|
90
109
|
}
|
|
91
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Render an ajv instancePath like `/items/0/priority` as a dotted, bracketed
|
|
113
|
+
* field path a human reads naturally: `items[0].priority`. An empty
|
|
114
|
+
* instancePath (the error is on the body root) renders as `(root)`.
|
|
115
|
+
*/
|
|
116
|
+
function readableFieldPath(instancePath) {
|
|
117
|
+
if (instancePath === '') {
|
|
118
|
+
return '(root)';
|
|
119
|
+
}
|
|
120
|
+
return instancePath
|
|
121
|
+
.split('/')
|
|
122
|
+
.filter((segment) => segment.length > 0)
|
|
123
|
+
.map((segment) => (/^\d+$/.test(segment) ? `[${segment}]` : `.${segment}`))
|
|
124
|
+
.join('')
|
|
125
|
+
.replace(/^\./, '');
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Render one ajv error as a single human-readable line: the field path, what
|
|
129
|
+
* is wrong, and — for `enum` — the allowed values. Falls back to ajv's own
|
|
130
|
+
* `message` for keywords without bespoke phrasing, so an unanticipated
|
|
131
|
+
* keyword still reads as a sentence rather than disappearing.
|
|
132
|
+
*/
|
|
133
|
+
function formatAjvError(err) {
|
|
134
|
+
switch (err.keyword) {
|
|
135
|
+
case 'required': {
|
|
136
|
+
const missing = err.params
|
|
137
|
+
.missingProperty;
|
|
138
|
+
const parent = readableFieldPath(err.instancePath);
|
|
139
|
+
const field = typeof missing === 'string' ? missing : String(missing);
|
|
140
|
+
const at = parent === '(root)' ? field : `${parent}.${field}`;
|
|
141
|
+
return `"${at}" is required but missing.`;
|
|
142
|
+
}
|
|
143
|
+
case 'type': {
|
|
144
|
+
const expected = err.params.type;
|
|
145
|
+
return `"${readableFieldPath(err.instancePath)}" must be of type ${String(expected)}.`;
|
|
146
|
+
}
|
|
147
|
+
case 'enum': {
|
|
148
|
+
const allowed = err.params
|
|
149
|
+
.allowedValues;
|
|
150
|
+
const values = Array.isArray(allowed) ? allowed.join(', ') : '';
|
|
151
|
+
return (`"${readableFieldPath(err.instancePath)}" must be one of: ${values}.`);
|
|
152
|
+
}
|
|
153
|
+
default: {
|
|
154
|
+
const path = readableFieldPath(err.instancePath);
|
|
155
|
+
const detail = err.message ?? 'failed validation';
|
|
156
|
+
return `"${path}" ${detail}.`;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Format a full ajv error list into the readable-summary lines led at the
|
|
162
|
+
* top of a BodyValidationError message. Pure and order-preserving — ajv's
|
|
163
|
+
* `allErrors: true` already gives one entry per violation.
|
|
164
|
+
*/
|
|
165
|
+
export function formatAjvErrors(errors) {
|
|
166
|
+
return errors.map(formatAjvError);
|
|
167
|
+
}
|
|
92
168
|
/** Body failed JSON-Schema validation — carries the ajv errors for the model. */
|
|
93
169
|
export class BodyValidationError extends InvokeError {
|
|
94
170
|
validationErrors;
|
|
171
|
+
readableErrors;
|
|
95
172
|
constructor(operationId, validationErrors) {
|
|
96
|
-
|
|
97
|
-
|
|
173
|
+
const readable = formatAjvErrors(validationErrors);
|
|
174
|
+
super(`Request body failed validation for operation "${operationId}":\n` +
|
|
175
|
+
readable.map((line) => ` - ${line}`).join('\n') +
|
|
176
|
+
'\nFix the listed errors and retry; no request was sent.');
|
|
98
177
|
this.name = 'BodyValidationError';
|
|
99
178
|
this.validationErrors = validationErrors;
|
|
179
|
+
this.readableErrors = readable;
|
|
100
180
|
}
|
|
101
181
|
}
|
|
102
182
|
/**
|
|
@@ -169,9 +249,9 @@ export class Invoker {
|
|
|
169
249
|
}
|
|
170
250
|
/**
|
|
171
251
|
* Build the MatcherRequest for an invoke input, running steps 1–4 (lookup,
|
|
172
|
-
* path substitution, tenant guardrail, body validation).
|
|
173
|
-
* subclass on any pre-flight failure — nothing reaches
|
|
174
|
-
* returns a request.
|
|
252
|
+
* non-JSON body guard, path substitution, tenant guardrail, body validation).
|
|
253
|
+
* Throws an InvokeError subclass on any pre-flight failure — nothing reaches
|
|
254
|
+
* matcher until this returns a request.
|
|
175
255
|
*/
|
|
176
256
|
assemble(input) {
|
|
177
257
|
// (1) lookup
|
|
@@ -179,6 +259,13 @@ export class Invoker {
|
|
|
179
259
|
if (op === undefined) {
|
|
180
260
|
throw new InvokeUnknownOperationError(input.operationId, closestOperationIds(this.index, input.operationId));
|
|
181
261
|
}
|
|
262
|
+
// (1b) non-JSON body guard — refuse BEFORE any other work. These ops
|
|
263
|
+
// (uploadFile, extractDocument, and any future multipart/binary-only
|
|
264
|
+
// operation) always fail cryptically against this JSON relay; short-circuit
|
|
265
|
+
// with actionable guidance instead of attempting the call.
|
|
266
|
+
if (op.hasNonJsonRequestBody) {
|
|
267
|
+
throw new NonJsonRequestBodyError(op.operationId);
|
|
268
|
+
}
|
|
182
269
|
// Coerce a stringified body back to its real value before any inspection,
|
|
183
270
|
// so the guardrail and validation below see the actual object/array a harness
|
|
184
271
|
// may have serialized as a JSON string. See normalizeBody.
|
|
@@ -222,6 +309,7 @@ export class Invoker {
|
|
|
222
309
|
function preflightToToolError(err) {
|
|
223
310
|
const detail = { error: err.name, message: err.message };
|
|
224
311
|
if (err instanceof BodyValidationError) {
|
|
312
|
+
detail.readableErrors = err.readableErrors;
|
|
225
313
|
detail.validationErrors = err.validationErrors;
|
|
226
314
|
}
|
|
227
315
|
else if (err instanceof InvokeUnknownOperationError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../src/tools/generic/invoke.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../src/tools/generic/invoke.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// SSRF-guarded fetch for `ingestion_upload`'s upload-by-reference path
|
|
2
|
+
// (`fileUrl`). Base64-in-JSON doesn't scale — a real file inflates ~33% and
|
|
3
|
+
// burns the calling LLM's output tokens one-for-one. This lets the client pass
|
|
4
|
+
// a short URL instead; the relay fetches the bytes server-side and rebuilds
|
|
5
|
+
// the multipart upload exactly as the base64 path does.
|
|
6
|
+
//
|
|
7
|
+
// The relay is a network-reachable, credential-bearing process: an unguarded
|
|
8
|
+
// "fetch whatever URL the client gives you" is textbook SSRF (cloud metadata
|
|
9
|
+
// endpoints, internal services, redirect chains to either). Every check below
|
|
10
|
+
// is fail-closed — on ambiguity or partial information, reject.
|
|
11
|
+
/**
|
|
12
|
+
* Fetch a source file from `fileUrl` under a strict SSRF allowlist, returning
|
|
13
|
+
* the raw bytes. Throws a plain `Error` with a clear, secret-free message on
|
|
14
|
+
* any rejection — there is no token on this outbound call to begin with (it
|
|
15
|
+
* targets an external resource, not matcher), so messages may freely include
|
|
16
|
+
* the URL/hostname for operator debugging.
|
|
17
|
+
*/
|
|
18
|
+
export async function fetchSourceFile(fileUrl, opts) {
|
|
19
|
+
let url;
|
|
20
|
+
try {
|
|
21
|
+
url = new URL(fileUrl);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
throw new Error(`invalid fileUrl: ${fileUrl} (not a parseable URL)`);
|
|
25
|
+
}
|
|
26
|
+
if (url.protocol !== 'http:' && url.protocol !== 'https:') {
|
|
27
|
+
throw new Error(`invalid fileUrl: ${fileUrl} (scheme must be http or https, got ${url.protocol})`);
|
|
28
|
+
}
|
|
29
|
+
// Exact, case-insensitive hostname match only — no substring/suffix
|
|
30
|
+
// matching. An empty allowlist (the default) rejects every host.
|
|
31
|
+
// NOTE: this validates the hostname string, not the resolved IP. Only
|
|
32
|
+
// allowlist non-rebindable/static internal names (e.g. host.docker.internal),
|
|
33
|
+
// never external domains whose DNS you don't control (DNS-rebinding vector).
|
|
34
|
+
const hostname = url.hostname.toLowerCase();
|
|
35
|
+
const allowed = opts.allowedHosts.some((h) => h.toLowerCase() === hostname);
|
|
36
|
+
if (!allowed) {
|
|
37
|
+
throw new Error(`fileUrl host "${url.hostname}" is not in the upload allowlist ` +
|
|
38
|
+
'(MCP_UPLOAD_ALLOWED_HOSTS) — add it there to permit this host');
|
|
39
|
+
}
|
|
40
|
+
const controller = new AbortController();
|
|
41
|
+
const timer = setTimeout(() => controller.abort(), opts.timeoutMs);
|
|
42
|
+
let res;
|
|
43
|
+
try {
|
|
44
|
+
res = await fetch(fileUrl, {
|
|
45
|
+
// A redirect must NOT be silently followed — redirect-to-internal (e.g.
|
|
46
|
+
// an allowlisted host 302-ing to a metadata IP) is a classic SSRF
|
|
47
|
+
// bypass. 'error' makes fetch reject the promise on any redirect.
|
|
48
|
+
redirect: 'error',
|
|
49
|
+
signal: controller.signal,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
if (controller.signal.aborted) {
|
|
54
|
+
throw new Error(`fetching fileUrl timed out after ${opts.timeoutMs}ms: ${fileUrl}`, { cause: err });
|
|
55
|
+
}
|
|
56
|
+
const detail = err instanceof Error ? err.message : 'unknown fetch error';
|
|
57
|
+
throw new Error(`failed to fetch fileUrl (redirects are rejected; this may be why): ${fileUrl} — ${detail}`, { cause: err });
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
clearTimeout(timer);
|
|
61
|
+
}
|
|
62
|
+
if (!res.ok) {
|
|
63
|
+
throw new Error(`fileUrl returned ${res.status} ${res.statusText}: ${fileUrl}`);
|
|
64
|
+
}
|
|
65
|
+
// Reject on a declared oversize BEFORE reading the body.
|
|
66
|
+
const declaredLength = res.headers.get('content-length');
|
|
67
|
+
if (declaredLength !== undefined && declaredLength !== null) {
|
|
68
|
+
const declared = Number(declaredLength);
|
|
69
|
+
if (Number.isFinite(declared) && declared > opts.maxBytes) {
|
|
70
|
+
throw new Error(`fileUrl response is ${declared} bytes, exceeding the ${opts.maxBytes}-byte limit (MCP_UPLOAD_MAX_FETCH_BYTES)`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (!res.body) {
|
|
74
|
+
return new Uint8Array(0);
|
|
75
|
+
}
|
|
76
|
+
// Enforce the cap WHILE streaming so a source that omits or understates
|
|
77
|
+
// Content-Length can't force an unbounded read into the shared relay.
|
|
78
|
+
const reader = res.body.getReader();
|
|
79
|
+
const chunks = [];
|
|
80
|
+
let total = 0;
|
|
81
|
+
try {
|
|
82
|
+
for (;;) {
|
|
83
|
+
const { done, value } = await reader.read();
|
|
84
|
+
if (done)
|
|
85
|
+
break;
|
|
86
|
+
total += value.byteLength;
|
|
87
|
+
if (total > opts.maxBytes) {
|
|
88
|
+
await reader.cancel();
|
|
89
|
+
throw new Error(`fileUrl response exceeds the ${opts.maxBytes}-byte limit (MCP_UPLOAD_MAX_FETCH_BYTES)`);
|
|
90
|
+
}
|
|
91
|
+
chunks.push(value);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
reader.releaseLock();
|
|
96
|
+
}
|
|
97
|
+
const buf = new Uint8Array(total);
|
|
98
|
+
let offset = 0;
|
|
99
|
+
for (const chunk of chunks) {
|
|
100
|
+
buf.set(chunk, offset);
|
|
101
|
+
offset += chunk.byteLength;
|
|
102
|
+
}
|
|
103
|
+
return buf;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=fetch-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-source.js","sourceRoot":"","sources":["../../../src/tools/ingestion/fetch-source.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,wDAAwD;AACxD,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,gEAAgE;AAYhE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,IAAwB;IAExB,IAAI,GAAQ,CAAA;IACZ,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,wBAAwB,CAAC,CAAA;IACtE,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CACb,oBAAoB,OAAO,uCAAuC,GAAG,CAAC,QAAQ,GAAG,CAClF,CAAA;IACH,CAAC;IAED,oEAAoE;IACpE,iEAAiE;IACjE,sEAAsE;IACtE,8EAA8E;IAC9E,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAA;IAC3E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,iBAAiB,GAAG,CAAC,QAAQ,mCAAmC;YAC9D,+DAA+D,CAClE,CAAA;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAElE,IAAI,GAAa,CAAA;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;YACzB,wEAAwE;YACxE,kEAAkE;YAClE,kEAAkE;YAClE,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,CAAC,SAAS,OAAO,OAAO,EAAE,EAClE,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;QACH,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAA;QACzE,MAAM,IAAI,KAAK,CACb,sEAAsE,OAAO,MAAM,MAAM,EAAE,EAC3F,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;IACH,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,oBAAoB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,OAAO,EAAE,CAC/D,CAAA;IACH,CAAC;IAED,yDAAyD;IACzD,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACxD,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;QACvC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CACb,uBAAuB,QAAQ,yBAAyB,IAAI,CAAC,QAAQ,0CAA0C,CAChH,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IAED,wEAAwE;IACxE,sEAAsE;IACtE,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;IACnC,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,CAAC;QACH,SAAS,CAAC;YACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAC3C,IAAI,IAAI;gBAAE,MAAK;YACf,KAAK,IAAI,KAAK,CAAC,UAAU,CAAA;YACzB,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC1B,MAAM,MAAM,CAAC,MAAM,EAAE,CAAA;gBACrB,MAAM,IAAI,KAAK,CACb,gCAAgC,IAAI,CAAC,QAAQ,0CAA0C,CACxF,CAAA;YACH,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAA;IACtB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;IACjC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACtB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAA;IAC5B,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
// Curated ingestion vertical:
|
|
2
|
-
// of a reconciliation context — list jobs, get a job, list a job's
|
|
3
|
-
// errors, list a job's transactions, search transactions,
|
|
4
|
-
// transaction. Every op is fully context-nested under
|
|
1
|
+
// Curated ingestion vertical: seven typed tools over the matcher import
|
|
2
|
+
// lifecycle of a reconciliation context — list jobs, get a job, list a job's
|
|
3
|
+
// per-row errors, list a job's transactions, search transactions, ignore a
|
|
4
|
+
// transaction, and upload a file. Every op is fully context-nested under
|
|
5
5
|
// /v1/imports/contexts/{contextId}/... Each tool shares the fail-closed relay
|
|
6
6
|
// (shared.ts) and the RFC 9457 → tool-error mapping (toToolError) with the
|
|
7
7
|
// generic surface, so curated and generic map matcher errors identically. No
|
|
8
8
|
// tool carries a tenant field; contextId is a routing path param matcher
|
|
9
9
|
// validates against the relayed token's tenant.
|
|
10
10
|
//
|
|
11
|
-
// NOTE: uploadFile
|
|
12
|
-
//
|
|
13
|
-
//
|
|
11
|
+
// NOTE: uploadFile is now curated as ingestion_upload (base64-in-JSON, relay
|
|
12
|
+
// rebuilds the multipart request — see upload.ts). extractDocument stays
|
|
13
|
+
// generic-only: same multipart/form-data binary-body shape, not yet curated.
|
|
14
14
|
import { registerIngestionJobErrorsListTool } from './job-errors-list.js';
|
|
15
15
|
import { registerIngestionJobGetTool } from './job-get.js';
|
|
16
16
|
import { registerIngestionJobTransactionsListTool } from './job-transactions-list.js';
|
|
17
17
|
import { registerIngestionJobsListTool } from './jobs-list.js';
|
|
18
18
|
import { registerIngestionTransactionIgnoreTool } from './transaction-ignore.js';
|
|
19
19
|
import { registerIngestionTransactionsSearchTool } from './transactions-search.js';
|
|
20
|
-
|
|
20
|
+
import { registerIngestionUploadTool } from './upload.js';
|
|
21
|
+
/** Register all seven curated ingestion tools on the given server. */
|
|
21
22
|
export function registerIngestionTools(server) {
|
|
22
23
|
registerIngestionJobsListTool(server);
|
|
23
24
|
registerIngestionJobGetTool(server);
|
|
@@ -25,5 +26,6 @@ export function registerIngestionTools(server) {
|
|
|
25
26
|
registerIngestionJobTransactionsListTool(server);
|
|
26
27
|
registerIngestionTransactionsSearchTool(server);
|
|
27
28
|
registerIngestionTransactionIgnoreTool(server);
|
|
29
|
+
registerIngestionUploadTool(server);
|
|
28
30
|
}
|
|
29
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/ingestion/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/ingestion/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,6EAA6E;AAC7E,2EAA2E;AAC3E,yEAAyE;AACzE,8EAA8E;AAC9E,2EAA2E;AAC3E,6EAA6E;AAC7E,yEAAyE;AACzE,gDAAgD;AAChD,EAAE;AACF,6EAA6E;AAC7E,yEAAyE;AACzE,6EAA6E;AAI7E,OAAO,EAAE,kCAAkC,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,wCAAwC,EAAE,MAAM,4BAA4B,CAAA;AACrF,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,sCAAsC,EAAE,MAAM,yBAAyB,CAAA;AAChF,OAAO,EAAE,uCAAuC,EAAE,MAAM,0BAA0B,CAAA;AAClF,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAEzD,sEAAsE;AACtE,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,6BAA6B,CAAC,MAAM,CAAC,CAAA;IACrC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IACnC,kCAAkC,CAAC,MAAM,CAAC,CAAA;IAC1C,wCAAwC,CAAC,MAAM,CAAC,CAAA;IAChD,uCAAuC,CAAC,MAAM,CAAC,CAAA;IAC/C,sCAAsC,CAAC,MAAM,CAAC,CAAA;IAC9C,2BAA2B,CAAC,MAAM,CAAC,CAAA;AACrC,CAAC"}
|
|
@@ -9,9 +9,10 @@
|
|
|
9
9
|
// "build the request") and so curated + generic surfaces map matcher errors
|
|
10
10
|
// through the identical path (toToolError).
|
|
11
11
|
//
|
|
12
|
-
// NOTE: uploadFile
|
|
13
|
-
// multipart/form-data binary body
|
|
14
|
-
// the
|
|
12
|
+
// NOTE: uploadFile is now curated as ingestion_upload (upload.ts) — its
|
|
13
|
+
// multipart/form-data binary body is JSON tool-shaped as base64, and the relay
|
|
14
|
+
// (matcher/client.ts) rebuilds the real multipart request. extractDocument
|
|
15
|
+
// stays generic-only (same binary-body shape, not yet curated).
|
|
15
16
|
//
|
|
16
17
|
// Security: the bearer token is never read here directly — requireMatcherClient
|
|
17
18
|
// owns the request-scoped relay and fails closed when no usable credential was
|
|
@@ -45,6 +46,10 @@ export function contextTransactionsSearchPath(contextId) {
|
|
|
45
46
|
export function contextTransactionIgnorePath(contextId, transactionId) {
|
|
46
47
|
return `/v1/imports/contexts/${encodeURIComponent(contextId)}/transactions/${encodeURIComponent(transactionId)}/ignore`;
|
|
47
48
|
}
|
|
49
|
+
/** Build a source's file-upload sub-path (ingestion_upload) — both ids encoded. */
|
|
50
|
+
export function contextSourceUploadPath(contextId, sourceId) {
|
|
51
|
+
return `/v1/imports/contexts/${encodeURIComponent(contextId)}/sources/${encodeURIComponent(sourceId)}/upload`;
|
|
52
|
+
}
|
|
48
53
|
/**
|
|
49
54
|
* Run one assembled request through the relay: fail-closed auth, dispatch, and
|
|
50
55
|
* RFC 9457 → tool-error mapping — identical to the generic invoke's dispatch so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/tools/ingestion/shared.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,2EAA2E;AAC3E,4EAA4E;AAC5E,4CAA4C;AAC5C,EAAE;AACF,+EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/tools/ingestion/shared.ts"],"names":[],"mappings":"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"}
|