kompass-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 (205) hide show
  1. package/dist/a2a/agent-card.d.ts +13 -0
  2. package/dist/a2a/agent-card.d.ts.map +1 -0
  3. package/dist/a2a/agent-card.js +52 -0
  4. package/dist/a2a/agent-card.js.map +1 -0
  5. package/dist/a2a/bridge.d.ts +52 -0
  6. package/dist/a2a/bridge.d.ts.map +1 -0
  7. package/dist/a2a/bridge.js +123 -0
  8. package/dist/a2a/bridge.js.map +1 -0
  9. package/dist/a2a/client.d.ts +34 -0
  10. package/dist/a2a/client.d.ts.map +1 -0
  11. package/dist/a2a/client.js +65 -0
  12. package/dist/a2a/client.js.map +1 -0
  13. package/dist/a2a/server.d.ts +17 -0
  14. package/dist/a2a/server.d.ts.map +1 -0
  15. package/dist/a2a/server.js +194 -0
  16. package/dist/a2a/server.js.map +1 -0
  17. package/dist/abi.d.ts +1068 -0
  18. package/dist/abi.d.ts.map +1 -0
  19. package/dist/abi.js +1372 -0
  20. package/dist/abi.js.map +1 -0
  21. package/dist/adapters/agentkit.d.ts +41 -0
  22. package/dist/adapters/agentkit.d.ts.map +1 -0
  23. package/dist/adapters/agentkit.js +67 -0
  24. package/dist/adapters/agentkit.js.map +1 -0
  25. package/dist/adapters/generic.d.ts +35 -0
  26. package/dist/adapters/generic.d.ts.map +1 -0
  27. package/dist/adapters/generic.js +47 -0
  28. package/dist/adapters/generic.js.map +1 -0
  29. package/dist/adapters/index.d.ts +5 -0
  30. package/dist/adapters/index.d.ts.map +1 -0
  31. package/dist/adapters/index.js +5 -0
  32. package/dist/adapters/index.js.map +1 -0
  33. package/dist/adapters/langchain.d.ts +26 -0
  34. package/dist/adapters/langchain.d.ts.map +1 -0
  35. package/dist/adapters/langchain.js +228 -0
  36. package/dist/adapters/langchain.js.map +1 -0
  37. package/dist/adapters/openclaw.d.ts +18 -0
  38. package/dist/adapters/openclaw.d.ts.map +1 -0
  39. package/dist/adapters/openclaw.js +168 -0
  40. package/dist/adapters/openclaw.js.map +1 -0
  41. package/dist/aggregator.d.ts +36 -0
  42. package/dist/aggregator.d.ts.map +1 -0
  43. package/dist/aggregator.js +168 -0
  44. package/dist/aggregator.js.map +1 -0
  45. package/dist/backends/acp.d.ts +29 -0
  46. package/dist/backends/acp.d.ts.map +1 -0
  47. package/dist/backends/acp.js +126 -0
  48. package/dist/backends/acp.js.map +1 -0
  49. package/dist/backends/types.d.ts +59 -0
  50. package/dist/backends/types.d.ts.map +1 -0
  51. package/dist/backends/types.js +2 -0
  52. package/dist/backends/types.js.map +1 -0
  53. package/dist/bridge.d.ts +35 -0
  54. package/dist/bridge.d.ts.map +1 -0
  55. package/dist/bridge.js +192 -0
  56. package/dist/bridge.js.map +1 -0
  57. package/dist/cli.d.ts +12 -0
  58. package/dist/cli.d.ts.map +1 -0
  59. package/dist/cli.js +331 -0
  60. package/dist/cli.js.map +1 -0
  61. package/dist/discover.d.ts +15 -0
  62. package/dist/discover.d.ts.map +1 -0
  63. package/dist/discover.js +163 -0
  64. package/dist/discover.js.map +1 -0
  65. package/dist/escrow.d.ts +45 -0
  66. package/dist/escrow.d.ts.map +1 -0
  67. package/dist/escrow.js +243 -0
  68. package/dist/escrow.js.map +1 -0
  69. package/dist/index.d.ts +63 -0
  70. package/dist/index.d.ts.map +1 -0
  71. package/dist/index.js +145 -0
  72. package/dist/index.js.map +1 -0
  73. package/dist/intents.d.ts +28 -0
  74. package/dist/intents.d.ts.map +1 -0
  75. package/dist/intents.js +111 -0
  76. package/dist/intents.js.map +1 -0
  77. package/dist/matching.d.ts +29 -0
  78. package/dist/matching.d.ts.map +1 -0
  79. package/dist/matching.js +147 -0
  80. package/dist/matching.js.map +1 -0
  81. package/dist/pipelineAbi.d.ts +113 -0
  82. package/dist/pipelineAbi.d.ts.map +1 -0
  83. package/dist/pipelineAbi.js +74 -0
  84. package/dist/pipelineAbi.js.map +1 -0
  85. package/dist/pipelines.d.ts +42 -0
  86. package/dist/pipelines.d.ts.map +1 -0
  87. package/dist/pipelines.js +185 -0
  88. package/dist/pipelines.js.map +1 -0
  89. package/dist/registry.d.ts +36 -0
  90. package/dist/registry.d.ts.map +1 -0
  91. package/dist/registry.js +187 -0
  92. package/dist/registry.js.map +1 -0
  93. package/dist/reputation.d.ts +10 -0
  94. package/dist/reputation.d.ts.map +1 -0
  95. package/dist/reputation.js +33 -0
  96. package/dist/reputation.js.map +1 -0
  97. package/dist/router.d.ts +72 -0
  98. package/dist/router.d.ts.map +1 -0
  99. package/dist/router.js +190 -0
  100. package/dist/router.js.map +1 -0
  101. package/dist/simple.d.ts +160 -0
  102. package/dist/simple.d.ts.map +1 -0
  103. package/dist/simple.js +237 -0
  104. package/dist/simple.js.map +1 -0
  105. package/dist/sources/a2a-wellknown.d.ts +8 -0
  106. package/dist/sources/a2a-wellknown.d.ts.map +1 -0
  107. package/dist/sources/a2a-wellknown.js +104 -0
  108. package/dist/sources/a2a-wellknown.js.map +1 -0
  109. package/dist/sources/acp.d.ts +7 -0
  110. package/dist/sources/acp.d.ts.map +1 -0
  111. package/dist/sources/acp.js +86 -0
  112. package/dist/sources/acp.js.map +1 -0
  113. package/dist/sources/adp.d.ts +7 -0
  114. package/dist/sources/adp.d.ts.map +1 -0
  115. package/dist/sources/adp.js +59 -0
  116. package/dist/sources/adp.js.map +1 -0
  117. package/dist/sources/erc8004.d.ts +7 -0
  118. package/dist/sources/erc8004.d.ts.map +1 -0
  119. package/dist/sources/erc8004.js +150 -0
  120. package/dist/sources/erc8004.js.map +1 -0
  121. package/dist/sources/index.d.ts +17 -0
  122. package/dist/sources/index.d.ts.map +1 -0
  123. package/dist/sources/index.js +35 -0
  124. package/dist/sources/index.js.map +1 -0
  125. package/dist/sources/kompass-registry.d.ts +8 -0
  126. package/dist/sources/kompass-registry.d.ts.map +1 -0
  127. package/dist/sources/kompass-registry.js +62 -0
  128. package/dist/sources/kompass-registry.js.map +1 -0
  129. package/dist/sources/l402-directory.d.ts +7 -0
  130. package/dist/sources/l402-directory.d.ts.map +1 -0
  131. package/dist/sources/l402-directory.js +42 -0
  132. package/dist/sources/l402-directory.js.map +1 -0
  133. package/dist/sources/mcp-registry.d.ts +8 -0
  134. package/dist/sources/mcp-registry.d.ts.map +1 -0
  135. package/dist/sources/mcp-registry.js +85 -0
  136. package/dist/sources/mcp-registry.js.map +1 -0
  137. package/dist/sources/skills.d.ts +8 -0
  138. package/dist/sources/skills.d.ts.map +1 -0
  139. package/dist/sources/skills.js +153 -0
  140. package/dist/sources/skills.js.map +1 -0
  141. package/dist/sources/types.d.ts +72 -0
  142. package/dist/sources/types.d.ts.map +1 -0
  143. package/dist/sources/types.js +8 -0
  144. package/dist/sources/types.js.map +1 -0
  145. package/dist/sources/x402-ecosystem.d.ts +7 -0
  146. package/dist/sources/x402-ecosystem.d.ts.map +1 -0
  147. package/dist/sources/x402-ecosystem.js +78 -0
  148. package/dist/sources/x402-ecosystem.js.map +1 -0
  149. package/dist/types.d.ts +133 -0
  150. package/dist/types.d.ts.map +1 -0
  151. package/dist/types.js +2 -0
  152. package/dist/types.js.map +1 -0
  153. package/dist/unified.d.ts +90 -0
  154. package/dist/unified.d.ts.map +1 -0
  155. package/dist/unified.js +107 -0
  156. package/dist/unified.js.map +1 -0
  157. package/dist/x402.d.ts +30 -0
  158. package/dist/x402.d.ts.map +1 -0
  159. package/dist/x402.js +79 -0
  160. package/dist/x402.js.map +1 -0
  161. package/package.json +61 -0
  162. package/scripts/bootstrap-agents.mjs +246 -0
  163. package/src/.gitkeep +0 -0
  164. package/src/a2a/agent-card.ts +66 -0
  165. package/src/a2a/bridge.ts +168 -0
  166. package/src/a2a/client.ts +92 -0
  167. package/src/a2a/server.ts +234 -0
  168. package/src/abi.ts +1373 -0
  169. package/src/adapters/agentkit.ts +83 -0
  170. package/src/adapters/generic.ts +62 -0
  171. package/src/adapters/index.ts +4 -0
  172. package/src/adapters/langchain.ts +282 -0
  173. package/src/adapters/openclaw.ts +203 -0
  174. package/src/aggregator.ts +203 -0
  175. package/src/backends/acp.ts +199 -0
  176. package/src/backends/types.ts +78 -0
  177. package/src/bridge.ts +263 -0
  178. package/src/cli.ts +397 -0
  179. package/src/discover.ts +187 -0
  180. package/src/escrow.ts +284 -0
  181. package/src/index.ts +245 -0
  182. package/src/intents.ts +166 -0
  183. package/src/matching.ts +192 -0
  184. package/src/pipelineAbi.ts +74 -0
  185. package/src/pipelines.ts +253 -0
  186. package/src/registry.ts +232 -0
  187. package/src/reputation.ts +43 -0
  188. package/src/router.ts +279 -0
  189. package/src/simple.ts +366 -0
  190. package/src/sources/a2a-wellknown.ts +120 -0
  191. package/src/sources/acp.ts +91 -0
  192. package/src/sources/adp.ts +64 -0
  193. package/src/sources/erc8004.ts +166 -0
  194. package/src/sources/index.ts +52 -0
  195. package/src/sources/kompass-registry.ts +67 -0
  196. package/src/sources/l402-directory.ts +51 -0
  197. package/src/sources/mcp-registry.ts +104 -0
  198. package/src/sources/skills.ts +161 -0
  199. package/src/sources/types.ts +82 -0
  200. package/src/sources/x402-ecosystem.ts +86 -0
  201. package/src/types.ts +147 -0
  202. package/src/unified.ts +155 -0
  203. package/src/x402.ts +122 -0
  204. package/tests/pipelineFlow.test.ts +239 -0
  205. package/tsconfig.json +20 -0
