@memorilabs/axon 0.1.1-beta → 0.1.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/README.md +82 -67
- package/dist/errors/hook-error.d.ts.map +1 -1
- package/dist/errors/hook-error.js +1 -1
- package/dist/errors/hook-error.js.map +1 -1
- package/dist/errors/unsupported-provider-error.d.ts.map +1 -1
- package/dist/errors/unsupported-provider-error.js +2 -1
- package/dist/errors/unsupported-provider-error.js.map +1 -1
- package/dist/hooks/registry.d.ts +16 -7
- package/dist/hooks/registry.d.ts.map +1 -1
- package/dist/hooks/registry.js +14 -2
- package/dist/hooks/registry.js.map +1 -1
- package/dist/llm/registry.d.ts +10 -4
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +9 -2
- package/dist/llm/registry.js.map +1 -1
- package/dist/providers/anthropic/common.d.ts.map +1 -1
- package/dist/providers/anthropic/common.js +4 -1
- package/dist/providers/anthropic/common.js.map +1 -1
- package/dist/providers/anthropic/detect.d.ts +5 -0
- package/dist/providers/anthropic/detect.d.ts.map +1 -1
- package/dist/providers/anthropic/detect.js +5 -0
- package/dist/providers/anthropic/detect.js.map +1 -1
- package/dist/providers/anthropic/proxy.d.ts.map +1 -1
- package/dist/providers/anthropic/proxy.js +19 -4
- package/dist/providers/anthropic/proxy.js.map +1 -1
- package/dist/providers/anthropic/responses.d.ts +22 -0
- package/dist/providers/anthropic/responses.d.ts.map +1 -0
- package/dist/providers/anthropic/responses.js +2 -0
- package/dist/providers/anthropic/responses.js.map +1 -0
- package/dist/providers/anthropic/types.d.ts +11 -27
- package/dist/providers/anthropic/types.d.ts.map +1 -1
- package/dist/providers/gemini/common.d.ts +8 -0
- package/dist/providers/gemini/common.d.ts.map +1 -0
- package/dist/providers/gemini/common.js +46 -0
- package/dist/providers/gemini/common.js.map +1 -0
- package/dist/providers/gemini/detect.d.ts +7 -0
- package/dist/providers/gemini/detect.d.ts.map +1 -0
- package/dist/providers/gemini/detect.js +12 -0
- package/dist/providers/gemini/detect.js.map +1 -0
- package/dist/providers/gemini/index.d.ts +5 -0
- package/dist/providers/gemini/index.d.ts.map +1 -0
- package/dist/providers/gemini/index.js +10 -0
- package/dist/providers/gemini/index.js.map +1 -0
- package/dist/providers/gemini/proxy.d.ts +3 -0
- package/dist/providers/gemini/proxy.d.ts.map +1 -0
- package/dist/providers/gemini/proxy.js +72 -0
- package/dist/providers/gemini/proxy.js.map +1 -0
- package/dist/providers/gemini/responses.d.ts +17 -0
- package/dist/providers/gemini/responses.d.ts.map +1 -0
- package/dist/providers/gemini/responses.js +2 -0
- package/dist/providers/gemini/responses.js.map +1 -0
- package/dist/providers/gemini/types.d.ts +23 -0
- package/dist/providers/gemini/types.d.ts.map +1 -0
- package/dist/providers/gemini/types.js +2 -0
- package/dist/providers/gemini/types.js.map +1 -0
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai/detect.d.ts +5 -0
- package/dist/providers/openai/detect.d.ts.map +1 -1
- package/dist/providers/openai/detect.js +5 -0
- package/dist/providers/openai/detect.js.map +1 -1
- package/dist/providers/openai/proxy.d.ts.map +1 -1
- package/dist/providers/openai/proxy.js +9 -2
- package/dist/providers/openai/proxy.js.map +1 -1
- package/dist/providers/openai/responses.d.ts +9 -9
- package/dist/providers/openai/responses.d.ts.map +1 -1
- package/dist/providers/openai/types.d.ts +5 -0
- package/dist/providers/openai/types.d.ts.map +1 -1
- package/dist/providers/patcher.d.ts.map +1 -1
- package/dist/providers/patcher.js +2 -9
- package/dist/providers/patcher.js.map +1 -1
- package/dist/providers/telemetry.d.ts +16 -0
- package/dist/providers/telemetry.d.ts.map +1 -0
- package/dist/providers/telemetry.js +41 -0
- package/dist/providers/telemetry.js.map +1 -0
- package/dist/types/context.d.ts +9 -5
- package/dist/types/context.d.ts.map +1 -1
- package/dist/types/context.js +6 -2
- package/dist/types/context.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/llm.d.ts +15 -0
- package/dist/types/llm.d.ts.map +1 -1
- package/dist/types/registry.d.ts +14 -0
- package/dist/types/registry.d.ts.map +1 -0
- package/dist/types/registry.js +2 -0
- package/dist/types/registry.js.map +1 -0
- package/dist/utils/constants.d.ts +19 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +14 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/package.json +27 -14
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Message, LLMRequest, Usage, LLMResponse } from '../../types/index.js';
|
|
2
|
+
import { GeminiGenerateContentArgs } from './types.js';
|
|
3
|
+
export declare function geminiInputToMessages(contents: GeminiGenerateContentArgs['contents']): Message[];
|
|
4
|
+
export declare function messagesToGeminiInput(request: LLMRequest): GeminiGenerateContentArgs['contents'];
|
|
5
|
+
export declare function contentFromGemini(response: unknown): string;
|
|
6
|
+
export declare function usageFromGemini(response: unknown): Usage | undefined;
|
|
7
|
+
export declare function applyContentToGeminiResponse(raw: unknown, canonical: LLMResponse): void;
|
|
8
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAGvD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,yBAAyB,CAAC,UAAU,CAAC,GAAG,OAAO,EAAE,CAShG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAKhG;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAO3D;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CASpE;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CAOvF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export function geminiInputToMessages(contents) {
|
|
2
|
+
if (typeof contents === 'string')
|
|
3
|
+
return [{ role: 'user', content: contents }];
|
|
4
|
+
if (Array.isArray(contents)) {
|
|
5
|
+
return contents.map((c) => ({
|
|
6
|
+
role: (c.role === 'model' ? 'assistant' : 'user'),
|
|
7
|
+
content: c.parts.map((p) => p.text).join(''),
|
|
8
|
+
}));
|
|
9
|
+
}
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
export function messagesToGeminiInput(request) {
|
|
13
|
+
return request.messages.map((m) => ({
|
|
14
|
+
role: m.role === 'assistant' ? 'model' : m.role,
|
|
15
|
+
parts: [{ text: m.content }],
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
export function contentFromGemini(response) {
|
|
19
|
+
const r = response;
|
|
20
|
+
if (r.text)
|
|
21
|
+
return r.text;
|
|
22
|
+
if (r.candidates?.[0]?.content?.parts?.[0]?.text) {
|
|
23
|
+
return r.candidates[0].content.parts[0].text;
|
|
24
|
+
}
|
|
25
|
+
return '';
|
|
26
|
+
}
|
|
27
|
+
export function usageFromGemini(response) {
|
|
28
|
+
const r = response;
|
|
29
|
+
if (!r.usageMetadata)
|
|
30
|
+
return undefined;
|
|
31
|
+
return {
|
|
32
|
+
promptTokens: r.usageMetadata.promptTokenCount,
|
|
33
|
+
completionTokens: r.usageMetadata.candidatesTokenCount,
|
|
34
|
+
totalTokens: r.usageMetadata.totalTokenCount,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export function applyContentToGeminiResponse(raw, canonical) {
|
|
38
|
+
const r = raw;
|
|
39
|
+
if (r.candidates?.[0]?.content?.parts?.[0]) {
|
|
40
|
+
r.candidates[0].content.parts[0].text = canonical.content;
|
|
41
|
+
}
|
|
42
|
+
else if (r.text !== undefined) {
|
|
43
|
+
r.text = canonical.content;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/providers/gemini/common.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,qBAAqB,CAAC,QAA+C;IACnF,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/E,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAoB;YACpE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SAC7C,CAAC,CAAC,CAAC;IACN,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAmB;IACvD,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QAC/C,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;KAC7B,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAiB;IACjD,MAAM,CAAC,GAAG,QAA0B,CAAC;IACrC,IAAI,CAAC,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC,IAAI,CAAC;IAC1B,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACjD,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAiB;IAC/C,MAAM,CAAC,GAAG,QAA0B,CAAC;IACrC,IAAI,CAAC,CAAC,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IAEvC,OAAO;QACL,YAAY,EAAE,CAAC,CAAC,aAAa,CAAC,gBAAgB;QAC9C,gBAAgB,EAAE,CAAC,CAAC,aAAa,CAAC,oBAAoB;QACtD,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC,eAAe;KAC7C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,GAAY,EAAE,SAAsB;IAC/E,MAAM,CAAC,GAAG,GAAqB,CAAC;IAChC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC;IAC5D,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC;IAC7B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects if the provided object is an initialized Google Gemini client instance.
|
|
3
|
+
* @param client - The object to inspect.
|
|
4
|
+
* @returns True if it matches the Gemini client shape.
|
|
5
|
+
*/
|
|
6
|
+
export declare function isGeminiClient(client: unknown): boolean;
|
|
7
|
+
//# sourceMappingURL=detect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/detect.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAKvD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects if the provided object is an initialized Google Gemini client instance.
|
|
3
|
+
* @param client - The object to inspect.
|
|
4
|
+
* @returns True if it matches the Gemini client shape.
|
|
5
|
+
*/
|
|
6
|
+
export function isGeminiClient(client) {
|
|
7
|
+
if (!client || typeof client !== 'object')
|
|
8
|
+
return false;
|
|
9
|
+
const obj = client;
|
|
10
|
+
return !!(obj.models && typeof obj.models.generateContent === 'function');
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../src/providers/gemini/detect.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,GAAG,GAAG,MAAsB,CAAC;IAEnC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,eAAe,KAAK,UAAU,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAID,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { LLMRegistry } from '../../llm/registry.js';
|
|
2
|
+
import { isGeminiClient } from './detect.js';
|
|
3
|
+
import { patchGeminiClient } from './proxy.js';
|
|
4
|
+
export function register() {
|
|
5
|
+
LLMRegistry.registerProvider(isGeminiClient, patchGeminiClient);
|
|
6
|
+
}
|
|
7
|
+
register();
|
|
8
|
+
export { isGeminiClient };
|
|
9
|
+
export * from './types.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/gemini/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,UAAU,QAAQ;IACtB,WAAW,CAAC,gBAAgB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAClE,CAAC;AAED,QAAQ,EAAE,CAAC;AAEX,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AA6C/C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CA2CnE"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { patchMethod } from '../patcher.js';
|
|
2
|
+
import { geminiInputToMessages, messagesToGeminiInput, contentFromGemini, usageFromGemini, applyContentToGeminiResponse, } from './common.js';
|
|
3
|
+
import { extractSDKVersion } from '../telemetry.js';
|
|
4
|
+
import { PROVIDERS } from '../../utils/constants.js';
|
|
5
|
+
function argsToRequest(args) {
|
|
6
|
+
const { model: _model, contents: _contents, ...params } = args;
|
|
7
|
+
return {
|
|
8
|
+
messages: geminiInputToMessages(args.contents),
|
|
9
|
+
model: args.model,
|
|
10
|
+
params,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function requestToArgs(request) {
|
|
14
|
+
if (!request.model)
|
|
15
|
+
throw new Error('No model provided.');
|
|
16
|
+
return {
|
|
17
|
+
model: request.model,
|
|
18
|
+
contents: messagesToGeminiInput(request),
|
|
19
|
+
...(request.params ?? {}),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function rawToCanonical(raw) {
|
|
23
|
+
return { content: contentFromGemini(raw), usage: usageFromGemini(raw), raw };
|
|
24
|
+
}
|
|
25
|
+
function chunkToText(chunk) {
|
|
26
|
+
const r = chunk;
|
|
27
|
+
if (typeof r.text === 'string')
|
|
28
|
+
return r.text;
|
|
29
|
+
return r.candidates?.[0]?.content?.parts?.[0]?.text;
|
|
30
|
+
}
|
|
31
|
+
export function patchGeminiClient(client, axon) {
|
|
32
|
+
const geminiClient = client;
|
|
33
|
+
const sdkVersion = extractSDKVersion(geminiClient);
|
|
34
|
+
if (!geminiClient.models) {
|
|
35
|
+
throw new Error('Gemini client has no models API.');
|
|
36
|
+
}
|
|
37
|
+
// Patch the standard (unary) method
|
|
38
|
+
patchMethod({
|
|
39
|
+
axon,
|
|
40
|
+
parent: geminiClient.models,
|
|
41
|
+
methodName: 'generateContent',
|
|
42
|
+
ctxMetadata: { provider: PROVIDERS.GEMINI.id, method: 'models.generateContent', sdkVersion },
|
|
43
|
+
argsToRequest,
|
|
44
|
+
requestToArgs,
|
|
45
|
+
rawToResponse: rawToCanonical,
|
|
46
|
+
applyCanonicalToRaw: applyContentToGeminiResponse,
|
|
47
|
+
chunkToText,
|
|
48
|
+
});
|
|
49
|
+
// Patch the explicit streaming method
|
|
50
|
+
patchMethod({
|
|
51
|
+
axon,
|
|
52
|
+
parent: geminiClient.models,
|
|
53
|
+
methodName: 'generateContentStream',
|
|
54
|
+
ctxMetadata: {
|
|
55
|
+
provider: PROVIDERS.GEMINI.id,
|
|
56
|
+
method: 'models.generateContentStream',
|
|
57
|
+
sdkVersion,
|
|
58
|
+
},
|
|
59
|
+
argsToRequest: (args) => {
|
|
60
|
+
const baseRequest = argsToRequest(args);
|
|
61
|
+
return {
|
|
62
|
+
...baseRequest,
|
|
63
|
+
params: { ...baseRequest.params, stream: true },
|
|
64
|
+
};
|
|
65
|
+
},
|
|
66
|
+
requestToArgs,
|
|
67
|
+
rawToResponse: rawToCanonical,
|
|
68
|
+
applyCanonicalToRaw: applyContentToGeminiResponse,
|
|
69
|
+
chunkToText,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/providers/gemini/proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface GeminiResponse {
|
|
2
|
+
text?: string;
|
|
3
|
+
candidates?: Array<{
|
|
4
|
+
content?: {
|
|
5
|
+
parts?: Array<{
|
|
6
|
+
text?: string;
|
|
7
|
+
}>;
|
|
8
|
+
};
|
|
9
|
+
}>;
|
|
10
|
+
usageMetadata?: GeminiUsage;
|
|
11
|
+
}
|
|
12
|
+
export interface GeminiUsage {
|
|
13
|
+
promptTokenCount?: number;
|
|
14
|
+
candidatesTokenCount?: number;
|
|
15
|
+
totalTokenCount?: number;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=responses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/responses.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,KAAK,CAAC;gBAAE,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;IACvE,aAAa,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../../src/providers/gemini/responses.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface GeminiGenerateContentArgs {
|
|
2
|
+
model: string;
|
|
3
|
+
contents: string | Array<{
|
|
4
|
+
role?: string;
|
|
5
|
+
parts: Array<{
|
|
6
|
+
text?: string;
|
|
7
|
+
}>;
|
|
8
|
+
}>;
|
|
9
|
+
[key: string]: unknown;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The minimal expected shape of an initialized Google Gemini client instance.
|
|
13
|
+
* Axon uses this interface to detect and safely patch the `models.generateContent`
|
|
14
|
+
* and `models.generateContentStream` methods.
|
|
15
|
+
*/
|
|
16
|
+
export interface GeminiClient {
|
|
17
|
+
models?: {
|
|
18
|
+
generateContent: (args: GeminiGenerateContentArgs) => Promise<unknown>;
|
|
19
|
+
generateContentStream?: (args: GeminiGenerateContentArgs) => Promise<unknown>;
|
|
20
|
+
__axon_patched__?: boolean;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IAC7E,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE;QACP,eAAe,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACvE,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9E,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/providers/gemini/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAE,CAAC"}
|
package/dist/providers/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,mBAAmB,CAAC"}
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects if the provided object is an initialized OpenAI client instance.
|
|
3
|
+
* @param client - The object to inspect.
|
|
4
|
+
* @returns True if it matches the OpenAI client shape.
|
|
5
|
+
*/
|
|
1
6
|
export declare function isOpenAIClient(client: unknown): boolean;
|
|
2
7
|
//# sourceMappingURL=detect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/detect.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAQvD"}
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/detect.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAQvD"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects if the provided object is an initialized OpenAI client instance.
|
|
3
|
+
* @param client - The object to inspect.
|
|
4
|
+
* @returns True if it matches the OpenAI client shape.
|
|
5
|
+
*/
|
|
1
6
|
export function isOpenAIClient(client) {
|
|
2
7
|
if (!client || typeof client !== 'object')
|
|
3
8
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../src/providers/openai/detect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,GAAG,GAAG,MAAsB,CAAC;IAEnC,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IACrF,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAE/F,OAAO,YAAY,IAAI,OAAO,CAAC;AACjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../src/providers/openai/detect.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,GAAG,GAAG,MAAsB,CAAC;IAEnC,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IACrF,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAE/F,OAAO,YAAY,IAAI,OAAO,CAAC;AACjC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AA8E/C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAiDnE"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { openaiInputToMessages, messagesToOpenAIInput, contentFromOpenAI, usageFromOpenAI, applyContentToTextResponse, applyContentToChatResponse, } from './common.js';
|
|
2
2
|
import { isOpenAIClient } from './detect.js';
|
|
3
3
|
import { patchMethod } from '../patcher.js';
|
|
4
|
+
import { extractSDKVersion } from '../telemetry.js';
|
|
5
|
+
import { PROVIDERS } from '../../utils/constants.js';
|
|
4
6
|
function extractParams(args, inputKey) {
|
|
5
7
|
const { model: _model, [inputKey]: _input, ...params } = args;
|
|
6
8
|
return params;
|
|
@@ -52,6 +54,7 @@ function chunkToText(chunk) {
|
|
|
52
54
|
}
|
|
53
55
|
export function patchOpenAIClient(client, axon) {
|
|
54
56
|
const openaiClient = client;
|
|
57
|
+
const sdkVersion = extractSDKVersion(openaiClient);
|
|
55
58
|
let patchedAny = false;
|
|
56
59
|
// Patch Legacy Responses API
|
|
57
60
|
if (openaiClient.responses) {
|
|
@@ -59,7 +62,7 @@ export function patchOpenAIClient(client, axon) {
|
|
|
59
62
|
axon,
|
|
60
63
|
parent: openaiClient.responses,
|
|
61
64
|
methodName: 'create',
|
|
62
|
-
ctxMetadata: { provider:
|
|
65
|
+
ctxMetadata: { provider: PROVIDERS.OPENAI.id, method: 'responses.create', sdkVersion },
|
|
63
66
|
argsToRequest: responsesArgsToRequest,
|
|
64
67
|
requestToArgs: requestToResponsesArgs,
|
|
65
68
|
rawToResponse: rawToCanonical,
|
|
@@ -74,7 +77,11 @@ export function patchOpenAIClient(client, axon) {
|
|
|
74
77
|
axon,
|
|
75
78
|
parent: openaiClient.chat.completions,
|
|
76
79
|
methodName: 'create',
|
|
77
|
-
ctxMetadata: {
|
|
80
|
+
ctxMetadata: {
|
|
81
|
+
provider: PROVIDERS.OPENAI.id,
|
|
82
|
+
method: 'chat.completions.create',
|
|
83
|
+
sdkVersion,
|
|
84
|
+
},
|
|
78
85
|
argsToRequest: chatArgsToRequest,
|
|
79
86
|
requestToArgs: requestToChatArgs,
|
|
80
87
|
rawToResponse: rawToCanonical,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/providers/openai/proxy.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/providers/openai/proxy.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,SAAS,aAAa,CACpB,IAA6B,EAC7B,QAA8B;IAE9B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,IAA+B;IAC7D,OAAO;QACL,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,aAAa,CAAC,IAA+B,EAAE,OAAO,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAmB;IACjD,IAAI,CAAC,OAAO,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC1D,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC;QACrC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;KACG,CAAC;AACjC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAqC;IAC9D,OAAO;QACL,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9C,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,aAAa,CAAC,IAA+B,EAAE,UAAU,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAmB;IAC5C,IAAI,CAAC,OAAO,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC1D,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,qBAAqB,CAAC,OAAO,CAAC;QACxC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;KACS,CAAC;AACvC,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;AAC/E,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,MAAM,SAAS,GAAG,KAAqC,CAAC;IACxD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC;IACrD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAEhD,MAAM,SAAS,GAAG,KAA2B,CAAC;IAC9C,IAAI,OAAO,SAAS,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC,WAAW,CAAC;IAE5E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAe,EAAE,IAAU;IAC3D,MAAM,YAAY,GAAG,MAAsB,CAAC;IAC5C,MAAM,UAAU,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACnD,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,6BAA6B;IAC7B,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;QAC3B,IACE,WAAW,CAAC;YACV,IAAI;YACJ,MAAM,EAAE,YAAY,CAAC,SAAS;YAC9B,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE;YACtF,aAAa,EAAE,sBAAsB;YACrC,aAAa,EAAE,sBAAsB;YACrC,aAAa,EAAE,cAAc;YAC7B,mBAAmB,EAAE,0BAA0B;SAChD,CAAC,EACF,CAAC;YACD,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,IAAI,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;QACnC,IACE,WAAW,CAAC;YACV,IAAI;YACJ,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,WAAW;YACrC,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE;gBACX,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE;gBAC7B,MAAM,EAAE,yBAAyB;gBACjC,UAAU;aACX;YACD,aAAa,EAAE,iBAAiB;YAChC,aAAa,EAAE,iBAAiB;YAChC,aAAa,EAAE,cAAc;YAC7B,mBAAmB,EAAE,0BAA0B;YAC/C,WAAW;SACZ,CAAC,EACF,CAAC;YACD,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
export interface
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
total_tokens?: number;
|
|
5
|
-
input_tokens?: number;
|
|
6
|
-
output_tokens?: number;
|
|
1
|
+
export interface OpenAITextResponse {
|
|
2
|
+
output_text: string;
|
|
3
|
+
usage?: OpenAIUsage;
|
|
7
4
|
}
|
|
8
5
|
export interface OpenAIChatCompletionResponse {
|
|
9
6
|
choices: Array<{
|
|
@@ -16,9 +13,12 @@ export interface OpenAIChatCompletionResponse {
|
|
|
16
13
|
}>;
|
|
17
14
|
usage?: OpenAIUsage;
|
|
18
15
|
}
|
|
19
|
-
export interface
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
export interface OpenAIUsage {
|
|
17
|
+
prompt_tokens?: number;
|
|
18
|
+
completion_tokens?: number;
|
|
19
|
+
total_tokens?: number;
|
|
20
|
+
input_tokens?: number;
|
|
21
|
+
output_tokens?: number;
|
|
22
22
|
}
|
|
23
23
|
export declare function hasUsage(response: unknown): response is {
|
|
24
24
|
usage: OpenAIUsage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/responses.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/responses.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,KAAK,CAAC;QACb,OAAO,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/B,KAAK,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC9B,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,CAE9E"}
|
|
@@ -15,6 +15,11 @@ export interface OpenAIChatCompletionsCreateArgs {
|
|
|
15
15
|
stream?: boolean;
|
|
16
16
|
[key: string]: unknown;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* The minimal expected shape of an initialized OpenAI client instance.
|
|
20
|
+
* Axon uses this interface to detect and safely patch the `chat.completions.create`
|
|
21
|
+
* and legacy `responses.create` methods.
|
|
22
|
+
*/
|
|
18
23
|
export interface OpenAIClient {
|
|
19
24
|
responses?: {
|
|
20
25
|
create: (args: OpenAIResponsesCreateArgs) => Promise<unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE;QACV,MAAM,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9D,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE;YACZ,MAAM,EAAE,CAAC,IAAI,EAAE,+BAA+B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;YACpE,gBAAgB,CAAC,EAAE,OAAO,CAAC;SAC5B,CAAC;KACH,CAAC;CACH"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE;QACV,MAAM,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9D,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE;YACZ,MAAM,EAAE,CAAC,IAAI,EAAE,+BAA+B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;YACpE,gBAAgB,CAAC,EAAE,OAAO,CAAC;SAC5B,CAAC;KACH,CAAC;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patcher.d.ts","sourceRoot":"","sources":["../../src/providers/patcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAGL,aAAa,EACb,aAAa,EACb,aAAa,EACb,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAK5B,MAAM,WAAW,eAAe,CAAC,KAAK,EAAE,OAAO;IAC7C,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;CACtD;AAWD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"patcher.d.ts","sourceRoot":"","sources":["../../src/providers/patcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAGL,aAAa,EACb,aAAa,EACb,aAAa,EACb,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAK5B,MAAM,WAAW,eAAe,CAAC,KAAK,EAAE,OAAO;IAC7C,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;CACtD;AAWD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,OAAO,CAmC1F"}
|
|
@@ -9,12 +9,8 @@ export function patchMethod(opts) {
|
|
|
9
9
|
if (typeof originalMethod !== 'function')
|
|
10
10
|
return false;
|
|
11
11
|
const typedMethod = originalMethod;
|
|
12
|
-
//
|
|
13
|
-
|
|
14
|
-
if (patchedObjects.has(typedMethod))
|
|
15
|
-
return true;
|
|
16
|
-
// Check if it was marked by legacy means (or strictly on the function itself)
|
|
17
|
-
if (typedMethod.__axon_patched__)
|
|
12
|
+
// Prevent double wrapping the same function instance
|
|
13
|
+
if (patchedObjects.has(typedMethod) || typedMethod.__axon_patched__)
|
|
18
14
|
return true;
|
|
19
15
|
const proxy = new HookedCreateProxy({
|
|
20
16
|
create: typedMethod.bind(parentObj),
|
|
@@ -27,14 +23,11 @@ export function patchMethod(opts) {
|
|
|
27
23
|
chunkToText: opts.chunkToText,
|
|
28
24
|
});
|
|
29
25
|
const wrapped = CreateFacade.wrap(typedMethod, proxy);
|
|
30
|
-
// 2. Set Metadata:
|
|
31
|
-
// Store the original method so tests (and users) can access it if needed.
|
|
32
26
|
const wrappedWithMeta = wrapped;
|
|
33
27
|
wrappedWithMeta.__axon_original__ = originalMethod;
|
|
34
28
|
wrappedWithMeta.__axon_patched__ = true;
|
|
35
29
|
parentObj[opts.methodName] = wrappedWithMeta;
|
|
36
30
|
patchedObjects.add(wrappedWithMeta);
|
|
37
|
-
// Also mark the parent object if convenient, though method-marking is more precise.
|
|
38
31
|
parentObj.__axon_patched__ = true;
|
|
39
32
|
return true;
|
|
40
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patcher.js","sourceRoot":"","sources":["../../src/providers/patcher.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,YAAY,GAKb,MAAM,oBAAoB,CAAC;AAE5B,gEAAgE;AAChE,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AAuBrC,MAAM,UAAU,WAAW,CAAiB,IAAqC;IAC/E,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAElE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAuB,CAAC;IAC/C,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAElD,IAAI,OAAO,cAAc,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IACvD,MAAM,WAAW,GAAG,cAAmC,CAAC;IAExD,
|
|
1
|
+
{"version":3,"file":"patcher.js","sourceRoot":"","sources":["../../src/providers/patcher.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,YAAY,GAKb,MAAM,oBAAoB,CAAC;AAE5B,gEAAgE;AAChE,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AAuBrC,MAAM,UAAU,WAAW,CAAiB,IAAqC;IAC/E,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAElE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAuB,CAAC;IAC/C,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAElD,IAAI,OAAO,cAAc,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IACvD,MAAM,WAAW,GAAG,cAAmC,CAAC;IAExD,qDAAqD;IACrD,IAAI,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAEjF,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAiB;QAClD,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAuC;QACzE,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,WAAiD,EAAE,KAAK,CAAC,CAAC;IAC5F,MAAM,eAAe,GAAG,OAA4B,CAAC;IAErD,eAAe,CAAC,iBAAiB,GAAG,cAAc,CAAC;IACnD,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAExC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC;IAC7C,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAEpC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAElC,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents the common internal structure of auto-generated LLM clients (like Stainless).
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export type VersionedClient = {
|
|
6
|
+
VERSION?: string;
|
|
7
|
+
version?: string;
|
|
8
|
+
getUserAgent?: () => string;
|
|
9
|
+
defaultHeaders?: (opts?: unknown) => Record<string, string>;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Attempts to safely extract the SDK version from an LLM client instance.
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare function extractSDKVersion(client: unknown): string | null;
|
|
16
|
+
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/providers/telemetry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAmChE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attempts to safely extract the SDK version from an LLM client instance.
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export function extractSDKVersion(client) {
|
|
6
|
+
if (!client || typeof client !== 'object') {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
const vClient = client;
|
|
10
|
+
// 1. Check for standard attached properties
|
|
11
|
+
if (typeof vClient.VERSION === 'string')
|
|
12
|
+
return vClient.VERSION;
|
|
13
|
+
if (typeof vClient.version === 'string')
|
|
14
|
+
return vClient.version;
|
|
15
|
+
// 2. Sniff the version from the internal User-Agent generator
|
|
16
|
+
if (typeof vClient.getUserAgent === 'function') {
|
|
17
|
+
try {
|
|
18
|
+
const ua = vClient.getUserAgent(); // e.g., "OpenAI/JS 4.28.0"
|
|
19
|
+
const match = ua.match(/([0-9]+\.[0-9]+\.[0-9]+(?:-[a-zA-Z0-9.]+)?)/);
|
|
20
|
+
if (match)
|
|
21
|
+
return match[1];
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
// ignore, commenting for lint
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// 3. Sniff the version from the default headers payload
|
|
28
|
+
if (typeof vClient.defaultHeaders === 'function') {
|
|
29
|
+
try {
|
|
30
|
+
const headers = vClient.defaultHeaders({});
|
|
31
|
+
if (headers['x-stainless-package-version']) {
|
|
32
|
+
return headers['x-stainless-package-version'];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// ignore, commenting for lint
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/providers/telemetry.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAe;IAC/C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,MAAyB,CAAC;IAE1C,4CAA4C;IAC5C,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IAChE,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IAEhE,8DAA8D;IAC9D,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,2BAA2B;YAC9D,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACtE,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,OAAO,CAAC,6BAA6B,CAAC,EAAE,CAAC;gBAC3C,OAAO,OAAO,CAAC,6BAA6B,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/types/context.d.ts
CHANGED
|
@@ -2,15 +2,19 @@
|
|
|
2
2
|
* Context data that persists throughout the lifecycle of a single LLM call.
|
|
3
3
|
*/
|
|
4
4
|
export interface CallContext {
|
|
5
|
-
/** A unique identifier for this specific call execution. */
|
|
6
5
|
traceId: string;
|
|
7
|
-
/** The timestamp when the call started. */
|
|
8
6
|
startedAt: Date;
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
metadata: {
|
|
8
|
+
platform?: string | null;
|
|
9
|
+
framework?: string | null;
|
|
10
|
+
provider?: string | null;
|
|
11
|
+
method?: string | null;
|
|
12
|
+
sdkVersion?: string | null;
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
};
|
|
11
15
|
}
|
|
12
16
|
/**
|
|
13
|
-
* Creates a default call context
|
|
17
|
+
* Creates a default call context
|
|
14
18
|
* @internal
|
|
15
19
|
*/
|
|
16
20
|
export declare function createCallContext(init?: Partial<CallContext>): CallContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/types/context.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/types/context.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAU1E"}
|
package/dist/types/context.js
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
/**
|
|
3
|
-
* Creates a default call context
|
|
3
|
+
* Creates a default call context
|
|
4
4
|
* @internal
|
|
5
5
|
*/
|
|
6
6
|
export function createCallContext(init) {
|
|
7
7
|
return {
|
|
8
8
|
traceId: init?.traceId ?? randomUUID(),
|
|
9
9
|
startedAt: init?.startedAt ?? new Date(),
|
|
10
|
-
metadata:
|
|
10
|
+
metadata: {
|
|
11
|
+
platform: null,
|
|
12
|
+
framework: null,
|
|
13
|
+
...init?.metadata,
|
|
14
|
+
},
|
|
11
15
|
};
|
|
12
16
|
}
|
|
13
17
|
//# sourceMappingURL=context.js.map
|