@andrewkimjoseph/celina-sdk 0.9.9 → 0.11.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/README.md +3 -2
- package/build/a2a/skills.js +5 -0
- package/build/a2a/skills.js.map +1 -1
- package/build/analytics/config.js +0 -3
- package/build/analytics/config.js.map +1 -1
- package/build/config/sdk-config.d.ts +2 -2
- package/build/config/sdk-config.js +1 -5
- package/build/config/sdk-config.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/analytics/config.js +0 -3
- package/build/src/analytics/config.js.map +1 -1
- package/build/src/config/sdk-config.d.ts +2 -2
- package/build/src/config/sdk-config.js +1 -5
- package/build/src/config/sdk-config.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/tests/helpers/env.d.ts +1 -0
- package/build/tests/helpers/env.js +1 -0
- package/build/tests/helpers/env.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/README.md
CHANGED
|
@@ -16,7 +16,7 @@ Celina is layered from chain logic through agent tooling:
|
|
|
16
16
|
|-------|---------|------|
|
|
17
17
|
| **SDK** | `@andrewkimjoseph/celina-sdk` | Reads, gas estimates, and `prepare*` flows |
|
|
18
18
|
| **MCP** | `@andrewkimjoseph/celina-mcp` | MCP tools for Cursor / Claude / LM Studio — stdio writes or hosted reads |
|
|
19
|
-
| **MCP host** | `celina-mcp-host` | Vercel Streamable HTTP — hosted reads (
|
|
19
|
+
| **MCP host** | `celina-mcp-host` | Vercel Streamable HTTP — hosted reads (34 tools); no server-key writes |
|
|
20
20
|
|
|
21
21
|
This repo is the **SDK**. Downstream packages depend on published npm semver (no local `file:` links in production).
|
|
22
22
|
|
|
@@ -48,7 +48,8 @@ Before broadcasting prepared steps, call `simulatePreparedStep` from `@andrewkim
|
|
|
48
48
|
- [wagmi integration](https://andrewkimjoseph.gitbook.io/celina-sdk/guides/wagmi-integration)
|
|
49
49
|
- [GoodDollar](docs/guides/gooddollar.md) — UBI whitelist/claim and G$ ↔ USDm reserve swaps
|
|
50
50
|
- [Self Agent ID](docs/guides/self-agent-id.md) — verify, register, refresh human-backed agents
|
|
51
|
-
- [
|
|
51
|
+
- [AgentKarma reputation](docs/guides/agentkarma.md) — karma reads and counterparty trust policy
|
|
52
|
+
- [Telemetry](docs/guides/telemetry.md) — optional Amplitude read metrics (`device_id` per project, `user_id` per wallet; opt out with `analyticsEnabled: false`)
|
|
52
53
|
- [API reference](https://andrewkimjoseph.gitbook.io/celina-sdk/api-reference)
|
|
53
54
|
|
|
54
55
|
Docs source lives in [`docs/`](docs/) in this repository.
|
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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/analytics/config.ts"],"names":[],"mappings":"AAEA,+FAA+F;AAC/F,MAAM,CAAC,MAAM,yBAAyB,GAAG,kCAAkC,CAAC;AAE5E,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAEvC,mEAAmE;AACnE,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/analytics/config.ts"],"names":[],"mappings":"AAEA,+FAA+F;AAC/F,MAAM,CAAC,MAAM,yBAAyB,GAAG,kCAAkC,CAAC;AAE5E,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAEvC,mEAAmE;AACnE,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,CACL,MAAM,CAAC,eAAe;QACtB,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAC7B,yBAAyB,CAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,OAAO,MAAM,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;AACvD,CAAC"}
|
|
@@ -8,14 +8,14 @@ export interface SdkConfig {
|
|
|
8
8
|
selfAgentPrivateKey?: `0x${string}`;
|
|
9
9
|
/** Self Agent ID REST API base (default https://app.ai.self.xyz). */
|
|
10
10
|
selfApiBase?: string;
|
|
11
|
-
/** Amplitude read telemetry (default on; opt out with `false`
|
|
11
|
+
/** Amplitude read telemetry (default on; opt out with `analyticsEnabled: false`). */
|
|
12
12
|
analyticsEnabled?: boolean;
|
|
13
13
|
/** Override bundled Amplitude project API key. */
|
|
14
14
|
amplitudeApiKey?: string;
|
|
15
15
|
/**
|
|
16
16
|
* Amplitude `device_id`. When omitted, auto-detected from the consuming package
|
|
17
17
|
* `package.json` name (sanitized, e.g. `celeste_ai`, `andrewkimjoseph_celina_mcp`),
|
|
18
|
-
* then `
|
|
18
|
+
* then `celina-sdk`.
|
|
19
19
|
*/
|
|
20
20
|
analyticsDeviceId?: string;
|
|
21
21
|
/**
|
|
@@ -20,11 +20,7 @@ export function resolveSdkConfig(opts) {
|
|
|
20
20
|
: undefined),
|
|
21
21
|
analyticsEnabled: opts?.analyticsEnabled,
|
|
22
22
|
amplitudeApiKey: opts?.amplitudeApiKey,
|
|
23
|
-
analyticsDeviceId: opts?.analyticsDeviceId ??
|
|
24
|
-
(typeof process !== "undefined"
|
|
25
|
-
? process.env.CELINA_ANALYTICS_DEVICE_ID
|
|
26
|
-
: undefined) ??
|
|
27
|
-
detectConsumerPackageName(),
|
|
23
|
+
analyticsDeviceId: opts?.analyticsDeviceId ?? detectConsumerPackageName(),
|
|
28
24
|
analyticsWalletAddress: opts?.analyticsWalletAddress,
|
|
29
25
|
};
|
|
30
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-config.js","sourceRoot":"","sources":["../../src/config/sdk-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AA6B7E,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACxD,MAAM,mBAAmB,GACvB,IAAI,EAAE,mBAAmB;QACzB,CAAC,OAAO,OAAO,KAAK,WAAW;YAC7B,CAAC,CAAE,OAAO,CAAC,GAAG,CAAC,sBAAoD;YACnE,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,OAAO;QACL,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,eAAe;QACvC,SAAS,EAAE,IAAI,EAAE,SAAS;QAC1B,mBAAmB;QACnB,WAAW,EACT,IAAI,EAAE,WAAW;YACjB,CAAC,OAAO,OAAO,KAAK,WAAW;gBAC7B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB;gBACjC,CAAC,CAAC,SAAS,CAAC;QAChB,gBAAgB,EAAE,IAAI,EAAE,gBAAgB;QACxC,eAAe,EAAE,IAAI,EAAE,eAAe;QACtC,iBAAiB,EACf,IAAI,EAAE,iBAAiB
|
|
1
|
+
{"version":3,"file":"sdk-config.js","sourceRoot":"","sources":["../../src/config/sdk-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AA6B7E,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACxD,MAAM,mBAAmB,GACvB,IAAI,EAAE,mBAAmB;QACzB,CAAC,OAAO,OAAO,KAAK,WAAW;YAC7B,CAAC,CAAE,OAAO,CAAC,GAAG,CAAC,sBAAoD;YACnE,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,OAAO;QACL,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,eAAe;QACvC,SAAS,EAAE,IAAI,EAAE,SAAS;QAC1B,mBAAmB;QACnB,WAAW,EACT,IAAI,EAAE,WAAW;YACjB,CAAC,OAAO,OAAO,KAAK,WAAW;gBAC7B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB;gBACjC,CAAC,CAAC,SAAS,CAAC;QAChB,gBAAgB,EAAE,IAAI,EAAE,gBAAgB;QACxC,eAAe,EAAE,IAAI,EAAE,eAAe;QACtC,iBAAiB,EACf,IAAI,EAAE,iBAAiB,IAAI,yBAAyB,EAAE;QACxD,sBAAsB,EAAE,IAAI,EAAE,sBAAsB;KACrD,CAAC;AACJ,CAAC"}
|
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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/analytics/config.ts"],"names":[],"mappings":"AAEA,+FAA+F;AAC/F,MAAM,CAAC,MAAM,yBAAyB,GAAG,kCAAkC,CAAC;AAE5E,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAEvC,mEAAmE;AACnE,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/analytics/config.ts"],"names":[],"mappings":"AAEA,+FAA+F;AAC/F,MAAM,CAAC,MAAM,yBAAyB,GAAG,kCAAkC,CAAC;AAE5E,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAEvC,mEAAmE;AACnE,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,CACL,MAAM,CAAC,eAAe;QACtB,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAC7B,yBAAyB,CAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,OAAO,MAAM,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;AACvD,CAAC"}
|
|
@@ -8,14 +8,14 @@ export interface SdkConfig {
|
|
|
8
8
|
selfAgentPrivateKey?: `0x${string}`;
|
|
9
9
|
/** Self Agent ID REST API base (default https://app.ai.self.xyz). */
|
|
10
10
|
selfApiBase?: string;
|
|
11
|
-
/** Amplitude read telemetry (default on; opt out with `false`
|
|
11
|
+
/** Amplitude read telemetry (default on; opt out with `analyticsEnabled: false`). */
|
|
12
12
|
analyticsEnabled?: boolean;
|
|
13
13
|
/** Override bundled Amplitude project API key. */
|
|
14
14
|
amplitudeApiKey?: string;
|
|
15
15
|
/**
|
|
16
16
|
* Amplitude `device_id`. When omitted, auto-detected from the consuming package
|
|
17
17
|
* `package.json` name (sanitized, e.g. `celeste_ai`, `andrewkimjoseph_celina_mcp`),
|
|
18
|
-
* then `
|
|
18
|
+
* then `celina-sdk`.
|
|
19
19
|
*/
|
|
20
20
|
analyticsDeviceId?: string;
|
|
21
21
|
/**
|
|
@@ -20,11 +20,7 @@ export function resolveSdkConfig(opts) {
|
|
|
20
20
|
: undefined),
|
|
21
21
|
analyticsEnabled: opts?.analyticsEnabled,
|
|
22
22
|
amplitudeApiKey: opts?.amplitudeApiKey,
|
|
23
|
-
analyticsDeviceId: opts?.analyticsDeviceId ??
|
|
24
|
-
(typeof process !== "undefined"
|
|
25
|
-
? process.env.CELINA_ANALYTICS_DEVICE_ID
|
|
26
|
-
: undefined) ??
|
|
27
|
-
detectConsumerPackageName(),
|
|
23
|
+
analyticsDeviceId: opts?.analyticsDeviceId ?? detectConsumerPackageName(),
|
|
28
24
|
analyticsWalletAddress: opts?.analyticsWalletAddress,
|
|
29
25
|
};
|
|
30
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-config.js","sourceRoot":"","sources":["../../../src/config/sdk-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AA6B7E,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACxD,MAAM,mBAAmB,GACvB,IAAI,EAAE,mBAAmB;QACzB,CAAC,OAAO,OAAO,KAAK,WAAW;YAC7B,CAAC,CAAE,OAAO,CAAC,GAAG,CAAC,sBAAoD;YACnE,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,OAAO;QACL,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,eAAe;QACvC,SAAS,EAAE,IAAI,EAAE,SAAS;QAC1B,mBAAmB;QACnB,WAAW,EACT,IAAI,EAAE,WAAW;YACjB,CAAC,OAAO,OAAO,KAAK,WAAW;gBAC7B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB;gBACjC,CAAC,CAAC,SAAS,CAAC;QAChB,gBAAgB,EAAE,IAAI,EAAE,gBAAgB;QACxC,eAAe,EAAE,IAAI,EAAE,eAAe;QACtC,iBAAiB,EACf,IAAI,EAAE,iBAAiB
|
|
1
|
+
{"version":3,"file":"sdk-config.js","sourceRoot":"","sources":["../../../src/config/sdk-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AA6B7E,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACxD,MAAM,mBAAmB,GACvB,IAAI,EAAE,mBAAmB;QACzB,CAAC,OAAO,OAAO,KAAK,WAAW;YAC7B,CAAC,CAAE,OAAO,CAAC,GAAG,CAAC,sBAAoD;YACnE,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,OAAO;QACL,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,eAAe;QACvC,SAAS,EAAE,IAAI,EAAE,SAAS;QAC1B,mBAAmB;QACnB,WAAW,EACT,IAAI,EAAE,WAAW;YACjB,CAAC,OAAO,OAAO,KAAK,WAAW;gBAC7B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB;gBACjC,CAAC,CAAC,SAAS,CAAC;QAChB,gBAAgB,EAAE,IAAI,EAAE,gBAAgB;QACxC,eAAe,EAAE,IAAI,EAAE,eAAe;QACtC,iBAAiB,EACf,IAAI,EAAE,iBAAiB,IAAI,yBAAyB,EAAE;QACxD,sBAAsB,EAAE,IAAI,EAAE,sBAAsB;KACrD,CAAC;AACJ,CAAC"}
|
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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"}
|