kompass-sdk 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/router.js CHANGED
@@ -11,12 +11,17 @@
11
11
  * 5. Return result
12
12
  */
13
13
  import { rankAgents } from "./matching.js";
14
+ import { ReputationWriter } from "./reputation-writer.js";
14
15
  export class CapabilityRouter {
15
16
  aggregator;
16
17
  bridge;
17
- constructor(aggregator, bridge) {
18
+ reputationWriter;
19
+ constructor(aggregator, bridge, reputationConfig) {
18
20
  this.aggregator = aggregator;
19
21
  this.bridge = bridge;
22
+ if (reputationConfig) {
23
+ this.reputationWriter = new ReputationWriter(reputationConfig);
24
+ }
20
25
  }
21
26
  async do(options) {
22
27
  const { task, dryRun = false } = options;
@@ -77,6 +82,20 @@ export class CapabilityRouter {
77
82
  timeout: options.timeout,
78
83
  payload: options.payload,
79
84
  });
85
+ // 8. Write ERC-8004 reputation feedback on-chain
86
+ if (this.reputationWriter && selected.agent.reputation?.source === "erc8004") {
87
+ const agentId = BigInt(selected.agent.nativeId || "0");
88
+ if (agentId > 0n) {
89
+ const category = selected.agent.categories[0] ?? "general";
90
+ const endpoint = selected.agent.endpoints.x402 ?? selected.agent.endpoints.http ?? "";
91
+ if (execution?.success) {
92
+ await this.reputationWriter.writePositiveFeedback(agentId, category, endpoint);
93
+ }
94
+ else {
95
+ await this.reputationWriter.writeNegativeFeedback(agentId, category, endpoint);
96
+ }
97
+ }
98
+ }
80
99
  }
81
100
  const reasoning = this.explainChoice(selected, reranked, options);
82
101
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,7 @@ function mapKompassAgent(agent) {
35
35
  id: `kompass-registry:${agent.id}`,
36
36
  nativeId: agent.id,
37
37
  name: agent.ensName || agent.id,
38
+ ensName: agent.ensName || undefined,
38
39
  description: agent.description ?? "",
39
40
  categories: agent.categories ? agent.categories.split(",").map((c) => c.trim()) : [],
40
41
  capabilities: [agent.description, agent.categories].filter(Boolean),
@@ -1 +1 @@
1
- {"version":3,"file":"kompass-registry.js","sourceRoot":"","sources":["../../src/sources/kompass-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,MAAM,UAAU,4BAA4B,CAAC,MAAqB;IAChE,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,2BAA2B;QAExC,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAA6B;YACvD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE;oBACpC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,KAAK;oBACpC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;iBAC5B,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI;YACR,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBACrC,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAmB;IAC1C,OAAO;QACL,EAAE,EAAE,oBAAoB,KAAK,CAAC,EAAE,EAAE;QAClC,QAAQ,EAAE,KAAK,CAAC,EAAE;QAClB,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE;QAC/B,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QAC5F,YAAY,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAa;QAC/E,MAAM,EAAE,kBAAkB;QAC1B,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACxG,SAAS,EAAE;YACT,GAAG,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;YACnC,GAAG,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;YACnC,IAAI,EAAE,KAAK,CAAC,YAAY,IAAI,SAAS;SACtC;QACD,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5B,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,iBAAiB;SAC1B,CAAC,CAAC,CAAC,SAAS;QACb,OAAO,EAAE;YACP,KAAK,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACxG,MAAM,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;YACtC,QAAQ,EAAE,KAAK,CAAC,YAAY,IAAI,MAAM;SACvC;QACD,QAAQ,EAAE,KAAK,CAAC,gBAAgB;QAChC,GAAG,EAAE,KAAK;KACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"kompass-registry.js","sourceRoot":"","sources":["../../src/sources/kompass-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,MAAM,UAAU,4BAA4B,CAAC,MAAqB;IAChE,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,2BAA2B;QAExC,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAA6B;YACvD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE;oBACpC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,KAAK;oBACpC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;iBAC5B,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI;YACR,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBACrC,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAmB;IAC1C,OAAO;QACL,EAAE,EAAE,oBAAoB,KAAK,CAAC,EAAE,EAAE;QAClC,QAAQ,EAAE,KAAK,CAAC,EAAE;QAClB,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE;QAC/B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,SAAS;QACnC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QAC5F,YAAY,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAa;QAC/E,MAAM,EAAE,kBAAkB;QAC1B,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACxG,SAAS,EAAE;YACT,GAAG,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;YACnC,GAAG,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;YACnC,IAAI,EAAE,KAAK,CAAC,YAAY,IAAI,SAAS;SACtC;QACD,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5B,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,iBAAiB;SAC1B,CAAC,CAAC,CAAC,SAAS;QACb,OAAO,EAAE;YACP,KAAK,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACxG,MAAM,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;YACtC,QAAQ,EAAE,KAAK,CAAC,YAAY,IAAI,MAAM;SACvC;QACD,QAAQ,EAAE,KAAK,CAAC,gBAAgB;QAChC,GAAG,EAAE,KAAK;KACX,CAAC;AACJ,CAAC"}
@@ -13,6 +13,8 @@ export interface UnifiedAgent {
13
13
  nativeId: string;
14
14
  /** Agent name */
15
15
  name: string;
16
+ /** ENS / Basename if available (e.g., "yieldsage.base.eth") */
17
+ ensName?: string;
16
18
  /** Description of what this agent does */
17
19
  description: string;
18
20
  /** Capability categories (e.g., ["defi", "yield", "analytics"]) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sources/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,WAAW,GACnB,kBAAkB,GAClB,KAAK,GACL,cAAc,GACd,gBAAgB,GAChB,SAAS,GACT,KAAK,GACL,eAAe,GACf,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnG,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,qDAAqD;IACrD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,2CAA2C;IAC3C,MAAM,EAAE,WAAW,CAAC;IACpB,mDAAmD;IACnD,QAAQ,EAAE,aAAa,CAAC;IACxB,kCAAkC;IAClC,SAAS,EAAE;QACT,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE;YAAE,aAAa,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACzD,CAAC;IACF,+BAA+B;IAC/B,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,mBAAmB;IACnB,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;QACnE,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9E,wCAAwC;IACxC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sources/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,WAAW,GACnB,kBAAkB,GAClB,KAAK,GACL,cAAc,GACd,gBAAgB,GAChB,SAAS,GACT,KAAK,GACL,eAAe,GACf,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnG,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,qDAAqD;IACrD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,2CAA2C;IAC3C,MAAM,EAAE,WAAW,CAAC;IACpB,mDAAmD;IACnD,QAAQ,EAAE,aAAa,CAAC;IACxB,kCAAkC;IAClC,SAAS,EAAE;QACT,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE;YAAE,aAAa,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACzD,CAAC;IACF,+BAA+B;IAC/B,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,mBAAmB;IACnB,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;QACnE,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9E,wCAAwC;IACxC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1B"}
package/dist/unified.d.ts CHANGED
@@ -14,6 +14,7 @@ import { type AggregatorResult } from "./aggregator.js";
14
14
  import { type MatchResult } from "./matching.js";
15
15
  import { type BridgeHireOptions, type BridgeHireResult } from "./bridge.js";
16
16
  import { type DoOptions, type DoResult } from "./router.js";
17
+ import type { ReputationWriterConfig } from "./reputation-writer.js";
17
18
  export interface UnifiedConfig {
18
19
  /** Network for on-chain sources */
19
20
  network?: "base" | "base-sepolia";
@@ -23,6 +24,8 @@ export interface UnifiedConfig {
23
24
  acpBackend?: any;
24
25
  /** Kompass SDK config (for kompass-registry source) */
25
26
  kompassConfig?: any;
27
+ /** ERC-8004 reputation writer config (writes feedback after executions) */
28
+ reputationWriter?: ReputationWriterConfig;
26
29
  }
27
30
  export interface FindOptions {
28
31
  /** Max results */
@@ -43,6 +46,7 @@ export declare class KompassUnified {
43
46
  private bridge;
44
47
  private router;
45
48
  private adapters;
49
+ private config?;
46
50
  private constructor();
47
51
  static create(config?: UnifiedConfig): Promise<KompassUnified>;
48
52
  /**
@@ -1 +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"}
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;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,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;IACpB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC3C;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,CAAC,MAAM,CAAC,CAAgB;IAE/B,OAAO;WAQM,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"}
package/dist/unified.js CHANGED
@@ -19,11 +19,13 @@ export class KompassUnified {
19
19
  bridge;
20
20
  router;
21
21
  adapters;
22
- constructor(adapters, bridge) {
22
+ config;
23
+ constructor(adapters, bridge, config) {
23
24
  this.adapters = adapters;
25
+ this.config = config;
24
26
  this.aggregator = new Aggregator(adapters);
25
27
  this.bridge = bridge;
26
- this.router = new CapabilityRouter(this.aggregator, this.bridge);
28
+ this.router = new CapabilityRouter(this.aggregator, this.bridge, config?.reputationWriter);
27
29
  }
28
30
  static async create(config) {
29
31
  const adapters = createAllSources({
@@ -34,7 +36,7 @@ export class KompassUnified {
34
36
  const bridge = new ProtocolBridge({
35
37
  acpBackend: config?.acpBackend,
36
38
  });
37
- return new KompassUnified(adapters, bridge);
39
+ return new KompassUnified(adapters, bridge, config);
38
40
  }
39
41
  /**
40
42
  * Search for agents across all registries.
@@ -1 +1 @@
1
- {"version":3,"file":"unified.js","sourceRoot":"","sources":["../src/unified.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unified.js","sourceRoot":"","sources":["../src/unified.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kompass-sdk",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "Get any job done. Universal agent capability discovery + coordination across ACP, MCP, x402, A2A, skills, L402, and ERC-8004.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/bridge.ts CHANGED
@@ -4,6 +4,8 @@
4
4
  */
5
5
 
6
6
  import type { UnifiedAgent, AgentProtocol } from "./sources/types.js";
7
+ import type { KompassConfig } from "./types.js";
8
+ import { createJob, setBudget, fund, submit, complete, getJob } from "./escrow.js";
7
9
 
8
10
  export interface BridgeHireOptions {
9
11
  task: string;
@@ -24,10 +26,12 @@ export interface BridgeHireResult {
24
26
  }
25
27
 
26
28
  export class ProtocolBridge {
27
- private acpBackend?: any; // AcpEscrowBackend if available
29
+ private acpBackend?: any;
30
+ private kompassConfig?: KompassConfig;
28
31
 
29
- constructor(options?: { acpBackend?: any }) {
32
+ constructor(options?: { acpBackend?: any; kompassConfig?: KompassConfig }) {
30
33
  this.acpBackend = options?.acpBackend;
34
+ this.kompassConfig = options?.kompassConfig;
31
35
  }
32
36
 
33
37
  async hire(agent: UnifiedAgent, options: BridgeHireOptions): Promise<BridgeHireResult> {
@@ -47,6 +51,8 @@ export class ProtocolBridge {
47
51
  return await this.hireViaHttp(agent, options, start);
48
52
  case "l402":
49
53
  return await this.hireViaL402(agent, options, start);
54
+ case "onchain":
55
+ return await this.hireViaEscrow(agent, options, start);
50
56
  default:
51
57
  return {
52
58
  success: false,
@@ -245,6 +251,64 @@ export class ProtocolBridge {
245
251
  };
246
252
  }
247
253
 
254
+ private async hireViaEscrow(
255
+ agent: UnifiedAgent,
256
+ options: BridgeHireOptions,
257
+ start: number
258
+ ): Promise<BridgeHireResult> {
259
+ if (!this.kompassConfig?.walletClient) {
260
+ return {
261
+ success: false, protocol: "onchain", agent,
262
+ error: "Escrow requires a funded wallet. Set kompassConfig with walletClient.",
263
+ durationMs: Date.now() - start,
264
+ };
265
+ }
266
+
267
+ try {
268
+ const providerAddress = (agent.endpoints.acp?.walletAddress ?? agent.nativeId) as `0x${string}`;
269
+ const evaluatorAddress = this.kompassConfig.walletClient.account?.address as `0x${string}`;
270
+ const hookAddress = this.kompassConfig.defaultHookAddress;
271
+
272
+ // Create ERC-8183 escrow job
273
+ const expiredAt = BigInt(Math.floor(Date.now() / 1000) + 3600);
274
+ const budget = options.budget ?? 500_000n; // $0.50 default
275
+
276
+ const jobResult = await createJob(this.kompassConfig, {
277
+ provider: providerAddress,
278
+ evaluator: evaluatorAddress,
279
+ budget,
280
+ expiredAt,
281
+ description: options.task,
282
+ hook: hookAddress,
283
+ });
284
+
285
+ // Set budget and fund
286
+ await setBudget(this.kompassConfig, jobResult.jobId, budget);
287
+ await fund(this.kompassConfig, jobResult.jobId);
288
+
289
+ return {
290
+ success: true,
291
+ protocol: "onchain",
292
+ agent,
293
+ jobId: jobResult.jobId.toString(),
294
+ txHash: jobResult.txHash,
295
+ deliverable: {
296
+ type: "erc-8183-escrow",
297
+ jobId: jobResult.jobId.toString(),
298
+ status: "funded",
299
+ message: "ERC-8183 escrow job created and funded. Waiting for provider to submit deliverable.",
300
+ },
301
+ durationMs: Date.now() - start,
302
+ };
303
+ } catch (err) {
304
+ return {
305
+ success: false, protocol: "onchain", agent,
306
+ error: err instanceof Error ? err.message : String(err),
307
+ durationMs: Date.now() - start,
308
+ };
309
+ }
310
+ }
311
+
248
312
  private async hireViaL402(
249
313
  agent: UnifiedAgent,
250
314
  options: BridgeHireOptions,
package/src/cli.ts CHANGED
@@ -206,12 +206,15 @@ program
206
206
  .option("-p, --protocol <protocol>", "prefer specific protocol (acp, x402, mcp, skill)")
207
207
  .option("--dry-run", "show options without executing")
208
208
  .option("--json", "output as JSON")
209
+ .option("--log <path>", "write structured agent_log.json to path")
210
+ .option("--manifest <path>", "write agent.json manifest to path")
209
211
  .action(
210
212
  async (
211
213
  task: string,
212
- opts: { budget: string; cost: string; protocol?: string; dryRun?: boolean; json?: boolean }
214
+ opts: { budget: string; cost: string; protocol?: string; dryRun?: boolean; json?: boolean; log?: string; manifest?: string }
213
215
  ) => {
214
216
  const { KompassUnified } = await import("./unified.js");
217
+ const { writeFileSync } = await import("fs");
215
218
  const kompass = await KompassUnified.create();
216
219
 
217
220
  if (!opts.json) {
@@ -259,6 +262,67 @@ program
259
262
  }
260
263
  }
261
264
 
265
+ // Write agent_log.json if requested
266
+ if (opts.log) {
267
+ const log = {
268
+ agentName: "Kompass",
269
+ startTime: new Date(Date.now() - (result.discovery.queryTimeMs + (result.execution?.durationMs ?? 0))).toISOString(),
270
+ endTime: new Date().toISOString(),
271
+ intent: task,
272
+ entries: [
273
+ { timestamp: new Date().toISOString(), phase: "discovery", action: "search-all-sources", decision: `Searched ${result.discovery.sourcesQueried} sources, found ${result.discovery.totalFound} options in ${result.discovery.queryTimeMs}ms` },
274
+ ...result.options.slice(0, 5).map((o) => ({
275
+ timestamp: new Date().toISOString(),
276
+ phase: "ranking",
277
+ action: `evaluate:${o.agent.name}`,
278
+ decision: `${o.protocol} | $${o.estimatedCost ?? "unknown"} | ${o.why}`,
279
+ })),
280
+ ...(result.selected ? [{
281
+ timestamp: new Date().toISOString(),
282
+ phase: "selection",
283
+ action: `selected:${result.selected.agent.name}`,
284
+ decision: result.reasoning,
285
+ }] : []),
286
+ ...(result.execution ? [{
287
+ timestamp: new Date().toISOString(),
288
+ phase: "execution",
289
+ action: result.execution.success ? "success" : "failed",
290
+ decision: result.execution.error ?? "Execution completed",
291
+ txHash: result.execution.txHash,
292
+ durationMs: result.execution.durationMs,
293
+ }] : []),
294
+ ],
295
+ summary: {
296
+ sourcesQueried: result.discovery.sourcesQueried,
297
+ optionsFound: result.options.length,
298
+ selected: result.selected?.agent.name ?? null,
299
+ protocol: result.selected?.protocol ?? null,
300
+ success: result.success,
301
+ costUSDC: result.selected?.estimatedCost ?? 0,
302
+ },
303
+ };
304
+ writeFileSync(opts.log, JSON.stringify(log, null, 2));
305
+ console.log(`agent_log.json written to ${opts.log}`);
306
+ }
307
+
308
+ // Write agent.json manifest if requested
309
+ if (opts.manifest) {
310
+ const manifest = {
311
+ name: "Kompass",
312
+ version: "0.2.0",
313
+ description: "Universal capability discovery + coordination across ACP, MCP, x402, A2A, skills, ERC-8004, L402",
314
+ operatorWallet: process.env.KOMPASS_PRIVATE_KEY ? "configured" : "not-set",
315
+ supportedTools: ["kompass-find", "kompass-do", "kompass-serve", "kompass-coordinate"],
316
+ techStacks: ["typescript", "a2a", "mcp", "x402", "acp", "erc-8183", "erc-8004", "ens"],
317
+ computeConstraints: { maxBudgetUSDC: parseFloat(opts.budget), timeoutSeconds: 300 },
318
+ taskCategories: ["discovery", "coordination", "defi", "data", "development"],
319
+ sourceCount: result.discovery.sourcesQueried,
320
+ registeredAt: new Date().toISOString(),
321
+ };
322
+ writeFileSync(opts.manifest, JSON.stringify(manifest, null, 2));
323
+ console.log(`agent.json written to ${opts.manifest}`);
324
+ }
325
+
262
326
  console.log();
263
327
  }
264
328
  );
@@ -362,8 +426,10 @@ program
362
426
  const rep = agent.reputation ? ` | rep: ${agent.reputation.score}/${agent.reputation.count}` : "";
363
427
  const price = agent.pricing?.amount ? ` | $${agent.pricing.amount} ${agent.pricing.currency ?? ""}` : "";
364
428
  const protocol = agent.protocol.toUpperCase();
429
+ const identity = agent.ensName ?? agent.name;
430
+ const ensTag = agent.ensName ? ` 🏷️ ${agent.ensName}` : "";
365
431
 
366
- console.log(` [${protocol}] ${agent.name} (${agent.source})`);
432
+ console.log(` [${protocol}] ${identity} (${agent.source})${ensTag}`);
367
433
  console.log(` ${agent.description.slice(0, 120)}`);
368
434
  console.log(` Categories: ${agent.categories.join(", ")} | Score: ${score}${rep}${price}`);
369
435
  if (agent.endpoints.x402) console.log(` x402: ${agent.endpoints.x402}`);
package/src/ens.ts ADDED
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Kompass ENS Resolution
3
+ * Resolves wallet addresses to ENS/Basename names
4
+ * Makes agents identifiable by name, not just address
5
+ */
6
+
7
+ import { createPublicClient, http, type Address } from "viem";
8
+ import { baseSepolia, base } from "viem/chains";
9
+ import { normalize } from "viem/ens";
10
+ import type { UnifiedAgent } from "./sources/types.js";
11
+
12
+ // ENS L2 Resolver on Base Sepolia
13
+ const BASE_SEPOLIA_RESOLVER = "0x6533C94869D28fAA8dF77cc63f9e2b2D6Cf77eBA" as Address;
14
+
15
+ // Cache to avoid repeated lookups
16
+ const ensCache = new Map<string, string | null>();
17
+
18
+ const baseClient = createPublicClient({
19
+ chain: base,
20
+ transport: http("https://mainnet.base.org"),
21
+ });
22
+
23
+ const baseSepoliaClient = createPublicClient({
24
+ chain: baseSepolia,
25
+ transport: http("https://sepolia.base.org"),
26
+ });
27
+
28
+ /**
29
+ * Reverse-resolve an address to its ENS/Basename.
30
+ * Returns null if no name found.
31
+ */
32
+ export async function resolveENSName(
33
+ address: Address,
34
+ network: "base" | "base-sepolia" = "base"
35
+ ): Promise<string | null> {
36
+ const cacheKey = `${network}:${address.toLowerCase()}`;
37
+ if (ensCache.has(cacheKey)) return ensCache.get(cacheKey)!;
38
+
39
+ try {
40
+ const client = network === "base" ? baseClient : baseSepoliaClient;
41
+ const name = await client.getEnsName({ address });
42
+ ensCache.set(cacheKey, name);
43
+ return name;
44
+ } catch {
45
+ ensCache.set(cacheKey, null);
46
+ return null;
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Resolve an ENS name to an address.
52
+ */
53
+ export async function resolveENSAddress(
54
+ name: string,
55
+ network: "base" | "base-sepolia" = "base"
56
+ ): Promise<Address | null> {
57
+ try {
58
+ const client = network === "base" ? baseClient : baseSepoliaClient;
59
+ const address = await client.getEnsAddress({ name: normalize(name) });
60
+ return address;
61
+ } catch {
62
+ return null;
63
+ }
64
+ }
65
+
66
+ /**
67
+ * Enrich UnifiedAgent array with ENS names where possible.
68
+ * Batch resolves addresses to avoid sequential lookups.
69
+ */
70
+ export async function enrichWithENS(
71
+ agents: UnifiedAgent[],
72
+ network: "base" | "base-sepolia" = "base"
73
+ ): Promise<UnifiedAgent[]> {
74
+ const agentsNeedingResolution = agents.filter(
75
+ (a) => !a.ensName && a.endpoints.acp?.walletAddress
76
+ );
77
+
78
+ // Resolve in parallel (limit concurrency)
79
+ const BATCH_SIZE = 5;
80
+ for (let i = 0; i < agentsNeedingResolution.length; i += BATCH_SIZE) {
81
+ const batch = agentsNeedingResolution.slice(i, i + BATCH_SIZE);
82
+ await Promise.allSettled(
83
+ batch.map(async (agent) => {
84
+ const address = agent.endpoints.acp?.walletAddress as Address;
85
+ if (address) {
86
+ const name = await resolveENSName(address, network);
87
+ if (name) agent.ensName = name;
88
+ }
89
+ })
90
+ );
91
+ }
92
+
93
+ return agents;
94
+ }
95
+
96
+ /**
97
+ * Format an agent's identity — prefer ENS name over address.
98
+ */
99
+ export function formatAgentIdentity(agent: UnifiedAgent): string {
100
+ if (agent.ensName) return agent.ensName;
101
+ const addr = agent.endpoints.acp?.walletAddress ?? agent.nativeId;
102
+ if (addr && addr.startsWith("0x")) return `${addr.slice(0, 6)}...${addr.slice(-4)}`;
103
+ return agent.name;
104
+ }
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Kompass Reputation Writer
3
+ * Writes ERC-8004 feedback on-chain after every capability execution.
4
+ * Makes agents accountable — good work builds reputation, bad work damages it.
5
+ */
6
+
7
+ import { type Address, type Hex, zeroHash, createPublicClient, createWalletClient, http } from "viem";
8
+ import { privateKeyToAccount } from "viem/accounts";
9
+ import { baseSepolia } from "viem/chains";
10
+
11
+ // ERC-8004 Reputation Registry ABI (giveFeedback function)
12
+ const REPUTATION_ABI = [
13
+ {
14
+ type: "function",
15
+ name: "giveFeedback",
16
+ inputs: [
17
+ { name: "agentId", type: "uint256" },
18
+ { name: "value", type: "int128" },
19
+ { name: "valueDecimals", type: "uint8" },
20
+ { name: "tag1", type: "string" },
21
+ { name: "tag2", type: "string" },
22
+ { name: "endpoint", type: "string" },
23
+ { name: "feedbackURI", type: "string" },
24
+ { name: "feedbackHash", type: "bytes32" },
25
+ ],
26
+ outputs: [],
27
+ stateMutability: "nonpayable",
28
+ },
29
+ ] as const;
30
+
31
+ export interface ReputationWriterConfig {
32
+ /** ERC-8004 Reputation Registry address */
33
+ reputationRegistryAddress: Address;
34
+ /** Private key for signing feedback transactions */
35
+ privateKey: string;
36
+ /** RPC URL */
37
+ rpcUrl?: string;
38
+ }
39
+
40
+ export class ReputationWriter {
41
+ private config: ReputationWriterConfig;
42
+ private walletClient: any;
43
+ private publicClient: any;
44
+
45
+ constructor(config: ReputationWriterConfig) {
46
+ this.config = config;
47
+
48
+ const account = privateKeyToAccount(config.privateKey as Hex);
49
+ this.publicClient = createPublicClient({
50
+ chain: baseSepolia,
51
+ transport: http(config.rpcUrl ?? "https://sepolia.base.org"),
52
+ });
53
+ this.walletClient = createWalletClient({
54
+ account,
55
+ chain: baseSepolia,
56
+ transport: http(config.rpcUrl ?? "https://sepolia.base.org"),
57
+ });
58
+ }
59
+
60
+ /**
61
+ * Write positive feedback for an agent after successful execution.
62
+ */
63
+ async writePositiveFeedback(
64
+ agentId: bigint,
65
+ taskCategory: string,
66
+ endpoint: string
67
+ ): Promise<{ txHash: Hex } | null> {
68
+ return this.writeFeedback(agentId, 1n, "kompass-success", taskCategory, endpoint);
69
+ }
70
+
71
+ /**
72
+ * Write negative feedback for an agent after failed execution.
73
+ */
74
+ async writeNegativeFeedback(
75
+ agentId: bigint,
76
+ taskCategory: string,
77
+ endpoint: string
78
+ ): Promise<{ txHash: Hex } | null> {
79
+ return this.writeFeedback(agentId, -1n, "kompass-failure", taskCategory, endpoint);
80
+ }
81
+
82
+ private async writeFeedback(
83
+ agentId: bigint,
84
+ value: bigint,
85
+ tag1: string,
86
+ tag2: string,
87
+ endpoint: string
88
+ ): Promise<{ txHash: Hex } | null> {
89
+ try {
90
+ const txHash = await this.walletClient.writeContract({
91
+ address: this.config.reputationRegistryAddress,
92
+ abi: REPUTATION_ABI,
93
+ functionName: "giveFeedback",
94
+ args: [
95
+ agentId,
96
+ value,
97
+ 0, // valueDecimals
98
+ tag1,
99
+ tag2,
100
+ endpoint,
101
+ "", // feedbackURI
102
+ zeroHash as Hex, // feedbackHash
103
+ ],
104
+ });
105
+
106
+ await this.publicClient.waitForTransactionReceipt({ hash: txHash });
107
+ console.log(`[Kompass] ERC-8004 feedback written: ${value > 0 ? "+" : ""}${value} for agent #${agentId} | tx: ${txHash}`);
108
+
109
+ return { txHash };
110
+ } catch (err) {
111
+ console.error(`[Kompass] Failed to write ERC-8004 feedback:`, err instanceof Error ? err.message : err);
112
+ return null;
113
+ }
114
+ }
115
+ }
package/src/router.ts CHANGED
@@ -15,6 +15,7 @@ import type { UnifiedAgent } from "./sources/types.js";
15
15
  import { Aggregator } from "./aggregator.js";
16
16
  import { rankAgents, parseIntent, type MatchResult } from "./matching.js";
17
17
  import { ProtocolBridge, type BridgeHireResult } from "./bridge.js";
18
+ import { ReputationWriter, type ReputationWriterConfig } from "./reputation-writer.js";
18
19
 
19
20
  export type CostPreference = "cheapest" | "balanced" | "best-quality";
20
21
 
@@ -69,10 +70,14 @@ export interface DoResult {
69
70
  export class CapabilityRouter {
70
71
  private aggregator: Aggregator;
71
72
  private bridge: ProtocolBridge;
73
+ private reputationWriter?: ReputationWriter;
72
74
 
73
- constructor(aggregator: Aggregator, bridge: ProtocolBridge) {
75
+ constructor(aggregator: Aggregator, bridge: ProtocolBridge, reputationConfig?: ReputationWriterConfig) {
74
76
  this.aggregator = aggregator;
75
77
  this.bridge = bridge;
78
+ if (reputationConfig) {
79
+ this.reputationWriter = new ReputationWriter(reputationConfig);
80
+ }
76
81
  }
77
82
 
78
83
  async do(options: DoOptions): Promise<DoResult> {
@@ -146,6 +151,20 @@ export class CapabilityRouter {
146
151
  timeout: options.timeout,
147
152
  payload: options.payload,
148
153
  });
154
+
155
+ // 8. Write ERC-8004 reputation feedback on-chain
156
+ if (this.reputationWriter && selected.agent.reputation?.source === "erc8004") {
157
+ const agentId = BigInt(selected.agent.nativeId || "0");
158
+ if (agentId > 0n) {
159
+ const category = selected.agent.categories[0] ?? "general";
160
+ const endpoint = selected.agent.endpoints.x402 ?? selected.agent.endpoints.http ?? "";
161
+ if (execution?.success) {
162
+ await this.reputationWriter.writePositiveFeedback(agentId, category, endpoint);
163
+ } else {
164
+ await this.reputationWriter.writeNegativeFeedback(agentId, category, endpoint);
165
+ }
166
+ }
167
+ }
149
168
  }
150
169
 
151
170
  const reasoning = this.explainChoice(selected, reranked, options);