@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.
Files changed (315) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +882 -0
  3. package/dist/cjs/constants/index.js +43 -0
  4. package/dist/cjs/constants/index.js.map +1 -0
  5. package/dist/cjs/constants/limits.js +161 -0
  6. package/dist/cjs/constants/limits.js.map +1 -0
  7. package/dist/cjs/constants/programs.js +78 -0
  8. package/dist/cjs/constants/programs.js.map +1 -0
  9. package/dist/cjs/constants/seeds.js +57 -0
  10. package/dist/cjs/constants/seeds.js.map +1 -0
  11. package/dist/cjs/core/client.js +391 -0
  12. package/dist/cjs/core/client.js.map +1 -0
  13. package/dist/cjs/core/connection.js +319 -0
  14. package/dist/cjs/core/connection.js.map +1 -0
  15. package/dist/cjs/core/index.js +24 -0
  16. package/dist/cjs/core/index.js.map +1 -0
  17. package/dist/cjs/errors/index.js +334 -0
  18. package/dist/cjs/errors/index.js.map +1 -0
  19. package/dist/cjs/events/index.js +136 -0
  20. package/dist/cjs/events/index.js.map +1 -0
  21. package/dist/cjs/idl/index.js +63 -0
  22. package/dist/cjs/idl/index.js.map +1 -0
  23. package/dist/cjs/idl/synapse_agent_sap.json +9710 -0
  24. package/dist/cjs/index.js +147 -0
  25. package/dist/cjs/index.js.map +1 -0
  26. package/dist/cjs/modules/agent.js +272 -0
  27. package/dist/cjs/modules/agent.js.map +1 -0
  28. package/dist/cjs/modules/attestation.js +147 -0
  29. package/dist/cjs/modules/attestation.js.map +1 -0
  30. package/dist/cjs/modules/base.js +128 -0
  31. package/dist/cjs/modules/base.js.map +1 -0
  32. package/dist/cjs/modules/escrow.js +246 -0
  33. package/dist/cjs/modules/escrow.js.map +1 -0
  34. package/dist/cjs/modules/feedback.js +166 -0
  35. package/dist/cjs/modules/feedback.js.map +1 -0
  36. package/dist/cjs/modules/index.js +35 -0
  37. package/dist/cjs/modules/index.js.map +1 -0
  38. package/dist/cjs/modules/indexing.js +375 -0
  39. package/dist/cjs/modules/indexing.js.map +1 -0
  40. package/dist/cjs/modules/ledger.js +234 -0
  41. package/dist/cjs/modules/ledger.js.map +1 -0
  42. package/dist/cjs/modules/tools.js +319 -0
  43. package/dist/cjs/modules/tools.js.map +1 -0
  44. package/dist/cjs/modules/vault.js +410 -0
  45. package/dist/cjs/modules/vault.js.map +1 -0
  46. package/dist/cjs/pda/index.js +377 -0
  47. package/dist/cjs/pda/index.js.map +1 -0
  48. package/dist/cjs/plugin/index.js +934 -0
  49. package/dist/cjs/plugin/index.js.map +1 -0
  50. package/dist/cjs/plugin/protocols.js +282 -0
  51. package/dist/cjs/plugin/protocols.js.map +1 -0
  52. package/dist/cjs/plugin/schemas.js +831 -0
  53. package/dist/cjs/plugin/schemas.js.map +1 -0
  54. package/dist/cjs/postgres/adapter.js +715 -0
  55. package/dist/cjs/postgres/adapter.js.map +1 -0
  56. package/dist/cjs/postgres/index.js +50 -0
  57. package/dist/cjs/postgres/index.js.map +1 -0
  58. package/dist/cjs/postgres/serializers.js +381 -0
  59. package/dist/cjs/postgres/serializers.js.map +1 -0
  60. package/dist/cjs/postgres/sync.js +221 -0
  61. package/dist/cjs/postgres/sync.js.map +1 -0
  62. package/dist/cjs/postgres/types.js +44 -0
  63. package/dist/cjs/postgres/types.js.map +1 -0
  64. package/dist/cjs/registries/builder.js +414 -0
  65. package/dist/cjs/registries/builder.js.map +1 -0
  66. package/dist/cjs/registries/discovery.js +362 -0
  67. package/dist/cjs/registries/discovery.js.map +1 -0
  68. package/dist/cjs/registries/index.js +51 -0
  69. package/dist/cjs/registries/index.js.map +1 -0
  70. package/dist/cjs/registries/session.js +433 -0
  71. package/dist/cjs/registries/session.js.map +1 -0
  72. package/dist/cjs/registries/x402.js +577 -0
  73. package/dist/cjs/registries/x402.js.map +1 -0
  74. package/dist/cjs/types/accounts.js +13 -0
  75. package/dist/cjs/types/accounts.js.map +1 -0
  76. package/dist/cjs/types/common.js +13 -0
  77. package/dist/cjs/types/common.js.map +1 -0
  78. package/dist/cjs/types/enums.js +174 -0
  79. package/dist/cjs/types/enums.js.map +1 -0
  80. package/dist/cjs/types/index.js +36 -0
  81. package/dist/cjs/types/index.js.map +1 -0
  82. package/dist/cjs/types/instructions.js +92 -0
  83. package/dist/cjs/types/instructions.js.map +1 -0
  84. package/dist/cjs/utils/hash.js +58 -0
  85. package/dist/cjs/utils/hash.js.map +1 -0
  86. package/dist/cjs/utils/index.js +27 -0
  87. package/dist/cjs/utils/index.js.map +1 -0
  88. package/dist/cjs/utils/serialization.js +105 -0
  89. package/dist/cjs/utils/serialization.js.map +1 -0
  90. package/dist/cjs/utils/validation.js +36 -0
  91. package/dist/cjs/utils/validation.js.map +1 -0
  92. package/dist/esm/constants/index.js +29 -0
  93. package/dist/esm/constants/index.js.map +1 -0
  94. package/dist/esm/constants/limits.js +158 -0
  95. package/dist/esm/constants/limits.js.map +1 -0
  96. package/dist/esm/constants/programs.js +75 -0
  97. package/dist/esm/constants/programs.js.map +1 -0
  98. package/dist/esm/constants/seeds.js +54 -0
  99. package/dist/esm/constants/seeds.js.map +1 -0
  100. package/dist/esm/core/client.js +384 -0
  101. package/dist/esm/core/client.js.map +1 -0
  102. package/dist/esm/core/connection.js +315 -0
  103. package/dist/esm/core/connection.js.map +1 -0
  104. package/dist/esm/core/index.js +19 -0
  105. package/dist/esm/core/index.js.map +1 -0
  106. package/dist/esm/errors/index.js +325 -0
  107. package/dist/esm/errors/index.js.map +1 -0
  108. package/dist/esm/events/index.js +132 -0
  109. package/dist/esm/events/index.js.map +1 -0
  110. package/dist/esm/idl/index.js +57 -0
  111. package/dist/esm/idl/index.js.map +1 -0
  112. package/dist/esm/idl/synapse_agent_sap.json +9710 -0
  113. package/dist/esm/index.js +70 -0
  114. package/dist/esm/index.js.map +1 -0
  115. package/dist/esm/modules/agent.js +268 -0
  116. package/dist/esm/modules/agent.js.map +1 -0
  117. package/dist/esm/modules/attestation.js +143 -0
  118. package/dist/esm/modules/attestation.js.map +1 -0
  119. package/dist/esm/modules/base.js +124 -0
  120. package/dist/esm/modules/base.js.map +1 -0
  121. package/dist/esm/modules/escrow.js +242 -0
  122. package/dist/esm/modules/escrow.js.map +1 -0
  123. package/dist/esm/modules/feedback.js +162 -0
  124. package/dist/esm/modules/feedback.js.map +1 -0
  125. package/dist/esm/modules/index.js +23 -0
  126. package/dist/esm/modules/index.js.map +1 -0
  127. package/dist/esm/modules/indexing.js +371 -0
  128. package/dist/esm/modules/indexing.js.map +1 -0
  129. package/dist/esm/modules/ledger.js +230 -0
  130. package/dist/esm/modules/ledger.js.map +1 -0
  131. package/dist/esm/modules/tools.js +315 -0
  132. package/dist/esm/modules/tools.js.map +1 -0
  133. package/dist/esm/modules/vault.js +406 -0
  134. package/dist/esm/modules/vault.js.map +1 -0
  135. package/dist/esm/pda/index.js +357 -0
  136. package/dist/esm/pda/index.js.map +1 -0
  137. package/dist/esm/plugin/index.js +927 -0
  138. package/dist/esm/plugin/index.js.map +1 -0
  139. package/dist/esm/plugin/protocols.js +279 -0
  140. package/dist/esm/plugin/protocols.js.map +1 -0
  141. package/dist/esm/plugin/schemas.js +828 -0
  142. package/dist/esm/plugin/schemas.js.map +1 -0
  143. package/dist/esm/postgres/adapter.js +678 -0
  144. package/dist/esm/postgres/adapter.js.map +1 -0
  145. package/dist/esm/postgres/index.js +27 -0
  146. package/dist/esm/postgres/index.js.map +1 -0
  147. package/dist/esm/postgres/serializers.js +362 -0
  148. package/dist/esm/postgres/serializers.js.map +1 -0
  149. package/dist/esm/postgres/sync.js +217 -0
  150. package/dist/esm/postgres/sync.js.map +1 -0
  151. package/dist/esm/postgres/types.js +41 -0
  152. package/dist/esm/postgres/types.js.map +1 -0
  153. package/dist/esm/registries/builder.js +410 -0
  154. package/dist/esm/registries/builder.js.map +1 -0
  155. package/dist/esm/registries/discovery.js +358 -0
  156. package/dist/esm/registries/discovery.js.map +1 -0
  157. package/dist/esm/registries/index.js +44 -0
  158. package/dist/esm/registries/index.js.map +1 -0
  159. package/dist/esm/registries/session.js +429 -0
  160. package/dist/esm/registries/session.js.map +1 -0
  161. package/dist/esm/registries/x402.js +573 -0
  162. package/dist/esm/registries/x402.js.map +1 -0
  163. package/dist/esm/types/accounts.js +12 -0
  164. package/dist/esm/types/accounts.js.map +1 -0
  165. package/dist/esm/types/common.js +12 -0
  166. package/dist/esm/types/common.js.map +1 -0
  167. package/dist/esm/types/enums.js +171 -0
  168. package/dist/esm/types/enums.js.map +1 -0
  169. package/dist/esm/types/index.js +25 -0
  170. package/dist/esm/types/index.js.map +1 -0
  171. package/dist/esm/types/instructions.js +89 -0
  172. package/dist/esm/types/instructions.js.map +1 -0
  173. package/dist/esm/utils/hash.js +53 -0
  174. package/dist/esm/utils/hash.js.map +1 -0
  175. package/dist/esm/utils/index.js +19 -0
  176. package/dist/esm/utils/index.js.map +1 -0
  177. package/dist/esm/utils/serialization.js +98 -0
  178. package/dist/esm/utils/serialization.js.map +1 -0
  179. package/dist/esm/utils/validation.js +33 -0
  180. package/dist/esm/utils/validation.js.map +1 -0
  181. package/dist/types/constants/index.d.ts +27 -0
  182. package/dist/types/constants/index.d.ts.map +1 -0
  183. package/dist/types/constants/limits.d.ts +149 -0
  184. package/dist/types/constants/limits.d.ts.map +1 -0
  185. package/dist/types/constants/programs.d.ts +69 -0
  186. package/dist/types/constants/programs.d.ts.map +1 -0
  187. package/dist/types/constants/seeds.d.ts +61 -0
  188. package/dist/types/constants/seeds.d.ts.map +1 -0
  189. package/dist/types/core/client.d.ts +323 -0
  190. package/dist/types/core/client.d.ts.map +1 -0
  191. package/dist/types/core/connection.d.ts +279 -0
  192. package/dist/types/core/connection.d.ts.map +1 -0
  193. package/dist/types/core/index.d.ts +20 -0
  194. package/dist/types/core/index.d.ts.map +1 -0
  195. package/dist/types/errors/index.d.ts +276 -0
  196. package/dist/types/errors/index.d.ts.map +1 -0
  197. package/dist/types/events/index.d.ts +248 -0
  198. package/dist/types/events/index.d.ts.map +1 -0
  199. package/dist/types/idl/index.d.ts +70 -0
  200. package/dist/types/idl/index.d.ts.map +1 -0
  201. package/dist/types/index.d.ts +68 -0
  202. package/dist/types/index.d.ts.map +1 -0
  203. package/dist/types/modules/agent.d.ts +166 -0
  204. package/dist/types/modules/agent.d.ts.map +1 -0
  205. package/dist/types/modules/attestation.d.ts +96 -0
  206. package/dist/types/modules/attestation.d.ts.map +1 -0
  207. package/dist/types/modules/base.d.ts +126 -0
  208. package/dist/types/modules/base.d.ts.map +1 -0
  209. package/dist/types/modules/escrow.d.ts +151 -0
  210. package/dist/types/modules/escrow.d.ts.map +1 -0
  211. package/dist/types/modules/feedback.d.ts +105 -0
  212. package/dist/types/modules/feedback.d.ts.map +1 -0
  213. package/dist/types/modules/index.d.ts +24 -0
  214. package/dist/types/modules/index.d.ts.map +1 -0
  215. package/dist/types/modules/indexing.d.ts +200 -0
  216. package/dist/types/modules/indexing.d.ts.map +1 -0
  217. package/dist/types/modules/ledger.d.ts +150 -0
  218. package/dist/types/modules/ledger.d.ts.map +1 -0
  219. package/dist/types/modules/tools.d.ts +182 -0
  220. package/dist/types/modules/tools.d.ts.map +1 -0
  221. package/dist/types/modules/vault.d.ts +240 -0
  222. package/dist/types/modules/vault.d.ts.map +1 -0
  223. package/dist/types/pda/index.d.ts +296 -0
  224. package/dist/types/pda/index.d.ts.map +1 -0
  225. package/dist/types/plugin/index.d.ts +171 -0
  226. package/dist/types/plugin/index.d.ts.map +1 -0
  227. package/dist/types/plugin/protocols.d.ts +152 -0
  228. package/dist/types/plugin/protocols.d.ts.map +1 -0
  229. package/dist/types/plugin/schemas.d.ts +823 -0
  230. package/dist/types/plugin/schemas.d.ts.map +1 -0
  231. package/dist/types/postgres/adapter.d.ts +355 -0
  232. package/dist/types/postgres/adapter.d.ts.map +1 -0
  233. package/dist/types/postgres/index.d.ts +24 -0
  234. package/dist/types/postgres/index.d.ts.map +1 -0
  235. package/dist/types/postgres/serializers.d.ts +30 -0
  236. package/dist/types/postgres/serializers.d.ts.map +1 -0
  237. package/dist/types/postgres/sync.d.ts +132 -0
  238. package/dist/types/postgres/sync.d.ts.map +1 -0
  239. package/dist/types/postgres/types.d.ts +167 -0
  240. package/dist/types/postgres/types.d.ts.map +1 -0
  241. package/dist/types/registries/builder.d.ts +340 -0
  242. package/dist/types/registries/builder.d.ts.map +1 -0
  243. package/dist/types/registries/discovery.d.ts +333 -0
  244. package/dist/types/registries/discovery.d.ts.map +1 -0
  245. package/dist/types/registries/index.d.ts +48 -0
  246. package/dist/types/registries/index.d.ts.map +1 -0
  247. package/dist/types/registries/session.d.ts +323 -0
  248. package/dist/types/registries/session.d.ts.map +1 -0
  249. package/dist/types/registries/x402.d.ts +463 -0
  250. package/dist/types/registries/x402.d.ts.map +1 -0
  251. package/dist/types/types/accounts.d.ts +565 -0
  252. package/dist/types/types/accounts.d.ts.map +1 -0
  253. package/dist/types/types/common.d.ts +166 -0
  254. package/dist/types/types/common.d.ts.map +1 -0
  255. package/dist/types/types/enums.d.ts +238 -0
  256. package/dist/types/types/enums.d.ts.map +1 -0
  257. package/dist/types/types/index.d.ts +28 -0
  258. package/dist/types/types/index.d.ts.map +1 -0
  259. package/dist/types/types/instructions.d.ts +366 -0
  260. package/dist/types/types/instructions.d.ts.map +1 -0
  261. package/dist/types/utils/hash.d.ts +48 -0
  262. package/dist/types/utils/hash.d.ts.map +1 -0
  263. package/dist/types/utils/index.d.ts +19 -0
  264. package/dist/types/utils/index.d.ts.map +1 -0
  265. package/dist/types/utils/serialization.d.ts +69 -0
  266. package/dist/types/utils/serialization.d.ts.map +1 -0
  267. package/dist/types/utils/validation.d.ts +29 -0
  268. package/dist/types/utils/validation.d.ts.map +1 -0
  269. package/package.json +178 -0
  270. package/src/constants/index.ts +44 -0
  271. package/src/constants/limits.ts +165 -0
  272. package/src/constants/programs.ts +83 -0
  273. package/src/constants/seeds.ts +66 -0
  274. package/src/core/client.ts +416 -0
  275. package/src/core/connection.ts +409 -0
  276. package/src/core/index.ts +20 -0
  277. package/src/errors/index.ts +346 -0
  278. package/src/events/index.ts +335 -0
  279. package/src/idl/index.ts +76 -0
  280. package/src/idl/synapse_agent_sap.json +9710 -0
  281. package/src/index.ts +253 -0
  282. package/src/modules/agent.ts +319 -0
  283. package/src/modules/attestation.ts +168 -0
  284. package/src/modules/base.ts +158 -0
  285. package/src/modules/escrow.ts +308 -0
  286. package/src/modules/feedback.ts +186 -0
  287. package/src/modules/index.ts +24 -0
  288. package/src/modules/indexing.ts +444 -0
  289. package/src/modules/ledger.ts +262 -0
  290. package/src/modules/tools.ts +411 -0
  291. package/src/modules/vault.ts +533 -0
  292. package/src/pda/index.ts +512 -0
  293. package/src/plugin/index.ts +1202 -0
  294. package/src/plugin/protocols.ts +404 -0
  295. package/src/plugin/schemas.ts +909 -0
  296. package/src/postgres/adapter.ts +904 -0
  297. package/src/postgres/index.ts +59 -0
  298. package/src/postgres/schema.sql +683 -0
  299. package/src/postgres/serializers.ts +485 -0
  300. package/src/postgres/sync.ts +254 -0
  301. package/src/postgres/types.ts +245 -0
  302. package/src/registries/builder.ts +607 -0
  303. package/src/registries/discovery.ts +572 -0
  304. package/src/registries/index.ts +77 -0
  305. package/src/registries/session.ts +613 -0
  306. package/src/registries/x402.ts +906 -0
  307. package/src/types/accounts.ts +618 -0
  308. package/src/types/common.ts +187 -0
  309. package/src/types/enums.ts +214 -0
  310. package/src/types/index.ts +92 -0
  311. package/src/types/instructions.ts +413 -0
  312. package/src/utils/hash.ts +57 -0
  313. package/src/utils/index.ts +19 -0
  314. package/src/utils/serialization.ts +98 -0
  315. package/src/utils/validation.ts +36 -0
