@mcsherrylabs/evolver-mcp 0.12.0 → 0.14.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/application-signer.d.ts +16 -0
- package/dist/application-signer.d.ts.map +1 -0
- package/dist/application-signer.js +55 -0
- package/dist/application-signer.js.map +1 -0
- package/dist/approved-request.d.ts +30 -0
- package/dist/approved-request.d.ts.map +1 -0
- package/dist/approved-request.js +167 -0
- package/dist/approved-request.js.map +1 -0
- package/dist/attachment-tools.d.ts +3 -0
- package/dist/attachment-tools.d.ts.map +1 -0
- package/dist/attachment-tools.js +32 -0
- package/dist/attachment-tools.js.map +1 -0
- package/dist/attachments.d.ts +41 -0
- package/dist/attachments.d.ts.map +1 -0
- package/dist/attachments.js +458 -0
- package/dist/attachments.js.map +1 -0
- package/dist/content-file-tools.d.ts +3 -0
- package/dist/content-file-tools.d.ts.map +1 -0
- package/dist/content-file-tools.js +67 -0
- package/dist/content-file-tools.js.map +1 -0
- package/dist/content-files.d.ts +32 -0
- package/dist/content-files.d.ts.map +1 -0
- package/dist/content-files.js +79 -0
- package/dist/content-files.js.map +1 -0
- package/dist/content-ranges.d.ts +41 -0
- package/dist/content-ranges.d.ts.map +1 -0
- package/dist/content-ranges.js +75 -0
- package/dist/content-ranges.js.map +1 -0
- package/dist/files.d.ts +60 -0
- package/dist/files.d.ts.map +1 -0
- package/dist/files.js +355 -0
- package/dist/files.js.map +1 -0
- package/dist/group-crypto-tools.d.ts +3 -0
- package/dist/group-crypto-tools.d.ts.map +1 -0
- package/dist/group-crypto-tools.js +47 -0
- package/dist/group-crypto-tools.js.map +1 -0
- package/dist/group-crypto.d.ts +24 -0
- package/dist/group-crypto.d.ts.map +1 -0
- package/dist/group-crypto.js +135 -0
- package/dist/group-crypto.js.map +1 -0
- package/dist/group-key-provider.d.ts +30 -0
- package/dist/group-key-provider.d.ts.map +1 -0
- package/dist/group-key-provider.js +72 -0
- package/dist/group-key-provider.js.map +1 -0
- package/dist/group-keys.d.ts +34 -0
- package/dist/group-keys.d.ts.map +1 -0
- package/dist/group-keys.js +88 -0
- package/dist/group-keys.js.map +1 -0
- package/dist/http-profiles.d.ts +47 -0
- package/dist/http-profiles.d.ts.map +1 -0
- package/dist/http-profiles.js +161 -0
- package/dist/http-profiles.js.map +1 -0
- package/dist/human-approval.d.ts +14 -0
- package/dist/human-approval.d.ts.map +1 -0
- package/dist/human-approval.js +34 -0
- package/dist/human-approval.js.map +1 -0
- package/dist/inbox.d.ts +1 -1
- package/dist/inbox.d.ts.map +1 -1
- package/dist/inbox.js +1 -1
- package/dist/inbox.js.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +94 -41
- package/dist/index.js.map +1 -1
- package/dist/login-profiles.d.ts +25 -0
- package/dist/login-profiles.d.ts.map +1 -0
- package/dist/login-profiles.js +77 -0
- package/dist/login-profiles.js.map +1 -0
- package/dist/login-tools.d.ts +3 -0
- package/dist/login-tools.d.ts.map +1 -0
- package/dist/login-tools.js +27 -0
- package/dist/login-tools.js.map +1 -0
- package/dist/login.d.ts +36 -0
- package/dist/login.d.ts.map +1 -0
- package/dist/login.js +144 -0
- package/dist/login.js.map +1 -0
- package/dist/mcp.d.ts +2 -2
- package/dist/mcp.d.ts.map +1 -1
- package/dist/p2p-tools.d.ts +3 -0
- package/dist/p2p-tools.d.ts.map +1 -0
- package/dist/p2p-tools.js +52 -0
- package/dist/p2p-tools.js.map +1 -0
- package/dist/p2p.d.ts +67 -0
- package/dist/p2p.d.ts.map +1 -0
- package/dist/p2p.js +326 -0
- package/dist/p2p.js.map +1 -0
- package/dist/processor.d.ts +1 -1
- package/dist/processor.d.ts.map +1 -1
- package/dist/processor.js +1 -1
- package/dist/processor.js.map +1 -1
- package/dist/proof-attempts.d.ts +19 -0
- package/dist/proof-attempts.d.ts.map +1 -0
- package/dist/proof-attempts.js +30 -0
- package/dist/proof-attempts.js.map +1 -0
- package/dist/signed-http-tools.d.ts +3 -0
- package/dist/signed-http-tools.d.ts.map +1 -0
- package/dist/signed-http-tools.js +33 -0
- package/dist/signed-http-tools.js.map +1 -0
- package/dist/signed-http.d.ts +30 -0
- package/dist/signed-http.d.ts.map +1 -0
- package/dist/signed-http.js +114 -0
- package/dist/signed-http.js.map +1 -0
- package/dist/tools.d.ts +29 -4
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +24 -10
- package/dist/tools.js.map +1 -1
- package/dist/transaction-interchange-tools.d.ts +3 -0
- package/dist/transaction-interchange-tools.d.ts.map +1 -0
- package/dist/transaction-interchange-tools.js +41 -0
- package/dist/transaction-interchange-tools.js.map +1 -0
- package/dist/transaction-interchange.d.ts +141 -0
- package/dist/transaction-interchange.d.ts.map +1 -0
- package/dist/transaction-interchange.js +502 -0
- package/dist/transaction-interchange.js.map +1 -0
- package/dist/transaction-policy.d.ts +32 -0
- package/dist/transaction-policy.d.ts.map +1 -0
- package/dist/transaction-policy.js +89 -0
- package/dist/transaction-policy.js.map +1 -0
- package/package.json +7 -18
- package/dist/amount.d.ts +0 -23
- package/dist/amount.d.ts.map +0 -1
- package/dist/amount.js +0 -53
- package/dist/amount.js.map +0 -1
- package/dist/channel.d.ts +0 -77
- package/dist/channel.d.ts.map +0 -1
- package/dist/channel.js +0 -287
- package/dist/channel.js.map +0 -1
- package/dist/claim.d.ts +0 -48
- package/dist/claim.d.ts.map +0 -1
- package/dist/claim.js +0 -81
- package/dist/claim.js.map +0 -1
- package/dist/content.d.ts +0 -81
- package/dist/content.d.ts.map +0 -1
- package/dist/content.js +0 -215
- package/dist/content.js.map +0 -1
- package/dist/group-ownership.d.ts +0 -78
- package/dist/group-ownership.d.ts.map +0 -1
- package/dist/group-ownership.js +0 -325
- package/dist/group-ownership.js.map +0 -1
- package/dist/group.d.ts +0 -60
- package/dist/group.d.ts.map +0 -1
- package/dist/group.js +0 -204
- package/dist/group.js.map +0 -1
- package/dist/identity.d.ts +0 -87
- package/dist/identity.d.ts.map +0 -1
- package/dist/identity.js +0 -236
- package/dist/identity.js.map +0 -1
- package/dist/read.d.ts +0 -252
- package/dist/read.d.ts.map +0 -1
- package/dist/read.js +0 -320
- package/dist/read.js.map +0 -1
- package/dist/result.d.ts +0 -110
- package/dist/result.d.ts.map +0 -1
- package/dist/result.js +0 -97
- package/dist/result.js.map +0 -1
- package/dist/signer.d.ts +0 -37
- package/dist/signer.d.ts.map +0 -1
- package/dist/signer.js +0 -76
- package/dist/signer.js.map +0 -1
- package/dist/write.d.ts +0 -208
- package/dist/write.d.ts.map +0 -1
- package/dist/write.js +0 -385
- package/dist/write.js.map +0 -1
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { readFileSync, statSync } from "node:fs";
|
|
2
|
+
import { isValidPrincipalName } from "@mcsherrylabs/evolver-client";
|
|
3
|
+
// Exact request methods admitted by the reviewed SDK approved-request transport (0d724deb).
|
|
4
|
+
export const HTTP_METHODS = ["GET", "HEAD", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"];
|
|
5
|
+
export const HTTP_MAX_TEMPLATE_BYTES = 4096;
|
|
6
|
+
export const HTTP_MAX_HEADER_BYTES = 8192;
|
|
7
|
+
const object = (v) => !!v && typeof v === "object" && !Array.isArray(v);
|
|
8
|
+
const only = (v, allowed) => Object.keys(v).every(k => allowed.includes(k));
|
|
9
|
+
function addressPolicy(raw) {
|
|
10
|
+
if (raw === undefined)
|
|
11
|
+
return undefined;
|
|
12
|
+
if (!Array.isArray(raw) || raw.length < 1 || raw.length > 8)
|
|
13
|
+
throw new Error();
|
|
14
|
+
const addresses = raw.map(ip => {
|
|
15
|
+
if (typeof ip !== "string" || !ip || ip.length > 64 || /[^\x21-\x7e]/.test(ip))
|
|
16
|
+
throw new Error();
|
|
17
|
+
return ip;
|
|
18
|
+
});
|
|
19
|
+
if (new Set(addresses).size !== addresses.length)
|
|
20
|
+
throw new Error();
|
|
21
|
+
return addresses; // Exact IP syntax/classification belongs only to the public SDK factory.
|
|
22
|
+
}
|
|
23
|
+
function pathAllowed(path) {
|
|
24
|
+
return path.startsWith("/") && path.length <= 1024 && !path.includes("//") &&
|
|
25
|
+
path.split("/").every((s, i, a) => (s === "" ? i === 0 || i === a.length - 1 : /^[A-Za-z0-9_.~-]+$/.test(s) && s !== "." && s !== ".."));
|
|
26
|
+
}
|
|
27
|
+
/** Canonical EXACT endpoints only. Reject all percent encoding rather than guessing how a remote
|
|
28
|
+
* router, proxy or framework normalizes it. No query, fragment, placeholder, userinfo or backslash. */
|
|
29
|
+
export function httpEndpoint(raw) {
|
|
30
|
+
if (typeof raw !== "string" || raw.length > 2048 || /[^\x21-\x7e]|[%{}\\]/.test(raw))
|
|
31
|
+
throw new Error();
|
|
32
|
+
const url = new URL(raw);
|
|
33
|
+
if (!["https:", "http:"].includes(url.protocol) || url.username || url.password || url.search || url.hash ||
|
|
34
|
+
url.toString() !== raw || !pathAllowed(url.pathname))
|
|
35
|
+
throw new Error();
|
|
36
|
+
return url;
|
|
37
|
+
}
|
|
38
|
+
export function resolveHttpProfiles(raw) {
|
|
39
|
+
try {
|
|
40
|
+
if (!object(raw) || !only(raw, ["profiles"]) || !Array.isArray(raw.profiles) || raw.profiles.length > 16)
|
|
41
|
+
throw new Error();
|
|
42
|
+
const names = new Set();
|
|
43
|
+
const profiles = raw.profiles.map((v) => {
|
|
44
|
+
if (!object(v) || !only(v, ["name", "principal", "keyLabel", "audience", "origin", "targets", "maxTtlSeconds", "challengeUrl", "localAddresses", "denyAddresses", "caPem"]))
|
|
45
|
+
throw new Error();
|
|
46
|
+
if (typeof v.name !== "string" || !/^[a-z][a-z0-9-]{0,63}$/.test(v.name) || names.has(v.name))
|
|
47
|
+
throw new Error();
|
|
48
|
+
names.add(v.name);
|
|
49
|
+
if (typeof v.principal !== "string" || !isValidPrincipalName(v.principal) || typeof v.keyLabel !== "string" || v.keyLabel.length > 128 || /[^\x20-\x7e]/.test(v.keyLabel))
|
|
50
|
+
throw new Error();
|
|
51
|
+
if (typeof v.origin !== "string")
|
|
52
|
+
throw new Error();
|
|
53
|
+
const origin = httpEndpoint(v.origin + "/");
|
|
54
|
+
if (origin.origin !== v.origin || origin.pathname !== "/")
|
|
55
|
+
throw new Error();
|
|
56
|
+
if (typeof v.audience !== "string" || v.audience.length > 256 || ![origin.hostname, origin.origin].includes(v.audience))
|
|
57
|
+
throw new Error();
|
|
58
|
+
const local = addressPolicy(v.localAddresses), denied = addressPolicy(v.denyAddresses);
|
|
59
|
+
if (origin.protocol === "http:" && local === undefined)
|
|
60
|
+
throw new Error();
|
|
61
|
+
const caPem = v.caPem;
|
|
62
|
+
if (caPem !== undefined && (origin.protocol !== "https:" || typeof caPem !== "string" || Buffer.byteLength(caPem) > 16384 || !caPem.includes("-----BEGIN CERTIFICATE-----") || caPem.includes("PRIVATE KEY")))
|
|
63
|
+
throw new Error();
|
|
64
|
+
if (!Array.isArray(v.targets) || v.targets.length < 1 || v.targets.length > 16)
|
|
65
|
+
throw new Error();
|
|
66
|
+
const paths = new Set();
|
|
67
|
+
const targets = v.targets.map(t => {
|
|
68
|
+
if (!object(t) || !only(t, ["path", "methods"]) || typeof t.path !== "string" || !pathAllowed(t.path) || paths.has(t.path) ||
|
|
69
|
+
!Array.isArray(t.methods) || t.methods.length < 1 || t.methods.length > HTTP_METHODS.length ||
|
|
70
|
+
t.methods.some(m => !HTTP_METHODS.includes(m)) || new Set(t.methods).size !== t.methods.length)
|
|
71
|
+
throw new Error();
|
|
72
|
+
paths.add(t.path);
|
|
73
|
+
return { path: t.path, methods: [...t.methods] };
|
|
74
|
+
});
|
|
75
|
+
if (typeof v.maxTtlSeconds !== "number" || !Number.isSafeInteger(v.maxTtlSeconds) || v.maxTtlSeconds < 1 || v.maxTtlSeconds > 300)
|
|
76
|
+
throw new Error();
|
|
77
|
+
const challenge = v.challengeUrl === undefined ? undefined : httpEndpoint(v.challengeUrl);
|
|
78
|
+
if (challenge && challenge.origin !== origin.origin)
|
|
79
|
+
throw new Error();
|
|
80
|
+
return { name: v.name, principal: v.principal, keyLabel: v.keyLabel, audience: v.audience, origin: origin.origin,
|
|
81
|
+
targets, maxTtlSeconds: v.maxTtlSeconds, ...(challenge ? { challengeUrl: challenge.toString() } : {}),
|
|
82
|
+
...(local ? { localAddresses: [...local] } : {}), ...(denied ? { denyAddresses: [...denied] } : {}), ...(caPem ? { caPem } : {}) };
|
|
83
|
+
});
|
|
84
|
+
return { ok: true, profiles };
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return { ok: false, error: "Invalid host HTTP profiles: require fixed canonical origin, matching audience/identity/Ed25519 label, exact endpoint/method targets and TTL 1..300. Plain HTTP requires an exact SDK-validated localAddresses policy; no generic local/private access is granted." };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export function loadHttpProfilesFromEnv(env) {
|
|
91
|
+
const path = env.EVOLVER_HTTP_PROFILES_PATH;
|
|
92
|
+
if (!path)
|
|
93
|
+
return { ok: true, profiles: [] };
|
|
94
|
+
try {
|
|
95
|
+
if (!statSync(path).isFile() || statSync(path).size > 65536)
|
|
96
|
+
throw new Error();
|
|
97
|
+
const text = readFileSync(path, "utf8");
|
|
98
|
+
if (Buffer.byteLength(text) > 65536)
|
|
99
|
+
throw new Error();
|
|
100
|
+
return resolveHttpProfiles(JSON.parse(text));
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return { ok: false, error: "Cannot read bounded operator HTTP profiles from EVOLVER_HTTP_PROFILES_PATH; configure host policy and reload MCP." };
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// Node20+ intrinsic: reject the same lone-surrogate loss that content.ts refuses, without
|
|
107
|
+
// introducing a second UTF-8 encoder or changing the file owner's content module.
|
|
108
|
+
const wellFormed = (s) => s.isWellFormed();
|
|
109
|
+
function boundedJson(v, depth = 0, nodes = { count: 0 }) {
|
|
110
|
+
if (++nodes.count > 1024 || depth > 16)
|
|
111
|
+
return false;
|
|
112
|
+
if (typeof v === "string")
|
|
113
|
+
return wellFormed(v);
|
|
114
|
+
if (v === null || typeof v === "boolean")
|
|
115
|
+
return true;
|
|
116
|
+
if (typeof v === "number")
|
|
117
|
+
return Number.isFinite(v);
|
|
118
|
+
if (Array.isArray(v))
|
|
119
|
+
return v.every(x => boundedJson(x, depth + 1, nodes));
|
|
120
|
+
if (!object(v) || (Object.getPrototypeOf(v) !== Object.prototype && Object.getPrototypeOf(v) !== null))
|
|
121
|
+
return false;
|
|
122
|
+
return Object.entries(v).every(([k, x]) => wellFormed(k) && boundedJson(x, depth + 1, nodes));
|
|
123
|
+
}
|
|
124
|
+
export function validateHttpRequest(raw, profile) {
|
|
125
|
+
try {
|
|
126
|
+
if (!object(raw) || !only(raw, ["method", "url", "headers", "body"]) || typeof raw.method !== "string" || !HTTP_METHODS.includes(raw.method) ||
|
|
127
|
+
((raw.method === "GET" || raw.method === "HEAD") && raw.body !== undefined))
|
|
128
|
+
throw new Error();
|
|
129
|
+
const url = httpEndpoint(raw.url);
|
|
130
|
+
if (url.origin !== profile.origin || !profile.targets.some(t => t.path === url.pathname && t.methods.includes(raw.method)))
|
|
131
|
+
throw new Error();
|
|
132
|
+
const hs = raw.headers ?? [];
|
|
133
|
+
if (!Array.isArray(hs) || hs.length > 16)
|
|
134
|
+
throw new Error();
|
|
135
|
+
const seen = new Set(), pairs = [];
|
|
136
|
+
let headerBytes = 0;
|
|
137
|
+
for (const h of hs) {
|
|
138
|
+
if (!object(h) || !only(h, ["name", "value"]) || typeof h.name !== "string" || typeof h.value !== "string" ||
|
|
139
|
+
!/^[!#$%&'*+.^_`|~0-9A-Za-z-]{1,128}$/.test(h.name) || !/^[\x20-\x7e]{0,1024}$/.test(h.value))
|
|
140
|
+
throw new Error();
|
|
141
|
+
const name = h.name.toLowerCase();
|
|
142
|
+
// Match ALL transport control/proxy refusals before approval/signing, plus host-only
|
|
143
|
+
// credential/referrer restrictions. DNS-only preflight cannot validate RequestInit.
|
|
144
|
+
if (seen.has(name) || ["__proto__", "host", "content-length", "transfer-encoding", "connection", "keep-alive", "te", "trailer", "upgrade", "expect", "http2-settings", "forwarded", "via", "accept-encoding", "cookie", "set-cookie", "origin", "referer"].includes(name) || name.startsWith("proxy-") || name.startsWith("x-forwarded-") ||
|
|
145
|
+
(name === "authorization" && !h.value.includes("{answer")))
|
|
146
|
+
throw new Error();
|
|
147
|
+
seen.add(name);
|
|
148
|
+
headerBytes += Buffer.byteLength(h.name + h.value) + 4;
|
|
149
|
+
pairs.push([h.name, h.value]);
|
|
150
|
+
}
|
|
151
|
+
if (headerBytes > HTTP_MAX_HEADER_BYTES)
|
|
152
|
+
throw new Error();
|
|
153
|
+
if (raw.body !== undefined && (!boundedJson(raw.body) || Buffer.byteLength(JSON.stringify(raw.body)) > HTTP_MAX_TEMPLATE_BYTES))
|
|
154
|
+
throw new Error();
|
|
155
|
+
return { ok: true, request: structuredClone({ method: raw.method, url: url.toString(), ...(pairs.length ? { headers: Object.fromEntries(pairs) } : {}), ...(raw.body === undefined ? {} : { body: raw.body }) }) };
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
return { ok: false };
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=http-profiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-profiles.js","sourceRoot":"","sources":["../src/http-profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Approval } from "@mcsherrylabs/evolver-client";
|
|
2
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
|
+
export declare class ApprovalUnavailable extends Error {
|
|
4
|
+
constructor();
|
|
5
|
+
}
|
|
6
|
+
export type HumanApproval = (approval: Approval, signal?: AbortSignal) => Promise<boolean>;
|
|
7
|
+
export type TextHumanApproval = (text: string, signal?: AbortSignal) => Promise<boolean>;
|
|
8
|
+
/** A generic action prompt: transaction approval must NOT impersonate an SDK HTTP request.
|
|
9
|
+
* The operator must trust this client's human UI to render the WHOLE message, not auto-answer.
|
|
10
|
+
* Neither a tool parameter nor ordinary assistant text is an approval source. */
|
|
11
|
+
export declare function createTextHumanApproval(server: McpServer, env: NodeJS.ProcessEnv): TextHumanApproval;
|
|
12
|
+
/** Keep the published SDK's HTTP Approval contract at its own boundary. */
|
|
13
|
+
export declare function createHumanApproval(server: McpServer, env: NodeJS.ProcessEnv): HumanApproval;
|
|
14
|
+
//# sourceMappingURL=human-approval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"human-approval.d.ts","sourceRoot":"","sources":["../src/human-approval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,qBAAa,mBAAoB,SAAQ,KAAK;;CAE7C;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3F,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEzF;;iFAEiF;AACjF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAiBpG;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,aAAa,CAG5F"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export class ApprovalUnavailable extends Error {
|
|
2
|
+
constructor() { super("Host human approval is unavailable; nothing was signed or sent."); }
|
|
3
|
+
}
|
|
4
|
+
/** A generic action prompt: transaction approval must NOT impersonate an SDK HTTP request.
|
|
5
|
+
* The operator must trust this client's human UI to render the WHOLE message, not auto-answer.
|
|
6
|
+
* Neither a tool parameter nor ordinary assistant text is an approval source. */
|
|
7
|
+
export function createTextHumanApproval(server, env) {
|
|
8
|
+
const enabled = env.EVOLVER_HUMAN_APPROVAL === "mcp-form";
|
|
9
|
+
return async (text, signal) => {
|
|
10
|
+
if (signal?.aborted || !enabled || !server.server.getClientCapabilities()?.elicitation?.form)
|
|
11
|
+
throw new ApprovalUnavailable();
|
|
12
|
+
try {
|
|
13
|
+
const response = await server.server.elicitInput({
|
|
14
|
+
mode: "form",
|
|
15
|
+
message: text,
|
|
16
|
+
requestedSchema: {
|
|
17
|
+
type: "object",
|
|
18
|
+
properties: { approve: { type: "boolean", title: "I requested this exact action and approve the complete request shown above", default: false } },
|
|
19
|
+
required: ["approve"],
|
|
20
|
+
},
|
|
21
|
+
}, { timeout: 120_000, signal });
|
|
22
|
+
return response.action === "accept" && response.content?.approve === true;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
throw new ApprovalUnavailable();
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/** Keep the published SDK's HTTP Approval contract at its own boundary. */
|
|
30
|
+
export function createHumanApproval(server, env) {
|
|
31
|
+
const approve = createTextHumanApproval(server, env);
|
|
32
|
+
return (approval, signal) => approve(approval.text, signal);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=human-approval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"human-approval.js","sourceRoot":"","sources":["../src/human-approval.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,gBAAgB,KAAK,CAAC,iEAAiE,CAAC,CAAC,CAAC,CAAC;CAC5F;AAKD;;iFAEiF;AACjF,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,GAAsB;IAC/E,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,KAAK,UAAU,CAAC;IAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC5B,IAAI,MAAM,EAAE,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,WAAW,EAAE,IAAI;YAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAC9H,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;gBAC/C,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,IAAI;gBACb,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,4EAA4E,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;oBACjJ,QAAQ,EAAE,CAAC,SAAS,CAAC;iBACtB;aACF,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACjC,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YAAC,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAAC,CAAC;IAC9C,CAAC,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,GAAsB;IAC3E,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrD,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC"}
|
package/dist/inbox.d.ts
CHANGED
package/dist/inbox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAGvC,wBAAsB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAIpF;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAkC9B"}
|
package/dist/inbox.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Read-only projection of the shared SDK inbox. Reads never advance the node.
|
|
2
2
|
// All retained bodies (including module-handled ones) stay lossless; only the display is bounded.
|
|
3
|
-
import { ok, partial } from "
|
|
3
|
+
import { ok, partial } from "@mcsherrylabs/evolver-core";
|
|
4
4
|
import { channelArgument, processorMissing, processorReadError } from "./processor.js";
|
|
5
5
|
export const INBOX_DEFAULT_LIMIT = 10;
|
|
6
6
|
export const INBOX_MAX_LIMIT = 50;
|
package/dist/inbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kGAAkG;AAClG,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { TSchema } from "typebox";
|
|
1
3
|
/** Resolve the content-listener endpoint from the environment (D-08 analog for content).
|
|
2
4
|
*
|
|
3
5
|
* ⚠️ THE CONTENT LISTENER IS A SEPARATE PORT from the chain API (`ce.evolver.content.http-port`),
|
|
@@ -6,5 +8,14 @@
|
|
|
6
8
|
* exactly this reason, so the single source is the `EVOLVER_CONTENT_URL` environment variable,
|
|
7
9
|
* read once at startup. */
|
|
8
10
|
export declare function contentUrlFromEnv(env: NodeJS.ProcessEnv): string | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Bridge a typebox parameter `TSchema` onto the MCP SDK, which validates tool input with zod
|
|
13
|
+
* (not typebox). A typebox `TSchema` is a JSON Schema object (`{ type, properties, required }`),
|
|
14
|
+
* so this maps the subset the tools declare — `object` of `string`/`number` properties, with
|
|
15
|
+
* `description` carried across and optionality read from `required`. The parameter CONTRACT
|
|
16
|
+
* (names, types, defaults — D-09) lives in `src/tools.ts` as typebox; this is the transport
|
|
17
|
+
* adapter, not a second declaration.
|
|
18
|
+
*/
|
|
19
|
+
export declare function toZod(ts: TSchema): z.ZodType;
|
|
9
20
|
export declare function main(): Promise<void>;
|
|
10
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAsDvC;;;;;;4BAM4B;AAC5B,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS,CAI5E;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,CAyB5C;AAgBD,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA6L1C"}
|
package/dist/index.js
CHANGED
|
@@ -3,16 +3,32 @@
|
|
|
3
3
|
//
|
|
4
4
|
// Phase 1 is read-only: this file constructs a client, wires no signer, loads no key, and
|
|
5
5
|
// introduces no signing/submission path (SAFE-03).
|
|
6
|
-
import { NodeClient } from "@mcsherrylabs/evolver-client";
|
|
6
|
+
import { NodeClient, createApprovedRequestFetch, decodeSignedTransaction, verifySignedTransaction, addTransactionAuthorization } from "@mcsherrylabs/evolver-client";
|
|
7
7
|
import { ProcessorClient } from "@mcsherrylabs/evolver-client/processor-client";
|
|
8
8
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
9
9
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
10
10
|
import { z } from "zod";
|
|
11
11
|
import { loadConfig } from "./config.js";
|
|
12
|
+
import { resolve } from "node:path";
|
|
13
|
+
import { fileRootFromEnv } from "./files.js";
|
|
14
|
+
import { resolveNodeTransport } from "@mcsherrylabs/evolver-core";
|
|
12
15
|
import { toMcpResult } from "./mcp.js";
|
|
13
16
|
import { TOOLS } from "./tools.js";
|
|
14
|
-
import { loadSignerFromEnv } from "
|
|
17
|
+
import { loadSignerFromEnv } from "@mcsherrylabs/evolver-core";
|
|
18
|
+
import { loadGroupKeyProviderFromEnv } from "./group-key-provider.js";
|
|
19
|
+
import { GroupCrypto } from "./group-crypto.js";
|
|
15
20
|
import { hasBootstrapFlag, runBootstrap } from "./bootstrap.js";
|
|
21
|
+
import { loadApplicationSignerFromEnv } from "./application-signer.js";
|
|
22
|
+
import { createHumanApproval, createTextHumanApproval } from "./human-approval.js";
|
|
23
|
+
import { loadLoginProfilesFromEnv } from "./login-profiles.js";
|
|
24
|
+
import { createLoginService } from "./login.js";
|
|
25
|
+
import { createProofAttemptGuard } from "./proof-attempts.js";
|
|
26
|
+
import { loadHttpProfilesFromEnv } from "./http-profiles.js";
|
|
27
|
+
import { createSignedHttpService } from "./signed-http.js";
|
|
28
|
+
import { TransactionInterchange } from "./transaction-interchange.js";
|
|
29
|
+
import { loadTransactionPolicyFromEnv } from "./transaction-policy.js";
|
|
30
|
+
import { PUBLISHED_ATTACHMENT_SDK } from "./attachments.js";
|
|
31
|
+
import { createP2PService, p2pOriginFromEnv } from "./p2p.js";
|
|
16
32
|
// Startup must fit inside the host's handshake budget; ordinary tool/content requests keep the
|
|
17
33
|
// SDK's existing behavior. Each local listener gets at most 3s, including response-body parsing.
|
|
18
34
|
const STARTUP_PROBE_TIMEOUT_MS = 3000;
|
|
@@ -61,7 +77,7 @@ export function contentUrlFromEnv(env) {
|
|
|
61
77
|
* (names, types, defaults — D-09) lives in `src/tools.ts` as typebox; this is the transport
|
|
62
78
|
* adapter, not a second declaration.
|
|
63
79
|
*/
|
|
64
|
-
function toZod(ts) {
|
|
80
|
+
export function toZod(ts) {
|
|
65
81
|
const s = ts;
|
|
66
82
|
const describe = (schema) => typeof s.description === "string" ? schema.describe(s.description) : schema;
|
|
67
83
|
switch (s.type) {
|
|
@@ -85,39 +101,6 @@ function toZod(ts) {
|
|
|
85
101
|
return describe(z.unknown());
|
|
86
102
|
}
|
|
87
103
|
}
|
|
88
|
-
/** Build the fetch the client will use.
|
|
89
|
-
*
|
|
90
|
-
* ⚠️ A TLS option that cannot be honoured is a REFUSAL, never a silent no-op. An `insecure` flag
|
|
91
|
-
* that appears set and does nothing is worse than not offering one: the operator believes the
|
|
92
|
-
* connection is being made on terms that are not being applied.
|
|
93
|
-
*
|
|
94
|
-
* A node's OWN listener presents a self-signed identity certificate; honouring `insecure`/`caFile`
|
|
95
|
-
* needs an HTTP dispatcher (undici's Agent). When TLS trust is configured but no dispatcher can be
|
|
96
|
-
* loaded, this refuses rather than connecting on terms other than the ones configured. */
|
|
97
|
-
async function resolveFetch(tls) {
|
|
98
|
-
if (!tls || (tls.insecure !== true && tls.caFile === undefined))
|
|
99
|
-
return { ok: true, fetch };
|
|
100
|
-
try {
|
|
101
|
-
// A non-literal specifier on purpose: this dependency is OPTIONAL, so the typechecker must not
|
|
102
|
-
// require it to be installed for this package to compile.
|
|
103
|
-
const spec = "undici";
|
|
104
|
-
const undici = (await import(spec));
|
|
105
|
-
const agent = new undici.Agent({
|
|
106
|
-
connect: { rejectUnauthorized: tls.insecure !== true, ...(tls.caFile ? { ca: tls.caFile } : {}) },
|
|
107
|
-
});
|
|
108
|
-
const withDispatcher = (input, init) => fetch(input, { ...(init ?? {}), dispatcher: agent });
|
|
109
|
-
return { ok: true, fetch: withDispatcher };
|
|
110
|
-
}
|
|
111
|
-
catch {
|
|
112
|
-
return {
|
|
113
|
-
ok: false,
|
|
114
|
-
error: "`tls` is configured (insecure or caFile) but this server cannot honour it: no HTTP " +
|
|
115
|
-
"dispatcher is available to apply it. Refusing rather than connecting on terms other " +
|
|
116
|
-
"than the ones configured. Either reach the node through a reverse proxy presenting an " +
|
|
117
|
-
"ordinary trusted certificate, or install the undici dispatcher.",
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
104
|
/** Resolve the config path from the CLI or the environment.
|
|
122
105
|
*
|
|
123
106
|
* The config is named at launch either way: `--config <path>` (flag, or `--config=<path>`), a
|
|
@@ -153,11 +136,17 @@ export async function main() {
|
|
|
153
136
|
process.exit(1);
|
|
154
137
|
}
|
|
155
138
|
const config = loaded.config;
|
|
156
|
-
const f = await
|
|
139
|
+
const f = await resolveNodeTransport(config.tls);
|
|
157
140
|
if (!f.ok) {
|
|
158
141
|
console.error(`evolver-mcp: ${f.error}`);
|
|
159
142
|
process.exit(1);
|
|
160
143
|
}
|
|
144
|
+
const p2pConfig = p2pOriginFromEnv(process.env);
|
|
145
|
+
if (!p2pConfig.ok) {
|
|
146
|
+
console.error(`evolver-mcp: ${p2pConfig.error}`);
|
|
147
|
+
await f.close();
|
|
148
|
+
process.exit(1);
|
|
149
|
+
}
|
|
161
150
|
// Resolve the signing key EAGERLY, before the reachability probe: the key SOURCE is the
|
|
162
151
|
// environment, never the config file (D-07), and a launch without a usable key fails fast here
|
|
163
152
|
// rather than surfacing mid-call. The error names the path, never the key bytes.
|
|
@@ -166,8 +155,15 @@ export async function main() {
|
|
|
166
155
|
console.error(`evolver-mcp: signer error: ${signerResult.error}`);
|
|
167
156
|
process.exit(1);
|
|
168
157
|
}
|
|
158
|
+
// Separately opt-in to encryption; never infer an unwrapper from the transaction signer.
|
|
159
|
+
const groupProvider = loadGroupKeyProviderFromEnv(process.env, config.identity);
|
|
160
|
+
if (!groupProvider.ok) {
|
|
161
|
+
console.error(`evolver-mcp: ${groupProvider.error}`);
|
|
162
|
+
process.exit(1);
|
|
163
|
+
}
|
|
169
164
|
// The node endpoint comes from the config file, never a compile-time constant (SRV-02).
|
|
170
165
|
const client = new NodeClient({ baseUrl: config.url, fetch: f.fetch });
|
|
166
|
+
const groupCrypto = groupProvider.provider ? new GroupCrypto(groupProvider.provider, client) : undefined;
|
|
171
167
|
// The CONTENT endpoint is a SEPARATE listener, resolved from a single source — the
|
|
172
168
|
// `EVOLVER_CONTENT_URL` environment variable — and never derived from `config.url` (T-5-05).
|
|
173
169
|
// A launch without it fails fast here, naming the fix, rather than surfacing a confusing 404
|
|
@@ -180,7 +176,20 @@ export async function main() {
|
|
|
180
176
|
"listener address (e.g. http://127.0.0.1:8441) and relaunch.");
|
|
181
177
|
process.exit(1);
|
|
182
178
|
}
|
|
183
|
-
const contentClient = new NodeClient({ baseUrl: contentUrl, contentBaseUrl: contentUrl,
|
|
179
|
+
const contentClient = new NodeClient({ baseUrl: contentUrl, contentBaseUrl: contentUrl,
|
|
180
|
+
fetch: f.fetch, contentUploadTls: f.contentUploadTls });
|
|
181
|
+
// ONE host-only file capability. All file consumers share its descriptor, policy and slot.
|
|
182
|
+
// Protect the actual CLI-selected config as well as env-selected credentials/trust files.
|
|
183
|
+
let fileRoot;
|
|
184
|
+
try {
|
|
185
|
+
fileRoot = await fileRootFromEnv(process.env, [configPath, process.env.EVOLVER_KEY_PATH, config.tls?.caFile]
|
|
186
|
+
.filter((path) => typeof path === "string" && path.length > 0).map(path => resolve(path)));
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
console.error("evolver-mcp: file access configuration refused; use a dedicated owner-only0700 root outside configured key/policy/config/trust paths.");
|
|
190
|
+
await f.close();
|
|
191
|
+
process.exit(1);
|
|
192
|
+
}
|
|
184
193
|
// GET /content/<missing key> can start a distributed search. Stats reads only local state and
|
|
185
194
|
// identifies the content listener (unlike /status or an arbitrary 404). Never follow a redirect
|
|
186
195
|
// onto a different listener; use the same TLS-aware fetch as the runtime clients.
|
|
@@ -219,6 +228,41 @@ export async function main() {
|
|
|
219
228
|
// Exactly one thin client per stdio session. No worker, database, observation authority,
|
|
220
229
|
// subscription mutation or collector is started here; operator pairing is explicit config.
|
|
221
230
|
const processor = config.processor ? new ProcessorClient(config.processor) : undefined;
|
|
231
|
+
const server = new McpServer({ name: "evolver-mcp", version: "0.1.0" });
|
|
232
|
+
// One host identity/approval/attempt boundary across login and caller-described HTTP.
|
|
233
|
+
// Never inherit operational BLS or insecure node TLS for the relying-service surface.
|
|
234
|
+
const applicationSigner = loadApplicationSignerFromEnv(process.env);
|
|
235
|
+
const approve = createHumanApproval(server, process.env);
|
|
236
|
+
const proofAttempts = createProofAttemptGuard();
|
|
237
|
+
const login = createLoginService({ identity: config.identity, reads: client,
|
|
238
|
+
profiles: loadLoginProfilesFromEnv(process.env), applicationSigner, approve, attempts: proofAttempts, fetch });
|
|
239
|
+
// Published root SDK factory owns fixed-origin DNS/connect/TLS/cancellation. Only immutable
|
|
240
|
+
// host profile options reach it; NEVER substitute global fetch or the node's TLS-aware fetch.
|
|
241
|
+
const signedHttp = createSignedHttpService({ identity: config.identity, reads: client,
|
|
242
|
+
profiles: loadHttpProfilesFromEnv(process.env), applicationSigner, approve, attempts: proofAttempts,
|
|
243
|
+
transport: createApprovedRequestFetch });
|
|
244
|
+
// Existing orchestration consumes actual public registry helpers; no parser/codec fallback.
|
|
245
|
+
const transactionInterchange = new TransactionInterchange({ identity: config.identity,
|
|
246
|
+
chainUrl: config.url, signer: signerResult.signer, reads: client,
|
|
247
|
+
policy: loadTransactionPolicyFromEnv(process.env), approve: createTextHumanApproval(server, process.env),
|
|
248
|
+
files: fileRoot, sdk: { decodeSignedTransaction, verifySignedTransaction, addTransactionAuthorization },
|
|
249
|
+
submitTx: bytes => client.submitTx(bytes), submitTxWithDa: bytes => client.submitTxWithDa(bytes) });
|
|
250
|
+
const p2p = p2pConfig.origin ? createP2PService({ identity: config.identity, applicationSigner,
|
|
251
|
+
reads: client, relay: { origin: p2pConfig.origin,
|
|
252
|
+
client: new NodeClient({ p2pBaseUrl: p2pConfig.origin, fetch: f.fetch }) } }) : undefined;
|
|
253
|
+
const previousClose = server.server.onclose;
|
|
254
|
+
server.server.onclose = () => {
|
|
255
|
+
previousClose?.();
|
|
256
|
+
p2p?.close();
|
|
257
|
+
groupCrypto?.handles.close();
|
|
258
|
+
void (async () => { try {
|
|
259
|
+
await fileRoot?.close();
|
|
260
|
+
}
|
|
261
|
+
finally {
|
|
262
|
+
await f.close();
|
|
263
|
+
} })()
|
|
264
|
+
.catch(() => console.error("evolver-mcp: session resource cleanup incomplete; operator inspection may be required."));
|
|
265
|
+
};
|
|
222
266
|
const ctx = {
|
|
223
267
|
client,
|
|
224
268
|
config,
|
|
@@ -228,12 +272,21 @@ export async function main() {
|
|
|
228
272
|
submitTxWithDa: (bytes) => client.submitTxWithDa(bytes),
|
|
229
273
|
claim: (args) => client.claimIdentityWithProofs(args),
|
|
230
274
|
content: { client: contentClient, contentUrl },
|
|
275
|
+
contentStreamClient: contentClient,
|
|
276
|
+
fileRoot,
|
|
277
|
+
contentFiles: fileRoot ? { files: fileRoot, client: contentClient, contentUrl } : undefined,
|
|
231
278
|
processor,
|
|
279
|
+
groupCrypto,
|
|
280
|
+
attachments: fileRoot && groupCrypto ? { files: fileRoot, client: contentClient, contentUrl,
|
|
281
|
+
groupCrypto, sdk: PUBLISHED_ATTACHMENT_SDK } : undefined,
|
|
282
|
+
login,
|
|
283
|
+
signedHttp,
|
|
284
|
+
p2p,
|
|
285
|
+
transactionInterchange,
|
|
232
286
|
};
|
|
233
|
-
const server = new McpServer({ name: "evolver-mcp", version: "0.1.0" });
|
|
234
287
|
for (const tool of TOOLS) {
|
|
235
|
-
server.registerTool(tool.name, { title: tool.label, description: tool.description, inputSchema: toZod(tool.parameters) }, async (params) => {
|
|
236
|
-
const r = await tool.run(ctx, (params ?? {}));
|
|
288
|
+
server.registerTool(tool.name, { title: tool.label, description: tool.description, inputSchema: toZod(tool.parameters) }, async (params, extra) => {
|
|
289
|
+
const r = await tool.run({ ...ctx, signal: extra.signal }, (params ?? {}));
|
|
237
290
|
// Write tools return an already-mapped MCP result (SubmissionOutcome → {content,isError});
|
|
238
291
|
// read tools return a ToolResult, mapped here. Distinguish by shape: an MCP result carries
|
|
239
292
|
// a `content` array.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,mGAAmG;AACnG,EAAE;AACF,0FAA0F;AAC1F,mDAAmD;AAEnD,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,uBAAuB,EACtE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAEhF,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE9D,+FAA+F;AAC/F,iGAAiG;AACjG,MAAM,wBAAwB,GAAG,IAAI,CAAC;AACtC,KAAK,UAAU,YAAY,CAAC,KAAgD;IAC1E,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,wBAAwB,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,wBAAwB,IAAI,CAAC,CAAC;QAC9G,MAAM,CAAC,CAAC;IACV,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,gGAAgG;AAChG,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACrE,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO;IACtD,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO;IACnE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO;IAClE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO;IAC5E,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CACnF,CAAC,CAAC;AAEH;;;;;;4BAM4B;AAC5B,MAAM,UAAU,iBAAiB,CAAC,GAAsB;IACtD,MAAM,CAAC,GAAG,GAAG,CAAC,mBAAmB,CAAC;IAClC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,KAAK,CAAC,EAAW;IAC/B,MAAM,CAAC,GAAG,EAAwI,CAAC;IACnJ,MAAM,QAAQ,GAAG,CAAC,MAAiB,EAAa,EAAE,CAChD,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE9E,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9B,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9B,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;YAC3C,MAAM,KAAK,GAA8B,EAAE,CAAC;YAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,IAAe,CAAC,CAAC;gBAC1C,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtE,CAAC;YACD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,QAAQ,CAAC,CAAC,CAAC,oBAAoB,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC/E,CAAC;QACD,KAAK,OAAO;YACV,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAE,CAAyB,CAAC,KAAgB,CAAC,CAAC,CAAC;QACrE;YACE,OAAO,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;kGAGkG;AAClG,SAAS,cAAc,CAAC,IAAc,EAAE,GAAsB;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,uBAAuB;IAC3D,CAAC;IACD,OAAO,GAAG,CAAC,kBAAkB,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,iGAAiG;IACjG,iGAAiG;IACjG,gDAAgD;IAChD,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,qBAAqB,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrG,IAAI,CAAC,CAAC,QAAQ;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;;YACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAkB,MAAM,CAAC,MAAM,CAAC;IAE5C,MAAM,CAAC,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,gBAAgB,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wFAAwF;IACxF,+FAA+F;IAC/F,iFAAiF;IACjF,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,8BAA8B,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,yFAAyF;IACzF,MAAM,aAAa,GAAG,2BAA2B,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChF,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,gBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wFAAwF;IACxF,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEzG,mFAAmF;IACnF,6FAA6F;IAC7F,6FAA6F;IAC7F,gGAAgG;IAChG,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CACX,oFAAoF;YAClF,qFAAqF;YACrF,kFAAkF;YAClF,6DAA6D,CAChE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU;QACpF,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC1D,2FAA2F;IAC3F,0FAA0F;IAC1F,IAAI,QAA8B,CAAC;IACnC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,EAC1C,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC;aAC3D,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,uIAAuI,CAAC,CAAC;QACvJ,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,8FAA8F;IAC9F,gGAAgG;IAChG,kFAAkF;IAClF,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAClC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,EAAE;gBAC1E,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;aACnE,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACpG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO;gBACzD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,gDAAgD,UAAU,KAAK,KAAK,EAAE,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,yFAAyF;IACzF,+FAA+F;IAC/F,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAClC,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC;gBACnC,OAAO,EAAE,MAAM,CAAC,GAAG;gBACnB,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;aAC/E,CAAC,CAAC;YACH,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,oCAAoC,MAAM,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,yFAAyF;IACzF,2FAA2F;IAC3F,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvF,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACxE,sFAAsF;IACtF,sFAAsF;IACtF,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,uBAAuB,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;QACzE,QAAQ,EAAE,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;IACjH,4FAA4F;IAC5F,8FAA8F;IAC9F,MAAM,UAAU,GAAG,uBAAuB,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;QACnF,QAAQ,EAAE,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa;QACnG,SAAS,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAE3C,4FAA4F;IAC5F,MAAM,sBAAsB,GAAG,IAAI,sBAAsB,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACnF,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM;QAChE,MAAM,EAAE,4BAA4B,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC;QACxG,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE;QACvG,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtG,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,iBAAiB;QAC5F,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM;YAC9C,MAAM,EAAE,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9F,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IAC5C,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;QAC3B,aAAa,EAAE,EAAE,CAAC;QAClB,GAAG,EAAE,KAAK,EAAE,CAAC;QACb,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7B,KAAK,CAAC,KAAK,IAAI,EAAE,GAAG,IAAI,CAAC;YAAC,MAAM,QAAQ,EAAE,KAAK,EAAE,CAAC;QAAC,CAAC;gBAAS,CAAC;YAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC,EAAE;aACnF,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC,CAAC;IAC1H,CAAC,CAAC;IAEF,MAAM,GAAG,GAAgB;QACvB,MAAM;QACN,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3C,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC;QACvD,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC;QACrD,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE;QAC9C,mBAAmB,EAAE,aAAa;QAClC,QAAQ;QACR,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS;QAC3F,SAAS;QACT,WAAW;QACX,WAAW,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU;YACzF,WAAW,EAAE,GAAG,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC,SAAS;QAC1D,KAAK;QACL,UAAU;QACV,GAAG;QACH,sBAAsB;KACvB,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,YAAY,CACjB,IAAI,CAAC,IAAI,EACT,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EACzF,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;YACtB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC,CAAC;YACtG,2FAA2F;YAC3F,2FAA2F;YAC3F,qBAAqB;YACrB,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YACtF,OAAO,WAAW,CAAC,CAAwB,CAAC,CAAC;QAC/C,CAAC,CACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,8FAA8F;AAC9F,+FAA+F;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5F,IAAI,aAAa,EAAE,CAAC;IAClB,MAAM,IAAI,EAAE,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { SignedRequestParams } from "@mcsherrylabs/evolver-client";
|
|
2
|
+
export interface LoginProfile {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly principal: string;
|
|
5
|
+
readonly keyLabel: string;
|
|
6
|
+
readonly audience: string;
|
|
7
|
+
/** Absent means this operator permits bounded caller-supplied challenges instead. */
|
|
8
|
+
readonly challengeUrl?: string;
|
|
9
|
+
readonly maxTtlSeconds: number;
|
|
10
|
+
readonly redemption: SignedRequestParams["request"];
|
|
11
|
+
}
|
|
12
|
+
export type LoginProfilesResult = {
|
|
13
|
+
ok: true;
|
|
14
|
+
profiles: readonly LoginProfile[];
|
|
15
|
+
} | {
|
|
16
|
+
ok: false;
|
|
17
|
+
error: string;
|
|
18
|
+
};
|
|
19
|
+
export declare const MAX_CHALLENGE_BYTES = 4096;
|
|
20
|
+
/** Profiles are host trust policy, loaded only through an explicit environment path at startup.
|
|
21
|
+
* HTTPS only, exact destinations, no userinfo/fragment/query/placeholder or TLS trust inheritance. */
|
|
22
|
+
export declare function loginEndpoint(raw: unknown): URL;
|
|
23
|
+
export declare function resolveLoginProfiles(raw: unknown): LoginProfilesResult;
|
|
24
|
+
export declare function loadLoginProfilesFromEnv(env: NodeJS.ProcessEnv): LoginProfilesResult;
|
|
25
|
+
//# sourceMappingURL=login-profiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-profiles.d.ts","sourceRoot":"","sources":["../src/login-profiles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,qFAAqF;IACrF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;CACrD;AACD,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACjH,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAIxC;sGACsG;AACtG,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAK/C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CA+BtE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,mBAAmB,CASpF"}
|