@pegma/knowledge-base-mcp 0.0.0-stage → 0.1.1
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/LICENSE +21 -0
- package/README.md +88 -2
- package/dist/dispatcher.d.ts +7 -0
- package/dist/dispatcher.d.ts.map +1 -0
- package/dist/dispatcher.js +155 -0
- package/dist/dispatcher.js.map +1 -0
- package/dist/errors.d.ts +10 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +75 -0
- package/dist/errors.js.map +1 -0
- package/dist/http.d.ts +14 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +28 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp.d.ts +17 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +313 -0
- package/dist/mcp.js.map +1 -0
- package/dist/schemas.d.ts +363 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +416 -0
- package/dist/schemas.js.map +1 -0
- package/dist/transport-common.d.ts +57 -0
- package/dist/transport-common.d.ts.map +1 -0
- package/dist/transport-common.js +411 -0
- package/dist/transport-common.js.map +1 -0
- package/dist/types.d.ts +90 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +45 -0
- package/dist/types.js.map +1 -0
- package/package.json +43 -4
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
import { KnowledgeAgentBoundaryError } from "./errors.js";
|
|
2
|
+
import { parseKnowledgeAgentJson } from "./schemas.js";
|
|
3
|
+
const transportErrors = Object.freeze({
|
|
4
|
+
invalid_request: [400, "Invalid knowledge request."],
|
|
5
|
+
invalid_token: [401, "Knowledge authentication is required."],
|
|
6
|
+
forbidden: [403, "Knowledge access is forbidden."],
|
|
7
|
+
temporarily_unavailable: [
|
|
8
|
+
429,
|
|
9
|
+
"Knowledge service is temporarily unavailable.",
|
|
10
|
+
],
|
|
11
|
+
unavailable: [503, "Knowledge service is unavailable."],
|
|
12
|
+
capacity: [413, "Knowledge request or result exceeds capacity."],
|
|
13
|
+
method_not_allowed: [405, "Knowledge endpoint requires POST."],
|
|
14
|
+
unsupported_media_type: [415, "Knowledge endpoint requires UTF-8 JSON."],
|
|
15
|
+
});
|
|
16
|
+
const encoder = new TextEncoder();
|
|
17
|
+
const maxBodyChunks = 1_024;
|
|
18
|
+
const maxAuthorityItems = 256;
|
|
19
|
+
const maxAuthorityCharacters = 1_024;
|
|
20
|
+
function cancelStream(stream) {
|
|
21
|
+
try {
|
|
22
|
+
// A peer's cancellation hook must not hold the rejection response open.
|
|
23
|
+
void stream?.cancel().catch(() => { });
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
// Cancellation can throw for a locked stream; no content is consumed.
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function configurationError() {
|
|
30
|
+
throw new TypeError("Invalid knowledge agent transport configuration.");
|
|
31
|
+
}
|
|
32
|
+
function configuredUrl(value, allowLoopback) {
|
|
33
|
+
if (typeof value !== "string" || value.length > 2_048)
|
|
34
|
+
return configurationError();
|
|
35
|
+
let url;
|
|
36
|
+
try {
|
|
37
|
+
url = new URL(value);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return configurationError();
|
|
41
|
+
}
|
|
42
|
+
const loopback = ["localhost", "127.0.0.1", "[::1]"].includes(url.hostname);
|
|
43
|
+
if ((url.protocol !== "https:" &&
|
|
44
|
+
!(allowLoopback && loopback && url.protocol === "http:")) ||
|
|
45
|
+
url.username !== "" ||
|
|
46
|
+
url.password !== "" ||
|
|
47
|
+
value !== `${url.origin}${url.pathname}`)
|
|
48
|
+
return configurationError();
|
|
49
|
+
return url;
|
|
50
|
+
}
|
|
51
|
+
/** Validate and snapshot host configuration once, before accepting requests. */
|
|
52
|
+
export function validateKnowledgeAgentTransportOptions(options, endpointUrl, transport) {
|
|
53
|
+
const allowLoopback = options.allowInsecureLoopback === true;
|
|
54
|
+
const endpoint = configuredUrl(endpointUrl, allowLoopback);
|
|
55
|
+
configuredUrl(options.resource, allowLoopback);
|
|
56
|
+
configuredUrl(options.protectedResourceMetadataUrl, allowLoopback);
|
|
57
|
+
if ((transport !== "http" && transport !== "mcp") ||
|
|
58
|
+
(transport === "mcp" && endpointUrl !== options.resource) ||
|
|
59
|
+
typeof options.authenticate !== "function" ||
|
|
60
|
+
typeof options.limit !== "function" ||
|
|
61
|
+
!Array.isArray(options.allowedOrigins) ||
|
|
62
|
+
options.allowedOrigins.length > 64 ||
|
|
63
|
+
(options.allowInsecureLoopback !== undefined &&
|
|
64
|
+
typeof options.allowInsecureLoopback !== "boolean"))
|
|
65
|
+
return configurationError();
|
|
66
|
+
const origins = options.allowedOrigins.map((origin) => {
|
|
67
|
+
const parsed = configuredUrl(`${origin}/`, allowLoopback);
|
|
68
|
+
if (parsed.origin !== origin)
|
|
69
|
+
return configurationError();
|
|
70
|
+
return origin;
|
|
71
|
+
});
|
|
72
|
+
return Object.freeze({
|
|
73
|
+
transport,
|
|
74
|
+
endpointUrl,
|
|
75
|
+
endpointOrigin: endpoint.origin,
|
|
76
|
+
endpointPath: endpoint.pathname,
|
|
77
|
+
endpointHost: endpoint.host,
|
|
78
|
+
endpointProtocol: endpoint.protocol,
|
|
79
|
+
resource: options.resource,
|
|
80
|
+
protectedResourceMetadataUrl: options.protectedResourceMetadataUrl,
|
|
81
|
+
allowedOrigins: Object.freeze([...new Set(origins)]),
|
|
82
|
+
authenticate: options.authenticate,
|
|
83
|
+
limit: options.limit,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/** A matching path is claimed so a hostile authority cannot bypass admission. */
|
|
87
|
+
export function knowledgeAgentRequestMatches(request, configuration) {
|
|
88
|
+
try {
|
|
89
|
+
return new URL(request.url).pathname === configuration.endpointPath;
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function baseHeaders() {
|
|
96
|
+
return new Headers({
|
|
97
|
+
"Cache-Control": "no-store",
|
|
98
|
+
"X-Content-Type-Options": "nosniff",
|
|
99
|
+
"Referrer-Policy": "no-referrer",
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/** Replace implicit CORS and caching with this endpoint's explicit policy. */
|
|
103
|
+
export function secureKnowledgeAgentResponse(response, request, configuration) {
|
|
104
|
+
const headers = new Headers(response.headers);
|
|
105
|
+
for (const key of [...headers.keys()]) {
|
|
106
|
+
if (key.toLowerCase().startsWith("access-control-"))
|
|
107
|
+
headers.delete(key);
|
|
108
|
+
}
|
|
109
|
+
for (const [key, value] of baseHeaders())
|
|
110
|
+
headers.set(key, value);
|
|
111
|
+
headers.delete("Set-Cookie");
|
|
112
|
+
const vary = new Set((headers.get("Vary") ?? "")
|
|
113
|
+
.split(",")
|
|
114
|
+
.map((value) => value.trim())
|
|
115
|
+
.filter(Boolean));
|
|
116
|
+
vary.add("Origin");
|
|
117
|
+
headers.set("Vary", [...vary].join(", "));
|
|
118
|
+
const origin = request.headers.get("Origin");
|
|
119
|
+
if (origin !== null && configuration.allowedOrigins.includes(origin)) {
|
|
120
|
+
headers.set("Access-Control-Allow-Origin", origin);
|
|
121
|
+
headers.set("Access-Control-Expose-Headers", "WWW-Authenticate, Retry-After");
|
|
122
|
+
}
|
|
123
|
+
return new Response(response.body, {
|
|
124
|
+
status: response.status,
|
|
125
|
+
statusText: response.statusText,
|
|
126
|
+
headers,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
function rawTransportError(code, retryAfterSeconds) {
|
|
130
|
+
const [status, message] = transportErrors[code];
|
|
131
|
+
const headers = baseHeaders();
|
|
132
|
+
headers.set("Content-Type", "application/json; charset=utf-8");
|
|
133
|
+
if (code === "method_not_allowed")
|
|
134
|
+
headers.set("Allow", "POST");
|
|
135
|
+
if (code === "temporarily_unavailable" &&
|
|
136
|
+
retryAfterSeconds !== undefined &&
|
|
137
|
+
Number.isSafeInteger(retryAfterSeconds) &&
|
|
138
|
+
retryAfterSeconds >= 0 &&
|
|
139
|
+
retryAfterSeconds <= 86_400)
|
|
140
|
+
headers.set("Retry-After", String(retryAfterSeconds));
|
|
141
|
+
return new Response(JSON.stringify({
|
|
142
|
+
apiVersion: "1",
|
|
143
|
+
operation: null,
|
|
144
|
+
error: { code, status, message },
|
|
145
|
+
}), { status, headers });
|
|
146
|
+
}
|
|
147
|
+
export function knowledgeAgentTransportError(code, request, configuration, retryAfterSeconds) {
|
|
148
|
+
const response = rawTransportError(code, retryAfterSeconds);
|
|
149
|
+
if (code === "invalid_token" || code === "forbidden") {
|
|
150
|
+
const error = code === "invalid_token" ? "invalid_token" : "insufficient_scope";
|
|
151
|
+
response.headers.set("WWW-Authenticate", `Bearer error="${error}", resource_metadata="${configuration.protectedResourceMetadataUrl}"`);
|
|
152
|
+
}
|
|
153
|
+
return secureKnowledgeAgentResponse(response, request, configuration);
|
|
154
|
+
}
|
|
155
|
+
function validHost(request, configuration) {
|
|
156
|
+
const host = request.headers.get("Host");
|
|
157
|
+
// Fetch runtimes may omit Host: the absolute request URL remains mandatory.
|
|
158
|
+
if (host === null)
|
|
159
|
+
return true;
|
|
160
|
+
try {
|
|
161
|
+
const parsed = new URL(`${configuration.endpointProtocol}//${host}`);
|
|
162
|
+
return (parsed.host === configuration.endpointHost &&
|
|
163
|
+
parsed.username === "" &&
|
|
164
|
+
parsed.password === "" &&
|
|
165
|
+
parsed.pathname === "/" &&
|
|
166
|
+
parsed.search === "" &&
|
|
167
|
+
parsed.hash === "" &&
|
|
168
|
+
!/[\s/@?#\\]/u.test(host));
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
function authorityString(value) {
|
|
175
|
+
return (typeof value === "string" &&
|
|
176
|
+
value.length > 0 &&
|
|
177
|
+
value.length <= maxAuthorityCharacters &&
|
|
178
|
+
!/[\u0000-\u001f\u007f]/u.test(value));
|
|
179
|
+
}
|
|
180
|
+
function authorityRecord(value) {
|
|
181
|
+
if (value === null || typeof value !== "object")
|
|
182
|
+
return false;
|
|
183
|
+
const prototype = Object.getPrototypeOf(value);
|
|
184
|
+
if (prototype !== Object.prototype && prototype !== null)
|
|
185
|
+
return false;
|
|
186
|
+
const keys = Reflect.ownKeys(value);
|
|
187
|
+
if (keys.length > 32)
|
|
188
|
+
return false;
|
|
189
|
+
for (let index = 0; index < keys.length; index += 1) {
|
|
190
|
+
if (typeof keys[index] !== "string")
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
return true;
|
|
194
|
+
}
|
|
195
|
+
function ownAuthorityData(value, key) {
|
|
196
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
197
|
+
return descriptor !== undefined && "value" in descriptor
|
|
198
|
+
? descriptor.value
|
|
199
|
+
: undefined;
|
|
200
|
+
}
|
|
201
|
+
function authorityList(value) {
|
|
202
|
+
if (!Array.isArray(value) || Object.getPrototypeOf(value) !== Array.prototype)
|
|
203
|
+
return null;
|
|
204
|
+
const length = ownAuthorityData(value, "length");
|
|
205
|
+
if (typeof length !== "number" ||
|
|
206
|
+
!Number.isSafeInteger(length) ||
|
|
207
|
+
length < 0 ||
|
|
208
|
+
length > maxAuthorityItems ||
|
|
209
|
+
Reflect.ownKeys(value).length !== length + 1)
|
|
210
|
+
return null;
|
|
211
|
+
const output = [];
|
|
212
|
+
for (let index = 0; index < length; index += 1) {
|
|
213
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
|
|
214
|
+
if (descriptor === undefined ||
|
|
215
|
+
!("value" in descriptor) ||
|
|
216
|
+
!descriptor.enumerable ||
|
|
217
|
+
!authorityString(descriptor.value))
|
|
218
|
+
return null;
|
|
219
|
+
output[index] = descriptor.value;
|
|
220
|
+
}
|
|
221
|
+
return Object.freeze(output);
|
|
222
|
+
}
|
|
223
|
+
/** Detach bounded trusted facts so later host mutation cannot change authority. */
|
|
224
|
+
function snapshotIdentity(value, resource) {
|
|
225
|
+
if (!authorityRecord(value))
|
|
226
|
+
return null;
|
|
227
|
+
const clientId = ownAuthorityData(value, "clientId");
|
|
228
|
+
const scopes = authorityList(ownAuthorityData(value, "scopes"));
|
|
229
|
+
const access = ownAuthorityData(value, "access");
|
|
230
|
+
if (ownAuthorityData(value, "resource") !== resource ||
|
|
231
|
+
!authorityString(clientId) ||
|
|
232
|
+
scopes === null ||
|
|
233
|
+
!authorityRecord(access))
|
|
234
|
+
return null;
|
|
235
|
+
const principalId = ownAuthorityData(access, "principalId");
|
|
236
|
+
const policyVersion = ownAuthorityData(access, "policyVersion");
|
|
237
|
+
const permissions = authorityList(ownAuthorityData(access, "permissions"));
|
|
238
|
+
if (!authorityString(principalId) ||
|
|
239
|
+
!authorityString(policyVersion) ||
|
|
240
|
+
permissions === null)
|
|
241
|
+
return null;
|
|
242
|
+
return Object.freeze({
|
|
243
|
+
clientId,
|
|
244
|
+
resource,
|
|
245
|
+
scopes,
|
|
246
|
+
access: Object.freeze({
|
|
247
|
+
principalId,
|
|
248
|
+
policyVersion,
|
|
249
|
+
roles: Object.freeze([]),
|
|
250
|
+
entitlements: Object.freeze([]),
|
|
251
|
+
permissions,
|
|
252
|
+
}),
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
/** Shared HTTP/MCP admission. No untrusted body is read by this function. */
|
|
256
|
+
export async function authorizeKnowledgeAgentRequest(request, configuration) {
|
|
257
|
+
const reject = (code, retryAfterSeconds) => knowledgeAgentTransportError(code, request, configuration, retryAfterSeconds);
|
|
258
|
+
let url;
|
|
259
|
+
try {
|
|
260
|
+
url = new URL(request.url);
|
|
261
|
+
}
|
|
262
|
+
catch {
|
|
263
|
+
return reject("invalid_request");
|
|
264
|
+
}
|
|
265
|
+
if (url.href !== configuration.endpointUrl ||
|
|
266
|
+
!validHost(request, configuration))
|
|
267
|
+
return reject("invalid_request");
|
|
268
|
+
const origin = request.headers.get("Origin");
|
|
269
|
+
if (origin !== null && !configuration.allowedOrigins.includes(origin))
|
|
270
|
+
return reject("forbidden");
|
|
271
|
+
try {
|
|
272
|
+
const decision = await configuration.limit(request, {
|
|
273
|
+
transport: configuration.transport,
|
|
274
|
+
});
|
|
275
|
+
if (decision === false)
|
|
276
|
+
return reject("temporarily_unavailable");
|
|
277
|
+
if (decision !== true) {
|
|
278
|
+
if (decision === null ||
|
|
279
|
+
typeof decision !== "object" ||
|
|
280
|
+
typeof decision.allowed !== "boolean")
|
|
281
|
+
return reject("unavailable");
|
|
282
|
+
if (!decision.allowed)
|
|
283
|
+
return reject("temporarily_unavailable", decision.retryAfterSeconds);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
catch {
|
|
287
|
+
return reject("unavailable");
|
|
288
|
+
}
|
|
289
|
+
const authorization = request.headers.get("Authorization");
|
|
290
|
+
if (authorization === null ||
|
|
291
|
+
authorization.length > 8_192 ||
|
|
292
|
+
!/^Bearer +[A-Za-z0-9._~+/-]+=*$/i.test(authorization))
|
|
293
|
+
return reject("invalid_token");
|
|
294
|
+
try {
|
|
295
|
+
const authenticated = await configuration.authenticate(request);
|
|
296
|
+
if (authenticated instanceof Response) {
|
|
297
|
+
// Host error messages, cookies, redirects and custom challenges are private.
|
|
298
|
+
cancelStream(authenticated.body);
|
|
299
|
+
if (authenticated.status === 401)
|
|
300
|
+
return reject("invalid_token");
|
|
301
|
+
if (authenticated.status === 403)
|
|
302
|
+
return reject("forbidden");
|
|
303
|
+
return reject("unavailable");
|
|
304
|
+
}
|
|
305
|
+
const identity = snapshotIdentity(authenticated, configuration.resource);
|
|
306
|
+
return identity ?? reject("invalid_token");
|
|
307
|
+
}
|
|
308
|
+
catch {
|
|
309
|
+
return reject("unavailable");
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
/** Read actual bytes/chunks before decoding or parsing; never trust Length alone. */
|
|
313
|
+
export async function readKnowledgeAgentJsonRequest(request, limits) {
|
|
314
|
+
const maxBytes = limits.maxRequestBytes;
|
|
315
|
+
if (!Number.isSafeInteger(maxBytes) || maxBytes <= 0)
|
|
316
|
+
return rawTransportError("unavailable");
|
|
317
|
+
const contentType = request.headers.get("Content-Type") ?? "";
|
|
318
|
+
if (!/^application\/json(?:\s*;\s*charset\s*=\s*(?:utf-8|"utf-8"))?\s*$/iu.test(contentType))
|
|
319
|
+
return rawTransportError("unsupported_media_type");
|
|
320
|
+
const encoding = request.headers.get("Content-Encoding");
|
|
321
|
+
if (encoding !== null && encoding.toLowerCase() !== "identity")
|
|
322
|
+
return rawTransportError("unsupported_media_type");
|
|
323
|
+
const declared = request.headers.get("Content-Length");
|
|
324
|
+
if (declared !== null &&
|
|
325
|
+
(!/^\d+$/u.test(declared) || !Number.isSafeInteger(Number(declared))))
|
|
326
|
+
return rawTransportError("invalid_request");
|
|
327
|
+
if (declared !== null && Number(declared) > maxBytes) {
|
|
328
|
+
cancelStream(request.body);
|
|
329
|
+
return rawTransportError("capacity");
|
|
330
|
+
}
|
|
331
|
+
if (request.body === null)
|
|
332
|
+
return rawTransportError("invalid_request");
|
|
333
|
+
let reader;
|
|
334
|
+
try {
|
|
335
|
+
reader = request.body.getReader();
|
|
336
|
+
}
|
|
337
|
+
catch {
|
|
338
|
+
return rawTransportError("invalid_request");
|
|
339
|
+
}
|
|
340
|
+
try {
|
|
341
|
+
const chunks = [];
|
|
342
|
+
let bytes = 0;
|
|
343
|
+
let count = 0;
|
|
344
|
+
while (true) {
|
|
345
|
+
const next = await reader.read();
|
|
346
|
+
if (next.done)
|
|
347
|
+
break;
|
|
348
|
+
count += 1;
|
|
349
|
+
bytes += next.value.byteLength;
|
|
350
|
+
if (bytes > maxBytes || count > maxBodyChunks) {
|
|
351
|
+
cancelStream(reader);
|
|
352
|
+
return rawTransportError("capacity");
|
|
353
|
+
}
|
|
354
|
+
chunks.push(next.value.slice());
|
|
355
|
+
}
|
|
356
|
+
if (declared !== null && Number(declared) !== bytes)
|
|
357
|
+
return rawTransportError("invalid_request");
|
|
358
|
+
const body = new Uint8Array(bytes);
|
|
359
|
+
let offset = 0;
|
|
360
|
+
for (const chunk of chunks) {
|
|
361
|
+
body.set(chunk, offset);
|
|
362
|
+
offset += chunk.byteLength;
|
|
363
|
+
}
|
|
364
|
+
const text = new TextDecoder("utf-8", {
|
|
365
|
+
fatal: true,
|
|
366
|
+
ignoreBOM: true,
|
|
367
|
+
}).decode(body);
|
|
368
|
+
return {
|
|
369
|
+
value: parseKnowledgeAgentJson(text, limits),
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
catch (error) {
|
|
373
|
+
if (error instanceof KnowledgeAgentBoundaryError &&
|
|
374
|
+
error.code === "capacity")
|
|
375
|
+
return rawTransportError("capacity");
|
|
376
|
+
return rawTransportError("invalid_request");
|
|
377
|
+
}
|
|
378
|
+
finally {
|
|
379
|
+
reader.releaseLock();
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
/** Serialize only complete bounded messages; never truncate application results. */
|
|
383
|
+
export function knowledgeAgentJsonResponse(value, status, maxBytes, request, configuration) {
|
|
384
|
+
try {
|
|
385
|
+
const body = JSON.stringify(value);
|
|
386
|
+
if (body === undefined ||
|
|
387
|
+
!Number.isSafeInteger(maxBytes) ||
|
|
388
|
+
maxBytes <= 0 ||
|
|
389
|
+
encoder.encode(body).byteLength > maxBytes)
|
|
390
|
+
throw new TypeError("Knowledge response exceeds capacity");
|
|
391
|
+
return secureKnowledgeAgentResponse(new Response(body, {
|
|
392
|
+
status,
|
|
393
|
+
headers: { "Content-Type": "application/json; charset=utf-8" },
|
|
394
|
+
}), request, configuration);
|
|
395
|
+
}
|
|
396
|
+
catch {
|
|
397
|
+
const fallback = rawTransportError("unavailable");
|
|
398
|
+
// Even reduced budgets that cannot fit the fixed error remain bounded.
|
|
399
|
+
const fixedBytes = encoder.encode(JSON.stringify({
|
|
400
|
+
apiVersion: "1",
|
|
401
|
+
operation: null,
|
|
402
|
+
error: {
|
|
403
|
+
code: "unavailable",
|
|
404
|
+
status: 503,
|
|
405
|
+
message: "Knowledge service is unavailable.",
|
|
406
|
+
},
|
|
407
|
+
})).byteLength;
|
|
408
|
+
return secureKnowledgeAgentResponse(fixedBytes <= maxBytes ? fallback : new Response(null, { status: 503 }), request, configuration);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
//# sourceMappingURL=transport-common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport-common.js","sourceRoot":"","sources":["../src/transport-common.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { AccessContext } from "@pegma/authorization-core";
|
|
2
|
+
import type { ArticleAcknowledgement, ArticleReadInput, CommandResult, CreateDraftInput, DraftArticleDto, KnowledgeBaseApplication, SubmitEvidenceInput, UpdateDraftInput, ValidationRequirementsDto, ValidationRequirementsReadInput } from "@pegma/knowledge-base-application";
|
|
3
|
+
/** Scopes are existing application permission names, never a second role model. */
|
|
4
|
+
export declare const knowledgeAgentScopes: Readonly<{
|
|
5
|
+
draftRead: "knowledge.article.draft.read";
|
|
6
|
+
draftWrite: "knowledge.article.draft.write";
|
|
7
|
+
evidenceSubmit: "knowledge.article.evidence.submit";
|
|
8
|
+
}>;
|
|
9
|
+
export declare const knowledgeAgentOperations: readonly ["getDraft", "createDraft", "updateDraft", "getValidationRequirements", "submitEvidence"];
|
|
10
|
+
export type KnowledgeAgentOperation = (typeof knowledgeAgentOperations)[number];
|
|
11
|
+
export declare const knowledgeAgentToolNames: Readonly<{
|
|
12
|
+
readonly getDraft: "knowledge_v1_get_draft";
|
|
13
|
+
readonly createDraft: "knowledge_v1_create_draft";
|
|
14
|
+
readonly updateDraft: "knowledge_v1_update_draft";
|
|
15
|
+
readonly getValidationRequirements: "knowledge_v1_get_validation_requirements";
|
|
16
|
+
readonly submitEvidence: "knowledge_v1_submit_evidence";
|
|
17
|
+
}>;
|
|
18
|
+
/** Authenticated by the host, supplied separately from every untrusted body. */
|
|
19
|
+
export interface KnowledgeAgentIdentity {
|
|
20
|
+
readonly access: AccessContext;
|
|
21
|
+
readonly scopes: readonly string[];
|
|
22
|
+
readonly clientId: string;
|
|
23
|
+
readonly resource: string;
|
|
24
|
+
}
|
|
25
|
+
export interface KnowledgeAgentInputMap {
|
|
26
|
+
readonly getDraft: ArticleReadInput;
|
|
27
|
+
readonly createDraft: CreateDraftInput;
|
|
28
|
+
readonly updateDraft: UpdateDraftInput;
|
|
29
|
+
readonly getValidationRequirements: ValidationRequirementsReadInput;
|
|
30
|
+
readonly submitEvidence: SubmitEvidenceInput;
|
|
31
|
+
}
|
|
32
|
+
export interface KnowledgeAgentResultMap {
|
|
33
|
+
readonly getDraft: DraftArticleDto;
|
|
34
|
+
readonly createDraft: CommandResult<ArticleAcknowledgement>;
|
|
35
|
+
readonly updateDraft: CommandResult<ArticleAcknowledgement>;
|
|
36
|
+
readonly getValidationRequirements: ValidationRequirementsDto;
|
|
37
|
+
readonly submitEvidence: CommandResult<ArticleAcknowledgement>;
|
|
38
|
+
}
|
|
39
|
+
export type KnowledgeAgentEnvelope = {
|
|
40
|
+
[Operation in KnowledgeAgentOperation]: {
|
|
41
|
+
readonly apiVersion: "1";
|
|
42
|
+
readonly operation: Operation;
|
|
43
|
+
readonly input: KnowledgeAgentInputMap[Operation];
|
|
44
|
+
};
|
|
45
|
+
}[KnowledgeAgentOperation];
|
|
46
|
+
export type KnowledgeAgentSuccess = {
|
|
47
|
+
[Operation in KnowledgeAgentOperation]: {
|
|
48
|
+
readonly apiVersion: "1";
|
|
49
|
+
readonly operation: Operation;
|
|
50
|
+
readonly result: KnowledgeAgentResultMap[Operation];
|
|
51
|
+
};
|
|
52
|
+
}[KnowledgeAgentOperation];
|
|
53
|
+
export type KnowledgeAgentErrorCode = "invalid_request" | "forbidden" | "not_found" | "conflict" | "capacity" | "prerequisite" | "unavailable";
|
|
54
|
+
export interface KnowledgeAgentError {
|
|
55
|
+
readonly code: KnowledgeAgentErrorCode;
|
|
56
|
+
readonly status: number;
|
|
57
|
+
readonly message: string;
|
|
58
|
+
}
|
|
59
|
+
export interface KnowledgeAgentFailure {
|
|
60
|
+
readonly apiVersion: "1";
|
|
61
|
+
/** Invalid envelopes never reflect an unrecognized caller-supplied name. */
|
|
62
|
+
readonly operation: KnowledgeAgentOperation | null;
|
|
63
|
+
readonly error: KnowledgeAgentError;
|
|
64
|
+
}
|
|
65
|
+
export type KnowledgeAgentResponse = KnowledgeAgentSuccess | KnowledgeAgentFailure;
|
|
66
|
+
export interface KnowledgeAgentLimits {
|
|
67
|
+
readonly maxRequestBytes: number;
|
|
68
|
+
readonly maxResponseBytes: number;
|
|
69
|
+
readonly maxDepth: number;
|
|
70
|
+
readonly maxNodes: number;
|
|
71
|
+
readonly maxArrayLength: number;
|
|
72
|
+
readonly maxObjectKeys: number;
|
|
73
|
+
}
|
|
74
|
+
export declare const minimumKnowledgeAgentResponseBytes: number;
|
|
75
|
+
export declare const defaultKnowledgeAgentLimits: KnowledgeAgentLimits;
|
|
76
|
+
export interface KnowledgeAgentDispatcherOptions {
|
|
77
|
+
readonly application: KnowledgeBaseApplication;
|
|
78
|
+
/** Exact protected-resource identifier configured by this host. */
|
|
79
|
+
readonly resource: string;
|
|
80
|
+
/**
|
|
81
|
+
* Positive safe integers may only reduce the fixed component ceilings.
|
|
82
|
+
* maxResponseBytes must reserve at least 2,048 bytes for acknowledgements.
|
|
83
|
+
*/
|
|
84
|
+
readonly limits?: Partial<KnowledgeAgentLimits>;
|
|
85
|
+
}
|
|
86
|
+
export interface KnowledgeAgentDispatcher {
|
|
87
|
+
readonly limits: KnowledgeAgentLimits;
|
|
88
|
+
dispatch(identity: KnowledgeAgentIdentity, envelope: unknown): Promise<KnowledgeAgentResponse>;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { knowledgePermissions } from "@pegma/knowledge-base-contracts";
|
|
2
|
+
import { knowledgeLimits } from "@pegma/knowledge-base-core";
|
|
3
|
+
/** Scopes are existing application permission names, never a second role model. */
|
|
4
|
+
export const knowledgeAgentScopes = Object.freeze({
|
|
5
|
+
draftRead: knowledgePermissions.draftRead,
|
|
6
|
+
draftWrite: knowledgePermissions.draftWrite,
|
|
7
|
+
evidenceSubmit: knowledgePermissions.evidenceSubmit,
|
|
8
|
+
});
|
|
9
|
+
export const knowledgeAgentOperations = Object.freeze([
|
|
10
|
+
"getDraft",
|
|
11
|
+
"createDraft",
|
|
12
|
+
"updateDraft",
|
|
13
|
+
"getValidationRequirements",
|
|
14
|
+
"submitEvidence",
|
|
15
|
+
]);
|
|
16
|
+
export const knowledgeAgentToolNames = Object.freeze({
|
|
17
|
+
getDraft: "knowledge_v1_get_draft",
|
|
18
|
+
createDraft: "knowledge_v1_create_draft",
|
|
19
|
+
updateDraft: "knowledge_v1_update_draft",
|
|
20
|
+
getValidationRequirements: "knowledge_v1_get_validation_requirements",
|
|
21
|
+
submitEvidence: "knowledge_v1_submit_evidence",
|
|
22
|
+
});
|
|
23
|
+
// A complete 32 KiB guide or sixteen 1,000-character evidence steps, including
|
|
24
|
+
// UTF-8 expansion, receipt, metadata, and JSON framing. Never truncate a guide.
|
|
25
|
+
const completeMessageBytes = knowledgeLimits.contentBytes * 4;
|
|
26
|
+
// Reserve a complete mutation acknowledgement before any operation can run.
|
|
27
|
+
// Four UTF-8 bytes per identifier character is conservative for the core's
|
|
28
|
+
// character bound; JSON escapes are smaller. Generation/revision, SHA-256, and
|
|
29
|
+
// 512 bytes of fixed keys/version/operation/state framing fit the remainder.
|
|
30
|
+
// Round that ceiling up to a whole KiB (currently 2,048 bytes), so lowering the
|
|
31
|
+
// response budget cannot strand either a new commit or a historical replay.
|
|
32
|
+
const maximumMutationAcknowledgementBytes = knowledgeLimits.identifierCharacters * 4 +
|
|
33
|
+
String(Number.MAX_SAFE_INTEGER).length * 2 +
|
|
34
|
+
64 +
|
|
35
|
+
512;
|
|
36
|
+
export const minimumKnowledgeAgentResponseBytes = Math.ceil(maximumMutationAcknowledgementBytes / 1_024) * 1_024;
|
|
37
|
+
export const defaultKnowledgeAgentLimits = Object.freeze({
|
|
38
|
+
maxRequestBytes: completeMessageBytes,
|
|
39
|
+
maxResponseBytes: completeMessageBytes,
|
|
40
|
+
maxDepth: 12,
|
|
41
|
+
maxNodes: 1_024,
|
|
42
|
+
maxArrayLength: knowledgeLimits.requirements,
|
|
43
|
+
maxObjectKeys: 32,
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,mFAAmF;AACnF,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IAChD,SAAS,EAAE,oBAAoB,CAAC,SAAS;IACzC,UAAU,EAAE,oBAAoB,CAAC,UAAU;IAC3C,cAAc,EAAE,oBAAoB,CAAC,cAAc;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC;IACpD,UAAU;IACV,aAAa;IACb,aAAa;IACb,2BAA2B;IAC3B,gBAAgB;CACR,CAAC,CAAC;AAIZ,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC;IACnD,QAAQ,EAAE,wBAAwB;IAClC,WAAW,EAAE,2BAA2B;IACxC,WAAW,EAAE,2BAA2B;IACxC,yBAAyB,EAAE,0CAA0C;IACrE,cAAc,EAAE,8BAA8B;CACY,CAAC,CAAC;AA4E9D,+EAA+E;AAC/E,gFAAgF;AAChF,MAAM,oBAAoB,GAAG,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC;AAE9D,4EAA4E;AAC5E,2EAA2E;AAC3E,+EAA+E;AAC/E,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAC5E,MAAM,mCAAmC,GACvC,eAAe,CAAC,oBAAoB,GAAG,CAAC;IACxC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC;IAC1C,EAAE;IACF,GAAG,CAAC;AACN,MAAM,CAAC,MAAM,kCAAkC,GAC7C,IAAI,CAAC,IAAI,CAAC,mCAAmC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAEjE,MAAM,CAAC,MAAM,2BAA2B,GAAyB,MAAM,CAAC,MAAM,CAAC;IAC7E,eAAe,EAAE,oBAAoB;IACrC,gBAAgB,EAAE,oBAAoB;IACtC,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,KAAK;IACf,cAAc,EAAE,eAAe,CAAC,YAAY;IAC5C,aAAa,EAAE,EAAE;CAClB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,45 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pegma/knowledge-base-mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Optional MCP transport for authorized Pegma knowledge authoring and validation.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"sideEffects": false,
|
|
8
|
+
"publishConfig": {
|
|
9
|
+
"access": "public"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist/**/*.d.ts",
|
|
13
|
+
"dist/**/*.d.ts.map",
|
|
14
|
+
"dist/**/*.js",
|
|
15
|
+
"dist/**/*.js.map"
|
|
16
|
+
],
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"import": "./dist/index.js"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=22"
|
|
25
|
+
},
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "git+https://github.com/pegma-dev/knowledge-base.git",
|
|
29
|
+
"directory": "packages/mcp"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@cfworker/json-schema": "4.1.6",
|
|
33
|
+
"@modelcontextprotocol/sdk": "1.32.2",
|
|
34
|
+
"@pegma/authorization-core": "0.4.0",
|
|
35
|
+
"@pegma/knowledge-base-application": "0.1.1",
|
|
36
|
+
"@pegma/knowledge-base-contracts": "0.1.1",
|
|
37
|
+
"@pegma/knowledge-base-core": "0.1.1",
|
|
38
|
+
"zod": "4.6.7"
|
|
39
|
+
},
|
|
40
|
+
"scripts": {
|
|
41
|
+
"build": "tsc -p tsconfig.json",
|
|
42
|
+
"check": "tsc -p tsconfig.json --noEmit",
|
|
43
|
+
"prepack": "pnpm run --silent build"
|
|
44
|
+
}
|
|
45
|
+
}
|