dvgateway-adapters 1.9.0 → 1.9.2
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/dist/llm/anthropic.d.ts +12 -0
- package/dist/llm/anthropic.d.ts.map +1 -1
- package/dist/llm/anthropic.js +3 -0
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/baseurl.test.d.ts +2 -0
- package/dist/llm/baseurl.test.d.ts.map +1 -0
- package/dist/llm/baseurl.test.js +53 -0
- package/dist/llm/baseurl.test.js.map +1 -0
- package/dist/llm/openai-llm.d.ts +11 -0
- package/dist/llm/openai-llm.d.ts.map +1 -1
- package/dist/llm/openai-llm.js +6 -1
- package/dist/llm/openai-llm.js.map +1 -1
- package/package.json +2 -1
package/dist/llm/anthropic.d.ts
CHANGED
|
@@ -51,6 +51,18 @@ export interface AnthropicAdapterOptions {
|
|
|
51
51
|
* Useful for controlling response boundaries in voice contexts.
|
|
52
52
|
*/
|
|
53
53
|
stopSequences?: string[];
|
|
54
|
+
/**
|
|
55
|
+
* API 엔드포인트 오버라이드 (기본: 공식 https://api.anthropic.com)
|
|
56
|
+
*
|
|
57
|
+
* 온프렘·폐쇄망에서 로컬 LLM(Anthropic 호환 프록시)을 가리킬 때 쓴다.
|
|
58
|
+
* 게이트웨이 `GET /api/v1/llm/resolve` 응답의 `baseUrl` 을 그대로 넣으면 된다 —
|
|
59
|
+
* 게이트웨이는 이 값을 이미 내려주고 있었으나 어댑터가 받는 자리가 없어
|
|
60
|
+
* 폐쇄망에서 로컬 LLM 을 가리킬 방법이 없었다(SDK 1.9.2 에서 연결).
|
|
61
|
+
*
|
|
62
|
+
* ⚠️ 빈 문자열이면 **전달하지 않는다** — 빈 값을 넘기면 SDK 기본 엔드포인트
|
|
63
|
+
* 해석이 깨질 수 있으므로, "미설정"과 "빈 문자열"을 같게 다룬다.
|
|
64
|
+
*/
|
|
65
|
+
baseUrl?: string;
|
|
54
66
|
}
|
|
55
67
|
export declare class AnthropicAdapter implements LlmAdapter {
|
|
56
68
|
private readonly client;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoC;IAGzD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAElB,IAAI,EAAE,uBAAuB;IAwBlC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;CAuC3E"}
|
package/dist/llm/anthropic.js
CHANGED
|
@@ -37,11 +37,14 @@ export class AnthropicAdapter {
|
|
|
37
37
|
temperature: opts.temperature ?? 0.7,
|
|
38
38
|
topP: opts.topP ?? undefined,
|
|
39
39
|
stopSequences: opts.stopSequences ?? [],
|
|
40
|
+
baseUrl: opts.baseUrl ?? '',
|
|
40
41
|
apiKey: opts.apiKey,
|
|
41
42
|
};
|
|
42
43
|
this.systemPrompt = this.opts.systemPrompt;
|
|
43
44
|
this.client = new Anthropic({
|
|
44
45
|
apiKey: opts.apiKey,
|
|
46
|
+
// baseUrl 이 비면 키 자체를 넘기지 않는다(공식 엔드포인트 유지).
|
|
47
|
+
...(this.opts.baseUrl ? { baseURL: this.opts.baseUrl } : {}),
|
|
45
48
|
defaultHeaders: {
|
|
46
49
|
'anthropic-version': '2023-06-01',
|
|
47
50
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,SAAS,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseurl.test.d.ts","sourceRoot":"","sources":["../../src/llm/baseurl.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* baseUrl 오버라이드 배선 테스트 (SDK 1.9.2).
|
|
3
|
+
*
|
|
4
|
+
* 게이트웨이는 `GET /api/v1/llm/resolve` 응답으로 `baseUrl` 을 내려주고 있었으나
|
|
5
|
+
* (server.go:6236,7279 — 주석: "온프렘 로컬 LLM 오버라이드 — SDK 도 같은 엔드포인트
|
|
6
|
+
* 사용") 어댑터에는 그 값을 받는 옵션 자체가 없어 **폐쇄망에서 로컬 LLM 을 가리킬
|
|
7
|
+
* 방법이 없었다.** 이 테스트는 그 배선이 다시 끊기지 않게 못 박는다.
|
|
8
|
+
*
|
|
9
|
+
* 특히 **"빈 문자열 = 미설정"** 규칙을 검증한다 — 게이트웨이는 오버라이드가 없을 때
|
|
10
|
+
* `baseUrl: ""` 를 내려주므로(`omitempty` 는 JSON 태그일 뿐 resolve 핸들러는 map 으로
|
|
11
|
+
* 항상 키를 싣는다), 그 빈 값을 그대로 벤더 SDK 에 넘기면 공식 엔드포인트 해석이
|
|
12
|
+
* 깨질 수 있다. 호출자가 resolve 응답을 그대로 펼쳐 넣는 것이 정상 사용법이므로
|
|
13
|
+
* 어댑터가 빈 값을 흡수해야 한다.
|
|
14
|
+
*
|
|
15
|
+
* 네트워크를 타지 않는다 — 생성자 배선만 확인한다.
|
|
16
|
+
*/
|
|
17
|
+
import { AnthropicAdapter } from './anthropic.js';
|
|
18
|
+
import { OpenAILlmAdapter } from './openai-llm.js';
|
|
19
|
+
/** 벤더 SDK 클라이언트의 실효 baseURL (private 필드를 테스트 목적으로만 들여다본다) */
|
|
20
|
+
function clientBaseURL(adapter) {
|
|
21
|
+
return String(adapter.client.baseURL);
|
|
22
|
+
}
|
|
23
|
+
describe('AnthropicAdapter baseUrl', () => {
|
|
24
|
+
it('미지정이면 공식 엔드포인트를 쓴다', () => {
|
|
25
|
+
const a = new AnthropicAdapter({ apiKey: 'k' });
|
|
26
|
+
expect(clientBaseURL(a)).toContain('api.anthropic.com');
|
|
27
|
+
});
|
|
28
|
+
it('빈 문자열은 미설정과 같게 다룬다 (resolve 응답 그대로 전달 대비)', () => {
|
|
29
|
+
const a = new AnthropicAdapter({ apiKey: 'k', baseUrl: '' });
|
|
30
|
+
expect(clientBaseURL(a)).toContain('api.anthropic.com');
|
|
31
|
+
});
|
|
32
|
+
it('지정하면 그 주소로 나간다 (온프렘 프록시)', () => {
|
|
33
|
+
const a = new AnthropicAdapter({ apiKey: 'k', baseUrl: 'http://10.0.0.9:8000' });
|
|
34
|
+
expect(clientBaseURL(a)).toContain('10.0.0.9:8000');
|
|
35
|
+
expect(clientBaseURL(a)).not.toContain('api.anthropic.com');
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
describe('OpenAILlmAdapter baseUrl', () => {
|
|
39
|
+
it('미지정이면 공식 엔드포인트를 쓴다', () => {
|
|
40
|
+
const o = new OpenAILlmAdapter({ apiKey: 'k' });
|
|
41
|
+
expect(clientBaseURL(o)).toContain('api.openai.com');
|
|
42
|
+
});
|
|
43
|
+
it('빈 문자열은 미설정과 같게 다룬다', () => {
|
|
44
|
+
const o = new OpenAILlmAdapter({ apiKey: 'k', baseUrl: '' });
|
|
45
|
+
expect(clientBaseURL(o)).toContain('api.openai.com');
|
|
46
|
+
});
|
|
47
|
+
it('지정하면 그 주소로 나간다 (vLLM/Ollama 등 OpenAI 호환 로컬 LLM)', () => {
|
|
48
|
+
const o = new OpenAILlmAdapter({ apiKey: 'k', baseUrl: 'http://127.0.0.1:11434/v1' });
|
|
49
|
+
expect(clientBaseURL(o)).toContain('127.0.0.1:11434');
|
|
50
|
+
expect(clientBaseURL(o)).not.toContain('api.openai.com');
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=baseurl.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseurl.test.js","sourceRoot":"","sources":["../../src/llm/baseurl.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,6DAA6D;AAC7D,SAAS,aAAa,CAAC,OAAgB;IACrC,OAAO,MAAM,CAAE,OAA2C,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,GAAG,IAAI,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,GAAG,IAAI,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,GAAG,IAAI,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACjF,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,GAAG,IAAI,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,GAAG,IAAI,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,GAAG,IAAI,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;QACtF,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACtD,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/llm/openai-llm.d.ts
CHANGED
|
@@ -44,6 +44,17 @@ export interface OpenAILlmAdapterOptions {
|
|
|
44
44
|
* Positive values reduce verbatim repetition.
|
|
45
45
|
*/
|
|
46
46
|
frequencyPenalty?: number;
|
|
47
|
+
/**
|
|
48
|
+
* API 엔드포인트 오버라이드 (기본: 공식 https://api.openai.com/v1)
|
|
49
|
+
*
|
|
50
|
+
* 온프렘·폐쇄망의 **OpenAI 호환 로컬 LLM**(vLLM · Ollama · LM Studio 등)을
|
|
51
|
+
* 가리킬 때 쓴다. 게이트웨이 `GET /api/v1/llm/resolve` 응답의 `baseUrl` 을
|
|
52
|
+
* 그대로 넣으면 된다 — 게이트웨이는 이 값을 이미 내려주고 있었으나 어댑터가
|
|
53
|
+
* 받는 자리가 없어 폐쇄망에서 로컬 LLM 을 가리킬 방법이 없었다(SDK 1.9.2 에서 연결).
|
|
54
|
+
*
|
|
55
|
+
* ⚠️ 빈 문자열이면 **전달하지 않는다** — "미설정"과 "빈 문자열"을 같게 다룬다.
|
|
56
|
+
*/
|
|
57
|
+
baseUrl?: string;
|
|
47
58
|
}
|
|
48
59
|
export declare class OpenAILlmAdapter implements LlmAdapter {
|
|
49
60
|
private readonly client;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-llm.d.ts","sourceRoot":"","sources":["../../src/llm/openai-llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-llm.d.ts","sourceRoot":"","sources":["../../src/llm/openai-llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoC;IAEzD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAElB,IAAI,EAAE,uBAAuB;IAoBlC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;CA8B3E"}
|
package/dist/llm/openai-llm.js
CHANGED
|
@@ -31,10 +31,15 @@ export class OpenAILlmAdapter {
|
|
|
31
31
|
temperature: opts.temperature ?? 0.7,
|
|
32
32
|
presencePenalty: opts.presencePenalty ?? 0.0,
|
|
33
33
|
frequencyPenalty: opts.frequencyPenalty ?? 0.0,
|
|
34
|
+
baseUrl: opts.baseUrl ?? '',
|
|
34
35
|
apiKey: opts.apiKey,
|
|
35
36
|
};
|
|
36
37
|
this.systemPrompt = this.opts.systemPrompt;
|
|
37
|
-
|
|
38
|
+
// baseUrl 이 비면 키 자체를 넘기지 않는다(공식 엔드포인트 유지).
|
|
39
|
+
this.client = new OpenAI({
|
|
40
|
+
apiKey: opts.apiKey,
|
|
41
|
+
...(this.opts.baseUrl ? { baseURL: this.opts.baseUrl } : {}),
|
|
42
|
+
});
|
|
38
43
|
}
|
|
39
44
|
async *chat(messages, opts) {
|
|
40
45
|
const model = opts?.model ?? this.opts.model;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-llm.js","sourceRoot":"","sources":["../../src/llm/openai-llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-llm.js","sourceRoot":"","sources":["../../src/llm/openai-llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAyC5B,MAAM,OAAO,gBAAgB;IACV,MAAM,CAAS;IACf,IAAI,CAAoC;IAEhD,YAAY,CAAS;IAE9B,YAAY,IAA6B;QACvC,IAAI,CAAC,IAAI,GAAG;YACV,KAAK,EAAc,IAAI,CAAC,KAAK,IAAgB,aAAa;YAC1D,YAAY,EAAO,IAAI,CAAC,YAAY,IAAS,6EAA6E;YAC1H,SAAS,EAAU,IAAI,CAAC,SAAS,IAAY,IAAI;YACjD,WAAW,EAAQ,IAAI,CAAC,WAAW,IAAU,GAAG;YAChD,eAAe,EAAI,IAAI,CAAC,eAAe,IAAM,GAAG;YAChD,gBAAgB,EAAG,IAAI,CAAC,gBAAgB,IAAK,GAAG;YAChD,OAAO,EAAY,IAAI,CAAC,OAAO,IAAc,EAAE;YAC/C,MAAM,EAAa,IAAI,CAAC,MAAM;SAC/B,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC3C,2CAA2C;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,CAAC,IAAI,CAAC,QAAmB,EAAE,IAAiB;QAChD,MAAM,KAAK,GAAS,IAAI,EAAE,KAAK,IAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACzD,MAAM,SAAS,GAAK,IAAI,EAAE,SAAS,IAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAC/D,MAAM,MAAM,GAAQ,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,OAAO;eACjE,IAAI,EAAE,YAAY;eAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAE5B,MAAM,YAAY,GAA6C;YAC7D,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;YACnC,GAAG,QAAQ;iBACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;iBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAA4B,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SAC9E,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACvD,KAAK;YACL,UAAU,EAAS,SAAS;YAC5B,WAAW;YACX,gBAAgB,EAAG,IAAI,CAAC,IAAI,CAAC,eAAe;YAC5C,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAC7C,QAAQ,EAAW,YAAY;YAC/B,MAAM,EAAa,IAAI;SACxB,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC;YAC/C,IAAI,KAAK;gBAAE,MAAM,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dvgateway-adapters",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.2",
|
|
4
4
|
"description": "AI service adapters for DVGateway SDK (Deepgram, ElevenLabs, Anthropic, OpenAI, OpenAI Realtime)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -85,6 +85,7 @@
|
|
|
85
85
|
"@types/ws": "^8.5.10",
|
|
86
86
|
"jest": "^30.3.0",
|
|
87
87
|
"ts-jest": "^29.4.9",
|
|
88
|
+
"ts-node": "^10.9.2",
|
|
88
89
|
"typescript": "^5.4.0"
|
|
89
90
|
},
|
|
90
91
|
"peerDependencies": {
|