@andrewkimjoseph/celina-sdk 0.26.5 → 0.27.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 -1
- package/build/analytics/config.js +2 -8
- package/build/analytics/config.js.map +1 -1
- package/build/analytics/events-stats.d.ts +3 -10
- package/build/analytics/events-stats.js +9 -18
- package/build/analytics/events-stats.js.map +1 -1
- package/build/analytics/onchain-stats.d.ts +3 -2
- package/build/analytics/onchain-stats.js +4 -18
- package/build/analytics/onchain-stats.js.map +1 -1
- package/build/analytics/wrap-service.js +1 -1
- package/build/analytics/wrap-service.js.map +1 -1
- package/build/config/sdk-config.d.ts +1 -12
- package/build/config/sdk-config.js +0 -2
- package/build/config/sdk-config.js.map +1 -1
- package/build/src/analytics/config.d.ts +1 -1
- package/build/src/analytics/config.js +2 -8
- package/build/src/analytics/config.js.map +1 -1
- package/build/src/analytics/events-stats.d.ts +3 -10
- package/build/src/analytics/events-stats.js +9 -18
- package/build/src/analytics/events-stats.js.map +1 -1
- package/build/src/analytics/onchain-stats.d.ts +3 -2
- package/build/src/analytics/onchain-stats.js +4 -18
- package/build/src/analytics/onchain-stats.js.map +1 -1
- package/build/src/analytics/wrap-service.js +1 -1
- package/build/src/analytics/wrap-service.js.map +1 -1
- package/build/src/config/sdk-config.d.ts +1 -12
- package/build/src/config/sdk-config.js +0 -2
- package/build/src/config/sdk-config.js.map +1 -1
- package/build/tests/helpers/env.d.ts +0 -1
- package/build/tests/helpers/env.js +0 -1
- package/build/tests/helpers/env.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -69,7 +69,7 @@ Before broadcasting prepared steps, call `simulatePreparedStep` from `@andrewkim
|
|
|
69
69
|
- [Humanness](docs/guides/humanness.md) — dual-rail Self + GoodDollar gate for governance/staking writes
|
|
70
70
|
- [Self Agent ID](docs/guides/self-agent-id.md) — verify, register, refresh human-backed agents
|
|
71
71
|
- [AgentKarma reputation](docs/guides/agentkarma.md) — karma reads and counterparty trust policy
|
|
72
|
-
- [Telemetry](docs/guides/telemetry.md) —
|
|
72
|
+
- [Telemetry](docs/guides/telemetry.md) — read metrics always reported to celina-stats-api (`device_id` per project — set `analyticsDeviceId` explicitly; `user_id` per wallet). On serverless hosts keep the isolate alive with `drainCelinaAnalytics()` via `waitUntil` / `after`. Anyone who does not want telemetry can fork the repository.
|
|
73
73
|
- [API reference](https://andrewkimjoseph.gitbook.io/celina-sdk/api-reference)
|
|
74
74
|
|
|
75
75
|
Docs source lives in [`docs/`](docs/) in this repository.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { SdkConfig } from "../config/sdk-config.js";
|
|
2
2
|
/** Whether read telemetry (reported to celina-stats-api) is active for this process. */
|
|
3
|
-
export declare function isAnalyticsEnabled(
|
|
3
|
+
export declare function isAnalyticsEnabled(): boolean;
|
|
4
4
|
export declare function resolveDeviceId(config: SdkConfig): string;
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
const DEFAULT_DEVICE_ID = "celina_sdk";
|
|
2
2
|
/** Whether read telemetry (reported to celina-stats-api) is active for this process. */
|
|
3
|
-
export function isAnalyticsEnabled(
|
|
4
|
-
|
|
5
|
-
return false;
|
|
6
|
-
}
|
|
7
|
-
if (config.analyticsEnabled === false) {
|
|
8
|
-
return false;
|
|
9
|
-
}
|
|
10
|
-
return true;
|
|
3
|
+
export function isAnalyticsEnabled() {
|
|
4
|
+
return typeof process !== "undefined";
|
|
11
5
|
}
|
|
12
6
|
export function resolveDeviceId(config) {
|
|
13
7
|
return config.analyticsDeviceId ?? DEFAULT_DEVICE_ID;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/analytics/config.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAEvC,wFAAwF;AACxF,MAAM,UAAU,kBAAkB
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/analytics/config.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAEvC,wFAAwF;AACxF,MAAM,UAAU,kBAAkB;IAChC,OAAO,OAAO,OAAO,KAAK,WAAW,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,OAAO,MAAM,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;AACvD,CAAC"}
|
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
import type { SdkConfig } from "../config/sdk-config.js";
|
|
2
|
-
/** Amplitude HTTP API v2. Write key only — cannot read the export. */
|
|
3
|
-
export declare const AMPLITUDE_HTTP_API_URL = "https://api2.amplitude.com/2/httpapi";
|
|
4
|
-
/**
|
|
5
|
-
* Celina stats Amplitude project write key.
|
|
6
|
-
* Public ingest credential; the export secret stays on celina-stats-api.
|
|
7
|
-
*/
|
|
8
|
-
export declare const AMPLITUDE_WRITE_API_KEY = "b8d30326c023a17e70f0a42432824279";
|
|
9
2
|
export type TrackMcpToolContext = {
|
|
10
3
|
methodKey: string;
|
|
11
4
|
args: readonly unknown[];
|
|
12
5
|
};
|
|
13
|
-
/** Test-only hook to assert telemetry without POSTing to
|
|
6
|
+
/** Test-only hook to assert telemetry without POSTing to celina-stats-api. */
|
|
14
7
|
export declare function setTrackFnForTests(fn: ((eventName: string, config: SdkConfig, context: TrackMcpToolContext, userId: string | undefined) => void) | null): void;
|
|
15
|
-
/** Test-only: replace `fetch` used by the
|
|
8
|
+
/** Test-only: replace `fetch` used by the stats-api telemetry path. */
|
|
16
9
|
export declare function setEventsStatsFetchForTests(fn: typeof fetch | null): void;
|
|
17
10
|
/** Track an MCP tool name event; never throws to callers. */
|
|
18
11
|
export declare function trackMcpTool(eventName: string, config: SdkConfig, context?: TrackMcpToolContext): Promise<void>;
|
|
19
|
-
/** Await in-flight
|
|
12
|
+
/** Await in-flight telemetry posts. Use with Worker/Vercel `waitUntil`. */
|
|
20
13
|
export declare function drainCelinaAnalytics(): Promise<void>;
|
|
21
14
|
/**
|
|
22
15
|
* Await any queued event posts (e.g. end of a Next.js route via `after()`).
|
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
import { isAnalyticsEnabled, resolveDeviceId, } from "./config.js";
|
|
2
|
+
import { resolveStatsApiBaseUrl } from "./onchain-stats.js";
|
|
2
3
|
import { resolveAnalyticsWallet } from "./wallet-context.js";
|
|
3
|
-
/** Amplitude HTTP API v2. Write key only — cannot read the export. */
|
|
4
|
-
export const AMPLITUDE_HTTP_API_URL = "https://api2.amplitude.com/2/httpapi";
|
|
5
|
-
/**
|
|
6
|
-
* Celina stats Amplitude project write key.
|
|
7
|
-
* Public ingest credential; the export secret stays on celina-stats-api.
|
|
8
|
-
*/
|
|
9
|
-
export const AMPLITUDE_WRITE_API_KEY = "b8d30326c023a17e70f0a42432824279";
|
|
10
4
|
const inflight = new Set();
|
|
11
5
|
let testTrackFn = null;
|
|
12
6
|
let testFetch = null;
|
|
13
|
-
/** Test-only hook to assert telemetry without POSTing to
|
|
7
|
+
/** Test-only hook to assert telemetry without POSTing to celina-stats-api. */
|
|
14
8
|
export function setTrackFnForTests(fn) {
|
|
15
9
|
testTrackFn = fn;
|
|
16
10
|
}
|
|
17
|
-
/** Test-only: replace `fetch` used by the
|
|
11
|
+
/** Test-only: replace `fetch` used by the stats-api telemetry path. */
|
|
18
12
|
export function setEventsStatsFetchForTests(fn) {
|
|
19
13
|
testFetch = fn;
|
|
20
14
|
}
|
|
@@ -26,7 +20,7 @@ function randomInsertId() {
|
|
|
26
20
|
return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
27
21
|
}
|
|
28
22
|
}
|
|
29
|
-
async function postEvent(payload) {
|
|
23
|
+
async function postEvent(payload, baseUrl) {
|
|
30
24
|
const doFetch = testFetch ?? globalThis.fetch;
|
|
31
25
|
if (typeof doFetch !== "function") {
|
|
32
26
|
return;
|
|
@@ -41,13 +35,10 @@ async function postEvent(payload) {
|
|
|
41
35
|
event.user_id = payload.userId;
|
|
42
36
|
}
|
|
43
37
|
try {
|
|
44
|
-
await doFetch(
|
|
38
|
+
await doFetch(`${baseUrl}/telemetry`, {
|
|
45
39
|
method: "POST",
|
|
46
40
|
headers: { "Content-Type": "application/json" },
|
|
47
|
-
body: JSON.stringify(
|
|
48
|
-
api_key: AMPLITUDE_WRITE_API_KEY,
|
|
49
|
-
events: [event],
|
|
50
|
-
}),
|
|
41
|
+
body: JSON.stringify(event),
|
|
51
42
|
});
|
|
52
43
|
}
|
|
53
44
|
catch {
|
|
@@ -55,7 +46,7 @@ async function postEvent(payload) {
|
|
|
55
46
|
}
|
|
56
47
|
}
|
|
57
48
|
async function trackMcpToolImpl(eventName, config, context) {
|
|
58
|
-
if (!isAnalyticsEnabled(
|
|
49
|
+
if (!isAnalyticsEnabled()) {
|
|
59
50
|
return;
|
|
60
51
|
}
|
|
61
52
|
const userId = context
|
|
@@ -77,7 +68,7 @@ async function trackMcpToolImpl(eventName, config, context) {
|
|
|
77
68
|
...(userId ? { userId } : {}),
|
|
78
69
|
occurredAt: new Date().toISOString(),
|
|
79
70
|
};
|
|
80
|
-
await postEvent(payload);
|
|
71
|
+
await postEvent(payload, resolveStatsApiBaseUrl(config));
|
|
81
72
|
}
|
|
82
73
|
/** Track an MCP tool name event; never throws to callers. */
|
|
83
74
|
export function trackMcpTool(eventName, config, context) {
|
|
@@ -86,7 +77,7 @@ export function trackMcpTool(eventName, config, context) {
|
|
|
86
77
|
void run.finally(() => inflight.delete(run));
|
|
87
78
|
return run;
|
|
88
79
|
}
|
|
89
|
-
/** Await in-flight
|
|
80
|
+
/** Await in-flight telemetry posts. Use with Worker/Vercel `waitUntil`. */
|
|
90
81
|
export async function drainCelinaAnalytics() {
|
|
91
82
|
await Promise.allSettled([...inflight]);
|
|
92
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events-stats.js","sourceRoot":"","sources":["../../src/analytics/events-stats.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"events-stats.js","sourceRoot":"","sources":["../../src/analytics/events-stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import type { SdkConfig } from "../config/sdk-config.js";
|
|
2
2
|
/** Production ingest URL for successful celina-tagged Celo transactions. */
|
|
3
3
|
export declare const DEFAULT_STATS_API_BASE_URL = "https://api.stats.usecelina.xyz";
|
|
4
|
+
export declare function resolveStatsApiBaseUrl(config?: Pick<SdkConfig, "statsApiBaseUrl">): string;
|
|
4
5
|
/** Apply `createCelinaClient()` on-chain stats options to the process-wide reporter. */
|
|
5
6
|
export declare function applyOnchainStatsConfig(config: SdkConfig): void;
|
|
6
7
|
/** Test-only: replace `fetch` used by {@link reportCelinaOnchainTxn}. */
|
|
7
8
|
export declare function setOnchainStatsFetchForTests(fn: typeof fetch | null): void;
|
|
8
|
-
/** Test-only: restore default
|
|
9
|
+
/** Test-only: restore the default base URL. */
|
|
9
10
|
export declare function resetOnchainStatsConfigForTests(): void;
|
|
10
11
|
/**
|
|
11
12
|
* Fire-and-forget POST of a successful Celo tx hash to celina-stats-api.
|
|
12
|
-
* Never throws. No-ops when
|
|
13
|
+
* Never throws. No-ops when `hash` is not a 32-byte hex string.
|
|
13
14
|
*
|
|
14
15
|
* Call after `waitForTransactionReceipt` succeeds (MCP, wagmi apps, AA).
|
|
15
16
|
*/
|
|
@@ -5,7 +5,6 @@ let runtime = defaultRuntime();
|
|
|
5
5
|
let testFetch = null;
|
|
6
6
|
function defaultRuntime() {
|
|
7
7
|
return {
|
|
8
|
-
enabled: true,
|
|
9
8
|
baseUrl: DEFAULT_STATS_API_BASE_URL,
|
|
10
9
|
};
|
|
11
10
|
}
|
|
@@ -15,17 +14,7 @@ function envFlag(name) {
|
|
|
15
14
|
const value = process.env[name]?.trim();
|
|
16
15
|
return value ? value : undefined;
|
|
17
16
|
}
|
|
18
|
-
function
|
|
19
|
-
if (config?.onchainStatsEnabled === false)
|
|
20
|
-
return false;
|
|
21
|
-
const env = envFlag("CELINA_ONCHAIN_STATS_ENABLED");
|
|
22
|
-
if (env === "false" || env === "0")
|
|
23
|
-
return false;
|
|
24
|
-
if (config?.onchainStatsEnabled === true)
|
|
25
|
-
return true;
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
function resolveBaseUrl(config) {
|
|
17
|
+
export function resolveStatsApiBaseUrl(config) {
|
|
29
18
|
const fromConfig = config?.statsApiBaseUrl?.trim();
|
|
30
19
|
const fromEnv = envFlag("CELINA_STATS_API_URL");
|
|
31
20
|
const raw = fromConfig || fromEnv || DEFAULT_STATS_API_BASE_URL;
|
|
@@ -34,28 +23,25 @@ function resolveBaseUrl(config) {
|
|
|
34
23
|
/** Apply `createCelinaClient()` on-chain stats options to the process-wide reporter. */
|
|
35
24
|
export function applyOnchainStatsConfig(config) {
|
|
36
25
|
runtime = {
|
|
37
|
-
|
|
38
|
-
baseUrl: resolveBaseUrl(config),
|
|
26
|
+
baseUrl: resolveStatsApiBaseUrl(config),
|
|
39
27
|
};
|
|
40
28
|
}
|
|
41
29
|
/** Test-only: replace `fetch` used by {@link reportCelinaOnchainTxn}. */
|
|
42
30
|
export function setOnchainStatsFetchForTests(fn) {
|
|
43
31
|
testFetch = fn;
|
|
44
32
|
}
|
|
45
|
-
/** Test-only: restore default
|
|
33
|
+
/** Test-only: restore the default base URL. */
|
|
46
34
|
export function resetOnchainStatsConfigForTests() {
|
|
47
35
|
runtime = defaultRuntime();
|
|
48
36
|
testFetch = null;
|
|
49
37
|
}
|
|
50
38
|
/**
|
|
51
39
|
* Fire-and-forget POST of a successful Celo tx hash to celina-stats-api.
|
|
52
|
-
* Never throws. No-ops when
|
|
40
|
+
* Never throws. No-ops when `hash` is not a 32-byte hex string.
|
|
53
41
|
*
|
|
54
42
|
* Call after `waitForTransactionReceipt` succeeds (MCP, wagmi apps, AA).
|
|
55
43
|
*/
|
|
56
44
|
export function reportCelinaOnchainTxn(hash) {
|
|
57
|
-
if (!runtime.enabled)
|
|
58
|
-
return;
|
|
59
45
|
const normalized = hash.trim();
|
|
60
46
|
if (!TX_HASH_RE.test(normalized))
|
|
61
47
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onchain-stats.js","sourceRoot":"","sources":["../../src/analytics/onchain-stats.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,0BAA0B,GAAG,iCAAiC,CAAC;AAE5E,MAAM,UAAU,GAAG,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"onchain-stats.js","sourceRoot":"","sources":["../../src/analytics/onchain-stats.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,0BAA0B,GAAG,iCAAiC,CAAC;AAE5E,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAMzC,IAAI,OAAO,GAAwB,cAAc,EAAE,CAAC;AAEpD,IAAI,SAAS,GAAwB,IAAI,CAAC;AAE1C,SAAS,cAAc;IACrB,OAAO;QACL,OAAO,EAAE,0BAA0B;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,IAAI,OAAO,OAAO,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAA2C;IAChF,MAAM,UAAU,GAAG,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,UAAU,IAAI,OAAO,IAAI,0BAA0B,CAAC;IAChE,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,OAAO,GAAG;QACR,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,4BAA4B,CAAC,EAAuB;IAClE,SAAS,GAAG,EAAE,CAAC;AACjB,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,+BAA+B;IAC7C,OAAO,GAAG,cAAc,EAAE,CAAC;IAC3B,SAAS,GAAG,IAAI,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO;IAEzC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,UAAU,CAAC;IACzC,MAAM,OAAO,GAAG,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IAC9C,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,OAAO;IAE1C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;SAC3C,CAAC,CAAC;QACH,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACnD,OAAO,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC;AACH,CAAC"}
|
|
@@ -22,7 +22,7 @@ function eventNameForSdkMethod(methodKey) {
|
|
|
22
22
|
* to celina-stats-api.
|
|
23
23
|
*/
|
|
24
24
|
export function wrapServiceForAnalytics(serviceKey, service, config) {
|
|
25
|
-
if (!isAnalyticsEnabled(
|
|
25
|
+
if (!isAnalyticsEnabled()) {
|
|
26
26
|
return service;
|
|
27
27
|
}
|
|
28
28
|
return new Proxy(service, {
|
|
@@ -1 +1 @@
|
|
|
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;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,SAAiB;IAC9C,MAAM,KAAK,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC;IAC/B,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,EAAE,CAAC;QAC3E,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,OAAU,EACV,MAAiB;IAEjB,IAAI,CAAC,kBAAkB,
|
|
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;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,SAAiB;IAC9C,MAAM,KAAK,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC;IAC/B,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,EAAE,CAAC;QAC3E,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,OAAU,EACV,MAAiB;IAEjB,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC1B,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,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACnD,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,11 +8,6 @@ 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
|
-
/**
|
|
12
|
-
* Read telemetry reported to Amplitude (default on).
|
|
13
|
-
* Opt out with `analyticsEnabled: false`.
|
|
14
|
-
*/
|
|
15
|
-
analyticsEnabled?: boolean;
|
|
16
11
|
/**
|
|
17
12
|
* `device_id` reported with telemetry events. When omitted, auto-detected from the
|
|
18
13
|
* consuming package `package.json` name (sanitized, e.g. `celeste_ai`,
|
|
@@ -26,14 +21,8 @@ export interface SdkConfig {
|
|
|
26
21
|
*/
|
|
27
22
|
analyticsWalletAddress?: string;
|
|
28
23
|
/**
|
|
29
|
-
*
|
|
30
|
-
* Opt out with `onchainStatsEnabled: false` or `CELINA_ONCHAIN_STATS_ENABLED=false`.
|
|
31
|
-
*/
|
|
32
|
-
onchainStatsEnabled?: boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Override celina-stats-api base URL for on-chain hash reporting
|
|
24
|
+
* Override celina-stats-api base URL for on-chain hash reporting and read telemetry
|
|
35
25
|
* (default `https://api.stats.usecelina.xyz`). Also reads `CELINA_STATS_API_URL`.
|
|
36
|
-
* Read-tool telemetry goes to Amplitude and does not use this URL.
|
|
37
26
|
*/
|
|
38
27
|
statsApiBaseUrl?: string;
|
|
39
28
|
/**
|
|
@@ -21,10 +21,8 @@ export function resolveSdkConfig(opts) {
|
|
|
21
21
|
(typeof process !== "undefined"
|
|
22
22
|
? process.env.SELF_AGENT_API_BASE
|
|
23
23
|
: undefined),
|
|
24
|
-
analyticsEnabled: opts?.analyticsEnabled,
|
|
25
24
|
analyticsDeviceId: opts?.analyticsDeviceId ?? detectConsumerPackageName(),
|
|
26
25
|
analyticsWalletAddress: opts?.analyticsWalletAddress,
|
|
27
|
-
onchainStatsEnabled: opts?.onchainStatsEnabled,
|
|
28
26
|
statsApiBaseUrl: opts?.statsApiBaseUrl ??
|
|
29
27
|
(typeof process !== "undefined"
|
|
30
28
|
? process.env.CELINA_STATS_API_URL
|
|
@@ -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;AAwC1E,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,iBAAiB,EACf,IAAI,EAAE,iBAAiB,IAAI,yBAAyB,EAAE;QACxD,sBAAsB,EAAE,IAAI,EAAE,sBAAsB;QACpD,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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { SdkConfig } from "../config/sdk-config.js";
|
|
2
2
|
/** Whether read telemetry (reported to celina-stats-api) is active for this process. */
|
|
3
|
-
export declare function isAnalyticsEnabled(
|
|
3
|
+
export declare function isAnalyticsEnabled(): boolean;
|
|
4
4
|
export declare function resolveDeviceId(config: SdkConfig): string;
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
const DEFAULT_DEVICE_ID = "celina_sdk";
|
|
2
2
|
/** Whether read telemetry (reported to celina-stats-api) is active for this process. */
|
|
3
|
-
export function isAnalyticsEnabled(
|
|
4
|
-
|
|
5
|
-
return false;
|
|
6
|
-
}
|
|
7
|
-
if (config.analyticsEnabled === false) {
|
|
8
|
-
return false;
|
|
9
|
-
}
|
|
10
|
-
return true;
|
|
3
|
+
export function isAnalyticsEnabled() {
|
|
4
|
+
return typeof process !== "undefined";
|
|
11
5
|
}
|
|
12
6
|
export function resolveDeviceId(config) {
|
|
13
7
|
return config.analyticsDeviceId ?? DEFAULT_DEVICE_ID;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/analytics/config.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAEvC,wFAAwF;AACxF,MAAM,UAAU,kBAAkB
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/analytics/config.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAEvC,wFAAwF;AACxF,MAAM,UAAU,kBAAkB;IAChC,OAAO,OAAO,OAAO,KAAK,WAAW,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,OAAO,MAAM,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;AACvD,CAAC"}
|
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
import type { SdkConfig } from "../config/sdk-config.js";
|
|
2
|
-
/** Amplitude HTTP API v2. Write key only — cannot read the export. */
|
|
3
|
-
export declare const AMPLITUDE_HTTP_API_URL = "https://api2.amplitude.com/2/httpapi";
|
|
4
|
-
/**
|
|
5
|
-
* Celina stats Amplitude project write key.
|
|
6
|
-
* Public ingest credential; the export secret stays on celina-stats-api.
|
|
7
|
-
*/
|
|
8
|
-
export declare const AMPLITUDE_WRITE_API_KEY = "b8d30326c023a17e70f0a42432824279";
|
|
9
2
|
export type TrackMcpToolContext = {
|
|
10
3
|
methodKey: string;
|
|
11
4
|
args: readonly unknown[];
|
|
12
5
|
};
|
|
13
|
-
/** Test-only hook to assert telemetry without POSTing to
|
|
6
|
+
/** Test-only hook to assert telemetry without POSTing to celina-stats-api. */
|
|
14
7
|
export declare function setTrackFnForTests(fn: ((eventName: string, config: SdkConfig, context: TrackMcpToolContext, userId: string | undefined) => void) | null): void;
|
|
15
|
-
/** Test-only: replace `fetch` used by the
|
|
8
|
+
/** Test-only: replace `fetch` used by the stats-api telemetry path. */
|
|
16
9
|
export declare function setEventsStatsFetchForTests(fn: typeof fetch | null): void;
|
|
17
10
|
/** Track an MCP tool name event; never throws to callers. */
|
|
18
11
|
export declare function trackMcpTool(eventName: string, config: SdkConfig, context?: TrackMcpToolContext): Promise<void>;
|
|
19
|
-
/** Await in-flight
|
|
12
|
+
/** Await in-flight telemetry posts. Use with Worker/Vercel `waitUntil`. */
|
|
20
13
|
export declare function drainCelinaAnalytics(): Promise<void>;
|
|
21
14
|
/**
|
|
22
15
|
* Await any queued event posts (e.g. end of a Next.js route via `after()`).
|
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
import { isAnalyticsEnabled, resolveDeviceId, } from "./config.js";
|
|
2
|
+
import { resolveStatsApiBaseUrl } from "./onchain-stats.js";
|
|
2
3
|
import { resolveAnalyticsWallet } from "./wallet-context.js";
|
|
3
|
-
/** Amplitude HTTP API v2. Write key only — cannot read the export. */
|
|
4
|
-
export const AMPLITUDE_HTTP_API_URL = "https://api2.amplitude.com/2/httpapi";
|
|
5
|
-
/**
|
|
6
|
-
* Celina stats Amplitude project write key.
|
|
7
|
-
* Public ingest credential; the export secret stays on celina-stats-api.
|
|
8
|
-
*/
|
|
9
|
-
export const AMPLITUDE_WRITE_API_KEY = "b8d30326c023a17e70f0a42432824279";
|
|
10
4
|
const inflight = new Set();
|
|
11
5
|
let testTrackFn = null;
|
|
12
6
|
let testFetch = null;
|
|
13
|
-
/** Test-only hook to assert telemetry without POSTing to
|
|
7
|
+
/** Test-only hook to assert telemetry without POSTing to celina-stats-api. */
|
|
14
8
|
export function setTrackFnForTests(fn) {
|
|
15
9
|
testTrackFn = fn;
|
|
16
10
|
}
|
|
17
|
-
/** Test-only: replace `fetch` used by the
|
|
11
|
+
/** Test-only: replace `fetch` used by the stats-api telemetry path. */
|
|
18
12
|
export function setEventsStatsFetchForTests(fn) {
|
|
19
13
|
testFetch = fn;
|
|
20
14
|
}
|
|
@@ -26,7 +20,7 @@ function randomInsertId() {
|
|
|
26
20
|
return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
27
21
|
}
|
|
28
22
|
}
|
|
29
|
-
async function postEvent(payload) {
|
|
23
|
+
async function postEvent(payload, baseUrl) {
|
|
30
24
|
const doFetch = testFetch ?? globalThis.fetch;
|
|
31
25
|
if (typeof doFetch !== "function") {
|
|
32
26
|
return;
|
|
@@ -41,13 +35,10 @@ async function postEvent(payload) {
|
|
|
41
35
|
event.user_id = payload.userId;
|
|
42
36
|
}
|
|
43
37
|
try {
|
|
44
|
-
await doFetch(
|
|
38
|
+
await doFetch(`${baseUrl}/telemetry`, {
|
|
45
39
|
method: "POST",
|
|
46
40
|
headers: { "Content-Type": "application/json" },
|
|
47
|
-
body: JSON.stringify(
|
|
48
|
-
api_key: AMPLITUDE_WRITE_API_KEY,
|
|
49
|
-
events: [event],
|
|
50
|
-
}),
|
|
41
|
+
body: JSON.stringify(event),
|
|
51
42
|
});
|
|
52
43
|
}
|
|
53
44
|
catch {
|
|
@@ -55,7 +46,7 @@ async function postEvent(payload) {
|
|
|
55
46
|
}
|
|
56
47
|
}
|
|
57
48
|
async function trackMcpToolImpl(eventName, config, context) {
|
|
58
|
-
if (!isAnalyticsEnabled(
|
|
49
|
+
if (!isAnalyticsEnabled()) {
|
|
59
50
|
return;
|
|
60
51
|
}
|
|
61
52
|
const userId = context
|
|
@@ -77,7 +68,7 @@ async function trackMcpToolImpl(eventName, config, context) {
|
|
|
77
68
|
...(userId ? { userId } : {}),
|
|
78
69
|
occurredAt: new Date().toISOString(),
|
|
79
70
|
};
|
|
80
|
-
await postEvent(payload);
|
|
71
|
+
await postEvent(payload, resolveStatsApiBaseUrl(config));
|
|
81
72
|
}
|
|
82
73
|
/** Track an MCP tool name event; never throws to callers. */
|
|
83
74
|
export function trackMcpTool(eventName, config, context) {
|
|
@@ -86,7 +77,7 @@ export function trackMcpTool(eventName, config, context) {
|
|
|
86
77
|
void run.finally(() => inflight.delete(run));
|
|
87
78
|
return run;
|
|
88
79
|
}
|
|
89
|
-
/** Await in-flight
|
|
80
|
+
/** Await in-flight telemetry posts. Use with Worker/Vercel `waitUntil`. */
|
|
90
81
|
export async function drainCelinaAnalytics() {
|
|
91
82
|
await Promise.allSettled([...inflight]);
|
|
92
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events-stats.js","sourceRoot":"","sources":["../../../src/analytics/events-stats.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"events-stats.js","sourceRoot":"","sources":["../../../src/analytics/events-stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import type { SdkConfig } from "../config/sdk-config.js";
|
|
2
2
|
/** Production ingest URL for successful celina-tagged Celo transactions. */
|
|
3
3
|
export declare const DEFAULT_STATS_API_BASE_URL = "https://api.stats.usecelina.xyz";
|
|
4
|
+
export declare function resolveStatsApiBaseUrl(config?: Pick<SdkConfig, "statsApiBaseUrl">): string;
|
|
4
5
|
/** Apply `createCelinaClient()` on-chain stats options to the process-wide reporter. */
|
|
5
6
|
export declare function applyOnchainStatsConfig(config: SdkConfig): void;
|
|
6
7
|
/** Test-only: replace `fetch` used by {@link reportCelinaOnchainTxn}. */
|
|
7
8
|
export declare function setOnchainStatsFetchForTests(fn: typeof fetch | null): void;
|
|
8
|
-
/** Test-only: restore default
|
|
9
|
+
/** Test-only: restore the default base URL. */
|
|
9
10
|
export declare function resetOnchainStatsConfigForTests(): void;
|
|
10
11
|
/**
|
|
11
12
|
* Fire-and-forget POST of a successful Celo tx hash to celina-stats-api.
|
|
12
|
-
* Never throws. No-ops when
|
|
13
|
+
* Never throws. No-ops when `hash` is not a 32-byte hex string.
|
|
13
14
|
*
|
|
14
15
|
* Call after `waitForTransactionReceipt` succeeds (MCP, wagmi apps, AA).
|
|
15
16
|
*/
|
|
@@ -5,7 +5,6 @@ let runtime = defaultRuntime();
|
|
|
5
5
|
let testFetch = null;
|
|
6
6
|
function defaultRuntime() {
|
|
7
7
|
return {
|
|
8
|
-
enabled: true,
|
|
9
8
|
baseUrl: DEFAULT_STATS_API_BASE_URL,
|
|
10
9
|
};
|
|
11
10
|
}
|
|
@@ -15,17 +14,7 @@ function envFlag(name) {
|
|
|
15
14
|
const value = process.env[name]?.trim();
|
|
16
15
|
return value ? value : undefined;
|
|
17
16
|
}
|
|
18
|
-
function
|
|
19
|
-
if (config?.onchainStatsEnabled === false)
|
|
20
|
-
return false;
|
|
21
|
-
const env = envFlag("CELINA_ONCHAIN_STATS_ENABLED");
|
|
22
|
-
if (env === "false" || env === "0")
|
|
23
|
-
return false;
|
|
24
|
-
if (config?.onchainStatsEnabled === true)
|
|
25
|
-
return true;
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
function resolveBaseUrl(config) {
|
|
17
|
+
export function resolveStatsApiBaseUrl(config) {
|
|
29
18
|
const fromConfig = config?.statsApiBaseUrl?.trim();
|
|
30
19
|
const fromEnv = envFlag("CELINA_STATS_API_URL");
|
|
31
20
|
const raw = fromConfig || fromEnv || DEFAULT_STATS_API_BASE_URL;
|
|
@@ -34,28 +23,25 @@ function resolveBaseUrl(config) {
|
|
|
34
23
|
/** Apply `createCelinaClient()` on-chain stats options to the process-wide reporter. */
|
|
35
24
|
export function applyOnchainStatsConfig(config) {
|
|
36
25
|
runtime = {
|
|
37
|
-
|
|
38
|
-
baseUrl: resolveBaseUrl(config),
|
|
26
|
+
baseUrl: resolveStatsApiBaseUrl(config),
|
|
39
27
|
};
|
|
40
28
|
}
|
|
41
29
|
/** Test-only: replace `fetch` used by {@link reportCelinaOnchainTxn}. */
|
|
42
30
|
export function setOnchainStatsFetchForTests(fn) {
|
|
43
31
|
testFetch = fn;
|
|
44
32
|
}
|
|
45
|
-
/** Test-only: restore default
|
|
33
|
+
/** Test-only: restore the default base URL. */
|
|
46
34
|
export function resetOnchainStatsConfigForTests() {
|
|
47
35
|
runtime = defaultRuntime();
|
|
48
36
|
testFetch = null;
|
|
49
37
|
}
|
|
50
38
|
/**
|
|
51
39
|
* Fire-and-forget POST of a successful Celo tx hash to celina-stats-api.
|
|
52
|
-
* Never throws. No-ops when
|
|
40
|
+
* Never throws. No-ops when `hash` is not a 32-byte hex string.
|
|
53
41
|
*
|
|
54
42
|
* Call after `waitForTransactionReceipt` succeeds (MCP, wagmi apps, AA).
|
|
55
43
|
*/
|
|
56
44
|
export function reportCelinaOnchainTxn(hash) {
|
|
57
|
-
if (!runtime.enabled)
|
|
58
|
-
return;
|
|
59
45
|
const normalized = hash.trim();
|
|
60
46
|
if (!TX_HASH_RE.test(normalized))
|
|
61
47
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onchain-stats.js","sourceRoot":"","sources":["../../../src/analytics/onchain-stats.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,0BAA0B,GAAG,iCAAiC,CAAC;AAE5E,MAAM,UAAU,GAAG,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"onchain-stats.js","sourceRoot":"","sources":["../../../src/analytics/onchain-stats.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,0BAA0B,GAAG,iCAAiC,CAAC;AAE5E,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAMzC,IAAI,OAAO,GAAwB,cAAc,EAAE,CAAC;AAEpD,IAAI,SAAS,GAAwB,IAAI,CAAC;AAE1C,SAAS,cAAc;IACrB,OAAO;QACL,OAAO,EAAE,0BAA0B;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,IAAI,OAAO,OAAO,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAA2C;IAChF,MAAM,UAAU,GAAG,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,UAAU,IAAI,OAAO,IAAI,0BAA0B,CAAC;IAChE,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,OAAO,GAAG;QACR,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,4BAA4B,CAAC,EAAuB;IAClE,SAAS,GAAG,EAAE,CAAC;AACjB,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,+BAA+B;IAC7C,OAAO,GAAG,cAAc,EAAE,CAAC;IAC3B,SAAS,GAAG,IAAI,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO;IAEzC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,UAAU,CAAC;IACzC,MAAM,OAAO,GAAG,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IAC9C,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,OAAO;IAE1C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;SAC3C,CAAC,CAAC;QACH,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACnD,OAAO,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC;AACH,CAAC"}
|
|
@@ -22,7 +22,7 @@ function eventNameForSdkMethod(methodKey) {
|
|
|
22
22
|
* to celina-stats-api.
|
|
23
23
|
*/
|
|
24
24
|
export function wrapServiceForAnalytics(serviceKey, service, config) {
|
|
25
|
-
if (!isAnalyticsEnabled(
|
|
25
|
+
if (!isAnalyticsEnabled()) {
|
|
26
26
|
return service;
|
|
27
27
|
}
|
|
28
28
|
return new Proxy(service, {
|
|
@@ -1 +1 @@
|
|
|
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;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,SAAiB;IAC9C,MAAM,KAAK,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC;IAC/B,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,EAAE,CAAC;QAC3E,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,OAAU,EACV,MAAiB;IAEjB,IAAI,CAAC,kBAAkB,
|
|
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;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,SAAiB;IAC9C,MAAM,KAAK,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC;IAC/B,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,EAAE,CAAC;QAC3E,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,OAAU,EACV,MAAiB;IAEjB,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC1B,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,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACnD,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,11 +8,6 @@ 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
|
-
/**
|
|
12
|
-
* Read telemetry reported to Amplitude (default on).
|
|
13
|
-
* Opt out with `analyticsEnabled: false`.
|
|
14
|
-
*/
|
|
15
|
-
analyticsEnabled?: boolean;
|
|
16
11
|
/**
|
|
17
12
|
* `device_id` reported with telemetry events. When omitted, auto-detected from the
|
|
18
13
|
* consuming package `package.json` name (sanitized, e.g. `celeste_ai`,
|
|
@@ -26,14 +21,8 @@ export interface SdkConfig {
|
|
|
26
21
|
*/
|
|
27
22
|
analyticsWalletAddress?: string;
|
|
28
23
|
/**
|
|
29
|
-
*
|
|
30
|
-
* Opt out with `onchainStatsEnabled: false` or `CELINA_ONCHAIN_STATS_ENABLED=false`.
|
|
31
|
-
*/
|
|
32
|
-
onchainStatsEnabled?: boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Override celina-stats-api base URL for on-chain hash reporting
|
|
24
|
+
* Override celina-stats-api base URL for on-chain hash reporting and read telemetry
|
|
35
25
|
* (default `https://api.stats.usecelina.xyz`). Also reads `CELINA_STATS_API_URL`.
|
|
36
|
-
* Read-tool telemetry goes to Amplitude and does not use this URL.
|
|
37
26
|
*/
|
|
38
27
|
statsApiBaseUrl?: string;
|
|
39
28
|
/**
|
|
@@ -21,10 +21,8 @@ export function resolveSdkConfig(opts) {
|
|
|
21
21
|
(typeof process !== "undefined"
|
|
22
22
|
? process.env.SELF_AGENT_API_BASE
|
|
23
23
|
: undefined),
|
|
24
|
-
analyticsEnabled: opts?.analyticsEnabled,
|
|
25
24
|
analyticsDeviceId: opts?.analyticsDeviceId ?? detectConsumerPackageName(),
|
|
26
25
|
analyticsWalletAddress: opts?.analyticsWalletAddress,
|
|
27
|
-
onchainStatsEnabled: opts?.onchainStatsEnabled,
|
|
28
26
|
statsApiBaseUrl: opts?.statsApiBaseUrl ??
|
|
29
27
|
(typeof process !== "undefined"
|
|
30
28
|
? process.env.CELINA_STATS_API_URL
|
|
@@ -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;AAwC1E,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,iBAAiB,EACf,IAAI,EAAE,iBAAiB,IAAI,yBAAyB,EAAE;QACxD,sBAAsB,EAAE,IAAI,EAAE,sBAAsB;QACpD,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../tests/helpers/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../tests/helpers/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAOpD,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,GAAG,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACzC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,mBAAmB,CAAC,GAAoB,CAAC,CAAC,OAAO,CAAC;AAC3D,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,wBAAwB;QACpE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;KAC3C,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@andrewkimjoseph/celina-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.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,
|