@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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Pegma
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,89 @@
1
- # Temporary Holding Version
1
+ # @pegma/knowledge-base-mcp
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Optional KB-04 agent transport source for Pegma Knowledge Base. This package
4
+ adapts the authorized application API to bounded agent commands and the Model
5
+ Context Protocol. Hosts compose it with their protected Knowledge Base
6
+ endpoints; the package does not supply a hosted service.
7
+
8
+ The contracts, core, and application packages remain independent of MCP, HTTP,
9
+ provider SDKs, and login flows. Hosts choose this adapter when exposing agent
10
+ access. The adapter pins `@modelcontextprotocol/sdk` at `1.32.2` and `zod` at
11
+ `4.6.7`; it composes the matching exact Knowledge Base package versions declared
12
+ in its dependencies.
13
+
14
+ The MCP adapter explicitly uses the SDK's Workers-compatible JSON Schema
15
+ validator, which requires no generated code. Its `@cfworker/json-schema`
16
+ dependency is pinned at `4.1.6` and required by this package even though the
17
+ SDK declares it as an optional peer. Packed consumers receive the validator
18
+ without needing to discover or install that peer themselves.
19
+
20
+ ## Trust and composition
21
+
22
+ The host owns credential issuance, authentication, resource binding, current
23
+ authorization, and evidence verification. Compose the adapter with the
24
+ Knowledge Base application and host authentication ports. Agent Access is a
25
+ separate producer; it is not a runtime dependency of this package. An opaque
26
+ credential, caller-supplied actor, or claimed evidence result does not establish
27
+ an authenticated `AccessContext` or trusted evidence.
28
+
29
+ Agent operations use the same current-resource authorization, application
30
+ generation, immutable evidence, replay, and publication rules as other
31
+ application callers. Agents can prepare drafts and submit evidence through the
32
+ declared tool surface. Review and publication remain separate staff authority.
33
+ The adapter never executes article steps, fetches evidence URLs, provisions a
34
+ runner, or creates a second database or identity system.
35
+
36
+ `createKnowledgeAgentDispatcher` provides the shared operation boundary.
37
+ `knowledgeAgentScopes`, `knowledgeAgentOperations`, and
38
+ `knowledgeAgentToolNames` declare its finite surface. Inputs are validated
39
+ against shared internal schemas and fixed component ceilings before dispatch.
40
+ Errors use bounded public responses rather than exposing internal exceptions
41
+ or private evidence and provenance.
42
+
43
+ `createKnowledgeAgentHttp` and `createKnowledgeAgentMcp` expose that dispatcher
44
+ through host-configured protected endpoints. Both require fresh host
45
+ authentication and admission control on every request; neither issues tokens.
46
+
47
+ The [host composition contract](https://github.com/pegma-dev/knowledge-base/blob/v0.1.1/docs/HOST_COMPOSITION.md)
48
+ describes authenticated contexts, trusted evidence, replay, and safe DTOs. The
49
+ [retrieval contract](https://github.com/pegma-dev/knowledge-base/blob/v0.1.1/docs/RETRIEVAL.md)
50
+ describes authoritative current-publication confirmation and audience boundaries.
51
+
52
+ ## Local verification and release
53
+
54
+ Repository development uses Node 22.6.0+ or 24 with pnpm 10.34.5:
55
+
56
+ ```sh
57
+ pnpm install --frozen-lockfile
58
+ pnpm run format:check
59
+ pnpm run check
60
+ pnpm test
61
+ pnpm example
62
+ pnpm run release:check
63
+ pnpm run agent:proof
64
+ ```
65
+
66
+ `release:check` packs and installs all four prepared Knowledge Base packages
67
+ in an isolated temporary consumer, verifies their actual artifact bytes and
68
+ inventory, and imports their public entry points without workspace links.
69
+ `agent:proof` exercises the authenticated SDK path with an exact released Agent
70
+ Access registry producer and the four packed KB artifacts in a fresh temporary
71
+ consumer, with lifecycle scripts disabled. Agent Access remains a proof
72
+ dependency rather than this package's runtime dependency. These local checks
73
+ establish neither live host acceptance nor KB trusted npm
74
+ publication.
75
+
76
+ Each package has its own README, MIT LICENSE, build-on-prepack hook, and
77
+ compiled-test exclusion. All four package versions remain synchronized with
78
+ exact internal dependency pins. Publishing, release tags, trusted-publisher configuration, and
79
+ host activation are separate maintainer operations in the
80
+ [release procedure](https://github.com/pegma-dev/knowledge-base/blob/v0.1.1/docs/RELEASING.md).
81
+ Documentation links target this package's release tag rather than development
82
+ `main`. During release preparation that tag may still be pending; it is created
83
+ after the reviewed merge and before publishing. Source readers can use the
84
+ explicitly moving
85
+ [DEVELOPMENT documentation on main](https://github.com/pegma-dev/knowledge-base/blob/main/docs/HOST_COMPOSITION.md)
86
+ while preparing a release. The versioned contract references remain tag-pinned;
87
+ the DEVELOPMENT link is a source-reader fallback.
88
+
89
+ Built in the open by RetireGolden, LLC.
@@ -0,0 +1,7 @@
1
+ import { type KnowledgeAgentDispatcher, type KnowledgeAgentDispatcherOptions } from "./types.js";
2
+ /**
3
+ * One versioned least-authority boundary shared by HTTP and MCP. Authentication,
4
+ * credential issuance, current access resolution, and rate limits are host work.
5
+ */
6
+ export declare function createKnowledgeAgentDispatcher(options: KnowledgeAgentDispatcherOptions): KnowledgeAgentDispatcher;
7
+ //# sourceMappingURL=dispatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAaA,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EAKrC,MAAM,YAAY,CAAC;AAyHpB;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,+BAA+B,GACvC,wBAAwB,CA0E1B"}
@@ -0,0 +1,155 @@
1
+ import { createKnowledgeAgentErrorResponse, KnowledgeAgentBoundaryError, mapKnowledgeAgentError, } from "./errors.js";
2
+ import { knowledgeAgentEnvelopeSchema, knowledgeAgentResultSchemas, resolveKnowledgeAgentLimits, snapshotKnowledgeAgentJson, } from "./schemas.js";
3
+ import { knowledgeAgentScopes, } from "./types.js";
4
+ const initialPermissions = Object.freeze(Object.values(knowledgeAgentScopes));
5
+ // Trusted host authority is independently bounded. Client payload array limits
6
+ // must not reject an administrator's broad context before it can be attenuated.
7
+ const maximumAuthorityItems = 256;
8
+ const maximumAuthorityCharacters = 1_024;
9
+ function own(value, key) {
10
+ if (value === null ||
11
+ typeof value !== "object" ||
12
+ ![Object.prototype, null].includes(Object.getPrototypeOf(value))) {
13
+ throw new KnowledgeAgentBoundaryError("forbidden");
14
+ }
15
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
16
+ if (descriptor === undefined || !("value" in descriptor))
17
+ throw new KnowledgeAgentBoundaryError("forbidden");
18
+ return descriptor.value;
19
+ }
20
+ function trustedText(value, maximum) {
21
+ if (typeof value !== "string" ||
22
+ value.length === 0 ||
23
+ value.length > maximum ||
24
+ value.trim() !== value ||
25
+ /[\u0000-\u001f\u007f\ud800-\udfff]/u.test(value)) {
26
+ throw new KnowledgeAgentBoundaryError("forbidden");
27
+ }
28
+ return value;
29
+ }
30
+ function knownPermissions(value) {
31
+ if (!Array.isArray(value) ||
32
+ Object.getPrototypeOf(value) !== Array.prototype) {
33
+ throw new KnowledgeAgentBoundaryError("forbidden");
34
+ }
35
+ const length = Object.getOwnPropertyDescriptor(value, "length");
36
+ if (length === undefined ||
37
+ !("value" in length) ||
38
+ typeof length.value !== "number" ||
39
+ length.value > maximumAuthorityItems ||
40
+ Reflect.ownKeys(value).length !== length.value + 1) {
41
+ throw new KnowledgeAgentBoundaryError("forbidden");
42
+ }
43
+ const result = new Set();
44
+ for (let index = 0; index < length.value; index += 1) {
45
+ const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
46
+ if (descriptor === undefined ||
47
+ !("value" in descriptor) ||
48
+ !descriptor.enumerable) {
49
+ throw new KnowledgeAgentBoundaryError("forbidden");
50
+ }
51
+ const permission = descriptor.value;
52
+ if (typeof permission !== "string" ||
53
+ permission.length > maximumAuthorityCharacters) {
54
+ throw new KnowledgeAgentBoundaryError("forbidden");
55
+ }
56
+ if (initialPermissions.some((known) => known === permission))
57
+ result.add(permission);
58
+ }
59
+ return result;
60
+ }
61
+ /** Snapshot the exact least-authority context without reading host role data. */
62
+ function effectiveAccess(identity, resource) {
63
+ if (trustedText(own(identity, "resource"), 2_048) !== resource)
64
+ throw new KnowledgeAgentBoundaryError("forbidden");
65
+ trustedText(own(identity, "clientId"), 200);
66
+ const scopes = knownPermissions(own(identity, "scopes"));
67
+ const access = own(identity, "access");
68
+ const principalId = trustedText(own(access, "principalId"), 200);
69
+ const policyVersion = trustedText(own(access, "policyVersion"), 200);
70
+ const currentPermissions = knownPermissions(own(access, "permissions"));
71
+ return Object.freeze({
72
+ principalId,
73
+ policyVersion,
74
+ roles: Object.freeze([]),
75
+ entitlements: Object.freeze([]),
76
+ permissions: Object.freeze(initialPermissions.filter((permission) => scopes.has(permission) && currentPermissions.has(permission))),
77
+ });
78
+ }
79
+ function requireOperation(access, operation) {
80
+ const has = (permission) => access.permissions.includes(permission);
81
+ const allowed = operation === "getValidationRequirements"
82
+ ? has(knowledgeAgentScopes.draftWrite) ||
83
+ has(knowledgeAgentScopes.evidenceSubmit)
84
+ : has(operation === "getDraft"
85
+ ? knowledgeAgentScopes.draftRead
86
+ : operation === "submitEvidence"
87
+ ? knowledgeAgentScopes.evidenceSubmit
88
+ : knowledgeAgentScopes.draftWrite);
89
+ if (!allowed)
90
+ throw new KnowledgeAgentBoundaryError("forbidden");
91
+ }
92
+ /**
93
+ * One versioned least-authority boundary shared by HTTP and MCP. Authentication,
94
+ * credential issuance, current access resolution, and rate limits are host work.
95
+ */
96
+ export function createKnowledgeAgentDispatcher(options) {
97
+ const limits = resolveKnowledgeAgentLimits(options.limits);
98
+ const resource = trustedText(options.resource, 2_048);
99
+ const application = options.application;
100
+ return Object.freeze({
101
+ limits,
102
+ async dispatch(identity, request) {
103
+ let operation = null;
104
+ try {
105
+ // All caller-owned objects are detached before the first application
106
+ // await. The application still performs current resource/replay checks.
107
+ const access = effectiveAccess(identity, resource);
108
+ const snapshot = snapshotKnowledgeAgentJson(request, limits);
109
+ const parsed = knowledgeAgentEnvelopeSchema.safeParse(snapshot);
110
+ if (!parsed.success)
111
+ throw new KnowledgeAgentBoundaryError("invalid_request");
112
+ const envelope = snapshotKnowledgeAgentJson(parsed.data, limits);
113
+ operation = envelope.operation;
114
+ requireOperation(access, operation);
115
+ let result;
116
+ switch (envelope.operation) {
117
+ case "getDraft":
118
+ result = await application.getDraft(access, envelope.input);
119
+ break;
120
+ case "createDraft":
121
+ result = await application.createDraft(access, envelope.input);
122
+ break;
123
+ case "updateDraft":
124
+ result = await application.updateDraft(access, envelope.input);
125
+ break;
126
+ case "getValidationRequirements":
127
+ result = await application.getValidationRequirements(access, envelope.input);
128
+ break;
129
+ case "submitEvidence":
130
+ result = await application.submitEvidence(access, envelope.input);
131
+ break;
132
+ }
133
+ let detached;
134
+ try {
135
+ detached = snapshotKnowledgeAgentJson(result, limits, limits.maxResponseBytes);
136
+ }
137
+ catch (error) {
138
+ if (error instanceof KnowledgeAgentBoundaryError &&
139
+ error.code === "capacity") {
140
+ throw error;
141
+ }
142
+ throw new KnowledgeAgentBoundaryError("unavailable");
143
+ }
144
+ const safe = knowledgeAgentResultSchemas[operation].safeParse(detached);
145
+ if (!safe.success)
146
+ throw new KnowledgeAgentBoundaryError("unavailable");
147
+ return snapshotKnowledgeAgentJson({ apiVersion: "1", operation, result: safe.data }, limits, limits.maxResponseBytes);
148
+ }
149
+ catch (error) {
150
+ return createKnowledgeAgentErrorResponse(mapKnowledgeAgentError(error).code, operation);
151
+ }
152
+ },
153
+ });
154
+ }
155
+ //# sourceMappingURL=dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { KnowledgeAgentError, KnowledgeAgentErrorCode, KnowledgeAgentFailure, KnowledgeAgentOperation } from "./types.js";
2
+ /** Internal classification only; never exposes an exception or its message. */
3
+ export declare class KnowledgeAgentBoundaryError extends Error {
4
+ readonly code: KnowledgeAgentErrorCode;
5
+ constructor(code: KnowledgeAgentErrorCode);
6
+ }
7
+ /** Unknown application/storage/verifier failures become content-free 503s. */
8
+ export declare function mapKnowledgeAgentError(error: unknown): KnowledgeAgentError;
9
+ export declare function createKnowledgeAgentErrorResponse(code: KnowledgeAgentErrorCode, operation?: KnowledgeAgentOperation | null): KnowledgeAgentFailure;
10
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAyCpB,+EAA+E;AAC/E,qBAAa,2BAA4B,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,uBAAuB;IAAlD,YAAqB,IAAI,EAAE,uBAAuB,EAGjD;CACF;AAED,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAc1E;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,uBAAuB,EAC7B,SAAS,GAAE,uBAAuB,GAAG,IAAW,GAC/C,qBAAqB,CAEvB"}
package/dist/errors.js ADDED
@@ -0,0 +1,75 @@
1
+ import { KnowledgeBaseAuthorizationError, KnowledgeBaseNotFoundError, KnowledgeBasePrerequisiteError, RepositoryCapacityError, RepositoryConflictError, } from "@pegma/knowledge-base-application";
2
+ import { KnowledgeBaseError } from "@pegma/knowledge-base-core";
3
+ const errors = Object.freeze({
4
+ invalid_request: Object.freeze({
5
+ code: "invalid_request",
6
+ status: 400,
7
+ message: "Invalid knowledge request.",
8
+ }),
9
+ forbidden: Object.freeze({
10
+ code: "forbidden",
11
+ status: 403,
12
+ message: "Knowledge access is forbidden.",
13
+ }),
14
+ not_found: Object.freeze({
15
+ code: "not_found",
16
+ status: 404,
17
+ message: "Knowledge resource is unavailable.",
18
+ }),
19
+ conflict: Object.freeze({
20
+ code: "conflict",
21
+ status: 409,
22
+ message: "Knowledge command conflicts with current state.",
23
+ }),
24
+ capacity: Object.freeze({
25
+ code: "capacity",
26
+ status: 413,
27
+ message: "Knowledge request or result exceeds capacity.",
28
+ }),
29
+ prerequisite: Object.freeze({
30
+ code: "prerequisite",
31
+ status: 412,
32
+ message: "Knowledge prerequisite is not ready.",
33
+ }),
34
+ unavailable: Object.freeze({
35
+ code: "unavailable",
36
+ status: 503,
37
+ message: "Knowledge service is unavailable.",
38
+ }),
39
+ });
40
+ /** Internal classification only; never exposes an exception or its message. */
41
+ export class KnowledgeAgentBoundaryError extends Error {
42
+ code;
43
+ constructor(code) {
44
+ super("Knowledge agent boundary rejected data");
45
+ this.code = code;
46
+ this.name = "KnowledgeAgentBoundaryError";
47
+ }
48
+ }
49
+ /** Unknown application/storage/verifier failures become content-free 503s. */
50
+ export function mapKnowledgeAgentError(error) {
51
+ if (error instanceof KnowledgeAgentBoundaryError)
52
+ return errors[error.code];
53
+ if (error instanceof KnowledgeBaseAuthorizationError)
54
+ return errors.forbidden;
55
+ if (error instanceof KnowledgeBaseNotFoundError)
56
+ return errors.not_found;
57
+ if (error instanceof RepositoryConflictError)
58
+ return errors.conflict;
59
+ if (error instanceof RepositoryCapacityError)
60
+ return errors.capacity;
61
+ if (error instanceof KnowledgeBasePrerequisiteError)
62
+ return errors.prerequisite;
63
+ if (error instanceof KnowledgeBaseError) {
64
+ if (error.code === "invalid")
65
+ return errors.invalid_request;
66
+ if (error.code === "conflict")
67
+ return errors.conflict;
68
+ return errors.prerequisite;
69
+ }
70
+ return errors.unavailable;
71
+ }
72
+ export function createKnowledgeAgentErrorResponse(code, operation = null) {
73
+ return Object.freeze({ apiVersion: "1", operation, error: errors[code] });
74
+ }
75
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC1B,8BAA8B,EAC9B,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAShE,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,4BAA4B;KACtC,CAAC;IACF,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;QACvB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,gCAAgC;KAC1C,CAAC;IACF,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;QACvB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,oCAAoC;KAC9C,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,iDAAiD;KAC3D,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,+CAA+C;KACzD,CAAC;IACF,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,mCAAmC;KAC7C,CAAC;CACH,CAAC,CAAC;AAEL,+EAA+E;AAC/E,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAC/B,IAAI;IAAzB,YAAqB,IAA6B;QAChD,KAAK,CAAC,wCAAwC,CAAC,CAAC;oBAD7B,IAAI;QAEvB,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAED,8EAA8E;AAC9E,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,KAAK,YAAY,2BAA2B;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5E,IAAI,KAAK,YAAY,+BAA+B;QAAE,OAAO,MAAM,CAAC,SAAS,CAAC;IAC9E,IAAI,KAAK,YAAY,0BAA0B;QAAE,OAAO,MAAM,CAAC,SAAS,CAAC;IACzE,IAAI,KAAK,YAAY,uBAAuB;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;IACrE,IAAI,KAAK,YAAY,uBAAuB;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;IACrE,IAAI,KAAK,YAAY,8BAA8B;QACjD,OAAO,MAAM,CAAC,YAAY,CAAC;IAC7B,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,eAAe,CAAC;QAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;QACtD,OAAO,MAAM,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,IAA6B,EAC7B,SAAS,GAAmC,IAAI;IAEhD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5E,CAAC"}
package/dist/http.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import type { KnowledgeAgentDispatcher } from "./types.js";
2
+ import type { KnowledgeAgentTransportOptions } from "./transport-common.js";
3
+ export interface KnowledgeAgentHttpOptions extends KnowledgeAgentTransportOptions {
4
+ /** Exact canonical versioned API URL; the protected resource remains MCP. */
5
+ readonly apiUrl: string;
6
+ readonly dispatcher: KnowledgeAgentDispatcher;
7
+ }
8
+ export interface KnowledgeAgentHttp {
9
+ /** Null leaves unmatched paths to the host's router. */
10
+ handle(request: Request): Promise<Response | null>;
11
+ }
12
+ /** Portable Fetch adapter: host credentials and admission, shared application law. */
13
+ export declare function createKnowledgeAgentHttp(options: KnowledgeAgentHttpOptions): KnowledgeAgentHttp;
14
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAU3D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,WAAW,yBAA0B,SAAQ,8BAA8B;IAC/E,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC,wDAAwD;IACxD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;CACpD;AAED,sFAAsF;AACtF,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,yBAAyB,GACjC,kBAAkB,CA6CpB"}
package/dist/http.js ADDED
@@ -0,0 +1,28 @@
1
+ import { authorizeKnowledgeAgentRequest, knowledgeAgentJsonResponse, knowledgeAgentRequestMatches, knowledgeAgentTransportError, readKnowledgeAgentJsonRequest, secureKnowledgeAgentResponse, validateKnowledgeAgentTransportOptions, } from "./transport-common.js";
2
+ /** Portable Fetch adapter: host credentials and admission, shared application law. */
3
+ export function createKnowledgeAgentHttp(options) {
4
+ const configuration = validateKnowledgeAgentTransportOptions(options, options.apiUrl, "http");
5
+ const dispatcher = options.dispatcher;
6
+ return Object.freeze({
7
+ async handle(request) {
8
+ if (!knowledgeAgentRequestMatches(request, configuration))
9
+ return null;
10
+ const identity = await authorizeKnowledgeAgentRequest(request, configuration);
11
+ if (identity instanceof Response)
12
+ return identity;
13
+ if (request.method !== "POST")
14
+ return knowledgeAgentTransportError("method_not_allowed", request, configuration);
15
+ const parsed = await readKnowledgeAgentJsonRequest(request, dispatcher.limits);
16
+ if (parsed instanceof Response)
17
+ return secureKnowledgeAgentResponse(parsed, request, configuration);
18
+ try {
19
+ const response = await dispatcher.dispatch(identity, parsed.value);
20
+ return knowledgeAgentJsonResponse(response, "error" in response ? response.error.status : 200, dispatcher.limits.maxResponseBytes, request, configuration);
21
+ }
22
+ catch {
23
+ return knowledgeAgentTransportError("unavailable", request, configuration);
24
+ }
25
+ },
26
+ });
27
+ }
28
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AACA,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,EAC5B,sCAAsC,GACvC,MAAM,uBAAuB,CAAC;AAc/B,sFAAsF;AACtF,MAAM,UAAU,wBAAwB,CACtC,OAAkC;IAElC,MAAM,aAAa,GAAG,sCAAsC,CAC1D,OAAO,EACP,OAAO,CAAC,MAAM,EACd,MAAM,CACP,CAAC;IACF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,CAAC,MAAM,CAAC,OAAgB;YAC3B,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,aAAa,CAAC;gBAAE,OAAO,IAAI,CAAC;YACvE,MAAM,QAAQ,GAAG,MAAM,8BAA8B,CACnD,OAAO,EACP,aAAa,CACd,CAAC;YACF,IAAI,QAAQ,YAAY,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAClD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;gBAC3B,OAAO,4BAA4B,CACjC,oBAAoB,EACpB,OAAO,EACP,aAAa,CACd,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAChD,OAAO,EACP,UAAU,CAAC,MAAM,CAClB,CAAC;YACF,IAAI,MAAM,YAAY,QAAQ;gBAC5B,OAAO,4BAA4B,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;YACtE,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnE,OAAO,0BAA0B,CAC/B,QAAQ,EACR,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EACjD,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAClC,OAAO,EACP,aAAa,CACd,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,4BAA4B,CACjC,aAAa,EACb,OAAO,EACP,aAAa,CACd,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { createKnowledgeAgentDispatcher } from "./dispatcher.js";
2
+ export { createKnowledgeAgentHttp } from "./http.js";
3
+ export { createKnowledgeAgentMcp } from "./mcp.js";
4
+ export { defaultKnowledgeAgentLimits, knowledgeAgentOperations, knowledgeAgentScopes, knowledgeAgentToolNames, } from "./types.js";
5
+ export type * from "./types.js";
6
+ export type * from "./http.js";
7
+ export type * from "./mcp.js";
8
+ export type { KnowledgeAgentLimitDecision, KnowledgeAgentTransport, KnowledgeAgentTransportOptions, } from "./transport-common.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,mBAAmB,YAAY,CAAC;AAChC,mBAAmB,WAAW,CAAC;AAC/B,mBAAmB,UAAU,CAAC;AAC9B,YAAY,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,uBAAuB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export { createKnowledgeAgentDispatcher } from "./dispatcher.js";
2
+ export { createKnowledgeAgentHttp } from "./http.js";
3
+ export { createKnowledgeAgentMcp } from "./mcp.js";
4
+ export { defaultKnowledgeAgentLimits, knowledgeAgentOperations, knowledgeAgentScopes, knowledgeAgentToolNames, } from "./types.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,YAAY,CAAC"}
package/dist/mcp.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ import { type KnowledgeAgentTransportOptions } from "./transport-common.js";
2
+ import { type KnowledgeAgentDispatcher } from "./types.js";
3
+ export interface KnowledgeAgentMcpOptions extends KnowledgeAgentTransportOptions {
4
+ /** Exact MCP endpoint; it must equal the canonical protected resource. */
5
+ readonly mcpUrl: string;
6
+ readonly dispatcher: KnowledgeAgentDispatcher;
7
+ }
8
+ export interface KnowledgeAgentMcp {
9
+ /** Null leaves unmatched paths to the host's router. */
10
+ handle(request: Request): Promise<Response | null>;
11
+ }
12
+ /**
13
+ * Stateless, JSON-response Streamable HTTP. Every request resolves fresh host
14
+ * authority and owns a short-lived SDK server; no session or credential is cached.
15
+ */
16
+ export declare function createKnowledgeAgentMcp(options: KnowledgeAgentMcpOptions): KnowledgeAgentMcp;
17
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAmBA,OAAO,EAQL,KAAK,8BAA8B,EACpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGL,KAAK,wBAAwB,EAG9B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,wBAAyB,SAAQ,8BAA8B;IAC9E,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;CAC/C;AAED,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;CACpD;AAyND;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,wBAAwB,GAChC,iBAAiB,CAuJnB"}