@oobe-protocol-labs/synapse-sap-sdk 0.1.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/LICENSE +21 -0
- package/README.md +882 -0
- package/dist/cjs/constants/index.js +43 -0
- package/dist/cjs/constants/index.js.map +1 -0
- package/dist/cjs/constants/limits.js +161 -0
- package/dist/cjs/constants/limits.js.map +1 -0
- package/dist/cjs/constants/programs.js +78 -0
- package/dist/cjs/constants/programs.js.map +1 -0
- package/dist/cjs/constants/seeds.js +57 -0
- package/dist/cjs/constants/seeds.js.map +1 -0
- package/dist/cjs/core/client.js +391 -0
- package/dist/cjs/core/client.js.map +1 -0
- package/dist/cjs/core/connection.js +319 -0
- package/dist/cjs/core/connection.js.map +1 -0
- package/dist/cjs/core/index.js +24 -0
- package/dist/cjs/core/index.js.map +1 -0
- package/dist/cjs/errors/index.js +334 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/cjs/events/index.js +136 -0
- package/dist/cjs/events/index.js.map +1 -0
- package/dist/cjs/idl/index.js +63 -0
- package/dist/cjs/idl/index.js.map +1 -0
- package/dist/cjs/idl/synapse_agent_sap.json +9710 -0
- package/dist/cjs/index.js +147 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/modules/agent.js +272 -0
- package/dist/cjs/modules/agent.js.map +1 -0
- package/dist/cjs/modules/attestation.js +147 -0
- package/dist/cjs/modules/attestation.js.map +1 -0
- package/dist/cjs/modules/base.js +128 -0
- package/dist/cjs/modules/base.js.map +1 -0
- package/dist/cjs/modules/escrow.js +246 -0
- package/dist/cjs/modules/escrow.js.map +1 -0
- package/dist/cjs/modules/feedback.js +166 -0
- package/dist/cjs/modules/feedback.js.map +1 -0
- package/dist/cjs/modules/index.js +35 -0
- package/dist/cjs/modules/index.js.map +1 -0
- package/dist/cjs/modules/indexing.js +375 -0
- package/dist/cjs/modules/indexing.js.map +1 -0
- package/dist/cjs/modules/ledger.js +234 -0
- package/dist/cjs/modules/ledger.js.map +1 -0
- package/dist/cjs/modules/tools.js +319 -0
- package/dist/cjs/modules/tools.js.map +1 -0
- package/dist/cjs/modules/vault.js +410 -0
- package/dist/cjs/modules/vault.js.map +1 -0
- package/dist/cjs/pda/index.js +377 -0
- package/dist/cjs/pda/index.js.map +1 -0
- package/dist/cjs/plugin/index.js +934 -0
- package/dist/cjs/plugin/index.js.map +1 -0
- package/dist/cjs/plugin/protocols.js +282 -0
- package/dist/cjs/plugin/protocols.js.map +1 -0
- package/dist/cjs/plugin/schemas.js +831 -0
- package/dist/cjs/plugin/schemas.js.map +1 -0
- package/dist/cjs/postgres/adapter.js +715 -0
- package/dist/cjs/postgres/adapter.js.map +1 -0
- package/dist/cjs/postgres/index.js +50 -0
- package/dist/cjs/postgres/index.js.map +1 -0
- package/dist/cjs/postgres/serializers.js +381 -0
- package/dist/cjs/postgres/serializers.js.map +1 -0
- package/dist/cjs/postgres/sync.js +221 -0
- package/dist/cjs/postgres/sync.js.map +1 -0
- package/dist/cjs/postgres/types.js +44 -0
- package/dist/cjs/postgres/types.js.map +1 -0
- package/dist/cjs/registries/builder.js +414 -0
- package/dist/cjs/registries/builder.js.map +1 -0
- package/dist/cjs/registries/discovery.js +362 -0
- package/dist/cjs/registries/discovery.js.map +1 -0
- package/dist/cjs/registries/index.js +51 -0
- package/dist/cjs/registries/index.js.map +1 -0
- package/dist/cjs/registries/session.js +433 -0
- package/dist/cjs/registries/session.js.map +1 -0
- package/dist/cjs/registries/x402.js +577 -0
- package/dist/cjs/registries/x402.js.map +1 -0
- package/dist/cjs/types/accounts.js +13 -0
- package/dist/cjs/types/accounts.js.map +1 -0
- package/dist/cjs/types/common.js +13 -0
- package/dist/cjs/types/common.js.map +1 -0
- package/dist/cjs/types/enums.js +174 -0
- package/dist/cjs/types/enums.js.map +1 -0
- package/dist/cjs/types/index.js +36 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/instructions.js +92 -0
- package/dist/cjs/types/instructions.js.map +1 -0
- package/dist/cjs/utils/hash.js +58 -0
- package/dist/cjs/utils/hash.js.map +1 -0
- package/dist/cjs/utils/index.js +27 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/serialization.js +105 -0
- package/dist/cjs/utils/serialization.js.map +1 -0
- package/dist/cjs/utils/validation.js +36 -0
- package/dist/cjs/utils/validation.js.map +1 -0
- package/dist/esm/constants/index.js +29 -0
- package/dist/esm/constants/index.js.map +1 -0
- package/dist/esm/constants/limits.js +158 -0
- package/dist/esm/constants/limits.js.map +1 -0
- package/dist/esm/constants/programs.js +75 -0
- package/dist/esm/constants/programs.js.map +1 -0
- package/dist/esm/constants/seeds.js +54 -0
- package/dist/esm/constants/seeds.js.map +1 -0
- package/dist/esm/core/client.js +384 -0
- package/dist/esm/core/client.js.map +1 -0
- package/dist/esm/core/connection.js +315 -0
- package/dist/esm/core/connection.js.map +1 -0
- package/dist/esm/core/index.js +19 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/errors/index.js +325 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/events/index.js +132 -0
- package/dist/esm/events/index.js.map +1 -0
- package/dist/esm/idl/index.js +57 -0
- package/dist/esm/idl/index.js.map +1 -0
- package/dist/esm/idl/synapse_agent_sap.json +9710 -0
- package/dist/esm/index.js +70 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/modules/agent.js +268 -0
- package/dist/esm/modules/agent.js.map +1 -0
- package/dist/esm/modules/attestation.js +143 -0
- package/dist/esm/modules/attestation.js.map +1 -0
- package/dist/esm/modules/base.js +124 -0
- package/dist/esm/modules/base.js.map +1 -0
- package/dist/esm/modules/escrow.js +242 -0
- package/dist/esm/modules/escrow.js.map +1 -0
- package/dist/esm/modules/feedback.js +162 -0
- package/dist/esm/modules/feedback.js.map +1 -0
- package/dist/esm/modules/index.js +23 -0
- package/dist/esm/modules/index.js.map +1 -0
- package/dist/esm/modules/indexing.js +371 -0
- package/dist/esm/modules/indexing.js.map +1 -0
- package/dist/esm/modules/ledger.js +230 -0
- package/dist/esm/modules/ledger.js.map +1 -0
- package/dist/esm/modules/tools.js +315 -0
- package/dist/esm/modules/tools.js.map +1 -0
- package/dist/esm/modules/vault.js +406 -0
- package/dist/esm/modules/vault.js.map +1 -0
- package/dist/esm/pda/index.js +357 -0
- package/dist/esm/pda/index.js.map +1 -0
- package/dist/esm/plugin/index.js +927 -0
- package/dist/esm/plugin/index.js.map +1 -0
- package/dist/esm/plugin/protocols.js +279 -0
- package/dist/esm/plugin/protocols.js.map +1 -0
- package/dist/esm/plugin/schemas.js +828 -0
- package/dist/esm/plugin/schemas.js.map +1 -0
- package/dist/esm/postgres/adapter.js +678 -0
- package/dist/esm/postgres/adapter.js.map +1 -0
- package/dist/esm/postgres/index.js +27 -0
- package/dist/esm/postgres/index.js.map +1 -0
- package/dist/esm/postgres/serializers.js +362 -0
- package/dist/esm/postgres/serializers.js.map +1 -0
- package/dist/esm/postgres/sync.js +217 -0
- package/dist/esm/postgres/sync.js.map +1 -0
- package/dist/esm/postgres/types.js +41 -0
- package/dist/esm/postgres/types.js.map +1 -0
- package/dist/esm/registries/builder.js +410 -0
- package/dist/esm/registries/builder.js.map +1 -0
- package/dist/esm/registries/discovery.js +358 -0
- package/dist/esm/registries/discovery.js.map +1 -0
- package/dist/esm/registries/index.js +44 -0
- package/dist/esm/registries/index.js.map +1 -0
- package/dist/esm/registries/session.js +429 -0
- package/dist/esm/registries/session.js.map +1 -0
- package/dist/esm/registries/x402.js +573 -0
- package/dist/esm/registries/x402.js.map +1 -0
- package/dist/esm/types/accounts.js +12 -0
- package/dist/esm/types/accounts.js.map +1 -0
- package/dist/esm/types/common.js +12 -0
- package/dist/esm/types/common.js.map +1 -0
- package/dist/esm/types/enums.js +171 -0
- package/dist/esm/types/enums.js.map +1 -0
- package/dist/esm/types/index.js +25 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/instructions.js +89 -0
- package/dist/esm/types/instructions.js.map +1 -0
- package/dist/esm/utils/hash.js +53 -0
- package/dist/esm/utils/hash.js.map +1 -0
- package/dist/esm/utils/index.js +19 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/serialization.js +98 -0
- package/dist/esm/utils/serialization.js.map +1 -0
- package/dist/esm/utils/validation.js +33 -0
- package/dist/esm/utils/validation.js.map +1 -0
- package/dist/types/constants/index.d.ts +27 -0
- package/dist/types/constants/index.d.ts.map +1 -0
- package/dist/types/constants/limits.d.ts +149 -0
- package/dist/types/constants/limits.d.ts.map +1 -0
- package/dist/types/constants/programs.d.ts +69 -0
- package/dist/types/constants/programs.d.ts.map +1 -0
- package/dist/types/constants/seeds.d.ts +61 -0
- package/dist/types/constants/seeds.d.ts.map +1 -0
- package/dist/types/core/client.d.ts +323 -0
- package/dist/types/core/client.d.ts.map +1 -0
- package/dist/types/core/connection.d.ts +279 -0
- package/dist/types/core/connection.d.ts.map +1 -0
- package/dist/types/core/index.d.ts +20 -0
- package/dist/types/core/index.d.ts.map +1 -0
- package/dist/types/errors/index.d.ts +276 -0
- package/dist/types/errors/index.d.ts.map +1 -0
- package/dist/types/events/index.d.ts +248 -0
- package/dist/types/events/index.d.ts.map +1 -0
- package/dist/types/idl/index.d.ts +70 -0
- package/dist/types/idl/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +68 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/modules/agent.d.ts +166 -0
- package/dist/types/modules/agent.d.ts.map +1 -0
- package/dist/types/modules/attestation.d.ts +96 -0
- package/dist/types/modules/attestation.d.ts.map +1 -0
- package/dist/types/modules/base.d.ts +126 -0
- package/dist/types/modules/base.d.ts.map +1 -0
- package/dist/types/modules/escrow.d.ts +151 -0
- package/dist/types/modules/escrow.d.ts.map +1 -0
- package/dist/types/modules/feedback.d.ts +105 -0
- package/dist/types/modules/feedback.d.ts.map +1 -0
- package/dist/types/modules/index.d.ts +24 -0
- package/dist/types/modules/index.d.ts.map +1 -0
- package/dist/types/modules/indexing.d.ts +200 -0
- package/dist/types/modules/indexing.d.ts.map +1 -0
- package/dist/types/modules/ledger.d.ts +150 -0
- package/dist/types/modules/ledger.d.ts.map +1 -0
- package/dist/types/modules/tools.d.ts +182 -0
- package/dist/types/modules/tools.d.ts.map +1 -0
- package/dist/types/modules/vault.d.ts +240 -0
- package/dist/types/modules/vault.d.ts.map +1 -0
- package/dist/types/pda/index.d.ts +296 -0
- package/dist/types/pda/index.d.ts.map +1 -0
- package/dist/types/plugin/index.d.ts +171 -0
- package/dist/types/plugin/index.d.ts.map +1 -0
- package/dist/types/plugin/protocols.d.ts +152 -0
- package/dist/types/plugin/protocols.d.ts.map +1 -0
- package/dist/types/plugin/schemas.d.ts +823 -0
- package/dist/types/plugin/schemas.d.ts.map +1 -0
- package/dist/types/postgres/adapter.d.ts +355 -0
- package/dist/types/postgres/adapter.d.ts.map +1 -0
- package/dist/types/postgres/index.d.ts +24 -0
- package/dist/types/postgres/index.d.ts.map +1 -0
- package/dist/types/postgres/serializers.d.ts +30 -0
- package/dist/types/postgres/serializers.d.ts.map +1 -0
- package/dist/types/postgres/sync.d.ts +132 -0
- package/dist/types/postgres/sync.d.ts.map +1 -0
- package/dist/types/postgres/types.d.ts +167 -0
- package/dist/types/postgres/types.d.ts.map +1 -0
- package/dist/types/registries/builder.d.ts +340 -0
- package/dist/types/registries/builder.d.ts.map +1 -0
- package/dist/types/registries/discovery.d.ts +333 -0
- package/dist/types/registries/discovery.d.ts.map +1 -0
- package/dist/types/registries/index.d.ts +48 -0
- package/dist/types/registries/index.d.ts.map +1 -0
- package/dist/types/registries/session.d.ts +323 -0
- package/dist/types/registries/session.d.ts.map +1 -0
- package/dist/types/registries/x402.d.ts +463 -0
- package/dist/types/registries/x402.d.ts.map +1 -0
- package/dist/types/types/accounts.d.ts +565 -0
- package/dist/types/types/accounts.d.ts.map +1 -0
- package/dist/types/types/common.d.ts +166 -0
- package/dist/types/types/common.d.ts.map +1 -0
- package/dist/types/types/enums.d.ts +238 -0
- package/dist/types/types/enums.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +28 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/instructions.d.ts +366 -0
- package/dist/types/types/instructions.d.ts.map +1 -0
- package/dist/types/utils/hash.d.ts +48 -0
- package/dist/types/utils/hash.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +19 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/serialization.d.ts +69 -0
- package/dist/types/utils/serialization.d.ts.map +1 -0
- package/dist/types/utils/validation.d.ts +29 -0
- package/dist/types/utils/validation.d.ts.map +1 -0
- package/package.json +178 -0
- package/src/constants/index.ts +44 -0
- package/src/constants/limits.ts +165 -0
- package/src/constants/programs.ts +83 -0
- package/src/constants/seeds.ts +66 -0
- package/src/core/client.ts +416 -0
- package/src/core/connection.ts +409 -0
- package/src/core/index.ts +20 -0
- package/src/errors/index.ts +346 -0
- package/src/events/index.ts +335 -0
- package/src/idl/index.ts +76 -0
- package/src/idl/synapse_agent_sap.json +9710 -0
- package/src/index.ts +253 -0
- package/src/modules/agent.ts +319 -0
- package/src/modules/attestation.ts +168 -0
- package/src/modules/base.ts +158 -0
- package/src/modules/escrow.ts +308 -0
- package/src/modules/feedback.ts +186 -0
- package/src/modules/index.ts +24 -0
- package/src/modules/indexing.ts +444 -0
- package/src/modules/ledger.ts +262 -0
- package/src/modules/tools.ts +411 -0
- package/src/modules/vault.ts +533 -0
- package/src/pda/index.ts +512 -0
- package/src/plugin/index.ts +1202 -0
- package/src/plugin/protocols.ts +404 -0
- package/src/plugin/schemas.ts +909 -0
- package/src/postgres/adapter.ts +904 -0
- package/src/postgres/index.ts +59 -0
- package/src/postgres/schema.sql +683 -0
- package/src/postgres/serializers.ts +485 -0
- package/src/postgres/sync.ts +254 -0
- package/src/postgres/types.ts +245 -0
- package/src/registries/builder.ts +607 -0
- package/src/registries/discovery.ts +572 -0
- package/src/registries/index.ts +77 -0
- package/src/registries/session.ts +613 -0
- package/src/registries/x402.ts +906 -0
- package/src/types/accounts.ts +618 -0
- package/src/types/common.ts +187 -0
- package/src/types/enums.ts +214 -0
- package/src/types/index.ts +92 -0
- package/src/types/instructions.ts +413 -0
- package/src/utils/hash.ts +57 -0
- package/src/utils/index.ts +19 -0
- package/src/utils/serialization.ts +98 -0
- package/src/utils/validation.ts +36 -0
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module registries/discovery
|
|
3
|
+
* @description High-level agent and tool discovery registry.
|
|
4
|
+
*
|
|
5
|
+
* Abstracts the raw PDA-level indexing + fetching into a single
|
|
6
|
+
* developer-friendly interface for finding agents, tools, and
|
|
7
|
+
* services across the SAP network.
|
|
8
|
+
*
|
|
9
|
+
* Use cases:
|
|
10
|
+
* - "Find all agents that support Jupiter swaps"
|
|
11
|
+
* - "Find all Swap tools across all agents"
|
|
12
|
+
* - "Get the full profile of agent X (identity + stats + tools)"
|
|
13
|
+
* - "Get network-wide statistics"
|
|
14
|
+
*
|
|
15
|
+
* @category Registries
|
|
16
|
+
* @since v0.1.0
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* const discovery = client.discovery;
|
|
21
|
+
*
|
|
22
|
+
* // Find agents that support Jupiter protocol
|
|
23
|
+
* const agents = await discovery.findAgentsByProtocol("jupiter");
|
|
24
|
+
*
|
|
25
|
+
* // Get full agent profile (identity + stats + attestations)
|
|
26
|
+
* const profile = await discovery.getAgentProfile(agentWallet);
|
|
27
|
+
*
|
|
28
|
+
* // Find all Swap tools across the network
|
|
29
|
+
* const tools = await discovery.findToolsByCategory("swap");
|
|
30
|
+
*
|
|
31
|
+
* // Network overview
|
|
32
|
+
* const stats = await discovery.getNetworkOverview();
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
import type { PublicKey } from "@solana/web3.js";
|
|
36
|
+
import type { SapProgram } from "../modules/base";
|
|
37
|
+
import { TOOL_CATEGORY_VALUES } from "../constants";
|
|
38
|
+
import type { AgentAccountData, AgentStatsData, ToolDescriptorData } from "../types";
|
|
39
|
+
/**
|
|
40
|
+
* @interface DiscoveredAgent
|
|
41
|
+
* @name DiscoveredAgent
|
|
42
|
+
* @description Compact agent identity returned by discovery queries.
|
|
43
|
+
* Contains the agent PDA, optional identity data, and optional stats.
|
|
44
|
+
* Returned by {@link DiscoveryRegistry.findAgentsByCapability},
|
|
45
|
+
* {@link DiscoveryRegistry.findAgentsByProtocol}, and
|
|
46
|
+
* {@link DiscoveryRegistry.findAgentsByCapabilities}.
|
|
47
|
+
* @category Registries
|
|
48
|
+
* @since v0.1.0
|
|
49
|
+
*/
|
|
50
|
+
export interface DiscoveredAgent {
|
|
51
|
+
/** Agent PDA address. */
|
|
52
|
+
readonly pda: PublicKey;
|
|
53
|
+
/** Agent identity data (null if account not found). */
|
|
54
|
+
readonly identity: AgentAccountData | null;
|
|
55
|
+
/** Agent stats (null if account not found). */
|
|
56
|
+
readonly stats: AgentStatsData | null;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @interface AgentProfile
|
|
60
|
+
* @name AgentProfile
|
|
61
|
+
* @description Full agent profile with all discoverable data.
|
|
62
|
+
* Combines identity, stats, and computed fields into a single
|
|
63
|
+
* display-ready structure. Returned by {@link DiscoveryRegistry.getAgentProfile}.
|
|
64
|
+
* @category Registries
|
|
65
|
+
* @since v0.1.0
|
|
66
|
+
*/
|
|
67
|
+
export interface AgentProfile {
|
|
68
|
+
/** Agent PDA. */
|
|
69
|
+
readonly pda: PublicKey;
|
|
70
|
+
/** Agent identity (name, description, capabilities, pricing, etc.). */
|
|
71
|
+
readonly identity: AgentAccountData;
|
|
72
|
+
/** Lightweight metrics (total calls, active status). */
|
|
73
|
+
readonly stats: AgentStatsData | null;
|
|
74
|
+
/** Computed fields for display. */
|
|
75
|
+
readonly computed: {
|
|
76
|
+
/** Is the agent currently active? */
|
|
77
|
+
readonly isActive: boolean;
|
|
78
|
+
/** Total calls served (from stats or identity fallback). */
|
|
79
|
+
readonly totalCalls: string;
|
|
80
|
+
/** Reputation score (0-1000). */
|
|
81
|
+
readonly reputationScore: number;
|
|
82
|
+
/** Has x402 endpoint configured? */
|
|
83
|
+
readonly hasX402: boolean;
|
|
84
|
+
/** Number of capabilities. */
|
|
85
|
+
readonly capabilityCount: number;
|
|
86
|
+
/** Number of pricing tiers. */
|
|
87
|
+
readonly pricingTierCount: number;
|
|
88
|
+
/** Protocol list. */
|
|
89
|
+
readonly protocols: string[];
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* @interface DiscoveredTool
|
|
94
|
+
* @name DiscoveredTool
|
|
95
|
+
* @description Discovered tool with agent context.
|
|
96
|
+
* Contains the tool PDA and optional descriptor data.
|
|
97
|
+
* Returned by {@link DiscoveryRegistry.findToolsByCategory}.
|
|
98
|
+
* @category Registries
|
|
99
|
+
* @since v0.1.0
|
|
100
|
+
*/
|
|
101
|
+
export interface DiscoveredTool {
|
|
102
|
+
/** Tool PDA address. */
|
|
103
|
+
readonly pda: PublicKey;
|
|
104
|
+
/** Tool descriptor data (null if not found). */
|
|
105
|
+
readonly descriptor: ToolDescriptorData | null;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* @interface NetworkOverview
|
|
109
|
+
* @name NetworkOverview
|
|
110
|
+
* @description Network-wide statistics aggregated from the GlobalRegistry account.
|
|
111
|
+
* Provides counts of agents, tools, vaults, attestations, and more.
|
|
112
|
+
* Returned by {@link DiscoveryRegistry.getNetworkOverview}.
|
|
113
|
+
* @category Registries
|
|
114
|
+
* @since v0.1.0
|
|
115
|
+
*/
|
|
116
|
+
export interface NetworkOverview {
|
|
117
|
+
/** Total registered agents. */
|
|
118
|
+
readonly totalAgents: string;
|
|
119
|
+
/** Currently active agents. */
|
|
120
|
+
readonly activeAgents: string;
|
|
121
|
+
/** Total feedback entries. */
|
|
122
|
+
readonly totalFeedbacks: string;
|
|
123
|
+
/** Total registered tools. */
|
|
124
|
+
readonly totalTools: number;
|
|
125
|
+
/** Total memory vaults. */
|
|
126
|
+
readonly totalVaults: number;
|
|
127
|
+
/** Total attestations. */
|
|
128
|
+
readonly totalAttestations: number;
|
|
129
|
+
/** Total capability indexes. */
|
|
130
|
+
readonly totalCapabilities: number;
|
|
131
|
+
/** Total protocol indexes. */
|
|
132
|
+
readonly totalProtocols: number;
|
|
133
|
+
/** Protocol authority. */
|
|
134
|
+
readonly authority: PublicKey;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* @typedef {string} ToolCategoryName
|
|
138
|
+
* @name ToolCategoryName
|
|
139
|
+
* @description Tool category string literal type derived from `TOOL_CATEGORY_VALUES`.
|
|
140
|
+
* Valid values include: `"swap"`, `"data"`, `"lending"`, `"governance"`, etc.
|
|
141
|
+
* @category Registries
|
|
142
|
+
* @since v0.1.0
|
|
143
|
+
* @see {@link DiscoveryRegistry.findToolsByCategory}
|
|
144
|
+
*/
|
|
145
|
+
export type ToolCategoryName = keyof typeof TOOL_CATEGORY_VALUES;
|
|
146
|
+
/**
|
|
147
|
+
* @name DiscoveryRegistry
|
|
148
|
+
* @description High-level agent and tool discovery registry for the SAP network.
|
|
149
|
+
*
|
|
150
|
+
* Provides a developer-friendly API for finding agents by capability,
|
|
151
|
+
* protocol, or tool category, fetching full agent profiles, and
|
|
152
|
+
* retrieving network-wide statistics.
|
|
153
|
+
*
|
|
154
|
+
* @category Registries
|
|
155
|
+
* @since v0.1.0
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```ts
|
|
159
|
+
* const discovery = client.discovery;
|
|
160
|
+
*
|
|
161
|
+
* // Find agents by capability
|
|
162
|
+
* const swapAgents = await discovery.findAgentsByCapability("jupiter:swap");
|
|
163
|
+
*
|
|
164
|
+
* // Get agent profile
|
|
165
|
+
* const profile = await discovery.getAgentProfile(agentWallet);
|
|
166
|
+
*
|
|
167
|
+
* // Network statistics
|
|
168
|
+
* const overview = await discovery.getNetworkOverview();
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
export declare class DiscoveryRegistry {
|
|
172
|
+
private readonly program;
|
|
173
|
+
constructor(program: SapProgram);
|
|
174
|
+
/**
|
|
175
|
+
* @name findAgentsByCapability
|
|
176
|
+
* @description Find all agent PDAs registered for a specific capability.
|
|
177
|
+
* Hashes the capability ID with SHA-256 and looks up the capability index PDA.
|
|
178
|
+
*
|
|
179
|
+
* @param capabilityId - The capability identifier string (e.g. `"jupiter:swap"`).
|
|
180
|
+
* @param opts - Optional settings.
|
|
181
|
+
* @param opts.hydrate - If `false`, returns only PDAs without fetching identity/stats. Defaults to `true`.
|
|
182
|
+
* @returns An array of {@link DiscoveredAgent} matching the capability.
|
|
183
|
+
* @since v0.1.0
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```ts
|
|
187
|
+
* const agents = await discovery.findAgentsByCapability("jupiter:swap");
|
|
188
|
+
* ```
|
|
189
|
+
*/
|
|
190
|
+
findAgentsByCapability(capabilityId: string, opts?: {
|
|
191
|
+
hydrate?: boolean;
|
|
192
|
+
}): Promise<DiscoveredAgent[]>;
|
|
193
|
+
/**
|
|
194
|
+
* @name findAgentsByProtocol
|
|
195
|
+
* @description Find all agent PDAs registered for a specific protocol.
|
|
196
|
+
* Hashes the protocol ID with SHA-256 and looks up the protocol index PDA.
|
|
197
|
+
*
|
|
198
|
+
* @param protocolId - The protocol identifier string (e.g. `"jupiter"`).
|
|
199
|
+
* @param opts - Optional settings.
|
|
200
|
+
* @param opts.hydrate - If `false`, returns only PDAs without fetching identity/stats. Defaults to `true`.
|
|
201
|
+
* @returns An array of {@link DiscoveredAgent} matching the protocol.
|
|
202
|
+
* @since v0.1.0
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* ```ts
|
|
206
|
+
* const agents = await discovery.findAgentsByProtocol("jupiter");
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
209
|
+
findAgentsByProtocol(protocolId: string, opts?: {
|
|
210
|
+
hydrate?: boolean;
|
|
211
|
+
}): Promise<DiscoveredAgent[]>;
|
|
212
|
+
/**
|
|
213
|
+
* @name findToolsByCategory
|
|
214
|
+
* @description Find all tool PDAs registered in a specific category.
|
|
215
|
+
* Accepts either a category name string or a numeric category value.
|
|
216
|
+
*
|
|
217
|
+
* @param category - Tool category name (e.g. `"swap"`) or numeric category value.
|
|
218
|
+
* @param opts - Optional settings.
|
|
219
|
+
* @param opts.hydrate - If `false`, returns only PDAs without fetching descriptors. Defaults to `true`.
|
|
220
|
+
* @returns An array of {@link DiscoveredTool} matching the category.
|
|
221
|
+
* @since v0.1.0
|
|
222
|
+
*
|
|
223
|
+
* @example
|
|
224
|
+
* ```ts
|
|
225
|
+
* const tools = await discovery.findToolsByCategory("swap");
|
|
226
|
+
* const tools = await discovery.findToolsByCategory(0); // numeric
|
|
227
|
+
* ```
|
|
228
|
+
*/
|
|
229
|
+
findToolsByCategory(category: ToolCategoryName | number, opts?: {
|
|
230
|
+
hydrate?: boolean;
|
|
231
|
+
}): Promise<DiscoveredTool[]>;
|
|
232
|
+
/**
|
|
233
|
+
* @name getAgentProfile
|
|
234
|
+
* @description Get the full profile of an agent by wallet address.
|
|
235
|
+
* Combines identity + stats into a single response with computed fields
|
|
236
|
+
* for easy display (active status, total calls, reputation, etc.).
|
|
237
|
+
*
|
|
238
|
+
* @param wallet - The agent owner's wallet public key.
|
|
239
|
+
* @returns The full {@link AgentProfile}, or `null` if the agent does not exist.
|
|
240
|
+
* @since v0.1.0
|
|
241
|
+
*
|
|
242
|
+
* @example
|
|
243
|
+
* ```ts
|
|
244
|
+
* const profile = await discovery.getAgentProfile(agentWallet);
|
|
245
|
+
* console.log(profile.identity.name);
|
|
246
|
+
* console.log(profile.computed.isActive);
|
|
247
|
+
* console.log(profile.computed.totalCalls);
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
getAgentProfile(wallet: PublicKey): Promise<AgentProfile | null>;
|
|
251
|
+
/**
|
|
252
|
+
* @name isAgentActive
|
|
253
|
+
* @description Check if an agent exists and is currently active.
|
|
254
|
+
* Reads the agent stats account to determine active status.
|
|
255
|
+
*
|
|
256
|
+
* @param wallet - The agent owner's wallet public key.
|
|
257
|
+
* @returns `true` if the agent exists and is active, `false` otherwise.
|
|
258
|
+
* @since v0.1.0
|
|
259
|
+
*/
|
|
260
|
+
isAgentActive(wallet: PublicKey): Promise<boolean>;
|
|
261
|
+
/**
|
|
262
|
+
* @name getNetworkOverview
|
|
263
|
+
* @description Get network-wide statistics from the GlobalRegistry account.
|
|
264
|
+
* Returns aggregated counts and metadata for the entire SAP network.
|
|
265
|
+
*
|
|
266
|
+
* @returns A {@link NetworkOverview} with all network-level statistics.
|
|
267
|
+
* @since v0.1.0
|
|
268
|
+
*/
|
|
269
|
+
getNetworkOverview(): Promise<NetworkOverview>;
|
|
270
|
+
/**
|
|
271
|
+
* @name findAgentsByCapabilities
|
|
272
|
+
* @description Search across multiple capability IDs at once.
|
|
273
|
+
* Returns deduplicated agent PDAs aggregated from all matching capability indexes.
|
|
274
|
+
*
|
|
275
|
+
* @param capabilityIds - Array of capability identifier strings to search.
|
|
276
|
+
* @param opts - Optional settings.
|
|
277
|
+
* @param opts.hydrate - If `false`, returns only PDAs without fetching identity/stats. Defaults to `true`.
|
|
278
|
+
* @returns A deduplicated array of {@link DiscoveredAgent} matching any of the capabilities.
|
|
279
|
+
* @since v0.1.0
|
|
280
|
+
*/
|
|
281
|
+
findAgentsByCapabilities(capabilityIds: string[], opts?: {
|
|
282
|
+
hydrate?: boolean;
|
|
283
|
+
}): Promise<DiscoveredAgent[]>;
|
|
284
|
+
/**
|
|
285
|
+
* @name getToolCategorySummary
|
|
286
|
+
* @description Search across all 10 tool categories and return a summary.
|
|
287
|
+
* Lists each category with its name, numeric value, and tool count.
|
|
288
|
+
*
|
|
289
|
+
* @returns An array of category summary objects with `category`, `categoryNum`, and `toolCount`.
|
|
290
|
+
* @since v0.1.0
|
|
291
|
+
*/
|
|
292
|
+
getToolCategorySummary(): Promise<Array<{
|
|
293
|
+
category: string;
|
|
294
|
+
categoryNum: number;
|
|
295
|
+
toolCount: number;
|
|
296
|
+
}>>;
|
|
297
|
+
/**
|
|
298
|
+
* @name hydrateAgents
|
|
299
|
+
* @description Hydrate an array of agent PDAs by fetching identity and stats data.
|
|
300
|
+
* @param agentPdas - Array of agent PDA public keys.
|
|
301
|
+
* @returns An array of {@link DiscoveredAgent} with populated identity and stats fields.
|
|
302
|
+
* @private
|
|
303
|
+
*/
|
|
304
|
+
private hydrateAgents;
|
|
305
|
+
/**
|
|
306
|
+
* @name hydrateTools
|
|
307
|
+
* @description Hydrate an array of tool PDAs by fetching descriptor data.
|
|
308
|
+
* @param toolPdas - Array of tool PDA public keys.
|
|
309
|
+
* @returns An array of {@link DiscoveredTool} with populated descriptor fields.
|
|
310
|
+
* @private
|
|
311
|
+
*/
|
|
312
|
+
private hydrateTools;
|
|
313
|
+
/**
|
|
314
|
+
* @name fetch
|
|
315
|
+
* @description Fetch an on-chain account by name and PDA. Throws if not found.
|
|
316
|
+
* @param name - Anchor account discriminator name.
|
|
317
|
+
* @param pda - Account public key to fetch.
|
|
318
|
+
* @returns The deserialized account data.
|
|
319
|
+
* @throws If the account does not exist.
|
|
320
|
+
* @private
|
|
321
|
+
*/
|
|
322
|
+
private fetch;
|
|
323
|
+
/**
|
|
324
|
+
* @name fetchNullable
|
|
325
|
+
* @description Fetch an on-chain account by name and PDA. Returns `null` if not found.
|
|
326
|
+
* @param name - Anchor account discriminator name.
|
|
327
|
+
* @param pda - Account public key to fetch.
|
|
328
|
+
* @returns The deserialized account data, or `null` if the account does not exist.
|
|
329
|
+
* @private
|
|
330
|
+
*/
|
|
331
|
+
private fetchNullable;
|
|
332
|
+
}
|
|
333
|
+
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/registries/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAUlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EAId,kBAAkB,EAEnB,MAAM,UAAU,CAAC;AAMlB;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC3C,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;CACvC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,iBAAiB;IACjB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE;QACjB,qCAAqC;QACrC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC3B,4DAA4D;QAC5D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,iCAAiC;QACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,oCAAoC;QACpC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1B,8BAA8B;QAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,+BAA+B;QAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,qBAAqB;QACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;KAC9B,CAAC;CACH;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAChD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,8BAA8B;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,8BAA8B;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0BAA0B;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,gCAAgC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,8BAA8B;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,0BAA0B;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,oBAAoB,CAAC;AAMjE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,UAAU;IAIhD;;;;;;;;;;;;;;;OAeG;IACG,sBAAsB,CAC1B,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3B,OAAO,CAAC,eAAe,EAAE,CAAC;IAqB7B;;;;;;;;;;;;;;;OAeG;IACG,oBAAoB,CACxB,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3B,OAAO,CAAC,eAAe,EAAE,CAAC;IAqB7B;;;;;;;;;;;;;;;;OAgBG;IACG,mBAAmB,CACvB,QAAQ,EAAE,gBAAgB,GAAG,MAAM,EACnC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3B,OAAO,CAAC,cAAc,EAAE,CAAC;IAyB5B;;;;;;;;;;;;;;;;;OAiBG;IACG,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA6BtE;;;;;;;;OAQG;IACG,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAaxD;;;;;;;OAOG;IACG,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAmBpD;;;;;;;;;;OAUG;IACG,wBAAwB,CAC5B,aAAa,EAAE,MAAM,EAAE,EACvB,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3B,OAAO,CAAC,eAAe,EAAE,CAAC;IAkB7B;;;;;;;OAOG;IACG,sBAAsB,IAAI,OAAO,CACrC,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CACpE;IA6BD;;;;;;OAMG;YACW,aAAa;IAe3B;;;;;;OAMG;YACW,YAAY;IAc1B;;;;;;;;OAQG;YAEW,KAAK;IAKnB;;;;;;;OAOG;YAEW,aAAa;CAI5B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module registries
|
|
3
|
+
* @description High-level registry barrel export.
|
|
4
|
+
*
|
|
5
|
+
* Registries are developer-facing abstractions that combine
|
|
6
|
+
* multiple raw SDK modules into cohesive, workflow-oriented APIs:
|
|
7
|
+
*
|
|
8
|
+
* - **DiscoveryRegistry** — Find agents, tools, and services across
|
|
9
|
+
* the SAP network by capability, protocol, or tool category.
|
|
10
|
+
*
|
|
11
|
+
* - **X402Registry** — Full x402 micropayment lifecycle: pricing
|
|
12
|
+
* estimation, escrow management, HTTP header generation,
|
|
13
|
+
* settlement, and balance monitoring.
|
|
14
|
+
*
|
|
15
|
+
* - **SessionManager** — Unified memory session lifecycle: create
|
|
16
|
+
* vault, open session, write data, read ring buffer, seal
|
|
17
|
+
* archives, and close sessions in a single API.
|
|
18
|
+
*
|
|
19
|
+
* - **AgentBuilder** — Fluent builder for agent registration with
|
|
20
|
+
* capabilities, pricing tiers, tools, and x402 endpoint config.
|
|
21
|
+
*
|
|
22
|
+
* All registries are accessible as lazy singletons on `SapClient`:
|
|
23
|
+
*
|
|
24
|
+
* ```ts
|
|
25
|
+
* const client = SapClient.from(provider);
|
|
26
|
+
*
|
|
27
|
+
* client.discovery // → DiscoveryRegistry
|
|
28
|
+
* client.x402 // → X402Registry
|
|
29
|
+
* client.session // → SessionManager
|
|
30
|
+
* client.builder // → AgentBuilder (fresh instance each access)
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @category Registries
|
|
34
|
+
* @since v0.1.0
|
|
35
|
+
* @see {@link DiscoveryRegistry}
|
|
36
|
+
* @see {@link X402Registry}
|
|
37
|
+
* @see {@link SessionManager}
|
|
38
|
+
* @see {@link AgentBuilder}
|
|
39
|
+
*/
|
|
40
|
+
export { DiscoveryRegistry } from "./discovery";
|
|
41
|
+
export type { DiscoveredAgent, AgentProfile, DiscoveredTool, NetworkOverview, ToolCategoryName, } from "./discovery";
|
|
42
|
+
export { X402Registry } from "./x402";
|
|
43
|
+
export type { CostEstimate, PaymentContext, PreparePaymentOptions, X402Headers, EscrowBalance, SettlementResult, BatchSettlementResult, } from "./x402";
|
|
44
|
+
export { SessionManager } from "./session";
|
|
45
|
+
export type { SessionContext, WriteResult, SealResult, RingBufferEntry, SessionStatus, } from "./session";
|
|
46
|
+
export { AgentBuilder } from "./builder";
|
|
47
|
+
export type { CapabilityInput, PricingTierInput, ToolInput, RegisterResult, RegisterWithToolsResult, } from "./builder";
|
|
48
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/registries/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,YAAY,EACV,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,eAAe,EACf,aAAa,GACd,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,uBAAuB,GACxB,MAAM,WAAW,CAAC"}
|