@aui-x/prism 0.0.1

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 (47) hide show
  1. package/LICENSE +11 -0
  2. package/README.md +195 -0
  3. package/dist/client-B9WXHjpz.cjs +192 -0
  4. package/dist/client-B9WXHjpz.cjs.map +1 -0
  5. package/dist/client-BSsSpkZY.d.cts +157 -0
  6. package/dist/client-BSsSpkZY.d.cts.map +1 -0
  7. package/dist/client-BrZstMQX.d.ts +157 -0
  8. package/dist/client-BrZstMQX.d.ts.map +1 -0
  9. package/dist/client-C7RiAn7a.js +174 -0
  10. package/dist/client-C7RiAn7a.js.map +1 -0
  11. package/dist/core.cjs +6 -0
  12. package/dist/core.d.cts +2 -0
  13. package/dist/core.d.ts +2 -0
  14. package/dist/core.js +3 -0
  15. package/dist/index.cjs +12 -0
  16. package/dist/index.d.cts +5 -0
  17. package/dist/index.d.ts +5 -0
  18. package/dist/index.js +6 -0
  19. package/dist/integrations/ai-sdk.cjs +26 -0
  20. package/dist/integrations/ai-sdk.cjs.map +1 -0
  21. package/dist/integrations/ai-sdk.d.cts +18 -0
  22. package/dist/integrations/ai-sdk.d.cts.map +1 -0
  23. package/dist/integrations/ai-sdk.d.ts +18 -0
  24. package/dist/integrations/ai-sdk.d.ts.map +1 -0
  25. package/dist/integrations/ai-sdk.js +25 -0
  26. package/dist/integrations/ai-sdk.js.map +1 -0
  27. package/dist/integrations/anthropic.cjs +226 -0
  28. package/dist/integrations/anthropic.cjs.map +1 -0
  29. package/dist/integrations/anthropic.d.cts +20 -0
  30. package/dist/integrations/anthropic.d.cts.map +1 -0
  31. package/dist/integrations/anthropic.d.ts +20 -0
  32. package/dist/integrations/anthropic.d.ts.map +1 -0
  33. package/dist/integrations/anthropic.js +224 -0
  34. package/dist/integrations/anthropic.js.map +1 -0
  35. package/dist/integrations/openai.cjs +227 -0
  36. package/dist/integrations/openai.cjs.map +1 -0
  37. package/dist/integrations/openai.d.cts +20 -0
  38. package/dist/integrations/openai.d.cts.map +1 -0
  39. package/dist/integrations/openai.d.ts +20 -0
  40. package/dist/integrations/openai.d.ts.map +1 -0
  41. package/dist/integrations/openai.js +225 -0
  42. package/dist/integrations/openai.js.map +1 -0
  43. package/dist/wrapper-7jRyp54U.js +242 -0
  44. package/dist/wrapper-7jRyp54U.js.map +1 -0
  45. package/dist/wrapper-ByspXfxS.cjs +247 -0
  46. package/dist/wrapper-ByspXfxS.cjs.map +1 -0
  47. package/package.json +103 -0
