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,35 @@
1
+ /**
2
+ * Kompass Protocol Bridge
3
+ * Routes hire/interact requests to the correct protocol handler
4
+ */
5
+ import type { UnifiedAgent, AgentProtocol } from "./sources/types.js";
6
+ export interface BridgeHireOptions {
7
+ task: string;
8
+ budget?: bigint;
9
+ timeout?: number;
10
+ payload?: Record<string, unknown>;
11
+ }
12
+ export interface BridgeHireResult {
13
+ success: boolean;
14
+ protocol: AgentProtocol;
15
+ agent: UnifiedAgent;
16
+ jobId?: string;
17
+ deliverable?: unknown;
18
+ txHash?: string;
19
+ error?: string;
20
+ durationMs: number;
21
+ }
22
+ export declare class ProtocolBridge {
23
+ private acpBackend?;
24
+ constructor(options?: {
25
+ acpBackend?: any;
26
+ });
27
+ hire(agent: UnifiedAgent, options: BridgeHireOptions): Promise<BridgeHireResult>;
28
+ private hireViaAcp;
29
+ private hireViaX402;
30
+ private hireViaMcp;
31
+ private hireViaA2A;
32
+ private hireViaHttp;
33
+ private hireViaL402;
34
+ }
35
+ //# sourceMappingURL=bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAC,CAAM;gBAEb,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,GAAG,CAAA;KAAE;IAIpC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAqCxE,UAAU;YA6CV,WAAW;YA2CX,UAAU;YAqBV,UAAU;YAsCV,WAAW;YA+BX,WAAW;CAe1B"}
package/dist/bridge.js ADDED
@@ -0,0 +1,192 @@
1
+ /**
2
+ * Kompass Protocol Bridge
3
+ * Routes hire/interact requests to the correct protocol handler
4
+ */
5
+ export class ProtocolBridge {
6
+ acpBackend; // AcpEscrowBackend if available
7
+ constructor(options) {
8
+ this.acpBackend = options?.acpBackend;
9
+ }
10
+ async hire(agent, options) {
11
+ const start = Date.now();
12
+ try {
13
+ switch (agent.protocol) {
14
+ case "acp":
15
+ return await this.hireViaAcp(agent, options, start);
16
+ case "x402":
17
+ return await this.hireViaX402(agent, options, start);
18
+ case "mcp":
19
+ return await this.hireViaMcp(agent, options, start);
20
+ case "a2a":
21
+ return await this.hireViaA2A(agent, options, start);
22
+ case "http":
23
+ return await this.hireViaHttp(agent, options, start);
24
+ case "l402":
25
+ return await this.hireViaL402(agent, options, start);
26
+ default:
27
+ return {
28
+ success: false,
29
+ protocol: agent.protocol,
30
+ agent,
31
+ error: `Unsupported protocol: ${agent.protocol}`,
32
+ durationMs: Date.now() - start,
33
+ };
34
+ }
35
+ }
36
+ catch (err) {
37
+ return {
38
+ success: false,
39
+ protocol: agent.protocol,
40
+ agent,
41
+ error: err instanceof Error ? err.message : String(err),
42
+ durationMs: Date.now() - start,
43
+ };
44
+ }
45
+ }
46
+ async hireViaAcp(agent, options, start) {
47
+ if (!this.acpBackend) {
48
+ return {
49
+ success: false, protocol: "acp", agent,
50
+ error: "ACP backend not configured. Initialize KompassUnified with ACP credentials.",
51
+ durationMs: Date.now() - start,
52
+ };
53
+ }
54
+ const offering = agent.raw?.jobs?.[0] ?? agent.raw?.jobOfferings?.[0];
55
+ if (!offering) {
56
+ return {
57
+ success: false, protocol: "acp", agent,
58
+ error: "Agent has no job offerings on ACP",
59
+ durationMs: Date.now() - start,
60
+ };
61
+ }
62
+ const job = await this.acpBackend.hireAgent(agent, offering.id, { description: options.task, ...options.payload }, options.budget);
63
+ const result = await this.acpBackend.waitForResult(job.jobId, options.timeout ?? 300_000);
64
+ return {
65
+ success: result.phase === "COMPLETED",
66
+ protocol: "acp",
67
+ agent,
68
+ jobId: result.jobId,
69
+ deliverable: result.deliverable,
70
+ txHash: result.txHash,
71
+ durationMs: Date.now() - start,
72
+ };
73
+ }
74
+ async hireViaX402(agent, options, start) {
75
+ const endpoint = agent.endpoints.x402;
76
+ if (!endpoint) {
77
+ return {
78
+ success: false, protocol: "x402", agent,
79
+ error: "No x402 endpoint",
80
+ durationMs: Date.now() - start,
81
+ };
82
+ }
83
+ // Simple HTTP POST — in production would use @x402/fetch for payment
84
+ const res = await fetch(endpoint, {
85
+ method: "POST",
86
+ headers: { "Content-Type": "application/json" },
87
+ body: JSON.stringify({ task: options.task, ...options.payload }),
88
+ signal: AbortSignal.timeout(options.timeout ?? 30000),
89
+ });
90
+ if (res.status === 402) {
91
+ // Payment required — return the requirement info
92
+ const paymentHeader = res.headers.get("PAYMENT-REQUIRED") ?? res.headers.get("payment-required");
93
+ return {
94
+ success: false, protocol: "x402", agent,
95
+ error: `Payment required: ${paymentHeader ?? "x402 payment needed"}`,
96
+ deliverable: { paymentRequired: true, header: paymentHeader },
97
+ durationMs: Date.now() - start,
98
+ };
99
+ }
100
+ const data = await res.json().catch(() => null);
101
+ return {
102
+ success: res.ok,
103
+ protocol: "x402",
104
+ agent,
105
+ deliverable: data,
106
+ durationMs: Date.now() - start,
107
+ };
108
+ }
109
+ async hireViaMcp(agent, options, start) {
110
+ // MCP servers expose tools — we'd need to connect and call specific tools
111
+ // For hackathon, we return the connection info
112
+ return {
113
+ success: true,
114
+ protocol: "mcp",
115
+ agent,
116
+ deliverable: {
117
+ type: "mcp-server",
118
+ endpoint: agent.endpoints.mcp,
119
+ message: "MCP server available. Connect via MCP client to use tools.",
120
+ tools: agent.capabilities,
121
+ },
122
+ durationMs: Date.now() - start,
123
+ };
124
+ }
125
+ async hireViaA2A(agent, options, start) {
126
+ const endpoint = agent.endpoints.a2a;
127
+ if (!endpoint) {
128
+ return {
129
+ success: false, protocol: "a2a", agent,
130
+ error: "No A2A endpoint",
131
+ durationMs: Date.now() - start,
132
+ };
133
+ }
134
+ // A2A protocol: POST task to agent's endpoint
135
+ const res = await fetch(endpoint, {
136
+ method: "POST",
137
+ headers: { "Content-Type": "application/json" },
138
+ body: JSON.stringify({
139
+ jsonrpc: "2.0",
140
+ method: "tasks/send",
141
+ params: {
142
+ message: { role: "user", parts: [{ type: "text", text: options.task }] },
143
+ },
144
+ }),
145
+ signal: AbortSignal.timeout(options.timeout ?? 30000),
146
+ });
147
+ const data = await res.json().catch(() => null);
148
+ return {
149
+ success: res.ok,
150
+ protocol: "a2a",
151
+ agent,
152
+ deliverable: data,
153
+ durationMs: Date.now() - start,
154
+ };
155
+ }
156
+ async hireViaHttp(agent, options, start) {
157
+ const endpoint = agent.endpoints.http;
158
+ if (!endpoint) {
159
+ return {
160
+ success: false, protocol: "http", agent,
161
+ error: "No HTTP endpoint",
162
+ durationMs: Date.now() - start,
163
+ };
164
+ }
165
+ const res = await fetch(endpoint, {
166
+ method: "POST",
167
+ headers: { "Content-Type": "application/json" },
168
+ body: JSON.stringify({ task: options.task, ...options.payload }),
169
+ signal: AbortSignal.timeout(options.timeout ?? 30000),
170
+ });
171
+ const data = await res.json().catch(() => null);
172
+ return {
173
+ success: res.ok,
174
+ protocol: "http",
175
+ agent,
176
+ deliverable: data,
177
+ durationMs: Date.now() - start,
178
+ };
179
+ }
180
+ async hireViaL402(agent, options, start) {
181
+ // L402 requires Lightning payment — return info for now
182
+ return {
183
+ success: false,
184
+ protocol: "l402",
185
+ agent,
186
+ error: "L402 Lightning payment required. Use a Lightning wallet to pay the invoice.",
187
+ deliverable: { endpoint: agent.endpoints.l402, paymentType: "lightning" },
188
+ durationMs: Date.now() - start,
189
+ };
190
+ }
191
+ }
192
+ //# sourceMappingURL=bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Kompass CLI — Agent Commerce from the Command Line
4
+ *
5
+ * Usage:
6
+ * npx kompass discover "yield research"
7
+ * npx kompass hire "Find best yield on Base" --budget 1
8
+ * npx kompass accept-jobs --capabilities "defi,yield"
9
+ * npx kompass reputation 0x...
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG"}
package/dist/cli.js ADDED
@@ -0,0 +1,331 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Kompass CLI — Agent Commerce from the Command Line
4
+ *
5
+ * Usage:
6
+ * npx kompass discover "yield research"
7
+ * npx kompass hire "Find best yield on Base" --budget 1
8
+ * npx kompass accept-jobs --capabilities "defi,yield"
9
+ * npx kompass reputation 0x...
10
+ */
11
+ import { Command } from "commander";
12
+ import { KompassSimple } from "./simple.js";
13
+ import { createAllSources } from "./sources/index.js";
14
+ import { Aggregator } from "./aggregator.js";
15
+ const program = new Command();
16
+ program
17
+ .name("kompass")
18
+ .description("Kompass — The intelligence layer for agent commerce on Base")
19
+ .version("1.0.0");
20
+ // ── Helper ───────────────────────────────────────────────
21
+ function getConfig() {
22
+ const privateKey = process.env.KOMPASS_PRIVATE_KEY ?? process.env.PRIVATE_KEY;
23
+ if (!privateKey) {
24
+ console.error("Error: Set KOMPASS_PRIVATE_KEY or PRIVATE_KEY env var");
25
+ process.exit(1);
26
+ }
27
+ return {
28
+ privateKey,
29
+ network: (process.env.KOMPASS_NETWORK ?? "base-sepolia"),
30
+ acpEntityAddress: process.env.ACP_ENTITY_ADDRESS,
31
+ acpWalletAddress: process.env.ACP_WALLET_ADDRESS,
32
+ indexerUrl: process.env.KOMPASS_INDEXER_URL,
33
+ reputationRegistryAddress: process.env.ERC8004_REPUTATION_REGISTRY,
34
+ rpcUrl: process.env.KOMPASS_RPC_URL ?? process.env.BASE_SEPOLIA_RPC,
35
+ };
36
+ }
37
+ // ── Commands ─────────────────────────────────────────────
38
+ program
39
+ .command("discover <query>")
40
+ .description("Search for agents on the ACP marketplace with Kompass reputation filtering")
41
+ .option("-l, --limit <n>", "max results", "10")
42
+ .option("--online", "only show online agents")
43
+ .action(async (query, opts) => {
44
+ const kompass = await KompassSimple.create(getConfig());
45
+ const agents = await kompass.discover(query, { limit: parseInt(opts.limit) });
46
+ if (agents.length === 0) {
47
+ console.log("No agents found.");
48
+ return;
49
+ }
50
+ console.log(`\nFound ${agents.length} agents:\n`);
51
+ for (const agent of agents) {
52
+ console.log(` ${agent.name} (${agent.address.slice(0, 10)}...)`);
53
+ console.log(` ${agent.description.slice(0, 100)}`);
54
+ console.log(` Categories: ${agent.categories.join(", ") || "—"}`);
55
+ console.log(` Offerings: ${agent.offerings.length}`);
56
+ if (agent.metrics?.successRate !== undefined) {
57
+ console.log(` Success rate: ${(agent.metrics.successRate * 100).toFixed(0)}%`);
58
+ }
59
+ console.log();
60
+ }
61
+ });
62
+ program
63
+ .command("hire <task>")
64
+ .description("Hire an agent to complete a task via ACP escrow")
65
+ .option("-b, --budget <usdc>", "max budget in USDC", "1")
66
+ .option("-r, --min-reputation <score>", "minimum ERC-8004 reputation score", "0")
67
+ .option("-t, --timeout <seconds>", "timeout in seconds", "300")
68
+ .option("--json", "output as JSON")
69
+ .action(async (task, opts) => {
70
+ const kompass = await KompassSimple.create(getConfig());
71
+ console.log(`\nHiring agent for: "${task}"`);
72
+ console.log(`Budget: $${opts.budget} USDC | Min reputation: ${opts.minReputation}\n`);
73
+ const result = await kompass.hireAgent({
74
+ task,
75
+ maxBudget: BigInt(Math.round(parseFloat(opts.budget) * 1_000_000)),
76
+ minReputation: parseInt(opts.minReputation),
77
+ timeoutMs: parseInt(opts.timeout) * 1000,
78
+ });
79
+ if (opts.json) {
80
+ console.log(JSON.stringify(result, null, 2));
81
+ }
82
+ else {
83
+ console.log(`Agent: ${result.agent.name}`);
84
+ console.log(`Job ID: ${result.jobId}`);
85
+ console.log(`Phase: ${result.phase}`);
86
+ console.log(`Reputation checked: ${result.reputationChecked}`);
87
+ if (result.txHash)
88
+ console.log(`TX: ${result.txHash}`);
89
+ console.log(`\nDeliverable:`);
90
+ console.log(typeof result.deliverable === "string"
91
+ ? result.deliverable
92
+ : JSON.stringify(result.deliverable, null, 2));
93
+ }
94
+ });
95
+ program
96
+ .command("orchestrate <intent>")
97
+ .description("Orchestrate a multi-agent pipeline for a complex intent")
98
+ .option("-b, --budget <usdc>", "total budget in USDC", "5")
99
+ .option("--risk <level>", "risk tolerance: conservative, balanced, aggressive", "balanced")
100
+ .option("--json", "output as JSON")
101
+ .action(async (intent, opts) => {
102
+ const kompass = await KompassSimple.create(getConfig());
103
+ console.log(`\nOrchestrating: "${intent}"`);
104
+ console.log(`Budget: $${opts.budget} USDC | Risk: ${opts.risk}\n`);
105
+ const result = await kompass.orchestrate({
106
+ intent,
107
+ riskTolerance: opts.risk,
108
+ budget: BigInt(Math.round(parseFloat(opts.budget) * 1_000_000)),
109
+ });
110
+ if (opts.json) {
111
+ console.log(JSON.stringify(result, null, 2));
112
+ }
113
+ else {
114
+ console.log(`Completed ${result.completedSteps}/${result.steps.length} steps`);
115
+ console.log(`Total cost: $${result.totalCostUSDC} USDC\n`);
116
+ for (const step of result.steps) {
117
+ const status = step.skipped ? "SKIPPED" : "DONE";
118
+ const agent = step.agent?.name ?? "—";
119
+ console.log(` [${status}] ${step.role}: ${agent}`);
120
+ if (step.reason)
121
+ console.log(` Reason: ${step.reason}`);
122
+ }
123
+ }
124
+ });
125
+ program
126
+ .command("accept-jobs")
127
+ .description("Start listening for incoming ACP jobs")
128
+ .option("-c, --capabilities <list>", "comma-separated capabilities", "general")
129
+ .action(async (opts) => {
130
+ const kompass = await KompassSimple.create(getConfig());
131
+ const capabilities = opts.capabilities.split(",").map((s) => s.trim());
132
+ console.log(`\nListening for jobs: ${capabilities.join(", ")}`);
133
+ console.log("Press Ctrl+C to stop.\n");
134
+ await kompass.acceptJobs({
135
+ capabilities,
136
+ handler: async (job) => {
137
+ console.log(`\nReceived job: ${job.jobId}`);
138
+ console.log(` Description: ${job.description}`);
139
+ console.log(` Budget: ${job.budget}`);
140
+ // Default handler just acknowledges
141
+ return { status: "received", jobId: job.jobId, message: "Job acknowledged" };
142
+ },
143
+ });
144
+ // Keep alive
145
+ await new Promise(() => { });
146
+ });
147
+ program
148
+ .command("balance")
149
+ .description("Check your wallet balance")
150
+ .action(async () => {
151
+ const config = getConfig();
152
+ const { privateKeyToAccount } = await import("viem/accounts");
153
+ const { createPublicClient, http, formatEther, formatUnits } = await import("viem");
154
+ const { baseSepolia } = await import("viem/chains");
155
+ const account = privateKeyToAccount(config.privateKey);
156
+ const client = createPublicClient({
157
+ chain: baseSepolia,
158
+ transport: http(config.rpcUrl ?? "https://sepolia.base.org"),
159
+ });
160
+ const eth = await client.getBalance({ address: account.address });
161
+ console.log(`\nAddress: ${account.address}`);
162
+ console.log(`ETH: ${formatEther(eth)}`);
163
+ console.log(`Backend: ACP (Virtuals Protocol)`);
164
+ });
165
+ // ── Core Command: Do ─────────────────────────────────────
166
+ program
167
+ .command("do <task>")
168
+ .description("Get any job done — finds the right capability across all protocols and executes it")
169
+ .option("-b, --budget <usd>", "max budget in USD", "1")
170
+ .option("-c, --cost <preference>", "cheapest | balanced | best-quality", "balanced")
171
+ .option("-p, --protocol <protocol>", "prefer specific protocol (acp, x402, mcp, skill)")
172
+ .option("--dry-run", "show options without executing")
173
+ .option("--json", "output as JSON")
174
+ .action(async (task, opts) => {
175
+ const { KompassUnified } = await import("./unified.js");
176
+ const kompass = await KompassUnified.create();
177
+ if (!opts.json) {
178
+ console.log(`\n⚔ Kompass: Getting it done — "${task}"\n`);
179
+ }
180
+ const result = await kompass.do({
181
+ task,
182
+ maxBudgetUSD: parseFloat(opts.budget),
183
+ costPreference: opts.cost,
184
+ preferProtocol: opts.protocol,
185
+ dryRun: opts.dryRun,
186
+ });
187
+ if (opts.json) {
188
+ console.log(JSON.stringify(result, null, 2));
189
+ return;
190
+ }
191
+ console.log(`Sources queried: ${result.discovery.sourcesQueried} (${result.discovery.queryTimeMs}ms)`);
192
+ console.log(`Options found: ${result.options.length}\n`);
193
+ if (result.options.length > 0) {
194
+ console.log("Top options:");
195
+ for (const opt of result.options.slice(0, 5)) {
196
+ const cost = opt.estimatedCost !== null ? `$${opt.estimatedCost}` : "unknown";
197
+ console.log(` [${opt.protocol.toUpperCase()}] ${opt.agent.name} (${opt.source}) — ${cost}`);
198
+ console.log(` ${opt.why}`);
199
+ }
200
+ }
201
+ if (result.selected) {
202
+ console.log(`\n${opts.dryRun ? "Would select" : "Selected"}: ${result.selected.agent.name} [${result.selected.protocol}]`);
203
+ console.log(`Reasoning: ${result.reasoning}`);
204
+ }
205
+ if (result.execution) {
206
+ console.log(`\nExecution: ${result.execution.success ? "āœ… Success" : "āŒ Failed"}`);
207
+ if (result.execution.error)
208
+ console.log(`Error: ${result.execution.error}`);
209
+ if (result.execution.deliverable) {
210
+ console.log(`\nDeliverable:`);
211
+ console.log(typeof result.execution.deliverable === "string"
212
+ ? result.execution.deliverable.slice(0, 500)
213
+ : JSON.stringify(result.execution.deliverable, null, 2).slice(0, 500));
214
+ }
215
+ }
216
+ console.log();
217
+ });
218
+ // ── A2A Server Command ───────────────────────────────────
219
+ program
220
+ .command("serve")
221
+ .description("Start Kompass as an A2A-compatible agent server")
222
+ .option("-p, --port <port>", "port to listen on", "3000")
223
+ .action(async (opts) => {
224
+ const { startA2AServer } = await import("./a2a/server.js");
225
+ const { KompassUnified } = await import("./unified.js");
226
+ const kompass = await KompassUnified.create();
227
+ await startA2AServer({ port: parseInt(opts.port), kompass });
228
+ });
229
+ program
230
+ .command("coordinate <intent>")
231
+ .description("Coordinate multiple agents across protocols via A2A")
232
+ .option("--steps <roles>", "comma-separated roles", "research,analysis")
233
+ .option("--json", "output as JSON")
234
+ .action(async (intent, opts) => {
235
+ const { KompassUnified } = await import("./unified.js");
236
+ const { A2ABridge } = await import("./a2a/bridge.js");
237
+ const { ProtocolBridge } = await import("./bridge.js");
238
+ const kompass = await KompassUnified.create();
239
+ const bridge = new A2ABridge(new ProtocolBridge());
240
+ const roles = opts.steps.split(",").map((r) => r.trim());
241
+ const steps = roles.map((role, i) => ({
242
+ id: role,
243
+ role,
244
+ query: `${role} ${intent}`,
245
+ dependsOn: i > 0 ? roles[i - 1] : undefined,
246
+ }));
247
+ console.log(`\nšŸ”— Coordinating ${roles.length} agents for: "${intent}"\n`);
248
+ const result = await bridge.coordinate(steps, async (query) => {
249
+ const found = await kompass.find(query, { limit: 3 });
250
+ return found.agents[0] ?? null;
251
+ });
252
+ if (opts.json) {
253
+ console.log(JSON.stringify(result, null, 2));
254
+ }
255
+ else {
256
+ for (const step of result.steps) {
257
+ const status = step.success ? "āœ…" : step.skipped ? "ā­ļø" : "āŒ";
258
+ const agent = step.agent ? `${step.agent.name} [${step.agent.protocol}]` : "no agent";
259
+ console.log(` ${status} ${step.role}: ${agent}`);
260
+ if (step.error)
261
+ console.log(` Error: ${step.error}`);
262
+ }
263
+ console.log(`\n${result.completedCount}/${result.totalCount} steps completed\n`);
264
+ }
265
+ });
266
+ // ── Universal Discovery Commands ─────────────────────────
267
+ program
268
+ .command("find <query>")
269
+ .description("Search for agents across ALL registries (ACP, MCP, ERC-8004, x402, A2A, L402)")
270
+ .option("-l, --limit <n>", "max results", "20")
271
+ .option("-s, --source <sources...>", "filter by source (e.g., acp mcp-registry x402-ecosystem)")
272
+ .option("--json", "output as JSON")
273
+ .action(async (query, opts) => {
274
+ console.log(`\nšŸ” Searching across all agent registries for: "${query}"\n`);
275
+ const sources = createAllSources();
276
+ const aggregator = new Aggregator(sources);
277
+ const result = await aggregator.search(query, {
278
+ limit: parseInt(opts.limit),
279
+ sources: opts.source,
280
+ });
281
+ if (opts.json) {
282
+ console.log(JSON.stringify(result, null, 2));
283
+ return;
284
+ }
285
+ // Print source stats
286
+ console.log("Sources queried:");
287
+ for (const src of result.sources) {
288
+ const status = src.error ? `āŒ ${src.error}` : `āœ… ${src.count} agents`;
289
+ console.log(` ${src.name.padEnd(20)} ${status} (${src.durationMs}ms)`);
290
+ }
291
+ console.log(`\nFound ${result.totalFound} agents (${result.deduplicated} duplicates removed)`);
292
+ console.log(`Query time: ${result.queryTimeMs}ms\n`);
293
+ if (result.agents.length === 0) {
294
+ console.log("No agents found.");
295
+ return;
296
+ }
297
+ console.log("─".repeat(80));
298
+ for (const agent of result.agents) {
299
+ const score = agent._score ?? 0;
300
+ const rep = agent.reputation ? ` | rep: ${agent.reputation.score}/${agent.reputation.count}` : "";
301
+ const price = agent.pricing?.amount ? ` | $${agent.pricing.amount} ${agent.pricing.currency ?? ""}` : "";
302
+ const protocol = agent.protocol.toUpperCase();
303
+ console.log(` [${protocol}] ${agent.name} (${agent.source})`);
304
+ console.log(` ${agent.description.slice(0, 120)}`);
305
+ console.log(` Categories: ${agent.categories.join(", ")} | Score: ${score}${rep}${price}`);
306
+ if (agent.endpoints.x402)
307
+ console.log(` x402: ${agent.endpoints.x402}`);
308
+ if (agent.endpoints.mcp)
309
+ console.log(` MCP: ${agent.endpoints.mcp}`);
310
+ console.log();
311
+ }
312
+ console.log("─".repeat(80));
313
+ });
314
+ program
315
+ .command("sources")
316
+ .description("List all available discovery sources and their health status")
317
+ .action(async () => {
318
+ console.log("\nšŸ“” Checking discovery sources...\n");
319
+ const sources = createAllSources();
320
+ const aggregator = new Aggregator(sources);
321
+ const health = await aggregator.healthCheck();
322
+ for (const src of health) {
323
+ const status = src.healthy ? "🟢 ONLINE" : "šŸ”“ OFFLINE";
324
+ console.log(` ${status} ${src.displayName} (${src.name})`);
325
+ }
326
+ const online = health.filter((h) => h.healthy).length;
327
+ console.log(`\n${online}/${health.length} sources online\n`);
328
+ });
329
+ // ── Run ──────────────────────────────────────────────────
330
+ program.parse();
331
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { KompassConfig, AgentProfile, DiscoverOptions } from "./types.js";
2
+ /**
3
+ * Discover agents matching criteria via the indexer's GraphQL API.
4
+ * Filters by category (substring match), agent type, and registration status.
5
+ */
6
+ export declare function discover(config: KompassConfig, options?: DiscoverOptions): Promise<AgentProfile[]>;
7
+ /**
8
+ * Get a single agent's profile by address.
9
+ */
10
+ export declare function getAgent(config: KompassConfig, address: string): Promise<AgentProfile | null>;
11
+ /**
12
+ * Find evaluators by domain specialization.
13
+ */
14
+ export declare function findEvaluator(config: KompassConfig, domain: string): Promise<AgentProfile[]>;
15
+ //# sourceMappingURL=discover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAwD/E;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAgF5G;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA+BnG;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAKlG"}