@@ -0,0 +1,358 @@
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 { deriveAgent, deriveAgentStats, deriveCapabilityIndex, deriveProtocolIndex, deriveToolCategoryIndex, deriveGlobalRegistry, } from "../pda";
36
+ import { sha256 } from "../utils";
37
+ import { TOOL_CATEGORY_VALUES } from "../constants";
38
+ // ═══════════════════════════════════════════════════════════════════
39
+ // Discovery Registry
40
+ // ═══════════════════════════════════════════════════════════════════
41
+ /**
42
+ * @name DiscoveryRegistry
43
+ * @description High-level agent and tool discovery registry for the SAP network.
44
+ *
45
+ * Provides a developer-friendly API for finding agents by capability,
46
+ * protocol, or tool category, fetching full agent profiles, and
47
+ * retrieving network-wide statistics.
48
+ *
49
+ * @category Registries
50
+ * @since v0.1.0
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * const discovery = client.discovery;
55
+ *
56
+ * // Find agents by capability
57
+ * const swapAgents = await discovery.findAgentsByCapability("jupiter:swap");
58
+ *
59
+ * // Get agent profile
60
+ * const profile = await discovery.getAgentProfile(agentWallet);
61
+ *
62
+ * // Network statistics
63
+ * const overview = await discovery.getNetworkOverview();
64
+ * ```
65
+ */
66
+ export class DiscoveryRegistry {
67
+ program;
68
+ constructor(program) {
69
+ this.program = program;
70
+ }
71
+ // ── Agent Discovery ──────────────────────────────────
72
+ /**
73
+ * @name findAgentsByCapability
74
+ * @description Find all agent PDAs registered for a specific capability.
75
+ * Hashes the capability ID with SHA-256 and looks up the capability index PDA.
76
+ *
77
+ * @param capabilityId - The capability identifier string (e.g. `"jupiter:swap"`).
78
+ * @param opts - Optional settings.
79
+ * @param opts.hydrate - If `false`, returns only PDAs without fetching identity/stats. Defaults to `true`.
80
+ * @returns An array of {@link DiscoveredAgent} matching the capability.
81
+ * @since v0.1.0
82
+ *
83
+ * @example
84
+ * ```ts
85
+ * const agents = await discovery.findAgentsByCapability("jupiter:swap");
86
+ * ```
87
+ */
88
+ async findAgentsByCapability(capabilityId, opts) {
89
+ const capHash = sha256(capabilityId);
90
+ const [pda] = deriveCapabilityIndex(capHash);
91
+ const index = await this.fetchNullable("capabilityIndex", pda);
92
+ if (!index)
93
+ return [];
94
+ if (opts?.hydrate === false) {
95
+ return index.agents.map((agentPda) => ({
96
+ pda: agentPda,
97
+ identity: null,
98
+ stats: null,
99
+ }));
100
+ }
101
+ return this.hydrateAgents(index.agents);
102
+ }
103
+ /**
104
+ * @name findAgentsByProtocol
105
+ * @description Find all agent PDAs registered for a specific protocol.
106
+ * Hashes the protocol ID with SHA-256 and looks up the protocol index PDA.
107
+ *
108
+ * @param protocolId - The protocol identifier string (e.g. `"jupiter"`).
109
+ * @param opts - Optional settings.
110
+ * @param opts.hydrate - If `false`, returns only PDAs without fetching identity/stats. Defaults to `true`.
111
+ * @returns An array of {@link DiscoveredAgent} matching the protocol.
112
+ * @since v0.1.0
113
+ *
114
+ * @example
115
+ * ```ts
116
+ * const agents = await discovery.findAgentsByProtocol("jupiter");
117
+ * ```
118
+ */
119
+ async findAgentsByProtocol(protocolId, opts) {
120
+ const protoHash = sha256(protocolId);
121
+ const [pda] = deriveProtocolIndex(protoHash);
122
+ const index = await this.fetchNullable("protocolIndex", pda);
123
+ if (!index)
124
+ return [];
125
+ if (opts?.hydrate === false) {
126
+ return index.agents.map((agentPda) => ({
127
+ pda: agentPda,
128
+ identity: null,
129
+ stats: null,
130
+ }));
131
+ }
132
+ return this.hydrateAgents(index.agents);
133
+ }
134
+ /**
135
+ * @name findToolsByCategory
136
+ * @description Find all tool PDAs registered in a specific category.
137
+ * Accepts either a category name string or a numeric category value.
138
+ *
139
+ * @param category - Tool category name (e.g. `"swap"`) or numeric category value.
140
+ * @param opts - Optional settings.
141
+ * @param opts.hydrate - If `false`, returns only PDAs without fetching descriptors. Defaults to `true`.
142
+ * @returns An array of {@link DiscoveredTool} matching the category.
143
+ * @since v0.1.0
144
+ *
145
+ * @example
146
+ * ```ts
147
+ * const tools = await discovery.findToolsByCategory("swap");
148
+ * const tools = await discovery.findToolsByCategory(0); // numeric
149
+ * ```
150
+ */
151
+ async findToolsByCategory(category, opts) {
152
+ const categoryNum = typeof category === "number"
153
+ ? category
154
+ : TOOL_CATEGORY_VALUES[category] ?? 9;
155
+ const [pda] = deriveToolCategoryIndex(categoryNum);
156
+ const index = await this.fetchNullable("toolCategoryIndex", pda);
157
+ if (!index)
158
+ return [];
159
+ if (opts?.hydrate === false) {
160
+ return index.tools.map((toolPda) => ({
161
+ pda: toolPda,
162
+ descriptor: null,
163
+ }));
164
+ }
165
+ return this.hydrateTools(index.tools);
166
+ }
167
+ // ── Agent Profile ────────────────────────────────────
168
+ /**
169
+ * @name getAgentProfile
170
+ * @description Get the full profile of an agent by wallet address.
171
+ * Combines identity + stats into a single response with computed fields
172
+ * for easy display (active status, total calls, reputation, etc.).
173
+ *
174
+ * @param wallet - The agent owner's wallet public key.
175
+ * @returns The full {@link AgentProfile}, or `null` if the agent does not exist.
176
+ * @since v0.1.0
177
+ *
178
+ * @example
179
+ * ```ts
180
+ * const profile = await discovery.getAgentProfile(agentWallet);
181
+ * console.log(profile.identity.name);
182
+ * console.log(profile.computed.isActive);
183
+ * console.log(profile.computed.totalCalls);
184
+ * ```
185
+ */
186
+ async getAgentProfile(wallet) {
187
+ const [agentPda] = deriveAgent(wallet);
188
+ const [statsPda] = deriveAgentStats(agentPda);
189
+ const [identity, stats] = await Promise.all([
190
+ this.fetchNullable("agentAccount", agentPda),
191
+ this.fetchNullable("agentStats", statsPda),
192
+ ]);
193
+ if (!identity)
194
+ return null;
195
+ const totalCallsBN = stats?.totalCallsServed ?? identity.totalCallsServed;
196
+ return {
197
+ pda: agentPda,
198
+ identity,
199
+ stats,
200
+ computed: {
201
+ isActive: identity.isActive,
202
+ totalCalls: totalCallsBN.toString(),
203
+ reputationScore: identity.reputationScore,
204
+ hasX402: !!identity.x402Endpoint,
205
+ capabilityCount: identity.capabilities.length,
206
+ pricingTierCount: identity.pricing.length,
207
+ protocols: [...identity.protocols],
208
+ },
209
+ };
210
+ }
211
+ /**
212
+ * @name isAgentActive
213
+ * @description Check if an agent exists and is currently active.
214
+ * Reads the agent stats account to determine active status.
215
+ *
216
+ * @param wallet - The agent owner's wallet public key.
217
+ * @returns `true` if the agent exists and is active, `false` otherwise.
218
+ * @since v0.1.0
219
+ */
220
+ async isAgentActive(wallet) {
221
+ const [agentPda] = deriveAgent(wallet);
222
+ const [statsPda] = deriveAgentStats(agentPda);
223
+ const stats = await this.fetchNullable("agentStats", statsPda);
224
+ return stats?.isActive ?? false;
225
+ }
226
+ // ── Network Overview ─────────────────────────────────
227
+ /**
228
+ * @name getNetworkOverview
229
+ * @description Get network-wide statistics from the GlobalRegistry account.
230
+ * Returns aggregated counts and metadata for the entire SAP network.
231
+ *
232
+ * @returns A {@link NetworkOverview} with all network-level statistics.
233
+ * @since v0.1.0
234
+ */
235
+ async getNetworkOverview() {
236
+ const [pda] = deriveGlobalRegistry();
237
+ const reg = await this.fetch("globalRegistry", pda);
238
+ return {
239
+ totalAgents: reg.totalAgents.toString(),
240
+ activeAgents: reg.activeAgents.toString(),
241
+ totalFeedbacks: reg.totalFeedbacks.toString(),
242
+ totalTools: reg.totalTools,
243
+ totalVaults: reg.totalVaults,
244
+ totalAttestations: reg.totalAttestations,
245
+ totalCapabilities: reg.totalCapabilities,
246
+ totalProtocols: reg.totalProtocols,
247
+ authority: reg.authority,
248
+ };
249
+ }
250
+ // ── Multi-category Search ────────────────────────────
251
+ /**
252
+ * @name findAgentsByCapabilities
253
+ * @description Search across multiple capability IDs at once.
254
+ * Returns deduplicated agent PDAs aggregated from all matching capability indexes.
255
+ *
256
+ * @param capabilityIds - Array of capability identifier strings to search.
257
+ * @param opts - Optional settings.
258
+ * @param opts.hydrate - If `false`, returns only PDAs without fetching identity/stats. Defaults to `true`.
259
+ * @returns A deduplicated array of {@link DiscoveredAgent} matching any of the capabilities.
260
+ * @since v0.1.0
261
+ */
262
+ async findAgentsByCapabilities(capabilityIds, opts) {
263
+ const seen = new Set();
264
+ const results = [];
265
+ for (const capId of capabilityIds) {
266
+ const agents = await this.findAgentsByCapability(capId, opts);
267
+ for (const agent of agents) {
268
+ const key = agent.pda.toBase58();
269
+ if (!seen.has(key)) {
270
+ seen.add(key);
271
+ results.push(agent);
272
+ }
273
+ }
274
+ }
275
+ return results;
276
+ }
277
+ /**
278
+ * @name getToolCategorySummary
279
+ * @description Search across all 10 tool categories and return a summary.
280
+ * Lists each category with its name, numeric value, and tool count.
281
+ *
282
+ * @returns An array of category summary objects with `category`, `categoryNum`, and `toolCount`.
283
+ * @since v0.1.0
284
+ */
285
+ async getToolCategorySummary() {
286
+ const categories = Object.entries(TOOL_CATEGORY_VALUES);
287
+ const results = [];
288
+ for (const [name, num] of categories) {
289
+ const [pda] = deriveToolCategoryIndex(num);
290
+ const index = await this.fetchNullable("toolCategoryIndex", pda);
291
+ results.push({
292
+ category: name,
293
+ categoryNum: num,
294
+ toolCount: index?.tools.length ?? 0,
295
+ });
296
+ }
297
+ return results;
298
+ }
299
+ // ── Internals ────────────────────────────────────────
300
+ /**
301
+ * @name hydrateAgents
302
+ * @description Hydrate an array of agent PDAs by fetching identity and stats data.
303
+ * @param agentPdas - Array of agent PDA public keys.
304
+ * @returns An array of {@link DiscoveredAgent} with populated identity and stats fields.
305
+ * @private
306
+ */
307
+ async hydrateAgents(agentPdas) {
308
+ return Promise.all(agentPdas.map(async (agentPda) => {
309
+ const [statsPda] = deriveAgentStats(agentPda);
310
+ const [identity, stats] = await Promise.all([
311
+ this.fetchNullable("agentAccount", agentPda),
312
+ this.fetchNullable("agentStats", statsPda),
313
+ ]);
314
+ return { pda: agentPda, identity, stats };
315
+ }));
316
+ }
317
+ /**
318
+ * @name hydrateTools
319
+ * @description Hydrate an array of tool PDAs by fetching descriptor data.
320
+ * @param toolPdas - Array of tool PDA public keys.
321
+ * @returns An array of {@link DiscoveredTool} with populated descriptor fields.
322
+ * @private
323
+ */
324
+ async hydrateTools(toolPdas) {
325
+ return Promise.all(toolPdas.map(async (toolPda) => {
326
+ const descriptor = await this.fetchNullable("toolDescriptor", toolPda);
327
+ return { pda: toolPda, descriptor };
328
+ }));
329
+ }
330
+ /**
331
+ * @name fetch
332
+ * @description Fetch an on-chain account by name and PDA. Throws if not found.
333
+ * @param name - Anchor account discriminator name.
334
+ * @param pda - Account public key to fetch.
335
+ * @returns The deserialized account data.
336
+ * @throws If the account does not exist.
337
+ * @private
338
+ */
339
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
340
+ async fetch(name, pda) {
341
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
342
+ return this.program.account[name].fetch(pda);
343
+ }
344
+ /**
345
+ * @name fetchNullable
346
+ * @description Fetch an on-chain account by name and PDA. Returns `null` if not found.
347
+ * @param name - Anchor account discriminator name.
348
+ * @param pda - Account public key to fetch.
349
+ * @returns The deserialized account data, or `null` if the account does not exist.
350
+ * @private
351
+ */
352
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
353
+ async fetchNullable(name, pda) {
354
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
355
+ return this.program.account[name].fetchNullable(pda);
356
+ }
357
+ }
358
+ //# sourceMappingURL=discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../src/registries/discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
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 { X402Registry } from "./x402";
42
+ export { SessionManager } from "./session";
43
+ export { AgentBuilder } from "./builder";
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/registries/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAShD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAWtC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAS3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}