@agenttrust-sdk/mcp 0.2.5 → 0.3.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/embedded-docs/architecture.mdx +174 -0
- package/dist/embedded-docs/getting-started/quickstart.mdx +79 -56
- package/dist/embedded-docs/index.mdx +54 -37
- package/dist/embedded-docs/integration-guides/capability-namespaces.mdx +135 -8
- package/dist/embedded-docs/integration-guides/custom-attestor.mdx +169 -8
- package/dist/embedded-docs/integration-guides/dexter-adapter.mdx +76 -0
- package/dist/embedded-docs/integration-guides/facilitator-adapters.mdx +85 -41
- package/dist/embedded-docs/integration-guides/pay-sh-adapter.mdx +90 -54
- package/dist/embedded-docs/integration-guides/x402-facilitator.mdx +55 -24
- package/dist/embedded-docs/mcp/hosted-endpoint.mdx +197 -0
- package/dist/embedded-docs/mcp/index.mdx +108 -0
- package/dist/embedded-docs/mcp/install.mdx +183 -0
- package/dist/embedded-docs/mcp/prompts.mdx +90 -0
- package/dist/embedded-docs/mcp/resources.mdx +115 -0
- package/dist/embedded-docs/mcp/tools.mdx +156 -0
- package/dist/embedded-docs/programs/policy-vault/composer.mdx +117 -0
- package/dist/embedded-docs/programs/policy-vault/counterparty-tier-policy.mdx +81 -9
- package/dist/embedded-docs/programs/policy-vault/index.mdx +77 -47
- package/dist/embedded-docs/programs/policy-vault/kill-switch-policy.mdx +65 -8
- package/dist/embedded-docs/programs/policy-vault/require-validation-policy.mdx +76 -8
- package/dist/embedded-docs/programs/policy-vault/spending-policy.mdx +83 -8
- package/dist/embedded-docs/programs/policy-vault/velocity-policy.mdx +85 -8
- package/dist/embedded-docs/programs/trustgate.mdx +112 -30
- package/dist/embedded-docs/programs/validation-registry.mdx +139 -32
- package/dist/embedded-docs/reference/byte-offset-reference.mdx +102 -13
- package/dist/embedded-docs/reference/capability-namespaces.mdx +56 -0
- package/dist/embedded-docs/reference/changelog.mdx +230 -13
- package/dist/embedded-docs/reference/deny-reason-codes.mdx +86 -0
- package/dist/embedded-docs/reference/devnet-program-ids.mdx +50 -8
- package/dist/embedded-docs/reference/discriminator-constants.mdx +104 -10
- package/dist/embedded-docs/reference/mainnet-program-ids.mdx +89 -5
- package/dist/embedded-docs/reference/quantu-agent-registry.mdx +104 -9
- package/dist/embedded-docs/sdk/exports-reference.mdx +239 -0
- package/dist/embedded-docs/sdk/gate-payment.mdx +99 -14
- package/dist/embedded-docs/sdk/index.mdx +141 -40
- package/dist/embedded-docs/sdk/mount-trustgate.mdx +178 -8
- package/dist/embedded-docs/verification/adversarial-harness.mdx +88 -0
- package/dist/embedded-docs/verification/atomic-tx-invariant.mdx +141 -0
- package/dist/embedded-docs/verification/chained-validation.mdx +87 -0
- package/dist/embedded-docs/verification/devnet-smoke.mdx +85 -0
- package/dist/embedded-docs/verification/index.mdx +31 -0
- package/dist/embedded-docs/verification/kani-proofs.mdx +144 -0
- package/dist/embedded-docs/verification/live-evidence.mdx +180 -0
- package/dist/tools/read/get-quantu-reputation.d.ts +50 -11
- package/dist/tools/read/get-quantu-reputation.js +75 -26
- package/dist/tools/read/get-quantu-reputation.js.map +1 -1
- package/dist/tools/write/emit-feedback.d.ts +6 -0
- package/dist/tools/write/emit-feedback.js +12 -1
- package/dist/tools/write/emit-feedback.js.map +1 -1
- package/package.json +16 -15
- package/scripts/install-claude-desktop.sh +0 -0
|
@@ -1,16 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* `agenttrust_get_quantu_reputation` — read the Quantu atom_stats PDA
|
|
4
|
-
* for an agent and surface the on-chain reputation tier +
|
|
4
|
+
* for an agent and surface the on-chain reputation tier + risk fields.
|
|
5
5
|
*
|
|
6
6
|
* Quantu's atom_stats account isn't in our IDL — we fetch raw account
|
|
7
|
-
* bytes and decode the byte-offset surface PolicyVault's
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* bytes and decode the byte-offset surface PolicyVault's CounterpartyTier
|
|
8
|
+
* policy reads at gate time. Source-of-truth offsets live in
|
|
9
|
+
* `programs/policy-vault/src/ext/atom_engine.rs:21-27` and are mirrored
|
|
10
|
+
* verbatim here. If Quantu changes the layout the schema-version canary
|
|
11
|
+
* at byte 560 catches it and the tool returns a clean error rather than
|
|
12
|
+
* bogus values.
|
|
13
|
+
*
|
|
14
|
+
* Tier semantics:
|
|
15
|
+
*
|
|
16
|
+
* - `tierImmediate` is the v1 fast-path tier — settled within the
|
|
17
|
+
* same `give_feedback` tx that bumped the score. Used by the
|
|
18
|
+
* CounterpartyTier policy in v1 demo mode.
|
|
19
|
+
* - `tierConfirmed` is the post-vesting tier — only counted once the
|
|
20
|
+
* vesting window elapses. Production-mode policies prefer this.
|
|
21
|
+
*
|
|
22
|
+
* Phase P found the previous implementation read fabricated offsets
|
|
23
|
+
* (40 / 41 / 49 / 50 / 51 instead of 549 / 551 / 555 / 557) which
|
|
24
|
+
* returned `tier: 164` for an actually-tier-0 agent. 0.2.6 corrects
|
|
25
|
+
* this and adds the schema-version canary the on-chain parser uses.
|
|
11
26
|
*/
|
|
12
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.getQuantuReputationTool = void 0;
|
|
28
|
+
exports.getQuantuReputationTool = exports.ATOM_TIER_MAX = exports.ATOM_STATS_SCHEMA_VERSION_EXPECTED = exports.ATOM_STATS_SCHEMA_VERSION_OFFSET = exports.ATOM_STATS_CONFIDENCE_OFFSET = exports.ATOM_STATS_TIER_CONFIRMED_OFFSET = exports.ATOM_STATS_TIER_IMMEDIATE_OFFSET = exports.ATOM_STATS_RISK_SCORE_OFFSET = exports.ATOM_STATS_SIZE = void 0;
|
|
29
|
+
exports.decodeAtomStatsBytes = decodeAtomStatsBytes;
|
|
14
30
|
const zod_1 = require("zod");
|
|
15
31
|
const chain_1 = require("../../chain");
|
|
16
32
|
const config_1 = require("../../config");
|
|
@@ -18,19 +34,56 @@ const common_1 = require("../common");
|
|
|
18
34
|
const InputSchema = zod_1.z.object({
|
|
19
35
|
agent_asset: common_1.PubkeySchema.describe("Quantu agent asset pubkey"),
|
|
20
36
|
});
|
|
21
|
-
//
|
|
22
|
-
// programs/policy-vault/src/ext/
|
|
23
|
-
//
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
// Byte-offset surface — MUST mirror programs/policy-vault/src/ext/atom_engine.rs
|
|
39
|
+
// ATOM_STATS_SIZE = 561
|
|
40
|
+
// ATOM_STATS_RISK_SCORE_OFFSET = 549
|
|
41
|
+
// ATOM_STATS_TRUST_TIER_OFFSET = 551 (immediate)
|
|
42
|
+
// ATOM_STATS_TIER_CONFIRMED_OFFSET = 555
|
|
43
|
+
// ATOM_STATS_CONFIDENCE_OFFSET = 557 (u16 LE, bytes 557..559)
|
|
44
|
+
// ATOM_STATS_SCHEMA_VERSION_OFFSET = 560
|
|
45
|
+
// ATOM_STATS_SCHEMA_VERSION_EXPECTED = 1
|
|
46
|
+
// ATOM_TIER_MAX = 4
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
exports.ATOM_STATS_SIZE = 561;
|
|
49
|
+
exports.ATOM_STATS_RISK_SCORE_OFFSET = 549;
|
|
50
|
+
exports.ATOM_STATS_TIER_IMMEDIATE_OFFSET = 551;
|
|
51
|
+
exports.ATOM_STATS_TIER_CONFIRMED_OFFSET = 555;
|
|
52
|
+
exports.ATOM_STATS_CONFIDENCE_OFFSET = 557;
|
|
53
|
+
exports.ATOM_STATS_SCHEMA_VERSION_OFFSET = 560;
|
|
54
|
+
exports.ATOM_STATS_SCHEMA_VERSION_EXPECTED = 1;
|
|
55
|
+
exports.ATOM_TIER_MAX = 4;
|
|
56
|
+
/** Pure-fn bytes → reputation. Returns `{ error }` when the buffer fails any
|
|
57
|
+
* canary (size, schema_version, tier-range). Mirrors the on-chain parser's
|
|
58
|
+
* fail-loud semantics — caller surfaces the error. */
|
|
59
|
+
function decodeAtomStatsBytes(data) {
|
|
60
|
+
if (data.length !== exports.ATOM_STATS_SIZE) {
|
|
61
|
+
return { error: `account size ${data.length} != expected ${exports.ATOM_STATS_SIZE}` };
|
|
62
|
+
}
|
|
63
|
+
const buf = data instanceof Buffer ? data : Buffer.from(data);
|
|
64
|
+
const schemaVersion = buf.readUInt8(exports.ATOM_STATS_SCHEMA_VERSION_OFFSET);
|
|
65
|
+
if (schemaVersion !== exports.ATOM_STATS_SCHEMA_VERSION_EXPECTED) {
|
|
66
|
+
return { error: `schema_version ${schemaVersion} != expected ${exports.ATOM_STATS_SCHEMA_VERSION_EXPECTED}` };
|
|
67
|
+
}
|
|
68
|
+
const tierImmediate = buf.readUInt8(exports.ATOM_STATS_TIER_IMMEDIATE_OFFSET);
|
|
69
|
+
const tierConfirmed = buf.readUInt8(exports.ATOM_STATS_TIER_CONFIRMED_OFFSET);
|
|
70
|
+
const riskScore = buf.readUInt8(exports.ATOM_STATS_RISK_SCORE_OFFSET);
|
|
71
|
+
const confidence = buf.readUInt16LE(exports.ATOM_STATS_CONFIDENCE_OFFSET);
|
|
72
|
+
if (tierImmediate > exports.ATOM_TIER_MAX) {
|
|
73
|
+
return { error: `tier_immediate ${tierImmediate} > ATOM_TIER_MAX ${exports.ATOM_TIER_MAX}` };
|
|
74
|
+
}
|
|
75
|
+
if (tierConfirmed > exports.ATOM_TIER_MAX) {
|
|
76
|
+
return { error: `tier_confirmed ${tierConfirmed} > ATOM_TIER_MAX ${exports.ATOM_TIER_MAX}` };
|
|
77
|
+
}
|
|
78
|
+
return { tierImmediate, tierConfirmed, riskScore, confidence, schemaVersion };
|
|
79
|
+
}
|
|
30
80
|
exports.getQuantuReputationTool = {
|
|
31
81
|
name: "agenttrust_get_quantu_reputation",
|
|
32
|
-
description: "Read the Quantu atom_stats PDA for an agent and decode
|
|
33
|
-
"
|
|
82
|
+
description: "Read the Quantu atom_stats PDA for an agent and decode the on-chain " +
|
|
83
|
+
"reputation. Returns tierImmediate (v1 fast-path tier, 0..=4) and " +
|
|
84
|
+
"tierConfirmed (post-vesting tier — production policies prefer this), " +
|
|
85
|
+
"plus riskScore (0..=255, lower is better), confidence (0..=10_000 " +
|
|
86
|
+
"basis points), and schemaVersion (canary, always 1 in v1). Same " +
|
|
34
87
|
"values PolicyVault's CounterpartyTier policy reads at gate time.",
|
|
35
88
|
inputSchema: InputSchema,
|
|
36
89
|
async handler(input, ctx) {
|
|
@@ -49,16 +102,12 @@ exports.getQuantuReputationTool = {
|
|
|
49
102
|
};
|
|
50
103
|
if (!accountInfo)
|
|
51
104
|
return out;
|
|
52
|
-
const
|
|
53
|
-
if (
|
|
105
|
+
const decoded = decodeAtomStatsBytes(accountInfo.data);
|
|
106
|
+
if ("error" in decoded) {
|
|
107
|
+
out.error = `atom_stats decode failed: ${decoded.error}`;
|
|
54
108
|
return out;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
feedbackCount: (0, common_1.toDecString)(data.readBigUInt64LE(AS_FEEDBACK_COUNT_OFFSET)),
|
|
58
|
-
averageScore: data.readUInt8(AS_AVERAGE_SCORE_OFFSET),
|
|
59
|
-
riskScore: data.readUInt8(AS_RISK_SCORE_OFFSET),
|
|
60
|
-
confidence: data.readUInt16LE(AS_CONFIDENCE_OFFSET),
|
|
61
|
-
};
|
|
109
|
+
}
|
|
110
|
+
out.reputation = decoded;
|
|
62
111
|
return out;
|
|
63
112
|
},
|
|
64
113
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-quantu-reputation.js","sourceRoot":"","sources":["../../../src/tools/read/get-quantu-reputation.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"get-quantu-reputation.js","sourceRoot":"","sources":["../../../src/tools/read/get-quantu-reputation.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,16 +18,20 @@ declare const InputSchema: z.ZodObject<{
|
|
|
18
18
|
payee_asset: z.ZodEffects<z.ZodString, string, string>;
|
|
19
19
|
base_collection: z.ZodEffects<z.ZodString, string, string>;
|
|
20
20
|
score: z.ZodNumber;
|
|
21
|
+
value: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
22
|
+
value_decimals: z.ZodDefault<z.ZodNumber>;
|
|
21
23
|
tag1: z.ZodDefault<z.ZodString>;
|
|
22
24
|
tag2: z.ZodDefault<z.ZodString>;
|
|
23
25
|
endpoint: z.ZodDefault<z.ZodString>;
|
|
24
26
|
feedback_uri: z.ZodDefault<z.ZodString>;
|
|
25
27
|
atom_enabled: z.ZodDefault<z.ZodBoolean>;
|
|
26
28
|
}, "strip", z.ZodTypeAny, {
|
|
29
|
+
value: string | number;
|
|
27
30
|
payment_id_hash_hex: string;
|
|
28
31
|
payee_asset: string;
|
|
29
32
|
base_collection: string;
|
|
30
33
|
score: number;
|
|
34
|
+
value_decimals: number;
|
|
31
35
|
tag1: string;
|
|
32
36
|
tag2: string;
|
|
33
37
|
endpoint: string;
|
|
@@ -38,6 +42,8 @@ declare const InputSchema: z.ZodObject<{
|
|
|
38
42
|
payee_asset: string;
|
|
39
43
|
base_collection: string;
|
|
40
44
|
score: number;
|
|
45
|
+
value?: string | number | undefined;
|
|
46
|
+
value_decimals?: number | undefined;
|
|
41
47
|
tag1?: string | undefined;
|
|
42
48
|
tag2?: string | undefined;
|
|
43
49
|
endpoint?: string | undefined;
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.emitFeedbackTool = void 0;
|
|
17
|
+
const anchor_1 = require("@coral-xyz/anchor");
|
|
17
18
|
const web3_js_1 = require("@solana/web3.js");
|
|
18
19
|
const zod_1 = require("zod");
|
|
19
20
|
const trustgate_1 = require("@agenttrust-sdk/trustgate");
|
|
@@ -28,6 +29,13 @@ const InputSchema = zod_1.z.object({
|
|
|
28
29
|
"typically the value passed to agent_registry::register_agent when the " +
|
|
29
30
|
"agent was minted."),
|
|
30
31
|
score: zod_1.z.number().int().min(0).max(100),
|
|
32
|
+
// `value` + `value_decimals` are forwarded to Quantu's give_feedback so
|
|
33
|
+
// `quality_score` can accrue (otherwise tier_immediate stays pinned at 0).
|
|
34
|
+
// Default of 1_000_000 @ 6 decimals = $1 USDC equivalent, a sensible
|
|
35
|
+
// representative value when the caller doesn't have the real amount handy.
|
|
36
|
+
value: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).default("1000000").describe("Raw payment amount in base token units (u64). Forwarded to Quantu's " +
|
|
37
|
+
"give_feedback for quality_score accrual. Defaults to 1_000_000 ($1 USDC)."),
|
|
38
|
+
value_decimals: zod_1.z.number().int().min(0).max(18).default(6).describe("Decimal exponent of the mint backing `value`. Defaults to 6 (USDC)."),
|
|
31
39
|
tag1: zod_1.z.string().max(32).default(""),
|
|
32
40
|
tag2: zod_1.z.string().max(32).default(""),
|
|
33
41
|
endpoint: zod_1.z.string().max(64).default(""),
|
|
@@ -65,8 +73,11 @@ exports.emitFeedbackTool = {
|
|
|
65
73
|
if (input.atom_enabled) {
|
|
66
74
|
remaining.push({ pubkey: (0, trustgate_1.deriveAtomConfigPda)(ctx.chain.cfg.quantu), isSigner: false, isWritable: false }, { pubkey: (0, trustgate_1.deriveAtomStatsPda)(ctx.chain.cfg.quantu, payeeAsset), isSigner: false, isWritable: true }, { pubkey: ctx.chain.cfg.quantu.atomEngine, isSigner: false, isWritable: false }, { pubkey: (0, trustgate_1.deriveAtomRegistryAuthorityPda)(ctx.chain.cfg.quantu), isSigner: false, isWritable: false });
|
|
67
75
|
}
|
|
76
|
+
// Forward `value` + `value_decimals` so Quantu's give_feedback can
|
|
77
|
+
// accrue quality_score (drives tier_immediate promotion).
|
|
78
|
+
const valueBn = new anchor_1.BN(typeof input.value === "string" ? input.value : input.value.toString());
|
|
68
79
|
const txSignature = await trustgate.methods
|
|
69
|
-
.emitFeedback(Array.from(paymentIdHash), facilitator.publicKey, payeeAsset, input.score, input.tag1, input.tag2, input.endpoint, input.feedback_uri)
|
|
80
|
+
.emitFeedback(Array.from(paymentIdHash), facilitator.publicKey, payeeAsset, input.score, valueBn, input.value_decimals, input.tag1, input.tag2, input.endpoint, input.feedback_uri)
|
|
70
81
|
.accounts({
|
|
71
82
|
payer: facilitator.publicKey,
|
|
72
83
|
authority: authorityPda,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-feedback.js","sourceRoot":"","sources":["../../../src/tools/write/emit-feedback.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;
|
|
1
|
+
{"version":3,"file":"emit-feedback.js","sourceRoot":"","sources":["../../../src/tools/write/emit-feedback.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,8CAAuC;AACvC,6CAA2D;AAC3D,6BAAwB;AAExB,yDAOmC;AAEnC,yCAA2C;AAC3C,sCAAiF;AAGjF,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,mBAAmB,EAAE,sBAAa,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAChF,WAAW,EAAU,qBAAY,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACnF,eAAe,EAAM,qBAAY,CAAC,QAAQ,CACxC,yEAAyE;QACzE,iEAAiE;QACjE,sEAAsE;QACtE,wEAAwE;QACxE,mBAAmB,CACpB;IACD,KAAK,EAAgB,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACrD,wEAAwE;IACxE,2EAA2E;IAC3E,qEAAqE;IACrE,2EAA2E;IAC3E,KAAK,EAAgB,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAChF,sEAAsE;QACtE,2EAA2E,CAC5E;IACD,cAAc,EAAO,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CACtE,qEAAqE,CACtE;IACD,IAAI,EAAiB,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,IAAI,EAAiB,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,QAAQ,EAAa,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,YAAY,EAAS,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,YAAY,EAAS,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,0FAA0F,CAAC;CACpJ,CAAC,CAAC;AAUU,QAAA,gBAAgB,GAAwB;IACnD,IAAI,EAAS,0BAA0B;IACvC,WAAW,EACT,oEAAoE;QACpE,yEAAyE;QACzE,wEAAwE;QACxE,4DAA4D;IAC9D,WAAW,EAAE,WAAW;IAExB,KAAK,CAAC,OAAO,CAAC,KAAY,EAAE,GAAgB;QAC1C,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAK,MAAM,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAEhD,MAAM,aAAa,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC5D,IAAI,aAAa,CAAC,MAAM,KAAK,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAE5F,MAAM,UAAU,GAAM,IAAA,oBAAW,EAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,IAAA,oBAAW,EAAC,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QAE7E,MAAM,YAAY,GAAG,IAAA,uCAA2B,EAC9C,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,SAAS,CACxD,CAAC;QACF,MAAM,cAAc,GAAG,IAAA,gCAAoB,EACzC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAC7D,CAAC;QACF,MAAM,YAAY,GAAG,IAAA,iCAAqB,EAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAE7E,yCAAyC;QACzC,8DAA8D;QAC9D,6DAA6D;QAC7D,+BAA+B;QAC/B,MAAM,SAAS,GAAG;YAChB,EAAE,MAAM,EAAE,YAAY,EAAyC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAG;YACnG,EAAE,MAAM,EAAE,UAAU,EAA2C,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;YACnG,EAAE,MAAM,EAAE,cAAc,EAAuC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;YACnG,EAAE,MAAM,EAAE,uBAAa,CAAC,SAAS,EAA8B,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;SACpG,CAAC;QACF,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,SAAS,CAAC,IAAI,CACZ,EAAE,MAAM,EAAE,IAAA,+BAAmB,EAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAU,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EACjG,EAAE,MAAM,EAAE,IAAA,8BAAkB,EAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAG,EACpG,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAoB,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EACjG,EAAE,MAAM,EAAE,IAAA,0CAA8B,EAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CACrG,CAAC;QACJ,CAAC;QAED,mEAAmE;QACnE,0DAA0D;QAC1D,MAAM,OAAO,GAAG,IAAI,WAAE,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/F,MAAM,WAAW,GAAW,MAAM,SAAS,CAAC,OAAO;aAChD,YAAY,CACX,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EACzB,WAAW,CAAC,SAAS,EACrB,UAAU,EACV,KAAK,CAAC,KAAK,EACX,OAAO,EACP,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,YAAY,CACnB;aACA,QAAQ,CAAC;YACR,KAAK,EAAU,WAAW,CAAC,SAAS;YACpC,SAAS,EAAM,YAAY;YAC3B,WAAW,EAAI,cAAc;YAC7B,aAAa,EAAE,uBAAa,CAAC,SAAS;YACtC,8DAA8D;SACxD,CAAC;aACR,iBAAiB,CAAC,SAAS,CAAC;aAC5B,GAAG,EAAE,CAAC;QAET,OAAO;YACL,WAAW;YACX,aAAa,EAAQ,IAAA,oBAAW,EAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAO,WAAW,CAAC;YACvE,cAAc,EAAO,cAAc,CAAC,QAAQ,EAAE;YAC9C,mBAAmB,EAAE,IAAA,oBAAW,EAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC;SACtF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agenttrust-sdk/mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MCP server for AgentTrust
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "MCP server for AgentTrust \u2014 query and call deployed Solana programs from Claude Desktop / Cursor / any MCP client",
|
|
5
5
|
"author": "AgentTrust Labs (https://agenttrust.tech)",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://github.com/agenttrust-labs/agenttrust/tree/main/mcp#readme",
|
|
@@ -40,14 +40,25 @@
|
|
|
40
40
|
"publishConfig": {
|
|
41
41
|
"access": "public"
|
|
42
42
|
},
|
|
43
|
+
"scripts": {
|
|
44
|
+
"build": "tsc && node scripts/copy-embedded-assets.js",
|
|
45
|
+
"lint": "tsc --noEmit",
|
|
46
|
+
"start": "node dist/index.js",
|
|
47
|
+
"dev": "ts-node src/index.ts",
|
|
48
|
+
"test": "ts-mocha -p ./test/tsconfig.json -t 30000 \"test/**/*.test.ts\"",
|
|
49
|
+
"test:integration": "INTEGRATION=1 ts-mocha -p ./test/tsconfig.json -t 60000 test/integration.test.ts",
|
|
50
|
+
"test:conformance": "pnpm run build && ts-node test/protocol-conformance.ts",
|
|
51
|
+
"prepublishOnly": "pnpm run lint && pnpm run build && pnpm run test && pnpm run test:conformance",
|
|
52
|
+
"publish:dry": "npm publish --dry-run"
|
|
53
|
+
},
|
|
43
54
|
"dependencies": {
|
|
55
|
+
"@agenttrust-sdk/trustgate": "workspace:^",
|
|
44
56
|
"@coral-xyz/anchor": "^0.31.1",
|
|
45
57
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
46
58
|
"@solana/web3.js": "^1.98.0",
|
|
47
59
|
"bs58": "^6.0.0",
|
|
48
60
|
"zod": "^3.25.76",
|
|
49
|
-
"zod-to-json-schema": "^3.23.5"
|
|
50
|
-
"@agenttrust-sdk/trustgate": "^0.2.0"
|
|
61
|
+
"zod-to-json-schema": "^3.23.5"
|
|
51
62
|
},
|
|
52
63
|
"devDependencies": {
|
|
53
64
|
"@types/chai": "^4.3.0",
|
|
@@ -58,15 +69,5 @@
|
|
|
58
69
|
"ts-mocha": "^10.0.0",
|
|
59
70
|
"ts-node": "^10.9.2",
|
|
60
71
|
"typescript": "^5.6.0"
|
|
61
|
-
},
|
|
62
|
-
"scripts": {
|
|
63
|
-
"build": "tsc && node scripts/copy-embedded-assets.js",
|
|
64
|
-
"lint": "tsc --noEmit",
|
|
65
|
-
"start": "node dist/index.js",
|
|
66
|
-
"dev": "ts-node src/index.ts",
|
|
67
|
-
"test": "ts-mocha -p ./test/tsconfig.json -t 30000 \"test/**/*.test.ts\"",
|
|
68
|
-
"test:integration": "INTEGRATION=1 ts-mocha -p ./test/tsconfig.json -t 60000 test/integration.test.ts",
|
|
69
|
-
"test:conformance": "pnpm run build && ts-node test/protocol-conformance.ts",
|
|
70
|
-
"publish:dry": "npm publish --dry-run"
|
|
71
72
|
}
|
|
72
|
-
}
|
|
73
|
+
}
|
|
File without changes
|