@andrewkimjoseph/celina-sdk 0.9.9 → 0.10.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.
- package/build/a2a/skills.js +5 -0
- package/build/a2a/skills.js.map +1 -1
- package/build/index.d.ts +35 -1
- package/build/index.js +6 -0
- package/build/index.js.map +1 -1
- package/build/services/agentkarma.service.d.ts +89 -0
- package/build/services/agentkarma.service.js +102 -0
- package/build/services/agentkarma.service.js.map +1 -0
- package/build/src/a2a/skills.js +5 -0
- package/build/src/a2a/skills.js.map +1 -1
- package/build/src/index.d.ts +35 -1
- package/build/src/index.js +6 -0
- package/build/src/index.js.map +1 -1
- package/build/src/services/agentkarma.service.d.ts +89 -0
- package/build/src/services/agentkarma.service.js +102 -0
- package/build/src/services/agentkarma.service.js.map +1 -0
- package/build/src/tools/domains/agentkarma.d.ts +2 -0
- package/build/src/tools/domains/agentkarma.js +92 -0
- package/build/src/tools/domains/agentkarma.js.map +1 -0
- package/build/src/tools/domains/index.js +2 -0
- package/build/src/tools/domains/index.js.map +1 -1
- package/build/src/tools/website-sync.d.ts +1 -1
- package/build/src/tools/website-sync.js +3 -0
- package/build/src/tools/website-sync.js.map +1 -1
- package/build/tools/domains/agentkarma.d.ts +2 -0
- package/build/tools/domains/agentkarma.js +92 -0
- package/build/tools/domains/agentkarma.js.map +1 -0
- package/build/tools/domains/index.js +2 -0
- package/build/tools/domains/index.js.map +1 -1
- package/build/tools/website-sync.d.ts +1 -1
- package/build/tools/website-sync.js +3 -0
- package/build/tools/website-sync.js.map +1 -1
- package/package.json +5 -4
package/build/a2a/skills.js
CHANGED
|
@@ -71,6 +71,11 @@ export const CATEGORY_TO_A2A_SKILL = {
|
|
|
71
71
|
name: "Contract reads",
|
|
72
72
|
tags: ["celo", "contract", "abi"],
|
|
73
73
|
},
|
|
74
|
+
AgentKarma: {
|
|
75
|
+
id: "agentkarma-reputation",
|
|
76
|
+
name: "AgentKarma reputation reads",
|
|
77
|
+
tags: ["celo", "agentkarma", "reputation", "trust", "erc-8004"],
|
|
78
|
+
},
|
|
74
79
|
};
|
|
75
80
|
export function buildSkillsFromToolNames(toolNames, categoryByName) {
|
|
76
81
|
const bySkillId = new Map();
|
package/build/a2a/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/a2a/skills.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/a2a/skills.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type SdkConfig } from "./config/sdk-config.js";
|
|
2
2
|
import { AccountService } from "./services/account.service.js";
|
|
3
|
+
import { AgentKarmaService, type AgentKarmaServiceConfig } from "./services/agentkarma.service.js";
|
|
3
4
|
import { AaveService } from "./services/aave.service.js";
|
|
4
5
|
import { BlockchainService } from "./services/blockchain.service.js";
|
|
5
6
|
import { ContractService } from "./services/contract.service.js";
|
|
@@ -14,7 +15,13 @@ import { TokenService } from "./services/token.service.js";
|
|
|
14
15
|
import { TransactionService } from "./services/transaction.service.js";
|
|
15
16
|
import { SelfService } from "./services/self.service.js";
|
|
16
17
|
/** Optional RPC overrides when creating a Celina client. */
|
|
17
|
-
export type CelinaClientOptions = Partial<SdkConfig
|
|
18
|
+
export type CelinaClientOptions = Partial<SdkConfig> & {
|
|
19
|
+
/**
|
|
20
|
+
* Optional AgentKarma reputation adapter config (baseUrl, timeout, fetch, …).
|
|
21
|
+
* Omit to read from https://agentkarma.io with SDK defaults.
|
|
22
|
+
*/
|
|
23
|
+
agentKarma?: AgentKarmaServiceConfig;
|
|
24
|
+
};
|
|
18
25
|
/** Domain services for Celo mainnet reads and unsigned transaction preparation. */
|
|
19
26
|
export interface CelinaClient {
|
|
20
27
|
/** Blocks, transactions, and network status. */
|
|
@@ -45,6 +52,12 @@ export interface CelinaClient {
|
|
|
45
52
|
contract: ContractService;
|
|
46
53
|
/** Self Agent ID on Celo mainnet (ai.self.xyz + on-chain registry). */
|
|
47
54
|
self: SelfService;
|
|
55
|
+
/**
|
|
56
|
+
* Optional AgentKarma reputation insight (read-only, agentkarma.io).
|
|
57
|
+
* Ecosystem adapter: Provider/Consumer karma, ERC-8004 Celo agents, and
|
|
58
|
+
* local trust-policy checks. Never routes, signs, or holds custody.
|
|
59
|
+
*/
|
|
60
|
+
agentKarma: AgentKarmaService;
|
|
48
61
|
}
|
|
49
62
|
/**
|
|
50
63
|
* Create a Celina client for Celo mainnet reads and unsigned tx preparation.
|
|
@@ -88,3 +101,24 @@ export { resolveSelfSessionLinks, formatSelfSessionLinksDisplay, type SelfSessio
|
|
|
88
101
|
export { clearSelfSessionsForTests } from "./services/self-session-store.js";
|
|
89
102
|
export { flushCelinaAnalytics } from "./analytics/amplitude.js";
|
|
90
103
|
export { runWithAnalyticsWallet } from "./analytics/wallet-context.js";
|
|
104
|
+
/** Optional read-only AgentKarma reputation adapter (agentkarma.io). */
|
|
105
|
+
export { AgentKarmaService } from "./services/agentkarma.service.js";
|
|
106
|
+
export type {
|
|
107
|
+
/** Config for the AgentKarma adapter (baseUrl, timeout, fetch, headers). */
|
|
108
|
+
AgentKarmaServiceConfig,
|
|
109
|
+
/** Which karma face(s) to read: provider, consumer, or both. */
|
|
110
|
+
AgentKarmaFace,
|
|
111
|
+
/** Options for an AgentKarma karma read. */
|
|
112
|
+
GetKarmaOptions,
|
|
113
|
+
/** Local counterparty trust evaluation result. */
|
|
114
|
+
CounterpartyDecision,
|
|
115
|
+
/** AgentKarma Provider/Consumer karma snapshot. */
|
|
116
|
+
KarmaSnapshot,
|
|
117
|
+
/** Per-face karma data (score, trust tier, confidence badge, tiers). */
|
|
118
|
+
KarmaFaceData,
|
|
119
|
+
/** ERC-8004 Celo agent identity + reputation snapshot. */
|
|
120
|
+
CeloAgentSnapshot,
|
|
121
|
+
/** Local trust policy config (minScore, requireReceiptBacked, …). */
|
|
122
|
+
TrustPolicy,
|
|
123
|
+
/** Explainable allow/deny trust decision. */
|
|
124
|
+
TrustDecision, } from "./services/agentkarma.service.js";
|
package/build/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import { CeloClientFactory } from "./clients/celo-client.js";
|
|
|
8
8
|
import { EnsClientFactory } from "./clients/ens-client.js";
|
|
9
9
|
import { resolveSdkConfig } from "./config/sdk-config.js";
|
|
10
10
|
import { AccountService } from "./services/account.service.js";
|
|
11
|
+
import { AgentKarmaService, } from "./services/agentkarma.service.js";
|
|
11
12
|
import { AaveService } from "./services/aave.service.js";
|
|
12
13
|
import { BlockchainService } from "./services/blockchain.service.js";
|
|
13
14
|
import { ContractService } from "./services/contract.service.js";
|
|
@@ -47,6 +48,9 @@ export function createCelinaClient(opts) {
|
|
|
47
48
|
nft: wrap("nft", new NftService(clientFactory)),
|
|
48
49
|
contract: wrap("contract", new ContractService(clientFactory)),
|
|
49
50
|
self: wrap("self", new SelfService(clientFactory, config)),
|
|
51
|
+
// Optional ecosystem adapter. Not analytics-wrapped: AgentKarma is an
|
|
52
|
+
// external reputation service, not a Celo on-chain read Celina tracks.
|
|
53
|
+
agentKarma: new AgentKarmaService(opts?.agentKarma),
|
|
50
54
|
};
|
|
51
55
|
}
|
|
52
56
|
export { serializePreparedFlow } from "./types/prepared.js";
|
|
@@ -62,4 +66,6 @@ export { resolveSelfSessionLinks, formatSelfSessionLinksDisplay, } from "./utils
|
|
|
62
66
|
export { clearSelfSessionsForTests } from "./services/self-session-store.js";
|
|
63
67
|
export { flushCelinaAnalytics } from "./analytics/amplitude.js";
|
|
64
68
|
export { runWithAnalyticsWallet } from "./analytics/wallet-context.js";
|
|
69
|
+
/** Optional read-only AgentKarma reputation adapter (agentkarma.io). */
|
|
70
|
+
export { AgentKarmaService } from "./services/agentkarma.service.js";
|
|
65
71
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAkB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentKarma reputation adapter (read-only).
|
|
3
|
+
*
|
|
4
|
+
* AgentKarma (https://agentkarma.io) is the reputation layer for autonomous
|
|
5
|
+
* on-chain agents. This service is a thin, optional ecosystem adapter over
|
|
6
|
+
* `@agentkarma/sdk`: it reads Provider/Consumer karma and ERC-8004 Celo agent
|
|
7
|
+
* data, and evaluates a local trust policy. It is pinned to Celo — the chain
|
|
8
|
+
* Celina operates on.
|
|
9
|
+
*
|
|
10
|
+
* Boundaries (mirrors the AgentKarma SDK's own contract):
|
|
11
|
+
* - read-only: never signs, never executes a transaction, never holds custody.
|
|
12
|
+
* - non-routing: never proxies an agent call; it only reads reputation.
|
|
13
|
+
* - no private keys / no env requirement.
|
|
14
|
+
*
|
|
15
|
+
* It is intentionally NOT wrapped in Celina's Amplitude analytics proxy: this
|
|
16
|
+
* is an external reputation service, not a Celo on-chain read Celina tracks.
|
|
17
|
+
*/
|
|
18
|
+
import { type CeloAgentSnapshot, type ClientConfig, type KarmaFaceData, type KarmaSnapshot, type TrustDecision, type TrustPolicy } from "@agentkarma/sdk";
|
|
19
|
+
import { type AgentKarmaToolDescriptor } from "@agentkarma/sdk/tools";
|
|
20
|
+
/** Config for the AgentKarma adapter. Defaults to https://agentkarma.io. */
|
|
21
|
+
export type AgentKarmaServiceConfig = ClientConfig;
|
|
22
|
+
/** Which karma face(s) to read. A wallet always carries both. */
|
|
23
|
+
export type AgentKarmaFace = "provider" | "consumer" | "both";
|
|
24
|
+
/** Options for a karma read. */
|
|
25
|
+
export interface GetKarmaOptions {
|
|
26
|
+
/** Face to read. Defaults to `"both"`. */
|
|
27
|
+
face?: AgentKarmaFace;
|
|
28
|
+
}
|
|
29
|
+
/** Result of a local counterparty trust evaluation. */
|
|
30
|
+
export interface CounterpartyDecision {
|
|
31
|
+
/** Always `"celo"` — this adapter is Celo-pinned. */
|
|
32
|
+
chain: "celo";
|
|
33
|
+
/** The wallet that was evaluated. */
|
|
34
|
+
wallet: string;
|
|
35
|
+
/** Explainable allow/deny from the local policy (no network, pure function). */
|
|
36
|
+
decision: TrustDecision;
|
|
37
|
+
/** The karma snapshot the decision was computed from. */
|
|
38
|
+
snapshot: KarmaSnapshot;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Read-only AgentKarma reputation insight for Celo agents.
|
|
42
|
+
*
|
|
43
|
+
* Exposed from `createCelinaClient()` as `client.agentKarma`.
|
|
44
|
+
*/
|
|
45
|
+
export declare class AgentKarmaService {
|
|
46
|
+
private readonly client;
|
|
47
|
+
/** This adapter only ever talks to AgentKarma on the Celo chain. */
|
|
48
|
+
readonly chain: "celo";
|
|
49
|
+
constructor(config?: AgentKarmaServiceConfig);
|
|
50
|
+
/** AgentKarma API base URL the adapter reads from. */
|
|
51
|
+
get baseUrl(): string;
|
|
52
|
+
/** The canonical `@agentkarma/sdk/tools` descriptors this adapter draws from. */
|
|
53
|
+
get catalog(): readonly AgentKarmaToolDescriptor[];
|
|
54
|
+
/**
|
|
55
|
+
* Execute a tool from the canonical `@agentkarma/sdk/tools` catalog,
|
|
56
|
+
* Celo-pinned. This is how Celina consumes the SHARED tool catalog instead of
|
|
57
|
+
* re-implementing each AgentKarma call: the names, schemas, arg-coercion, and
|
|
58
|
+
* handler logic all live in `@agentkarma/sdk`. `chain` is forced to `'celo'`.
|
|
59
|
+
* @param name - A catalog tool name (e.g. `get_karma`, `get_celo_agent`).
|
|
60
|
+
* @param input - Tool arguments; `chain` is overridden to `'celo'`.
|
|
61
|
+
*/
|
|
62
|
+
runCatalogTool(name: string, input?: Record<string, unknown>): Promise<unknown>;
|
|
63
|
+
/**
|
|
64
|
+
* Provider + Consumer karma for a Celo agent wallet. Always queries Celo.
|
|
65
|
+
* Routed through the shared catalog's `get_karma` tool.
|
|
66
|
+
* @param wallet - Celo `0x` agent/wallet address to look up.
|
|
67
|
+
* @param options - Optional face selector (defaults to `"both"`).
|
|
68
|
+
*/
|
|
69
|
+
getKarma(wallet: string, options?: GetKarmaOptions): Promise<KarmaSnapshot>;
|
|
70
|
+
/**
|
|
71
|
+
* Resolve a Celo ERC-8004 agent (IdentityRegistry + ReputationRegistry)
|
|
72
|
+
* and its AgentKarma reputation by numeric agent ID. Routed through the
|
|
73
|
+
* shared catalog's `get_celo_agent` tool.
|
|
74
|
+
* @param agentId - Positive integer ERC-8004 agent ID on Celo.
|
|
75
|
+
*/
|
|
76
|
+
getCeloAgent(agentId: number): Promise<CeloAgentSnapshot>;
|
|
77
|
+
/**
|
|
78
|
+
* Fetch Celo karma and run a local, explainable trust policy against it.
|
|
79
|
+
* Pure evaluation — no routing, no signing, no side effects.
|
|
80
|
+
*
|
|
81
|
+
* Always fetches BOTH faces so whichever face `policy.face` scores on
|
|
82
|
+
* (`provider` by default) is guaranteed present — there is intentionally no
|
|
83
|
+
* separate fetch-face knob to drift out of sync with the scored face.
|
|
84
|
+
* @param wallet - Celo `0x` counterparty address.
|
|
85
|
+
* @param policy - Local trust policy (face, minScore, requireReceiptBacked, …).
|
|
86
|
+
*/
|
|
87
|
+
evaluateCounterparty(wallet: string, policy?: TrustPolicy): Promise<CounterpartyDecision>;
|
|
88
|
+
}
|
|
89
|
+
export type { CeloAgentSnapshot, KarmaFaceData, KarmaSnapshot, TrustDecision, TrustPolicy, };
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentKarma reputation adapter (read-only).
|
|
3
|
+
*
|
|
4
|
+
* AgentKarma (https://agentkarma.io) is the reputation layer for autonomous
|
|
5
|
+
* on-chain agents. This service is a thin, optional ecosystem adapter over
|
|
6
|
+
* `@agentkarma/sdk`: it reads Provider/Consumer karma and ERC-8004 Celo agent
|
|
7
|
+
* data, and evaluates a local trust policy. It is pinned to Celo — the chain
|
|
8
|
+
* Celina operates on.
|
|
9
|
+
*
|
|
10
|
+
* Boundaries (mirrors the AgentKarma SDK's own contract):
|
|
11
|
+
* - read-only: never signs, never executes a transaction, never holds custody.
|
|
12
|
+
* - non-routing: never proxies an agent call; it only reads reputation.
|
|
13
|
+
* - no private keys / no env requirement.
|
|
14
|
+
*
|
|
15
|
+
* It is intentionally NOT wrapped in Celina's Amplitude analytics proxy: this
|
|
16
|
+
* is an external reputation service, not a Celo on-chain read Celina tracks.
|
|
17
|
+
*/
|
|
18
|
+
import { createAgentKarmaClient, evaluateTrust, } from "@agentkarma/sdk";
|
|
19
|
+
import { agentKarmaTools, runAgentKarmaTool, } from "@agentkarma/sdk/tools";
|
|
20
|
+
const CELINA_USER_AGENT = "@andrewkimjoseph/celina-sdk (+@agentkarma/sdk adapter)";
|
|
21
|
+
/** Celo (EVM) address shape. AgentKarma keys Celo agents by 0x address. */
|
|
22
|
+
const CELO_ADDRESS_RE = /^0x[a-fA-F0-9]{40}$/;
|
|
23
|
+
function assertCeloAddress(wallet) {
|
|
24
|
+
if (typeof wallet !== "string" || !CELO_ADDRESS_RE.test(wallet)) {
|
|
25
|
+
throw new Error(`AgentKarma: wallet must be a Celo 0x address (40 hex chars), got "${wallet}"`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Read-only AgentKarma reputation insight for Celo agents.
|
|
30
|
+
*
|
|
31
|
+
* Exposed from `createCelinaClient()` as `client.agentKarma`.
|
|
32
|
+
*/
|
|
33
|
+
export class AgentKarmaService {
|
|
34
|
+
client;
|
|
35
|
+
/** This adapter only ever talks to AgentKarma on the Celo chain. */
|
|
36
|
+
chain = "celo";
|
|
37
|
+
constructor(config = {}) {
|
|
38
|
+
this.client = createAgentKarmaClient({
|
|
39
|
+
...config,
|
|
40
|
+
userAgent: config.userAgent ?? CELINA_USER_AGENT,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/** AgentKarma API base URL the adapter reads from. */
|
|
44
|
+
get baseUrl() {
|
|
45
|
+
return this.client.baseUrl;
|
|
46
|
+
}
|
|
47
|
+
/** The canonical `@agentkarma/sdk/tools` descriptors this adapter draws from. */
|
|
48
|
+
get catalog() {
|
|
49
|
+
return agentKarmaTools;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Execute a tool from the canonical `@agentkarma/sdk/tools` catalog,
|
|
53
|
+
* Celo-pinned. This is how Celina consumes the SHARED tool catalog instead of
|
|
54
|
+
* re-implementing each AgentKarma call: the names, schemas, arg-coercion, and
|
|
55
|
+
* handler logic all live in `@agentkarma/sdk`. `chain` is forced to `'celo'`.
|
|
56
|
+
* @param name - A catalog tool name (e.g. `get_karma`, `get_celo_agent`).
|
|
57
|
+
* @param input - Tool arguments; `chain` is overridden to `'celo'`.
|
|
58
|
+
*/
|
|
59
|
+
runCatalogTool(name, input = {}) {
|
|
60
|
+
return runAgentKarmaTool(this.client, name, { ...input, chain: "celo" });
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Provider + Consumer karma for a Celo agent wallet. Always queries Celo.
|
|
64
|
+
* Routed through the shared catalog's `get_karma` tool.
|
|
65
|
+
* @param wallet - Celo `0x` agent/wallet address to look up.
|
|
66
|
+
* @param options - Optional face selector (defaults to `"both"`).
|
|
67
|
+
*/
|
|
68
|
+
async getKarma(wallet, options = {}) {
|
|
69
|
+
assertCeloAddress(wallet);
|
|
70
|
+
return this.runCatalogTool("get_karma", {
|
|
71
|
+
wallet,
|
|
72
|
+
face: options.face ?? "both",
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Resolve a Celo ERC-8004 agent (IdentityRegistry + ReputationRegistry)
|
|
77
|
+
* and its AgentKarma reputation by numeric agent ID. Routed through the
|
|
78
|
+
* shared catalog's `get_celo_agent` tool.
|
|
79
|
+
* @param agentId - Positive integer ERC-8004 agent ID on Celo.
|
|
80
|
+
*/
|
|
81
|
+
async getCeloAgent(agentId) {
|
|
82
|
+
return this.runCatalogTool("get_celo_agent", {
|
|
83
|
+
agent_id: agentId,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Fetch Celo karma and run a local, explainable trust policy against it.
|
|
88
|
+
* Pure evaluation — no routing, no signing, no side effects.
|
|
89
|
+
*
|
|
90
|
+
* Always fetches BOTH faces so whichever face `policy.face` scores on
|
|
91
|
+
* (`provider` by default) is guaranteed present — there is intentionally no
|
|
92
|
+
* separate fetch-face knob to drift out of sync with the scored face.
|
|
93
|
+
* @param wallet - Celo `0x` counterparty address.
|
|
94
|
+
* @param policy - Local trust policy (face, minScore, requireReceiptBacked, …).
|
|
95
|
+
*/
|
|
96
|
+
async evaluateCounterparty(wallet, policy = {}) {
|
|
97
|
+
const snapshot = await this.getKarma(wallet, { face: "both" });
|
|
98
|
+
const decision = evaluateTrust(snapshot, policy);
|
|
99
|
+
return { chain: "celo", wallet, decision, snapshot };
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=agentkarma.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentkarma.service.js","sourceRoot":"","sources":["../../src/services/agentkarma.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,sBAAsB,EACtB,aAAa,GAQd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,iBAAiB,GAElB,MAAM,uBAAuB,CAAC;AA0B/B,MAAM,iBAAiB,GAAG,wDAAwD,CAAC;AAEnF,2EAA2E;AAC3E,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,SAAS,iBAAiB,CAAC,MAAc;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,qEAAqE,MAAM,GAAG,CAC/E,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IACX,MAAM,CAAmB;IAE1C,oEAAoE;IAC3D,KAAK,GAAG,MAAe,CAAC;IAEjC,YAAY,SAAkC,EAAE;QAC9C,IAAI,CAAC,MAAM,GAAG,sBAAsB,CAAC;YACnC,GAAG,MAAM;YACT,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,iBAAiB;SACjD,CAAC,CAAC;IACL,CAAC;IAED,sDAAsD;IACtD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,iFAAiF;IACjF,IAAI,OAAO;QACT,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,cAAc,CACZ,IAAY,EACZ,QAAiC,EAAE;QAEnC,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CACZ,MAAc,EACd,UAA2B,EAAE;QAE7B,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACtC,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM;SAC7B,CAA2B,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE;YAC3C,QAAQ,EAAE,OAAO;SAClB,CAA+B,CAAC;IACnC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,oBAAoB,CACxB,MAAc,EACd,SAAsB,EAAE;QAExB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACvD,CAAC;CACF"}
|
package/build/src/a2a/skills.js
CHANGED
|
@@ -71,6 +71,11 @@ export const CATEGORY_TO_A2A_SKILL = {
|
|
|
71
71
|
name: "Contract reads",
|
|
72
72
|
tags: ["celo", "contract", "abi"],
|
|
73
73
|
},
|
|
74
|
+
AgentKarma: {
|
|
75
|
+
id: "agentkarma-reputation",
|
|
76
|
+
name: "AgentKarma reputation reads",
|
|
77
|
+
tags: ["celo", "agentkarma", "reputation", "trust", "erc-8004"],
|
|
78
|
+
},
|
|
74
79
|
};
|
|
75
80
|
export function buildSkillsFromToolNames(toolNames, categoryByName) {
|
|
76
81
|
const bySkillId = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/a2a/skills.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/a2a/skills.ts"],"names":[],"mappings":"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"}
|
package/build/src/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type SdkConfig } from "./config/sdk-config.js";
|
|
2
2
|
import { AccountService } from "./services/account.service.js";
|
|
3
|
+
import { AgentKarmaService, type AgentKarmaServiceConfig } from "./services/agentkarma.service.js";
|
|
3
4
|
import { AaveService } from "./services/aave.service.js";
|
|
4
5
|
import { BlockchainService } from "./services/blockchain.service.js";
|
|
5
6
|
import { ContractService } from "./services/contract.service.js";
|
|
@@ -14,7 +15,13 @@ import { TokenService } from "./services/token.service.js";
|
|
|
14
15
|
import { TransactionService } from "./services/transaction.service.js";
|
|
15
16
|
import { SelfService } from "./services/self.service.js";
|
|
16
17
|
/** Optional RPC overrides when creating a Celina client. */
|
|
17
|
-
export type CelinaClientOptions = Partial<SdkConfig
|
|
18
|
+
export type CelinaClientOptions = Partial<SdkConfig> & {
|
|
19
|
+
/**
|
|
20
|
+
* Optional AgentKarma reputation adapter config (baseUrl, timeout, fetch, …).
|
|
21
|
+
* Omit to read from https://agentkarma.io with SDK defaults.
|
|
22
|
+
*/
|
|
23
|
+
agentKarma?: AgentKarmaServiceConfig;
|
|
24
|
+
};
|
|
18
25
|
/** Domain services for Celo mainnet reads and unsigned transaction preparation. */
|
|
19
26
|
export interface CelinaClient {
|
|
20
27
|
/** Blocks, transactions, and network status. */
|
|
@@ -45,6 +52,12 @@ export interface CelinaClient {
|
|
|
45
52
|
contract: ContractService;
|
|
46
53
|
/** Self Agent ID on Celo mainnet (ai.self.xyz + on-chain registry). */
|
|
47
54
|
self: SelfService;
|
|
55
|
+
/**
|
|
56
|
+
* Optional AgentKarma reputation insight (read-only, agentkarma.io).
|
|
57
|
+
* Ecosystem adapter: Provider/Consumer karma, ERC-8004 Celo agents, and
|
|
58
|
+
* local trust-policy checks. Never routes, signs, or holds custody.
|
|
59
|
+
*/
|
|
60
|
+
agentKarma: AgentKarmaService;
|
|
48
61
|
}
|
|
49
62
|
/**
|
|
50
63
|
* Create a Celina client for Celo mainnet reads and unsigned tx preparation.
|
|
@@ -88,3 +101,24 @@ export { resolveSelfSessionLinks, formatSelfSessionLinksDisplay, type SelfSessio
|
|
|
88
101
|
export { clearSelfSessionsForTests } from "./services/self-session-store.js";
|
|
89
102
|
export { flushCelinaAnalytics } from "./analytics/amplitude.js";
|
|
90
103
|
export { runWithAnalyticsWallet } from "./analytics/wallet-context.js";
|
|
104
|
+
/** Optional read-only AgentKarma reputation adapter (agentkarma.io). */
|
|
105
|
+
export { AgentKarmaService } from "./services/agentkarma.service.js";
|
|
106
|
+
export type {
|
|
107
|
+
/** Config for the AgentKarma adapter (baseUrl, timeout, fetch, headers). */
|
|
108
|
+
AgentKarmaServiceConfig,
|
|
109
|
+
/** Which karma face(s) to read: provider, consumer, or both. */
|
|
110
|
+
AgentKarmaFace,
|
|
111
|
+
/** Options for an AgentKarma karma read. */
|
|
112
|
+
GetKarmaOptions,
|
|
113
|
+
/** Local counterparty trust evaluation result. */
|
|
114
|
+
CounterpartyDecision,
|
|
115
|
+
/** AgentKarma Provider/Consumer karma snapshot. */
|
|
116
|
+
KarmaSnapshot,
|
|
117
|
+
/** Per-face karma data (score, trust tier, confidence badge, tiers). */
|
|
118
|
+
KarmaFaceData,
|
|
119
|
+
/** ERC-8004 Celo agent identity + reputation snapshot. */
|
|
120
|
+
CeloAgentSnapshot,
|
|
121
|
+
/** Local trust policy config (minScore, requireReceiptBacked, …). */
|
|
122
|
+
TrustPolicy,
|
|
123
|
+
/** Explainable allow/deny trust decision. */
|
|
124
|
+
TrustDecision, } from "./services/agentkarma.service.js";
|
package/build/src/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import { CeloClientFactory } from "./clients/celo-client.js";
|
|
|
8
8
|
import { EnsClientFactory } from "./clients/ens-client.js";
|
|
9
9
|
import { resolveSdkConfig } from "./config/sdk-config.js";
|
|
10
10
|
import { AccountService } from "./services/account.service.js";
|
|
11
|
+
import { AgentKarmaService, } from "./services/agentkarma.service.js";
|
|
11
12
|
import { AaveService } from "./services/aave.service.js";
|
|
12
13
|
import { BlockchainService } from "./services/blockchain.service.js";
|
|
13
14
|
import { ContractService } from "./services/contract.service.js";
|
|
@@ -47,6 +48,9 @@ export function createCelinaClient(opts) {
|
|
|
47
48
|
nft: wrap("nft", new NftService(clientFactory)),
|
|
48
49
|
contract: wrap("contract", new ContractService(clientFactory)),
|
|
49
50
|
self: wrap("self", new SelfService(clientFactory, config)),
|
|
51
|
+
// Optional ecosystem adapter. Not analytics-wrapped: AgentKarma is an
|
|
52
|
+
// external reputation service, not a Celo on-chain read Celina tracks.
|
|
53
|
+
agentKarma: new AgentKarmaService(opts?.agentKarma),
|
|
50
54
|
};
|
|
51
55
|
}
|
|
52
56
|
export { serializePreparedFlow } from "./types/prepared.js";
|
|
@@ -62,4 +66,6 @@ export { resolveSelfSessionLinks, formatSelfSessionLinksDisplay, } from "./utils
|
|
|
62
66
|
export { clearSelfSessionsForTests } from "./services/self-session-store.js";
|
|
63
67
|
export { flushCelinaAnalytics } from "./analytics/amplitude.js";
|
|
64
68
|
export { runWithAnalyticsWallet } from "./analytics/wallet-context.js";
|
|
69
|
+
/** Optional read-only AgentKarma reputation adapter (agentkarma.io). */
|
|
70
|
+
export { AgentKarmaService } from "./services/agentkarma.service.js";
|
|
65
71
|
//# sourceMappingURL=index.js.map
|
package/build/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAkB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentKarma reputation adapter (read-only).
|
|
3
|
+
*
|
|
4
|
+
* AgentKarma (https://agentkarma.io) is the reputation layer for autonomous
|
|
5
|
+
* on-chain agents. This service is a thin, optional ecosystem adapter over
|
|
6
|
+
* `@agentkarma/sdk`: it reads Provider/Consumer karma and ERC-8004 Celo agent
|
|
7
|
+
* data, and evaluates a local trust policy. It is pinned to Celo — the chain
|
|
8
|
+
* Celina operates on.
|
|
9
|
+
*
|
|
10
|
+
* Boundaries (mirrors the AgentKarma SDK's own contract):
|
|
11
|
+
* - read-only: never signs, never executes a transaction, never holds custody.
|
|
12
|
+
* - non-routing: never proxies an agent call; it only reads reputation.
|
|
13
|
+
* - no private keys / no env requirement.
|
|
14
|
+
*
|
|
15
|
+
* It is intentionally NOT wrapped in Celina's Amplitude analytics proxy: this
|
|
16
|
+
* is an external reputation service, not a Celo on-chain read Celina tracks.
|
|
17
|
+
*/
|
|
18
|
+
import { type CeloAgentSnapshot, type ClientConfig, type KarmaFaceData, type KarmaSnapshot, type TrustDecision, type TrustPolicy } from "@agentkarma/sdk";
|
|
19
|
+
import { type AgentKarmaToolDescriptor } from "@agentkarma/sdk/tools";
|
|
20
|
+
/** Config for the AgentKarma adapter. Defaults to https://agentkarma.io. */
|
|
21
|
+
export type AgentKarmaServiceConfig = ClientConfig;
|
|
22
|
+
/** Which karma face(s) to read. A wallet always carries both. */
|
|
23
|
+
export type AgentKarmaFace = "provider" | "consumer" | "both";
|
|
24
|
+
/** Options for a karma read. */
|
|
25
|
+
export interface GetKarmaOptions {
|
|
26
|
+
/** Face to read. Defaults to `"both"`. */
|
|
27
|
+
face?: AgentKarmaFace;
|
|
28
|
+
}
|
|
29
|
+
/** Result of a local counterparty trust evaluation. */
|
|
30
|
+
export interface CounterpartyDecision {
|
|
31
|
+
/** Always `"celo"` — this adapter is Celo-pinned. */
|
|
32
|
+
chain: "celo";
|
|
33
|
+
/** The wallet that was evaluated. */
|
|
34
|
+
wallet: string;
|
|
35
|
+
/** Explainable allow/deny from the local policy (no network, pure function). */
|
|
36
|
+
decision: TrustDecision;
|
|
37
|
+
/** The karma snapshot the decision was computed from. */
|
|
38
|
+
snapshot: KarmaSnapshot;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Read-only AgentKarma reputation insight for Celo agents.
|
|
42
|
+
*
|
|
43
|
+
* Exposed from `createCelinaClient()` as `client.agentKarma`.
|
|
44
|
+
*/
|
|
45
|
+
export declare class AgentKarmaService {
|
|
46
|
+
private readonly client;
|
|
47
|
+
/** This adapter only ever talks to AgentKarma on the Celo chain. */
|
|
48
|
+
readonly chain: "celo";
|
|
49
|
+
constructor(config?: AgentKarmaServiceConfig);
|
|
50
|
+
/** AgentKarma API base URL the adapter reads from. */
|
|
51
|
+
get baseUrl(): string;
|
|
52
|
+
/** The canonical `@agentkarma/sdk/tools` descriptors this adapter draws from. */
|
|
53
|
+
get catalog(): readonly AgentKarmaToolDescriptor[];
|
|
54
|
+
/**
|
|
55
|
+
* Execute a tool from the canonical `@agentkarma/sdk/tools` catalog,
|
|
56
|
+
* Celo-pinned. This is how Celina consumes the SHARED tool catalog instead of
|
|
57
|
+
* re-implementing each AgentKarma call: the names, schemas, arg-coercion, and
|
|
58
|
+
* handler logic all live in `@agentkarma/sdk`. `chain` is forced to `'celo'`.
|
|
59
|
+
* @param name - A catalog tool name (e.g. `get_karma`, `get_celo_agent`).
|
|
60
|
+
* @param input - Tool arguments; `chain` is overridden to `'celo'`.
|
|
61
|
+
*/
|
|
62
|
+
runCatalogTool(name: string, input?: Record<string, unknown>): Promise<unknown>;
|
|
63
|
+
/**
|
|
64
|
+
* Provider + Consumer karma for a Celo agent wallet. Always queries Celo.
|
|
65
|
+
* Routed through the shared catalog's `get_karma` tool.
|
|
66
|
+
* @param wallet - Celo `0x` agent/wallet address to look up.
|
|
67
|
+
* @param options - Optional face selector (defaults to `"both"`).
|
|
68
|
+
*/
|
|
69
|
+
getKarma(wallet: string, options?: GetKarmaOptions): Promise<KarmaSnapshot>;
|
|
70
|
+
/**
|
|
71
|
+
* Resolve a Celo ERC-8004 agent (IdentityRegistry + ReputationRegistry)
|
|
72
|
+
* and its AgentKarma reputation by numeric agent ID. Routed through the
|
|
73
|
+
* shared catalog's `get_celo_agent` tool.
|
|
74
|
+
* @param agentId - Positive integer ERC-8004 agent ID on Celo.
|
|
75
|
+
*/
|
|
76
|
+
getCeloAgent(agentId: number): Promise<CeloAgentSnapshot>;
|
|
77
|
+
/**
|
|
78
|
+
* Fetch Celo karma and run a local, explainable trust policy against it.
|
|
79
|
+
* Pure evaluation — no routing, no signing, no side effects.
|
|
80
|
+
*
|
|
81
|
+
* Always fetches BOTH faces so whichever face `policy.face` scores on
|
|
82
|
+
* (`provider` by default) is guaranteed present — there is intentionally no
|
|
83
|
+
* separate fetch-face knob to drift out of sync with the scored face.
|
|
84
|
+
* @param wallet - Celo `0x` counterparty address.
|
|
85
|
+
* @param policy - Local trust policy (face, minScore, requireReceiptBacked, …).
|
|
86
|
+
*/
|
|
87
|
+
evaluateCounterparty(wallet: string, policy?: TrustPolicy): Promise<CounterpartyDecision>;
|
|
88
|
+
}
|
|
89
|
+
export type { CeloAgentSnapshot, KarmaFaceData, KarmaSnapshot, TrustDecision, TrustPolicy, };
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentKarma reputation adapter (read-only).
|
|
3
|
+
*
|
|
4
|
+
* AgentKarma (https://agentkarma.io) is the reputation layer for autonomous
|
|
5
|
+
* on-chain agents. This service is a thin, optional ecosystem adapter over
|
|
6
|
+
* `@agentkarma/sdk`: it reads Provider/Consumer karma and ERC-8004 Celo agent
|
|
7
|
+
* data, and evaluates a local trust policy. It is pinned to Celo — the chain
|
|
8
|
+
* Celina operates on.
|
|
9
|
+
*
|
|
10
|
+
* Boundaries (mirrors the AgentKarma SDK's own contract):
|
|
11
|
+
* - read-only: never signs, never executes a transaction, never holds custody.
|
|
12
|
+
* - non-routing: never proxies an agent call; it only reads reputation.
|
|
13
|
+
* - no private keys / no env requirement.
|
|
14
|
+
*
|
|
15
|
+
* It is intentionally NOT wrapped in Celina's Amplitude analytics proxy: this
|
|
16
|
+
* is an external reputation service, not a Celo on-chain read Celina tracks.
|
|
17
|
+
*/
|
|
18
|
+
import { createAgentKarmaClient, evaluateTrust, } from "@agentkarma/sdk";
|
|
19
|
+
import { agentKarmaTools, runAgentKarmaTool, } from "@agentkarma/sdk/tools";
|
|
20
|
+
const CELINA_USER_AGENT = "@andrewkimjoseph/celina-sdk (+@agentkarma/sdk adapter)";
|
|
21
|
+
/** Celo (EVM) address shape. AgentKarma keys Celo agents by 0x address. */
|
|
22
|
+
const CELO_ADDRESS_RE = /^0x[a-fA-F0-9]{40}$/;
|
|
23
|
+
function assertCeloAddress(wallet) {
|
|
24
|
+
if (typeof wallet !== "string" || !CELO_ADDRESS_RE.test(wallet)) {
|
|
25
|
+
throw new Error(`AgentKarma: wallet must be a Celo 0x address (40 hex chars), got "${wallet}"`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Read-only AgentKarma reputation insight for Celo agents.
|
|
30
|
+
*
|
|
31
|
+
* Exposed from `createCelinaClient()` as `client.agentKarma`.
|
|
32
|
+
*/
|
|
33
|
+
export class AgentKarmaService {
|
|
34
|
+
client;
|
|
35
|
+
/** This adapter only ever talks to AgentKarma on the Celo chain. */
|
|
36
|
+
chain = "celo";
|
|
37
|
+
constructor(config = {}) {
|
|
38
|
+
this.client = createAgentKarmaClient({
|
|
39
|
+
...config,
|
|
40
|
+
userAgent: config.userAgent ?? CELINA_USER_AGENT,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/** AgentKarma API base URL the adapter reads from. */
|
|
44
|
+
get baseUrl() {
|
|
45
|
+
return this.client.baseUrl;
|
|
46
|
+
}
|
|
47
|
+
/** The canonical `@agentkarma/sdk/tools` descriptors this adapter draws from. */
|
|
48
|
+
get catalog() {
|
|
49
|
+
return agentKarmaTools;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Execute a tool from the canonical `@agentkarma/sdk/tools` catalog,
|
|
53
|
+
* Celo-pinned. This is how Celina consumes the SHARED tool catalog instead of
|
|
54
|
+
* re-implementing each AgentKarma call: the names, schemas, arg-coercion, and
|
|
55
|
+
* handler logic all live in `@agentkarma/sdk`. `chain` is forced to `'celo'`.
|
|
56
|
+
* @param name - A catalog tool name (e.g. `get_karma`, `get_celo_agent`).
|
|
57
|
+
* @param input - Tool arguments; `chain` is overridden to `'celo'`.
|
|
58
|
+
*/
|
|
59
|
+
runCatalogTool(name, input = {}) {
|
|
60
|
+
return runAgentKarmaTool(this.client, name, { ...input, chain: "celo" });
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Provider + Consumer karma for a Celo agent wallet. Always queries Celo.
|
|
64
|
+
* Routed through the shared catalog's `get_karma` tool.
|
|
65
|
+
* @param wallet - Celo `0x` agent/wallet address to look up.
|
|
66
|
+
* @param options - Optional face selector (defaults to `"both"`).
|
|
67
|
+
*/
|
|
68
|
+
async getKarma(wallet, options = {}) {
|
|
69
|
+
assertCeloAddress(wallet);
|
|
70
|
+
return this.runCatalogTool("get_karma", {
|
|
71
|
+
wallet,
|
|
72
|
+
face: options.face ?? "both",
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Resolve a Celo ERC-8004 agent (IdentityRegistry + ReputationRegistry)
|
|
77
|
+
* and its AgentKarma reputation by numeric agent ID. Routed through the
|
|
78
|
+
* shared catalog's `get_celo_agent` tool.
|
|
79
|
+
* @param agentId - Positive integer ERC-8004 agent ID on Celo.
|
|
80
|
+
*/
|
|
81
|
+
async getCeloAgent(agentId) {
|
|
82
|
+
return this.runCatalogTool("get_celo_agent", {
|
|
83
|
+
agent_id: agentId,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Fetch Celo karma and run a local, explainable trust policy against it.
|
|
88
|
+
* Pure evaluation — no routing, no signing, no side effects.
|
|
89
|
+
*
|
|
90
|
+
* Always fetches BOTH faces so whichever face `policy.face` scores on
|
|
91
|
+
* (`provider` by default) is guaranteed present — there is intentionally no
|
|
92
|
+
* separate fetch-face knob to drift out of sync with the scored face.
|
|
93
|
+
* @param wallet - Celo `0x` counterparty address.
|
|
94
|
+
* @param policy - Local trust policy (face, minScore, requireReceiptBacked, …).
|
|
95
|
+
*/
|
|
96
|
+
async evaluateCounterparty(wallet, policy = {}) {
|
|
97
|
+
const snapshot = await this.getKarma(wallet, { face: "both" });
|
|
98
|
+
const decision = evaluateTrust(snapshot, policy);
|
|
99
|
+
return { chain: "celo", wallet, decision, snapshot };
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=agentkarma.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentkarma.service.js","sourceRoot":"","sources":["../../../src/services/agentkarma.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,sBAAsB,EACtB,aAAa,GAQd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,iBAAiB,GAElB,MAAM,uBAAuB,CAAC;AA0B/B,MAAM,iBAAiB,GAAG,wDAAwD,CAAC;AAEnF,2EAA2E;AAC3E,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,SAAS,iBAAiB,CAAC,MAAc;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,qEAAqE,MAAM,GAAG,CAC/E,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IACX,MAAM,CAAmB;IAE1C,oEAAoE;IAC3D,KAAK,GAAG,MAAe,CAAC;IAEjC,YAAY,SAAkC,EAAE;QAC9C,IAAI,CAAC,MAAM,GAAG,sBAAsB,CAAC;YACnC,GAAG,MAAM;YACT,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,iBAAiB;SACjD,CAAC,CAAC;IACL,CAAC;IAED,sDAAsD;IACtD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,iFAAiF;IACjF,IAAI,OAAO;QACT,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,cAAc,CACZ,IAAY,EACZ,QAAiC,EAAE;QAEnC,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CACZ,MAAc,EACd,UAA2B,EAAE;QAE7B,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACtC,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM;SAC7B,CAA2B,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE;YAC3C,QAAQ,EAAE,OAAO;SAClB,CAA+B,CAAC;IACnC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,oBAAoB,CACxB,MAAc,EACd,SAAsB,EAAE;QAExB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACvD,CAAC;CACF"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentKarma reputation tools (read-only, optional ecosystem adapter).
|
|
3
|
+
*
|
|
4
|
+
* These expose AgentKarma (https://agentkarma.io) reputation context for Celo
|
|
5
|
+
* agents through the Celina tool catalog. They are pure reads: no signing, no
|
|
6
|
+
* transaction execution, no custody, no routing. `openWorldHint` is set because
|
|
7
|
+
* they call an external service (agentkarma.io), unlike Celina's on-chain reads.
|
|
8
|
+
*/
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
import { optionalBooleanSchema, optionalEnumSchema, positiveIntSchema, requiredWalletAddressSchema, } from "../schemas/common.js";
|
|
11
|
+
/** Read-only external service: idempotent, open-world (agentkarma.io). */
|
|
12
|
+
const readOnlyOpenWorld = {
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
idempotentHint: true,
|
|
15
|
+
openWorldHint: true,
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* The counterparty is ALWAYS an explicit subject (required `address`). Unlike
|
|
19
|
+
* Celina's on-chain reads, these tools call an external host (agentkarma.io), so
|
|
20
|
+
* they must NOT silently fall back to the operator's signer wallet — that would
|
|
21
|
+
* disclose the operator's identity to a third party. No `resolveWallet`, no
|
|
22
|
+
* signer default: the subject must be named.
|
|
23
|
+
*/
|
|
24
|
+
const subjectAddressSchema = requiredWalletAddressSchema.describe("Celo 0x address of the agent/counterparty to look up.");
|
|
25
|
+
/** Optional 0–100 score threshold; tolerates numeric strings and blanks. */
|
|
26
|
+
const optionalScoreSchema = z.preprocess((value) => {
|
|
27
|
+
if (value === undefined || value === null || value === "")
|
|
28
|
+
return undefined;
|
|
29
|
+
if (typeof value === "string") {
|
|
30
|
+
const trimmed = value.trim();
|
|
31
|
+
if (trimmed === "")
|
|
32
|
+
return undefined;
|
|
33
|
+
const parsed = Number(trimmed);
|
|
34
|
+
return Number.isNaN(parsed) ? value : parsed;
|
|
35
|
+
}
|
|
36
|
+
return value;
|
|
37
|
+
}, z.number().int().min(0).max(100).optional());
|
|
38
|
+
export const agentKarmaToolDefinitions = [
|
|
39
|
+
{
|
|
40
|
+
name: "get_agentkarma_reputation",
|
|
41
|
+
description: "Read AgentKarma Provider + Consumer reputation for a Celo agent wallet (read-only, agentkarma.io). Optional trust context — never routes, signs, or holds custody.",
|
|
42
|
+
inputSchema: z.object({
|
|
43
|
+
address: subjectAddressSchema,
|
|
44
|
+
face: optionalEnumSchema(["provider", "consumer", "both"]).describe("Karma face to read: provider, consumer, or both (default)."),
|
|
45
|
+
}),
|
|
46
|
+
families: ["read"],
|
|
47
|
+
surfaces: ["mcp"],
|
|
48
|
+
mcp: {
|
|
49
|
+
title: "Get AgentKarma Reputation",
|
|
50
|
+
annotations: readOnlyOpenWorld,
|
|
51
|
+
},
|
|
52
|
+
handler: async (runtime, input) => runtime.celina.agentKarma.getKarma(input.address, {
|
|
53
|
+
face: input.face ?? "both",
|
|
54
|
+
}),
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: "get_agentkarma_celo_agent",
|
|
58
|
+
description: "Resolve a Celo ERC-8004 agent (identity + reputation) by numeric agent ID via AgentKarma (read-only).",
|
|
59
|
+
inputSchema: z.object({
|
|
60
|
+
agent_id: positiveIntSchema.describe("ERC-8004 agent ID on Celo."),
|
|
61
|
+
}),
|
|
62
|
+
families: ["read"],
|
|
63
|
+
surfaces: ["mcp"],
|
|
64
|
+
mcp: {
|
|
65
|
+
title: "Get AgentKarma Celo Agent",
|
|
66
|
+
annotations: readOnlyOpenWorld,
|
|
67
|
+
},
|
|
68
|
+
handler: async (runtime, input) => runtime.celina.agentKarma.getCeloAgent(input.agent_id),
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: "check_agentkarma_counterparty",
|
|
72
|
+
description: "Evaluate a Celo counterparty against a local AgentKarma trust policy (min score, receipt-backed). Returns an explainable allow/deny decision plus the snapshot it read. Read-only — never routes, signs, or holds custody.",
|
|
73
|
+
inputSchema: z.object({
|
|
74
|
+
address: subjectAddressSchema,
|
|
75
|
+
face: optionalEnumSchema(["provider", "consumer"]).describe("Face to score the decision on (default provider)."),
|
|
76
|
+
min_score: optionalScoreSchema.describe("Reject when the face score is below this (0–100)."),
|
|
77
|
+
require_receipt_backed: optionalBooleanSchema.describe("Require at least one Tier-1 receipt-backed signal on the face."),
|
|
78
|
+
}),
|
|
79
|
+
families: ["read"],
|
|
80
|
+
surfaces: ["mcp"],
|
|
81
|
+
mcp: {
|
|
82
|
+
title: "Check AgentKarma Counterparty",
|
|
83
|
+
annotations: readOnlyOpenWorld,
|
|
84
|
+
},
|
|
85
|
+
handler: async (runtime, input) => runtime.celina.agentKarma.evaluateCounterparty(input.address, {
|
|
86
|
+
face: input.face,
|
|
87
|
+
minScore: input.min_score,
|
|
88
|
+
requireReceiptBacked: input.require_receipt_backed,
|
|
89
|
+
}),
|
|
90
|
+
},
|
|
91
|
+
];
|
|
92
|
+
//# sourceMappingURL=agentkarma.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentkarma.js","sourceRoot":"","sources":["../../../../src/tools/domains/agentkarma.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { aaveToolDefinitions } from "./aave.js";
|
|
2
|
+
import { agentKarmaToolDefinitions } from "./agentkarma.js";
|
|
2
3
|
import { blockchainToolDefinitions } from "./blockchain.js";
|
|
3
4
|
import { browserToolDefinitions } from "./browser.js";
|
|
4
5
|
import { contractToolDefinitions } from "./contract.js";
|
|
@@ -26,6 +27,7 @@ export const allDomainToolDefinitions = [
|
|
|
26
27
|
...nftToolDefinitions,
|
|
27
28
|
...contractToolDefinitions,
|
|
28
29
|
...selfToolDefinitions,
|
|
30
|
+
...agentKarmaToolDefinitions,
|
|
29
31
|
...browserToolDefinitions,
|
|
30
32
|
];
|
|
31
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tools/domains/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,GAAG,yBAAyB;IAC5B,GAAG,oBAAoB;IACvB,GAAG,0BAA0B;IAC7B,GAAG,sBAAsB;IACzB,GAAG,sBAAsB;IACzB,GAAG,mBAAmB;IACtB,GAAG,kBAAkB;IACrB,GAAG,yBAAyB;IAC5B,GAAG,yBAAyB;IAC5B,GAAG,sBAAsB;IACzB,GAAG,kBAAkB;IACrB,GAAG,uBAAuB;IAC1B,GAAG,mBAAmB;IACtB,GAAG,sBAAsB;CAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tools/domains/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,GAAG,yBAAyB;IAC5B,GAAG,oBAAoB;IACvB,GAAG,0BAA0B;IAC7B,GAAG,sBAAsB;IACzB,GAAG,sBAAsB;IACzB,GAAG,mBAAmB;IACtB,GAAG,kBAAkB;IACrB,GAAG,yBAAyB;IAC5B,GAAG,yBAAyB;IAC5B,GAAG,sBAAsB;IACzB,GAAG,kBAAkB;IACrB,GAAG,uBAAuB;IAC1B,GAAG,mBAAmB;IACtB,GAAG,yBAAyB;IAC5B,GAAG,sBAAsB;CAC1B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FilterToolsOptions, ToolDefinition } from "./types.js";
|
|
2
|
-
export type WebsiteToolCategory = "Blockchain" | "Account" | "Token" | "Transaction" | "Mento FX" | "Uniswap" | "Wallet" | "GoodDollar" | "Aave" | "Self" | "Governance" | "Staking" | "NFT" | "Contract";
|
|
2
|
+
export type WebsiteToolCategory = "Blockchain" | "Account" | "Token" | "Transaction" | "Mento FX" | "Uniswap" | "Wallet" | "GoodDollar" | "Aave" | "Self" | "Governance" | "Staking" | "NFT" | "Contract" | "AgentKarma";
|
|
3
3
|
export type WebsiteToolKind = "read" | "write";
|
|
4
4
|
export type WebsiteToolAvailability = "hosted" | "stdio" | "both";
|
|
5
5
|
export interface WebsiteToolBaseline {
|
|
@@ -80,6 +80,9 @@ export const TOOL_CATEGORY_BY_NAME = {
|
|
|
80
80
|
deregister_self_agent: "Self",
|
|
81
81
|
sign_self_request: "Self",
|
|
82
82
|
authenticated_self_fetch: "Self",
|
|
83
|
+
get_agentkarma_reputation: "AgentKarma",
|
|
84
|
+
get_agentkarma_celo_agent: "AgentKarma",
|
|
85
|
+
check_agentkarma_counterparty: "AgentKarma",
|
|
83
86
|
};
|
|
84
87
|
function toolNameToSlug(name) {
|
|
85
88
|
return name.replace(/_/g, "-");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"website-sync.js","sourceRoot":"","sources":["../../../src/tools/website-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"website-sync.js","sourceRoot":"","sources":["../../../src/tools/website-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentKarma reputation tools (read-only, optional ecosystem adapter).
|
|
3
|
+
*
|
|
4
|
+
* These expose AgentKarma (https://agentkarma.io) reputation context for Celo
|
|
5
|
+
* agents through the Celina tool catalog. They are pure reads: no signing, no
|
|
6
|
+
* transaction execution, no custody, no routing. `openWorldHint` is set because
|
|
7
|
+
* they call an external service (agentkarma.io), unlike Celina's on-chain reads.
|
|
8
|
+
*/
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
import { optionalBooleanSchema, optionalEnumSchema, positiveIntSchema, requiredWalletAddressSchema, } from "../schemas/common.js";
|
|
11
|
+
/** Read-only external service: idempotent, open-world (agentkarma.io). */
|
|
12
|
+
const readOnlyOpenWorld = {
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
idempotentHint: true,
|
|
15
|
+
openWorldHint: true,
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* The counterparty is ALWAYS an explicit subject (required `address`). Unlike
|
|
19
|
+
* Celina's on-chain reads, these tools call an external host (agentkarma.io), so
|
|
20
|
+
* they must NOT silently fall back to the operator's signer wallet — that would
|
|
21
|
+
* disclose the operator's identity to a third party. No `resolveWallet`, no
|
|
22
|
+
* signer default: the subject must be named.
|
|
23
|
+
*/
|
|
24
|
+
const subjectAddressSchema = requiredWalletAddressSchema.describe("Celo 0x address of the agent/counterparty to look up.");
|
|
25
|
+
/** Optional 0–100 score threshold; tolerates numeric strings and blanks. */
|
|
26
|
+
const optionalScoreSchema = z.preprocess((value) => {
|
|
27
|
+
if (value === undefined || value === null || value === "")
|
|
28
|
+
return undefined;
|
|
29
|
+
if (typeof value === "string") {
|
|
30
|
+
const trimmed = value.trim();
|
|
31
|
+
if (trimmed === "")
|
|
32
|
+
return undefined;
|
|
33
|
+
const parsed = Number(trimmed);
|
|
34
|
+
return Number.isNaN(parsed) ? value : parsed;
|
|
35
|
+
}
|
|
36
|
+
return value;
|
|
37
|
+
}, z.number().int().min(0).max(100).optional());
|
|
38
|
+
export const agentKarmaToolDefinitions = [
|
|
39
|
+
{
|
|
40
|
+
name: "get_agentkarma_reputation",
|
|
41
|
+
description: "Read AgentKarma Provider + Consumer reputation for a Celo agent wallet (read-only, agentkarma.io). Optional trust context — never routes, signs, or holds custody.",
|
|
42
|
+
inputSchema: z.object({
|
|
43
|
+
address: subjectAddressSchema,
|
|
44
|
+
face: optionalEnumSchema(["provider", "consumer", "both"]).describe("Karma face to read: provider, consumer, or both (default)."),
|
|
45
|
+
}),
|
|
46
|
+
families: ["read"],
|
|
47
|
+
surfaces: ["mcp"],
|
|
48
|
+
mcp: {
|
|
49
|
+
title: "Get AgentKarma Reputation",
|
|
50
|
+
annotations: readOnlyOpenWorld,
|
|
51
|
+
},
|
|
52
|
+
handler: async (runtime, input) => runtime.celina.agentKarma.getKarma(input.address, {
|
|
53
|
+
face: input.face ?? "both",
|
|
54
|
+
}),
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: "get_agentkarma_celo_agent",
|
|
58
|
+
description: "Resolve a Celo ERC-8004 agent (identity + reputation) by numeric agent ID via AgentKarma (read-only).",
|
|
59
|
+
inputSchema: z.object({
|
|
60
|
+
agent_id: positiveIntSchema.describe("ERC-8004 agent ID on Celo."),
|
|
61
|
+
}),
|
|
62
|
+
families: ["read"],
|
|
63
|
+
surfaces: ["mcp"],
|
|
64
|
+
mcp: {
|
|
65
|
+
title: "Get AgentKarma Celo Agent",
|
|
66
|
+
annotations: readOnlyOpenWorld,
|
|
67
|
+
},
|
|
68
|
+
handler: async (runtime, input) => runtime.celina.agentKarma.getCeloAgent(input.agent_id),
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: "check_agentkarma_counterparty",
|
|
72
|
+
description: "Evaluate a Celo counterparty against a local AgentKarma trust policy (min score, receipt-backed). Returns an explainable allow/deny decision plus the snapshot it read. Read-only — never routes, signs, or holds custody.",
|
|
73
|
+
inputSchema: z.object({
|
|
74
|
+
address: subjectAddressSchema,
|
|
75
|
+
face: optionalEnumSchema(["provider", "consumer"]).describe("Face to score the decision on (default provider)."),
|
|
76
|
+
min_score: optionalScoreSchema.describe("Reject when the face score is below this (0–100)."),
|
|
77
|
+
require_receipt_backed: optionalBooleanSchema.describe("Require at least one Tier-1 receipt-backed signal on the face."),
|
|
78
|
+
}),
|
|
79
|
+
families: ["read"],
|
|
80
|
+
surfaces: ["mcp"],
|
|
81
|
+
mcp: {
|
|
82
|
+
title: "Check AgentKarma Counterparty",
|
|
83
|
+
annotations: readOnlyOpenWorld,
|
|
84
|
+
},
|
|
85
|
+
handler: async (runtime, input) => runtime.celina.agentKarma.evaluateCounterparty(input.address, {
|
|
86
|
+
face: input.face,
|
|
87
|
+
minScore: input.min_score,
|
|
88
|
+
requireReceiptBacked: input.require_receipt_backed,
|
|
89
|
+
}),
|
|
90
|
+
},
|
|
91
|
+
];
|
|
92
|
+
//# sourceMappingURL=agentkarma.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentkarma.js","sourceRoot":"","sources":["../../../src/tools/domains/agentkarma.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { aaveToolDefinitions } from "./aave.js";
|
|
2
|
+
import { agentKarmaToolDefinitions } from "./agentkarma.js";
|
|
2
3
|
import { blockchainToolDefinitions } from "./blockchain.js";
|
|
3
4
|
import { browserToolDefinitions } from "./browser.js";
|
|
4
5
|
import { contractToolDefinitions } from "./contract.js";
|
|
@@ -26,6 +27,7 @@ export const allDomainToolDefinitions = [
|
|
|
26
27
|
...nftToolDefinitions,
|
|
27
28
|
...contractToolDefinitions,
|
|
28
29
|
...selfToolDefinitions,
|
|
30
|
+
...agentKarmaToolDefinitions,
|
|
29
31
|
...browserToolDefinitions,
|
|
30
32
|
];
|
|
31
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/domains/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,GAAG,yBAAyB;IAC5B,GAAG,oBAAoB;IACvB,GAAG,0BAA0B;IAC7B,GAAG,sBAAsB;IACzB,GAAG,sBAAsB;IACzB,GAAG,mBAAmB;IACtB,GAAG,kBAAkB;IACrB,GAAG,yBAAyB;IAC5B,GAAG,yBAAyB;IAC5B,GAAG,sBAAsB;IACzB,GAAG,kBAAkB;IACrB,GAAG,uBAAuB;IAC1B,GAAG,mBAAmB;IACtB,GAAG,sBAAsB;CAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/domains/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,GAAG,yBAAyB;IAC5B,GAAG,oBAAoB;IACvB,GAAG,0BAA0B;IAC7B,GAAG,sBAAsB;IACzB,GAAG,sBAAsB;IACzB,GAAG,mBAAmB;IACtB,GAAG,kBAAkB;IACrB,GAAG,yBAAyB;IAC5B,GAAG,yBAAyB;IAC5B,GAAG,sBAAsB;IACzB,GAAG,kBAAkB;IACrB,GAAG,uBAAuB;IAC1B,GAAG,mBAAmB;IACtB,GAAG,yBAAyB;IAC5B,GAAG,sBAAsB;CAC1B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FilterToolsOptions, ToolDefinition } from "./types.js";
|
|
2
|
-
export type WebsiteToolCategory = "Blockchain" | "Account" | "Token" | "Transaction" | "Mento FX" | "Uniswap" | "Wallet" | "GoodDollar" | "Aave" | "Self" | "Governance" | "Staking" | "NFT" | "Contract";
|
|
2
|
+
export type WebsiteToolCategory = "Blockchain" | "Account" | "Token" | "Transaction" | "Mento FX" | "Uniswap" | "Wallet" | "GoodDollar" | "Aave" | "Self" | "Governance" | "Staking" | "NFT" | "Contract" | "AgentKarma";
|
|
3
3
|
export type WebsiteToolKind = "read" | "write";
|
|
4
4
|
export type WebsiteToolAvailability = "hosted" | "stdio" | "both";
|
|
5
5
|
export interface WebsiteToolBaseline {
|
|
@@ -80,6 +80,9 @@ export const TOOL_CATEGORY_BY_NAME = {
|
|
|
80
80
|
deregister_self_agent: "Self",
|
|
81
81
|
sign_self_request: "Self",
|
|
82
82
|
authenticated_self_fetch: "Self",
|
|
83
|
+
get_agentkarma_reputation: "AgentKarma",
|
|
84
|
+
get_agentkarma_celo_agent: "AgentKarma",
|
|
85
|
+
check_agentkarma_counterparty: "AgentKarma",
|
|
83
86
|
};
|
|
84
87
|
function toolNameToSlug(name) {
|
|
85
88
|
return name.replace(/_/g, "-");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"website-sync.js","sourceRoot":"","sources":["../../src/tools/website-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"website-sync.js","sourceRoot":"","sources":["../../src/tools/website-sync.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@andrewkimjoseph/celina-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Celina SDK — Celo mainnet reads and unsigned transaction preparation for frontend apps.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -90,15 +90,16 @@
|
|
|
90
90
|
},
|
|
91
91
|
"homepage": "https://andrewkimjoseph.gitbook.io/celina-sdk",
|
|
92
92
|
"dependencies": {
|
|
93
|
-
"
|
|
93
|
+
"@agentkarma/sdk": "^0.2.0",
|
|
94
94
|
"@amplitude/analytics-node": "^1.5.21",
|
|
95
|
-
"@noble/ed25519": "^3.1.0",
|
|
96
95
|
"@mento-protocol/mento-sdk": "^3.2.8",
|
|
96
|
+
"@noble/ed25519": "^3.1.0",
|
|
97
97
|
"@uniswap/sdk-core": "^7.16.1",
|
|
98
98
|
"@uniswap/universal-router-sdk": "^5.5.1",
|
|
99
99
|
"@uniswap/v4-sdk": "^2.2.1",
|
|
100
100
|
"ethers": "^6.15.0",
|
|
101
|
-
"viem": "^2.39.3"
|
|
101
|
+
"viem": "^2.39.3",
|
|
102
|
+
"zod": "^3.24.3"
|
|
102
103
|
},
|
|
103
104
|
"devDependencies": {
|
|
104
105
|
"@types/node": "^22.0.0",
|