@@ -0,0 +1,133 @@
1
+ import type { Address, WalletClient, PublicClient, Chain, Transport, Account } from "viem";
2
+ /** SDK configuration */
3
+ export interface KompassConfig {
4
+ /** viem PublicClient for read operations */
5
+ publicClient: PublicClient<Transport, Chain>;
6
+ /** viem WalletClient for write operations (optional for read-only usage) */
7
+ walletClient?: WalletClient<Transport, Chain, Account>;
8
+ /** KompassEscrow contract address */
9
+ escrowAddress: Address;
10
+ /** KompassRegistry contract address */
11
+ registryAddress: Address;
12
+ /** ERC-8004 Reputation Registry address */
13
+ reputationRegistryAddress: Address;
14
+ /** PipelineOrchestrator contract address */
15
+ pipelineAddress?: Address;
16
+ /** Default settlement token for pipeline creation */
17
+ paymentTokenAddress?: Address;
18
+ /** Default hook address for escrow jobs (e.g., ReputationUpdateHook) */
19
+ defaultHookAddress?: Address;
20
+ /** Indexer GraphQL endpoint (e.g., http://localhost:42069/graphql) */
21
+ indexerUrl: string;
22
+ }
23
+ /** Job status matching the contract enum */
24
+ export type JobStatus = "Open" | "Funded" | "Submitted" | "Completed" | "Rejected" | "Expired";
25
+ /** Milestone status matching the contract enum */
26
+ export type MilestoneStatus = "Pending" | "Submitted" | "Approved" | "Rejected";
27
+ /** Agent type from ENS text records */
28
+ export type AgentType = "provider" | "evaluator" | "both" | "unknown";
29
+ /** Payment mode for agent services */
30
+ export type PaymentMode = "escrow" | "x402" | "hybrid" | "unknown";
31
+ /** Agent profile from the indexer */
32
+ export interface AgentProfile {
33
+ id: Address;
34
+ ensNode: `0x${string}`;
35
+ ensName: string;
36
+ agentType: AgentType;
37
+ categories: string;
38
+ pricingModel: string;
39
+ pricingRate: string;
40
+ pricingToken: string;
41
+ erc8004Id: string;
42
+ identityVerification: string;
43
+ identityVerified: boolean;
44
+ paymentMode: PaymentMode;
45
+ endpointMcp: string;
46
+ endpointA2a: string;
47
+ endpointX402: string;
48
+ x402Enabled: boolean;
49
+ evaluatorDomains: string;
50
+ description: string;
51
+ registered: boolean;
52
+ registeredAt: bigint;
53
+ updatedAt: bigint;
54
+ }
55
+ /** Options for discovering agents */
56
+ export interface DiscoverOptions {
57
+ category?: string;
58
+ evaluatorDomain?: string;
59
+ maxPrice?: bigint;
60
+ minReputation?: number;
61
+ agentType?: AgentType;
62
+ paymentMode?: PaymentMode;
63
+ requiresX402?: boolean;
64
+ verifiedOnly?: boolean;
65
+ limit?: number;
66
+ }
67
+ /** Milestone configuration for job creation */
68
+ export interface MilestoneConfig {
69
+ budgetShareBps: number;
70
+ }
71
+ /** Options for creating a job */
72
+ export interface CreateJobOptions {
73
+ provider: Address;
74
+ evaluator: Address;
75
+ budget: bigint;
76
+ expiredAt: bigint;
77
+ description: string;
78
+ hook?: Address;
79
+ milestones?: MilestoneConfig[];
80
+ }
81
+ /** On-chain job data */
82
+ export interface Job {
83
+ client: Address;
84
+ provider: Address;
85
+ evaluator: Address;
86
+ hook: Address;
87
+ budget: bigint;
88
+ expiredAt: bigint;
89
+ status: JobStatus;
90
+ description: string;
91
+ deliverable: `0x${string}`;
92
+ milestoneCount: number;
93
+ currentMilestone: number;
94
+ }
95
+ /** Milestone data from contract */
96
+ export interface MilestoneData {
97
+ budgetShareBps: number;
98
+ deliverable: `0x${string}`;
99
+ status: MilestoneStatus;
100
+ }
101
+ /** Transaction result */
102
+ export interface TxResult {
103
+ txHash: `0x${string}`;
104
+ }
105
+ /** Job creation result */
106
+ export interface CreateJobResult extends TxResult {
107
+ jobId: bigint;
108
+ }
109
+ /** ERC-8004 reputation summary */
110
+ export interface ReputationSummary {
111
+ count: bigint;
112
+ summaryValue: bigint;
113
+ summaryValueDecimals: number;
114
+ }
115
+ /** Registration profile (fields to set as ENS text records) */
116
+ export interface RegisterProfile {
117
+ ensNode: `0x${string}`;
118
+ ensName?: string;
119
+ agentType?: AgentType;
120
+ categories?: string;
121
+ pricingModel?: string;
122
+ pricingRate?: string;
123
+ pricingToken?: string;
124
+ erc8004Id?: string;
125
+ identityVerification?: string;
126
+ paymentMode?: PaymentMode;
127
+ endpointMcp?: string;
128
+ endpointA2a?: string;
129
+ endpointX402?: string;
130
+ evaluatorDomains?: string;
131
+ description?: string;
132
+ }
133
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * KompassUnified — Universal Agent Discovery + Coordination
3
+ *
4
+ * The Google for AI agents. One API that searches across ALL registries
5
+ * and lets you hire any agent regardless of protocol.
6
+ *
7
+ * @example
8
+ * const kompass = await KompassUnified.create({ network: "base-sepolia" });
9
+ * const agents = await kompass.find("yield optimization");
10
+ * const result = await kompass.hire(agents[0], "Find best yield on Base");
11
+ */
12
+ import { type UnifiedAgent } from "./sources/index.js";
13
+ import { type AggregatorResult } from "./aggregator.js";
14
+ import { type MatchResult } from "./matching.js";
15
+ import { type BridgeHireOptions, type BridgeHireResult } from "./bridge.js";
16
+ import { type DoOptions, type DoResult } from "./router.js";
17
+ export interface UnifiedConfig {
18
+ /** Network for on-chain sources */
19
+ network?: "base" | "base-sepolia";
20
+ /** Which sources to enable (default: all) */
21
+ enabledSources?: string[];
22
+ /** ACP backend instance (for hiring via ACP) */
23
+ acpBackend?: any;
24
+ /** Kompass SDK config (for kompass-registry source) */
25
+ kompassConfig?: any;
26
+ }
27
+ export interface FindOptions {
28
+ /** Max results */
29
+ limit?: number;
30
+ /** Filter by source */
31
+ sources?: string[];
32
+ /** Timeout per source in ms */
33
+ timeout?: number;
34
+ /** Minimum match score (0-100) */
35
+ minScore?: number;
36
+ }
37
+ export interface FindResult extends AggregatorResult {
38
+ /** Agents re-ranked by multi-layer matching */
39
+ ranked: MatchResult[];
40
+ }
41
+ export declare class KompassUnified {
42
+ private aggregator;
43
+ private bridge;
44
+ private router;
45
+ private adapters;
46
+ private constructor();
47
+ static create(config?: UnifiedConfig): Promise<KompassUnified>;
48
+ /**
49
+ * Search for agents across all registries.
50
+ * Returns results ranked by multi-layer matching (structured + BM25 + multi-criteria).
51
+ */
52
+ find(query: string, options?: FindOptions): Promise<FindResult>;
53
+ /**
54
+ * Hire a specific agent via its native protocol.
55
+ * The bridge routes to ACP, x402, MCP, A2A, HTTP, or L402 automatically.
56
+ */
57
+ hire(agent: UnifiedAgent, task: string, options?: Partial<BridgeHireOptions>): Promise<BridgeHireResult>;
58
+ /**
59
+ * Find the best agent for a task and hire it.
60
+ * One function: discover → rank → hire.
61
+ */
62
+ findAndHire(query: string, task: string, options?: FindOptions & Partial<BridgeHireOptions>): Promise<{
63
+ discovery: FindResult;
64
+ hire: BridgeHireResult;
65
+ }>;
66
+ /**
67
+ * Check health of all discovery sources.
68
+ */
69
+ sources(): Promise<{
70
+ name: string;
71
+ displayName: string;
72
+ healthy: boolean;
73
+ }[]>;
74
+ /**
75
+ * Get any job done. The core Kompass function.
76
+ *
77
+ * Discovers the right capability across all protocols, picks the best option,
78
+ * executes via the right payment rail, and returns the result.
79
+ *
80
+ * @example
81
+ * const result = await kompass.do({ task: "get DeFi yield data for Base" });
82
+ * console.log(result.execution?.deliverable);
83
+ */
84
+ do(options: DoOptions): Promise<DoResult>;
85
+ /**
86
+ * Get the number of registered source adapters.
87
+ */
88
+ get sourceCount(): number;
89
+ }
90
+ //# sourceMappingURL=unified.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unified.d.ts","sourceRoot":"","sources":["../src/unified.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAwC,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAsC,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAkB,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE9E,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAClC,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gDAAgD;IAChD,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,uDAAuD;IACvD,aAAa,CAAC,EAAE,GAAG,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,gBAAgB;IAClD,+CAA+C;IAC/C,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,QAAQ,CAAkB;IAElC,OAAO;WAOM,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAcpE;;;OAGG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBrE;;;OAGG;IACG,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI9G;;;OAGG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,GACjD,OAAO,CAAC;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAa7D;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAInF;;;;;;;;;OASG;IACG,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI/C;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;CACF"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * KompassUnified — Universal Agent Discovery + Coordination
3
+ *
4
+ * The Google for AI agents. One API that searches across ALL registries
5
+ * and lets you hire any agent regardless of protocol.
6
+ *
7
+ * @example
8
+ * const kompass = await KompassUnified.create({ network: "base-sepolia" });
9
+ * const agents = await kompass.find("yield optimization");
10
+ * const result = await kompass.hire(agents[0], "Find best yield on Base");
11
+ */
12
+ import { createAllSources } from "./sources/index.js";
13
+ import { Aggregator } from "./aggregator.js";
14
+ import { rankAgents } from "./matching.js";
15
+ import { ProtocolBridge } from "./bridge.js";
16
+ import { CapabilityRouter } from "./router.js";
17
+ export class KompassUnified {
18
+ aggregator;
19
+ bridge;
20
+ router;
21
+ adapters;
22
+ constructor(adapters, bridge) {
23
+ this.adapters = adapters;
24
+ this.aggregator = new Aggregator(adapters);
25
+ this.bridge = bridge;
26
+ this.router = new CapabilityRouter(this.aggregator, this.bridge);
27
+ }
28
+ static async create(config) {
29
+ const adapters = createAllSources({
30
+ erc8004Network: config?.network ?? "base-sepolia",
31
+ kompassConfig: config?.kompassConfig,
32
+ enabledSources: config?.enabledSources,
33
+ });
34
+ const bridge = new ProtocolBridge({
35
+ acpBackend: config?.acpBackend,
36
+ });
37
+ return new KompassUnified(adapters, bridge);
38
+ }
39
+ /**
40
+ * Search for agents across all registries.
41
+ * Returns results ranked by multi-layer matching (structured + BM25 + multi-criteria).
42
+ */
43
+ async find(query, options) {
44
+ const aggregatorResult = await this.aggregator.search(query, {
45
+ limit: (options?.limit ?? 20) * 2, // Over-fetch for re-ranking
46
+ sources: options?.sources,
47
+ timeout: options?.timeout,
48
+ });
49
+ // Re-rank with multi-layer matching
50
+ const ranked = rankAgents(aggregatorResult.agents, query);
51
+ // Apply limit and min score
52
+ const filtered = options?.minScore
53
+ ? ranked.filter((r) => r.scores.total >= options.minScore)
54
+ : ranked;
55
+ return {
56
+ ...aggregatorResult,
57
+ agents: filtered.slice(0, options?.limit ?? 20).map((r) => r.agent),
58
+ ranked: filtered.slice(0, options?.limit ?? 20),
59
+ };
60
+ }
61
+ /**
62
+ * Hire a specific agent via its native protocol.
63
+ * The bridge routes to ACP, x402, MCP, A2A, HTTP, or L402 automatically.
64
+ */
65
+ async hire(agent, task, options) {
66
+ return this.bridge.hire(agent, { task, ...options });
67
+ }
68
+ /**
69
+ * Find the best agent for a task and hire it.
70
+ * One function: discover → rank → hire.
71
+ */
72
+ async findAndHire(query, task, options) {
73
+ const discovery = await this.find(query, options);
74
+ if (discovery.agents.length === 0) {
75
+ throw new Error(`No agents found for: "${query}"`);
76
+ }
77
+ const bestAgent = discovery.agents[0];
78
+ const hireResult = await this.hire(bestAgent, task, options);
79
+ return { discovery, hire: hireResult };
80
+ }
81
+ /**
82
+ * Check health of all discovery sources.
83
+ */
84
+ async sources() {
85
+ return this.aggregator.healthCheck();
86
+ }
87
+ /**
88
+ * Get any job done. The core Kompass function.
89
+ *
90
+ * Discovers the right capability across all protocols, picks the best option,
91
+ * executes via the right payment rail, and returns the result.
92
+ *
93
+ * @example
94
+ * const result = await kompass.do({ task: "get DeFi yield data for Base" });
95
+ * console.log(result.execution?.deliverable);
96
+ */
97
+ async do(options) {
98
+ return this.router.do(options);
99
+ }
100
+ /**
101
+ * Get the number of registered source adapters.
102
+ */
103
+ get sourceCount() {
104
+ return this.adapters.length;
105
+ }
106
+ }
107
+ //# sourceMappingURL=unified.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unified.js","sourceRoot":"","sources":["../src/unified.ts"],"names":[],"mappings":"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"}
package/dist/x402.d.ts ADDED
@@ -0,0 +1,30 @@
1
+ import type { PaymentMode } from "./types.js";
2
+ export interface X402PaymentRequirement {
3
+ protocol: PaymentMode | "unknown";
4
+ amount?: string;
5
+ asset?: string;
6
+ payTo?: string;
7
+ facilitator?: string;
8
+ network?: string;
9
+ scheme?: string;
10
+ raw: unknown;
11
+ rawBody?: string;
12
+ rawHeaders: Record<string, string>;
13
+ }
14
+ export interface X402PaymentRequestContext {
15
+ url: string;
16
+ init: RequestInit;
17
+ response: Response;
18
+ requirement: X402PaymentRequirement;
19
+ }
20
+ export interface X402PaymentResponse {
21
+ headers?: HeadersInit;
22
+ }
23
+ export interface X402ClientOptions {
24
+ fetchFn?: typeof fetch;
25
+ parseRequirement?: (response: Response) => Promise<X402PaymentRequirement>;
26
+ onPaymentRequired: (context: X402PaymentRequestContext) => Promise<X402PaymentResponse>;
27
+ }
28
+ export declare function parseX402Requirement(response: Response): Promise<X402PaymentRequirement>;
29
+ export declare function requestWithX402(url: string, init: RequestInit, options: X402ClientOptions): Promise<Response>;
30
+ //# sourceMappingURL=x402.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,sBAAsB,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC3E,iBAAiB,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACzF;AAgBD,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAyC9F;AAUD,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,QAAQ,CAAC,CAoBnB"}
package/dist/x402.js ADDED
@@ -0,0 +1,79 @@
1
+ function headersToObject(headers) {
2
+ return Object.fromEntries(headers.entries());
3
+ }
4
+ function detectProtocol(raw) {
5
+ if (raw && typeof raw === "object") {
6
+ const protocol = Reflect.get(raw, "protocol");
7
+ if (protocol === "x402" || protocol === "escrow" || protocol === "hybrid") {
8
+ return protocol;
9
+ }
10
+ }
11
+ return "unknown";
12
+ }
13
+ export async function parseX402Requirement(response) {
14
+ const rawHeaders = headersToObject(response.headers);
15
+ const headerPayload = response.headers.get("x-payment-requirement") ??
16
+ response.headers.get("x-payment-requirements") ??
17
+ response.headers.get("x-402-payment-requirement");
18
+ let raw = headerPayload ?? {};
19
+ let rawBody;
20
+ if (headerPayload) {
21
+ try {
22
+ raw = JSON.parse(headerPayload);
23
+ }
24
+ catch {
25
+ raw = { value: headerPayload };
26
+ }
27
+ }
28
+ else {
29
+ rawBody = await response.clone().text();
30
+ try {
31
+ raw = JSON.parse(rawBody);
32
+ }
33
+ catch {
34
+ raw = { value: rawBody };
35
+ }
36
+ }
37
+ const payload = raw && typeof raw === "object" ? raw : {};
38
+ const accepts = Array.isArray(payload.accepts) ? payload.accepts[0] : undefined;
39
+ const requirement = (accepts && typeof accepts === "object" ? accepts : payload);
40
+ return {
41
+ protocol: detectProtocol(requirement),
42
+ amount: typeof requirement.amount === "string" ? requirement.amount : undefined,
43
+ asset: typeof requirement.asset === "string" ? requirement.asset : undefined,
44
+ payTo: typeof requirement.payTo === "string" ? requirement.payTo : undefined,
45
+ facilitator: typeof requirement.facilitator === "string" ? requirement.facilitator : undefined,
46
+ network: typeof requirement.network === "string" ? requirement.network : undefined,
47
+ scheme: typeof requirement.scheme === "string" ? requirement.scheme : undefined,
48
+ raw,
49
+ rawBody,
50
+ rawHeaders,
51
+ };
52
+ }
53
+ function mergeHeaders(base, extra) {
54
+ const headers = new Headers(base);
55
+ if (!extra)
56
+ return headers;
57
+ const extraHeaders = new Headers(extra);
58
+ extraHeaders.forEach((value, key) => headers.set(key, value));
59
+ return headers;
60
+ }
61
+ export async function requestWithX402(url, init, options) {
62
+ const fetchFn = options.fetchFn ?? fetch;
63
+ const firstResponse = await fetchFn(url, init);
64
+ if (firstResponse.status !== 402) {
65
+ return firstResponse;
66
+ }
67
+ const requirement = await (options.parseRequirement ?? parseX402Requirement)(firstResponse);
68
+ const payment = await options.onPaymentRequired({
69
+ url,
70
+ init,
71
+ response: firstResponse,
72
+ requirement,
73
+ });
74
+ return fetchFn(url, {
75
+ ...init,
76
+ headers: mergeHeaders(init.headers, payment.headers),
77
+ });
78
+ }
79
+ //# sourceMappingURL=x402.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x402.js","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "kompass-sdk",
3
+ "version": "0.1.0",
4
+ "description": "Get any job done. Universal agent capability discovery + coordination across ACP, MCP, x402, A2A, skills, L402, and ERC-8004.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "type": "module",
8
+ "bin": {
9
+ "kompass": "dist/cli.js"
10
+ },
11
+ "exports": {
12
+ ".": "./dist/index.js",
13
+ "./simple": "./dist/simple.js",
14
+ "./unified": "./dist/unified.js",
15
+ "./sources": "./dist/sources/index.js",
16
+ "./backends/acp": "./dist/backends/acp.js"
17
+ },
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "cli": "tsx src/cli.ts",
21
+ "prepublishOnly": "npm run build",
22
+ "test": "vitest run",
23
+ "test:watch": "vitest"
24
+ },
25
+ "keywords": [
26
+ "kompass",
27
+ "agent",
28
+ "discovery",
29
+ "coordination",
30
+ "a2a",
31
+ "mcp",
32
+ "x402",
33
+ "acp",
34
+ "erc-8183",
35
+ "erc-8004",
36
+ "skills",
37
+ "ai-agent",
38
+ "agentic-commerce",
39
+ "base"
40
+ ],
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "https://github.com/ayushsrivas55/kompass"
44
+ },
45
+ "license": "MIT",
46
+ "dependencies": {
47
+ "@a2a-js/sdk": "^0.3.13",
48
+ "@types/express": "^5.0.6",
49
+ "@virtuals-protocol/acp-node": "^0.3.0-beta.39",
50
+ "commander": "^14.0.3",
51
+ "dotenv": "^17.3.1",
52
+ "express": "^5.2.1",
53
+ "viem": "^2.47.2",
54
+ "wink-bm25-text-search": "^3.1.2"
55
+ },
56
+ "devDependencies": {
57
+ "@types/node": "^25.5.0",
58
+ "typescript": "^5.9.3",
59
+ "vitest": "^4.1.0"
60
+ }
61
+ }