@andrewkimjoseph/celina-sdk 0.25.26 → 0.26.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 +1 -1
- package/build/analytics/config.d.ts +1 -4
- package/build/analytics/config.js +2 -12
- package/build/analytics/config.js.map +1 -1
- package/build/analytics/consumer-package.d.ts +2 -2
- package/build/analytics/consumer-package.js +2 -2
- package/build/analytics/consumer-package.js.map +1 -1
- package/build/analytics/{amplitude.d.ts → events-stats.d.ts} +9 -3
- package/build/analytics/events-stats.js +97 -0
- package/build/analytics/events-stats.js.map +1 -0
- package/build/analytics/wrap-service.d.ts +2 -1
- package/build/analytics/wrap-service.js +3 -2
- package/build/analytics/wrap-service.js.map +1 -1
- package/build/config/sdk-config.d.ts +8 -6
- package/build/config/sdk-config.js +0 -1
- package/build/config/sdk-config.js.map +1 -1
- package/build/index.d.ts +1 -1
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/services/agentkarma.service.d.ts +1 -1
- package/build/services/agentkarma.service.js +1 -1
- package/build/simulation/index.d.ts +1 -1
- package/build/simulation/index.js +1 -1
- package/build/simulation/index.js.map +1 -1
- package/build/simulation/simulate-prepared-step.d.ts +20 -0
- package/build/simulation/simulate-prepared-step.js +47 -0
- package/build/simulation/simulate-prepared-step.js.map +1 -1
- package/build/src/analytics/config.d.ts +1 -4
- package/build/src/analytics/config.js +2 -12
- package/build/src/analytics/config.js.map +1 -1
- package/build/src/analytics/consumer-package.d.ts +2 -2
- package/build/src/analytics/consumer-package.js +2 -2
- package/build/src/analytics/consumer-package.js.map +1 -1
- package/build/src/analytics/{amplitude.d.ts → events-stats.d.ts} +9 -3
- package/build/src/analytics/events-stats.js +97 -0
- package/build/src/analytics/events-stats.js.map +1 -0
- package/build/src/analytics/wrap-service.d.ts +2 -1
- package/build/src/analytics/wrap-service.js +3 -2
- package/build/src/analytics/wrap-service.js.map +1 -1
- package/build/src/config/sdk-config.d.ts +8 -6
- package/build/src/config/sdk-config.js +0 -1
- package/build/src/config/sdk-config.js.map +1 -1
- package/build/src/index.d.ts +1 -1
- package/build/src/index.js +1 -1
- package/build/src/index.js.map +1 -1
- package/build/src/services/agentkarma.service.d.ts +1 -1
- package/build/src/services/agentkarma.service.js +1 -1
- package/build/src/simulation/index.d.ts +1 -1
- package/build/src/simulation/index.js +1 -1
- package/build/src/simulation/index.js.map +1 -1
- package/build/src/simulation/simulate-prepared-step.d.ts +20 -0
- package/build/src/simulation/simulate-prepared-step.js +47 -0
- package/build/src/simulation/simulate-prepared-step.js.map +1 -1
- package/package.json +1 -2
- package/build/analytics/amplitude.js +0 -85
- package/build/analytics/amplitude.js.map +0 -1
- package/build/src/analytics/amplitude.js +0 -85
- package/build/src/analytics/amplitude.js.map +0 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { isAnalyticsEnabled, resolveDeviceId, } from "./config.js";
|
|
2
|
+
import { DEFAULT_STATS_API_BASE_URL } from "./onchain-stats.js";
|
|
3
|
+
import { resolveAnalyticsWallet } from "./wallet-context.js";
|
|
4
|
+
const inflight = new Set();
|
|
5
|
+
let testTrackFn = null;
|
|
6
|
+
let testFetch = null;
|
|
7
|
+
/** Test-only hook to assert telemetry without POSTing to celina-stats-api. */
|
|
8
|
+
export function setTrackFnForTests(fn) {
|
|
9
|
+
testTrackFn = fn;
|
|
10
|
+
}
|
|
11
|
+
/** Test-only: replace `fetch` used by the real `POST /events` path. */
|
|
12
|
+
export function setEventsStatsFetchForTests(fn) {
|
|
13
|
+
testFetch = fn;
|
|
14
|
+
}
|
|
15
|
+
function envFlag(name) {
|
|
16
|
+
if (typeof process === "undefined")
|
|
17
|
+
return undefined;
|
|
18
|
+
const value = process.env[name]?.trim();
|
|
19
|
+
return value ? value : undefined;
|
|
20
|
+
}
|
|
21
|
+
/** Resolve celina-stats-api base URL: `statsApiBaseUrl` config -> `CELINA_STATS_API_URL` -> default. */
|
|
22
|
+
function resolveBaseUrl(config) {
|
|
23
|
+
const fromConfig = config.statsApiBaseUrl?.trim();
|
|
24
|
+
const fromEnv = envFlag("CELINA_STATS_API_URL");
|
|
25
|
+
const raw = fromConfig || fromEnv || DEFAULT_STATS_API_BASE_URL;
|
|
26
|
+
return raw.replace(/\/+$/, "");
|
|
27
|
+
}
|
|
28
|
+
function randomInsertId() {
|
|
29
|
+
try {
|
|
30
|
+
return crypto.randomUUID();
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async function postEvent(config, payload) {
|
|
37
|
+
const doFetch = testFetch ?? globalThis.fetch;
|
|
38
|
+
if (typeof doFetch !== "function") {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const url = `${resolveBaseUrl(config)}/events`;
|
|
42
|
+
try {
|
|
43
|
+
await doFetch(url, {
|
|
44
|
+
method: "POST",
|
|
45
|
+
headers: { "Content-Type": "application/json" },
|
|
46
|
+
body: JSON.stringify(payload),
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// telemetry must not break SDK reads
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async function trackMcpToolImpl(eventName, config, context) {
|
|
54
|
+
if (!isAnalyticsEnabled(config)) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const userId = context
|
|
58
|
+
? resolveAnalyticsWallet(context.methodKey, context.args, config)
|
|
59
|
+
: undefined;
|
|
60
|
+
if (testTrackFn) {
|
|
61
|
+
try {
|
|
62
|
+
testTrackFn(eventName, config, context ?? { methodKey: "", args: [] }, userId);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// ignore test hook failures
|
|
66
|
+
}
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const payload = {
|
|
70
|
+
insertId: randomInsertId(),
|
|
71
|
+
event: eventName,
|
|
72
|
+
deviceId: resolveDeviceId(config),
|
|
73
|
+
...(userId ? { userId } : {}),
|
|
74
|
+
occurredAt: new Date().toISOString(),
|
|
75
|
+
};
|
|
76
|
+
await postEvent(config, payload);
|
|
77
|
+
}
|
|
78
|
+
/** Track an MCP tool name event; never throws to callers. */
|
|
79
|
+
export function trackMcpTool(eventName, config, context) {
|
|
80
|
+
const run = trackMcpToolImpl(eventName, config, context);
|
|
81
|
+
inflight.add(run);
|
|
82
|
+
void run.finally(() => inflight.delete(run));
|
|
83
|
+
return run;
|
|
84
|
+
}
|
|
85
|
+
/** Await in-flight `POST /events` calls. Use with Worker/Vercel `waitUntil`. */
|
|
86
|
+
export async function drainCelinaAnalytics() {
|
|
87
|
+
await Promise.allSettled([...inflight]);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Await any queued event posts (e.g. end of a Next.js route via `after()`).
|
|
91
|
+
* Alias of {@link drainCelinaAnalytics} — kept as a separate export for API compatibility;
|
|
92
|
+
* there is no separate client-side batch to flush now that events post individually.
|
|
93
|
+
*/
|
|
94
|
+
export async function flushCelinaAnalytics() {
|
|
95
|
+
await drainCelinaAnalytics();
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=events-stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events-stats.js","sourceRoot":"","sources":["../../../src/analytics/events-stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SdkConfig } from "../config/sdk-config.js";
|
|
2
2
|
/**
|
|
3
|
-
* Wrap a domain service so catalog-mapped async reads
|
|
3
|
+
* Wrap a domain service so catalog-mapped async reads report usage events (MCP tool names)
|
|
4
|
+
* to celina-stats-api.
|
|
4
5
|
*/
|
|
5
6
|
export declare function wrapServiceForAnalytics<T extends object>(serviceKey: string, service: T, config: SdkConfig): T;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { trackMcpTool } from "./amplitude.js";
|
|
2
1
|
import { isAnalyticsEnabled } from "./config.js";
|
|
2
|
+
import { trackMcpTool } from "./events-stats.js";
|
|
3
3
|
import { MCP_TOOL_EVENT_BY_SDK_METHOD } from "./mcp-tool-events.js";
|
|
4
4
|
/**
|
|
5
|
-
* Wrap a domain service so catalog-mapped async reads
|
|
5
|
+
* Wrap a domain service so catalog-mapped async reads report usage events (MCP tool names)
|
|
6
|
+
* to celina-stats-api.
|
|
6
7
|
*/
|
|
7
8
|
export function wrapServiceForAnalytics(serviceKey, service, config) {
|
|
8
9
|
if (!isAnalyticsEnabled(config)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap-service.js","sourceRoot":"","sources":["../../../src/analytics/wrap-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"wrap-service.js","sourceRoot":"","sources":["../../../src/analytics/wrap-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAEpE;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,OAAU,EACV,MAAiB;IAEjB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;QACxB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC5D,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,SAAS,GAAG,GAAG,UAAU,IAAI,IAAI,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;YAED,MAAM,EAAE,GAAG,KAAwC,CAAC;YACpD,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE;gBAC5B,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACtC,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBACpC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;oBACtE,OAAQ,MAA2B,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;wBACpD,KAAK,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;wBAC9C,OAAO,QAAQ,CAAC;oBAClB,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,KAAK,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC9C,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -8,14 +8,16 @@ 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
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Read telemetry reported to celina-stats-api (default on).
|
|
13
|
+
* Opt out with `analyticsEnabled: false`.
|
|
14
|
+
*/
|
|
12
15
|
analyticsEnabled?: boolean;
|
|
13
|
-
/** Override bundled Amplitude project API key. */
|
|
14
|
-
amplitudeApiKey?: string;
|
|
15
16
|
/**
|
|
16
|
-
*
|
|
17
|
-
* `package.json` name (sanitized, e.g. `celeste_ai`,
|
|
18
|
-
* then `
|
|
17
|
+
* `device_id` reported with telemetry events. When omitted, auto-detected from the
|
|
18
|
+
* consuming package `package.json` name (sanitized, e.g. `celeste_ai`,
|
|
19
|
+
* `andrewkimjoseph_celina_mcp`), then `celina_sdk`. Prefer setting this explicitly —
|
|
20
|
+
* auto-detection can be unreliable in bundled/serverless deployments.
|
|
19
21
|
*/
|
|
20
22
|
analyticsDeviceId?: string;
|
|
21
23
|
/**
|
|
@@ -22,7 +22,6 @@ export function resolveSdkConfig(opts) {
|
|
|
22
22
|
? process.env.SELF_AGENT_API_BASE
|
|
23
23
|
: undefined),
|
|
24
24
|
analyticsEnabled: opts?.analyticsEnabled,
|
|
25
|
-
amplitudeApiKey: opts?.amplitudeApiKey,
|
|
26
25
|
analyticsDeviceId: opts?.analyticsDeviceId ?? detectConsumerPackageName(),
|
|
27
26
|
analyticsWalletAddress: opts?.analyticsWalletAddress,
|
|
28
27
|
onchainStatsEnabled: opts?.onchainStatsEnabled,
|
|
@@ -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;AAE7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"sdk-config.js","sourceRoot":"","sources":["../../../src/config/sdk-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAkD1E,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACxD,MAAM,sBAAsB,GAC1B,IAAI,EAAE,mBAAmB;QACzB,CAAC,OAAO,OAAO,KAAK,WAAW;YAC7B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB;YACpC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,MAAM,eAAe,GAAG,qBAAqB,CAC3C,sBAAsB,EACtB,wBAAwB,CACzB,CAAC;IACF,MAAM,mBAAmB,GAAG,eAAe,CAAC,KAAK,CAAC;IAElD,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,iBAAiB,EACf,IAAI,EAAE,iBAAiB,IAAI,yBAAyB,EAAE;QACxD,sBAAsB,EAAE,IAAI,EAAE,sBAAsB;QACpD,mBAAmB,EAAE,IAAI,EAAE,mBAAmB;QAC9C,eAAe,EACb,IAAI,EAAE,eAAe;YACrB,CAAC,OAAO,OAAO,KAAK,WAAW;gBAC7B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB;gBAClC,CAAC,CAAC,SAAS,CAAC;QAChB,eAAe,EAAE,IAAI,EAAE,eAAe;KACvC,CAAC;AACJ,CAAC"}
|
package/build/src/index.d.ts
CHANGED
|
@@ -120,7 +120,7 @@ export type { SelfRegistrationMode } from "./config/self.js";
|
|
|
120
120
|
export { selfDemoUrl, SELF_DEMO_NETWORK, SELF_HEADERS, } from "./config/self.js";
|
|
121
121
|
export { resolveSelfSessionLinks, formatSelfSessionLinksDisplay, type SelfSessionLinks, } from "./utils/self-format.js";
|
|
122
122
|
export { clearSelfSessionsForTests } from "./services/self-session-store.js";
|
|
123
|
-
export { drainCelinaAnalytics, flushCelinaAnalytics, } from "./analytics/
|
|
123
|
+
export { drainCelinaAnalytics, flushCelinaAnalytics, } from "./analytics/events-stats.js";
|
|
124
124
|
export { runWithAnalyticsWallet } from "./analytics/wallet-context.js";
|
|
125
125
|
export { DEFAULT_STATS_API_BASE_URL, reportCelinaOnchainTxn, } from "./analytics/onchain-stats.js";
|
|
126
126
|
/** Optional read-only AgentKarma reputation adapter (agentkarma.io). */
|
package/build/src/index.js
CHANGED
|
@@ -81,7 +81,7 @@ export { SelfApiError, SelfExpiredSessionError, } from "./clients/self-api.js";
|
|
|
81
81
|
export { selfDemoUrl, SELF_DEMO_NETWORK, SELF_HEADERS, } from "./config/self.js";
|
|
82
82
|
export { resolveSelfSessionLinks, formatSelfSessionLinksDisplay, } from "./utils/self-format.js";
|
|
83
83
|
export { clearSelfSessionsForTests } from "./services/self-session-store.js";
|
|
84
|
-
export { drainCelinaAnalytics, flushCelinaAnalytics, } from "./analytics/
|
|
84
|
+
export { drainCelinaAnalytics, flushCelinaAnalytics, } from "./analytics/events-stats.js";
|
|
85
85
|
export { runWithAnalyticsWallet } from "./analytics/wallet-context.js";
|
|
86
86
|
export { DEFAULT_STATS_API_BASE_URL, reportCelinaOnchainTxn, } from "./analytics/onchain-stats.js";
|
|
87
87
|
/** Optional read-only AgentKarma reputation adapter (agentkarma.io). */
|
package/build/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - non-routing: never proxies an agent call; it only reads reputation.
|
|
13
13
|
* - no private keys / no env requirement.
|
|
14
14
|
*
|
|
15
|
-
* It is intentionally NOT wrapped in Celina's
|
|
15
|
+
* It is intentionally NOT wrapped in Celina's read-telemetry proxy: this
|
|
16
16
|
* is an external reputation service, not a Celo on-chain read Celina tracks.
|
|
17
17
|
*/
|
|
18
18
|
import { type CeloAgentSnapshot, type ClientConfig, type KarmaFaceData, type KarmaSnapshot, type TrustDecision, type TrustPolicy } from "@agentkarma/sdk";
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - non-routing: never proxies an agent call; it only reads reputation.
|
|
13
13
|
* - no private keys / no env requirement.
|
|
14
14
|
*
|
|
15
|
-
* It is intentionally NOT wrapped in Celina's
|
|
15
|
+
* It is intentionally NOT wrapped in Celina's read-telemetry proxy: this
|
|
16
16
|
* is an external reputation service, not a Celo on-chain read Celina tracks.
|
|
17
17
|
*/
|
|
18
18
|
import { createAgentKarmaClient, evaluateTrust, } from "@agentkarma/sdk";
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Browser-safe prepared-step simulation (no Node analytics / wallet product logic).
|
|
3
3
|
*/
|
|
4
4
|
export type { PreparedTx } from "../types/prepared.js";
|
|
5
|
-
export { simulatePreparedStep, type SimulatePreparedStepOptions, type SimulatePreparedStepParams, } from "./simulate-prepared-step.js";
|
|
5
|
+
export { PreparedFlowExecutionError, isPreparedFlowExecutionError, simulatePreparedStep, simulatePreparedStepWithRetry, type SimulatePreparedStepOptions, type SimulatePreparedStepParams, type SimulatePreparedStepRetryOptions, } from "./simulate-prepared-step.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { simulatePreparedStep, } from "./simulate-prepared-step.js";
|
|
1
|
+
export { PreparedFlowExecutionError, isPreparedFlowExecutionError, simulatePreparedStep, simulatePreparedStepWithRetry, } from "./simulate-prepared-step.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/simulation/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/simulation/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,oBAAoB,EACpB,6BAA6B,GAI9B,MAAM,6BAA6B,CAAC"}
|
|
@@ -10,8 +10,28 @@ export type SimulatePreparedStepParams = {
|
|
|
10
10
|
account: `0x${string}`;
|
|
11
11
|
step: PreparedTx;
|
|
12
12
|
};
|
|
13
|
+
/** Backoff between simulation retries after a failed `eth_call` / `estimateGas`. */
|
|
14
|
+
export type SimulatePreparedStepRetryOptions = {
|
|
15
|
+
/** Delays in ms after each failed attempt. Default: 750, 1500, 3000. */
|
|
16
|
+
delaysMs?: readonly number[];
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Thrown when a multi-step prepared flow fails after one or more steps already
|
|
20
|
+
* broadcast. Carries confirmed hashes so hosts can report partial progress.
|
|
21
|
+
*/
|
|
22
|
+
export declare class PreparedFlowExecutionError extends Error {
|
|
23
|
+
readonly stepHashes: `0x${string}`[];
|
|
24
|
+
readonly stepCount?: number;
|
|
25
|
+
constructor(message: string, stepHashes?: `0x${string}`[], stepCount?: number);
|
|
26
|
+
}
|
|
27
|
+
export declare function isPreparedFlowExecutionError(error: unknown): error is PreparedFlowExecutionError;
|
|
13
28
|
/**
|
|
14
29
|
* Simulate a prepared transaction step against current chain state.
|
|
15
30
|
* Throws when the transaction would revert — call immediately before send.
|
|
16
31
|
*/
|
|
17
32
|
export declare function simulatePreparedStep(publicClient: PublicClient, params: SimulatePreparedStepParams, options?: SimulatePreparedStepOptions): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Simulate a prepared step, retrying on failure to absorb RPC replica lag
|
|
35
|
+
* after a prior approval is mined. Genuine reverts still fail after retries.
|
|
36
|
+
*/
|
|
37
|
+
export declare function simulatePreparedStepWithRetry(publicClient: PublicClient, params: SimulatePreparedStepParams, options?: SimulatePreparedStepOptions, retry?: SimulatePreparedStepRetryOptions): Promise<void>;
|
|
@@ -1,4 +1,25 @@
|
|
|
1
1
|
import { isInsufficientBalanceSimulationError } from "../utils/transaction-errors.js";
|
|
2
|
+
const DEFAULT_RETRY_DELAYS_MS = [750, 1500, 3000];
|
|
3
|
+
/**
|
|
4
|
+
* Thrown when a multi-step prepared flow fails after one or more steps already
|
|
5
|
+
* broadcast. Carries confirmed hashes so hosts can report partial progress.
|
|
6
|
+
*/
|
|
7
|
+
export class PreparedFlowExecutionError extends Error {
|
|
8
|
+
stepHashes;
|
|
9
|
+
stepCount;
|
|
10
|
+
constructor(message, stepHashes = [], stepCount) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = "PreparedFlowExecutionError";
|
|
13
|
+
this.stepHashes = stepHashes;
|
|
14
|
+
this.stepCount = stepCount;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function isPreparedFlowExecutionError(error) {
|
|
18
|
+
return (error instanceof PreparedFlowExecutionError ||
|
|
19
|
+
(error instanceof Error &&
|
|
20
|
+
error.name === "PreparedFlowExecutionError" &&
|
|
21
|
+
Array.isArray(error.stepHashes)));
|
|
22
|
+
}
|
|
2
23
|
function stepRequest(account, step) {
|
|
3
24
|
return {
|
|
4
25
|
account,
|
|
@@ -39,4 +60,30 @@ export async function simulatePreparedStep(publicClient, params, options) {
|
|
|
39
60
|
throw new Error(simulationErrorMessage(params.step, error));
|
|
40
61
|
}
|
|
41
62
|
}
|
|
63
|
+
function sleep(ms) {
|
|
64
|
+
return new Promise((resolve) => {
|
|
65
|
+
setTimeout(resolve, ms);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Simulate a prepared step, retrying on failure to absorb RPC replica lag
|
|
70
|
+
* after a prior approval is mined. Genuine reverts still fail after retries.
|
|
71
|
+
*/
|
|
72
|
+
export async function simulatePreparedStepWithRetry(publicClient, params, options, retry) {
|
|
73
|
+
const delaysMs = retry?.delaysMs ?? DEFAULT_RETRY_DELAYS_MS;
|
|
74
|
+
let lastError;
|
|
75
|
+
for (let attempt = 0; attempt <= delaysMs.length; attempt++) {
|
|
76
|
+
if (attempt > 0) {
|
|
77
|
+
await sleep(delaysMs[attempt - 1]);
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
await simulatePreparedStep(publicClient, params, options);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
lastError = error;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
throw lastError;
|
|
88
|
+
}
|
|
42
89
|
//# sourceMappingURL=simulate-prepared-step.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulate-prepared-step.js","sourceRoot":"","sources":["../../../src/simulation/simulate-prepared-step.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oCAAoC,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"simulate-prepared-step.js","sourceRoot":"","sources":["../../../src/simulation/simulate-prepared-step.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.26.0",
|
|
4
4
|
"description": "Celina SDK — Celo mainnet reads, unsigned transaction preparation, and ERC-4337 createAAClient for sponsored UserOps.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -102,7 +102,6 @@
|
|
|
102
102
|
"homepage": "https://andrewkimjoseph.gitbook.io/celina-sdk",
|
|
103
103
|
"dependencies": {
|
|
104
104
|
"@agentkarma/sdk": "^0.2.4",
|
|
105
|
-
"@amplitude/analytics-node": "^1.5.21",
|
|
106
105
|
"@celo/attribution-tags": "^0.3.0",
|
|
107
106
|
"@goodsdks/citizen-sdk": "^1.0.0",
|
|
108
107
|
"@mento-protocol/mento-sdk": "^3.2.8",
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { isAnalyticsEnabled, resolveAmplitudeApiKey, resolveDeviceId, } from "./config.js";
|
|
2
|
-
import { resolveAnalyticsWallet } from "./wallet-context.js";
|
|
3
|
-
let initialized = false;
|
|
4
|
-
const inflight = new Set();
|
|
5
|
-
let testTrackFn = null;
|
|
6
|
-
/** Test-only hook to assert telemetry without calling Amplitude. */
|
|
7
|
-
export function setTrackFnForTests(fn) {
|
|
8
|
-
testTrackFn = fn;
|
|
9
|
-
initialized = false;
|
|
10
|
-
}
|
|
11
|
-
async function ensureInit(config) {
|
|
12
|
-
const apiKey = resolveAmplitudeApiKey(config);
|
|
13
|
-
if (!apiKey) {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
if (initialized) {
|
|
17
|
-
return true;
|
|
18
|
-
}
|
|
19
|
-
try {
|
|
20
|
-
const amplitude = await import("@amplitude/analytics-node");
|
|
21
|
-
amplitude.init(apiKey);
|
|
22
|
-
initialized = true;
|
|
23
|
-
return true;
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
async function trackMcpToolImpl(eventName, config, context) {
|
|
30
|
-
if (!isAnalyticsEnabled(config)) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
const userId = context
|
|
34
|
-
? resolveAnalyticsWallet(context.methodKey, context.args, config)
|
|
35
|
-
: undefined;
|
|
36
|
-
if (testTrackFn) {
|
|
37
|
-
try {
|
|
38
|
-
testTrackFn(eventName, config, context ?? { methodKey: "", args: [] }, userId);
|
|
39
|
-
}
|
|
40
|
-
catch {
|
|
41
|
-
// ignore test hook failures
|
|
42
|
-
}
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
if (!(await ensureInit(config))) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const amplitude = await import("@amplitude/analytics-node");
|
|
50
|
-
await amplitude.track(eventName, undefined, {
|
|
51
|
-
device_id: resolveDeviceId(config),
|
|
52
|
-
...(userId ? { user_id: userId } : {}),
|
|
53
|
-
}).promise;
|
|
54
|
-
await amplitude.flush().promise;
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
// telemetry must not break SDK reads
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
/** Track an MCP tool name event; never throws to callers. */
|
|
61
|
-
export function trackMcpTool(eventName, config, context) {
|
|
62
|
-
const run = trackMcpToolImpl(eventName, config, context);
|
|
63
|
-
inflight.add(run);
|
|
64
|
-
void run.finally(() => inflight.delete(run));
|
|
65
|
-
return run;
|
|
66
|
-
}
|
|
67
|
-
/** Await in-flight Amplitude tracks, then flush. Use with Worker/Vercel waitUntil. */
|
|
68
|
-
export async function drainCelinaAnalytics() {
|
|
69
|
-
await Promise.allSettled([...inflight]);
|
|
70
|
-
await flushCelinaAnalytics();
|
|
71
|
-
}
|
|
72
|
-
/** Await any queued Amplitude events (e.g. end of a Next.js route via `after()`). */
|
|
73
|
-
export async function flushCelinaAnalytics() {
|
|
74
|
-
if (!initialized) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
try {
|
|
78
|
-
const amplitude = await import("@amplitude/analytics-node");
|
|
79
|
-
await amplitude.flush().promise;
|
|
80
|
-
}
|
|
81
|
-
catch {
|
|
82
|
-
// ignore flush failures
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=amplitude.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"amplitude.js","sourceRoot":"","sources":["../../src/analytics/amplitude.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { isAnalyticsEnabled, resolveAmplitudeApiKey, resolveDeviceId, } from "./config.js";
|
|
2
|
-
import { resolveAnalyticsWallet } from "./wallet-context.js";
|
|
3
|
-
let initialized = false;
|
|
4
|
-
const inflight = new Set();
|
|
5
|
-
let testTrackFn = null;
|
|
6
|
-
/** Test-only hook to assert telemetry without calling Amplitude. */
|
|
7
|
-
export function setTrackFnForTests(fn) {
|
|
8
|
-
testTrackFn = fn;
|
|
9
|
-
initialized = false;
|
|
10
|
-
}
|
|
11
|
-
async function ensureInit(config) {
|
|
12
|
-
const apiKey = resolveAmplitudeApiKey(config);
|
|
13
|
-
if (!apiKey) {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
if (initialized) {
|
|
17
|
-
return true;
|
|
18
|
-
}
|
|
19
|
-
try {
|
|
20
|
-
const amplitude = await import("@amplitude/analytics-node");
|
|
21
|
-
amplitude.init(apiKey);
|
|
22
|
-
initialized = true;
|
|
23
|
-
return true;
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
async function trackMcpToolImpl(eventName, config, context) {
|
|
30
|
-
if (!isAnalyticsEnabled(config)) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
const userId = context
|
|
34
|
-
? resolveAnalyticsWallet(context.methodKey, context.args, config)
|
|
35
|
-
: undefined;
|
|
36
|
-
if (testTrackFn) {
|
|
37
|
-
try {
|
|
38
|
-
testTrackFn(eventName, config, context ?? { methodKey: "", args: [] }, userId);
|
|
39
|
-
}
|
|
40
|
-
catch {
|
|
41
|
-
// ignore test hook failures
|
|
42
|
-
}
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
if (!(await ensureInit(config))) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const amplitude = await import("@amplitude/analytics-node");
|
|
50
|
-
await amplitude.track(eventName, undefined, {
|
|
51
|
-
device_id: resolveDeviceId(config),
|
|
52
|
-
...(userId ? { user_id: userId } : {}),
|
|
53
|
-
}).promise;
|
|
54
|
-
await amplitude.flush().promise;
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
// telemetry must not break SDK reads
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
/** Track an MCP tool name event; never throws to callers. */
|
|
61
|
-
export function trackMcpTool(eventName, config, context) {
|
|
62
|
-
const run = trackMcpToolImpl(eventName, config, context);
|
|
63
|
-
inflight.add(run);
|
|
64
|
-
void run.finally(() => inflight.delete(run));
|
|
65
|
-
return run;
|
|
66
|
-
}
|
|
67
|
-
/** Await in-flight Amplitude tracks, then flush. Use with Worker/Vercel waitUntil. */
|
|
68
|
-
export async function drainCelinaAnalytics() {
|
|
69
|
-
await Promise.allSettled([...inflight]);
|
|
70
|
-
await flushCelinaAnalytics();
|
|
71
|
-
}
|
|
72
|
-
/** Await any queued Amplitude events (e.g. end of a Next.js route via `after()`). */
|
|
73
|
-
export async function flushCelinaAnalytics() {
|
|
74
|
-
if (!initialized) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
try {
|
|
78
|
-
const amplitude = await import("@amplitude/analytics-node");
|
|
79
|
-
await amplitude.flush().promise;
|
|
80
|
-
}
|
|
81
|
-
catch {
|
|
82
|
-
// ignore flush failures
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=amplitude.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"amplitude.js","sourceRoot":"","sources":["../../../src/analytics/amplitude.ts"],"names":[],"mappings":"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"}
|