@@ -0,0 +1,157 @@
1
+ //#region src/types.d.ts
2
+ interface AuixPrismConfig {
3
+ apiKey: string;
4
+ baseUrl?: string;
5
+ project?: string;
6
+ sessionId?: string;
7
+ /** Custom transport — bypasses HTTP when provided. */
8
+ transport?: (events: TraceEvent[]) => Promise<void>;
9
+ /** Called when a flush fails after retry. */
10
+ onFlushError?: (error: unknown) => void;
11
+ }
12
+ interface TraceOptions {
13
+ name: string;
14
+ model?: string;
15
+ provider?: string;
16
+ endUserId?: string;
17
+ tags?: string[];
18
+ metadata?: Record<string, unknown>;
19
+ }
20
+ interface TraceResult {
21
+ trace: TraceHandle;
22
+ finish: (opts?: TraceEndOptions) => Promise<void>;
23
+ }
24
+ interface TraceEndOptions {
25
+ output?: string;
26
+ status?: "completed" | "error";
27
+ totalTokens?: number;
28
+ promptTokens?: number;
29
+ completionTokens?: number;
30
+ }
31
+ type TraceEvent = {
32
+ type: "trace.start";
33
+ traceId: string;
34
+ name?: string;
35
+ input?: unknown;
36
+ model?: string;
37
+ provider?: string;
38
+ endUserId?: string;
39
+ metadata?: Record<string, unknown>;
40
+ tags?: string[];
41
+ project?: string;
42
+ sessionId?: string;
43
+ startedAt: string;
44
+ } | {
45
+ type: "trace.end";
46
+ traceId: string;
47
+ output?: unknown;
48
+ status: "completed" | "error";
49
+ error?: string;
50
+ totalTokens?: number;
51
+ promptTokens?: number;
52
+ completionTokens?: number;
53
+ ttftMs?: number;
54
+ latencyMs?: number;
55
+ endedAt: string;
56
+ } | {
57
+ type: "span.start";
58
+ traceId: string;
59
+ spanId: string;
60
+ parentSpanId?: string;
61
+ name: string;
62
+ spanType: "llm" | "tool" | "retrieval" | "custom";
63
+ input?: unknown;
64
+ model?: string;
65
+ provider?: string;
66
+ metadata?: Record<string, unknown>;
67
+ startedAt: string;
68
+ } | {
69
+ type: "span.end";
70
+ traceId: string;
71
+ spanId: string;
72
+ output?: unknown;
73
+ status: "completed" | "error";
74
+ error?: string;
75
+ totalTokens?: number;
76
+ promptTokens?: number;
77
+ completionTokens?: number;
78
+ ttftMs?: number;
79
+ latencyMs?: number;
80
+ endedAt: string;
81
+ };
82
+ //#endregion
83
+ //#region src/client.d.ts
84
+ declare class AuixPrism {
85
+ private apiKey;
86
+ private baseUrl;
87
+ private project?;
88
+ private sessionId?;
89
+ private transport?;
90
+ private onFlushError?;
91
+ private events;
92
+ private timer;
93
+ private _flushChain;
94
+ constructor(config: AuixPrismConfig);
95
+ enqueue(event: TraceEvent): void;
96
+ flush(): Promise<void>;
97
+ startTrace(opts: {
98
+ name?: string;
99
+ input?: unknown;
100
+ model?: string;
101
+ provider?: string;
102
+ endUserId?: string;
103
+ metadata?: Record<string, unknown>;
104
+ tags?: string[];
105
+ }): TraceHandle;
106
+ startSpanOnTrace(traceId: string, opts: {
107
+ name: string;
108
+ type: "llm" | "tool" | "retrieval" | "custom";
109
+ input?: unknown;
110
+ model?: string;
111
+ provider?: string;
112
+ parentSpanId?: string;
113
+ metadata?: Record<string, unknown>;
114
+ }): SpanHandle;
115
+ trace(opts: TraceOptions): TraceResult;
116
+ destroy(): Promise<void>;
117
+ }
118
+ declare class TraceHandle {
119
+ private tracer;
120
+ readonly traceId: string;
121
+ private startedAt;
122
+ constructor(tracer: AuixPrism, traceId: string, startedAt: string);
123
+ startSpan(opts: {
124
+ name: string;
125
+ type: "llm" | "tool" | "retrieval" | "custom";
126
+ input?: unknown;
127
+ model?: string;
128
+ }): SpanHandle;
129
+ end(opts?: {
130
+ output?: unknown;
131
+ status?: "completed" | "error";
132
+ error?: string;
133
+ totalTokens?: number;
134
+ promptTokens?: number;
135
+ completionTokens?: number;
136
+ ttftMs?: number;
137
+ }): void;
138
+ }
139
+ declare class SpanHandle {
140
+ private tracer;
141
+ private traceId;
142
+ readonly spanId: string;
143
+ private startedAt;
144
+ constructor(tracer: AuixPrism, traceId: string, spanId: string, startedAt: string);
145
+ end(opts?: {
146
+ output?: unknown;
147
+ status?: "completed" | "error";
148
+ error?: string;
149
+ totalTokens?: number;
150
+ promptTokens?: number;
151
+ completionTokens?: number;
152
+ ttftMs?: number;
153
+ }): void;
154
+ }
155
+ //#endregion
156
+ export { TraceEndOptions as a, TraceResult as c, AuixPrismConfig as i, SpanHandle as n, TraceEvent as o, TraceHandle as r, TraceOptions as s, AuixPrism as t };
157
+ //# sourceMappingURL=client-BrZstMQX.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-BrZstMQX.d.ts","names":[],"sources":["../src/types.ts","../src/client.ts"],"mappings":";UAAiB,eAAA;EACf,MAAA;EACA,OAAA;EACA,OAAA;EACA,SAAA;EAHA;EAKA,SAAA,IAAa,MAAA,EAAQ,UAAA,OAAiB,OAAA;EAHtC;EAKA,YAAA,IAAgB,KAAA;AAAA;AAAA,UAGD,YAAA;EACf,IAAA;EACA,KAAA;EACA,QAAA;EACA,SAAA;EACA,IAAA;EACA,QAAA,GAAW,MAAA;AAAA;AAAA,UAGI,WAAA;EACf,KAAA,EAD0B,WAAA;EAE1B,MAAA,GAAS,IAAA,GAAO,eAAA,KAAoB,OAAA;AAAA;AAAA,UAGrB,eAAA;EACf,MAAA;EACA,MAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;AAAA;AAAA,KAGU,UAAA;EAEN,IAAA;EACA,OAAA;EACA,IAAA;EACA,KAAA;EACA,KAAA;EACA,QAAA;EACA,SAAA;EACA,QAAA,GAAW,MAAA;EACX,IAAA;EACA,OAAA;EACA,SAAA;EACA,SAAA;AAAA;EAGA,IAAA;EACA,OAAA;EACA,MAAA;EACA,MAAA;EACA,KAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,MAAA;EACA,SAAA;EACA,OAAA;AAAA;EAGA,IAAA;EACA,OAAA;EACA,MAAA;EACA,YAAA;EACA,IAAA;EACA,QAAA;EACA,KAAA;EACA,KAAA;EACA,QAAA;EACA,QAAA,GAAW,MAAA;EACX,SAAA;AAAA;EAGA,IAAA;EACA,OAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,KAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,MAAA;EACA,SAAA;EACA,OAAA;AAAA;;;cC1EO,SAAA;EAAA,QACH,MAAA;EAAA,QACA,OAAA;EAAA,QACA,OAAA;EAAA,QACA,SAAA;EAAA,QACA,SAAA;EAAA,QACA,YAAA;EAAA,QACA,MAAA;EAAA,QACA,KAAA;EAAA,QACA,WAAA;cAEI,MAAA,EAAQ,eAAA;EAUpB,OAAA,CAAQ,KAAA,EAAO,UAAA;EAOf,KAAA,CAAA,GAAS,OAAA;EA2BT,UAAA,CAAW,IAAA;IACT,IAAA;IACA,KAAA;IACA,KAAA;IACA,QAAA;IACA,SAAA;IACA,QAAA,GAAW,MAAA;IACX,IAAA;EAAA,IACE,WAAA;EAsBJ,gBAAA,CACE,OAAA,UACA,IAAA;IACE,IAAA;IACA,IAAA;IACA,KAAA;IACA,KAAA;IACA,QAAA;IACA,YAAA;IACA,QAAA,GAAW,MAAA;EAAA,IAEZ,UAAA;EAqBH,KAAA,CAAM,IAAA,EAAM,YAAA,GAAe,WAAA;EAS3B,OAAA,CAAA,GAAW,OAAA;AAAA;AAAA,cAMA,WAAA;EAAA,QAED,MAAA;EAAA,SACC,OAAA;EAAA,QACD,SAAA;cAFA,MAAA,EAAQ,SAAA,EACP,OAAA,UACD,SAAA;EAGV,SAAA,CAAU,IAAA;IACR,IAAA;IACA,IAAA;IACA,KAAA;IACA,KAAA;EAAA,IACE,UAAA;EAkBJ,GAAA,CAAI,IAAA;IACF,MAAA;IACA,MAAA;IACA,KAAA;IACA,WAAA;IACA,YAAA;IACA,gBAAA;IACA,MAAA;EAAA;AAAA;AAAA,cAsBS,UAAA;EAAA,QAED,MAAA;EAAA,QACA,OAAA;EAAA,SACC,MAAA;EAAA,QACD,SAAA;cAHA,MAAA,EAAQ,SAAA,EACR,OAAA,UACC,MAAA,UACD,SAAA;EAGV,GAAA,CAAI,IAAA;IACF,MAAA;IACA,MAAA;IACA,KAAA;IACA,WAAA;IACA,YAAA;IACA,gBAAA;IACA,MAAA;EAAA;AAAA"}
@@ -0,0 +1,174 @@
1
+ //#region src/utils.ts
2
+ const CHARS = "0123456789abcdefghjkmnpqrstvwxyz";
3
+ function ulid() {
4
+ const ts = Date.now().toString(36);
5
+ let rand = "";
6
+ for (let i = 0; i < 16; i++) rand += CHARS[Math.floor(Math.random() * 32)];
7
+ return ts + rand;
8
+ }
9
+ function nowISO() {
10
+ return (/* @__PURE__ */ new Date()).toISOString();
11
+ }
12
+
13
+ //#endregion
14
+ //#region src/client.ts
15
+ const FLUSH_INTERVAL_MS = 1e3;
16
+ const FLUSH_BATCH_SIZE = 10;
17
+ var AuixPrism = class {
18
+ constructor(config) {
19
+ this.events = [];
20
+ this._flushChain = Promise.resolve();
21
+ this.apiKey = config.apiKey;
22
+ this.baseUrl = config.baseUrl ?? "https://api.auix.dev";
23
+ this.project = config.project;
24
+ this.sessionId = config.sessionId;
25
+ this.transport = config.transport;
26
+ this.onFlushError = config.onFlushError;
27
+ this.timer = setInterval(() => this.flush(), FLUSH_INTERVAL_MS);
28
+ }
29
+ enqueue(event) {
30
+ this.events.push(event);
31
+ if (this.events.length >= FLUSH_BATCH_SIZE) this.flush();
32
+ }
33
+ flush() {
34
+ if (this.events.length === 0) return this._flushChain;
35
+ const batch = this.events.splice(0);
36
+ const send = () => {
37
+ if (this.transport) return this.transport(batch);
38
+ return fetch(`${this.baseUrl}/v1/prism/ingest`, {
39
+ method: "POST",
40
+ headers: {
41
+ "Content-Type": "application/json",
42
+ Authorization: `Bearer ${this.apiKey}`
43
+ },
44
+ body: JSON.stringify({ events: batch })
45
+ }).then(() => {});
46
+ };
47
+ this._flushChain = this._flushChain.then(() => send().catch(() => send().catch((err) => {
48
+ console.warn("[@auix/prism] flush failed after retry", err);
49
+ this.onFlushError?.(err);
50
+ })));
51
+ return this._flushChain;
52
+ }
53
+ startTrace(opts) {
54
+ const traceId = ulid();
55
+ const startedAt = nowISO();
56
+ this.enqueue({
57
+ type: "trace.start",
58
+ traceId,
59
+ name: opts.name,
60
+ input: opts.input,
61
+ model: opts.model,
62
+ provider: opts.provider,
63
+ endUserId: opts.endUserId,
64
+ metadata: opts.metadata,
65
+ tags: opts.tags,
66
+ project: this.project,
67
+ sessionId: this.sessionId,
68
+ startedAt
69
+ });
70
+ return new TraceHandle(this, traceId, startedAt);
71
+ }
72
+ startSpanOnTrace(traceId, opts) {
73
+ const spanId = ulid();
74
+ const startedAt = nowISO();
75
+ this.enqueue({
76
+ type: "span.start",
77
+ traceId,
78
+ spanId,
79
+ parentSpanId: opts.parentSpanId,
80
+ name: opts.name,
81
+ spanType: opts.type,
82
+ input: opts.input,
83
+ model: opts.model,
84
+ provider: opts.provider,
85
+ metadata: opts.metadata,
86
+ startedAt
87
+ });
88
+ return new SpanHandle(this, traceId, spanId, startedAt);
89
+ }
90
+ trace(opts) {
91
+ const traceHandle = this.startTrace(opts);
92
+ const finish = async (endOpts) => {
93
+ traceHandle.end(endOpts);
94
+ await this.destroy();
95
+ };
96
+ return {
97
+ trace: traceHandle,
98
+ finish
99
+ };
100
+ }
101
+ destroy() {
102
+ clearInterval(this.timer);
103
+ return this.flush();
104
+ }
105
+ };
106
+ var TraceHandle = class {
107
+ constructor(tracer, traceId, startedAt) {
108
+ this.tracer = tracer;
109
+ this.traceId = traceId;
110
+ this.startedAt = startedAt;
111
+ }
112
+ startSpan(opts) {
113
+ const spanId = ulid();
114
+ const startedAt = nowISO();
115
+ this.tracer.enqueue({
116
+ type: "span.start",
117
+ traceId: this.traceId,
118
+ spanId,
119
+ name: opts.name,
120
+ spanType: opts.type,
121
+ input: opts.input,
122
+ model: opts.model,
123
+ startedAt
124
+ });
125
+ return new SpanHandle(this.tracer, this.traceId, spanId, startedAt);
126
+ }
127
+ end(opts) {
128
+ const endedAt = nowISO();
129
+ const latencyMs = new Date(endedAt).getTime() - new Date(this.startedAt).getTime();
130
+ this.tracer.enqueue({
131
+ type: "trace.end",
132
+ traceId: this.traceId,
133
+ output: opts?.output,
134
+ status: opts?.status ?? "completed",
135
+ error: opts?.error,
136
+ totalTokens: opts?.totalTokens,
137
+ promptTokens: opts?.promptTokens,
138
+ completionTokens: opts?.completionTokens,
139
+ ttftMs: opts?.ttftMs,
140
+ latencyMs,
141
+ endedAt
142
+ });
143
+ }
144
+ };
145
+ var SpanHandle = class {
146
+ constructor(tracer, traceId, spanId, startedAt) {
147
+ this.tracer = tracer;
148
+ this.traceId = traceId;
149
+ this.spanId = spanId;
150
+ this.startedAt = startedAt;
151
+ }
152
+ end(opts) {
153
+ const endedAt = nowISO();
154
+ const latencyMs = new Date(endedAt).getTime() - new Date(this.startedAt).getTime();
155
+ this.tracer.enqueue({
156
+ type: "span.end",
157
+ traceId: this.traceId,
158
+ spanId: this.spanId,
159
+ output: opts?.output,
160
+ status: opts?.status ?? "completed",
161
+ error: opts?.error,
162
+ totalTokens: opts?.totalTokens,
163
+ promptTokens: opts?.promptTokens,
164
+ completionTokens: opts?.completionTokens,
165
+ ttftMs: opts?.ttftMs,
166
+ latencyMs,
167
+ endedAt
168
+ });
169
+ }
170
+ };
171
+
172
+ //#endregion
173
+ export { SpanHandle as n, TraceHandle as r, AuixPrism as t };
174
+ //# sourceMappingURL=client-C7RiAn7a.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-C7RiAn7a.js","names":[],"sources":["../src/utils.ts","../src/client.ts"],"sourcesContent":["const CHARS = \"0123456789abcdefghjkmnpqrstvwxyz\";\n\nexport function ulid(): string {\n const ts = Date.now().toString(36);\n let rand = \"\";\n for (let i = 0; i < 16; i++) {\n rand += CHARS[Math.floor(Math.random() * CHARS.length)];\n }\n return ts + rand;\n}\n\nexport function nowISO(): string {\n return new Date().toISOString();\n}\n","import type {\n AuixPrismConfig,\n TraceEndOptions,\n TraceEvent,\n TraceOptions,\n TraceResult,\n} from \"./types\";\nimport { nowISO, ulid } from \"./utils\";\n\nconst FLUSH_INTERVAL_MS = 1000;\nconst FLUSH_BATCH_SIZE = 10;\n\nexport class AuixPrism {\n private apiKey: string;\n private baseUrl: string;\n private project?: string;\n private sessionId?: string;\n private transport?: (events: TraceEvent[]) => Promise<void>;\n private onFlushError?: (error: unknown) => void;\n private events: TraceEvent[] = [];\n private timer: ReturnType<typeof setInterval>;\n private _flushChain: Promise<void> = Promise.resolve();\n\n constructor(config: AuixPrismConfig) {\n this.apiKey = config.apiKey;\n this.baseUrl = config.baseUrl ?? \"https://api.auix.dev\";\n this.project = config.project;\n this.sessionId = config.sessionId;\n this.transport = config.transport;\n this.onFlushError = config.onFlushError;\n this.timer = setInterval(() => this.flush(), FLUSH_INTERVAL_MS);\n }\n\n enqueue(event: TraceEvent): void {\n this.events.push(event);\n if (this.events.length >= FLUSH_BATCH_SIZE) {\n this.flush();\n }\n }\n\n flush(): Promise<void> {\n if (this.events.length === 0) return this._flushChain;\n\n const batch = this.events.splice(0);\n const send = () => {\n if (this.transport) return this.transport(batch);\n return fetch(`${this.baseUrl}/v1/prism/ingest`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.apiKey}`,\n },\n body: JSON.stringify({ events: batch }),\n }).then(() => {});\n };\n\n this._flushChain = this._flushChain.then(() =>\n send().catch(() =>\n send().catch((err) => {\n console.warn(\"[@auix/prism] flush failed after retry\", err);\n this.onFlushError?.(err);\n }),\n ),\n );\n return this._flushChain;\n }\n\n startTrace(opts: {\n name?: string;\n input?: unknown;\n model?: string;\n provider?: string;\n endUserId?: string;\n metadata?: Record<string, unknown>;\n tags?: string[];\n }): TraceHandle {\n const traceId = ulid();\n const startedAt = nowISO();\n\n this.enqueue({\n type: \"trace.start\",\n traceId,\n name: opts.name,\n input: opts.input,\n model: opts.model,\n provider: opts.provider,\n endUserId: opts.endUserId,\n metadata: opts.metadata,\n tags: opts.tags,\n project: this.project,\n sessionId: this.sessionId,\n startedAt,\n });\n\n return new TraceHandle(this, traceId, startedAt);\n }\n\n startSpanOnTrace(\n traceId: string,\n opts: {\n name: string;\n type: \"llm\" | \"tool\" | \"retrieval\" | \"custom\";\n input?: unknown;\n model?: string;\n provider?: string;\n parentSpanId?: string;\n metadata?: Record<string, unknown>;\n },\n ): SpanHandle {\n const spanId = ulid();\n const startedAt = nowISO();\n\n this.enqueue({\n type: \"span.start\",\n traceId,\n spanId,\n parentSpanId: opts.parentSpanId,\n name: opts.name,\n spanType: opts.type,\n input: opts.input,\n model: opts.model,\n provider: opts.provider,\n metadata: opts.metadata,\n startedAt,\n });\n\n return new SpanHandle(this, traceId, spanId, startedAt);\n }\n\n trace(opts: TraceOptions): TraceResult {\n const traceHandle = this.startTrace(opts);\n const finish = async (endOpts?: TraceEndOptions) => {\n traceHandle.end(endOpts);\n await this.destroy();\n };\n return { trace: traceHandle, finish };\n }\n\n destroy(): Promise<void> {\n clearInterval(this.timer);\n return this.flush();\n }\n}\n\nexport class TraceHandle {\n constructor(\n private tracer: AuixPrism,\n readonly traceId: string,\n private startedAt: string,\n ) {}\n\n startSpan(opts: {\n name: string;\n type: \"llm\" | \"tool\" | \"retrieval\" | \"custom\";\n input?: unknown;\n model?: string;\n }): SpanHandle {\n const spanId = ulid();\n const startedAt = nowISO();\n\n this.tracer.enqueue({\n type: \"span.start\",\n traceId: this.traceId,\n spanId,\n name: opts.name,\n spanType: opts.type,\n input: opts.input,\n model: opts.model,\n startedAt,\n });\n\n return new SpanHandle(this.tracer, this.traceId, spanId, startedAt);\n }\n\n end(opts?: {\n output?: unknown;\n status?: \"completed\" | \"error\";\n error?: string;\n totalTokens?: number;\n promptTokens?: number;\n completionTokens?: number;\n ttftMs?: number;\n }): void {\n const endedAt = nowISO();\n const latencyMs =\n new Date(endedAt).getTime() - new Date(this.startedAt).getTime();\n\n this.tracer.enqueue({\n type: \"trace.end\",\n traceId: this.traceId,\n output: opts?.output,\n status: opts?.status ?? \"completed\",\n error: opts?.error,\n totalTokens: opts?.totalTokens,\n promptTokens: opts?.promptTokens,\n completionTokens: opts?.completionTokens,\n ttftMs: opts?.ttftMs,\n latencyMs,\n endedAt,\n });\n }\n}\n\nexport class SpanHandle {\n constructor(\n private tracer: AuixPrism,\n private traceId: string,\n readonly spanId: string,\n private startedAt: string,\n ) {}\n\n end(opts?: {\n output?: unknown;\n status?: \"completed\" | \"error\";\n error?: string;\n totalTokens?: number;\n promptTokens?: number;\n completionTokens?: number;\n ttftMs?: number;\n }): void {\n const endedAt = nowISO();\n const latencyMs =\n new Date(endedAt).getTime() - new Date(this.startedAt).getTime();\n\n this.tracer.enqueue({\n type: \"span.end\",\n traceId: this.traceId,\n spanId: this.spanId,\n output: opts?.output,\n status: opts?.status ?? \"completed\",\n error: opts?.error,\n totalTokens: opts?.totalTokens,\n promptTokens: opts?.promptTokens,\n completionTokens: opts?.completionTokens,\n ttftMs: opts?.ttftMs,\n latencyMs,\n endedAt,\n });\n }\n}\n"],"mappings":"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"}
package/dist/core.cjs ADDED
@@ -0,0 +1,6 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_client = require('./client-B9WXHjpz.cjs');
3
+
4
+ exports.AuixPrism = require_client.AuixPrism;
5
+ exports.SpanHandle = require_client.SpanHandle;
6
+ exports.TraceHandle = require_client.TraceHandle;
@@ -0,0 +1,2 @@
1
+ import { a as TraceEndOptions, c as TraceResult, i as AuixPrismConfig, n as SpanHandle, o as TraceEvent, r as TraceHandle, s as TraceOptions, t as AuixPrism } from "./client-BSsSpkZY.cjs";
2
+ export { AuixPrism, type AuixPrismConfig, SpanHandle, type TraceEndOptions, type TraceEvent, TraceHandle, type TraceOptions, type TraceResult };
package/dist/core.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import { a as TraceEndOptions, c as TraceResult, i as AuixPrismConfig, n as SpanHandle, o as TraceEvent, r as TraceHandle, s as TraceOptions, t as AuixPrism } from "./client-BrZstMQX.js";
2
+ export { AuixPrism, type AuixPrismConfig, SpanHandle, type TraceEndOptions, type TraceEvent, TraceHandle, type TraceOptions, type TraceResult };
package/dist/core.js ADDED
@@ -0,0 +1,3 @@
1
+ import { n as SpanHandle, r as TraceHandle, t as AuixPrism } from "./client-C7RiAn7a.js";
2
+
3
+ export { AuixPrism, SpanHandle, TraceHandle };
package/dist/index.cjs ADDED
@@ -0,0 +1,12 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_client = require('./client-B9WXHjpz.cjs');
3
+ const require_integrations_ai_sdk = require('./integrations/ai-sdk.cjs');
4
+ const require_integrations_anthropic = require('./integrations/anthropic.cjs');
5
+ const require_integrations_openai = require('./integrations/openai.cjs');
6
+
7
+ exports.AuixPrism = require_client.AuixPrism;
8
+ exports.SpanHandle = require_client.SpanHandle;
9
+ exports.TraceHandle = require_client.TraceHandle;
10
+ exports.prismAISDK = require_integrations_ai_sdk.prismAISDK;
11
+ exports.prismAnthropic = require_integrations_anthropic.prismAnthropic;
12
+ exports.prismOpenAI = require_integrations_openai.prismOpenAI;
@@ -0,0 +1,5 @@
1
+ import { a as TraceEndOptions, c as TraceResult, i as AuixPrismConfig, n as SpanHandle, o as TraceEvent, r as TraceHandle, s as TraceOptions, t as AuixPrism } from "./client-BSsSpkZY.cjs";
2
+ import { AISDKPrismOptions, AISDKPrismResult, prismAISDK } from "./integrations/ai-sdk.cjs";
3
+ import { AnthropicPrismOptions, prismAnthropic } from "./integrations/anthropic.cjs";
4
+ import { OpenAIPrismOptions, prismOpenAI } from "./integrations/openai.cjs";
5
+ export { type AISDKPrismOptions, type AISDKPrismResult, type AnthropicPrismOptions, AuixPrism, type AuixPrismConfig, type OpenAIPrismOptions, SpanHandle, type TraceEndOptions, type TraceEvent, TraceHandle, type TraceOptions, type TraceResult, prismAISDK, prismAnthropic, prismOpenAI };
@@ -0,0 +1,5 @@
1
+ import { a as TraceEndOptions, c as TraceResult, i as AuixPrismConfig, n as SpanHandle, o as TraceEvent, r as TraceHandle, s as TraceOptions, t as AuixPrism } from "./client-BrZstMQX.js";
2
+ import { AISDKPrismOptions, AISDKPrismResult, prismAISDK } from "./integrations/ai-sdk.js";
3
+ import { AnthropicPrismOptions, prismAnthropic } from "./integrations/anthropic.js";
4
+ import { OpenAIPrismOptions, prismOpenAI } from "./integrations/openai.js";
5
+ export { type AISDKPrismOptions, type AISDKPrismResult, type AnthropicPrismOptions, AuixPrism, type AuixPrismConfig, type OpenAIPrismOptions, SpanHandle, type TraceEndOptions, type TraceEvent, TraceHandle, type TraceOptions, type TraceResult, prismAISDK, prismAnthropic, prismOpenAI };
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ import { n as SpanHandle, r as TraceHandle, t as AuixPrism } from "./client-C7RiAn7a.js";
2
+ import { prismAISDK } from "./integrations/ai-sdk.js";
3
+ import { prismAnthropic } from "./integrations/anthropic.js";
4
+ import { prismOpenAI } from "./integrations/openai.js";
5
+
6
+ export { AuixPrism, SpanHandle, TraceHandle, prismAISDK, prismAnthropic, prismOpenAI };
@@ -0,0 +1,26 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_wrapper = require('../wrapper-ByspXfxS.cjs');
3
+
4
+ //#region src/integrations/ai-sdk.ts
5
+ function prismAISDK(tracer, model, opts) {
6
+ const root = tracer.startTrace({
7
+ name: opts?.name,
8
+ endUserId: opts?.endUserId,
9
+ tags: opts?.tags,
10
+ metadata: opts?.metadata
11
+ });
12
+ return {
13
+ model: require_wrapper.wrapModelWithMiddleware(tracer, model, {
14
+ name: opts?.name,
15
+ parentTraceId: root.traceId
16
+ }),
17
+ end: async (endOpts) => {
18
+ root.end(endOpts);
19
+ await tracer.destroy();
20
+ }
21
+ };
22
+ }
23
+
24
+ //#endregion
25
+ exports.prismAISDK = prismAISDK;
26
+ //# sourceMappingURL=ai-sdk.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-sdk.cjs","names":["wrapModelWithMiddleware"],"sources":["../../src/integrations/ai-sdk.ts"],"sourcesContent":["import type { LanguageModelV3 } from \"@ai-sdk/provider\";\nimport type { AuixPrism } from \"../client\";\nimport type { TraceEndOptions } from \"../types\";\nimport { wrapModelWithMiddleware } from \"../wrapper\";\n\nexport interface AISDKPrismOptions {\n name?: string;\n tags?: string[];\n metadata?: Record<string, unknown>;\n endUserId?: string;\n}\n\nexport interface AISDKPrismResult {\n model: LanguageModelV3;\n end: (opts?: TraceEndOptions) => Promise<void>;\n}\n\nexport function prismAISDK(\n tracer: AuixPrism,\n model: LanguageModelV3,\n opts?: AISDKPrismOptions,\n): AISDKPrismResult {\n const root = tracer.startTrace({\n name: opts?.name,\n endUserId: opts?.endUserId,\n tags: opts?.tags,\n metadata: opts?.metadata,\n });\n\n const wrappedModel = wrapModelWithMiddleware(tracer, model, {\n name: opts?.name,\n parentTraceId: root.traceId,\n });\n\n return {\n model: wrappedModel,\n end: async (endOpts?) => {\n root.end(endOpts);\n await tracer.destroy();\n },\n };\n}\n"],"mappings":";;;;AAiBA,SAAgB,WACd,QACA,OACA,MACkB;CAClB,MAAM,OAAO,OAAO,WAAW;EAC7B,MAAM,MAAM;EACZ,WAAW,MAAM;EACjB,MAAM,MAAM;EACZ,UAAU,MAAM;EACjB,CAAC;AAOF,QAAO;EACL,OANmBA,wCAAwB,QAAQ,OAAO;GAC1D,MAAM,MAAM;GACZ,eAAe,KAAK;GACrB,CAAC;EAIA,KAAK,OAAO,YAAa;AACvB,QAAK,IAAI,QAAQ;AACjB,SAAM,OAAO,SAAS;;EAEzB"}
@@ -0,0 +1,18 @@
1
+ import { a as TraceEndOptions, t as AuixPrism } from "../client-BSsSpkZY.cjs";
2
+ import { LanguageModelV3 } from "@ai-sdk/provider";
3
+
4
+ //#region src/integrations/ai-sdk.d.ts
5
+ interface AISDKPrismOptions {
6
+ name?: string;
7
+ tags?: string[];
8
+ metadata?: Record<string, unknown>;
9
+ endUserId?: string;
10
+ }
11
+ interface AISDKPrismResult {
12
+ model: LanguageModelV3;
13
+ end: (opts?: TraceEndOptions) => Promise<void>;
14
+ }
15
+ declare function prismAISDK(tracer: AuixPrism, model: LanguageModelV3, opts?: AISDKPrismOptions): AISDKPrismResult;
16
+ //#endregion
17
+ export { AISDKPrismOptions, AISDKPrismResult, prismAISDK };
18
+ //# sourceMappingURL=ai-sdk.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-sdk.d.cts","names":[],"sources":["../../src/integrations/ai-sdk.ts"],"mappings":";;;;UAKiB,iBAAA;EACf,IAAA;EACA,IAAA;EACA,QAAA,GAAW,MAAA;EACX,SAAA;AAAA;AAAA,UAGe,gBAAA;EACf,KAAA,EAAO,eAAA;EACP,GAAA,GAAM,IAAA,GAAO,eAAA,KAAoB,OAAA;AAAA;AAAA,iBAGnB,UAAA,CACd,MAAA,EAAQ,SAAA,EACR,KAAA,EAAO,eAAA,EACP,IAAA,GAAO,iBAAA,GACN,gBAAA"}
@@ -0,0 +1,18 @@
1
+ import { a as TraceEndOptions, t as AuixPrism } from "../client-BrZstMQX.js";
2
+ import { LanguageModelV3 } from "@ai-sdk/provider";
3
+
4
+ //#region src/integrations/ai-sdk.d.ts
5
+ interface AISDKPrismOptions {
6
+ name?: string;
7
+ tags?: string[];
8
+ metadata?: Record<string, unknown>;
9
+ endUserId?: string;
10
+ }
11
+ interface AISDKPrismResult {
12
+ model: LanguageModelV3;
13
+ end: (opts?: TraceEndOptions) => Promise<void>;
14
+ }
15
+ declare function prismAISDK(tracer: AuixPrism, model: LanguageModelV3, opts?: AISDKPrismOptions): AISDKPrismResult;
16
+ //#endregion
17
+ export { AISDKPrismOptions, AISDKPrismResult, prismAISDK };
18
+ //# sourceMappingURL=ai-sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-sdk.d.ts","names":[],"sources":["../../src/integrations/ai-sdk.ts"],"mappings":";;;;UAKiB,iBAAA;EACf,IAAA;EACA,IAAA;EACA,QAAA,GAAW,MAAA;EACX,SAAA;AAAA;AAAA,UAGe,gBAAA;EACf,KAAA,EAAO,eAAA;EACP,GAAA,GAAM,IAAA,GAAO,eAAA,KAAoB,OAAA;AAAA;AAAA,iBAGnB,UAAA,CACd,MAAA,EAAQ,SAAA,EACR,KAAA,EAAO,eAAA,EACP,IAAA,GAAO,iBAAA,GACN,gBAAA"}
@@ -0,0 +1,25 @@
1
+ import { t as wrapModelWithMiddleware } from "../wrapper-7jRyp54U.js";
2
+
3
+ //#region src/integrations/ai-sdk.ts
4
+ function prismAISDK(tracer, model, opts) {
5
+ const root = tracer.startTrace({
6
+ name: opts?.name,
7
+ endUserId: opts?.endUserId,
8
+ tags: opts?.tags,
9
+ metadata: opts?.metadata
10
+ });
11
+ return {
12
+ model: wrapModelWithMiddleware(tracer, model, {
13
+ name: opts?.name,
14
+ parentTraceId: root.traceId
15
+ }),
16
+ end: async (endOpts) => {
17
+ root.end(endOpts);
18
+ await tracer.destroy();
19
+ }
20
+ };
21
+ }
22
+
23
+ //#endregion
24
+ export { prismAISDK };
25
+ //# sourceMappingURL=ai-sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-sdk.js","names":[],"sources":["../../src/integrations/ai-sdk.ts"],"sourcesContent":["import type { LanguageModelV3 } from \"@ai-sdk/provider\";\nimport type { AuixPrism } from \"../client\";\nimport type { TraceEndOptions } from \"../types\";\nimport { wrapModelWithMiddleware } from \"../wrapper\";\n\nexport interface AISDKPrismOptions {\n name?: string;\n tags?: string[];\n metadata?: Record<string, unknown>;\n endUserId?: string;\n}\n\nexport interface AISDKPrismResult {\n model: LanguageModelV3;\n end: (opts?: TraceEndOptions) => Promise<void>;\n}\n\nexport function prismAISDK(\n tracer: AuixPrism,\n model: LanguageModelV3,\n opts?: AISDKPrismOptions,\n): AISDKPrismResult {\n const root = tracer.startTrace({\n name: opts?.name,\n endUserId: opts?.endUserId,\n tags: opts?.tags,\n metadata: opts?.metadata,\n });\n\n const wrappedModel = wrapModelWithMiddleware(tracer, model, {\n name: opts?.name,\n parentTraceId: root.traceId,\n });\n\n return {\n model: wrappedModel,\n end: async (endOpts?) => {\n root.end(endOpts);\n await tracer.destroy();\n },\n };\n}\n"],"mappings":";;;AAiBA,SAAgB,WACd,QACA,OACA,MACkB;CAClB,MAAM,OAAO,OAAO,WAAW;EAC7B,MAAM,MAAM;EACZ,WAAW,MAAM;EACjB,MAAM,MAAM;EACZ,UAAU,MAAM;EACjB,CAAC;AAOF,QAAO;EACL,OANmB,wBAAwB,QAAQ,OAAO;GAC1D,MAAM,MAAM;GACZ,eAAe,KAAK;GACrB,CAAC;EAIA,KAAK,OAAO,YAAa;AACvB,QAAK,IAAI,QAAQ;AACjB,SAAM,OAAO,SAAS;;EAEzB"}