@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.
- package/LICENSE +11 -0
- package/README.md +195 -0
- package/dist/client-B9WXHjpz.cjs +192 -0
- package/dist/client-B9WXHjpz.cjs.map +1 -0
- package/dist/client-BSsSpkZY.d.cts +157 -0
- package/dist/client-BSsSpkZY.d.cts.map +1 -0
- package/dist/client-BrZstMQX.d.ts +157 -0
- package/dist/client-BrZstMQX.d.ts.map +1 -0
- package/dist/client-C7RiAn7a.js +174 -0
- package/dist/client-C7RiAn7a.js.map +1 -0
- package/dist/core.cjs +6 -0
- package/dist/core.d.cts +2 -0
- package/dist/core.d.ts +2 -0
- package/dist/core.js +3 -0
- package/dist/index.cjs +12 -0
- package/dist/index.d.cts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +6 -0
- package/dist/integrations/ai-sdk.cjs +26 -0
- package/dist/integrations/ai-sdk.cjs.map +1 -0
- package/dist/integrations/ai-sdk.d.cts +18 -0
- package/dist/integrations/ai-sdk.d.cts.map +1 -0
- package/dist/integrations/ai-sdk.d.ts +18 -0
- package/dist/integrations/ai-sdk.d.ts.map +1 -0
- package/dist/integrations/ai-sdk.js +25 -0
- package/dist/integrations/ai-sdk.js.map +1 -0
- package/dist/integrations/anthropic.cjs +226 -0
- package/dist/integrations/anthropic.cjs.map +1 -0
- package/dist/integrations/anthropic.d.cts +20 -0
- package/dist/integrations/anthropic.d.cts.map +1 -0
- package/dist/integrations/anthropic.d.ts +20 -0
- package/dist/integrations/anthropic.d.ts.map +1 -0
- package/dist/integrations/anthropic.js +224 -0
- package/dist/integrations/anthropic.js.map +1 -0
- package/dist/integrations/openai.cjs +227 -0
- package/dist/integrations/openai.cjs.map +1 -0
- package/dist/integrations/openai.d.cts +20 -0
- package/dist/integrations/openai.d.cts.map +1 -0
- package/dist/integrations/openai.d.ts +20 -0
- package/dist/integrations/openai.d.ts.map +1 -0
- package/dist/integrations/openai.js +225 -0
- package/dist/integrations/openai.js.map +1 -0
- package/dist/wrapper-7jRyp54U.js +242 -0
- package/dist/wrapper-7jRyp54U.js.map +1 -0
- package/dist/wrapper-ByspXfxS.cjs +247 -0
- package/dist/wrapper-ByspXfxS.cjs.map +1 -0
- 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;
|
package/dist/core.d.cts
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-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
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;
|
package/dist/index.d.cts
ADDED
|
@@ -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 };
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|