@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.
Files changed (58) hide show
  1. package/README.md +1 -1
  2. package/build/analytics/config.d.ts +1 -4
  3. package/build/analytics/config.js +2 -12
  4. package/build/analytics/config.js.map +1 -1
  5. package/build/analytics/consumer-package.d.ts +2 -2
  6. package/build/analytics/consumer-package.js +2 -2
  7. package/build/analytics/consumer-package.js.map +1 -1
  8. package/build/analytics/{amplitude.d.ts → events-stats.d.ts} +9 -3
  9. package/build/analytics/events-stats.js +97 -0
  10. package/build/analytics/events-stats.js.map +1 -0
  11. package/build/analytics/wrap-service.d.ts +2 -1
  12. package/build/analytics/wrap-service.js +3 -2
  13. package/build/analytics/wrap-service.js.map +1 -1
  14. package/build/config/sdk-config.d.ts +8 -6
  15. package/build/config/sdk-config.js +0 -1
  16. package/build/config/sdk-config.js.map +1 -1
  17. package/build/index.d.ts +1 -1
  18. package/build/index.js +1 -1
  19. package/build/index.js.map +1 -1
  20. package/build/services/agentkarma.service.d.ts +1 -1
  21. package/build/services/agentkarma.service.js +1 -1
  22. package/build/simulation/index.d.ts +1 -1
  23. package/build/simulation/index.js +1 -1
  24. package/build/simulation/index.js.map +1 -1
  25. package/build/simulation/simulate-prepared-step.d.ts +20 -0
  26. package/build/simulation/simulate-prepared-step.js +47 -0
  27. package/build/simulation/simulate-prepared-step.js.map +1 -1
  28. package/build/src/analytics/config.d.ts +1 -4
  29. package/build/src/analytics/config.js +2 -12
  30. package/build/src/analytics/config.js.map +1 -1
  31. package/build/src/analytics/consumer-package.d.ts +2 -2
  32. package/build/src/analytics/consumer-package.js +2 -2
  33. package/build/src/analytics/consumer-package.js.map +1 -1
  34. package/build/src/analytics/{amplitude.d.ts → events-stats.d.ts} +9 -3
  35. package/build/src/analytics/events-stats.js +97 -0
  36. package/build/src/analytics/events-stats.js.map +1 -0
  37. package/build/src/analytics/wrap-service.d.ts +2 -1
  38. package/build/src/analytics/wrap-service.js +3 -2
  39. package/build/src/analytics/wrap-service.js.map +1 -1
  40. package/build/src/config/sdk-config.d.ts +8 -6
  41. package/build/src/config/sdk-config.js +0 -1
  42. package/build/src/config/sdk-config.js.map +1 -1
  43. package/build/src/index.d.ts +1 -1
  44. package/build/src/index.js +1 -1
  45. package/build/src/index.js.map +1 -1
  46. package/build/src/services/agentkarma.service.d.ts +1 -1
  47. package/build/src/services/agentkarma.service.js +1 -1
  48. package/build/src/simulation/index.d.ts +1 -1
  49. package/build/src/simulation/index.js +1 -1
  50. package/build/src/simulation/index.js.map +1 -1
  51. package/build/src/simulation/simulate-prepared-step.d.ts +20 -0
  52. package/build/src/simulation/simulate-prepared-step.js +47 -0
  53. package/build/src/simulation/simulate-prepared-step.js.map +1 -1
  54. package/package.json +1 -2
  55. package/build/analytics/amplitude.js +0 -85
  56. package/build/analytics/amplitude.js.map +0 -1
  57. package/build/src/analytics/amplitude.js +0 -85
  58. 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":"AACA,OAAO,EACL,kBAAkB,EAClB,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAe7D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAC;AAC1C,IAAI,WAAW,GAOJ,IAAI,CAAC;AAChB,IAAI,SAAS,GAAwB,IAAI,CAAC;AAE1C,8EAA8E;AAC9E,MAAM,UAAU,kBAAkB,CAChC,EAOQ;IAER,WAAW,GAAG,EAAE,CAAC;AACnB,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,2BAA2B,CAAC,EAAuB;IACjE,SAAS,GAAG,EAAE,CAAC;AACjB,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,wGAAwG;AACxG,SAAS,cAAc,CAAC,MAAiB;IACvC,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IAClD,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,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,MAAiB,EAAE,OAAqB;IAC/D,MAAM,OAAO,GAAG,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IAC9C,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;IACvC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,SAAiB,EACjB,MAAiB,EACjB,OAA6B;IAE7B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,OAAO;QACpB,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;QACjE,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACjF,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAiB;QAC5B,QAAQ,EAAE,cAAc,EAAE;QAC1B,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC;QACjC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACrC,CAAC;IAEF,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,YAAY,CAC1B,SAAiB,EACjB,MAAiB,EACjB,OAA6B;IAE7B,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACzD,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,oBAAoB,EAAE,CAAC;AAC/B,CAAC"}
@@ -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 emit Amplitude events (MCP tool names).
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 emit Amplitude events (MCP tool names).
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,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAEpE;;GAEG;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"}
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
- /** Amplitude read telemetry (default on; opt out with `analyticsEnabled: false`). */
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
- * Amplitude `device_id`. When omitted, auto-detected from the consuming package
17
- * `package.json` name (sanitized, e.g. `celeste_ai`, `andrewkimjoseph_celina_mcp`),
18
- * then `celina-sdk`.
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;AAgD1E,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,eAAe,EAAE,IAAI,EAAE,eAAe;QACtC,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"}
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"}
@@ -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/amplitude.js";
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). */
@@ -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/amplitude.js";
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). */
@@ -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 Amplitude analytics proxy: this
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 Amplitude analytics proxy: this
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,GAGrB,MAAM,6BAA6B,CAAC"}
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;AActF,SAAS,WAAW,CAClB,OAAsB,EACtB,IAAgB;IAOhB,OAAO;QACL,OAAO;QACP,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAQ;QAChC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAgB,EAAE,KAAc;IAC9D,MAAM,IAAI,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpE,IAAI,oCAAoC,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,CACL,0BAA0B,IAAI,CAAC,WAAW,6BAA6B,IAAI,GAAG,CAC/E,CAAC;IACJ,CAAC;IAED,OAAO,0BAA0B,IAAI,CAAC,WAAW,MAAM,IAAI,EAAE,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,YAA0B,EAC1B,MAAkC,EAClC,OAAqC;IAErC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,CAAC;IAE7C,IAAI,CAAC;QACH,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC;YACzB,MAAM,YAAY,CAAC,WAAW,CAAC;gBAC7B,GAAG,OAAO;gBACV,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACE,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,MAAM,YAAY,CAAC,IAAI,CAAC;YACtB,GAAG,OAAO;YACV,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC;AACH,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.25.26",
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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"}