retrace-sdk 0.1.7 → 0.2.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 CHANGED
@@ -45,7 +45,7 @@ import { configure } from "retrace-sdk";
45
45
 
46
46
  configure({
47
47
  apiKey: "rt_live_...", // or RETRACE_API_KEY env var
48
- baseUrl: "https://api.retrace.yashbogam.me",
48
+ baseUrl: "https://api-retrace.yashbogam.me",
49
49
  projectId: "...", // or RETRACE_PROJECT_ID env var
50
50
  });
51
51
  ```
package/dist/config.d.ts CHANGED
@@ -4,6 +4,7 @@ export interface Config {
4
4
  wsUrl: string;
5
5
  projectId: string | undefined;
6
6
  enabled: boolean;
7
+ sampleRate: number;
7
8
  }
8
9
  export declare function configure(opts: Partial<Config>): Config;
9
10
  export declare function requireApiKey(): string;
package/dist/config.js CHANGED
@@ -4,6 +4,7 @@ const config = {
4
4
  wsUrl: "",
5
5
  projectId: process.env.RETRACE_PROJECT_ID || undefined,
6
6
  enabled: !["false", "0"].includes((process.env.RETRACE_ENABLED || "true").toLowerCase()),
7
+ sampleRate: parseFloat(process.env.RETRACE_SAMPLE_RATE || "1"),
7
8
  };
8
9
  config.wsUrl = config.baseUrl.replace("https://", "wss://").replace("http://", "ws://");
9
10
  export function configure(opts) {
package/dist/recorder.js CHANGED
@@ -94,16 +94,17 @@ export class TraceRecorder {
94
94
  }
95
95
  export function record(opts) {
96
96
  const cfg = getConfig();
97
- if (!cfg.enabled) {
98
- // Return a no-op recorder
99
- return new TraceRecorder(opts);
97
+ if (!cfg.enabled || Math.random() > cfg.sampleRate) {
98
+ // Return a no-op proxy that doesn't require API key or connect
99
+ const noop = {};
100
+ return new Proxy(noop, { get: (_t, prop) => typeof prop === "string" ? (() => noop) : undefined });
100
101
  }
101
102
  return new TraceRecorder(opts);
102
103
  }
103
104
  export function trace(fn, opts) {
104
105
  const cfg = getConfig();
105
106
  return (...args) => {
106
- if (!cfg.enabled)
107
+ if (!cfg.enabled || Math.random() > cfg.sampleRate)
107
108
  return fn(...args);
108
109
  const recorder = new TraceRecorder({
109
110
  name: opts?.name || fn.name || "anonymous",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "retrace-sdk",
3
- "version": "0.1.7",
3
+ "version": "0.2.0",
4
4
  "description": "The execution replay engine for AI agents. Record, replay, fork, and share agent executions.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -16,7 +16,7 @@
16
16
  "author": "Yash Bogam",
17
17
  "repository": {
18
18
  "type": "git",
19
- "url": "https://github.com/yash1511-bogam/retrace",
19
+ "url": "https://github.com/yash1511-bogam/retrace-sdk",
20
20
  "directory": "packages/sdk-typescript"
21
21
  },
22
22
  "homepage": "https://retrace.yashbogam.me/docs/sdk-typescript",