@oobe-protocol-labs/synapse-sap-sdk 0.8.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/core/client.js +31 -0
- package/dist/cjs/core/client.js.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/registries/index.js +3 -1
- package/dist/cjs/registries/index.js.map +1 -1
- package/dist/cjs/registries/metaplex-bridge.js +446 -0
- package/dist/cjs/registries/metaplex-bridge.js.map +1 -0
- package/dist/esm/core/client.js +31 -0
- package/dist/esm/core/client.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/registries/index.js +1 -0
- package/dist/esm/registries/index.js.map +1 -1
- package/dist/esm/registries/metaplex-bridge.js +409 -0
- package/dist/esm/registries/metaplex-bridge.js.map +1 -0
- package/dist/types/core/client.d.ts +28 -0
- package/dist/types/core/client.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/registries/index.d.ts +2 -0
- package/dist/types/registries/index.d.ts.map +1 -1
- package/dist/types/registries/metaplex-bridge.d.ts +228 -0
- package/dist/types/registries/metaplex-bridge.d.ts.map +1 -0
- package/package.json +25 -5
- package/src/core/client.ts +32 -0
- package/src/index.ts +7 -0
- package/src/registries/index.ts +10 -0
- package/src/registries/metaplex-bridge.ts +645 -0
package/dist/cjs/core/client.js
CHANGED
|
@@ -49,6 +49,7 @@ const discovery_1 = require("../registries/discovery");
|
|
|
49
49
|
const x402_1 = require("../registries/x402");
|
|
50
50
|
const session_1 = require("../registries/session");
|
|
51
51
|
const builder_1 = require("../registries/builder");
|
|
52
|
+
const metaplex_bridge_1 = require("../registries/metaplex-bridge");
|
|
52
53
|
// IDL is embedded inside the SDK — no external workspace dependency
|
|
53
54
|
const synapse_agent_sap_json_1 = __importDefault(require("../idl/synapse_agent_sap.json"));
|
|
54
55
|
/**
|
|
@@ -126,6 +127,7 @@ class SapClient {
|
|
|
126
127
|
#discovery;
|
|
127
128
|
#x402;
|
|
128
129
|
#session;
|
|
130
|
+
#metaplex;
|
|
129
131
|
constructor(program) {
|
|
130
132
|
this.program = program;
|
|
131
133
|
this.walletPubkey = program.provider.wallet.publicKey;
|
|
@@ -464,6 +466,35 @@ class SapClient {
|
|
|
464
466
|
get builder() {
|
|
465
467
|
return new builder_1.AgentBuilder(this.program);
|
|
466
468
|
}
|
|
469
|
+
/**
|
|
470
|
+
* @name metaplex
|
|
471
|
+
* @description Bridge between SAP and the Metaplex Agent Kit
|
|
472
|
+
* (MPL Core Asset + AgentIdentity plugin). Read-side merges SAP
|
|
473
|
+
* `AgentAccount` with MPL Core asset metadata; write-side composes
|
|
474
|
+
* atomic dual-protocol delegation instructions.
|
|
475
|
+
*
|
|
476
|
+
* Requires the optional peer dependencies
|
|
477
|
+
* `@metaplex-foundation/mpl-core` and
|
|
478
|
+
* `@metaplex-foundation/umi-bundle-defaults`. They are imported lazily
|
|
479
|
+
* the first time a method that needs them is called, so consumers that
|
|
480
|
+
* do not use the bridge incur zero overhead.
|
|
481
|
+
*
|
|
482
|
+
* @returns {MetaplexBridge} The lazily-instantiated `MetaplexBridge` singleton.
|
|
483
|
+
* @category Registries
|
|
484
|
+
* @since v0.9.0
|
|
485
|
+
* @see {@link MetaplexBridge}
|
|
486
|
+
*
|
|
487
|
+
* @example
|
|
488
|
+
* ```ts
|
|
489
|
+
* const profile = await client.metaplex.getUnifiedProfile({
|
|
490
|
+
* wallet: agentWallet,
|
|
491
|
+
* rpcUrl: "https://api.mainnet-beta.solana.com",
|
|
492
|
+
* });
|
|
493
|
+
* ```
|
|
494
|
+
*/
|
|
495
|
+
get metaplex() {
|
|
496
|
+
return (this.#metaplex ??= new metaplex_bridge_1.MetaplexBridge(this.program));
|
|
497
|
+
}
|
|
467
498
|
}
|
|
468
499
|
exports.SapClient = SapClient;
|
|
469
500
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/client.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;;;;AAEH,8CAAiE;AAEjE,4CAA8C;AAC9C,4CAA+C;AAC/C,kDAAqD;AACrD,kDAAqD;AACrD,4CAA+C;AAC/C,4CAA+C;AAC/C,8CAAiD;AACjD,oDAAsD;AACtD,gDAAmD;AACnD,gDAAmD;AACnD,0DAA6D;AAC7D,wDAA2D;AAC3D,8CAAiD;AACjD,sCAAwC;AACxC,6CAAqD;AACrD,uDAA4D;AAC5D,6CAAkD;AAClD,mDAAuD;AACvD,mDAAqD;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/client.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
48
|
exports.deriveSubscription = exports.deriveStake = exports.deriveDispute = exports.derivePendingSettlement = exports.deriveEscrowV2 = exports.deriveEscrow = exports.deriveTool = exports.deriveCheckpoint = exports.deriveVaultDelegate = exports.deriveEpochPage = exports.deriveSession = exports.deriveVault = exports.deriveToolCategoryIndex = exports.deriveProtocolIndex = exports.deriveCapabilityIndex = exports.deriveFeedback = exports.deriveAgentStats = exports.deriveAgent = exports.deriveGlobalRegistry = exports.IDL_METADATA = exports.IDL_PROGRAM_ADDRESS = exports.SAP_IDL = exports.SapNetwork = exports.HTTP_METHOD_VALUES = exports.TOOL_CATEGORY_VALUES = exports.VAULT_PROTOCOL_VERSION = exports.AGENT_VERSION = exports.LIMITS = exports.SEEDS = exports.LOCALNET_SAP_PROGRAM_ID = exports.DEVNET_SAP_PROGRAM_ID = exports.MAINNET_SAP_PROGRAM_ID = exports.SAP_PROGRAM_ID = exports.SAP_PROGRAM_ADDRESS = exports.ResolutionLayer = exports.DisputeType = exports.BillingInterval = exports.DisputeOutcome = exports.SettlementSecurity = exports.CompressionType = exports.SchemaType = exports.DelegatePermission = exports.ToolCategory = exports.ToolHttpMethod = exports.SettlementMode = exports.PluginType = exports.TokenType = exports.KeypairWallet = exports.SapConnection = exports.SapClient = void 0;
|
|
49
49
|
exports.SapError = exports.getX402DirectPayments = exports.parseX402Headers = exports.SapMerchantValidator = exports.MissingEscrowAtaError = exports.toAccountMetas = exports.attachSplAccounts = exports.validateEscrowState = exports.DEFAULT_BATCH_SETTLE_COMPUTE_UNITS = exports.DEFAULT_SETTLE_COMPUTE_UNITS = exports.DEFAULT_SETTLE_PRIORITY_FEE = exports.FAST_BATCH_SETTLE_OPTIONS = exports.FAST_SETTLE_OPTIONS = exports.buildRpcOptions = exports.buildPriorityFeeIxs = exports.validateOrThrow = exports.createCallArgsSchema = exports.createRegisterAgentSchema = exports.createPreparePaymentSchema = exports.createAgentManifestSchema = exports.createToolManifestEntrySchema = exports.createHealthCheckSchema = exports.createEndpointDescriptorSchema = exports.createEnvSchema = exports.extractAnchorErrorCode = exports.classifyAnchorError = exports.findATA = exports.createDualConnection = exports.getFallbackRpcUrl = exports.getRpcUrl = exports.validateAgentEndpoints = exports.validateHealthCheck = exports.validateEndpointDescriptor = exports.validateEndpoint = exports.isKnownNetwork = exports.getNetworkClusterName = exports.getNetworkGenesisHash = exports.isNetworkEquivalent = exports.normalizeNetworkId = exports.serializeValue = exports.serializeAccount = exports.assert = exports.hashToArray = exports.sha256 = exports.deriveReceiptBatch = exports.deriveLedgerPage = exports.deriveLedger = exports.deriveAttestation = exports.deriveIndexPage = exports.deriveShard = void 0;
|
|
50
|
-
exports.AgentBuilder = exports.SessionManager = exports.X402Registry = exports.DiscoveryRegistry = exports.TransactionParser = exports.extractAccountKeys = exports.filterSapInnerInstructions = exports.decodeInnerInstructions = exports.parseSapTransactionBatch = exports.parseSapTransactionComplete = exports.containsSapInstruction = exports.parseSapInstructionNamesFromList = exports.parseSapInstructionsFromList = exports.parseSapInstructionNamesFromTransaction = exports.parseSapInstructionsFromTransaction = exports.SAP_TABLE_MAP = exports.SapSyncEngine = exports.SapPostgres = exports.SAP_PROTOCOLS = exports.SAPPlugin = exports.createSAPPlugin = exports.BaseModule = exports.LedgerModule = exports.AttestationModule = exports.SubscriptionModule = exports.StakingModule = exports.ReceiptModule = exports.EscrowV2Module = exports.EscrowModule = exports.VaultModule = exports.ToolsModule = exports.IndexingModule = exports.FeedbackModule = exports.AgentModule = exports.GeyserEventStream = exports.SAP_EVENT_NAMES = exports.EventParser = exports.SapPermissionError = exports.SapTimeoutError = exports.SapAccountNotFoundError = exports.SapRpcError = exports.SapValidationError = void 0;
|
|
50
|
+
exports.MetaplexBridge = exports.AgentBuilder = exports.SessionManager = exports.X402Registry = exports.DiscoveryRegistry = exports.TransactionParser = exports.extractAccountKeys = exports.filterSapInnerInstructions = exports.decodeInnerInstructions = exports.parseSapTransactionBatch = exports.parseSapTransactionComplete = exports.containsSapInstruction = exports.parseSapInstructionNamesFromList = exports.parseSapInstructionsFromList = exports.parseSapInstructionNamesFromTransaction = exports.parseSapInstructionsFromTransaction = exports.SAP_TABLE_MAP = exports.SapSyncEngine = exports.SapPostgres = exports.SAP_PROTOCOLS = exports.SAPPlugin = exports.createSAPPlugin = exports.BaseModule = exports.LedgerModule = exports.AttestationModule = exports.SubscriptionModule = exports.StakingModule = exports.ReceiptModule = exports.EscrowV2Module = exports.EscrowModule = exports.VaultModule = exports.ToolsModule = exports.IndexingModule = exports.FeedbackModule = exports.AgentModule = exports.GeyserEventStream = exports.SAP_EVENT_NAMES = exports.EventParser = exports.SapPermissionError = exports.SapTimeoutError = exports.SapAccountNotFoundError = exports.SapRpcError = exports.SapValidationError = void 0;
|
|
51
51
|
// ── Core ─────────────────────────────────────────────
|
|
52
52
|
var core_1 = require("./core");
|
|
53
53
|
Object.defineProperty(exports, "SapClient", { enumerable: true, get: function () { return core_1.SapClient; } });
|
|
@@ -231,4 +231,5 @@ Object.defineProperty(exports, "DiscoveryRegistry", { enumerable: true, get: fun
|
|
|
231
231
|
Object.defineProperty(exports, "X402Registry", { enumerable: true, get: function () { return index_4.X402Registry; } });
|
|
232
232
|
Object.defineProperty(exports, "SessionManager", { enumerable: true, get: function () { return index_4.SessionManager; } });
|
|
233
233
|
Object.defineProperty(exports, "AgentBuilder", { enumerable: true, get: function () { return index_4.AgentBuilder; } });
|
|
234
|
+
Object.defineProperty(exports, "MetaplexBridge", { enumerable: true, get: function () { return index_4.MetaplexBridge; } });
|
|
234
235
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/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":"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"}
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
* @see {@link AgentBuilder}
|
|
40
40
|
*/
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
exports.AgentBuilder = exports.SessionManager = exports.X402Registry = exports.DiscoveryRegistry = void 0;
|
|
42
|
+
exports.MetaplexBridge = exports.AgentBuilder = exports.SessionManager = exports.X402Registry = exports.DiscoveryRegistry = void 0;
|
|
43
43
|
var discovery_1 = require("./discovery");
|
|
44
44
|
Object.defineProperty(exports, "DiscoveryRegistry", { enumerable: true, get: function () { return discovery_1.DiscoveryRegistry; } });
|
|
45
45
|
var x402_1 = require("./x402");
|
|
@@ -48,4 +48,6 @@ var session_1 = require("./session");
|
|
|
48
48
|
Object.defineProperty(exports, "SessionManager", { enumerable: true, get: function () { return session_1.SessionManager; } });
|
|
49
49
|
var builder_1 = require("./builder");
|
|
50
50
|
Object.defineProperty(exports, "AgentBuilder", { enumerable: true, get: function () { return builder_1.AgentBuilder; } });
|
|
51
|
+
var metaplex_bridge_1 = require("./metaplex-bridge");
|
|
52
|
+
Object.defineProperty(exports, "MetaplexBridge", { enumerable: true, get: function () { return metaplex_bridge_1.MetaplexBridge; } });
|
|
51
53
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/registries/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;;;AAEH,yCAAgD;AAAvC,8GAAA,iBAAiB,OAAA;AAS1B,+BAAsC;AAA7B,oGAAA,YAAY,OAAA;AAYrB,qCAA2C;AAAlC,yGAAA,cAAc,OAAA;AASvB,qCAAyC;AAAhC,uGAAA,YAAY,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/registries/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;;;AAEH,yCAAgD;AAAvC,8GAAA,iBAAiB,OAAA;AAS1B,+BAAsC;AAA7B,oGAAA,YAAY,OAAA;AAYrB,qCAA2C;AAAlC,yGAAA,cAAc,OAAA;AASvB,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AASrB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1,446 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @module registries/metaplex-bridge
|
|
4
|
+
* @description Bridge between Synapse Agent Protocol (SAP) and Metaplex
|
|
5
|
+
* Core's `AgentIdentity` external plugin adapter (mpl-core ≥ 1.9.0).
|
|
6
|
+
*
|
|
7
|
+
* ## Why this design (verified against mpl-core PR #258, v1.9.0)
|
|
8
|
+
*
|
|
9
|
+
* The MPL Core `AgentIdentity` plugin has exactly one field:
|
|
10
|
+
*
|
|
11
|
+
* ```ts
|
|
12
|
+
* type AgentIdentity = { uri: string };
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* The URI must point to an **EIP-8004** agent registration JSON. There is
|
|
16
|
+
* no on-chain executive list, no `addExecutive` / `delegateExecutionV1`
|
|
17
|
+
* instruction. Capabilities, services, executives, and reputation live
|
|
18
|
+
* off-chain in that JSON. The plugin only hooks the `Execute` lifecycle
|
|
19
|
+
* event, allowing the URI's authority to gate execution.
|
|
20
|
+
*
|
|
21
|
+
* The most efficient SAP × MPL integration therefore is:
|
|
22
|
+
*
|
|
23
|
+
* 1. SAP serves a **live EIP-8004 JSON** at a deterministic URL derived
|
|
24
|
+
* from the SAP `AgentAccount` PDA (e.g.
|
|
25
|
+
* `https://explorer.oobeprotocol.ai/agents/<sapAgentPda>/eip-8004.json`).
|
|
26
|
+
* 2. The MPL Core asset attaches an `AgentIdentity` adapter whose `uri`
|
|
27
|
+
* points to that URL.
|
|
28
|
+
* 3. Every SAP write (capability change, vault delegate add/revoke, x402
|
|
29
|
+
* tier update) is reflected in the JSON automatically — **no second
|
|
30
|
+
* transaction required, on either chain or for any wallet.**
|
|
31
|
+
*
|
|
32
|
+
* One SAP transaction = both protocols updated. That is the efficiency
|
|
33
|
+
* win that motivated the Phase 1 redesign on 2026-04-22.
|
|
34
|
+
*
|
|
35
|
+
* @category Registries
|
|
36
|
+
* @since v0.9.0
|
|
37
|
+
* @see https://github.com/metaplex-foundation/mpl-core/pull/258
|
|
38
|
+
* @see https://eips.ethereum.org/EIPS/eip-8004
|
|
39
|
+
*/
|
|
40
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
41
|
+
if (k2 === undefined) k2 = k;
|
|
42
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
43
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
44
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
45
|
+
}
|
|
46
|
+
Object.defineProperty(o, k2, desc);
|
|
47
|
+
}) : (function(o, m, k, k2) {
|
|
48
|
+
if (k2 === undefined) k2 = k;
|
|
49
|
+
o[k2] = m[k];
|
|
50
|
+
}));
|
|
51
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
52
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
53
|
+
}) : function(o, v) {
|
|
54
|
+
o["default"] = v;
|
|
55
|
+
});
|
|
56
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
57
|
+
var ownKeys = function(o) {
|
|
58
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
59
|
+
var ar = [];
|
|
60
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
61
|
+
return ar;
|
|
62
|
+
};
|
|
63
|
+
return ownKeys(o);
|
|
64
|
+
};
|
|
65
|
+
return function (mod) {
|
|
66
|
+
if (mod && mod.__esModule) return mod;
|
|
67
|
+
var result = {};
|
|
68
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
69
|
+
__setModuleDefault(result, mod);
|
|
70
|
+
return result;
|
|
71
|
+
};
|
|
72
|
+
})();
|
|
73
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
74
|
+
exports.MetaplexBridge = void 0;
|
|
75
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
76
|
+
const pda_1 = require("../pda");
|
|
77
|
+
// ═══════════════════════════════════════════════════════════════════
|
|
78
|
+
// Lazy peer-dep loader
|
|
79
|
+
// ═══════════════════════════════════════════════════════════════════
|
|
80
|
+
const PEER_DEP_INSTALL_HINT = "MetaplexBridge requires @metaplex-foundation/mpl-core (>=1.9.0) and " +
|
|
81
|
+
"@metaplex-foundation/umi-bundle-defaults. " +
|
|
82
|
+
"Install: npm i @metaplex-foundation/mpl-core @metaplex-foundation/umi-bundle-defaults";
|
|
83
|
+
let cachedRuntime = null;
|
|
84
|
+
async function loadMplCore() {
|
|
85
|
+
if (cachedRuntime)
|
|
86
|
+
return cachedRuntime;
|
|
87
|
+
try {
|
|
88
|
+
const [mplCore, umiBundle, umiCore] = await Promise.all([
|
|
89
|
+
Promise.resolve().then(() => __importStar(require("@metaplex-foundation/mpl-core"))),
|
|
90
|
+
Promise.resolve().then(() => __importStar(require("@metaplex-foundation/umi-bundle-defaults"))),
|
|
91
|
+
Promise.resolve().then(() => __importStar(require("@metaplex-foundation/umi"))),
|
|
92
|
+
]);
|
|
93
|
+
cachedRuntime = { mplCore, umiBundle, umiCore };
|
|
94
|
+
return cachedRuntime;
|
|
95
|
+
}
|
|
96
|
+
catch (cause) {
|
|
97
|
+
throw new Error(PEER_DEP_INSTALL_HINT, { cause: cause });
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// ═══════════════════════════════════════════════════════════════════
|
|
101
|
+
// MetaplexBridge
|
|
102
|
+
// ═══════════════════════════════════════════════════════════════════
|
|
103
|
+
/**
|
|
104
|
+
* @name MetaplexBridge
|
|
105
|
+
* @description Read-side merger and write-side instruction composer for
|
|
106
|
+
* SAP × Metaplex Core `AgentIdentity` integration.
|
|
107
|
+
*
|
|
108
|
+
* Linking is **single-transaction**: the MPL `addExternalPluginAdapterV1`
|
|
109
|
+
* instruction sets a URI that points at SAP's live registration host.
|
|
110
|
+
* Subsequent SAP state changes propagate automatically — no extra MPL
|
|
111
|
+
* transaction required.
|
|
112
|
+
*
|
|
113
|
+
* @category Registries
|
|
114
|
+
* @since v0.9.0
|
|
115
|
+
*/
|
|
116
|
+
class MetaplexBridge {
|
|
117
|
+
program;
|
|
118
|
+
constructor(program) {
|
|
119
|
+
this.program = program;
|
|
120
|
+
}
|
|
121
|
+
// ─────────────────────────────────────────────────────
|
|
122
|
+
// Pure helpers
|
|
123
|
+
// ─────────────────────────────────────────────────────
|
|
124
|
+
/**
|
|
125
|
+
* @name deriveRegistrationUrl
|
|
126
|
+
* @description Compute the deterministic EIP-8004 registration URL for
|
|
127
|
+
* a SAP agent. Hosts MUST serve the JSON at exactly this path so that
|
|
128
|
+
* {@link MetaplexBridge.verifyLink} validates without external config.
|
|
129
|
+
*
|
|
130
|
+
* @since v0.9.0
|
|
131
|
+
*/
|
|
132
|
+
deriveRegistrationUrl(sapAgentPda, baseUrl) {
|
|
133
|
+
const trimmed = baseUrl.replace(/\/+$/, "");
|
|
134
|
+
return `${trimmed}/agents/${sapAgentPda.toBase58()}/eip-8004.json`;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* @name buildEip8004Registration
|
|
138
|
+
* @description Build a canonical EIP-8004 JSON document for a SAP agent.
|
|
139
|
+
* Designed to be called server-side by a registry host.
|
|
140
|
+
*
|
|
141
|
+
* @since v0.9.0
|
|
142
|
+
*/
|
|
143
|
+
async buildEip8004Registration(args) {
|
|
144
|
+
const [sapPda] = (0, pda_1.deriveAgent)(args.sapAgentOwner);
|
|
145
|
+
const identity = await this.fetchAgentNullable(sapPda);
|
|
146
|
+
if (!identity) {
|
|
147
|
+
throw new Error(`buildEip8004Registration: SAP agent not found for owner ${args.sapAgentOwner.toBase58()}`);
|
|
148
|
+
}
|
|
149
|
+
const delegates = await this.fetchActiveVaultDelegates(sapPda);
|
|
150
|
+
return {
|
|
151
|
+
version: "0.1",
|
|
152
|
+
name: this.readString(identity, "name") ?? "Synapse Agent",
|
|
153
|
+
description: this.readString(identity, "description") ?? undefined,
|
|
154
|
+
synapseAgent: sapPda.toBase58(),
|
|
155
|
+
authority: args.sapAgentOwner.toBase58(),
|
|
156
|
+
capabilities: this.readCapabilities(identity),
|
|
157
|
+
services: args.services ?? [],
|
|
158
|
+
executives: delegates,
|
|
159
|
+
updatedAt: new Date().toISOString(),
|
|
160
|
+
extra: args.extra,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
// ─────────────────────────────────────────────────────
|
|
164
|
+
// Write side — build MPL instructions only
|
|
165
|
+
// ─────────────────────────────────────────────────────
|
|
166
|
+
/**
|
|
167
|
+
* @name buildAttachAgentIdentityIx
|
|
168
|
+
* @description Build the MPL Core `addExternalPluginAdapterV1`
|
|
169
|
+
* `TransactionInstruction` that attaches an `AgentIdentity` plugin
|
|
170
|
+
* pointing at SAP's live EIP-8004 registration URL.
|
|
171
|
+
*
|
|
172
|
+
* @since v0.9.0
|
|
173
|
+
*/
|
|
174
|
+
async buildAttachAgentIdentityIx(opts) {
|
|
175
|
+
const [sapPda] = (0, pda_1.deriveAgent)(opts.sapAgentOwner);
|
|
176
|
+
const uri = this.deriveRegistrationUrl(sapPda, opts.registrationBaseUrl);
|
|
177
|
+
return this.buildAddExternalPluginIx({
|
|
178
|
+
asset: opts.asset,
|
|
179
|
+
authority: opts.authority,
|
|
180
|
+
payer: opts.payer ?? opts.authority,
|
|
181
|
+
uri,
|
|
182
|
+
rpcUrl: opts.rpcUrl,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* @name buildUpdateAgentIdentityUriIx
|
|
187
|
+
* @description Build the MPL Core `updateExternalPluginAdapterV1`
|
|
188
|
+
* instruction that re-points an existing `AgentIdentity` plugin.
|
|
189
|
+
*
|
|
190
|
+
* @since v0.9.0
|
|
191
|
+
*/
|
|
192
|
+
async buildUpdateAgentIdentityUriIx(opts) {
|
|
193
|
+
const { mplCore, umiBundle, umiCore } = await loadMplCore();
|
|
194
|
+
const umi = umiBundle.createUmi(opts.rpcUrl).use(mplCore.mplCore());
|
|
195
|
+
const authority = umiCore.createNoopSigner(umiCore.publicKey(opts.authority.toBase58()));
|
|
196
|
+
const payer = umiCore.createNoopSigner(umiCore.publicKey((opts.payer ?? opts.authority).toBase58()));
|
|
197
|
+
const builder = mplCore.updateExternalPluginAdapterV1(umi, {
|
|
198
|
+
asset: umiCore.publicKey(opts.asset.toBase58()),
|
|
199
|
+
authority,
|
|
200
|
+
payer,
|
|
201
|
+
key: { __kind: "AgentIdentity" },
|
|
202
|
+
updateInfo: {
|
|
203
|
+
__kind: "AgentIdentity",
|
|
204
|
+
fields: [
|
|
205
|
+
{
|
|
206
|
+
uri: opts.newUri,
|
|
207
|
+
lifecycleChecks: null,
|
|
208
|
+
},
|
|
209
|
+
],
|
|
210
|
+
},
|
|
211
|
+
});
|
|
212
|
+
return this.firstWeb3Ix(builder, "updateExternalPluginAdapterV1");
|
|
213
|
+
}
|
|
214
|
+
// ─────────────────────────────────────────────────────
|
|
215
|
+
// Read side
|
|
216
|
+
// ─────────────────────────────────────────────────────
|
|
217
|
+
/**
|
|
218
|
+
* @name getUnifiedProfile
|
|
219
|
+
* @description Fetch a merged view of an agent across SAP and Metaplex.
|
|
220
|
+
* Provide `wallet` (SAP-first) or `asset` (MPL-first), or both.
|
|
221
|
+
*
|
|
222
|
+
* @since v0.9.0
|
|
223
|
+
*/
|
|
224
|
+
async getUnifiedProfile(input) {
|
|
225
|
+
if (!input.wallet && !input.asset) {
|
|
226
|
+
throw new Error("getUnifiedProfile: provide `wallet` or `asset`");
|
|
227
|
+
}
|
|
228
|
+
let sapPda = null;
|
|
229
|
+
let identity = null;
|
|
230
|
+
let stats = null;
|
|
231
|
+
if (input.wallet) {
|
|
232
|
+
[sapPda] = (0, pda_1.deriveAgent)(input.wallet);
|
|
233
|
+
identity = await this.fetchAgentNullable(sapPda);
|
|
234
|
+
stats = await this.fetchStatsNullable(sapPda);
|
|
235
|
+
}
|
|
236
|
+
let mpl = null;
|
|
237
|
+
if (input.asset) {
|
|
238
|
+
mpl = await this.fetchMplSnapshot(input.asset, input.rpcUrl);
|
|
239
|
+
if (!sapPda && mpl?.registration?.synapseAgent) {
|
|
240
|
+
try {
|
|
241
|
+
sapPda = new web3_js_1.PublicKey(mpl.registration.synapseAgent);
|
|
242
|
+
identity = await this.fetchAgentNullable(sapPda);
|
|
243
|
+
stats = await this.fetchStatsNullable(sapPda);
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
/* invalid PDA in JSON */
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
if (!sapPda) {
|
|
251
|
+
throw new Error("getUnifiedProfile: failed to resolve SAP agent PDA");
|
|
252
|
+
}
|
|
253
|
+
return {
|
|
254
|
+
sap: { pda: sapPda, identity, stats },
|
|
255
|
+
mpl,
|
|
256
|
+
linked: this.detectLink(sapPda, mpl),
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* @name verifyLink
|
|
261
|
+
* @description Verify the bidirectional link between an MPL Core asset
|
|
262
|
+
* and a SAP agent. Returns `true` only when both URL and JSON sides
|
|
263
|
+
* reference the SAP agent PDA.
|
|
264
|
+
*
|
|
265
|
+
* @since v0.9.0
|
|
266
|
+
*/
|
|
267
|
+
async verifyLink(args) {
|
|
268
|
+
const snap = await this.fetchMplSnapshot(args.asset, args.rpcUrl);
|
|
269
|
+
if (!snap?.agentIdentityUri || !snap.registration)
|
|
270
|
+
return false;
|
|
271
|
+
const expectedSuffix = `/agents/${args.sapAgentPda.toBase58()}/eip-8004.json`;
|
|
272
|
+
if (!snap.agentIdentityUri.endsWith(expectedSuffix))
|
|
273
|
+
return false;
|
|
274
|
+
return snap.registration.synapseAgent === args.sapAgentPda.toBase58();
|
|
275
|
+
}
|
|
276
|
+
// ═════════════════════════════════════════════════════
|
|
277
|
+
// Private — SAP fetching
|
|
278
|
+
// ═════════════════════════════════════════════════════
|
|
279
|
+
get accounts() {
|
|
280
|
+
return this.program.account;
|
|
281
|
+
}
|
|
282
|
+
async fetchAgentNullable(pda) {
|
|
283
|
+
try {
|
|
284
|
+
return await this.accounts.agentAccount.fetch(pda);
|
|
285
|
+
}
|
|
286
|
+
catch {
|
|
287
|
+
return null;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
async fetchStatsNullable(agentPda) {
|
|
291
|
+
try {
|
|
292
|
+
const [statsPda] = (0, pda_1.deriveAgentStats)(agentPda);
|
|
293
|
+
return await this.accounts.agentStats.fetch(statsPda);
|
|
294
|
+
}
|
|
295
|
+
catch {
|
|
296
|
+
return null;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
async fetchActiveVaultDelegates(agentPda) {
|
|
300
|
+
try {
|
|
301
|
+
const [vaultPda] = (0, pda_1.deriveVault)(agentPda);
|
|
302
|
+
// VaultDelegate layout: [discriminator(8) | bump(1) | vault(32) | ...]
|
|
303
|
+
const all = await this.accounts.vaultDelegate.all([
|
|
304
|
+
{ memcmp: { offset: 8 + 1, bytes: vaultPda.toBase58() } },
|
|
305
|
+
]);
|
|
306
|
+
const now = Math.floor(Date.now() / 1000);
|
|
307
|
+
return all
|
|
308
|
+
.map(({ account }) => {
|
|
309
|
+
const expiresRaw = account.expiresAt.toString();
|
|
310
|
+
const expiresAt = expiresRaw === "0" ? null : expiresRaw;
|
|
311
|
+
return { wallet: account.delegate.toBase58(), expiresAt };
|
|
312
|
+
})
|
|
313
|
+
.filter((d) => d.expiresAt === null || Number(d.expiresAt) > now);
|
|
314
|
+
}
|
|
315
|
+
catch {
|
|
316
|
+
return [];
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
// ═════════════════════════════════════════════════════
|
|
320
|
+
// Private — MPL fetching
|
|
321
|
+
// ═════════════════════════════════════════════════════
|
|
322
|
+
async fetchMplSnapshot(asset, rpcUrl) {
|
|
323
|
+
const { mplCore, umiBundle, umiCore } = await loadMplCore();
|
|
324
|
+
const umi = umiBundle.createUmi(rpcUrl).use(mplCore.mplCore());
|
|
325
|
+
try {
|
|
326
|
+
const fetched = await mplCore.fetchAsset(umi, umiCore.publicKey(asset.toBase58()));
|
|
327
|
+
const owner = new web3_js_1.PublicKey(fetched.owner.toString());
|
|
328
|
+
const uri = this.extractAgentIdentityUri(fetched);
|
|
329
|
+
const registration = uri ? await this.fetchEip8004Safe(uri) : null;
|
|
330
|
+
return {
|
|
331
|
+
asset,
|
|
332
|
+
owner,
|
|
333
|
+
name: fetched.name ?? null,
|
|
334
|
+
agentIdentityUri: uri,
|
|
335
|
+
registration,
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
catch {
|
|
339
|
+
return null;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
extractAgentIdentityUri(asset) {
|
|
343
|
+
const adapters = asset.agentIdentities;
|
|
344
|
+
if (!adapters || adapters.length === 0)
|
|
345
|
+
return null;
|
|
346
|
+
const first = adapters[0];
|
|
347
|
+
if (!first)
|
|
348
|
+
return null;
|
|
349
|
+
return typeof first.uri === "string" ? first.uri : null;
|
|
350
|
+
}
|
|
351
|
+
async fetchEip8004Safe(uri) {
|
|
352
|
+
try {
|
|
353
|
+
const res = await fetch(uri, { method: "GET" });
|
|
354
|
+
if (!res.ok)
|
|
355
|
+
return null;
|
|
356
|
+
const json = (await res.json());
|
|
357
|
+
if (typeof json.synapseAgent !== "string" ||
|
|
358
|
+
typeof json.authority !== "string") {
|
|
359
|
+
return null;
|
|
360
|
+
}
|
|
361
|
+
return {
|
|
362
|
+
version: json.version ?? "0.1",
|
|
363
|
+
name: json.name ?? "",
|
|
364
|
+
description: json.description,
|
|
365
|
+
synapseAgent: json.synapseAgent,
|
|
366
|
+
authority: json.authority,
|
|
367
|
+
capabilities: Array.isArray(json.capabilities) ? json.capabilities : [],
|
|
368
|
+
services: Array.isArray(json.services) ? json.services : [],
|
|
369
|
+
executives: Array.isArray(json.executives) ? json.executives : [],
|
|
370
|
+
updatedAt: json.updatedAt ?? "",
|
|
371
|
+
extra: json.extra,
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
catch {
|
|
375
|
+
return null;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
// ═════════════════════════════════════════════════════
|
|
379
|
+
// Private — MPL instruction building
|
|
380
|
+
// ═════════════════════════════════════════════════════
|
|
381
|
+
async buildAddExternalPluginIx(args) {
|
|
382
|
+
const { mplCore, umiBundle, umiCore } = await loadMplCore();
|
|
383
|
+
const umi = umiBundle.createUmi(args.rpcUrl).use(mplCore.mplCore());
|
|
384
|
+
const authority = umiCore.createNoopSigner(umiCore.publicKey(args.authority.toBase58()));
|
|
385
|
+
const payer = umiCore.createNoopSigner(umiCore.publicKey(args.payer.toBase58()));
|
|
386
|
+
// HookableLifecycleEvent.Execute = 4; ExternalCheckResult { flags: 1 } = CanApprove
|
|
387
|
+
const ExecuteEvent = mplCore.HookableLifecycleEvent.Execute;
|
|
388
|
+
const builder = mplCore.addExternalPluginAdapterV1(umi, {
|
|
389
|
+
asset: umiCore.publicKey(args.asset.toBase58()),
|
|
390
|
+
authority,
|
|
391
|
+
payer,
|
|
392
|
+
initInfo: {
|
|
393
|
+
__kind: "AgentIdentity",
|
|
394
|
+
fields: [
|
|
395
|
+
{
|
|
396
|
+
uri: args.uri,
|
|
397
|
+
initPluginAuthority: { __kind: "UpdateAuthority" },
|
|
398
|
+
lifecycleChecks: [[ExecuteEvent, { flags: 1 }]],
|
|
399
|
+
},
|
|
400
|
+
],
|
|
401
|
+
},
|
|
402
|
+
});
|
|
403
|
+
return this.firstWeb3Ix(builder, "addExternalPluginAdapterV1");
|
|
404
|
+
}
|
|
405
|
+
async firstWeb3Ix(builder, name) {
|
|
406
|
+
const items = builder.getInstructions();
|
|
407
|
+
const first = items[0];
|
|
408
|
+
if (!first) {
|
|
409
|
+
throw new Error(`MetaplexBridge: ${name} produced no instructions`);
|
|
410
|
+
}
|
|
411
|
+
return this.umiIxToWeb3(first);
|
|
412
|
+
}
|
|
413
|
+
umiIxToWeb3(ix) {
|
|
414
|
+
return {
|
|
415
|
+
programId: new web3_js_1.PublicKey(ix.programId.toString()),
|
|
416
|
+
keys: ix.keys.map((k) => ({
|
|
417
|
+
pubkey: new web3_js_1.PublicKey(k.pubkey.toString()),
|
|
418
|
+
isSigner: k.isSigner,
|
|
419
|
+
isWritable: k.isWritable,
|
|
420
|
+
})),
|
|
421
|
+
data: Buffer.from(ix.data),
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
// ═════════════════════════════════════════════════════
|
|
425
|
+
// Private — link detection + duck-typed readers
|
|
426
|
+
// ═════════════════════════════════════════════════════
|
|
427
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
428
|
+
detectLink(sapPda, mpl) {
|
|
429
|
+
if (!mpl?.agentIdentityUri || !mpl.registration)
|
|
430
|
+
return false;
|
|
431
|
+
const expectedSuffix = `/agents/${sapPda.toBase58()}/eip-8004.json`;
|
|
432
|
+
if (!mpl.agentIdentityUri.endsWith(expectedSuffix))
|
|
433
|
+
return false;
|
|
434
|
+
return mpl.registration.synapseAgent === sapPda.toBase58();
|
|
435
|
+
}
|
|
436
|
+
readString(identity, key) {
|
|
437
|
+
const value = identity[key];
|
|
438
|
+
return typeof value === "string" ? value : null;
|
|
439
|
+
}
|
|
440
|
+
readCapabilities(identity) {
|
|
441
|
+
const caps = identity.capabilities ?? [];
|
|
442
|
+
return caps.map((c) => c.id).filter((s) => typeof s === "string");
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
exports.MetaplexBridge = MetaplexBridge;
|
|
446
|
+
//# sourceMappingURL=metaplex-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metaplex-bridge.js","sourceRoot":"","sources":["../../../src/registries/metaplex-bridge.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/core/client.js
CHANGED
|
@@ -43,6 +43,7 @@ import { DiscoveryRegistry } from "../registries/discovery";
|
|
|
43
43
|
import { X402Registry } from "../registries/x402";
|
|
44
44
|
import { SessionManager } from "../registries/session";
|
|
45
45
|
import { AgentBuilder } from "../registries/builder";
|
|
46
|
+
import { MetaplexBridge } from "../registries/metaplex-bridge";
|
|
46
47
|
// IDL is embedded inside the SDK — no external workspace dependency
|
|
47
48
|
import idl from "../idl/synapse_agent_sap.json";
|
|
48
49
|
/**
|
|
@@ -120,6 +121,7 @@ export class SapClient {
|
|
|
120
121
|
#discovery;
|
|
121
122
|
#x402;
|
|
122
123
|
#session;
|
|
124
|
+
#metaplex;
|
|
123
125
|
constructor(program) {
|
|
124
126
|
this.program = program;
|
|
125
127
|
this.walletPubkey = program.provider.wallet.publicKey;
|
|
@@ -458,5 +460,34 @@ export class SapClient {
|
|
|
458
460
|
get builder() {
|
|
459
461
|
return new AgentBuilder(this.program);
|
|
460
462
|
}
|
|
463
|
+
/**
|
|
464
|
+
* @name metaplex
|
|
465
|
+
* @description Bridge between SAP and the Metaplex Agent Kit
|
|
466
|
+
* (MPL Core Asset + AgentIdentity plugin). Read-side merges SAP
|
|
467
|
+
* `AgentAccount` with MPL Core asset metadata; write-side composes
|
|
468
|
+
* atomic dual-protocol delegation instructions.
|
|
469
|
+
*
|
|
470
|
+
* Requires the optional peer dependencies
|
|
471
|
+
* `@metaplex-foundation/mpl-core` and
|
|
472
|
+
* `@metaplex-foundation/umi-bundle-defaults`. They are imported lazily
|
|
473
|
+
* the first time a method that needs them is called, so consumers that
|
|
474
|
+
* do not use the bridge incur zero overhead.
|
|
475
|
+
*
|
|
476
|
+
* @returns {MetaplexBridge} The lazily-instantiated `MetaplexBridge` singleton.
|
|
477
|
+
* @category Registries
|
|
478
|
+
* @since v0.9.0
|
|
479
|
+
* @see {@link MetaplexBridge}
|
|
480
|
+
*
|
|
481
|
+
* @example
|
|
482
|
+
* ```ts
|
|
483
|
+
* const profile = await client.metaplex.getUnifiedProfile({
|
|
484
|
+
* wallet: agentWallet,
|
|
485
|
+
* rpcUrl: "https://api.mainnet-beta.solana.com",
|
|
486
|
+
* });
|
|
487
|
+
* ```
|
|
488
|
+
*/
|
|
489
|
+
get metaplex() {
|
|
490
|
+
return (this.#metaplex ??= new MetaplexBridge(this.program));
|
|
491
|
+
}
|
|
461
492
|
}
|
|
462
493
|
//# sourceMappingURL=client.js.map
|