@agenttrust-sdk/mcp 0.2.0 → 0.2.2
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/embedded-data/devnet-attestor-trace.json +32 -0
- package/dist/embedded-data/devnet-chained-validation.json +52 -0
- package/dist/embedded-data/devnet-counterparties.json +53 -0
- package/dist/embedded-data/devnet-demo-policies.json +46 -0
- package/dist/embedded-data/devnet-namespaces.json +107 -0
- package/dist/embedded-data/devnet-smoke.json +24 -0
- package/dist/embedded-docs/getting-started/architecture-overview.mdx +85 -0
- package/dist/embedded-docs/getting-started/quickstart.mdx +100 -0
- package/dist/embedded-docs/index.mdx +64 -0
- package/dist/embedded-docs/integration-guides/capability-namespaces.mdx +15 -0
- package/dist/embedded-docs/integration-guides/custom-attestor.mdx +15 -0
- package/dist/embedded-docs/integration-guides/facilitator-adapters.mdx +85 -0
- package/dist/embedded-docs/integration-guides/pay-sh-adapter.mdx +110 -0
- package/dist/embedded-docs/integration-guides/x402-facilitator.mdx +79 -0
- package/dist/embedded-docs/programs/policy-vault/counterparty-tier-policy.mdx +15 -0
- package/dist/embedded-docs/programs/policy-vault/index.mdx +68 -0
- package/dist/embedded-docs/programs/policy-vault/kill-switch-policy.mdx +15 -0
- package/dist/embedded-docs/programs/policy-vault/require-validation-policy.mdx +15 -0
- package/dist/embedded-docs/programs/policy-vault/spending-policy.mdx +15 -0
- package/dist/embedded-docs/programs/policy-vault/velocity-policy.mdx +15 -0
- package/dist/embedded-docs/programs/trustgate.mdx +53 -0
- package/dist/embedded-docs/programs/validation-registry.mdx +49 -0
- package/dist/embedded-docs/reference/byte-offset-reference.mdx +20 -0
- package/dist/embedded-docs/reference/changelog.mdx +19 -0
- package/dist/embedded-docs/reference/devnet-program-ids.mdx +24 -0
- package/dist/embedded-docs/reference/discriminator-constants.mdx +16 -0
- package/dist/embedded-docs/reference/formal-verification.mdx +19 -0
- package/dist/embedded-docs/reference/mainnet-program-ids.mdx +16 -0
- package/dist/embedded-docs/reference/quantu-agent-registry.mdx +15 -0
- package/dist/embedded-docs/sdk/atomic-tx-invariant.mdx +37 -0
- package/dist/embedded-docs/sdk/gate-payment.mdx +22 -0
- package/dist/embedded-docs/sdk/index.mdx +73 -0
- package/dist/embedded-docs/sdk/mount-trustgate.mdx +15 -0
- package/dist/embedded-examples/attestor-demo/README.md +100 -0
- package/dist/embedded-examples/pay-sh-demo/README.md +136 -0
- package/dist/embedded-examples/pay-sh-demo/src/deps-real.ts +150 -0
- package/dist/embedded-examples/pay-sh-demo/src/deps.ts +150 -0
- package/dist/embedded-examples/pay-sh-demo/src/index.ts +471 -0
- package/dist/embedded-examples/pay-sh-demo/src/middleware.ts +198 -0
- package/dist/embedded-examples/pay-sh-demo/src/policy.ts +247 -0
- package/dist/embedded-examples/pay-sh-demo/src/x402.ts +140 -0
- package/dist/index.js +73 -18
- package/dist/index.js.map +1 -1
- package/dist/resources/docs.js +68 -46
- package/dist/resources/docs.js.map +1 -1
- package/dist/server.js +6 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/discovery/docs.js +6 -0
- package/dist/tools/discovery/docs.js.map +1 -1
- package/dist/tools/discovery/facilitator-walkthrough.js +43 -18
- package/dist/tools/discovery/facilitator-walkthrough.js.map +1 -1
- package/dist/tools/read/demo-state.js +7 -4
- package/dist/tools/read/demo-state.js.map +1 -1
- package/dist/tools/read/simulate-payment.js +13 -1
- package/dist/tools/read/simulate-payment.js.map +1 -1
- package/dist/trustgate/server/src/facilitators/README.md +241 -0
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -59,7 +59,6 @@ async function main() {
|
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
61
|
const cfg = (0, config_1.loadConfig)();
|
|
62
|
-
const server = (0, server_1.createMcpServer)(cfg);
|
|
63
62
|
if (cfg.transport === "http") {
|
|
64
63
|
// Lazy-import the streamable-HTTP transport so the stdio path
|
|
65
64
|
// doesn't pay the cost of pulling Node's http module on cold start.
|
|
@@ -68,18 +67,43 @@ async function main() {
|
|
|
68
67
|
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|
|
69
68
|
const http = require("http");
|
|
70
69
|
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|
|
70
|
+
const crypto = require("crypto");
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|
|
71
72
|
const pkg = require("../package.json");
|
|
72
73
|
const startedAt = Date.now();
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
const sessions = new Map();
|
|
75
|
+
const IDLE_MS = 30 * 60 * 1000;
|
|
76
|
+
setInterval(() => {
|
|
77
|
+
const now = Date.now();
|
|
78
|
+
for (const [sid, s] of sessions) {
|
|
79
|
+
if (now - s.lastTouched > IDLE_MS) {
|
|
80
|
+
try {
|
|
81
|
+
s.transport.close?.();
|
|
82
|
+
}
|
|
83
|
+
catch { /* ignore */ }
|
|
84
|
+
sessions.delete(sid);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}, 5 * 60 * 1000).unref();
|
|
88
|
+
async function makeSession() {
|
|
89
|
+
const sessionServer = (0, server_1.createMcpServer)(cfg);
|
|
90
|
+
const sessionTransport = new StreamableHTTPServerTransport({
|
|
91
|
+
sessionIdGenerator: () => crypto.randomUUID(),
|
|
92
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
93
|
+
onsessioninitialized: (sid) => {
|
|
94
|
+
sessions.set(sid, { server: sessionServer, transport: sessionTransport, lastTouched: Date.now() });
|
|
95
|
+
},
|
|
96
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
97
|
+
onsessionclosed: (sid) => { sessions.delete(sid); },
|
|
98
|
+
});
|
|
99
|
+
await sessionServer.connect(sessionTransport);
|
|
100
|
+
return { server: sessionServer, transport: sessionTransport, lastTouched: Date.now() };
|
|
101
|
+
}
|
|
102
|
+
const httpServer = http.createServer(async (req, res) => {
|
|
76
103
|
// /healthz: lightweight Fly.io / status-page probe. NOT part
|
|
77
104
|
// of MCP protocol — handled before the transport sees it.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
// uniformly (ok, network, version, uptimeSeconds).
|
|
81
|
-
const path = (req.url ?? "").split("?")[0];
|
|
82
|
-
if (req.method === "GET" && (path === "/healthz" || path === "/")) {
|
|
105
|
+
const url = (req.url ?? "").split("?")[0];
|
|
106
|
+
if (req.method === "GET" && (url === "/healthz" || url === "/")) {
|
|
83
107
|
res.writeHead(200, { "content-type": "application/json" });
|
|
84
108
|
res.end(JSON.stringify({
|
|
85
109
|
ok: true,
|
|
@@ -88,21 +112,51 @@ async function main() {
|
|
|
88
112
|
network: cfg.network,
|
|
89
113
|
rpcUrl: cfg.rpcUrl,
|
|
90
114
|
uptimeSeconds: Math.round((Date.now() - startedAt) / 1000),
|
|
115
|
+
activeSessions: sessions.size,
|
|
91
116
|
// Tools count is the load-bearing surface signal — if
|
|
92
|
-
// an upstream regression dropped a tool, the status
|
|
93
|
-
//
|
|
94
|
-
//
|
|
95
|
-
// pinned expected count here so monitors can alert on
|
|
96
|
-
// mismatch without parsing JSON-RPC.
|
|
117
|
+
// an upstream regression dropped a tool, the status page
|
|
118
|
+
// would show the count drop. Pinned expected so monitors
|
|
119
|
+
// can alert on mismatch without parsing JSON-RPC.
|
|
97
120
|
toolCount: 18,
|
|
98
121
|
}) + "\n");
|
|
99
122
|
return;
|
|
100
123
|
}
|
|
101
|
-
|
|
124
|
+
// Resolve session: existing mcp-session-id wins; otherwise mint
|
|
125
|
+
// a new one (the SDK will only accept the request if it's an
|
|
126
|
+
// initialize call when no session exists).
|
|
127
|
+
const sid = req.headers["mcp-session-id"];
|
|
128
|
+
const sessionId = Array.isArray(sid) ? sid[0] : sid;
|
|
129
|
+
let session;
|
|
130
|
+
if (sessionId && sessions.has(sessionId)) {
|
|
131
|
+
session = sessions.get(sessionId);
|
|
132
|
+
if (session)
|
|
133
|
+
session.lastTouched = Date.now();
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
// No / unknown session id — start a fresh server+transport pair.
|
|
137
|
+
// The transport's onsessioninitialized hook puts it into
|
|
138
|
+
// `sessions` once the SDK assigns a session id. Pre-init
|
|
139
|
+
// requests (initialize itself) reach handleRequest and the
|
|
140
|
+
// transport routes them.
|
|
141
|
+
try {
|
|
142
|
+
session = await makeSession();
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
// eslint-disable-next-line no-console
|
|
146
|
+
console.error("session create failed:", err);
|
|
147
|
+
res.writeHead(500).end();
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
try {
|
|
152
|
+
await session.transport.handleRequest(req, res);
|
|
153
|
+
}
|
|
154
|
+
catch (err) {
|
|
102
155
|
// eslint-disable-next-line no-console
|
|
103
156
|
console.error("transport error:", err);
|
|
104
|
-
res.
|
|
105
|
-
|
|
157
|
+
if (!res.headersSent)
|
|
158
|
+
res.writeHead(500).end();
|
|
159
|
+
}
|
|
106
160
|
});
|
|
107
161
|
httpServer.listen(cfg.httpPort, () => {
|
|
108
162
|
// eslint-disable-next-line no-console
|
|
@@ -110,7 +164,8 @@ async function main() {
|
|
|
110
164
|
});
|
|
111
165
|
return;
|
|
112
166
|
}
|
|
113
|
-
// stdio (default)
|
|
167
|
+
// stdio (default) — single transport, single server.
|
|
168
|
+
const server = (0, server_1.createMcpServer)(cfg);
|
|
114
169
|
const transport = new stdio_js_1.StdioServerTransport();
|
|
115
170
|
await server.connect(transport);
|
|
116
171
|
// Stay alive — stdio's stdin close terminates us cleanly via the SDK.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA;;;;;;;GAOG;;AAEH,wEAAiF;AAEjF,qCAAsC;AACtC,qCAA2C;AAE3C,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BjB,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,mEAAmE;IACnE,gEAAgE;IAChE,8BAA8B;IAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO;IACT,CAAC;IACD,kDAAkD;IAClD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7E,qGAAqG;QACrG,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,mBAAU,GAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/resources/docs.js
CHANGED
|
@@ -50,19 +50,29 @@ const docs_1 = require("../tools/discovery/docs");
|
|
|
50
50
|
Object.defineProperty(exports, "findDocsRoot", { enumerable: true, get: function () { return docs_1.findDocsRoot; } });
|
|
51
51
|
const DOCS_PROTOCOL = "agenttrust://docs/";
|
|
52
52
|
const EXAMPLES_PROT = "agenttrust://examples/";
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Resolve the examples root. Phase N1+N2 fix:
|
|
55
|
+
* `dist/embedded-examples/` is preferred (npm-install path) and the
|
|
56
|
+
* live `examples/` tree under the repo root is the local-clone fallback.
|
|
57
|
+
*
|
|
58
|
+
* Returns one or more candidate roots so callers can try each in order.
|
|
59
|
+
*/
|
|
60
|
+
function findExamplesRoots() {
|
|
61
|
+
const out = [];
|
|
62
|
+
const distExamples = path.resolve(__dirname, "../../embedded-examples");
|
|
63
|
+
if (fs.existsSync(distExamples))
|
|
64
|
+
out.push(distExamples);
|
|
65
|
+
const repoCandidates = [path.resolve(__dirname, "../../.."), process.cwd()];
|
|
66
|
+
for (const c of repoCandidates) {
|
|
59
67
|
try {
|
|
60
|
-
if (fs.existsSync(path.join(c, "Anchor.toml")))
|
|
61
|
-
|
|
68
|
+
if (fs.existsSync(path.join(c, "Anchor.toml"))) {
|
|
69
|
+
out.push(path.join(c, "examples"));
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
62
72
|
}
|
|
63
73
|
catch { /* ignore */ }
|
|
64
74
|
}
|
|
65
|
-
return
|
|
75
|
+
return out;
|
|
66
76
|
}
|
|
67
77
|
function listDocsResources() {
|
|
68
78
|
const corpus = (0, docs_1.loadDocsCorpus)();
|
|
@@ -88,34 +98,45 @@ function readDocsResource(uri) {
|
|
|
88
98
|
}
|
|
89
99
|
const EXAMPLE_DEMOS = ["pay-sh-demo", "attestor-demo"];
|
|
90
100
|
function listExampleResources() {
|
|
91
|
-
const
|
|
101
|
+
const roots = findExamplesRoots();
|
|
102
|
+
const seen = new Set();
|
|
92
103
|
const out = [];
|
|
93
|
-
for (const
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
mimeType: "text/markdown",
|
|
102
|
-
});
|
|
103
|
-
// List the source files non-recursively (one level deep keeps the
|
|
104
|
-
// resource list compact; clients fetch full content via read).
|
|
105
|
-
const srcDir = path.join(demoDir, "src");
|
|
106
|
-
if (fs.existsSync(srcDir)) {
|
|
107
|
-
for (const ent of fs.readdirSync(srcDir, { withFileTypes: true })) {
|
|
108
|
-
if (!ent.isFile())
|
|
109
|
-
continue;
|
|
110
|
-
if (!ent.name.endsWith(".ts"))
|
|
111
|
-
continue;
|
|
104
|
+
for (const root of roots) {
|
|
105
|
+
for (const demo of EXAMPLE_DEMOS) {
|
|
106
|
+
const demoDir = path.join(root, demo);
|
|
107
|
+
if (!fs.existsSync(demoDir))
|
|
108
|
+
continue;
|
|
109
|
+
const readmeUri = `${EXAMPLES_PROT}${demo}/README.md`;
|
|
110
|
+
if (!seen.has(readmeUri) && fs.existsSync(path.join(demoDir, "README.md"))) {
|
|
111
|
+
seen.add(readmeUri);
|
|
112
112
|
out.push({
|
|
113
|
-
uri:
|
|
114
|
-
name: `examples/${demo}/
|
|
115
|
-
description: `${demo}
|
|
116
|
-
mimeType: "text/
|
|
113
|
+
uri: readmeUri,
|
|
114
|
+
name: `examples/${demo}/README.md`,
|
|
115
|
+
description: `${demo} README — install + smoke walkthrough`,
|
|
116
|
+
mimeType: "text/markdown",
|
|
117
117
|
});
|
|
118
118
|
}
|
|
119
|
+
// List the source files non-recursively (one level deep keeps
|
|
120
|
+
// the resource list compact; clients fetch full content via read).
|
|
121
|
+
const srcDir = path.join(demoDir, "src");
|
|
122
|
+
if (fs.existsSync(srcDir)) {
|
|
123
|
+
for (const ent of fs.readdirSync(srcDir, { withFileTypes: true })) {
|
|
124
|
+
if (!ent.isFile())
|
|
125
|
+
continue;
|
|
126
|
+
if (!ent.name.endsWith(".ts"))
|
|
127
|
+
continue;
|
|
128
|
+
const uri = `${EXAMPLES_PROT}${demo}/src/${ent.name}`;
|
|
129
|
+
if (seen.has(uri))
|
|
130
|
+
continue;
|
|
131
|
+
seen.add(uri);
|
|
132
|
+
out.push({
|
|
133
|
+
uri,
|
|
134
|
+
name: `examples/${demo}/src/${ent.name}`,
|
|
135
|
+
description: `${demo} source: ${ent.name}`,
|
|
136
|
+
mimeType: "text/x-typescript",
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
119
140
|
}
|
|
120
141
|
}
|
|
121
142
|
return out;
|
|
@@ -124,24 +145,25 @@ function readExampleResource(uri) {
|
|
|
124
145
|
if (!uri.startsWith(EXAMPLES_PROT))
|
|
125
146
|
return null;
|
|
126
147
|
const rest = uri.slice(EXAMPLES_PROT.length);
|
|
127
|
-
// Validate: only allow accessing files inside examples/<demo>/
|
|
128
148
|
const parts = rest.split("/");
|
|
129
149
|
if (parts.length < 2)
|
|
130
150
|
return null;
|
|
131
151
|
const demo = parts[0];
|
|
132
152
|
if (!EXAMPLE_DEMOS.includes(demo))
|
|
133
153
|
return null;
|
|
134
|
-
const root
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
154
|
+
for (const root of findExamplesRoots()) {
|
|
155
|
+
const fullPath = path.resolve(root, demo, ...parts.slice(1));
|
|
156
|
+
// Path-traversal guard: resolve must remain within the demo dir.
|
|
157
|
+
const allowed = path.resolve(root, demo);
|
|
158
|
+
if (!fullPath.startsWith(allowed + path.sep) && fullPath !== allowed)
|
|
159
|
+
continue;
|
|
160
|
+
if (!fs.existsSync(fullPath) || !fs.statSync(fullPath).isFile())
|
|
161
|
+
continue;
|
|
162
|
+
const mime = fullPath.endsWith(".ts") ? "text/x-typescript"
|
|
163
|
+
: fullPath.endsWith(".md") ? "text/markdown"
|
|
164
|
+
: "text/plain";
|
|
165
|
+
return { uri, mimeType: mime, text: fs.readFileSync(fullPath, "utf-8") };
|
|
166
|
+
}
|
|
167
|
+
return null;
|
|
146
168
|
}
|
|
147
169
|
//# sourceMappingURL=docs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/resources/docs.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/resources/docs.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -25,8 +25,13 @@ const prompts_1 = require("./prompts");
|
|
|
25
25
|
const programs_1 = require("./resources/programs");
|
|
26
26
|
const docs_1 = require("./resources/docs");
|
|
27
27
|
const tools_1 = require("./tools");
|
|
28
|
+
// Read SERVER_VERSION from package.json so MCP clients see the same
|
|
29
|
+
// version that npm reports. Hardcoding drifted in 0.2.x (Phase M E2E
|
|
30
|
+
// found serverInfo.version=0.1.0 while package.json was 0.2.1).
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|
|
32
|
+
const PKG_VERSION = require("../package.json").version;
|
|
28
33
|
const SERVER_NAME = "agenttrust";
|
|
29
|
-
const SERVER_VERSION =
|
|
34
|
+
const SERVER_VERSION = PKG_VERSION;
|
|
30
35
|
const SERVER_INSTRUCTIONS = "AgentTrust MCP server. Read tools work without auth (devnet by default). " +
|
|
31
36
|
"Write tools require KEYPAIR_B58 in env. Resources expose the AgentTrust " +
|
|
32
37
|
"docs corpus, deployed program manifest, and example demo source. Prompts " +
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,8 +58,14 @@ const InputSchema = zod_1.z.object({
|
|
|
58
58
|
let cache = null;
|
|
59
59
|
function findDocsRoot() {
|
|
60
60
|
const candidates = [
|
|
61
|
+
// Env override wins (tests + power-users)
|
|
61
62
|
process.env.MCP_DOCS_DIR ?? "",
|
|
63
|
+
// npm-install path: full MDX corpus copied into dist/embedded-docs
|
|
64
|
+
// by scripts/copy-embedded-assets.js (Phase N2 fix).
|
|
65
|
+
path.resolve(__dirname, "../../../embedded-docs"),
|
|
66
|
+
// Local-clone path: read directly from the source-of-truth tree.
|
|
62
67
|
path.resolve(__dirname, "../../../../docs-site/content/docs"),
|
|
68
|
+
// Process cwd fallback (tests, custom layouts).
|
|
63
69
|
path.resolve(process.cwd(), "docs-site/content/docs"),
|
|
64
70
|
].filter(Boolean);
|
|
65
71
|
for (const c of candidates) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/tools/discovery/docs.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCH,
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/tools/discovery/docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,19 +61,38 @@ const ADAPTER_DOCS = {
|
|
|
61
61
|
};
|
|
62
62
|
const GENERIC_FALLBACK = "integration-guides/facilitator-adapters.mdx";
|
|
63
63
|
const SERVICES_README = "trustgate/server/src/facilitators/README.md";
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Resolve the bundled docs root (Phase N2: dist/embedded-docs/) plus
|
|
66
|
+
* the repo-root fallback. The bundled path is preferred — it's the
|
|
67
|
+
* load-bearing fix for npm-install consumers.
|
|
68
|
+
*/
|
|
69
|
+
function findDocsLookupRoots() {
|
|
70
|
+
// npm install: copy-embedded-assets.js puts the MDX tree under
|
|
71
|
+
// dist/embedded-docs and the facilitators README under
|
|
72
|
+
// dist/trustgate/server/src/facilitators/README.md.
|
|
73
|
+
const distDocs = path.resolve(__dirname, "../../../embedded-docs");
|
|
74
|
+
const distSvc = path.resolve(__dirname, "../../../" + SERVICES_README);
|
|
75
|
+
// Local clone: live tree.
|
|
76
|
+
const repoCandidates = [
|
|
66
77
|
path.resolve(__dirname, "../../../.."),
|
|
67
78
|
process.cwd(),
|
|
68
79
|
];
|
|
69
|
-
|
|
80
|
+
let liveRoot = null;
|
|
81
|
+
for (const c of repoCandidates) {
|
|
70
82
|
try {
|
|
71
|
-
if (fs.existsSync(path.join(c, "Anchor.toml")))
|
|
72
|
-
|
|
83
|
+
if (fs.existsSync(path.join(c, "Anchor.toml"))) {
|
|
84
|
+
liveRoot = c;
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
73
87
|
}
|
|
74
88
|
catch { /* ignore */ }
|
|
75
89
|
}
|
|
76
|
-
|
|
90
|
+
const out = [];
|
|
91
|
+
if (fs.existsSync(distDocs))
|
|
92
|
+
out.push({ docsRoot: distDocs, servicesReadme: distSvc });
|
|
93
|
+
if (liveRoot)
|
|
94
|
+
out.push({ docsRoot: path.join(liveRoot, "docs-site/content/docs"), servicesReadme: path.join(liveRoot, SERVICES_README) });
|
|
95
|
+
return out;
|
|
77
96
|
}
|
|
78
97
|
exports.facilitatorWalkthroughTool = {
|
|
79
98
|
name: "agenttrust_facilitator_walkthrough",
|
|
@@ -83,24 +102,30 @@ exports.facilitatorWalkthroughTool = {
|
|
|
83
102
|
"the trustgate/server facilitators README content for cross-reference.",
|
|
84
103
|
inputSchema: InputSchema,
|
|
85
104
|
async handler(input) {
|
|
86
|
-
const root = findRepoRoot();
|
|
87
105
|
const docKey = input.name.toLowerCase().replace(/[\s_]/g, "-");
|
|
88
106
|
const matched = !!ADAPTER_DOCS[docKey];
|
|
89
107
|
const docRel = ADAPTER_DOCS[docKey] ?? GENERIC_FALLBACK;
|
|
90
|
-
const docAbs = path.join(root, "docs-site", "content", "docs", docRel);
|
|
91
|
-
const readmeAbs = path.join(root, SERVICES_README);
|
|
92
108
|
let content = "";
|
|
93
|
-
try {
|
|
94
|
-
content = fs.readFileSync(docAbs, "utf-8");
|
|
95
|
-
}
|
|
96
|
-
catch (err) {
|
|
97
|
-
content = `(failed to read ${docRel}: ${err.message})`;
|
|
98
|
-
}
|
|
99
109
|
let services = "";
|
|
100
|
-
|
|
101
|
-
|
|
110
|
+
for (const { docsRoot, servicesReadme } of findDocsLookupRoots()) {
|
|
111
|
+
const docAbs = path.join(docsRoot, docRel);
|
|
112
|
+
if (!content) {
|
|
113
|
+
try {
|
|
114
|
+
content = fs.readFileSync(docAbs, "utf-8");
|
|
115
|
+
}
|
|
116
|
+
catch { /* try next */ }
|
|
117
|
+
}
|
|
118
|
+
if (!services) {
|
|
119
|
+
try {
|
|
120
|
+
services = fs.readFileSync(servicesReadme, "utf-8");
|
|
121
|
+
}
|
|
122
|
+
catch { /* try next */ }
|
|
123
|
+
}
|
|
124
|
+
if (content && services)
|
|
125
|
+
break;
|
|
102
126
|
}
|
|
103
|
-
|
|
127
|
+
if (!content)
|
|
128
|
+
content = `(no walkthrough bundled for ${docRel})`;
|
|
104
129
|
const out = {
|
|
105
130
|
name: input.name,
|
|
106
131
|
matched,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facilitator-walkthrough.js","sourceRoot":"","sources":["../../../src/tools/discovery/facilitator-walkthrough.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAE7B,6BAAwB;AAIxB,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6EAA6E,CAAC;CAChH,CAAC,CAAC;AAYH,MAAM,YAAY,GAA2B;IAC3C,QAAQ,EAAG,uCAAuC;IAClD,OAAO,EAAI,uCAAuC;IAClD,QAAQ,EAAG,uCAAuC;IAClD,QAAQ,EAAG,6CAA6C;IACxD,MAAM,EAAK,6CAA6C;IACxD,SAAS,EAAE,6CAA6C;IACxD,OAAO,EAAI,6CAA6C;CACzD,CAAC;AACF,MAAM,gBAAgB,GAAG,6CAA6C,CAAC;AACvE,MAAM,eAAe,GAAI,6CAA6C,CAAC;AAEvE,SAAS,
|
|
1
|
+
{"version":3,"file":"facilitator-walkthrough.js","sourceRoot":"","sources":["../../../src/tools/discovery/facilitator-walkthrough.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,12 +51,15 @@ const config_1 = require("../../config");
|
|
|
51
51
|
const InputSchema = zod_1.z.object({});
|
|
52
52
|
function findDemoFile() {
|
|
53
53
|
const candidates = [
|
|
54
|
-
//
|
|
54
|
+
// Env override wins (tests + power-users)
|
|
55
|
+
process.env.PAY_SH_DEMO_STATE_FILE ?? "",
|
|
56
|
+
// npm-install path: snapshot bundled into dist/embedded-data/ at
|
|
57
|
+
// build time by scripts/copy-embedded-assets.js (Phase N1 fix).
|
|
58
|
+
path.resolve(__dirname, "../../embedded-data/devnet-counterparties.json"),
|
|
59
|
+
// Local-clone path: read directly from the source-of-truth file.
|
|
55
60
|
path.resolve(__dirname, "../../../../examples/pay-sh-demo/devnet-counterparties.json"),
|
|
56
|
-
//
|
|
61
|
+
// Process cwd fallback (tests, custom layouts).
|
|
57
62
|
path.resolve(process.cwd(), "examples/pay-sh-demo/devnet-counterparties.json"),
|
|
58
|
-
// Env override
|
|
59
|
-
process.env.PAY_SH_DEMO_STATE_FILE ?? "",
|
|
60
63
|
].filter(Boolean);
|
|
61
64
|
for (const p of candidates) {
|
|
62
65
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demo-state.js","sourceRoot":"","sources":["../../../src/tools/read/demo-state.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAE7B,6BAAwB;AAExB,yCAA2C;AAG3C,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAqCjC,SAAS,YAAY;IACnB,MAAM,UAAU,GAAG;QACjB,
|
|
1
|
+
{"version":3,"file":"demo-state.js","sourceRoot":"","sources":["../../../src/tools/read/demo-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,9 +30,21 @@ exports.simulatePaymentTool = {
|
|
|
30
30
|
inputSchema: InputSchema,
|
|
31
31
|
async handler(input, ctx) {
|
|
32
32
|
const policyVault = await ctx.chain.policyVault();
|
|
33
|
+
// Solana's simulate requires the fee-payer to be a real funded
|
|
34
|
+
// system-program-owned account. We need an explicit funded caller:
|
|
35
|
+
// 1. explicit input.caller arg (caller's responsibility to fund)
|
|
36
|
+
// 2. configured KEYPAIR_B58 signer (real funded account)
|
|
37
|
+
// else: throw a clear error explaining the requirement.
|
|
38
|
+
if (!input.caller && !ctx.chain.signerPubkey()) {
|
|
39
|
+
throw new Error("agenttrust_simulate_payment requires a funded fee-payer on devnet. " +
|
|
40
|
+
"Either pass `caller` arg as a base58 pubkey of a funded account, or " +
|
|
41
|
+
"set KEYPAIR_B58 in the MCP environment to a base58-encoded keypair " +
|
|
42
|
+
"with at least one lamport. Read tools without `simulate_*` work " +
|
|
43
|
+
"without any signer.");
|
|
44
|
+
}
|
|
33
45
|
const callerPubkey = input.caller
|
|
34
46
|
? (0, common_1.parsePubkey)(input.caller, "caller")
|
|
35
|
-
:
|
|
47
|
+
: ctx.chain.signerPubkey();
|
|
36
48
|
const decision = await (0, chain_1.simulateGatePayment)({
|
|
37
49
|
policyVault,
|
|
38
50
|
programIds: ctx.chain.cfg.programs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulate-payment.js","sourceRoot":"","sources":["../../../src/tools/read/simulate-payment.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,8CAAuC;AACvC,6BAAwB;AAExB,uCAAkD;AAClD,sCAAkE;AAGlE,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,WAAW,EAAE,qBAAY,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC9D,WAAW,EAAE,qBAAY,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC9D,MAAM,EAAO,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;SAChE,QAAQ,CAAC,6DAA6D,CAAC;IACxF,IAAI,EAAS,qBAAY,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACnE,SAAS,EAAI,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACtF,MAAM,EAAO,qBAAY,CAAC,QAAQ,EAAE;SACnB,QAAQ,CAAC,0FAA0F,CAAC;CACtH,CAAC,CAAC;AAQU,QAAA,mBAAmB,GAAgC;IAC9D,IAAI,EAAS,6BAA6B;IAC1C,WAAW,EACT,sEAAsE;QACtE,qEAAqE;QACrE,yEAAyE;IAC3E,WAAW,EAAE,WAAW;IAExB,KAAK,CAAC,OAAO,CAAC,KAAY,EAAE,GAAgB;QAC1C,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAClD,
|
|
1
|
+
{"version":3,"file":"simulate-payment.js","sourceRoot":"","sources":["../../../src/tools/read/simulate-payment.ts"],"names":[],"mappings":"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"}
|