ai.matey.wrapper 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/cjs/anthropic-sdk.js +203 -0
- package/dist/cjs/anthropic-sdk.js.map +1 -0
- package/dist/cjs/anymethod.js +167 -0
- package/dist/cjs/anymethod.js.map +1 -0
- package/dist/cjs/chat.js +513 -0
- package/dist/cjs/chat.js.map +1 -0
- package/dist/cjs/chrome-ai-legacy.js +168 -0
- package/dist/cjs/chrome-ai-legacy.js.map +1 -0
- package/dist/cjs/chrome-ai.js +156 -0
- package/dist/cjs/chrome-ai.js.map +1 -0
- package/dist/cjs/index.js +58 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/ir-index.js +52 -0
- package/dist/cjs/ir-index.js.map +1 -0
- package/dist/cjs/openai-sdk.js +221 -0
- package/dist/cjs/openai-sdk.js.map +1 -0
- package/dist/cjs/stream-utils.js +21 -0
- package/dist/cjs/stream-utils.js.map +1 -0
- package/dist/cjs/types.js +10 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/anthropic-sdk.js +196 -0
- package/dist/esm/anthropic-sdk.js.map +1 -0
- package/dist/esm/anymethod.js +161 -0
- package/dist/esm/anymethod.js.map +1 -0
- package/dist/esm/chat.js +508 -0
- package/dist/esm/chat.js.map +1 -0
- package/dist/esm/chrome-ai-legacy.js +163 -0
- package/dist/esm/chrome-ai-legacy.js.map +1 -0
- package/dist/esm/chrome-ai.js +152 -0
- package/dist/esm/chrome-ai.js.map +1 -0
- package/dist/esm/index.js +22 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/ir-index.js +41 -0
- package/dist/esm/ir-index.js.map +1 -0
- package/dist/esm/openai-sdk.js +213 -0
- package/dist/esm/openai-sdk.js.map +1 -0
- package/dist/esm/stream-utils.js +14 -0
- package/dist/esm/stream-utils.js.map +1 -0
- package/dist/esm/types.js +9 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/types/anthropic-sdk.d.ts +154 -0
- package/dist/types/anthropic-sdk.d.ts.map +1 -0
- package/dist/types/anymethod.d.ts +45 -0
- package/dist/types/anymethod.d.ts.map +1 -0
- package/dist/types/chat.d.ts +144 -0
- package/dist/types/chat.d.ts.map +1 -0
- package/dist/types/chrome-ai-legacy.d.ts +44 -0
- package/dist/types/chrome-ai-legacy.d.ts.map +1 -0
- package/dist/types/chrome-ai.d.ts +38 -0
- package/dist/types/chrome-ai.d.ts.map +1 -0
- package/dist/types/index.d.ts +20 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/ir-index.d.ts +41 -0
- package/dist/types/ir-index.d.ts.map +1 -0
- package/dist/types/openai-sdk.d.ts +183 -0
- package/dist/types/openai-sdk.d.ts.map +1 -0
- package/dist/types/stream-utils.d.ts +9 -0
- package/dist/types/stream-utils.d.ts.map +1 -0
- package/dist/types/types.d.ts +232 -0
- package/dist/types/types.d.ts.map +1 -0
- package/package.json +132 -0
- package/readme.md +92 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chrome-ai-legacy.js","sourceRoot":"","sources":["../../src/chrome-ai-legacy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAwC7C,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,MAAM,yBAAyB;IACrB,OAAO,CAAiB;IACxB,mBAAmB,CAAc;IACjC,OAAO,CAA8B;IACrC,SAAS,GAAG,KAAK,CAAC;IAClB,YAAY,GAAG,CAAC,CAAC;IAEzB,YAAY,OAAuB,EAAE,OAAoC;QACvE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,mBAAmB;YACtB,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;IACxC,CAAC;IACD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,WAAW,GAAc,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAChE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAkB;YAC7B,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;YACvC,UAAU,EAAE;gBACV,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;gBACzB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;gBACrC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;aAClC;YACD,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE;gBACR,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE;gBAC9B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,UAAU,EAAE,EAAE,QAAQ,EAAE,0BAA0B,EAAE;aACrD;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YACpF,IAAI,CAAC,mBAAmB,GAAG,WAAW,CACpC,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,OAAO,CAAC,cAAc,EAC3B,OAAO,CACR,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACjD,MAAM,YAAY,GAChB,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ;gBAC1C,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO;gBAC1B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtF,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ;YACjD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO;YAC1B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,CAAC,eAAe,CAAC,KAAa;QAClC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,WAAW,GAAc,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAChE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAkB;YAC7B,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;YACvC,UAAU,EAAE;gBACV,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;gBACzB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;gBACrC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;aAClC;YACD,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE;gBACR,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE;gBAC9B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,UAAU,EAAE,EAAE,QAAQ,EAAE,0BAA0B,EAAE;aACrD;SACF,CAAC;QAEF,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEnD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7B,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC;gBAC3B,MAAM,KAAK,CAAC,KAAK,CAAC;YACpB,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC/C,CAAC;gBAED,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;oBACpF,IAAI,CAAC,mBAAmB,GAAG,WAAW,CACpC,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,OAAO,CAAC,cAAc,EAC3B,OAAO,CACR,CAAC;gBACJ,CAAC;gBAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;gBAC9C,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACjD,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,KAAK;QACH,OAAO,IAAI,yBAAyB,CAAC,IAAI,CAAC,OAAO,EAAE;YACjD,GAAG,IAAI,CAAC,OAAO;YACf,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;SAC5C,CAAC,CAAC;IACL,CAAC;CACF;AAED,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E,MAAM,UAAU,2BAA2B,CACzC,OAAuB;IAEvB,OAAO;QACL,MAAM,CAAC,UAAuC,EAAE;YAC9C,OAAO,IAAI,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;QAED,KAAK,CAAC,YAAY;YAMhB,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3E,OAAO;gBACL,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;gBACnC,kBAAkB,EAAE,GAAG;gBACvB,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,GAAG;aACb,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAuB;IAC1D,OAAO,EAAE,aAAa,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAuB;IAC5D,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;QACrC,UAAkB,CAAC,EAAE,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chrome AI Language Model Wrapper
|
|
3
|
+
*
|
|
4
|
+
* Mimics the Chrome AI (window.ai.languageModel) API using any backend adapter.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// Session Implementation
|
|
10
|
+
// ============================================================================
|
|
11
|
+
class ChromeAISessionImpl {
|
|
12
|
+
backend;
|
|
13
|
+
conversationHistory;
|
|
14
|
+
options;
|
|
15
|
+
destroyed = false;
|
|
16
|
+
constructor(backend, options) {
|
|
17
|
+
this.backend = backend;
|
|
18
|
+
this.options = options;
|
|
19
|
+
this.conversationHistory =
|
|
20
|
+
options.initialPrompts?.map((prompt) => ({
|
|
21
|
+
role: prompt.role,
|
|
22
|
+
content: prompt.content,
|
|
23
|
+
})) || [];
|
|
24
|
+
}
|
|
25
|
+
async prompt(input) {
|
|
26
|
+
if (this.destroyed) {
|
|
27
|
+
throw new Error('Session has been destroyed');
|
|
28
|
+
}
|
|
29
|
+
const userMessage = { role: 'user', content: input };
|
|
30
|
+
this.conversationHistory.push(userMessage);
|
|
31
|
+
const request = {
|
|
32
|
+
messages: [...this.conversationHistory],
|
|
33
|
+
parameters: {
|
|
34
|
+
model: this.options.model,
|
|
35
|
+
temperature: this.options.temperature,
|
|
36
|
+
topK: this.options.topK,
|
|
37
|
+
topP: this.options.topP,
|
|
38
|
+
maxTokens: this.options.maxTokens,
|
|
39
|
+
},
|
|
40
|
+
stream: false,
|
|
41
|
+
metadata: {
|
|
42
|
+
requestId: crypto.randomUUID(),
|
|
43
|
+
timestamp: Date.now(),
|
|
44
|
+
provenance: { frontend: 'chrome-ai-wrapper' },
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
const response = await this.backend.execute(request);
|
|
48
|
+
this.conversationHistory.push(response.message);
|
|
49
|
+
return typeof response.message.content === 'string'
|
|
50
|
+
? response.message.content
|
|
51
|
+
: response.message.content.map((c) => (c.type === 'text' ? c.text : '')).join('');
|
|
52
|
+
}
|
|
53
|
+
promptStreaming(input) {
|
|
54
|
+
if (this.destroyed) {
|
|
55
|
+
throw new Error('Session has been destroyed');
|
|
56
|
+
}
|
|
57
|
+
const userMessage = { role: 'user', content: input };
|
|
58
|
+
this.conversationHistory.push(userMessage);
|
|
59
|
+
const streamMode = this.options.streamMode || 'accumulated';
|
|
60
|
+
const request = {
|
|
61
|
+
messages: [...this.conversationHistory],
|
|
62
|
+
parameters: {
|
|
63
|
+
model: this.options.model,
|
|
64
|
+
temperature: this.options.temperature,
|
|
65
|
+
topK: this.options.topK,
|
|
66
|
+
topP: this.options.topP,
|
|
67
|
+
maxTokens: this.options.maxTokens,
|
|
68
|
+
},
|
|
69
|
+
stream: true,
|
|
70
|
+
streamMode,
|
|
71
|
+
metadata: {
|
|
72
|
+
requestId: crypto.randomUUID(),
|
|
73
|
+
timestamp: Date.now(),
|
|
74
|
+
provenance: { frontend: 'chrome-ai-wrapper' },
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
const backend = this.backend;
|
|
78
|
+
const conversationHistory = this.conversationHistory;
|
|
79
|
+
let contentBuffer = '';
|
|
80
|
+
return new ReadableStream({
|
|
81
|
+
async start(controller) {
|
|
82
|
+
try {
|
|
83
|
+
const stream = backend.executeStream(request);
|
|
84
|
+
for await (const chunk of stream) {
|
|
85
|
+
if (chunk.type === 'content') {
|
|
86
|
+
contentBuffer += chunk.delta;
|
|
87
|
+
if (streamMode === 'delta') {
|
|
88
|
+
controller.enqueue(chunk.delta);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
controller.enqueue(contentBuffer);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else if (chunk.type === 'done') {
|
|
95
|
+
if (chunk.message) {
|
|
96
|
+
conversationHistory.push(chunk.message);
|
|
97
|
+
}
|
|
98
|
+
controller.close();
|
|
99
|
+
}
|
|
100
|
+
else if (chunk.type === 'error') {
|
|
101
|
+
controller.error(new Error(chunk.error.message));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
controller.error(error);
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
destroy() {
|
|
112
|
+
this.destroyed = true;
|
|
113
|
+
this.conversationHistory = [];
|
|
114
|
+
}
|
|
115
|
+
clone() {
|
|
116
|
+
return new ChromeAISessionImpl(this.backend, {
|
|
117
|
+
...this.options,
|
|
118
|
+
initialPrompts: this.conversationHistory
|
|
119
|
+
.filter((msg) => msg.role === 'system')
|
|
120
|
+
.map((msg) => ({
|
|
121
|
+
role: msg.role,
|
|
122
|
+
content: typeof msg.content === 'string' ? msg.content : '',
|
|
123
|
+
})),
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// ============================================================================
|
|
128
|
+
// Language Model Implementation
|
|
129
|
+
// ============================================================================
|
|
130
|
+
export function ChromeAILanguageModel(backend, defaultOptions = {}) {
|
|
131
|
+
return {
|
|
132
|
+
create(options = {}) {
|
|
133
|
+
const mergedOptions = {
|
|
134
|
+
...defaultOptions,
|
|
135
|
+
...options,
|
|
136
|
+
initialPrompts: [
|
|
137
|
+
...(defaultOptions.initialPrompts || []),
|
|
138
|
+
...(options.initialPrompts || []),
|
|
139
|
+
],
|
|
140
|
+
};
|
|
141
|
+
return new ChromeAISessionImpl(backend, mergedOptions);
|
|
142
|
+
},
|
|
143
|
+
async capabilities() {
|
|
144
|
+
const isHealthy = backend.healthCheck ? await backend.healthCheck() : true;
|
|
145
|
+
return { available: isHealthy ? 'readily' : 'no' };
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
export function createChromeAILanguageModel(backend) {
|
|
150
|
+
return { languageModel: ChromeAILanguageModel(backend) };
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=chrome-ai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chrome-ai.js","sourceRoot":"","sources":["../../src/chrome-ai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Matey Wrappers
|
|
3
|
+
*
|
|
4
|
+
* Consolidated package containing SDK wrappers and IR utilities.
|
|
5
|
+
* These wrappers allow using provider SDK patterns with any backend.
|
|
6
|
+
*
|
|
7
|
+
* @module ai.matey.wrapper
|
|
8
|
+
*/
|
|
9
|
+
// OpenAI SDK Wrapper - namespaced exports
|
|
10
|
+
export { OpenAI, OpenAIClient, ChatCompletions, ChatCompletions as OpenAIChatCompletions, Chat as OpenAIChat, Models as OpenAIModels, } from './openai-sdk.js';
|
|
11
|
+
// Anthropic SDK Wrapper - namespaced exports
|
|
12
|
+
export { Anthropic, AnthropicClient, Messages, Messages as AnthropicMessages, Models as AnthropicModels, } from './anthropic-sdk.js';
|
|
13
|
+
// AnyMethod wrapper
|
|
14
|
+
export * from './anymethod.js';
|
|
15
|
+
// Chrome AI Wrappers
|
|
16
|
+
export * from './chrome-ai.js';
|
|
17
|
+
export * from './chrome-ai-legacy.js';
|
|
18
|
+
// IR Chat utilities (primary Chat export)
|
|
19
|
+
export { Chat, createChat } from './chat.js';
|
|
20
|
+
// Stream utilities
|
|
21
|
+
export { collectStream, processStream, streamToText, streamToLines, throttleStream, teeStream, } from './stream-utils.js';
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,0CAA0C;AAC1C,OAAO,EACL,MAAM,EACN,YAAY,EACZ,eAAe,EACf,eAAe,IAAI,qBAAqB,EACxC,IAAI,IAAI,UAAU,EAClB,MAAM,IAAI,YAAY,GACvB,MAAM,iBAAiB,CAAC;AAUzB,6CAA6C;AAC7C,OAAO,EACL,SAAS,EACT,eAAe,EACf,QAAQ,EACR,QAAQ,IAAI,iBAAiB,EAC7B,MAAM,IAAI,eAAe,GAC1B,MAAM,oBAAoB,CAAC;AAS5B,oBAAoB;AACpB,cAAc,gBAAgB,CAAC;AAE/B,qBAAqB;AACrB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AAEtC,0CAA0C;AAC1C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAgB7C,mBAAmB;AACnB,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,EACd,SAAS,GACV,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ai.matey.wrapper/ir
|
|
3
|
+
*
|
|
4
|
+
* IR-native chat wrapper for the AI Matey universal adapter system.
|
|
5
|
+
*
|
|
6
|
+
* This package provides a chat client that works directly with the
|
|
7
|
+
* IR (Intermediate Representation) format.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { createChat } from 'ai.matey.wrapper/ir';
|
|
12
|
+
* import { AnthropicBackend } from 'ai.matey.backend/anthropic';
|
|
13
|
+
*
|
|
14
|
+
* const chat = createChat({
|
|
15
|
+
* backend: new AnthropicBackend({ apiKey: process.env.ANTHROPIC_API_KEY }),
|
|
16
|
+
* systemPrompt: 'You are a helpful assistant.',
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // Non-streaming
|
|
20
|
+
* const response = await chat.send('Hello!');
|
|
21
|
+
* console.log(response.content);
|
|
22
|
+
*
|
|
23
|
+
* // Streaming with callbacks
|
|
24
|
+
* await chat.stream('Tell me a story', {
|
|
25
|
+
* onChunk: ({ delta }) => process.stdout.write(delta),
|
|
26
|
+
* });
|
|
27
|
+
*
|
|
28
|
+
* // Or use stream utilities directly
|
|
29
|
+
* const stream = backend.executeStream(request);
|
|
30
|
+
* for await (const text of streamToText(stream)) {
|
|
31
|
+
* process.stdout.write(text);
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @module
|
|
36
|
+
*/
|
|
37
|
+
// Core chat client
|
|
38
|
+
export { Chat, createChat } from './chat.js';
|
|
39
|
+
// Stream utilities
|
|
40
|
+
export { collectStream, processStream, streamToText, streamToLines, throttleStream, teeStream, } from './stream-utils.js';
|
|
41
|
+
//# sourceMappingURL=ir-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir-index.js","sourceRoot":"","sources":["../../src/ir-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,mBAAmB;AACnB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE7C,mBAAmB;AACnB,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,EACd,SAAS,GACV,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI SDK Wrapper
|
|
3
|
+
*
|
|
4
|
+
* Mimics the OpenAI SDK interface using any backend adapter.
|
|
5
|
+
* Allows you to use OpenAI SDK-style code with any provider.
|
|
6
|
+
*
|
|
7
|
+
* Uses the OpenAI Frontend Adapter internally for format conversions.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import { OpenAIFrontendAdapter } from 'ai.matey.frontend';
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// OpenAI SDK Wrapper Implementation
|
|
14
|
+
// ============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Chat completions interface (mimics OpenAI SDK).
|
|
17
|
+
*/
|
|
18
|
+
export class ChatCompletions {
|
|
19
|
+
backend;
|
|
20
|
+
config;
|
|
21
|
+
adapter;
|
|
22
|
+
constructor(backend, config = {}) {
|
|
23
|
+
this.backend = backend;
|
|
24
|
+
this.config = config;
|
|
25
|
+
this.adapter = new OpenAIFrontendAdapter();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Create a chat completion.
|
|
29
|
+
*/
|
|
30
|
+
create(params) {
|
|
31
|
+
if (params.stream) {
|
|
32
|
+
return this.createStream(params);
|
|
33
|
+
}
|
|
34
|
+
return this.createNonStream(params);
|
|
35
|
+
}
|
|
36
|
+
async createNonStream(params) {
|
|
37
|
+
// Convert params to OpenAI request format
|
|
38
|
+
const request = {
|
|
39
|
+
model: params.model,
|
|
40
|
+
messages: params.messages,
|
|
41
|
+
temperature: params.temperature,
|
|
42
|
+
max_tokens: params.max_tokens,
|
|
43
|
+
top_p: params.top_p,
|
|
44
|
+
frequency_penalty: params.frequency_penalty,
|
|
45
|
+
presence_penalty: params.presence_penalty,
|
|
46
|
+
stop: params.stop,
|
|
47
|
+
stream: false,
|
|
48
|
+
user: params.user,
|
|
49
|
+
seed: params.seed,
|
|
50
|
+
};
|
|
51
|
+
// Use frontend adapter to convert to IR
|
|
52
|
+
const irRequest = await this.adapter.toIR(request);
|
|
53
|
+
// Execute via backend
|
|
54
|
+
const irResponse = await this.backend.execute(irRequest);
|
|
55
|
+
// Use frontend adapter to convert back to OpenAI format
|
|
56
|
+
const openaiResponse = await this.adapter.fromIR(irResponse);
|
|
57
|
+
// Return in SDK-style format
|
|
58
|
+
return {
|
|
59
|
+
id: openaiResponse.id,
|
|
60
|
+
object: 'chat.completion',
|
|
61
|
+
created: openaiResponse.created,
|
|
62
|
+
model: openaiResponse.model,
|
|
63
|
+
choices: openaiResponse.choices.map((choice) => ({
|
|
64
|
+
index: choice.index,
|
|
65
|
+
message: choice.message,
|
|
66
|
+
finish_reason: choice.finish_reason,
|
|
67
|
+
})),
|
|
68
|
+
usage: openaiResponse.usage ?? {
|
|
69
|
+
prompt_tokens: 0,
|
|
70
|
+
completion_tokens: 0,
|
|
71
|
+
total_tokens: 0,
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
async *createStream(params) {
|
|
76
|
+
// Convert params to OpenAI request format
|
|
77
|
+
const request = {
|
|
78
|
+
model: params.model,
|
|
79
|
+
messages: params.messages,
|
|
80
|
+
temperature: params.temperature,
|
|
81
|
+
max_tokens: params.max_tokens,
|
|
82
|
+
top_p: params.top_p,
|
|
83
|
+
frequency_penalty: params.frequency_penalty,
|
|
84
|
+
presence_penalty: params.presence_penalty,
|
|
85
|
+
stop: params.stop,
|
|
86
|
+
stream: true,
|
|
87
|
+
user: params.user,
|
|
88
|
+
seed: params.seed,
|
|
89
|
+
};
|
|
90
|
+
// Use frontend adapter to convert to IR
|
|
91
|
+
let irRequest = await this.adapter.toIR(request);
|
|
92
|
+
// Add stream mode if configured
|
|
93
|
+
if (this.config.streamMode) {
|
|
94
|
+
irRequest = { ...irRequest, streamMode: this.config.streamMode };
|
|
95
|
+
}
|
|
96
|
+
// Execute streaming via backend
|
|
97
|
+
const irStream = this.backend.executeStream(irRequest);
|
|
98
|
+
// Use frontend adapter to convert stream
|
|
99
|
+
for await (const chunk of this.adapter.fromIRStream(irStream)) {
|
|
100
|
+
// Convert to SDK-style chunk
|
|
101
|
+
yield {
|
|
102
|
+
id: chunk.id,
|
|
103
|
+
object: 'chat.completion.chunk',
|
|
104
|
+
created: chunk.created,
|
|
105
|
+
model: chunk.model,
|
|
106
|
+
choices: chunk.choices.map((choice) => ({
|
|
107
|
+
index: choice.index,
|
|
108
|
+
delta: {
|
|
109
|
+
role: choice.delta.role,
|
|
110
|
+
content: choice.delta.content,
|
|
111
|
+
},
|
|
112
|
+
finish_reason: choice.finish_reason,
|
|
113
|
+
})),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Models interface (mimics OpenAI SDK).
|
|
120
|
+
*/
|
|
121
|
+
export class Models {
|
|
122
|
+
backend;
|
|
123
|
+
constructor(backend) {
|
|
124
|
+
this.backend = backend;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* List available models.
|
|
128
|
+
*/
|
|
129
|
+
async list(options) {
|
|
130
|
+
if (!this.backend.listModels) {
|
|
131
|
+
return { object: 'list', data: [] };
|
|
132
|
+
}
|
|
133
|
+
const result = await this.backend.listModels(options);
|
|
134
|
+
const data = result.models.map((model) => ({
|
|
135
|
+
id: model.id,
|
|
136
|
+
object: 'model',
|
|
137
|
+
created: model.created
|
|
138
|
+
? new Date(model.created).getTime() / 1000
|
|
139
|
+
: Math.floor(result.fetchedAt / 1000),
|
|
140
|
+
owned_by: model.ownedBy || 'unknown',
|
|
141
|
+
}));
|
|
142
|
+
return { object: 'list', data };
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Retrieve information about a specific model.
|
|
146
|
+
*/
|
|
147
|
+
async retrieve(modelId) {
|
|
148
|
+
if (!this.backend.listModels) {
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
const result = await this.backend.listModels();
|
|
152
|
+
const model = result.models.find((m) => m.id === modelId);
|
|
153
|
+
if (!model) {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
id: model.id,
|
|
158
|
+
object: 'model',
|
|
159
|
+
created: model.created
|
|
160
|
+
? new Date(model.created).getTime() / 1000
|
|
161
|
+
: Math.floor(result.fetchedAt / 1000),
|
|
162
|
+
owned_by: model.ownedBy || 'unknown',
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Chat interface (mimics OpenAI SDK).
|
|
168
|
+
*/
|
|
169
|
+
export class Chat {
|
|
170
|
+
completions;
|
|
171
|
+
constructor(backend, config = {}) {
|
|
172
|
+
this.completions = new ChatCompletions(backend, config);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* OpenAI SDK-compatible client.
|
|
177
|
+
*/
|
|
178
|
+
export class OpenAIClient {
|
|
179
|
+
chat;
|
|
180
|
+
models;
|
|
181
|
+
constructor(backend, config = {}) {
|
|
182
|
+
this.chat = new Chat(backend, config);
|
|
183
|
+
this.models = new Models(backend);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// ============================================================================
|
|
187
|
+
// Factory Function
|
|
188
|
+
// ============================================================================
|
|
189
|
+
/**
|
|
190
|
+
* Create an OpenAI SDK-compatible client using any backend adapter.
|
|
191
|
+
*
|
|
192
|
+
* @example
|
|
193
|
+
* ```typescript
|
|
194
|
+
* import { OpenAI } from 'ai.matey.wrapper/openai';
|
|
195
|
+
* import { AnthropicBackendAdapter } from 'ai.matey.backend/anthropic';
|
|
196
|
+
*
|
|
197
|
+
* const backend = new AnthropicBackendAdapter({ apiKey: 'sk-ant-...' });
|
|
198
|
+
* const client = OpenAI(backend);
|
|
199
|
+
*
|
|
200
|
+
* const completion = await client.chat.completions.create({
|
|
201
|
+
* model: 'claude-3-5-sonnet',
|
|
202
|
+
* messages: [
|
|
203
|
+
* { role: 'user', content: 'Hello!' }
|
|
204
|
+
* ],
|
|
205
|
+
* });
|
|
206
|
+
*
|
|
207
|
+
* console.log(completion.choices[0].message.content);
|
|
208
|
+
* ```
|
|
209
|
+
*/
|
|
210
|
+
export function OpenAI(backend, config) {
|
|
211
|
+
return new OpenAIClient(backend, config);
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=openai-sdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-sdk.js","sourceRoot":"","sources":["../../src/openai-sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stream Utilities
|
|
3
|
+
*
|
|
4
|
+
* Re-exports stream utilities from ai.matey.utils.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
// Re-export stream utilities from ai.matey.utils
|
|
9
|
+
export {
|
|
10
|
+
// High-level utilities
|
|
11
|
+
collectStreamFull as collectStream, processStream, streamToLines, throttleStream, teeStream,
|
|
12
|
+
// Basic utilities (streamToTextIterator provides generator behavior with error handling)
|
|
13
|
+
streamToTextIterator as streamToText, } from 'ai.matey.utils';
|
|
14
|
+
//# sourceMappingURL=stream-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-utils.js","sourceRoot":"","sources":["../../src/stream-utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,iDAAiD;AACjD,OAAO;AACL,uBAAuB;AACvB,iBAAiB,IAAI,aAAa,EAClC,aAAa,EACb,aAAa,EACb,cAAc,EACd,SAAS;AAET,yFAAyF;AACzF,oBAAoB,IAAI,YAAY,GAKrC,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic SDK Wrapper
|
|
3
|
+
*
|
|
4
|
+
* Mimics the Anthropic SDK interface using any backend adapter.
|
|
5
|
+
* Allows you to use Anthropic SDK-style code with any provider.
|
|
6
|
+
*
|
|
7
|
+
* Uses the Anthropic Frontend Adapter internally for format conversions.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import type { BackendAdapter, StreamMode, ListModelsOptions } from 'ai.matey.types';
|
|
12
|
+
import { type AnthropicStreamEvent, type AnthropicContentBlock } from 'ai.matey.frontend';
|
|
13
|
+
export type { AnthropicRequest, AnthropicResponse, AnthropicStreamEvent, AnthropicMessage, AnthropicContentBlock, } from 'ai.matey.frontend';
|
|
14
|
+
/**
|
|
15
|
+
* Anthropic SDK message (alias).
|
|
16
|
+
*/
|
|
17
|
+
export interface AnthropicSDKMessage {
|
|
18
|
+
role: 'user' | 'assistant';
|
|
19
|
+
content: string | AnthropicContentBlock[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Anthropic message parameters (SDK style).
|
|
23
|
+
*/
|
|
24
|
+
export interface AnthropicMessageParams {
|
|
25
|
+
model: string;
|
|
26
|
+
messages: AnthropicSDKMessage[];
|
|
27
|
+
max_tokens: number;
|
|
28
|
+
system?: string;
|
|
29
|
+
temperature?: number;
|
|
30
|
+
top_p?: number;
|
|
31
|
+
top_k?: number;
|
|
32
|
+
stop_sequences?: string[];
|
|
33
|
+
stream?: boolean;
|
|
34
|
+
metadata?: {
|
|
35
|
+
user_id?: string;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Anthropic SDK usage information.
|
|
40
|
+
*/
|
|
41
|
+
export interface AnthropicSDKUsage {
|
|
42
|
+
input_tokens: number;
|
|
43
|
+
output_tokens: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Anthropic SDK message response.
|
|
47
|
+
*/
|
|
48
|
+
export interface AnthropicSDKMessageResponse {
|
|
49
|
+
id: string;
|
|
50
|
+
type: 'message';
|
|
51
|
+
role: 'assistant';
|
|
52
|
+
content: AnthropicContentBlock[];
|
|
53
|
+
model: string;
|
|
54
|
+
stop_reason: 'end_turn' | 'max_tokens' | 'stop_sequence' | 'tool_use' | null;
|
|
55
|
+
stop_sequence: string | null;
|
|
56
|
+
usage: AnthropicSDKUsage;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Anthropic Model object.
|
|
60
|
+
*/
|
|
61
|
+
export interface AnthropicModel {
|
|
62
|
+
id: string;
|
|
63
|
+
display_name: string;
|
|
64
|
+
created_at: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Anthropic Models response.
|
|
68
|
+
*/
|
|
69
|
+
export interface AnthropicModelsResponse {
|
|
70
|
+
data: AnthropicModel[];
|
|
71
|
+
has_more: boolean;
|
|
72
|
+
first_id: string | null;
|
|
73
|
+
last_id: string | null;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Anthropic SDK wrapper configuration.
|
|
77
|
+
*/
|
|
78
|
+
export interface AnthropicSDKConfig {
|
|
79
|
+
/**
|
|
80
|
+
* Streaming mode for stream responses.
|
|
81
|
+
* @default 'delta'
|
|
82
|
+
*/
|
|
83
|
+
streamMode?: StreamMode;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Messages interface (mimics Anthropic SDK).
|
|
87
|
+
*/
|
|
88
|
+
export declare class Messages {
|
|
89
|
+
private backend;
|
|
90
|
+
private config;
|
|
91
|
+
private adapter;
|
|
92
|
+
constructor(backend: BackendAdapter, config?: AnthropicSDKConfig);
|
|
93
|
+
/**
|
|
94
|
+
* Create a message (non-streaming).
|
|
95
|
+
*/
|
|
96
|
+
create(params: AnthropicMessageParams & {
|
|
97
|
+
stream?: false | undefined;
|
|
98
|
+
}): Promise<AnthropicSDKMessageResponse>;
|
|
99
|
+
/**
|
|
100
|
+
* Create a message (streaming).
|
|
101
|
+
*/
|
|
102
|
+
create(params: AnthropicMessageParams & {
|
|
103
|
+
stream: true;
|
|
104
|
+
}): AsyncIterable<AnthropicStreamEvent>;
|
|
105
|
+
private createNonStream;
|
|
106
|
+
private createStream;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Models interface (mimics Anthropic SDK).
|
|
110
|
+
*/
|
|
111
|
+
export declare class Models {
|
|
112
|
+
private backend;
|
|
113
|
+
constructor(backend: BackendAdapter);
|
|
114
|
+
/**
|
|
115
|
+
* List available models.
|
|
116
|
+
*/
|
|
117
|
+
list(options?: ListModelsOptions): Promise<AnthropicModelsResponse>;
|
|
118
|
+
/**
|
|
119
|
+
* Retrieve information about a specific model.
|
|
120
|
+
*/
|
|
121
|
+
retrieve(modelId: string): Promise<AnthropicModel | null>;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Anthropic SDK-compatible client.
|
|
125
|
+
*/
|
|
126
|
+
export declare class AnthropicClient {
|
|
127
|
+
readonly messages: Messages;
|
|
128
|
+
readonly models: Models;
|
|
129
|
+
constructor(backend: BackendAdapter, config?: AnthropicSDKConfig);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Create an Anthropic SDK-compatible client using any backend adapter.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```typescript
|
|
136
|
+
* import { Anthropic } from 'ai.matey.wrapper/anthropic';
|
|
137
|
+
* import { OpenAIBackendAdapter } from 'ai.matey.backend/openai';
|
|
138
|
+
*
|
|
139
|
+
* const backend = new OpenAIBackendAdapter({ apiKey: 'sk-...' });
|
|
140
|
+
* const client = Anthropic(backend);
|
|
141
|
+
*
|
|
142
|
+
* const message = await client.messages.create({
|
|
143
|
+
* model: 'gpt-4',
|
|
144
|
+
* max_tokens: 1024,
|
|
145
|
+
* messages: [
|
|
146
|
+
* { role: 'user', content: 'Hello!' }
|
|
147
|
+
* ],
|
|
148
|
+
* });
|
|
149
|
+
*
|
|
150
|
+
* console.log(message.content[0].text);
|
|
151
|
+
* ```
|
|
152
|
+
*/
|
|
153
|
+
export declare function Anthropic(backend: BackendAdapter, config?: AnthropicSDKConfig): AnthropicClient;
|
|
154
|
+
//# sourceMappingURL=anthropic-sdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic-sdk.d.ts","sourceRoot":"","sources":["../../src/anthropic-sdk.ts"],"names":[],"mappings":"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"}
|