@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,391 @@
1
+ "use strict";
2
+ /**
3
+ * @module core/client
4
+ * @description Core SapClient — thin wrapper around the Anchor program
5
+ * that wires up provider, IDL, and exposes typed module accessors.
6
+ *
7
+ * This is the primary entry point for the `@synapse-sap/sdk` package.
8
+ * All protocol domains (agent lifecycle, reputation, vault, escrow, etc.)
9
+ * are available as lazily-instantiated, strongly-typed module accessors.
10
+ *
11
+ * @since v0.1.0
12
+ * @category Core
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import { SapClient } from "@synapse-sap/sdk";
17
+ *
18
+ * const client = SapClient.from(provider); // auto-IDL
19
+ * const client = SapClient.fromProgram(program); // existing program
20
+ *
21
+ * // Use domain modules:
22
+ * await client.agent.register({ ... });
23
+ * await client.vault.initVault(vaultNonce);
24
+ * const escrow = await client.escrow.fetch(escrowPda);
25
+ * ```
26
+ */
27
+ var __importDefault = (this && this.__importDefault) || function (mod) {
28
+ return (mod && mod.__esModule) ? mod : { "default": mod };
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.SapClient = void 0;
32
+ const anchor_1 = require("@coral-xyz/anchor");
33
+ const constants_1 = require("../constants");
34
+ const agent_1 = require("../modules/agent");
35
+ const feedback_1 = require("../modules/feedback");
36
+ const indexing_1 = require("../modules/indexing");
37
+ const tools_1 = require("../modules/tools");
38
+ const vault_1 = require("../modules/vault");
39
+ const escrow_1 = require("../modules/escrow");
40
+ const attestation_1 = require("../modules/attestation");
41
+ const ledger_1 = require("../modules/ledger");
42
+ const events_1 = require("../events");
43
+ const discovery_1 = require("../registries/discovery");
44
+ const x402_1 = require("../registries/x402");
45
+ const session_1 = require("../registries/session");
46
+ const builder_1 = require("../registries/builder");
47
+ // IDL is embedded inside the SDK — no external workspace dependency
48
+ const synapse_agent_sap_json_1 = __importDefault(require("../idl/synapse_agent_sap.json"));
49
+ /**
50
+ * @name SapClient
51
+ * @description Root entry point for the Solana Agent Protocol v2 TypeScript SDK.
52
+ *
53
+ * Each protocol domain is exposed as a lazily-instantiated module:
54
+ * `agent`, `feedback`, `indexing`, `tools`, `vault`, `escrow`,
55
+ * `attestation`, `ledger`, `events`.
56
+ *
57
+ * Higher-level abstractions (`discovery`, `x402`, `session`, `builder`)
58
+ * compose the low-level modules into ergonomic workflows.
59
+ *
60
+ * Instantiate via the static factory methods {@link SapClient.from} or
61
+ * {@link SapClient.fromProgram} — the constructor is private.
62
+ *
63
+ * @category Core
64
+ * @since v0.1.0
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * import { SapClient } from "@synapse-sap/sdk";
69
+ * import { AnchorProvider } from "@coral-xyz/anchor";
70
+ *
71
+ * const provider = AnchorProvider.env();
72
+ * const client = SapClient.from(provider);
73
+ *
74
+ * // Register an agent
75
+ * await client.agent.register({
76
+ * name: "SwapBot",
77
+ * description: "AI-powered swap agent",
78
+ * });
79
+ *
80
+ * // Discover agents
81
+ * const agents = await client.discovery.findAgentsByProtocol("jupiter");
82
+ * ```
83
+ */
84
+ class SapClient {
85
+ /**
86
+ * @name program
87
+ * @description The underlying Anchor `Program` instance used for all RPC
88
+ * calls and account deserialization.
89
+ * @readonly
90
+ * @category Core
91
+ * @since v0.1.0
92
+ */
93
+ program;
94
+ /**
95
+ * @name walletPubkey
96
+ * @description The provider wallet's public key, extracted from the
97
+ * Anchor provider for convenience. This is the default authority /
98
+ * payer used by module instructions unless overridden.
99
+ * @readonly
100
+ * @category Core
101
+ * @since v0.1.0
102
+ */
103
+ walletPubkey;
104
+ // ── Lazy module singletons ────────────────────────
105
+ #agent;
106
+ #feedback;
107
+ #indexing;
108
+ #tools;
109
+ #vault;
110
+ #escrow;
111
+ #attestation;
112
+ #ledger;
113
+ #events;
114
+ // ── Lazy registry singletons ──────────────────────
115
+ #discovery;
116
+ #x402;
117
+ #session;
118
+ constructor(program) {
119
+ this.program = program;
120
+ this.walletPubkey = program.provider.wallet.publicKey;
121
+ }
122
+ // ═════════════════════════════════════════════
123
+ // Factory Methods
124
+ // ═════════════════════════════════════════════
125
+ /**
126
+ * @name from
127
+ * @description Create a {@link SapClient} from an `AnchorProvider`.
128
+ * Automatically loads the embedded IDL shipped with the SDK.
129
+ *
130
+ * @param provider - A configured `AnchorProvider` with wallet and connection.
131
+ * @param programId - Optional override for the SAP program ID.
132
+ * Defaults to `SAP_PROGRAM_ID` from `@synapse-sap/sdk/constants`.
133
+ * @returns A fully-initialised `SapClient` ready for use.
134
+ *
135
+ * @category Core
136
+ * @since v0.1.0
137
+ * @see {@link SapClient.fromProgram} for an alternative accepting a pre-built `Program`.
138
+ *
139
+ * @example
140
+ * ```ts
141
+ * import { SapClient } from "@synapse-sap/sdk";
142
+ * import { AnchorProvider } from "@coral-xyz/anchor";
143
+ *
144
+ * const provider = AnchorProvider.env();
145
+ * const client = SapClient.from(provider);
146
+ * ```
147
+ *
148
+ * @example Custom program ID (e.g. localnet)
149
+ * ```ts
150
+ * const client = SapClient.from(provider, myLocalProgramId);
151
+ * ```
152
+ */
153
+ static from(provider, programId = constants_1.SAP_PROGRAM_ID) {
154
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
155
+ const program = new anchor_1.Program(synapse_agent_sap_json_1.default, provider);
156
+ // Override program ID if non-default
157
+ if (!programId.equals(constants_1.SAP_PROGRAM_ID)) {
158
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
159
+ program.programId = programId;
160
+ }
161
+ return new SapClient(program);
162
+ }
163
+ /**
164
+ * @name fromProgram
165
+ * @description Create a {@link SapClient} from an existing Anchor `Program`
166
+ * instance. Useful when the caller already has a configured program or
167
+ * needs full control over IDL resolution.
168
+ *
169
+ * @param program - A pre-built Anchor `Program` targeting the SAP program.
170
+ * @returns A fully-initialised `SapClient` wrapping the supplied program.
171
+ *
172
+ * @category Core
173
+ * @since v0.1.0
174
+ * @see {@link SapClient.from} for the convenience factory that auto-loads the IDL.
175
+ *
176
+ * @example
177
+ * ```ts
178
+ * import { Program } from "@coral-xyz/anchor";
179
+ * import { SapClient } from "@synapse-sap/sdk";
180
+ *
181
+ * const program = new Program(idl, provider);
182
+ * const client = SapClient.fromProgram(program);
183
+ * ```
184
+ */
185
+ static fromProgram(program) {
186
+ return new SapClient(program);
187
+ }
188
+ // ═════════════════════════════════════════════
189
+ // Module Accessors (lazy singletons)
190
+ // ═════════════════════════════════════════════
191
+ /**
192
+ * @name agent
193
+ * @description Agent lifecycle: register, update, deactivate, close, and
194
+ * query agent metrics on-chain.
195
+ * @returns {AgentModule} The lazily-instantiated `AgentModule` singleton.
196
+ * @category Modules
197
+ * @since v0.1.0
198
+ * @see {@link AgentModule}
199
+ */
200
+ get agent() {
201
+ return (this.#agent ??= new agent_1.AgentModule(this.program));
202
+ }
203
+ /**
204
+ * @name feedback
205
+ * @description Trustless reputation: give, update, revoke, and close
206
+ * on-chain feedback entries for agents.
207
+ * @returns {FeedbackModule} The lazily-instantiated `FeedbackModule` singleton.
208
+ * @category Modules
209
+ * @since v0.1.0
210
+ * @see {@link FeedbackModule}
211
+ */
212
+ get feedback() {
213
+ return (this.#feedback ??= new feedback_1.FeedbackModule(this.program));
214
+ }
215
+ /**
216
+ * @name indexing
217
+ * @description Scalable discovery: capability, protocol, and tool-category
218
+ * on-chain indexes for agent search.
219
+ * @returns {IndexingModule} The lazily-instantiated `IndexingModule` singleton.
220
+ * @category Modules
221
+ * @since v0.1.0
222
+ * @see {@link IndexingModule}
223
+ */
224
+ get indexing() {
225
+ return (this.#indexing ??= new indexing_1.IndexingModule(this.program));
226
+ }
227
+ /**
228
+ * @name tools
229
+ * @description Tool schema registry: publish, inscribe, update, and close
230
+ * on-chain tool definitions.
231
+ * @returns {ToolsModule} The lazily-instantiated `ToolsModule` singleton.
232
+ * @category Modules
233
+ * @since v0.1.0
234
+ * @see {@link ToolsModule}
235
+ */
236
+ get tools() {
237
+ return (this.#tools ??= new tools_1.ToolsModule(this.program));
238
+ }
239
+ /**
240
+ * @name vault
241
+ * @description Encrypted memory vault: initialise vaults, manage sessions,
242
+ * inscribe data, and delegate access.
243
+ * @returns {VaultModule} The lazily-instantiated `VaultModule` singleton.
244
+ * @category Modules
245
+ * @since v0.1.0
246
+ * @see {@link VaultModule}
247
+ */
248
+ get vault() {
249
+ return (this.#vault ??= new vault_1.VaultModule(this.program));
250
+ }
251
+ /**
252
+ * @name escrow
253
+ * @description x402 escrow settlement: create escrow accounts, deposit
254
+ * funds, settle payments, and withdraw balances.
255
+ * @returns {EscrowModule} The lazily-instantiated `EscrowModule` singleton.
256
+ * @category Modules
257
+ * @since v0.1.0
258
+ * @see {@link EscrowModule}
259
+ */
260
+ get escrow() {
261
+ return (this.#escrow ??= new escrow_1.EscrowModule(this.program));
262
+ }
263
+ /**
264
+ * @name attestation
265
+ * @description Web of trust: create, revoke, and close on-chain
266
+ * attestations between agents.
267
+ * @returns {AttestationModule} The lazily-instantiated `AttestationModule` singleton.
268
+ * @category Modules
269
+ * @since v0.1.0
270
+ * @see {@link AttestationModule}
271
+ */
272
+ get attestation() {
273
+ return (this.#attestation ??= new attestation_1.AttestationModule(this.program));
274
+ }
275
+ /**
276
+ * @name ledger
277
+ * @description Unified on-chain memory: initialise ledger accounts, write
278
+ * entries, seal pages, and close ledgers.
279
+ * @returns {LedgerModule} The lazily-instantiated `LedgerModule` singleton.
280
+ * @category Modules
281
+ * @since v0.1.0
282
+ * @see {@link LedgerModule}
283
+ */
284
+ get ledger() {
285
+ return (this.#ledger ??= new ledger_1.LedgerModule(this.program));
286
+ }
287
+ /**
288
+ * @name events
289
+ * @description Decode SAP protocol events from on-chain transaction logs.
290
+ * @returns {EventParser} The lazily-instantiated `EventParser` singleton.
291
+ * @category Modules
292
+ * @since v0.1.0
293
+ * @see {@link EventParser}
294
+ */
295
+ get events() {
296
+ return (this.#events ??= new events_1.EventParser(this.program));
297
+ }
298
+ // ═════════════════════════════════════════════
299
+ // Registry Accessors (high-level abstractions)
300
+ // ═════════════════════════════════════════════
301
+ /**
302
+ * @name discovery
303
+ * @description Agent & tool discovery across the SAP network.
304
+ * Provides high-level queries for locating agents by capability,
305
+ * protocol, or wallet address.
306
+ *
307
+ * @returns {DiscoveryRegistry} The lazily-instantiated `DiscoveryRegistry` singleton.
308
+ * @category Registries
309
+ * @since v0.1.0
310
+ * @see {@link DiscoveryRegistry}
311
+ *
312
+ * @example
313
+ * ```ts
314
+ * const agents = await client.discovery.findAgentsByProtocol("jupiter");
315
+ * const profile = await client.discovery.getAgentProfile(wallet);
316
+ * ```
317
+ */
318
+ get discovery() {
319
+ return (this.#discovery ??= new discovery_1.DiscoveryRegistry(this.program));
320
+ }
321
+ /**
322
+ * @name x402
323
+ * @description x402 micropayment lifecycle — pricing, escrow, headers,
324
+ * and settlement. Orchestrates the full pay-per-call flow between
325
+ * consumer and agent.
326
+ *
327
+ * @returns {X402Registry} The lazily-instantiated `X402Registry` singleton.
328
+ * @category Registries
329
+ * @since v0.1.0
330
+ * @see {@link X402Registry}
331
+ *
332
+ * @example
333
+ * ```ts
334
+ * const ctx = await client.x402.preparePayment(agentWallet, { ... });
335
+ * const headers = client.x402.buildPaymentHeaders(ctx);
336
+ * const receipt = await client.x402.settle(depositor, 5, serviceData);
337
+ * ```
338
+ */
339
+ get x402() {
340
+ return (this.#x402 ??= new x402_1.X402Registry(this.program));
341
+ }
342
+ /**
343
+ * @name session
344
+ * @description Unified memory session lifecycle — vault, session, and
345
+ * ledger management. Provides a single interface for starting
346
+ * conversations, writing messages, and reading back history.
347
+ *
348
+ * @returns {SessionManager} The lazily-instantiated `SessionManager` singleton.
349
+ * @category Registries
350
+ * @since v0.1.0
351
+ * @see {@link SessionManager}
352
+ *
353
+ * @example
354
+ * ```ts
355
+ * const ctx = await client.session.start("conversation-123");
356
+ * await client.session.write(ctx, "Hello from agent");
357
+ * const msgs = await client.session.readLatest(ctx);
358
+ * ```
359
+ */
360
+ get session() {
361
+ return (this.#session ??= new session_1.SessionManager(this.program));
362
+ }
363
+ /**
364
+ * @name builder
365
+ * @description Fluent agent registration builder.
366
+ * Returns a **new** `AgentBuilder` on every access — use for one-shot
367
+ * registration flows. Chain configuration calls and finalise with
368
+ * `.register()`.
369
+ *
370
+ * @returns {AgentBuilder} A fresh `AgentBuilder` instance.
371
+ * @category Registries
372
+ * @since v0.1.0
373
+ * @see {@link AgentBuilder}
374
+ *
375
+ * @example
376
+ * ```ts
377
+ * await client.builder
378
+ * .agent("SwapBot")
379
+ * .description("AI-powered swap agent")
380
+ * .x402Endpoint("https://api.example.com/x402")
381
+ * .addCapability("jupiter:swap", { protocol: "jupiter" })
382
+ * .addPricingTier({ tierId: "standard", pricePerCall: 1000, rateLimit: 60 })
383
+ * .register();
384
+ * ```
385
+ */
386
+ get builder() {
387
+ return new builder_1.AgentBuilder(this.program);
388
+ }
389
+ }
390
+ exports.SapClient = SapClient;
391
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/client.ts"],"names":[],"mappings":"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"}